summaryrefslogtreecommitdiff
path: root/test/nm/ts
diff options
context:
space:
mode:
Diffstat (limited to 'test/nm/ts')
-rw-r--r--test/nm/ts/Makefile12
-rw-r--r--test/nm/ts/Makefile.tset24
-rwxr-xr-xtest/nm/ts/common/func.sh304
-rw-r--r--test/nm/ts/common/test_nm.c343
-rw-r--r--test/nm/ts/cpp_demangle/Makefile25
-rw-r--r--test/nm/ts/cpp_demangle/cpp_demangle-tc.c170
-rw-r--r--test/nm/ts/cpp_demangle_ARM/Makefile24
-rw-r--r--test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c151
-rw-r--r--test/nm/ts/cpp_demangle_gnu2/Makefile24
-rw-r--r--test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c172
-rw-r--r--test/nm/ts/nm_archive1/Makefile7
-rwxr-xr-xtest/nm/ts/nm_archive1/tc.sh198
-rw-r--r--test/nm/ts/nm_archive1/test_ar-dynamic.txt8
-rw-r--r--test/nm/ts/nm_archive1/test_ar-external.txt48
-rw-r--r--test/nm/ts/nm_archive1/test_ar-format-bsd.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-format-posix.txt50
-rw-r--r--test/nm/ts/nm_archive1/test_ar-print-file-name.txt46
-rw-r--r--test/nm/ts/nm_archive1/test_ar-print-size.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-radix-hexa.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-radix-octal.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-size-sort.txt29
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-no.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-num.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt29
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sort-reverse.txt54
-rw-r--r--test/nm/ts/nm_archive1/test_ar-sysv.txt70
-rw-r--r--test/nm/ts/nm_archive1/test_ar-undef.txt33
-rw-r--r--test/nm/ts/nm_archive1/test_ar.uu356
-rw-r--r--test/nm/ts/nm_archive2/Makefile7
-rwxr-xr-xtest/nm/ts/nm_archive2/tc.sh198
-rw-r--r--test/nm/ts/nm_archive2/test_ar-dynamic.txt8
-rw-r--r--test/nm/ts/nm_archive2/test_ar-external.txt83
-rw-r--r--test/nm/ts/nm_archive2/test_ar-format-bsd.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-format-posix.txt85
-rw-r--r--test/nm/ts/nm_archive2/test_ar-format-sysv.txt105
-rw-r--r--test/nm/ts/nm_archive2/test_ar-print-file-name.txt81
-rw-r--r--test/nm/ts/nm_archive2/test_ar-print-size.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-radix-hexa.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-radix-octal.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-reverse.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-no.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-num.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-reverse-no.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-reverse-num.txt89
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-reverse-size.txt60
-rw-r--r--test/nm/ts/nm_archive2/test_ar-sort-size.txt60
-rw-r--r--test/nm/ts/nm_archive2/test_ar-undef.txt37
-rw-r--r--test/nm/ts/nm_archive2/test_ar.uu484
-rw-r--r--test/nm/ts/nm_debug/Makefile7
-rwxr-xr-xtest/nm/ts/nm_debug/tc.sh36
-rw-r--r--test/nm/ts/nm_debug/test_obj-debug-syms.txt69
-rw-r--r--test/nm/ts/nm_debug/test_obj.uu1115
-rw-r--r--test/nm/ts/nm_object1/Makefile7
-rwxr-xr-xtest/nm/ts/nm_object1/tc.sh198
-rw-r--r--test/nm/ts/nm_object1/test_obj-dynamic.txt43
-rw-r--r--test/nm/ts/nm_object1/test_obj-external.txt60
-rw-r--r--test/nm/ts/nm_object1/test_obj-format-bsd.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-format-posix.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-format-sysv.txt83
-rw-r--r--test/nm/ts/nm_object1/test_obj-print-file-name.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-print-size.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-radix-hexa.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-radix-octal.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-no.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-num.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt25
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-reverse.txt77
-rw-r--r--test/nm/ts/nm_object1/test_obj-sort-size.txt25
-rw-r--r--test/nm/ts/nm_object1/test_obj-undef.txt33
-rw-r--r--test/nm/ts/nm_object1/test_obj.uu351
-rw-r--r--test/nm/ts/nm_object2/Makefile7
-rwxr-xr-xtest/nm/ts/nm_object2/tc.sh198
-rw-r--r--test/nm/ts/nm_object2/test_obj-dynamic.txt17
-rw-r--r--test/nm/ts/nm_object2/test_obj-external.txt27
-rw-r--r--test/nm/ts/nm_object2/test_obj-format-bsd.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-format-posix.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-format-sysv.txt51
-rw-r--r--test/nm/ts/nm_object2/test_obj-print-file-name.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-print-size.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-radix-hexa.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-radix-octal.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-no.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-num.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-reverse-no.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-reverse-num.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-reverse-size.txt13
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-reverse.txt45
-rw-r--r--test/nm/ts/nm_object2/test_obj-sort-size.txt13
-rw-r--r--test/nm/ts/nm_object2/test_obj-undef.txt13
-rw-r--r--test/nm/ts/nm_object2/test_obj.uu235
-rw-r--r--test/nm/ts/nm_option/Makefile5
-rwxr-xr-xtest/nm/ts/nm_option/tc.sh57
-rw-r--r--test/nm/ts/nm_shared_object1/Makefile7
-rwxr-xr-xtest/nm/ts/nm_shared_object1/tc.sh198
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-dynamic.txt38
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-external.txt38
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-format-bsd.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-format-posix.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-format-sysv.txt45
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-print-file-name.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-print-size.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-radix-octal.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-no.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-num.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt13
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt39
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-sort-size.txt13
-rw-r--r--test/nm/ts/nm_shared_object1/test_so-undef.txt18
-rw-r--r--test/nm/ts/nm_shared_object1/test_so.uu315
-rw-r--r--test/nm/ts/nm_shared_object2/Makefile7
-rwxr-xr-xtest/nm/ts/nm_shared_object2/tc.sh198
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-dynamic.txt0
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-external.txt30
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-format-bsd.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-format-posix.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-format-sysv.txt87
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-print-file-name.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-print-size.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-radix-hexa.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-radix-octal.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-no.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-num.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-reverse-no.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-reverse-num.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-reverse-size.txt51
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-reverse.txt81
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-sort-size.txt51
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko-undef.txt30
-rw-r--r--test/nm/ts/nm_shared_object2/test_ko.uu330
-rw-r--r--test/nm/ts/vector_str/Makefile20
-rw-r--r--test/nm/ts/vector_str/vector_str-tc.c392
138 files changed, 11849 insertions, 0 deletions
diff --git a/test/nm/ts/Makefile b/test/nm/ts/Makefile
new file mode 100644
index 0000000000000..b5352371f7d7d
--- /dev/null
+++ b/test/nm/ts/Makefile
@@ -0,0 +1,12 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+SUBDIR+= nm_archive1
+SUBDIR+= nm_archive2
+SUBDIR+= nm_debug
+SUBDIR+= nm_object1
+SUBDIR+= nm_object2
+SUBDIR+= nm_option
+SUBDIR+= nm_shared_object1
+SUBDIR+= nm_shared_object2
+
+.include <bsd.subdir.mk>
diff --git a/test/nm/ts/Makefile.tset b/test/nm/ts/Makefile.tset
new file mode 100644
index 0000000000000..ac5fd0ad45404
--- /dev/null
+++ b/test/nm/ts/Makefile.tset
@@ -0,0 +1,24 @@
+# $Id: Makefile.tset 2085 2011-10-27 05:06:47Z jkoshy $
+
+NM_EXEC?= ${.CURDIR}/../../../../nm/nm
+CSTD?= iso9899:1999
+
+CFLAGS+= -DNM=\"${NM_EXEC}\" -DTC_DIR=\"$(.CURDIR)\" \
+ -DTESTFILE=\"$(TS_DATA)\"
+
+CLEANFILES+= test.out
+
+.for f in ${TS_SRCS}
+.if exists(${.CURDIR}/../common/${f})
+${f}: ${.CURDIR}/../common/${f}
+ cp ${.ALLSRC} ${.TARGET}
+CLEANFILES+= test_nm.c
+.endif
+.endfor
+
+.if !exists(${TS_DATA:R})
+${TS_DATA}:
+ uudecode ${TS_DATA}.uu
+.endif
+
+CLEANFILES+= ${TS_DATA}
diff --git a/test/nm/ts/common/func.sh b/test/nm/ts/common/func.sh
new file mode 100755
index 0000000000000..4ab970d3f2702
--- /dev/null
+++ b/test/nm/ts/common/func.sh
@@ -0,0 +1,304 @@
+#!/bin/sh
+#
+# $Id: func.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+test_format_bsd1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -B" $1 $2
+}
+
+test_format_bsd2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --format=bsd" $1 $2
+}
+
+test_dynamic1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -D" $1 $2
+}
+
+test_dynamic2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --dynamic" $1 $2
+}
+
+test_external()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -g" $1 $2
+}
+
+test_hexa1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-x" $1 $2
+}
+
+test_hexa2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t x" $1 $2
+}
+
+test_hexa3()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "--radix=x" $1 $2
+}
+
+test_no_sort1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -p" $1 $2
+}
+
+test_no_sort2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --no-sort" $1 $2
+}
+
+test_num_sort1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -n" $1 $2
+}
+
+test_num_sort2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --numeric-sort" $1 $2
+}
+
+test_octal2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t o" $1 $2
+}
+
+test_octal3()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "--radix=o" $1 $2
+}
+
+test_posix1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-P" $1 $2
+}
+
+test_posix2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "--format=posix" $1 $2
+}
+
+test_print_file_name1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -A" $1 $2
+}
+
+test_print_file_name2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --print-file-name" $1 $2
+}
+
+test_print_size1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -S" $1 $2
+}
+
+test_print_size2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --print-size" $1 $2
+}
+
+test_reverse_sort1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -r" $1 $2
+}
+
+test_reverse_sort2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --reverse-sort" $1 $2
+}
+
+test_reverse_sort_num()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -r -n" $1 $2
+}
+
+test_reverse_sort_no()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -r -p" $1 $2
+}
+
+test_reverse_sort_size()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -r --size-sort" $1 $2
+}
+
+test_size_sort()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --size-sort" $1 $2
+}
+
+test_sysv()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --format=sysv" $1 $2
+}
+
+test_undef1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d -u" $1 $2
+}
+
+test_undef2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-t d --undefined-only" $1 $2
+}
+
+test_debug_syms1()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "-a" $1 $2
+}
+
+test_debug_syms2()
+{
+ # $1 test file
+ # $2 oracle file
+
+ run "--debug-syms" $1 $2
+}
+
+run()
+{
+ # $1 nm option
+ # $2 test file
+ # $3 oracle file
+
+ tet_infoline "OPTION $1"
+
+ NM_PATH="$TET_SUITE_ROOT/../../nm/nm"
+ TEST_OUTPUT_FILE="test.out"
+
+ $NM_PATH $1 $2 > $TEST_OUTPUT_FILE 2> /dev/null
+ NM_RETURN_CODE="$?"
+ if [ $NM_RETURN_CODE -ne "0" ]; then
+ tet_infoline "nm execution failed"
+ tet_result FAIL
+
+ return
+ fi
+
+ diff $TEST_OUTPUT_FILE $3 > /dev/null
+ DIFF_RETURN_CODE="$?"
+ if [ $DIFF_RETURN_CODE -ne "0" ]; then
+ tet_infoline "diff failed"
+ tet_result FAIL
+
+ return
+ fi
+
+ tet_result PASS
+}
+
+run_without_diff()
+{
+ # $1 nm option
+ # $2 oracle return code
+
+ tet_infoline "OPTION $1"
+
+ NM_PATH="$TET_SUITE_ROOT/../../nm/nm"
+
+ $NM_PATH $1 > /dev/null 2> /dev/null
+ NM_RETURN_CODE="$?"
+ if [ $NM_RETURN_CODE -ne $2 ]; then
+ tet_infoline "nm execution failed"
+ tet_result FAIL
+
+ return
+ fi
+
+ tet_result PASS
+}
diff --git a/test/nm/ts/common/test_nm.c b/test/nm/ts/common/test_nm.c
new file mode 100644
index 0000000000000..76fca042a9830
--- /dev/null
+++ b/test/nm/ts/common/test_nm.c
@@ -0,0 +1,343 @@
+/*-
+ * Copyright (c) 2008 Hyogeol Lee <hyogeollee@gmail.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id: test_nm.c 2378 2012-01-03 08:59:56Z jkoshy $
+ */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <tet_api.h>
+
+static int exec_cmd(const char *, const char *);
+static void startup();
+static void test_bsd();
+static void test_dynamic();
+static void test_external();
+static void test_hexa();
+static bool test_nm_out(const char *, const char *);
+static void test_no_sort();
+static void test_num_sort();
+static void test_octal();
+static void test_posix();
+static void test_print_filename();
+static void test_print_size();
+static void test_reverse_sort();
+static void test_size_sort();
+static void test_sysv();
+static void test_undef();
+
+struct tet_testlist tet_testlist[] = {
+ { test_dynamic, 1},
+ { test_external, 2},
+ { test_num_sort, 3},
+ { test_no_sort, 4},
+ { test_posix, 5},
+ { test_print_size, 6},
+ { test_undef, 7},
+ { test_size_sort, 8},
+ { test_sysv, 9},
+ { test_bsd, 10},
+ { test_print_filename, 11},
+ { test_octal, 12},
+ { test_hexa, 13},
+ { test_reverse_sort, 14},
+ { NULL, 0}
+};
+
+#define NM_CMD NM " %s " TESTFILE " > test.out"
+#define DIFF_CMD "diff test.out " TC_DIR "/" TESTFILE "%s.txt > /dev/null"
+
+void (*tet_startup)() = startup;
+void (*tet_cleanup)() = NULL;
+
+static int
+exec_cmd(const char *cmd, const char *op)
+{
+ char *this_cmd;
+ int rtn;
+ size_t cmd_len;
+
+ if (cmd == NULL || op == NULL)
+ return (-1);
+
+ cmd_len = strlen(cmd) + strlen(op);
+
+ if ((this_cmd = malloc(sizeof(char) * cmd_len)) == NULL) {
+ tet_infoline("cannot allocate memory");
+
+ return (-1);
+ }
+
+ snprintf(this_cmd, cmd_len, cmd, op);
+
+ rtn = system(this_cmd);
+
+ free(this_cmd);
+
+ return (rtn);
+}
+
+static void
+startup()
+{
+
+ if (system("cp " TC_DIR "/" TESTFILE " .") < 0) {
+ tet_infoline("cannot cp object");
+
+ exit(EXIT_FAILURE);
+ }
+}
+
+static void
+test_bsd()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -B, --format=bsd");
+
+ rtn |= test_nm_out("-B", "-B");
+ rtn |= test_nm_out("--format=bsd", "-B");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_dynamic()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -D, --dynamic");
+
+ rtn |= test_nm_out("-D", "-D");
+ rtn |= test_nm_out("--dynamic", "-D");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_external()
+{
+
+ tet_infoline("OPTION -g");
+
+ if (test_nm_out("-g", "-g") == true)
+ tet_result(TET_PASS);
+ else
+ tet_result(TET_FAIL);
+}
+
+static void
+test_hexa()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -x, -t x");
+
+ rtn |= test_nm_out("-x", "-x");
+ rtn |= test_nm_out("-t x", "-x");
+ rtn |= test_nm_out("--radix=x", "-x");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static bool
+test_nm_out(const char *op, const char *d_op)
+{
+ int rtn;
+
+ if (op == NULL) {
+ tet_result(TET_FAIL);
+
+ return (false);
+ }
+
+ if ((rtn = exec_cmd(NM_CMD, op)) < 0) {
+ tet_infoline("system function failed");
+
+ return (false);
+ } else if (rtn == 127) {
+ tet_infoline("execution shell failed");
+
+ return (false);
+ }
+
+ if ((rtn = exec_cmd(DIFF_CMD, d_op)) < 0)
+ tet_infoline("system function failed");
+ else {
+ switch (rtn) {
+ case 127:
+ tet_infoline("execution shell failed");
+
+ break;
+ case 2:
+ tet_infoline("diff has trouble");
+
+ break;
+ case 1:
+ tet_infoline("output is different");
+
+ break;
+ case 0:
+ return (true);
+ }
+ }
+
+ return (false);
+}
+
+static void
+test_no_sort()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -p");
+
+ rtn |= test_nm_out("-p", "-p");
+ rtn |= test_nm_out("--no-sort", "-p");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_num_sort()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -n, --numeric-sort");
+
+ rtn |= test_nm_out("-n", "-n");
+ rtn |= test_nm_out("--numeric-sort", "-n");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_octal()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION --radix=o, -t o");
+
+ rtn |= test_nm_out("-t o", "-o");
+ rtn |= test_nm_out("--radix=o", "-o");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_posix()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -P, --format=posix");
+
+ rtn |= test_nm_out("-P", "-P");
+ rtn |= test_nm_out("--format=posix", "-P");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_print_filename()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -A, --print-file-name");
+
+ rtn |= test_nm_out("-A", "-A");
+ rtn |= test_nm_out("--print-file-name", "-A");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_print_size()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -S, --print-size");
+
+ rtn |= test_nm_out("-S", "-S");
+ rtn |= test_nm_out("--print-size", "-S");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_reverse_sort()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -r, --reverse-sort");
+
+ rtn |= test_nm_out("-r", "-r");
+ rtn |= test_nm_out("--reverse-sort", "-r");
+
+ rtn |= test_nm_out("-r -n", "-r-n");
+ rtn |= test_nm_out("-r -p", "-r-p");
+ rtn |= test_nm_out("-r --size-sort", "-r-size-sort");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
+
+static void
+test_size_sort()
+{
+
+ tet_infoline("OPTION --size-sort");
+
+ if (test_nm_out("--size-sort", "-size-sort") == true)
+ tet_result(TET_PASS);
+ else
+ tet_result(TET_FAIL);
+}
+
+static void
+test_sysv()
+{
+
+ tet_infoline("OPTION --format=sysv");
+
+ if (test_nm_out("--format=sysv", "-sysv") == true)
+ tet_result(TET_PASS);
+ else
+ tet_result(TET_FAIL);
+}
+
+static void
+test_undef()
+{
+ bool rtn = true;
+
+ tet_infoline("OPTION -u, --undefined-only");
+
+ rtn |= test_nm_out("-u", "-u");
+ rtn |= test_nm_out("--undefined-only", "-u");
+
+ tet_result(rtn == true ? TET_PASS : TET_FAIL);
+}
diff --git a/test/nm/ts/cpp_demangle/Makefile b/test/nm/ts/cpp_demangle/Makefile
new file mode 100644
index 0000000000000..800448e4ae0a8
--- /dev/null
+++ b/test/nm/ts/cpp_demangle/Makefile
@@ -0,0 +1,25 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TET_ROOT?= /usr/tet
+LIBDIR= $(TET_ROOT)/lib/tet3
+INCDIR= $(TET_ROOT)/inc/tet3
+CSTD= -std=iso9899:1999
+CFLAGS= -I$(INCDIR)
+TC= cpp_demangle-tc
+
+vector_str.o: ../../../vector_str.c
+ $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c
+
+cpp_demangle.o: ../../../cpp_demangle.c vector_str.o
+ $(CC) $(CSTD) -o cpp_demangle.o -c ../../../cpp_demangle.c
+
+$(TC): $(TC).c cpp_demangle.o $(INCDIR)/tet_api.h
+ $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \
+ cpp_demangle.o $(LIBDIR)/tcm.o \
+ $(LIBDIR)/libapi.a
+
+clean:
+ rm -f *.o $(TC)
+
+lint:
+ lint $(CFLAGS) $(TC) -ltcm
diff --git a/test/nm/ts/cpp_demangle/cpp_demangle-tc.c b/test/nm/ts/cpp_demangle/cpp_demangle-tc.c
new file mode 100644
index 0000000000000..361816b6ace14
--- /dev/null
+++ b/test/nm/ts/cpp_demangle/cpp_demangle-tc.c
@@ -0,0 +1,170 @@
+/*-
+ * Copyright (c) 2008 Hyogeol Lee <hyogeollee@gmail.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id: cpp_demangle-tc.c 2085 2011-10-27 05:06:47Z jkoshy $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <tet_api.h>
+
+#include "../../../cpp_demangle.h"
+
+static void startup();
+static void cleanup();
+static void test_func();
+static void test_oper();
+static void test_templ();
+static void test_scope();
+static void test_subst();
+static void test_cpp_demangle_ia64(const char *, const char *);
+
+void (*tet_startup)() = NULL;
+void (*tet_cleanup)() = NULL;
+
+struct tet_testlist tet_testlist[] = {
+ { test_func, 1},
+ { test_oper, 2},
+ { test_templ, 3},
+ { test_scope, 4},
+ { test_subst, 5},
+ { NULL, 0}
+};
+
+static void
+test_func()
+{
+
+ tet_infoline("FUNCTION");
+ test_cpp_demangle_ia64("_Z1fv", "f(void)");
+ test_cpp_demangle_ia64("_Z1fi", "f(int)");
+ test_cpp_demangle_ia64("_Z3foo3bar", "foo(bar)");
+}
+
+static void
+test_oper()
+{
+
+ tet_infoline("OPERATOR");
+ test_cpp_demangle_ia64("_Zrm1XS_", "operator%(X, X)");
+ test_cpp_demangle_ia64("_ZplR1XS0_", "operator+(X&, X&)");
+ test_cpp_demangle_ia64("_ZlsRK1XS1_",
+ "operator<<(X const&, X const&)");
+}
+
+static void
+test_templ()
+{
+
+ tet_infoline("TEMPLATE");
+ test_cpp_demangle_ia64("_ZN3FooIA4_iE3barE",
+ "Foo<int[4]>::bar");
+ test_cpp_demangle_ia64("_Z1fIiEvi", "void f<int>(int)");
+ test_cpp_demangle_ia64("_Z5firstI3DuoEvS0_",
+ "void first<Duo>(Duo)");
+ test_cpp_demangle_ia64("_Z5firstI3DuoEvT_",
+ "void first<Duo>(Duo)");
+ test_cpp_demangle_ia64("_Z3fooIiPFidEiEvv",
+ "void foo<int, int(*)(double), int>(void)");
+ test_cpp_demangle_ia64("_Z1fI1XEvPVN1AIT_E1TE",
+ "void f<X>(A<X>::T volatile*)");
+ test_cpp_demangle_ia64("_ZngILi42EEvN1AIXplT_Li2EEE1TE",
+ "void operator-<42>(A<J+2>::T)");
+ test_cpp_demangle_ia64("_Z4makeI7FactoryiET_IT0_Ev",
+ "Factory<int> make<Factory, int>(void)");
+}
+
+static void
+test_scope()
+{
+
+ tet_infoline("SCOPE");
+ test_cpp_demangle_ia64("_ZN1N1fE", "N::f");
+ test_cpp_demangle_ia64("_ZN6System5Sound4beepEv",
+ "System::Sound::beep(void)");
+ test_cpp_demangle_ia64("_ZN5Arena5levelE", "Arena::level");
+ test_cpp_demangle_ia64("_ZN5StackIiiE5levelE",
+ "Stack<int, int>::level");
+
+}
+
+static void
+test_subst()
+{
+
+ tet_infoline("SUBSTITUTION");
+ test_cpp_demangle_ia64("_Z3foo5Hello5WorldS0_S_",
+ "foo(Hello, World, World, Hello)");
+ test_cpp_demangle_ia64("_Z3fooPM2ABi", "foo(int AB::**)");
+ test_cpp_demangle_ia64("_ZlsRSoRKSs",
+ "operator<<(std::ostream&, std::string const&)");
+ test_cpp_demangle_ia64("_ZTI7a_class",
+ "typeinfo for (a_class)");
+ test_cpp_demangle_ia64("_ZSt5state", "std::state");
+ test_cpp_demangle_ia64("_ZNSt3_In4wardE", "std::_In::ward");
+}
+
+static void
+test_cpp_demangle_ia64(const char *org, const char *dst)
+{
+ char *rst;
+
+ if ((rst = cpp_demangle_ia64(org)) == NULL) {
+ const size_t len = strlen(org);
+ char *msg;
+
+ if ((msg = malloc(len + 8)) != NULL) {
+ snprintf(msg, len + 8, "Cannot demangle : %s", org);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strcmp(rst, dst) != 0) {
+ const size_t len = strlen(org) + strlen(rst) + strlen(dst);
+ char *msg;
+
+ if ((msg = malloc(len + 17)) != NULL) {
+ snprintf(msg, len + 17, "Diff for %s : %s != %s", org,
+ rst, dst);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ free(rst);
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ free(rst);
+
+ tet_result(TET_PASS);
+}
diff --git a/test/nm/ts/cpp_demangle_ARM/Makefile b/test/nm/ts/cpp_demangle_ARM/Makefile
new file mode 100644
index 0000000000000..2bf60463aafb1
--- /dev/null
+++ b/test/nm/ts/cpp_demangle_ARM/Makefile
@@ -0,0 +1,24 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+TET_ROOT?= /usr/tet
+LIBDIR= $(TET_ROOT)/lib/tet3
+INCDIR= $(TET_ROOT)/inc/tet3
+CSTD= -std=iso9899:1999
+CFLAGS= -I$(INCDIR)
+TC= cpp_demangle_ARM-tc
+
+vector_str.o: ../../../vector_str.c
+ $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c
+
+cpp_demangle_arm.o: ../../../cpp_demangle_arm.c vector_str.o
+ $(CC) $(CSTD) -o cpp_demangle_arm.o -c ../../../cpp_demangle_arm.c
+
+$(TC): $(TC).c cpp_demangle_arm.o $(INCDIR)/tet_api.h
+ $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \
+ cpp_demangle_arm.o $(LIBDIR)/tcm.o \
+ $(LIBDIR)/libapi.a
+
+clean:
+ rm -f *.o $(TC)
+
+lint:
+ lint $(CFLAGS) $(TC) -ltcm
diff --git a/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c b/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c
new file mode 100644
index 0000000000000..c3fe32fa2dcbf
--- /dev/null
+++ b/test/nm/ts/cpp_demangle_ARM/cpp_demangle_ARM-tc.c
@@ -0,0 +1,151 @@
+/*-
+ * Copyright (c) 2008 Hyogeol Lee <hyogeollee@gmail.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id: cpp_demangle_ARM-tc.c 2085 2011-10-27 05:06:47Z jkoshy $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <tet_api.h>
+
+#include "../../../cpp_demangle_arm.h"
+
+static void startup();
+static void cleanup();
+static void test_basic();
+static void test_modifier();
+static void test_subst();
+static void test_example();
+static void test_cpp_demangle_ARM(const char *, const char *);
+
+void (*tet_startup)() = NULL;
+void (*tet_cleanup)() = NULL;
+
+struct tet_testlist tet_testlist[] = {
+ { test_basic, 1},
+ { test_modifier, 2},
+ { test_subst, 3},
+ { test_example, 4},
+ { NULL, 0}
+};
+
+static void
+test_basic()
+{
+
+ tet_infoline("BASIC ENCODING");
+ test_cpp_demangle_ARM("f__Fide", "f(int, double, ...)");
+ test_cpp_demangle_ARM("f__Fv", "f(void)");
+ test_cpp_demangle_ARM("f__Q25Outer5Inner__Fv", "Outer::Inner::f(void)");
+ test_cpp_demangle_ARM("update__3recFd", "rec::update(double)");
+ test_cpp_demangle_ARM("f__1xFi", "x::f(int)");
+ test_cpp_demangle_ARM("f__F1xi", "f(x, int)");
+ test_cpp_demangle_ARM("__ct__1xFv", "x::x()");
+ test_cpp_demangle_ARM("__dt__1xFv", "x::~x()");
+ test_cpp_demangle_ARM("__opQ25Name16Class1__Q25Name16Class2",
+ "Name1::Class2::operator Name1::Class1()");
+}
+
+static void
+test_modifier()
+{
+
+ tet_infoline("MODIFIER and TYPE DECLARATOR");
+ test_cpp_demangle_ARM("f__FUi", "f(unsigned int)");
+ test_cpp_demangle_ARM("f__FCSc", "f(const signed char)");
+ test_cpp_demangle_ARM("f__FPc", "f(char*)");
+ test_cpp_demangle_ARM("f__FPCc", "f(const char*)");
+ test_cpp_demangle_ARM("f__FCPc", "f(char* const)");
+ test_cpp_demangle_ARM("f__FPFPc_i", "f(int (*)(char*))");
+ test_cpp_demangle_ARM("f__FA10_i", "f(int[10])");
+ test_cpp_demangle_ARM("f__FM1S7complex", "f(S::*complex)");
+}
+
+static void
+test_subst()
+{
+
+ tet_infoline("SUBSTITUTION");
+ test_cpp_demangle_ARM("f__F7complexT1", "f(complex, complex)");
+ test_cpp_demangle_ARM("f__F6recordN21", "f(record, record, record)");
+}
+
+static void
+test_example()
+{
+
+ tet_infoline("EXAMPLE");
+ test_cpp_demangle_ARM("__dt__12PathListHeadFv",
+ "PathListHead::~PathListHead()");
+ test_cpp_demangle_ARM("__ad__4PathFR4Path", "Path::operator&(Path&)");
+ test_cpp_demangle_ARM("first__4PathFv", "Path::first(void)");
+ test_cpp_demangle_ARM("last__4PathFv", "Path::last(void)");
+ test_cpp_demangle_ARM("findpath__4PathFR6String",
+ "Path::findpath(String&)");
+ test_cpp_demangle_ARM("fullpath__4PathFv", "Path::fullpath(void)");
+}
+
+static void
+test_cpp_demangle_ARM(const char *org, const char *dst)
+{
+ char *rst;
+
+ if ((rst = cpp_demangle_ARM(org)) == NULL) {
+ const size_t len = strlen(org);
+ char *msg;
+
+ if ((msg = malloc(len + 19)) != NULL) {
+ snprintf(msg, len + 19, "Cannot demangle : %s", org);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strcmp(rst, dst) != 0) {
+ const size_t len = strlen(org) + strlen(rst) + strlen(dst);
+ char *msg;
+
+ if ((msg = malloc(len + 17)) != NULL) {
+ snprintf(msg, len + 17, "Diff for %s : %s != %s", org,
+ rst, dst);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ free(rst);
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ free(rst);
+
+ tet_result(TET_PASS);
+}
diff --git a/test/nm/ts/cpp_demangle_gnu2/Makefile b/test/nm/ts/cpp_demangle_gnu2/Makefile
new file mode 100644
index 0000000000000..eba6ab3fd7ba4
--- /dev/null
+++ b/test/nm/ts/cpp_demangle_gnu2/Makefile
@@ -0,0 +1,24 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+TET_ROOT?= /usr/tet
+LIBDIR= $(TET_ROOT)/lib/tet3
+INCDIR= $(TET_ROOT)/inc/tet3
+CSTD= -std=iso9899:1999
+CFLAGS= -I$(INCDIR)
+TC= cpp_demangle_gnu2-tc
+
+vector_str.o: ../../../vector_str.c
+ $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c
+
+cpp_demangle_gnu2.o: ../../../cpp_demangle_gnu2.c vector_str.o
+ $(CC) $(CSTD) -o cpp_demangle_gnu2.o -c ../../../cpp_demangle_gnu2.c
+
+$(TC): $(TC).c cpp_demangle_gnu2.o $(INCDIR)/tet_api.h
+ $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o \
+ cpp_demangle_gnu2.o $(LIBDIR)/tcm.o \
+ $(LIBDIR)/libapi.a
+
+clean:
+ rm -f *.o $(TC)
+
+lint:
+ lint $(CFLAGS) $(TC) -ltcm
diff --git a/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c b/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c
new file mode 100644
index 0000000000000..d0c49dc362cbe
--- /dev/null
+++ b/test/nm/ts/cpp_demangle_gnu2/cpp_demangle_gnu2-tc.c
@@ -0,0 +1,172 @@
+/*-
+ * Copyright (c) 2008 Hyogeol Lee <hyogeollee@gmail.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id: cpp_demangle_gnu2-tc.c 2085 2011-10-27 05:06:47Z jkoshy $
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <tet_api.h>
+
+#include "../../../cpp_demangle_gnu2.h"
+
+static void startup();
+static void cleanup();
+static void test_basic();
+static void test_modifier();
+static void test_subst();
+static void test_example();
+static void test_gnu2();
+static void test_cpp_demangle_gnu2(const char *, const char *);
+
+void (*tet_startup)() = NULL;
+void (*tet_cleanup)() = NULL;
+
+struct tet_testlist tet_testlist[] = {
+ { test_basic, 1},
+ { test_modifier, 2},
+ { test_subst, 3},
+ { test_example, 4},
+ { test_gnu2, 5},
+ { NULL, 0}
+};
+
+static void
+test_basic()
+{
+
+ tet_infoline("BASIC ENCODING");
+ test_cpp_demangle_gnu2("f__Fide", "f(int, double, ...)");
+ test_cpp_demangle_gnu2("f__Fv", "f(void)");
+ test_cpp_demangle_gnu2("f__Q25Outer5Inner__Fv", "Outer::Inner::f(void)");
+ test_cpp_demangle_gnu2("update__3recFd", "rec::update(double)");
+ test_cpp_demangle_gnu2("f__1xFi", "x::f(int)");
+ test_cpp_demangle_gnu2("f__F1xi", "f(x, int)");
+ test_cpp_demangle_gnu2("__opQ25Name16Class1__Q25Name16Class2",
+ "Name1::Class2::operator Name1::Class1()");
+}
+
+static void
+test_modifier()
+{
+
+ tet_infoline("MODIFIER and TYPE DECLARATOR");
+ test_cpp_demangle_gnu2("f__FUi", "f(unsigned int)");
+ test_cpp_demangle_gnu2("f__FCSc", "f(const signed char)");
+ test_cpp_demangle_gnu2("f__FPc", "f(char*)");
+ test_cpp_demangle_gnu2("f__FPCc", "f(const char*)");
+ test_cpp_demangle_gnu2("f__FCPc", "f(char* const)");
+ test_cpp_demangle_gnu2("f__FPFPc_i", "f(int (*)(char*))");
+ test_cpp_demangle_gnu2("f__FA10_i", "f(int[10])");
+ test_cpp_demangle_gnu2("f__FM1S7complex", "f(S::*complex)");
+}
+
+static void
+test_subst()
+{
+
+ tet_infoline("SUBSTITUTION");
+ test_cpp_demangle_gnu2("f__F7complexT1", "f(complex, complex)");
+ test_cpp_demangle_gnu2("f__F6recordN21", "f(record, record, record)");
+}
+
+static void
+test_example()
+{
+
+ tet_infoline("EXAMPLE");
+ test_cpp_demangle_gnu2("__ad__4PathFR4Path", "Path::operator&(Path&)");
+ test_cpp_demangle_gnu2("first__4PathFv", "Path::first(void)");
+ test_cpp_demangle_gnu2("last__4PathFv", "Path::last(void)");
+ test_cpp_demangle_gnu2("findpath__4PathFR6String",
+ "Path::findpath(String&)");
+ test_cpp_demangle_gnu2("fullpath__4PathFv", "Path::fullpath(void)");
+}
+
+static void
+test_gnu2()
+{
+
+ tet_infoline("GNU 2 SPECIFIC");
+ test_cpp_demangle_gnu2("Func1__Q25Name16Class1",
+ "Name1::Class1::Func1(void)");
+ test_cpp_demangle_gnu2("_$_10bad_typeid",
+ "bad_typeid::~bad_typeid(void)");
+ test_cpp_demangle_gnu2("__16__user_type_infoPCc",
+ "__user_type_info::__user_type_info(const char*)");
+ test_cpp_demangle_gnu2("__Q25Name16Class1",
+ "Name1::Class1::Class1(void)");
+ test_cpp_demangle_gnu2("__tf10bad_typeid",
+ "bad_typeid type_info function");
+ test_cpp_demangle_gnu2("__ti10bad_typeid",
+ "bad_typeid type_info node");
+ test_cpp_demangle_gnu2("_vt$10bad_typeid",
+ "bad_typeid virtual table");
+ test_cpp_demangle_gnu2("what__C9exception",
+ "exception::what(void) const");
+}
+
+static void
+test_cpp_demangle_gnu2(const char *org, const char *dst)
+{
+ char *rst;
+
+ if ((rst = cpp_demangle_gnu2(org)) == NULL) {
+ const size_t len = strlen(org);
+ char *msg;
+
+ if ((msg = malloc(len + 19)) != NULL) {
+ snprintf(msg, len + 19, "Cannot demangle : %s", org);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strcmp(rst, dst) != 0) {
+ const size_t len = strlen(org) + strlen(rst) + strlen(dst);
+ char *msg;
+
+ if ((msg = malloc(len + 17)) != NULL) {
+ snprintf(msg, len + 17, "Diff for %s : %s != %s", org,
+ rst, dst);
+ tet_infoline(msg);
+ free(msg);
+ }
+
+ free(rst);
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ free(rst);
+
+ tet_result(TET_PASS);
+}
diff --git a/test/nm/ts/nm_archive1/Makefile b/test/nm/ts/nm_archive1/Makefile
new file mode 100644
index 0000000000000..653c53efdb048
--- /dev/null
+++ b/test/nm/ts/nm_archive1/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_ar
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_archive1/tc.sh b/test/nm/ts/nm_archive1/tc.sh
new file mode 100755
index 0000000000000..ca210f4a2764a
--- /dev/null
+++ b/test/nm/ts/nm_archive1/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-size-sort.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_ar"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_archive1/test_ar-dynamic.txt b/test/nm/ts/nm_archive1/test_ar-dynamic.txt
new file mode 100644
index 0000000000000..5c975f4e7f52d
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-dynamic.txt
@@ -0,0 +1,8 @@
+
+data.o:
+
+usage.o:
+
+parse.o:
+
+descr.o:
diff --git a/test/nm/ts/nm_archive1/test_ar-external.txt b/test/nm/ts/nm_archive1/test_ar-external.txt
new file mode 100644
index 0000000000000..a99b7c3f8678d
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-external.txt
@@ -0,0 +1,48 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000128 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+0000000000000704 T hid_init
+0000000000000000 T hid_parse_usage_in_page
+0000000000000240 T hid_parse_usage_page
+0000000000000368 T hid_usage_in_page
+0000000000000576 T hid_usage_page
+ U malloc
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+0000000000001744 T hid_end_parse
+0000000000000224 T hid_get_item
+0000000000001808 T hid_locate
+0000000000001952 T hid_report_size
+0000000000000080 T hid_start_parse
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+0000000000000000 T hid_dispose_report_desc
+0000000000000128 T hid_get_report_desc
+0000000000000016 T hid_use_report_desc
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-format-bsd.txt b/test/nm/ts/nm_archive1/test_ar-format-bsd.txt
new file mode 100644
index 0000000000000..06567bbd970ae
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-format-bsd.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000128 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+0000000000000100 b b.3186
+0000000000000000 b b.3204
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+0000000000000704 T hid_init
+0000000000000000 T hid_parse_usage_in_page
+0000000000000240 T hid_parse_usage_page
+0000000000000368 T hid_usage_in_page
+0000000000000576 T hid_usage_page
+ U malloc
+0000000000000120 b npages
+0000000000000124 b npagesmax
+0000000000000112 b pages
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+0000000000000000 t hid_clear_local
+0000000000001744 T hid_end_parse
+0000000000000224 T hid_get_item
+0000000000001808 T hid_locate
+0000000000001952 T hid_report_size
+0000000000000080 T hid_start_parse
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+0000000000000000 T hid_dispose_report_desc
+0000000000000128 T hid_get_report_desc
+0000000000000016 T hid_use_report_desc
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-format-posix.txt b/test/nm/ts/nm_archive1/test_ar-format-posix.txt
new file mode 100644
index 0000000000000..d000019d1424e
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-format-posix.txt
@@ -0,0 +1,50 @@
+test_ar[data.o]:
+hid_get_data T 0000000000000000 000000000000007f
+hid_set_data T 0000000000000080 0000000000000076
+test_ar[usage.o]:
+_CurrentRuneLocale U
+__mb_sb_limit U
+b.3186 b 0000000000000064 000000000000000a
+b.3204 b 0000000000000000 0000000000000064
+err U
+errx U
+fclose U
+fgets U
+fmtcheck U
+fopen U
+hid_init T 00000000000002c0 0000000000000368
+hid_parse_usage_in_page T 0000000000000000 00000000000000e3
+hid_parse_usage_page T 00000000000000f0 0000000000000079
+hid_usage_in_page T 0000000000000170 00000000000000c5
+hid_usage_page T 0000000000000240 000000000000007b
+malloc U
+npages b 0000000000000078 0000000000000004
+npagesmax b 000000000000007c 0000000000000004
+pages b 0000000000000070 0000000000000008
+realloc U
+sprintf U
+sscanf U
+strchr U
+strcmp U
+strdup U
+strncmp U
+test_ar[parse.o]:
+free U
+hid_clear_local t 0000000000000000 0000000000000047
+hid_end_parse T 00000000000006d0 000000000000003d
+hid_get_item T 00000000000000e0 00000000000005e6
+hid_locate T 0000000000000710 0000000000000081
+hid_report_size T 00000000000007a0 000000000000008f
+hid_start_parse T 0000000000000050 0000000000000085
+malloc U
+memcpy U
+memset U
+test_ar[descr.o]:
+__error U
+free U
+hid_dispose_report_desc T 0000000000000000 0000000000000005
+hid_get_report_desc T 0000000000000080 0000000000000040
+hid_use_report_desc T 0000000000000010 000000000000006e
+ioctl U
+malloc U
+memcpy U
diff --git a/test/nm/ts/nm_archive1/test_ar-print-file-name.txt b/test/nm/ts/nm_archive1/test_ar-print-file-name.txt
new file mode 100644
index 0000000000000..0dd3e5a3f9490
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-print-file-name.txt
@@ -0,0 +1,46 @@
+test_ar:data.o:0000000000000000 T hid_get_data
+test_ar:data.o:0000000000000128 T hid_set_data
+test_ar:usage.o: U _CurrentRuneLocale
+test_ar:usage.o: U __mb_sb_limit
+test_ar:usage.o:0000000000000100 b b.3186
+test_ar:usage.o:0000000000000000 b b.3204
+test_ar:usage.o: U err
+test_ar:usage.o: U errx
+test_ar:usage.o: U fclose
+test_ar:usage.o: U fgets
+test_ar:usage.o: U fmtcheck
+test_ar:usage.o: U fopen
+test_ar:usage.o:0000000000000704 T hid_init
+test_ar:usage.o:0000000000000000 T hid_parse_usage_in_page
+test_ar:usage.o:0000000000000240 T hid_parse_usage_page
+test_ar:usage.o:0000000000000368 T hid_usage_in_page
+test_ar:usage.o:0000000000000576 T hid_usage_page
+test_ar:usage.o: U malloc
+test_ar:usage.o:0000000000000120 b npages
+test_ar:usage.o:0000000000000124 b npagesmax
+test_ar:usage.o:0000000000000112 b pages
+test_ar:usage.o: U realloc
+test_ar:usage.o: U sprintf
+test_ar:usage.o: U sscanf
+test_ar:usage.o: U strchr
+test_ar:usage.o: U strcmp
+test_ar:usage.o: U strdup
+test_ar:usage.o: U strncmp
+test_ar:parse.o: U free
+test_ar:parse.o:0000000000000000 t hid_clear_local
+test_ar:parse.o:0000000000001744 T hid_end_parse
+test_ar:parse.o:0000000000000224 T hid_get_item
+test_ar:parse.o:0000000000001808 T hid_locate
+test_ar:parse.o:0000000000001952 T hid_report_size
+test_ar:parse.o:0000000000000080 T hid_start_parse
+test_ar:parse.o: U malloc
+test_ar:parse.o: U memcpy
+test_ar:parse.o: U memset
+test_ar:descr.o: U __error
+test_ar:descr.o: U free
+test_ar:descr.o:0000000000000000 T hid_dispose_report_desc
+test_ar:descr.o:0000000000000128 T hid_get_report_desc
+test_ar:descr.o:0000000000000016 T hid_use_report_desc
+test_ar:descr.o: U ioctl
+test_ar:descr.o: U malloc
+test_ar:descr.o: U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-print-size.txt b/test/nm/ts/nm_archive1/test_ar-print-size.txt
new file mode 100644
index 0000000000000..811ca3b279dbd
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-print-size.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 0000000000000127 T hid_get_data
+0000000000000128 0000000000000118 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+0000000000000100 0000000000000010 b b.3186
+0000000000000000 0000000000000100 b b.3204
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+0000000000000704 0000000000000872 T hid_init
+0000000000000000 0000000000000227 T hid_parse_usage_in_page
+0000000000000240 0000000000000121 T hid_parse_usage_page
+0000000000000368 0000000000000197 T hid_usage_in_page
+0000000000000576 0000000000000123 T hid_usage_page
+ U malloc
+0000000000000120 0000000000000004 b npages
+0000000000000124 0000000000000004 b npagesmax
+0000000000000112 0000000000000008 b pages
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+0000000000000000 0000000000000071 t hid_clear_local
+0000000000001744 0000000000000061 T hid_end_parse
+0000000000000224 0000000000001510 T hid_get_item
+0000000000001808 0000000000000129 T hid_locate
+0000000000001952 0000000000000143 T hid_report_size
+0000000000000080 0000000000000133 T hid_start_parse
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+0000000000000000 0000000000000005 T hid_dispose_report_desc
+0000000000000128 0000000000000064 T hid_get_report_desc
+0000000000000016 0000000000000110 T hid_use_report_desc
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt b/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt
new file mode 100644
index 0000000000000..7b0fc51c265f5
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-radix-hexa.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000080 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+0000000000000064 b b.3186
+0000000000000000 b b.3204
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+00000000000002c0 T hid_init
+0000000000000000 T hid_parse_usage_in_page
+00000000000000f0 T hid_parse_usage_page
+0000000000000170 T hid_usage_in_page
+0000000000000240 T hid_usage_page
+ U malloc
+0000000000000078 b npages
+000000000000007c b npagesmax
+0000000000000070 b pages
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+0000000000000000 t hid_clear_local
+00000000000006d0 T hid_end_parse
+00000000000000e0 T hid_get_item
+0000000000000710 T hid_locate
+00000000000007a0 T hid_report_size
+0000000000000050 T hid_start_parse
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+0000000000000000 T hid_dispose_report_desc
+0000000000000080 T hid_get_report_desc
+0000000000000010 T hid_use_report_desc
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-radix-octal.txt b/test/nm/ts/nm_archive1/test_ar-radix-octal.txt
new file mode 100644
index 0000000000000..135ae43293244
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-radix-octal.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000200 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+0000000000000144 b b.3186
+0000000000000000 b b.3204
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+0000000000001300 T hid_init
+0000000000000000 T hid_parse_usage_in_page
+0000000000000360 T hid_parse_usage_page
+0000000000000560 T hid_usage_in_page
+0000000000001100 T hid_usage_page
+ U malloc
+0000000000000170 b npages
+0000000000000174 b npagesmax
+0000000000000160 b pages
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+0000000000000000 t hid_clear_local
+0000000000003320 T hid_end_parse
+0000000000000340 T hid_get_item
+0000000000003420 T hid_locate
+0000000000003640 T hid_report_size
+0000000000000120 T hid_start_parse
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+0000000000000000 T hid_dispose_report_desc
+0000000000000200 T hid_get_report_desc
+0000000000000020 T hid_use_report_desc
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar-size-sort.txt b/test/nm/ts/nm_archive1/test_ar-size-sort.txt
new file mode 100644
index 0000000000000..62030c5fe5ad1
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-size-sort.txt
@@ -0,0 +1,29 @@
+
+data.o:
+0000000000000118 T hid_set_data
+0000000000000127 T hid_get_data
+
+usage.o:
+0000000000000004 b npages
+0000000000000004 b npagesmax
+0000000000000008 b pages
+0000000000000010 b b.3186
+0000000000000100 b b.3204
+0000000000000121 T hid_parse_usage_page
+0000000000000123 T hid_usage_page
+0000000000000197 T hid_usage_in_page
+0000000000000227 T hid_parse_usage_in_page
+0000000000000872 T hid_init
+
+parse.o:
+0000000000000061 T hid_end_parse
+0000000000000071 t hid_clear_local
+0000000000000129 T hid_locate
+0000000000000133 T hid_start_parse
+0000000000000143 T hid_report_size
+0000000000001510 T hid_get_item
+
+descr.o:
+0000000000000005 T hid_dispose_report_desc
+0000000000000064 T hid_get_report_desc
+0000000000000110 T hid_use_report_desc
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-no.txt b/test/nm/ts/nm_archive1/test_ar-sort-no.txt
new file mode 100644
index 0000000000000..f7024a09d0ec9
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-no.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000128 T hid_set_data
+
+usage.o:
+0000000000000120 b npages
+0000000000000112 b pages
+0000000000000000 b b.3204
+0000000000000100 b b.3186
+0000000000000124 b npagesmax
+0000000000000000 T hid_parse_usage_in_page
+ U strchr
+ U strncmp
+ U strcmp
+0000000000000240 T hid_parse_usage_page
+ U errx
+0000000000000368 T hid_usage_in_page
+ U sprintf
+ U fmtcheck
+0000000000000576 T hid_usage_page
+0000000000000704 T hid_init
+ U fopen
+ U fgets
+ U __mb_sb_limit
+ U _CurrentRuneLocale
+ U sscanf
+ U strdup
+ U realloc
+ U malloc
+ U err
+ U fclose
+
+parse.o:
+0000000000000000 t hid_clear_local
+0000000000000080 T hid_start_parse
+ U malloc
+ U memset
+0000000000000224 T hid_get_item
+ U memcpy
+ U free
+0000000000001744 T hid_end_parse
+0000000000001808 T hid_locate
+0000000000001952 T hid_report_size
+
+descr.o:
+0000000000000000 T hid_dispose_report_desc
+ U free
+0000000000000016 T hid_use_report_desc
+ U malloc
+ U memcpy
+ U __error
+0000000000000128 T hid_get_report_desc
+ U ioctl
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-num.txt b/test/nm/ts/nm_archive1/test_ar-sort-num.txt
new file mode 100644
index 0000000000000..b1f6da65d7f7d
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-num.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000128 T hid_set_data
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+ U malloc
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+0000000000000000 b b.3204
+0000000000000000 T hid_parse_usage_in_page
+0000000000000100 b b.3186
+0000000000000112 b pages
+0000000000000120 b npages
+0000000000000124 b npagesmax
+0000000000000240 T hid_parse_usage_page
+0000000000000368 T hid_usage_in_page
+0000000000000576 T hid_usage_page
+0000000000000704 T hid_init
+
+parse.o:
+ U free
+ U malloc
+ U memcpy
+ U memset
+0000000000000000 t hid_clear_local
+0000000000000080 T hid_start_parse
+0000000000000224 T hid_get_item
+0000000000001744 T hid_end_parse
+0000000000001808 T hid_locate
+0000000000001952 T hid_report_size
+
+descr.o:
+ U __error
+ U free
+ U ioctl
+ U malloc
+ U memcpy
+0000000000000000 T hid_dispose_report_desc
+0000000000000016 T hid_use_report_desc
+0000000000000128 T hid_get_report_desc
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt b/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt
new file mode 100644
index 0000000000000..f7024a09d0ec9
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-reverse-no.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000000 T hid_get_data
+0000000000000128 T hid_set_data
+
+usage.o:
+0000000000000120 b npages
+0000000000000112 b pages
+0000000000000000 b b.3204
+0000000000000100 b b.3186
+0000000000000124 b npagesmax
+0000000000000000 T hid_parse_usage_in_page
+ U strchr
+ U strncmp
+ U strcmp
+0000000000000240 T hid_parse_usage_page
+ U errx
+0000000000000368 T hid_usage_in_page
+ U sprintf
+ U fmtcheck
+0000000000000576 T hid_usage_page
+0000000000000704 T hid_init
+ U fopen
+ U fgets
+ U __mb_sb_limit
+ U _CurrentRuneLocale
+ U sscanf
+ U strdup
+ U realloc
+ U malloc
+ U err
+ U fclose
+
+parse.o:
+0000000000000000 t hid_clear_local
+0000000000000080 T hid_start_parse
+ U malloc
+ U memset
+0000000000000224 T hid_get_item
+ U memcpy
+ U free
+0000000000001744 T hid_end_parse
+0000000000001808 T hid_locate
+0000000000001952 T hid_report_size
+
+descr.o:
+0000000000000000 T hid_dispose_report_desc
+ U free
+0000000000000016 T hid_use_report_desc
+ U malloc
+ U memcpy
+ U __error
+0000000000000128 T hid_get_report_desc
+ U ioctl
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt b/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt
new file mode 100644
index 0000000000000..b939feeeba74f
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-reverse-num.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000128 T hid_set_data
+0000000000000000 T hid_get_data
+
+usage.o:
+0000000000000704 T hid_init
+0000000000000576 T hid_usage_page
+0000000000000368 T hid_usage_in_page
+0000000000000240 T hid_parse_usage_page
+0000000000000124 b npagesmax
+0000000000000120 b npages
+0000000000000112 b pages
+0000000000000100 b b.3186
+0000000000000000 T hid_parse_usage_in_page
+0000000000000000 b b.3204
+ U strncmp
+ U strdup
+ U strcmp
+ U strchr
+ U sscanf
+ U sprintf
+ U realloc
+ U malloc
+ U fopen
+ U fmtcheck
+ U fgets
+ U fclose
+ U errx
+ U err
+ U __mb_sb_limit
+ U _CurrentRuneLocale
+
+parse.o:
+0000000000001952 T hid_report_size
+0000000000001808 T hid_locate
+0000000000001744 T hid_end_parse
+0000000000000224 T hid_get_item
+0000000000000080 T hid_start_parse
+0000000000000000 t hid_clear_local
+ U memset
+ U memcpy
+ U malloc
+ U free
+
+descr.o:
+0000000000000128 T hid_get_report_desc
+0000000000000016 T hid_use_report_desc
+0000000000000000 T hid_dispose_report_desc
+ U memcpy
+ U malloc
+ U ioctl
+ U free
+ U __error
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt b/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt
new file mode 100644
index 0000000000000..6cf9cc72f6a96
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-reverse-size.txt
@@ -0,0 +1,29 @@
+
+data.o:
+0000000000000127 T hid_get_data
+0000000000000118 T hid_set_data
+
+usage.o:
+0000000000000872 T hid_init
+0000000000000227 T hid_parse_usage_in_page
+0000000000000197 T hid_usage_in_page
+0000000000000123 T hid_usage_page
+0000000000000121 T hid_parse_usage_page
+0000000000000100 b b.3204
+0000000000000010 b b.3186
+0000000000000008 b pages
+0000000000000004 b npagesmax
+0000000000000004 b npages
+
+parse.o:
+0000000000001510 T hid_get_item
+0000000000000143 T hid_report_size
+0000000000000133 T hid_start_parse
+0000000000000129 T hid_locate
+0000000000000071 t hid_clear_local
+0000000000000061 T hid_end_parse
+
+descr.o:
+0000000000000110 T hid_use_report_desc
+0000000000000064 T hid_get_report_desc
+0000000000000005 T hid_dispose_report_desc
diff --git a/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt b/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt
new file mode 100644
index 0000000000000..77d46315b7bf5
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sort-reverse.txt
@@ -0,0 +1,54 @@
+
+data.o:
+0000000000000128 T hid_set_data
+0000000000000000 T hid_get_data
+
+usage.o:
+ U strncmp
+ U strdup
+ U strcmp
+ U strchr
+ U sscanf
+ U sprintf
+ U realloc
+0000000000000112 b pages
+0000000000000124 b npagesmax
+0000000000000120 b npages
+ U malloc
+0000000000000576 T hid_usage_page
+0000000000000368 T hid_usage_in_page
+0000000000000240 T hid_parse_usage_page
+0000000000000000 T hid_parse_usage_in_page
+0000000000000704 T hid_init
+ U fopen
+ U fmtcheck
+ U fgets
+ U fclose
+ U errx
+ U err
+0000000000000000 b b.3204
+0000000000000100 b b.3186
+ U __mb_sb_limit
+ U _CurrentRuneLocale
+
+parse.o:
+ U memset
+ U memcpy
+ U malloc
+0000000000000080 T hid_start_parse
+0000000000001952 T hid_report_size
+0000000000001808 T hid_locate
+0000000000000224 T hid_get_item
+0000000000001744 T hid_end_parse
+0000000000000000 t hid_clear_local
+ U free
+
+descr.o:
+ U memcpy
+ U malloc
+ U ioctl
+0000000000000016 T hid_use_report_desc
+0000000000000128 T hid_get_report_desc
+0000000000000000 T hid_dispose_report_desc
+ U free
+ U __error
diff --git a/test/nm/ts/nm_archive1/test_ar-sysv.txt b/test/nm/ts/nm_archive1/test_ar-sysv.txt
new file mode 100644
index 0000000000000..f5cebe90c80bf
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-sysv.txt
@@ -0,0 +1,70 @@
+
+
+Symbols from test_ar[data.o]:
+
+Name Value Class Type Size Line Section
+
+hid_get_data |0000000000000000| T | FUNC|0000000000000127| |.text
+hid_set_data |0000000000000128| T | FUNC|0000000000000118| |.text
+
+
+Symbols from test_ar[usage.o]:
+
+Name Value Class Type Size Line Section
+
+_CurrentRuneLocale | | U | NOTYPE| | |*UND*
+__mb_sb_limit | | U | NOTYPE| | |*UND*
+b.3186 |0000000000000100| b | OBJECT|0000000000000010| |.bss
+b.3204 |0000000000000000| b | OBJECT|0000000000000100| |.bss
+err | | U | NOTYPE| | |*UND*
+errx | | U | NOTYPE| | |*UND*
+fclose | | U | NOTYPE| | |*UND*
+fgets | | U | NOTYPE| | |*UND*
+fmtcheck | | U | NOTYPE| | |*UND*
+fopen | | U | NOTYPE| | |*UND*
+hid_init |0000000000000704| T | FUNC|0000000000000872| |.text
+hid_parse_usage_in_page|0000000000000000| T | FUNC|0000000000000227| |.text
+hid_parse_usage_page|0000000000000240| T | FUNC|0000000000000121| |.text
+hid_usage_in_page |0000000000000368| T | FUNC|0000000000000197| |.text
+hid_usage_page |0000000000000576| T | FUNC|0000000000000123| |.text
+malloc | | U | NOTYPE| | |*UND*
+npages |0000000000000120| b | OBJECT|0000000000000004| |.bss
+npagesmax |0000000000000124| b | OBJECT|0000000000000004| |.bss
+pages |0000000000000112| b | OBJECT|0000000000000008| |.bss
+realloc | | U | NOTYPE| | |*UND*
+sprintf | | U | NOTYPE| | |*UND*
+sscanf | | U | NOTYPE| | |*UND*
+strchr | | U | NOTYPE| | |*UND*
+strcmp | | U | NOTYPE| | |*UND*
+strdup | | U | NOTYPE| | |*UND*
+strncmp | | U | NOTYPE| | |*UND*
+
+
+Symbols from test_ar[parse.o]:
+
+Name Value Class Type Size Line Section
+
+free | | U | NOTYPE| | |*UND*
+hid_clear_local |0000000000000000| t | FUNC|0000000000000071| |.text
+hid_end_parse |0000000000001744| T | FUNC|0000000000000061| |.text
+hid_get_item |0000000000000224| T | FUNC|0000000000001510| |.text
+hid_locate |0000000000001808| T | FUNC|0000000000000129| |.text
+hid_report_size |0000000000001952| T | FUNC|0000000000000143| |.text
+hid_start_parse |0000000000000080| T | FUNC|0000000000000133| |.text
+malloc | | U | NOTYPE| | |*UND*
+memcpy | | U | NOTYPE| | |*UND*
+memset | | U | NOTYPE| | |*UND*
+
+
+Symbols from test_ar[descr.o]:
+
+Name Value Class Type Size Line Section
+
+__error | | U | NOTYPE| | |*UND*
+free | | U | NOTYPE| | |*UND*
+hid_dispose_report_desc|0000000000000000| T | FUNC|0000000000000005| |.text
+hid_get_report_desc |0000000000000128| T | FUNC|0000000000000064| |.text
+hid_use_report_desc |0000000000000016| T | FUNC|0000000000000110| |.text
+ioctl | | U | NOTYPE| | |*UND*
+malloc | | U | NOTYPE| | |*UND*
+memcpy | | U | NOTYPE| | |*UND*
diff --git a/test/nm/ts/nm_archive1/test_ar-undef.txt b/test/nm/ts/nm_archive1/test_ar-undef.txt
new file mode 100644
index 0000000000000..3f1c6022e947b
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar-undef.txt
@@ -0,0 +1,33 @@
+
+data.o:
+
+usage.o:
+ U _CurrentRuneLocale
+ U __mb_sb_limit
+ U err
+ U errx
+ U fclose
+ U fgets
+ U fmtcheck
+ U fopen
+ U malloc
+ U realloc
+ U sprintf
+ U sscanf
+ U strchr
+ U strcmp
+ U strdup
+ U strncmp
+
+parse.o:
+ U free
+ U malloc
+ U memcpy
+ U memset
+
+descr.o:
+ U __error
+ U free
+ U ioctl
+ U malloc
+ U memcpy
diff --git a/test/nm/ts/nm_archive1/test_ar.uu b/test/nm/ts/nm_archive1/test_ar.uu
new file mode 100644
index 0000000000000..d92e8e9fdce4d
--- /dev/null
+++ b/test/nm/ts/nm_archive1/test_ar.uu
@@ -0,0 +1,356 @@
+begin 644 test_ar
+M(3QA<F-H/@HO("`@("`@("`@("`@("`@,3(P.#@T,#`W-B`@,"`@("`@,"`@
+M("`@,"`@("`@("`S,3(@("`@("`@8`H````/```!?````7P```>@```'H```
+M!Z````>@```'H```'Y0``!^4```?E```'Y0``!^4```V&```-A@``#88:&ED
+M7V=E=%]D871A`&AI9%]S971?9&%T80!H:61?<&%R<V5?=7-A9V5?:6Y?<&%G
+M90!H:61?<&%R<V5?=7-A9V5?<&%G90!H:61?=7-A9V5?:6Y?<&%G90!H:61?
+M=7-A9V5?<&%G90!H:61?:6YI=`!H:61?<W1A<G1?<&%R<V4`:&ED7V=E=%]I
+M=&5M`&AI9%]E;F1?<&%R<V4`:&ED7VQO8V%T90!H:61?<F5P;W)T7W-I>F4`
+M:&ED7V1I<W!O<V5?<F5P;W)T7V1E<V,`:&ED7W5S95]R97!O<G1?9&5S8P!H
+M:61?9V5T7W)E<&]R=%]D97-C``!D871A+F\O("`@("`@("`@,3(P.#@T,#`W
+M-B`@,"`@("`@,"`@("`@,3`P-C0T("`Q-3$R("`@("`@8`I_14Q&`@$!"0``
+M`````````0`^``$`````````````````````````.`(`````````````0```
+M````0``*``<`1(M>'$4QP$2+5F!%A=MT64.-!!-$B=+!Z@/!Z`.)P2G1>#](
+M8\)$C4D!2(T4!S'_#[8"C0S]`````/_'2/_"T^!!"<!$.<]UYT2)V4&#X@>X
+M`0```-/@1(G10=/X_\A!(<"+1@2%P'@$1(G`P[D@````1"G90=/@0=/X1(G`
+MPY!$BTY@BW8<N/____^#_B!T#;@!````B?'3X/_((<)!B<!"C00.1(G)@^$'
+M08G21(G*P>@#0=/@0=/BP>H#B<%!]]`IT7@N2&/"1(U)`4B--`<Q_XT,_0``
+M``!$B<!$B=+_Q]/X(@;3^@G0B`9(_\9$.<]UW_/#````)$9R965"4T0Z('-R
+M8R]L:6(O;&EB=7-B:&ED+V1A=&$N8RQV(#$N-B`R,#`S+S`T+S`Y(#`Q.C4R
+M.C0X(&UD;V1D($5X<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&
+M<F5E0E-$70``%``````````!>E(``7@0`0,,!PB0`0``%````!P`````````
+M?P``````````````%````#0`````````=@```````````````"YS>6UT86(`
+M+G-T<G1A8@`N<VAS=')T86(`+G1E>'0`+F1A=&$`+F)S<P`N8V]M;65N=``N
+M<F5L82YE:%]F<F%M90``````````````````````````````````````````
+M`````````````````````````````````````````````````!L````!````
+M!@```````````````````$``````````]@```````````````````!``````
+M```````````````A`````0````,````````````````````X`0``````````
+M```````````````````$````````````````````)P````@````#````````
+M````````````.`$`````````````````````````````!```````````````
+M`````"P````!`````````````````````````#@!````````;P``````````
+M``````````$````````````````````Z`````0````(`````````````````
+M``"H`0```````$@````````````````````(````````````````````-0``
+M``0`````````````````````````N`4````````P``````````@````%````
+M"``````````8`````````!$````#`````````````````````````/`!````
+M````1`````````````````````$````````````````````!`````@``````
+M``````````````````"X!````````-@`````````"0````<````(````````
+M`!@`````````"0````,`````````````````````````D`4````````B````
+M`````````````````0``````````````````````````````````````````
+M``````````$````$`/'_```````````````````````````#``$`````````
+M```````````````````#``(````````````````````````````#``,`````
+M```````````````````````#``4````````````````````````````#``0`
+M``````````````````````@````2``$```````````!_`````````!4````2
+M``$`@`````````!V``````````!D871A+F,`:&ED7V=E=%]D871A`&AI9%]S
+M971?9&%T80`````````@``````````H````"```````````````X````````
+M``H````"````@`````````!U<V%G92YO+R`@("`@("`@,3(P.#@T,#`W-B`@
+M,"`@("`@,"`@("`@,3`P-C0T("`V,#<R("`@("`@8`I_14Q&`@$!"0``````
+M`````0`^``$`````````````````````````P`@`````````````0```````
+M0``-``H`2(EL)-A,B6PDZ+XZ````2(E<)-!,B60DX$B)_4R)="3P3(E\)/A(
+M@^PXZ`````!(A<!)B<5U*+C_____2(M<)`A(BVPD$$R+9"083(ML)"!,BW0D
+M*$R+?"0P2(/$.,-$BST`````187_?LQ,BR4`````08G&,=M!*>[K#V9F9I#_
+MPTF#Q"!$.?MTK$F+/"1,B?)(B>[H`````(7`=>)-C74!18ML)!A%A>U^BTF+
+M7"00,>WK#__%2(/#$$0Y[0^$<____TB+.TR)]N@`````A<!UXD&+1"0(P>`0
+M"T,(Z5G___]F9F:09F:09F:09F:0055)B?U!5%532(/L"$B+!0````!(A<!T
+M3T2+)0`````Q[4B)PT6%Y'\1ZRQF9F:0_\5(@\,@1#GE=!U(BSM,B>[H````
+M`(7`=>:+0PA(@\0(6UU!7$%=PTB#Q`BX_____UM=05Q!7<.^`````+\!````
+M,<#H`````&9F9I!F9I!$BPT`````4P^WWT6%R7XO2(LU`````,'O$#')NB``
+M```Y?@AU$NLTBT0R"$R-!!9(@\(@.?AT(?_!1#G)=>F)VKX`````OP`````Q
+MP.@`````6[@`````PTR)QHM^&(7_?MQ(BT80BU`(@_K_="PYVG1-2(U0$#'V
+MZQAF9I!FD(M*"$B)T(/Y_W002(/"$#G9="W_QCG^=>?KI$B+.+X`````Z```
+M``")VDB)QK\`````,<#H`````%NX`````,-;2(L`PV9F9I!F9F:09F:02(/L
+M"$B+-0````!(A?9T6D2+!0````!%A<!^*3E^"'1!2(U6(#')ZQ5F9F:09F:0
+MBT((2(G62(/"(#GX="3_P40YP77KB?J^`````+\`````,<#H`````+@`````
+M2(/$",-(BP9(@\0(P[X`````OP$````QP.@`````9F:09I!!5[@`````O@``
+M``!!5D%505154TB![/@```!(A?](#T7'2(G'2(E$)`CH`````$B%P$F)Q0^$
+M%P,``$R-I"2`````3(U\)!!!O@$````QVTR)ZKYD````3(GGZ`````!(A<`/
+MA'L"``"`O"2`````(W13#[:$)(````"$P'1'#[[`A<!X18LU`````#GP?3M(
+MBPT`````2)CV1,%!0'0K3(GBZQD/OL"%P'@?.?!FD'T92)A(_\+V1,%!0'0-
+M#[9"`83`==]!_\;KA3'`3(GZO@````!,B>?H`````/_(#X6"`0``QX0D[```
+M`/____\/ME0D$(32=$F+-0````!(BST`````3(GYZQQF9I!FD$B8]D3'04!T
+M&0^V40'&`5](_\&$TG0;#[["A<!X!#GP?-Z`^BYTX@^V40%(_\&$TG7E3(G_
+MZ`````!(A<!(B<4/A-H!```/OH0D@````(7`>&`[!0````!]6$ACT$B+!0``
+M``#V1-!!0'1'2(7;#X0I`0``BT,<.4,8#XUN`0``2&-#&$B+4Q!!_\9(P>`$
+M2(DL$$AC0QB+E"3L````2(M+$$C!X`2)5`@(_T,8Z8[^__^+!0`````Y!0``
+M``!\.DB+/0````!(A?\/A.8```"-<`6)-0````!(8_9(P>8%Z`````!(B04`
+M````2(,]```````/A#<!``"+!0````"_H````$ACV/_`2,'C!4@#'0````")
+M!0````!(B2N+A"3L````QT,8`````,=#'`H```")0PCH`````$B%P$B)0Q`/
+MA6[^__^^`````+\!````Z`````!(C90D[````#'`3(GYO@````!,B>?H````
+M`(/X`@^$9O[__TB-E"3L````,<!,B?F^`````$R)Y^@`````@_@"#X1#_O__
+M2(M4)`A$B?&^`````+\!````,<#H`````$"WH,<%``````4```#H`````$B)
+M!0````#I&/___TR)[^@`````2('$^````%M=05Q!74%>05_#C7`*2(M[$(ES
+M'$AC]DC!Y@3H`````$B%P$B)0Q`/A6_^__^^`````+\!````Z`````"^````
+M`+\!````,<#H`````+X`````OP$````QP.@`````2(M4)`B^`````+\!````
+M,<#H```````````````````````````````````````D1G)E94)31#H@<W)C
+M+VQI8B]L:6)U<V)H:60O=7-A9V4N8RQV(#$N."`R,#`S+S`T+S`Y(#`Q.C4R
+M.C0X(&UD;V1D($5X<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&
+M<F5E0E-$70!N;R!H:60@=&%B;&4`)60`,'@E,#1X`'(`)7,`("H@)5M>"ET`
+M(#!X)7@@)5M>"ET`("5D("5;7@I=`'-T<F1U<`!R96%L;&]C`&%L;&]C`&UA
+M;&QO8P``+W5S<B]S:&%R92]M:7-C+W5S8E]H:61?=7-A9V5S``!F:6QE("5S
+M+"!L:6YE("5D+"!S>6YT87@@97)R;W(``!0``````````7I2``%X$`$##`<(
+MD`$``"0````<`````````.,`````68P%@P>-!(8&40Y`CP*.`P`````````D
+M````1`````````!Y`````$(.$(T"10X800X@00XH1`XP@P6&!(P#%````&P`
+M````````Q0````!(#A"#`@``%````(0`````````>P````!$#A``````-```
+M`)P`````````:`,```!"#A!,#AA"#B!"#BA!#C!!#CA'#K`"@P>&!HP%C02.
+M`X\"````````+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A8@`N<F5L82YT97AT
+M`"YD871A`"YB<W,`+F-O;6UE;G0`+G)O9&%T82YS='(Q+C$`+G)O9&%T82YS
+M='(Q+C@`+G)E;&$N96A?9G)A;64`````````````````````````````````
+M```````````````````````````````````````````````````````@````
+M`0````8```````````````````!``````````"@&```````````````````0
+M````````````````````&P````0`````````````````````````4!``````
+M``#P!@````````L````!````"``````````8`````````"8````!`````P``
+M`````````````````&@&``````````````````````````````0`````````
+M```````````L````"`````,```````````````````"`!@```````(``````
+M```````````````@````````````````````,0````$`````````````````
+M````````@`8```````!P`````````````````````0``````````````````
+M`#H````!````,@```````````````````/`&````````5P``````````````
+M``````$``````````0````````!)`````0```#(```````````````````!(
+M!P```````#\````````````````````(``````````$`````````70````$`
+M```"````````````````````B`<```````#0````````````````````"```
+M`````````````````%@````$`````````````````````````$`7````````
+M>``````````+````"`````@`````````&``````````1`````P``````````
+M``````````````!8"````````&<````````````````````!````````````
+M`````````0````(```````````````````````````P```````!(`P``````
+M``P````.````"``````````8``````````D````#````````````````````
+M`````$@/````````!@$```````````````````$`````````````````````
+M```````````````````````````````!````!`#Q_P``````````````````
+M`````````P`!`````````````````````````````P`#````````````````
+M`````````````P`$```````````````````````)`````0`$`'@`````````
+M!``````````0`````0`$`'``````````"````````````````P`&````````
+M```````````````6`````0`$````````````9``````````=`````0`$`&0`
+M````````"@```````````````P`'```````````````````````D`````0`$
+M`'P`````````!````````````````P`(````````````````````````````
+M`P`%```````````````````````N````$@`!````````````XP````````!&
+M````$`````````````````````````!-````$```````````````````````
+M``!5````$`````````````````````````!<````$@`!`/``````````>0``
+M``````!Q````$`````````````````````````!V````$@`!`'`!````````
+MQ0````````"(````$`````````````````````````"0````$```````````
+M``````````````"9````$@`!`$`"````````>P````````"H````$@`!`,`"
+M````````:`,```````"Q````$`````````````````````````"W````$```
+M``````````````````````"]````$`````````````````````````#+````
+M$`````````````````````````#>````$`````````````````````````#E
+M````$`````````````````````````#L````$```````````````````````
+M``#T````$`````````````````````````#[````$```````````````````
+M``````#_````$```````````````````````````=7-A9V4N8P!N<&%G97,`
+M<&%G97,`8BXS,C`T`&(N,S$X-@!N<&%G97-M87@`:&ED7W!A<G-E7W5S86=E
+M7VEN7W!A9V4`<W1R8VAR`'-T<FYC;7``<W1R8VUP`&AI9%]P87)S95]U<V%G
+M95]P86=E`&5R<G@`:&ED7W5S86=E7VEN7W!A9V4`<W!R:6YT9@!F;71C:&5C
+M:P!H:61?=7-A9V5?<&%G90!H:61?:6YI=`!F;W!E;@!F9V5T<P!?7VUB7W-B
+M7VQI;6ET`%]#=7)R96YT4G5N94QO8V%L90!S<V-A;F8`<W1R9'5P`')E86QL
+M;V,`;6%L;&]C`&5R<@!F8VQO<V4````K``````````(````/````_/______
+M__]B``````````(````$````=`````````!N``````````(````$````;```
+M``````"6``````````(````0````_/_________+``````````(````1````
+M_/________\``0````````(````$````;``````````,`0````````(````$
+M````=``````````R`0````````(````1````_/________]9`0````````H`
+M```'``````````````!E`0````````(````3````_/________]S`0``````
+M``(````$````=`````````"#`0````````(````$````;`````````"R`0``
+M``````H````'````$`````````"W`0````````H````$``````````````"^
+M`0````````(````5````_/_________$`0````````H````$````````````
+M```/`@````````H````'````#0`````````4`@````````(````6````_/__
+M______\>`@````````H````$```````````````E`@````````(````5````
+M_/________\K`@````````H````$``````````````!'`@````````(````$
+M````;`````````!3`@````````(````$````=`````````"(`@````````H`
+M```'````$`````````"-`@````````H````$````9`````````"4`@``````
+M``(````5````_/________^9`@````````H````$````9`````````"K`@``
+M``````H````'``````````````"W`@````````(````3````_/_________#
+M`@````````H````*``````````````#(`@````````H````'````%P``````
+M``#K`@````````(````9````_/________\<`P````````(````:````_/__
+M______](`P````````(````;````_/________]3`P````````(````<````
+M_/________^1`P````````H````'````'`````````"9`P````````(````=
+M````_/________^[`P````````(````;````_/_________"`P````````(`
+M```<````_/________\&!`````````(````>````_/________\D!```````
+M``(````;````_/________\P!`````````(````<````_/________^$!```
+M``````(````$````>`````````"*!`````````(````$````=`````````"3
+M!`````````(````$````;`````````"E!`````````(````$````>```````
+M``"Q!`````````(````?````_/________^X!`````````(````$````;```
+M``````"_!`````````(````$````:P````````#,!`````````(````$````
+M=`````````#A!`````````(````$````;`````````#G!`````````(````$
+M````=``````````'!0````````(````@````_/________\9!0````````H`
+M```'````4``````````C!0````````(````A````_/________\U!0``````
+M``H````'````)0`````````]!0````````(````=````_/________]8!0``
+M``````H````'````,0````````!@!0````````(````=````_/________]V
+M!0````````H````*````(`````````""!0````````(````3````_/______
+M__^+!0````````(````$````=`````````"4!0````````(````@````_/__
+M______^;!0````````(````$````;`````````"H!0````````(````B````
+M_/_________0!0````````(````?````_/_________B!0````````H````'
+M````0@````````#L!0````````(````A````_/_________Q!0````````H`
+M```'````.P````````#]!0````````(````A````_/________\"!@``````
+M``H````'````2@`````````.!@````````(````A````_/________\8!@``
+M``````H````'````&0`````````D!@````````(````A````_/________\@
+M``````````H````"``````````````!(``````````H````"````\```````
+M``!P``````````H````"````<`$```````"(``````````H````"````0`(`
+M``````"@``````````H````"````P`(```````!P87)S92YO+R`@("`@("`@
+M,3(P.#@T,#`W-B`@,"`@("`@,"`@("`@,3`P-C0T("`U-S`T("`@("`@8`I_
+M14Q&`@$!"0```````````0`^``$`````````````````````````(`L`````
+M````````0```````0``-``H`QT<H`````,='+`````#'1S``````QT<T````
+M`,='.`````#'1SP`````QT=``````,='1`````#'1T@`````QT=,`````,-F
+M9I!F9I!F9I!(B5PDX$R)9"3H28G\3(EL)/!,B70D^+^X`@``2(/L*$&)]4&)
+MUN@`````NK@"```Q]DB)QTB)P^@`````08L4)$F-1"0$1(FK+`(``$2)LS`"
+M``#&@Z@"````2(E#$$B)`TR+9"003(ML)!A(`=!,BW0D($B)0PA(B=A(BUPD
+M"$B#Q"C#9F9FD&9F9I!F9I!!5TR-OS@"``!!5DF)]D%53(UO&$%454B)_5-(
+M@^QXD$4QY(N-*`(``(7)=&.`O:@"````#X72`0``BT4<.T4@?!Z+E2`"``"#
+M^@$/A+0"``"#^@(/A+8"``!F9I!F9I"+E20"```YT0^/%00``(E-/,>%*`(`
+M``````!,B>_'A1@"````````Z)/^__]F9I!(BU402#M5"`^#X`$```^V`DB-
+M<@$\_@^$DP````^VT(G1@^$#@_D#B<@/A-4```!!B=2)UTB-!`9!P>P"P>\$
+M08/D`X/Y`4B)11`/A(8```!S,S'208/\`0^$A0```)`/@XP```"-1_B#^`0/
+MANL```"X_O___TB#Q'A;74%<05U!7D%?PX/Y`@^$M````(/Y!`^$B````$B#
+MQ'BX_____UM=05Q!74%>05_#9F9FD`^V2@(/MD(!2(UR!`^V>@/!X0@)P8G(
+M2`'P@_D!2(E%$`^%>O___T&#_`$/MA8/A7O___^#_PMV:[C]____9I#KA4&#
+M_`)T&;C[____9F:0Z7+___^Q!+@$````Z1____^#_PIV4+C\____Z5?___\/
+MME8!#[8&P>(("<(/MD8"P>`0"<(/MD8#P>`8"<+I$O___P^V5@$/M@;!X@@)
+MPND!____B?C_),4`````B<#_),4`````B?C_),4`````@+VH`@````^$#0$`
+M`+IP````3(G^3(GWZ`````"+13A!B48@QH6H`@```(N5,`(``$$Y5B"X`0``
+M``^$R/[____"#X79_?__Z;O^__^^`@```+D"````BX4L`@``T_BH`0^%=`(`
+M`$B+51!(.U4(QX48`@````````^"(/[__S'`Z8+^____16R)56A,B>ZZ<```
+M`$B)Y\=%<`,```#H`````$R)[XM<)"#H<OS__X"]J`(```#'A1@"````````
+M#X66`@``QH6H`@```;IP````2(GF3(G_B5PD(.@`````Z:O]__^^`0```+D!
+M````Z6+___\Q]C')Z5G___^)52CIB_W__P^^P(E%'.E0_?__F(E%'.E'_?__
+M_TULQT5P!````+IP````3(GN3(GWZ`````#'A1@"````````Z>C^__^)T8N5
+M&`(```M-&(/Z8XE-0`^/-_W__TACPHF,A8@```"-0@&)A1@"``#I'_W__PM5
+M&,>%'`(```$```")543I"OW__PM5&(E52.G__/__B55,Z??\__^)55#I[_S_
+M_XE55.GG_/__B5589F9FD.G;_/__B55<Z=/\__^)56#IR_S__XE59.G#_/__
+MB54LZ;O\__^)53#IL_S__XE5-.FK_/__B54XQX6T`@```````,>%L`(`````
+M``#'A:P"````````Z87\__^)51R)C2`"``#I=_S__XE5(.EO_/__B54\Z6?\
+M__^_<````&:0Z`````"Z<````$B)PTR)[DB)Q^@`````2(F=@````.D\_/__
+MP>(0B548Z3'\__](BYV`````3(GONG````!(B=[H`````$B)W^@`````Z0W\
+M__^+A1@"``!,B>Y,B??_R#G"#T["_X4D`@``NG````!(F(N$A8@```")14#H
+M`````(M%<(M5<(N$A:P"``!!B49@BT4T`825K`(``$G'1F@`````Z5#]__^)
+M572#X@*)=7`/A)\```"+E1P"``"+13S'A20"````````QT4\`0```(72B84H
+M`@``#X02^___BTU$.TU(?R6+E1@"``!(8\*#^F*)C(6(````?PF-0@&)A1@"
+M``#_P3E-2'W;QT5$`````,=%2`````#'A1P"````````Z<CZ__],B?Y,B?>Z
+M<````.@`````08E>(+IP````2(GF3(G_B5PD(.@`````Z:+\__^+A1P"``"%
+MP'0&BT5$B45`NG````!,B>Y,B??H`````(M%<$G'1F@`````3(GOBU5PBX2%
+MK`(``$&)1F"+13P/KT4T`825K`(``.A)^?__QX4<`@```````.E$_/__9F9F
+MD&9FD&9FD%5(B?U32(/L"$B+OX````!(A?]U!>L82(G?2(M?:.@`````2(7;
+M2(F=@````'7H2(/$"$B)[UM=Z0````!F9I!!54&)];X!````051!B=1$B<)5
+M4TB)RT2)X=/F2(/L".@`````2(G%2(G>2(GOZ`````"%P'0N1#EC6'7K]D-<
+M`77E1#EK*'7?2(GO9F9FD.@`````2(/$"+@!````6UU!7$%=PTB)[^@`````
+MQT,<`````$B#Q`@QP%M=05Q!7<-F9F:09F9FD&9F9I!F9I!!5T%6055%,>U!
+M5$&)]#'V18GG58G5NG````!32(G[2(/L>$B)Y^@`````1(GAO@$```!(B=_3
+MYHGJZ`````!(B<-(B>9(B=_H`````(7`=!<Y;"0@=>M$.60D6'7D1HNLNZP"
+M``#KVDB)W^@`````08U5#D2)Z(/`!P](PDB#Q'A;74%<05U!7D%?P?@#PP``
+M)$9R965"4T0Z('-R8R]L:6(O;&EB=7-B:&ED+W!A<G-E+F,L=B`Q+C$P(#(P
+M,#0O,#(O,3$@,C$Z,#DZ,3,@96UA>"!%>'`@)`!'0T,Z("A'3E4I(#0N,BXQ
+M(#(P,#<P-S$Y("!;1G)E94)31%T`````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````4``````````%Z4@`!>!`!`PP'")`!```4
+M````'`````````!'```````````````<````-`````````"%`````$J,!(,%
+M5@XPC@*-`P```#0```!4`````````.8%````0@X0CP))#AB.`T4.((T$1@XH
+M00XPA@:,!40..$0.L`&#!P``````'````(P`````````/0````!!#A"&`D0.
+M&$0.((,#```D````K`````````"!`````$(.$(T"2@X8C`-'#B!!#BB#!88$
+M3`XP-````-0`````````CP````!"#A!"#AA"#B"-!(X#CP)%#BB,!4D.,(8&
+M2`XX@P='#K`!````````+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A8@`N<F5L
+M82YT97AT`"YD871A`"YB<W,`+F-O;6UE;G0`+G)E;&$N<F]D871A`"YR96QA
+M+F5H7V9R86UE````````````````````````````````````````````````
+M`````````````````````````````````````````"`````!````!@``````
+M`````````````$``````````+P@``````````````````!``````````````
+M```````;````!`````````````````````````"0$````````(@"````````
+M"P````$````(`````````!@`````````)@````$````#````````````````
+M````<`@`````````````````````````````!````````````````````"P`
+M```(`````P```````````````````'`(````````````````````````````
+M``0````````````````````Q`````0````````````````````````!P"```
+M`````'`````````````````````!````````````````````/P````$````"
+M````````````````````X`@```````#@````````````````````"```````
+M`````````````#H````$`````````````````````````!@3````````H`(`
+M```````+````!@````@`````````&`````````!,`````0````(`````````
+M``````````#`"0````````@!```````````````````(````````````````
+M````1P````0`````````````````````````N!4```````"0``````````L`
+M```(````"``````````8`````````!$````#````````````````````````
+M`,@*````````5@````````````````````$````````````````````!````
+M`@````````````````````````!@#@```````+`!````````#`````D````(
+M`````````!@`````````"0````,`````````````````````````$!``````
+M``!Y`````````````````````0``````````````````````````````````
+M``````````````````$````$`/'_```````````````````````````#``$`
+M```````````````````````````#``,````````````````````````````#
+M``0```````````````````````D````"``$```````````!'````````````
+M```#``8````````````````````````````#``@`````````````````````
+M```````#``4``````````````````````!D````2``$`4`````````"%````
+M`````"D````0`````````````````````````#`````0````````````````
+M`````````#<````2``$`X`````````#F!0```````$0````0````````````
+M`````````````$L````0`````````````````````````%`````2``$`T`8`
+M```````]`````````%X````2``$`$`<```````"!`````````&D````2``$`
+MH`<```````"/``````````!P87)S92YC`&AI9%]C;&5A<E]L;V-A;`!H:61?
+M<W1A<G1?<&%R<V4`;6%L;&]C`&UE;7-E=`!H:61?9V5T7VET96T`;65M8W!Y
+M`&9R964`:&ED7V5N9%]P87)S90!H:61?;&]C871E`&AI9%]R97!O<G1?<VEZ
+M90``````````=P`````````"````"@```/S_________B0`````````"````
+M"P```/S_________R0(````````+````!@``````````````T@(````````+
+M````!@```&``````````VP(````````+````!@```(@`````````^`(`````
+M```"````#0```/S_________?@,````````"````#0```/S_________O`,`
+M```````"````#0```/S_________#P0````````"````#0```/S_________
+M$04````````"````"@```/S_________)`4````````"````#0```/S_____
+M____4@4````````"````#0```/S_________6@4````````"````#@```/S_
+M________C@4````````"````#0```/S_________1P8````````"````#0``
+M`/S_________7P8````````"````#0```/S_________A`8````````"````
+M#0```/S_________[P8````````"````#@```/S_________,0<````````"
+M````"0```/S_________/P<````````"````#````/S_________80<`````
+M```"````#P```/S_________>0<````````"````#P```/S_________QP<`
+M```````"````"P```/S_________VP<````````"````"0```/S_________
+MZ0<````````"````#````/S_________#`@````````"````#P```/S_____
+M____"0<````````"````#@```/S_________```````````!`````@```#0%
+M````````"``````````!`````@```.L$````````$``````````!`````@``
+M`/D$````````&``````````!`````@```-T#````````(``````````!````
+M`@```-T#````````*``````````!`````@```*T$````````,``````````!
+M`````@```+4$````````.``````````!`````@```+T$````````0```````
+M```!`````@```,4$````````2``````````!`````@````$%````````4```
+M```````!`````@````D%````````6``````````!`````@```#\%````````
+M8``````````!`````@```-0#````````:``````````!`````@```,4#````
+M````<``````````!`````@```&4#````````>``````````!`````@```"P#
+M````````@``````````!`````@```-\"````````B``````````!`````@``
+M`"($````````D``````````!`````@```%$$````````F``````````!````
+M`@```&8$````````H``````````!`````@```'$$````````J``````````!
+M`````@```'D$````````L``````````!`````@```($$````````N```````
+M```!`````@```(8"````````P``````````!`````@```(D$````````R```
+M```````!`````@```)4$````````T``````````!`````@```)T$````````
+MV``````````!`````@```*4$````````(``````````*`````@``````````
+M````.``````````*`````@```%``````````6``````````*`````@```.``
+M````````D``````````*`````@```-`&````````L``````````*`````@``
+M`!`'````````V``````````*`````@```*`'````````9&5S8W(N;R\@("`@
+M("`@(#$R,#@X-#`P-S8@(#`@("`@(#`@("`@(#$P,#8T-"`@,3DU,B`@("`@
+M(&`*?T5,1@(!`0D```````````$`/@`!`````````````````````````#`"
+M`````````````$```````$``"P`(`.D`````9F9FD&9F9I!F9I!,B60D\$&)
+M]$R);"3X28G]28U\)`A(B6PDZ$B)7"3@2(/L*(GUZ`````!(A<!T,$B->`2)
+M*$R)XDR)[DB)P^@`````2(G82(ML)!!(BUPD"$R+9"083(ML)"!(@\0HPS';
+MZ`````#'``P```#KU6:04S'`OA55!$1(@>P0!```2(GBQP0D`````.@`````
+M,=*%P'@0BS0D2(U\)`3H`````$B)PDB!Q!`$``!(B=!;PP`D1G)E94)31#H@
+M<W)C+VQI8B]L:6)U<V)H:60O9&5S8W(N8RQV(#$N."`R,#`S+S`T+S`Y(#`Q
+M.C4R.C0X(&UD;V1D($5X<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@
+M(%M&<F5E0E-$70`4``````````%Z4@`!>!`!`PP'")`!```4````'```````
+M```%```````````````<````-`````````!N`````$6,`TB-`E8.,(,%A@0`
+M`!P```!4`````````$``````00X03@Z@"(,"`````````"YS>6UT86(`+G-T
+M<G1A8@`N<VAS=')T86(`+G)E;&$N=&5X=``N9&%T80`N8G-S`"YC;VUM96YT
+M`"YR96QA+F5H7V9R86UE````````````````````````````````````````
+M````````````````````````````````````````````````````````(```
+M``$````&````````````````````0`````````#`````````````````````
+M$````````````````````!L````$`````````````````````````,@&````
+M````D``````````)`````0````@`````````&``````````F`````0````,`
+M`````````````````````0`````````````````````````````$````````
+M````````````+`````@````#``````````````````````$`````````````
+M````````````````!````````````````````#$````!````````````````
+M```````````!````````<`````````````````````$`````````````````
+M```_`````0````(```````````````````!P`0```````'``````````````
+M```````(````````````````````.@````0`````````````````````````
+M6`<```````!(``````````D````&````"``````````8`````````!$````#
+M`````````````````````````.`!````````20````````````````````$`
+M```````````````````!`````@````````````````````````#P!```````
+M`&@!````````"@````<````(`````````!@`````````"0````,`````````
+M````````````````6`8```````!J`````````````````````0``````````
+M``````````````````````````````````````````$````$`/'_````````
+M```````````````````#``$````````````````````````````#``,`````
+M```````````````````````#``0````````````````````````````#``8`
+M```````````````````````````#``4```````````````````````D````2
+M``$````````````%`````````"$````0`````````````````````````"8`
+M```2``$`$`````````!N`````````#H````0````````````````````````
+M`$$````0`````````````````````````$@````0````````````````````
+M`````%`````2``$`@`````````!``````````&0````0````````````````
+M``````````!D97-C<BYC`&AI9%]D:7-P;W-E7W)E<&]R=%]D97-C`&9R964`
+M:&ED7W5S95]R97!O<G1?9&5S8P!M86QL;V,`;65M8W!Y`%]?97)R;W(`:&ED
+M7V=E=%]R97!O<G1?9&5S8P!I;V-T;``````````V``````````(````*````
+M_/________]/``````````(````+````_/________]R``````````(````,
+M````_/________^:``````````(````.````_/________^M``````````(`
+M```)````_/________\!``````````(````(````_/________\@````````
+M``H````"```````````````X``````````H````"````$`````````!8````
+4``````H````"````@```````````
+`
+end
diff --git a/test/nm/ts/nm_archive2/Makefile b/test/nm/ts/nm_archive2/Makefile
new file mode 100644
index 0000000000000..653c53efdb048
--- /dev/null
+++ b/test/nm/ts/nm_archive2/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_ar
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_archive2/tc.sh b/test/nm/ts/nm_archive2/tc.sh
new file mode 100755
index 0000000000000..3b184ecc1451a
--- /dev/null
+++ b/test/nm/ts/nm_archive2/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_ar"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_archive2/test_ar-dynamic.txt b/test/nm/ts/nm_archive2/test_ar-dynamic.txt
new file mode 100644
index 0000000000000..4211671bd733e
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-dynamic.txt
@@ -0,0 +1,8 @@
+
+memstat_all.o:
+
+memstat_uma.o:
+
+memstat_malloc.o:
+
+memstat.o:
diff --git a/test/nm/ts/nm_archive2/test_ar-external.txt b/test/nm/ts/nm_archive2/test_ar-external.txt
new file mode 100644
index 0000000000000..05a0d2a229d5b
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-external.txt
@@ -0,0 +1,83 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000080 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 T memstat_kvm_uma
+ U memstat_mtl_find
+0000000000001408 T memstat_sysctl_uma
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 T memstat_kvm_malloc
+ U memstat_mtl_find
+0000000000000880 T memstat_sysctl_malloc
+ U sysctlbyname
+
+memstat.o:
+0000000000001024 T _memstat_mt_allocate
+0000000000000128 T _memstat_mt_reset_stats
+0000000000001280 T _memstat_mtl_empty
+ U free
+ U malloc
+ U memset
+0000000000000368 T memstat_get_allocator
+0000000000000512 T memstat_get_bytes
+0000000000000400 T memstat_get_byteslimit
+0000000000000576 T memstat_get_caller_pointer
+0000000000000608 T memstat_get_caller_uint64
+0000000000000528 T memstat_get_count
+0000000000000384 T memstat_get_countlimit
+0000000000000560 T memstat_get_failures
+0000000000000544 T memstat_get_free
+0000000000000656 T memstat_get_kegfree
+0000000000000448 T memstat_get_memalloced
+0000000000000464 T memstat_get_memfreed
+0000000000000352 T memstat_get_name
+0000000000000480 T memstat_get_numallocs
+0000000000000496 T memstat_get_numfrees
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000960 T memstat_get_percpu_free
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000432 T memstat_get_size
+0000000000000416 T memstat_get_sizemask
+0000000000000640 T memstat_get_zonefree
+0000000000000976 T memstat_mtl_alloc
+0000000000001184 T memstat_mtl_find
+0000000000000080 T memstat_mtl_first
+0000000000001360 T memstat_mtl_free
+0000000000000112 T memstat_mtl_geterror
+0000000000000096 T memstat_mtl_next
+0000000000000592 T memstat_set_caller_pointer
+0000000000000624 T memstat_set_caller_uint64
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000000 T memstat_strerror
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-format-bsd.txt b/test/nm/ts/nm_archive2/test_ar-format-bsd.txt
new file mode 100644
index 0000000000000..ecc892d9cad0d
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-format-bsd.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000080 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000064 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 T memstat_kvm_uma
+ U memstat_mtl_find
+0000000000001408 T memstat_sysctl_uma
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000064 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 T memstat_kvm_malloc
+ U memstat_mtl_find
+0000000000000880 T memstat_sysctl_malloc
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat.o:
+0000000000001024 T _memstat_mt_allocate
+0000000000000128 T _memstat_mt_reset_stats
+0000000000001280 T _memstat_mtl_empty
+ U free
+ U malloc
+ U memset
+0000000000000368 T memstat_get_allocator
+0000000000000512 T memstat_get_bytes
+0000000000000400 T memstat_get_byteslimit
+0000000000000576 T memstat_get_caller_pointer
+0000000000000608 T memstat_get_caller_uint64
+0000000000000528 T memstat_get_count
+0000000000000384 T memstat_get_countlimit
+0000000000000560 T memstat_get_failures
+0000000000000544 T memstat_get_free
+0000000000000656 T memstat_get_kegfree
+0000000000000448 T memstat_get_memalloced
+0000000000000464 T memstat_get_memfreed
+0000000000000352 T memstat_get_name
+0000000000000480 T memstat_get_numallocs
+0000000000000496 T memstat_get_numfrees
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000960 T memstat_get_percpu_free
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000432 T memstat_get_size
+0000000000000416 T memstat_get_sizemask
+0000000000000640 T memstat_get_zonefree
+0000000000000976 T memstat_mtl_alloc
+0000000000001184 T memstat_mtl_find
+0000000000000080 T memstat_mtl_first
+0000000000001360 T memstat_mtl_free
+0000000000000112 T memstat_mtl_geterror
+0000000000000096 T memstat_mtl_next
+0000000000000592 T memstat_set_caller_pointer
+0000000000000624 T memstat_set_caller_uint64
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000000 T memstat_strerror
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-format-posix.txt b/test/nm/ts/nm_archive2/test_ar-format-posix.txt
new file mode 100644
index 0000000000000..e08c38e0a7c1e
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-format-posix.txt
@@ -0,0 +1,85 @@
+test_ar[memstat_all.o]:
+memstat_kvm_all T 0000000000000000 0000000000000047
+memstat_kvm_malloc U
+memstat_kvm_uma U
+memstat_sysctl_all T 0000000000000050 0000000000000047
+memstat_sysctl_malloc U
+memstat_sysctl_uma U
+test_ar[memstat_uma.o]:
+__error U
+_memstat_mt_allocate U
+_memstat_mt_reset_stats U
+_memstat_mtl_empty U
+free U
+kread t 0000000000000040 0000000000000027
+kread_symbol t 0000000000000000 000000000000003f
+kvm_nlist U
+kvm_read U
+malloc U
+memstat_kvm_uma T 0000000000000070 000000000000050e
+memstat_mtl_find U
+memstat_sysctl_uma T 0000000000000580 00000000000003cc
+namelist d 0000000000000000 0000000000000060
+sysctlbyname U
+test_ar[memstat_malloc.o]:
+__error U
+_memstat_mt_allocate U
+_memstat_mt_reset_stats U
+_memstat_mtl_empty U
+free U
+kread t 0000000000000040 0000000000000027
+kread_symbol t 0000000000000000 000000000000003f
+kvm_nlist U
+kvm_read U
+malloc U
+memstat_kvm_malloc T 0000000000000070 00000000000002fd
+memstat_mtl_find U
+memstat_sysctl_malloc T 0000000000000370 000000000000037e
+namelist d 0000000000000000 0000000000000048
+sysctlbyname U
+test_ar[memstat.o]:
+_memstat_mt_allocate T 0000000000000400 000000000000009d
+_memstat_mt_reset_stats T 0000000000000080 00000000000000d4
+_memstat_mtl_empty T 0000000000000500 0000000000000043
+free U
+malloc U
+memset U
+memstat_get_allocator T 0000000000000170 0000000000000003
+memstat_get_bytes T 0000000000000200 0000000000000005
+memstat_get_byteslimit T 0000000000000190 0000000000000005
+memstat_get_caller_pointer T 0000000000000240 000000000000000c
+memstat_get_caller_uint64 T 0000000000000260 000000000000000c
+memstat_get_count T 0000000000000210 0000000000000005
+memstat_get_countlimit T 0000000000000180 0000000000000005
+memstat_get_failures T 0000000000000230 0000000000000008
+memstat_get_free T 0000000000000220 0000000000000005
+memstat_get_kegfree T 0000000000000290 0000000000000008
+memstat_get_memalloced T 00000000000001c0 0000000000000005
+memstat_get_memfreed T 00000000000001d0 0000000000000005
+memstat_get_name T 0000000000000160 0000000000000005
+memstat_get_numallocs T 00000000000001e0 0000000000000005
+memstat_get_numfrees T 00000000000001f0 0000000000000005
+memstat_get_percpu_caller_pointer T 0000000000000340 0000000000000020
+memstat_get_percpu_caller_uint64 T 0000000000000380 0000000000000020
+memstat_get_percpu_free T 00000000000003c0 000000000000000c
+memstat_get_percpu_memalloced T 00000000000002a0 0000000000000013
+memstat_get_percpu_memfreed T 00000000000002c0 0000000000000013
+memstat_get_percpu_numallocs T 00000000000002e0 0000000000000013
+memstat_get_percpu_numfrees T 0000000000000300 0000000000000013
+memstat_get_percpu_sizemask T 0000000000000320 0000000000000013
+memstat_get_size T 00000000000001b0 0000000000000005
+memstat_get_sizemask T 00000000000001a0 0000000000000005
+memstat_get_zonefree T 0000000000000280 0000000000000008
+memstat_mtl_alloc T 00000000000003d0 000000000000002e
+memstat_mtl_find T 00000000000004a0 0000000000000059
+memstat_mtl_first T 0000000000000050 0000000000000004
+memstat_mtl_free T 0000000000000550 0000000000000012
+memstat_mtl_geterror T 0000000000000070 0000000000000004
+memstat_mtl_next T 0000000000000060 0000000000000008
+memstat_set_caller_pointer T 0000000000000250 000000000000000c
+memstat_set_caller_uint64 T 0000000000000270 000000000000000c
+memstat_set_percpu_caller_pointer T 0000000000000360 0000000000000020
+memstat_set_percpu_caller_uint64 T 00000000000003a0 0000000000000020
+memstat_strerror T 0000000000000000 0000000000000049
+strcmp U
+strlcpy U
diff --git a/test/nm/ts/nm_archive2/test_ar-format-sysv.txt b/test/nm/ts/nm_archive2/test_ar-format-sysv.txt
new file mode 100644
index 0000000000000..cb7c3a3581532
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-format-sysv.txt
@@ -0,0 +1,105 @@
+
+
+Symbols from test_ar[memstat_all.o]:
+
+Name Value Class Type Size Line Section
+
+memstat_kvm_all |0000000000000000| T | FUNC|0000000000000071| |.text
+memstat_kvm_malloc | | U | NOTYPE| | |*UND*
+memstat_kvm_uma | | U | NOTYPE| | |*UND*
+memstat_sysctl_all |0000000000000080| T | FUNC|0000000000000071| |.text
+memstat_sysctl_malloc| | U | NOTYPE| | |*UND*
+memstat_sysctl_uma | | U | NOTYPE| | |*UND*
+
+
+Symbols from test_ar[memstat_uma.o]:
+
+Name Value Class Type Size Line Section
+
+__error | | U | NOTYPE| | |*UND*
+_memstat_mt_allocate| | U | NOTYPE| | |*UND*
+_memstat_mt_reset_stats| | U | NOTYPE| | |*UND*
+_memstat_mtl_empty | | U | NOTYPE| | |*UND*
+free | | U | NOTYPE| | |*UND*
+kread |0000000000000064| t | FUNC|0000000000000039| |.text
+kread_symbol |0000000000000000| t | FUNC|0000000000000063| |.text
+kvm_nlist | | U | NOTYPE| | |*UND*
+kvm_read | | U | NOTYPE| | |*UND*
+malloc | | U | NOTYPE| | |*UND*
+memstat_kvm_uma |0000000000000112| T | FUNC|0000000000001294| |.text
+memstat_mtl_find | | U | NOTYPE| | |*UND*
+memstat_sysctl_uma |0000000000001408| T | FUNC|0000000000000972| |.text
+namelist |0000000000000000| d | OBJECT|0000000000000096| |.data
+sysctlbyname | | U | NOTYPE| | |*UND*
+
+
+Symbols from test_ar[memstat_malloc.o]:
+
+Name Value Class Type Size Line Section
+
+__error | | U | NOTYPE| | |*UND*
+_memstat_mt_allocate| | U | NOTYPE| | |*UND*
+_memstat_mt_reset_stats| | U | NOTYPE| | |*UND*
+_memstat_mtl_empty | | U | NOTYPE| | |*UND*
+free | | U | NOTYPE| | |*UND*
+kread |0000000000000064| t | FUNC|0000000000000039| |.text
+kread_symbol |0000000000000000| t | FUNC|0000000000000063| |.text
+kvm_nlist | | U | NOTYPE| | |*UND*
+kvm_read | | U | NOTYPE| | |*UND*
+malloc | | U | NOTYPE| | |*UND*
+memstat_kvm_malloc |0000000000000112| T | FUNC|0000000000000765| |.text
+memstat_mtl_find | | U | NOTYPE| | |*UND*
+memstat_sysctl_malloc|0000000000000880| T | FUNC|0000000000000894| |.text
+namelist |0000000000000000| d | OBJECT|0000000000000072| |.data
+sysctlbyname | | U | NOTYPE| | |*UND*
+
+
+Symbols from test_ar[memstat.o]:
+
+Name Value Class Type Size Line Section
+
+_memstat_mt_allocate|0000000000001024| T | FUNC|0000000000000157| |.text
+_memstat_mt_reset_stats|0000000000000128| T | FUNC|0000000000000212| |.text
+_memstat_mtl_empty |0000000000001280| T | FUNC|0000000000000067| |.text
+free | | U | NOTYPE| | |*UND*
+malloc | | U | NOTYPE| | |*UND*
+memset | | U | NOTYPE| | |*UND*
+memstat_get_allocator|0000000000000368| T | FUNC|0000000000000003| |.text
+memstat_get_bytes |0000000000000512| T | FUNC|0000000000000005| |.text
+memstat_get_byteslimit|0000000000000400| T | FUNC|0000000000000005| |.text
+memstat_get_caller_pointer|0000000000000576| T | FUNC|0000000000000012| |.text
+memstat_get_caller_uint64|0000000000000608| T | FUNC|0000000000000012| |.text
+memstat_get_count |0000000000000528| T | FUNC|0000000000000005| |.text
+memstat_get_countlimit|0000000000000384| T | FUNC|0000000000000005| |.text
+memstat_get_failures|0000000000000560| T | FUNC|0000000000000008| |.text
+memstat_get_free |0000000000000544| T | FUNC|0000000000000005| |.text
+memstat_get_kegfree |0000000000000656| T | FUNC|0000000000000008| |.text
+memstat_get_memalloced|0000000000000448| T | FUNC|0000000000000005| |.text
+memstat_get_memfreed|0000000000000464| T | FUNC|0000000000000005| |.text
+memstat_get_name |0000000000000352| T | FUNC|0000000000000005| |.text
+memstat_get_numallocs|0000000000000480| T | FUNC|0000000000000005| |.text
+memstat_get_numfrees|0000000000000496| T | FUNC|0000000000000005| |.text
+memstat_get_percpu_caller_pointer|0000000000000832| T | FUNC|0000000000000032| |.text
+memstat_get_percpu_caller_uint64|0000000000000896| T | FUNC|0000000000000032| |.text
+memstat_get_percpu_free|0000000000000960| T | FUNC|0000000000000012| |.text
+memstat_get_percpu_memalloced|0000000000000672| T | FUNC|0000000000000019| |.text
+memstat_get_percpu_memfreed|0000000000000704| T | FUNC|0000000000000019| |.text
+memstat_get_percpu_numallocs|0000000000000736| T | FUNC|0000000000000019| |.text
+memstat_get_percpu_numfrees|0000000000000768| T | FUNC|0000000000000019| |.text
+memstat_get_percpu_sizemask|0000000000000800| T | FUNC|0000000000000019| |.text
+memstat_get_size |0000000000000432| T | FUNC|0000000000000005| |.text
+memstat_get_sizemask|0000000000000416| T | FUNC|0000000000000005| |.text
+memstat_get_zonefree|0000000000000640| T | FUNC|0000000000000008| |.text
+memstat_mtl_alloc |0000000000000976| T | FUNC|0000000000000046| |.text
+memstat_mtl_find |0000000000001184| T | FUNC|0000000000000089| |.text
+memstat_mtl_first |0000000000000080| T | FUNC|0000000000000004| |.text
+memstat_mtl_free |0000000000001360| T | FUNC|0000000000000018| |.text
+memstat_mtl_geterror|0000000000000112| T | FUNC|0000000000000004| |.text
+memstat_mtl_next |0000000000000096| T | FUNC|0000000000000008| |.text
+memstat_set_caller_pointer|0000000000000592| T | FUNC|0000000000000012| |.text
+memstat_set_caller_uint64|0000000000000624| T | FUNC|0000000000000012| |.text
+memstat_set_percpu_caller_pointer|0000000000000864| T | FUNC|0000000000000032| |.text
+memstat_set_percpu_caller_uint64|0000000000000928| T | FUNC|0000000000000032| |.text
+memstat_strerror |0000000000000000| T | FUNC|0000000000000073| |.text
+strcmp | | U | NOTYPE| | |*UND*
+strlcpy | | U | NOTYPE| | |*UND*
diff --git a/test/nm/ts/nm_archive2/test_ar-print-file-name.txt b/test/nm/ts/nm_archive2/test_ar-print-file-name.txt
new file mode 100644
index 0000000000000..64463bda36c33
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-print-file-name.txt
@@ -0,0 +1,81 @@
+test_ar:memstat_all.o:0000000000000000 T memstat_kvm_all
+test_ar:memstat_all.o: U memstat_kvm_malloc
+test_ar:memstat_all.o: U memstat_kvm_uma
+test_ar:memstat_all.o:0000000000000080 T memstat_sysctl_all
+test_ar:memstat_all.o: U memstat_sysctl_malloc
+test_ar:memstat_all.o: U memstat_sysctl_uma
+test_ar:memstat_uma.o: U __error
+test_ar:memstat_uma.o: U _memstat_mt_allocate
+test_ar:memstat_uma.o: U _memstat_mt_reset_stats
+test_ar:memstat_uma.o: U _memstat_mtl_empty
+test_ar:memstat_uma.o: U free
+test_ar:memstat_uma.o:0000000000000064 t kread
+test_ar:memstat_uma.o:0000000000000000 t kread_symbol
+test_ar:memstat_uma.o: U kvm_nlist
+test_ar:memstat_uma.o: U kvm_read
+test_ar:memstat_uma.o: U malloc
+test_ar:memstat_uma.o:0000000000000112 T memstat_kvm_uma
+test_ar:memstat_uma.o: U memstat_mtl_find
+test_ar:memstat_uma.o:0000000000001408 T memstat_sysctl_uma
+test_ar:memstat_uma.o:0000000000000000 d namelist
+test_ar:memstat_uma.o: U sysctlbyname
+test_ar:memstat_malloc.o: U __error
+test_ar:memstat_malloc.o: U _memstat_mt_allocate
+test_ar:memstat_malloc.o: U _memstat_mt_reset_stats
+test_ar:memstat_malloc.o: U _memstat_mtl_empty
+test_ar:memstat_malloc.o: U free
+test_ar:memstat_malloc.o:0000000000000064 t kread
+test_ar:memstat_malloc.o:0000000000000000 t kread_symbol
+test_ar:memstat_malloc.o: U kvm_nlist
+test_ar:memstat_malloc.o: U kvm_read
+test_ar:memstat_malloc.o: U malloc
+test_ar:memstat_malloc.o:0000000000000112 T memstat_kvm_malloc
+test_ar:memstat_malloc.o: U memstat_mtl_find
+test_ar:memstat_malloc.o:0000000000000880 T memstat_sysctl_malloc
+test_ar:memstat_malloc.o:0000000000000000 d namelist
+test_ar:memstat_malloc.o: U sysctlbyname
+test_ar:memstat.o:0000000000001024 T _memstat_mt_allocate
+test_ar:memstat.o:0000000000000128 T _memstat_mt_reset_stats
+test_ar:memstat.o:0000000000001280 T _memstat_mtl_empty
+test_ar:memstat.o: U free
+test_ar:memstat.o: U malloc
+test_ar:memstat.o: U memset
+test_ar:memstat.o:0000000000000368 T memstat_get_allocator
+test_ar:memstat.o:0000000000000512 T memstat_get_bytes
+test_ar:memstat.o:0000000000000400 T memstat_get_byteslimit
+test_ar:memstat.o:0000000000000576 T memstat_get_caller_pointer
+test_ar:memstat.o:0000000000000608 T memstat_get_caller_uint64
+test_ar:memstat.o:0000000000000528 T memstat_get_count
+test_ar:memstat.o:0000000000000384 T memstat_get_countlimit
+test_ar:memstat.o:0000000000000560 T memstat_get_failures
+test_ar:memstat.o:0000000000000544 T memstat_get_free
+test_ar:memstat.o:0000000000000656 T memstat_get_kegfree
+test_ar:memstat.o:0000000000000448 T memstat_get_memalloced
+test_ar:memstat.o:0000000000000464 T memstat_get_memfreed
+test_ar:memstat.o:0000000000000352 T memstat_get_name
+test_ar:memstat.o:0000000000000480 T memstat_get_numallocs
+test_ar:memstat.o:0000000000000496 T memstat_get_numfrees
+test_ar:memstat.o:0000000000000832 T memstat_get_percpu_caller_pointer
+test_ar:memstat.o:0000000000000896 T memstat_get_percpu_caller_uint64
+test_ar:memstat.o:0000000000000960 T memstat_get_percpu_free
+test_ar:memstat.o:0000000000000672 T memstat_get_percpu_memalloced
+test_ar:memstat.o:0000000000000704 T memstat_get_percpu_memfreed
+test_ar:memstat.o:0000000000000736 T memstat_get_percpu_numallocs
+test_ar:memstat.o:0000000000000768 T memstat_get_percpu_numfrees
+test_ar:memstat.o:0000000000000800 T memstat_get_percpu_sizemask
+test_ar:memstat.o:0000000000000432 T memstat_get_size
+test_ar:memstat.o:0000000000000416 T memstat_get_sizemask
+test_ar:memstat.o:0000000000000640 T memstat_get_zonefree
+test_ar:memstat.o:0000000000000976 T memstat_mtl_alloc
+test_ar:memstat.o:0000000000001184 T memstat_mtl_find
+test_ar:memstat.o:0000000000000080 T memstat_mtl_first
+test_ar:memstat.o:0000000000001360 T memstat_mtl_free
+test_ar:memstat.o:0000000000000112 T memstat_mtl_geterror
+test_ar:memstat.o:0000000000000096 T memstat_mtl_next
+test_ar:memstat.o:0000000000000592 T memstat_set_caller_pointer
+test_ar:memstat.o:0000000000000624 T memstat_set_caller_uint64
+test_ar:memstat.o:0000000000000864 T memstat_set_percpu_caller_pointer
+test_ar:memstat.o:0000000000000928 T memstat_set_percpu_caller_uint64
+test_ar:memstat.o:0000000000000000 T memstat_strerror
+test_ar:memstat.o: U strcmp
+test_ar:memstat.o: U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-print-size.txt b/test/nm/ts/nm_archive2/test_ar-print-size.txt
new file mode 100644
index 0000000000000..7b95e89ac6387
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-print-size.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 0000000000000071 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000080 0000000000000071 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000064 0000000000000039 t kread
+0000000000000000 0000000000000063 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 0000000000001294 T memstat_kvm_uma
+ U memstat_mtl_find
+0000000000001408 0000000000000972 T memstat_sysctl_uma
+0000000000000000 0000000000000096 d namelist
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000064 0000000000000039 t kread
+0000000000000000 0000000000000063 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000112 0000000000000765 T memstat_kvm_malloc
+ U memstat_mtl_find
+0000000000000880 0000000000000894 T memstat_sysctl_malloc
+0000000000000000 0000000000000072 d namelist
+ U sysctlbyname
+
+memstat.o:
+0000000000001024 0000000000000157 T _memstat_mt_allocate
+0000000000000128 0000000000000212 T _memstat_mt_reset_stats
+0000000000001280 0000000000000067 T _memstat_mtl_empty
+ U free
+ U malloc
+ U memset
+0000000000000368 0000000000000003 T memstat_get_allocator
+0000000000000512 0000000000000005 T memstat_get_bytes
+0000000000000400 0000000000000005 T memstat_get_byteslimit
+0000000000000576 0000000000000012 T memstat_get_caller_pointer
+0000000000000608 0000000000000012 T memstat_get_caller_uint64
+0000000000000528 0000000000000005 T memstat_get_count
+0000000000000384 0000000000000005 T memstat_get_countlimit
+0000000000000560 0000000000000008 T memstat_get_failures
+0000000000000544 0000000000000005 T memstat_get_free
+0000000000000656 0000000000000008 T memstat_get_kegfree
+0000000000000448 0000000000000005 T memstat_get_memalloced
+0000000000000464 0000000000000005 T memstat_get_memfreed
+0000000000000352 0000000000000005 T memstat_get_name
+0000000000000480 0000000000000005 T memstat_get_numallocs
+0000000000000496 0000000000000005 T memstat_get_numfrees
+0000000000000832 0000000000000032 T memstat_get_percpu_caller_pointer
+0000000000000896 0000000000000032 T memstat_get_percpu_caller_uint64
+0000000000000960 0000000000000012 T memstat_get_percpu_free
+0000000000000672 0000000000000019 T memstat_get_percpu_memalloced
+0000000000000704 0000000000000019 T memstat_get_percpu_memfreed
+0000000000000736 0000000000000019 T memstat_get_percpu_numallocs
+0000000000000768 0000000000000019 T memstat_get_percpu_numfrees
+0000000000000800 0000000000000019 T memstat_get_percpu_sizemask
+0000000000000432 0000000000000005 T memstat_get_size
+0000000000000416 0000000000000005 T memstat_get_sizemask
+0000000000000640 0000000000000008 T memstat_get_zonefree
+0000000000000976 0000000000000046 T memstat_mtl_alloc
+0000000000001184 0000000000000089 T memstat_mtl_find
+0000000000000080 0000000000000004 T memstat_mtl_first
+0000000000001360 0000000000000018 T memstat_mtl_free
+0000000000000112 0000000000000004 T memstat_mtl_geterror
+0000000000000096 0000000000000008 T memstat_mtl_next
+0000000000000592 0000000000000012 T memstat_set_caller_pointer
+0000000000000624 0000000000000012 T memstat_set_caller_uint64
+0000000000000864 0000000000000032 T memstat_set_percpu_caller_pointer
+0000000000000928 0000000000000032 T memstat_set_percpu_caller_uint64
+0000000000000000 0000000000000073 T memstat_strerror
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-radix-hexa.txt b/test/nm/ts/nm_archive2/test_ar-radix-hexa.txt
new file mode 100644
index 0000000000000..79c6607293537
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-radix-hexa.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000050 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000040 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000070 T memstat_kvm_uma
+ U memstat_mtl_find
+0000000000000580 T memstat_sysctl_uma
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000040 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000070 T memstat_kvm_malloc
+ U memstat_mtl_find
+0000000000000370 T memstat_sysctl_malloc
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat.o:
+0000000000000400 T _memstat_mt_allocate
+0000000000000080 T _memstat_mt_reset_stats
+0000000000000500 T _memstat_mtl_empty
+ U free
+ U malloc
+ U memset
+0000000000000170 T memstat_get_allocator
+0000000000000200 T memstat_get_bytes
+0000000000000190 T memstat_get_byteslimit
+0000000000000240 T memstat_get_caller_pointer
+0000000000000260 T memstat_get_caller_uint64
+0000000000000210 T memstat_get_count
+0000000000000180 T memstat_get_countlimit
+0000000000000230 T memstat_get_failures
+0000000000000220 T memstat_get_free
+0000000000000290 T memstat_get_kegfree
+00000000000001c0 T memstat_get_memalloced
+00000000000001d0 T memstat_get_memfreed
+0000000000000160 T memstat_get_name
+00000000000001e0 T memstat_get_numallocs
+00000000000001f0 T memstat_get_numfrees
+0000000000000340 T memstat_get_percpu_caller_pointer
+0000000000000380 T memstat_get_percpu_caller_uint64
+00000000000003c0 T memstat_get_percpu_free
+00000000000002a0 T memstat_get_percpu_memalloced
+00000000000002c0 T memstat_get_percpu_memfreed
+00000000000002e0 T memstat_get_percpu_numallocs
+0000000000000300 T memstat_get_percpu_numfrees
+0000000000000320 T memstat_get_percpu_sizemask
+00000000000001b0 T memstat_get_size
+00000000000001a0 T memstat_get_sizemask
+0000000000000280 T memstat_get_zonefree
+00000000000003d0 T memstat_mtl_alloc
+00000000000004a0 T memstat_mtl_find
+0000000000000050 T memstat_mtl_first
+0000000000000550 T memstat_mtl_free
+0000000000000070 T memstat_mtl_geterror
+0000000000000060 T memstat_mtl_next
+0000000000000250 T memstat_set_caller_pointer
+0000000000000270 T memstat_set_caller_uint64
+0000000000000360 T memstat_set_percpu_caller_pointer
+00000000000003a0 T memstat_set_percpu_caller_uint64
+0000000000000000 T memstat_strerror
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-radix-octal.txt b/test/nm/ts/nm_archive2/test_ar-radix-octal.txt
new file mode 100644
index 0000000000000..7f8522948e4ed
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-radix-octal.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000120 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000100 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000160 T memstat_kvm_uma
+ U memstat_mtl_find
+0000000000002600 T memstat_sysctl_uma
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+0000000000000100 t kread
+0000000000000000 t kread_symbol
+ U kvm_nlist
+ U kvm_read
+ U malloc
+0000000000000160 T memstat_kvm_malloc
+ U memstat_mtl_find
+0000000000001560 T memstat_sysctl_malloc
+0000000000000000 d namelist
+ U sysctlbyname
+
+memstat.o:
+0000000000002000 T _memstat_mt_allocate
+0000000000000200 T _memstat_mt_reset_stats
+0000000000002400 T _memstat_mtl_empty
+ U free
+ U malloc
+ U memset
+0000000000000560 T memstat_get_allocator
+0000000000001000 T memstat_get_bytes
+0000000000000620 T memstat_get_byteslimit
+0000000000001100 T memstat_get_caller_pointer
+0000000000001140 T memstat_get_caller_uint64
+0000000000001020 T memstat_get_count
+0000000000000600 T memstat_get_countlimit
+0000000000001060 T memstat_get_failures
+0000000000001040 T memstat_get_free
+0000000000001220 T memstat_get_kegfree
+0000000000000700 T memstat_get_memalloced
+0000000000000720 T memstat_get_memfreed
+0000000000000540 T memstat_get_name
+0000000000000740 T memstat_get_numallocs
+0000000000000760 T memstat_get_numfrees
+0000000000001500 T memstat_get_percpu_caller_pointer
+0000000000001600 T memstat_get_percpu_caller_uint64
+0000000000001700 T memstat_get_percpu_free
+0000000000001240 T memstat_get_percpu_memalloced
+0000000000001300 T memstat_get_percpu_memfreed
+0000000000001340 T memstat_get_percpu_numallocs
+0000000000001400 T memstat_get_percpu_numfrees
+0000000000001440 T memstat_get_percpu_sizemask
+0000000000000660 T memstat_get_size
+0000000000000640 T memstat_get_sizemask
+0000000000001200 T memstat_get_zonefree
+0000000000001720 T memstat_mtl_alloc
+0000000000002240 T memstat_mtl_find
+0000000000000120 T memstat_mtl_first
+0000000000002520 T memstat_mtl_free
+0000000000000160 T memstat_mtl_geterror
+0000000000000140 T memstat_mtl_next
+0000000000001120 T memstat_set_caller_pointer
+0000000000001160 T memstat_set_caller_uint64
+0000000000001540 T memstat_set_percpu_caller_pointer
+0000000000001640 T memstat_set_percpu_caller_uint64
+0000000000000000 T memstat_strerror
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar-reverse.txt b/test/nm/ts/nm_archive2/test_ar-reverse.txt
new file mode 100644
index 0000000000000..cefd8ea429a89
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-reverse.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+ U memstat_sysctl_uma
+ U memstat_sysctl_malloc
+0000000000000080 T memstat_sysctl_all
+ U memstat_kvm_uma
+ U memstat_kvm_malloc
+0000000000000000 T memstat_kvm_all
+
+memstat_uma.o:
+ U sysctlbyname
+0000000000000000 d namelist
+0000000000001408 T memstat_sysctl_uma
+ U memstat_mtl_find
+0000000000000112 T memstat_kvm_uma
+ U malloc
+ U kvm_read
+ U kvm_nlist
+0000000000000000 t kread_symbol
+0000000000000064 t kread
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_reset_stats
+ U _memstat_mt_allocate
+ U __error
+
+memstat_malloc.o:
+ U sysctlbyname
+0000000000000000 d namelist
+0000000000000880 T memstat_sysctl_malloc
+ U memstat_mtl_find
+0000000000000112 T memstat_kvm_malloc
+ U malloc
+ U kvm_read
+ U kvm_nlist
+0000000000000000 t kread_symbol
+0000000000000064 t kread
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_reset_stats
+ U _memstat_mt_allocate
+ U __error
+
+memstat.o:
+ U strlcpy
+ U strcmp
+0000000000000000 T memstat_strerror
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000624 T memstat_set_caller_uint64
+0000000000000592 T memstat_set_caller_pointer
+0000000000000096 T memstat_mtl_next
+0000000000000112 T memstat_mtl_geterror
+0000000000001360 T memstat_mtl_free
+0000000000000080 T memstat_mtl_first
+0000000000001184 T memstat_mtl_find
+0000000000000976 T memstat_mtl_alloc
+0000000000000640 T memstat_get_zonefree
+0000000000000416 T memstat_get_sizemask
+0000000000000432 T memstat_get_size
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000960 T memstat_get_percpu_free
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000496 T memstat_get_numfrees
+0000000000000480 T memstat_get_numallocs
+0000000000000352 T memstat_get_name
+0000000000000464 T memstat_get_memfreed
+0000000000000448 T memstat_get_memalloced
+0000000000000656 T memstat_get_kegfree
+0000000000000544 T memstat_get_free
+0000000000000560 T memstat_get_failures
+0000000000000384 T memstat_get_countlimit
+0000000000000528 T memstat_get_count
+0000000000000608 T memstat_get_caller_uint64
+0000000000000576 T memstat_get_caller_pointer
+0000000000000400 T memstat_get_byteslimit
+0000000000000512 T memstat_get_bytes
+0000000000000368 T memstat_get_allocator
+ U memset
+ U malloc
+ U free
+0000000000001280 T _memstat_mtl_empty
+0000000000000128 T _memstat_mt_reset_stats
+0000000000001024 T _memstat_mt_allocate
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-no.txt b/test/nm/ts/nm_archive2/test_ar-sort-no.txt
new file mode 100644
index 0000000000000..6877fcf9cbc77
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-no.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000080 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+ U kvm_read
+0000000000000112 T memstat_kvm_uma
+ U kvm_nlist
+ U malloc
+ U memstat_mtl_find
+ U _memstat_mt_reset_stats
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_allocate
+0000000000001408 T memstat_sysctl_uma
+ U sysctlbyname
+ U __error
+
+memstat_malloc.o:
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+ U kvm_read
+0000000000000112 T memstat_kvm_malloc
+ U kvm_nlist
+ U memstat_mtl_find
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U _memstat_mt_allocate
+0000000000000880 T memstat_sysctl_malloc
+ U sysctlbyname
+ U malloc
+ U __error
+ U free
+
+memstat.o:
+0000000000000000 T memstat_strerror
+0000000000000080 T memstat_mtl_first
+0000000000000096 T memstat_mtl_next
+0000000000000112 T memstat_mtl_geterror
+0000000000000128 T _memstat_mt_reset_stats
+0000000000000352 T memstat_get_name
+0000000000000368 T memstat_get_allocator
+0000000000000384 T memstat_get_countlimit
+0000000000000400 T memstat_get_byteslimit
+0000000000000416 T memstat_get_sizemask
+0000000000000432 T memstat_get_size
+0000000000000448 T memstat_get_memalloced
+0000000000000464 T memstat_get_memfreed
+0000000000000480 T memstat_get_numallocs
+0000000000000496 T memstat_get_numfrees
+0000000000000512 T memstat_get_bytes
+0000000000000528 T memstat_get_count
+0000000000000544 T memstat_get_free
+0000000000000560 T memstat_get_failures
+0000000000000576 T memstat_get_caller_pointer
+0000000000000592 T memstat_set_caller_pointer
+0000000000000608 T memstat_get_caller_uint64
+0000000000000624 T memstat_set_caller_uint64
+0000000000000640 T memstat_get_zonefree
+0000000000000656 T memstat_get_kegfree
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000960 T memstat_get_percpu_free
+0000000000000976 T memstat_mtl_alloc
+ U malloc
+0000000000001024 T _memstat_mt_allocate
+ U memset
+ U strlcpy
+0000000000001184 T memstat_mtl_find
+ U strcmp
+0000000000001280 T _memstat_mtl_empty
+ U free
+0000000000001360 T memstat_mtl_free
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-num.txt b/test/nm/ts/nm_archive2/test_ar-sort-num.txt
new file mode 100644
index 0000000000000..a15a1054380f8
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-num.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+0000000000000000 T memstat_kvm_all
+0000000000000080 T memstat_sysctl_all
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+ U memstat_mtl_find
+ U sysctlbyname
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+0000000000000112 T memstat_kvm_uma
+0000000000001408 T memstat_sysctl_uma
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+ U memstat_mtl_find
+ U sysctlbyname
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+0000000000000112 T memstat_kvm_malloc
+0000000000000880 T memstat_sysctl_malloc
+
+memstat.o:
+ U free
+ U malloc
+ U memset
+ U strcmp
+ U strlcpy
+0000000000000000 T memstat_strerror
+0000000000000080 T memstat_mtl_first
+0000000000000096 T memstat_mtl_next
+0000000000000112 T memstat_mtl_geterror
+0000000000000128 T _memstat_mt_reset_stats
+0000000000000352 T memstat_get_name
+0000000000000368 T memstat_get_allocator
+0000000000000384 T memstat_get_countlimit
+0000000000000400 T memstat_get_byteslimit
+0000000000000416 T memstat_get_sizemask
+0000000000000432 T memstat_get_size
+0000000000000448 T memstat_get_memalloced
+0000000000000464 T memstat_get_memfreed
+0000000000000480 T memstat_get_numallocs
+0000000000000496 T memstat_get_numfrees
+0000000000000512 T memstat_get_bytes
+0000000000000528 T memstat_get_count
+0000000000000544 T memstat_get_free
+0000000000000560 T memstat_get_failures
+0000000000000576 T memstat_get_caller_pointer
+0000000000000592 T memstat_set_caller_pointer
+0000000000000608 T memstat_get_caller_uint64
+0000000000000624 T memstat_set_caller_uint64
+0000000000000640 T memstat_get_zonefree
+0000000000000656 T memstat_get_kegfree
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000960 T memstat_get_percpu_free
+0000000000000976 T memstat_mtl_alloc
+0000000000001024 T _memstat_mt_allocate
+0000000000001184 T memstat_mtl_find
+0000000000001280 T _memstat_mtl_empty
+0000000000001360 T memstat_mtl_free
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-reverse-no.txt b/test/nm/ts/nm_archive2/test_ar-sort-reverse-no.txt
new file mode 100644
index 0000000000000..6877fcf9cbc77
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-reverse-no.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000000 T memstat_kvm_all
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+0000000000000080 T memstat_sysctl_all
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+ U kvm_read
+0000000000000112 T memstat_kvm_uma
+ U kvm_nlist
+ U malloc
+ U memstat_mtl_find
+ U _memstat_mt_reset_stats
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_allocate
+0000000000001408 T memstat_sysctl_uma
+ U sysctlbyname
+ U __error
+
+memstat_malloc.o:
+0000000000000000 t kread_symbol
+0000000000000000 d namelist
+0000000000000064 t kread
+ U kvm_read
+0000000000000112 T memstat_kvm_malloc
+ U kvm_nlist
+ U memstat_mtl_find
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U _memstat_mt_allocate
+0000000000000880 T memstat_sysctl_malloc
+ U sysctlbyname
+ U malloc
+ U __error
+ U free
+
+memstat.o:
+0000000000000000 T memstat_strerror
+0000000000000080 T memstat_mtl_first
+0000000000000096 T memstat_mtl_next
+0000000000000112 T memstat_mtl_geterror
+0000000000000128 T _memstat_mt_reset_stats
+0000000000000352 T memstat_get_name
+0000000000000368 T memstat_get_allocator
+0000000000000384 T memstat_get_countlimit
+0000000000000400 T memstat_get_byteslimit
+0000000000000416 T memstat_get_sizemask
+0000000000000432 T memstat_get_size
+0000000000000448 T memstat_get_memalloced
+0000000000000464 T memstat_get_memfreed
+0000000000000480 T memstat_get_numallocs
+0000000000000496 T memstat_get_numfrees
+0000000000000512 T memstat_get_bytes
+0000000000000528 T memstat_get_count
+0000000000000544 T memstat_get_free
+0000000000000560 T memstat_get_failures
+0000000000000576 T memstat_get_caller_pointer
+0000000000000592 T memstat_set_caller_pointer
+0000000000000608 T memstat_get_caller_uint64
+0000000000000624 T memstat_set_caller_uint64
+0000000000000640 T memstat_get_zonefree
+0000000000000656 T memstat_get_kegfree
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000960 T memstat_get_percpu_free
+0000000000000976 T memstat_mtl_alloc
+ U malloc
+0000000000001024 T _memstat_mt_allocate
+ U memset
+ U strlcpy
+0000000000001184 T memstat_mtl_find
+ U strcmp
+0000000000001280 T _memstat_mtl_empty
+ U free
+0000000000001360 T memstat_mtl_free
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-reverse-num.txt b/test/nm/ts/nm_archive2/test_ar-sort-reverse-num.txt
new file mode 100644
index 0000000000000..f20cbcb1946be
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-reverse-num.txt
@@ -0,0 +1,89 @@
+
+memstat_all.o:
+0000000000000080 T memstat_sysctl_all
+0000000000000000 T memstat_kvm_all
+ U memstat_sysctl_uma
+ U memstat_sysctl_malloc
+ U memstat_kvm_uma
+ U memstat_kvm_malloc
+
+memstat_uma.o:
+0000000000001408 T memstat_sysctl_uma
+0000000000000112 T memstat_kvm_uma
+0000000000000064 t kread
+0000000000000000 d namelist
+0000000000000000 t kread_symbol
+ U sysctlbyname
+ U memstat_mtl_find
+ U malloc
+ U kvm_read
+ U kvm_nlist
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_reset_stats
+ U _memstat_mt_allocate
+ U __error
+
+memstat_malloc.o:
+0000000000000880 T memstat_sysctl_malloc
+0000000000000112 T memstat_kvm_malloc
+0000000000000064 t kread
+0000000000000000 d namelist
+0000000000000000 t kread_symbol
+ U sysctlbyname
+ U memstat_mtl_find
+ U malloc
+ U kvm_read
+ U kvm_nlist
+ U free
+ U _memstat_mtl_empty
+ U _memstat_mt_reset_stats
+ U _memstat_mt_allocate
+ U __error
+
+memstat.o:
+0000000000001360 T memstat_mtl_free
+0000000000001280 T _memstat_mtl_empty
+0000000000001184 T memstat_mtl_find
+0000000000001024 T _memstat_mt_allocate
+0000000000000976 T memstat_mtl_alloc
+0000000000000960 T memstat_get_percpu_free
+0000000000000928 T memstat_set_percpu_caller_uint64
+0000000000000896 T memstat_get_percpu_caller_uint64
+0000000000000864 T memstat_set_percpu_caller_pointer
+0000000000000832 T memstat_get_percpu_caller_pointer
+0000000000000800 T memstat_get_percpu_sizemask
+0000000000000768 T memstat_get_percpu_numfrees
+0000000000000736 T memstat_get_percpu_numallocs
+0000000000000704 T memstat_get_percpu_memfreed
+0000000000000672 T memstat_get_percpu_memalloced
+0000000000000656 T memstat_get_kegfree
+0000000000000640 T memstat_get_zonefree
+0000000000000624 T memstat_set_caller_uint64
+0000000000000608 T memstat_get_caller_uint64
+0000000000000592 T memstat_set_caller_pointer
+0000000000000576 T memstat_get_caller_pointer
+0000000000000560 T memstat_get_failures
+0000000000000544 T memstat_get_free
+0000000000000528 T memstat_get_count
+0000000000000512 T memstat_get_bytes
+0000000000000496 T memstat_get_numfrees
+0000000000000480 T memstat_get_numallocs
+0000000000000464 T memstat_get_memfreed
+0000000000000448 T memstat_get_memalloced
+0000000000000432 T memstat_get_size
+0000000000000416 T memstat_get_sizemask
+0000000000000400 T memstat_get_byteslimit
+0000000000000384 T memstat_get_countlimit
+0000000000000368 T memstat_get_allocator
+0000000000000352 T memstat_get_name
+0000000000000128 T _memstat_mt_reset_stats
+0000000000000112 T memstat_mtl_geterror
+0000000000000096 T memstat_mtl_next
+0000000000000080 T memstat_mtl_first
+0000000000000000 T memstat_strerror
+ U strlcpy
+ U strcmp
+ U memset
+ U malloc
+ U free
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-reverse-size.txt b/test/nm/ts/nm_archive2/test_ar-sort-reverse-size.txt
new file mode 100644
index 0000000000000..9accfeba45b7d
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-reverse-size.txt
@@ -0,0 +1,60 @@
+
+memstat_all.o:
+0000000000000071 T memstat_sysctl_all
+0000000000000071 T memstat_kvm_all
+
+memstat_uma.o:
+0000000000001294 T memstat_kvm_uma
+0000000000000972 T memstat_sysctl_uma
+0000000000000096 d namelist
+0000000000000063 t kread_symbol
+0000000000000039 t kread
+
+memstat_malloc.o:
+0000000000000894 T memstat_sysctl_malloc
+0000000000000765 T memstat_kvm_malloc
+0000000000000072 d namelist
+0000000000000063 t kread_symbol
+0000000000000039 t kread
+
+memstat.o:
+0000000000000212 T _memstat_mt_reset_stats
+0000000000000157 T _memstat_mt_allocate
+0000000000000089 T memstat_mtl_find
+0000000000000073 T memstat_strerror
+0000000000000067 T _memstat_mtl_empty
+0000000000000046 T memstat_mtl_alloc
+0000000000000032 T memstat_set_percpu_caller_uint64
+0000000000000032 T memstat_set_percpu_caller_pointer
+0000000000000032 T memstat_get_percpu_caller_uint64
+0000000000000032 T memstat_get_percpu_caller_pointer
+0000000000000019 T memstat_get_percpu_sizemask
+0000000000000019 T memstat_get_percpu_numfrees
+0000000000000019 T memstat_get_percpu_numallocs
+0000000000000019 T memstat_get_percpu_memfreed
+0000000000000019 T memstat_get_percpu_memalloced
+0000000000000018 T memstat_mtl_free
+0000000000000012 T memstat_set_caller_uint64
+0000000000000012 T memstat_set_caller_pointer
+0000000000000012 T memstat_get_percpu_free
+0000000000000012 T memstat_get_caller_uint64
+0000000000000012 T memstat_get_caller_pointer
+0000000000000008 T memstat_mtl_next
+0000000000000008 T memstat_get_zonefree
+0000000000000008 T memstat_get_kegfree
+0000000000000008 T memstat_get_failures
+0000000000000005 T memstat_get_sizemask
+0000000000000005 T memstat_get_size
+0000000000000005 T memstat_get_numfrees
+0000000000000005 T memstat_get_numallocs
+0000000000000005 T memstat_get_name
+0000000000000005 T memstat_get_memfreed
+0000000000000005 T memstat_get_memalloced
+0000000000000005 T memstat_get_free
+0000000000000005 T memstat_get_countlimit
+0000000000000005 T memstat_get_count
+0000000000000005 T memstat_get_byteslimit
+0000000000000005 T memstat_get_bytes
+0000000000000004 T memstat_mtl_geterror
+0000000000000004 T memstat_mtl_first
+0000000000000003 T memstat_get_allocator
diff --git a/test/nm/ts/nm_archive2/test_ar-sort-size.txt b/test/nm/ts/nm_archive2/test_ar-sort-size.txt
new file mode 100644
index 0000000000000..0dd86febdfd93
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-sort-size.txt
@@ -0,0 +1,60 @@
+
+memstat_all.o:
+0000000000000071 T memstat_kvm_all
+0000000000000071 T memstat_sysctl_all
+
+memstat_uma.o:
+0000000000000039 t kread
+0000000000000063 t kread_symbol
+0000000000000096 d namelist
+0000000000000972 T memstat_sysctl_uma
+0000000000001294 T memstat_kvm_uma
+
+memstat_malloc.o:
+0000000000000039 t kread
+0000000000000063 t kread_symbol
+0000000000000072 d namelist
+0000000000000765 T memstat_kvm_malloc
+0000000000000894 T memstat_sysctl_malloc
+
+memstat.o:
+0000000000000003 T memstat_get_allocator
+0000000000000004 T memstat_mtl_first
+0000000000000004 T memstat_mtl_geterror
+0000000000000005 T memstat_get_bytes
+0000000000000005 T memstat_get_byteslimit
+0000000000000005 T memstat_get_count
+0000000000000005 T memstat_get_countlimit
+0000000000000005 T memstat_get_free
+0000000000000005 T memstat_get_memalloced
+0000000000000005 T memstat_get_memfreed
+0000000000000005 T memstat_get_name
+0000000000000005 T memstat_get_numallocs
+0000000000000005 T memstat_get_numfrees
+0000000000000005 T memstat_get_size
+0000000000000005 T memstat_get_sizemask
+0000000000000008 T memstat_get_failures
+0000000000000008 T memstat_get_kegfree
+0000000000000008 T memstat_get_zonefree
+0000000000000008 T memstat_mtl_next
+0000000000000012 T memstat_get_caller_pointer
+0000000000000012 T memstat_get_caller_uint64
+0000000000000012 T memstat_get_percpu_free
+0000000000000012 T memstat_set_caller_pointer
+0000000000000012 T memstat_set_caller_uint64
+0000000000000018 T memstat_mtl_free
+0000000000000019 T memstat_get_percpu_memalloced
+0000000000000019 T memstat_get_percpu_memfreed
+0000000000000019 T memstat_get_percpu_numallocs
+0000000000000019 T memstat_get_percpu_numfrees
+0000000000000019 T memstat_get_percpu_sizemask
+0000000000000032 T memstat_get_percpu_caller_pointer
+0000000000000032 T memstat_get_percpu_caller_uint64
+0000000000000032 T memstat_set_percpu_caller_pointer
+0000000000000032 T memstat_set_percpu_caller_uint64
+0000000000000046 T memstat_mtl_alloc
+0000000000000067 T _memstat_mtl_empty
+0000000000000073 T memstat_strerror
+0000000000000089 T memstat_mtl_find
+0000000000000157 T _memstat_mt_allocate
+0000000000000212 T _memstat_mt_reset_stats
diff --git a/test/nm/ts/nm_archive2/test_ar-undef.txt b/test/nm/ts/nm_archive2/test_ar-undef.txt
new file mode 100644
index 0000000000000..61248e64b4924
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar-undef.txt
@@ -0,0 +1,37 @@
+
+memstat_all.o:
+ U memstat_kvm_malloc
+ U memstat_kvm_uma
+ U memstat_sysctl_malloc
+ U memstat_sysctl_uma
+
+memstat_uma.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+ U memstat_mtl_find
+ U sysctlbyname
+
+memstat_malloc.o:
+ U __error
+ U _memstat_mt_allocate
+ U _memstat_mt_reset_stats
+ U _memstat_mtl_empty
+ U free
+ U kvm_nlist
+ U kvm_read
+ U malloc
+ U memstat_mtl_find
+ U sysctlbyname
+
+memstat.o:
+ U free
+ U malloc
+ U memset
+ U strcmp
+ U strlcpy
diff --git a/test/nm/ts/nm_archive2/test_ar.uu b/test/nm/ts/nm_archive2/test_ar.uu
new file mode 100644
index 0000000000000..d3f49724889cb
--- /dev/null
+++ b/test/nm/ts/nm_archive2/test_ar.uu
@@ -0,0 +1,484 @@
+begin 644 test_ar
+M(3QA<F-H/@HO("`@("`@("`@("`@("`@,3(P.30P-#DV-R`@,"`@("`@,"`@
+M("`@,"`@("`@("`Q,C(P("`@("`@8`H````N```%5@``!58```PJ```,*@``
+M(N8``"+F```VD@``-I(``#:2```VD@``-I(``#:2```VD@``-I(``#:2```V
+MD@``-I(``#:2```VD@``-I(``#:2```VD@``-I(``#:2```VD@``-I(``#:2
+M```VD@``-I(``#:2```VD@``-I(``#:2```VD@``-I(``#:2```VD@``-I(`
+M`#:2```VD@``-I(``#:2```VD@``-I(``#:2```VDFUE;7-T871?:W9M7V%L
+M;`!M96US=&%T7W-Y<V-T;%]A;&P`;65M<W1A=%]K=FU?=6UA`&UE;7-T871?
+M<WES8W1L7W5M80!M96US=&%T7VMV;5]M86QL;V,`;65M<W1A=%]S>7-C=&Q?
+M;6%L;&]C`&UE;7-T871?<W1R97)R;W(`;65M<W1A=%]M=&Q?9FER<W0`;65M
+M<W1A=%]M=&Q?;F5X=`!M96US=&%T7VUT;%]G971E<G)O<@!?;65M<W1A=%]M
+M=%]R97-E=%]S=&%T<P!M96US=&%T7V=E=%]N86UE`&UE;7-T871?9V5T7V%L
+M;&]C871O<@!M96US=&%T7V=E=%]C;W5N=&QI;6ET`&UE;7-T871?9V5T7V)Y
+M=&5S;&EM:70`;65M<W1A=%]G971?<VEZ96UA<VL`;65M<W1A=%]G971?<VEZ
+M90!M96US=&%T7V=E=%]M96UA;&QO8V5D`&UE;7-T871?9V5T7VUE;69R965D
+M`&UE;7-T871?9V5T7VYU;6%L;&]C<P!M96US=&%T7V=E=%]N=6UF<F5E<P!M
+M96US=&%T7V=E=%]B>71E<P!M96US=&%T7V=E=%]C;W5N=`!M96US=&%T7V=E
+M=%]F<F5E`&UE;7-T871?9V5T7V9A:6QU<F5S`&UE;7-T871?9V5T7V-A;&QE
+M<E]P;VEN=&5R`&UE;7-T871?<V5T7V-A;&QE<E]P;VEN=&5R`&UE;7-T871?
+M9V5T7V-A;&QE<E]U:6YT-C0`;65M<W1A=%]S971?8V%L;&5R7W5I;G0V-`!M
+M96US=&%T7V=E=%]Z;VYE9G)E90!M96US=&%T7V=E=%]K96=F<F5E`&UE;7-T
+M871?9V5T7W!E<F-P=5]M96UA;&QO8V5D`&UE;7-T871?9V5T7W!E<F-P=5]M
+M96UF<F5E9`!M96US=&%T7V=E=%]P97)C<'5?;G5M86QL;V-S`&UE;7-T871?
+M9V5T7W!E<F-P=5]N=6UF<F5E<P!M96US=&%T7V=E=%]P97)C<'5?<VEZ96UA
+M<VL`;65M<W1A=%]G971?<&5R8W!U7V-A;&QE<E]P;VEN=&5R`&UE;7-T871?
+M<V5T7W!E<F-P=5]C86QL97)?<&]I;G1E<@!M96US=&%T7V=E=%]P97)C<'5?
+M8V%L;&5R7W5I;G0V-`!M96US=&%T7W-E=%]P97)C<'5?8V%L;&5R7W5I;G0V
+M-`!M96US=&%T7V=E=%]P97)C<'5?9G)E90!M96US=&%T7VUT;%]A;&QO8P!?
+M;65M<W1A=%]M=%]A;&QO8V%T90!M96US=&%T7VUT;%]F:6YD`%]M96US=&%T
+M7VUT;%]E;7!T>0!M96US=&%T7VUT;%]F<F5E`"\O("`@("`@("`@("`@("`@
+M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@(#$X("`@("`@("!@"FUE
+M;7-T871?;6%L;&]C+F\O"FUE;7-T871?86QL+F\O("`Q,C`Y-#`T.38W("`P
+M("`@("`P("`@("`Q,#`V-#0@(#$V.#@@("`@("!@"G]%3$8"`0$)````````
+M```!`#X``0````````````````````````"0`0````````````!```````!`
+M``L`"`!(B5PD\$B);"3X2(/L&$B)_4B)\^@`````A<!X(TB)WDB)[^@`````
+M,=*%P'@22(M<)`A(BVPD$(G02(/$&,.0NO_____KYV9FD&9FD&9FD$B)7"3P
+M2(EL)/A(@^P82(G]B?/H`````(7`>"2)WDB)[^@`````,=*%P'@42(M<)`A(
+MBVPD$(G02(/$&,-F9I"Z_____^OE`!0``````````7I2``%X$`$##`<(D`$`
+M`!0````<`````````$<`````3@X@A@*#`Q0````T`````````$<`````3@X@
+MA@*#`P!'0T,Z("A'3E4I(#0N,BXQ(#(P,#<P-S$Y("!;1G)E94)31%T``"YS
+M>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+G)E;&$N=&5X=``N9&%T80`N8G-S
+M`"YR96QA+F5H7V9R86UE`"YC;VUM96YT````````````````````````````
+M````````````````````````````````````````````````````````````
+M(`````$````&````````````````````0`````````"7````````````````
+M````$````````````````````!L````$``````````````````````````@&
+M````````8``````````)`````0````@`````````&``````````F`````0``
+M``,```````````````````#8```````````````````````````````$````
+M````````````````+`````@````#````````````````````V```````````
+M````````````````````!````````````````````#8````!`````@``````
+M`````````````-@`````````2`````````````````````@`````````````
+M```````Q````!`````````````````````````!H!@```````#``````````
+M"0````4````(`````````!@`````````0`````$`````````````````````
+M````(`$````````F`````````````````````0```````````````````!$`
+M```#`````````````````````````$8!````````20``````````````````
+M``$````````````````````!`````@````````````````````````!0!```
+M`````#@!````````"@````<````(`````````!@`````````"0````,`````
+M````````````````````B`4```````!^`````````````````````0``````
+M``````````````````````````````````````````````$````$`/'_````
+M```````````````````````#``$````````````````````````````#``,`
+M```````````````````````````#``0````````````````````````````#
+M``4````````````````````````````#``<```````````````````````\`
+M```2``$```````````!'`````````!\````0````````````````````````
+M`#(````0`````````````````````````$(````2``$`4`````````!'````
+M`````%4````0`````````````````````````&L````0````````````````
+M``````````!M96US=&%T7V%L;"YC`&UE;7-T871?:W9M7V%L;`!M96US=&%T
+M7VMV;5]M86QL;V,`;65M<W1A=%]K=FU?=6UA`&UE;7-T871?<WES8W1L7V%L
+M;`!M96US=&%T7W-Y<V-T;%]M86QL;V,`;65M<W1A=%]S>7-C=&Q?=6UA````
+M%0`````````"````"````/S_________)``````````"````"0```/S_____
+M____9``````````"````"P```/S_________<@`````````"````#````/S_
+M________(``````````*`````@``````````````.``````````*`````@``
+M`%``````````;65M<W1A=%]U;6$N;R\@(#$R,#DT,#0Y-C<@(#`@("`@(#`@
+M("`@(#$P,#8T-"`@-3<V,"`@("`@(&`*?T5,1@(!`0D```````````$`/@`!
+M`````````````````````````)`+`````````````$```````$``#0`*`$AC
+M]E-(B<M(C03U`````$C!Y@5(*<9,`X8`````3(G&Z`````!(B<*X!@```$B%
+MTG@+,<!(.=H/E<#!X`-;PY!328TT,$B)R^@`````2(G"N`8```!(A=)X"S'`
+M2#G:#Y7`P>`#6\-F9I!F9I!F9I!!5TF)_T%628GVO@````!!54%455-(@>SX
+M`0``2(L'3(GW2(E$)`CH`````(7`#X6/!```@#T``````'0*2(,]``````!U
+M'T''1P@'````N/____](@<3X`0``6UU!7$%=05Y!7\-(C90D[`$``$4QP+D$
+M````O@$```!,B??H#?___X7`#X7E`P``2(V4).`!``!%,<`Q]KD(````3(GW
+MZ.O^__^%P`^%PP,``$B-E"3H`0``13'`N00```"^`@```$R)]^C&_O__A<`/
+MA9X#``"+O"3L`0``_\=(8_](P><%Z`````!(A<!(B40D$`^$O`,``$B+M"3@
+M`0``2(7V#X04`P``2(U4)"!%,<"YV````$R)]^BU_O__A<")PP^%$`,``$B+
+M5"1P2(722(E4)!@/A-0"``!(BW0D&$B-E"0``0``13'`N9@```!,B??H>_[_
+M_X7`B<,/A=8"``"+C"3L`0``2(M4)!!!N'@```!(BW0D&$R)]__!2&/)2,'A
+M!>A)_O__A<")PP^%I`(``$R+I"0``0``,=MF9I!FD$B-K"2@`0``2HTT([D!
+M````3(GW2`'=2(GJZ`````!(A<`/B&@"``!(_\@/A9@"``"`?0``=!:-0P%(
+M_\-(@_L@=;U(F,:$!)\!````2(-\)`@`#X2%`@``2(V4)*`!``"^`@```$R)
+M_^@`````2(7`2(G##X1D`@``2(G?Z`````!(BX0D6`$``$B)0UA(BX0D8`$`
+M`$B)0V!(BX0D:`$``$B)@X````#VA"3S````(`^%T@```(N$).P!``#_P(7`
+M#X[!````2(ML)!!%,>2X`0```$2)X=/@A80DZ`$```^$B0```$B+11!(`4-8
+M2(M%&$@!0V!(BW4(2(7V=#!(C90DP`$``$4QP+D8````3(GWZ!C]__^%P$&)
+MQ0^%$@(``$@/OX0DT`$``$@!0WA(BW4`2(7V=#=(C90DP`$``$4QP+D8````
+M3(GWZ-_\__^%P$&)Q0^%V0$``$@/OX0DT`$``$@!0WAF9F:09F:0BX0D[`$`
+M`$'_Q$B#Q2#_P$0YX`^/1____XN$)*````!(B4-`2(G"2`^O0V!(#Z]36$B)
+M0U!(B5-(2"G"2(E3:&:#O"3J`````0^&E@$```^WC"3L````B[0DJ````#'2
+MB?#W\8G!2(E+*$B+0T!(#Z]#*$B)0S!(BT-82"M#8$B)0W!(B[0D*`$``$B%
+M]G0U2(V4),`!``!%,<"Y&````$R)]^@8_/__2`^_A"30`0``2`&#B`$``$B+
+MM"3``0``2(7V=<OVA"3Q`````G1V2(M,)!A(.4PD<'1J2(N#B`$``$@!0WA(
+MBX0D&`$``$B%P$B)1"08#X4L_?__2(MT)"!(A?8/A>S\__](BWPD$.@`````
+M,<#I*?S__V9FD&:0NP8```!(BWPD$.@`````3(G_Z`````"X_____T&)7PCI
+M__O__XN$))P```!(`4-X2(F#D`$``.N"NP@```#KQ4&)1PBX_____^G6^___
+M2(V4)*`!``"^`@```$R)_^@`````2(7`2(G##X5[_?__2(M\)!#H`````$R)
+M_^@`````N/____]!QT<(`0```.F1^___N/____]!QT<(!@```.E_^___2(M\
+M)!#H`````$R)_^@`````N/____]%B6\(Z5_[__\/MX0D[`````^OA"2H````
+M2(E#*.EL_O__9I!!5T%628G^055!5%532(/L&$B+!TB-7"0(2(UL)!!,C60D
+M%$B)!"3IL@```&9F9I!(@WPD"`0/A?P```"#?"00(`^/50$``$4QP#')2(G:
+M3(GFOP````!(QT0D"`0```#H`````(7`#XA+`0``2(-\)`@$#X6_````2&-\
+M)!!(8T0D%$C!YP9(@\=X2`^O^$B#QWA(B7PD".@`````2(7`28G%#X37````
+M13'`,<E(B=I(B<:_`````.@`````A<`/B2(!``#H`````(,X#&:0#X6+`@``
+M3(GOZ`````!%,<`QR4B)VDB)[K\`````2,=$)`@$````Z`````"%P`^)+/__
+M_^@`````@S@-9F9FD'0*Z`````"#.`%U'$''1@@#````2(/$&+C_____6UU!
+M7$%=05Y!7\-!QT8(!0```+C_____2(/$&%M=05Q!74%>05_#3(GBO@(```!,
+MB??H`````$B%P$B)PP^%[0```$R)]^@`````3(GOZ`````!!QT8(`0```$B#
+MQ!BX_____UM=05Q!74%>05_#0<=&"`0```!(@\08N/____];74%<05U!7D%?
+MP^@`````@S@-#X16____Z`````"#.`%FD`^$1O___[C_____0<=&"`(```#I
+M7?___TB+1"0(2(7`#X1<`0``2(/X#P^&J`$``$&#?0`!#X6=`0``08M%!(/X
+M(`^'J@$``(E$)!!!BT4(A<")1"04#XXF`0``28UM$$4Q_TB#/"0`28GL#X03
+M____2(GJO@(```!,B??H`````$B%P$B)PP^$]_[__TB)WTB#Q7CH`````$F+
+M1"1(2(E#6$F+1"102(E#8$F+1"182(F#@````(M$)!"%P'XV,=)(@\5`2(M%
+MT$B)A-.8)@``2(M%T$@!0WA(BT7`2`%#6$B+1<A(`4-@C4(!2/_".40D$'_,
+M08M$)"1(B4-`08M4)"1(#Z]36$B)4TA!BT0D)$@/KT-@2"G"2(E#4$B)4VA!
+MBT0D,$B)0RA!BT0D)$$/KT0D,$B)0S!(BT-82"M#8$B)0W!!BT0D/$B)@X@!
+M``!!]D0D1`%U$$&+1"0X2`%#>$B)@Y`!``!(BX.(`0``2`%#>$'_QT0Y?"04
+M#X_A_O__3(GOZ``````QP.GD_?__Z`````"#.`UT&69FD&:0Z`````"#.`%T
+M"D''1@@"````ZPA!QT8(`P```$R)[^@`````2(/$&+C_____6UU!7$%=05Y!
+M7\-!QT8(`@```$R)[^@`````N/_____I@_W__T''1@@$````Z\``````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`````````````````````````&ME<FXN<VUP+FUA>&-P=7,`=FTN>F]N95]C
+M;W5N=`!V;2YZ;VYE7W-T871S`%]U;6%?:V5G<P!?;7!?;6%X:60`7V%L;%]C
+M<'5S````````%``````````!>E(``7@0`0,,!PB0`0``%````!P`````````
+M/P````!$#A"#`@``%````#0`````````)P````!!#A"#`@``-````$P`````
+M````#@4```!"#A"/`D4.&(X#2@X@0@XH00XP00XX1PZP!(,'A@:,!8T$````
+M```T````A`````````#,`P```$(.$$(.&(X#CP)%#B!"#BA!#C!!#CA$#E"#
+M!X8&C`6-!`````````!'0T,Z("A'3E4I(#0N,BXQ(#(P,#<P-S$Y("!;1G)E
+M94)31%T``"YS>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+G)E;&$N=&5X=``N
+M<F5L82YD871A`"YB<W,`+G)O9&%T82YS='(Q+C$`+G)E;&$N96A?9G)A;64`
+M+F-O;6UE;G0`````````````````````````````````````````````````
+M````````````````````````````````````````````(`````$````&````
+M````````````````0`````````!,"0``````````````````$```````````
+M`````````!L````$`````````````````````````-`1````````\`,`````
+M```+`````0````@`````````&``````````K`````0````,`````````````
+M``````"@"0```````&`````````````````````@````````````````````
+M)@````0`````````````````````````P!4```````!@``````````L````#
+M````"``````````8`````````#$````(`````P`````````````````````*
+M``````````````````````````````0````````````````````V`````0``
+M`#(`````````````````````"@```````$P````````````````````!````
+M``````$`````````2@````$````"````````````````````4`H```````"X
+M````````````````````"````````````````````$4````$````````````
+M`````````````"`6````````8``````````+````!P````@`````````&```
+M``````!4`````0`````````````````````````("P```````"8`````````
+M```````````!````````````````````$0````,`````````````````````
+M````+@L```````!=`````````````````````0````````````````````$`
+M```"`````````````````````````-`.````````*`(````````,````"P``
+M``@`````````&``````````)`````P````````````````````````#X$```
+M`````-,````````````````````!````````````````````````````````
+M`````````````````````0````0`\?\```````````````````````````,`
+M`0````````````````````````````,``P``````````````````````````
+M``,`!0``````````````````````#P````(``0```````````#\`````````
+M'`````$``P```````````&``````````)0````(``0!``````````"<`````
+M``````````,`!@````````````````````````````,`!P``````````````
+M``````````````,`"0``````````````````````*P```!``````````````
+M````````````-````!(``0!P``````````X%````````1````!``````````
+M````````````````3@```!``````````````````````````50```!``````
+M````````````````````9@```!``````````````````````````?@```!``
+M````````````````````````@P```!``````````````````````````E@``
+M`!``````````````````````````JP```!(``0"`!0```````,P#````````
+MO@```!``````````````````````````RP```!``````````````````````
+M`````&UE;7-T871?=6UA+F,`:W)E861?<WEM8F]L`&YA;65L:7-T`&MR96%D
+M`&MV;5]R96%D`&UE;7-T871?:W9M7W5M80!K=FU?;FQI<W0`;6%L;&]C`&UE
+M;7-T871?;71L7V9I;F0`7VUE;7-T871?;71?<F5S971?<W1A=',`9G)E90!?
+M;65M<W1A=%]M=&Q?96UP='D`7VUE;7-T871?;71?86QL;V-A=&4`;65M<W1A
+M=%]S>7-C=&Q?=6UA`'-Y<V-T;&)Y;F%M90!?7V5R<F]R````````&0``````
+M```+`````P```!``````````(0`````````"````"P```/S_________20``
+M```````"````"P```/S_________>P`````````*`````P``````````````
+MF``````````"````#0```/S_________I@`````````"`````P````,`````
+M````L``````````"`````P````L`````````4P$````````"````#@```/S_
+M________*P(````````"````"P```/S_________>@(````````"````#P``
+M`/S_________C@(````````"````$````/S_________D`0````````"````
+M$0```/S_________JP0````````"````$0```/S_________LP0````````"
+M````$@```/S__________P0````````"````$P```/S_________%04`````
+M```"````$0```/S_________'04````````"````$@```/S_________2P4`
+M```````"````$0```/S_________4P4````````"````$@```/S_________
+MTP4````````*````"````!$`````````X04````````"````%0```/S_____
+M____&08````````"````#@```/S_________-08````````*````"````!\`
+M````````.@8````````"````%0```/S_________1P8````````"````%@``
+M`/S_________6@8````````"````$0```/S_________:@8````````*````
+M"```````````````>`8````````"````%0```/S_________A08````````"
+M````%@```/S_________DP8````````"````%@```/S_________X`8`````
+M```"````$P```/S_________]`8````````"````$@```/S__________`8`
+M```````"````$0```/S_________.0<````````"````%@```/S_________
+M1P<````````"````%@```/S_________S0<````````"````#P```/S_____
+M____Y0<````````"````$````/S_________U@@````````"````$0```/S_
+M________X@@````````"````%@```/S_________\0@````````"````%@``
+M`/S_________$`D````````"````$0```/S_________-`D````````"````
+M$0```/S_________```````````!````"````"T`````````&``````````!
+M````"````#<`````````,``````````!````"````$$`````````2```````
+M```!````"````$L`````````(``````````*`````@``````````````.```
+M```````*`````@```$``````````4``````````*`````@```'``````````
+MB``````````*`````@```(`%````````+S`@("`@("`@("`@("`@(#$R,#DT
+M,#0Y-C<@(#`@("`@(#`@("`@(#$P,#8T-"`@-#DW-B`@("`@(&`*?T5,1@(!
+M`0D```````````$`/@`!`````````````````````````"`)````````````
+M`$```````$``#0`*`$AC]E-(B<M(C03U`````$C!Y@5(*<9,`X8`````3(G&
+MZ`````!(B<*X!@```$B%TG@+,<!(.=H/E<#!X`-;PY!328TT,$B)R^@`````
+M2(G"N`8```!(A=)X"S'`2#G:#Y7`P>`#6\-F9I!F9I!F9I!!5T%628G^055)
+MB?6^`````$%455-(@>S("```2(L'3(GO2(E$)`CH`````(7`#X67`@``@#T`
+M`````'0*2(,]``````!U'T''1@@'````N/____](@<3("```6UU!7$%=05Y!
+M7\-(C90DO`@``$4QP+D$````O@$```!,B>_H#?___X7`#X5D`@``@[PDO`@`
+M`"`/CT0"``!(C90DL`@``$4QP#'VN0@```!,B>_HW?[__X7`#X4T`@``2(NT
+M)+`(``!(A?8/A*`!``!(C40D$$R-O"20"```2(/`($B)!"1(C90D$`@``$4Q
+MP+F`````3(GOZ-?^__^%P(G##X5U`0``3(ND)$@(```QVV9FD$F-+!]*C30C
+MN0$```!,B>](B>KH`````$B%P`^(0@$``$C_R`^%B@$``(!]``!FD'06C4,!
+M2/_#2(/[('7"2)C&A`2/"````$ACC"2\"```2(NT)%`(``!(C50D$$4QP$R)
+M[TC!X0;H5/[__X7`B<,/A?(```!(@WPD"``/A/P```!,B?J^`0```$R)]^@`
+M````2(7`2(G##X3@````2(G?Z`````"+A"2\"```A<`/CGX```!(BQ0D2(G9
+M,?9FD$B+0N!(`4-(_\9(BT+H2`%#4$B+0O!(`4-82(M"^$@!0V!(BP)("4,X
+M2(M"X$B)@9@!``!(BT+H2(F!H`$``$B+0O!(B8&H`0``2(M"^$B)@;`!``!(
+MBP)(@\)`2(F!N`$``$B!P2@!```YM"2\"```?XU(BT-(2"M#4$B)0VA(BT-8
+M2"M#8$B)0W!(B[0D$`@``$B%]@^%=?[__S'`Z>']__^[!@```$R)]^@`````
+MN/____]!B5X(Z<;]__],B?J^`0```$R)]^@`````2(7`2(G##X4$____3(GW
+MZ`````"X_____T''1@@!````Z9#]__^["````.NMN/____]!QT8(!@```.EW
+M_?__N/____]!QT8(!````.EE_?__08E&"+C_____Z5?]__]F9I!!5T%6055)
+MB?U!5%532(/L&$R+/TB-7"0(2(UL)!!,C70D%.FL````2(-\)`@$#X7Z````
+M@WPD$"`/CU,!``!%,<`QR4B)VDR)]K\`````2,=$)`@$````Z`````"%P`^(
+M20$``$B#?"0(!`^%O0```$AC?"002&-$)!1(P><&2(/'($@/K_A(@\<@2(E\
+M)`CH`````$B%P$F)Q`^$U0```$4QP#')2(G:2(G&OP````#H`````(7`#XDB
+M`0``Z`````"#.`P/A4L"``!,B>?H`````$4QP#')2(G:2(GNOP````!(QT0D
+M"`0```#H`````(7`#XDN____Z`````"#.`UT#N@`````@S@!9F9FD'4<0<=%
+M"`,```!(@\08N/____];74%<05U!7D%?PT''10@%````N/____](@\086UU!
+M7$%=05Y!7\-(B>J^`0```$R)[^@`````2(7`2(G##X7O````3(GOZ`````!,
+MB>?H`````$''10@!````2(/$&+C_____6UU!7$%=05Y!7\-!QT4(!````$B#
+MQ!BX_____UM=05Q!74%>05_#Z`````"#.`T/A%;___]F9F:0Z`````"#.`$/
+MA$3___^X_____T''10@"````Z5O___](BT0D"$B%P`^$&@$``$B#^`\/AF(!
+M``!!@SPD`0^%5P$``$&+1"0$@_@@#X=C`0``B40D$$&+1"0(A<")1"04#X[B
+M````28UL)!!%,?9FD$V%_P^$$?___TB)ZKX!````3(GOZ`````!(A<!(B<,/
+MA/7^__](B=](@\4@Z`````"+5"00A=)^>4B)VC')9I!(@\5`_\%(BT7`2`%#
+M2$B+1<A(`4-02(M%T$@!0UA(BT782`%#8$B+1>!("4,X2(M%P$B)@I@!``!(
+MBT7(2(F"H`$``$B+1=!(B8*H`0``2(M%V$B)@K`!``!(BT7@2(F"N`$``$B!
+MPB@!```Y3"00?XY(BT-(2"M#4$'_QDB)0VA(BT-82"M#8$B)0W!$.70D%`^/
+M*/___TR)Y^@`````,<#I)/[__^@`````@S@-D'04Z`````"#.`%T"D''10@"
+M````ZPA!QT4(`P```$R)Y^@`````2(/$&+C_____6UU!7$%=05Y!7\-!QT4(
+M`@```$R)Y^@`````N/_____IQ_W__T''10@$````Z\``````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````````````````````````!K97)N+G-M<"YM87AC
+M<'5S`&ME<FXN;6%L;&]C7V-O=6YT`&ME<FXN;6%L;&]C7W-T871S`%]K;65M
+M<W1A=&ES=&EC<P!?;7!?;6%X8W!U<P``````````%``````````!>E(``7@0
+M`0,,!PB0`0``%````!P`````````/P````!$#A"#`@``%````#0`````````
+M)P````!!#A"#`@``-````$P`````````_0(```!"#A!"#AB.`X\"10X@C01*
+M#BA!#C!!#CA'#H`2@P>&!HP%```````T````A`````````!^`P```$(.$$(.
+M&$(.((T$C@./`D4.*$$.,$$..$0.4(,'A@:,!0````````!'0T,Z("A'3E4I
+M(#0N,BXQ(#(P,#<P-S$Y("!;1G)E94)31%T``"YS>6UT86(`+G-T<G1A8@`N
+M<VAS=')T86(`+G)E;&$N=&5X=``N<F5L82YD871A`"YB<W,`+G)O9&%T82YS
+M='(Q+C$`+G)E;&$N96A?9G)A;64`+F-O;6UE;G0`````````````````````
+M````````````````````````````````````````````````````````````
+M````````````(`````$````&````````````````````0`````````#N!@``
+M````````````````$````````````````````!L````$````````````````
+M`````````&@/````````8`,````````+`````0````@`````````&```````
+M```K`````0````,```````````````````!`!P```````$@`````````````
+M```````@````````````````````)@````0`````````````````````````
+MR!(```````!(``````````L````#````"``````````8`````````#$````(
+M`````P```````````````````(@'``````````````````````````````0`
+M```````````````````V`````0```#(```````````````````"(!P``````
+M`%(````````````````````!``````````$`````````2@````$````"````
+M````````````````X`<```````"X````````````````````"```````````
+M`````````$4````$`````````````````````````!`3````````8```````
+M```+````!P````@`````````&`````````!4`````0``````````````````
+M``````"8"````````"8````````````````````!````````````````````
+M$0````,`````````````````````````O@@```````!=````````````````
+M`````0````````````````````$````"`````````````````````````&`,
+M````````*`(````````,````"P````@`````````&``````````)`````P``
+M``````````````````````"(#@```````-P````````````````````!````
+M`````````````````````````````````````````````````0````0`\?\`
+M``````````````````````````,``0````````````````````````````,`
+M`P````````````````````````````,`!0``````````````````````$@``
+M``(``0```````````#\`````````'P````$``P```````````$@`````````
+M*`````(``0!``````````"<```````````````,`!@``````````````````
+M``````````,`!P````````````````````````````,`"0``````````````
+M````````+@```!``````````````````````````-P```!(``0!P````````
+M`/T"````````2@```!``````````````````````````5````!``````````
+M````````````````90```!``````````````````````````?0```!``````
+M````````````````````D````!``````````````````````````I0```!(`
+M`0!P`P```````'X#````````NP```!``````````````````````````R```
+M`!``````````````````````````SP```!``````````````````````````
+MUP```!```````````````````````````&UE;7-T871?;6%L;&]C+F,`:W)E
+M861?<WEM8F]L`&YA;65L:7-T`&MR96%D`&MV;5]R96%D`&UE;7-T871?:W9M
+M7VUA;&QO8P!K=FU?;FQI<W0`;65M<W1A=%]M=&Q?9FEN9`!?;65M<W1A=%]M
+M=%]R97-E=%]S=&%T<P!?;65M<W1A=%]M=&Q?96UP='D`7VUE;7-T871?;71?
+M86QL;V-A=&4`;65M<W1A=%]S>7-C=&Q?;6%L;&]C`'-Y<V-T;&)Y;F%M90!M
+M86QL;V,`7U]E<G)O<@!F<F5E```````9``````````L````#````$```````
+M```A``````````(````+````_/________])``````````(````+````_/__
+M______]]``````````H````#``````````````"8``````````(````-````
+M_/________^F``````````(````#`````P````````"P``````````(````#
+M````"P````````"4`0````````(````+````_/________\.`@````````(`
+M```.````_/________\B`@````````(````/````_/_________L`@``````
+M``(````0````_/________\*`P````````(````1````_/________\>`P``
+M``````(````0````_/________^[`P````````H````(````$0````````#)
+M`P````````(````3````_/________\!!`````````(````4````_/______
+M__\=!`````````H````(````(P`````````B!`````````(````3````_/__
+M______\O!`````````(````5````_/________]`!`````````(````6````
+M_/________]0!`````````H````(``````````````!>!`````````(````3
+M````_/________]K!`````````(````5````_/________]U!`````````(`
+M```5````_/_________&!`````````(````1````_/_________:!```````
+M``(````0````_/_________B!`````````(````6````_/________\?!0``
+M``````(````5````_/________\Q!0````````(````5````_/________^U
+M!0````````(````.````_/_________-!0````````(````/````_/______
+M__]\!@````````(````6````_/________^(!@````````(````5````_/__
+M______^3!@````````(````5````_/________^R!@````````(````6````
+M_/_________6!@````````(````6````_/________\```````````$````(
+M````-0`````````8``````````$````(````10`````````P``````````$`
+M```(````40`````````@``````````H````"```````````````X````````
+M``H````"````0`````````!0``````````H````"````<`````````"(````
+M``````H````"````<`,```````!M96US=&%T+F\O("`@("`@,3(P.30P-#DV
+M-R`@,"`@("`@,"`@("`@,3`P-C0T("`W-3DR("`@("`@8`I_14Q&`@$!"0``
+M`````````0`^``$`````````````````````````"`L`````````````0```
+M````0``.``L`@_\(=@NX`````,-F9I!FD(GX_R3%`````+@`````P[@`````
+MP[@`````P[@`````P[@`````P[@`````P[@`````P[@`````PV9F9I!F9I!(
+MBP?#9F9FD&9F9I!F9F:02(N'F"<``,-F9F:09F9FD(M'",-F9F:09F9FD&9F
+M9I!(QT<H`````$C'1S``````2(GX2,='.`````!(QT=``````#'22,='2```
+M``!(QT=0`````$C'1U@`````2,='8`````!(QT=H`````$C'1W``````2,='
+M>`````!(QX>``````````$C'AX@!````````2,>'D`$```````!FD$C'@)@!
+M````````2,>`H`$```````!(QX"H`0```````$C'@+`!````````2,>`N`$`
+M``````!(QX37F"8```````!(_\)(!2@!``!(@_H@=:[SPV9F9I!F9F:09F9F
+MD$B-1P3#9F9FD&9F9I!F9I"+!\-F9F:09F:09F:09F:02(M'*,-F9F:09F9F
+MD&9FD$B+1S##9F9FD&9F9I!F9I!(BT<XPV9F9I!F9F:09F:02(M'0,-F9F:0
+M9F9FD&9FD$B+1TC#9F9FD&9F9I!F9I!(BT=0PV9F9I!F9F:09F:02(M'6,-F
+M9F:09F9FD&9FD$B+1V##9F9FD&9F9I!F9I!(BT=HPV9F9I!F9F:09F:02(M'
+M<,-F9F:09F9FD&9FD$B+1WC#9F9FD&9F9I!F9I!(BX>`````PV9F9I!F9F:0
+M2&/V2(N$]X@```##9F9FD$AC]DB)E/>(````PV9F9I!(8_9(BX3W"`$``,-F
+M9F:02&/V2(F4]P@!``##9F9FD$B+AX@!``##9F9FD&9F9I!(BX>0`0``PV9F
+M9I!F9F:02&/V2&GV*`$``$B+A#>8`0``PV9F9I!F9I!F9I!F9I!(8_9(:?8H
+M`0``2(N$-Z`!``##9F9FD&9FD&9FD&9FD$AC]DAI]B@!``!(BX0WJ`$``,-F
+M9F:09F:09F:09F:02&/V2&GV*`$``$B+A#>P`0``PV9F9I!F9I!F9I!F9I!(
+M8_9(:?8H`0``2(N$-[@!``##9F9FD&9FD&9FD&9FD$AC]DACTDB)\$C!X`5(
+MC02P2`'P2`'02(N$Q\`!``##2&/V2&/22(GP2,'@!4B-!+!(`?!(`=!(B8S'
+MP`$``,-(8_9(8])(B?!(P>`%2(T$L$@!\$@!T$B+A,=``@``PTAC]DACTDB)
+M\$C!X`5(C02P2`'P2`'02(F,QT`"``##2&/V2(N$]Y@F``##9F9FD$B#[`B_
+M$````.@`````2(G",<!(A=)T$4B)T$C'`@````#'0@@`````2(/$",-FD$B)
+M7"3@2(EL).A(B?U,B60D\$R);"3XOZ@G``!(@^PH08GT28G5,=OH`````$B%
+MP'1/2(G#,?:ZJ"<``$B)Q^@`````2(U[!+H@````1(DC3(GNZ`````!(BU4`
+M2(722(F3F"<``'0.2(V#F"<``$B)@J`G``!(B5T`2(FKH"<``$B)V$B+;"00
+M2(M<)`A,BV0D&$R+;"0@2(/$*,-F9I!!54F)U4%408GT55-(@^P(2(L?2(7;
+M=#.!_O\```!`#Y3%ZPQ(BYN8)P``2(7;=!M$.2,/E,!`".ATZ4B->P1,B>[H
+M`````(7`==E(@\0(2(G86UU!7$%=PV9F9I!F9I!32(G[2(L_2(7_=#5F9F:0
+M2(N7F"<``$B%TG0.2(N'H"<``$B)@J`G``!(BX>@)P``2(D0Z`````!(BSM(
+MA?]USUO#9F9FD&9FD&9FD&9FD%-(B?OH`````$B)WUOI````````2U9-('-H
+M;W)T(')E860`56YK;F]W;B!E<G)O<@!#86YN;W0@86QL;V-A=&4@;65M;W)Y
+M`%9E<G-I;VX@;6ES;6%T8V@`4&5R;6ES<VEO;B!D96YI960`5&]O(&UA;GD@
+M0U!5<P!$871A(&9O<FUA="!E<G)O<@!+5DT@97)R;W(`2U9-('5N86)L92!T
+M;R!F:6YD('-Y;6)O;```````````````````````````````````````````
+M````````````````````````````````````````````````````````%```
+M```````!>E(``7@0`0,,!PB0`0``%````!P`````````20``````````````
+M%````#0`````````!```````````````%````$P`````````"```````````
+M````%````&0`````````!```````````````%````'P`````````U```````
+M````````%````)0`````````!0``````````````%````*P``````````P``
+M````````````%````,0`````````!0``````````````%````-P`````````
+M!0``````````````%````/0`````````!0``````````````%`````P!````
+M````!0``````````````%````"0!````````!0``````````````%````#P!
+M````````!0``````````````%````%0!````````!0``````````````%```
+M`&P!````````!0``````````````%````(0!````````!0``````````````
+M%````)P!````````!0``````````````%````+0!````````!0``````````
+M````%````,P!````````"```````````````%````.0!````````#```````
+M````````%````/P!````````#```````````````%````!0"````````#```
+M````````````%````"P"````````#```````````````%````$0"````````
+M"```````````````%````%P"````````"```````````````%````'0"````
+M````$P``````````````%````(P"````````$P``````````````%````*0"
+M````````$P``````````````%````+P"````````$P``````````````%```
+M`-0"````````$P``````````````%````.P"````````(```````````````
+M%`````0#````````(```````````````%````!P#````````(```````````
+M````%````#0#````````(```````````````%````$P#````````#```````
+M````````%````&0#````````+@````!$#A``````'````'P#````````G0``
+M``!*A@2#!58.,(T"C`,````D````G`,```````!9`````$(.$(T"10X8C`-$
+M#B!!#BA$#C"#!88$%````,0#````````0P````!!#A"#`@``%````-P#````
+M````$@````!!#A"#`@```$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&
+M<F5E0E-$70``+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A8@`N<F5L82YT97AT
+M`"YD871A`"YB<W,`+G)O9&%T82YS='(Q+C$`+G)E;&$N<F]D871A`"YR96QA
+M+F5H7V9R86UE`"YC;VUM96YT````````````````````````````````````
+M`````````````````````````````````````````````````````````"``
+M```!````!@```````````````````$``````````8@4`````````````````
+M`!`````````````````````;````!`````````````````````````!@%P``
+M`````+`!````````#`````$````(`````````!@`````````)@````$````#
+M````````````````````I`4`````````````````````````````!```````
+M`````````````"P````(`````P```````````````````*0%````````````
+M``````````````````0````````````````````Q`````0```#(`````````
+M``````````"D!0```````)L````````````````````!``````````$`````
+M````10````$````"````````````````````0`8```````!(````````````
+M````````"````````````````````$`````$````````````````````````
+M`!`9````````V``````````,````!@````@`````````&`````````!2````
+M`0````(```````````````````"(!@```````/`#```````````````````(
+M````````````````````30````0`````````````````````````Z!D`````
+M``#``P````````P````(````"``````````8`````````%P````!````````
+M`````````````````'@*````````)@````````````````````$`````````
+M```````````1`````P````````````````````````">"@```````&4`````
+M```````````````!`````````````````````0````(`````````````````
+M````````B`X````````0!0````````T````)````"``````````8````````
+M``D````#`````````````````````````)@3````````Q@,`````````````
+M``````$````````````````````````````````````````````````````!
+M````!`#Q_P```````````````````````````P`!````````````````````
+M`````````P`#`````````````````````````````P`$````````````````
+M`````````````P`%`````````````````````````````P`&````````````
+M`````````````````P`(`````````````````````````````P`*````````
+M```````````````+````$@`!````````````20`````````<````$@`!`%``
+M````````!``````````N````$@`!`&``````````"``````````_````$@`!
+M`'``````````!`````````!4````$@`!`(``````````U`````````!L````
+M$@`!`&`!````````!0````````!]````$@`!`'`!`````````P````````"3
+M````$@`!`(`!````````!0````````"J````$@`!`)`!````````!0``````
+M``#!````$@`!`*`!````````!0````````#6````$@`!`+`!````````!0``
+M``````#G````$@`!`,`!````````!0````````#^````$@`!`-`!````````
+M!0`````````3`0``$@`!`.`!````````!0`````````I`0``$@`!`/`!````
+M````!0`````````^`0``$@`!```"````````!0````````!0`0``$@`!`!`"
+M````````!0````````!B`0``$@`!`"`"````````!0````````!S`0``$@`!
+M`#`"````````"`````````"(`0``$@`!`$`"````````#`````````"C`0``
+M$@`!`%`"````````#`````````"^`0``$@`!`&`"````````#`````````#8
+M`0``$@`!`'`"````````#`````````#R`0``$@`!`(`"````````"```````
+M```'`@``$@`!`)`"````````"``````````;`@``$@`!`*`"````````$P``
+M```````Y`@``$@`!`,`"````````$P````````!5`@``$@`!`.`"````````
+M$P````````!R`@``$@`!```#````````$P````````".`@``$@`!`"`#````
+M````$P````````"J`@``$@`!`$`#````````(`````````#,`@``$@`!`&`#
+M````````(`````````#N`@``$@`!`(`#````````(``````````/`P``$@`!
+M`*`#````````(``````````P`P``$@`!`,`#````````#`````````!(`P``
+M$@`!`-`#````````+@````````!:`P``$`````````````````````````!A
+M`P``$@`!```$````````G0````````!V`P``$```````````````````````
+M``!]`P``$`````````````````````````"%`P``$@`!`*`$````````60``
+M``````"6`P``$`````````````````````````"=`P``$@`!```%````````
+M0P````````"P`P``$`````````````````````````"U`P``$@`!`%`%````
+M````$@``````````;65M<W1A="YC`&UE;7-T871?<W1R97)R;W(`;65M<W1A
+M=%]M=&Q?9FER<W0`;65M<W1A=%]M=&Q?;F5X=`!M96US=&%T7VUT;%]G971E
+M<G)O<@!?;65M<W1A=%]M=%]R97-E=%]S=&%T<P!M96US=&%T7V=E=%]N86UE
+M`&UE;7-T871?9V5T7V%L;&]C871O<@!M96US=&%T7V=E=%]C;W5N=&QI;6ET
+M`&UE;7-T871?9V5T7V)Y=&5S;&EM:70`;65M<W1A=%]G971?<VEZ96UA<VL`
+M;65M<W1A=%]G971?<VEZ90!M96US=&%T7V=E=%]M96UA;&QO8V5D`&UE;7-T
+M871?9V5T7VUE;69R965D`&UE;7-T871?9V5T7VYU;6%L;&]C<P!M96US=&%T
+M7V=E=%]N=6UF<F5E<P!M96US=&%T7V=E=%]B>71E<P!M96US=&%T7V=E=%]C
+M;W5N=`!M96US=&%T7V=E=%]F<F5E`&UE;7-T871?9V5T7V9A:6QU<F5S`&UE
+M;7-T871?9V5T7V-A;&QE<E]P;VEN=&5R`&UE;7-T871?<V5T7V-A;&QE<E]P
+M;VEN=&5R`&UE;7-T871?9V5T7V-A;&QE<E]U:6YT-C0`;65M<W1A=%]S971?
+M8V%L;&5R7W5I;G0V-`!M96US=&%T7V=E=%]Z;VYE9G)E90!M96US=&%T7V=E
+M=%]K96=F<F5E`&UE;7-T871?9V5T7W!E<F-P=5]M96UA;&QO8V5D`&UE;7-T
+M871?9V5T7W!E<F-P=5]M96UF<F5E9`!M96US=&%T7V=E=%]P97)C<'5?;G5M
+M86QL;V-S`&UE;7-T871?9V5T7W!E<F-P=5]N=6UF<F5E<P!M96US=&%T7V=E
+M=%]P97)C<'5?<VEZ96UA<VL`;65M<W1A=%]G971?<&5R8W!U7V-A;&QE<E]P
+M;VEN=&5R`&UE;7-T871?<V5T7W!E<F-P=5]C86QL97)?<&]I;G1E<@!M96US
+M=&%T7V=E=%]P97)C<'5?8V%L;&5R7W5I;G0V-`!M96US=&%T7W-E=%]P97)C
+M<'5?8V%L;&5R7W5I;G0V-`!M96US=&%T7V=E=%]P97)C<'5?9G)E90!M96US
+M=&%T7VUT;%]A;&QO8P!M86QL;V,`7VUE;7-T871?;71?86QL;V-A=&4`;65M
+M<V5T`'-T<FQC<'D`;65M<W1A=%]M=&Q?9FEN9`!S=')C;7``7VUE;7-T871?
+M;71L7V5M<'1Y`&9R964`;65M<W1A=%]M=&Q?9G)E90````8`````````"@``
+M``4````/`````````!4`````````"P````8``````````````!H`````````
+M"@````4``````````````"``````````"@````4````=`````````"8`````
+M````"@````4````T`````````"P`````````"@````4```!%`````````#(`
+M````````"@````4```!7`````````#@`````````"@````4```!E````````
+M`#X`````````"@````4```!W`````````$0`````````"@````4```"!````
+M`````-H#`````````@```"T```#\_________RD$`````````@```"T```#\
+M_________T`$`````````@```"\```#\_________U0$`````````@```#``
+M``#\_________^,$`````````@```#(```#\_________S4%`````````@``
+M`#0```#\_________U4%`````````@```#,```#\_________UX%````````
+M`@```#0```#\_________P```````````0````(````%``````````@`````
+M`````0````(````?`````````!```````````0````(````E`````````!@`
+M`````````0````(````K`````````"```````````0````(````Q````````
+M`"@``````````0````(````W`````````#```````````0````(````]````
+M`````#@``````````0````(```!#`````````$```````````0````(````9
+M`````````"``````````"@````(``````````````#@`````````"@````(`
+M``!0`````````%``````````"@````(```!@`````````&@`````````"@``
+M``(```!P`````````(``````````"@````(```"``````````)@`````````
+M"@````(```!@`0```````+``````````"@````(```!P`0```````,@`````
+M````"@````(```"``0```````.``````````"@````(```"0`0```````/@`
+M````````"@````(```"@`0```````!`!````````"@````(```"P`0``````
+M`"@!````````"@````(```#``0```````$`!````````"@````(```#0`0``
+M`````%@!````````"@````(```#@`0```````'`!````````"@````(```#P
+M`0```````(@!````````"@````(``````@```````*`!````````"@````(`
+M```0`@```````+@!````````"@````(````@`@```````-`!````````"@``
+M``(````P`@```````.@!````````"@````(```!``@`````````"````````
+M"@````(```!0`@```````!@"````````"@````(```!@`@```````#`"````
+M````"@````(```!P`@```````$@"````````"@````(```"``@```````&`"
+M````````"@````(```"0`@```````'@"````````"@````(```"@`@``````
+M`)`"````````"@````(```#``@```````*@"````````"@````(```#@`@``
+M`````,`"````````"@````(``````P```````-@"````````"@````(````@
+M`P```````/`"````````"@````(```!``P````````@#````````"@````(`
+M``!@`P```````"`#````````"@````(```"``P```````#@#````````"@``
+M``(```"@`P```````%`#````````"@````(```#``P```````&@#````````
+M"@````(```#0`P```````(`#````````"@````(`````!````````*`#````
+M````"@````(```"@!````````,@#````````"@````(`````!0```````.`#
+6````````"@````(```!0!0``````````
+`
+end
diff --git a/test/nm/ts/nm_debug/Makefile b/test/nm/ts/nm_debug/Makefile
new file mode 100644
index 0000000000000..3aa018882bd6e
--- /dev/null
+++ b/test/nm/ts/nm_debug/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_obj
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_debug/tc.sh b/test/nm/ts/nm_debug/tc.sh
new file mode 100755
index 0000000000000..c7a87cc52843c
--- /dev/null
+++ b/test/nm/ts/nm_debug/tc.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2085 2011-10-27 05:06:47Z jkoshy $
+
+tp1()
+{
+ test_debug_syms1 $TEST_FILE "$TEST_FILE-debug-syms.txt"
+}
+
+tp2()
+{
+ test_debug_syms2 $TEST_FILE "$TEST_FILE-debug-syms.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_obj"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2"
+
+ic1="tp1"
+ic2="tp2"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_debug/test_obj-debug-syms.txt b/test/nm/ts/nm_debug/test_obj-debug-syms.txt
new file mode 100644
index 0000000000000..cfb9aa9af5f85
--- /dev/null
+++ b/test/nm/ts/nm_debug/test_obj-debug-syms.txt
@@ -0,0 +1,69 @@
+0000000000000000 b .bss
+0000000000000000 n .comment
+0000000000000000 d .data
+0000000000000000 N .debug_abbrev
+0000000000000000 N .debug_aranges
+0000000000000000 N .debug_frame
+0000000000000000 N .debug_info
+0000000000000000 N .debug_line
+0000000000000000 N .debug_loc
+0000000000000000 N .debug_pubnames
+0000000000000000 N .debug_ranges
+0000000000000000 N .debug_str
+0000000000000000 r .eh_frame
+0000000000000000 r .rodata.str1.1
+0000000000000000 r .rodata.str1.8
+0000000000000000 t .text
+ U __isthreaded
+ U __stdoutp
+ U __swbuf
+ U add_to_inseg_list
+0000000000000330 t add_to_shstrtab
+00000000000003a0 T add_unloadables
+ U calloc
+00000000000010f0 T copy_content
+0000000000000590 T copy_data
+0000000000000690 T copy_shdr
+0000000000000c60 T create_scn
+ U create_symtab
+ U elf_errmsg
+ U elf_errno
+ U elf_getdata
+ U elf_getshstrndx
+ U elf_ndxscn
+ U elf_newdata
+ U elf_newscn
+ U elf_nextscn
+ U elf_setshstrndx
+ U elf_strptr
+ U err
+ U errx
+ U gelf_fsize
+ U gelf_getehdr
+ U gelf_getrel
+ U gelf_getshdr
+ U gelf_update_shdr
+0000000000000900 T insert_shtab
+0000000000000000 t insert_to_sec_list
+ U insert_to_strtab
+0000000000000ae0 t is_append_section
+0000000000000ab0 t is_compress_section
+0000000000000b20 t is_remove_section
+ U lookup_keep_symlist
+0000000000000a00 T lookup_sec_act
+ U lookup_string
+ U malloc
+ U memcpy
+ U memmove
+ U memset
+0000000000001010 t print_data
+ U putc
+00000000000007d0 T resync_sections
+0000000000000000 a sections.c
+0000000000000070 T set_shstrtab
+ U strcmp
+ U strlen
+ U strncmp
+ U strncpy
+0000000000000230 T update_shdr
+ U warnx
diff --git a/test/nm/ts/nm_debug/test_obj.uu b/test/nm/ts/nm_debug/test_obj.uu
new file mode 100644
index 0000000000000..234e8a00589eb
--- /dev/null
+++ b/test/nm/ts/nm_debug/test_obj.uu
@@ -0,0 +1,1115 @@
+begin 644 test_obj
+M?T5,1@(!`0D```````````$`/@`!`````````````````````````"!Q````
+M`````````$```````$``&P`8`$B+E\````!(A=)T'TB+1B!(.T(@<PSK/$@Y
+M0B!F9F:0=S)(BU)82(72=>U(QT98`````$B+A\@```!(B49@2(N'R````$B)
+M,$B-1EA(B8?(````PTB+0F!(B5982(E&8$B+0F!(B3!(C4982(E"8,-,B60D
+M\$B)7"3@28G\2(EL).A,B6PD^$B#[&A(BV]82(GF2(M]$.@`````2(7`#X0*
+M`0``2,=$)!``````2,=$)#`!````2(M%(,=$)`0#````2,=$)`@`````2,=$
+M)#@`````QT0D+`````#'1"0H`````$B)1"082(M]$.@`````2(7`2(G##X3.
+M````0?9$)&00#X2&````2(M%*$B)YDB)1"0@2(M]$.@`````A<`/A,,```!(
+MQP,!````2(M%&$B)0PA(BT4H2,=#$`````#'0R`!````QT,D`0```$B)0QA(
+MBWT0Z`````!)BWPD($B)QN@`````A<`/A)8```!(BUPD2$B+;"103(MD)%A,
+MBVPD8$B#Q&C#9F:09I!(BU4H2(M]&$B#ZA!(C7<02(E5*.@`````Z5S___^_
+M_____^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(
+MB<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_
+M_____^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:005152(G]
+M4TB#[$!(BY_`````2(7;=')(BWL02(GFZ`````!(A<!T?4B+?5A(BS/H````
+M`(M4)"B)!"2%TG0Q2(N%P````$B%P'4.ZTYF9I!(BT!82(7`=$([4$AF9F:0
+M=>Y(BW@0Z`````")1"0HD$B+>Q!(B>;H`````(7`=$-(BUM82(7;=8[H````
+M`(7`=4](@\1`6UU!7,/'1"0H`````.O+O______H`````+X`````2(G"OT8`
+M```QP.@`````O______H`````+X`````2(G"OT8````QP.@`````B<?H````
+M`+X`````2(G"OT8````QP.@`````9F9FD$B);"3X2(E<)/!(@^P82(M?6$B)
+M]4B#>Q@`=!E(B>Y(B=](BVPD$$B+7"0(2(/$&.D`````2(G?O@````#H````
+M`$B)W[X`````Z`````!(B=^^`````.@`````O@````!(B=_H`````.NQ9F:0
+M9I!!5D%528G]05154TB#[$!(BZ_`````2(7M=")!N`````#K"4B+;5A(A>UT
+M$4B+=0"Y"@```$R)Q_SSIG7F28N=D````$B%VP^$!@$``&9FD$F+?2#H````
+M`$B%P$F)Q`^$^P```+YX````OP$```#H`````$B%P$B)P@^$_@```$B+`TR)
+MYTB)`DB+12!(B4(@2(M#$,="2/_____'0DP`````2,=""`````!,B6(02(E"
+M*$B+16!(B6I82(E"8$B+16!(B1!(C4)82(E%8.@`````2(7`2(G"#X2P````
+M2,<``0```$C'0!``````2(GF2(M#"$R)YTB)0@A(BT,0QT(@`0```,=")`$`
+M``!(B4(8Z`````!(A<`/A(T```#'1"0$`0```$B+,TR)[^A=_O__2(GF3(GG
+MZ`````"%P`^$A0```$B+6QA(A=L/A?W^__](@\1`6UU!7$%=05[#O______H
+M`````+X`````2(G"OT8````QP.@`````O@````"_1@```#'`Z`````"_____
+M_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_
+M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:0
+M9F:054B)_5-(@^P(BU=4A=)T!TB#?Q@`=&PQV^M+9F:09I!(BWT0Z`````!(
+MA<!(B<(/A(8```"+152%P'5.2(L#2(D"2(M#$$B)0A!(BT,(2(E""(M#((E"
+M($B+0QA(B4(8BT,DB4(D2(M]"$B)WN@`````2(7`2(G#=:;H`````(7`=59(
+M@\0(6UW#2(L#2,="$`````!(B0)(BT482(E""(M#((E"($B+12A(B4(8BT,D
+MB4(D2(/$"%M=P[______Z`````"^`````$B)PK]&````,<#H`````(G'Z```
+M``"^`````$B)PK]&````,<#H`````&9F9I!F9F:09F9FD$B)7"3@2(EL).A(
+MB=-,B60D\$R);"3X2('LJ````$F)_$B)]TB-="1`2(G-Z`````!(A<`/A*4`
+M``!(B>9(B=_H`````$B%P`^$KP```$B+1"1`2(GN3(GG2(D$)$B+1"1(2(E$
+M)`A(BT0D4$B)1"002(M$)%A(B40D&$B+1"1@2(E$)"!(BT0D:$B)1"0H2(M$
+M)'!(B40D,$B+1"1X2(E$)#CH^/O__TB)YDB)W^@`````A<!T9$B+G"2(````
+M2(NL))````!,BZ0DF````$R+K"2@````2('$J````,.______^@`````O@``
+M``!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z```
+M``"______^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:0055!5%53
+M2(/L2$B+G\````!(A=L/A+(```!%,>3ID````$B+:R!,.>4/@J@```"+>TR%
+M_W4?2(MS.#'23(GE2HU,)O](B<A(]_9(B<=(#Z_^2(E[((M+4(7)=5](BT-`
+M2(/X"'0-2(7`=`A(BVL@2`-K*$B+>Q!(B>;H`````$B%P'1O2(M#($B)YDB)
+M1"082(M#*$B)1"0@2(M[$.@`````A<!T:TB+6UA(A=MT'4F)[$V%Y`^%9___
+M_TB+:R!(`VLH2(M;6$B%VW7C2(/$2%M=05Q!7<.+<TR%]@^$5/___[\`````
+M,<#H`````.E#____O______H`````+X`````2(G"OT8````QP.@`````O___
+M___H`````+X`````2(G"OT8````QP.@`````D%5(B?U32(/L2$B+?QA(B>;H
+M`````$B%P`^$E````+YX````OP$```#H`````$B%P$B)PP^$M0```$B+1"0H
+MN@$```!(B4,@2(N-P````$B%R708,<"#>5`!2(M)6(/0`$B%R77P@\`!2&/0
+M2(M](+D!````O@X```#H`````$B%P$B)0RAT24B)WDB)[TC'0S@$````QT-,
+M`````,=#4`$```#H6/;__TB)V$B#Q$A;7<.______^@`````O@````!(B<*_
+M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^````
+M`+]&````,<#H`````)!!54&)U4%428G\54B)]5-(@^P(2(N?@````$B%VW4+
+MZR9(BUM`2(7;=!U(BS-(B>_H`````(7`=>A(@\0(2(G86UU!7$%=PS';187M
+M=.N_2````.@`````2(7`=#9(B<.Z2````#'V2(G'Z`````!(B2M(QT-`````
+M`$F+A"2(````2(D82(U#0$F)A"2(````ZZ:^`````+]&````Z`````!F9F:0
+M9F9FD&9FD&9FD#'22(/L".@`````,=)(A<!T"3'2@W@H``^5PHG02(/$",-F
+M9F:09F9FD&9FD&9FD$B#[`@QTN@`````2(7`="!$BT`D187`=!=(@W@8``^5
+MP$B#Q`@/ML##9F9FD&9FD#'`2(/$",-F9I!F9I!F9I#\2(EL).A,B6PD^+D*
+M````2(E<).!,B60D\$F)_4B#[%B_`````$B)]?.F=1LQP$B+7"0X2(ML)$!,
+MBV0D2$R+;"102(/$6,._`````+D(````2(GN\Z9U##'`08-]8`$/E,#KRK\`
+M````N0@```!(B>[SIG3CNP````!)B>1(QP0D`````$C'1"0(`````$C'1"00
+M`````$C'1"08`````$C'1"0@`````.L29F9FD$F+7"0(28/$"$B%VW0P2(G?
+MZ`````!(B=Y(B<)(B>_H`````(7`==A!BT5@@^@!@_@!=PJX`0```.E!____
+M28-]0``/A#3___\QTDB)[DR)[^@`````08M=0(7;=`Y(A<!T"42+6#1%A=MU
+MR$6+541%A=(/A`3___](A<!TMD2+2"Q%A<D/E,`/ML#I[_[__T%7OG@```!!
+M5D%505152(G]OP$```!32('LF````.@`````2(7`2(E%6`^$*P,``$C'````
+M``!(QT`(`````$B-M"2(````2,=`*`````!(QT`X`0```,=`3`````!(QT!`
+M`P```$B+?1CH`````(7`#X3S`@``3(U\)$!%,?:02(M]&$R)]N@`````2(7`
+M28G&#X0P`@``3(G^3(GWZ`````!(A<`/A%4"``"+5"1`2(NT)(@```!(BWT8
+MZ`````!(A<!)B<0/A!8"``!(B<9(B>_HZ/W__X7`=:2+1"1$@_@)#X2M````
+M@_@$#X2D````0;T`````N0H```!,B>;\3(GO\Z8/A20!``!(BUU82(M$)%A(
+MB4,@2(M](.@`````2(7`2(E#$`^$#@(``$R)]^@`````A<")0T@/A-T!``#\
+MN0H```!,B>9,B>_SI@^%,@$``/R_`````+D(````3(GF\Z9U"(--9!!(B5U(
+M_+\`````N0@```!,B>;SIG4$2(E=4$B)WDB)[^@/\O__Z>K^__]$BVPD;$6%
+M[0^$3O___TB+?1A(C;0D@````.@`````A<`/A*T!```QVT6)[4B+?1A(B=[H
+M`````$B%P$B)PP^$Q@```$B)W^@`````23G%==M(B>9(B=_H`````$B%P`^$
+MC0$``(L4)$B+M"2`````2(M]&.@`````2(7`2(G&#X3(````2(GOZ)W\__^%
+MP`^%5?[__^G"_O__OG@```"_`0```.@`````2(7`#X03`0``2(G#3(D@3(EP
+M"$B+1"182(G>2(GO2(E#($B+1"1@2(E#*$B+1"1P2(E#.(M$)$1(B4-`Z```
+M``")0TSID?[__TB+4Q!(BW,(2(GO2(L+Z`````#IMO[__^@`````A<`/A-/]
+M__^)Q^@`````O@````!(B<*_1@```#'`Z`````#H`````(7`==Q(@<28````
+M6UU!7$%=05Y!7\.______^@`````O@````!(B<*_1@```#'`Z`````"_____
+M_^@`````O@````!(B<*_1@```#'`Z`````"______^@`````O@````!(B<*_
+M1@```#'`Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"^````
+M`+]&````Z`````"______^@`````O@````!(B<*_1@```#'`Z`````"_____
+M_^@`````O@````!(B<*_1@```#'`Z`````!F9F:09F:09F:054B-+#=32(/L
+M"$@Y[W-[2(G[ZSB+!0````"%P'5S2(LU`````(M&#(/H`87`B48,#XB6````
+M2(L&Q@`*2(/``4B)!DB#PP%(.>MT/@^V$X32=,&+!0````"%P'5'2(LU````
+M``^^^HM&#(/H`87`B48,>$%(BP9(@\,!0(@X2(/``4@YZTB)!G7"2(/$"%M=
+MPTB+-0````"_"@```.@`````ZY](BS4`````#[[ZZ`````#KCCM&*'P(@/H*
+M9F:0=;+H`````.EW____OPH```#H`````.EH____9F:09I!!5T%6055!5%53
+M2('LF````$B)?"083(NOP````$V%[71;2(V$)(````!(B40D".L)38MM6$V%
+M[71#08M%4(7`=>])BUT`OP````"Y"````/Q(B=[SIG4W2(M4)!CV0F1`=<Y(
+MB=?H`````$B+1"08@TAD0$V+;5A-A>UUO4B!Q)@```!;74%<05U!7D%?P[\`
+M````N0@```!(B=[SIG2X_+\`````N0H```!(B=[SI@^$>____TB+5"08@WI@
+M`0^$CP```$B+?"082(G>Z![Y__^%P`^$,0,``#';13'_2,=$)#@`````ZS]F
+M9I!F9I!(BWPD.$@#>QCH`````$F)QTV%_P^$V0,``$B+5"0X2(MS"$F-/!=(
+MBU,8Z`````!(BT,82`%$)#A)BWT(2(G>Z`````!(A<!(B<,/A(\```!-A?]U
+MJDB+>QCH`````$F)Q^NM28-]0`D/A6;___])BWT(2(UT)$#H`````$B%P`^$
+MU`0``$B+1"08]D!D$`^%C@,``$B+@,````!(A<!T(8M4)&@[4$AU#^EK`P``
+MD#E02`^$80,``$B+0%A(A<!U[DF+70!!QT54`0```$G'12@`````Z?K^__]F
+M9I!FD.@`````A<`/A4,$``!-A?\/A-L!``!(@WPD.`!F9F:0#X3+`0``2(M\
+M)!A)BW4`Z.SW__^%P$B+?"0X#X6J`@``Z`````!(A<!(B40D,`^$%P0``$B+
+M1"0P28MU`$F)11A(BWPD&.B%]___A<`/A&$"``!(BU0D.$C'1"0X`````$P!
+M^DPY^DB)5"0@#X:,````3(GX,>U(QT0D*`````"`.`!T%4B#Q0%*C40]`$@Y
+M1"0@2(EL)"AWYD@Y1"0@#X2@`0``3(MT)#!,`W0D.$R+9"0P33GF=R'I+@$`
+M`&:028U<)`%,B>?H`````$R-)`--.>8/AA(!``!,B?Y,B>?H`````(7`===(
+MBT0D*$Z-?#@!3#E\)"`/AW3___])BW4`2(M\)!CH]/;__X7`#X50`0``2(M$
+M)#A!QT54`0```$F)12A,B>_H`````$F+=0!(BWPD&#'2Z`````!(A<`/A/O\
+M__^+0#"%P`^$\/S__TF+?1A(A?]T#4F+=2A(A?8/A<X````QV^L-2(MS&$B+
+M>PCHN/O__TF+?0A(B=[H`````$B%P$B)PW7?Z`````"%P`^%EP(``(L%````
+M`(7`#X5=`0``2(LU`````(M&#(/H`87`B48,#X@U`@``2(L&Q@`*2(/``4B)
+M!NEP_/__28MU`$B+?"08Z"'V__^%P`^$/O___^D:_O__2(GJ3(G^3(GWZ```
+M``!(BU0D.$B-1!4`2(M4)##&!!``2(/``4B)1"0XZ<[^__](BWPD&$B)WNBH
+M]?__A<`/A/7^___IM?S__^CV^O__9F:09F:0Z53___](BWPD,$@#?"0X2(GJ
+M3(G^Z`````!(`6PD..F:_O__28MU`$B+?"08,=+H`````$R+8!A,B>?H````
+M`$B+?"0P2`-\)#A(B<),B>9(B</H`````$@#7"0X2(M4)##&!!,`2(/#`4B)
+M7"0XZ6#^__](BU0D.$B+?"0P3(G^Z`````#I,_[__TF+=0!(BWPD&#'2Z```
+M``!(BW@8Z`````!(BU0D.$B-?`(!Z2[]__^^`````+]&````,<#H`````$B+
+M-0````"_"@```.@`````Z2?[__])BUT`Z;+[__](BT0D&$B+4$B+1"1H.T)(
+M=>4Q[44QY$4Q]DF+?0A,B?;H`````$B%P$F)Q@^$7P$``$B-E"2`````,?9,
+MB??H`````$@[1"0(#X4D`0``2(M4)!B+G"2,````2(M"4$B+>`CH`````$B)
+MQDB+1"082(G:2(MX&.@`````2(7`2(G&#X3-````2(M\)!CH`````(7`=(1(
+MBU0D&(-Z%`%T/[]`````Z`````!(A<!T>$F)Q$B+A"2`````28D$)$B+A"2(
+M````28E$)`CI2?___[\*````Z`````#I/OK__[\@````Z`````!(A<!T.4B)
+MQ4B+A"2`````B44`2(N$)(@```")103I#?___XG'Z`````"^`````$B)PK]&
+M````,<#H`````+X`````OT8```#H`````+______Z`````"^`````$B)PK]&
+M````,<#H`````+______Z`````"^`````$B)PK]&````,<#H`````+______
+MZ`````"^`````$B)PK]&````,<#H`````.@`````A<")QP^%;____TB+1"08
+MN0$```"^#````(-X%`%)#T7L,=))B6T82(MX(.@`````28M=`$F)12A!QT54
+M`0```.G7^?__```!$0$E#A,+`PX;#A$!$@$0!@```B0`"PL^"P,.```#%@`#
+M#CH+.PM)$P``!"0`"PL^"P,(```%)``+"SX+```&#P`+"P``!P\`"PM)$P``
+M""8`21,```D3`0,."PLZ"SL+`1,```H-``,..@L["TD3.`H```L-``,(.@L[
+M"TD3.`H```P5`2<,21,!$P``#04`21,```X3``,./`P```\!`4D3`1,``!`A
+M`$D3+PL``!$3`0L+.@L["P$3```2%@`#"#H+.PM)$P``$P0!"PLZ"SL+`1,`
+M`!0H``,.'`T``!4N`0,..@L["R<,$0$2`4`*`1,``!8%``,(.@L["TD3`@H`
+M`!<T``,(.@L["TD3`@H``!@N`3\,`PXZ"SL%)PP1`1(!0`8!$P``&04``P@Z
+M"SL%21,"!@``&C0``P@Z"SL%21,"!@``&S0``PXZ"SL%21,"!@``'#0``P@Z
+M"SL%21,""@``'30``PXZ"SL%21,``!XN`0,..@L[!2<,$0$2`4`&`1,``!\%
+M``,..@L[!4D3`@8``"`T``,(.@L[!4D3```A+@$_#`,..@L[!2<,21,1`1(!
+M0`8!$P``(BX!/PP##CH+.PLG#$D3$0$2`4`&`1,``",%``,(.@L["TD3`@8`
+M`"0%``,..@L["TD3`@8``"4T``,(.@L["TD3`@8``"8N`0,..@L["R<,21,1
+M`1(!0`8!$P``)RX!`PXZ"SL+)PQ)$R`+`1,``"@%``,..@L["TD3```I-``#
+M#CH+.PM)$P``*C0``P@Z"SL+21,``"L+`54&`1,``"P=`3$3$0$2`5@+60L`
+M`"T%`#$3```N"P$1`1(!```O-``Q$P(*```P-``Q$P``,04``P@Z"SL+21,`
+M`#(N`3\,`PXZ"SL+)PP1`1(!0`8!$P``,S0``PXZ"SL+21,"!@``-#0``PXZ
+M"SL+21,""@``-1T!,1-5!E@+604``#8+`54&```W-``Q$P(&```X+@$##CH+
+M.P4G#$D3(`L!$P``.04``P@Z"SL%21,``#H=`3$35098"UD%`1,``#L%`#$3
+M`@8``#PN`0,..@L[!2<,(`L!$P``/04``PXZ"SL%21,``#X=`3$3$0$2`5@+
+M604!$P``/S0``PXZ"SL+21,_##P,``!`-``##CH+.P5)$S\,/`P```#^&```
+M`@``````"`$``````0`````````````````````````````````````"`08`
+M`````@$(``````("!0`````#``````,V30````("!P`````$!`5I;G0``P``
+M```#.&8````"!`<``````P`````#.7@````""`4``````P`````#.HH````"
+M"`<``````@@$``````($!``````#``````-2?P````4(!P8(`P`````$-&T`
+M```"`08``````P`````%64(````#``````5>6P````,`````!6-_````!PBZ
+M````!PCN````"+H````#``````7HGP````,``````B^O````"0`````0`D8R
+M`0``"@`````"1S(!```"(P`*``````)(5`````(C"``'"#0````)`````)@"
+M9EP"```+7W```F<R`0```B,`"U]R``)H5`````(C"`M?=P`":50````"(PP*
+M``````)J.P````(C$`H``````FL[`````B,2"U]B9@`";`D!```"(Q@*````
+M``)M5`````(C*`H``````G"M`````B,P"@`````"<6P"```"(S@*``````)R
+MC`(```(C0`H``````G.L`@```B-("@`````"=,P"```"(U`+7W5B``)W"0$`
+M``(C6`H``````GC8`@```B-H"U]U<@`">50````"(W`*``````)\W@(```(C
+M=`H``````GWN`@```B-W"U]L8@`"@`D!```"(W@*``````*#5`````,CB`$*
+M``````*$_@````,CD`$`#`%4````;`(```VM``````<(7`(```P!5````(P"
+M```-K0````WB````#50`````!PAR`@``#`'^````K`(```VM````#?X````-
+M5``````'")("```,`50```#,`@``#:T````-Z`````U4``````<(L@(```X`
+M`````0<(T@(```\T````[@(``!"J`````@`/-````/X"```0J@```````P``
+M```"A3@!```""`4``````P`````&)LP````#``````8JS`````\T````-@,`
+M`!"J````#P`1"`9Z6P,```H`````!GL0`P```B,`"@`````&?!L#```"(P0`
+M`P`````&?38#```#``````<FUP````,`````!R?!`````P`````'*-<````#
+M``````<KS`````,`````!RW7````$4`'0&H$```*``````=!)@,```(C``H`
+M````!T)Q`P```B,0"@`````'0W$#```"(Q(*``````=$AP,```(C%`H`````
+M!T5F`P```B,8"@`````'1GP#```"(R`*``````='?`,```(C*`H`````!TB'
+M`P```B,P"@`````'27$#```"(S0*``````=*<0,```(C-@H`````!TMQ`P``
+M`B,X"@`````'3'$#```"(SH*``````=-<0,```(C/`H`````!TYQ`P```B,^
+M``,`````!T^=`P``$4`'50H%```*``````=6AP,```(C``H`````!UB'`P``
+M`B,$"@`````'69(#```"(P@*``````=:9@,```(C$`H`````!UM\`P```B,8
+M"@`````'7)(#```"(R`*``````==AP,```(C*`H`````!UZ'`P```B,L"@``
+M```'7Y(#```"(S`*``````=@D@,```(C.``#``````=A=00``!$0!X,Z!0``
+M"@`````'A&8#```"(P`*``````>%D@,```(C"``#``````>&%04``!)%;&8`
+M""90!0``#@`````!`P`````()V$%```.``````$3!`@V``8``!0``````!0`
+M`````10``````A0``````Q0`````!!0`````!10`````!A0`````!Q0`````
+M"!0`````"10`````"A0`````"Q0`````#!0`````#10`````#A0`````#Q0`
+M````$!0`````$10`````$A0`````$Q0`````%!0`````%10`````%A0`````
+M%P`#``````A/9P4``!$("'@B!@``"@`````(>*T&```"(P``"0````!`"&BM
+M!@``"@`````(;-<````"(P`*``````AMK0````(C"`H`````"&[7`````B,0
+M"@`````(;]<````"(Q@*``````AP``8```(C(`H`````"'%F`````B,D"@``
+M```(=K,&```"(R@*``````AW9@````(C,`H`````"'@+!@```B,X``<((@8`
+M``<(5@4```,`````"'DB!@```P`````)+FH$```#``````DP"@4```,`````
+M"3(Z!0``$0@*)/P&```*``````HD)0<```(C```)`````!`*(24'```*````
+M``HBZ`````(C``H`````"B3E!@```B,(``<(_`8``!$("C9"!P``"@`````*
+M-O<'```"(P``"0````!("BCW!P``"@`````**>@````"(P`*``````HJZ```
+M``(C"`H`````"BOH`````B,0"@`````*+.@````"(Q@+861D``HN5`````(C
+M(`H`````"B]4`````B,D"@`````*,%0````"(R@*``````HQ5`````(C+`H`
+M````"C)4`````B,P"@`````*,U0````"(S0*``````HT5`````(C.`H`````
+M"C8K!P```B-```<(0@<``!$("C\4"```"@`````*/UD(```"(P``"0`````@
+M"CI9"```"@`````*.^(````"(P`*``````H\X@````(C"`H`````"CWS````
+M`B,0"@`````*/_T'```"(Q@`!P@4"```$1`*4H0(```*``````I28`D```(C
+M``H`````"E)F"0```B,(``D`````>`I#8`D```H`````"D3H`````B,`"VES
+M``I%LP8```(C"`MO<P`*1K,&```"(Q`+8G5F``I'K0````(C&`MO9F8`"DC7
+M`````B,@"W-Z``I)UP````(C*`MC87``"DK7`````B,P"@`````*2]<````"
+M(S@*``````I,UP````(C0`MN9'@`"DW,`````B-("@`````*3E0````"(TP*
+M``````I/5`````(C4`H`````"E!4`````B-4"@`````*4E\(```"(U@*````
+M``I3;`D```(C:``'"(0(```'"&`)```1$`I3D0D```H`````"E-@"0```B,`
+M"@`````*4V8)```"(P@`"0`````0"E^Z"0``"@`````*7V`)```"(P`*````
+M``I?9@D```(C"``1"`I@T0D```H`````"F!`"@```B,```D`````0`I70`H`
+M``MO9F8`"EC7`````B,`"V9S>@`*6=<````"(P@+;7-Z``I:UP````(C$`H`
+M````"EO7`````B,8"@`````*750````"(R`*``````I?D0D```(C*`H`````
+M"F"Z"0```B,X``<(T0D``!,$"H1M"@``%```````%``````!%``````"%```
+M```#%``````$`!$0"IB2"@``"@`````*F$`*```"(P`*``````J8D@H```(C
+M"``'"$`*```1$`J9O0H```H`````"IGW!P```B,`"@`````*F;T*```"(P@`
+M!PCW!P``$1`*FN@*```*``````J:60@```(C``H`````"IKH"@```B,(``<(
+M60@``!$0"IP3"P``"@`````*G"4'```"(P`*``````J<$PL```(C"``'""4'
+M```1$`J>/@L```H`````"IXE!P```B,`"@`````*GA,+```"(P@`$1`*H&,+
+M```*``````J@8`D```(C``H`````"J!F"0```B,(`!$("J)Z"P``"@`````*
+MHF`)```"(P``"0````#8"F85#0``"@`````*9^@````"(P`*``````IJ5```
+M``(C"`H`````"FM4`````B,,"VEE8P`*;50````"(Q`+;V5C``IN5`````(C
+M%`ME:6X`"F\5#0```B,8"@`````*<!4-```"(R`*``````IR5`````(C*`H`
+M````"G-4`````B,L"@`````*>50````"(S`*``````IZ5`````(C-`H`````
+M"GM4`````B,X"@`````*?%0````"(SP*``````I]5`````(C0`H`````"GY4
+M`````B-$"@`````*@&`)```"(T@*``````J!8`D```(C4`H`````"H)@"0``
+M`B-8"@`````*BD8*```"(V`*``````J35`````(C9`H`````"I8R`0```B-H
+M"@`````*F&T*```"(W`*``````J9F`H```,C@`$*``````J:PPH```,CD`$*
+M``````J<[@H```,CH`$*``````J>&0L```,CL`$*``````J@/@L```,CP`$*
+M``````JB8PL```,CT`$`!PA%!0``%0`````!XP$`````````````````````
+M`G<(8`T``!9E8W```>)@#0```546<V5C``'B8`D```%4%W,``>1@"0```5$`
+M!PAZ"P``&`$``````5X#`0``````````````````````````Q@T``!EE8W``
+M`5T#8`T````````:<P`!7P-@"0```````!L``````6`#Q@T````````<<V@`
+M`6$#SP8```.1D'\`!PBY!@``&`$``````3`#`0``````````````````````
+M````1PX``!EE8W```2\#8`T````````:<P`!,0-@"0```````!IT``$Q`V`)
+M````````'&]S:``!,@//!@```Y&@?QL``````3,#5``````````=``````$S
+M`U0`````'@`````!(0,!``````````````````````````"7#@``&65C<``!
+M(`-@#0```````!\``````2`#Z``````````:<P`!(@-@"0`````````8`0``
+M```!Z@(!```````````````````````````A#P``&65C<``!Z0)@#0``````
+M`!IS80`!ZP)9"````````!L``````>P"8`D````````@<P`![`)@"0``&F]D
+M``'M`L8-````````&F]S``'N`K,&````````'&]S:``![P+/!@```Y&0?P`8
+M`0`````!Q0(!``````````````````````````"`#P``&7,``<0"8`D`````
+M```::60``<8"Q@T````````:;V0``<8"Q@T````````;``````''`E0`````
+M`````!@!``````&Q`@$```````````````````````````$0```996-P``&P
+M`F`-````````&6ES``&P`K,&````````&6]S``&P`K,&````````'P`````!
+ML`+H`````````!QI<V@``;("SP8```.1D'\<;W-H``&R`L\&```#D=!^`!@!
+M``````'\`0$``````````````````````````&(0```996-P``'[`6`-````
+M````&G,``?T!8`D````````<;W-H``'^`<\&```#D9!_&F]F9@`!_P'7````
+M```````A`0`````!40$!8`D`````````````````````````````UQ```!EE
+M8W```5`!8`T````````:<P`!4@%@"0```````!L``````5(!8`D````````<
+M:65H``%3`<0&```#D:!_&P`````!5`%4```````````B`0`````!S0'W!P``
+M```````````````````````````Y$0``(V5C<``!S&`-````````)``````!
+MS.@`````````(V%D9``!S%0`````````)7-A8P`!SO<'`````````"8`````
+M`9$!5```````````````````````````````BQ$``"-E8W```9!@#0``````
+M`"0``````9#H`````````"5S86,``9+W!P`````````F``````&%`50`````
+M`````````````````````````-T1```C96-P``&$8`T````````D``````&$
+MZ``````````E<V%C``&&]P<`````````)P`````!H@%4`````0X2```H````
+M``&AZ````"D``````:,.$@``*G```:H>$@````_H````'A(``!"J````!``'
+M".@````F``````$X`50``````````````````````````````+T2```C96-P
+M``$W8`T````````D``````$WZ``````````K`````'\2```E<V%C``%+]P<`
+M````````+-T1`````````````````````````44M[A$``"X`````````````
+M````````+_D1```#D:!_,`02```````G``````%?`50````!&Q,``#%E8W``
+M`5Y@#0``*``````!7LP````I``````%@Z````"II<V@``6'/!@``*FES``%B
+MLP8``"D``````6/S````*0`````!9%0`````,@$``````?8!````````````
+M``````````````#M$P``(V5C<``!]6`-````````)7,``?=@"0```````#,`
+M`````?CH`````````"5I<P`!^;,&````````%VES:``!^L\&```#D?!^-```
+M```!^_,````#D;A_,P`````!_%0`````````-;T2`````````1\!+=D2```M
+MSA(``#8`````-^02````````+^\2```#D;!^-_H2````````+P03```#D;!_
+M-P\3````````````.``````"AP$!5`````,6%```.5]C``*'`50````Y7W``
+M`H<!%A0````'"/X"```>``````%P`@$``````````````````````````*<4
+M```99``!;P+H`````````!ES>@`!;P+S`````````!IC``%Q`N@`````````
+M.NT3`````````74"AQ0``#L*%````````"W_$P```#7M$P````````%W`CL*
+M%````````#O_$P``````````/``````!I0$!`4L5```Y96-P``&D`6`-```Y
+M<P`!I`%@"0``('0``:8!8`D``!T``````:<!Z````"!I<V@``:@!SP8``"!R
+M96P``:D!V@8``!T``````:H!2Q4``!T``````:L!414``"!I9``!K`'&#0``
+M'0`````!K0%4````(&D``:T!5````!T``````:T!5````"!C87```:T!5```
+M```'"%L#```'"#H%```G``````'"`50````!?Q4``#%E8W```<%@#0``*```
+M```!P>@`````/``````!*`(!`2`6```Y96-P``$G`F`-```Y<P`!)P)@"0``
+M('-A8P`!*0+W!P``'0`````!*@+S````'0`````!*@+S````('```2H"\P``
+M`"!L96X``2H"\P```"!B``$K`N(````@8P`!*P+B````(&0``2L"X@```"!S
+M<F,``2L"X@```"!E;F0``2L"X@```!T``````2P"5``````X``````&1`@&M
+M`````746```Y<P`!D`)@"0``/0`````!D`)U%@``(&ED``&2`L8-```@8@`!
+MDP+B````('-Z``&4`O,````=``````&5`E0`````!PCS````)P`````!M@%4
+M`````:X6```Q96-P``&U8`T``"@``````;7H````*G-A8P`!M_<'````/```
+M```!?0(!`=X6```Y<P`!?`)@"0``(&ED``%^`L8-```=``````%_`E0`````
+M&`$``````78!`0``````````````````````````YA@``!EE8W```74!8`T`
+M```````:<P`!=P%@"0```````#JG%`````````&1`987```MP10``"VU%```
+M-@`````WRQ0````````WU10````````OX10```.1\'XO[10```.1L'\W^10`
+M```````W!14````````W$14````````W'!4````````P*!4``#`R%0``,#X5
+M`````#I7%0````````&5`;47```[<Q4````````M:!4````Z?Q4````````!
+ME@%>&```+9D5```MC14``#8`````-Z,5````````-Z\5````````,+L5```P
+MQQ4``#?1%0```````##=%0``-^<5````````-_$5````````,/L5```O!Q8`
+M``.1T'XP$Q8``#4@%@````````$N`BT\%@``+3(6```V`````#=(%@``````
+M`#!3%@``,%T6```W:!8`````````````/GL6````````````````````````
+M`9H!H!@``"V7%@``+8P6```N`````````````````````#>B%@``````````
+M-:X6`````````9L!+;P6```V`````#?&%@```````#?1%@```````#7M$P``
+M``````&,`CL*%````````"W_$P```````#\``````HH6%````0%```````*@
+M`50````!`0!^!````@"X`````0'[#@H``0$!`0````$O=7-R+VEN8VQU9&4`
+M+W5S<B]I;F-L=61E+VUA8VAI;F4`+W5S<B]I;F-L=61E+W-Y<P``<V5C=&EO
+M;G,N8P````!S=&1I;RYH``$``%]T>7!E<RYH``(``%]T>7!E<RYH``,``'1Y
+M<&5S+F@``P``96QF,S(N:``#``!E;&8V-"YH``,``&QI8F5L9BYH``$``&=E
+M;&8N:``!``!E;&9C;W!Y+F@````````)`@```````````^4!`;@(5)0"*0H#
+M]@0(J0B@20A*CHY(@(Z.@'I<"$^]2#A6"!-R@$B`<FY,",@#;`C%2$9(1D@#
+M:YL##`C%`P\(Q0,+",4#I'\"*`&NN`@4O0-Z1S])"(Z.`PW3`V/O`R&-5DH#
+M=8T#:)L#'`C%",H#20C3UD0]=V324,;&Q@-!"#GI"+@($P@L"$H(G0,*.0-V
+M.3J`27)R@$)-")T($G*%-$PT2$AR;TO6@*T#7@@K`R;%`US%",@##/T#"@C%
+M",T#JW\")0&1`Q?3`VZ-"$L#"7%D@(!D@`-M8P,5"#E62@-M<3I^.X!D@`,.
+M8P-I<0,5",4#30(G`0C%9E(\U@@]5F("2A!7Y`-T`B@!",@(S`.]?@(E`:$(
+M=\9Y"-8(5H4($DDW5HX#8L6X`Q*-`VU_`R*-`VJIJ@,-_0C*`[!^"-,#"HT(
+M2@B>6%)*U45)-ZX(+#A(,&"`<G)8`VJ;`P\(Q0-T",4#[GX('0@N"&0##N$#
+M=M-T"!_B.@CL`[M_"+<H2E;S`VP(1TIR"%E#/7LO`ZY_TQJ>4@@24CP#%D<Q
+M`V8(?P/O``(N`7P",A+4`YE_"(T#"[<#>)NMQ@A8`Z4!`B0!`PDK`W=5`PF;
+M`W=5`PE_""!RA7J`@'*!"!4#>E5,"'((/`CTZ`A;`PP(C4B0"%D(,`@\"!Y(
+M20@>20-8[P/'?M,##@A_`W@K.`ARQ@@\".4#L0$(1PB=.DA97TB.CH`#$<4#
+MO'X(<58#T`%_")E62@.E?@@=`YX!",4#*0C%",$#<0C%`\%^X0C,`X($`B@!
+M($18G00"`Y-^_?X$`0/J`<6.=`0"`Y%^"#G&!`$#Z@$Y!`(#EGY'!`$#Z@%Q
+M!`(#EGXY!`$#Z@$Y,6T(+00"`Y%^_<@$`0-K",7]6`/D`+<#G'_ACX,(5ZJ`
+M`W:-`R2-`V(('0,*_0A<`[1^X0/:`P(K`?Z0"%8#=XT(<E8#]'W3`Q^I"&CB
+MN`AP`PG%@`/F`0@=5@.)?W\(APB?""U90TL('E:,.CA690@LC%94+;"76;SX
+MC@,+X0-IFP,?J0A=5GX#KGY'`Z%^?_`#QP,(.0A:_`@[5H,$`@/\?0A'_@0!
+M`Z@!"!T#)0B;U`@L`^Q\TP.^`PB-`T?O"$@#&9OPN.XZ5M0#=M,#6PAC\`/G
+M``AQ`VS]`[9^"-,('@,9?PAR"+H"+1$W.V;4K`0"`Z)_`C`!!`$#W`#A`Z(!
+M`BT!`[-_")L#]'[A`S,(Q0C``PX(Q58J+&A9EX,G2_X"#0`!`0`D1G)E94)3
+M1"0`1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R965"4T1=`#8Y,B!G
+M96QF7V=E='-H9'(H*2!F86EL960Z("5S`&5L9E]N97=D871A*"D@9F%I;&5D
+M.B`E<P!G96QF7W5P9&%T95]S:&1R*"D@9F%I;&5D.B`E<P!E;&9?<V5T<VAS
+M=')N9'@H*2!F86EL960Z("5S`#8V."!G96QF7V=E='-H9'(@9F%I;&5D.B`E
+M<P!E;&9?;F5X='-C;B!F86EL960Z("5S```N<WEM=&%B`"YS=')T86(`+G-H
+M<W1R=&%B`&5L9E]N97=S8VXH*2!F86EL960Z("5S`&UA;&QC(&9A:6QE9``V
+M,#<@9V5L9E]G971S:&1R*"D@9F%I;&5D.B`E<P!E;&9?9V5T9&%T82@I(&9A
+M:6QE9#H@)7,`-3(V(&=E;&9?9V5T<VAD<B@I(&9A:6QE9#H@)7,`-3(Y(&=E
+M;&9?9V5T<VAD<B@I(&9A:6QE9#H@)7,`96QF7W5P9&%T95]S:&1R(&9A:6QE
+M9#H@)7,`,S8U(&=E;&9?9V5T<VAD<B@I(&9A:6QE9#H@)7,`9V5L9E]G971E
+M:&1R*"D@9F%I;&5D.B`E<P!C86QL;V,@9F%I;&5D`&=E;&9?9G-I>F4H*2!F
+M86EL960Z("5S`&YO="!E;F]U9V@@;65M;W)Y`"YD96)U9P`N9VYU+FQI;FMO
+M;F-E+G=I+@`N;&EN90`N<W1A8@!E;&9?9V5T<VAS=')N9'@@9F%I;&5D.B`E
+M<P`R,3D@9V5L9E]G971S:&1R(&9A:6QE9#H@)7,`96QF7W-T<G!T<B!F86EL
+M960Z("5S`&=E;&9?9V5T<VAD<B!F86EL960Z("5S`&5L9E]N97=S8VX@9F%I
+M;&5D.B`E<P!E;&9?<V-N;F1X(&9A:6QE9#H@)7,`9V5L9E]G971R96P@9F%I
+M;&5D.B`E<P!M86QL;V,@9F%I;&5D`&UA;&QO8R!O<B!R96%L;&]C(&9A:6QE
+M9`!M;W9I;F<@;&]A9&%B;&4@<V5C=&EO;BQI<R!T:&ES(&EN=&5N=&EO;F%L
+M/P`````4````_____P$``7@0#`<(D`$````````4````````````````````
+M<``````````D````````````````````M@$```````!*@P6,`U$.<(T"A@0`
+M````+````````````````````/P`````````0@X000X8A@.,`D0.($0.8(,$
+M````````'````````````````````&L`````````3@X@@P.&`@`T````````
+M````````````Z0$```````!"#A!"#AB-`XX"10X@00XH00XP1`YP@P:&!8P$
+M`````"0```````````````````#T`````````$$.$(8"1`X81`X@@P,````D
+M````````````````````.0$```````!*A@2#!50.L`&-`HP#````+```````
+M`````````````"\!````````0@X00@X800X@00XH1`YP@P6&!(P#C0(`)```
+M`````````````````/\`````````00X0A@)$#AA$#F"#`P```"P`````````
+M``````````"B`````````$(.$(T"10X8C`-$#B"&!$0.*$0.,(,%`!P`````
+M```````````````B`````````$8.$```````'````````````````````#<`
+M````````1`X0```````D````````````````````0`$```````!:C`.#!8T"
+MA@1'#F``````/````````````````````*8#````````0@X01PX80@X@0@XH
+M00XPA@:,!8T$C@./`DD..$<.T`&#!P```````"0```````````````````#;
+M`````````$$.$(8"10X81`X@@P,````\````````````````````[@8`````
+M``!"#A!"#AA"#B!"#BA!#C!!#CA'#M`!@P>&!HP%C02.`X\"````````%```
+M```````!>E(``7@0`0,,!PB0`0``%````!P`````````<```````````````
+M'````#0`````````M@$```!*@P6,`U$.<(T"A@0````D````5`````````#\
+M`````$(.$$$.&(8#C`)$#B!$#F"#!```````%````'P`````````:P````!.
+M#B"#`X8"+````)0`````````Z0$```!"#A!"#AB-`XX"10X@00XH00XP1`YP
+M@P:&!8P$````'````,0`````````]`````!!#A"&`D0.&$0.((,#```<````
+MY``````````Y`0```$J&!(,%5`ZP`8T"C`,``"0````$`0```````"\!````
+M0@X00@X800X@00XH1`YP@P6&!(P#C0(<````+`$```````#_`````$$.$(8"
+M1`X81`Y@@P,``"0```!,`0```````*(`````0@X0C0)%#AB,`T0.((8$1`XH
+M1`XP@P44````=`$````````B`````$8.$``````4````C`$````````W````
+M`$0.$``````<````I`$```````!``0```%J,`X,%C0*&!$<.8````#0```#$
+M`0```````*8#````0@X01PX80@X@0@XH00XPA@:,!8T$C@./`DD..$<.T`&#
+M!P``````'````/P!````````VP````!!#A"&`D4.&$0.((,#```T````'`(`
+M``````#N!@```$(.$$(.&$(.($(.*$$.,$$..$<.T`&#!X8&C`6-!(X#CP(`
+M`````'``````````BP`````````"`'<(BP`````````F`@````````,`=_``
+M`````````````````````'``````````E@`````````!`%66`````````($!
+M`````````0!<BP$````````F`@````````$`7`````````````````````"/
+M`````````'P!`````````0!6BP$````````F`@````````$`5@``````````
+M``````````#U`````````/@``````````0!0^`````````!W`0````````$`
+M4XL!````````K@$````````!`%/,`0```````"8"`````````0!3````````
+M`````````````#`"````````,@(````````"`'<(,@(````````S`@``````
+M``(`=Q`S`@```````#<"`````````@!W&#<"````````.P(````````"`'<@
+M.P(````````L`P````````,`=^```````````````````````#`"````````
+M1P(````````!`%5'`@```````,@"`````````0!6RP(````````L`P``````
+M``$`5@````````````````````!"`@```````,<"`````````0!3RP(`````
+M```L`P````````$`4P````````````````````!V`@```````)L"````````
+M`0!0GP(```````"L`@````````$`4,L"````````U0(````````!`%``````
+M````````````````P`(```````#+`@````````$`4!$#````````&`,`````
+M```!`%``````````````````````,`,````````^`P````````(`=P@^`P``
+M`````)L#`````````@!W(``````````````````````P`P```````%(#````
+M`````0!590,```````!H`P````````$`50`````````````````````P`P``
+M`````$P#`````````0!43`,```````!7`P````````$`5E<#````````90,`
+M```````!`%1E`P```````)L#`````````0!6`````````````````````$(#
+M````````7`,````````!`%-<`P```````&4#`````````0!590,```````";
+M`P````````$`4P````````````````````"@`P```````*(#`````````@!W
+M"*(#````````I`,````````"`'<0I`,```````"I`P````````(`=QBI`P``
+M`````*H#`````````@!W(*H#````````JP,````````"`'<HJP,```````"O
+M`P````````(`=S"O`P```````(D%`````````P!W\```````````````````
+M````H`,```````##`P````````$`5<,#````````_00````````!`%W]!```
+M```````%`````````0!5``4```````")!0````````$`70``````````````
+M``````#D`P```````/@$`````````0!3``4```````")!0````````$`4P``
+M``````````````````"V`P```````/D$`````````0!6``4```````")!0``
+M``````$`5@````````````````````!V!````````'D$`````````0!0>00`
+M``````"W!`````````$`42\%````````.04````````!`%$`````````````
+M````````[0,```````#[!`````````$`7``%````````B04````````!`%P`
+M````````````````````D`4```````"1!0````````(`=PB1!0```````)4%
+M`````````@!W$)4%````````F04````````"`'<8F04```````"$!@``````
+M``(`=R``````````````````````D`4```````"K!0````````$`5:L%````
+M````&08````````!`%89!@```````!H&`````````0!5&@8```````!*!@``
+M``````$`5DL&````````A`8````````!`%8`````````````````````J04`
+M```````8!@````````$`4QH&````````208````````!`%-+!@```````(0&
+M`````````0!3`````````````````````+P%````````OP4````````!`%"_
+M!0````````(&`````````0!1&@8```````!5!@````````$`40``````````
+M```````````1!@```````!H&`````````0!0:08```````!P!@````````$`
+M4`````````````````````"0!@```````*X&`````````@!W"*X&````````
+MR0<````````#`'>P`0````````````````````"0!@```````+0&````````
+M`0!5M`8```````!?!P````````$`7&\'````````R0<````````!`%P`````
+M````````````````D`8```````"Y!@````````$`5+D&````````P08`````
+M```!`%4`````````````````````D`8```````#!!@````````$`4<$&````
+M````3P<````````!`%-O!P```````,D'`````````0!3````````````````
+M`````)`&````````P08````````!`%+!!@```````%<'`````````0!6;P<`
+M``````#)!P````````$`5@````````````````````#0!P```````-('````
+M`````@!W"-('````````U`<````````"`'<0U`<```````#5!P````````(`
+M=QC5!P```````-8'`````````@!W(-8'````````V@<````````"`'<HV@<`
+M``````#_"`````````,`=_```````````````````````-`'`````````@@`
+M```````!`%4&"````````!T(`````````0!5?P@```````"W"`````````$`
+M50````````````````````#A!P```````*$(`````````0!3IP@```````#_
+M"`````````$`4P````````````````````#M!P```````/8'`````````0!<
+M]@<```````#_!P````````$`5O\'````````/P@````````!`%P_"```````
+M`(((`````````0!6@@@```````"/"`````````$`7(\(````````H@@`````
+M```!`%:B"````````*0(`````````0!<IP@```````##"`````````$`7,,(
+M````````_P@````````!`%8```````````````````````D````````!"0``
+M``````(`=P@!"0````````4)`````````@!W$`4)````````"0D````````"
+M`'<8"0D```````#_"0````````,`=^`````````````````````````)````
+M````#0D````````!`%4-"0```````+$)`````````0!6L@D```````#_"0``
+M``````$`5@````````````````````!."0```````'0)`````````0!2````
+M`````````````````(H)````````J`D````````!`%0`````````````````
+M````50D```````!@"0````````$`4&`)````````:`D````````!`%``````
+M``````````````````H````````""@````````(`=P@""@````````<*````
+M`````@!W$`<*````````"PH````````"`'<8"PH````````/"@````````(`
+M=R`/"@```````!,*`````````@!W*!,*````````H@H````````"`'<P````
+M```````````````````*````````(0H````````!`%4A"@```````$0*````
+M`````0!<1`H```````!'"@````````$`54<*````````H@H````````!`%P`
+M``````````````````````H````````?"@````````$`5!\*````````0@H`
+M```````!`%9""@```````$<*`````````0!41PH```````"B"@````````$`
+M5@``````````````````````"@```````!\*`````````0!1'PH```````!&
+M"@````````$`748*````````1PH````````!`%%'"@```````*(*````````
+M`0!=`````````````````````!H*````````00H````````!`%-'"@``````
+M`*(*`````````0!3`````````````````````+`*````````M@H````````"
+M`'<(M@H```````#2"@````````(`=Q``````````````````````L`H`````
+M``"["@````````$`50````````````````````"P"@```````+L*````````
+M`0!4`````````````````````,`*````````S0H````````!`%``````````
+M````````````X`H```````#D"@````````(`=PCD"@```````!<+````````
+M`@!W$`````````````````````#@"@```````.L*`````````0!5````````
+M`````````````.`*````````ZPH````````!`%0`````````````````````
+M[@H````````!"P````````$`4`D+````````$@L````````!`%``````````
+M````````````(`L```````!!"P````````(`=PA!"P```````&`,````````
+M`P!WX```````````````````````(`L```````!&"P````````$`548+````
+M````8PL````````!`%UH"P```````&`,`````````0!=````````````````
+M`````"`+````````2PL````````!`%1-"P```````%D+`````````0!6=0L`
+M``````!W"P````````$`5I(+````````E`L````````!`%;,"P```````&`,
+M`````````0!6`````````````````````$T+````````3PL````````!`%`$
+M#`````````D,`````````0!0,0P```````!8#`````````$`4```````````
+M``````````!@#````````&(,`````````@!W"&(,````````:0P````````"
+M`'<0:0P```````!K#`````````(`=QAK#````````&T,`````````@!W(&T,
+M````````;@P````````"`'<H;@P```````!W#`````````(`=S!W#```````
+M`'X,`````````@!W.'X,````````!A`````````#`'?0`0``````````````
+M``````!@#````````'8,`````````0!5=@P````````Z#P````````$`5D,/
+M````````!A`````````!`%8`````````````````````WPP````````?#@``
+M``````$`4Y`.``````````\````````!`%,-#P```````#D/`````````0!3
+M0P\```````#H#P````````$`4P````````````````````#?#````````&8-
+M`````````0!<>0T```````"P#0````````$`7,0-````````Q@T````````!
+M`%S>#0```````.`-`````````0!<]@T```````"0#@````````$`7*X.````
+M````Z`X````````!`%P`#P```````#P/`````````0!<0P\```````"[#P``
+M``````$`7,H/````````!A`````````!`%P`````````````````````WPP`
+M``````!`#P````````$`7D,/````````!A`````````!`%X`````````````
+M````````#0\````````4#P````````$`4"\/````````0P\````````!`%``
+M````````````````````<@X```````!U#@````````$`4'4.````````@PX`
+M```````!`%1##P```````$T/`````````0!4`````````````````````-\,
+M````````<`T````````!`%/V#0```````*L.`````````0!3``\````````Y
+M#P````````$`4T,/````````?P\````````!`%.[#P````````80````````
+M`0!3`````````````````````-\,````````[`P````````!`%`'#P``````
+M`!0/`````````0!0`````````````````````!`0````````$1`````````"
+M`'<($1`````````6$`````````(`=Q`6$````````!H0`````````@!W&!H0
+M````````ZQ`````````"`'<@`````````````````````!`0````````=Q``
+M```````!`%6:$````````*T0`````````0!5M!````````"^$`````````$`
+M5=P0````````X1`````````!`%4`````````````````````$!`````````U
+M$`````````$`5%P0````````=!`````````!`%2:$````````*@0````````
+M`0!4M!````````"[$`````````$`5``````````````````````B$```````
+M`)\0`````````0!3H1````````#K$`````````$`4P``````````````````
+M```D$````````'00`````````0!4FA````````"H$`````````$`5+00````
+M````NQ`````````!`%3<$````````.80`````````0!4````````````````
+M`````"00````````-1`````````!`%1<$````````*@0`````````0!4M!``
+M``````"[$`````````$`5,40````````UQ`````````!`%0`````````````
+M````````)!````````"M$`````````$`5;00````````OA`````````!`%7%
+M$````````-<0`````````0!5W!````````#A$`````````$`50``````````
+M``````````#P$````````/(0`````````@!W"/(0````````]!`````````"
+M`'<0]!````````#V$`````````(`=QCV$````````/@0`````````@!W(/@0
+M````````^1`````````"`'<H^1````````#Z$`````````(`=S#Z$```````
+M``$1`````````@!W.`$1````````WA<````````#`'?0`0``````````````
+M``````#P$````````"$1`````````0!5(1$```````!6$0````````,`D<A^
+M5A$```````!;$0````````$`56`1````````WA<````````#`)'(?@``````
+M```````````````-$0```````'H1`````````0!=?Q$```````#>%P``````
+M``$`70````````````````````"U$0```````,(1`````````0!0?!(`````
+M``"[$@````````$`4/H5`````````Q8````````!`%``````````````````
+M````@A8```````"%%@````````$`4(46````````E18````````!`%18%P``
+M`````&(7`````````0!4`````````````````````"$1````````=A$`````
+M```!`%9_$0```````%<3`````````0!6WA,```````#,%`````````$`5OL4
+M````````)14````````!`%9$%0```````-X7`````````0!6````````````
+M`````````"$1````````>!$````````!`%Q_$0```````)03`````````0!<
+MWA,```````#,%`````````$`7/L4````````6!4````````!`%R4%0``````
+M`-X7`````````0!<`````````````````````"$1````````?!$````````!
+M`%Y_$0```````(H3`````````0!>WA,```````#,%`````````$`7OL4````
+M````WA<````````!`%X`````````````````````$A<````````7%P``````
+M``$`59L7````````G1<````````!`%"=%P```````,07`````````0!5````
+M`````````````````+T1````````PA$````````!`%0#%0````````@5````
+M`````0!4`````````````````````%@5````````8!4````````!`%"_%0``
+M`````,05`````````0!0`````````````````````"$1`````````1,`````
+M```#`)'H?@$3````````!A,````````!`%4&$P```````*L5`````````P"1
+MZ'ZK%0```````+05`````````0!5M!4```````#.%0````````,`D>A^SA4`
+M``````#3%0````````$`5=,5````````WA<````````#`)'H?@``````````
+M```````````A$0```````'81`````````0!6?Q$```````!M%0````````$`
+M5FT5````````>!4````````!`%&4%0```````!<6`````````0!6U!8`````
+M``#C%@````````$`5A`7````````6!<````````!`%8`````````````````
+M````(1$```````!^$0````````$`7W\1````````8!,````````!`%]@$P``
+M`````)X3`````````0!0GA,````````E%0````````$`7R45````````.A4`
+M```````!`%`Z%0```````-X7`````````0!?`````````````````````"$1
+M````````>!$````````!`%Q_$0```````)<3`````````0!<GA,```````!8
+M%0````````$`7)05````````GA4````````!`%R>%0```````*85````````
+M`0!5JQ4````````:%@````````$`7-06````````XQ8````````!`%P0%P``
+M`````%@7`````````0!<`````````````````````"$1````````-A$`````
+M```!`%-M$0```````'41`````````0!3S!$```````!$$@````````$`4[L2
+M````````I1,````````!`%.Z$P```````$D4`````````0!3>10```````#[
+M%`````````$`4Q45````````<Q4````````!`%.4%0```````/H5````````
+M`0!3U!8```````#C%@````````$`4Q`7````````.A<````````!`%,`````
+M````````````````QQ(```````#T$@````````$`4+$4````````OQ0`````
+M```!`%`0%P```````!<7`````````0!0`````````````````````"$1````
+M````+A$````````!`%!M$0```````'\1`````````0!0(!0````````I%```
+M``````$`4``````````````````````A$0```````#81`````````0!3;1$`
+M``````!U$0````````$`4TD4````````L10````````!`%/D%0```````/H5
+M`````````0!3U!8```````#C%@````````$`4Q`7````````*Q<````````!
+M`%,`````````````````````<Q0```````!_%`````````$`4!`7````````
+M$A<````````!`%`2%P```````!<7`````````0!5````````````````````
+M`"$1````````1!$````````!`%1M$0```````'\1`````````0!4CA0`````
+M``"Q%`````````$`5-06````````WA8````````!`%0`````````````````
+M````MP````(```````(9``!F#0``<V5T7W-H<W1R=&%B`,P-``!U<&1A=&5?
+M<VAD<@"7#@``861D7W5N;&]A9&%B;&5S`"$/``!C;W!Y7V1A=&$`@`\``&-O
+M<'E?<VAD<@`!$```<F5S>6YC7W-E8W1I;VYS`&(0``!I;G-E<G1?<VAT86(`
+MUQ```&QO;VMU<%]S96-?86-T`!L3``!C<F5A=&5?<V-N`-X6``!C;W!Y7V-O
+M;G1E;G0``````"P````"```````(`````````````````-X7````````````
+M`````````````````$T+````````3PL````````9#````````&`,````````
+M!`P````````.#``````````````````````````````$#@```````)`.````
+M````R@\````````&$````````$,/````````80\`````````#P````````T/
+M`````````````````````````````!4.````````(@X```````#R#P``````
+M``80````````U`\```````#H#P```````$T/````````80\````````%#P``
+M``````T/````````@PX```````"0#@```````'4.````````>PX```````!O
+M#@```````'(.````````4@X```````!;#@```````$(.````````1PX`````
+M```T#@```````#H.````````+@X````````Q#@``````````````````````
+M```````U$````````%,0````````W!````````#K$```````````````````
+M``````````!W$````````(<0````````Q1````````#<$````````)40````
+M````F!````````"+$````````)(0`````````````````````````````!(1
+M````````(1$````````Z%P```````-X7````````XQ8````````0%P``````
+M``,6````````U!8```````!/$@```````,`2````````````````````````
+M`````%T2````````P!(```````#-%P```````-X7````````O!<```````#`
+M%P```````+(7````````NA<```````"=%P```````*@7````````F1<`````
+M``";%P```````(`7````````E!<```````!B%P```````'87````````1!<`
+M``````!8%P```````.T6````````$!<```````"N%@```````-06````````
+ME18```````"D%@```````(46````````BQ8```````!_%@```````((6````
+M````5Q8```````!>%@```````$<6````````4A8````````O%@```````#46
+M````````*18````````L%@````````,6````````'18`````````````````
+M````````````M1$```````#@$0```````/L4````````%14`````````````
+M````````````````X!$```````!$$@```````"L7````````.A<````````E
+M%0```````.05````````L10```````#[%````````,`2````````!10`````
+M````````````````````````X!$```````!$$@```````"L7````````.A<`
+M``````#3%0```````.05````````<Q4```````"K%0```````&`5````````
+M<!4```````!4%0```````%@5````````)14```````!$%0```````+\4````
+M````^Q0```````#L$P````````44````````R1,```````#>$P```````+$3
+M````````NA,````````K$P```````*43````````'1,````````A$P``````
+M``X3````````&1,````````&$P````````D3````````]!(````````!$P``
+M`````,`2````````YA(`````````````````````````````X!$```````!$
+M$@```````-,5````````Y!4```````#`$@```````,T2````````````````
+M`````````````/$1````````&1(```````#3%0```````.05````````Q1(`
+M``````#-$@```````"L2````````-A(````````E$@```````"@2````````
+M`````````````````````#$4````````L10````````0%P```````"L7````
+M````U!8```````#C%@```````.05`````````Q8````````5%0```````"45
+M`````````````````````````````#$4````````6!0````````7%P``````
+M`"L7````````U!8```````#C%@```````!45````````)14```````!Q%```
+M`````+$4````````:A0```````!L%````````&04````````9Q0`````````
+M````````````````````CA0```````"Q%````````-06````````XQ8`````
+M````````````````````````16QF-C1?061D<@!D8F=?<V5C`%]?<T9)3$58
+M`&ES7V1E8G5G7W-E8W1I;VX`<V%D9%]L:7-T`'9?<V5G`')E;6]V90!U<&1A
+M=&5?<VAD<@!O<&AN=6T`14Q&7U1?34]610!E7W-H;V9F`&1?<VEZ90!U;G-I
+M9VYE9"!I;G0`<')I;G1?<V5C=&EO;@!?<VEZ90!%3$9?5%].54T`7VQB9G-I
+M>F4`7V9L86=S`&5?=F5R<VEO;@!%;&8S,E]7;W)D`'-H<W1R`&5?<&AO9F8`
+M4U1225!?04Q,`'-E9VUE;G0`;&]O:W5P7W-E8U]A8W0`95]E:'-I>F4`1T5L
+M9E]%:&1R`&1?<V-N`'1Q95]N97AT`&1U<&4`7W)E860`14Q&7U1?4UA73U)$
+M`&9I;'1E<E]R96QO8P!%;&9?4V-N`'9?<WEM7W-T<FEP`%]%;&9?4V-N`&QO
+M861A8FQE`'!R;V=N86UE`&5?<VAE;G1S:7IE`'9?<WEM7VME97``7V-O;VMI
+M90!S>6U?;&ES=`!S96-?861D`&-O<'E?9&%T80!C;W!Y`&5?96YT<GD`=6EN
+M=#,R7W0`='%E7W!R978`<V5C=&EO;G-?=&]?<')I;G0`1T5L9E]3:&1R`&9P
+M;W-?=`!F;&]A=`!I<U]A<'!E;F1?<V5C=&EO;@!A<'!E;F0`<V5C=&EO;G,N
+M8P!S96-?:&5A9`!%3$9?5%]85T]21`!D<W1S>@!S='%H7V9I<G-T`'-H=&%B
+M`%]?<T9)3$4`;W5T9FUT`&5L9F-O<'D`7U]I<W1H<F5A9&5D`%]?=6EN=#$V
+M7W0`8W)E871E7W-C;@!?;V9F<V5T`%]?<W!U=&,`14Q&7U1?4UE-24Y&3P!I
+M<U]P<FEN=%]S96-T:6]N`%-44DE07TY/3D1%0E5'`&5?<&AE;G1S:7IE`')E
+M<WEN8U]S96-T:6]N<P!%;&8V-%]3:&1R`'9?<V%D9`!S>6UT86(`:7-?<F5M
+M;W9E7W)E;&]C7W-E8P!%3$9?5%]214Q!`'-I>F5?=`!D7W1Y<&4`14Q&7U1?
+M4UE-`$5L9E]4>7!E`'-E9U]L:7-T`&9L86=S`%]?=6EN=#8T7W0`16QF-C1?
+M2&%L9@!S96-T:6]N<U]T;U]C;VUP<F5S<P!S:%]E;G1S:7IE`&9I;F0`14Q&
+M7U1?34]615``14Q&7U1?1%E.`')?:6YF;P!%3$9?5%],5T]21`!C:&%R`$5,
+M1E]47T-!4`!%3$9?5%].3U1%`&5?9FQA9W,`<W1R:6YG`&EP:&YU;0!35%))
+M4%].3TY%`&1A=&$`<VA?:6YF;P!E7W-H<W1R;F1X`'-T<6A?;&%S=`!I;F1X
+M`%]C;&]S90!E;&9E<G(`8V]M<')E<W,`<W)C<WH`<F5N86UE`&1?;F5X=`!V
+M7W)E;`!N<V5C<P!%;&8V-%]8=V]R9`!%3$9?5%]/1D8`;&]N9R!L;VYG(&EN
+M=`!%3$9?5%]%2$12`'-Y;6QI<W0`=E]S86,`7U]S=&1O=71P`%]B87-E`$5L
+M9C8T7T]F9@!%;&8S,E]296P`;F]C;W!Y`%]F:6QE`%-44DE07T1%0E5'`'-H
+M7W-I>F4`:6YF;70`14Q&7U1?0EE410!D7V)U9@!S:7IE`$5,1E]47U=/4D0`
+M;6]D:69Y7W-E8W1I;VX`14Q&7U1?4TA$4@!C;W!Y7W-H9'(`<'-E=61O`'-H
+M7V]F9G-E=`!A9&1O<'0`:6YS97)T7W-H=&%B`$5,1E]47T%$1%(`7V5X=')A
+M`'-E=%]S:'-T<G1A8@!S:'-T<G1A8@!S96-T:6]N<U]T;U]C;W!Y`')E;#,R
+M`'-L:%]F:7)S=`!?7VEN=#8T7W0`;F5W;F%M90!R96%D7W-E8W1I;VX`=6EN
+M=#$V7W0`16QF-C1?4F5L`'-E8W1I;VYS7W1O7W)E;6]V90!?=W)I=&4`;G)E
+M;',`<V5C7V%C=&EO;@!'16QF7U)E;`!R7V]F9G-E=`!E7W-H;G5M`'!R:6YT
+M`'-H;W)T(&EN=`!L;VYG(&EN=`!?16QF7T1A=&$`95]P:&YU;0!A9&1?=&]?
+M<VAS=')T86(`<W1Q95]N97AT`$5,1E]47U)%3`!S:%]L:6YK`'5I;G0V-%]T
+M`"]U<W(O:&]M92]K86EW+V5L9F-O<'D`861D7W5N;&]A9&%B;&5S`&1?;V9F
+M`%]?<VEZ95]T`&ES7V-O;7!R97-S7W-E8W1I;VX`<VA?861D<@!E;W5T`'-E
+M8W1I;VX`4U1225!?54Y.145$140`;F%M90!%3$9?5%]61$5&`'-A8U]L:7-T
+M`%]B;&MS:7IE`&1?86QI9VX`='%H7V9I<G-T`&QO;F<@=6YS:6=N960@:6YT
+M`'-H7W1Y<&4`9%]V97)S:6]N`&5?:61E;G0`<F5L-C0`<V5C=&EO;G-?=&]?
+M87!P96YD`'1Y<&4`=6YS:6=N960@8VAA<@!I<U]M;V1I9GE?<V5C=&EO;@!?
+M7W5I;G0S,E]T`$5,1E]47U!(1%(`8V]P>5]C;VYT96YT`'9?;61A=`!%;&9?
+M1&%T80!C;VYT96YT`&1?9FQA9W,`95]T>7!E`'9?<V5C`&EN7W-E9P!S:%]F
+M;&%G<P!?7W-B=68`95]M86-H:6YE`'1Q:%]L87-T`$5L9C,R7T%D9'(`:7-?
+M<F5M;W9E7W-E8W1I;VX`16QF-C1?16AD<@!?7V]F9E]T`'-T<FEP`'-I9VYE
+M9"!C:&%R`$5,1E]47U9.145$`'-H;W)T('5N<VEG;F5D(&EN=`!S96-?;&ES
+M=`!S:%]N86UE`%]%;&8`<W1R=&%B`$=.52!#(#0N,BXQ(#(P,#<P-S$Y("!;
+M1G)E94)31%T`9&]U8FQE`'-E8W1I;VYS7W1O7V%D9`!I;G-E<G1?=&]?<V5C
+M7VQI<W0`7VYB=68`<VA?861D<F%L:6=N`$5L9C8T7U=O<F0`1DE,10!%3$9?
+M5%](04Q&`&%L:6=N`$5,1E]47U-73U)$`%]S965K`%]U8G5F`'!R:6YT7V1A
+M=&$``"YS>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+G)E;&$N=&5X=``N9&%T
+M80`N8G-S`"YD96)U9U]A8F)R978`+G)E;&$N9&5B=6=?:6YF;P`N<F5L82YD
+M96)U9U]L:6YE`"YC;VUM96YT`"YR;V1A=&$N<W1R,2XQ`"YR;V1A=&$N<W1R
+M,2XX`"YR96QA+F1E8G5G7V9R86UE`"YR96QA+F5H7V9R86UE`"YD96)U9U]L
+M;V,`+G)E;&$N9&5B=6=?<'5B;F%M97,`+G)E;&$N9&5B=6=?87)A;F=E<P`N
+M9&5B=6=?<F%N9V5S`"YD96)U9U]S='(`````````````````````````````
+M```````````````````````````````````````````````````````````@
+M`````0````8```````````````````!``````````-X7````````````````
+M```0````````````````````&P````0`````````````````````````Z(``
+M``````"0%0```````!D````!````"``````````8`````````"8````!````
+M`P```````````````````"`8``````````````````````````````0`````
+M```````````````L````"`````,````````````````````@&```````````
+M```````````````````$````````````````````,0````$`````````````
+M````````````(!@```````!U`P```````````````````0``````````````
+M`````$0````!`````````````````````````)4;`````````AD`````````
+M``````````$````````````````````_````!```````````````````````
+M``!XE@```````"`H````````&0````8````(`````````!@`````````50``
+M``$`````````````````````````ES0```````""!```````````````````
+M`0```````````````````%`````$`````````````````````````)B^````
+M````&``````````9````"`````@`````````&`````````!A`````0``````
+M```````````````````9.0```````#`````````````````````!````````
+M````````````:@````$````R````````````````````23D```````#7`@``
+M`````````````````0`````````!`````````'D````!````,@``````````
+M`````````"`\````````+0````````````````````@``````````0``````
+M``"-`````0````````````````````````!0/````````,@"````````````
+M```````(````````````````````B`````0`````````````````````````
+ML+X``````````P```````!D````-````"``````````8`````````)\````!
+M`````@```````````````````!@_````````4`(```````````````````@`
+M``````````````````":````!`````````````````````````"PP0``````
+M`(`!````````&0````\````(`````````!@`````````J0````$`````````
+M````````````````:$$````````.'@```````````````````0``````````
+M`````````+D````!`````````````````````````'9?````````NP``````
+M``````````````$```````````````````"T````!```````````````````
+M```````PPP```````!@`````````&0```!(````(`````````!@`````````
+MS@````$`````````````````````````,6`````````P````````````````
+M`````0```````````````````,D````$`````````````````````````$C#
+M````````,``````````9````%`````@`````````&`````````#=`````0``
+M``````````````````````!A8````````.`&```````````````````!````
+M````````````````ZP````$````P````````````````````06<```````#H
+M"````````````````````0`````````!`````````!$````#````````````
+M`````````````"EP````````]@````````````````````$`````````````
+M```````!`````@````````````````````````#@=P```````)`&````````
+M&@```!@````(`````````!@`````````"0````,`````````````````````
+M````<'X```````!W`@```````````````````0``````````````````````
+M``````````````````````````````$````$`/'_````````````````````
+M```````#``$````````````````````````````#``,`````````````````
+M```````````#``0````````````````````````````#``4`````````````
+M```````````````#``8````````````````````````````#``@`````````
+M``````````````P````"``$```````````!P```````````````#``L`````
+M`````````````````!\````"``$`,`,```````!K```````````````#``P`
+M`````````````````````"\````"``$`L`H````````B`````````$,````"
+M``$`X`H````````W`````````%4````"``$`(`L```````!``0```````&<`
+M```"``$`$!````````#;```````````````#``T`````````````````````
+M```````#``\````````````````````````````#`!$`````````````````
+M```````````#`!(````````````````````````````#`!0`````````````
+M```````````````#`!8````````````````````````````#`!<`````````
+M```````````````````#``H``````````````````````'(````2``$`<```
+M``````"V`0```````'\````0`````````````````````````(P````0````
+M`````````````````````)@````0`````````````````````````*D````0
+M`````````````````````````+0````0`````````````````````````,0`
+M```0`````````````````````````,P````0````````````````````````
+M`-<````0`````````````````````````-P````2``$`,`(```````#\````
+M`````.@````0`````````````````````````/8````0````````````````
+M```````````!```0`````````````````````````!$!```2``$`H`,`````
+M``#I`0```````"$!```0`````````````````````````"P!```0````````
+M`````````````````#,!```0`````````````````````````#<!```2``$`
+MD`4```````#T`````````$$!```0`````````````````````````$T!```2
+M``$`D`8````````Y`0```````%<!```2``$`T`<````````O`0```````&<!
+M```0`````````````````````````&T!```2``$```D```````#_````````
+M`'H!```0`````````````````````````(<!```0````````````````````
+M`````)(!```2``$```H```````"B`````````*$!```0````````````````
+M`````````*@!```0`````````````````````````*\!```0````````````
+M`````````````+8!```0`````````````````````````+T!```0````````
+M`````````````````,4!```2``$`8`P```````"F`P```````-`!```0````
+M`````````````````````.`!```0`````````````````````````.P!```0
+M`````````````````````````/<!```0``````````````````````````D"
+M```0`````````````````````````!8"```0````````````````````````
+M`"`"```0`````````````````````````"4"```0````````````````````
+M`````"T"```2``$`\!````````#N!@```````#H"```0````````````````
+M`````````$@"```0`````````````````````````$\"```0````````````
+M`````````````%<"```0`````````````````````````&,"```0````````
+M``````````````````!S96-T:6]N<RYC`&EN<V5R=%]T;U]S96-?;&ES=`!A
+M9&1?=&]?<VAS=')T86(`:7-?8V]M<')E<W-?<V5C=&EO;@!I<U]A<'!E;F1?
+M<V5C=&EO;@!I<U]R96UO=F5?<V5C=&EO;@!P<FEN=%]D871A`'-E=%]S:'-T
+M<G1A8@!G96QF7V=E='-H9'(`96QF7VYE=V1A=&$`9V5L9E]U<&1A=&5?<VAD
+M<@!E;&9?;F1X<V-N`&5L9E]S971S:'-T<FYD>`!M96UM;W9E`&5L9E]E<G)M
+M<V<`97)R>`!U<&1A=&5?<VAD<@!L;V]K=7!?<W1R:6YG`&5L9E]E<G)N;P!I
+M;G-E<G1?=&]?<W1R=&%B`&%D9%]U;FQO861A8FQE<P!E;&9?;F5W<V-N`&-A
+M;&QO8P!E<G(`8V]P>5]D871A`&5L9E]G971D871A`&-O<'E?<VAD<@!R97-Y
+M;F-?<V5C=&EO;G,`=V%R;G@`:6YS97)T7W-H=&%B`&=E;&9?9V5T96AD<@!G
+M96QF7V9S:7IE`&QO;VMU<%]S96-?86-T`'-T<F-M<`!M86QL;V,`;65M<V5T
+M`'-T<FQE;@!S=')N8VUP`&-R96%T95]S8VX`96QF7V=E='-H<W1R;F1X`&5L
+M9E]N97AT<V-N`&5L9E]S=')P='(`861D7W1O7VEN<V5G7VQI<W0`7U]I<W1H
+M<F5A9&5D`%]?<W1D;W5T<`!P=71C`%]?<W=B=68`8V]P>5]C;VYT96YT`&-R
+M96%T95]S>6UT86(`;65M8W!Y`'-T<FYC<'D`9V5L9E]G971R96P`;&]O:W5P
+M7VME97!?<WEM;&ES=```EP`````````"````&0```/S_________[@``````
+M```"````&@```/S_________&P$````````"````&P```/S_________60$`
+M```````"````'````/S_________9@$````````"````'0```/S_________
+MI0$````````"````'@```/S_________M`$````````"````'P```/S_____
+M____N0$````````*````"0``````````````R`$````````"````(````/S_
+M________T@$````````"````'P```/S_________UP$````````*````"0``
+M`!X`````````Y@$````````"````(````/S_________\`$````````"````
+M'P```/S_________]0$````````*````"0```#<`````````!`(````````"
+M````(````/S_________#@(````````"````'P```/S_________$P(`````
+M```*````"0```%4`````````(@(````````"````(````/S_________3P(`
+M```````"````&0```/S_________8`(````````"````(@```/S_________
+MEP(````````"````'````/S_________J`(````````"````&P```/S_____
+M____N@(````````"````(P```/S_________VP(````````"````'P```/S_
+M________X`(````````*````"0```'(`````````[P(````````"````(```
+M`/S_________^0(````````"````'P```/S__________@(````````*````
+M"0```#<`````````#0,````````"````(````/S_________%`,````````"
+M````'P```/S_________&0,````````*````"0```(X`````````*`,`````
+M```"````(````/S_________:0,````````*````"0```*4`````````;@,`
+M```````"````)````/S_________=@,````````*````"0```*8`````````
+M>P,````````"````)````/S_________@P,````````*````"0```*X`````
+M````B`,````````"````)````/S_________C0,````````*````"0```+8`
+M````````E0,````````"````)````/S_________O0,````````*````"0``
+M`+8`````````]0,````````"````)@```/S_________$`0````````"````
+M)P```/S_________;P0````````"````&@```/S_________LP0````````"
+M````&0```/S_________V@0````````"````&P```/S_________!@4`````
+M```"````'P```/S_________"P4````````*````"0```,``````````&@4`
+M```````"````(````/S_________'P4````````*````"0```-@`````````
+M*P4````````"````*````/S_________-04````````"````'P```/S_____
+M____.@4````````*````"0```!X`````````204````````"````(````/S_
+M________4P4````````"````'P```/S_________6`4````````*````"0``
+M`.4`````````9P4````````"````(````/S_________<04````````"````
+M'P```/S_________=@4````````*````"0```#<`````````A04````````"
+M````(````/S_________M04````````"````&@```/S__________@4`````
+M```"````*@```/S_________"P8````````"````(P```/S_________408`
+M```````"````'P```/S_________5@8````````*````"0```!X`````````
+M908````````"````(````/S_________;`8````````"````'P```/S_____
+M____<08````````*````"0````,!````````@`8````````"````(````/S_
+M________O08````````"````&0```/S_________T08````````"````&0``
+M`/S_________/P<````````"````&P```/S_________=0<````````"````
+M'P```/S_________>@<````````*````"0```!P!````````B0<````````"
+M````(````/S_________DP<````````"````'P```/S_________F`<`````
+M```*````"0```#H!````````IP<````````"````(````/S_________L0<`
+M```````"````'P```/S_________M@<````````*````"0```%@!````````
+MQ0<````````"````(````/S_________2P@````````"````&0```/S_____
+M____;@@````````"````&P```/S_________LP@````````*````"P``````
+M````````N@@````````"````+0```/S_________R0@````````"````'P``
+M`/S_________S@@````````*````"0```',!````````W0@````````"````
+M(````/S_________YP@````````"````'P```/S_________[`@````````*
+M````"0```%@!````````^P@````````"````(````/S_________$0D`````
+M```"````+P```/S_________*0D````````"````)P```/S_________>@D`
+M```````"````,````/S_________N`D````````"````'P```/S_________
+MO0D````````*````"0```)$!````````S`D````````"````(````/S_____
+M____U@D````````"````'P```/S_________VPD````````*````"0```+D!
+M````````Z@D````````"````(````/S_________[PD````````*````"0``
+M`*L!````````^PD````````"````(````/S_________,0H````````"````
+M,@```/S_________5`H````````"````,P```/S_________:PH````````"
+M````-````/S_________E`H````````*````"0```-$!````````G@H`````
+M```"````(````/S_________MPH````````"````,0```/S_________YPH`
+M```````"````,0```/S_________0@L````````*````"0```+8`````````
+M:0L````````*````"0```*8`````````A@L````````*````"0```*X`````
+M````EPL````````*````"0```.,!````````H@L````````+````"0```.,!
+M````````JPL````````+````"0```.H!````````M`L````````+````"0``
+M`/P!````````O0L````````+````"0````("````````X@L````````"````
+M-0```/S_________\`L````````"````-@```/S_________(@P````````"
+M````,0```/S_________?PP````````"````)P```/S_________DPP`````
+M```+````"0```+8`````````RPP````````"````.````/S_________Z`P`
+M```````"````.0```/S__________PP````````"````&0```/S_________
+M'0T````````"````.@```/S_________5`T````````*````"0```+8`````
+M````?@T````````"````)@```/S_________DPT````````"````'````/S_
+M________N`T````````*````"0```*8`````````T@T````````*````"0``
+M`*X`````````$0X````````"````.````/S_________*@X````````"````
+M.0```/S_________/@X````````"````'````/S_________3@X````````"
+M````&0```/S_________:PX````````"````.@```/S_________FPX`````
+M```"````)P```/S_________W`X````````"````.P```/S_________]PX`
+M```````"````*P```/S_________`0\````````"````(P```/S_________
+M$`\````````"````'P```/S_________%0\````````*````"0```(X`````
+M````)`\````````"````(````/S_________*0\````````"````(P```/S_
+M________20\````````"````'P```/S_________3@\````````*````"0``
+M`#\"````````70\````````"````(````/S_________9P\````````"````
+M'P```/S_________;`\````````*````"0```","````````>P\````````"
+M````(````/S_________A0\````````"````'P```/S_________B@\`````
+M```*````"0```(,"````````F0\````````"````(````/S_________HP\`
+M```````"````'P```/S_________J`\````````*````"0```&T"````````
+MMP\````````"````(````/S_________O`\````````*````"0```*L!````
+M````Q@\````````"````*````/S_________T`\````````"````'P```/S_
+M________U0\````````*````"0````@"````````Y`\````````"````(```
+M`/S_________[@\````````"````'P```/S_________\P\````````*````
+M"0```%4"`````````A`````````"````(````/S_________)A`````````"
+M````/````/S_________,1`````````"````/0```/S_________91``````
+M```"````/````/S_________<!`````````"````/0```/S_________I!``
+M```````"````/0```/S_________KA`````````"````/@```/S_________
+MMQ`````````"````/0```/S_________OQ`````````"````/@```/S_____
+M____TQ`````````"````/P```/S_________XA`````````"````/P```/S_
+M________-Q$````````*````"0```*8`````````5Q$````````"````00``
+M`/S_________@!$````````*````"0```*X`````````DA$````````*````
+M"0```+8`````````ZA$````````"````,P```/S_________#!(````````"
+M````0@```/S_________(1(````````"````*@```/S_________.Q(`````
+M```"````,P```/S_________61(````````"````&0```/S_________P1(`
+M```````"````(P```/S_________`A,````````"````,P```/S_________
+MJ1,````````"````-0```/S_________P1,````````"````,@```/S_____
+M____"10````````"````*0```/S_________&10````````"````,0```/S_
+M________8!0````````"````*@```/S_________;10````````"````(P``
+M`/S_________>Q0````````"````/````/S_________BA0````````"````
+M/0```/S_________UA0````````"````0P```/S_________-A4````````"
+M````0P```/S_________4!4````````"````,0```/S_________7!4`````
+M```"````-0```/S_________=!4````````"````0P```/S_________HA4`
+M```````"````0@```/S_________MQ4````````"````,0```/S_________
+MP!4````````"````-0```/S_________U!4````````*````"0```+X"````
+M````X!4````````"````*````/S_________YQ4````````"````/0```/S_
+M________\14````````"````/@```/S_________)18````````"````*@``
+M`/S_________0Q8````````"````1````/S_________9Q8````````"````
+M'````/S_________>Q8````````"````.@```/S_________D18````````"
+M````10```/S_________JA8````````"````,P```/S_________VA8`````
+M```"````/P```/S_________Z18````````"````,P```/S_________$Q<`
+M```````"````'P```/S_________&!<````````*````"0````,!````````
+M)Q<````````"````(````/S_________+!<````````*````"0```+`"````
+M````-A<````````"````*````/S_________0!<````````"````'P```/S_
+M________11<````````*````"0```)$!````````5!<````````"````(```
+M`/S_________7A<````````"````'P```/S_________8Q<````````*````
+M"0```#\"````````<A<````````"````(````/S_________?!<````````"
+M````'P```/S_________@1<````````*````"0```)D"````````D!<`````
+M```"````(````/S_________E1<````````"````(P```/S_________Q1<`
+M```````"````,````/S_________80,````````"````)````/S_________
+M!@`````````*````!0``````````````#``````````*````%@```$<(````
+M````$0`````````*````%@````$"````````%0`````````*````%@```$,&
+M````````&0`````````!`````@``````````````(0`````````!`````@``
+M`-X7````````*0`````````*````!P``````````````,``````````*````
+M%@```/\'````````-P`````````*````%@```"\'````````/@`````````*
+M````%@```.D%````````0P`````````*````%@```%P"````````4```````
+M```*````%@```!<(````````7``````````*````%@```$\'````````:0``
+M```````*````%@```'$`````````;@`````````*````%@```&P%````````
+M>P`````````*````%@```/,%````````@``````````*````%@```#0#````
+M````C0`````````*````%@```.4&````````E``````````*````%@```&<(
+M````````FP`````````*````%@```.(!````````H``````````*````%@``
+M`'`&````````L``````````*````%@```/$'````````O0`````````*````
+M%@```)@#````````P@`````````*````%@```(L%````````S0`````````*
+M````%@```*T!````````V``````````*````%@```#H&````````]```````
+M```*````%@````0#````````_P`````````*````%@```-L!````````"@$`
+M```````*````%@```*\'````````%@$````````*````%@```'@$````````
+M)`$````````*````%@```(P`````````.0$````````*````%@```#@"````
+M````;`$````````*````%@```*4`````````>@$````````*````%@```)D$
+M````````E@$````````*````%@```)P`````````I`$````````*````%@``
+M`'T!````````L@$````````*````%@```/H#````````P`$````````*````
+M%@```!<!````````S@$````````*````%@```-$(````````W`$````````*
+M````%@```+$%````````^`$````````*````%@```"X%````````%`(`````
+M```*````%@```-<(````````(@(````````*````%@```)$(````````/@(`
+M```````*````%@```,H&````````30(````````*````%@```'("````````
+MTP(````````*````%@```!,`````````_P(````````*````%@```*\(````
+M````#`,````````*````%@```$<$````````$0,````````*````%@```,D'
+M````````'`,````````*````%@```+8`````````/P,````````*````%@``
+M`-(%````````30,````````*````%@```(4#````````7`,````````*````
+M%@```(@$````````9P,````````*````%@``````````````<@,````````*
+M````%@```#\#````````?0,````````*````%@```'X$````````B`,`````
+M```*````%@```*0(````````DP,````````*````%@```#$$````````I@,`
+M```````*````%@````D'````````M`,````````*````%@```)('````````
+MP@,````````*````%@```+8'````````T`,````````*````%@```*P`````
+M````W@,````````*````%@```*4!````````[`,````````*````%@```,<`
+M````````^@,````````*````%@```&(`````````"`0````````*````%@``
+M`+(#````````%@0````````*````%@```/``````````)`0````````*````
+M%@```+`"````````,@0````````*````%@````8&````````0`0````````*
+M````%@```&8!````````3@0````````*````%@```-L%````````7`0`````
+M```*````%@```.`#````````:P0````````*````%@```.8'````````?@0`
+M```````*````%@```#,(````````C`0````````*````%@```/<&````````
+MF@0````````*````%@```*8'````````J`0````````*````%@```(T&````
+M````M@0````````*````%@````4%````````Q`0````````*````%@```*L$
+M````````T@0````````*````%@```#(&````````X`0````````*````%@``
+M`-@#````````[@0````````*````%@```)<(````````_`0````````*````
+M%@```%\#````````"P4````````*````%@```,P"````````'@4````````*
+M````%@```-(%````````+`4````````*````%@```(4#````````.P4`````
+M```*````%@```)0%````````404````````*````%@```#L(````````5P4`
+M```````*````%@```#<!````````8@4````````*````%@```$L!````````
+M<`4````````*````%@```",%````````=@4````````*````%@```+D$````
+M````?`4````````*````%@```)T#````````@@4````````*````%@```'L#
+M````````B`4````````*````%@```%4$````````C@4````````*````%@``
+M`+0(````````E`4````````*````%@```(P#````````F@4````````*````
+M%@```%<`````````H`4````````*````%@```&\#````````I@4````````*
+M````%@```*<#````````K`4````````*````%@```#T$````````L@4`````
+M```*````%@```%H'````````N`4````````*````%@```"@&````````O@4`
+M```````*````%@```/D"````````Q`4````````*````%@```.D$````````
+MR@4````````*````%@```,4(````````T`4````````*````%@```!T!````
+M````U@4````````*````%@```(("````````W`4````````*````%@```!(#
+M````````X@4````````*````%@```+8&````````Z`4````````*````%@``
+M``L(````````[@4````````*````%@```,\$````````]`4````````*````
+M%@```!4"````````^@4````````*````%@```)(``````````08````````*
+M````%@```!P#````````%`8````````*````%@```!X&````````(P8`````
+M```*````%@```/P%````````+P8````````*````%@```-,&````````/08`
+M```````*````%@```,0$````````2P8````````*````%@```&H&````````
+M608````````*````%@```&H`````````9P8````````*````%@````L#````
+M````=08````````*````%@```/\&````````@P8````````*````%@````,!
+M````````D08````````*````%@```(H'````````GP8````````*````%@``
+M`!X$````````N@8````````*````%@```'D'````````Q08````````*````
+M%@```/D`````````T`8````````*````%@```-$!````````VP8````````*
+M````%@```,D%````````[@8````````*````%@```!X&````````_08`````
+M```*````%@```&`$````````"0<````````*````%@```+$&````````%P<`
+M```````*````%@```(4!````````-`<````````*````%@```!X&````````
+M0P<````````*````%@```+X%````````3P<````````*````%@```+$&````
+M````70<````````*````%@````\%````````:P<````````*````%@```'8%
+M````````>0<````````*````%@```+H#````````E0<````````*````%@``
+M`/H!````````HP<````````*````%@````@$````````L0<````````*````
+M%@```*`!````````OP<````````*````%@```.,%````````S0<````````*
+M````%@```#T`````````VP<````````*````%@```!<$````````Z0<`````
+M```*````%@```,$&````````!@@````````*````%@```!X&````````%0@`
+M```````*````%@```(X!````````(0@````````*````%@```+$&````````
+M+P@````````*````%@```(('````````/0@````````*````%@```,H$````
+M````2P@````````*````%@```"T`````````:`@````````*````%@````D!
+M````````=@@````````*````%@```+8!````````A0@````````*````%@``
+M`)H&````````D0@````````*````%@```+$&````````\`@````````*````
+M%@```+\(````````_@@````````*````%@```"H'````````&@D````````*
+M````%@```%0!````````*`D````````*````%@```/X$````````-@D`````
+M```*````%@```)($````````1`D````````*````%@```"H(````````4@D`
+M```````*````%@```)\'````````=0D````````*````%@````D!````````
+M@PD````````*````%@```+8!````````D@D````````*````%@````P"````
+M````G@D````````*````%@```-L&````````K`D````````*````%@```,`'
+M````````PPD````````*````%@```!X&````````T@D````````*````%@``
+M`-D`````````"`H````````*````%@```"H'````````%@H````````*````
+M%@```#T`````````)`H````````*````%@```)D'````````,@H````````*
+M````%@```"4#````````3PH````````*````%@```,@#````````50H`````
+M```*````%@```,\`````````6PH````````*````%@```)\$````````80H`
+M```````*````%@```*$"````````9PH````````*````%@```*(&````````
+M=@H````````*````%@```"<"````````A`H````````*````%@```.L#````
+M````H0H````````*````%@```"<"````````KPH````````*````%@```.L#
+M````````S`H````````*````%@```"<"````````V@H````````*````%@``
+M`.L#````````]PH````````*````%@```"<"````````!0L````````*````
+M%@```.L#````````(@L````````*````%@```"<"````````,`L````````*
+M````%@```.L#````````1PL````````*````%@```-L&````````50L`````
+M```*````%@```,`'````````;`L````````*````%@```&(%````````>PL`
+M```````*````%@```$<"````````APL````````*````%@```%T!````````
+ME0L````````*````%@```+,$````````HPL````````*````%@```$`"````
+M````VPL````````*````%@```)4&````````Z0L````````*````%@```,$#
+M````````]PL````````*````%@```%``````````!0P````````*````%@``
+M`&X(````````$PP````````*````%@```!<'````````(0P````````*````
+M%@```$H#````````+PP````````*````%@```+\!````````/0P````````*
+M````%@```)X%````````2PP````````*````%@```$L%````````60P`````
+M```*````%@```-X"````````9PP````````*````%@```$`(````````=0P`
+M```````*````%@```$(%````````@PP````````*````%@```/D'````````
+MD0P````````*````%@```"X#````````GPP````````*````%@```"4$````
+M````K0P````````*````%@```#<`````````NPP````````*````%@```&@$
+M````````R@P````````*````%@```-<"````````V0P````````*````%@``
+M`#\!````````Z`P````````*````%@```'(!````````]PP````````*````
+M%@```)D'````````!@T````````*````%@```'('````````'`T````````*
+M````%@```'X(````````(PT````````!`````@``````````````*PT`````
+M```!`````@```'``````````:`T````````*````%@```#4%````````<`T`
+M```````!`````@```'``````````>`T````````!`````@```"8"````````
+M@`T````````*````$@``````````````E`T````````*````$@```#D`````
+M````H@T````````*````$@```((`````````IPT````````*````%@```-,#
+M````````L@T````````*````$@```+@`````````S@T````````*````%@``
+M`$0`````````U@T````````!`````@```#`"````````W@T````````!````
+M`@```"P#````````Y@T````````*````$@```!0!````````^@T````````*
+M````$@```(D!````````"`X````````*````$@```-(!````````%@X`````
+M```*````$@````@"````````*PX````````*````%@````$$````````-@X`
+M```````*````$@```%$"````````.PX````````*````%@```&H#````````
+M2`X````````*````%@````X&````````4`X````````!`````@```#`#````
+M````6`X````````!`````@```)L#````````8`X````````*````$@```(<"
+M````````=`X````````*````$@```+\"````````>0X````````*````%@``
+M`+$&````````A`X````````*````$@```/4"````````D@X````````*````
+M$@```%$#````````F0X````````*````%@```%H&````````H0X````````!
+M`````@```*`#````````J0X````````!`````@```(D%````````L0X`````
+M```*````$@```)H#````````Q0X````````*````$@```#<$````````U`X`
+M```````*````$@```),$````````V0X````````*````%@```,$`````````
+MY`X````````*````$@```,D$````````_0X````````*````$@```/\$````
+M````#`\````````*````$@```$@%````````(P\````````*````%@```)8!
+M````````*P\````````!`````@```)`%````````,P\````````!`````@``
+M`(0&````````.P\````````*````$@```'X%````````30\````````*````
+M$@```-X%````````7`\````````*````$@```$T&````````:P\````````*
+M````$@```)8&````````<`\````````*````%@````$$````````>P\`````
+M```*````$@```-\&````````@@\````````*````%@```/0$````````B@\`
+M```````!`````@```)`&````````D@\````````!`````@```,D'````````
+MF@\````````*````$@```!4'````````K@\````````*````$@```$X'````
+M````O0\````````*````$@```)<'````````S`\````````*````$@```,T'
+M````````T0\````````*````%@```+$&````````W`\````````*````$@``
+M`!8(`````````Q`````````*````%@```+P"````````"Q`````````!````
+M`@```-`'````````$Q`````````!`````@```/\(````````&Q`````````*
+M````$@```%\(````````+Q`````````*````$@```.@(````````/1``````
+M```*````$@```#$)````````71`````````*````$@```&<)````````9!``
+M```````*````%@```!8%````````<!`````````!`````@`````)````````
+M>!`````````!`````@```/\)````````@!`````````*````$@```"(*````
+M````E!`````````*````$@```(,*````````HA`````````*````$@```,P*
+M````````IQ`````````*````%@```#("````````LA`````````*````$@``
+M`.\*````````QQ`````````*````%@```"L$````````TA`````````*````
+M$@```!(+````````V1`````````*````%@```.$`````````Y!`````````!
+M`````@`````*````````[!`````````!`````@```*(*````````]!``````
+M```*````$@```$@+````````!Q$````````*````$@```-`+````````#!$`
+M```````*````%@```+$&````````%A$````````*````$@```"P,````````
+M)1$````````*````$@```(@,````````-!$````````*````$@```.0,````
+M````.A$````````*````%@```'D&````````11$````````!`````@```+`*
+M````````31$````````!`````@```-(*````````51$````````*````$@``
+M`!H-````````:!$````````*````$@```%(-````````;1$````````*````
+M%@```+$&````````=Q$````````*````$@```'4-````````AA$````````*
+M````$@```)@-````````C!$````````*````%@```.@!````````EQ$`````
+M```!`````@```.`*````````GQ$````````!`````@```!<+````````IQ$`
+M```````*````$@```+L-````````NA$````````*````$@```/,-````````
+MOQ$````````*````%@```+$&````````R1$````````*````$@```!8.````
+M````V!$````````*````$@```#D.````````WA$````````*````%@```!P`
+M````````[Q$````````*````%@```+$&````````^A$````````*````%@``
+M``L`````````)1(````````*````%@```-0'````````,!(````````!````
+M`@```"`+````````.!(````````!`````@```&`,````````0!(````````*
+M````$@```&\.````````4Q(````````*````$@```*@.````````6!(`````
+M```*````%@```+$&````````8A(````````*````$@```/$.````````9Q(`
+M```````*````%0``````````````>A(````````*````$@```&`/````````
+MA!(````````!`````@```)8+````````C!(````````!`````@```/@+````
+M````G!(````````!`````@```)8+````````I!(````````!`````@```-X+
+M````````OA(````````*````%@```.4"````````VA(````````*````%@``
+M`-@#````````Y1(````````*````%@```+$&````````!1,````````*````
+M%@```/4#````````$!,````````*````%@````$$````````'1,````````*
+M````%@```&<"````````)!,````````!`````@```&`,````````+!,`````
+M```!`````@````80````````-!,````````*````$@```*D/````````1Q,`
+M```````*````$@```%H0````````5!,````````*````$@```*,0````````
+M61,````````*````%@```+$&````````8Q,````````*````$@```/\0````
+M````<1,````````*````$@```+H1````````A1,````````*````%@```/4#
+M````````E!,````````*````%@````$$````````GA,````````*````$@``
+M`/`1````````IQ,````````*````%0```$``````````N1,````````*````
+M%0```)``````````PA,````````*````$@```"82````````U!,````````*
+M````$@```&\2````````YA,````````*````$@```-X2````````[A,`````
+M```*````%@```'H"````````'10````````*````%@```-T(````````)10`
+M```````!`````@```!`0````````+10````````!`````@```.L0````````
+M-10````````*````$@```!03````````1Q0````````*````$@```'03````
+M````5A0````````*````$@```-`3````````9!0````````*````$@```"P4
+M````````;10````````*````%0```&`!````````?10````````*````$@``
+M`&(4````````C!0````````*````%0```)`!````````F!0````````*````
+M$@```+X4````````H10````````*````$@```!H5````````J!0````````*
+M````%@```"H!````````UA0````````*````%@```+$&````````^A0`````
+M```*````%@```%P%````````!A4````````*````%@```!$'````````'14`
+M```````*````%@````$$````````,Q4````````*````%@```+@%````````
+M6!4````````*````%@```#T'````````=!4````````*````%@```+$&````
+M````@!4````````*````%@```-H$````````L!4````````*````%@```!$$
+M````````O!4````````*````%@```"$"````````%!8````````*````%@``
+M`!(!````````(18````````*````%@```'X%````````/18````````*````
+M%@```,H$````````:18````````*````%@````$$````````?!8````````*
+M````%@```)`"````````F!8````````*````%@```+$&````````KQ8`````
+M```*````%@```'X`````````TA8````````*````%@````$$````````X!8`
+M```````*````%@```&4'````````Z!8````````!`````@```/`0````````
+M\!8````````!`````@```-X7````````^!8````````*````$@```'85````
+M````#!<````````*````$@```"<6````````&A<````````*````$@```(<6
+M````````(Q<````````*````%0```.`!````````.1<````````*````%0``
+M`$`"````````0A<````````*````$@```+T6````````2Q<````````*````
+M$@````87````````9A<````````*````$@```$\7````````;Q<````````*
+M````$@```+X7````````>!<````````*````$@```"T8````````@1<`````
+M```*````$@```(D8````````FQ<````````*````%0```(`#````````JQ<`
+M```````*````$@```-(8````````NA<````````*````%0```+`#````````
+MT!<````````*````%0```!`$````````V1<````````*````$@````@9````
+M````XA<````````*````$@```#X9````````]1<````````*````$@```-L9
+M`````````Q@````````*````$@```%T:````````#!@````````*````$@``
+M`-\:````````*!@````````*````%0```#`%````````.A@````````*````
+M%0```'`%````````0Q@````````*````$@```(<;````````5A@````````*
+M````$@```%4<````````8Q@````````!`````@````T4````````:Q@`````
+M```!`````@```#$4````````A1@````````!`````@```!T4````````C1@`
+M```````!`````@```#$4````````FA@````````*````$@```)X<````````
+MI1@````````*````%0```-`%````````LA@````````*````%0```#`&````
+M````NQ@````````*````$@```.<<````````Q!@````````*````$@```&D=
+M````````S1@````````*````%0```+`&````````V1@````````*````$@``
+M`+(=````````YQ@````````*````%@```&X$````````]!@````````*````
+M%@```$\"````````Q0`````````!`````@``````````````'``````````*
+M````$```````````````(``````````!`````@``````````````-```````
+M```*````$```````````````.``````````!`````@```'``````````7```
+M```````*````$```````````````8``````````!`````@```#`"````````
+MC``````````*````$```````````````D``````````!`````@```#`#````
+M````K``````````*````$```````````````L``````````!`````@```*`#
+M````````Y``````````*````$```````````````Z``````````!`````@``
+M`)`%````````#`$````````*````$```````````````$`$````````!````
+M`@```)`&````````-`$````````*````$```````````````.`$````````!
+M`````@```-`'````````9`$````````*````$```````````````:`$`````
+M```!`````@`````)````````C`$````````*````$```````````````D`$`
+M```````!`````@`````*````````O`$````````*````$```````````````
+MP`$````````!`````@```+`*````````W`$````````*````$```````````
+M````X`$````````!`````@```.`*````````_`$````````*````$```````
+M``````````(````````!`````@```"`+````````)`(````````*````$```
+M````````````*`(````````!`````@```&`,````````9`(````````*````
+M$```````````````:`(````````!`````@```!`0````````C`(````````*
+M````$```````````````D`(````````!`````@```/`0````````(```````
+M```*`````@``````````````.``````````*`````@```'``````````6```
+M```````*`````@```#`"````````@``````````*`````@```#`#````````
+MF``````````*`````@```*`#````````R``````````*`````@```)`%````
+M````Z``````````*`````@```)`&````````"`$````````*`````@```-`'
+M````````,`$````````*`````@`````)````````4`$````````*`````@``
+M```*````````>`$````````*`````@```+`*````````D`$````````*````
+M`@```.`*````````J`$````````*`````@```"`+````````R`$````````*
+M`````@```&`,``````````(````````*`````@```!`0````````(`(`````
+M```*`````@```/`0````````!@`````````*````!@``````````````!@``
+M```````*````!@``````````````$``````````!`````@``````````````
+`
+end
diff --git a/test/nm/ts/nm_object1/Makefile b/test/nm/ts/nm_object1/Makefile
new file mode 100644
index 0000000000000..3aa018882bd6e
--- /dev/null
+++ b/test/nm/ts/nm_object1/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_obj
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_object1/tc.sh b/test/nm/ts/nm_object1/tc.sh
new file mode 100755
index 0000000000000..134bffcc96bb8
--- /dev/null
+++ b/test/nm/ts/nm_object1/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_obj"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_object1/test_obj-dynamic.txt b/test/nm/ts/nm_object1/test_obj-dynamic.txt
new file mode 100644
index 0000000000000..fc9a39a389ad5
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-dynamic.txt
@@ -0,0 +1,43 @@
+0000000005252136 B _CurrentRuneLocale
+ w _Jv_RegisterClasses
+ U __error
+0000000005252112 B __isthreaded
+0000000005252116 B __mb_sb_limit
+0000000005251072 D __progname
+ U __srget
+0000000005252144 B __stderrp
+0000000005252120 B __stdinp
+0000000005252128 B __stdoutp
+ U __swbuf
+0000000005252224 A _end
+ U _init_tls
+ U atexit
+ U clearerr
+ U close
+ U connect
+0000000005252176 B environ
+ U err
+ U exit
+ U fclose
+ U fdopen
+ U feof
+ U ferror
+ U fileno
+ U fprintf
+ U fstat
+ U fwrite
+ U getc
+ U getopt
+ U malloc
+ U memset
+ U open
+0000000005252152 B optind
+ U putc
+ U read
+ U setbuf
+ U setlocale
+ U shutdown
+ U socket
+ U strlcpy
+ U warn
+ U write
diff --git a/test/nm/ts/nm_object1/test_obj-external.txt b/test/nm/ts/nm_object1/test_obj-external.txt
new file mode 100644
index 0000000000000..75a80d67fb41e
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-external.txt
@@ -0,0 +1,60 @@
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+0000000005251392 D _DYNAMIC
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000005252112 A __bss_start
+0000000005251080 D __dso_handle
+ U __error@@FBSD_1.0
+0000000005252112 B __isthreaded@@FBSD_1.0
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005251072 D __progname
+ U __srget@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+0000000005252128 B __stdoutp@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+0000000005252112 A _edata
+0000000005252224 A _end
+0000000004201448 T _fini
+0000000004197600 T _init
+ U _init_tls@@FBSD_1.0
+0000000004198160 T _start
+ U atexit@@FBSD_1.0
+0000000005252212 B bflag
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+ U connect@@FBSD_1.0
+0000000005252208 B eflag
+0000000005252176 B environ
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000005252200 B filename
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000004201024 T main
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+0000000005252216 B nflag
+ U open@@FBSD_1.0
+0000000005252152 B optind@@FBSD_1.0
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+0000000005252192 B rval
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+0000000005252220 B sflag
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000005252188 B tflag
+0000000005252184 B vflag
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-format-bsd.txt b/test/nm/ts/nm_object1/test_obj-format-bsd.txt
new file mode 100644
index 0000000000000..5083ae0d7b224
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-format-bsd.txt
@@ -0,0 +1,77 @@
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+0000000005251392 D _DYNAMIC
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000005251800 d __CTOR_END__
+0000000005251792 d __CTOR_LIST__
+0000000005251816 d __DTOR_END__
+0000000005251808 d __DTOR_LIST__
+0000000005251336 r __FRAME_END__
+0000000005251824 d __JCR_END__
+0000000005251824 d __JCR_LIST__
+0000000005252112 A __bss_start
+0000000004201408 t __do_global_ctors_aux
+0000000004198320 t __do_global_dtors_aux
+0000000005251080 D __dso_handle
+ U __error@@FBSD_1.0
+0000000005252112 B __isthreaded@@FBSD_1.0
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005251072 D __progname
+ U __srget@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+0000000005252128 B __stdoutp@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+0000000005252112 A _edata
+0000000005252224 A _end
+0000000004201448 T _fini
+0000000004197600 T _init
+ U _init_tls@@FBSD_1.0
+0000000004198160 T _start
+0000000004194784 r abitag
+ U atexit@@FBSD_1.0
+0000000005252212 B bflag
+0000000005252168 b bsize.4467
+0000000005252160 b buf.4468
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+0000000005252156 b completed.5107
+ U connect@@FBSD_1.0
+0000000004198432 t cook_cat
+0000000005252208 B eflag
+0000000005252176 B environ
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000005252200 B filename
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+0000000004198384 t frame_dummy
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000004201024 T main
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+0000000005252216 B nflag
+ U open@@FBSD_1.0
+0000000005252152 B optind@@FBSD_1.0
+0000000005251088 d p.5105
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+0000000005252192 B rval
+0000000004200240 t scanfiles
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+0000000005252220 B sflag
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000005252188 B tflag
+0000000005252184 B vflag
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-format-posix.txt b/test/nm/ts/nm_object1/test_obj-format-posix.txt
new file mode 100644
index 0000000000000..e14200cfe2c55
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-format-posix.txt
@@ -0,0 +1,77 @@
+_CurrentRuneLocale@@FBSD_1.0 B 0000000000502428 0000000000000008
+_DYNAMIC D 0000000000502140
+_GLOBAL_OFFSET_TABLE_ D 00000000005022f8
+_Jv_RegisterClasses w
+__CTOR_END__ d 00000000005022d8
+__CTOR_LIST__ d 00000000005022d0
+__DTOR_END__ d 00000000005022e8
+__DTOR_LIST__ d 00000000005022e0
+__FRAME_END__ r 0000000000502108
+__JCR_END__ d 00000000005022f0
+__JCR_LIST__ d 00000000005022f0
+__bss_start A 0000000000502410
+__do_global_ctors_aux t 0000000000401bc0
+__do_global_dtors_aux t 0000000000400fb0
+__dso_handle D 0000000000502008
+__error@@FBSD_1.0 U
+__isthreaded@@FBSD_1.0 B 0000000000502410 0000000000000004
+__mb_sb_limit@@FBSD_1.0 B 0000000000502414 0000000000000004
+__progname D 0000000000502000 0000000000000008
+__srget@@FBSD_1.0 U
+__stderrp@@FBSD_1.0 B 0000000000502430 0000000000000008
+__stdinp@@FBSD_1.0 B 0000000000502418 0000000000000008
+__stdoutp@@FBSD_1.0 B 0000000000502420 0000000000000008
+__swbuf@@FBSD_1.0 U
+_edata A 0000000000502410
+_end A 0000000000502480
+_fini T 0000000000401be8
+_init T 0000000000400ce0
+_init_tls@@FBSD_1.0 U
+_start T 0000000000400f10 0000000000000092
+abitag r 00000000004001e0 0000000000000018
+atexit@@FBSD_1.0 U
+bflag B 0000000000502474 0000000000000004
+bsize.4467 b 0000000000502448 0000000000000008
+buf.4468 b 0000000000502440 0000000000000008
+clearerr@@FBSD_1.0 U
+close@@FBSD_1.0 U
+completed.5107 b 000000000050243c 0000000000000001
+connect@@FBSD_1.0 U
+cook_cat t 0000000000401020 000000000000070e
+eflag B 0000000000502470 0000000000000004
+environ B 0000000000502450 0000000000000008
+err@@FBSD_1.0 U
+exit@@FBSD_1.0 U
+fclose@@FBSD_1.0 U
+fdopen@@FBSD_1.0 U
+feof@@FBSD_1.0 U
+ferror@@FBSD_1.0 U
+filename B 0000000000502468 0000000000000008
+fileno@@FBSD_1.0 U
+fprintf@@FBSD_1.0 U
+frame_dummy t 0000000000400ff0
+fstat@@FBSD_1.0 U
+fwrite@@FBSD_1.0 U
+getc@@FBSD_1.0 U
+getopt@@FBSD_1.0 U
+main T 0000000000401a40 0000000000000178
+malloc@@FBSD_1.0 U
+memset@@FBSD_1.0 U
+nflag B 0000000000502478 0000000000000004
+open@@FBSD_1.0 U
+optind@@FBSD_1.0 B 0000000000502438 0000000000000004
+p.5105 d 0000000000502010
+putc@@FBSD_1.0 U
+read@@FBSD_1.0 U
+rval B 0000000000502460 0000000000000004
+scanfiles t 0000000000401730 000000000000030a
+setbuf@@FBSD_1.0 U
+setlocale@@FBSD_1.0 U
+sflag B 000000000050247c 0000000000000004
+shutdown@@FBSD_1.0 U
+socket@@FBSD_1.0 U
+strlcpy@@FBSD_1.0 U
+tflag B 000000000050245c 0000000000000004
+vflag B 0000000000502458 0000000000000004
+warn@@FBSD_1.0 U
+write@@FBSD_1.0 U
diff --git a/test/nm/ts/nm_object1/test_obj-format-sysv.txt b/test/nm/ts/nm_object1/test_obj-format-sysv.txt
new file mode 100644
index 0000000000000..0ad8f7c6ffee8
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-format-sysv.txt
@@ -0,0 +1,83 @@
+
+
+Symbols from test_obj:
+
+Name Value Class Type Size Line Section
+
+_CurrentRuneLocale@@FBSD_1.0|0000000005252136| B | OBJECT|0000000000000008| |.bss
+_DYNAMIC |0000000005251392| D | OBJECT| | |.dynamic
+_GLOBAL_OFFSET_TABLE_|0000000005251832| D | OBJECT| | |.got
+_Jv_RegisterClasses | | w | NOTYPE| | |*UND*
+__CTOR_END__ |0000000005251800| d | OBJECT| | |.ctors
+__CTOR_LIST__ |0000000005251792| d | OBJECT| | |.ctors
+__DTOR_END__ |0000000005251816| d | OBJECT| | |.dtors
+__DTOR_LIST__ |0000000005251808| d | OBJECT| | |.dtors
+__FRAME_END__ |0000000005251336| r | OBJECT| | |.eh_frame
+__JCR_END__ |0000000005251824| d | OBJECT| | |.jcr
+__JCR_LIST__ |0000000005251824| d | OBJECT| | |.jcr
+__bss_start |0000000005252112| A | NOTYPE| | |*ABS*
+__do_global_ctors_aux|0000000004201408| t | FUNC| | |.text
+__do_global_dtors_aux|0000000004198320| t | FUNC| | |.text
+__dso_handle |0000000005251080| D | OBJECT| | |.data
+__error@@FBSD_1.0 | | U | FUNC|0000000000000008| |*UND*
+__isthreaded@@FBSD_1.0|0000000005252112| B | OBJECT|0000000000000004| |.bss
+__mb_sb_limit@@FBSD_1.0|0000000005252116| B | OBJECT|0000000000000004| |.bss
+__progname |0000000005251072| D | OBJECT|0000000000000008| |.data
+__srget@@FBSD_1.0 | | U | FUNC|0000000000000037| |*UND*
+__stderrp@@FBSD_1.0 |0000000005252144| B | OBJECT|0000000000000008| |.bss
+__stdinp@@FBSD_1.0 |0000000005252120| B | OBJECT|0000000000000008| |.bss
+__stdoutp@@FBSD_1.0 |0000000005252128| B | OBJECT|0000000000000008| |.bss
+__swbuf@@FBSD_1.0 | | U | FUNC|0000000000000195| |*UND*
+_edata |0000000005252112| A | NOTYPE| | |*ABS*
+_end |0000000005252224| A | NOTYPE| | |*ABS*
+_fini |0000000004201448| T | FUNC| | |.fini
+_init |0000000004197600| T | FUNC| | |.init
+_init_tls@@FBSD_1.0 | | U | FUNC|0000000000000002| |*UND*
+_start |0000000004198160| T | FUNC|0000000000000146| |.text
+abitag |0000000004194784| r | OBJECT|0000000000000024| |.note.ABI-tag
+atexit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND*
+bflag |0000000005252212| B | OBJECT|0000000000000004| |.bss
+bsize.4467 |0000000005252168| b | OBJECT|0000000000000008| |.bss
+buf.4468 |0000000005252160| b | OBJECT|0000000000000008| |.bss
+clearerr@@FBSD_1.0 | | U | FUNC|0000000000000090| |*UND*
+close@@FBSD_1.0 | | U | FUNC| | |*UND*
+completed.5107 |0000000005252156| b | OBJECT|0000000000000001| |.bss
+connect@@FBSD_1.0 | | U | FUNC| | |*UND*
+cook_cat |0000000004198432| t | FUNC|0000000000001806| |.text
+eflag |0000000005252208| B | OBJECT|0000000000000004| |.bss
+environ |0000000005252176| B | OBJECT|0000000000000008| |.bss
+err@@FBSD_1.0 | | U | FUNC|0000000000000170| |*UND*
+exit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND*
+fclose@@FBSD_1.0 | | U | FUNC|0000000000000242| |*UND*
+fdopen@@FBSD_1.0 | | U | FUNC|0000000000000274| |*UND*
+feof@@FBSD_1.0 | | U | FUNC|0000000000000101| |*UND*
+ferror@@FBSD_1.0 | | U | FUNC|0000000000000101| |*UND*
+filename |0000000005252200| B | OBJECT|0000000000000008| |.bss
+fileno@@FBSD_1.0 | | U | FUNC|0000000000000091| |*UND*
+fprintf@@FBSD_1.0 | | U | FUNC|0000000000000144| |*UND*
+frame_dummy |0000000004198384| t | FUNC| | |.text
+fstat@@FBSD_1.0 | | U | FUNC| | |*UND*
+fwrite@@FBSD_1.0 | | U | FUNC|0000000000000202| |*UND*
+getc@@FBSD_1.0 | | U | FUNC|0000000000000127| |*UND*
+getopt@@FBSD_1.0 | | U | FUNC|0000000000000682| |*UND*
+main |0000000004201024| T | FUNC|0000000000000376| |.text
+malloc@@FBSD_1.0 | | U | FUNC|0000000000001280| |*UND*
+memset@@FBSD_1.0 | | U | FUNC| | |*UND*
+nflag |0000000005252216| B | OBJECT|0000000000000004| |.bss
+open@@FBSD_1.0 | | U | FUNC| | |*UND*
+optind@@FBSD_1.0 |0000000005252152| B | OBJECT|0000000000000004| |.bss
+p.5105 |0000000005251088| d | OBJECT| | |.data
+putc@@FBSD_1.0 | | U | FUNC|0000000000000153| |*UND*
+read@@FBSD_1.0 | | U | FUNC| | |*UND*
+rval |0000000005252192| B | OBJECT|0000000000000004| |.bss
+scanfiles |0000000004200240| t | FUNC|0000000000000778| |.text
+setbuf@@FBSD_1.0 | | U | FUNC|0000000000000019| |*UND*
+setlocale@@FBSD_1.0 | | U | FUNC|0000000000000874| |*UND*
+sflag |0000000005252220| B | OBJECT|0000000000000004| |.bss
+shutdown@@FBSD_1.0 | | U | FUNC| | |*UND*
+socket@@FBSD_1.0 | | U | FUNC| | |*UND*
+strlcpy@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND*
+tflag |0000000005252188| B | OBJECT|0000000000000004| |.bss
+vflag |0000000005252184| B | OBJECT|0000000000000004| |.bss
+warn@@FBSD_1.0 | | U | FUNC|0000000000000168| |*UND*
+write@@FBSD_1.0 | | U | FUNC| | |*UND*
diff --git a/test/nm/ts/nm_object1/test_obj-print-file-name.txt b/test/nm/ts/nm_object1/test_obj-print-file-name.txt
new file mode 100644
index 0000000000000..26c4241f54f6d
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-print-file-name.txt
@@ -0,0 +1,77 @@
+test_obj:0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+test_obj:0000000005251392 D _DYNAMIC
+test_obj:0000000005251832 D _GLOBAL_OFFSET_TABLE_
+test_obj: w _Jv_RegisterClasses
+test_obj:0000000005251800 d __CTOR_END__
+test_obj:0000000005251792 d __CTOR_LIST__
+test_obj:0000000005251816 d __DTOR_END__
+test_obj:0000000005251808 d __DTOR_LIST__
+test_obj:0000000005251336 r __FRAME_END__
+test_obj:0000000005251824 d __JCR_END__
+test_obj:0000000005251824 d __JCR_LIST__
+test_obj:0000000005252112 A __bss_start
+test_obj:0000000004201408 t __do_global_ctors_aux
+test_obj:0000000004198320 t __do_global_dtors_aux
+test_obj:0000000005251080 D __dso_handle
+test_obj: U __error@@FBSD_1.0
+test_obj:0000000005252112 B __isthreaded@@FBSD_1.0
+test_obj:0000000005252116 B __mb_sb_limit@@FBSD_1.0
+test_obj:0000000005251072 D __progname
+test_obj: U __srget@@FBSD_1.0
+test_obj:0000000005252144 B __stderrp@@FBSD_1.0
+test_obj:0000000005252120 B __stdinp@@FBSD_1.0
+test_obj:0000000005252128 B __stdoutp@@FBSD_1.0
+test_obj: U __swbuf@@FBSD_1.0
+test_obj:0000000005252112 A _edata
+test_obj:0000000005252224 A _end
+test_obj:0000000004201448 T _fini
+test_obj:0000000004197600 T _init
+test_obj: U _init_tls@@FBSD_1.0
+test_obj:0000000004198160 T _start
+test_obj:0000000004194784 r abitag
+test_obj: U atexit@@FBSD_1.0
+test_obj:0000000005252212 B bflag
+test_obj:0000000005252168 b bsize.4467
+test_obj:0000000005252160 b buf.4468
+test_obj: U clearerr@@FBSD_1.0
+test_obj: U close@@FBSD_1.0
+test_obj:0000000005252156 b completed.5107
+test_obj: U connect@@FBSD_1.0
+test_obj:0000000004198432 t cook_cat
+test_obj:0000000005252208 B eflag
+test_obj:0000000005252176 B environ
+test_obj: U err@@FBSD_1.0
+test_obj: U exit@@FBSD_1.0
+test_obj: U fclose@@FBSD_1.0
+test_obj: U fdopen@@FBSD_1.0
+test_obj: U feof@@FBSD_1.0
+test_obj: U ferror@@FBSD_1.0
+test_obj:0000000005252200 B filename
+test_obj: U fileno@@FBSD_1.0
+test_obj: U fprintf@@FBSD_1.0
+test_obj:0000000004198384 t frame_dummy
+test_obj: U fstat@@FBSD_1.0
+test_obj: U fwrite@@FBSD_1.0
+test_obj: U getc@@FBSD_1.0
+test_obj: U getopt@@FBSD_1.0
+test_obj:0000000004201024 T main
+test_obj: U malloc@@FBSD_1.0
+test_obj: U memset@@FBSD_1.0
+test_obj:0000000005252216 B nflag
+test_obj: U open@@FBSD_1.0
+test_obj:0000000005252152 B optind@@FBSD_1.0
+test_obj:0000000005251088 d p.5105
+test_obj: U putc@@FBSD_1.0
+test_obj: U read@@FBSD_1.0
+test_obj:0000000005252192 B rval
+test_obj:0000000004200240 t scanfiles
+test_obj: U setbuf@@FBSD_1.0
+test_obj: U setlocale@@FBSD_1.0
+test_obj:0000000005252220 B sflag
+test_obj: U shutdown@@FBSD_1.0
+test_obj: U socket@@FBSD_1.0
+test_obj: U strlcpy@@FBSD_1.0
+test_obj:0000000005252188 B tflag
+test_obj:0000000005252184 B vflag
+test_obj: U warn@@FBSD_1.0
+test_obj: U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-print-size.txt b/test/nm/ts/nm_object1/test_obj-print-size.txt
new file mode 100644
index 0000000000000..36e458f17ff1a
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-print-size.txt
@@ -0,0 +1,77 @@
+0000000005252136 0000000000000008 B _CurrentRuneLocale@@FBSD_1.0
+0000000005251392 D _DYNAMIC
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000005251800 d __CTOR_END__
+0000000005251792 d __CTOR_LIST__
+0000000005251816 d __DTOR_END__
+0000000005251808 d __DTOR_LIST__
+0000000005251336 r __FRAME_END__
+0000000005251824 d __JCR_END__
+0000000005251824 d __JCR_LIST__
+0000000005252112 A __bss_start
+0000000004201408 t __do_global_ctors_aux
+0000000004198320 t __do_global_dtors_aux
+0000000005251080 D __dso_handle
+ U __error@@FBSD_1.0
+0000000005252112 0000000000000004 B __isthreaded@@FBSD_1.0
+0000000005252116 0000000000000004 B __mb_sb_limit@@FBSD_1.0
+0000000005251072 0000000000000008 D __progname
+ U __srget@@FBSD_1.0
+0000000005252144 0000000000000008 B __stderrp@@FBSD_1.0
+0000000005252120 0000000000000008 B __stdinp@@FBSD_1.0
+0000000005252128 0000000000000008 B __stdoutp@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+0000000005252112 A _edata
+0000000005252224 A _end
+0000000004201448 T _fini
+0000000004197600 T _init
+ U _init_tls@@FBSD_1.0
+0000000004198160 0000000000000146 T _start
+0000000004194784 0000000000000024 r abitag
+ U atexit@@FBSD_1.0
+0000000005252212 0000000000000004 B bflag
+0000000005252168 0000000000000008 b bsize.4467
+0000000005252160 0000000000000008 b buf.4468
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+0000000005252156 0000000000000001 b completed.5107
+ U connect@@FBSD_1.0
+0000000004198432 0000000000001806 t cook_cat
+0000000005252208 0000000000000004 B eflag
+0000000005252176 0000000000000008 B environ
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000005252200 0000000000000008 B filename
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+0000000004198384 t frame_dummy
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000004201024 0000000000000376 T main
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+0000000005252216 0000000000000004 B nflag
+ U open@@FBSD_1.0
+0000000005252152 0000000000000004 B optind@@FBSD_1.0
+0000000005251088 d p.5105
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+0000000005252192 0000000000000004 B rval
+0000000004200240 0000000000000778 t scanfiles
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+0000000005252220 0000000000000004 B sflag
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000005252188 0000000000000004 B tflag
+0000000005252184 0000000000000004 B vflag
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-radix-hexa.txt b/test/nm/ts/nm_object1/test_obj-radix-hexa.txt
new file mode 100644
index 0000000000000..b82b35633d6f1
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-radix-hexa.txt
@@ -0,0 +1,77 @@
+0000000000502428 B _CurrentRuneLocale@@FBSD_1.0
+0000000000502140 D _DYNAMIC
+00000000005022f8 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+00000000005022d8 d __CTOR_END__
+00000000005022d0 d __CTOR_LIST__
+00000000005022e8 d __DTOR_END__
+00000000005022e0 d __DTOR_LIST__
+0000000000502108 r __FRAME_END__
+00000000005022f0 d __JCR_END__
+00000000005022f0 d __JCR_LIST__
+0000000000502410 A __bss_start
+0000000000401bc0 t __do_global_ctors_aux
+0000000000400fb0 t __do_global_dtors_aux
+0000000000502008 D __dso_handle
+ U __error@@FBSD_1.0
+0000000000502410 B __isthreaded@@FBSD_1.0
+0000000000502414 B __mb_sb_limit@@FBSD_1.0
+0000000000502000 D __progname
+ U __srget@@FBSD_1.0
+0000000000502430 B __stderrp@@FBSD_1.0
+0000000000502418 B __stdinp@@FBSD_1.0
+0000000000502420 B __stdoutp@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+0000000000502410 A _edata
+0000000000502480 A _end
+0000000000401be8 T _fini
+0000000000400ce0 T _init
+ U _init_tls@@FBSD_1.0
+0000000000400f10 T _start
+00000000004001e0 r abitag
+ U atexit@@FBSD_1.0
+0000000000502474 B bflag
+0000000000502448 b bsize.4467
+0000000000502440 b buf.4468
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+000000000050243c b completed.5107
+ U connect@@FBSD_1.0
+0000000000401020 t cook_cat
+0000000000502470 B eflag
+0000000000502450 B environ
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000000502468 B filename
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+0000000000400ff0 t frame_dummy
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000000401a40 T main
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+0000000000502478 B nflag
+ U open@@FBSD_1.0
+0000000000502438 B optind@@FBSD_1.0
+0000000000502010 d p.5105
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+0000000000502460 B rval
+0000000000401730 t scanfiles
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+000000000050247c B sflag
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+000000000050245c B tflag
+0000000000502458 B vflag
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-radix-octal.txt b/test/nm/ts/nm_object1/test_obj-radix-octal.txt
new file mode 100644
index 0000000000000..213a5486cb81d
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-radix-octal.txt
@@ -0,0 +1,77 @@
+0000000024022050 B _CurrentRuneLocale@@FBSD_1.0
+0000000024020500 D _DYNAMIC
+0000000024021370 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000024021330 d __CTOR_END__
+0000000024021320 d __CTOR_LIST__
+0000000024021350 d __DTOR_END__
+0000000024021340 d __DTOR_LIST__
+0000000024020410 r __FRAME_END__
+0000000024021360 d __JCR_END__
+0000000024021360 d __JCR_LIST__
+0000000024022020 A __bss_start
+0000000020015700 t __do_global_ctors_aux
+0000000020007660 t __do_global_dtors_aux
+0000000024020010 D __dso_handle
+ U __error@@FBSD_1.0
+0000000024022020 B __isthreaded@@FBSD_1.0
+0000000024022024 B __mb_sb_limit@@FBSD_1.0
+0000000024020000 D __progname
+ U __srget@@FBSD_1.0
+0000000024022060 B __stderrp@@FBSD_1.0
+0000000024022030 B __stdinp@@FBSD_1.0
+0000000024022040 B __stdoutp@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+0000000024022020 A _edata
+0000000024022200 A _end
+0000000020015750 T _fini
+0000000020006340 T _init
+ U _init_tls@@FBSD_1.0
+0000000020007420 T _start
+0000000020000740 r abitag
+ U atexit@@FBSD_1.0
+0000000024022164 B bflag
+0000000024022110 b bsize.4467
+0000000024022100 b buf.4468
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+0000000024022074 b completed.5107
+ U connect@@FBSD_1.0
+0000000020010040 t cook_cat
+0000000024022160 B eflag
+0000000024022120 B environ
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000024022150 B filename
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+0000000020007760 t frame_dummy
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000020015100 T main
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+0000000024022170 B nflag
+ U open@@FBSD_1.0
+0000000024022070 B optind@@FBSD_1.0
+0000000024020020 d p.5105
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+0000000024022140 B rval
+0000000020013460 t scanfiles
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+0000000024022174 B sflag
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000024022134 B tflag
+0000000024022130 B vflag
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-sort-no.txt b/test/nm/ts/nm_object1/test_obj-sort-no.txt
new file mode 100644
index 0000000000000..e2ef8cab9f0e4
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-no.txt
@@ -0,0 +1,77 @@
+0000000004194784 r abitag
+0000000005251792 d __CTOR_LIST__
+0000000005251808 d __DTOR_LIST__
+0000000005251824 d __JCR_LIST__
+0000000004198320 t __do_global_dtors_aux
+0000000005252156 b completed.5107
+0000000005251088 d p.5105
+0000000004198384 t frame_dummy
+0000000005251800 d __CTOR_END__
+0000000005251816 d __DTOR_END__
+0000000005251336 r __FRAME_END__
+0000000005251824 d __JCR_END__
+0000000004201408 t __do_global_ctors_aux
+0000000004198432 t cook_cat
+0000000004200240 t scanfiles
+0000000005252160 b buf.4468
+0000000005252168 b bsize.4467
+ U fprintf@@FBSD_1.0
+ U write@@FBSD_1.0
+0000000005252184 B vflag
+0000000005251392 D _DYNAMIC
+ U putc@@FBSD_1.0
+ U feof@@FBSD_1.0
+0000000005252188 B tflag
+0000000005251080 D __dso_handle
+ U clearerr@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+0000000004197600 T _init
+0000000005252192 B rval
+0000000005252200 B filename
+0000000005252176 B environ
+0000000005252208 B eflag
+0000000005252212 B bflag
+ U socket@@FBSD_1.0
+0000000005252112 B __isthreaded@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000005251072 D __progname
+0000000004198160 T _start
+ U memset@@FBSD_1.0
+0000000005252216 B nflag
+ U connect@@FBSD_1.0
+ U __error@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+0000000005252112 A __bss_start
+ U close@@FBSD_1.0
+0000000004201024 T main
+ U warn@@FBSD_1.0
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000004201448 T _fini
+0000000005252128 B __stdoutp@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U open@@FBSD_1.0
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+ U fileno@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U err@@FBSD_1.0
+0000000005252112 A _edata
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+0000000005252224 A _end
+ U setlocale@@FBSD_1.0
+ U fclose@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252152 B optind@@FBSD_1.0
+ U __srget@@FBSD_1.0
+ U atexit@@FBSD_1.0
+0000000005252220 B sflag
+ U read@@FBSD_1.0
+ w _Jv_RegisterClasses
+ U getc@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-sort-num.txt b/test/nm/ts/nm_object1/test_obj-sort-num.txt
new file mode 100644
index 0000000000000..6ddfc583dddea
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-num.txt
@@ -0,0 +1,77 @@
+ w _Jv_RegisterClasses
+ U __error@@FBSD_1.0
+ U __srget@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+ U connect@@FBSD_1.0
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
+0000000004194784 r abitag
+0000000004197600 T _init
+0000000004198160 T _start
+0000000004198320 t __do_global_dtors_aux
+0000000004198384 t frame_dummy
+0000000004198432 t cook_cat
+0000000004200240 t scanfiles
+0000000004201024 T main
+0000000004201408 t __do_global_ctors_aux
+0000000004201448 T _fini
+0000000005251072 D __progname
+0000000005251080 D __dso_handle
+0000000005251088 d p.5105
+0000000005251336 r __FRAME_END__
+0000000005251392 D _DYNAMIC
+0000000005251792 d __CTOR_LIST__
+0000000005251800 d __CTOR_END__
+0000000005251808 d __DTOR_LIST__
+0000000005251816 d __DTOR_END__
+0000000005251824 d __JCR_END__
+0000000005251824 d __JCR_LIST__
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+0000000005252112 A __bss_start
+0000000005252112 B __isthreaded@@FBSD_1.0
+0000000005252112 A _edata
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+0000000005252128 B __stdoutp@@FBSD_1.0
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252152 B optind@@FBSD_1.0
+0000000005252156 b completed.5107
+0000000005252160 b buf.4468
+0000000005252168 b bsize.4467
+0000000005252176 B environ
+0000000005252184 B vflag
+0000000005252188 B tflag
+0000000005252192 B rval
+0000000005252200 B filename
+0000000005252208 B eflag
+0000000005252212 B bflag
+0000000005252216 B nflag
+0000000005252220 B sflag
+0000000005252224 A _end
diff --git a/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt b/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt
new file mode 100644
index 0000000000000..e2ef8cab9f0e4
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-reverse-no.txt
@@ -0,0 +1,77 @@
+0000000004194784 r abitag
+0000000005251792 d __CTOR_LIST__
+0000000005251808 d __DTOR_LIST__
+0000000005251824 d __JCR_LIST__
+0000000004198320 t __do_global_dtors_aux
+0000000005252156 b completed.5107
+0000000005251088 d p.5105
+0000000004198384 t frame_dummy
+0000000005251800 d __CTOR_END__
+0000000005251816 d __DTOR_END__
+0000000005251336 r __FRAME_END__
+0000000005251824 d __JCR_END__
+0000000004201408 t __do_global_ctors_aux
+0000000004198432 t cook_cat
+0000000004200240 t scanfiles
+0000000005252160 b buf.4468
+0000000005252168 b bsize.4467
+ U fprintf@@FBSD_1.0
+ U write@@FBSD_1.0
+0000000005252184 B vflag
+0000000005251392 D _DYNAMIC
+ U putc@@FBSD_1.0
+ U feof@@FBSD_1.0
+0000000005252188 B tflag
+0000000005251080 D __dso_handle
+ U clearerr@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+0000000004197600 T _init
+0000000005252192 B rval
+0000000005252200 B filename
+0000000005252176 B environ
+0000000005252208 B eflag
+0000000005252212 B bflag
+ U socket@@FBSD_1.0
+0000000005252112 B __isthreaded@@FBSD_1.0
+ U getopt@@FBSD_1.0
+0000000005251072 D __progname
+0000000004198160 T _start
+ U memset@@FBSD_1.0
+0000000005252216 B nflag
+ U connect@@FBSD_1.0
+ U __error@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+0000000005252112 A __bss_start
+ U close@@FBSD_1.0
+0000000004201024 T main
+ U warn@@FBSD_1.0
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+ U ferror@@FBSD_1.0
+0000000004201448 T _fini
+0000000005252128 B __stdoutp@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U open@@FBSD_1.0
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+ U fileno@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U err@@FBSD_1.0
+0000000005252112 A _edata
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+0000000005252224 A _end
+ U setlocale@@FBSD_1.0
+ U fclose@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252152 B optind@@FBSD_1.0
+ U __srget@@FBSD_1.0
+ U atexit@@FBSD_1.0
+0000000005252220 B sflag
+ U read@@FBSD_1.0
+ w _Jv_RegisterClasses
+ U getc@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt b/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt
new file mode 100644
index 0000000000000..4207b9860db8a
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-reverse-num.txt
@@ -0,0 +1,77 @@
+0000000005252224 A _end
+0000000005252220 B sflag
+0000000005252216 B nflag
+0000000005252212 B bflag
+0000000005252208 B eflag
+0000000005252200 B filename
+0000000005252192 B rval
+0000000005252188 B tflag
+0000000005252184 B vflag
+0000000005252176 B environ
+0000000005252168 b bsize.4467
+0000000005252160 b buf.4468
+0000000005252156 b completed.5107
+0000000005252152 B optind@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
+0000000005252128 B __stdoutp@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005252112 A _edata
+0000000005252112 B __isthreaded@@FBSD_1.0
+0000000005252112 A __bss_start
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+0000000005251824 d __JCR_LIST__
+0000000005251824 d __JCR_END__
+0000000005251816 d __DTOR_END__
+0000000005251808 d __DTOR_LIST__
+0000000005251800 d __CTOR_END__
+0000000005251792 d __CTOR_LIST__
+0000000005251392 D _DYNAMIC
+0000000005251336 r __FRAME_END__
+0000000005251088 d p.5105
+0000000005251080 D __dso_handle
+0000000005251072 D __progname
+0000000004201448 T _fini
+0000000004201408 t __do_global_ctors_aux
+0000000004201024 T main
+0000000004200240 t scanfiles
+0000000004198432 t cook_cat
+0000000004198384 t frame_dummy
+0000000004198320 t __do_global_dtors_aux
+0000000004198160 T _start
+0000000004197600 T _init
+0000000004194784 r abitag
+ U write@@FBSD_1.0
+ U warn@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+ U read@@FBSD_1.0
+ U putc@@FBSD_1.0
+ U open@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+ U fileno@@FBSD_1.0
+ U ferror@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U err@@FBSD_1.0
+ U connect@@FBSD_1.0
+ U close@@FBSD_1.0
+ U clearerr@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+ U __srget@@FBSD_1.0
+ U __error@@FBSD_1.0
+ w _Jv_RegisterClasses
diff --git a/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt b/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt
new file mode 100644
index 0000000000000..f36e031686a56
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-reverse-size.txt
@@ -0,0 +1,25 @@
+0000000000001806 t cook_cat
+0000000000000778 t scanfiles
+0000000000000376 T main
+0000000000000146 T _start
+0000000000000024 r abitag
+0000000000000008 B filename
+0000000000000008 B environ
+0000000000000008 b buf.4468
+0000000000000008 b bsize.4467
+0000000000000008 B __stdoutp@@FBSD_1.0
+0000000000000008 B __stdinp@@FBSD_1.0
+0000000000000008 B __stderrp@@FBSD_1.0
+0000000000000008 D __progname
+0000000000000008 B _CurrentRuneLocale@@FBSD_1.0
+0000000000000004 B vflag
+0000000000000004 B tflag
+0000000000000004 B sflag
+0000000000000004 B rval
+0000000000000004 B optind@@FBSD_1.0
+0000000000000004 B nflag
+0000000000000004 B eflag
+0000000000000004 B bflag
+0000000000000004 B __mb_sb_limit@@FBSD_1.0
+0000000000000004 B __isthreaded@@FBSD_1.0
+0000000000000001 b completed.5107
diff --git a/test/nm/ts/nm_object1/test_obj-sort-reverse.txt b/test/nm/ts/nm_object1/test_obj-sort-reverse.txt
new file mode 100644
index 0000000000000..80c5f860459b9
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-reverse.txt
@@ -0,0 +1,77 @@
+ U write@@FBSD_1.0
+ U warn@@FBSD_1.0
+0000000005252184 B vflag
+0000000005252188 B tflag
+ U strlcpy@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+0000000005252220 B sflag
+ U setlocale@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+0000000004200240 t scanfiles
+0000000005252192 B rval
+ U read@@FBSD_1.0
+ U putc@@FBSD_1.0
+0000000005251088 d p.5105
+0000000005252152 B optind@@FBSD_1.0
+ U open@@FBSD_1.0
+0000000005252216 B nflag
+ U memset@@FBSD_1.0
+ U malloc@@FBSD_1.0
+0000000004201024 T main
+ U getopt@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U fstat@@FBSD_1.0
+0000000004198384 t frame_dummy
+ U fprintf@@FBSD_1.0
+ U fileno@@FBSD_1.0
+0000000005252200 B filename
+ U ferror@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U err@@FBSD_1.0
+0000000005252176 B environ
+0000000005252208 B eflag
+0000000004198432 t cook_cat
+ U connect@@FBSD_1.0
+0000000005252156 b completed.5107
+ U close@@FBSD_1.0
+ U clearerr@@FBSD_1.0
+0000000005252160 b buf.4468
+0000000005252168 b bsize.4467
+0000000005252212 B bflag
+ U atexit@@FBSD_1.0
+0000000004194784 r abitag
+0000000004198160 T _start
+ U _init_tls@@FBSD_1.0
+0000000004197600 T _init
+0000000004201448 T _fini
+0000000005252224 A _end
+0000000005252112 A _edata
+ U __swbuf@@FBSD_1.0
+0000000005252128 B __stdoutp@@FBSD_1.0
+0000000005252120 B __stdinp@@FBSD_1.0
+0000000005252144 B __stderrp@@FBSD_1.0
+ U __srget@@FBSD_1.0
+0000000005251072 D __progname
+0000000005252116 B __mb_sb_limit@@FBSD_1.0
+0000000005252112 B __isthreaded@@FBSD_1.0
+ U __error@@FBSD_1.0
+0000000005251080 D __dso_handle
+0000000004198320 t __do_global_dtors_aux
+0000000004201408 t __do_global_ctors_aux
+0000000005252112 A __bss_start
+0000000005251824 d __JCR_LIST__
+0000000005251824 d __JCR_END__
+0000000005251336 r __FRAME_END__
+0000000005251808 d __DTOR_LIST__
+0000000005251816 d __DTOR_END__
+0000000005251792 d __CTOR_LIST__
+0000000005251800 d __CTOR_END__
+ w _Jv_RegisterClasses
+0000000005251832 D _GLOBAL_OFFSET_TABLE_
+0000000005251392 D _DYNAMIC
+0000000005252136 B _CurrentRuneLocale@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj-sort-size.txt b/test/nm/ts/nm_object1/test_obj-sort-size.txt
new file mode 100644
index 0000000000000..cadebc5b08c9b
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-sort-size.txt
@@ -0,0 +1,25 @@
+0000000000000001 b completed.5107
+0000000000000004 B __isthreaded@@FBSD_1.0
+0000000000000004 B __mb_sb_limit@@FBSD_1.0
+0000000000000004 B bflag
+0000000000000004 B eflag
+0000000000000004 B nflag
+0000000000000004 B optind@@FBSD_1.0
+0000000000000004 B rval
+0000000000000004 B sflag
+0000000000000004 B tflag
+0000000000000004 B vflag
+0000000000000008 B _CurrentRuneLocale@@FBSD_1.0
+0000000000000008 D __progname
+0000000000000008 B __stderrp@@FBSD_1.0
+0000000000000008 B __stdinp@@FBSD_1.0
+0000000000000008 B __stdoutp@@FBSD_1.0
+0000000000000008 b bsize.4467
+0000000000000008 b buf.4468
+0000000000000008 B environ
+0000000000000008 B filename
+0000000000000024 r abitag
+0000000000000146 T _start
+0000000000000376 T main
+0000000000000778 t scanfiles
+0000000000001806 t cook_cat
diff --git a/test/nm/ts/nm_object1/test_obj-undef.txt b/test/nm/ts/nm_object1/test_obj-undef.txt
new file mode 100644
index 0000000000000..2517744d6bfc7
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj-undef.txt
@@ -0,0 +1,33 @@
+ w _Jv_RegisterClasses
+ U __error@@FBSD_1.0
+ U __srget@@FBSD_1.0
+ U __swbuf@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U clearerr@@FBSD_1.0
+ U close@@FBSD_1.0
+ U connect@@FBSD_1.0
+ U err@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U fclose@@FBSD_1.0
+ U fdopen@@FBSD_1.0
+ U feof@@FBSD_1.0
+ U ferror@@FBSD_1.0
+ U fileno@@FBSD_1.0
+ U fprintf@@FBSD_1.0
+ U fstat@@FBSD_1.0
+ U fwrite@@FBSD_1.0
+ U getc@@FBSD_1.0
+ U getopt@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U putc@@FBSD_1.0
+ U read@@FBSD_1.0
+ U setbuf@@FBSD_1.0
+ U setlocale@@FBSD_1.0
+ U shutdown@@FBSD_1.0
+ U socket@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+ U warn@@FBSD_1.0
+ U write@@FBSD_1.0
diff --git a/test/nm/ts/nm_object1/test_obj.uu b/test/nm/ts/nm_object1/test_obj.uu
new file mode 100644
index 0000000000000..69f5bf405a9c4
--- /dev/null
+++ b/test/nm/ts/nm_object1/test_obj.uu
@@ -0,0 +1,351 @@
+begin 644 test_obj
+M?T5,1@(!`0D```````````(`/@`!````$`]```````!``````````&`F````
+M`````````$``.``'`$``'``9``8````%````0`````````!``$```````$``
+M0```````B`$```````"(`0````````@``````````P````0```#(`0``````
+M`,@!0```````R`%````````5`````````!4``````````0`````````!````
+M!0````````````````!``````````$```````(P=````````C!T`````````
+M`!````````$````&`````"``````````(%`````````@4```````$`0`````
+M``"`!```````````$````````@````8```!`(0```````$`A4```````0"%0
+M``````"0`0```````)`!````````"``````````$````!````.`!````````
+MX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$
+M````A!T```````"$'4```````(0=0```````"``````````(``````````0`
+M````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E
+M94)31``D-0P`)0```"P`````````*0```!P`````````!P```"4`````````
+M'P````P````$````"0```"H````;````$P````\````B````$0````4````5
+M````)@```"L````G````(P```!X````*````(0```````````````````!T`
+M```(````(````!`````!``````````8`````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````T````"````````````````````#@```!0`````````````````````
+M``````````,````:`````````!8``````````````!<`````````"P``````
+M```D````&````!(````H````&0``````````````````````````````````
+M````````````@````!(````$#4```````)``````````+0$``!(````4#4``
+M````````````````#0$``!(````D#4```````)D`````````7P```!(````T
+M#4```````&4`````````_0```!(```!$#4```````%H`````````$@$``!(`
+M``!4#4``````````````````ZP```!(```!D#4````````(`````````<@``
+M`!$`%P!0)%````````@`````````:P```!(```!T#4``````````````````
+MT````!$`%P`0)%````````0`````````W0```!(```"$#4```````*H"````
+M````CP```!$`$```(%````````@`````````Y````!(```"4#4``````````
+M````````-P```!(```"D#4``````````````````H0```!(```"T#4``````
+M``@`````````R0```!(```#$#4```````!(!````````!P$``!(```#4#4``
+M````````````````00$``!(```#D#4```````*@`````````'P```!$`%P`4
+M)%````````0`````````/P```!$`%P`8)%````````@`````````F@```!(`
+M``#T#4```````&4`````````+0```!$`%P`@)%````````@`````````+`$`
+M`!(````$#D```````,H`````````RP```!(````4#D``````````````````
+MM@```!$`%P`H)%````````@`````````.@$``!(````D#D```````%L`````
+M````]0```!(````T#D```````,,`````````,P$``!(```!$#D```````!,`
+M````````'0$``!(```!4#D```````"\`````````9````!(```!D#D``````
+M```%`````````@$``!(```!T#D```````*H`````````1@$``!``\?^`)%``
+M````````````````(@$``!(```"$#D```````&H#````````!@$``!(```"4
+M#D```````/(`````````50```!$`%P`P)%````````@`````````B````!$`
+M%P`X)%````````0`````````2````!(```"D#D```````"4`````````&P$`
+M`!(```"T#D```````"\`````````J0```!(```#$#D``````````````````
+M`0```"``````````````````````````4````!(```#4#D```````'\`````
+M````>@```!(```#D#D``````````````````K@```!(```#T#D```````#8`
+M`````````%]*=E]296=I<W1E<D-L87-S97,`;&EB8RYS;RXW`%]?;6)?<V)?
+M;&EM:70`7U]S=&1O=71P`&-O;FYE8W0`7U]S=&1I;G``7U]S<F=E=`!G971C
+M`%]?<W1D97)R<`!F96]F`&UA;&QO8P!S;V-K970`96YV:7)O;@!F<W1A=`!F
+M<')I;G1F`&]P=&EN9`!?7W!R;V=N86UE`&9E<G)O<@!?7V5R<F]R`')E860`
+M<W1R;&-P>0!?0W5R<F5N=%)U;F5,;V-A;&4`9F1O<&5N`%]?:7-T:')E861E
+M9`!G971O<'0`;65M<V5T`%]I;FET7W1L<P!?7W-W8G5F`&-L96%R97)R`&9C
+M;&]S90!P=71C`'-H=71D;W=N`&%T97AI=`!S971L;V-A;&4`9G=R:71E`'-E
+M=&)U9@!F:6QE;F\`=V%R;@!?96YD`$9"4T1?,2XP`````@`"``(``@`"``(`
+M`@`!``(``@`"``$``@`"``(``@`"``(``@`"``(``@`"``(``@`"``(``@`"
+M``(``@`!``(``@`"``(``@`"``(````"``(``@```````0`!`!4````0````
+M`````+`H>@<```(`2P$````````0)%````````4````*```````````````4
+M)%````````4````3```````````````8)%````````4````4````````````
+M```@)%````````4````6```````````````H)%````````4````9````````
+M```````P)%````````4````C```````````````X)%````````4````D````
+M```````````0(U````````<````!```````````````8(U````````<````"
+M```````````````@(U````````<````#```````````````H(U````````<`
+M```$```````````````P(U````````<````%```````````````X(U``````
+M``<````&``````````````!`(U````````<````'``````````````!((U``
+M``````<````)``````````````!0(U````````<````+``````````````!8
+M(U````````<````-``````````````!@(U````````<````.````````````
+M``!H(U````````<````/``````````````!P(U````````<````0````````
+M``````!X(U````````<````1``````````````"`(U````````<````2````
+M``````````"((U````````<````5``````````````"0(U````````<````7
+M``````````````"8(U````````<````8``````````````"@(U````````<`
+M```:``````````````"H(U````````<````;``````````````"P(U``````
+M``<````<``````````````"X(U````````<````=``````````````#`(U``
+M``````<````>``````````````#((U````````<````?``````````````#0
+M(U````````<````A``````````````#8(U````````<````B````````````
+M``#@(U````````<````E``````````````#H(U````````<````F````````
+M``````#P(U````````<````G``````````````#X(U````````<````I````
+M````````````)%````````<````J```````````````()%````````<````K
+M``````````````!(@^P(Z`<#``#HT@X``$B#Q`C#`/\U!A80`/\E"!80`)"0
+MD)#_)086$`!H`````.G@_____R7^%1``:`$```#IT/____\E]A40`&@"````
+MZ<#_____)>X5$`!H`P```.FP_____R7F%1``:`0```#IH/____\EWA40`&@%
+M````Z9#_____)=85$`!H!@```.F`_____R7.%1``:`<```#I</____\EQA40
+M`&@(````Z6#_____);X5$`!H"0```.E0_____R6V%1``:`H```#I0/____\E
+MKA40`&@+````Z3#_____):85$`!H#````.D@_____R6>%1``:`T```#I$/__
+M__\EEA40`&@.````Z0#_____)8X5$`!H#P```.GP_O___R6&%1``:!````#I
+MX/[___\E?A40`&@1````Z=#^____)785$`!H$@```.G`_O___R5N%1``:!,`
+M``#IL/[___\E9A40`&@4````Z:#^____)5X5$`!H%0```.F0_O___R56%1``
+M:!8```#I@/[___\E3A40`&@7````Z7#^____)485$`!H&````.E@_O___R4^
+M%1``:!D```#I4/[___\E-A40`&@:````Z4#^____)2X5$`!H&P```.DP_O__
+M_R4F%1``:!P```#I(/[___\E'A40`&@=````Z1#^____)185$`!H'@```.D`
+M_O___R4.%1``:!\```#I\/W__P```````````````$%43(UG"%53BQ](8\.%
+MVTB-;,<02(DM)140`'XX2(M7"$B%TG0O2(D5PQ`0``^V`H3`="%(_\(\+TB+
+M!;`0$`!(#T3"2(D%I1`0``^V`DC_PH3`=>*X0"%0`$B%P'0K2(GWZ#W___^_
+MZ!M``.@S____Z%K]__^)WTB)ZDR)YNBM"@``B<?HNO[__^C%_?__D.O5D)"0
+MD)"0D)"0D)"0D)!(@^P(@#V!%!```'00ZR202(/`"$B)!440$`#_TDB+!3P0
+M$`!(BQ!(A=)UY,8%6100``%(@\0(PV9F9I!F9F:02(,]^!(0``!T%K@`````
+M2(7`=`R_\")0`$F)PT'_XY#SPY"0D)"0D)"0D)"0D)"0059(.SWO$Q``055!
+M5$F)_%53#X14!@``BS72$Q``13'V13'MO0H```"%]@^%2P$``$&+1"0(_\B%
+MP$&)1"0(#X@I!```28L$)`^V&$C_P$F)!"2#^_\/A#,!``"#_0H/A'P!``"#
+M^PH/A/D!``"#^PD/A%D"``"++;L3$`"%[0^$JP```/?#@/___P^$B@```(7;
+M>!T['5D3$`!]%4B+%603$`!(8\/V1,)"!`^%O0(``$2+'3<3$`!%A=L/A3H$
+M``!(BS4W$Q``BT8,_\B%P(E&#`^(_`0``$B+!L8`34C_P$B)!D2+%003$`!%
+MA=(/A3`$``!(BS4$$Q``BT8,_\B%P(E&#`^(!P4``$B+!L8`+4C_P$B)!H/C
+M?X7;>!$['<\2$``/C#H"``!F9I!FD(L]NA(0`(7_#X5V`0``2(LUNQ(0`(M&
+M#/_(A<")1@P/B/(!``!(BP8/MM.(&$C_P$B)!O_"#Y3`A,!U(XG=BS5\$A``
+MA?8/A+7^__],B>?H,/W__XG#@_O_#X7-_O__BPU;$A``A<D/A68"``!!#[]$
+M)!#!Z`:#X`&$P`^%9P(``(L%.1(0`(7`#X69`@``2(L%.A(0``^_0!#!Z`:#
+MX`&$P`^%)04``%M=05Q!74%>PXLU=1(0`(7V=`R#^PH/A*P"``!%,?:+#5L2
+M$`"%R0^$8/[__XL521(0`(72#Y3"@_L*#Y7`",(/A$?^__](BSW;$1``0?_%
+M,<!$B>J^01Q``.BM^O__BP6S$1``A<`/A?`#``!(BP6T$1``#[]`$,'H!H/@
+M`83`#X4Q____@_L*#X4'_O__BP7C$1``A<`/A+O^__^+!741$`"%P`^%^@$`
+M`$B+-781$`"+1@S_R(7`B48,#XC4`@``2(L&Q@`D2/_`2(D&BSU$$1``A?\/
+MA(K^__](BS5%$1``B=_H0OK____`#Y3`Z9S^__]F9F:0BP5F$1``A<`/A%+^
+M__^+!0P1$`"%P`^%R0$``$B+-0T1$`"+1@S_R(7`B48,#XB,`@``2(L&Q@!>
+M2/_`2(D&BP7;$!``A<`/A;\!``!(BS7<$!``BT8,_\B%P(E&#`^(?`(``$B+
+M!HG=Q@!)2/_`2(D&Z2?^__\[1BA\"8#["@^%`/[__XG?Z+CZ__^)PF:0Z?[]
+M__](BQ6<$!``2&/#]D3"00(/A+;]__]$BPUO$!``187)#X5K`@``2(LU;Q`0
+M`(M&#/_(A<")1@P/B`0#``!(BP;&`%Y(_\!(B09$BP4\$!``187`#X6&`0``
+M2(LU/!`0`(G8OS\```"#R$"#^W\/1?B+1@S_R(7`B48,#XAK`@``2(L&0`^V
+MUT"(.$C_P$B)!O_"#X23_?__B=WI:_W__TR)Y^C)^?__A<`/E<"$P`^$F?W_
+M_TB+-2D0$``QP+]&'$``Z)GY__^+%;\/$`#'!040$``!````A=(/A8("``!F
+M08-D)!"?BP6@#Q``A<`/A&?]__](BSVA#Q``Z'#Y__^%P`^5P.EB_?__3(GG
+MZ`[Z__^)P^G6^___2(LU?`\0`+\D````Z';X____P`^4P(3`#X25_/__Z>_\
+M__]%A?8/A</\__]!M@%F9F:0Z4+]__](BS5$#Q``OUX```#H/OC____`#X3!
+M_/__BP4<#Q``A<`/A$'^__](BS4=#Q``OTD```#H%_C____`#X2:_/__B=WI
+M<OS__TB+-?T.$`"_30```.CW]____\`/A'K\__]$BQ74#A``1872#X30^___
+M2(LUU`X0`+\M````Z,[W____P`^%VOO__^E,_/__2(LUM@X0`(G8OS\```"#
+MR$"#^W\/1?CHI??____`#X0H_/__B=WI`/S__SM&*`^-(_W__[\D````9F9F
+MD.B/^/___\`/E,#I!/___SM&*`^-:_W__[]>````Z'+X____P`^%9?W__^G@
+M^___D#M&*`^->_W__[])````9I#H3_C____`#X3"^___B=V0Z9G[__\[1B@/
+MC?OZ__^_30```.@L^/___\`/A?7Z___IFOO__TB+-00.$`"_7@```.C^]O__
+M_\`/A9_]___I?/O__SM&*`^-\/K__[\M````Z.[W____P`^%ZOK__V:0Z5K[
+M__](BSW$#1``9F9FD.B/]___A<`/E<#I!_S__SM&*'P*0(#_"@^%AOW__V:0
+MZ*_W__^)PNF(_?__1(L%?0T0`$6%P'5B#[]'$,'H!8/@`83`#X2.^?__BSU@
+M#1``A?]U6$B+!5T-$`!F@V`0G^ES^?__.T8H#XWS_/__OUX```#H7/?____`
+M#X7M_/__Z<KZ__],B>=F9F:09F9FD.A/]O__Z=?Z__]F9I!F9I#H+_;__X7`
+M#Y7`ZY9(BST%#1``Z"SV___I&_G__[Y)'$``OP$````QP.A&]___9I!!5T4Q
+M_T%6055!5%532('LJ````$B-1"0@2(E\)!B)="042(/``DB)1"0(2(M$)!A.
+MBS3X387V#X3L````_+]0'$``N0(```!,B?;SI@^%`@$``$C'!=H,$`!2'$``
+M13'M1(M4)!1%A=)T-T6%[0^$T````+Y='$``1(GOZ!/V__](B<-(B<?H9/C_
+M_TB)W^C0]O__387V#X25````2?_'ZXE$BPTW#!``187)#X4*`0``2(,]5@P0
+M``!(BP4O#!``1`^_8!(/A`T!``!F9F:02(L500P0`$B+-3(,$`!$B>_HKO;_
+M_TB#^`!(B<,/CJT````Q[>L'2"G#=-0!Q4AC]4@#-0@,$`!(B=I$B>?HT?3_
+M_TB%P'G?ODD<0`"_`0```#'`Z!OV__]%A?\/A"'___](@<2H````6UU!7$%=
+M05Y!7\-(BSV="Q``Z*#W___I/____S'V,<!,B?=,B375"Q``Z'SU__^%P$&)
+MQ0^)[O[__^@,]?__@S@M#X2O````3(GVOT8<0``QP.@D]?__QP66"Q```0``
+M`.G^_O__D`^,XP```$6%[0^$Y?[__T2)[^CM]/__Z=C^__](BSTM"Q``Z"SU
+M__](@SU`"Q```$&)Q`^%]_[__TB-="0@1(GGZ,[U__^%P`^%]P```(%\)'@`
+M!```OP`$```/0WPD>(G_2(D]#PL0`.@F]?__2(7`2(D%^`H0``^%LO[__[Y8
+M'$``OP$```#H%_7__V9FD$B-?"0@,?:Z:@```.@C]/__,=*^`0```+\!````
+MZ/+S__^%P$&)Q0^()/___TB+?"0(NF@```!,B?;&1"0A`>A0]?__@_AG=C+H
+M!O3__\<`/P```.GX_O__2(LUJ`H0`+]&'$``,<#H&/3__\<%B@H0``$```#I
+M^_[__XU0`TB-="0@1(GOZ+GS__^%P'@^O@$```!$B>_H6//____`#X6-_?__
+M,?\QP.C7\___9F:0Z7S]__](BQ5,"A``OD8<0`"_`0```#'`Z$?T__]$B>_H
+MG_/__^EW_O__9F:09F:058G]OP(```!32(GSOD4<0`!(@^P(Z"KT__]F9I!F
+M9I"Z7QQ``$B)WHGOZ!7S__^#^/\/A+@```"#Z&*#^!1V)4B+#:D)$`"_:!Q`
+M`+HA````O@$```#H:?/__[\!````Z*_S__^)P/\DQ9`<0`#'!:`)$``!````
+MZZ9(BSU?"1``,?;H?//__^N6QP6$"1```0```,<%?@D0``$```#K@,<%D@D0
+M``$```#I<?___\<%?PD0``$```#I8O___\<%4`D0``$```#'!5X)$``!````
+MZ4G____'!5<)$``!````QP5)"1```0```.DP____2&,%`0D0`$B-/,.+!3,)
+M$`"%P'4*BP4E"1``A<!T*[X!````Z-?[__](BSW`"!``Z"_S__^%P'1$ODD<
+M0`"_`0```#'`Z/KR__^+!?@($`"%P'7+BRWR"!``A>UUP8L=R`@0`(7;=;=$
+MBQVY"!``187;=:LQ]NB%^___ZZR+/:T($`#HG/+__Y"0D)"0D)"02(L%"0<0
+M`%-(@_C_=!4QV__02(N#R")0`$B#ZPA(@_C_=>U;PY"0D$B#[`CHO_/__TB#
+MQ`C#```D1G)E94)31#H@<W)C+VQI8B]C<W4O86UD-C0O8W)T:2Y3+'8@,2XW
+M(#(P,#0O,#,O,C$@,#$Z,SDZ,#$@<&5T97(@17AP("0`)39D"0`E<P!S=&1O
+M=70`+0!S=&1I;@!B=69F97(`8F5N<W1U=@``=7-A9V4Z(&-A="!;+6)E;G-T
+M=79=(%MF:6QE("XN+ET*`````````!<;0```````@!I```````"`&D``````
+M`/X:0```````@!I```````"`&D```````(`:0```````@!I```````"`&D``
+M`````(`:0```````@!I```````"`&D```````.\:0```````@!I```````"`
+M&D```````(`:0```````@!I```````#@&D```````,H:0```````NAI`````
+M``"N&D```````"1&<F5E0E-$.B!S<F,O;&EB+V-S=2]A;60V-"]C<G1N+E,L
+M=B`Q+C8@,C`P-"\P,R\R,2`P,3HS.3HP,2!P971E<B!%>'`@)``````!&___
+MD`(0````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``!%'$``````````````````Z")0```````4``````````%Z4@`!>!`!`PP'
+M")`!```<````'````!`/0`"2`````$(.$(P"10X800X@@P2&`Q0````\````
+ML`]``#@`````1`X0`````!0```!4````\`]``"(``````````````"P```!L
+M````(!!```X'````0@X020X80@X@C`2-`XX"1`XH00XP@P:&!0```````#0`
+M``"<````,!=```H#````0@X0CP)%#AA"#B!"#BA!#C!!#CA'#N`!@P>&!HP%
+MC02.`P``````'````-0```!`&D``>`$```!!#A"&`D@.&(,#3`X@````````
+M&``````````!>E(``7@0`0,,!PB0`0```````!0````@````P!M``"4`````
+M2`X0@P(```$`````````%0`````````,`````````.`,0```````#0``````
+M``#H&T````````0`````````^`%````````%`````````&@'0```````!@``
+M``````!(`T````````H`````````5`$````````+`````````!@`````````
+M%0````````````````````,`````````^")0```````"```````````#````
+M````%``````````'`````````!<`````````X`E````````'`````````#@)
+M0```````"`````````"H``````````D`````````&`````````#^__]O````
+M`!@)0```````____;P`````!`````````/#__V\`````O`A`````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``#__________P``````````__________\`````````````````````0"%0
+M````````````````````````````"@U````````:#4```````"H-0```````
+M.@U```````!*#4```````%H-0```````:@U```````!Z#4```````(H-0```
+M````F@U```````"J#4```````+H-0```````R@U```````#:#4```````.H-
+M0```````^@U````````*#D```````!H.0```````*@Y````````Z#D``````
+M`$H.0```````6@Y```````!J#D```````'H.0```````B@Y```````":#D``
+M`````*H.0```````N@Y```````#*#D```````-H.0```````Z@Y```````#Z
+M#D`````````D1G)E94)31#H@<W)C+VQI8B]C<W4O8V]M;6]N+V-R=&)R86YD
+M+F,L=B`Q+C8@,C`P-R\Q,B\P-"`Q,CHQ.#HT,R!K:6(@17AP("0`)$9R965"
+M4T0Z('-R8R]L:6(O8W-U+V%M9#8T+V-R=#$N8RQV(#$N,34@,C`P-2\Q,"\P
+M-R`R,CHQ,SHQ-R!B9&4@17AP("0`1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q
+M.2`@6T9R965"4T1=``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#<P-S$Y("!;1G)E
+M94)31%T``"1&<F5E0E-$.B!S<F,O8FEN+V-A="]C870N8RQV(#$N,S(@,C`P
+M-2\P,2\Q,"`P.#HS.3HR,"!I;7`@17AP("0`1T-#.B`H1TY5*2`T+C(N,2`R
+M,#`W,#<Q.2`@6T9R965"4T1=``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#<P-S$Y
+M("!;1G)E94)31%T``"YS>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+FEN=&5R
+M<``N;F]T92Y!0DDM=&%G`"YH87-H`"YD>6YS>6T`+F1Y;G-T<@`N9VYU+G9E
+M<G-I;VX`+F=N=2YV97)S:6]N7W(`+G)E;&$N9'EN`"YR96QA+G!L=``N:6YI
+M=``N=&5X=``N9FEN:0`N<F]D871A`"YE:%]F<F%M95]H9'(`+F1A=&$`+F5H
+M7V9R86UE`"YD>6YA;6EC`"YC=&]R<P`N9'1O<G,`+FIC<@`N9V]T`"YB<W,`
+M+F-O;6UE;G0`````````````````````````````````````````````````
+M````````````````````````````````````````````&P````$````"````
+M`````,@!0```````R`$````````5`````````````````````0``````````
+M`````````",````'`````@````````#@`4```````.`!````````&```````
+M``````````````0````````````````````Q````!0````(`````````^`%`
+M``````#X`0```````$P!````````!``````````(``````````0`````````
+M-P````L````"`````````$@#0```````2`,````````@!`````````4````!
+M````"``````````8`````````#\````#`````@````````!H!T```````&@'
+M````````5`$```````````````````$```````````````````!'````____
+M;P(`````````O`A```````"\"````````%@`````````!``````````"````
+M``````(`````````5````/[__V\"`````````!@)0```````&`D````````@
+M``````````4````!````"````````````````````&,````$`````@``````
+M```X"4```````#@)````````J``````````$``````````@`````````&```
+M``````!M````!`````(`````````X`E```````#@"0`````````#````````
+M!`````L````(`````````!@`````````=P````$````&`````````.`,0```
+M````X`P````````3````````````````````!````````````````````'(`
+M```!````!@````````#T#$```````/0,````````$`(`````````````````
+M``0`````````$`````````!]`````0````8`````````$`]````````0#P``
+M`````-@,```````````````````0````````````````````@P````$````&
+M`````````.@;0```````Z!L````````.````````````````````!```````
+M`````````````(D````!`````@````````#X&T```````/@;````````B0$`
+M``````````````````@```````````````````"1`````0````(`````````
+MA!U```````"$'0````````@````````````````````$````````````````
+M````GP````$````#```````````@4````````"`````````8````````````
+M````````"````````````````````*4````!`````@`````````8(%``````
+M`!@@````````*`$```````````````````@```````````````````"O````
+M!@````,`````````0"%0``````!`(0```````)`!````````!0`````````(
+M`````````!``````````N`````$````#`````````-`B4```````T"(`````
+M```0````````````````````"````````````````````+\````!`````P``
+M``````#@(E```````.`B````````$`````````````````````@`````````
+M``````````#&`````0````,`````````\")0``````#P(@````````@`````
+M```````````````(````````````````````RP````$````#`````````/@B
+M4```````^"(````````8`0``````````````````"``````````(````````
+M`-`````(`````P`````````0)%```````!`D````````<```````````````
+M``````@```````````````````#5`````0`````````````````````````0
+M)````````&T!```````````````````!````````````````````$0````,`
+M````````````````````````?24```````#>`````````````````````0``
+M``````````````````$````"`````````````````````````&`M````````
+M^`H````````;````.0````@`````````&``````````)`````P``````````
+M``````````````!8.````````+$$```````````````````!````````````
+M``````````````````````````````````````````````,``0#(`4``````
+M``````````````````,``@#@`4````````````````````````,``P#X`4``
+M``````````````````````,`!`!(`T````````````````````````,`!0!H
+M!T````````````````````````,`!@"\"$````````````````````````,`
+M!P`8"4````````````````````````,`"``X"4``````````````````````
+M``,`"0#@"4````````````````````````,`"@#@#$``````````````````
+M``````,`"P#T#$````````````````````````,`#``0#T``````````````
+M``````````,`#0#H&T````````````````````````,`#@#X&T``````````
+M``````````````,`#P"$'4````````````````````````,`$```(%``````
+M``````````````````,`$0`8(%````````````````````````,`$@!`(5``
+M``````````````````````,`$P#0(E````````````````````````,`%`#@
+M(E````````````````````````,`%0#P(E````````````````````````,`
+M%@#X(E````````````````````````,`%P`0)%``````````````````````
+M``,`&`````````````````````````````,`&0``````````````````````
+M``````,`&@````````````````````````````,`&P``````````````````
+M`````0````0`\?\`````````````````````"`````$``@#@`4```````!@`
+M````````#P````0`\?\`````````````````````+0````0`\?\`````````
+M````````````/`````0`\?\`````````````````````#P````0`\?\`````
+M````````````````1P````0`\?\`````````````````````4@````$`$P#0
+M(E``````````````````8`````$`%`#@(E``````````````````;@````$`
+M%0#P(E``````````````````>P````(`#`"P#T``````````````````D0``
+M``$`%P`\)%````````$`````````H`````$`$``0(%``````````````````
+MIP````(`#`#P#T``````````````````1P````0`\?\`````````````````
+M````LP````$`$P#8(E``````````````````P`````$`%`#H(E``````````
+M````````S0````$`$0`((5``````````````````VP````$`%0#P(E``````
+M````````````YP````(`#`#`&T``````````````````_0````0`\?\`````
+M````````````````+0````0`\?\`````````````````````/`````0`\?\`
+M````````````````````_0````0`\?\`````````````````````&P$```0`
+M\?\`````````````````````(0$```(`#``@$$````````X'````````*@$`
+M``(`#``P%T````````H#````````-`$```$`%P!`)%````````@`````````
+M/0$```$`%P!()%````````@`````````2`$``!(````$#4```````)``````
+M````6@$``!(````4#4``````````````````:@$``!$`%P!8)%````````0`
+M````````<`$``!$`$@!`(5``````````````````>0$``!(````D#4``````
+M`)D`````````B`$``!(````T#4```````&4`````````EP$``!$`%P!<)%``
+M``````0`````````G0$``!$"$``((%``````````````````J@$``!(```!$
+M#4```````%H`````````O0$``!(```!4#4``````````````````T`$``!(`
+M``!D#4````````(`````````Y`$``!(`"@#@#$``````````````````Z@$`
+M`!$`%P!@)%````````0`````````[P$``!$`%P!H)%````````@`````````
+M^`$``!$`%P!0)%````````@```````````(``!$`%P!P)%````````0`````
+M````!@(``!$`%P!T)%````````0`````````#`(``!(```!T#4``````````
+M````````'0(``!$`%P`0)%````````0`````````-`(``!(```"$#4``````
+M`*H"````````10(``!$`$```(%````````@`````````4`(``!(`#``0#T``
+M`````)(`````````5P(``!(```"4#4``````````````````:`(``!$`%P!X
+M)%````````0`````````;@(``!(```"D#4``````````````````@`(``!(`
+M``"T#4````````@`````````D@(``!(```#$#4```````!(!````````HP(`
+M`!``\?\0)%``````````````````KP(``!(```#4#4``````````````````
+MOP(``!(`#`!`&D```````'@!````````Q`(``!(```#D#4```````*@`````
+M````TP(``!$`%P`4)%````````0`````````ZP(``!$`%P`8)%````````@`
+M````````_@(``!(```#T#4```````&4`````````#P,``!(`#0#H&T``````
+M````````````%0,``!$`%P`@)%````````@`````````*0,``!(````$#D``
+M`````,H`````````.@,``!(````4#D``````````````````20,``!$`%P`H
+M)%````````@`````````9@,``!(````D#D```````%L`````````=P,``!(`
+M```T#D```````,,`````````B0,``!(```!$#D```````!,`````````F@,`
+M`!(```!4#D```````"\`````````J0,``!(```!D#D`````````%````````
+MN@,``!(```!T#D```````*H`````````R`,``!``\?\0)%``````````````
+M````SP,``!$`%@#X(E``````````````````Y0,``!``\?^`)%``````````
+M````````Z@,``!(```"$#D```````&H#````````_@,``!(```"4#D``````
+M`/(`````````#P0``!$`%P`P)%````````@`````````(P0``!$`%P`X)%``
+M``````0`````````-`0``!(```"D#D```````"4`````````1@0``!(```"T
+M#D```````"\`````````5P0``!$`%P!\)%````````0`````````700``!(`
+M``#$#D``````````````````;`0``"``````````````````````````@`0`
+M`!(```#4#D```````'\`````````CP0``!(```#D#D``````````````````
+MGP0``!(```#T#D```````#8``````````&-R=#$N8P!A8FET86<`+W5S<B]S
+M<F,O;&EB+V-S=2]A;60V-"]C<G1I+E,`/&-O;6UA;F0M;&EN93X`/&)U:6QT
+M+6EN/@!C<G1S='5F9BYC`%]?0U1/4E],25-47U\`7U]$5$]27TQ)4U1?7P!?
+M7TI#4E],25-47U\`7U]D;U]G;&]B86Q?9'1O<G-?875X`&-O;7!L971E9"XU
+M,3`W`'`N-3$P-0!F<F%M95]D=6UM>0!?7T-43U)?14Y$7U\`7U]$5$]27T5.
+M1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G;&]B86Q?8W1O
+M<G-?875X`"]U<W(O<W)C+VQI8B]C<W4O86UD-C0O8W)T;BY3`&-A="YC`&-O
+M;VM?8V%T`'-C86YF:6QE<P!B=68N-#0V.`!B<VEZ92XT-#8W`&9P<FEN=&9`
+M0$9"4T1?,2XP`'=R:71E0$!&0E-$7S$N,`!V9FQA9P!?1%E.04U)0P!P=71C
+M0$!&0E-$7S$N,`!F96]F0$!&0E-$7S$N,`!T9FQA9P!?7V1S;U]H86YD;&4`
+M8VQE87)E<G)`0$9"4T1?,2XP`'-H=71D;W=N0$!&0E-$7S$N,`!?:6YI=%]T
+M;'-`0$9"4T1?,2XP`%]I;FET`')V86P`9FEL96YA;64`96YV:7)O;@!E9FQA
+M9P!B9FQA9P!S;V-K971`0$9"4T1?,2XP`%]?:7-T:')E861E9$!`1D)31%\Q
+M+C``9V5T;W!T0$!&0E-$7S$N,`!?7W!R;V=N86UE`%]S=&%R=`!M96US971`
+M0$9"4T1?,2XP`&YF;&%G`&-O;FYE8W1`0$9"4T1?,2XP`%]?97)R;W)`0$9"
+M4T1?,2XP`&9D;W!E;D!`1D)31%\Q+C``7U]B<W-?<W1A<G0`8VQO<V5`0$9"
+M4T1?,2XP`&UA:6X`=V%R;D!`1D)31%\Q+C``7U]M8E]S8E]L:6UI=$!`1D)3
+M1%\Q+C``7U]S=&1I;G!`0$9"4T1?,2XP`&9E<G)O<D!`1D)31%\Q+C``7V9I
+M;FD`7U]S=&1O=71P0$!&0E-$7S$N,`!F=W)I=&5`0$9"4T1?,2XP`&]P96Y`
+M0$9"4T1?,2XP`%]#=7)R96YT4G5N94QO8V%L94!`1D)31%\Q+C``9FEL96YO
+M0$!&0E-$7S$N,`!?7W-W8G5F0$!&0E-$7S$N,`!S971B=69`0$9"4T1?,2XP
+M`&5X:71`0$9"4T1?,2XP`&UA;&QO8T!`1D)31%\Q+C``97)R0$!&0E-$7S$N
+M,`!?961A=&$`7T=,3T)!3%]/1D93151?5$%"3$5?`%]E;F0`<V5T;&]C86QE
+M0$!&0E-$7S$N,`!F8VQO<V5`0$9"4T1?,2XP`%]?<W1D97)R<$!`1D)31%\Q
+M+C``;W!T:6YD0$!&0E-$7S$N,`!?7W-R9V5T0$!&0E-$7S$N,`!A=&5X:71`
+M0$9"4T1?,2XP`'-F;&%G`')E861`0$9"4T1?,2XP`%]*=E]296=I<W1E<D-L
+M87-S97,`9V5T8T!`1D)31%\Q+C``9G-T871`0$9"4T1?,2XP`'-T<FQC<'E`
+*0$9"4T1?,2XP````
+`
+end
diff --git a/test/nm/ts/nm_object2/Makefile b/test/nm/ts/nm_object2/Makefile
new file mode 100644
index 0000000000000..3aa018882bd6e
--- /dev/null
+++ b/test/nm/ts/nm_object2/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_obj
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_object2/tc.sh b/test/nm/ts/nm_object2/tc.sh
new file mode 100755
index 0000000000000..134bffcc96bb8
--- /dev/null
+++ b/test/nm/ts/nm_object2/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_obj"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_object2/test_obj-dynamic.txt b/test/nm/ts/nm_object2/test_obj-dynamic.txt
new file mode 100644
index 0000000000000..0db57c8e2c494
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-dynamic.txt
@@ -0,0 +1,17 @@
+ w _Jv_RegisterClasses
+ U _ZNKSs4sizeEv
+ U _ZNKSsixEm
+ U _ZNSolsEd
+ U _ZNSt8ios_base4InitC1Ev
+ U _ZNSt8ios_base4InitD1Ev
+0000000005248000 B _ZSt4cout
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c
+ U __cxa_atexit
+ U __gxx_personality_v0
+0000000005246976 D __progname
+0000000005248288 A _end
+ U _init_tls
+ U atexit
+0000000005248280 B environ
+ U exit
+ U sin
diff --git a/test/nm/ts/nm_object2/test_obj-external.txt b/test/nm/ts/nm_object2/test_obj-external.txt
new file mode 100644
index 0000000000000..ffb99d9db1251
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-external.txt
@@ -0,0 +1,27 @@
+0000000005247384 D _DYNAMIC
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000005248000 A __bss_start
+ U __cxa_atexit@@FBSD_1.0
+0000000005246984 D __dso_handle
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000005246976 D __progname
+0000000005248000 A _edata
+0000000005248288 A _end
+0000000004197448 T _fini
+0000000004196176 T _init
+ U _init_tls@@FBSD_1.0
+0000000004196416 T _start
+ U atexit@@FBSD_1.0
+0000000005248280 B environ
+ U exit@@FBSD_1.0
+0000000004197104 T main
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-format-bsd.txt b/test/nm/ts/nm_object2/test_obj-format-bsd.txt
new file mode 100644
index 0000000000000..53a8368194766
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-format-bsd.txt
@@ -0,0 +1,45 @@
+0000000005247384 D _DYNAMIC
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000004197040 t _GLOBAL__I_main
+ w _Jv_RegisterClasses
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000005248276 b _ZSt8__ioinit
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000005247848 d __CTOR_END__
+0000000005247832 d __CTOR_LIST__
+0000000005247864 d __DTOR_END__
+0000000005247856 d __DTOR_LIST__
+0000000005247328 r __FRAME_END__
+0000000005247872 d __JCR_END__
+0000000005247872 d __JCR_LIST__
+0000000005248000 A __bss_start
+ U __cxa_atexit@@FBSD_1.0
+0000000004197408 t __do_global_ctors_aux
+0000000004196576 t __do_global_dtors_aux
+0000000005246984 D __dso_handle
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000005246976 D __progname
+0000000004197072 t __tcf_0
+0000000005248000 A _edata
+0000000005248288 A _end
+0000000004197448 T _fini
+0000000004196176 T _init
+ U _init_tls@@FBSD_1.0
+0000000004196416 T _start
+0000000004194784 r abitag
+ U atexit@@FBSD_1.0
+0000000005248272 b completed.5055
+0000000005248280 B environ
+ U exit@@FBSD_1.0
+0000000004196640 t frame_dummy
+0000000004197104 T main
+0000000005246992 d p.5053
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-format-posix.txt b/test/nm/ts/nm_object2/test_obj-format-posix.txt
new file mode 100644
index 0000000000000..cdd1edd115b94
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-format-posix.txt
@@ -0,0 +1,45 @@
+_DYNAMIC D 0000000000501198
+_GLOBAL_OFFSET_TABLE_ D 0000000000501388
+_GLOBAL__I_main t 0000000000400ab0 0000000000000015
+_Jv_RegisterClasses w
+_Z41__static_initialization_and_destruction_0ii t 0000000000400a70 000000000000003d
+_ZNKSs4sizeEv@@GLIBCXX_3.4 U
+_ZNKSsixEm@@GLIBCXX_3.4 U
+_ZNSolsEd@@GLIBCXX_3.4 U
+_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4 U
+_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4 U
+_ZSt17__verify_groupingPKcmRKSs t 0000000000400950 000000000000011c
+_ZSt3minImERKT_S2_S2_ W 0000000000400be0 0000000000000037
+_ZSt4cout@@GLIBCXX_3.4 B 0000000000501400 0000000000000110
+_ZSt8__ioinit b 0000000000501514 0000000000000001
+_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4 U
+__CTOR_END__ d 0000000000501368
+__CTOR_LIST__ d 0000000000501358
+__DTOR_END__ d 0000000000501378
+__DTOR_LIST__ d 0000000000501370
+__FRAME_END__ r 0000000000501160
+__JCR_END__ d 0000000000501380
+__JCR_LIST__ d 0000000000501380
+__bss_start A 0000000000501400
+__cxa_atexit@@FBSD_1.0 U
+__do_global_ctors_aux t 0000000000400c20
+__do_global_dtors_aux t 00000000004008e0
+__dso_handle D 0000000000501008
+__gxx_personality_v0@@CXXABI_1.3 U
+__progname D 0000000000501000 0000000000000008
+__tcf_0 t 0000000000400ad0 0000000000000018
+_edata A 0000000000501400
+_end A 0000000000501520
+_fini T 0000000000400c48
+_init T 0000000000400750
+_init_tls@@FBSD_1.0 U
+_start T 0000000000400840 0000000000000092
+abitag r 00000000004001e0 0000000000000018
+atexit@@FBSD_1.0 U
+completed.5055 b 0000000000501510 0000000000000001
+environ B 0000000000501518 0000000000000008
+exit@@FBSD_1.0 U
+frame_dummy t 0000000000400920
+main T 0000000000400af0 00000000000000e7
+p.5053 d 0000000000501010
+sin@@FBSD_1.0 U
diff --git a/test/nm/ts/nm_object2/test_obj-format-sysv.txt b/test/nm/ts/nm_object2/test_obj-format-sysv.txt
new file mode 100644
index 0000000000000..6822f3136ae38
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-format-sysv.txt
@@ -0,0 +1,51 @@
+
+
+Symbols from test_obj:
+
+Name Value Class Type Size Line Section
+
+_DYNAMIC |0000000005247384| D | OBJECT| | |.dynamic
+_GLOBAL_OFFSET_TABLE_|0000000005247880| D | OBJECT| | |.got
+_GLOBAL__I_main |0000000004197040| t | FUNC|0000000000000021| |.text
+_Jv_RegisterClasses | | w | NOTYPE| | |*UND*
+_Z41__static_initialization_and_destruction_0ii|0000000004196976| t | FUNC|0000000000000061| |.text
+_ZNKSs4sizeEv@@GLIBCXX_3.4| | U | FUNC|0000000000000008| |*UND*
+_ZNKSsixEm@@GLIBCXX_3.4| | U | FUNC|0000000000000007| |*UND*
+_ZNSolsEd@@GLIBCXX_3.4| | U | FUNC|0000000000000005| |*UND*
+_ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4| | U | FUNC|0000000000002148| |*UND*
+_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4| | U | FUNC|0000000000000156| |*UND*
+_ZSt17__verify_groupingPKcmRKSs|0000000004196688| t | FUNC|0000000000000284| |.text
+_ZSt3minImERKT_S2_S2_|0000000004197344| W | FUNC|0000000000000055| |.text
+_ZSt4cout@@GLIBCXX_3.4|0000000005248000| B | OBJECT|0000000000000272| |.bss
+_ZSt8__ioinit |0000000005248276| b | OBJECT|0000000000000001| |.bss
+_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4| | U | FUNC|0000000000000029| |*UND*
+__CTOR_END__ |0000000005247848| d | OBJECT| | |.ctors
+__CTOR_LIST__ |0000000005247832| d | OBJECT| | |.ctors
+__DTOR_END__ |0000000005247864| d | OBJECT| | |.dtors
+__DTOR_LIST__ |0000000005247856| d | OBJECT| | |.dtors
+__FRAME_END__ |0000000005247328| r | OBJECT| | |.eh_frame
+__JCR_END__ |0000000005247872| d | OBJECT| | |.jcr
+__JCR_LIST__ |0000000005247872| d | OBJECT| | |.jcr
+__bss_start |0000000005248000| A | NOTYPE| | |*ABS*
+__cxa_atexit@@FBSD_1.0| | U | FUNC|0000000000000039| |*UND*
+__do_global_ctors_aux|0000000004197408| t | FUNC| | |.text
+__do_global_dtors_aux|0000000004196576| t | FUNC| | |.text
+__dso_handle |0000000005246984| D | OBJECT| | |.data
+__gxx_personality_v0@@CXXABI_1.3| | U | FUNC|0000000000001282| |*UND*
+__progname |0000000005246976| D | OBJECT|0000000000000008| |.data
+__tcf_0 |0000000004197072| t | FUNC|0000000000000024| |.text
+_edata |0000000005248000| A | NOTYPE| | |*ABS*
+_end |0000000005248288| A | NOTYPE| | |*ABS*
+_fini |0000000004197448| T | FUNC| | |.fini
+_init |0000000004196176| T | FUNC| | |.init
+_init_tls@@FBSD_1.0 | | U | FUNC|0000000000000002| |*UND*
+_start |0000000004196416| T | FUNC|0000000000000146| |.text
+abitag |0000000004194784| r | OBJECT|0000000000000024| |.note.ABI-tag
+atexit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND*
+completed.5055 |0000000005248272| b | OBJECT|0000000000000001| |.bss
+environ |0000000005248280| B | OBJECT|0000000000000008| |.bss
+exit@@FBSD_1.0 | | U | FUNC|0000000000000047| |*UND*
+frame_dummy |0000000004196640| t | FUNC| | |.text
+main |0000000004197104| T | FUNC|0000000000000231| |.text
+p.5053 |0000000005246992| d | OBJECT| | |.data
+sin@@FBSD_1.0 | | U | FUNC|0000000000001277| |*UND*
diff --git a/test/nm/ts/nm_object2/test_obj-print-file-name.txt b/test/nm/ts/nm_object2/test_obj-print-file-name.txt
new file mode 100644
index 0000000000000..eb151ca23e31a
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-print-file-name.txt
@@ -0,0 +1,45 @@
+test_obj:0000000005247384 D _DYNAMIC
+test_obj:0000000005247880 D _GLOBAL_OFFSET_TABLE_
+test_obj:0000000004197040 t _GLOBAL__I_main
+test_obj: w _Jv_RegisterClasses
+test_obj:0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+test_obj: U _ZNKSs4sizeEv@@GLIBCXX_3.4
+test_obj: U _ZNKSsixEm@@GLIBCXX_3.4
+test_obj: U _ZNSolsEd@@GLIBCXX_3.4
+test_obj: U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+test_obj: U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+test_obj:0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+test_obj:0000000004197344 W _ZSt3minImERKT_S2_S2_
+test_obj:0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+test_obj:0000000005248276 b _ZSt8__ioinit
+test_obj: U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+test_obj:0000000005247848 d __CTOR_END__
+test_obj:0000000005247832 d __CTOR_LIST__
+test_obj:0000000005247864 d __DTOR_END__
+test_obj:0000000005247856 d __DTOR_LIST__
+test_obj:0000000005247328 r __FRAME_END__
+test_obj:0000000005247872 d __JCR_END__
+test_obj:0000000005247872 d __JCR_LIST__
+test_obj:0000000005248000 A __bss_start
+test_obj: U __cxa_atexit@@FBSD_1.0
+test_obj:0000000004197408 t __do_global_ctors_aux
+test_obj:0000000004196576 t __do_global_dtors_aux
+test_obj:0000000005246984 D __dso_handle
+test_obj: U __gxx_personality_v0@@CXXABI_1.3
+test_obj:0000000005246976 D __progname
+test_obj:0000000004197072 t __tcf_0
+test_obj:0000000005248000 A _edata
+test_obj:0000000005248288 A _end
+test_obj:0000000004197448 T _fini
+test_obj:0000000004196176 T _init
+test_obj: U _init_tls@@FBSD_1.0
+test_obj:0000000004196416 T _start
+test_obj:0000000004194784 r abitag
+test_obj: U atexit@@FBSD_1.0
+test_obj:0000000005248272 b completed.5055
+test_obj:0000000005248280 B environ
+test_obj: U exit@@FBSD_1.0
+test_obj:0000000004196640 t frame_dummy
+test_obj:0000000004197104 T main
+test_obj:0000000005246992 d p.5053
+test_obj: U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-print-size.txt b/test/nm/ts/nm_object2/test_obj-print-size.txt
new file mode 100644
index 0000000000000..da8265e288afa
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-print-size.txt
@@ -0,0 +1,45 @@
+0000000005247384 D _DYNAMIC
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000004197040 0000000000000021 t _GLOBAL__I_main
+ w _Jv_RegisterClasses
+0000000004196976 0000000000000061 t _Z41__static_initialization_and_destruction_0ii
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+0000000004196688 0000000000000284 t _ZSt17__verify_groupingPKcmRKSs
+0000000004197344 0000000000000055 W _ZSt3minImERKT_S2_S2_
+0000000005248000 0000000000000272 B _ZSt4cout@@GLIBCXX_3.4
+0000000005248276 0000000000000001 b _ZSt8__ioinit
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000005247848 d __CTOR_END__
+0000000005247832 d __CTOR_LIST__
+0000000005247864 d __DTOR_END__
+0000000005247856 d __DTOR_LIST__
+0000000005247328 r __FRAME_END__
+0000000005247872 d __JCR_END__
+0000000005247872 d __JCR_LIST__
+0000000005248000 A __bss_start
+ U __cxa_atexit@@FBSD_1.0
+0000000004197408 t __do_global_ctors_aux
+0000000004196576 t __do_global_dtors_aux
+0000000005246984 D __dso_handle
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000005246976 0000000000000008 D __progname
+0000000004197072 0000000000000024 t __tcf_0
+0000000005248000 A _edata
+0000000005248288 A _end
+0000000004197448 T _fini
+0000000004196176 T _init
+ U _init_tls@@FBSD_1.0
+0000000004196416 0000000000000146 T _start
+0000000004194784 0000000000000024 r abitag
+ U atexit@@FBSD_1.0
+0000000005248272 0000000000000001 b completed.5055
+0000000005248280 0000000000000008 B environ
+ U exit@@FBSD_1.0
+0000000004196640 t frame_dummy
+0000000004197104 0000000000000231 T main
+0000000005246992 d p.5053
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-radix-hexa.txt b/test/nm/ts/nm_object2/test_obj-radix-hexa.txt
new file mode 100644
index 0000000000000..3ca26a824bb72
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-radix-hexa.txt
@@ -0,0 +1,45 @@
+0000000000501198 D _DYNAMIC
+0000000000501388 D _GLOBAL_OFFSET_TABLE_
+0000000000400ab0 t _GLOBAL__I_main
+ w _Jv_RegisterClasses
+0000000000400a70 t _Z41__static_initialization_and_destruction_0ii
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+0000000000400950 t _ZSt17__verify_groupingPKcmRKSs
+0000000000400be0 W _ZSt3minImERKT_S2_S2_
+0000000000501400 B _ZSt4cout@@GLIBCXX_3.4
+0000000000501514 b _ZSt8__ioinit
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000000501368 d __CTOR_END__
+0000000000501358 d __CTOR_LIST__
+0000000000501378 d __DTOR_END__
+0000000000501370 d __DTOR_LIST__
+0000000000501160 r __FRAME_END__
+0000000000501380 d __JCR_END__
+0000000000501380 d __JCR_LIST__
+0000000000501400 A __bss_start
+ U __cxa_atexit@@FBSD_1.0
+0000000000400c20 t __do_global_ctors_aux
+00000000004008e0 t __do_global_dtors_aux
+0000000000501008 D __dso_handle
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000000501000 D __progname
+0000000000400ad0 t __tcf_0
+0000000000501400 A _edata
+0000000000501520 A _end
+0000000000400c48 T _fini
+0000000000400750 T _init
+ U _init_tls@@FBSD_1.0
+0000000000400840 T _start
+00000000004001e0 r abitag
+ U atexit@@FBSD_1.0
+0000000000501510 b completed.5055
+0000000000501518 B environ
+ U exit@@FBSD_1.0
+0000000000400920 t frame_dummy
+0000000000400af0 T main
+0000000000501010 d p.5053
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-radix-octal.txt b/test/nm/ts/nm_object2/test_obj-radix-octal.txt
new file mode 100644
index 0000000000000..d6550aba939ec
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-radix-octal.txt
@@ -0,0 +1,45 @@
+0000000024010630 D _DYNAMIC
+0000000024011610 D _GLOBAL_OFFSET_TABLE_
+0000000020005260 t _GLOBAL__I_main
+ w _Jv_RegisterClasses
+0000000020005160 t _Z41__static_initialization_and_destruction_0ii
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+0000000020004520 t _ZSt17__verify_groupingPKcmRKSs
+0000000020005740 W _ZSt3minImERKT_S2_S2_
+0000000024012000 B _ZSt4cout@@GLIBCXX_3.4
+0000000024012424 b _ZSt8__ioinit
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000024011550 d __CTOR_END__
+0000000024011530 d __CTOR_LIST__
+0000000024011570 d __DTOR_END__
+0000000024011560 d __DTOR_LIST__
+0000000024010540 r __FRAME_END__
+0000000024011600 d __JCR_END__
+0000000024011600 d __JCR_LIST__
+0000000024012000 A __bss_start
+ U __cxa_atexit@@FBSD_1.0
+0000000020006040 t __do_global_ctors_aux
+0000000020004340 t __do_global_dtors_aux
+0000000024010010 D __dso_handle
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000024010000 D __progname
+0000000020005320 t __tcf_0
+0000000024012000 A _edata
+0000000024012440 A _end
+0000000020006110 T _fini
+0000000020003520 T _init
+ U _init_tls@@FBSD_1.0
+0000000020004100 T _start
+0000000020000740 r abitag
+ U atexit@@FBSD_1.0
+0000000024012420 b completed.5055
+0000000024012430 B environ
+ U exit@@FBSD_1.0
+0000000020004440 t frame_dummy
+0000000020005360 T main
+0000000024010020 d p.5053
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj-sort-no.txt b/test/nm/ts/nm_object2/test_obj-sort-no.txt
new file mode 100644
index 0000000000000..3ba6bbe6db7c1
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-no.txt
@@ -0,0 +1,45 @@
+0000000004194784 r abitag
+0000000005247832 d __CTOR_LIST__
+0000000005247856 d __DTOR_LIST__
+0000000005247872 d __JCR_LIST__
+0000000004196576 t __do_global_dtors_aux
+0000000005248272 b completed.5055
+0000000005246992 d p.5053
+0000000004196640 t frame_dummy
+0000000005247848 d __CTOR_END__
+0000000005247864 d __DTOR_END__
+0000000005247328 r __FRAME_END__
+0000000005247872 d __JCR_END__
+0000000004197408 t __do_global_ctors_aux
+0000000004197040 t _GLOBAL__I_main
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+0000000005248276 b _ZSt8__ioinit
+0000000004197072 t __tcf_0
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000005247384 D _DYNAMIC
+ U __cxa_atexit@@FBSD_1.0
+0000000005246984 D __dso_handle
+ U _init_tls@@FBSD_1.0
+0000000004196176 T _init
+0000000005248280 B environ
+ U _ZNSolsEd@@GLIBCXX_3.4
+0000000005246976 D __progname
+0000000004196416 T _start
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000005248000 A __bss_start
+0000000004197104 T main
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U sin@@FBSD_1.0
+0000000004197448 T _fini
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+ U exit@@FBSD_1.0
+0000000005248000 A _edata
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000005248288 A _end
+ U atexit@@FBSD_1.0
+ w _Jv_RegisterClasses
+ U __gxx_personality_v0@@CXXABI_1.3
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
diff --git a/test/nm/ts/nm_object2/test_obj-sort-num.txt b/test/nm/ts/nm_object2/test_obj-sort-num.txt
new file mode 100644
index 0000000000000..f5ac014fbae8c
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-num.txt
@@ -0,0 +1,45 @@
+ w _Jv_RegisterClasses
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+ U __cxa_atexit@@FBSD_1.0
+ U __gxx_personality_v0@@CXXABI_1.3
+ U _init_tls@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U sin@@FBSD_1.0
+0000000004194784 r abitag
+0000000004196176 T _init
+0000000004196416 T _start
+0000000004196576 t __do_global_dtors_aux
+0000000004196640 t frame_dummy
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+0000000004197040 t _GLOBAL__I_main
+0000000004197072 t __tcf_0
+0000000004197104 T main
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000004197408 t __do_global_ctors_aux
+0000000004197448 T _fini
+0000000005246976 D __progname
+0000000005246984 D __dso_handle
+0000000005246992 d p.5053
+0000000005247328 r __FRAME_END__
+0000000005247384 D _DYNAMIC
+0000000005247832 d __CTOR_LIST__
+0000000005247848 d __CTOR_END__
+0000000005247856 d __DTOR_LIST__
+0000000005247864 d __DTOR_END__
+0000000005247872 d __JCR_END__
+0000000005247872 d __JCR_LIST__
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000005248000 A __bss_start
+0000000005248000 A _edata
+0000000005248272 b completed.5055
+0000000005248276 b _ZSt8__ioinit
+0000000005248280 B environ
+0000000005248288 A _end
diff --git a/test/nm/ts/nm_object2/test_obj-sort-reverse-no.txt b/test/nm/ts/nm_object2/test_obj-sort-reverse-no.txt
new file mode 100644
index 0000000000000..3ba6bbe6db7c1
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-reverse-no.txt
@@ -0,0 +1,45 @@
+0000000004194784 r abitag
+0000000005247832 d __CTOR_LIST__
+0000000005247856 d __DTOR_LIST__
+0000000005247872 d __JCR_LIST__
+0000000004196576 t __do_global_dtors_aux
+0000000005248272 b completed.5055
+0000000005246992 d p.5053
+0000000004196640 t frame_dummy
+0000000005247848 d __CTOR_END__
+0000000005247864 d __DTOR_END__
+0000000005247328 r __FRAME_END__
+0000000005247872 d __JCR_END__
+0000000004197408 t __do_global_ctors_aux
+0000000004197040 t _GLOBAL__I_main
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+0000000005248276 b _ZSt8__ioinit
+0000000004197072 t __tcf_0
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000005247384 D _DYNAMIC
+ U __cxa_atexit@@FBSD_1.0
+0000000005246984 D __dso_handle
+ U _init_tls@@FBSD_1.0
+0000000004196176 T _init
+0000000005248280 B environ
+ U _ZNSolsEd@@GLIBCXX_3.4
+0000000005246976 D __progname
+0000000004196416 T _start
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000005248000 A __bss_start
+0000000004197104 T main
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U sin@@FBSD_1.0
+0000000004197448 T _fini
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+ U exit@@FBSD_1.0
+0000000005248000 A _edata
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000005248288 A _end
+ U atexit@@FBSD_1.0
+ w _Jv_RegisterClasses
+ U __gxx_personality_v0@@CXXABI_1.3
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
diff --git a/test/nm/ts/nm_object2/test_obj-sort-reverse-num.txt b/test/nm/ts/nm_object2/test_obj-sort-reverse-num.txt
new file mode 100644
index 0000000000000..4e4d9c0f3e7a9
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-reverse-num.txt
@@ -0,0 +1,45 @@
+0000000005248288 A _end
+0000000005248280 B environ
+0000000005248276 b _ZSt8__ioinit
+0000000005248272 b completed.5055
+0000000005248000 A _edata
+0000000005248000 A __bss_start
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000005247872 d __JCR_LIST__
+0000000005247872 d __JCR_END__
+0000000005247864 d __DTOR_END__
+0000000005247856 d __DTOR_LIST__
+0000000005247848 d __CTOR_END__
+0000000005247832 d __CTOR_LIST__
+0000000005247384 D _DYNAMIC
+0000000005247328 r __FRAME_END__
+0000000005246992 d p.5053
+0000000005246984 D __dso_handle
+0000000005246976 D __progname
+0000000004197448 T _fini
+0000000004197408 t __do_global_ctors_aux
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000004197104 T main
+0000000004197072 t __tcf_0
+0000000004197040 t _GLOBAL__I_main
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+0000000004196640 t frame_dummy
+0000000004196576 t __do_global_dtors_aux
+0000000004196416 T _start
+0000000004196176 T _init
+0000000004194784 r abitag
+ U sin@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U _init_tls@@FBSD_1.0
+ U __gxx_personality_v0@@CXXABI_1.3
+ U __cxa_atexit@@FBSD_1.0
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ w _Jv_RegisterClasses
diff --git a/test/nm/ts/nm_object2/test_obj-sort-reverse-size.txt b/test/nm/ts/nm_object2/test_obj-sort-reverse-size.txt
new file mode 100644
index 0000000000000..1ef36bf79e26c
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-reverse-size.txt
@@ -0,0 +1,13 @@
+0000000000000284 t _ZSt17__verify_groupingPKcmRKSs
+0000000000000272 B _ZSt4cout@@GLIBCXX_3.4
+0000000000000231 T main
+0000000000000146 T _start
+0000000000000061 t _Z41__static_initialization_and_destruction_0ii
+0000000000000055 W _ZSt3minImERKT_S2_S2_
+0000000000000024 r abitag
+0000000000000024 t __tcf_0
+0000000000000021 t _GLOBAL__I_main
+0000000000000008 B environ
+0000000000000008 D __progname
+0000000000000001 b completed.5055
+0000000000000001 b _ZSt8__ioinit
diff --git a/test/nm/ts/nm_object2/test_obj-sort-reverse.txt b/test/nm/ts/nm_object2/test_obj-sort-reverse.txt
new file mode 100644
index 0000000000000..2f23a726a63f4
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-reverse.txt
@@ -0,0 +1,45 @@
+ U sin@@FBSD_1.0
+0000000005246992 d p.5053
+0000000004197104 T main
+0000000004196640 t frame_dummy
+ U exit@@FBSD_1.0
+0000000005248280 B environ
+0000000005248272 b completed.5055
+ U atexit@@FBSD_1.0
+0000000004194784 r abitag
+0000000004196416 T _start
+ U _init_tls@@FBSD_1.0
+0000000004196176 T _init
+0000000004197448 T _fini
+0000000005248288 A _end
+0000000005248000 A _edata
+0000000004197072 t __tcf_0
+0000000005246976 D __progname
+ U __gxx_personality_v0@@CXXABI_1.3
+0000000005246984 D __dso_handle
+0000000004196576 t __do_global_dtors_aux
+0000000004197408 t __do_global_ctors_aux
+ U __cxa_atexit@@FBSD_1.0
+0000000005248000 A __bss_start
+0000000005247872 d __JCR_LIST__
+0000000005247872 d __JCR_END__
+0000000005247328 r __FRAME_END__
+0000000005247856 d __DTOR_LIST__
+0000000005247864 d __DTOR_END__
+0000000005247832 d __CTOR_LIST__
+0000000005247848 d __CTOR_END__
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+0000000005248276 b _ZSt8__ioinit
+0000000005248000 B _ZSt4cout@@GLIBCXX_3.4
+0000000004197344 W _ZSt3minImERKT_S2_S2_
+0000000004196688 t _ZSt17__verify_groupingPKcmRKSs
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+0000000004196976 t _Z41__static_initialization_and_destruction_0ii
+ w _Jv_RegisterClasses
+0000000004197040 t _GLOBAL__I_main
+0000000005247880 D _GLOBAL_OFFSET_TABLE_
+0000000005247384 D _DYNAMIC
diff --git a/test/nm/ts/nm_object2/test_obj-sort-size.txt b/test/nm/ts/nm_object2/test_obj-sort-size.txt
new file mode 100644
index 0000000000000..3aa74ef3bbc66
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-sort-size.txt
@@ -0,0 +1,13 @@
+0000000000000001 b _ZSt8__ioinit
+0000000000000001 b completed.5055
+0000000000000008 D __progname
+0000000000000008 B environ
+0000000000000021 t _GLOBAL__I_main
+0000000000000024 t __tcf_0
+0000000000000024 r abitag
+0000000000000055 W _ZSt3minImERKT_S2_S2_
+0000000000000061 t _Z41__static_initialization_and_destruction_0ii
+0000000000000146 T _start
+0000000000000231 T main
+0000000000000272 B _ZSt4cout@@GLIBCXX_3.4
+0000000000000284 t _ZSt17__verify_groupingPKcmRKSs
diff --git a/test/nm/ts/nm_object2/test_obj-undef.txt b/test/nm/ts/nm_object2/test_obj-undef.txt
new file mode 100644
index 0000000000000..736a2e75afda3
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj-undef.txt
@@ -0,0 +1,13 @@
+ w _Jv_RegisterClasses
+ U _ZNKSs4sizeEv@@GLIBCXX_3.4
+ U _ZNKSsixEm@@GLIBCXX_3.4
+ U _ZNSolsEd@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitC1Ev@@GLIBCXX_3.4
+ U _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4
+ U _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c@@GLIBCXX_3.4
+ U __cxa_atexit@@FBSD_1.0
+ U __gxx_personality_v0@@CXXABI_1.3
+ U _init_tls@@FBSD_1.0
+ U atexit@@FBSD_1.0
+ U exit@@FBSD_1.0
+ U sin@@FBSD_1.0
diff --git a/test/nm/ts/nm_object2/test_obj.uu b/test/nm/ts/nm_object2/test_obj.uu
new file mode 100644
index 0000000000000..987289cb5cd60
--- /dev/null
+++ b/test/nm/ts/nm_object2/test_obj.uu
@@ -0,0 +1,235 @@
+begin 644 test_obj
+M?T5,1@(!`0D```````````(`/@`!````0`A```````!``````````!`6````
+M`````````$``.``'`$``'``9``8````%````0`````````!``$```````$``
+M0```````B`$```````"(`0````````@``````````P````0```#(`0``````
+M`,@!0```````R`%````````5`````````!4``````````0`````````!````
+M!0````````````````!``````````$```````"0-````````)`T`````````
+M`!````````$````&`````!``````````$%`````````04`````````0`````
+M```@!0``````````$````````@````8```"8$0```````)@14```````F!%0
+M``````#``0```````,`!````````"``````````$````!````.`!````````
+MX`%```````#@`4```````!@`````````&``````````$`````````%#E=&0$
+M````'`T````````<#4```````!P-0```````"``````````(``````````0`
+M````````+VQI8F5X96,O;&0M96QF+G-O+C$`````"`````0````!````1G)E
+M94)31``8-0P`$0```!(````"````"0`````````.````#P`````````%````
+M```````````(````$0````0````!````$`````H````-````````````````
+M``````````````````````````,```````````````<````&``````````L`
+M```````````````````,````````````````````````````````````````
+M``````!T````$@```'0'0```````9`@```````"D````$0`7```44```````
+M$`$````````%`0``$@```(0'0```````)P`````````2`0``$@```)0'0```
+M`````@````````#R````$0`7`!@54```````"`````````"N````$@```*0'
+M0```````!0````````#Z````$0`0```04```````"`````````!1````$@``
+M`+0'0```````"`````````#6````$@```,0'0```````_00````````;````
+M$@```-0'0```````'0`````````-`0``$@```.0'0```````+P`````````<
+M`0``$`#Q_R`54``````````````````+`0``$@```/0'0```````+P``````
+M``"X````(`````````````````````````!?````$@````0(0````````@4`
+M``````",````$@```!0(0```````G``````````0````$@```"0(0```````
+M!P``````````;&EB<W1D8RLK+G-O+C8`7UI.2U-S:7A%;0!?6E-T;'-)4W0Q
+M,6-H87)?=')A:71S26-%15)3=#$S8F%S:6-?;W-T<F5A;4EC5%]%4S5?8P!?
+M6DY+4W,T<VEZ945V`%]?9WAX7W!E<G-O;F%L:71Y7W8P`%]:3E-T.&EO<U]B
+M87-E-$EN:71#,45V`%]:3E-T.&EO<U]B87-E-$EN:71$,45V`%]:4W0T8V]U
+M=`!?6DY3;VQS160`7TIV7U)E9VES=&5R0VQA<W-E<P!L:6)M+G-O+C4`<VEN
+M`&QI8F=C8U]S+G-O+C$`;&EB8RYS;RXW`&5N=FER;VX`7U]P<F]G;F%M90!?
+M7V-X85]A=&5X:70`7VEN:71?=&QS`%]E;F0`1D)31%\Q+C``0UA804))7S$N
+M,P!'3$E"0UA87S,N-``````"``(``P`#``$``@`!``(`!``"``,``0`#````
+M!0`"``(````!``$`S````!`````@````L"AZ!P``!``A`0````````$``0#H
+M````$````"````"P*'H'```#`"$!`````````0`"``$````0`````````-.O
+M:P4```4`*@$``!````!T*9((```"`#4!`````````!10```````%`````@``
+M````````````H!-0```````'`````0``````````````J!-0```````'````
+M`P``````````````L!-0```````'````!```````````````N!-0```````'
+M````!@``````````````P!-0```````'````"```````````````R!-0````
+M```'````"0``````````````T!-0```````'````"@``````````````V!-0
+M```````'````"P``````````````X!-0```````'````#0``````````````
+MZ!-0```````'````#P``````````````\!-0```````'````$```````````
+M````^!-0```````'````$0``````````````2(/L".C'`0``Z,($``!(@\0(
+MPP#_-28,$`#_)2@,$`"0D)"0_R4F#!``:`````#IX/____\E'@P0`&@!````
+MZ=#_____)18,$`!H`@```.G`_____R4.#!``:`,```#IL/____\E!@P0`&@$
+M````Z:#_____)?X+$`!H!0```.F0_____R7V"Q``:`8```#I@/____\E[@L0
+M`&@'````Z7#_____)>8+$`!H"````.E@_____R7>"Q``:`D```#I4/____\E
+MU@L0`&@*````Z4#_____)<X+$`!H"P```.DP____````````````````051,
+MC6<(55.+'TACPX7;2(ULQQ!(B2V]#!``?CA(BU<(2(72="](B163!Q``#[8"
+MA,!T(4C_PCPO2(L%@`<0`$@/1,)(B05U!Q``#[8"2/_"A,!UXKB8$5``2(7`
+M="M(B??H3?___[](#$``Z$/____HFO[__XG?2(GJ3(GFZ"T"``")Q^@:____
+MZ,7^__^0Z]60D)"0D)"0D)"0D)"0D$B#[`B`/24,$```=!#K))!(@\`(2(D%
+M%0<0`/_22(L%#`<0`$B+$$B%TG7DQ@7]"Q```4B#Q`C#9F9FD&9F9I!(@SU8
+M"A```'06N`````!(A<!T#+^`$U``28G#0?_CD//#D)"0D)"0D)"0D)"0D)!5
+M2(GE4TB#[$A(B7W`2(EUN$B)5;!(BWVPZ$;^__](@^@!2(E%R$B+1;A(@^@!
+M2(E%T$B-==!(C7W(Z%$"``!(BP!(B4782(M%R$B)1>#&1>\!2,=%\`````#K
+M+4B+=>!(BWVPZ&O^__\/MA!(BT7P2`-%P`^V`#C"#Y3`B$7O2(-MX`%(@T7P
+M`4B+1?!(.T78<S"`?>\`=</K*$B+=>!(BWVPZ"S^__\/MA!(BT782`-%P`^V
+M`#C"#Y3`B$7O2(-MX`%(@WW@`'0&@'WO`'7+2(M%V$@#1<`/M@"$P'XR#[9=
+M[TB+?;"^`````.CC_?__#[802(M%V$@#1<`/M@`XP@^>P`^VP"'8A<`/E<"(
+M1>\/MD7O2(/$2%O)PV9F9I!52(GE2(/L$(E]_(EU^(-]_`%U)X%]^/__``!U
+M'K\4%5``Z-W\__^Z"!!0`+X`````O]`*0`#HV?S__\G#D&:054B)Y;[__P``
+MOP$```#HK?___\G#D&9F9I!F9I!F9I!52(GE2(/L$$B)??B_%!50`.@N_?__
+MR<-F9F:09F9FD%5(B>5(@^P@QT7T"@```$BX\6CCB+7XY#Y(B47XZ:<```#R
+M#Q!-^/(/$`61`0``\@]9P>B<_/__9@\HR/(/$`6$`0``9@\HT?(/6=#R#Q%5
+MX/(/$$WX\@\0!7(!``!F#RC1\@]>T&8/*,+H9?S___(/$$W@\@]>R/(/$4WH
+M\@\01?B_`!10`.@H_/__2(G'OB````#H2_S__TB)Q_(/$$7HZ`[\__](B<>^
+M"@```.@Q_/__\@\03?CR#Q`%^````/(/6,'R#Q%%^/(/$$WX\@\0!0(!``!F
+M#R[!#X="____N`````#)PY"0D)"0D)"0D%5(B>5(B7WX2(EU\$B+1?!(BQ!(
+MBT7X2(L`2#G"<PI(BT7P2(E%Z.L(2(M%^$B)1>A(BT7HR<.0D)"0D)"0D)!(
+MBP4Y!Q``4TB#^/]T%3';_]!(BX-8$U``2(/K"$B#^/]U[5O#D)"02(/L".B/
+M_/__2(/$",,````D1G)E94)31#H@<W)C+VQI8B]C<W4O86UD-C0O8W)T:2Y3
+M+'8@,2XW(#(P,#0O,#,O,C$@,#$Z,SDZ,#$@<&5T97(@17AP("0`````````
+M\6CCB+7XY#X````````60$8777311;<_`````````$`8+414^R$)0"1&<F5E
+M0E-$.B!S<F,O;&EB+V-S=2]A;60V-"]C<G1N+E,L=B`Q+C8@,C`P-"\P,R\R
+M,2`P,3HS.3HP,2!P971E<B!%>'`@)``````!&___^`(0````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M`%@,0`````````````````!X$U```````!0``````````7I2``%X$`$##`<(
+MD`$``!P````<````0`A``)(`````0@X0C`)%#AA!#B"#!(8#%````#P```#@
+M"$``.`````!$#A``````%````%0````@"4``(@``````````````'```````
+M```!>E!2``%X$`8#!`A```,,!PB0`0`````<````)````.`+0``W`````$$.
+M$(8"0PT&`````````!P```!$````4`E``!P!````00X0A@)##09%@P,`````
+M'````&0```!P"D``/0````!!#A"&`D,-!@`````````<````A````+`*0``5
+M`````$$.$(8"0PT&`````````!P```"D````T`I``!@`````00X0A@)##08`
+M````````'````,0```#P"D``YP````!!#A"&`D,-!@``````````````&```
+M```````!>E(``7@0`0,,!PB0`0```````!0````@````(`Q``"4`````2`X0
+M@P(```$``````````0`````````!`````````,P``````````0````````#:
+M``````````$`````````Z``````````,`````````%`'0```````#0``````
+M``!(#$````````0`````````^`%````````%`````````$`$0```````!@``
+M``````"0`D````````H`````````00$````````+`````````!@`````````
+M%0````````````````````,`````````B!-0```````"`````````"`!````
+M````%``````````'`````````!<`````````,`9````````'`````````!@&
+M0```````"``````````8``````````D`````````&`````````#^__]O````
+M`*@%0```````____;P`````#`````````/#__V\`````@@5`````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``#__________[`*0`````````````````#__________P``````````````
+M``````"8$5````````````````````````````!Z!T```````(H'0```````
+MF@=```````"J!T```````+H'0```````R@=```````#:!T```````.H'0```
+M````^@=````````*"$```````!H(0```````*@A`````````)$9R965"4T0Z
+M('-R8R]L:6(O8W-U+V-O;6UO;B]C<G1B<F%N9"YC+'8@,2XV(#(P,#<O,3(O
+M,#0@,3(Z,3@Z-#,@:VEB($5X<"`D`"1&<F5E0E-$.B!S<F,O;&EB+V-S=2]A
+M;60V-"]C<G0Q+F,L=B`Q+C$U(#(P,#4O,3`O,#<@,C(Z,3,Z,3<@8F1E($5X
+M<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&<F5E0E-$70``1T-#
+M.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R965"4T1=``!'0T,Z("A'3E4I
+M(#0N,BXQ(#(P,#<P-S$Y("!;1G)E94)31%T``$=#0SH@*$=.52D@-"XR+C$@
+M,C`P-S`W,3D@(%M&<F5E0E-$70``+G-Y;71A8@`N<W1R=&%B`"YS:'-T<G1A
+M8@`N:6YT97)P`"YN;W1E+D%"22UT86<`+FAA<V@`+F1Y;G-Y;0`N9'EN<W1R
+M`"YG;G4N=F5R<VEO;@`N9VYU+G9E<G-I;VY?<@`N<F5L82YD>6X`+G)E;&$N
+M<&QT`"YI;FET`"YT97AT`"YF:6YI`"YR;V1A=&$`+F5H7V9R86UE7VAD<@`N
+M9&%T80`N96A?9G)A;64`+F1Y;F%M:6,`+F-T;W)S`"YD=&]R<P`N:F-R`"YG
+M;W0`+F)S<P`N8V]M;65N=```````````````````````````````````````
+M````````````````````````````````````````````````````````&P``
+M``$````"`````````,@!0```````R`$````````5````````````````````
+M`0```````````````````",````'`````@````````#@`4```````.`!````
+M````&`````````````````````0````````````````````Q````!0````(`
+M````````^`%```````#X`0```````)0`````````!``````````(````````
+M``0`````````-P````L````"`````````)`"0```````D`(```````"P`0``
+M``````4````!````"``````````8`````````#\````#`````@````````!`
+M!$```````$`$````````00$```````````````````$`````````````````
+M``!'````____;P(`````````@@5```````""!0```````"0`````````!```
+M```````"``````````(`````````5````/[__V\"`````````*@%0```````
+MJ`4```````!P``````````4````#````"````````````````````&,````$
+M`````@`````````8!D```````!@&````````&``````````$``````````@`
+M````````&`````````!M````!`````(`````````,`9````````P!@``````
+M`"`!````````!`````L````(`````````!@`````````=P````$````&````
+M`````%`'0```````4`<````````3````````````````````!```````````
+M`````````'(````!````!@````````!D!T```````&0'````````T```````
+M``````````````0`````````$`````````!]`````0````8`````````0`A`
+M``````!`"`````````@$```````````````````0````````````````````
+M@P````$````&`````````$@,0```````2`P````````.````````````````
+M````!````````````````````(D````!`````@````````!8#$```````%@,
+M````````P0````````````````````@```````````````````"1`````0``
+M``(`````````'`U````````<#0````````@````````````````````$````
+M````````````````GP````$````#```````````04````````!`````````8
+M````````````````````"````````````````````*4````!`````@``````
+M```8$%```````!@0````````@`$```````````````````@`````````````
+M``````"O````!@````,`````````F!%0``````"8$0```````,`!````````
+M!0`````````(`````````!``````````N`````$````#`````````%@34```
+M````6!,````````8````````````````````"````````````````````+\`
+M```!`````P````````!P$U```````'`3````````$```````````````````
+M``@```````````````````#&`````0````,`````````@!-0``````"`$P``
+M``````@````````````````````(````````````````````RP````$````#
+M`````````(@34```````B!,```````!X````````````````````"```````
+M```(`````````-`````(`````P``````````%%`````````4````````(`$`
+M`````````````````!````````````````````#5`````0``````````````
+M````````````%````````"P!```````````````````!````````````````
+M````$0````,`````````````````````````+!4```````#>````````````
+M`````````0````````````````````$````"````````````````````````
+M`!`=````````^`<````````;````.@````@`````````&``````````)````
+M`P`````````````````````````()0```````)D#```````````````````!
+M``````````````````````````````````````````````````````````,`
+M`0#(`4````````````````````````,``@#@`4``````````````````````
+M``,``P#X`4````````````````````````,`!`"0`D``````````````````
+M``````,`!0!`!$````````````````````````,`!@""!4``````````````
+M``````````,`!P"H!4````````````````````````,`"``8!D``````````
+M``````````````,`"0`P!D````````````````````````,`"@!0!T``````
+M``````````````````,`"P!D!T````````````````````````,`#`!`"$``
+M``````````````````````,`#0!(#$````````````````````````,`#@!8
+M#$````````````````````````,`#P`<#4````````````````````````,`
+M$```$%````````````````````````,`$0`8$%``````````````````````
+M``,`$@"8$5````````````````````````,`$P!8$U``````````````````
+M``````,`%`!P$U````````````````````````,`%0"`$U``````````````
+M``````````,`%@"($U````````````````````````,`%P``%%``````````
+M``````````````,`&`````````````````````````````,`&0``````````
+M``````````````````,`&@````````````````````````````,`&P``````
+M`````````````````0````0`\?\`````````````````````"`````$``@#@
+M`4```````!@`````````#P````0`\?\`````````````````````+0````0`
+M\?\`````````````````````/`````0`\?\`````````````````````#P``
+M``0`\?\`````````````````````1P````0`\?\`````````````````````
+M4@````$`$P!8$U``````````````````8`````$`%`!P$U``````````````
+M````;@````$`%0"`$U``````````````````>P````(`#`#@"$``````````
+M````````D0````$`%P`0%5````````$`````````H`````$`$``0$%``````
+M````````````IP````(`#``@"4``````````````````1P````0`\?\`````
+M````````````````LP````$`$P!H$U``````````````````P`````$`%`!X
+M$U``````````````````S0````$`$0!@$5``````````````````VP````$`
+M%0"`$U``````````````````YP````(`#``@#$``````````````````_0``
+M``0`\?\`````````````````````+0````0`\?\`````````````````````
+M/`````0`\?\`````````````````````_0````0`\?\`````````````````
+M````&P$```0`\?\`````````````````````(@$```(`#`"P"D```````!4`
+M````````,@$```(`#`!0"4```````!P!````````4@$```(`#`!P"D``````
+M`#T`````````@@$```$`%P`4%5````````$`````````D`$```(`#`#0"D``
+M`````!@`````````F`$``!(```!T!T```````&0(````````O0$``!$`%P``
+M%%```````!`!````````U`$``!$`$@"8$5``````````````````W0$``!(`
+M``"$!T```````"<`````````]`$``!$"$``($%```````````````````0(`
+M`!(```"4!T````````(`````````%0(``!(`"@!0!T``````````````````
+M&P(``!$`%P`8%5````````@`````````(P(``!(```"D!T````````4`````
+M````.@(``!$`$```$%````````@`````````10(``!(`#`!`"$```````)(`
+M````````3`(``"(`#`#@"T```````#<`````````8@(``!``\?\`%%``````
+M````````````;@(``!(`#`#P"D```````.<`````````<P(``!(```"T!T``
+M``````@`````````C@(``!(```#$!T```````/T$````````G`(``!(`#0!(
+M#$``````````````````H@(``!(```#4!T```````!T`````````Y0(``!(`
+M``#D!T```````"\`````````]`(``!``\?\`%%``````````````````^P(`
+M`!$`%@"($U``````````````````$0,``!``\?\@%5``````````````````
+M%@,``!(```#T!T```````"\`````````)P,``"``````````````````````
+M````.P,``!(````$"$````````(%````````7`,``!(````4"$```````)P`
+M````````@0,``!(````D"$````````<``````````&-R=#$N8P!A8FET86<`
+M+W5S<B]S<F,O;&EB+V-S=2]A;60V-"]C<G1I+E,`/&-O;6UA;F0M;&EN93X`
+M/&)U:6QT+6EN/@!C<G1S='5F9BYC`%]?0U1/4E],25-47U\`7U]$5$]27TQ)
+M4U1?7P!?7TI#4E],25-47U\`7U]D;U]G;&]B86Q?9'1O<G-?875X`&-O;7!L
+M971E9"XU,#4U`'`N-3`U,P!F<F%M95]D=6UM>0!?7T-43U)?14Y$7U\`7U]$
+M5$]27T5.1%]?`%]?1E)!345?14Y$7U\`7U]*0U)?14Y$7U\`7U]D;U]G;&]B
+M86Q?8W1O<G-?875X`"]U<W(O<W)C+VQI8B]C<W4O86UD-C0O8W)T;BY3`&UA
+M+F-P<`!?1TQ/0D%,7U])7VUA:6X`7UI3=#$W7U]V97)I9GE?9W)O=7!I;F=0
+M2V-M4DM3<P!?6C0Q7U]S=&%T:6-?:6YI=&EA;&EZ871I;VY?86YD7V1E<W1R
+M=6-T:6]N7S!I:0!?6E-T.%]?:6]I;FET`%]?=&-F7S``7UI.4W0X:6]S7V)A
+M<V4T26YI=$,Q179`0$=,24)#6%A?,RXT`%]:4W0T8V]U=$!`1TQ)0D-86%\S
+M+C0`7T193D%-24,`7U]C>&%?871E>&ET0$!&0E-$7S$N,`!?7V1S;U]H86YD
+M;&4`7VEN:71?=&QS0$!&0E-$7S$N,`!?:6YI=`!E;G9I<F]N`%]:3E-O;'-%
+M9$!`1TQ)0D-86%\S+C0`7U]P<F]G;F%M90!?<W1A<G0`7UI3=#-M:6Y);452
+M2U1?4S)?4S)?`%]?8G-S7W-T87)T`&UA:6X`7UI.2U-S-'-I>F5%=D!`1TQ)
+M0D-86%\S+C0`<VEN0$!&0E-$7S$N,`!?9FEN:0!?6E-T;'-)4W0Q,6-H87)?
+M=')A:71S26-%15)3=#$S8F%S:6-?;W-T<F5A;4EC5%]%4S5?8T!`1TQ)0D-8
+M6%\S+C0`97AI=$!`1D)31%\Q+C``7V5D871A`%]'3$]"04Q?3T9&4T547U1!
+M0DQ%7P!?96YD`&%T97AI=$!`1D)31%\Q+C``7TIV7U)E9VES=&5R0VQA<W-E
+M<P!?7V=X>%]P97)S;VYA;&ET>5]V,$!`0UA804))7S$N,P!?6DY3=#AI;W-?
+M8F%S931);FET1#%%=D!`1TQ)0D-86%\S+C0`7UI.2U-S:7A%;4!`1TQ)0D-8
+&6%\S+C0`
+`
+end
diff --git a/test/nm/ts/nm_option/Makefile b/test/nm/ts/nm_option/Makefile
new file mode 100644
index 0000000000000..7186ddf505a81
--- /dev/null
+++ b/test/nm/ts/nm_option/Makefile
@@ -0,0 +1,5 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_option/tc.sh b/test/nm/ts/nm_option/tc.sh
new file mode 100755
index 0000000000000..251e7fd7e62a9
--- /dev/null
+++ b/test/nm/ts/nm_option/tc.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2109 2011-11-07 22:04:10Z kaiwang27 $
+
+tp1()
+{
+ run_without_diff "-z" $ERROR_USAGE
+}
+
+tp2()
+{
+ run_without_diff "-Z" $ERROR_USAGE
+}
+
+tp3()
+{
+ run_without_diff "-y" $ERROR_USAGE
+}
+
+tp4()
+{
+ run_without_diff "-Y" $ERROR_USAGE
+}
+
+tp5()
+{
+ run_without_diff "--aaaaaa" $ERROR_USAGE
+}
+
+tp6()
+{
+ run_without_diff "--+_" $ERROR_USAGE
+}
+
+tp7()
+{
+ run_without_diff "--help" $ERROR_OK
+}
+
+ERROR_OK="0"
+ERROR_USAGE="1"
+
+tet_startup=""
+tet_cleanup=""
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_shared_object1/Makefile b/test/nm/ts/nm_shared_object1/Makefile
new file mode 100644
index 0000000000000..594b62b71659d
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_so
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_shared_object1/tc.sh b/test/nm/ts/nm_shared_object1/tc.sh
new file mode 100755
index 0000000000000..07ae40ee9ca23
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_so"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_shared_object1/test_so-dynamic.txt b/test/nm/ts/nm_shared_object1/test_so-dynamic.txt
new file mode 100644
index 0000000000000..c6db3b9fe7b9e
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-dynamic.txt
@@ -0,0 +1,38 @@
+0000000001057328 A _DYNAMIC
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000001057992 A __bss_start
+ w __cxa_finalize
+ U __error
+0000000001057992 A _edata
+0000000001058000 A _end
+0000000000007112 T _fini
+0000000000003320 T _init
+0000000000006160 T berase
+0000000000006704 T bread
+0000000000006304 T bwrite
+0000000000004720 T cgread
+0000000000004544 T cgread1
+0000000000004400 T cgwrite1
+ U close
+ U free
+ U getfsfile
+0000000000003856 T getino
+ U ioctl
+ U malloc
+ U memcpy
+ U memset
+ U open
+ U pread
+ U pwrite
+0000000000005856 T sbread
+0000000000005584 T sbwrite
+ U snprintf
+ U stat
+ U statfs
+ U strdup
+ U strlcpy
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+0000000000004864 T ufs_disk_fillout_blank
+0000000000004752 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-external.txt b/test/nm/ts/nm_shared_object1/test_so-external.txt
new file mode 100644
index 0000000000000..6c20fec3d7661
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-external.txt
@@ -0,0 +1,38 @@
+0000000001057328 A _DYNAMIC
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000001057992 A __bss_start
+ w __cxa_finalize@@FBSD_1.0
+ U __error@@FBSD_1.0
+0000000001057992 A _edata
+0000000001058000 A _end
+0000000000007112 T _fini
+0000000000003320 T _init
+0000000000006160 T berase
+0000000000006704 T bread
+0000000000006304 T bwrite
+0000000000004720 T cgread
+0000000000004544 T cgread1
+0000000000004400 T cgwrite1
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000003856 T getino
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+0000000000005856 T sbread
+0000000000005584 T sbwrite
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+0000000000004864 T ufs_disk_fillout_blank
+0000000000004752 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt b/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt
new file mode 100644
index 0000000000000..6ac646fff7699
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-format-bsd.txt
@@ -0,0 +1,39 @@
+0000000001057328 A _DYNAMIC
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000001057992 A __bss_start
+ w __cxa_finalize@@FBSD_1.0
+0000000001056768 d __dso_handle
+ U __error@@FBSD_1.0
+0000000001057992 A _edata
+0000000001058000 A _end
+0000000000007112 T _fini
+0000000000003320 T _init
+0000000000006160 T berase
+0000000000006704 T bread
+0000000000006304 T bwrite
+0000000000004720 T cgread
+0000000000004544 T cgread1
+0000000000004400 T cgwrite1
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000003856 T getino
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+0000000000005856 T sbread
+0000000000005584 T sbwrite
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+0000000000004864 T ufs_disk_fillout_blank
+0000000000004752 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-format-posix.txt b/test/nm/ts/nm_shared_object1/test_so-format-posix.txt
new file mode 100644
index 0000000000000..3d6b4916bbbdf
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-format-posix.txt
@@ -0,0 +1,39 @@
+_DYNAMIC A 0000000000102230
+_GLOBAL_OFFSET_TABLE_ A 00000000001023e8
+_Jv_RegisterClasses w
+__bss_start A 00000000001024c8
+__cxa_finalize@@FBSD_1.0 w
+__dso_handle d 0000000000102000
+__error@@FBSD_1.0 U
+_edata A 00000000001024c8
+_end A 00000000001024d0
+_fini T 0000000000001bc8
+_init T 0000000000000cf8
+berase T 0000000000001810 0000000000000082
+bread T 0000000000001a30 0000000000000161
+bwrite T 00000000000018a0 0000000000000184
+cgread T 0000000000001270 0000000000000014
+cgread1 T 00000000000011c0 00000000000000b0
+cgwrite1 T 0000000000001130 0000000000000090
+close@@FBSD_1.0 U
+free@@FBSD_1.0 U
+getfsfile@@FBSD_1.0 U
+getino T 0000000000000f10 0000000000000219
+ioctl@@FBSD_1.0 U
+malloc@@FBSD_1.0 U
+memcpy@@FBSD_1.0 U
+memset@@FBSD_1.0 U
+open@@FBSD_1.0 U
+pread@@FBSD_1.0 U
+pwrite@@FBSD_1.0 U
+sbread T 00000000000016e0 0000000000000129
+sbwrite T 00000000000015d0 0000000000000107
+snprintf@@FBSD_1.0 U
+stat@@FBSD_1.0 U
+statfs@@FBSD_1.0 U
+strdup@@FBSD_1.0 U
+strlcpy@@FBSD_1.0 U
+ufs_disk_close T 0000000000001580 000000000000004e
+ufs_disk_fillout T 0000000000001530 0000000000000044
+ufs_disk_fillout_blank T 0000000000001300 0000000000000227
+ufs_disk_write T 0000000000001290 0000000000000069
diff --git a/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt b/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt
new file mode 100644
index 0000000000000..e60a7a400fe8e
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-format-sysv.txt
@@ -0,0 +1,45 @@
+
+
+Symbols from test_so:
+
+Name Value Class Type Size Line Section
+
+_DYNAMIC |0000000001057328| A | OBJECT| | |*ABS*
+_GLOBAL_OFFSET_TABLE_|0000000001057768| A | OBJECT| | |*ABS*
+_Jv_RegisterClasses | | w | NOTYPE| | |*UND*
+__bss_start |0000000001057992| A | NOTYPE| | |*ABS*
+__cxa_finalize@@FBSD_1.0| | w | FUNC|0000000000000301| |*UND*
+__dso_handle |0000000001056768| d | OBJECT| | |.data
+__error@@FBSD_1.0 | | U | FUNC|0000000000000008| |*UND*
+_edata |0000000001057992| A | NOTYPE| | |*ABS*
+_end |0000000001058000| A | NOTYPE| | |*ABS*
+_fini |0000000000007112| T | FUNC| | |.fini
+_init |0000000000003320| T | FUNC| | |.init
+berase |0000000000006160| T | FUNC|0000000000000130| |.text
+bread |0000000000006704| T | FUNC|0000000000000353| |.text
+bwrite |0000000000006304| T | FUNC|0000000000000388| |.text
+cgread |0000000000004720| T | FUNC|0000000000000020| |.text
+cgread1 |0000000000004544| T | FUNC|0000000000000176| |.text
+cgwrite1 |0000000000004400| T | FUNC|0000000000000144| |.text
+close@@FBSD_1.0 | | U | FUNC| | |*UND*
+free@@FBSD_1.0 | | U | FUNC|0000000000000750| |*UND*
+getfsfile@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND*
+getino |0000000000003856| T | FUNC|0000000000000537| |.text
+ioctl@@FBSD_1.0 | | U | FUNC| | |*UND*
+malloc@@FBSD_1.0 | | U | FUNC|0000000000001280| |*UND*
+memcpy@@FBSD_1.0 | | U | FUNC| | |*UND*
+memset@@FBSD_1.0 | | U | FUNC| | |*UND*
+open@@FBSD_1.0 | | U | FUNC| | |*UND*
+pread@@FBSD_1.0 | | U | FUNC|0000000000000139| |*UND*
+pwrite@@FBSD_1.0 | | U | FUNC|0000000000000139| |*UND*
+sbread |0000000000005856| T | FUNC|0000000000000297| |.text
+sbwrite |0000000000005584| T | FUNC|0000000000000263| |.text
+snprintf@@FBSD_1.0 | | U | FUNC|0000000000000453| |*UND*
+stat@@FBSD_1.0 | | U | FUNC| | |*UND*
+statfs@@FBSD_1.0 | | U | FUNC| | |*UND*
+strdup@@FBSD_1.0 | | U | FUNC|0000000000000085| |*UND*
+strlcpy@@FBSD_1.0 | | U | FUNC|0000000000000054| |*UND*
+ufs_disk_close |0000000000005504| T | FUNC|0000000000000078| |.text
+ufs_disk_fillout |0000000000005424| T | FUNC|0000000000000068| |.text
+ufs_disk_fillout_blank|0000000000004864| T | FUNC|0000000000000551| |.text
+ufs_disk_write |0000000000004752| T | FUNC|0000000000000105| |.text
diff --git a/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt b/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt
new file mode 100644
index 0000000000000..050ae3c0368bc
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-print-file-name.txt
@@ -0,0 +1,39 @@
+test_so:0000000001057328 A _DYNAMIC
+test_so:0000000001057768 A _GLOBAL_OFFSET_TABLE_
+test_so: w _Jv_RegisterClasses
+test_so:0000000001057992 A __bss_start
+test_so: w __cxa_finalize@@FBSD_1.0
+test_so:0000000001056768 d __dso_handle
+test_so: U __error@@FBSD_1.0
+test_so:0000000001057992 A _edata
+test_so:0000000001058000 A _end
+test_so:0000000000007112 T _fini
+test_so:0000000000003320 T _init
+test_so:0000000000006160 T berase
+test_so:0000000000006704 T bread
+test_so:0000000000006304 T bwrite
+test_so:0000000000004720 T cgread
+test_so:0000000000004544 T cgread1
+test_so:0000000000004400 T cgwrite1
+test_so: U close@@FBSD_1.0
+test_so: U free@@FBSD_1.0
+test_so: U getfsfile@@FBSD_1.0
+test_so:0000000000003856 T getino
+test_so: U ioctl@@FBSD_1.0
+test_so: U malloc@@FBSD_1.0
+test_so: U memcpy@@FBSD_1.0
+test_so: U memset@@FBSD_1.0
+test_so: U open@@FBSD_1.0
+test_so: U pread@@FBSD_1.0
+test_so: U pwrite@@FBSD_1.0
+test_so:0000000000005856 T sbread
+test_so:0000000000005584 T sbwrite
+test_so: U snprintf@@FBSD_1.0
+test_so: U stat@@FBSD_1.0
+test_so: U statfs@@FBSD_1.0
+test_so: U strdup@@FBSD_1.0
+test_so: U strlcpy@@FBSD_1.0
+test_so:0000000000005504 T ufs_disk_close
+test_so:0000000000005424 T ufs_disk_fillout
+test_so:0000000000004864 T ufs_disk_fillout_blank
+test_so:0000000000004752 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-print-size.txt b/test/nm/ts/nm_shared_object1/test_so-print-size.txt
new file mode 100644
index 0000000000000..33e8e9c396885
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-print-size.txt
@@ -0,0 +1,39 @@
+0000000001057328 A _DYNAMIC
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000001057992 A __bss_start
+ w __cxa_finalize@@FBSD_1.0
+0000000001056768 d __dso_handle
+ U __error@@FBSD_1.0
+0000000001057992 A _edata
+0000000001058000 A _end
+0000000000007112 T _fini
+0000000000003320 T _init
+0000000000006160 0000000000000130 T berase
+0000000000006704 0000000000000353 T bread
+0000000000006304 0000000000000388 T bwrite
+0000000000004720 0000000000000020 T cgread
+0000000000004544 0000000000000176 T cgread1
+0000000000004400 0000000000000144 T cgwrite1
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000003856 0000000000000537 T getino
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+0000000000005856 0000000000000297 T sbread
+0000000000005584 0000000000000263 T sbwrite
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000005504 0000000000000078 T ufs_disk_close
+0000000000005424 0000000000000068 T ufs_disk_fillout
+0000000000004864 0000000000000551 T ufs_disk_fillout_blank
+0000000000004752 0000000000000105 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt b/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt
new file mode 100644
index 0000000000000..d917b0c75901b
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-radix-hexa.txt
@@ -0,0 +1,39 @@
+0000000000102230 A _DYNAMIC
+00000000001023e8 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+00000000001024c8 A __bss_start
+ w __cxa_finalize@@FBSD_1.0
+0000000000102000 d __dso_handle
+ U __error@@FBSD_1.0
+00000000001024c8 A _edata
+00000000001024d0 A _end
+0000000000001bc8 T _fini
+0000000000000cf8 T _init
+0000000000001810 T berase
+0000000000001a30 T bread
+00000000000018a0 T bwrite
+0000000000001270 T cgread
+00000000000011c0 T cgread1
+0000000000001130 T cgwrite1
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000000f10 T getino
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+00000000000016e0 T sbread
+00000000000015d0 T sbwrite
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000001580 T ufs_disk_close
+0000000000001530 T ufs_disk_fillout
+0000000000001300 T ufs_disk_fillout_blank
+0000000000001290 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt b/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt
new file mode 100644
index 0000000000000..1365b23d0cd70
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-radix-octal.txt
@@ -0,0 +1,39 @@
+0000000004021060 A _DYNAMIC
+0000000004021750 A _GLOBAL_OFFSET_TABLE_
+ w _Jv_RegisterClasses
+0000000004022310 A __bss_start
+ w __cxa_finalize@@FBSD_1.0
+0000000004020000 d __dso_handle
+ U __error@@FBSD_1.0
+0000000004022310 A _edata
+0000000004022320 A _end
+0000000000015710 T _fini
+0000000000006370 T _init
+0000000000014020 T berase
+0000000000015060 T bread
+0000000000014240 T bwrite
+0000000000011160 T cgread
+0000000000010700 T cgread1
+0000000000010460 T cgwrite1
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000007420 T getino
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+0000000000013340 T sbread
+0000000000012720 T sbwrite
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000012600 T ufs_disk_close
+0000000000012460 T ufs_disk_fillout
+0000000000011400 T ufs_disk_fillout_blank
+0000000000011220 T ufs_disk_write
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-no.txt b/test/nm/ts/nm_shared_object1/test_so-sort-no.txt
new file mode 100644
index 0000000000000..ffbf676cef2f0
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-no.txt
@@ -0,0 +1,39 @@
+0000000001056768 d __dso_handle
+ U pread@@FBSD_1.0
+ U statfs@@FBSD_1.0
+0000000000004720 T cgread
+0000000001057328 A _DYNAMIC
+0000000000004400 T cgwrite1
+ U strdup@@FBSD_1.0
+ w __cxa_finalize@@FBSD_1.0
+0000000000004864 T ufs_disk_fillout_blank
+0000000000006160 T berase
+ U ioctl@@FBSD_1.0
+0000000000005584 T sbwrite
+0000000000003320 T _init
+ U pwrite@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000004544 T cgread1
+ U __error@@FBSD_1.0
+0000000000003856 T getino
+0000000000004752 T ufs_disk_write
+0000000001057992 A __bss_start
+ U close@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+0000000000007112 T _fini
+ U open@@FBSD_1.0
+0000000000006704 T bread
+ U malloc@@FBSD_1.0
+0000000001057992 A _edata
+ U memcpy@@FBSD_1.0
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+0000000001058000 A _end
+ U free@@FBSD_1.0
+0000000000006304 T bwrite
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+ w _Jv_RegisterClasses
+0000000000005856 T sbread
+ U strlcpy@@FBSD_1.0
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-num.txt b/test/nm/ts/nm_shared_object1/test_so-sort-num.txt
new file mode 100644
index 0000000000000..91eeefadacb7d
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-num.txt
@@ -0,0 +1,39 @@
+ w _Jv_RegisterClasses
+ w __cxa_finalize@@FBSD_1.0
+ U __error@@FBSD_1.0
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
+0000000000003320 T _init
+0000000000003856 T getino
+0000000000004400 T cgwrite1
+0000000000004544 T cgread1
+0000000000004720 T cgread
+0000000000004752 T ufs_disk_write
+0000000000004864 T ufs_disk_fillout_blank
+0000000000005424 T ufs_disk_fillout
+0000000000005504 T ufs_disk_close
+0000000000005584 T sbwrite
+0000000000005856 T sbread
+0000000000006160 T berase
+0000000000006304 T bwrite
+0000000000006704 T bread
+0000000000007112 T _fini
+0000000001056768 d __dso_handle
+0000000001057328 A _DYNAMIC
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+0000000001057992 A __bss_start
+0000000001057992 A _edata
+0000000001058000 A _end
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt
new file mode 100644
index 0000000000000..ffbf676cef2f0
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-no.txt
@@ -0,0 +1,39 @@
+0000000001056768 d __dso_handle
+ U pread@@FBSD_1.0
+ U statfs@@FBSD_1.0
+0000000000004720 T cgread
+0000000001057328 A _DYNAMIC
+0000000000004400 T cgwrite1
+ U strdup@@FBSD_1.0
+ w __cxa_finalize@@FBSD_1.0
+0000000000004864 T ufs_disk_fillout_blank
+0000000000006160 T berase
+ U ioctl@@FBSD_1.0
+0000000000005584 T sbwrite
+0000000000003320 T _init
+ U pwrite@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+0000000000004544 T cgread1
+ U __error@@FBSD_1.0
+0000000000003856 T getino
+0000000000004752 T ufs_disk_write
+0000000001057992 A __bss_start
+ U close@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+0000000000007112 T _fini
+ U open@@FBSD_1.0
+0000000000006704 T bread
+ U malloc@@FBSD_1.0
+0000000001057992 A _edata
+ U memcpy@@FBSD_1.0
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+0000000001058000 A _end
+ U free@@FBSD_1.0
+0000000000006304 T bwrite
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+ w _Jv_RegisterClasses
+0000000000005856 T sbread
+ U strlcpy@@FBSD_1.0
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt
new file mode 100644
index 0000000000000..02001111342bd
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-num.txt
@@ -0,0 +1,39 @@
+0000000001058000 A _end
+0000000001057992 A _edata
+0000000001057992 A __bss_start
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+0000000001057328 A _DYNAMIC
+0000000001056768 d __dso_handle
+0000000000007112 T _fini
+0000000000006704 T bread
+0000000000006304 T bwrite
+0000000000006160 T berase
+0000000000005856 T sbread
+0000000000005584 T sbwrite
+0000000000005504 T ufs_disk_close
+0000000000005424 T ufs_disk_fillout
+0000000000004864 T ufs_disk_fillout_blank
+0000000000004752 T ufs_disk_write
+0000000000004720 T cgread
+0000000000004544 T cgread1
+0000000000004400 T cgwrite1
+0000000000003856 T getino
+0000000000003320 T _init
+ U strlcpy@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U open@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U ioctl@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+ U free@@FBSD_1.0
+ U close@@FBSD_1.0
+ U __error@@FBSD_1.0
+ w __cxa_finalize@@FBSD_1.0
+ w _Jv_RegisterClasses
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt
new file mode 100644
index 0000000000000..0a2edf72bb825
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-reverse-size.txt
@@ -0,0 +1,13 @@
+0000000000000551 T ufs_disk_fillout_blank
+0000000000000537 T getino
+0000000000000388 T bwrite
+0000000000000353 T bread
+0000000000000297 T sbread
+0000000000000263 T sbwrite
+0000000000000176 T cgread1
+0000000000000144 T cgwrite1
+0000000000000130 T berase
+0000000000000105 T ufs_disk_write
+0000000000000078 T ufs_disk_close
+0000000000000068 T ufs_disk_fillout
+0000000000000020 T cgread
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt b/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt
new file mode 100644
index 0000000000000..c161cdbe72f26
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-reverse.txt
@@ -0,0 +1,39 @@
+0000000000004752 T ufs_disk_write
+0000000000004864 T ufs_disk_fillout_blank
+0000000000005424 T ufs_disk_fillout
+0000000000005504 T ufs_disk_close
+ U strlcpy@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+0000000000005584 T sbwrite
+0000000000005856 T sbread
+ U pwrite@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U open@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U ioctl@@FBSD_1.0
+0000000000003856 T getino
+ U getfsfile@@FBSD_1.0
+ U free@@FBSD_1.0
+ U close@@FBSD_1.0
+0000000000004400 T cgwrite1
+0000000000004544 T cgread1
+0000000000004720 T cgread
+0000000000006304 T bwrite
+0000000000006704 T bread
+0000000000006160 T berase
+0000000000003320 T _init
+0000000000007112 T _fini
+0000000001058000 A _end
+0000000001057992 A _edata
+ U __error@@FBSD_1.0
+0000000001056768 d __dso_handle
+ w __cxa_finalize@@FBSD_1.0
+0000000001057992 A __bss_start
+ w _Jv_RegisterClasses
+0000000001057768 A _GLOBAL_OFFSET_TABLE_
+0000000001057328 A _DYNAMIC
diff --git a/test/nm/ts/nm_shared_object1/test_so-sort-size.txt b/test/nm/ts/nm_shared_object1/test_so-sort-size.txt
new file mode 100644
index 0000000000000..a58f0c453c8e1
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-sort-size.txt
@@ -0,0 +1,13 @@
+0000000000000020 T cgread
+0000000000000068 T ufs_disk_fillout
+0000000000000078 T ufs_disk_close
+0000000000000105 T ufs_disk_write
+0000000000000130 T berase
+0000000000000144 T cgwrite1
+0000000000000176 T cgread1
+0000000000000263 T sbwrite
+0000000000000297 T sbread
+0000000000000353 T bread
+0000000000000388 T bwrite
+0000000000000537 T getino
+0000000000000551 T ufs_disk_fillout_blank
diff --git a/test/nm/ts/nm_shared_object1/test_so-undef.txt b/test/nm/ts/nm_shared_object1/test_so-undef.txt
new file mode 100644
index 0000000000000..0b019ccf0081e
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so-undef.txt
@@ -0,0 +1,18 @@
+ w _Jv_RegisterClasses
+ w __cxa_finalize@@FBSD_1.0
+ U __error@@FBSD_1.0
+ U close@@FBSD_1.0
+ U free@@FBSD_1.0
+ U getfsfile@@FBSD_1.0
+ U ioctl@@FBSD_1.0
+ U malloc@@FBSD_1.0
+ U memcpy@@FBSD_1.0
+ U memset@@FBSD_1.0
+ U open@@FBSD_1.0
+ U pread@@FBSD_1.0
+ U pwrite@@FBSD_1.0
+ U snprintf@@FBSD_1.0
+ U stat@@FBSD_1.0
+ U statfs@@FBSD_1.0
+ U strdup@@FBSD_1.0
+ U strlcpy@@FBSD_1.0
diff --git a/test/nm/ts/nm_shared_object1/test_so.uu b/test/nm/ts/nm_shared_object1/test_so.uu
new file mode 100644
index 0000000000000..a108d62a7ca14
--- /dev/null
+++ b/test/nm/ts/nm_shared_object1/test_so.uu
@@ -0,0 +1,315 @@
+begin 644 test_so
+M?T5,1@(!`0D```````````,`/@`!````D`X```````!````````````H````
+M`````````$``.``$`$``&@`7``$````%````````````````````````````
+M````````(!\````````@'P``````````$````````0````8`````(```````
+M```@$````````"`0``````#(!````````-`$```````````0```````"````
+M!@```#`B````````,"(0```````P(A```````)`!````````D`$````````(
+M`````````%#E=&0$````&!\````````8'P```````!@?````````"```````
+M```(``````````0`````````)0```#T````I````.@```#@`````````*@``
+M````````````&@```#D````````````````````C`````````"@````P````
+M+````"8````R````(@```#P````O````(````#$````>````+@``````````
+M````&````"T````=````-P```"4`````````&0```#0````[````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````7````````````````````&P``````````
+M````````````````````)````````````````````"$``````````````!\`
+M````````'``````````G`````````"L`````````-0```#8````S````````
+M```````````````````````````````````````````````````````#``$`
+M(`$````````````````````````#``(`L`(````````````````````````#
+M``,`:`@````````````````````````#``0`T@D`````````````````````
+M```#``4`4`H````````````````````````#``8`<`H`````````````````
+M```````#``<`T`H````````````````````````#``@`^`P`````````````
+M```````````#``D`#`T````````````````````````#``H`D`X`````````
+M```````````````#``L`R!L````````````````````````#``P`X!L`````
+M```````````````````#``T`&!\````````````````````````#``X``"`0
+M```````````````````````#``\`$"`0```````````````````````#`!``
+M,"(0```````````````````````#`!$`P",0```````````````````````#
+M`!(`T",0```````````````````````#`!,`X",0````````````````````
+M```#`!0`Z",0```````````````````````#`!4`R"00````````````````
+M```````#`!8``````````````````````"4!```2``````````````"+````
+M`````+\````2`````````````````````````&X````2``H`<!(````````4
+M``````````$````1`/'_,"(0`````````````````%T````2``H`,!$`````
+M``"0`````````+@````2``````````````!5`````````"P````B````````
+M```````M`0```````(D````2``H``!,````````G`@````````H!```2``H`
+M$!@```````""`````````!$!```2`````````````````````````/H````2
+M``H`T!4````````'`0```````"`````2``@`^`P``````````````````!<!
+M```2``````````````"+`````````*D````2````````````````````````
+M`"L!```2`````````````````````````*X````2```````````````V````
+M`````&8````2``H`P!$```````"P``````````(!```2```````````````(
+M`````````$\````2``H`$`\````````9`@```````'4````2``H`D!(`````
+M``!I`````````$,!```0`/'_R"00`````````````````.\````2````````
+M`````````````````*`````2``````````````#%`0```````"8````2``L`
+MR!L``````````````````(0````2`````````````````````````.`````2
+M``H`,!H```````!A`0```````%8````2````````````````!0```````#P!
+M```0`/'_R"00`````````````````!X!```2````````````````````````
+M``H````1`/'_Z",0`````````````````$\!```0`/'_T"00````````````
+M`````/4````2``````````````#N`@```````/L````2``H`H!@```````"$
+M`0```````.8````2``H`@!4```````!.`````````,X````2``H`,!4`````
+M``!$`````````#L````@`````````````````````````-\````2``H`X!8`
+M```````I`0```````,8````2```````````````V``````````!?1%E.04U)
+M0P!?1TQ/0D%,7T]&1E-%5%]404),15\`7VEN:70`7V9I;FD`7U]C>&%?9FEN
+M86QI>F4`7TIV7U)E9VES=&5R0VQA<W-E<P!G971I;F\`;6%L;&]C`&-G=W)I
+M=&4Q`&-G<F5A9#$`8V=R96%D`'5F<U]D:7-K7W=R:71E`&]P96X`=69S7V1I
+M<VM?9FEL;&]U=%]B;&%N:P!S;G!R:6YT9@!S=&%T`&=E=&9S9FEL90!S=')D
+M=7``<W1A=&9S`'-T<FQC<'D`=69S7V1I<VM?9FEL;&]U=`!S8G)E860`=69S
+M7V1I<VM?8VQO<V4`9G)E90!S8G=R:71E`%]?97)R;W(`8F5R87-E`&EO8W1L
+M`'!W<FET90!M96UC<'D`<')E860`;65M<V5T`&QI8F,N<V\N-P!?961A=&$`
+M7U]B<W-?<W1A<G0`7V5N9`!L:6)U9G,N<V\N-`!&0E-$7S$N,```````````
+M``````````````````````````````````````````````````````(``@`!
+M``$``0`"``(``0`!``(``0`!``(``@`"``(``0`"``$``0`!``(``@`!``(`
+M`0`"``$``@`!``$``@`!``$``0````$``@```````0`!`#(!```0````````
+M`+`H>@<```(`8`$`````````(!````````@``````````"`0```````((!``
+M``````@`````````V",0``````"X)!````````8````=``````````````#`
+M)!````````8````Z````````````````)!````````<````7````````````
+M```()!````````<````8```````````````0)!````````<````<````````
+M```````8)!````````<````=```````````````@)!````````<````>````
+M```````````H)!````````<````@```````````````P)!````````<````C
+M```````````````X)!````````<````D``````````````!`)!````````<`
+M```E``````````````!()!````````<````F``````````````!0)!``````
+M``<````G``````````````!8)!````````<````H``````````````!@)!``
+M``````<````J``````````````!H)!````````<````L``````````````!P
+M)!````````<````M``````````````!X)!````````<````O````````````
+M``"`)!````````<````P``````````````"()!````````<````Q````````
+M``````"0)!````````<````S``````````````"8)!````````<````V````
+M``````````"@)!````````<````W``````````````"H)!````````<````[
+M``````````````"P)!````````<````\``````````````!(@^P(Z-\!``#H
+MF@X``$B#Q`C#`/\UWA80`/\EX!80`)"0D)#_)=X6$`!H`````.G@_____R76
+M%A``:`$```#IT/____\ESA80`&@"````Z<#_____)<86$`!H`P```.FP____
+M_R6^%A``:`0```#IH/____\EMA80`&@%````Z9#_____):X6$`!H!@```.F`
+M_____R6F%A``:`<```#I</____\EGA80`&@(````Z6#_____)986$`!H"0``
+M`.E0_____R6.%A``:`H```#I0/____\EAA80`&@+````Z3#_____)7X6$`!H
+M#````.D@_____R5V%A``:`T```#I$/____\E;A80`&@.````Z0#_____)686
+M$`!H#P```.GP_O___R5>%A``:!````#IX/[___\E5A80`&@1````Z=#^____
+M)4X6$`!H$@```.G`_O___R5&%A``:!,```#IL/[___\E/A80`&@4````Z:#^
+M____)386$`!H%0```.F0_O___R4N%A``:!8```#I@/[__P````!(@^P(@#TM
+M%A```'4[2(,]$Q80``!T&TB+/5(1$`#HF?[__^L-2(/`"$B)!4@1$`#_TDB+
+M!3\1$`!(BQ!(A=)UY,8%\!40``%(@\0(PV9FD$B#/?@4$```=!E(BP7/%1``
+M2(7`=`U(C3WC%!``28G#0?_C\\.0D)"0D)"0D)"0D$B)7"302(EL)-A(B?M,
+MB7PD^$R)9"3@B=5,B6PDZ$R)="3P2(/L.$B%_TB)-"1)B<]T"TC'AS@``@``
+M````3(MS($2+8RA$BVLL387V#X2+`0``1#GE#Y/"1#GM#Y+`A-!T38M#"(/X
+M`0^$[@```(/X`@^$"@$``$B%VP^%)@$``+C_____2(M<)`A(BVPD$$R+9"08
+M3(ML)"!,BW0D*$R+?"0P2(/$.,-F9F:09F:0@;N,!0``&0%4&8M+8`^$_0``
+M`(N[Z````(GH,=+W]TACD^P```!!B<"+0TQ$B<9(#Z_R]]!$(<`/KT-(2(T4
+M,$AC<T")Z$QCP4&)[$B--#(QTO?W2(G?B=`QTO>SJ````(N3D````(G13(GR
+MT^!(`<:+@Y0```")P4C3YDR)P>C8_?__,=*)Z/>SJ````$$IU$2)X`.#J```
+M`$2)8RB)0RR+0PB#^`$/A1+___^)ZD0IXDC!X@=,`?(/MP(E`/```$&)!TB+
+M!"1(B1`QP.D$____B>I(BPPD1"GB2,'B"$P!\@^W`B4`\```08D',<!(B1'I
+MW_[__TB-!9$+``!(B8,X``(`N/_____IQ_[__Y"+N^@```")Z#'2]_>)PDAC
+M@^P```!(#Z_0Z1+___](8WM@Z#7]__](A<!T#$F)QDB)0R#I6_[__TB%VP^$
+M@/[__TB-!1@+``!(B8,X``(`N/_____I;?[__Y"0D)"0D)!3@;^,!0``&0%4
+M&4B)^T2+1V!T4XM'3$ACC^P```!(8];WT"'P#Z]'2$@/K]%(F$B-/!!(8W,\
+MBX.4````36/`2(V3,``!`(G!2(TT-TB)WTC3YDR)P>C1_/__,=)(@_C_=!1;
+MB=##2&.#[````$AC_D@/K_CKO$B%VXG"=.5(C16["@``2(F3.``"`(G"Z]-5
+M,=*)]5-(B?M(@^P(.7=<?FR!OXP%```9`509BW<\1(N/E````$2+1V!T6XM'
+M3$ACC^P```!(8]7WT"'H#Z]'2$@/K]%(F$B-/!!(8_9$B<E)8\!(C30W2(V3
+M,``!`$B)WTC3YDB)P>CO^___2(/X_W0DB:LT``(`N@$```!(@\0(B=!;7<-(
+M8X/L````2&/]2`^O^.NT2(7;B<)TX$B-%2H*``!(B9,X``(`B<+KSHNW,``"
+M`(U&`8F',``"`.DX^___D)"0D)"0D)"0D)"02(7_4TB)^W0+2,>'.``"````
+M```QP/:#0``"``)T`EO#BWL,Z#/[__](BSLQP+X"````Z$3[__^%P(E##'@+
+M@XM```(``C'`6\-(A=NX_____W3+2(T%Q0D``$B)@S@``@"X_____UO#9F9F
+MD&9FD$%728GW059!54%428G\55-(@>QH!@``2(7_=`M(QX<X``(``````$R-
+MM"3@!0``3(G[ZRR`.R\/A`T!``!(C0W?"0``2(T5W@D``$F)V+X`!```2(GG
+M,<!(B>/HG/K__TR)]DB)W^@A^O__A<")Q7C##[>$).@%```E`/```#T`(```
+M=!1(B=_H'_K__TB%P`^$R````$B+&#'V,<!(B=_H9_K__X/X_P^$(`$``$PY
+M^TG'1"00`0```$''A"0P``(``````$&)1"0,2<=$)"``````0<=$)"@`````
+M0<=$)"P`````0<>$)#0``@``````0<>$)$```@``````0<=$)`@`````2<>$
+M)#@``@``````=!U(B=_H'_G__TB%P$B)PP^$O@```$&#C"1```(``4F)'"0Q
+MP$B!Q&@&``!;74%<05U!7D%?PTR)^TB)W^A7^?__2(7`#X4X____A>UX%`^W
+MA"3H!0``)0#P```]`$```'0,387D=3JX_____^NV2(VL)``$``!(B=](B>[H
+ME_C__X7`>&Q(C;4H`0``N@`$``!(B>=(B>/HS/G__^GD_O__2(T5<@@``+C_
+M____28F4)#@``@#I:O___TV%Y'2H2(T5<@@``$F)E"0X``(`Z5'___]-A>1T
+MCTB-!=T'``!)B80D.``"`+C_____Z3/___]-A>0/A&W___](C049"```28F$
+M)#@``@"X_____^D1____9F:09F:09F:04TB)^^@C^/___\!T$TB)W^@G^?__
+MB<(QP(/Z_W0)6\-;N/_____#2(7;9F:09F:0=.Y(C06/!P``2(F#.``"`(G0
+M6\-F9F:09F9FD&9F9I!(A?]32(G[=`M(QX<X``(``````(M[#.A0^/__2(M[
+M($B%_W0-Z*+X__](QT,@`````/:#0``"``%T#TB+.^B)^/__2,<#`````%LQ
+MP,.0D$%42(7_58GU4TB)^W0+2,>'.``"``````!(@WL8`$R-8S!U$4B+@Q@$
+M``!(F4CW>Q!(B4,82(MS&+D`(```3(GB2(G?Z$/X__](@_C_#X2?````A>UT
+M=8M#7(7`?FZ+D^P````Q[>M/BT-,2&/22`^OU??0(>@/KT-(2)A(`=!(8W,X
+MBXN4````3(GB2(G?2(TT,$C3YKD`(```Z.SW__](@_C_="V-10%(_\4Y0UQ^
+M&XN3[````(&[C`4``!D!5!EUI4ACPD@/K\7KLS'`6UU!7,-(A=MU"EM=05RX
+M_____\-(C17,!@``2(F3.``"`.O<2(7;=.%(C16<!@``2(F3.``"`.O'9F:0
+M9F:09F:0055!5%532(G[2(/L"$B%_W0+2,>'.``"``````!,C27\!@``3(UK
+M,+T```$`ZS^0/1D!5!ET:8M#8#T```$`#Y["/5\%```/E\"$T'0+BU,(A=(/
+MA9\```!!BVPD!$F#Q`3'0P@`````@_W_=$1(8^VY`"```$R)ZDB)[DB)W^BX
+M]O__2(/X_W15BX.,!0``/509`0!UF<=#"`$```#KET@[JQ@$``!UCL=#"`(`
+M``#KA4B%VW0.2(T%,@8``$B)@S@``@#H(O;__XGJQP`"````2(/$"(G06UU!
+M7$%=PTB%VXG"=.Q(C17;!0``2(F3.``"`(G"Z]I(8W-DBXN4````OP$```!(
+MT^=(B?!(F4CW_TB)P4B)0Q!(B>A(F4CW^3'22(E#&.NID)"0D)"0D$B)7"3H
+M2(EL)/!(B?M,B60D^$B#["A(A?](B?5)B=1T"TC'AS@``@``````2(G?Z)CU
+M__^#^/]T-$@/KVL0BWL,2(GBOHAD$(`QP$R)9"0(2(DL).@#]?__2(M<)!!(
+MBVPD&$R+9"0@2(/$*,-(A=MTYTB-%2<$``!(B9,X``(`Z]=F9F:09F9FD&9F
+MD&9FD$B)7"382(EL).!(B?M,B60DZ$R);"3P2(GU3(ET)/A(@^PH2(7_28G4
+M28G-=`M(QX<X``(``````$B)W^C[]/___\`/A.8```!!]L0_=5%(#Z]K$(M[
+M#$R)ZDR)YDB)Z>AW]/__2(G%2(/]_P^$W````$PY[0^%HP```$B)Z$B+'"1(
+MBVPD"$R+9"003(ML)!A,BW0D($B#Q"C#9F:09I!,B>_HY/3__TB%P$F)QG0Q
+M3(GJ3(GF2(G'Z-[T__](#Z]K$(M[#$R)ZDR)]DB)Z>@(]/__3(GW2(G%Z,WT
+M___KATB%VW0.2(T%M@0``$B)@S@``@!,B>I,B>8Q_^B;]/__2`^O:Q"+>PQ,
+MB>HQ]DB)Z>C&\___2(G%Z4K___](A=MU1TC'Q?_____I3/___TB%VW3O2(T%
+MU0(``$C'Q?____](B8,X``(`Z2W___](A=L/A"3___](C05<!```2(F#.``"
+M`.D1____2(T%900``$C'Q?____](B8,X``(`Z??^__]F9F:09F9FD&9F9I!(
+MB5PDV$B);"3@2(GS3(EL)/!,B70D^$B)_4R)9"3H2(/L*$B%_TF)U4F)SG0+
+M2,>'.``"``````!!]L4_38GL#X6?````2`^O71"+?0Q,B?),B>9(B=GHD/+_
+M_TB#^/](B<,/A-P```!(A<!T8DPY\`^$G@```$B%[7042(T%90,``$B)A3@`
+M`@!F9I!F9I`Q]DR)\DR)[^C/\O__33GL2,?#_____P^%B````$B)V$B+;"0(
+M2(L<)$R+9"003(ML)!A,BW0D($B#Q"C#9F:02(7M=+M(C06C`P``2(F%.``"
+M`.NK3(GWZ`_S__](A<!)B<0/A4W___](A>T/A$3___](C04*`P``2(F%.``"
+M`.DQ____33GL=)-,B>](B<),B>;HY/+__TR)Y^CL\O__Z7C___],B>?HW_+_
+M_V9FD.EH____2(7M#X1"____2(T%#0,``$B)A3@``@#I+____Y"0D)"0D)"0
+MD)"0D)"0D$B+!1D($`!32(/X_W072(T="P@0`/_02(M#^$B#ZPA(@_C_=?!;
+MPY!(@^P(Z+_R__](@\0(PP`````````````D1G)E94)31#H@<W)C+VQI8B]C
+M<W4O86UD-C0O8W)T:2Y3+'8@,2XW(#(P,#0O,#,O,C$@,#$Z,SDZ,#$@<&5T
+M97(@17AP("0``````````'5N86)L92!T;R!A;&QO8V%T92!I;F]D92!B;&]C
+M:P!U;FMN;W=N(%5&4R!F:6QE<WES=&5M('1Y<&4```````!U;F%B;&4@=&\@
+M=W)I=&4@8WEL:6YD97(@9W)O=7``=6YA8FQE('1O(')E860@8WEL:6YD97(@
+M9W)O=7``````9F%I;&5D('1O(&]P96X@9&ES:R!F;W(@=W)I=&EN9P!C;W5L
+M9"!N;W0@86QL;V-A=&4@;65M;W)Y(&9O<B!D:7-K(&YA;64`8V]U;&0@;F]T
+M(')E860@<W5P97)B;&]C:R!T;R!F:6QL(&]U="!D:7-K`"]D978O`"5S)7,`
+M8V]U;&0@;F]T(&9I;F0@<W!E8VEA;"!D979I8V4`8V]U;&0@;F]T(&]P96X@
+M<W!E8VEA;"!D979I8V4`9F%I;&5D('1O('=R:71E('-U<&5R8FQO8VL`9F%I
+M;&5D('1O('5P9&%T92!A('-U<&5R8FQO8VL```````!N;VXM97AI<W1E;G0@
+M;W(@=')U;F-A=&5D('-U<&5R8FQO8VL`````;F\@=7-A8FQE(&MN;W=N('-U
+M<&5R8FQO8VL@9F]U;F0````````````````````````!```@```````````$
+M`/____\`````<VAO<G0@<F5A9"!O<B!R96%D(&5R<F]R(&9R;VT@8FQO8VL@
+M9&5V:6-E`&%L;&]C871E(&)O=6YC92!B=69F97(`=W)I=&4@97)R;W(@=&\@
+M8FQO8VL@9&5V:6-E`'-H;W)T('=R:71E('1O(&)L;V-K(&1E=FEC90!R96%D
+M(&5R<F]R(&9R;VT@8FQO8VL@9&5V:6-E`&5N9"!O9B!F:6QE(&9R;VT@8FQO
+M8VL@9&5V:6-E`"1&<F5E0E-$.B!S<F,O;&EB+V-S=2]A;60V-"]C<G1N+E,L
+M=B`Q+C8@,C`P-"\P,R\R,2`P,3HS.3HP,2!P971E<B!%>'`@)`````$;___T
+M`!``````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````(!```````-@C$```````%``````````!>E(``7@0`1L,!PB0`0``%```
+M`!P```!@[N__30````!$#A``````%````#0```"8[N__)0``````````````
+M)````$P```"P[N__&0(```!*A@:#!UT.0(X#C02,!8\"`````````!0```!T
+M````J/#O_Y``````00X0@P(``!P```",````(/'O_[``````00X0A@)%#AB#
+M`T<.(```%````*P```"P\>__%```````````````%````,0```"X\>__:0``
+M``!$#A"#`@``-````-P````0\N__)P(```!"#A"/`D4.&$(.($(.*(P%C02.
+M`T0.,$$..$<.H`V#!X8&```````4````%`$```CT[_]$`````$$.$(,"```4
+M````+`$``$#T[_].`````$0.$(,"```<````1`$``'CT[_\'`0```$(.$$0.
+M&(8#C`)##B"#!"0```!D`0``:/7O_RD!````0@X00@X800X@00XH@P6&!(P#
+MC0)'#C`<````C`$``'#V[_^"`````$J&`X,$3`XPC`(``````!P```"L`0``
+MX/;O_X0!````2H8%@P99#C".`HT#C`0`'````,P!``!0^.__80$```!*A@6#
+M!ED.,(P$C@*-`P``````&``````````!>E(``7@0`1L,!PB0`0```````!0`
+M```@````@/GO_R<`````2`X0@P(```$`````````,@$````````.````````
+M`%0!````````#`````````#X#`````````T`````````R!L````````$````
+M`````"`!````````!0````````!H"`````````8`````````L`(````````*
+M`````````&D!````````"P`````````8``````````,`````````Z",0````
+M```"`````````"@"````````%``````````'`````````!<`````````T`H`
+M```````'`````````'`*````````"`````````!@``````````D`````````
+M&`````````#^__]O`````%`*````````____;P`````!`````````/#__V\`
+M````T@D```````#Y__]O``````(`````````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````````````#__________P``````````__________\`````
+M````````````````,"(0````````````````````````````(@T````````R
+M#0```````$(-````````4@T```````!B#0```````'(-````````@@T`````
+M``"2#0```````*(-````````L@T```````#"#0```````-(-````````X@T`
+M``````#R#0````````(.````````$@X````````B#@```````#(.````````
+M0@X```````!2#@```````&(.````````<@X```````""#@``````````````
+M````````````````1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R965"
+M4T1=```D1G)E94)31#H@<W)C+VQI8B]L:6)U9G,O:6YO9&4N8RQV(#$N-B`R
+M,#`S+S`V+S$Y(#(R.C$R.C4T(&UD;V1D($5X<"`D`$=#0SH@*$=.52D@-"XR
+M+C$@,C`P-S`W,3D@(%M&<F5E0E-$70``)$9R965"4T0Z('-R8R]L:6(O;&EB
+M=69S+V-G<F]U<"YC+'8@,2XT(#(P,#8O,3`O,S$@,C$Z,C$Z-#@@<&ID($5X
+M<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&<F5E0E-$70``)$9R
+M965"4T0Z('-R8R]L:6(O;&EB=69S+W1Y<&4N8RQV(#$N,38@,C`P-R\P,R\Q
+M-B`P,SHQ,SHR."!P:F0@17AP("0`1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q
+M.2`@6T9R965"4T1=```D1G)E94)31#H@<W)C+VQI8B]L:6)U9G,O<V)L;V-K
+M+F,L=B`Q+C$P(#(P,#,O,#8O,#D@,#DZ,S(Z,CD@:FUA;&QE='0@17AP("0`
+M1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R965"4T1=```D1G)E94)3
+M1#H@<W)C+VQI8B]L:6)U9G,O8FQO8VLN8RQV(#$N,3$@,C`P-R\Q,B\Q-B`Q
+M.#HP,CHS-R!P:&L@17AP("0`1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@
+M6T9R965"4T1=``!'0T,Z("A'3E4I(#0N,BXQ(#(P,#<P-S$Y("!;1G)E94)3
+M1%T``"YS>6UT86(`+G-T<G1A8@`N<VAS=')T86(`+FAA<V@`+F1Y;G-Y;0`N
+M9'EN<W1R`"YG;G4N=F5R<VEO;@`N9VYU+G9E<G-I;VY?<@`N<F5L82YD>6X`
+M+G)E;&$N<&QT`"YI;FET`"YT97AT`"YF:6YI`"YR;V1A=&$`+F5H7V9R86UE
+M7VAD<@`N9&%T80`N96A?9G)A;64`+F1Y;F%M:6,`+F-T;W)S`"YD=&]R<P`N
+M:F-R`"YG;W0`+F)S<P`N8V]M;65N=```````````````````````````````
+M```````````````````````````````````````````````````````````;
+M````!0````(`````````(`$````````@`0```````)`!`````````@``````
+M```(``````````0`````````(0````L````"`````````+`"````````L`(`
+M``````"X!0````````,````7````"``````````8`````````"D````#````
+M`@````````!H"````````&@(````````:0$```````````````````$`````
+M```````````````Q````____;P(`````````T@D```````#2"0```````'H`
+M`````````@`````````"``````````(`````````/@```/[__V\"````````
+M`%`*````````4`H````````@``````````,````!````"```````````````
+M`````$T````$`````@````````!P"@```````'`*````````8``````````"
+M``````````@`````````&`````````!7````!`````(`````````T`H`````
+M``#0"@```````"@"`````````@````D````(`````````!@`````````80``
+M``$````&`````````/@,````````^`P````````3````````````````````
+M!````````````````````%P````!````!@`````````,#0````````P-````
+M````@`$```````````````````0`````````$`````````!G`````0````8`
+M````````D`X```````"0#@```````#@-```````````````````0````````
+M````````````;0````$````&`````````,@;````````R!L````````.````
+M````````````````!````````````````````',````!`````@````````#@
+M&P```````.`;````````-@,``````````````````!``````````````````
+M``![`````0````(`````````&!\````````8'P````````@`````````````
+M```````$````````````````````B0````$````#```````````@$```````
+M`"`````````0````````````````````"````````````````````(\````!
+M`````@`````````0(!```````!`@````````(`(```````````````````@`
+M``````````````````"9````!@````,`````````,"(0```````P(@``````
+M`)`!`````````P`````````(`````````!``````````H@````$````#````
+M`````,`C$```````P",````````0````````````````````"```````````
+M`````````*D````!`````P````````#0(Q```````-`C````````$```````
+M``````````````@```````````````````"P`````0````,`````````X",0
+M``````#@(P````````@````````````````````(````````````````````
+MM0````$````#`````````.@C$```````Z",```````#@````````````````
+M````"``````````(`````````+H````(`````P````````#()!```````,@D
+M````````"`````````````````````0```````````````````"_`````0``
+M``````````````````````#()````````&X"```````````````````!````
+M````````````````$0````,`````````````````````````-B<```````#(
+M`````````````````````0````````````````````$````"````````````
+M`````````````(`N````````&`8````````9````&P````@`````````&```
+M```````)`````P````````````````````````"8-````````!0"````````
+M```````````!````````````````````````````````````````````````
+M``````````,``0`@`0````````````````````````,``@"P`@``````````
+M``````````````,``P!H"`````````````````````````,`!`#2"0``````
+M``````````````````,`!0!0"@````````````````````````,`!@!P"@``
+M``````````````````````,`!P#0"@````````````````````````,`"`#X
+M#`````````````````````````,`"0`,#0````````````````````````,`
+M"@"0#@````````````````````````,`"P#(&P``````````````````````
+M``,`#`#@&P````````````````````````,`#0`8'P``````````````````
+M``````,`#@``(!````````````````````````,`#P`0(!``````````````
+M``````````,`$``P(A````````````````````````,`$0#`(Q``````````
+M``````````````,`$@#0(Q````````````````````````,`$P#@(Q``````
+M``````````````````,`%`#H(Q````````````````````````,`%0#()!``
+M``````````````````````,`%@````````````````````````````,`%P``
+M``````````````````````````,`&`````````````````````````````,`
+M&0```````````````````````0````$"#@``(!``````````````````#@``
+M`!(``````````````(L`````````'@```!(`````````````````````````
+M+P```!(`"@!P$@```````!0`````````-@```!$`\?\P(A``````````````
+M````/P```!(`"@`P$0```````)``````````2````!(``````````````%4`
+M````````60```"(``````````````"T!````````<@```!(`"@``$P``````
+M`"<"````````B0```!(`"@`0&````````((`````````D````!(`````````
+M````````````````H````!(`"@#0%0````````<!````````J````!(`"`#X
+M#```````````````````K@```!(``````````````(L`````````OP```!(`
+M````````````````````````S@```!(`````````````````````````WP``
+M`!(``````````````#8`````````\P```!(`"@#`$0```````+``````````
+M^P```!(```````````````@`````````#0$``!(`"@`0#P```````!D"````
+M````%`$``!(`"@"0$@```````&D`````````(P$``!``\?_()!``````````
+M````````+P$``!(`````````````````````````/P$``!(`````````````
+M`,4!````````4@$``!(`"P#(&P``````````````````6`$``!(`````````
+M````````````````9P$``!(`"@`P&@```````&$!````````;0$``!(`````
+M```````````%````````?@$``!``\?_()!``````````````````A0$``!(`
+M````````````````````````E@$``!$`\?_H(Q``````````````````K`$`
+M`!``\?_0)!``````````````````L0$``!(``````````````.X"````````
+MP`$``!(`"@"@&````````(0!````````QP$``!(`"@"`%0```````$X`````
+M````U@$``!(`"@`P%0```````$0`````````YP$``"``````````````````
+M````````^P$``!(`"@#@%@```````"D!`````````@(``!(`````````````
+M`#8``````````%]?9'-O7VAA;F1L90!P<F5A9$!`1D)31%\Q+C``<W1A=&9S
+M0$!&0E-$7S$N,`!C9W)E860`7T193D%-24,`8V=W<FET93$`<W1R9'5P0$!&
+M0E-$7S$N,`!?7V-X85]F:6YA;&EZ94!`1D)31%\Q+C``=69S7V1I<VM?9FEL
+M;&]U=%]B;&%N:P!B97)A<V4`:6]C=&Q`0$9"4T1?,2XP`'-B=W)I=&4`7VEN
+M:70`<'=R:71E0$!&0E-$7S$N,`!S=&%T0$!&0E-$7S$N,`!M96US971`0$9"
+M4T1?,2XP`&=E=&9S9FEL94!`1D)31%\Q+C``8V=R96%D,0!?7V5R<F]R0$!&
+M0E-$7S$N,`!G971I;F\`=69S7V1I<VM?=W)I=&4`7U]B<W-?<W1A<G0`8VQO
+M<V5`0$9"4T1?,2XP`'-N<')I;G1F0$!&0E-$7S$N,`!?9FEN:0!O<&5N0$!&
+M0E-$7S$N,`!B<F5A9`!M86QL;V-`0$9"4T1?,2XP`%]E9&%T80!M96UC<'E`
+M0$9"4T1?,2XP`%]'3$]"04Q?3T9&4T547U1!0DQ%7P!?96YD`&9R965`0$9"
+M4T1?,2XP`&)W<FET90!U9G-?9&ES:U]C;&]S90!U9G-?9&ES:U]F:6QL;W5T
+M`%]*=E]296=I<W1E<D-L87-S97,`<V)R96%D`'-T<FQC<'E`0$9"4T1?,2XP
+!````
+`
+end
diff --git a/test/nm/ts/nm_shared_object2/Makefile b/test/nm/ts/nm_shared_object2/Makefile
new file mode 100644
index 0000000000000..c58aa9b688a89
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/Makefile
@@ -0,0 +1,7 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+
+TOP= ../../../..
+
+TS_DATA= test_ko
+
+.include "${TOP}/mk/elftoolchain.tet.mk"
diff --git a/test/nm/ts/nm_shared_object2/tc.sh b/test/nm/ts/nm_shared_object2/tc.sh
new file mode 100755
index 0000000000000..1fe0866b5c5f7
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/tc.sh
@@ -0,0 +1,198 @@
+#!/bin/sh
+#
+# $Id: tc.sh 2378 2012-01-03 08:59:56Z jkoshy $
+
+tp1()
+{
+ test_format_bsd1 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp2()
+{
+ test_format_bsd2 $TEST_FILE "$TEST_FILE-format-bsd.txt"
+}
+
+tp3()
+{
+ test_dynamic1 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp4()
+{
+ test_dynamic2 $TEST_FILE "$TEST_FILE-dynamic.txt"
+}
+
+tp5()
+{
+ test_external $TEST_FILE "$TEST_FILE-external.txt"
+}
+
+tp6()
+{
+ test_hexa1 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp7()
+{
+ test_hexa2 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp8()
+{
+ test_hexa3 $TEST_FILE "$TEST_FILE-radix-hexa.txt"
+}
+
+tp9()
+{
+ test_no_sort1 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp10()
+{
+ test_no_sort2 $TEST_FILE "$TEST_FILE-sort-no.txt"
+}
+
+tp11()
+{
+ test_num_sort1 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp12()
+{
+ test_num_sort2 $TEST_FILE "$TEST_FILE-sort-num.txt"
+}
+
+tp14()
+{
+ test_octal2 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp15()
+{
+ test_octal3 $TEST_FILE "$TEST_FILE-radix-octal.txt"
+}
+
+tp16()
+{
+ test_posix1 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp17()
+{
+ test_posix2 $TEST_FILE "$TEST_FILE-format-posix.txt"
+}
+
+tp18()
+{
+ test_print_file_name1 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp19()
+{
+ test_print_file_name2 $TEST_FILE "$TEST_FILE-print-file-name.txt"
+}
+
+tp20()
+{
+ test_print_size1 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp21()
+{
+ test_print_size2 $TEST_FILE "$TEST_FILE-print-size.txt"
+}
+
+tp22()
+{
+ test_reverse_sort1 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp23()
+{
+ test_reverse_sort2 $TEST_FILE "$TEST_FILE-sort-reverse.txt"
+}
+
+tp24()
+{
+ test_reverse_sort_num $TEST_FILE "$TEST_FILE-sort-reverse-num.txt"
+}
+
+tp25()
+{
+ test_reverse_sort_no $TEST_FILE "$TEST_FILE-sort-reverse-no.txt"
+}
+
+tp26()
+{
+ test_reverse_sort_size $TEST_FILE "$TEST_FILE-sort-reverse-size.txt"
+}
+
+tp27()
+{
+ test_size_sort $TEST_FILE "$TEST_FILE-sort-size.txt"
+}
+
+tp28()
+{
+ test_sysv $TEST_FILE "$TEST_FILE-format-sysv.txt"
+}
+
+tp29()
+{
+ test_undef1 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+tp30()
+{
+ test_undef2 $TEST_FILE "$TEST_FILE-undef.txt"
+}
+
+startup()
+{
+ uudecode "$TEST_FILE.uu"
+}
+
+cleanup()
+{
+ rm -f $TEST_FILE
+}
+
+TEST_FILE="test_ko"
+
+tet_startup="startup"
+tet_cleanup="cleanup"
+
+iclist="ic1 ic2 ic3 ic4 ic5 ic6 ic7 ic8 ic9 ic10 ic11 ic12 ic14 ic15 ic16 ic17 ic18 ic19 ic20 ic21 ic22 ic23 ic24 ic25 ic26 ic27 ic28 ic29 ic30"
+
+ic1="tp1"
+ic2="tp2"
+ic3="tp3"
+ic4="tp4"
+ic5="tp5"
+ic6="tp6"
+ic7="tp7"
+ic8="tp8"
+ic9="tp9"
+ic10="tp10"
+ic11="tp11"
+ic12="tp12"
+ic14="tp14"
+ic15="tp15"
+ic16="tp16"
+ic17="tp17"
+ic18="tp18"
+ic19="tp19"
+ic20="tp20"
+ic21="tp21"
+ic22="tp22"
+ic23="tp23"
+ic24="tp24"
+ic25="tp25"
+ic26="tp26"
+ic27="tp27"
+ic28="tp28"
+ic29="tp29"
+ic30="tp30"
+
+. $TET_SUITE_ROOT/ts/common/func.sh
+. $TET_ROOT/lib/xpg3sh/tcm.sh
diff --git a/test/nm/ts/nm_shared_object2/test_ko-dynamic.txt b/test/nm/ts/nm_shared_object2/test_ko-dynamic.txt
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-dynamic.txt
diff --git a/test/nm/ts/nm_shared_object2/test_ko-external.txt b/test/nm/ts/nm_shared_object2/test_ko-external.txt
new file mode 100644
index 0000000000000..892bf3b0fcd70
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-external.txt
@@ -0,0 +1,30 @@
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+ U free
+ U kernacc
+ U kernel_pmap_store
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+ U mem_range_softc
+ U minor
+ U module_register_init
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-format-bsd.txt b/test/nm/ts/nm_shared_object2/test_ko-format-bsd.txt
new file mode 100644
index 0000000000000..2a43c0ed772ea
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-format-bsd.txt
@@ -0,0 +1,81 @@
+0000000000000384 d M_MEMDESC
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000752 d __tunable_int_67
+0000000000000344 d _mem_depend_on_kernel
+0000000000000312 d _mem_version
+0000000000000256 d _mod_metadata_md_mem
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000192 d _mod_metadata_mem_version
+0000000000002272 t amd64_mem_drvinit
+0000000000002240 t amd64_mrAPinit
+0000000000002400 t amd64_mrfetch
+0000000000004128 t amd64_mrinit
+0000000000000576 d amd64_mrops
+0000000000003232 t amd64_mrset
+0000000000001360 t amd64_mrstoreone
+0000000000001328 t amd64_mrt2mtrr
+0000000000001232 t amd64_mtrr2mrt
+0000000000002176 t amd64_mtrrfixsearch
+0000000000000000 r amd64_mtrrtomrt
+0000000000001264 t amd64_mtrrtype
+0000000000000608 d amd64memdev_sys_init
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+0000000000000224 t dev_mem_md_init
+ U free
+ U kernacc
+ U kernel_pmap_store
+0000000000000008 b kmemdev
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+0000000000000000 d mem_cdevsw
+0000000000000320 d mem_mod
+0000000000000000 t mem_modevent
+0000000000000032 r mem_owner_bios
+0000000000001168 t mem_range_attr_get
+0000000000001120 t mem_range_attr_set
+ U mem_range_softc
+0000000000000000 b memdev
+0000000000000272 t memioctl
+0000000000000608 t memmmap
+0000000000000224 d memmodule_sys_init
+0000000000000192 t memopen
+0000000000000704 t memrw
+ U minor
+ U module_register_init
+0000000000000040 b mtrr_physmask
+0000000000000024 b mtrrcap
+0000000000000032 b mtrrdef
+0000000000000016 b mtrrs_disabled
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+0000000000000640 d sysctl___machdep_disable_mtrrs
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-format-posix.txt b/test/nm/ts/nm_shared_object2/test_ko-format-posix.txt
new file mode 100644
index 0000000000000..203491193056a
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-format-posix.txt
@@ -0,0 +1,81 @@
+M_MEMDESC d 0000000000000180 0000000000000080
+M_MEMDESC_init_sys_init d 0000000000000220 0000000000000018
+M_MEMDESC_uninit_sys_uninit d 0000000000000200 0000000000000018
+__Tunable_init_67_sys_init d 00000000000002d0 0000000000000018
+__set_modmetadata_set_sym__mod_metadata_md_mem r 0000000000000008 0000000000000008
+__set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel r 0000000000000010 0000000000000008
+__set_modmetadata_set_sym__mod_metadata_mem_version r 0000000000000000 0000000000000008
+__set_sysctl_set_sym_sysctl___machdep_disable_mtrrs r 0000000000000000 0000000000000008
+__set_sysinit_set_sym_M_MEMDESC_init_sys_init r 0000000000000008 0000000000000008
+__set_sysinit_set_sym___Tunable_init_67_sys_init r 0000000000000018 0000000000000008
+__set_sysinit_set_sym_amd64memdev_sys_init r 0000000000000010 0000000000000008
+__set_sysinit_set_sym_memmodule_sys_init r 0000000000000000 0000000000000008
+__set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit r 0000000000000000 0000000000000008
+__tunable_int_67 d 00000000000002f0 0000000000000010
+_mem_depend_on_kernel d 0000000000000158 000000000000000c
+_mem_version d 0000000000000138 0000000000000004
+_mod_metadata_md_mem d 0000000000000100 0000000000000018
+_mod_metadata_md_mem_on_kernel d 0000000000000120 0000000000000018
+_mod_metadata_mem_version d 00000000000000c0 0000000000000018
+amd64_mem_drvinit t 00000000000008e0 0000000000000073
+amd64_mrAPinit t 00000000000008c0 0000000000000020
+amd64_mrfetch t 0000000000000960 0000000000000335
+amd64_mrinit t 0000000000001020 0000000000000214
+amd64_mrops d 0000000000000240 0000000000000018
+amd64_mrset t 0000000000000ca0 000000000000037b
+amd64_mrstoreone t 0000000000000550 000000000000032e
+amd64_mrt2mtrr t 0000000000000530 000000000000001c
+amd64_mtrr2mrt t 00000000000004d0 000000000000001a
+amd64_mtrrfixsearch t 0000000000000880 0000000000000032
+amd64_mtrrtomrt r 0000000000000000 000000000000001c
+amd64_mtrrtype t 00000000000004f0 0000000000000032
+amd64memdev_sys_init d 0000000000000260 0000000000000018
+bcopy U
+bootverbose U
+copyin U
+copyout U
+cpu_exthigh U
+cpu_feature U
+cpu_id U
+cpu_vendor U
+destroy_dev U
+dev_mem_md_init t 00000000000000e0 0000000000000022
+free U
+kernacc U
+kernel_pmap_store U
+kmemdev b 0000000000000008 0000000000000008
+make_dev U
+malloc U
+malloc_init U
+malloc_uninit U
+mem_cdevsw d 0000000000000000 00000000000000b8
+mem_mod d 0000000000000140 0000000000000018
+mem_modevent t 0000000000000000 00000000000000b3
+mem_owner_bios r 0000000000000020 0000000000000008
+mem_range_attr_get t 0000000000000490 000000000000003f
+mem_range_attr_set t 0000000000000460 000000000000002c
+mem_range_softc U
+memdev b 0000000000000000 0000000000000008
+memioctl t 0000000000000110 0000000000000143
+memmmap t 0000000000000260 000000000000005a
+memmodule_sys_init d 00000000000000e0 0000000000000018
+memopen t 00000000000000c0 000000000000001f
+memrw t 00000000000002c0 000000000000019d
+minor U
+module_register_init U
+mtrr_physmask b 0000000000000028 0000000000000008
+mtrrcap b 0000000000000018 0000000000000008
+mtrrdef b 0000000000000020 0000000000000008
+mtrrs_disabled b 0000000000000010 0000000000000004
+panic U
+pmap_extract U
+pmap_kextract U
+printf U
+securelevel_gt U
+strcmp U
+strcpy U
+sysctl___machdep_disable_mtrrs d 0000000000000280 0000000000000050
+sysctl__machdep_children U
+sysctl_handle_int U
+tunable_int_init U
+uiomove U
diff --git a/test/nm/ts/nm_shared_object2/test_ko-format-sysv.txt b/test/nm/ts/nm_shared_object2/test_ko-format-sysv.txt
new file mode 100644
index 0000000000000..f1dc5cf3613f4
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-format-sysv.txt
@@ -0,0 +1,87 @@
+
+
+Symbols from test_ko:
+
+Name Value Class Type Size Line Section
+
+M_MEMDESC |0000000000000384| d | OBJECT|0000000000000128| |.data
+M_MEMDESC_init_sys_init|0000000000000544| d | OBJECT|0000000000000024| |.data
+M_MEMDESC_uninit_sys_uninit|0000000000000512| d | OBJECT|0000000000000024| |.data
+__Tunable_init_67_sys_init|0000000000000720| d | OBJECT|0000000000000024| |.data
+__set_modmetadata_set_sym__mod_metadata_md_mem|0000000000000008| r | OBJECT|0000000000000008| |set_modmetadata_set
+__set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel|0000000000000016| r | OBJECT|0000000000000008| |set_modmetadata_set
+__set_modmetadata_set_sym__mod_metadata_mem_version|0000000000000000| r | OBJECT|0000000000000008| |set_modmetadata_set
+__set_sysctl_set_sym_sysctl___machdep_disable_mtrrs|0000000000000000| r | OBJECT|0000000000000008| |set_sysctl_set
+__set_sysinit_set_sym_M_MEMDESC_init_sys_init|0000000000000008| r | OBJECT|0000000000000008| |set_sysinit_set
+__set_sysinit_set_sym___Tunable_init_67_sys_init|0000000000000024| r | OBJECT|0000000000000008| |set_sysinit_set
+__set_sysinit_set_sym_amd64memdev_sys_init|0000000000000016| r | OBJECT|0000000000000008| |set_sysinit_set
+__set_sysinit_set_sym_memmodule_sys_init|0000000000000000| r | OBJECT|0000000000000008| |set_sysinit_set
+__set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit|0000000000000000| r | OBJECT|0000000000000008| |set_sysuninit_set
+__tunable_int_67 |0000000000000752| d | OBJECT|0000000000000016| |.data
+_mem_depend_on_kernel|0000000000000344| d | OBJECT|0000000000000012| |.data
+_mem_version |0000000000000312| d | OBJECT|0000000000000004| |.data
+_mod_metadata_md_mem|0000000000000256| d | OBJECT|0000000000000024| |.data
+_mod_metadata_md_mem_on_kernel|0000000000000288| d | OBJECT|0000000000000024| |.data
+_mod_metadata_mem_version|0000000000000192| d | OBJECT|0000000000000024| |.data
+amd64_mem_drvinit |0000000000002272| t | FUNC|0000000000000115| |.text
+amd64_mrAPinit |0000000000002240| t | FUNC|0000000000000032| |.text
+amd64_mrfetch |0000000000002400| t | FUNC|0000000000000821| |.text
+amd64_mrinit |0000000000004128| t | FUNC|0000000000000532| |.text
+amd64_mrops |0000000000000576| d | OBJECT|0000000000000024| |.data
+amd64_mrset |0000000000003232| t | FUNC|0000000000000891| |.text
+amd64_mrstoreone |0000000000001360| t | FUNC|0000000000000814| |.text
+amd64_mrt2mtrr |0000000000001328| t | FUNC|0000000000000028| |.text
+amd64_mtrr2mrt |0000000000001232| t | FUNC|0000000000000026| |.text
+amd64_mtrrfixsearch |0000000000002176| t | FUNC|0000000000000050| |.text
+amd64_mtrrtomrt |0000000000000000| r | OBJECT|0000000000000028| |.rodata
+amd64_mtrrtype |0000000000001264| t | FUNC|0000000000000050| |.text
+amd64memdev_sys_init|0000000000000608| d | OBJECT|0000000000000024| |.data
+bcopy | | U | NOTYPE| | |*UND*
+bootverbose | | U | NOTYPE| | |*UND*
+copyin | | U | NOTYPE| | |*UND*
+copyout | | U | NOTYPE| | |*UND*
+cpu_exthigh | | U | NOTYPE| | |*UND*
+cpu_feature | | U | NOTYPE| | |*UND*
+cpu_id | | U | NOTYPE| | |*UND*
+cpu_vendor | | U | NOTYPE| | |*UND*
+destroy_dev | | U | NOTYPE| | |*UND*
+dev_mem_md_init |0000000000000224| t | FUNC|0000000000000034| |.text
+free | | U | NOTYPE| | |*UND*
+kernacc | | U | NOTYPE| | |*UND*
+kernel_pmap_store | | U | NOTYPE| | |*UND*
+kmemdev |0000000000000008| b | OBJECT|0000000000000008| |.bss
+make_dev | | U | NOTYPE| | |*UND*
+malloc | | U | NOTYPE| | |*UND*
+malloc_init | | U | NOTYPE| | |*UND*
+malloc_uninit | | U | NOTYPE| | |*UND*
+mem_cdevsw |0000000000000000| d | OBJECT|0000000000000184| |.data
+mem_mod |0000000000000320| d | OBJECT|0000000000000024| |.data
+mem_modevent |0000000000000000| t | FUNC|0000000000000179| |.text
+mem_owner_bios |0000000000000032| r | OBJECT|0000000000000008| |.rodata
+mem_range_attr_get |0000000000001168| t | FUNC|0000000000000063| |.text
+mem_range_attr_set |0000000000001120| t | FUNC|0000000000000044| |.text
+mem_range_softc | | U | NOTYPE| | |*UND*
+memdev |0000000000000000| b | OBJECT|0000000000000008| |.bss
+memioctl |0000000000000272| t | FUNC|0000000000000323| |.text
+memmmap |0000000000000608| t | FUNC|0000000000000090| |.text
+memmodule_sys_init |0000000000000224| d | OBJECT|0000000000000024| |.data
+memopen |0000000000000192| t | FUNC|0000000000000031| |.text
+memrw |0000000000000704| t | FUNC|0000000000000413| |.text
+minor | | U | NOTYPE| | |*UND*
+module_register_init| | U | NOTYPE| | |*UND*
+mtrr_physmask |0000000000000040| b | OBJECT|0000000000000008| |.bss
+mtrrcap |0000000000000024| b | OBJECT|0000000000000008| |.bss
+mtrrdef |0000000000000032| b | OBJECT|0000000000000008| |.bss
+mtrrs_disabled |0000000000000016| b | OBJECT|0000000000000004| |.bss
+panic | | U | NOTYPE| | |*UND*
+pmap_extract | | U | NOTYPE| | |*UND*
+pmap_kextract | | U | NOTYPE| | |*UND*
+printf | | U | NOTYPE| | |*UND*
+securelevel_gt | | U | NOTYPE| | |*UND*
+strcmp | | U | NOTYPE| | |*UND*
+strcpy | | U | NOTYPE| | |*UND*
+sysctl___machdep_disable_mtrrs|0000000000000640| d | OBJECT|0000000000000080| |.data
+sysctl__machdep_children| | U | NOTYPE| | |*UND*
+sysctl_handle_int | | U | NOTYPE| | |*UND*
+tunable_int_init | | U | NOTYPE| | |*UND*
+uiomove | | U | NOTYPE| | |*UND*
diff --git a/test/nm/ts/nm_shared_object2/test_ko-print-file-name.txt b/test/nm/ts/nm_shared_object2/test_ko-print-file-name.txt
new file mode 100644
index 0000000000000..d905d5397e47c
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-print-file-name.txt
@@ -0,0 +1,81 @@
+test_ko:0000000000000384 d M_MEMDESC
+test_ko:0000000000000544 d M_MEMDESC_init_sys_init
+test_ko:0000000000000512 d M_MEMDESC_uninit_sys_uninit
+test_ko:0000000000000720 d __Tunable_init_67_sys_init
+test_ko:0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+test_ko:0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+test_ko:0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+test_ko:0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+test_ko:0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+test_ko:0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+test_ko:0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+test_ko:0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+test_ko:0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+test_ko:0000000000000752 d __tunable_int_67
+test_ko:0000000000000344 d _mem_depend_on_kernel
+test_ko:0000000000000312 d _mem_version
+test_ko:0000000000000256 d _mod_metadata_md_mem
+test_ko:0000000000000288 d _mod_metadata_md_mem_on_kernel
+test_ko:0000000000000192 d _mod_metadata_mem_version
+test_ko:0000000000002272 t amd64_mem_drvinit
+test_ko:0000000000002240 t amd64_mrAPinit
+test_ko:0000000000002400 t amd64_mrfetch
+test_ko:0000000000004128 t amd64_mrinit
+test_ko:0000000000000576 d amd64_mrops
+test_ko:0000000000003232 t amd64_mrset
+test_ko:0000000000001360 t amd64_mrstoreone
+test_ko:0000000000001328 t amd64_mrt2mtrr
+test_ko:0000000000001232 t amd64_mtrr2mrt
+test_ko:0000000000002176 t amd64_mtrrfixsearch
+test_ko:0000000000000000 r amd64_mtrrtomrt
+test_ko:0000000000001264 t amd64_mtrrtype
+test_ko:0000000000000608 d amd64memdev_sys_init
+test_ko: U bcopy
+test_ko: U bootverbose
+test_ko: U copyin
+test_ko: U copyout
+test_ko: U cpu_exthigh
+test_ko: U cpu_feature
+test_ko: U cpu_id
+test_ko: U cpu_vendor
+test_ko: U destroy_dev
+test_ko:0000000000000224 t dev_mem_md_init
+test_ko: U free
+test_ko: U kernacc
+test_ko: U kernel_pmap_store
+test_ko:0000000000000008 b kmemdev
+test_ko: U make_dev
+test_ko: U malloc
+test_ko: U malloc_init
+test_ko: U malloc_uninit
+test_ko:0000000000000000 d mem_cdevsw
+test_ko:0000000000000320 d mem_mod
+test_ko:0000000000000000 t mem_modevent
+test_ko:0000000000000032 r mem_owner_bios
+test_ko:0000000000001168 t mem_range_attr_get
+test_ko:0000000000001120 t mem_range_attr_set
+test_ko: U mem_range_softc
+test_ko:0000000000000000 b memdev
+test_ko:0000000000000272 t memioctl
+test_ko:0000000000000608 t memmmap
+test_ko:0000000000000224 d memmodule_sys_init
+test_ko:0000000000000192 t memopen
+test_ko:0000000000000704 t memrw
+test_ko: U minor
+test_ko: U module_register_init
+test_ko:0000000000000040 b mtrr_physmask
+test_ko:0000000000000024 b mtrrcap
+test_ko:0000000000000032 b mtrrdef
+test_ko:0000000000000016 b mtrrs_disabled
+test_ko: U panic
+test_ko: U pmap_extract
+test_ko: U pmap_kextract
+test_ko: U printf
+test_ko: U securelevel_gt
+test_ko: U strcmp
+test_ko: U strcpy
+test_ko:0000000000000640 d sysctl___machdep_disable_mtrrs
+test_ko: U sysctl__machdep_children
+test_ko: U sysctl_handle_int
+test_ko: U tunable_int_init
+test_ko: U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-print-size.txt b/test/nm/ts/nm_shared_object2/test_ko-print-size.txt
new file mode 100644
index 0000000000000..3de7588843afb
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-print-size.txt
@@ -0,0 +1,81 @@
+0000000000000384 0000000000000128 d M_MEMDESC
+0000000000000544 0000000000000024 d M_MEMDESC_init_sys_init
+0000000000000512 0000000000000024 d M_MEMDESC_uninit_sys_uninit
+0000000000000720 0000000000000024 d __Tunable_init_67_sys_init
+0000000000000008 0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000016 0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000000 0000000000000008 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000000 0000000000000008 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000008 0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000024 0000000000000008 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000016 0000000000000008 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000000 0000000000000008 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 0000000000000008 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000752 0000000000000016 d __tunable_int_67
+0000000000000344 0000000000000012 d _mem_depend_on_kernel
+0000000000000312 0000000000000004 d _mem_version
+0000000000000256 0000000000000024 d _mod_metadata_md_mem
+0000000000000288 0000000000000024 d _mod_metadata_md_mem_on_kernel
+0000000000000192 0000000000000024 d _mod_metadata_mem_version
+0000000000002272 0000000000000115 t amd64_mem_drvinit
+0000000000002240 0000000000000032 t amd64_mrAPinit
+0000000000002400 0000000000000821 t amd64_mrfetch
+0000000000004128 0000000000000532 t amd64_mrinit
+0000000000000576 0000000000000024 d amd64_mrops
+0000000000003232 0000000000000891 t amd64_mrset
+0000000000001360 0000000000000814 t amd64_mrstoreone
+0000000000001328 0000000000000028 t amd64_mrt2mtrr
+0000000000001232 0000000000000026 t amd64_mtrr2mrt
+0000000000002176 0000000000000050 t amd64_mtrrfixsearch
+0000000000000000 0000000000000028 r amd64_mtrrtomrt
+0000000000001264 0000000000000050 t amd64_mtrrtype
+0000000000000608 0000000000000024 d amd64memdev_sys_init
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+0000000000000224 0000000000000034 t dev_mem_md_init
+ U free
+ U kernacc
+ U kernel_pmap_store
+0000000000000008 0000000000000008 b kmemdev
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+0000000000000000 0000000000000184 d mem_cdevsw
+0000000000000320 0000000000000024 d mem_mod
+0000000000000000 0000000000000179 t mem_modevent
+0000000000000032 0000000000000008 r mem_owner_bios
+0000000000001168 0000000000000063 t mem_range_attr_get
+0000000000001120 0000000000000044 t mem_range_attr_set
+ U mem_range_softc
+0000000000000000 0000000000000008 b memdev
+0000000000000272 0000000000000323 t memioctl
+0000000000000608 0000000000000090 t memmmap
+0000000000000224 0000000000000024 d memmodule_sys_init
+0000000000000192 0000000000000031 t memopen
+0000000000000704 0000000000000413 t memrw
+ U minor
+ U module_register_init
+0000000000000040 0000000000000008 b mtrr_physmask
+0000000000000024 0000000000000008 b mtrrcap
+0000000000000032 0000000000000008 b mtrrdef
+0000000000000016 0000000000000004 b mtrrs_disabled
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+0000000000000640 0000000000000080 d sysctl___machdep_disable_mtrrs
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-radix-hexa.txt b/test/nm/ts/nm_shared_object2/test_ko-radix-hexa.txt
new file mode 100644
index 0000000000000..b3deb450875be
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-radix-hexa.txt
@@ -0,0 +1,81 @@
+0000000000000180 d M_MEMDESC
+0000000000000220 d M_MEMDESC_init_sys_init
+0000000000000200 d M_MEMDESC_uninit_sys_uninit
+00000000000002d0 d __Tunable_init_67_sys_init
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000010 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000018 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000010 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+00000000000002f0 d __tunable_int_67
+0000000000000158 d _mem_depend_on_kernel
+0000000000000138 d _mem_version
+0000000000000100 d _mod_metadata_md_mem
+0000000000000120 d _mod_metadata_md_mem_on_kernel
+00000000000000c0 d _mod_metadata_mem_version
+00000000000008e0 t amd64_mem_drvinit
+00000000000008c0 t amd64_mrAPinit
+0000000000000960 t amd64_mrfetch
+0000000000001020 t amd64_mrinit
+0000000000000240 d amd64_mrops
+0000000000000ca0 t amd64_mrset
+0000000000000550 t amd64_mrstoreone
+0000000000000530 t amd64_mrt2mtrr
+00000000000004d0 t amd64_mtrr2mrt
+0000000000000880 t amd64_mtrrfixsearch
+0000000000000000 r amd64_mtrrtomrt
+00000000000004f0 t amd64_mtrrtype
+0000000000000260 d amd64memdev_sys_init
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+00000000000000e0 t dev_mem_md_init
+ U free
+ U kernacc
+ U kernel_pmap_store
+0000000000000008 b kmemdev
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+0000000000000000 d mem_cdevsw
+0000000000000140 d mem_mod
+0000000000000000 t mem_modevent
+0000000000000020 r mem_owner_bios
+0000000000000490 t mem_range_attr_get
+0000000000000460 t mem_range_attr_set
+ U mem_range_softc
+0000000000000000 b memdev
+0000000000000110 t memioctl
+0000000000000260 t memmmap
+00000000000000e0 d memmodule_sys_init
+00000000000000c0 t memopen
+00000000000002c0 t memrw
+ U minor
+ U module_register_init
+0000000000000028 b mtrr_physmask
+0000000000000018 b mtrrcap
+0000000000000020 b mtrrdef
+0000000000000010 b mtrrs_disabled
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+0000000000000280 d sysctl___machdep_disable_mtrrs
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-radix-octal.txt b/test/nm/ts/nm_shared_object2/test_ko-radix-octal.txt
new file mode 100644
index 0000000000000..07e07f2d75889
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-radix-octal.txt
@@ -0,0 +1,81 @@
+0000000000000600 d M_MEMDESC
+0000000000001040 d M_MEMDESC_init_sys_init
+0000000000001000 d M_MEMDESC_uninit_sys_uninit
+0000000000001320 d __Tunable_init_67_sys_init
+0000000000000010 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000020 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000010 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000030 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000020 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000001360 d __tunable_int_67
+0000000000000530 d _mem_depend_on_kernel
+0000000000000470 d _mem_version
+0000000000000400 d _mod_metadata_md_mem
+0000000000000440 d _mod_metadata_md_mem_on_kernel
+0000000000000300 d _mod_metadata_mem_version
+0000000000004340 t amd64_mem_drvinit
+0000000000004300 t amd64_mrAPinit
+0000000000004540 t amd64_mrfetch
+0000000000010040 t amd64_mrinit
+0000000000001100 d amd64_mrops
+0000000000006240 t amd64_mrset
+0000000000002520 t amd64_mrstoreone
+0000000000002460 t amd64_mrt2mtrr
+0000000000002320 t amd64_mtrr2mrt
+0000000000004200 t amd64_mtrrfixsearch
+0000000000000000 r amd64_mtrrtomrt
+0000000000002360 t amd64_mtrrtype
+0000000000001140 d amd64memdev_sys_init
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+0000000000000340 t dev_mem_md_init
+ U free
+ U kernacc
+ U kernel_pmap_store
+0000000000000010 b kmemdev
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+0000000000000000 d mem_cdevsw
+0000000000000500 d mem_mod
+0000000000000000 t mem_modevent
+0000000000000040 r mem_owner_bios
+0000000000002220 t mem_range_attr_get
+0000000000002140 t mem_range_attr_set
+ U mem_range_softc
+0000000000000000 b memdev
+0000000000000420 t memioctl
+0000000000001140 t memmmap
+0000000000000340 d memmodule_sys_init
+0000000000000300 t memopen
+0000000000001300 t memrw
+ U minor
+ U module_register_init
+0000000000000050 b mtrr_physmask
+0000000000000030 b mtrrcap
+0000000000000040 b mtrrdef
+0000000000000020 b mtrrs_disabled
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+0000000000001200 d sysctl___machdep_disable_mtrrs
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-no.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-no.txt
new file mode 100644
index 0000000000000..7bad106aede89
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-no.txt
@@ -0,0 +1,81 @@
+0000000000000000 t mem_modevent
+0000000000000000 d mem_cdevsw
+0000000000000000 b memdev
+0000000000000008 b kmemdev
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000192 d _mod_metadata_mem_version
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000224 d memmodule_sys_init
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000256 d _mod_metadata_md_mem
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000312 d _mem_version
+0000000000000320 d mem_mod
+0000000000000344 d _mem_depend_on_kernel
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000001232 t amd64_mtrr2mrt
+0000000000000000 r amd64_mtrrtomrt
+0000000000001264 t amd64_mtrrtype
+0000000000001328 t amd64_mrt2mtrr
+0000000000001360 t amd64_mrstoreone
+0000000000000040 b mtrr_physmask
+0000000000002176 t amd64_mtrrfixsearch
+0000000000002240 t amd64_mrAPinit
+0000000000000032 b mtrrdef
+0000000000002272 t amd64_mem_drvinit
+0000000000000016 b mtrrs_disabled
+0000000000000576 d amd64_mrops
+0000000000002400 t amd64_mrfetch
+0000000000000032 r mem_owner_bios
+0000000000003232 t amd64_mrset
+0000000000004128 t amd64_mrinit
+0000000000000024 b mtrrcap
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000608 d amd64memdev_sys_init
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000640 d sysctl___machdep_disable_mtrrs
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000752 d __tunable_int_67
+0000000000000384 d M_MEMDESC
+0000000000000608 t memmmap
+0000000000000192 t memopen
+0000000000001120 t mem_range_attr_set
+0000000000001168 t mem_range_attr_get
+0000000000000224 t dev_mem_md_init
+0000000000000272 t memioctl
+0000000000000704 t memrw
+ U strcpy
+ U printf
+ U malloc_init
+ U minor
+ U cpu_feature
+ U malloc
+ U copyout
+ U cpu_exthigh
+ U destroy_dev
+ U module_register_init
+ U sysctl__machdep_children
+ U cpu_id
+ U uiomove
+ U make_dev
+ U copyin
+ U cpu_vendor
+ U securelevel_gt
+ U mem_range_softc
+ U panic
+ U tunable_int_init
+ U bcopy
+ U strcmp
+ U pmap_extract
+ U malloc_uninit
+ U bootverbose
+ U sysctl_handle_int
+ U pmap_kextract
+ U kernel_pmap_store
+ U kernacc
+ U free
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-num.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-num.txt
new file mode 100644
index 0000000000000..3d9721fea64ad
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-num.txt
@@ -0,0 +1,81 @@
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+ U free
+ U kernacc
+ U kernel_pmap_store
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+ U mem_range_softc
+ U minor
+ U module_register_init
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000000 r amd64_mtrrtomrt
+0000000000000000 d mem_cdevsw
+0000000000000000 t mem_modevent
+0000000000000000 b memdev
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000008 b kmemdev
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000016 b mtrrs_disabled
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000024 b mtrrcap
+0000000000000032 r mem_owner_bios
+0000000000000032 b mtrrdef
+0000000000000040 b mtrr_physmask
+0000000000000192 d _mod_metadata_mem_version
+0000000000000192 t memopen
+0000000000000224 t dev_mem_md_init
+0000000000000224 d memmodule_sys_init
+0000000000000256 d _mod_metadata_md_mem
+0000000000000272 t memioctl
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000312 d _mem_version
+0000000000000320 d mem_mod
+0000000000000344 d _mem_depend_on_kernel
+0000000000000384 d M_MEMDESC
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000000576 d amd64_mrops
+0000000000000608 d amd64memdev_sys_init
+0000000000000608 t memmmap
+0000000000000640 d sysctl___machdep_disable_mtrrs
+0000000000000704 t memrw
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000752 d __tunable_int_67
+0000000000001120 t mem_range_attr_set
+0000000000001168 t mem_range_attr_get
+0000000000001232 t amd64_mtrr2mrt
+0000000000001264 t amd64_mtrrtype
+0000000000001328 t amd64_mrt2mtrr
+0000000000001360 t amd64_mrstoreone
+0000000000002176 t amd64_mtrrfixsearch
+0000000000002240 t amd64_mrAPinit
+0000000000002272 t amd64_mem_drvinit
+0000000000002400 t amd64_mrfetch
+0000000000003232 t amd64_mrset
+0000000000004128 t amd64_mrinit
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-no.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-no.txt
new file mode 100644
index 0000000000000..7bad106aede89
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-no.txt
@@ -0,0 +1,81 @@
+0000000000000000 t mem_modevent
+0000000000000000 d mem_cdevsw
+0000000000000000 b memdev
+0000000000000008 b kmemdev
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000192 d _mod_metadata_mem_version
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000224 d memmodule_sys_init
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000256 d _mod_metadata_md_mem
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000312 d _mem_version
+0000000000000320 d mem_mod
+0000000000000344 d _mem_depend_on_kernel
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000001232 t amd64_mtrr2mrt
+0000000000000000 r amd64_mtrrtomrt
+0000000000001264 t amd64_mtrrtype
+0000000000001328 t amd64_mrt2mtrr
+0000000000001360 t amd64_mrstoreone
+0000000000000040 b mtrr_physmask
+0000000000002176 t amd64_mtrrfixsearch
+0000000000002240 t amd64_mrAPinit
+0000000000000032 b mtrrdef
+0000000000002272 t amd64_mem_drvinit
+0000000000000016 b mtrrs_disabled
+0000000000000576 d amd64_mrops
+0000000000002400 t amd64_mrfetch
+0000000000000032 r mem_owner_bios
+0000000000003232 t amd64_mrset
+0000000000004128 t amd64_mrinit
+0000000000000024 b mtrrcap
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000608 d amd64memdev_sys_init
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000640 d sysctl___machdep_disable_mtrrs
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000752 d __tunable_int_67
+0000000000000384 d M_MEMDESC
+0000000000000608 t memmmap
+0000000000000192 t memopen
+0000000000001120 t mem_range_attr_set
+0000000000001168 t mem_range_attr_get
+0000000000000224 t dev_mem_md_init
+0000000000000272 t memioctl
+0000000000000704 t memrw
+ U strcpy
+ U printf
+ U malloc_init
+ U minor
+ U cpu_feature
+ U malloc
+ U copyout
+ U cpu_exthigh
+ U destroy_dev
+ U module_register_init
+ U sysctl__machdep_children
+ U cpu_id
+ U uiomove
+ U make_dev
+ U copyin
+ U cpu_vendor
+ U securelevel_gt
+ U mem_range_softc
+ U panic
+ U tunable_int_init
+ U bcopy
+ U strcmp
+ U pmap_extract
+ U malloc_uninit
+ U bootverbose
+ U sysctl_handle_int
+ U pmap_kextract
+ U kernel_pmap_store
+ U kernacc
+ U free
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-num.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-num.txt
new file mode 100644
index 0000000000000..f78bb8eb59743
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-num.txt
@@ -0,0 +1,81 @@
+0000000000004128 t amd64_mrinit
+0000000000003232 t amd64_mrset
+0000000000002400 t amd64_mrfetch
+0000000000002272 t amd64_mem_drvinit
+0000000000002240 t amd64_mrAPinit
+0000000000002176 t amd64_mtrrfixsearch
+0000000000001360 t amd64_mrstoreone
+0000000000001328 t amd64_mrt2mtrr
+0000000000001264 t amd64_mtrrtype
+0000000000001232 t amd64_mtrr2mrt
+0000000000001168 t mem_range_attr_get
+0000000000001120 t mem_range_attr_set
+0000000000000752 d __tunable_int_67
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000704 t memrw
+0000000000000640 d sysctl___machdep_disable_mtrrs
+0000000000000608 t memmmap
+0000000000000608 d amd64memdev_sys_init
+0000000000000576 d amd64_mrops
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000384 d M_MEMDESC
+0000000000000344 d _mem_depend_on_kernel
+0000000000000320 d mem_mod
+0000000000000312 d _mem_version
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000272 t memioctl
+0000000000000256 d _mod_metadata_md_mem
+0000000000000224 d memmodule_sys_init
+0000000000000224 t dev_mem_md_init
+0000000000000192 t memopen
+0000000000000192 d _mod_metadata_mem_version
+0000000000000040 b mtrr_physmask
+0000000000000032 b mtrrdef
+0000000000000032 r mem_owner_bios
+0000000000000024 b mtrrcap
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000016 b mtrrs_disabled
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000008 b kmemdev
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000000 b memdev
+0000000000000000 t mem_modevent
+0000000000000000 d mem_cdevsw
+0000000000000000 r amd64_mtrrtomrt
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+ U uiomove
+ U tunable_int_init
+ U sysctl_handle_int
+ U sysctl__machdep_children
+ U strcpy
+ U strcmp
+ U securelevel_gt
+ U printf
+ U pmap_kextract
+ U pmap_extract
+ U panic
+ U module_register_init
+ U minor
+ U mem_range_softc
+ U malloc_uninit
+ U malloc_init
+ U malloc
+ U make_dev
+ U kernel_pmap_store
+ U kernacc
+ U free
+ U destroy_dev
+ U cpu_vendor
+ U cpu_id
+ U cpu_feature
+ U cpu_exthigh
+ U copyout
+ U copyin
+ U bootverbose
+ U bcopy
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-size.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-size.txt
new file mode 100644
index 0000000000000..e6d95dd641c3c
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse-size.txt
@@ -0,0 +1,51 @@
+0000000000000891 t amd64_mrset
+0000000000000821 t amd64_mrfetch
+0000000000000814 t amd64_mrstoreone
+0000000000000532 t amd64_mrinit
+0000000000000413 t memrw
+0000000000000323 t memioctl
+0000000000000184 d mem_cdevsw
+0000000000000179 t mem_modevent
+0000000000000128 d M_MEMDESC
+0000000000000115 t amd64_mem_drvinit
+0000000000000090 t memmmap
+0000000000000080 d sysctl___machdep_disable_mtrrs
+0000000000000063 t mem_range_attr_get
+0000000000000050 t amd64_mtrrtype
+0000000000000050 t amd64_mtrrfixsearch
+0000000000000044 t mem_range_attr_set
+0000000000000034 t dev_mem_md_init
+0000000000000032 t amd64_mrAPinit
+0000000000000031 t memopen
+0000000000000028 r amd64_mtrrtomrt
+0000000000000028 t amd64_mrt2mtrr
+0000000000000026 t amd64_mtrr2mrt
+0000000000000024 d memmodule_sys_init
+0000000000000024 d mem_mod
+0000000000000024 d amd64memdev_sys_init
+0000000000000024 d amd64_mrops
+0000000000000024 d _mod_metadata_mem_version
+0000000000000024 d _mod_metadata_md_mem_on_kernel
+0000000000000024 d _mod_metadata_md_mem
+0000000000000024 d __Tunable_init_67_sys_init
+0000000000000024 d M_MEMDESC_uninit_sys_uninit
+0000000000000024 d M_MEMDESC_init_sys_init
+0000000000000016 d __tunable_int_67
+0000000000000012 d _mem_depend_on_kernel
+0000000000000008 b mtrrdef
+0000000000000008 b mtrrcap
+0000000000000008 b mtrr_physmask
+0000000000000008 b memdev
+0000000000000008 r mem_owner_bios
+0000000000000008 b kmemdev
+0000000000000008 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000008 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000008 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000008 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000008 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000004 b mtrrs_disabled
+0000000000000004 d _mem_version
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-reverse.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse.txt
new file mode 100644
index 0000000000000..96ef9af74bf57
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-reverse.txt
@@ -0,0 +1,81 @@
+ U uiomove
+ U tunable_int_init
+ U sysctl_handle_int
+ U sysctl__machdep_children
+0000000000000640 d sysctl___machdep_disable_mtrrs
+ U strcpy
+ U strcmp
+ U securelevel_gt
+ U printf
+ U pmap_kextract
+ U pmap_extract
+ U panic
+0000000000000016 b mtrrs_disabled
+0000000000000032 b mtrrdef
+0000000000000024 b mtrrcap
+0000000000000040 b mtrr_physmask
+ U module_register_init
+ U minor
+0000000000000704 t memrw
+0000000000000192 t memopen
+0000000000000224 d memmodule_sys_init
+0000000000000608 t memmmap
+0000000000000272 t memioctl
+0000000000000000 b memdev
+ U mem_range_softc
+0000000000001120 t mem_range_attr_set
+0000000000001168 t mem_range_attr_get
+0000000000000032 r mem_owner_bios
+0000000000000000 t mem_modevent
+0000000000000320 d mem_mod
+0000000000000000 d mem_cdevsw
+ U malloc_uninit
+ U malloc_init
+ U malloc
+ U make_dev
+0000000000000008 b kmemdev
+ U kernel_pmap_store
+ U kernacc
+ U free
+0000000000000224 t dev_mem_md_init
+ U destroy_dev
+ U cpu_vendor
+ U cpu_id
+ U cpu_feature
+ U cpu_exthigh
+ U copyout
+ U copyin
+ U bootverbose
+ U bcopy
+0000000000000608 d amd64memdev_sys_init
+0000000000001264 t amd64_mtrrtype
+0000000000000000 r amd64_mtrrtomrt
+0000000000002176 t amd64_mtrrfixsearch
+0000000000001232 t amd64_mtrr2mrt
+0000000000001328 t amd64_mrt2mtrr
+0000000000001360 t amd64_mrstoreone
+0000000000003232 t amd64_mrset
+0000000000000576 d amd64_mrops
+0000000000004128 t amd64_mrinit
+0000000000002400 t amd64_mrfetch
+0000000000002240 t amd64_mrAPinit
+0000000000002272 t amd64_mem_drvinit
+0000000000000192 d _mod_metadata_mem_version
+0000000000000288 d _mod_metadata_md_mem_on_kernel
+0000000000000256 d _mod_metadata_md_mem
+0000000000000312 d _mem_version
+0000000000000344 d _mem_depend_on_kernel
+0000000000000752 d __tunable_int_67
+0000000000000000 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000000 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000016 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000024 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000000 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000000 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000016 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000720 d __Tunable_init_67_sys_init
+0000000000000512 d M_MEMDESC_uninit_sys_uninit
+0000000000000544 d M_MEMDESC_init_sys_init
+0000000000000384 d M_MEMDESC
diff --git a/test/nm/ts/nm_shared_object2/test_ko-sort-size.txt b/test/nm/ts/nm_shared_object2/test_ko-sort-size.txt
new file mode 100644
index 0000000000000..87110bd70d911
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-sort-size.txt
@@ -0,0 +1,51 @@
+0000000000000004 d _mem_version
+0000000000000004 b mtrrs_disabled
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_md_mem_on_kernel
+0000000000000008 r __set_modmetadata_set_sym__mod_metadata_mem_version
+0000000000000008 r __set_sysctl_set_sym_sysctl___machdep_disable_mtrrs
+0000000000000008 r __set_sysinit_set_sym_M_MEMDESC_init_sys_init
+0000000000000008 r __set_sysinit_set_sym___Tunable_init_67_sys_init
+0000000000000008 r __set_sysinit_set_sym_amd64memdev_sys_init
+0000000000000008 r __set_sysinit_set_sym_memmodule_sys_init
+0000000000000008 r __set_sysuninit_set_sym_M_MEMDESC_uninit_sys_uninit
+0000000000000008 b kmemdev
+0000000000000008 r mem_owner_bios
+0000000000000008 b memdev
+0000000000000008 b mtrr_physmask
+0000000000000008 b mtrrcap
+0000000000000008 b mtrrdef
+0000000000000012 d _mem_depend_on_kernel
+0000000000000016 d __tunable_int_67
+0000000000000024 d M_MEMDESC_init_sys_init
+0000000000000024 d M_MEMDESC_uninit_sys_uninit
+0000000000000024 d __Tunable_init_67_sys_init
+0000000000000024 d _mod_metadata_md_mem
+0000000000000024 d _mod_metadata_md_mem_on_kernel
+0000000000000024 d _mod_metadata_mem_version
+0000000000000024 d amd64_mrops
+0000000000000024 d amd64memdev_sys_init
+0000000000000024 d mem_mod
+0000000000000024 d memmodule_sys_init
+0000000000000026 t amd64_mtrr2mrt
+0000000000000028 t amd64_mrt2mtrr
+0000000000000028 r amd64_mtrrtomrt
+0000000000000031 t memopen
+0000000000000032 t amd64_mrAPinit
+0000000000000034 t dev_mem_md_init
+0000000000000044 t mem_range_attr_set
+0000000000000050 t amd64_mtrrfixsearch
+0000000000000050 t amd64_mtrrtype
+0000000000000063 t mem_range_attr_get
+0000000000000080 d sysctl___machdep_disable_mtrrs
+0000000000000090 t memmmap
+0000000000000115 t amd64_mem_drvinit
+0000000000000128 d M_MEMDESC
+0000000000000179 t mem_modevent
+0000000000000184 d mem_cdevsw
+0000000000000323 t memioctl
+0000000000000413 t memrw
+0000000000000532 t amd64_mrinit
+0000000000000814 t amd64_mrstoreone
+0000000000000821 t amd64_mrfetch
+0000000000000891 t amd64_mrset
diff --git a/test/nm/ts/nm_shared_object2/test_ko-undef.txt b/test/nm/ts/nm_shared_object2/test_ko-undef.txt
new file mode 100644
index 0000000000000..892bf3b0fcd70
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko-undef.txt
@@ -0,0 +1,30 @@
+ U bcopy
+ U bootverbose
+ U copyin
+ U copyout
+ U cpu_exthigh
+ U cpu_feature
+ U cpu_id
+ U cpu_vendor
+ U destroy_dev
+ U free
+ U kernacc
+ U kernel_pmap_store
+ U make_dev
+ U malloc
+ U malloc_init
+ U malloc_uninit
+ U mem_range_softc
+ U minor
+ U module_register_init
+ U panic
+ U pmap_extract
+ U pmap_kextract
+ U printf
+ U securelevel_gt
+ U strcmp
+ U strcpy
+ U sysctl__machdep_children
+ U sysctl_handle_int
+ U tunable_int_init
+ U uiomove
diff --git a/test/nm/ts/nm_shared_object2/test_ko.uu b/test/nm/ts/nm_shared_object2/test_ko.uu
new file mode 100644
index 0000000000000..f9a1fd372ea0f
--- /dev/null
+++ b/test/nm/ts/nm_shared_object2/test_ko.uu
@@ -0,0 +1,330 @@
+begin 644 test_ko
+M?T5,1@(!`0D```````````$`/@`!`````````````````````````"@9````
+M`````````$```````$``%@`3`%6#_@%(B>5T>S'`@_X"=`:%]K`M=`+)PXL%
+M`````(7`=7[H`````$G'P0````!!N*`!``"Y`@```#'2,?9(Q\<`````,<#H
+M`````$G'P0````!(B04`````0;B@`0``N0(````QTKX!````2,?'`````#'`
+MZ`````!(B04`````R3'`PTB+/0````#H`````$B+/0````#H`````,DQP,-(
+MQ\<`````,<#H`````.EO____9F9FD&9FD&9FD&9FD%6#Y@)(B>5U!\DQP,-F
+M9I!(B[D@`0``R3'VZ0````"054B+!0````!(B>5(A<!T$$R+&$C'QP````#)
+M0?_C9I#)PV9F9I!F9F:09F:09F:05;\R;1#`N3-M$(!(B>5(@^PP2#G^3(EM
+M^$F)U0^5PD@YSDB)7>A,B67P#Y7`NQD```"$T'4J2(,]``````"S+70>BP4`
+M````LP:%P'022#G.=!TPVT@Y_G1=9F:09F:0B=A,BV7P2(M=Z$R+;?C)P[H"
+M````2,?&`````+\@````Z`````!)BWT`NB````!(B<9)B<3H`````(7`B<-!
+MQD0D&P!T<DC'Q@````!,B>?H`````.NI03E%"(G"00].50B%THE5Y'Y(2&/Z
+M2,?&`````+H"````2,'G!>@`````2(UUY$B)QTF)Q.@`````A<")PW0U2,?&
+M`````$R)Y^@`````BT7D08E%".E/____,=N)1>3K[4F-=0A,B>?H`````(G#
+MZ7O___](8U7D28MU`$R)YTC!X@7H`````(G#Z[-F9F:09F:09F:09F:054B)
+MY4B#["!(B5WH3(EE\$B)^TR);?A)B?1)B=7H`````(7`=1I-B64`2(M=Z$R+
+M9?`QP$R+;?C)PV9FD&9FD$B)W^@`````_\AUWDR)Y^@`````28E%`.O09F:0
+M9F:054B)Y4%7059!544Q[4%428GT4TB#[`A(B7W09F:09I!!BT0D&(7`#Y_"
+M187M#Y3`A-`/A!$!``!)BQPD2(-["`!U+4B-0Q!)B00D08M$)`C_R(7`08E$
+M)`AYQ4C'QP`````QP.@`````9F9FD&9FD$B+?=#H`````(7`=3Q)BWPD$(GX
+MO@`0``!,B>(E_P\``"G&08M$)!@YQ@]'\$BX``````#___^)]D@)Q^@`````
+M08G%Z6?___](BWW0Z`````#_R`^%5O___TV+="002+H```````$``$F-!!9(
+MNO____]_````2#G0#X:;````3(M["$R)\TBX____?_____](@>,`\/__2#G#
+M=C9/C:P^_P\``$F!Y0#P__],.>MR#NLX2('#`!```$DYW78L2(G>2,?'````
+M`.@`````2(7`=>!!O0X```!(@\0(1(GH6T%<05U!7D%?R<-!@WPD(`%$B?Y,
+MB?<9TH/"`N@`````A<!TSDR)XD2)_DR)]^@`````08G%Z97^__](O_______
+M````3"'WZ>7^__^0D)!52(L%`````$B)Y4B%P'052(GR3(M8"$B)_LE(Q\<`
+M````0?_CR;@M````PV9F9I!52(,]``````"X+0```$B)Y700BP:%P'4,BP4`
+M````B08QP,G#2(G^2(L]`````$ACT$C!X@7H`````,DQP,.058/_!K@@````
+M2(GE=PI(8\>+!(4`````R<-F9I!F9I!5@>?___\`,<E(B>5F9F:0BQ2-````
+M`(G(@_H@=`0YUW0.2/_!2(/Y!W7EN/_____)PV9F9I!F9F:09F:09F:054B)
+MY5.)\^BT____B<(/ML-;R0^VRO_"#T7!PV9F9I!52(GE05=!5D%505132(/L
+M0$B)?:A,BV\0#R#@B<*$P$B)5:!Y"HG`)7____\/(N`/(,!()?___Y](#0``
+M`$`/(L`/";G_`@``#S)(P>(@)?_W__]("=!(B<)(P>H@#S!(BTVH,=+V00@!
+M#X0B`0``3(EML$&X4`(``$2)P0\R28G73(MEL(G`2<'G($&^.````$D)QS'`
+M08N\)/````!$B?%,B?Y(B<-(T^Y$B4682,'C"$&#[@A)@^P@Z"#___](F$2+
+M19A("=A!@_[X=<A(B<)$B<%(P>H@#S!(@46P``$``$&!^%`"```/A38"``!)
+M@<4``0``0;]8`@``3(EMT$R);<!$B?D/,DF)UDR+9<")P$G!YB!!O3@```!)
+M"<8QP$&+O"3P````1(GI3(GV2(G#2-/N08/M"$C!XPA)@^P@Z)G^__](F$@)
+MV$&#_?AUT$B)PD2)^4C!ZB`/,$B!1<```0``08'_60(```^$)P$``$'_Q^N-
+M3(MMR$B+1:A)@<4`"```3(GJ2"M0$$C!^@5(BTVH1(M)#$ECP4@YT`^.M```
+M`$R+-0````!!O``"``#K4C'V,=*)\$2)X0\P,?8QTD6%P'0628M%"$CWV$PA
+M\(#,"$B)PHG&2,'J($&-3"0!B?`/,$B+5:A)@\4@3(GH2"M"$$ECT4C!^`5(
+M.=!]5T&#Q`)$B>$/,D&+?1!!B?A!@>`````(=)E(B=9,B?-)(UT`B<!(P>8@
+M2`G&Z*S]__](F$6+11!("=A(B<*)QDB+1:A(P>H@08'@````"$2+2`SI7___
+M_P\)N?\"```/,HG`2,'B((#,"$@)T$B)PDC!ZB`/,`\@P$@E____GP\BP$B+
+M3:`/(N%(@\1`6T%<05U!7D%?R<-(BT700;]H`@``2`4``@``2(E%R$B)1;A$
+MB?D/,DF)UDR+9;B)P$G!YB!!O3@```!)"<8QP)!!B[PD\````$2)Z4R)]DB)
+MPTC3[D&#[0A(P>,(28/L(.CK_/__2)A("=A!@_WX==!(B<)$B?E(P>H@#S!(
+M@46X``$``$&!_V\"```/A%?^__]!_\?KC$'_P.E,_?__9I!52(M'$#')2(GE
+MZP]F9F:0_\&#^5AT%TB#P"!(BQ!(.?)W[4@#4`A(.=9SY,G#R3'`PV9F9I!F
+M9F:09F:09F:054B)Y>B'_/__2(L%`````+G_`@``2(G"2,'J(`\PR<.+!0``
+M``!52(GEA<!U2O8%`````!!T08L%`````"4`#P``/0`&```/E<(]``\```^5
+MP(30=2)(Q\8`````2,?'`````.@`````A<!U#4C'!0``````````R<-(Q\8`
+M````2,?'`````.@`````A<!TW.OE9F9FD&9FD&9FD&9FD%4QTDB)Y4%7059!
+M54%44TB#["A(B7VX]D<(`4R+;Q`/A$$!``!,B6W`0;]0`@``1(GY#S))B=1(
+MBUW`B<!)P>0@13'V20G$ZQ%!_\9(@\,@08/^"'1#2<'L"$$/MOSH#?O__XM3
+M$`T````(@>(```#_"<*`>Q0`B5,0=<U(BS4`````2(U[%$'_QDB#PR#H````
+M`$&#_@AUO4B!1<```0``08'_4`(```^%?@(``$F!Q0`!``!!OE@"``!,B6W(
+M38GO1(GQ#S))B=2)P$R)^TG!Y"!%,>U)"<3K%F9FD&:00?_%2(/#($&#_0AT
+M0TG![`A!#[;\Z';Z__^+4Q`-````"('B````_PG"@'L4`(E3$'7-2(LU````
+M`$B->Q1!_\5(@\,@Z`````!!@_T(=;U)@<<``0``08'^60(```^$2@$``$'_
+MQNEV____3(MMT$B+1;A)@<4`"```3(GJ2"M0$$C!^@5(BTVX2&-!#$@YT`^.
+M"`$``$&^``(``$F_````"/\```#I@````&9F9I")V`T````(08E%$$B)T$F+
+M30!((?!(@<[_#P``2/?02"'P]\'_#P``2(U0`4F)50AU$TB!^O\/``!V"DB%
+MPG4%2(7!=`A!@4T0````$$F+11!,(?A(/0````AT?DB+5;A)@\4@3(GH2"M"
+M$$AC4@Q(P?@%2#G0?7=!@\8"1(GQ#S))B=1!BUT0B<!)P>0@20G$00^V_('C
+M````_^A`^?__"<-!C4X!08E=$$B+-0````!)(?1-B64`#S)(P>(@B<!("<+V
+MQ@@/A33___]!BT40)?____?I+?___TB+-0````!)C7T4Z`````#I;?___TB#
+MQ"A;05Q!74%>05_)PTB+1<A!OF@"``!(!0`"``!(B47028G'1(GQ#S))B=2)
+MP$R)^TG!Y"!%,>U)"<3K$V:00?_%2(/#($&#_0AT0TG![`A!#[;\Z);X__^+
+M4Q`-````"('B````_PG"@'L4`(E3$'7-2(LU`````$B->Q1!_\5(@\,@Z```
+M``!!@_T(=;U)@<<``0``08'^;P(```^$*/[__T'_QNEY____0?_'D.GZ_/__
+M9F9FD&9F9I!F9I!52(GE05=!5D%528G]05132(GS2(/L"(L2A=(/A6@!``!(
+MBP[WP?\/```/A:@"``!(BT8(2#W_#P``#X:8`@``2(U0_TB%T`^%BP(``$B%
+MT0^%@@(``(M^$.CR]____\`/A'("``!%,<`QTD'V10@!#X6,`0``18M5#$F+
+M11!%.=`/C9L"``!(C30013')ZWQ(BSY(BQ-(.=</A%$"```/AG`"``!(`U,(
+M2#G7<U*)SXM#$('G____`(/A(`^%%@(``(G!@>'___\`J"`/A08"```YSW0J
+M@_\(#Y3"@_D!#Y3`A-!U&H/Y"`^4PO_/#Y3`A-`/A-\!``!F9F:09F:00?_`
+M13G0=")(@\8@BTX0]\$````(#X5U____387)3`]$SD'_P$4YT'7>3(G.2(7V
+M#X3L`0``2(L#2(U[%+H(````2(D&2(M#"$B)1@B+0Q`E____``T````(B480
+M2(/&%.@`````^DR)[^A!]___^TR)[^A(^___,<!(@\0(6T%<05U!7D%?R</_
+MRK@M````=>B+=PQ(BU<0A?9^44B+"S'`ZPK_P#GP=$1(@\(@2#D*=?%(BWL(
+M2#EZ"'7G2(72="R+2A"X`0```/?!````('6H]\$```!`L!!UGH'A____]\9"
+M%`")2A#I>/___TB#Q`BX`@```%M!7$%=05Y!7\G#2(LS0;!89KH`"TB)\$@#
+M0PA(/0``$``/AU?^__],B>_HN?G__TB%P$F)Q`^$I0```$B+<PA(`S-,B>](
+M_\[HF_G__TB%P$F)Q@^$AP```(M+$(7)#X@,`0``23G$#X<!____08M$)!!,
+MB>(E____`(/X('4:Z>(```!F9F:0BT(0)?___P"#^"`/A,T```!(@\(@23G6
+M<^9,C7L408M4)!"+0Q!)C70D%$R)_X'B````^R7___\`"="Z"````$&)1"00
+M28/$(.@`````33GF<\OICO[__TB#Q`BX%@```%M!7$%=05Y!7\G#9F9FD$B+
+M1@A(.T,(=#)(`?A(.<(/@JC]__](.=</@O']__^0Z9#]__](BT8(9F9FD&9F
+MD.O8N!P```#I3O[___?!````0+@0````#X4]_O__BU,0A=(/B.7]__^!X?__
+M_P"P#8/Y(`^%U/W__^D<_O__N`T```#I$O[__TDYQ&9FD&:0#X8D____Z>O]
+M__]F9I!FD%6Y_@```$B)Y4%5051)B?Q32(/L&`\R2(G7B<!FN?\"2,'G($@)
+MQTB)/0`````/,DB)UHG`2,'F($@)QO?&``@``$B)-0````!U&8L]`````(7_
+M#X6C`0``2(/$&%M!7$%=R<-$#[;O@3T`````!P``@$BX`/#__P\````/ASL!
+M``#WQP`!``!(B04`````=!7WQ@`$``!T#4''1"0(`0```$&#Q5A)8_VZ`@$`
+M`$C'Q@````!(P><%Z`````!!]D0D"`%)B40D$$6);"0,#X2A````2(G",<EF
+M9F:09F:02(D*2('!```!`$C'0@@```$`QT(0````(TB#PB!(@?D```@`==I(
+MB<)F9F:09F:02(F*``$``$B!P0!```!(QX((`0```$```,>"$`$``````"-(
+M@\(@2('Y```,`'70N@``#`!(B9```P``2('"`!```$C'@`@#````$```QX`0
+M`P``````(TB#P"!(@?H``!``==!,B>?HP_?__T&+="0,28M4)!"%]@^.RO[_
+M_S')ZP1(@\(@BT(0J0````AT"`T````$B4(0_\%!.4PD#'_A2(/$&%M!7$%=
+MR<.X"```@`^BB470B4W8#[;(N`$```")7=2)5=Q(T^!(_\A()0#P___WQP`!
+M``!(B04`````#X2O_O__Z97^__](@\082,?'`````#'`6T%<05W)Z0``````
+M```````````````!`````@```"`````@````!````!`````(````````````
+M````````;65M.B`\;65M;W)Y/@H`;65M`&MM96T`:V5R;F5L`&UE;7)W`&UE
+M;61E<V,`1V5N=6EN94EN=&5L`$%U=&AE;G1I8T%-1`!"24]3`&1I<V%B;&5?
+M;71R<G,`20!$:7-A8FQE(&%M9#8T($U44E)S+@!M86-H9&5P+F1I<V%B;&5?
+M;71R<G,`````````````````````````````````````````````````````
+M``````````````````````````````````!#4%4@<W5P<&]R=',@35124G,@
+M8G5T(&YO="!E;F%B;&5D"@`````````````````%(`,7"`!`````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M```````````````````````````````````````````````````````!````
+M`P``````````````````````````````````````$`,````!````````````
+M`````````````````````0````(`````````````````````````````````
+M```!`````0`````````````````````````!````````````````````````
+M`````````````````"0U#``D-0P`G[L-````````````````````````````
+M````````````````````````````````````````````````````````````
+M``````````````#I^%0T````````````````````````````````````````
+M````````````````````````````````````````````````````````````
+M````@`'___\/``````````````````````````````````"``0$`````````
+M````````````````````````````````````````````````````````````
+M````````````$`,`````````````````````````````````````````````
+M`````````````/____\"``B`````````````````````````````````````
+M`````````````````````````````````````````'```````0``````````
+M````````````````````````````````````````````)$9R965"4T0Z('-R
+M8R]S>7,O9&5V+VUE;2]M96UD978N8RQV(#$N,R`R,#`T+S`X+S`T(#$X.C,P
+M.C,Q(&UA<FMM($5X<"`D`$=#0SH@*$=.52D@-"XR+C$@,C`P-S`W,3D@(%M&
+M<F5E0E-$70``)$9R965"4T0Z('-R8R]S>7,O86UD-C0O86UD-C0O;65M+F,L
+M=B`Q+C$R,B`R,#`X+S`S+S$R(#(Q.C0S.C4P(&IH8B!%>'`@)`!'0T,Z("A'
+M3E4I(#0N,BXQ(#(P,#<P-S$Y("!;1G)E94)31%T``"1&<F5E0E-$.B!S<F,O
+M<WES+V1E=B]M96TO;65M=71I;"YC+'8@,2XQ(#(P,#0O,#@O,#0@,3@Z,S`Z
+M,S$@;6%R:VT@17AP("0`1T-#.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R
+M965"4T1=```D1G)E94)31#H@<W)C+W-Y<R]A;60V-"]A;60V-"]A;60V-%]M
+M96TN8RQV(#$N,CD@,C`P."\P,R\Q,B`R,CHP.3HQ.2!J:&(@17AP("0`1T-#
+M.B`H1TY5*2`T+C(N,2`R,#`W,#<Q.2`@6T9R965"4T1=```N<WEM=&%B`"YS
+M=')T86(`+G-H<W1R=&%B`"YR96QA+G1E>'0`+G)E;&$N<F]D871A`"YR;V1A
+M=&$N<W1R,2XQ`"YR96QA<V5T7VUO9&UE=&%D871A7W-E=``N<F5L87-E=%]S
+M>7-I;FET7W-E=``N<F5L87-E=%]S>7-U;FEN:71?<V5T`"YR;V1A=&$N<W1R
+M,2XX`"YR96QA<V5T7W-Y<V-T;%]S970`+G)E;&$N9&%T80`N8G-S`"YC;VUM
+M96YT````````````````````````````````````````````````````````
+M````````````````````````````````(`````$````&````````````````
+M````0``````````T$@``````````````````$````````````````````!L`
+M```$``````````````````````````@M````````*`@````````4`````0``
+M``@`````````&``````````K`````0````(```````````````````"`$@``
+M`````"@````````````````````0````````````````````)@````0`````
+M````````````````````,#4````````8`````````!0````#````"```````
+M```8`````````#,````!````,@```````````````````*@2````````AP``
+M``````````````````$``````````0````````!'`````0````(`````````
+M```````````P$P```````!@````````````````````(````````````````
+M````0@````0`````````````````````````2#4```````!(`````````!0`
+M```&````"``````````8`````````&`````!`````@``````````````````
+M`$@3````````(`````````````````````@```````````````````!;````
+M!`````````````````````````"0-0```````&``````````%`````@````(
+M`````````!@`````````=0````$````"````````````````````:!,`````
+M```(````````````````````"````````````````````'`````$````````
+M`````````````````/`U````````&``````````4````"@````@`````````
+M&`````````"'`````0```#(```````````````````!P$P```````"0`````
+M```````````````(``````````$`````````FP````$````"````````````
+M````````F!,````````(````````````````````"```````````````````
+M`)8````$``````````````````````````@V````````&``````````4````
+M#0````@`````````&`````````"O`````0````,```````````````````"@
+M$P`````````#```````````````````@````````````````````J@````0`
+M````````````````````````(#8```````!(`P```````!0````/````"```
+M```````8`````````+4````(`````P```````````````````*`6````````
+M,`````````````````````@```````````````````"Z`````0``````````
+M``````````````"@%@```````,0!```````````````````!````````````
+M````````$0````,`````````````````````````9!@```````##````````
+M`````````````0````````````````````$````"````````````````````
+M`````*@>````````N`@````````5````/P````@`````````&``````````)
+M`````P````````````````````````!@)P```````*0%````````````````
+M```!````````````````````````````````````````````````````````
+M``,``0````````````````````````````,``P``````````````````````
+M``````,`!0````````````````````````````,`#```````````````````
+M``````````,`#P````````````````````````````,`$0``````````````
+M`````````0````(``0```````````+,`````````#@````$`#P``````````
+M`+@`````````&0````$`$0````````````@`````````(`````$`$0`(````
+M``````@`````````*`````$`!@````````````@`````````7`````$`#P#`
+M`````````!@`````````=@````$`"`````````````@`````````GP````$`
+M#P#@`````````!@`````````L@````$`!@`(``````````@`````````X0``
+M``$`#P```0```````!@`````````]@````$`!@`0``````````@`````````
+M+P$```$`#P`@`0```````!@`````````3@$```$`#P`X`0````````0`````
+M````6P$```$`#P!``0```````!@`````````8P$```$`#P!8`0````````P`
+M````````>0$```$`"@````````````@`````````K0$```$`#P```@``````
+M`!@`````````R0$```$`"``(``````````@`````````]P$```$`#P`@`@``
+M`````!@`````````#P(```(``0#0!````````!H`````````'@(```$``P``
+M`````````!P`````````+@(```(``0#P!````````#(`````````/0(```(`
+M`0`P!0```````!P`````````3`(```(``0!0!0```````"X#````````70(`
+M``$`$0`H``````````@`````````:P(```(``0"`"````````#(`````````
+M?P(```(``0#`"````````"``````````C@(```$`$0`@``````````@`````
+M````E@(```(``0#@"````````',`````````J`(```$`$0`0``````````0`
+M````````MP(```$`#P!``@```````!@`````````PP(```(``0!@"0``````
+M`#4#````````T0(```$``P`@``````````@`````````X`(```(``0"@#```
+M`````'L#````````[`(```(``0`@$````````!0"````````^0(```$`$0`8
+M``````````@``````````0,```$`"``0``````````@`````````+`,```$`
+M#P!@`@```````!@`````````00,```$`#0````````````@`````````=0,`
+M``$`#P"``@```````%``````````E`,```$`"``8``````````@`````````
+MQ0,```$`#P#0`@```````!@`````````X`,```$`#P#P`@```````!``````
+M````\0,```$`#P"``0```````(``````````^P,```(``0!@`@```````%H`
+M`````````P0```(``0#``````````!\`````````"P0```(``0!@!```````
+M`"P`````````'@0```(``0"0!````````#\`````````,00```(``0#@````
+M`````"(`````````000```(``0`0`0```````$,!````````2@0```(``0#`
+M`@```````)T!``````````````,`!@````````````````````````````,`
+M"`````````````````````````````,`"@``````````````````````````
+M``,`#0````````````````````````````,`$@``````````````````````
+M4`0``!``````````````````````````5P0``!``````````````````````
+M````7@0``!``````````````````````````:@0``!``````````````````
+M````````<`0``!``````````````````````````?`0``!``````````````
+M````````````@P0``!``````````````````````````BP0``!``````````
+M````````````````EP0``!``````````````````````````HP0``!``````
+M````````````````````N`0``!``````````````````````````T00``!``
+M````````````````````````V`0``!``````````````````````````X`0`
+M`!``````````````````````````Z00``!``````````````````````````
+M\`0``!``````````````````````````^P0``!``````````````````````
+M````"@4``!``````````````````````````&@4``!``````````````````
+M````````(`4``!``````````````````````````,04``!``````````````
+M````````````-P4``!``````````````````````````/@4``!``````````
+M````````````````2P4``!``````````````````````````604``!``````
+M````````````````````904``!``````````````````````````=P4``!``
+M````````````````````````A04``!``````````````````````````EP4`
+M`!``````````````````````````GP4``!``````````````````````````
+M`&UE;5]M;V1E=F5N=`!M96U?8V1E=G-W`&UE;61E=@!K;65M9&5V`%]?<V5T
+M7VUO9&UE=&%D871A7W-E=%]S>6U?7VUO9%]M971A9&%T85]M96U?=F5R<VEO
+M;@!?;6]D7VUE=&%D871A7VUE;5]V97)S:6]N`%]?<V5T7W-Y<VEN:71?<V5T
+M7W-Y;5]M96UM;V1U;&5?<WES7VEN:70`;65M;6]D=6QE7W-Y<U]I;FET`%]?
+M<V5T7VUO9&UE=&%D871A7W-E=%]S>6U?7VUO9%]M971A9&%T85]M9%]M96T`
+M7VUO9%]M971A9&%T85]M9%]M96T`7U]S971?;6]D;65T861A=&%?<V5T7W-Y
+M;5]?;6]D7VUE=&%D871A7VUD7VUE;5]O;E]K97)N96P`7VUO9%]M971A9&%T
+M85]M9%]M96U?;VY?:V5R;F5L`%]M96U?=F5R<VEO;@!M96U?;6]D`%]M96U?
+M9&5P96YD7V]N7VME<FYE;`!?7W-E=%]S>7-U;FEN:71?<V5T7W-Y;5]-7TU%
+M341%4T-?=6YI;FET7W-Y<U]U;FEN:70`35]-14U$15-#7W5N:6YI=%]S>7-?
+M=6YI;FET`%]?<V5T7W-Y<VEN:71?<V5T7W-Y;5]-7TU%341%4T-?:6YI=%]S
+M>7-?:6YI=`!-7TU%341%4T-?:6YI=%]S>7-?:6YI=`!A;60V-%]M=')R,FUR
+M=`!A;60V-%]M=')R=&]M<G0`86UD-C1?;71R<G1Y<&4`86UD-C1?;7)T,FUT
+M<G(`86UD-C1?;7)S=&]R96]N90!M=')R7W!H>7-M87-K`&%M9#8T7VUT<G)F
+M:7AS96%R8V@`86UD-C1?;7)!4&EN:70`;71R<F1E9@!A;60V-%]M96U?9')V
+M:6YI=`!M=')R<U]D:7-A8FQE9`!A;60V-%]M<F]P<P!A;60V-%]M<F9E=&-H
+M`&UE;5]O=VYE<E]B:6]S`&%M9#8T7VUR<V5T`&%M9#8T7VUR:6YI=`!M=')R
+M8V%P`%]?<V5T7W-Y<VEN:71?<V5T7W-Y;5]A;60V-&UE;61E=E]S>7-?:6YI
+M=`!A;60V-&UE;61E=E]S>7-?:6YI=`!?7W-E=%]S>7-C=&Q?<V5T7W-Y;5]S
+M>7-C=&Q?7U]M86-H9&5P7V1I<V%B;&5?;71R<G,`<WES8W1L7U]?;6%C:&1E
+M<%]D:7-A8FQE7VUT<G)S`%]?<V5T7W-Y<VEN:71?<V5T7W-Y;5]?7U1U;F%B
+M;&5?:6YI=%\V-U]S>7-?:6YI=`!?7U1U;F%B;&5?:6YI=%\V-U]S>7-?:6YI
+M=`!?7W1U;F%B;&5?:6YT7S8W`$U?345-1$530P!M96UM;6%P`&UE;6]P96X`
+M;65M7W)A;F=E7V%T=')?<V5T`&UE;5]R86YG95]A='1R7V=E=`!D979?;65M
+M7VUD7VEN:70`;65M:6]C=&P`;65M<G<`<W1R8W!Y`'!R:6YT9@!M86QL;V-?
+M:6YI=`!M:6YO<@!C<'5?9F5A='5R90!M86QL;V,`8V]P>6]U=`!C<'5?97AT
+M:&EG:`!D97-T<F]Y7V1E=@!M;V1U;&5?<F5G:7-T97)?:6YI=`!S>7-C=&Q?
+M7VUA8VAD97!?8VAI;&1R96X`8W!U7VED`'5I;VUO=F4`;6%K95]D978`8V]P
+M>6EN`&-P=5]V96YD;W(`<V5C=7)E;&5V96Q?9W0`;65M7W)A;F=E7W-O9G1C
+M`'!A;FEC`'1U;F%B;&5?:6YT7VEN:70`8F-O<'D`<W1R8VUP`'!M87!?97AT
+M<F%C=`!M86QL;V-?=6YI;FET`&)O;W1V97)B;W-E`'-Y<V-T;%]H86YD;&5?
+M:6YT`'!M87!?:V5X=')A8W0`:V5R;F5L7W!M87!?<W1O<F4`:V5R;F%C8P!F
+M<F5E```````:``````````(```!7````_/________\C``````````(````W
+M````_/________\J``````````L````#````#P````````!```````````L`
+M```%``````````````!'``````````(```!,````_/________].````````
+M``L````#````$P````````!5``````````(````&````_/________]N````
+M``````L````%``````````````!U``````````(```!,````_/________]\
+M``````````(````&````!`````````"'``````````(````&````_/______
+M__^,``````````(```!'````_/________^3``````````(````&````!```
+M``````"8``````````(```!'````_/________^C``````````L````#````
+M``````````"J``````````(```!`````_/_________;``````````(```!/
+M````_/_________D``````````(```!0````_/_________V``````````L`
+M``!0``````````````!)`0````````(```!0````^_________]4`0``````
+M``(```!0````"`````````"(`0````````L````R``````````````"2`0``
+M``````(```!$````_/________^F`0````````(```!-````_/________^Y
+M`0````````L````R``````````````#!`0````````(```!<````_/______
+M___?`0````````L````R``````````````#M`0````````(```!$````_/__
+M_______\`0````````(````V````_/________\)`@````````L````R````
+M```````````1`@````````(```!<````_/________\P`@````````(````U
+M````_/________]+`@````````(```!%````_/________]^`@````````(`
+M``!"````_/________^D`@````````(```!"````_/________^P`@``````
+M``(```!9````_/________\>`P````````L````#````'P`````````E`P``
+M``````(```!1````_/________\U`P````````(```!"````_/________]M
+M`P````````(```!+````_/________]^`P````````(```!"````_/______
+M___U`P````````L```!:``````````````#Z`P````````(```!5````_/__
+M______\M!`````````(```!;````_/________\_!`````````(```!+````
+M_/________]D!`````````(```!0````_/________]^!`````````L```!0
+M``````````````"4!`````````(```!0````^_________^K!`````````(`
+M``!0````"`````````"[!`````````(```!0````#`````````#'!```````
+M``(```!3````_/_________D!`````````L````"```````````````#!0``
+M``````L````"``````````````#Y!@````````(````&````)`````````#,
+M"`````````(````&````'`````````#B"`````````(````&````#```````
+M``#P"`````````(```!#````_/_________Y"`````````(```!*````_/__
+M______\9"0````````L````#````+0`````````@"0````````L```!.````
+M```````````E"0````````(```!4````_/________\P"0````````(```!0
+M````^/________\T"0````````L````%````0`(````````]"0````````L`
+M```#````.@````````!$"0````````L```!.``````````````!)"0``````
+M``(```!4````_/_________?"0````````(````"````'`````````#O"0``
+M``````(````_````_/________]V"@````````(````"````'`````````"&
+M"@````````(````_````_/________^="P````````(````&````)```````
+M``#-"P````````(````"````'`````````#6"P````````(````_````_/__
+M______]6#`````````(````"````'`````````!F#`````````(````_````
+M_/________\"#@````````(```!3````_/________]J#P````````(```!3
+M````_/________]*$`````````(````&````%`````````!E$`````````(`
+M```&````'`````````!M$`````````(```!7````_/________^*$```````
+M``(```!&````^/________^K$`````````(````&````)`````````#1$```
+M``````L````R``````````````#:$`````````(```!$````_/________\-
+M$@````````(````&````)``````````C$@````````L````$````````````
+M```P$@````````(```!`````_/________\@``````````$````#````1P``
+M``````````````````$````%````P``````````(``````````$````%````
+M``$````````0``````````$````%````(`$```````````````````$````%
+M````X``````````(``````````$````%````(`(````````0``````````$`
+M```%````8`(````````8``````````$````%````T`(`````````````````
+M``$````%``````(```````````````````$````%````@`(````````(````
+M``````$````#````#P`````````0``````````$````T```````````````H
+M``````````$````Y```````````````P``````````$````Y````````````
+M```X``````````$````X``````````````!(``````````$````S````````
+M``````#(``````````$````%````.`$```````#0``````````$````#````
+M#P````````#H``````````$```!(``````````````#P``````````$````%
+M````0`$````````(`0````````$````%````0`$````````0`0````````$`
+M```#````#P`````````H`0````````$````%````6`$````````P`0``````
+M``$````#````&`````````!``0````````$````#````#P````````!(`0``
+M``````$````!``````````````"X`0````````$````#````)0`````````(
+M`@````````$```!6```````````````0`@````````$````R````````````
+M```H`@````````$```!!```````````````P`@````````$````R````````
+M``````!``@````````$````!````(!````````!(`@````````$````!````
+MH`P```````!0`@````````$````!````P`@```````!H`@````````$````!
+M````X`@```````"``@````````$```!)``````````````"8`@````````$`
+M```&````$`````````"H`@````````$````#````3`````````"P`@``````
+M``$```!8``````````````"X`@````````$````#````6@````````#(`@``
+M``````$````#````7`````````#8`@````````$```!2``````````````#@
+M`@````````$````%````\`(```````#P`@````````$````#````<0``````
+:``#X`@````````$````&````$```````````
+`
+end
diff --git a/test/nm/ts/vector_str/Makefile b/test/nm/ts/vector_str/Makefile
new file mode 100644
index 0000000000000..17595dec91b21
--- /dev/null
+++ b/test/nm/ts/vector_str/Makefile
@@ -0,0 +1,20 @@
+# $Id: Makefile 2085 2011-10-27 05:06:47Z jkoshy $
+TET_ROOT?= /usr/tet
+LIBDIR= $(TET_ROOT)/lib/tet3
+INCDIR= $(TET_ROOT)/inc/tet3
+CSTD= -std=iso9899:1999
+CFLAGS= -I$(INCDIR)
+TC= vector_str-tc
+
+vector_str.o: ../../../vector_str.c
+ $(CC) $(CSTD) -o vector_str.o -c ../../../vector_str.c
+
+$(TC): $(TC).c vector_str.o $(INCDIR)/tet_api.h
+ $(CC) $(CFLAGS) $(CSTD) -o $(TC) $(TC).c vector_str.o $(LIBDIR)/tcm.o \
+ $(LIBDIR)/libapi.a
+
+clean:
+ rm -f *.o $(TC)
+
+lint:
+ lint $(CFLAGS) $(TC) -ltcm
diff --git a/test/nm/ts/vector_str/vector_str-tc.c b/test/nm/ts/vector_str/vector_str-tc.c
new file mode 100644
index 0000000000000..63ef85cc24885
--- /dev/null
+++ b/test/nm/ts/vector_str/vector_str-tc.c
@@ -0,0 +1,392 @@
+/*-
+ * Copyright (c) 2008 Hyogeol Lee <hyogeollee@gmail.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id: vector_str-tc.c 2085 2011-10-27 05:06:47Z jkoshy $
+ */
+
+#include <stdbool.h>
+#include <string.h>
+
+#include <tet_api.h>
+
+#include "../../../vector_str.h"
+
+static void test_find();
+static void test_get_flat();
+static void test_pop();
+static void test_substr();
+static void test_push();
+static void test_push_vector_head();
+static bool init_test_vec1(struct vector_str *);
+static bool init_test_vec2(struct vector_str *);
+
+void (*tet_startup)() = NULL;
+void (*tet_cleanup)() = NULL;
+
+const char *str1 = "TIGER, tiger, burning bright";
+const char *str2 = "In the forests of the night,";
+const char *str3 = "What immortal hand or eye";
+const char *str4 = "Could frame thy fearful symmetry?";
+
+const char *str5 = "TIGER, tiger, burning brightIn the forests of the night,";
+const char *str6 = "In the forests of the night,What immortal hand or eye";
+
+struct tet_testlist tet_testlist[] = {
+ { test_find, 1},
+ { test_get_flat, 2},
+ { test_pop, 3},
+ { test_substr, 4},
+ { test_push, 5},
+ { test_push_vector_head, 6},
+ { NULL, 0}
+};
+
+static void
+test_find()
+{
+ struct vector_str v;
+
+ tet_infoline("test vector_str_find");
+
+ if (init_test_vec1(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_find(NULL, "abc", 3) != -1) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_find(&v, "tiger", 5) == 1) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_find(&v, str1, strlen(str1)) != 1) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_find(&v, str2, strlen(str2)) != 1) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ tet_result(TET_PASS);
+}
+
+static void
+test_get_flat()
+{
+ char *rtn;
+ size_t rtn_len;
+ struct vector_str v;
+
+ tet_infoline("test vector_str_get_flat");
+
+ if (init_test_vec1(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if ((rtn = vector_str_get_flat(NULL, &rtn_len)) != NULL) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if ((rtn = vector_str_get_flat(&v, &rtn_len)) == NULL) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strncmp(str5, rtn, rtn_len) != 0) {
+ tet_infoline(rtn);
+
+ free(rtn);
+
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ free(rtn);
+
+ tet_result(TET_PASS);
+}
+
+static void
+test_pop()
+{
+ size_t size;
+ struct vector_str v;
+
+ tet_infoline("test vector_str_pop");
+
+ if (init_test_vec1(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (v.size == 0) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_pop(NULL) != false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ size = v.size;
+ if (vector_str_pop(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (v.size != size - 1) {
+ tet_infoline("Size mismatch.");
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ tet_result(TET_PASS);
+}
+
+static void
+test_substr()
+{
+ char *rtn;
+ size_t rtn_len;
+ struct vector_str v;
+
+ tet_infoline("test vector_str_substr");
+
+ if (vector_str_init(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v, str1, strlen(str1)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v, str2, strlen(str2)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v, str3, strlen(str3)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v, str4, strlen(str1)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_substr(NULL, 1, 2, NULL) != NULL) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if ((rtn = vector_str_substr(&v, 1, 2, &rtn_len)) == NULL) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strncmp(str6, rtn, rtn_len) != 0) {
+ tet_infoline(rtn);
+ tet_result(TET_FAIL);
+
+ free(rtn);
+
+ return;
+ }
+
+ free(rtn);
+
+ tet_result(TET_PASS);
+}
+
+static void
+test_push()
+{
+ size_t size;
+ struct vector_str v;
+
+ tet_infoline("test vector_str_push");
+
+ if (init_test_vec1(&v) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ size = v.size;
+ if (vector_str_push(NULL, "abc", 3) != false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v, "abc", 3) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (v.size != size + 1) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strncmp(v.container[v.size - 1], "abc", 3) != 0) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ tet_result(TET_PASS);
+}
+
+static void
+test_push_vector_head()
+{
+ char *rtn;
+ size_t rtn_len;
+ struct vector_str v1, v2;
+
+ if (vector_str_init(&v1) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_init(&v2) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v2, str1, strlen(str1)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push(&v1, str2, strlen(str2)) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (vector_str_push_vector_head(&v1, &v2) == false) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if ((rtn = vector_str_get_flat(&v1, &rtn_len)) == NULL) {
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ if (strncmp(str5, rtn, rtn_len) != 0) {
+ tet_infoline(rtn);
+
+ free(rtn);
+
+ tet_result(TET_FAIL);
+
+ return;
+ }
+
+ free(rtn);
+
+ tet_result(TET_PASS);
+}
+
+static bool
+init_test_vec1(struct vector_str *v)
+{
+
+ if (v == NULL)
+ return (false);
+
+ if (vector_str_init(v) == false)
+ return (false);
+
+ if (vector_str_push(v, str1, strlen(str1)) == false)
+ return (false);
+
+ if (vector_str_push(v, str2, strlen(str2)) == false)
+ return (false);
+
+ return (true);
+}
+
+static bool
+init_test_vec2(struct vector_str *v)
+{
+
+ if (v == NULL)
+ return (false);
+
+ if (vector_str_init(v) == false)
+ return (false);
+
+ if (vector_str_push(v, str3, strlen(str3)) == false)
+ return (false);
+
+ if (vector_str_push(v, str4, strlen(str4)) == false)
+ return (false);
+
+ return (true);
+}