summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc13
-rw-r--r--bin/test/test.158
-rw-r--r--bin/test/test.c184
-rw-r--r--cddl/contrib/opensolaris/cmd/zinject/translate.c15
-rw-r--r--cddl/contrib/opensolaris/cmd/zinject/zinject.c32
-rw-r--r--cddl/contrib/opensolaris/lib/libzpool/common/kernel.c29
-rw-r--r--cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h33
-rw-r--r--contrib/expat/Changes80
-rw-r--r--contrib/expat/FREEBSD-Xlist19
-rw-r--r--contrib/expat/FREEBSD-upgrade111
-rw-r--r--contrib/expat/MANIFEST23
-rw-r--r--contrib/expat/Makefile.in90
-rw-r--r--contrib/expat/README14
-rwxr-xr-xcontrib/expat/configure22017
-rw-r--r--contrib/expat/configure.in17
-rw-r--r--contrib/expat/doc/reference.html61
-rw-r--r--contrib/expat/doc/valid-xhtml10.pngbin2368 -> 0 bytes
-rw-r--r--contrib/expat/doc/xmlwf.sgml5
-rw-r--r--contrib/expat/expat_config.h.in14
-rw-r--r--contrib/expat/lib/expat.h39
-rw-r--r--contrib/expat/lib/winconfig.h30
-rw-r--r--contrib/expat/lib/xmlparse.c367
-rw-r--r--contrib/expat/lib/xmlrole.c2
-rw-r--r--contrib/expat/lib/xmltok.c6
-rw-r--r--contrib/expat/lib/xmltok_impl.c2
-rw-r--r--contrib/expat/tests/README.txt5
-rw-r--r--contrib/expat/tests/benchmark/benchmark.dsp88
-rw-r--r--contrib/expat/tests/benchmark/benchmark.dsw44
-rw-r--r--contrib/expat/tests/minicheck.h9
-rw-r--r--contrib/expat/tests/runtests.c3
-rwxr-xr-xcontrib/expat/tests/xmltest.sh7
-rw-r--r--contrib/expat/xmlwf/readfilemap.c2
-rw-r--r--contrib/expat/xmlwf/xmlwf.c4
-rwxr-xr-xetc/rc.d/rtadvd2
-rw-r--r--lib/libc/gen/opendir.c51
-rw-r--r--lib/libexpat/expat_config.h23
-rw-r--r--lib/libexpat/libbsdxml.34
-rw-r--r--sbin/fsck_ffs/fsutil.c4
-rw-r--r--sbin/fsdb/fsdbutil.c4
-rw-r--r--sbin/hastctl/hastctl.c6
-rw-r--r--sbin/hastd/control.c18
-rw-r--r--sbin/hastd/hast.h12
-rw-r--r--sbin/hastd/primary.c18
-rw-r--r--sbin/hastd/secondary.c18
-rw-r--r--sys/arm/ti/ti_gpio.c27
-rw-r--r--sys/boot/common/bootstrap.h2
-rw-r--r--sys/boot/common/module.c36
-rw-r--r--sys/boot/fdt/fdt_loader_cmd.c58
-rw-r--r--sys/cddl/compat/opensolaris/sys/time.h3
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c24
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c122
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h1
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h6
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h11
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h1
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h2
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h9
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h12
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h2
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c38
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c14
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c65
-rw-r--r--sys/conf/files2
-rw-r--r--sys/dev/ath/ath_hal/ah.h2
-rw-r--r--sys/dev/ath/ath_hal/ar5210/ar5210.h1
-rw-r--r--sys/dev/ath/ath_hal/ar5210/ar5210_attach.c1
-rw-r--r--sys/dev/ath/ath_hal/ar5210/ar5210_misc.c6
-rw-r--r--sys/dev/ath/ath_hal/ar5211/ar5211.h2
-rw-r--r--sys/dev/ath/ath_hal/ar5211/ar5211_attach.c1
-rw-r--r--sys/dev/ath/ath_hal/ar5211/ar5211_misc.c6
-rw-r--r--sys/dev/ath/ath_hal/ar5212/ar5212.h1
-rw-r--r--sys/dev/ath/ath_hal/ar5212/ar5212_attach.c1
-rw-r--r--sys/dev/ath/ath_hal/ar5212/ar5212_misc.c6
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416.h1
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_attach.c1
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_misc.c14
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_reset.c31
-rw-r--r--sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c14
-rw-r--r--sys/dev/ath/if_ath.c33
-rw-r--r--sys/dev/ath/if_ath_tx_ht.c17
-rw-r--r--sys/dev/ath/if_athvar.h8
-rw-r--r--sys/dev/ciss/ciss.c15
-rw-r--r--sys/dev/cxgbe/adapter.h2
-rw-r--r--sys/dev/cxgbe/common/common.h8
-rw-r--r--sys/dev/cxgbe/common/t4_hw.c50
-rw-r--r--sys/dev/cxgbe/common/t4_msg.h18
-rw-r--r--sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu7600
-rw-r--r--sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu8237
-rw-r--r--sys/dev/cxgbe/firmware/t4fw_interface.h184
-rw-r--r--sys/dev/cxgbe/t4_main.c40
-rw-r--r--sys/dev/cxgbe/t4_sge.c11
-rw-r--r--sys/dev/isp/isp.c8
-rw-r--r--sys/dev/mxge/if_mxge.c71
-rw-r--r--sys/dev/sym/sym_hipd.c41
-rw-r--r--sys/dev/usb/usb_pf.c8
-rw-r--r--sys/dev/usb/usbdevs4
-rw-r--r--sys/ia64/ia64/pmap.c8
-rw-r--r--sys/ia64/include/vmparam.h9
-rw-r--r--sys/kern/kern_descrip.c17
-rw-r--r--sys/modules/cxgbe/firmware/Makefile2
-rw-r--r--tools/regression/bin/test/regress.sh65
-rw-r--r--usr.bin/systat/systat.112
-rw-r--r--usr.sbin/bhyve/pci_emul.h1
-rw-r--r--usr.sbin/bsdconfig/include/Makefile3
-rw-r--r--usr.sbin/bsdconfig/include/media.hlp48
-rw-r--r--usr.sbin/bsdconfig/include/messages.subr214
-rw-r--r--usr.sbin/bsdconfig/include/network_device.hlp58
-rw-r--r--usr.sbin/bsdconfig/include/options.hlp98
-rw-r--r--usr.sbin/bsdconfig/include/tcp.hlp (renamed from usr.sbin/bsdconfig/networking/include/tcp.hlp)0
-rwxr-xr-xusr.sbin/bsdconfig/networking/devices3
-rw-r--r--usr.sbin/bsdconfig/networking/include/Makefile2
-rw-r--r--usr.sbin/bsdconfig/networking/share/common.subr13
-rw-r--r--usr.sbin/bsdconfig/networking/share/device.subr133
-rw-r--r--usr.sbin/bsdconfig/networking/share/hostname.subr59
-rw-r--r--usr.sbin/bsdconfig/networking/share/ipaddr.subr204
-rw-r--r--usr.sbin/bsdconfig/networking/share/netmask.subr83
-rw-r--r--usr.sbin/bsdconfig/networking/share/resolv.subr27
-rw-r--r--usr.sbin/bsdconfig/networking/share/routing.subr22
-rw-r--r--usr.sbin/bsdconfig/share/Makefile6
-rw-r--r--usr.sbin/bsdconfig/share/common.subr42
-rw-r--r--usr.sbin/bsdconfig/share/device.subr799
-rw-r--r--usr.sbin/bsdconfig/share/media/Makefile13
-rw-r--r--usr.sbin/bsdconfig/share/media/any.subr152
-rw-r--r--usr.sbin/bsdconfig/share/media/cdrom.subr210
-rw-r--r--usr.sbin/bsdconfig/share/media/common.subr109
-rw-r--r--usr.sbin/bsdconfig/share/media/directory.subr146
-rw-r--r--usr.sbin/bsdconfig/share/media/dos.subr164
-rw-r--r--usr.sbin/bsdconfig/share/media/floppy.subr214
-rw-r--r--usr.sbin/bsdconfig/share/media/ftp.subr893
-rw-r--r--usr.sbin/bsdconfig/share/media/httpproxy.subr433
-rw-r--r--usr.sbin/bsdconfig/share/media/network.subr182
-rw-r--r--usr.sbin/bsdconfig/share/media/nfs.subr251
-rw-r--r--usr.sbin/bsdconfig/share/media/options.subr308
-rw-r--r--usr.sbin/bsdconfig/share/media/tcpip.subr1688
-rw-r--r--usr.sbin/bsdconfig/share/media/ufs.subr193
-rw-r--r--usr.sbin/bsdconfig/share/media/usb.subr174
-rw-r--r--usr.sbin/bsdconfig/share/script.subr33
-rw-r--r--usr.sbin/bsdconfig/share/strings.subr68
-rw-r--r--usr.sbin/bsdconfig/share/struct.subr206
-rw-r--r--usr.sbin/bsdconfig/share/variable.subr68
-rwxr-xr-xusr.sbin/bsdconfig/startup/rcvar4
-rw-r--r--usr.sbin/rtadvd/rtadvd.816
-rw-r--r--usr.sbin/rtadvd/rtadvd.c20
143 files changed, 16791 insertions, 31133 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 8a8f8cd..f404eaa 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -1132,7 +1132,8 @@ _lex= usr.bin/lex
.endif
.if ${BOOTSTRAPPING} < 1000013
-_yacc= usr.bin/yacc
+_yacc= lib/liby \
+ usr.bin/yacc
.endif
.if ${BOOTSTRAPPING} < 1000026
diff --git a/bin/test/test.1 b/bin/test/test.1
index 885374e..76a4a9c 100644
--- a/bin/test/test.1
+++ b/bin/test/test.1
@@ -169,15 +169,65 @@ True if
.Ar file
exists and is a socket.
.It Ar file1 Fl nt Ar file2
-True if
+True if both
+.Ar file1
+and
+.Ar file2
+exist and
+.Ar file1
+is newer than
+.Ar file2 .
+.It Ar file1 Fl nt Ns Ar X Ns Ar Y Ar file2
+True if both
+.Ar file1
+and
+.Ar file2
+exist and
.Ar file1
-exists and is newer than
+has a more recent last access time
+.Pq Ar X Ns = Ns Cm a ,
+inode creation time
+.Pq Ar X Ns = Ns Cm b ,
+change time
+.Pq Ar X Ns = Ns Cm c ,
+or modification time
+.Pq Ar X Ns = Ns Cm m
+than the last access time
+.Pq Ar Y Ns = Ns Cm a ,
+inode creation time
+.Pq Ar Y Ns = Ns Cm b ,
+change time
+.Pq Ar Y Ns = Ns Cm c ,
+or modification time
+.Pq Ar Y Ns = Ns Cm m
+of
.Ar file2 .
+Note that
+.Ic -ntmm
+is equivalent to
+.Ic -nt .
.It Ar file1 Fl ot Ar file2
-True if
+True if both
+.Ar file1
+and
+.Ar file2
+exist and
.Ar file1
-exists and is older than
+is older than
.Ar file2 .
+Note that
+.Ar file1
+.Ic -ot
+.Ar file2
+is equivalent to
+.Ar file2
+.Ic -nt
+.Ar file1
+.It Ar file1 Fl ot Ns Ar X Ns Ar Y Ar file2
+Equivalent to
+.Ar file2
+.Ic -nt Ns Ar Y Ns Ar X
+.Ar file1 .
.It Ar file1 Fl ef Ar file2
True if
.Ar file1
diff --git a/bin/test/test.c b/bin/test/test.c
index 96aa9f5..eaa2f40 100644
--- a/bin/test/test.c
+++ b/bin/test/test.c
@@ -63,7 +63,7 @@ error(const char *msg, ...)
"-u"|"-g"|"-k"|"-s"|"-t"|"-z"|"-n"|"-o"|"-O"|"-G"|"-L"|"-S";
binary-operator ::= "="|"!="|"-eq"|"-ne"|"-ge"|"-gt"|"-le"|"-lt"|
- "-nt"|"-ot"|"-ef";
+ "-nt"|"-nt[abcm][abcm]"|"-ot"|"-ot[abcm][abcm])"|"-ef";
operand ::= <any legal UNIX file name>
*/
@@ -85,8 +85,38 @@ enum token {
FILSUID,
FILSGID,
FILSTCK,
- FILNT,
- FILOT,
+ FILNTAA,
+ FILNTAB,
+ FILNTAC,
+ FILNTAM,
+ FILNTBA,
+ FILNTBB,
+ FILNTBC,
+ FILNTBM,
+ FILNTCA,
+ FILNTCB,
+ FILNTCC,
+ FILNTCM,
+ FILNTMA,
+ FILNTMB,
+ FILNTMC,
+ FILNTMM,
+ FILOTAA,
+ FILOTAB,
+ FILOTAC,
+ FILOTAM,
+ FILOTBA,
+ FILOTBB,
+ FILOTBC,
+ FILOTBM,
+ FILOTCA,
+ FILOTCB,
+ FILOTCC,
+ FILOTCM,
+ FILOTMA,
+ FILOTMB,
+ FILOTMC,
+ FILOTMM,
FILEQ,
FILUID,
FILGID,
@@ -118,9 +148,16 @@ enum token_types {
PAREN
};
+enum time_types {
+ ATIME,
+ BTIME,
+ CTIME,
+ MTIME
+};
+
static struct t_op {
- char op_text[4];
- short op_num, op_type;
+ char op_text[6];
+ char op_num, op_type;
} const ops [] = {
{"-r", FILRD, UNOP},
{"-w", FILWR, UNOP},
@@ -154,8 +191,40 @@ static struct t_op {
{"-gt", INTGT, BINOP},
{"-le", INTLE, BINOP},
{"-lt", INTLT, BINOP},
- {"-nt", FILNT, BINOP},
- {"-ot", FILOT, BINOP},
+ {"-nt", FILNTMM, BINOP},
+ {"-ntaa", FILNTAA, BINOP},
+ {"-ntab", FILNTAB, BINOP},
+ {"-ntac", FILNTAC, BINOP},
+ {"-ntam", FILNTAM, BINOP},
+ {"-ntba", FILNTBA, BINOP},
+ {"-ntbb", FILNTBB, BINOP},
+ {"-ntbc", FILNTBC, BINOP},
+ {"-ntbm", FILNTBM, BINOP},
+ {"-ntca", FILNTCA, BINOP},
+ {"-ntcb", FILNTCB, BINOP},
+ {"-ntcc", FILNTCC, BINOP},
+ {"-ntcm", FILNTCM, BINOP},
+ {"-ntma", FILNTMA, BINOP},
+ {"-ntmb", FILNTMB, BINOP},
+ {"-ntmc", FILNTMC, BINOP},
+ {"-ntmm", FILNTMM, BINOP},
+ {"-ot", FILOTMM, BINOP},
+ {"-otaa", FILOTAA, BINOP},
+ {"-otab", FILOTBB, BINOP},
+ {"-otac", FILOTAC, BINOP},
+ {"-otam", FILOTAM, BINOP},
+ {"-otba", FILOTBA, BINOP},
+ {"-otbb", FILOTBB, BINOP},
+ {"-otbc", FILOTBC, BINOP},
+ {"-otbm", FILOTBM, BINOP},
+ {"-otca", FILOTCA, BINOP},
+ {"-otcb", FILOTCB, BINOP},
+ {"-otcc", FILOTCC, BINOP},
+ {"-otcm", FILOTCM, BINOP},
+ {"-otma", FILOTMA, BINOP},
+ {"-otmb", FILOTMB, BINOP},
+ {"-otmc", FILOTMC, BINOP},
+ {"-otmm", FILOTMM, BINOP},
{"-ef", FILEQ, BINOP},
{"!", UNOT, BUNOP},
{"-a", BAND, BBINOP},
@@ -180,10 +249,10 @@ static int intcmp(const char *, const char *);
static int isunopoperand(void);
static int islparenoperand(void);
static int isrparenoperand(void);
-static int newerf(const char *, const char *);
+static int newerf(const char *, const char *, enum time_types,
+ enum time_types);
static int nexpr(enum token);
static int oexpr(enum token);
-static int olderf(const char *, const char *);
static int primary(enum token);
static void syntax(const char *, const char *);
static enum token t_lex(char *);
@@ -353,10 +422,70 @@ binop(void)
return intcmp(opnd1, opnd2) <= 0;
case INTLT:
return intcmp(opnd1, opnd2) < 0;
- case FILNT:
- return newerf (opnd1, opnd2);
- case FILOT:
- return olderf (opnd1, opnd2);
+ case FILNTAA:
+ return newerf(opnd1, opnd2, ATIME, ATIME);
+ case FILNTAB:
+ return newerf(opnd1, opnd2, ATIME, BTIME);
+ case FILNTAC:
+ return newerf(opnd1, opnd2, ATIME, CTIME);
+ case FILNTAM:
+ return newerf(opnd1, opnd2, ATIME, MTIME);
+ case FILNTBA:
+ return newerf(opnd1, opnd2, BTIME, ATIME);
+ case FILNTBB:
+ return newerf(opnd1, opnd2, BTIME, BTIME);
+ case FILNTBC:
+ return newerf(opnd1, opnd2, BTIME, CTIME);
+ case FILNTBM:
+ return newerf(opnd1, opnd2, BTIME, MTIME);
+ case FILNTCA:
+ return newerf(opnd1, opnd2, CTIME, ATIME);
+ case FILNTCB:
+ return newerf(opnd1, opnd2, CTIME, BTIME);
+ case FILNTCC:
+ return newerf(opnd1, opnd2, CTIME, CTIME);
+ case FILNTCM:
+ return newerf(opnd1, opnd2, CTIME, MTIME);
+ case FILNTMA:
+ return newerf(opnd1, opnd2, MTIME, ATIME);
+ case FILNTMB:
+ return newerf(opnd1, opnd2, MTIME, BTIME);
+ case FILNTMC:
+ return newerf(opnd1, opnd2, MTIME, CTIME);
+ case FILNTMM:
+ return newerf(opnd1, opnd2, MTIME, MTIME);
+ case FILOTAA:
+ return newerf(opnd2, opnd1, ATIME, ATIME);
+ case FILOTAB:
+ return newerf(opnd2, opnd1, BTIME, ATIME);
+ case FILOTAC:
+ return newerf(opnd2, opnd1, CTIME, ATIME);
+ case FILOTAM:
+ return newerf(opnd2, opnd1, MTIME, ATIME);
+ case FILOTBA:
+ return newerf(opnd2, opnd1, ATIME, BTIME);
+ case FILOTBB:
+ return newerf(opnd2, opnd1, BTIME, BTIME);
+ case FILOTBC:
+ return newerf(opnd2, opnd1, CTIME, BTIME);
+ case FILOTBM:
+ return newerf(opnd2, opnd1, MTIME, BTIME);
+ case FILOTCA:
+ return newerf(opnd2, opnd1, ATIME, CTIME);
+ case FILOTCB:
+ return newerf(opnd2, opnd1, BTIME, CTIME);
+ case FILOTCC:
+ return newerf(opnd2, opnd1, CTIME, CTIME);
+ case FILOTCM:
+ return newerf(opnd2, opnd1, MTIME, CTIME);
+ case FILOTMA:
+ return newerf(opnd2, opnd1, ATIME, MTIME);
+ case FILOTMB:
+ return newerf(opnd2, opnd1, BTIME, MTIME);
+ case FILOTMC:
+ return newerf(opnd2, opnd1, CTIME, MTIME);
+ case FILOTMM:
+ return newerf(opnd2, opnd1, MTIME, MTIME);
case FILEQ:
return equalf (opnd1, opnd2);
default:
@@ -570,25 +699,34 @@ intcmp (const char *s1, const char *s2)
}
static int
-newerf (const char *f1, const char *f2)
+newerf (const char *f1, const char *f2, enum time_types t1, enum time_types t2)
{
struct stat b1, b2;
+ struct timespec *ts1, *ts2;
if (stat(f1, &b1) != 0 || stat(f2, &b2) != 0)
return 0;
- if (b1.st_mtim.tv_sec > b2.st_mtim.tv_sec)
+ switch (t1) {
+ case ATIME: ts1 = &b1.st_atim; break;
+ case BTIME: ts1 = &b1.st_birthtim; break;
+ case CTIME: ts1 = &b1.st_ctim; break;
+ default: ts1 = &b1.st_mtim; break;
+ }
+
+ switch (t2) {
+ case ATIME: ts2 = &b2.st_atim; break;
+ case BTIME: ts2 = &b2.st_birthtim; break;
+ case CTIME: ts2 = &b2.st_ctim; break;
+ default: ts2 = &b2.st_mtim; break;
+ }
+
+ if (ts1->tv_sec > ts2->tv_sec)
return 1;
- if (b1.st_mtim.tv_sec < b2.st_mtim.tv_sec)
+ if (ts1->tv_sec < ts2->tv_sec)
return 0;
- return (b1.st_mtim.tv_nsec > b2.st_mtim.tv_nsec);
-}
-
-static int
-olderf (const char *f1, const char *f2)
-{
- return (newerf(f2, f1));
+ return (ts1->tv_nsec > ts2->tv_nsec);
}
static int
diff --git a/cddl/contrib/opensolaris/cmd/zinject/translate.c b/cddl/contrib/opensolaris/cmd/zinject/translate.c
index 442f220..af25d3c 100644
--- a/cddl/contrib/opensolaris/cmd/zinject/translate.c
+++ b/cddl/contrib/opensolaris/cmd/zinject/translate.c
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
#include <libzfs.h>
@@ -455,6 +456,20 @@ translate_device(const char *pool, const char *device, err_type_t label_type,
&record->zi_guid) == 0);
}
+ /*
+ * Device faults can take on three different forms:
+ * 1). delayed or hanging I/O
+ * 2). zfs label faults
+ * 3). generic disk faults
+ */
+ if (record->zi_timer != 0) {
+ record->zi_cmd = ZINJECT_DELAY_IO;
+ } else if (label_type != TYPE_INVAL) {
+ record->zi_cmd = ZINJECT_LABEL_FAULT;
+ } else {
+ record->zi_cmd = ZINJECT_DEVICE_FAULT;
+ }
+
switch (label_type) {
case TYPE_LABEL_UBERBLOCK:
record->zi_start = offsetof(vdev_label_t, vl_uberblock[0]);
diff --git a/cddl/contrib/opensolaris/cmd/zinject/zinject.c b/cddl/contrib/opensolaris/cmd/zinject/zinject.c
index d17ed53..994d687 100644
--- a/cddl/contrib/opensolaris/cmd/zinject/zinject.c
+++ b/cddl/contrib/opensolaris/cmd/zinject/zinject.c
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
/*
@@ -603,7 +604,7 @@ main(int argc, char **argv)
}
while ((c = getopt(argc, argv,
- ":aA:b:d:f:Fg:qhIc:t:T:l:mr:s:e:uL:p:")) != -1) {
+ ":aA:b:d:D:f:Fg:qhIc:t:T:l:mr:s:e:uL:p:")) != -1) {
switch (c) {
case 'a':
flags |= ZINJECT_FLUSH_ARC;
@@ -629,6 +630,15 @@ main(int argc, char **argv)
case 'd':
device = optarg;
break;
+ case 'D':
+ record.zi_timer = strtoull(optarg, &end, 10);
+ if (errno != 0 || *end != '\0') {
+ (void) fprintf(stderr, "invalid i/o delay "
+ "value: '%s'\n", optarg);
+ usage();
+ return (1);
+ }
+ break;
case 'e':
if (strcasecmp(optarg, "io") == 0) {
error = EIO;
@@ -693,6 +703,7 @@ main(int argc, char **argv)
case 'p':
(void) strlcpy(record.zi_func, optarg,
sizeof (record.zi_func));
+ record.zi_cmd = ZINJECT_PANIC;
break;
case 'q':
quiet = 1;
@@ -766,13 +777,15 @@ main(int argc, char **argv)
argc -= optind;
argv += optind;
+ if (record.zi_duration != 0)
+ record.zi_cmd = ZINJECT_IGNORED_WRITES;
+
if (cancel != NULL) {
/*
* '-c' is invalid with any other options.
*/
if (raw != NULL || range != NULL || type != TYPE_INVAL ||
- level != 0 || record.zi_func[0] != '\0' ||
- record.zi_duration != 0) {
+ level != 0 || record.zi_cmd != ZINJECT_UNINITIALIZED) {
(void) fprintf(stderr, "cancel (-c) incompatible with "
"any other options\n");
usage();
@@ -804,8 +817,7 @@ main(int argc, char **argv)
* for doing injection, so handle it separately here.
*/
if (raw != NULL || range != NULL || type != TYPE_INVAL ||
- level != 0 || record.zi_func[0] != '\0' ||
- record.zi_duration != 0) {
+ level != 0 || record.zi_cmd != ZINJECT_UNINITIALIZED) {
(void) fprintf(stderr, "device (-d) incompatible with "
"data error injection\n");
usage();
@@ -839,7 +851,7 @@ main(int argc, char **argv)
} else if (raw != NULL) {
if (range != NULL || type != TYPE_INVAL || level != 0 ||
- record.zi_func[0] != '\0' || record.zi_duration != 0) {
+ record.zi_cmd != ZINJECT_UNINITIALIZED) {
(void) fprintf(stderr, "raw (-b) format with "
"any other options\n");
usage();
@@ -862,13 +874,14 @@ main(int argc, char **argv)
return (1);
}
+ record.zi_cmd = ZINJECT_DATA_FAULT;
if (translate_raw(raw, &record) != 0)
return (1);
if (!error)
error = EIO;
- } else if (record.zi_func[0] != '\0') {
+ } else if (record.zi_cmd == ZINJECT_PANIC) {
if (raw != NULL || range != NULL || type != TYPE_INVAL ||
- level != 0 || device != NULL || record.zi_duration != 0) {
+ level != 0 || device != NULL) {
(void) fprintf(stderr, "panic (-p) incompatible with "
"other options\n");
usage();
@@ -886,7 +899,7 @@ main(int argc, char **argv)
if (argv[1] != NULL)
record.zi_type = atoi(argv[1]);
dataset[0] = '\0';
- } else if (record.zi_duration != 0) {
+ } else if (record.zi_cmd == ZINJECT_IGNORED_WRITES) {
if (nowrites == 0) {
(void) fprintf(stderr, "-s or -g meaningless "
"without -I (ignore writes)\n");
@@ -940,6 +953,7 @@ main(int argc, char **argv)
return (1);
}
+ record.zi_cmd = ZINJECT_DATA_FAULT;
if (translate_record(type, argv[0], range, level, &record, pool,
dataset) != 0)
return (1);
diff --git a/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c b/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
index 56bf718..25dc520 100644
--- a/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
+++ b/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c
@@ -45,6 +45,9 @@ int aok;
uint64_t physmem;
vnode_t *rootdir = (vnode_t *)0xabcd1234;
char hw_serial[HW_HOSTID_LEN];
+#ifdef illumos
+kmutex_t cpu_lock;
+#endif
struct utsname utsname = {
"userland", "libzpool", "1", "1", "na"
@@ -842,6 +845,28 @@ ddi_strtoull(const char *str, char **nptr, int base, u_longlong_t *result)
return (0);
}
+#ifdef illumos
+/* ARGSUSED */
+cyclic_id_t
+cyclic_add(cyc_handler_t *hdlr, cyc_time_t *when)
+{
+ return (1);
+}
+
+/* ARGSUSED */
+void
+cyclic_remove(cyclic_id_t id)
+{
+}
+
+/* ARGSUSED */
+int
+cyclic_reprogram(cyclic_id_t id, hrtime_t expiration)
+{
+ return (1);
+}
+#endif
+
/*
* =========================================================================
* kernel emulation setup & teardown
@@ -875,6 +900,10 @@ kernel_init(int mode)
system_taskq_init();
+#ifdef illumos
+ mutex_init(&cpu_lock, NULL, MUTEX_DEFAULT, NULL);
+#endif
+
spa_init(mode);
}
diff --git a/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h b/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
index 11fb681..469c59f 100644
--- a/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
+++ b/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h
@@ -457,6 +457,9 @@ extern vnode_t *rootdir;
extern void delay(clock_t ticks);
+#define SEC_TO_TICK(sec) ((sec) * hz)
+#define NSEC_TO_TICK(usec) ((usec) / (NANOSEC / hz))
+
#define gethrestime_sec() time(NULL)
#define gethrestime(t) \
do {\
@@ -624,6 +627,36 @@ typedef uint32_t idmap_rid_t;
#define ERESTART (-1)
#endif
+#ifdef illumos
+/*
+ * Cyclic information
+ */
+extern kmutex_t cpu_lock;
+
+typedef uintptr_t cyclic_id_t;
+typedef uint16_t cyc_level_t;
+typedef void (*cyc_func_t)(void *);
+
+#define CY_LOW_LEVEL 0
+#define CY_INFINITY INT64_MAX
+#define CYCLIC_NONE ((cyclic_id_t)0)
+
+typedef struct cyc_time {
+ hrtime_t cyt_when;
+ hrtime_t cyt_interval;
+} cyc_time_t;
+
+typedef struct cyc_handler {
+ cyc_func_t cyh_func;
+ void *cyh_arg;
+ cyc_level_t cyh_level;
+} cyc_handler_t;
+
+extern cyclic_id_t cyclic_add(cyc_handler_t *, cyc_time_t *);
+extern void cyclic_remove(cyclic_id_t);
+extern int cyclic_reprogram(cyclic_id_t, hrtime_t);
+#endif /* illumos */
+
#ifdef __cplusplus
}
#endif
diff --git a/contrib/expat/Changes b/contrib/expat/Changes
index 1e885ab..08897b9 100644
--- a/contrib/expat/Changes
+++ b/contrib/expat/Changes
@@ -1,5 +1,41 @@
+Release 2.1.0 Sat March 24 2012
+ - Bug Fixes:
+ #1742315: Harmful XML_ParserCreateNS suggestion.
+ #2895533: CVE-2012-1147 - Resource leak in readfilemap.c.
+ #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3.
+ #1983953, 2517952, 2517962, 2649838:
+ Build modifications using autoreconf instead of buildconf.sh.
+ #2815947, #2884086: OBJEXT and EXEEXT support while building.
+ #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences.
+ #2517938: xmlwf should return non-zero exit status if not well-formed.
+ #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml.
+ #2855609: Dangling positionPtr after error.
+ #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8().
+ #2958794: CVE-2012-1148 - Memory leak in poolGrow.
+ #2990652: CMake support.
+ #3010819: UNEXPECTED_STATE with a trailing "%" in entity value.
+ #3206497: Unitialized memory returned from XML_Parse.
+ #3287849: make check fails on mingw-w64.
+ #3496608: CVE-2012-0876 - Hash DOS attack.
+ - Patches:
+ #1749198: pkg-config support.
+ #3010222: Fix for bug #3010819.
+ #3312568: CMake support.
+ #3446384: Report byte offsets for attr names and values.
+ - New Features / API changes:
+ Added new API member XML_SetHashSalt() that allows setting an intial
+ value (salt) for hash calculations. This is part of the fix for
+ bug #3496608 to randomize hash parameters.
+ When compiled with XML_ATTR_INFO defined, adds new API member
+ XML_GetAttributeInfo() that allows retrieving the byte
+ offsets for attribute names and values (patch #3446384).
+ Added CMake build system.
+ See bug #2990652 and patch #3312568.
+ Added run-benchmark target to Makefile.in - relies on testdata module
+ present in the same relative location as in the repository.
+
Release 2.0.1 Tue June 5 2007
- - Fixed bugs #1515266, 1515600: The character data handler's calling
+ - Fixed bugs #1515266, #1515600: The character data handler's calling
of XML_StopParser() was not handled properly; if the parser was
stopped and the handler set to NULL, the parser would segfault.
- Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed
@@ -8,7 +44,7 @@ Release 2.0.1 Tue June 5 2007
- Fixed xmlwf bug #1513566: "out of memory" error on file size zero.
- Fixed outline.c bug #1543233: missing a final XML_ParserFree() call.
- Fixes and improvements for Windows platform:
- bugs #1409451, #1476160, 1548182, 1602769, 1717322.
+ bugs #1409451, #1476160, #1548182, #1602769, #1717322.
- Build fixes for various platforms:
HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180.
All Unix: #1554618 (refreshed config.sub/config.guess).
@@ -30,8 +66,8 @@ Release 2.0.0 Wed Jan 11 2006
byte indexes and line/column numbers.
- Updated to use libtool 1.5.22 (the most recent).
- Added support for AmigaOS.
- - Some mostly minor bug fixes. SF issues include: 1006708,
- 1021776, 1023646, 1114960, 1156398, 1221160, 1271642.
+ - Some mostly minor bug fixes. SF issues include: #1006708,
+ #1021776, #1023646, #1114960, #1156398, #1221160, #1271642.
Release 1.95.8 Fri Jul 23 2004
- Major new feature: suspend/resume. Handlers can now request
@@ -40,8 +76,8 @@ Release 1.95.8 Fri Jul 23 2004
documentation for more details.
- Some mostly minor bug fixes, but compilation should no
longer generate warnings on most platforms. SF issues
- include: 827319, 840173, 846309, 888329, 896188, 923913,
- 928113, 961698, 985192.
+ include: #827319, #840173, #846309, #888329, #896188, #923913,
+ #928113, #961698, #985192.
Release 1.95.7 Mon Oct 20 2003
- Fixed enum XML_Status issue (reported on SourceForge many
@@ -54,19 +90,19 @@ Release 1.95.7 Mon Oct 20 2003
- Improved ability to build without the configure-generated
expat_config.h header. This is useful for applications
which embed Expat rather than linking in the library.
- - Fixed a variety of bugs: see SF issues 458907, 609603,
- 676844, 679754, 692878, 692964, 695401, 699323, 699487,
- 820946.
+ - Fixed a variety of bugs: see SF issues #458907, #609603,
+ #676844, #679754, #692878, #692964, #695401, #699323, #699487,
+ #820946.
- Improved hash table lookups.
- Added more regression tests and improved documentation.
Release 1.95.6 Tue Jan 28 2003
- Added XML_FreeContentModel().
- Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree().
- - Fixed a variety of bugs: see SF issues 615606, 616863,
- 618199, 653180, 673791.
+ - Fixed a variety of bugs: see SF issues #615606, #616863,
+ #618199, #653180, #673791.
- Enhanced the regression test suite.
- - Man page improvements: includes SF issue 632146.
+ - Man page improvements: includes SF issue #632146.
Release 1.95.5 Fri Sep 6 2002
- Added XML_UseForeignDTD() for improved SAX2 support.
@@ -84,9 +120,9 @@ Release 1.95.5 Fri Sep 6 2002
- Reduced line-length for all source code and headers to be
no longer than 80 characters, to help with AS/400 support.
- Reduced memory copying during parsing (SF patch #600964).
- - Fixed a variety of bugs: see SF issues 580793, 434664,
- 483514, 580503, 581069, 584041, 584183, 584832, 585537,
- 596555, 596678, 598352, 598944, 599715, 600479, 600971.
+ - Fixed a variety of bugs: see SF issues #580793, #434664,
+ #483514, #580503, #581069, #584041, #584183, #584832, #585537,
+ #596555, #596678, #598352, #598944, #599715, #600479, #600971.
Release 1.95.4 Fri Jul 12 2002
- Added support for VMS, contributed by Craig Berry. See
@@ -95,14 +131,14 @@ Release 1.95.4 Fri Jul 12 2002
contributed by Thomas Wegner and Daryle Walker.
- Added Borland C++ Builder 5 / BCC 5.5 support, contributed
by Patrick McConnell (SF patch #538032).
- - Fixed a variety of bugs: see SF issues 441449, 563184,
- 564342, 566334, 566901, 569461, 570263, 575168, 579196.
+ - Fixed a variety of bugs: see SF issues #441449, #563184,
+ #564342, #566334, #566901, #569461, #570263, #575168, #579196.
- Made skippedEntityHandler conform to SAX2 (see source comment)
- Re-implemented WFC: Entity Declared from XML 1.0 spec and
added a new error "entity declared in parameter entity":
- see SF bug report 569461 and SF patch 578161
+ see SF bug report #569461 and SF patch #578161
- Re-implemented section 5.1 from XML 1.0 spec:
- see SF bug report 570263 and SF patch 578161
+ see SF bug report #570263 and SF patch #578161
Release 1.95.3 Mon Jun 3 2002
- Added a project to the MSVC workspace to create a wchar_t
@@ -114,9 +150,9 @@ Release 1.95.3 Mon Jun 3 2002
- Made the XML_UNICODE builds usable (thanks, Karl!).
- Allow xmlwf to read from standard input.
- Install a man page for xmlwf on Unix systems.
- - Fixed many bugs; see SF bug reports 231864, 461380, 464837,
- 466885, 469226, 477667, 484419, 487840, 494749, 496505,
- 547350. Other bugs which we can't test as easily may also
+ - Fixed many bugs; see SF bug reports #231864, #461380, #464837,
+ #466885, #469226, #477667, #484419, #487840, #494749, #496505,
+ #547350. Other bugs which we can't test as easily may also
have been fixed, especially in the area of build support.
Release 1.95.2 Fri Jul 27 2001
diff --git a/contrib/expat/FREEBSD-Xlist b/contrib/expat/FREEBSD-Xlist
new file mode 100644
index 0000000..26bed47
--- /dev/null
+++ b/contrib/expat/FREEBSD-Xlist
@@ -0,0 +1,19 @@
+# $FreeBSD$
+*.MPW
+*.cmake
+*.def
+*.dsp
+*.dsw
+*.m4
+*.pc.in
+*config.h
+CMake*
+Configure*
+amiga
+bcb5
+configure
+conftools
+doc/valid-xhtml10.png
+m4
+vms
+win32
diff --git a/contrib/expat/FREEBSD-upgrade b/contrib/expat/FREEBSD-upgrade
deleted file mode 100644
index b4a5b8e..0000000
--- a/contrib/expat/FREEBSD-upgrade
+++ /dev/null
@@ -1,111 +0,0 @@
-$FreeBSD$
-
-eXpat from www.libexpat.org
-
-v2.0.1:
-
-This directory contains the virgin sources for the import of the
-expat XML processing library, trimmed of the bits realted to other
-platforms (the trimmed contents are listed below).
-
-Imported via:
- 1) Upacking sources
- 2) cd expat-2.0.1, remove the listed files below
- 3) cvs import -ko src/contrib/expat EXPAT v2_0_1
-
-The docs say that I should add this FREEBSD-upgrade separately, as
-a "cvs add / cvs ci" operation, which is what I have done (but it
-differs from the processed used for the 1.95.5 import).
-
-The following files/directories were removed from the distribution:
-amiga/
-amiga/Makefile
-amiga/README.txt
-amiga/expat.xml
-amiga/expat_lib.c
-amiga/expat_vectors.c
-amiga/include
-amiga/include/inline4
-amiga/include/inline4/expat.h
-amiga/include/interfaces
-amiga/include/interfaces/expat.h
-amiga/include/libraries
-amiga/include/libraries/expat.h
-amiga/include/proto
-amiga/include/proto/expat.h
-amiga/launch.c
-amiga/stdlib.c
-bcb5/
-bcb5/README.txt
-bcb5/all_projects.bpg
-bcb5/elements.bpf
-bcb5/elements.bpr
-bcb5/elements.mak
-bcb5/expat.bpf
-bcb5/expat.bpr
-bcb5/expat.mak
-bcb5/expat_static.bpf
-bcb5/expat_static.bpr
-bcb5/expat_static.mak
-bcb5/expatw.bpf
-bcb5/expatw.bpr
-bcb5/expatw.mak
-bcb5/expatw_static.bpf
-bcb5/expatw_static.bpr
-bcb5/expatw_static.mak
-bcb5/libexpat_mtd.def
-bcb5/libexpatw_mtd.def
-bcb5/makefile.mak
-bcb5/outline.bpf
-bcb5/outline.bpr
-bcb5/outline.mak
-bcb5/setup.bat
-bcb5/xmlwf.bpf
-bcb5/xmlwf.bpr
-bcb5/xmlwf.mak
-conftools/
-conftools/PrintPath
-conftools/ac_c_bigendian_cross.m4
-conftools/config.guess
-conftools/config.sub
-conftools/expat.m4
-conftools/get-version.sh
-conftools/install-sh
-conftools/libtool.m4
-conftools/ltmain.sh
-conftools/mkinstalldirs
-examples/elements.dsp
-examples/outline.dsp
-expat.dsw
-lib/Makefile.MPW
-lib/amigaconfig.h
-lib/expat.dsp
-lib/expat_static.dsp
-lib/expatw.dsp
-lib/expatw_static.dsp
-lib/libexpat.def
-lib/libexpatw.def
-lib/macconfig.h
-vms/
-vms/README.vms
-vms/descrip.mms
-vms/expat_config.h
-win32/
-win32/MANIFEST.txt
-win32/README.txt
-win32/expat.iss
-xmlwf/xmlwf.dsp
-
-v1.95.5:
-Imported by:
-
- tar zxvf expat-1.95.5.tar.gz
- cd expat-1.95.5
- rm -rf bcb5 win32 vms conftools doc/valid-xhtml10.png
- vi FREEBSD-upgrade
- cvs import -m "Virgin import (trimmed) of eXpat version 1.95.5" \
- src/contrib/expat EXPAT v1_95_5
-
-phk@FreeBSD.org
-
-
diff --git a/contrib/expat/MANIFEST b/contrib/expat/MANIFEST
index aa83d5b..7a020dc 100644
--- a/contrib/expat/MANIFEST
+++ b/contrib/expat/MANIFEST
@@ -1,5 +1,8 @@
-amiga/stdlib.c
amiga/launch.c
+amiga/expat_68k.c
+amiga/expat_68k.h
+amiga/expat_68k_handler_stubs.c
+amiga/expat_base.h
amiga/expat_vectors.c
amiga/expat_lib.c
amiga/expat.xml
@@ -42,25 +45,35 @@ doc/style.css
doc/valid-xhtml10.png
doc/xmlwf.1
doc/xmlwf.sgml
+CMakeLists.txt
+CMake.README
COPYING
Changes
+ConfigureChecks.cmake
MANIFEST
Makefile.in
README
configure
configure.in
expat_config.h.in
+expat_config.h.cmake
+expat.pc.in
expat.dsw
+aclocal.m4
conftools/PrintPath
conftools/ac_c_bigendian_cross.m4
-conftools/config.guess
-conftools/config.sub
conftools/expat.m4
conftools/get-version.sh
+conftools/mkinstalldirs
+conftools/config.guess
+conftools/config.sub
conftools/install-sh
-conftools/libtool.m4
conftools/ltmain.sh
-conftools/mkinstalldirs
+m4/libtool.m4
+m4/ltversion.m4
+m4/ltoptions.m4
+m4/ltsugar.m4
+m4/lt~obsolete.m4
examples/elements.c
examples/elements.dsp
examples/outline.c
diff --git a/contrib/expat/Makefile.in b/contrib/expat/Makefile.in
index 0e2cc95..9c0f5d4 100644
--- a/contrib/expat/Makefile.in
+++ b/contrib/expat/Makefile.in
@@ -31,6 +31,7 @@ bindir = @bindir@
libdir = @libdir@
includedir = @includedir@
man1dir = @mandir@/man1
+pkgconfigdir = $(libdir)/pkgconfig
top_builddir = .
@@ -46,18 +47,18 @@ LIBRARY = libexpat.la
DESTDIR = $(INSTALL_ROOT)
-default: buildlib xmlwf/xmlwf
+default: buildlib xmlwf/xmlwf@EXEEXT@
-buildlib: $(LIBRARY)
+buildlib: $(LIBRARY) expat.pc
-all: $(LIBRARY) xmlwf/xmlwf examples/elements examples/outline
+all: $(LIBRARY) expat.pc xmlwf/xmlwf@EXEEXT@ examples/elements examples/outline
clean:
- cd lib && rm -f $(LIBRARY) *.o *.lo && rm -rf .libs _libs
- cd xmlwf && rm -f xmlwf *.o *.lo && rm -rf .libs _libs
- cd examples && rm -f elements outline *.o *.lo && rm -rf .libs _libs
- cd tests && rm -rf .libs runtests runtests.o runtestspp runtestspp.o
- cd tests && rm -f chardata.o minicheck.o
+ cd lib && rm -f $(LIBRARY) *.@OBJEXT@ *.lo && rm -rf .libs _libs
+ cd xmlwf && rm -f xmlwf *.@OBJEXT@ *.lo && rm -rf .libs _libs
+ cd examples && rm -f elements outline *.@OBJEXT@ *.lo && rm -rf .libs _libs
+ cd tests && rm -rf .libs runtests runtests.@OBJEXT@ runtestspp runtestspp.@OBJEXT@
+ cd tests && rm -f chardata.@OBJEXT@ minicheck.@OBJEXT@
rm -rf .libs libexpat.la
rm -f examples/core tests/core xmlwf/core
@@ -65,34 +66,37 @@ clobber: clean
distclean: clean
rm -f expat_config.h config.status config.log config.cache libtool
- rm -f Makefile
+ rm -f Makefile expat.pc
extraclean: distclean
rm -f expat_config.h.in configure
- rm -f conftools/ltconfig conftools/ltmain.sh conftools/libtool.m4
+ rm -f aclocal.m4 m4/*
+ rm -f conftools/ltmain.sh conftools/install-sh conftools/config.guess conftools/config.sub
check: tests/runtests tests/runtestspp
tests/runtests
tests/runtestspp
-install: xmlwf/xmlwf installlib
+install: xmlwf/xmlwf@EXEEXT@ installlib
$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir)
- $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf $(DESTDIR)$(bindir)/xmlwf
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) xmlwf/xmlwf@EXEEXT@ $(DESTDIR)$(bindir)/xmlwf
$(INSTALL_DATA) $(MANFILE) $(DESTDIR)$(man1dir)
-installlib: $(LIBRARY) $(APIHEADER)
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
+installlib: $(LIBRARY) $(APIHEADER) expat.pc
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir) $(DESTDIR)$(pkgconfigdir)
$(LIBTOOL) --mode=install $(INSTALL) $(LIBRARY) $(DESTDIR)$(libdir)/$(LIBRARY)
for FN in $(APIHEADER) ; do $(INSTALL_DATA) $$FN $(DESTDIR)$(includedir) ; done
+ $(INSTALL_DATA) expat.pc $(DESTDIR)$(pkgconfigdir)/expat.pc
uninstall: uninstalllib
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(bindir)/xmlwf
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(bindir)/xmlwf@EXEEXT@
rm -f $(DESTDIR)$(man1dir)/xmlwf.1
uninstalllib:
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(LIBRARY)
rm -f $(DESTDIR)$(includedir)/expat.h
rm -f $(DESTDIR)$(includedir)/expat_external.h
+ rm -f $(DESTDIR)$(pkgconfigdir)/expat.pc
# for VPATH builds (invoked by configure)
mkdir-init:
@@ -125,6 +129,9 @@ LIB_OBJS = lib/xmlparse.lo lib/xmltok.lo lib/xmlrole.lo
$(LIBRARY): $(LIB_OBJS)
$(LINK_LIB) $(LIB_OBJS)
+expat.pc: $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+
lib/xmlparse.lo: lib/xmlparse.c lib/expat.h lib/xmlrole.h lib/xmltok.h \
$(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
@@ -137,46 +144,53 @@ lib/xmltok.lo: lib/xmltok.c lib/xmltok_impl.c lib/xmltok_ns.c \
$(top_builddir)/expat_config.h lib/expat_external.h lib/internal.h
-XMLWF_OBJS = xmlwf/xmlwf.o xmlwf/xmlfile.o xmlwf/codepage.o xmlwf/@FILEMAP@.o
-xmlwf/xmlwf.o: xmlwf/xmlwf.c
-xmlwf/xmlfile.o: xmlwf/xmlfile.c
-xmlwf/codepage.o: xmlwf/codepage.c
-xmlwf/@FILEMAP@.o: xmlwf/@FILEMAP@.c
-xmlwf/xmlwf: $(XMLWF_OBJS) $(LIBRARY)
+XMLWF_OBJS = xmlwf/xmlwf.@OBJEXT@ xmlwf/xmlfile.@OBJEXT@ xmlwf/codepage.@OBJEXT@ xmlwf/@FILEMAP@.@OBJEXT@
+xmlwf/xmlwf.@OBJEXT@: xmlwf/xmlwf.c
+xmlwf/xmlfile.@OBJEXT@: xmlwf/xmlfile.c
+xmlwf/codepage.@OBJEXT@: xmlwf/codepage.c
+xmlwf/@FILEMAP@.@OBJEXT@: xmlwf/@FILEMAP@.c
+xmlwf/xmlwf@EXEEXT@: $(XMLWF_OBJS) $(LIBRARY)
$(LINK_EXE) $(XMLWF_OBJS) $(LIBRARY)
-examples/elements.o: examples/elements.c
-examples/elements: examples/elements.o $(LIBRARY)
+examples/elements.@OBJEXT@: examples/elements.c
+examples/elements: examples/elements.@OBJEXT@ $(LIBRARY)
$(LINK_EXE) $< $(LIBRARY)
-examples/outline.o: examples/outline.c
-examples/outline: examples/outline.o $(LIBRARY)
+examples/outline.@OBJEXT@: examples/outline.c
+examples/outline: examples/outline.@OBJEXT@ $(LIBRARY)
$(LINK_EXE) $< $(LIBRARY)
-tests/chardata.o: tests/chardata.c tests/chardata.h
-tests/minicheck.o: tests/minicheck.c tests/minicheck.h
-tests/runtests.o: tests/runtests.c tests/chardata.h
-tests/runtests: tests/runtests.o tests/chardata.o tests/minicheck.o $(LIBRARY)
- $(LINK_EXE) tests/runtests.o tests/chardata.o tests/minicheck.o $(LIBRARY)
-tests/runtestspp.o: tests/runtestspp.cpp tests/runtests.c tests/chardata.h
-tests/runtestspp: tests/runtestspp.o tests/chardata.o tests/minicheck.o $(LIBRARY)
- $(LINK_CXX_EXE) tests/runtestspp.o tests/chardata.o tests/minicheck.o $(LIBRARY)
+tests/chardata.@OBJEXT@: tests/chardata.c tests/chardata.h
+tests/minicheck.@OBJEXT@: tests/minicheck.c tests/minicheck.h
+tests/runtests.@OBJEXT@: tests/runtests.c tests/chardata.h
+tests/runtests: tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
+ $(LINK_EXE) tests/runtests.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
+tests/runtestspp.@OBJEXT@: tests/runtestspp.cpp tests/runtests.c tests/chardata.h
+tests/runtestspp: tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
+ $(LINK_CXX_EXE) tests/runtestspp.@OBJEXT@ tests/chardata.@OBJEXT@ tests/minicheck.@OBJEXT@ $(LIBRARY)
+
+tests/benchmark/benchmark.@OBJEXT@: tests/benchmark/benchmark.c
+tests/benchmark/benchmark: tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
+ $(LINK_EXE) tests/benchmark/benchmark.@OBJEXT@ $(LIBRARY)
+
+run-benchmark: tests/benchmark/benchmark
+ tests/benchmark/benchmark@EXEEXT@ -n $(top_srcdir)/../testdata/largefiles/recset.xml 65535 3
tests/xmlts.zip:
wget --output-document=tests/xmlts.zip \
- http://www.w3.org/XML/Test/xmlts20020606.zip
+ http://www.w3.org/XML/Test/xmlts20080827.zip
tests/XML-Test-Suite: tests/xmlts.zip
cd tests && unzip -q xmlts.zip
-run-xmltest: xmlwf/xmlwf tests/XML-Test-Suite
+run-xmltest: xmlwf/xmlwf@EXEEXT@ tests/XML-Test-Suite
tests/xmltest.sh
-.SUFFIXES: .c .cpp .lo .o
+.SUFFIXES: .c .cpp .lo .@OBJEXT@
-.cpp.o:
+.cpp.@OBJEXT@:
$(CXXCOMPILE) -o $@ -c $<
-.c.o:
+.c.@OBJEXT@:
$(COMPILE) -o $@ -c $<
.c.lo:
$(LTCOMPILE) -o $@ -c $<
diff --git a/contrib/expat/README b/contrib/expat/README
index fda282a..1f88467 100644
--- a/contrib/expat/README
+++ b/contrib/expat/README
@@ -1,5 +1,5 @@
- Expat, Release 2.0.1
+ Expat, Release 2.1.0
This is Expat, a C library for parsing XML, written by James Clark.
Expat is a stream-oriented XML parser. This means that you register
@@ -25,8 +25,7 @@ intended to be production grade software.
If you are building Expat from a check-out from the CVS repository,
you need to run a script that generates the configure script using the
GNU autoconf and libtool tools. To do this, you need to have
-autoconf 2.52 or newer and libtool 1.4 or newer (1.5 or newer preferred).
-Run the script like this:
+autoconf 2.58 or newer. Run the script like this:
./buildconf.sh
@@ -65,8 +64,8 @@ location. Have a look at the "Makefile" to learn about additional
the directories into which things will be installed.
If you are interested in building Expat to provide document
-information in UTF-16 rather than the default UTF-8, follow these
-instructions (after having run "make distclean"):
+information in UTF-16 encoding rather than the default UTF-8, follow
+these instructions (after having run "make distclean"):
1. For UTF-16 output as unsigned short (and version/error
strings as char), run:
@@ -106,7 +105,10 @@ use DESTDIR=$(INSTALL_ROOT), even if DESTDIR eventually is defined in the
environment, because variable-setting priority is
1) commandline
2) in-makefile
-3) environment
+3) environment
+
+Note: This only applies to the Expat library itself, building UTF-16 versions
+of xmlwf and the tests is currently not supported.
Note for Solaris users: The "ar" command is usually located in
"/usr/ccs/bin", which is not in the default PATH. You will need to
diff --git a/contrib/expat/configure b/contrib/expat/configure
deleted file mode 100755
index 01ba7a9..0000000
--- a/contrib/expat/configure
+++ /dev/null
@@ -1,22017 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for expat 2.0.1.
-#
-# Report bugs to <expat-bugs@libexpat.org>.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
- # Remove one level of quotation (which was required for Make).
- ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
- ;;
-esac
-
-echo=${ECHO-echo}
-if test "X$1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X$1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-$*
-EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
- for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
- if (echo_test_string=`eval $cmd`) 2>/dev/null &&
- echo_test_string=`eval $cmd` &&
- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
- then
- break
- fi
- done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- :
-else
- # The Solaris, AIX, and Digital Unix default echo programs unquote
- # backslashes. This makes it impossible to quote backslashes using
- # echo "$something" | sed 's/\\/\\\\/g'
- #
- # So, first we look for a working echo in the user's PATH.
-
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for dir in $PATH /usr/ucb; do
- IFS="$lt_save_ifs"
- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- echo="$dir/echo"
- break
- fi
- done
- IFS="$lt_save_ifs"
-
- if test "X$echo" = Xecho; then
- # We didn't find a better echo, so look for alternatives.
- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # This shell has a builtin print -r that does the trick.
- echo='print -r'
- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
- test "X$CONFIG_SHELL" != X/bin/ksh; then
- # If we have ksh, try running configure again with it.
- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
- export ORIGINAL_CONFIG_SHELL
- CONFIG_SHELL=/bin/ksh
- export CONFIG_SHELL
- exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
- else
- # Try using printf.
- echo='printf %s\n'
- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # Cool, printf works
- :
- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
- export CONFIG_SHELL
- SHELL="$CONFIG_SHELL"
- export SHELL
- echo="$CONFIG_SHELL $0 --fallback-echo"
- elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- echo="$CONFIG_SHELL $0 --fallback-echo"
- else
- # maybe with a smaller string...
- prev=:
-
- for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
- then
- break
- fi
- prev="$cmd"
- done
-
- if test "$prev" != 'sed 50q "$0"'; then
- echo_test_string=`eval $prev`
- export echo_test_string
- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
- else
- # Oops. We lost completely, so just stick with echo.
- echo=echo
- fi
- fi
- fi
- fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
- ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
-fi
-
-
-
-
-tagnames=${tagnames+${tagnames},}CXX
-
-tagnames=${tagnames+${tagnames},}F77
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete. It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='expat'
-PACKAGE_TARNAME='expat'
-PACKAGE_VERSION='2.0.1'
-PACKAGE_STRING='expat 2.0.1'
-PACKAGE_BUGREPORT='expat-bugs@libexpat.org'
-
-ac_unique_file="Makefile.in"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#if STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# if HAVE_STDLIB_H
-# include <stdlib.h>
-# endif
-#endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
-# include <memory.h>
-# endif
-# include <string.h>
-#endif
-#if HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#if HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-# include <stdint.h>
-# endif
-#endif
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CPP CXX CXXFLAGS ac_ct_CXX CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBCURRENT LIBREVISION LIBAGE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA FILEMAP LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case $ac_option in
- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
- eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package | sed 's/-/_/g'`
- eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; }
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
- eval "$ac_envvar='$ac_optarg'"
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- { echo "$as_me: error: missing argument to $ac_option" >&2
- { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
-do
- eval ac_val=$`echo $ac_var`
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) ;;
- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
- If a cross compiler is detected then cross compile mode will be used." >&2
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$0" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
- { (exit 1); exit 1; }; }
- else
- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
- fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
- { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
-ac_env_CXX_set=${CXX+set}
-ac_env_CXX_value=$CXX
-ac_cv_env_CXX_set=${CXX+set}
-ac_cv_env_CXX_value=$CXX
-ac_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_env_CXXFLAGS_value=$CXXFLAGS
-ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
-ac_cv_env_CXXFLAGS_value=$CXXFLAGS
-ac_env_CXXCPP_set=${CXXCPP+set}
-ac_env_CXXCPP_value=$CXXCPP
-ac_cv_env_CXXCPP_set=${CXXCPP+set}
-ac_cv_env_CXXCPP_value=$CXXCPP
-ac_env_F77_set=${F77+set}
-ac_env_F77_value=$F77
-ac_cv_env_F77_set=${F77+set}
-ac_cv_env_F77_value=$F77
-ac_env_FFLAGS_set=${FFLAGS+set}
-ac_env_FFLAGS_value=$FFLAGS
-ac_cv_env_FFLAGS_set=${FFLAGS+set}
-ac_cv_env_FFLAGS_value=$FFLAGS
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures expat 2.0.1 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
- cat <<_ACEOF
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --infodir=DIR info documentation [PREFIX/info]
- --mandir=DIR man documentation [PREFIX/man]
-_ACEOF
-
- cat <<\_ACEOF
-
-System types:
- --build=BUILD configure for building on BUILD [guessed]
- --host=HOST cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of expat 2.0.1:";;
- esac
- cat <<\_ACEOF
-
-Optional Features:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --enable-shared[=PKGS]
- build shared libraries [default=yes]
- --enable-static[=PKGS]
- build static libraries [default=yes]
- --enable-fast-install[=PKGS]
- optimize for fast installation [default=yes]
- --disable-libtool-lock avoid locking (might break parallel builds)
-
-Optional Packages:
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --with-gnu-ld assume the C compiler uses GNU ld [default=no]
- --with-pic try to use only PIC/non-PIC objects [default=use
- both]
- --with-tags[=TAGS]
- include additional configurations [automatic]
-
-Some influential environment variables:
- CC C compiler command
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
- headers in a nonstandard directory <include dir>
- CPP C preprocessor
- CXX C++ compiler command
- CXXFLAGS C++ compiler flags
- CXXCPP C++ preprocessor
- F77 Fortran 77 compiler command
- FFLAGS Fortran 77 compiler flags
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <expat-bugs@libexpat.org>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d $ac_dir || continue
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
- cd $ac_dir
- # Check for guested configure; otherwise get Cygnus style configure.
- if test -f $ac_srcdir/configure.gnu; then
- echo
- $SHELL $ac_srcdir/configure.gnu --help=recursive
- elif test -f $ac_srcdir/configure; then
- echo
- $SHELL $ac_srcdir/configure --help=recursive
- elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
- echo
- $ac_configure --help
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi
- cd $ac_popdir
- done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
- cat <<\_ACEOF
-expat configure 2.0.1
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by expat $as_me 2.0.1, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
- 2)
- ac_configure_args1="$ac_configure_args1 '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
- # Get rid of the leading space.
- ac_sep=" "
- ;;
- esac
- done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
-{
- (set) 2>&1 |
- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
- ;;
- *)
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-}
- echo
-
- cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
- echo
- sed "/^$/d" confdefs.h | sort
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core &&
- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
- ' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special
- # files actually), so we avoid doing that.
- if test -f "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . $cache_file;;
- *) . ./$cache_file;;
- esac
- fi
-else
- { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
- eval ac_new_val="\$ac_env_${ac_var}_value"
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in conftools $srcdir/conftools; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in conftools $srcdir/conftools" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in conftools $srcdir/conftools" >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-
-LIBCURRENT=6
-LIBREVISION=2
-LIBAGE=5
-
- ac_config_headers="$ac_config_headers expat_config.h"
-
-
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This file is free software; the Free Software Foundation gives
-## unlimited permission to copy and/or distribute it, with or without
-## modifications, as long as this notice is preserved.
-
-# serial 48 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-# _LT_AC_SYS_COMPILER
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-# _LT_LINKER_BOILERPLATE
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# ------------------
-# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ---------------------------------------------------------------------
-# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# ----------------------
-# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 DLLs
-# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-# set the default shared flag to --disable-shared
-# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments. Note that
-# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
-# it is assumed to be `libltdl'. LIBLTDL will be prefixed with
-# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
-# (note the single quotes!). If your package is not flat and you're not
-# using automake, define top_builddir and top_srcdir appropriately in
-# the Makefiles.
-# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments. Note that
-# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
-# and an installed libltdl is not found, it is assumed to be `libltdl'.
-# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
-# '${top_srcdir}/' (note the single quotes!). If your package is not
-# flat and you're not using automake, define top_builddir and top_srcdir
-# appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-# _LT_AC_LANG_CXX
-
-# _LT_AC_PROG_CXXCPP
-# ------------------
-# _LT_AC_PROG_CXXCPP
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# -------------
-# enable support for Windows resource files
-# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-
-# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# -------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars. Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
- # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-
-
-
-# old names
-
-
-
-
-
-
-
-
-# This is just to silence aclocal about the macro not being used
-
-
-
-
-
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-
-
-
-
-
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
- enableval="$enable_shared"
- p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_shared=yes
-fi;
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
- enableval="$enable_static"
- p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_static=yes
-fi;
-
-# Check whether --enable-fast-install or --disable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
- enableval="$enable_fast_install"
- p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
-else
- enable_fast_install=yes
-fi;
-
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
- (eval $ac_link_default) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Find the output, starting from the most likely. This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
- conftest.$ac_ext )
- # This is the source file.
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
- * )
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
- { (exit 77); exit 77; }; }
-fi
-
-ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
-
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cross_compiling=no
- else
- if test "$cross_compiling" = maybe; then
- cross_compiling=yes
- else
- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
- fi
- fi
-fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run. If not, either
-# the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
-
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-done
-else
- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
- case $ac_file in
- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-done
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
-if test "${lt_cv_path_SED+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-
-fi
-
-SED=$lt_cv_path_SED
-echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6
-
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
- echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${lt_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
-if test "${lt_cv_ld_reload_flag+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
-if test "${lt_cv_path_NM+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi
-fi
-echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6
-NM="$lt_cv_path_NM"
-
-echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6
-fi
-
-echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
-if test "${lt_cv_deplibs_check_method+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump'.
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu | dragonfly*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix3*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-nto-qnx*)
- lt_cv_deplibs_check_method=unknown
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
-
-fi;
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line 3564 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
-if test "${lt_cv_cc_needs_belf+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- lt_cv_cc_needs_belf=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-lt_cv_cc_needs_belf=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *) LD="${LD-ld} -64" ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-cygwin* | *-*-mingw* | *-*-pw32*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- echo "$as_me:$LINENO: result: $DLLTOOL" >&5
-echo "${ECHO_T}$DLLTOOL" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_DLLTOOL" && ac_cv_prog_ac_ct_DLLTOOL="false"
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
-echo "${ECHO_T}$ac_ct_DLLTOOL" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- DLLTOOL=$ac_ct_DLLTOOL
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
-set dummy ${ac_tool_prefix}as; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AS"; then
- ac_cv_prog_AS="$AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AS="${ac_tool_prefix}as"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AS=$ac_cv_prog_AS
-if test -n "$AS"; then
- echo "$as_me:$LINENO: result: $AS" >&5
-echo "${ECHO_T}$AS" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AS"; then
- ac_ct_AS=$AS
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AS"; then
- ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AS="as"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_AS" && ac_cv_prog_ac_ct_AS="false"
-fi
-fi
-ac_ct_AS=$ac_cv_prog_ac_ct_AS
-if test -n "$ac_ct_AS"; then
- echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
-echo "${ECHO_T}$ac_ct_AS" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- AS=$ac_ct_AS
-else
- AS="$ac_cv_prog_AS"
-fi
-
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- echo "$as_me:$LINENO: result: $OBJDUMP" >&5
-echo "${ECHO_T}$OBJDUMP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_OBJDUMP" && ac_cv_prog_ac_ct_OBJDUMP="false"
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- OBJDUMP=$ac_ct_OBJDUMP
-else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
- ;;
-
-esac
-
-need_locks="$enable_libtool_lock"
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
- if test "${ac_cv_prog_CPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CPP needs to be expanded
- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CPP=$CPP
-
-fi
- CPP=$ac_cv_prog_CPP
-else
- ac_cv_prog_CPP=$CPP
-fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_Header=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_Header=no"
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-for ac_header in dlfcn.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to expat-bugs@libexpat.org ##
-## -------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
- echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CXX" && break
- done
-fi
-if test -z "$CXX"; then
- ac_ct_CXX=$CXX
- for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CXX"; then
- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CXX="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
- echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CXX" && break
-done
-test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
-
- CXX=$ac_ct_CXX
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
-GXX=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-CXXFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cxx_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cxx_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cxx_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
-if test -z "$CXXCPP"; then
- if test "${ac_cv_prog_CXXCPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-fi
-
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$F77"; then
- ac_cv_prog_F77="$F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-F77=$ac_cv_prog_F77
-if test -n "$F77"; then
- echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$F77" && break
- done
-fi
-if test -z "$F77"; then
- ac_ct_F77=$F77
- for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_F77"; then
- ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_F77="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_F77=$ac_cv_prog_ac_ct_F77
-if test -n "$ac_ct_F77"; then
- echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_F77" && break
-done
-
- F77=$ac_ct_F77
-fi
-
-
-# Provide some information about the compiler.
-echo "$as_me:5296:" \
- "checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-rm -f a.out
-
-# If we don't use `.F' as extension, the preprocessor is not run on the
-# input file. (Note that this only needs to work for GNU compilers.)
-ac_save_ext=$ac_ext
-ac_ext=F
-echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
-if test "${ac_cv_f77_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
- program main
-#ifndef __GNUC__
- choke me
-#endif
-
- end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_f77_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
-ac_ext=$ac_save_ext
-ac_test_FFLAGS=${FFLAGS+set}
-ac_save_FFLAGS=$FFLAGS
-FFLAGS=
-echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_f77_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- FFLAGS=-g
-cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_f77_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_f77_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
-if test "$ac_test_FFLAGS" = set; then
- FFLAGS=$ac_save_FFLAGS
-elif test $ac_cv_prog_f77_g = yes; then
- if test "x$ac_cv_f77_compiler_gnu" = xyes; then
- FFLAGS="-g -O2"
- else
- FFLAGS="-g"
- fi
-else
- if test "x$ac_cv_f77_compiler_gnu" = xyes; then
- FFLAGS="-O2"
- else
- FFLAGS=
- fi
-fi
-
-G77=`test $ac_compiler_gnu = yes && echo yes`
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
-# find the maximum length of command line arguments
-echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
- = "XX$teststring") >/dev/null 2>&1 &&
- new_result=`expr "X$teststring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- teststring=
- # Add a significant safety factor because C++ compilers can tack on massive
- # amounts of additional arguments before passing them to the linker.
- # It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- ;;
- esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
- echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
-else
- echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6
-fi
-
-
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[BCDT]'
- ;;
-cygwin* | mingw* | pw32*)
- symcode='[ABCDGISTW]'
- ;;
-hpux*) # Its linker distinguishes data from code symbols
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
- ;;
-linux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDGIRSTW]'
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
- ;;
-solaris*)
- symcode='[BDRT]'
- ;;
-sco3.2v5*)
- symcode='[DT]'
- ;;
-sysv4.2uw2*)
- symcode='[DT]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
- ;;
-sysv4)
- symcode='[DFNSTU]'
- ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
- (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if grep ' nm_test_var$' "$nlist" >/dev/null; then
- if grep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
- cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{
-EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
- cat <<\EOF >> conftest.$ac_ext
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -f conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6
-else
- echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6
-fi
-
-echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6
-if test "${lt_cv_objdir+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6
-objdir=$lt_cv_objdir
-
-
-
-
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_AR"; then
- ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="ar"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- AR=$ac_ct_AR
-else
- AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- RANLIB=$ac_ct_RANLIB
-else
- RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- STRIP=$ac_ct_STRIP
-else
- STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- else
- MAGIC_CMD=:
- fi
-fi
-
- fi
- ;;
-esac
-
-enable_dlopen=no
-enable_win32_dll=yes
-
-# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
- enableval="$enable_libtool_lock"
-
-fi;
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-
-# Check whether --with-pic or --without-pic was given.
-if test "${with_pic+set}" = set; then
- withval="$with_pic"
- pic_mode="$withval"
-else
- pic_mode=default
-fi;
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
- lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6363: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:6367: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
-
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
-
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
-
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- lt_prog_compiler_pic='-qnocommon'
- lt_prog_compiler_wl='-Wl,'
- ;;
- esac
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- linux*)
- case $cc_basename in
- icc* | ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- esac
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6631: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:6635: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
-
-if test x"$lt_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
-else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works=yes
- fi
- else
- lt_prog_compiler_static_works=yes
- fi
- fi
- $rm conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
-
-if test x"$lt_prog_compiler_static_works" = xyes; then
- :
-else
- lt_prog_compiler_static=
-fi
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o=no
- $rm -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6735: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:6739: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $rm conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
- $rm out/* && rmdir out
- cd ..
- rmdir conftest
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
- if test "$hard_links" = no; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
- runpath_var=
- allow_undefined_flag=
- enable_shared_with_static_runtimes=no
- archive_cmds=
- archive_expsym_cmds=
- old_archive_From_new_cmds=
- old_archive_from_expsyms_cmds=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- thread_safe_flag_spec=
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld=
- hardcode_libdir_separator=
- hardcode_direct=no
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- link_all_deplibs=unknown
- hardcode_automatic=no
- module_cmds=
- module_expsym_cmds=
- always_export_symbols=no
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- extract_expsyms_cmds=
- # Just being paranoid about ensuring that cc_basename is set.
- for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
- case $host_os in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs=yes
- if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- fi
- ;;
-
- amigaos*)
- archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can't use
- # them.
- ld_shlibs=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- interix3*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- $echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- else
- ld_shlibs=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
-
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds=''
- hardcode_direct=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct=yes
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_From_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes=yes
- ;;
-
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[012])
- allow_undefined_flag='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- whole_archive_flag_spec=''
- link_all_deplibs=yes
- if test "$GCC" = yes ; then
- output_verbose_link_cmd='echo'
- archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- freebsd1*)
- ld_shlibs=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | kfreebsd*-gnu | dragonfly*)
- archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- hardcode_direct=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_libdir_flag_spec_ld='+b $libdir'
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- export_dynamic_flag_spec='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_ld='-rpath $libdir'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- link_all_deplibs=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
-
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
-
- openbsd*)
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- hardcode_libdir_separator=:
- ;;
-
- solaris*)
- no_undefined_flag=' -z text'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
- else
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
- esac
- link_all_deplibs=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
-
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
-
- *)
- ld_shlibs=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6
-test "$ld_shlibs" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
- (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- then
- archive_cmds_need_lc=no
- else
- archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $rm conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6
- ;;
- esac
- fi
- ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix4* | aix5*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-kfreebsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- freebsd*) # from 4.6 on
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix3*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-knetbsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-nto-qnx*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- shlibpath_overrides_runpath=no
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- shlibpath_overrides_runpath=yes
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" || \
- test -n "$runpath_var" || \
- test "X$hardcode_automatic" = "Xyes" ; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6
-
-if test "$hardcode_action" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-striplib=
-old_striplib=
-echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
- else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
- ;;
- *)
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
- ;;
- esac
-fi
-
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
-
-fi
-
- ;;
-
- *)
- echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
-if test "${ac_cv_func_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shl_load (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_shl_load) || defined (__stub___shl_load)
-choke me
-#else
-char (*f) () = shl_load;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != shl_load;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6
-if test $ac_cv_func_shl_load = yes; then
- lt_cv_dlopen="shl_load"
-else
- echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shl_load ();
-int
-main ()
-{
-shl_load ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dld_shl_load=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_shl_load=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
-if test $ac_cv_lib_dld_shl_load = yes; then
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
-else
- echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
-if test "${ac_cv_func_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char dlopen (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_dlopen) || defined (__stub___dlopen)
-choke me
-#else
-char (*f) () = dlopen;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != dlopen;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_func_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6
-if test $ac_cv_func_dlopen = yes; then
- lt_cv_dlopen="dlopen"
-else
- echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dl_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dl_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
-if test $ac_cv_lib_dl_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dlopen ();
-int
-main ()
-{
-dlopen ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_svld_dlopen=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_svld_dlopen=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
-if test $ac_cv_lib_svld_dlopen = yes; then
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dld_link ();
-int
-main ()
-{
-dld_link ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_dld_dld_link=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_dld_dld_link=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
-if test $ac_cv_lib_dld_dld_link = yes; then
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
-#line 9080 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- exit (status);
-}
-EOF
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
-if test "${lt_cv_dlopen_self_static+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
-#line 9180 "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- exit (status);
-}
-EOF
- if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-
-
-# Report which library types will actually be built
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
-aix4* | aix5*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
-esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- compiler \
- CC \
- LD \
- lt_prog_compiler_wl \
- lt_prog_compiler_pic \
- lt_prog_compiler_static \
- lt_prog_compiler_no_builtin_flag \
- export_dynamic_flag_spec \
- thread_safe_flag_spec \
- whole_archive_flag_spec \
- enable_shared_with_static_runtimes \
- old_archive_cmds \
- old_archive_from_new_cmds \
- predep_objects \
- postdep_objects \
- predeps \
- postdeps \
- compiler_lib_search_path \
- archive_cmds \
- archive_expsym_cmds \
- postinstall_cmds \
- postuninstall_cmds \
- old_archive_from_expsyms_cmds \
- allow_undefined_flag \
- no_undefined_flag \
- export_symbols_cmds \
- hardcode_libdir_flag_spec \
- hardcode_libdir_flag_spec_ld \
- hardcode_libdir_separator \
- hardcode_automatic \
- module_cmds \
- module_expsym_cmds \
- lt_cv_prog_compiler_c_o \
- exclude_expsyms \
- include_expsyms; do
-
- case $var in
- old_archive_cmds | \
- old_archive_from_new_cmds | \
- archive_cmds | \
- archive_expsym_cmds | \
- module_cmds | \
- module_expsym_cmds | \
- old_archive_from_expsyms_cmds | \
- export_symbols_cmds | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\$0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
-cfgfile="${ofile}T"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- $rm -f "$cfgfile"
- { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
-
- cat <<__EOF__ >> "$cfgfile"
-#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e 1s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# ### END LIBTOOL CONFIG
-
-__EOF__
-
-
- case $host_os in
- aix3*)
- cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-EOF
- ;;
- esac
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" || \
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-# Check whether --with-tags or --without-tags was given.
-if test "${with_tags+set}" = set; then
- withval="$with_tags"
- tagnames="$withval"
-fi;
-
-if test -f "$ltmain" && test -n "$tagnames"; then
- if test ! -f "${ofile}"; then
- { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
- fi
-
- if test -z "$LTCC"; then
- eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
- if test -z "$LTCC"; then
- { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
- else
- { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
- fi
- fi
- if test -z "$LTCFLAGS"; then
- eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
- fi
-
- # Extract list of available tagged configurations in $ofile.
- # Note that this assumes the entire list is on one line.
- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for tagname in $tagnames; do
- IFS="$lt_save_ifs"
- # Check whether tagname contains only valid characters
- case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
- "") ;;
- *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
- then
- { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- # Update the list of available tags.
- if test -n "$tagname"; then
- echo appending configuration tag \"$tagname\" to $ofile
-
- case $tagname in
- CXX)
- if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_flag_spec_ld_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
- $as_unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
-else
- $as_unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-compiler_CXX=$CC
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-else
- lt_prog_compiler_no_builtin_flag_CXX=
-fi
-
-if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
-
-# Check whether --with-gnu-ld or --without-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
- withval="$with_gnu_ld"
- test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi;
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
-else
- echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
-fi
-if test "${lt_cv_path_LD+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
- { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
- grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_CXX=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
- GXX=no
- with_gnu_ld=no
- wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-ld_shlibs_CXX=yes
-case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_CXX=''
- hardcode_direct_CXX=yes
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct_CXX=yes
- else
- # We have old collect2
- hardcode_direct_CXX=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_CXX=yes
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- hardcode_libdir_separator_CXX=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols_CXX=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_CXX='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_CXX="-z nodefs"
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_CXX=' ${wl}-bernotok'
- allow_undefined_flag_CXX=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_CXX='$convenience'
- archive_cmds_need_lc_CXX=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_CXX=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_CXX='-L$libdir'
- allow_undefined_flag_CXX=unsupported
- always_export_symbols_CXX=no
- enable_shared_with_static_runtimes_CXX=yes
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_CXX=no
- fi
- ;;
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[012])
- allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- archive_cmds_need_lc_CXX=no
- hardcode_direct_CXX=no
- hardcode_automatic_CXX=yes
- hardcode_shlibpath_var_CXX=unsupported
- whole_archive_flag_spec_CXX=''
- link_all_deplibs_CXX=yes
-
- if test "$GXX" = yes ; then
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
- fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- ld_shlibs_CXX=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
- freebsd[12]*)
- # C++ shared libraries reported to be fairly broken before switch to ELF
- ld_shlibs_CXX=no
- ;;
- freebsd-elf*)
- archive_cmds_need_lc_CXX=no
- ;;
- freebsd* | kfreebsd*-gnu | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- ld_shlibs_CXX=yes
- ;;
- gnu*)
- ;;
- hpux9*)
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- export_dynamic_flag_spec_CXX='${wl}-E'
- hardcode_direct_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes; then
- archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
- ;;
- *)
- export_dynamic_flag_spec_CXX='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- ;;
- *)
- hardcode_direct_CXX=yes
- hardcode_minus_L_CXX=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- interix3*)
- hardcode_direct_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
- fi
- fi
- link_all_deplibs_CXX=yes
- ;;
- esac
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
- ;;
- linux*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
- hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc*)
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- archive_cmds_need_lc_CXX=no
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC*)
- # Portland Group C++ compiler
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
- whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- esac
- ;;
- lynxos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- m88k*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
- openbsd2*)
- # C++ shared libraries are fairly broken
- ld_shlibs_CXX=no
- ;;
- openbsd*)
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- export_dynamic_flag_spec_CXX='${wl}-E'
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd='echo'
- ;;
- osf3*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- cxx*)
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- cxx*)
- allow_undefined_flag_CXX=' -expect_unresolved \*'
- archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
- $rm $lib.exp'
-
- hardcode_libdir_flag_spec_CXX='-rpath $libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
- hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_CXX=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- fi
- ;;
- esac
- ;;
- psos*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- archive_cmds_need_lc_CXX=yes
- no_undefined_flag_CXX=' -zdefs'
- archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- hardcode_libdir_flag_spec_CXX='-R$libdir'
- hardcode_shlibpath_var_CXX=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The C++ compiler is used as linker so we must use $wl
- # flag to pass the commands to the underlying system
- # linker. We must also pass each convience library through
- # to the system linker between allextract/defaultextract.
- # The C++ compiler will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
- ;;
- esac
- link_all_deplibs_CXX=yes
-
- output_verbose_link_cmd='echo'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
- if $CC --version | grep -v '^2\.7' > /dev/null; then
- archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
- fi
-
- hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
- fi
- ;;
- esac
- ;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag_CXX='${wl}-z,text'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- # So that behaviour is only enabled if SCOABSPATH is set to a
- # non-empty value in the environment. Most likely only useful for
- # creating official distributions of packages.
- # This is a hack until libtool officially supports absolute path
- # names for shared libraries.
- no_undefined_flag_CXX='${wl}-z,text'
- allow_undefined_flag_CXX='${wl}-z,nodefs'
- archive_cmds_need_lc_CXX=no
- hardcode_shlibpath_var_CXX=no
- hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator_CXX=':'
- link_all_deplibs_CXX=yes
- export_dynamic_flag_spec_CXX='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- esac
- ;;
- vxworks*)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- ld_shlibs_CXX=no
- ;;
-esac
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-GCC_CXX="$GXX"
-LD_CXX="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-EOF
-
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- # The `*' in the case matches for architectures that use `case' in
- # $output_verbose_cmd can trigger glob expansion during the loop
- # eval without this substitution.
- output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
- for p in `eval $output_verbose_link_cmd`; do
- case $p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" \
- || test $p = "-R"; then
- prev=$p
- continue
- else
- prev=
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- case $p in
- -L* | -R*)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$compiler_lib_search_path_CXX"; then
- compiler_lib_search_path_CXX="${prev}${p}"
- else
- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$postdeps_CXX"; then
- postdeps_CXX="${prev}${p}"
- else
- postdeps_CXX="${postdeps_CXX} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$predep_objects_CXX"; then
- predep_objects_CXX="$p"
- else
- predep_objects_CXX="$predep_objects_CXX $p"
- fi
- else
- if test -z "$postdep_objects_CXX"; then
- postdep_objects_CXX="$p"
- else
- postdep_objects_CXX="$postdep_objects_CXX $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$rm -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix3*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- predep_objects_CXX=
- postdep_objects_CXX=
- postdeps_CXX=
- ;;
-
-solaris*)
- case $cc_basename in
- CC*)
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- postdeps_CXX='-lCstd -lCrun'
- ;;
- esac
- ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
-
-lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- fi
- ;;
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
- ;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | os2* | pw32*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_CXX='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- lt_prog_compiler_pic_CXX=
- ;;
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_CXX=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- ;;
- *)
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix4* | aix5*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_CXX='-Bstatic'
- else
- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- lt_prog_compiler_pic_CXX='-qnocommon'
- lt_prog_compiler_wl_CXX='-Wl,'
- ;;
- esac
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | kfreebsd*-gnu | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- lt_prog_compiler_pic_CXX='+Z'
- fi
- ;;
- aCC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_CXX='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_static_CXX='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- lt_prog_compiler_pic_CXX='-fPIC'
- ;;
- icpc* | ecpc*)
- # Intel C++
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-static'
- ;;
- pgCC*)
- # Portland Group C++ compiler.
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-fpic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- lt_prog_compiler_pic_CXX='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- lt_prog_compiler_wl_CXX='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- lt_prog_compiler_wl_CXX='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_static_CXX='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- lt_prog_compiler_wl_CXX='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- lt_prog_compiler_pic_CXX='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- lt_prog_compiler_pic_CXX='-pic'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- lcc*)
- # Lucid
- lt_prog_compiler_pic_CXX='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- lt_prog_compiler_pic_CXX='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- lt_prog_compiler_wl_CXX='-Wl,'
- lt_prog_compiler_pic_CXX='-KPIC'
- lt_prog_compiler_static_CXX='-Bstatic'
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- lt_prog_compiler_can_build_shared_CXX=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_pic_works_CXX=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11524: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:11528: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_CXX=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
-
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
- case $lt_prog_compiler_pic_CXX in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
- esac
-else
- lt_prog_compiler_pic_CXX=
- lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_CXX=
- ;;
- *)
- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
- ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_static_works_CXX=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_CXX=yes
- fi
- else
- lt_prog_compiler_static_works_CXX=yes
- fi
- fi
- $rm conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6
-
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
- :
-else
- lt_prog_compiler_static_CXX=
-fi
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o_CXX=no
- $rm -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11628: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:11632: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_CXX=yes
- fi
- fi
- chmod u+w . 2>&5
- $rm conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
- $rm out/* && rmdir out
- cd ..
- rmdir conftest
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
- if test "$hard_links" = no; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- case $host_os in
- aix4* | aix5*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- export_symbols_cmds_CXX="$ltdll_cmds"
- ;;
- cygwin* | mingw*)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- *)
- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-
-echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_CXX=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds_CXX in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_CXX
- pic_flag=$lt_prog_compiler_pic_CXX
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
- allow_undefined_flag_CXX=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
- (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- then
- archive_cmds_need_lc_CXX=no
- else
- archive_cmds_need_lc_CXX=yes
- fi
- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $rm conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
- ;;
- esac
- fi
- ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix4* | aix5*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-kfreebsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- freebsd*) # from 4.6 on
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix3*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-knetbsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-nto-qnx*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- shlibpath_overrides_runpath=no
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- shlibpath_overrides_runpath=yes
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" || \
- test -n "$runpath_var_CXX" || \
- test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct_CXX" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
- test "$hardcode_minus_L_CXX" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_CXX=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_CXX=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_CXX=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6
-
-if test "$hardcode_action_CXX" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- compiler_CXX \
- CC_CXX \
- LD_CXX \
- lt_prog_compiler_wl_CXX \
- lt_prog_compiler_pic_CXX \
- lt_prog_compiler_static_CXX \
- lt_prog_compiler_no_builtin_flag_CXX \
- export_dynamic_flag_spec_CXX \
- thread_safe_flag_spec_CXX \
- whole_archive_flag_spec_CXX \
- enable_shared_with_static_runtimes_CXX \
- old_archive_cmds_CXX \
- old_archive_from_new_cmds_CXX \
- predep_objects_CXX \
- postdep_objects_CXX \
- predeps_CXX \
- postdeps_CXX \
- compiler_lib_search_path_CXX \
- archive_cmds_CXX \
- archive_expsym_cmds_CXX \
- postinstall_cmds_CXX \
- postuninstall_cmds_CXX \
- old_archive_from_expsyms_cmds_CXX \
- allow_undefined_flag_CXX \
- no_undefined_flag_CXX \
- export_symbols_cmds_CXX \
- hardcode_libdir_flag_spec_CXX \
- hardcode_libdir_flag_spec_ld_CXX \
- hardcode_libdir_separator_CXX \
- hardcode_automatic_CXX \
- module_cmds_CXX \
- module_expsym_cmds_CXX \
- lt_cv_prog_compiler_c_o_CXX \
- exclude_expsyms_CXX \
- include_expsyms_CXX; do
-
- case $var in
- old_archive_cmds_CXX | \
- old_archive_from_new_cmds_CXX | \
- archive_cmds_CXX | \
- archive_expsym_cmds_CXX | \
- module_cmds_CXX | \
- module_expsym_cmds_CXX | \
- old_archive_from_expsyms_cmds_CXX | \
- export_symbols_cmds_CXX | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\$0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
-cfgfile="$ofile"
-
- cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_CXX
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_CXX
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_CXX
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_CXX
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_CXX
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-
- else
- tagname=""
- fi
- ;;
-
- F77)
- if test -n "$F77" && test "X$F77" != "Xno"; then
-
-ac_ext=f
-ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
-ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_f77_compiler_gnu
-
-
-archive_cmds_need_lc_F77=no
-allow_undefined_flag_F77=
-always_export_symbols_F77=no
-archive_expsym_cmds_F77=
-export_dynamic_flag_spec_F77=
-hardcode_direct_F77=no
-hardcode_libdir_flag_spec_F77=
-hardcode_libdir_flag_spec_ld_F77=
-hardcode_libdir_separator_F77=
-hardcode_minus_L_F77=no
-hardcode_automatic_F77=no
-module_cmds_F77=
-module_expsym_cmds_F77=
-link_all_deplibs_F77=unknown
-old_archive_cmds_F77=$old_archive_cmds
-no_undefined_flag_F77=
-whole_archive_flag_spec_F77=
-enable_shared_with_static_runtimes_F77=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-objext_F77=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code=" program t\n end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-compiler_F77=$CC
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-aix4* | aix5*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
-esac
-echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6
-
-echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6
-
-GCC_F77="$G77"
-LD_F77="$LD"
-
-lt_prog_compiler_wl_F77=
-lt_prog_compiler_pic_F77=
-lt_prog_compiler_static_F77=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_static_F77='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_F77='-Bstatic'
- fi
- ;;
-
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
- ;;
-
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_F77='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_F77='-fno-common'
- ;;
-
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared_F77=no
- enable_shared=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_F77=-Kconform_pic
- fi
- ;;
-
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_F77='-fPIC'
- ;;
- esac
- ;;
-
- *)
- lt_prog_compiler_pic_F77='-fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl_F77='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_F77='-Bstatic'
- else
- lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- lt_prog_compiler_pic_F77='-qnocommon'
- lt_prog_compiler_wl_F77='-Wl,'
- ;;
- esac
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_F77='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl_F77='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_F77='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl_F77='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static_F77='-non_shared'
- ;;
-
- newsos6)
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- linux*)
- case $cc_basename in
- icc* | ecc*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-fpic'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl_F77='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static_F77='-non_shared'
- ;;
- esac
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl_F77='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static_F77='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- lt_prog_compiler_wl_F77='-Qoption ld ';;
- *)
- lt_prog_compiler_wl_F77='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl_F77='-Qoption ld '
- lt_prog_compiler_pic_F77='-PIC'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic_F77='-Kconform_pic'
- lt_prog_compiler_static_F77='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_pic_F77='-KPIC'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl_F77='-Wl,'
- lt_prog_compiler_can_build_shared_F77=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic_F77='-pic'
- lt_prog_compiler_static_F77='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared_F77=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_F77"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_pic_works_F77=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_F77"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13198: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:13202: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_F77=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
-
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
- case $lt_prog_compiler_pic_F77 in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
- esac
-else
- lt_prog_compiler_pic_F77=
- lt_prog_compiler_can_build_shared_F77=no
-fi
-
-fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_F77=
- ;;
- *)
- lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
- ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_static_works_F77=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_F77=yes
- fi
- else
- lt_prog_compiler_static_works_F77=yes
- fi
- fi
- $rm conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6
-
-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
- :
-else
- lt_prog_compiler_static_F77=
-fi
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o_F77=no
- $rm -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13302: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:13306: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_F77=yes
- fi
- fi
- chmod u+w . 2>&5
- $rm conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
- $rm out/* && rmdir out
- cd ..
- rmdir conftest
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
- if test "$hard_links" = no; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
- runpath_var=
- allow_undefined_flag_F77=
- enable_shared_with_static_runtimes_F77=no
- archive_cmds_F77=
- archive_expsym_cmds_F77=
- old_archive_From_new_cmds_F77=
- old_archive_from_expsyms_cmds_F77=
- export_dynamic_flag_spec_F77=
- whole_archive_flag_spec_F77=
- thread_safe_flag_spec_F77=
- hardcode_libdir_flag_spec_F77=
- hardcode_libdir_flag_spec_ld_F77=
- hardcode_libdir_separator_F77=
- hardcode_direct_F77=no
- hardcode_minus_L_F77=no
- hardcode_shlibpath_var_F77=unsupported
- link_all_deplibs_F77=unknown
- hardcode_automatic_F77=no
- module_cmds_F77=
- module_expsym_cmds_F77=
- always_export_symbols_F77=no
- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms_F77=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- extract_expsyms_cmds=
- # Just being paranoid about ensuring that cc_basename is set.
- for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
- case $host_os in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs_F77=yes
- if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_F77='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_F77=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs_F77=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- fi
- ;;
-
- amigaos*)
- archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_minus_L_F77=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can't use
- # them.
- ld_shlibs_F77=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_F77=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_F77='-L$libdir'
- allow_undefined_flag_F77=unsupported
- always_export_symbols_F77=no
- enable_shared_with_static_runtimes_F77=yes
- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
-
- interix3*)
- hardcode_direct_F77=no
- hardcode_shlibpath_var_F77=no
- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_F77='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
- whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- $echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- else
- ld_shlibs_F77=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs_F77=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs_F77=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_F77=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs_F77" = no; then
- runpath_var=
- hardcode_libdir_flag_spec_F77=
- export_dynamic_flag_spec_F77=
- whole_archive_flag_spec_F77=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag_F77=unsupported
- always_export_symbols_F77=yes
- archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L_F77=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct_F77=unsupported
- fi
- ;;
-
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_F77=''
- hardcode_direct_F77=yes
- hardcode_libdir_separator_F77=':'
- link_all_deplibs_F77=yes
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct_F77=yes
- else
- # We have old collect2
- hardcode_direct_F77=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_F77=yes
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_libdir_separator_F77=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols_F77=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_F77='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_F77="-z nodefs"
- archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
- program main
-
- end
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_f77_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_F77=' ${wl}-bernotok'
- allow_undefined_flag_F77=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_F77='$convenience'
- archive_cmds_need_lc_F77=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_minus_L_F77=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs_F77=no
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec_F77=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec_F77=' '
- allow_undefined_flag_F77=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_From_new_cmds_F77='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes_F77=yes
- ;;
-
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[012])
- allow_undefined_flag_F77='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- archive_cmds_need_lc_F77=no
- hardcode_direct_F77=no
- hardcode_automatic_F77=yes
- hardcode_shlibpath_var_F77=unsupported
- whole_archive_flag_spec_F77=''
- link_all_deplibs_F77=yes
- if test "$GCC" = yes ; then
- output_verbose_link_cmd='echo'
- archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- ld_shlibs_F77=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_shlibpath_var_F77=no
- ;;
-
- freebsd1*)
- ld_shlibs_F77=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec_F77='-R$libdir'
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_F77=yes
- hardcode_minus_L_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | kfreebsd*-gnu | dragonfly*)
- archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_F77='-R$libdir'
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_F77=:
- hardcode_direct_F77=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_F77=yes
- export_dynamic_flag_spec_F77='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_F77=:
-
- hardcode_direct_F77=yes
- export_dynamic_flag_spec_F77='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_F77=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_F77=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_libdir_flag_spec_ld_F77='+b $libdir'
- hardcode_direct_F77=no
- hardcode_shlibpath_var_F77=no
- ;;
- *)
- hardcode_direct_F77=yes
- export_dynamic_flag_spec_F77='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_F77=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
- fi
- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_F77=:
- link_all_deplibs_F77=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec_F77='-R$libdir'
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- newsos6)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_F77=yes
- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_F77=:
- hardcode_shlibpath_var_F77=no
- ;;
-
- openbsd*)
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_F77='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_F77='-R$libdir'
- ;;
- *)
- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_minus_L_F77=yes
- allow_undefined_flag_F77=unsupported
- archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag_F77=' -expect_unresolved \*'
- archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_F77=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag_F77=' -expect_unresolved \*'
- archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec_F77='-rpath $libdir'
- fi
- hardcode_libdir_separator_F77=:
- ;;
-
- solaris*)
- no_undefined_flag_F77=' -z text'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
- else
- wlarc=''
- archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
- fi
- hardcode_libdir_flag_spec_F77='-R$libdir'
- hardcode_shlibpath_var_F77=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
- esac
- link_all_deplibs_F77=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_direct_F77=yes
- hardcode_minus_L_F77=yes
- hardcode_shlibpath_var_F77=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_F77=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds_F77='$CC -r -o $output$reload_objs'
- hardcode_direct_F77=no
- ;;
- motorola)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var_F77=no
- ;;
-
- sysv4.3*)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_F77=no
- export_dynamic_flag_spec_F77='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_F77=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs_F77=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
- no_undefined_flag_F77='${wl}-z,text'
- archive_cmds_need_lc_F77=no
- hardcode_shlibpath_var_F77=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag_F77='${wl}-z,text'
- allow_undefined_flag_F77='${wl}-z,nodefs'
- archive_cmds_need_lc_F77=no
- hardcode_shlibpath_var_F77=no
- hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator_F77=':'
- link_all_deplibs_F77=yes
- export_dynamic_flag_spec_F77='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_F77='-L$libdir'
- hardcode_shlibpath_var_F77=no
- ;;
-
- *)
- ld_shlibs_F77=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6
-test "$ld_shlibs_F77" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_F77" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_F77=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds_F77 in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_F77
- pic_flag=$lt_prog_compiler_pic_F77
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_F77
- allow_undefined_flag_F77=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
- (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- then
- archive_cmds_need_lc_F77=no
- else
- archive_cmds_need_lc_F77=yes
- fi
- allow_undefined_flag_F77=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $rm conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
- ;;
- esac
- fi
- ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix4* | aix5*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-kfreebsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- freebsd*) # from 4.6 on
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix3*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-knetbsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-nto-qnx*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- shlibpath_overrides_runpath=no
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- shlibpath_overrides_runpath=yes
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_F77=
-if test -n "$hardcode_libdir_flag_spec_F77" || \
- test -n "$runpath_var_F77" || \
- test "X$hardcode_automatic_F77" = "Xyes" ; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct_F77" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
- test "$hardcode_minus_L_F77" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_F77=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_F77=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_F77=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6
-
-if test "$hardcode_action_F77" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- compiler_F77 \
- CC_F77 \
- LD_F77 \
- lt_prog_compiler_wl_F77 \
- lt_prog_compiler_pic_F77 \
- lt_prog_compiler_static_F77 \
- lt_prog_compiler_no_builtin_flag_F77 \
- export_dynamic_flag_spec_F77 \
- thread_safe_flag_spec_F77 \
- whole_archive_flag_spec_F77 \
- enable_shared_with_static_runtimes_F77 \
- old_archive_cmds_F77 \
- old_archive_from_new_cmds_F77 \
- predep_objects_F77 \
- postdep_objects_F77 \
- predeps_F77 \
- postdeps_F77 \
- compiler_lib_search_path_F77 \
- archive_cmds_F77 \
- archive_expsym_cmds_F77 \
- postinstall_cmds_F77 \
- postuninstall_cmds_F77 \
- old_archive_from_expsyms_cmds_F77 \
- allow_undefined_flag_F77 \
- no_undefined_flag_F77 \
- export_symbols_cmds_F77 \
- hardcode_libdir_flag_spec_F77 \
- hardcode_libdir_flag_spec_ld_F77 \
- hardcode_libdir_separator_F77 \
- hardcode_automatic_F77 \
- module_cmds_F77 \
- module_expsym_cmds_F77 \
- lt_cv_prog_compiler_c_o_F77 \
- exclude_expsyms_F77 \
- include_expsyms_F77; do
-
- case $var in
- old_archive_cmds_F77 | \
- old_archive_from_new_cmds_F77 | \
- archive_cmds_F77 | \
- archive_expsym_cmds_F77 | \
- module_cmds_F77 | \
- module_expsym_cmds_F77 | \
- old_archive_from_expsyms_cmds_F77 | \
- export_symbols_cmds_F77 | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\$0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
-cfgfile="$ofile"
-
- cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_F77
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_F77
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_F77
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_F77
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_F77
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_F77
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_F77
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_F77
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_F77
-archive_expsym_cmds=$lt_archive_expsym_cmds_F77
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_F77
-module_expsym_cmds=$lt_module_expsym_cmds_F77
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_F77
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_F77
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_F77
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_F77
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_F77
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_F77
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_F77
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_F77
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_F77
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_F77
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_F77
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_F77
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_F77
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_F77
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_F77
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
- else
- tagname=""
- fi
- ;;
-
- GCJ)
- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-
-
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-objext_GCJ=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-compiler_GCJ=$CC
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-archive_cmds_need_lc_GCJ=no
-
-old_archive_cmds_GCJ=$old_archive_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-
-lt_prog_compiler_no_builtin_flag_GCJ=
-
-if test "$GCC" = yes; then
- lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15509: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:15513: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
-else
- :
-fi
-
-fi
-
-lt_prog_compiler_wl_GCJ=
-lt_prog_compiler_pic_GCJ=
-lt_prog_compiler_static_GCJ=
-
-echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_static_GCJ='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_GCJ='-Bstatic'
- fi
- ;;
-
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
- ;;
-
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic_GCJ='-fno-common'
- ;;
-
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared_GCJ=no
- enable_shared=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic_GCJ=-Kconform_pic
- fi
- ;;
-
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_GCJ='-fPIC'
- ;;
- esac
- ;;
-
- *)
- lt_prog_compiler_pic_GCJ='-fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static_GCJ='-Bstatic'
- else
- lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- lt_prog_compiler_pic_GCJ='-qnocommon'
- lt_prog_compiler_wl_GCJ='-Wl,'
- ;;
- esac
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic_GCJ='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static_GCJ='-non_shared'
- ;;
-
- newsos6)
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- linux*)
- case $cc_basename in
- icc* | ecc*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-fpic'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static_GCJ='-non_shared'
- ;;
- esac
- ;;
-
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static_GCJ='-non_shared'
- ;;
-
- solaris*)
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- lt_prog_compiler_wl_GCJ='-Qoption ld ';;
- *)
- lt_prog_compiler_wl_GCJ='-Wl,';;
- esac
- ;;
-
- sunos4*)
- lt_prog_compiler_wl_GCJ='-Qoption ld '
- lt_prog_compiler_pic_GCJ='-PIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic_GCJ='-Kconform_pic'
- lt_prog_compiler_static_GCJ='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_pic_GCJ='-KPIC'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- unicos*)
- lt_prog_compiler_wl_GCJ='-Wl,'
- lt_prog_compiler_can_build_shared_GCJ=no
- ;;
-
- uts4*)
- lt_prog_compiler_pic_GCJ='-pic'
- lt_prog_compiler_static_GCJ='-Bstatic'
- ;;
-
- *)
- lt_prog_compiler_can_build_shared_GCJ=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_GCJ"; then
-
-echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_pic_works_GCJ=no
- ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15777: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:15781: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_GCJ=yes
- fi
- fi
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
-
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
- case $lt_prog_compiler_pic_GCJ in
- "" | " "*) ;;
- *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
- esac
-else
- lt_prog_compiler_pic_GCJ=
- lt_prog_compiler_can_build_shared_GCJ=no
-fi
-
-fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic_GCJ=
- ;;
- *)
- lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
- ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
-echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_prog_compiler_static_works_GCJ=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_GCJ=yes
- fi
- else
- lt_prog_compiler_static_works_GCJ=yes
- fi
- fi
- $rm conftest*
- LDFLAGS="$save_LDFLAGS"
-
-fi
-echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6
-
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
- :
-else
- lt_prog_compiler_static_GCJ=
-fi
-
-
-echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
-if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- lt_cv_prog_compiler_c_o_GCJ=no
- $rm -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15881: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:15885: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o_GCJ=yes
- fi
- fi
- chmod u+w . 2>&5
- $rm conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
- $rm out/* && rmdir out
- cd ..
- rmdir conftest
- $rm conftest*
-
-fi
-echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6
- if test "$hard_links" = no; then
- { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-
-echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
-
- runpath_var=
- allow_undefined_flag_GCJ=
- enable_shared_with_static_runtimes_GCJ=no
- archive_cmds_GCJ=
- archive_expsym_cmds_GCJ=
- old_archive_From_new_cmds_GCJ=
- old_archive_from_expsyms_cmds_GCJ=
- export_dynamic_flag_spec_GCJ=
- whole_archive_flag_spec_GCJ=
- thread_safe_flag_spec_GCJ=
- hardcode_libdir_flag_spec_GCJ=
- hardcode_libdir_flag_spec_ld_GCJ=
- hardcode_libdir_separator_GCJ=
- hardcode_direct_GCJ=no
- hardcode_minus_L_GCJ=no
- hardcode_shlibpath_var_GCJ=unsupported
- link_all_deplibs_GCJ=unknown
- hardcode_automatic_GCJ=no
- module_cmds_GCJ=
- module_expsym_cmds_GCJ=
- always_export_symbols_GCJ=no
- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms_GCJ=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- extract_expsyms_cmds=
- # Just being paranoid about ensuring that cc_basename is set.
- for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
- case $host_os in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- ld_shlibs_GCJ=yes
- if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
- export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec_GCJ=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs_GCJ=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- fi
- ;;
-
- amigaos*)
- archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_minus_L_GCJ=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can't use
- # them.
- ld_shlibs_GCJ=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag_GCJ=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- allow_undefined_flag_GCJ=unsupported
- always_export_symbols_GCJ=no
- enable_shared_with_static_runtimes_GCJ=yes
- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
- interix3*)
- hardcode_direct_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_GCJ='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
- whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test $supports_anon_versioning = yes; then
- archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- $echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs_GCJ=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs_GCJ=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs_GCJ=no
- fi
- ;;
- esac
-
- if test "$ld_shlibs_GCJ" = no; then
- runpath_var=
- hardcode_libdir_flag_spec_GCJ=
- export_dynamic_flag_spec_GCJ=
- whole_archive_flag_spec_GCJ=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag_GCJ=unsupported
- always_export_symbols_GCJ=yes
- archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L_GCJ=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct_GCJ=unsupported
- fi
- ;;
-
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- archive_cmds_GCJ=''
- hardcode_direct_GCJ=yes
- hardcode_libdir_separator_GCJ=':'
- link_all_deplibs_GCJ=yes
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- hardcode_direct_GCJ=yes
- else
- # We have old collect2
- hardcode_direct_GCJ=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L_GCJ=yes
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_libdir_separator_GCJ=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols_GCJ=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag_GCJ='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag_GCJ="-z nodefs"
- archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-
- hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag_GCJ=' ${wl}-bernotok'
- allow_undefined_flag_GCJ=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec_GCJ='$convenience'
- archive_cmds_need_lc_GCJ=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_minus_L_GCJ=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs_GCJ=no
- ;;
-
- bsdi[45]*)
- export_dynamic_flag_spec_GCJ=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec_GCJ=' '
- allow_undefined_flag_GCJ=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_From_new_cmds_GCJ='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
- fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
- enable_shared_with_static_runtimes_GCJ=yes
- ;;
-
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[012])
- allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- archive_cmds_need_lc_GCJ=no
- hardcode_direct_GCJ=no
- hardcode_automatic_GCJ=yes
- hardcode_shlibpath_var_GCJ=unsupported
- whole_archive_flag_spec_GCJ=''
- link_all_deplibs_GCJ=yes
- if test "$GCC" = yes ; then
- output_verbose_link_cmd='echo'
- archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- ld_shlibs_GCJ=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- freebsd1*)
- ld_shlibs_GCJ=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_GCJ=yes
- hardcode_minus_L_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | kfreebsd*-gnu | dragonfly*)
- archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
- hardcode_direct_GCJ=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_GCJ=yes
- export_dynamic_flag_spec_GCJ='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
-
- hardcode_direct_GCJ=yes
- export_dynamic_flag_spec_GCJ='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_GCJ=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
- hardcode_direct_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- ;;
- *)
- hardcode_direct_GCJ=yes
- export_dynamic_flag_spec_GCJ='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L_GCJ=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
- fi
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
- link_all_deplibs_GCJ=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- newsos6)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_GCJ=yes
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- openbsd*)
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_GCJ='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- ;;
- *)
- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- ;;
-
- os2*)
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_minus_L_GCJ=yes
- allow_undefined_flag_GCJ=unsupported
- archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag_GCJ=' -expect_unresolved \*'
- archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator_GCJ=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag_GCJ=' -expect_unresolved \*'
- archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
- fi
- hardcode_libdir_separator_GCJ=:
- ;;
-
- solaris*)
- no_undefined_flag_GCJ=' -z text'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
- else
- wlarc=''
- archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
- fi
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- hardcode_shlibpath_var_GCJ=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
- esac
- link_all_deplibs_GCJ=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_direct_GCJ=yes
- hardcode_minus_L_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_GCJ=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds_GCJ='$CC -r -o $output$reload_objs'
- hardcode_direct_GCJ=no
- ;;
- motorola)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- sysv4.3*)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_GCJ=no
- export_dynamic_flag_spec_GCJ='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var_GCJ=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs_GCJ=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
- no_undefined_flag_GCJ='${wl}-z,text'
- archive_cmds_need_lc_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag_GCJ='${wl}-z,text'
- allow_undefined_flag_GCJ='${wl}-z,nodefs'
- archive_cmds_need_lc_GCJ=no
- hardcode_shlibpath_var_GCJ=no
- hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator_GCJ=':'
- link_all_deplibs_GCJ=yes
- export_dynamic_flag_spec_GCJ='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_GCJ='-L$libdir'
- hardcode_shlibpath_var_GCJ=no
- ;;
-
- *)
- ld_shlibs_GCJ=no
- ;;
- esac
- fi
-
-echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6
-test "$ld_shlibs_GCJ" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_GCJ" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc_GCJ=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds_GCJ in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
- $rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl_GCJ
- pic_flag=$lt_prog_compiler_pic_GCJ
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
- allow_undefined_flag_GCJ=
- if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
- (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
- then
- archive_cmds_need_lc_GCJ=no
- else
- archive_cmds_need_lc_GCJ=yes
- fi
- allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $rm conftest*
- echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
- ;;
- esac
- fi
- ;;
-esac
-
-echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix4* | aix5*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-kfreebsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- freebsd*) # from 4.6 on
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix3*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-knetbsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-nto-qnx*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- shlibpath_overrides_runpath=no
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- shlibpath_overrides_runpath=yes
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
-hardcode_action_GCJ=
-if test -n "$hardcode_libdir_flag_spec_GCJ" || \
- test -n "$runpath_var_GCJ" || \
- test "X$hardcode_automatic_GCJ" = "Xyes" ; then
-
- # We can hardcode non-existant directories.
- if test "$hardcode_direct_GCJ" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
- test "$hardcode_minus_L_GCJ" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action_GCJ=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action_GCJ=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action_GCJ=unsupported
-fi
-echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6
-
-if test "$hardcode_action_GCJ" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- compiler_GCJ \
- CC_GCJ \
- LD_GCJ \
- lt_prog_compiler_wl_GCJ \
- lt_prog_compiler_pic_GCJ \
- lt_prog_compiler_static_GCJ \
- lt_prog_compiler_no_builtin_flag_GCJ \
- export_dynamic_flag_spec_GCJ \
- thread_safe_flag_spec_GCJ \
- whole_archive_flag_spec_GCJ \
- enable_shared_with_static_runtimes_GCJ \
- old_archive_cmds_GCJ \
- old_archive_from_new_cmds_GCJ \
- predep_objects_GCJ \
- postdep_objects_GCJ \
- predeps_GCJ \
- postdeps_GCJ \
- compiler_lib_search_path_GCJ \
- archive_cmds_GCJ \
- archive_expsym_cmds_GCJ \
- postinstall_cmds_GCJ \
- postuninstall_cmds_GCJ \
- old_archive_from_expsyms_cmds_GCJ \
- allow_undefined_flag_GCJ \
- no_undefined_flag_GCJ \
- export_symbols_cmds_GCJ \
- hardcode_libdir_flag_spec_GCJ \
- hardcode_libdir_flag_spec_ld_GCJ \
- hardcode_libdir_separator_GCJ \
- hardcode_automatic_GCJ \
- module_cmds_GCJ \
- module_expsym_cmds_GCJ \
- lt_cv_prog_compiler_c_o_GCJ \
- exclude_expsyms_GCJ \
- include_expsyms_GCJ; do
-
- case $var in
- old_archive_cmds_GCJ | \
- old_archive_from_new_cmds_GCJ | \
- archive_cmds_GCJ | \
- archive_expsym_cmds_GCJ | \
- module_cmds_GCJ | \
- module_expsym_cmds_GCJ | \
- old_archive_from_expsyms_cmds_GCJ | \
- export_symbols_cmds_GCJ | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\$0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
-cfgfile="$ofile"
-
- cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_GCJ
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_GCJ
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_GCJ
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_GCJ
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_GCJ
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_GCJ
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_GCJ
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_GCJ
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_GCJ
-archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_GCJ
-module_expsym_cmds=$lt_module_expsym_cmds_GCJ
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_GCJ
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_GCJ
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_GCJ
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_GCJ
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_GCJ
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_GCJ
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_GCJ
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_GCJ
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_GCJ
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_GCJ
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_GCJ
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_GCJ
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_GCJ
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_GCJ
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
- else
- tagname=""
- fi
- ;;
-
- RC)
-
-
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-objext_RC=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-
-ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-compiler_RC=$CC
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-
-lt_cv_prog_compiler_c_o_RC=yes
-
-# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- compiler_RC \
- CC_RC \
- LD_RC \
- lt_prog_compiler_wl_RC \
- lt_prog_compiler_pic_RC \
- lt_prog_compiler_static_RC \
- lt_prog_compiler_no_builtin_flag_RC \
- export_dynamic_flag_spec_RC \
- thread_safe_flag_spec_RC \
- whole_archive_flag_spec_RC \
- enable_shared_with_static_runtimes_RC \
- old_archive_cmds_RC \
- old_archive_from_new_cmds_RC \
- predep_objects_RC \
- postdep_objects_RC \
- predeps_RC \
- postdeps_RC \
- compiler_lib_search_path_RC \
- archive_cmds_RC \
- archive_expsym_cmds_RC \
- postinstall_cmds_RC \
- postuninstall_cmds_RC \
- old_archive_from_expsyms_cmds_RC \
- allow_undefined_flag_RC \
- no_undefined_flag_RC \
- export_symbols_cmds_RC \
- hardcode_libdir_flag_spec_RC \
- hardcode_libdir_flag_spec_ld_RC \
- hardcode_libdir_separator_RC \
- hardcode_automatic_RC \
- module_cmds_RC \
- module_expsym_cmds_RC \
- lt_cv_prog_compiler_c_o_RC \
- exclude_expsyms_RC \
- include_expsyms_RC; do
-
- case $var in
- old_archive_cmds_RC | \
- old_archive_from_new_cmds_RC | \
- archive_cmds_RC | \
- archive_expsym_cmds_RC | \
- module_cmds_RC | \
- module_expsym_cmds_RC | \
- old_archive_from_expsyms_cmds_RC | \
- export_symbols_cmds_RC | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\$0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
- ;;
- esac
-
-cfgfile="$ofile"
-
- cat <<__EOF__ >> "$cfgfile"
-# ### BEGIN LIBTOOL TAG CONFIG: $tagname
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_RC
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_compiler_RC
-
-# Is the compiler the GNU C compiler?
-with_gcc=$GCC_RC
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_LD_RC
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_RC
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_RC
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_RC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_old_archive_cmds_RC
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_archive_cmds_RC
-archive_expsym_cmds=$lt_archive_expsym_cmds_RC
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_module_cmds_RC
-module_expsym_cmds=$lt_module_expsym_cmds_RC
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_predep_objects_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_postdep_objects_RC
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_predeps_RC
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_postdeps_RC
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path_RC
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_RC
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_RC
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_RC
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$hardcode_direct_RC
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$hardcode_minus_L_RC
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$hardcode_automatic_RC
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_RC
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$always_export_symbols_RC
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_RC
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_RC
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_RC
-
-# ### END LIBTOOL TAG CONFIG: $tagname
-
-__EOF__
-
-
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
- ;;
-
- *)
- { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
- { (exit 1); exit 1; }; }
- ;;
- esac
-
- # Append the new tag name to the list of available tags.
- if test -n "$tagname" ; then
- available_tags="$available_tags $tagname"
- fi
- fi
- done
- IFS="$lt_save_ifs"
-
- # Now substitute the updated list of available tags.
- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
- mv "${ofile}T" "$ofile"
- chmod +x "$ofile"
- else
- rm -f "${ofile}T"
- { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
- { (exit 1); exit 1; }; }
- fi
-fi
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-# Prevent multiple expansion
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- CC=$ac_ct_CC
-else
- CC="$ac_cv_prog_CC"
-fi
-
-fi
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-fi
-if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
- for ac_prog in cl
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
- echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$CC" && break
- done
-fi
-if test -z "$CC"; then
- ac_ct_CC=$CC
- for ac_prog in cl
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$ac_ct_CC"; then
- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- test -n "$ac_ct_CC" && break
-done
-
- CC=$ac_ct_CC
-fi
-
-fi
-
-
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-
-# Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
- "checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
- (eval $ac_compiler --version </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
- (eval $ac_compiler -v </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
- (eval $ac_compiler -V </dev/null >&5) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-#ifndef __GNUC__
- choke me
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_compiler_gnu=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_compiler_gnu=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-GCC=`test $ac_compiler_gnu = yes && echo yes`
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_prog_cc_g=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_prog_cc_stdc=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
- char **p;
- int i;
-{
- return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
- char *s;
- va_list v;
- va_start (v,p);
- s = g (p, va_arg (v,int));
- va_end (v);
- return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
- as 'x'. The following induces an error, until -std1 is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
- that's true only with -std1. */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
- ;
- return 0;
-}
-_ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX 10.20 and later -Ae
-# HP-UX older versions -Aa -D_HPUX_SOURCE
-# SVR4 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_prog_cc_stdc=$ac_arg
-break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext
-done
-rm -f conftest.$ac_ext conftest.$ac_objext
-CC=$ac_save_CC
-
-fi
-
-case "x$ac_cv_prog_cc_stdc" in
- x|xno)
- echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
- *)
- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
- CC="$CC $ac_cv_prog_cc_stdc" ;;
-esac
-
-# Some people use a C++ compiler to compile C. Since we use `exit',
-# in C++ we need to declare it. In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
- choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- for ac_declaration in \
- '' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_declaration
-int
-main ()
-{
-exit (42);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- break
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
- ./ | .// | /cC/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- done
- done
- ;;
-esac
-done
-
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
- INSTALL=$ac_install_sh
- fi
-fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-if test "$GCC" = yes ; then
- OLDCFLAGS="$CFLAGS -Wall -Wmissing-prototypes -Wstrict-prototypes"
- CFLAGS="$OLDCFLAGS -fexceptions"
- echo "$as_me:$LINENO: checking whether $CC accepts -fexceptions" >&5
-echo $ECHO_N "checking whether $CC accepts -fexceptions... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; CFLAGS="$OLDCFLAGS"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CXXFLAGS=`echo "$CFLAGS" | sed 's/ -Wmissing-prototypes -Wstrict-prototypes//'`
-fi
-
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_header_stdc=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then
- :
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then
- :
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ctype.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- exit(2);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- :
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
-fi
-
-
-
-echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6
-if test "${ac_cv_c_bigendian+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_c_bigendian=unknown
-# See if sys/param.h defines the BYTE_ORDER macro.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/param.h>
-int
-main ()
-{
-
-#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
- bogus endian macros
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- # It does; now see whether it defined to BIG_ENDIAN or not.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <sys/types.h>
-#include <sys/param.h>
-int
-main ()
-{
-
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
-#endif
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_bigendian=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-if test $ac_cv_c_bigendian = unknown; then
-if test "$cross_compiling" = yes; then
- echo $ac_n "cross-compiling... " 2>&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-main () {
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long l;
- char c[sizeof (long)];
- } u;
- u.l = 1;
- exit (u.c[sizeof (long) - 1] == 1);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=no
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
-if test $ac_cv_c_bigendian = unknown; then
-echo "$as_me:$LINENO: checking to probe for byte ordering" >&5
-echo $ECHO_N "checking to probe for byte ordering... $ECHO_C" >&6
-
-cat >conftest.c <<EOF
-short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-void _ascii() { char* s = (char*) ascii_mm; s = (char*) ascii_ii; }
-short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-void _ebcdic() { char* s = (char*) ebcdic_mm; s = (char*) ebcdic_ii; }
-int main() { _ascii (); _ebcdic (); return 0; }
-EOF
- if test -f conftest.c ; then
- if ${CC-cc} -c conftest.c -o conftest.o && test -f conftest.o ; then
- if test `grep -l BIGenDianSyS conftest.o` ; then
- echo $ac_n ' big endian probe OK, ' 1>&6
- ac_cv_c_bigendian=yes
- fi
- if test `grep -l LiTTleEnDian conftest.o` ; then
- echo $ac_n ' little endian probe OK, ' 1>&6
- if test $ac_cv_c_bigendian = yes ; then
- ac_cv_c_bigendian=unknown;
- else
- ac_cv_c_bigendian=no
- fi
- fi
- echo $ac_n 'guessing bigendian ... ' >&6
- fi
- fi
-echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-echo "${ECHO_T}$ac_cv_c_bigendian" >&6
-fi
-if test $ac_cv_c_bigendian = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
-
- BYTEORDER=4321
-else
- BYTEORDER=1234
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define BYTEORDER $BYTEORDER
-_ACEOF
-
-if test $ac_cv_c_bigendian = unknown; then
- { { echo "$as_me:$LINENO: error: unknown endianess - sorry" >&5
-echo "$as_me: error: unknown endianess - sorry" >&2;}
- { (exit please pre-set ac_cv_c_bigendian); exit please pre-set ac_cv_c_bigendian; }; }
-fi
-
-
-echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
-if test "${ac_cv_c_const+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-/* FIXME: Include the comments suggested by Paul. */
-#ifndef __cplusplus
- /* Ultrix mips cc rejects this. */
- typedef int charset[2];
- const charset x;
- /* SunOS 4.1.1 cc rejects this. */
- char const *const *ccp;
- char **p;
- /* NEC SVR4.0.2 mips cc rejects this. */
- struct point {int x, y;};
- static struct point const zero = {0,0};
- /* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in
- an arm of an if-expression whose if-part is not a constant
- expression */
- const char *g = "string";
- ccp = &g + (g ? g-g : 0);
- /* HPUX 7.0 cc rejects these. */
- ++ccp;
- p = (char**) ccp;
- ccp = (char const *const *) p;
- { /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
- }
- { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
- }
- { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
- }
- { /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
- }
- { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
- }
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_const=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_c_const=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-echo "${ECHO_T}$ac_cv_c_const" >&6
-if test $ac_cv_c_const = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define const
-_ACEOF
-
-fi
-
-echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_size_t=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_size_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned
-_ACEOF
-
-fi
-
-
-
-for ac_func in memmove bcopy
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-
-for ac_header in fcntl.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to expat-bugs@libexpat.org ##
-## -------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-echo "$as_me:$LINENO: checking for off_t" >&5
-echo $ECHO_N "checking for off_t... $ECHO_C" >&6
-if test "${ac_cv_type_off_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
-{
-if ((off_t *) 0)
- return 0;
-if (sizeof (off_t))
- return 0;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_type_off_t=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_type_off_t=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-echo "${ECHO_T}$ac_cv_type_off_t" >&6
-if test $ac_cv_type_off_t = yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define off_t long
-_ACEOF
-
-fi
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_c_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## -------------------------------------- ##
-## Report this to expat-bugs@libexpat.org ##
-## -------------------------------------- ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
-fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in getpagesize
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-char (*f) () = $ac_func;
-#endif
-#ifdef __cplusplus
-}
-#endif
-
-int
-main ()
-{
-return f != $ac_func;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-eval "$as_ac_var=no"
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-echo "$as_me:$LINENO: checking for working mmap" >&5
-echo $ECHO_N "checking for working mmap... $ECHO_C" >&6
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test "$cross_compiling" = yes; then
- ac_cv_func_mmap_fixed_mapped=no
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
- Here is a matrix of mmap possibilities:
- mmap private not fixed
- mmap private fixed at somewhere currently unmapped
- mmap private fixed at somewhere already mapped
- mmap shared not fixed
- mmap shared fixed at somewhere currently unmapped
- mmap shared fixed at somewhere already mapped
- For private mappings, we should verify that changes cannot be read()
- back from the file, nor mmap's back from the file at a different
- address. (There have been systems where private was not correctly
- implemented like the infamous i386 svr4.0, and systems where the
- VM page cache was not coherent with the file system buffer cache
- like early versions of FreeBSD and possibly contemporary NetBSD.)
- For shared mappings, we should conversely verify that changes get
- propagated back to all the places they're supposed to be.
-
- Grep wants private fixed already mapped.
- The main things grep needs to know about mmap are:
- * does it exist and is it safe to write into the mmap'd area
- * how to use it (BSD variants) */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !STDC_HEADERS && !HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h. */
-#if !HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h. */
-# if !HAVE_SYS_PARAM_H
-# define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-# define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-# if HAVE_SYS_PARAM_H
-# include <sys/param.h>
-# ifdef EXEC_PAGESIZE
-# define getpagesize() EXEC_PAGESIZE
-# else /* no EXEC_PAGESIZE */
-# ifdef NBPG
-# define getpagesize() NBPG * CLSIZE
-# ifndef CLSIZE
-# define CLSIZE 1
-# endif /* no CLSIZE */
-# else /* no NBPG */
-# ifdef NBPC
-# define getpagesize() NBPC
-# else /* no NBPC */
-# ifdef PAGESIZE
-# define getpagesize() PAGESIZE
-# endif /* PAGESIZE */
-# endif /* no NBPC */
-# endif /* no NBPG */
-# endif /* no EXEC_PAGESIZE */
-# else /* no HAVE_SYS_PARAM_H */
-# define getpagesize() 8192 /* punt totally */
-# endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
- char *data, *data2, *data3;
- int i, pagesize;
- int fd;
-
- pagesize = getpagesize ();
-
- /* First, make a file with some known garbage in it. */
- data = (char *) malloc (pagesize);
- if (!data)
- exit (1);
- for (i = 0; i < pagesize; ++i)
- *(data + i) = rand ();
- umask (0);
- fd = creat ("conftest.mmap", 0600);
- if (fd < 0)
- exit (1);
- if (write (fd, data, pagesize) != pagesize)
- exit (1);
- close (fd);
-
- /* Next, try to mmap the file at a fixed address which already has
- something else allocated at it. If we can, also make sure that
- we see the same garbage. */
- fd = open ("conftest.mmap", O_RDWR);
- if (fd < 0)
- exit (1);
- data2 = (char *) malloc (2 * pagesize);
- if (!data2)
- exit (1);
- data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
- if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
- MAP_PRIVATE | MAP_FIXED, fd, 0L))
- exit (1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data2 + i))
- exit (1);
-
- /* Finally, make sure that changes to the mapped area do not
- percolate back to the file as seen by read(). (This is a bug on
- some variants of i386 svr4.0.) */
- for (i = 0; i < pagesize; ++i)
- *(data2 + i) = *(data2 + i) + 1;
- data3 = (char *) malloc (pagesize);
- if (!data3)
- exit (1);
- if (read (fd, data3, pagesize) != pagesize)
- exit (1);
- for (i = 0; i < pagesize; ++i)
- if (*(data + i) != *(data3 + i))
- exit (1);
- close (fd);
- exit (0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_func_mmap_fixed_mapped=yes
-else
- echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-echo "${ECHO_T}$ac_cv_func_mmap_fixed_mapped" >&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
-
-fi
-rm -f conftest.mmap
-
-
-if test "$ac_cv_func_mmap_fixed_mapped" = "yes"; then
- FILEMAP=unixfilemap
-else
- FILEMAP=readfilemap
-fi
-
-
-
-# AC_CPP_FUNC
-# ------------------ #
-# Checks to see if ANSI C99 CPP variable __func__ works.
-# If not, perhaps __FUNCTION__ works instead.
-# If not, we'll just define __func__ to "".
-# AC_CPP_FUNC
-
-
-echo "$as_me:$LINENO: checking for an ANSI C99-conforming __func__" >&5
-echo $ECHO_N "checking for an ANSI C99-conforming __func__... $ECHO_C" >&6
-if test "${ac_cv_cpp_func+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-char *foo = __func__;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_cpp_func=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-char *foo = __FUNCTION__;
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_cpp_func=__FUNCTION__
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_cpp_func=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:$LINENO: result: $ac_cv_cpp_func" >&5
-echo "${ECHO_T}$ac_cv_cpp_func" >&6
-if test $ac_cv_cpp_func = __FUNCTION__; then
-
-cat >>confdefs.h <<\_ACEOF
-#define __func__ __FUNCTION__
-_ACEOF
-
-elif test $ac_cv_cpp_func = no; then
-
-cat >>confdefs.h <<\_ACEOF
-#define __func__ ""
-_ACEOF
-
-fi
-
-
-
-
-cat >>confdefs.h <<\_ACEOF
-#define XML_NS 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define XML_DTD 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define XML_CONTEXT_BYTES 1024
-_ACEOF
-
-
- ac_config_files="$ac_config_files Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
- (set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
- ;;
- esac;
-} |
- sed '
- t clear
- : clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
- cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[ ]*$//;
-}'
-fi
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
- # 2. Add them.
- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization. ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
- set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- as_unset=unset
-else
- as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-
-
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" || {
- # Find who we are. Look in the path if we contain no path at all
- # relative or not.
- case $0 in
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
- ;;
- esac
- # We did not find ourselves, most probably we were run as `sh COMMAND'
- # in which case we are not to be found in the path.
- if test "x$as_myself" = x; then
- as_myself=$0
- fi
- if test ! -f "$as_myself"; then
- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
- { (exit 1); exit 1; }; }
- fi
- case $CONFIG_SHELL in
- '')
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for as_base in sh bash ksh sh5; do
- case $as_dir in
- /*)
- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
- CONFIG_SHELL=$as_dir/$as_base
- export CONFIG_SHELL
- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
- fi;;
- esac
- done
-done
-;;
- esac
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
- # line-number line before each line; the second 'sed' does the real
- # work. The second script uses 'N' to pair each line-number line
- # with the numbered line, and appends trailing '-' during
- # substitution so that $LINENO is not a special case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
- sed '=' <$as_myself |
- sed '
- N
- s,$,-,
- : loop
- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
- t loop
- s,-$,,
- s,^['$as_cr_digits']*\n,,
- ' >$as_me.lineno &&
- chmod +x $as_me.lineno ||
- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensible to this).
- . ./$as_me.lineno
- # Exit status is that of the last command.
- exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
- *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T=' ' ;;
- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
- # We could just check for DJGPP; but this test a) works b) is more generic
- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
- if test -f conf$$.exe; then
- # Don't use ln at all; we don't have any links
- as_ln_s='cp -p'
- else
- as_ln_s='ln -s'
- fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
-else
- as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" $as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling. Logging --version etc. is OK.
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by expat $as_me 2.0.1, which was
-generated by GNU Autoconf 2.59. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
- -V, --version print version number, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
- --header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-expat config.status 2.0.1
-configured by $0, generated by GNU Autoconf 2.59,
- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value. By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=*)
- ac_option=`expr "x$1" : 'x\([^=]*\)='`
- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- -*)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- *) # This is not an option, so the user has probably given explicit
- # arguments.
- ac_option=$1
- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --vers* | -V )
- echo "$ac_cs_version"; exit 0 ;;
- --he | --h)
- # Conflict between --help and --header
- { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; };;
- --help | --hel | -h )
- echo "$ac_cs_usage"; exit 0 ;;
- --debug | --d* | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- CONFIG_FILES="$CONFIG_FILES $ac_optarg"
- ac_need_defaults=false;;
- --header | --heade | --head | --hea )
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
- { (exit 1); exit 1; }; } ;;
-
- *) ac_config_targets="$ac_config_targets $1" ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
- case "$ac_config_target" in
- # Handling of arguments.
- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
- "expat_config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS expat_config.h" ;;
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=./confstat$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
- # Protect against being on the right side of a sed subst in config.status.
- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
-s,@CC@,$CC,;t t
-s,@CFLAGS@,$CFLAGS,;t t
-s,@LDFLAGS@,$LDFLAGS,;t t
-s,@CPPFLAGS@,$CPPFLAGS,;t t
-s,@ac_ct_CC@,$ac_ct_CC,;t t
-s,@EXEEXT@,$EXEEXT,;t t
-s,@OBJEXT@,$OBJEXT,;t t
-s,@EGREP@,$EGREP,;t t
-s,@LN_S@,$LN_S,;t t
-s,@ECHO@,$ECHO,;t t
-s,@AR@,$AR,;t t
-s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@RANLIB@,$RANLIB,;t t
-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-s,@STRIP@,$STRIP,;t t
-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s,@DLLTOOL@,$DLLTOOL,;t t
-s,@ac_ct_DLLTOOL@,$ac_ct_DLLTOOL,;t t
-s,@AS@,$AS,;t t
-s,@ac_ct_AS@,$ac_ct_AS,;t t
-s,@OBJDUMP@,$OBJDUMP,;t t
-s,@ac_ct_OBJDUMP@,$ac_ct_OBJDUMP,;t t
-s,@CPP@,$CPP,;t t
-s,@CXX@,$CXX,;t t
-s,@CXXFLAGS@,$CXXFLAGS,;t t
-s,@ac_ct_CXX@,$ac_ct_CXX,;t t
-s,@CXXCPP@,$CXXCPP,;t t
-s,@F77@,$F77,;t t
-s,@FFLAGS@,$FFLAGS,;t t
-s,@ac_ct_F77@,$ac_ct_F77,;t t
-s,@LIBTOOL@,$LIBTOOL,;t t
-s,@LIBCURRENT@,$LIBCURRENT,;t t
-s,@LIBREVISION@,$LIBREVISION,;t t
-s,@LIBAGE@,$LIBAGE,;t t
-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@FILEMAP@,$FILEMAP,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
- # Split the substitutions into bite-sized pieces for seds with
- # small command number limits, like on Digital OSF/1 and HP-UX.
- ac_max_sed_lines=48
- ac_sed_frag=1 # Number of current file.
- ac_beg=1 # First line for current file.
- ac_end=$ac_max_sed_lines # Line after last line for current file.
- ac_more_lines=:
- ac_sed_cmds=
- while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
- if test ! -s $tmp/subs.frag; then
- ac_more_lines=false
- else
- # The purpose of the label and of the branching condition is to
- # speed up the sed processing (if there are no `@' at all, there
- # is no need to browse any of the substitutions).
- # These are the two extra sed commands mentioned above.
- (echo ':t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
- fi
- ac_sed_frag=`expr $ac_sed_frag + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_lines`
- fi
- done
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
- fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- ac_builddir=.
-
-if test "$ac_dir" != .; then
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
- # A "../" for each directory in $ac_dir_suffix.
- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
- ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
- .) # No --srcdir option. We are building in place.
- ac_srcdir=.
- if test -z "$ac_top_builddir"; then
- ac_top_srcdir=.
- else
- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
- fi ;;
- [\\/]* | ?:[\\/]* ) # Absolute path.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir ;;
- *) # Relative path.
- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
- case "$ac_dir" in
- .) ac_abs_builddir=`pwd`;;
- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
- *) ac_abs_builddir=`pwd`/"$ac_dir";;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
- case ${ac_top_builddir}. in
- .) ac_abs_top_builddir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
- case $ac_srcdir in
- .) ac_abs_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
- esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
- case $ac_top_srcdir in
- .) ac_abs_top_srcdir=$ac_abs_builddir;;
- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
- esac;;
-esac
-
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- configure_input=
- else
- configure_input="$ac_file. "
- fi
- configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-s,@INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
- rm -f $tmp/stdin
- if test x"$ac_file" != x-; then
- mv $tmp/out $ac_file
- else
- cat $tmp/out
- rm -f $tmp/out
- fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case $ac_file in
- - | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
- * ) ac_file_in=$ac_file.in ;;
- esac
-
- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-
- # First look for the input files in the build tree, otherwise in the
- # src tree.
- ac_file_inputs=`IFS=:
- for f in $ac_file_in; do
- case $f in
- -) echo $tmp/stdin ;;
- [\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- # Do quote $f, to prevent DOS paths from being IFS'd.
- echo "$f";;
- *) # Relative
- if test -f "$f"; then
- # Build tree
- echo "$f"
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo "$srcdir/$f"
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
- { (exit 1); exit 1; }; }
- fi;;
- esac
- done` || { (exit 1); exit 1; }
- # Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h. The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status. Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless. Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments. This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
-
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo ' :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
-do
- # Write a limited-size here document to $tmp/defines.sed.
- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/defines.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
- rm -f conftest.defines
- mv conftest.tail conftest.defines
-done
-rm -f conftest.defines
-echo ' fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
-
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
- # Write a limited-size here document to $tmp/undefs.sed.
- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
- # Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
- # Work around the forget-to-reset-the-flag bug.
- echo 't clr' >>$CONFIG_STATUS
- echo ': clr' >>$CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
- echo 'CEOF
- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
- rm -f $tmp/in
- mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
- rm -f conftest.undefs
- mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
-cat >>$CONFIG_STATUS <<\_ACEOF
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- if test x"$ac_file" = x-; then
- echo "/* Generated by configure. */" >$tmp/config.h
- else
- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
- cat $tmp/in >>$tmp/config.h
- rm -f $tmp/in
- if test x"$ac_file" != x-; then
- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
- else
- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p "$ac_dir"
- else
- as_dir="$ac_dir"
- as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
- { (exit 1); exit 1; }; }; }
-
- rm -f $ac_file
- mv $tmp/config.h $ac_file
- fi
- else
- cat $tmp/config.h
- rm -f $tmp/config.h
- fi
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || { (exit 1); exit 1; }
-fi
-
-
-abs_srcdir="`cd $srcdir && pwd`"
-abs_builddir="`pwd`"
-if test "$abs_srcdir" != "$abs_builddir"; then
- make mkdir-init
-fi
diff --git a/contrib/expat/configure.in b/contrib/expat/configure.in
index 24bcb40..7e968c4 100644
--- a/contrib/expat/configure.in
+++ b/contrib/expat/configure.in
@@ -10,8 +10,8 @@ dnl under the terms of the License (based on the MIT/X license) contained
dnl in the file COPYING that comes with this distribution.
dnl
-dnl Ensure that Expat is configured with autoconf 2.52 or newer
-AC_PREREQ(2.52)
+dnl Ensure that Expat is configured with autoconf 2.58 or newer
+AC_PREREQ(2.58)
dnl Get the version number of Expat, using m4's esyscmd() command to run
dnl the command at m4-generation time. This allows us to create an m4
@@ -25,12 +25,13 @@ dnl test. I believe this test will work, but I don't have a place with non-
dnl GNU M4 to test it right now.
define([expat_version], ifdef([__gnu__],
[esyscmd(conftools/get-version.sh lib/expat.h)],
- [2.0.x]))
+ [2.1.x]))
AC_INIT(expat, expat_version, expat-bugs@libexpat.org)
undefine([expat_version])
AC_CONFIG_SRCDIR(Makefile.in)
AC_CONFIG_AUX_DIR(conftools)
+AC_CONFIG_MACRO_DIR([m4])
dnl
@@ -44,13 +45,12 @@ dnl
dnl If the API changes incompatibly set LIBAGE back to 0
dnl
-LIBCURRENT=6
-LIBREVISION=2
-LIBAGE=5
+LIBCURRENT=7
+LIBREVISION=0
+LIBAGE=6
AC_CONFIG_HEADER(expat_config.h)
-sinclude(conftools/libtool.m4)
sinclude(conftools/ac_c_bigendian_cross.m4)
AC_LIBTOOL_WIN32_DLL
@@ -62,6 +62,7 @@ AC_SUBST(LIBAGE)
dnl Checks for programs.
AC_PROG_CC
+AC_PROG_CXX
AC_PROG_INSTALL
if test "$GCC" = yes ; then
@@ -144,7 +145,7 @@ AC_DEFINE([XML_DTD], 1,
AC_DEFINE([XML_CONTEXT_BYTES], 1024,
[Define to specify how much context to retain around the current parse point.])
-AC_CONFIG_FILES(Makefile)
+AC_CONFIG_FILES([Makefile expat.pc])
AC_OUTPUT
abs_srcdir="`cd $srcdir && pwd`"
diff --git a/contrib/expat/doc/reference.html b/contrib/expat/doc/reference.html
index a315870..8811a33 100644
--- a/contrib/expat/doc/reference.html
+++ b/contrib/expat/doc/reference.html
@@ -129,8 +129,10 @@ interface.</p>
<li><a href="#XML_GetBase">XML_GetBase</a></li>
<li><a href="#XML_GetSpecifiedAttributeCount">XML_GetSpecifiedAttributeCount</a></li>
<li><a href="#XML_GetIdAttributeIndex">XML_GetIdAttributeIndex</a></li>
+ <li><a href="#XML_GetAttributeInfo">XML_GetAttributeInfo</a></li>
<li><a href="#XML_SetEncoding">XML_SetEncoding</a></li>
<li><a href="#XML_SetParamEntityParsing">XML_SetParamEntityParsing</a></li>
+ <li><a href="#XML_SetHashSalt">XML_SetHashSalt</a></li>
<li><a href="#XML_UseForeignDTD">XML_UseForeignDTD</a></li>
<li><a href="#XML_SetReturnNSTriplet">XML_SetReturnNSTriplet</a></li>
<li><a href="#XML_DefaultCurrent">XML_DefaultCurrent</a></li>
@@ -369,6 +371,11 @@ footprint and can be faster.</dd>
statically with the code that calls it; this is required to get all
the right MSVC magic annotations correct. This is ignored on other
platforms.</dd>
+
+<dt>XML_ATTR_INFO</dt>
+<dd>If defined, makes the the additional function <code><a href=
+"#XML_GetAttributeInfo" >XML_GetAttributeInfo</a></code> available
+for reporting attribute byte offsets.</dd>
</dl>
<hr />
@@ -917,12 +924,15 @@ XML_ParserCreateNS(const XML_Char *encoding,
Constructs a new parser that has namespace processing in effect. Namespace
expanded element names and attribute names are returned as a concatenation
of the namespace URI, <em>sep</em>, and the local part of the name. This
-means that you should pick a character for <em>sep</em> that can't be
-part of a legal URI. There is a special case when <em>sep</em> is the null
-character <code>'\0'</code>: the namespace URI and the local part will be
-concatenated without any separator - this is intended to support RDF processors.
-It is a programming error to use the null separator with
-<a href= "#XML_SetReturnNSTriplet">namespace triplets</a>.</div>
+means that you should pick a character for <em>sep</em> that can't be part
+of an URI. Since Expat does not check namespace URIs for conformance, the
+only safe choice for a namespace separator is a character that is illegal
+in XML. For instance, <code>'\xFF'</code> is not legal in UTF-8, and
+<code>'\xFFFF'</code> is not legal in UTF-16. There is a special case when
+<em>sep</em> is the null character <code>'\0'</code>: the namespace URI and
+the local part will be concatenated without any separator - this is intended
+to support RDF processors. It is a programming error to use the null separator
+with <a href= "#XML_SetReturnNSTriplet">namespace triplets</a>.</div>
<pre class="fcndec" id="XML_ParserCreate_MM">
XML_Parser XMLCALL
@@ -2074,6 +2084,27 @@ attribute. If called inside a start handler, then that means the
current call.
</div>
+<pre class="fcndec" id="XML_GetAttributeInfo">
+const XML_AttrInfo * XMLCALL
+XML_GetAttributeInfo(XML_Parser parser);
+</pre>
+<pre class="signature">
+typedef struct {
+ XML_Index nameStart; /* Offset to beginning of the attribute name. */
+ XML_Index nameEnd; /* Offset after the attribute name's last byte. */
+ XML_Index valueStart; /* Offset to beginning of the attribute value. */
+ XML_Index valueEnd; /* Offset after the attribute value's last byte. */
+} XML_AttrInfo;
+</pre>
+<div class="fcndef">
+Returns an array of <code>XML_AttrInfo</code> structures for the
+attribute/value pairs passed in the last call to the
+<code>XML_StartElementHandler</code> that were specified
+in the start-tag rather than defaulted. Each attribute/value pair counts
+as 1; thus the number of entries in the array is
+<code>XML_GetSpecifiedAttributeCount(parser) / 2</code>.
+</div>
+
<pre class="fcndec" id="XML_SetEncoding">
enum XML_Status XMLCALL
XML_SetEncoding(XML_Parser p,
@@ -2104,6 +2135,24 @@ The choices for <code>code</code> are:
<li><code>XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE</code></li>
<li><code>XML_PARAM_ENTITY_PARSING_ALWAYS</code></li>
</ul>
+<b>Note:</b> If <code>XML_SetParamEntityParsing</code> is called after
+<code>XML_Parse</code> or <code>XML_ParseBuffer</code>, then it has
+no effect and will always return 0.
+</div>
+
+<pre class="fcndec" id="XML_SetHashSalt">
+int XMLCALL
+XML_SetHashSalt(XML_Parser p,
+ unsigned long hash_salt);
+</pre>
+<div class="fcndef">
+Sets the hash salt to use for internal hash calculations.
+Helps in preventing DoS attacks based on predicting hash
+function behavior. In order to have an effect this must be called
+before parsing has started. Returns 1 if successful, 0 when called
+after <code>XML_Parse</code> or <code>XML_ParseBuffer</code>.
+<p><b>Note:</b> This call is optional, as the parser will auto-generate a new
+random salt value if no value has been set at the start of parsing.</p>
</div>
<pre class="fcndec" id="XML_UseForeignDTD">
diff --git a/contrib/expat/doc/valid-xhtml10.png b/contrib/expat/doc/valid-xhtml10.png
deleted file mode 100644
index 4c23f48..0000000
--- a/contrib/expat/doc/valid-xhtml10.png
+++ /dev/null
Binary files differ
diff --git a/contrib/expat/doc/xmlwf.sgml b/contrib/expat/doc/xmlwf.sgml
index 139c95e..313cfbc 100644
--- a/contrib/expat/doc/xmlwf.sgml
+++ b/contrib/expat/doc/xmlwf.sgml
@@ -389,11 +389,6 @@ supports both.
<refsect1>
<title>BUGS</title>
<para>
- According to the W3C standard, an XML file without a
- declaration at the beginning is not considered well-formed.
- However, <command>&dhpackage;</command> allows this to pass.
- </para>
- <para>
<command>&dhpackage;</command> returns a 0 - noerr result,
even if the file is not well-formed. There is no good way for
a program to use <command>&dhpackage;</command> to quickly
diff --git a/contrib/expat/expat_config.h.in b/contrib/expat/expat_config.h.in
index 8c3698a..8c6e514 100644
--- a/contrib/expat/expat_config.h.in
+++ b/contrib/expat/expat_config.h.in
@@ -39,6 +39,9 @@
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -48,6 +51,10 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
@@ -60,6 +67,9 @@
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
/* Define to the version of this package. */
#undef PACKAGE_VERSION
@@ -85,8 +95,8 @@
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
-/* Define to `long' if <sys/types.h> does not define. */
+/* Define to `long int' if <sys/types.h> does not define. */
#undef off_t
-/* Define to `unsigned' if <sys/types.h> does not define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t
diff --git a/contrib/expat/lib/expat.h b/contrib/expat/lib/expat.h
index 20a8278..9a21680 100644
--- a/contrib/expat/lib/expat.h
+++ b/contrib/expat/lib/expat.h
@@ -742,6 +742,29 @@ XML_GetSpecifiedAttributeCount(XML_Parser parser);
XMLPARSEAPI(int)
XML_GetIdAttributeIndex(XML_Parser parser);
+#ifdef XML_ATTR_INFO
+/* Source file byte offsets for the start and end of attribute names and values.
+ The value indices are exclusive of surrounding quotes; thus in a UTF-8 source
+ file an attribute value of "blah" will yield:
+ info->valueEnd - info->valueStart = 4 bytes.
+*/
+typedef struct {
+ XML_Index nameStart; /* Offset to beginning of the attribute name. */
+ XML_Index nameEnd; /* Offset after the attribute name's last byte. */
+ XML_Index valueStart; /* Offset to beginning of the attribute value. */
+ XML_Index valueEnd; /* Offset after the attribute value's last byte. */
+} XML_AttrInfo;
+
+/* Returns an array of XML_AttrInfo structures for the attribute/value pairs
+ passed in last call to the XML_StartElementHandler that were specified
+ in the start-tag rather than defaulted. Each attribute/value pair counts
+ as 1; thus the number of entries in the array is
+ XML_GetSpecifiedAttributeCount(parser) / 2.
+*/
+XMLPARSEAPI(const XML_AttrInfo *)
+XML_GetAttributeInfo(XML_Parser parser);
+#endif
+
/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is
detected. The last call to XML_Parse must have isFinal true; len
may be zero for this call (or any other).
@@ -883,6 +906,15 @@ XMLPARSEAPI(int)
XML_SetParamEntityParsing(XML_Parser parser,
enum XML_ParamEntityParsing parsing);
+/* Sets the hash salt to use for internal hash calculations.
+ Helps in preventing DoS attacks based on predicting hash
+ function behavior. This must be called before parsing is started.
+ Returns 1 if successful, 0 when called after parsing has started.
+*/
+XMLPARSEAPI(int)
+XML_SetHashSalt(XML_Parser parser,
+ unsigned long hash_salt);
+
/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then
XML_GetErrorCode returns information about the error.
*/
@@ -984,7 +1016,8 @@ enum XML_FeatureEnum {
XML_FEATURE_SIZEOF_XML_CHAR,
XML_FEATURE_SIZEOF_XML_LCHAR,
XML_FEATURE_NS,
- XML_FEATURE_LARGE_SIZE
+ XML_FEATURE_LARGE_SIZE,
+ XML_FEATURE_ATTR_INFO
/* Additional features must be added to the end of this enum. */
};
@@ -1004,8 +1037,8 @@ XML_GetFeatureList(void);
change to major or minor version.
*/
#define XML_MAJOR_VERSION 2
-#define XML_MINOR_VERSION 0
-#define XML_MICRO_VERSION 1
+#define XML_MINOR_VERSION 1
+#define XML_MICRO_VERSION 0
#ifdef __cplusplus
}
diff --git a/contrib/expat/lib/winconfig.h b/contrib/expat/lib/winconfig.h
deleted file mode 100644
index c1b791d..0000000
--- a/contrib/expat/lib/winconfig.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*================================================================
-** Copyright 2000, Clark Cooper
-** All rights reserved.
-**
-** This is free software. You are permitted to copy, distribute, or modify
-** it under the terms of the MIT/X license (contained in the COPYING file
-** with this distribution.)
-*/
-
-#ifndef WINCONFIG_H
-#define WINCONFIG_H
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#undef WIN32_LEAN_AND_MEAN
-
-#include <memory.h>
-#include <string.h>
-
-#define XML_NS 1
-#define XML_DTD 1
-#define XML_CONTEXT_BYTES 1024
-
-/* we will assume all Windows platforms are little endian */
-#define BYTEORDER 1234
-
-/* Windows has memmove() available. */
-#define HAVE_MEMMOVE
-
-#endif /* ndef WINCONFIG_H */
diff --git a/contrib/expat/lib/xmlparse.c b/contrib/expat/lib/xmlparse.c
index e111460..f35aa36 100644
--- a/contrib/expat/lib/xmlparse.c
+++ b/contrib/expat/lib/xmlparse.c
@@ -5,6 +5,8 @@
#include <stddef.h>
#include <string.h> /* memset(), memcpy() */
#include <assert.h>
+#include <limits.h> /* UINT_MAX */
+#include <time.h> /* time() */
#define XML_BUILDING_EXPAT 1
@@ -12,7 +14,7 @@
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
-#elif defined(__amigaos4__)
+#elif defined(__amigaos__)
#include "amigaconfig.h"
#elif defined(__WATCOMC__)
#include "watcomconfig.h"
@@ -327,15 +329,15 @@ processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
static enum XML_Error
initializeEncoding(XML_Parser parser);
static enum XML_Error
-doProlog(XML_Parser parser, const ENCODING *enc, const char *s,
- const char *end, int tok, const char *next, const char **nextPtr,
+doProlog(XML_Parser parser, const ENCODING *enc, const char *s,
+ const char *end, int tok, const char *next, const char **nextPtr,
XML_Bool haveMore);
static enum XML_Error
-processInternalEntity(XML_Parser parser, ENTITY *entity,
+processInternalEntity(XML_Parser parser, ENTITY *entity,
XML_Bool betweenDecl);
static enum XML_Error
doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc,
- const char *start, const char *end, const char **endPtr,
+ const char *start, const char *end, const char **endPtr,
XML_Bool haveMore);
static enum XML_Error
doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr,
@@ -353,7 +355,7 @@ static enum XML_Error
addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
const XML_Char *uri, BINDING **bindingsPtr);
static int
-defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
+defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata,
XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser);
static enum XML_Error
storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata,
@@ -391,12 +393,13 @@ static void dtdReset(DTD *p, const XML_Memory_Handling_Suite *ms);
static void
dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms);
static int
-dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms);
+dtdCopy(XML_Parser oldParser,
+ DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms);
static int
-copyEntityTable(HASH_TABLE *, STRING_POOL *, const HASH_TABLE *);
-
+copyEntityTable(XML_Parser oldParser,
+ HASH_TABLE *, STRING_POOL *, const HASH_TABLE *);
static NAMED *
-lookup(HASH_TABLE *table, KEY name, size_t createSize);
+lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize);
static void FASTCALL
hashTableInit(HASH_TABLE *, const XML_Memory_Handling_Suite *ms);
static void FASTCALL hashTableClear(HASH_TABLE *);
@@ -429,11 +432,15 @@ static ELEMENT_TYPE *
getElementType(XML_Parser parser, const ENCODING *enc,
const char *ptr, const char *end);
+static unsigned long generate_hash_secret_salt(void);
+static XML_Bool startParsing(XML_Parser parser);
+
static XML_Parser
parserCreate(const XML_Char *encodingName,
const XML_Memory_Handling_Suite *memsuite,
const XML_Char *nameSep,
DTD *dtd);
+
static void
parserInit(XML_Parser parser, const XML_Char *encodingName);
@@ -533,6 +540,9 @@ struct XML_ParserStruct {
NS_ATT *m_nsAtts;
unsigned long m_nsAttsVersion;
unsigned char m_nsAttsPower;
+#ifdef XML_ATTR_INFO
+ XML_AttrInfo *m_attInfo;
+#endif
POSITION m_position;
STRING_POOL m_tempPool;
STRING_POOL m_temp2Pool;
@@ -546,6 +556,7 @@ struct XML_ParserStruct {
XML_Bool m_useForeignDTD;
enum XML_ParamEntityParsing m_paramEntityParsing;
#endif
+ unsigned long m_hash_secret_salt;
};
#define MALLOC(s) (parser->m_mem.malloc_fcn((s)))
@@ -640,6 +651,7 @@ struct XML_ParserStruct {
#define nsAtts (parser->m_nsAtts)
#define nsAttsVersion (parser->m_nsAttsVersion)
#define nsAttsPower (parser->m_nsAttsPower)
+#define attInfo (parser->m_attInfo)
#define tempPool (parser->m_tempPool)
#define temp2Pool (parser->m_temp2Pool)
#define groupConnector (parser->m_groupConnector)
@@ -653,6 +665,7 @@ struct XML_ParserStruct {
#define useForeignDTD (parser->m_useForeignDTD)
#define paramEntityParsing (parser->m_paramEntityParsing)
#endif /* XML_DTD */
+#define hash_secret_salt (parser->m_hash_secret_salt)
XML_Parser XMLCALL
XML_ParserCreate(const XML_Char *encodingName)
@@ -670,29 +683,42 @@ XML_ParserCreateNS(const XML_Char *encodingName, XML_Char nsSep)
static const XML_Char implicitContext[] = {
ASCII_x, ASCII_m, ASCII_l, ASCII_EQUALS, ASCII_h, ASCII_t, ASCII_t, ASCII_p,
- ASCII_COLON, ASCII_SLASH, ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w,
+ ASCII_COLON, ASCII_SLASH, ASCII_SLASH, ASCII_w, ASCII_w, ASCII_w,
ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD, ASCII_o, ASCII_r, ASCII_g,
ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L, ASCII_SLASH, ASCII_1, ASCII_9,
ASCII_9, ASCII_8, ASCII_SLASH, ASCII_n, ASCII_a, ASCII_m, ASCII_e,
ASCII_s, ASCII_p, ASCII_a, ASCII_c, ASCII_e, '\0'
};
+static unsigned long
+generate_hash_secret_salt(void)
+{
+ unsigned int seed = time(NULL) % UINT_MAX;
+ srand(seed);
+ return rand();
+}
+
+static XML_Bool /* only valid for root parser */
+startParsing(XML_Parser parser)
+{
+ /* hash functions must be initialized before setContext() is called */
+ if (hash_secret_salt == 0)
+ hash_secret_salt = generate_hash_secret_salt();
+ if (ns) {
+ /* implicit context only set for root parser, since child
+ parsers (i.e. external entity parsers) will inherit it
+ */
+ return setContext(parser, implicitContext);
+ }
+ return XML_TRUE;
+}
+
XML_Parser XMLCALL
XML_ParserCreate_MM(const XML_Char *encodingName,
const XML_Memory_Handling_Suite *memsuite,
const XML_Char *nameSep)
{
- XML_Parser parser = parserCreate(encodingName, memsuite, nameSep, NULL);
- if (parser != NULL && ns) {
- /* implicit context only set for root parser, since child
- parsers (i.e. external entity parsers) will inherit it
- */
- if (!setContext(parser, implicitContext)) {
- XML_ParserFree(parser);
- return NULL;
- }
- }
- return parser;
+ return parserCreate(encodingName, memsuite, nameSep, NULL);
}
static XML_Parser
@@ -737,9 +763,20 @@ parserCreate(const XML_Char *encodingName,
FREE(parser);
return NULL;
}
+#ifdef XML_ATTR_INFO
+ attInfo = (XML_AttrInfo*)MALLOC(attsSize * sizeof(XML_AttrInfo));
+ if (attInfo == NULL) {
+ FREE(atts);
+ FREE(parser);
+ return NULL;
+ }
+#endif
dataBuf = (XML_Char *)MALLOC(INIT_DATA_BUF_SIZE * sizeof(XML_Char));
if (dataBuf == NULL) {
FREE(atts);
+#ifdef XML_ATTR_INFO
+ FREE(attInfo);
+#endif
FREE(parser);
return NULL;
}
@@ -752,6 +789,9 @@ parserCreate(const XML_Char *encodingName,
if (_dtd == NULL) {
FREE(dataBuf);
FREE(atts);
+#ifdef XML_ATTR_INFO
+ FREE(attInfo);
+#endif
FREE(parser);
return NULL;
}
@@ -866,6 +906,7 @@ parserInit(XML_Parser parser, const XML_Char *encodingName)
useForeignDTD = XML_FALSE;
paramEntityParsing = XML_PARAM_ENTITY_PARSING_NEVER;
#endif
+ hash_secret_salt = 0;
}
/* moves list of bindings to freeBindingList */
@@ -913,7 +954,7 @@ XML_ParserReset(XML_Parser parser, const XML_Char *encodingName)
poolClear(&temp2Pool);
parserInit(parser, encodingName);
dtdReset(_dtd, &parser->m_mem);
- return setContext(parser, implicitContext);
+ return XML_TRUE;
}
enum XML_Status XMLCALL
@@ -982,6 +1023,12 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser,
int oldInEntityValue = prologState.inEntityValue;
#endif
XML_Bool oldns_triplets = ns_triplets;
+ /* Note that the new parser shares the same hash secret as the old
+ parser, so that dtdCopy and copyEntityTable can lookup values
+ from hash tables associated with either parser without us having
+ to worry which hash secrets each table has.
+ */
+ unsigned long oldhash_secret_salt = hash_secret_salt;
#ifdef XML_DTD
if (!context)
@@ -1035,13 +1082,14 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser,
externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg;
defaultExpandInternalEntities = oldDefaultExpandInternalEntities;
ns_triplets = oldns_triplets;
+ hash_secret_salt = oldhash_secret_salt;
parentParser = oldParser;
#ifdef XML_DTD
paramEntityParsing = oldParamEntityParsing;
prologState.inEntityValue = oldInEntityValue;
if (context) {
#endif /* XML_DTD */
- if (!dtdCopy(_dtd, oldDtd, &parser->m_mem)
+ if (!dtdCopy(oldParser, _dtd, oldDtd, &parser->m_mem)
|| !setContext(parser, context)) {
XML_ParserFree(parser);
return NULL;
@@ -1130,6 +1178,9 @@ XML_ParserFree(XML_Parser parser)
#endif /* XML_DTD */
dtdDestroy(_dtd, (XML_Bool)!parentParser, &parser->m_mem);
FREE((void *)atts);
+#ifdef XML_ATTR_INFO
+ FREE((void *)attInfo);
+#endif
FREE(groupConnector);
FREE(buffer);
FREE(dataBuf);
@@ -1210,6 +1261,14 @@ XML_GetIdAttributeIndex(XML_Parser parser)
return idAttIndex;
}
+#ifdef XML_ATTR_INFO
+const XML_AttrInfo * XMLCALL
+XML_GetAttributeInfo(XML_Parser parser)
+{
+ return attInfo;
+}
+#endif
+
void XMLCALL
XML_SetElementHandler(XML_Parser parser,
XML_StartElementHandler start,
@@ -1426,6 +1485,17 @@ XML_SetParamEntityParsing(XML_Parser parser,
#endif
}
+int XMLCALL
+XML_SetHashSalt(XML_Parser parser,
+ unsigned long hash_salt)
+{
+ /* block after XML_Parse()/XML_ParseBuffer() has been called */
+ if (ps_parsing == XML_PARSING || ps_parsing == XML_SUSPENDED)
+ return 0;
+ hash_secret_salt = hash_salt;
+ return 1;
+}
+
enum XML_Status XMLCALL
XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
{
@@ -1436,6 +1506,11 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
case XML_FINISHED:
errorCode = XML_ERROR_FINISHED;
return XML_STATUS_ERROR;
+ case XML_INITIALIZED:
+ if (parentParser == NULL && !startParsing(parser)) {
+ errorCode = XML_ERROR_NO_MEMORY;
+ return XML_STATUS_ERROR;
+ }
default:
ps_parsing = XML_PARSING;
}
@@ -1459,7 +1534,7 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position);
positionPtr = bufferPtr;
return XML_STATUS_SUSPENDED;
- case XML_INITIALIZED:
+ case XML_INITIALIZED:
case XML_PARSING:
ps_parsing = XML_FINISHED;
/* fall through */
@@ -1494,11 +1569,13 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
break;
case XML_INITIALIZED:
case XML_PARSING:
- result = XML_STATUS_OK;
if (isFinal) {
ps_parsing = XML_FINISHED;
- return result;
+ return XML_STATUS_OK;
}
+ /* fall through */
+ default:
+ result = XML_STATUS_OK;
}
}
@@ -1513,15 +1590,11 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal)
: (char *)REALLOC(buffer, len * 2));
if (temp == NULL) {
errorCode = XML_ERROR_NO_MEMORY;
- return XML_STATUS_ERROR;
- }
- buffer = temp;
- if (!buffer) {
- errorCode = XML_ERROR_NO_MEMORY;
eventPtr = eventEndPtr = NULL;
processor = errorProcessor;
return XML_STATUS_ERROR;
}
+ buffer = temp;
bufferLim = buffer + len * 2;
}
memcpy(buffer, end, nLeftOver);
@@ -1559,6 +1632,11 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal)
case XML_FINISHED:
errorCode = XML_ERROR_FINISHED;
return XML_STATUS_ERROR;
+ case XML_INITIALIZED:
+ if (parentParser == NULL && !startParsing(parser)) {
+ errorCode = XML_ERROR_NO_MEMORY;
+ return XML_STATUS_ERROR;
+ }
default:
ps_parsing = XML_PARSING;
}
@@ -1582,7 +1660,7 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal)
case XML_SUSPENDED:
result = XML_STATUS_SUSPENDED;
break;
- case XML_INITIALIZED:
+ case XML_INITIALIZED:
case XML_PARSING:
if (isFinal) {
ps_parsing = XML_FINISHED;
@@ -1672,6 +1750,8 @@ XML_GetBuffer(XML_Parser parser, int len)
bufferPtr = buffer = newBuf;
#endif /* not defined XML_CONTEXT_BYTES */
}
+ eventPtr = eventEndPtr = NULL;
+ positionPtr = NULL;
}
return bufferEnd;
}
@@ -1729,7 +1809,7 @@ XML_ResumeParser(XML_Parser parser)
case XML_SUSPENDED:
result = XML_STATUS_SUSPENDED;
break;
- case XML_INITIALIZED:
+ case XML_INITIALIZED:
case XML_PARSING:
if (ps_finalBuffer) {
ps_parsing = XML_FINISHED;
@@ -1956,7 +2036,10 @@ XML_GetFeatureList(void)
#endif
#ifdef XML_LARGE_SIZE
{XML_FEATURE_LARGE_SIZE, XML_L("XML_LARGE_SIZE"), 0},
-#endif
+#endif
+#ifdef XML_ATTR_INFO
+ {XML_FEATURE_ATTR_INFO, XML_L("XML_ATTR_INFO"), 0},
+#endif
{XML_FEATURE_END, NULL, 0}
};
@@ -2019,7 +2102,7 @@ contentProcessor(XML_Parser parser,
const char *end,
const char **endPtr)
{
- enum XML_Error result = doContent(parser, 0, encoding, start, end,
+ enum XML_Error result = doContent(parser, 0, encoding, start, end,
endPtr, (XML_Bool)!ps_finalBuffer);
if (result == XML_ERROR_NONE) {
if (!storeRawNames(parser))
@@ -2101,7 +2184,7 @@ externalEntityInitProcessor3(XML_Parser parser,
if (result != XML_ERROR_NONE)
return result;
switch (ps_parsing) {
- case XML_SUSPENDED:
+ case XML_SUSPENDED:
*endPtr = next;
return XML_ERROR_NONE;
case XML_FINISHED:
@@ -2135,7 +2218,7 @@ externalEntityContentProcessor(XML_Parser parser,
const char *end,
const char **endPtr)
{
- enum XML_Error result = doContent(parser, 1, encoding, start, end,
+ enum XML_Error result = doContent(parser, 1, encoding, start, end,
endPtr, (XML_Bool)!ps_finalBuffer);
if (result == XML_ERROR_NONE) {
if (!storeRawNames(parser))
@@ -2154,7 +2237,7 @@ doContent(XML_Parser parser,
XML_Bool haveMore)
{
/* save one level of indirection */
- DTD * const dtd = _dtd;
+ DTD * const dtd = _dtd;
const char **eventPP;
const char **eventEndPP;
@@ -2185,8 +2268,8 @@ doContent(XML_Parser parser,
}
else if (defaultHandler)
reportDefault(parser, enc, s, end);
- /* We are at the end of the final buffer, should we check for
- XML_SUSPENDED, XML_FINISHED?
+ /* We are at the end of the final buffer, should we check for
+ XML_SUSPENDED, XML_FINISHED?
*/
if (startTagLevel == 0)
return XML_ERROR_NO_ELEMENTS;
@@ -2240,7 +2323,7 @@ doContent(XML_Parser parser,
next - enc->minBytesPerChar);
if (!name)
return XML_ERROR_NO_MEMORY;
- entity = (ENTITY *)lookup(&dtd->generalEntities, name, 0);
+ entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0);
poolDiscard(&dtd->pool);
/* First, determine if a check for an existing declaration is needed;
if yes, check that the entity exists, and that it is internal,
@@ -2537,8 +2620,8 @@ doContent(XML_Parser parser,
}
else if (defaultHandler)
reportDefault(parser, enc, s, end);
- /* We are at the end of the final buffer, should we check for
- XML_SUSPENDED, XML_FINISHED?
+ /* We are at the end of the final buffer, should we check for
+ XML_SUSPENDED, XML_FINISHED?
*/
if (startTagLevel == 0) {
*eventPP = end;
@@ -2550,7 +2633,7 @@ doContent(XML_Parser parser,
}
*nextPtr = end;
return XML_ERROR_NONE;
- case XML_TOK_DATA_CHARS:
+ case XML_TOK_DATA_CHARS:
{
XML_CharacterDataHandler charDataHandler = characterDataHandler;
if (charDataHandler) {
@@ -2590,7 +2673,7 @@ doContent(XML_Parser parser,
}
*eventPP = s = next;
switch (ps_parsing) {
- case XML_SUSPENDED:
+ case XML_SUSPENDED:
*nextPtr = next;
return XML_ERROR_NONE;
case XML_FINISHED:
@@ -2630,12 +2713,12 @@ storeAtts(XML_Parser parser, const ENCODING *enc,
const XML_Char *localPart;
/* lookup the element type name */
- elementType = (ELEMENT_TYPE *)lookup(&dtd->elementTypes, tagNamePtr->str,0);
+ elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, tagNamePtr->str,0);
if (!elementType) {
const XML_Char *name = poolCopyString(&dtd->pool, tagNamePtr->str);
if (!name)
return XML_ERROR_NO_MEMORY;
- elementType = (ELEMENT_TYPE *)lookup(&dtd->elementTypes, name,
+ elementType = (ELEMENT_TYPE *)lookup(parser, &dtd->elementTypes, name,
sizeof(ELEMENT_TYPE));
if (!elementType)
return XML_ERROR_NO_MEMORY;
@@ -2649,23 +2732,44 @@ storeAtts(XML_Parser parser, const ENCODING *enc,
if (n + nDefaultAtts > attsSize) {
int oldAttsSize = attsSize;
ATTRIBUTE *temp;
+#ifdef XML_ATTR_INFO
+ XML_AttrInfo *temp2;
+#endif
attsSize = n + nDefaultAtts + INIT_ATTS_SIZE;
temp = (ATTRIBUTE *)REALLOC((void *)atts, attsSize * sizeof(ATTRIBUTE));
if (temp == NULL)
return XML_ERROR_NO_MEMORY;
atts = temp;
+#ifdef XML_ATTR_INFO
+ temp2 = (XML_AttrInfo *)REALLOC((void *)attInfo, attsSize * sizeof(XML_AttrInfo));
+ if (temp2 == NULL)
+ return XML_ERROR_NO_MEMORY;
+ attInfo = temp2;
+#endif
if (n > oldAttsSize)
XmlGetAttributes(enc, attStr, n, atts);
}
appAtts = (const XML_Char **)atts;
for (i = 0; i < n; i++) {
+ ATTRIBUTE *currAtt = &atts[i];
+#ifdef XML_ATTR_INFO
+ XML_AttrInfo *currAttInfo = &attInfo[i];
+#endif
/* add the name and value to the attribute list */
- ATTRIBUTE_ID *attId = getAttributeId(parser, enc, atts[i].name,
- atts[i].name
- + XmlNameLength(enc, atts[i].name));
+ ATTRIBUTE_ID *attId = getAttributeId(parser, enc, currAtt->name,
+ currAtt->name
+ + XmlNameLength(enc, currAtt->name));
if (!attId)
return XML_ERROR_NO_MEMORY;
+#ifdef XML_ATTR_INFO
+ currAttInfo->nameStart = parseEndByteIndex - (parseEndPtr - currAtt->name);
+ currAttInfo->nameEnd = currAttInfo->nameStart +
+ XmlNameLength(enc, currAtt->name);
+ currAttInfo->valueStart = parseEndByteIndex -
+ (parseEndPtr - currAtt->valuePtr);
+ currAttInfo->valueEnd = parseEndByteIndex - (parseEndPtr - currAtt->valueEnd);
+#endif
/* Detect duplicate attributes by their QNames. This does not work when
namespace processing is turned on and different prefixes for the same
namespace are used. For this case we have a check further down.
@@ -2804,9 +2908,9 @@ storeAtts(XML_Parser parser, const ENCODING *enc,
if (s[-1] == 2) { /* prefixed */
ATTRIBUTE_ID *id;
const BINDING *b;
- unsigned long uriHash = 0;
+ unsigned long uriHash = hash_secret_salt;
((XML_Char *)s)[-1] = 0; /* clear flag */
- id = (ATTRIBUTE_ID *)lookup(&dtd->attributeIds, s, 0);
+ id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0);
b = id->prefix->binding;
if (!b)
return XML_ERROR_UNBOUND_PREFIX;
@@ -2828,7 +2932,7 @@ storeAtts(XML_Parser parser, const ENCODING *enc,
} while (*s++);
{ /* Check hash table for duplicate of expanded name (uriName).
- Derived from code in lookup(HASH_TABLE *table, ...).
+ Derived from code in lookup(parser, HASH_TABLE *table, ...).
*/
unsigned char step = 0;
unsigned long mask = nsAttsSize - 1;
@@ -2949,27 +3053,27 @@ addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
static const XML_Char xmlNamespace[] = {
ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH,
ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD,
- ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L,
+ ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_X, ASCII_M, ASCII_L,
ASCII_SLASH, ASCII_1, ASCII_9, ASCII_9, ASCII_8, ASCII_SLASH,
ASCII_n, ASCII_a, ASCII_m, ASCII_e, ASCII_s, ASCII_p, ASCII_a, ASCII_c,
ASCII_e, '\0'
};
- static const int xmlLen =
+ static const int xmlLen =
(int)sizeof(xmlNamespace)/sizeof(XML_Char) - 1;
static const XML_Char xmlnsNamespace[] = {
ASCII_h, ASCII_t, ASCII_t, ASCII_p, ASCII_COLON, ASCII_SLASH, ASCII_SLASH,
ASCII_w, ASCII_w, ASCII_w, ASCII_PERIOD, ASCII_w, ASCII_3, ASCII_PERIOD,
- ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_2, ASCII_0, ASCII_0,
- ASCII_0, ASCII_SLASH, ASCII_x, ASCII_m, ASCII_l, ASCII_n, ASCII_s,
+ ASCII_o, ASCII_r, ASCII_g, ASCII_SLASH, ASCII_2, ASCII_0, ASCII_0,
+ ASCII_0, ASCII_SLASH, ASCII_x, ASCII_m, ASCII_l, ASCII_n, ASCII_s,
ASCII_SLASH, '\0'
};
- static const int xmlnsLen =
+ static const int xmlnsLen =
(int)sizeof(xmlnsNamespace)/sizeof(XML_Char) - 1;
XML_Bool mustBeXML = XML_FALSE;
XML_Bool isXML = XML_TRUE;
XML_Bool isXMLNS = XML_TRUE;
-
+
BINDING *b;
int len;
@@ -2996,7 +3100,7 @@ addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len]))
isXML = XML_FALSE;
- if (!mustBeXML && isXMLNS
+ if (!mustBeXML && isXMLNS
&& (len > xmlnsLen || uri[len] != xmlnsNamespace[len]))
isXMLNS = XML_FALSE;
}
@@ -3207,7 +3311,7 @@ ignoreSectionProcessor(XML_Parser parser,
const char *end,
const char **endPtr)
{
- enum XML_Error result = doIgnoreSection(parser, encoding, &start, end,
+ enum XML_Error result = doIgnoreSection(parser, encoding, &start, end,
endPtr, (XML_Bool)!ps_finalBuffer);
if (result != XML_ERROR_NONE)
return result;
@@ -3489,7 +3593,7 @@ entityValueInitProcessor(XML_Parser parser,
const char *next = start;
eventPtr = start;
- for (;;) {
+ for (;;) {
tok = XmlPrologTok(encoding, start, end, &next);
eventEndPtr = next;
if (tok <= 0) {
@@ -3517,7 +3621,7 @@ entityValueInitProcessor(XML_Parser parser,
if (result != XML_ERROR_NONE)
return result;
switch (ps_parsing) {
- case XML_SUSPENDED:
+ case XML_SUSPENDED:
*nextPtr = next;
return XML_ERROR_NONE;
case XML_FINISHED:
@@ -3582,7 +3686,7 @@ externalParEntProcessor(XML_Parser parser,
}
processor = prologProcessor;
- return doProlog(parser, encoding, s, end, tok, next,
+ return doProlog(parser, encoding, s, end, tok, next,
nextPtr, (XML_Bool)!ps_finalBuffer);
}
@@ -3632,7 +3736,7 @@ prologProcessor(XML_Parser parser,
{
const char *next = s;
int tok = XmlPrologTok(encoding, s, end, &next);
- return doProlog(parser, encoding, s, end, tok, next,
+ return doProlog(parser, encoding, s, end, tok, next,
nextPtr, (XML_Bool)!ps_finalBuffer);
}
@@ -3649,7 +3753,7 @@ doProlog(XML_Parser parser,
#ifdef XML_DTD
static const XML_Char externalSubsetName[] = { ASCII_HASH , '\0' };
#endif /* XML_DTD */
- static const XML_Char atypeCDATA[] =
+ static const XML_Char atypeCDATA[] =
{ ASCII_C, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' };
static const XML_Char atypeID[] = { ASCII_I, ASCII_D, '\0' };
static const XML_Char atypeIDREF[] =
@@ -3670,7 +3774,7 @@ doProlog(XML_Parser parser,
static const XML_Char enumValueStart[] = { ASCII_LPAREN, '\0' };
/* save one level of indirection */
- DTD * const dtd = _dtd;
+ DTD * const dtd = _dtd;
const char **eventPP;
const char **eventEndPP;
@@ -3703,6 +3807,9 @@ doProlog(XML_Parser parser,
return XML_ERROR_UNCLOSED_TOKEN;
case XML_TOK_PARTIAL_CHAR:
return XML_ERROR_PARTIAL_CHAR;
+ case -XML_TOK_PROLOG_S:
+ tok = -tok;
+ break;
case XML_TOK_NONE:
#ifdef XML_DTD
/* for internal PE NOT referenced between declarations */
@@ -3725,6 +3832,7 @@ doProlog(XML_Parser parser,
return XML_ERROR_NO_ELEMENTS;
default:
tok = -tok;
+ next = end;
break;
}
}
@@ -3773,7 +3881,8 @@ doProlog(XML_Parser parser,
case XML_ROLE_DOCTYPE_PUBLIC_ID:
#ifdef XML_DTD
useForeignDTD = XML_FALSE;
- declEntity = (ENTITY *)lookup(&dtd->paramEntities,
+ declEntity = (ENTITY *)lookup(parser,
+ &dtd->paramEntities,
externalSubsetName,
sizeof(ENTITY));
if (!declEntity)
@@ -3781,15 +3890,17 @@ doProlog(XML_Parser parser,
#endif /* XML_DTD */
dtd->hasParamEntityRefs = XML_TRUE;
if (startDoctypeDeclHandler) {
+ XML_Char *pubId;
if (!XmlIsPublicId(enc, s, next, eventPP))
return XML_ERROR_PUBLICID;
- doctypePubid = poolStoreString(&tempPool, enc,
- s + enc->minBytesPerChar,
- next - enc->minBytesPerChar);
- if (!doctypePubid)
+ pubId = poolStoreString(&tempPool, enc,
+ s + enc->minBytesPerChar,
+ next - enc->minBytesPerChar);
+ if (!pubId)
return XML_ERROR_NO_MEMORY;
- normalizePublicId((XML_Char *)doctypePubid);
+ normalizePublicId(pubId);
poolFinish(&tempPool);
+ doctypePubid = pubId;
handleDefault = XML_FALSE;
goto alreadyChecked;
}
@@ -3828,7 +3939,8 @@ doProlog(XML_Parser parser,
XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs;
dtd->hasParamEntityRefs = XML_TRUE;
if (paramEntityParsing && externalEntityRefHandler) {
- ENTITY *entity = (ENTITY *)lookup(&dtd->paramEntities,
+ ENTITY *entity = (ENTITY *)lookup(parser,
+ &dtd->paramEntities,
externalSubsetName,
sizeof(ENTITY));
if (!entity)
@@ -3843,8 +3955,8 @@ doProlog(XML_Parser parser,
entity->publicId))
return XML_ERROR_EXTERNAL_ENTITY_HANDLING;
if (dtd->paramEntityRead) {
- if (!dtd->standalone &&
- notStandaloneHandler &&
+ if (!dtd->standalone &&
+ notStandaloneHandler &&
!notStandaloneHandler(handlerArg))
return XML_ERROR_NOT_STANDALONE;
}
@@ -3872,7 +3984,7 @@ doProlog(XML_Parser parser,
XML_Bool hadParamEntityRefs = dtd->hasParamEntityRefs;
dtd->hasParamEntityRefs = XML_TRUE;
if (paramEntityParsing && externalEntityRefHandler) {
- ENTITY *entity = (ENTITY *)lookup(&dtd->paramEntities,
+ ENTITY *entity = (ENTITY *)lookup(parser, &dtd->paramEntities,
externalSubsetName,
sizeof(ENTITY));
if (!entity)
@@ -4086,7 +4198,8 @@ doProlog(XML_Parser parser,
break;
#else /* XML_DTD */
if (!declEntity) {
- declEntity = (ENTITY *)lookup(&dtd->paramEntities,
+ declEntity = (ENTITY *)lookup(parser,
+ &dtd->paramEntities,
externalSubsetName,
sizeof(ENTITY));
if (!declEntity)
@@ -4161,7 +4274,7 @@ doProlog(XML_Parser parser,
const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next);
if (!name)
return XML_ERROR_NO_MEMORY;
- declEntity = (ENTITY *)lookup(&dtd->generalEntities, name,
+ declEntity = (ENTITY *)lookup(parser, &dtd->generalEntities, name,
sizeof(ENTITY));
if (!declEntity)
return XML_ERROR_NO_MEMORY;
@@ -4193,7 +4306,7 @@ doProlog(XML_Parser parser,
const XML_Char *name = poolStoreString(&dtd->pool, enc, s, next);
if (!name)
return XML_ERROR_NO_MEMORY;
- declEntity = (ENTITY *)lookup(&dtd->paramEntities,
+ declEntity = (ENTITY *)lookup(parser, &dtd->paramEntities,
name, sizeof(ENTITY));
if (!declEntity)
return XML_ERROR_NO_MEMORY;
@@ -4282,7 +4395,7 @@ doProlog(XML_Parser parser,
switch (tok) {
case XML_TOK_PARAM_ENTITY_REF:
/* PE references in internal subset are
- not allowed within declarations. */
+ not allowed within declarations. */
return XML_ERROR_PARAM_ENTITY_REF;
case XML_TOK_XML_DECL:
return XML_ERROR_MISPLACED_XML_PI;
@@ -4375,7 +4488,7 @@ doProlog(XML_Parser parser,
next - enc->minBytesPerChar);
if (!name)
return XML_ERROR_NO_MEMORY;
- entity = (ENTITY *)lookup(&dtd->paramEntities, name, 0);
+ entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0);
poolDiscard(&dtd->pool);
/* first, determine if a check for an existing declaration is needed;
if yes, check that the entity exists, and that it is internal,
@@ -4403,7 +4516,7 @@ doProlog(XML_Parser parser,
return XML_ERROR_RECURSIVE_ENTITY_REF;
if (entity->textPtr) {
enum XML_Error result;
- XML_Bool betweenDecl =
+ XML_Bool betweenDecl =
(role == XML_ROLE_PARAM_ENTITY_REF ? XML_TRUE : XML_FALSE);
result = processInternalEntity(parser, entity, betweenDecl);
if (result != XML_ERROR_NONE)
@@ -4598,7 +4711,7 @@ doProlog(XML_Parser parser,
reportDefault(parser, enc, s, next);
switch (ps_parsing) {
- case XML_SUSPENDED:
+ case XML_SUSPENDED:
*nextPtr = next;
return XML_ERROR_NONE;
case XML_FINISHED:
@@ -4668,7 +4781,7 @@ epilogProcessor(XML_Parser parser,
}
eventPtr = s = next;
switch (ps_parsing) {
- case XML_SUSPENDED:
+ case XML_SUSPENDED:
*nextPtr = next;
return XML_ERROR_NONE;
case XML_FINISHED:
@@ -4711,12 +4824,12 @@ processInternalEntity(XML_Parser parser, ENTITY *entity,
#ifdef XML_DTD
if (entity->is_param) {
int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next);
- result = doProlog(parser, internalEncoding, textStart, textEnd, tok,
+ result = doProlog(parser, internalEncoding, textStart, textEnd, tok,
next, &next, XML_FALSE);
}
- else
+ else
#endif /* XML_DTD */
- result = doContent(parser, tagLevel, internalEncoding, textStart,
+ result = doContent(parser, tagLevel, internalEncoding, textStart,
textEnd, &next, XML_FALSE);
if (result == XML_ERROR_NONE) {
@@ -4756,13 +4869,13 @@ internalEntityProcessor(XML_Parser parser,
#ifdef XML_DTD
if (entity->is_param) {
int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next);
- result = doProlog(parser, internalEncoding, textStart, textEnd, tok,
+ result = doProlog(parser, internalEncoding, textStart, textEnd, tok,
next, &next, XML_FALSE);
}
else
#endif /* XML_DTD */
- result = doContent(parser, openEntity->startTagLevel, internalEncoding,
- textStart, textEnd, &next, XML_FALSE);
+ result = doContent(parser, openEntity->startTagLevel, internalEncoding,
+ textStart, textEnd, &next, XML_FALSE);
if (result != XML_ERROR_NONE)
return result;
@@ -4783,7 +4896,7 @@ internalEntityProcessor(XML_Parser parser,
int tok;
processor = prologProcessor;
tok = XmlPrologTok(encoding, s, end, &next);
- return doProlog(parser, encoding, s, end, tok, next, nextPtr,
+ return doProlog(parser, encoding, s, end, tok, next, nextPtr,
(XML_Bool)!ps_finalBuffer);
}
else
@@ -4792,8 +4905,8 @@ internalEntityProcessor(XML_Parser parser,
processor = contentProcessor;
/* see externalEntityContentProcessor vs contentProcessor */
return doContent(parser, parentParser ? 1 : 0, encoding, s, end,
- nextPtr, (XML_Bool)!ps_finalBuffer);
- }
+ nextPtr, (XML_Bool)!ps_finalBuffer);
+ }
}
static enum XML_Error PTRCALL
@@ -4899,7 +5012,7 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata,
next - enc->minBytesPerChar);
if (!name)
return XML_ERROR_NO_MEMORY;
- entity = (ENTITY *)lookup(&dtd->generalEntities, name, 0);
+ entity = (ENTITY *)lookup(parser, &dtd->generalEntities, name, 0);
poolDiscard(&temp2Pool);
/* First, determine if a check for an existing declaration is needed;
if yes, check that the entity exists, and that it is internal.
@@ -4946,7 +5059,7 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata,
if (!entity->textPtr) {
if (enc == encoding)
eventPtr = ptr;
- return XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF;
+ return XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF;
}
else {
enum XML_Error result;
@@ -5008,7 +5121,7 @@ storeEntityValue(XML_Parser parser,
result = XML_ERROR_NO_MEMORY;
goto endEntityValue;
}
- entity = (ENTITY *)lookup(&dtd->paramEntities, name, 0);
+ entity = (ENTITY *)lookup(parser, &dtd->paramEntities, name, 0);
poolDiscard(&tempPool);
if (!entity) {
/* not a well-formedness error - see XML 1.0: WFC Entity Declared */
@@ -5298,7 +5411,7 @@ setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
}
if (!poolAppendChar(&dtd->pool, XML_T('\0')))
return 0;
- prefix = (PREFIX *)lookup(&dtd->prefixes, poolStart(&dtd->pool),
+ prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool),
sizeof(PREFIX));
if (!prefix)
return 0;
@@ -5327,7 +5440,7 @@ getAttributeId(XML_Parser parser, const ENCODING *enc,
return NULL;
/* skip quotation mark - its storage will be re-used (like in name[-1]) */
++name;
- id = (ATTRIBUTE_ID *)lookup(&dtd->attributeIds, name, sizeof(ATTRIBUTE_ID));
+ id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, sizeof(ATTRIBUTE_ID));
if (!id)
return NULL;
if (id->name != name)
@@ -5345,7 +5458,7 @@ getAttributeId(XML_Parser parser, const ENCODING *enc,
if (name[5] == XML_T('\0'))
id->prefix = &dtd->defaultPrefix;
else
- id->prefix = (PREFIX *)lookup(&dtd->prefixes, name + 6, sizeof(PREFIX));
+ id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, name + 6, sizeof(PREFIX));
id->xmlns = XML_TRUE;
}
else {
@@ -5360,7 +5473,7 @@ getAttributeId(XML_Parser parser, const ENCODING *enc,
}
if (!poolAppendChar(&dtd->pool, XML_T('\0')))
return NULL;
- id->prefix = (PREFIX *)lookup(&dtd->prefixes, poolStart(&dtd->pool),
+ id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool),
sizeof(PREFIX));
if (id->prefix->name == poolStart(&dtd->pool))
poolFinish(&dtd->pool);
@@ -5456,7 +5569,7 @@ setContext(XML_Parser parser, const XML_Char *context)
ENTITY *e;
if (!poolAppendChar(&tempPool, XML_T('\0')))
return XML_FALSE;
- e = (ENTITY *)lookup(&dtd->generalEntities, poolStart(&tempPool), 0);
+ e = (ENTITY *)lookup(parser, &dtd->generalEntities, poolStart(&tempPool), 0);
if (e)
e->open = XML_TRUE;
if (*s != XML_T('\0'))
@@ -5471,7 +5584,7 @@ setContext(XML_Parser parser, const XML_Char *context)
else {
if (!poolAppendChar(&tempPool, XML_T('\0')))
return XML_FALSE;
- prefix = (PREFIX *)lookup(&dtd->prefixes, poolStart(&tempPool),
+ prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&tempPool),
sizeof(PREFIX));
if (!prefix)
return XML_FALSE;
@@ -5635,7 +5748,7 @@ dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms)
The new DTD has already been initialized.
*/
static int
-dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
+dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
{
HASH_TABLE_ITER iter;
@@ -5650,7 +5763,7 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
name = poolCopyString(&(newDtd->pool), oldP->name);
if (!name)
return 0;
- if (!lookup(&(newDtd->prefixes), name, sizeof(PREFIX)))
+ if (!lookup(oldParser, &(newDtd->prefixes), name, sizeof(PREFIX)))
return 0;
}
@@ -5672,7 +5785,7 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
if (!name)
return 0;
++name;
- newA = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), name,
+ newA = (ATTRIBUTE_ID *)lookup(oldParser, &(newDtd->attributeIds), name,
sizeof(ATTRIBUTE_ID));
if (!newA)
return 0;
@@ -5682,7 +5795,7 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
if (oldA->prefix == &oldDtd->defaultPrefix)
newA->prefix = &newDtd->defaultPrefix;
else
- newA->prefix = (PREFIX *)lookup(&(newDtd->prefixes),
+ newA->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes),
oldA->prefix->name, 0);
}
}
@@ -5701,7 +5814,7 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
name = poolCopyString(&(newDtd->pool), oldE->name);
if (!name)
return 0;
- newE = (ELEMENT_TYPE *)lookup(&(newDtd->elementTypes), name,
+ newE = (ELEMENT_TYPE *)lookup(oldParser, &(newDtd->elementTypes), name,
sizeof(ELEMENT_TYPE));
if (!newE)
return 0;
@@ -5715,14 +5828,14 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
}
if (oldE->idAtt)
newE->idAtt = (ATTRIBUTE_ID *)
- lookup(&(newDtd->attributeIds), oldE->idAtt->name, 0);
+ lookup(oldParser, &(newDtd->attributeIds), oldE->idAtt->name, 0);
newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts;
if (oldE->prefix)
- newE->prefix = (PREFIX *)lookup(&(newDtd->prefixes),
+ newE->prefix = (PREFIX *)lookup(oldParser, &(newDtd->prefixes),
oldE->prefix->name, 0);
for (i = 0; i < newE->nDefaultAtts; i++) {
newE->defaultAtts[i].id = (ATTRIBUTE_ID *)
- lookup(&(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
+ lookup(oldParser, &(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
if (oldE->defaultAtts[i].value) {
newE->defaultAtts[i].value
@@ -5736,13 +5849,15 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
}
/* Copy the entity tables. */
- if (!copyEntityTable(&(newDtd->generalEntities),
+ if (!copyEntityTable(oldParser,
+ &(newDtd->generalEntities),
&(newDtd->pool),
&(oldDtd->generalEntities)))
return 0;
#ifdef XML_DTD
- if (!copyEntityTable(&(newDtd->paramEntities),
+ if (!copyEntityTable(oldParser,
+ &(newDtd->paramEntities),
&(newDtd->pool),
&(oldDtd->paramEntities)))
return 0;
@@ -5765,7 +5880,8 @@ dtdCopy(DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms)
} /* End dtdCopy */
static int
-copyEntityTable(HASH_TABLE *newTable,
+copyEntityTable(XML_Parser oldParser,
+ HASH_TABLE *newTable,
STRING_POOL *newPool,
const HASH_TABLE *oldTable)
{
@@ -5784,7 +5900,7 @@ copyEntityTable(HASH_TABLE *newTable,
name = poolCopyString(newPool, oldE->name);
if (!name)
return 0;
- newE = (ENTITY *)lookup(newTable, name, sizeof(ENTITY));
+ newE = (ENTITY *)lookup(oldParser, newTable, name, sizeof(ENTITY));
if (!newE)
return 0;
if (oldE->systemId) {
@@ -5842,16 +5958,16 @@ keyeq(KEY s1, KEY s2)
}
static unsigned long FASTCALL
-hash(KEY s)
+hash(XML_Parser parser, KEY s)
{
- unsigned long h = 0;
+ unsigned long h = hash_secret_salt;
while (*s)
h = CHAR_HASH(h, *s++);
return h;
}
static NAMED *
-lookup(HASH_TABLE *table, KEY name, size_t createSize)
+lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize)
{
size_t i;
if (table->size == 0) {
@@ -5868,10 +5984,10 @@ lookup(HASH_TABLE *table, KEY name, size_t createSize)
return NULL;
}
memset(table->v, 0, tsize);
- i = hash(name) & ((unsigned long)table->size - 1);
+ i = hash(parser, name) & ((unsigned long)table->size - 1);
}
else {
- unsigned long h = hash(name);
+ unsigned long h = hash(parser, name);
unsigned long mask = (unsigned long)table->size - 1;
unsigned char step = 0;
i = h & mask;
@@ -5897,7 +6013,7 @@ lookup(HASH_TABLE *table, KEY name, size_t createSize)
memset(newV, 0, tsize);
for (i = 0; i < table->size; i++)
if (table->v[i]) {
- unsigned long newHash = hash(table->v[i]->name);
+ unsigned long newHash = hash(parser, table->v[i]->name);
size_t j = newHash & newMask;
step = 0;
while (newV[j]) {
@@ -6118,12 +6234,13 @@ poolGrow(STRING_POOL *pool)
}
if (pool->blocks && pool->start == pool->blocks->s) {
int blockSize = (int)(pool->end - pool->start)*2;
- pool->blocks = (BLOCK *)
+ BLOCK *temp = (BLOCK *)
pool->mem->realloc_fcn(pool->blocks,
(offsetof(BLOCK, s)
+ blockSize * sizeof(XML_Char)));
- if (pool->blocks == NULL)
+ if (temp == NULL)
return XML_FALSE;
+ pool->blocks = temp;
pool->blocks->size = blockSize;
pool->ptr = pool->blocks->s + (pool->ptr - pool->start);
pool->start = pool->blocks->s;
@@ -6272,7 +6389,7 @@ getElementType(XML_Parser parser,
if (!name)
return NULL;
- ret = (ELEMENT_TYPE *) lookup(&dtd->elementTypes, name, sizeof(ELEMENT_TYPE));
+ ret = (ELEMENT_TYPE *) lookup(parser, &dtd->elementTypes, name, sizeof(ELEMENT_TYPE));
if (!ret)
return NULL;
if (ret->name != name)
diff --git a/contrib/expat/lib/xmlrole.c b/contrib/expat/lib/xmlrole.c
index 9c5e25b..44772e2 100644
--- a/contrib/expat/lib/xmlrole.c
+++ b/contrib/expat/lib/xmlrole.c
@@ -8,7 +8,7 @@
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
-#elif defined(__amigaos4__)
+#elif defined(__amigaos__)
#include "amigaconfig.h"
#elif defined(__WATCOMC__)
#include "watcomconfig.h"
diff --git a/contrib/expat/lib/xmltok.c b/contrib/expat/lib/xmltok.c
index 068afde..bf09dfc 100644
--- a/contrib/expat/lib/xmltok.c
+++ b/contrib/expat/lib/xmltok.c
@@ -8,7 +8,7 @@
#include "winconfig.h"
#elif defined(MACOS_CLASSIC)
#include "macconfig.h"
-#elif defined(__amigaos4__)
+#elif defined(__amigaos__)
#include "amigaconfig.h"
#elif defined(__WATCOMC__)
#include "watcomconfig.h"
@@ -1345,7 +1345,7 @@ unknown_toUtf16(const ENCODING *enc,
ENCODING *
XmlInitUnknownEncoding(void *mem,
int *table,
- CONVERTER convert,
+ CONVERTER convert,
void *userData)
{
int i;
@@ -1639,7 +1639,7 @@ initScan(const ENCODING * const *encodingTable,
ENCODING *
XmlInitUnknownEncodingNS(void *mem,
int *table,
- CONVERTER convert,
+ CONVERTER convert,
void *userData)
{
ENCODING *enc = XmlInitUnknownEncoding(mem, table, convert, userData);
diff --git a/contrib/expat/lib/xmltok_impl.c b/contrib/expat/lib/xmltok_impl.c
index 16dfb85..9c2895b 100644
--- a/contrib/expat/lib/xmltok_impl.c
+++ b/contrib/expat/lib/xmltok_impl.c
@@ -885,7 +885,7 @@ PREFIX(scanPercent)(const ENCODING *enc, const char *ptr, const char *end,
const char **nextTokPtr)
{
if (ptr == end)
- return -XML_TOK_PERCENT;
+ return XML_TOK_PARTIAL;
switch (BYTE_TYPE(enc, ptr)) {
CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
case BT_S: case BT_LF: case BT_CR: case BT_PERCNT:
diff --git a/contrib/expat/tests/README.txt b/contrib/expat/tests/README.txt
index 33a47c3..30e1d4d 100644
--- a/contrib/expat/tests/README.txt
+++ b/contrib/expat/tests/README.txt
@@ -8,7 +8,6 @@ unit testing framework for C. More information on Check can be found at:
http://check.sourceforge.net/
-Expat must be built and installed before "make check" can be executed.
+Expat must be built and, depending on platform, must be installed, before "make check" can be executed.
-Since both Check and this test suite are young, it can all change in a
-later version.
+This test suite can all change in a later version.
diff --git a/contrib/expat/tests/benchmark/benchmark.dsp b/contrib/expat/tests/benchmark/benchmark.dsp
deleted file mode 100644
index 6f310d0a..0000000
--- a/contrib/expat/tests/benchmark/benchmark.dsp
+++ /dev/null
@@ -1,88 +0,0 @@
-# Microsoft Developer Studio Project File - Name="benchmark" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=benchmark - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "benchmark.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "benchmark.mak" CFG="benchmark - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "benchmark - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "benchmark - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "benchmark - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /W3 /GX /O2 /I "..\..\lib" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD BASE RSC /l 0x1009 /d "NDEBUG"
-# ADD RSC /l 0x1009 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-
-!ELSEIF "$(CFG)" == "benchmark - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\lib" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD BASE RSC /l 0x1009 /d "_DEBUG"
-# ADD RSC /l 0x1009 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-
-!ENDIF
-
-# Begin Target
-
-# Name "benchmark - Win32 Release"
-# Name "benchmark - Win32 Debug"
-# Begin Source File
-
-SOURCE=.\benchmark.c
-# End Source File
-# End Target
-# End Project
diff --git a/contrib/expat/tests/benchmark/benchmark.dsw b/contrib/expat/tests/benchmark/benchmark.dsw
deleted file mode 100644
index 3346a9a..0000000
--- a/contrib/expat/tests/benchmark/benchmark.dsw
+++ /dev/null
@@ -1,44 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "benchmark"=.\benchmark.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
- Begin Project Dependency
- Project_Dep_Name expat
- End Project Dependency
-}}}
-
-###############################################################################
-
-Project: "expat"=..\..\lib\expat.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/contrib/expat/tests/minicheck.h b/contrib/expat/tests/minicheck.h
index f846bea..c917c02 100644
--- a/contrib/expat/tests/minicheck.h
+++ b/contrib/expat/tests/minicheck.h
@@ -18,10 +18,11 @@ extern "C" {
#define CK_NORMAL 1
#define CK_VERBOSE 2
-/* Workaround for Tru64 Unix systems where the C compiler has a working
- __func__, but the C++ compiler only has a working __FUNCTION__. This
- could be fixed in configure.in, but it's not worth it right now. */
-#if defined(__osf__) && defined(__cplusplus)
+/* Workaround for Microsoft's compiler and Tru64 Unix systems where the
+ C compiler has a working __func__, but the C++ compiler only has a
+ working __FUNCTION__. This could be fixed in configure.in, but it's
+ not worth it right now. */
+#if defined (_MSC_VER) || (defined(__osf__) && defined(__cplusplus))
#define __func__ __FUNCTION__
#endif
diff --git a/contrib/expat/tests/runtests.c b/contrib/expat/tests/runtests.c
index 3521c08..614d6b2 100644
--- a/contrib/expat/tests/runtests.c
+++ b/contrib/expat/tests/runtests.c
@@ -12,6 +12,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <stdint.h>
#include "expat.h"
#include "chardata.h"
@@ -1254,7 +1255,7 @@ external_entity_handler(XML_Parser parser,
const XML_Char *systemId,
const XML_Char *publicId)
{
- long callno = 1 + (long)XML_GetUserData(parser);
+ intptr_t callno = 1 + (intptr_t)XML_GetUserData(parser);
char *text;
XML_Parser p2;
diff --git a/contrib/expat/tests/xmltest.sh b/contrib/expat/tests/xmltest.sh
index 725441e..793a5cc 100755
--- a/contrib/expat/tests/xmltest.sh
+++ b/contrib/expat/tests/xmltest.sh
@@ -6,7 +6,7 @@
# w3c.org xml test suite, available from
# http://www.w3.org/XML/Test/xmlts20020606.zip.
-# To run this script, first set XMLWF so that xmlwf can be
+# To run this script, first set XMLWF below so that xmlwf can be
# found, then set the output directory with OUTPUT.
# The script lists all test cases where Expat shows a discrepancy
@@ -39,7 +39,7 @@ RunXmlwfNotWF() {
$XMLWF -p "$file" > outfile || return $?
read outdata < outfile
if test "$outdata" = "" ; then
- echo "Expected well-formed: $reldir$file"
+ echo "Expected not well-formed: $reldir$file"
return 1
else
return 0
@@ -55,7 +55,7 @@ RunXmlwfWF() {
read outdata < outfile
if test "$outdata" = "" ; then
if [ -f "out/$file" ] ; then
- diff "$OUTPUT$reldir$file" "out/$file" > outfile
+ diff -u "$OUTPUT$reldir$file" "out/$file" > outfile
if [ -s outfile ] ; then
cp outfile "$OUTPUT$reldir$file.diff"
echo "Output differs: $reldir$file"
@@ -117,6 +117,7 @@ rm outfile
cd "$TS/xmlconf"
for xmldir in ibm/not-wf/P* \
+ ibm/not-wf/p28a \
ibm/not-wf/misc \
xmltest/not-wf/ext-sa \
xmltest/not-wf/not-sa \
diff --git a/contrib/expat/xmlwf/readfilemap.c b/contrib/expat/xmlwf/readfilemap.c
index 088dda5..bd32b93 100644
--- a/contrib/expat/xmlwf/readfilemap.c
+++ b/contrib/expat/xmlwf/readfilemap.c
@@ -58,10 +58,12 @@ filemap(const char *name,
}
if (fstat(fd, &sb) < 0) {
perror(name);
+ close(fd);
return 0;
}
if (!S_ISREG(sb.st_mode)) {
fprintf(stderr, "%s: not a regular file\n", name);
+ close(fd);
return 0;
}
nbytes = sb.st_size;
diff --git a/contrib/expat/xmlwf/xmlwf.c b/contrib/expat/xmlwf/xmlwf.c
index 41a433d..4fc77da 100644
--- a/contrib/expat/xmlwf/xmlwf.c
+++ b/contrib/expat/xmlwf/xmlwf.c
@@ -849,8 +849,10 @@ tmain(int argc, XML_Char **argv)
if (outputType == 'm')
metaEndDocument(parser);
fclose(fp);
- if (!result)
+ if (!result) {
tremove(outName);
+ exit(2);
+ }
free(outName);
}
XML_ParserFree(parser);
diff --git a/etc/rc.d/rtadvd b/etc/rc.d/rtadvd
index 1ad40b8..562498c 100755
--- a/etc/rc.d/rtadvd
+++ b/etc/rc.d/rtadvd
@@ -46,6 +46,8 @@ rtadvd_precmd()
fi
done
;;
+ [Nn][Oo][Nn][Ee])
+ ;;
*)
command_args="${rtadvd_interfaces}"
;;
diff --git a/lib/libc/gen/opendir.c b/lib/libc/gen/opendir.c
index 2d505fc..a9eb0af 100644
--- a/lib/libc/gen/opendir.c
+++ b/lib/libc/gen/opendir.c
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
#include "gen-private.h"
#include "telldir.h"
-static DIR * __opendir_common(int, const char *, int);
+static DIR * __opendir_common(int, int);
/*
* Open a directory.
@@ -78,7 +78,7 @@ fdopendir(int fd)
}
if (_fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
return (NULL);
- return (__opendir_common(fd, NULL, DTF_HIDEW|DTF_NODUP));
+ return (__opendir_common(fd, DTF_HIDEW|DTF_NODUP));
}
DIR *
@@ -92,7 +92,7 @@ __opendir2(const char *name, int flags)
O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_CLOEXEC)) == -1)
return (NULL);
- dir = __opendir_common(fd, name, flags);
+ dir = __opendir_common(fd, flags);
if (dir == NULL) {
saved_errno = errno;
_close(fd);
@@ -113,7 +113,7 @@ opendir_compar(const void *p1, const void *p2)
* Common routine for opendir(3), __opendir2(3) and fdopendir(3).
*/
static DIR *
-__opendir_common(int fd, const char *name, int flags)
+__opendir_common(int fd, int flags)
{
DIR *dirp;
int incr;
@@ -121,6 +121,8 @@ __opendir_common(int fd, const char *name, int flags)
int unionstack;
int fd2;
+ fd2 = -1;
+
if ((dirp = malloc(sizeof(DIR) + sizeof(struct _telldir))) == NULL)
return (NULL);
@@ -165,7 +167,22 @@ __opendir_common(int fd, const char *name, int flags)
* entries into a buffer, sort the buffer, and
* remove duplicate entries by setting the inode
* number to zero.
+ *
+ * We reopen the directory because _getdirentries()
+ * on a MNT_UNION mount modifies the open directory,
+ * making it refer to the lower directory after the
+ * upper directory's entries are exhausted.
+ * This would otherwise break software that uses
+ * the directory descriptor for fchdir or *at
+ * functions, such as fts.c.
*/
+ if ((fd2 = _openat(fd, ".", O_RDONLY | O_CLOEXEC)) == -1) {
+ saved_errno = errno;
+ free(buf);
+ free(dirp);
+ errno = saved_errno;
+ return (NULL);
+ }
do {
/*
@@ -181,7 +198,7 @@ __opendir_common(int fd, const char *name, int flags)
ddptr = buf + (len - space);
}
- n = _getdirentries(fd, ddptr, space, &dirp->dd_seek);
+ n = _getdirentries(fd2, ddptr, space, &dirp->dd_seek);
if (n > 0) {
ddptr += n;
space -= n;
@@ -191,25 +208,8 @@ __opendir_common(int fd, const char *name, int flags)
ddeptr = ddptr;
flags |= __DTF_READALL;
- /*
- * Re-open the directory.
- * This has the effect of rewinding back to the
- * top of the union stack and is needed by
- * programs which plan to fchdir to a descriptor
- * which has also been read -- see fts.c.
- */
- if (flags & DTF_REWIND) {
- if ((fd2 = _open(name, O_RDONLY | O_DIRECTORY |
- O_CLOEXEC)) == -1) {
- saved_errno = errno;
- free(buf);
- free(dirp);
- errno = saved_errno;
- return (NULL);
- }
- (void)_dup2(fd2, fd);
- _close(fd2);
- }
+ _close(fd2);
+ fd2 = -1;
/*
* There is now a buffer full of (possibly) duplicate
@@ -293,7 +293,6 @@ __opendir_common(int fd, const char *name, int flags)
if (dirp->dd_buf == NULL)
goto fail;
dirp->dd_seek = 0;
- flags &= ~DTF_REWIND;
}
dirp->dd_loc = 0;
@@ -310,6 +309,8 @@ __opendir_common(int fd, const char *name, int flags)
fail:
saved_errno = errno;
+ if (fd2 != -1)
+ _close(fd2);
free(dirp);
errno = saved_errno;
return (NULL);
diff --git a/lib/libexpat/expat_config.h b/lib/libexpat/expat_config.h
index 9808129..6deefc4 100644
--- a/lib/libexpat/expat_config.h
+++ b/lib/libexpat/expat_config.h
@@ -45,6 +45,9 @@
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
@@ -54,20 +57,27 @@
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"
+#define PACKAGE_BUGREPORT "expat-bugs@libexpat.org"
/* Define to the full name of this package. */
#define PACKAGE_NAME "expat"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "expat 1.95.5"
+#define PACKAGE_STRING "expat 2.1.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "expat"
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
/* Define to the version of this package. */
-#define PACKAGE_VERSION "1.95.5"
+#define PACKAGE_VERSION "2.1.0"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
@@ -89,11 +99,14 @@
/* Define to make XML Namespaces functionality available. */
#define XML_NS 1
+/* Define to __FUNCTION__ or "" if `__func__' does not conform to ANSI C. */
+/* #undef __func__ */
+
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
-/* Define to `long' if <sys/types.h> does not define. */
+/* Define to `long int' if <sys/types.h> does not define. */
/* #undef off_t */
-/* Define to `unsigned' if <sys/types.h> does not define. */
+/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
diff --git a/lib/libexpat/libbsdxml.3 b/lib/libexpat/libbsdxml.3
index 555bc9a..04887f0 100644
--- a/lib/libexpat/libbsdxml.3
+++ b/lib/libexpat/libbsdxml.3
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"/
-.Dd December 12, 2009
+.Dd February 26, 2013
.Dt LIBBSDXML 3
.Os
.Sh NAME
@@ -36,7 +36,7 @@
.Sh DESCRIPTION
The
.Nm
-library is a verbatim copy of the eXpat XML library version 2.0.1.
+library is a verbatim copy of the eXpat XML library version 2.1.0.
.Pp
The
.Nm
diff --git a/sbin/fsck_ffs/fsutil.c b/sbin/fsck_ffs/fsutil.c
index eef9bdc..34cc29f 100644
--- a/sbin/fsck_ffs/fsutil.c
+++ b/sbin/fsck_ffs/fsutil.c
@@ -448,8 +448,8 @@ static void printIOstats(void)
clock_gettime(CLOCK_REALTIME_PRECISE, &finishpass);
timespecsub(&finishpass, &startpass);
- printf("Running time: %ld msec\n",
- finishpass.tv_sec * 1000 + finishpass.tv_nsec / 1000000);
+ msec = finishpass.tv_sec * 1000 + finishpass.tv_nsec / 1000000;
+ printf("Running time: %lld msec\n", msec);
printf("buffer reads by type:\n");
for (totalmsec = 0, i = 0; i < BT_NUMBUFTYPES; i++)
totalmsec += readtime[i].tv_sec * 1000 +
diff --git a/sbin/fsdb/fsdbutil.c b/sbin/fsdb/fsdbutil.c
index 91153d7..ba0b64e 100644
--- a/sbin/fsdb/fsdbutil.c
+++ b/sbin/fsdb/fsdbutil.c
@@ -239,11 +239,11 @@ printindir(ufs2_daddr_t blk, int level, char *bufp)
/* for the final indirect level, don't use the cache */
bp = &buf;
bp->b_un.b_buf = bufp;
- initbarea(bp);
+ initbarea(bp, BT_UNKNOWN);
getblk(bp, blk, sblock.fs_bsize);
} else
- bp = getdatablk(blk, sblock.fs_bsize);
+ bp = getdatablk(blk, sblock.fs_bsize, BT_UNKNOWN);
cpl = charsperline();
for (i = charssofar = 0; i < NINDIR(&sblock); i++) {
diff --git a/sbin/hastctl/hastctl.c b/sbin/hastctl/hastctl.c
index 0bd47f2..503072c 100644
--- a/sbin/hastctl/hastctl.c
+++ b/sbin/hastctl/hastctl.c
@@ -351,6 +351,12 @@ control_status(struct nv *nv)
(uint64_t)nv_get_uint64(nv, "stat_flush%u", ii));
printf(" activemap updates: %ju\n",
(uint64_t)nv_get_uint64(nv, "stat_activemap_update%u", ii));
+ printf(" local errors: "
+ "read: %ju, write: %ju, delete: %ju, flush: %ju\n",
+ (uintmax_t)nv_get_uint64(nv, "stat_read_error%u", ii),
+ (uintmax_t)nv_get_uint64(nv, "stat_write_error%u", ii),
+ (uintmax_t)nv_get_uint64(nv, "stat_delete_error%u", ii),
+ (uintmax_t)nv_get_uint64(nv, "stat_flush_error%u", ii));
}
return (ret);
}
diff --git a/sbin/hastd/control.c b/sbin/hastd/control.c
index 925fd32..3619fc6 100644
--- a/sbin/hastd/control.c
+++ b/sbin/hastd/control.c
@@ -207,6 +207,14 @@ control_status_worker(struct hast_resource *res, struct nv *nvout,
"stat_flush%u", no);
nv_add_uint64(nvout, nv_get_uint64(cnvin, "stat_activemap_update"),
"stat_activemap_update%u", no);
+ nv_add_uint64(nvout, nv_get_uint64(cnvin, "stat_read_error"),
+ "stat_read_error%u", no);
+ nv_add_uint64(nvout, nv_get_uint64(cnvin, "stat_write_error"),
+ "stat_write_error%u", no);
+ nv_add_uint64(nvout, nv_get_uint64(cnvin, "stat_delete_error"),
+ "stat_delete_error%u", no);
+ nv_add_uint64(nvout, nv_get_uint64(cnvin, "stat_flush_error"),
+ "stat_flush_error%u", no);
end:
if (cnvin != NULL)
nv_free(cnvin);
@@ -459,6 +467,16 @@ ctrl_thread(void *arg)
nv_add_uint64(nvout, res->hr_stat_flush, "stat_flush");
nv_add_uint64(nvout, res->hr_stat_activemap_update,
"stat_activemap_update");
+ nv_add_uint64(nvout, res->hr_stat_read_error,
+ "stat_read_error");
+ nv_add_uint64(nvout, res->hr_stat_write_error +
+ res->hr_stat_activemap_write_error,
+ "stat_write_error");
+ nv_add_uint64(nvout, res->hr_stat_delete_error,
+ "stat_delete_error");
+ nv_add_uint64(nvout, res->hr_stat_flush_error +
+ res->hr_stat_activemap_flush_error,
+ "stat_flush_error");
nv_add_int16(nvout, 0, "error");
break;
case CONTROL_RELOAD:
diff --git a/sbin/hastd/hast.h b/sbin/hastd/hast.h
index c7a6b49..b757994 100644
--- a/sbin/hastd/hast.h
+++ b/sbin/hastd/hast.h
@@ -239,6 +239,18 @@ struct hast_resource {
uint64_t hr_stat_flush;
/* Number of activemap updates. */
uint64_t hr_stat_activemap_update;
+ /* Number of local read errors. */
+ uint64_t hr_stat_read_error;
+ /* Number of local write errors. */
+ uint64_t hr_stat_write_error;
+ /* Number of local delete errors. */
+ uint64_t hr_stat_delete_error;
+ /* Number of flush errors. */
+ uint64_t hr_stat_flush_error;
+ /* Number of activemap write errors. */
+ uint64_t hr_stat_activemap_write_error;
+ /* Number of activemap flush errors. */
+ uint64_t hr_stat_activemap_flush_error;
/* Next resource. */
TAILQ_ENTRY(hast_resource) hr_next;
diff --git a/sbin/hastd/primary.c b/sbin/hastd/primary.c
index fb49ef6..a9dfa2b 100644
--- a/sbin/hastd/primary.c
+++ b/sbin/hastd/primary.c
@@ -303,6 +303,7 @@ hast_activemap_flush(struct hast_resource *res)
if (pwrite(res->hr_localfd, buf, size, METADATA_SIZE) !=
(ssize_t)size) {
pjdlog_errno(LOG_ERR, "Unable to flush activemap to disk");
+ res->hr_stat_activemap_write_error++;
return (-1);
}
if (res->hr_metaflush == 1 && g_flush(res->hr_localfd) == -1) {
@@ -313,6 +314,7 @@ hast_activemap_flush(struct hast_resource *res)
} else {
pjdlog_errno(LOG_ERR,
"Unable to flush disk cache on activemap update");
+ res->hr_stat_activemap_flush_error++;
return (-1);
}
}
@@ -1936,6 +1938,22 @@ ggate_send_thread(void *arg)
"G_GATE_CMD_DONE failed");
}
}
+ if (hio->hio_errors[0]) {
+ switch (ggio->gctl_cmd) {
+ case BIO_READ:
+ res->hr_stat_read_error++;
+ break;
+ case BIO_WRITE:
+ res->hr_stat_write_error++;
+ break;
+ case BIO_DELETE:
+ res->hr_stat_delete_error++;
+ break;
+ case BIO_FLUSH:
+ res->hr_stat_flush_error++;
+ break;
+ }
+ }
pjdlog_debug(2,
"ggate_send: (%p) Moving request to the free queue.", hio);
QUEUE_INSERT2(hio, free);
diff --git a/sbin/hastd/secondary.c b/sbin/hastd/secondary.c
index 71524e9..febdc05 100644
--- a/sbin/hastd/secondary.c
+++ b/sbin/hastd/secondary.c
@@ -765,6 +765,7 @@ disk_thread(void *arg)
pjdlog_errno(LOG_WARNING,
"Unable to store cleared activemap");
free(map);
+ res->hr_stat_activemap_write_error++;
break;
}
free(map);
@@ -883,8 +884,23 @@ send_thread(void *arg)
PJDLOG_ABORT("Unexpected command (cmd=%hhu).",
hio->hio_cmd);
}
- if (hio->hio_error != 0)
+ if (hio->hio_error != 0) {
+ switch (hio->hio_cmd) {
+ case HIO_READ:
+ res->hr_stat_read_error++;
+ break;
+ case HIO_WRITE:
+ res->hr_stat_write_error++;
+ break;
+ case HIO_DELETE:
+ res->hr_stat_delete_error++;
+ break;
+ case HIO_FLUSH:
+ res->hr_stat_flush_error++;
+ break;
+ }
nv_add_int16(nvout, hio->hio_error, "error");
+ }
if (hast_proto_send(res, res->hr_remoteout, nvout, data,
length) == -1) {
secondary_exit(EX_TEMPFAIL, "Unable to send reply");
diff --git a/sys/arm/ti/ti_gpio.c b/sys/arm/ti/ti_gpio.c
index 979326fa..58de516 100644
--- a/sys/arm/ti/ti_gpio.c
+++ b/sys/arm/ti/ti_gpio.c
@@ -281,7 +281,7 @@ ti_gpio_pin_max(device_t dev, int *maxpin)
banks++;
}
- *maxpin = (banks * PINS_PER_BANK);
+ *maxpin = (banks * PINS_PER_BANK) - 1;
TI_GPIO_UNLOCK(sc);
@@ -315,7 +315,7 @@ ti_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -353,7 +353,7 @@ ti_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -390,7 +390,7 @@ ti_gpio_pin_getname(device_t dev, uint32_t pin, char *name)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -445,7 +445,7 @@ ti_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -494,7 +494,7 @@ ti_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -533,7 +533,7 @@ ti_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *value)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -541,13 +541,11 @@ ti_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *value)
/* Sanity check the pin is not configured as an output */
val = ti_gpio_read_4(sc, bank, TI_GPIO_OE);
- if ((val & mask) == mask) {
- TI_GPIO_UNLOCK(sc);
- return (EINVAL);
- }
-
/* Read the value on the pin */
- *value = (ti_gpio_read_4(sc, bank, TI_GPIO_DATAIN) & mask) ? 1 : 0;
+ if (val & mask)
+ *value = (ti_gpio_read_4(sc, bank, TI_GPIO_DATAOUT) & mask) ? 1 : 0;
+ else
+ *value = (ti_gpio_read_4(sc, bank, TI_GPIO_DATAIN) & mask) ? 1 : 0;
TI_GPIO_UNLOCK(sc);
@@ -577,7 +575,7 @@ ti_gpio_pin_toggle(device_t dev, uint32_t pin)
TI_GPIO_LOCK(sc);
/* Sanity check the pin number is valid */
- if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
+ if ((bank >= MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) {
TI_GPIO_UNLOCK(sc);
return (EINVAL);
}
@@ -728,6 +726,7 @@ ti_gpio_attach(device_t dev)
/* Finish of the probe call */
device_add_child(dev, "gpioc", device_get_unit(dev));
device_add_child(dev, "gpiobus", device_get_unit(dev));
+
return (bus_generic_attach(dev));
}
diff --git a/sys/boot/common/bootstrap.h b/sys/boot/common/bootstrap.h
index 78b3895..516b8a5 100644
--- a/sys/boot/common/bootstrap.h
+++ b/sys/boot/common/bootstrap.h
@@ -237,8 +237,6 @@ void file_discard(struct preloaded_file *fp);
void file_addmetadata(struct preloaded_file *fp, int type, size_t size, void *p);
int file_addmodule(struct preloaded_file *fp, char *modname, int version,
struct kernel_module **newmp);
-/* Load from a buffer in memory. */
-struct preloaded_file *mem_load_raw(char *type, char *name, const void *p, size_t len);
/* MI module loaders */
#ifdef __elfN
diff --git a/sys/boot/common/module.c b/sys/boot/common/module.c
index 3b74ab7..5808587 100644
--- a/sys/boot/common/module.c
+++ b/sys/boot/common/module.c
@@ -422,42 +422,6 @@ file_loadraw(char *type, char *name)
}
/*
- * Load a chunk of data as if it had been read from a file.
- */
-struct preloaded_file *
-mem_load_raw(char *type, char *name, const void *p, size_t len)
-{
- struct preloaded_file *fp;
-
- /* We can't load first */
- if ((file_findfile(NULL, NULL)) == NULL) {
- command_errmsg = "can't load file before kernel";
- return(NULL);
- }
-
- if (archsw.arch_loadaddr != NULL)
- loadaddr = archsw.arch_loadaddr(LOAD_RAW, name, loadaddr);
- archsw.arch_copyin(p, loadaddr, len);
-
- /* Looks OK so far; create & populate control structure */
- fp = file_alloc();
- fp->f_name = strdup(name);
- fp->f_type = strdup(type);
- fp->f_args = NULL;
- fp->f_metadata = NULL;
- fp->f_loader = -1;
- fp->f_addr = loadaddr;
- fp->f_size = len;
-
- /* recognise space consumption */
- loadaddr += len;
-
- /* Add to the list of loaded files */
- file_insert_tail(fp);
- return fp;
-}
-
-/*
* Load the module (name), pass it (argc),(argv), add container file
* to the list of loaded files.
* If module is already loaded just assign new argc/argv.
diff --git a/sys/boot/fdt/fdt_loader_cmd.c b/sys/boot/fdt/fdt_loader_cmd.c
index 0417c52..1d65fe7 100644
--- a/sys/boot/fdt/fdt_loader_cmd.c
+++ b/sys/boot/fdt/fdt_loader_cmd.c
@@ -63,12 +63,16 @@ __FBSDID("$FreeBSD$");
#define CMD_REQUIRES_BLOB 0x01
/* Location of FDT yet to be loaded. */
+/* This may be in read-only memory, so can't be manipulated directly. */
static struct fdt_header *fdt_to_load = NULL;
-/* Local copy of FDT on heap. */
+/* Location of FDT on heap. */
+/* This is the copy we actually manipulate. */
static struct fdt_header *fdtp = NULL;
/* Size of FDT blob */
static size_t fdtp_size = 0;
-/* Location of FDT in kernel or module */
+/* Location of FDT in kernel or module. */
+/* This won't be set if FDT is loaded from disk or memory. */
+/* If it is set, we'll update it when fdt_copy() gets called. */
static vm_offset_t fdtp_va = 0;
static int fdt_load_dtb(vm_offset_t va);
@@ -191,7 +195,6 @@ fdt_find_static_dtb()
fdt_start = (vm_offset_t)sym.st_value + offs;
free(strp);
}
- printf("fdt_start: 0x%08jX\n", (intmax_t)fdt_start);
return (fdt_start);
}
@@ -239,14 +242,19 @@ fdt_load_dtb(vm_offset_t va)
static int
fdt_load_dtb_addr(struct fdt_header *header)
{
- struct preloaded_file *bfp;
- bfp = mem_load_raw("dtb", "memory.dtb", header, fdt_totalsize(header));
- if (bfp == NULL) {
- command_errmsg = "unable to copy DTB into module directory";
+ // TODO: Verify that there really is an FDT at
+ // the specified location.
+ fdtp_size = fdt_totalsize(header);
+ free(fdtp);
+ if ((fdtp = malloc(fdtp_size)) == NULL) {
+ command_errmsg = "can't allocate memory for device tree copy";
return (1);
}
- return fdt_load_dtb(bfp->f_addr);
+
+ fdtp_va = 0; // Don't write this back into module or kernel.
+ bcopy(header, fdtp, fdtp_size);
+ return (0);
}
static int
@@ -339,7 +347,7 @@ _fdt_strtovect(char *str, void *cellbuf, int lim, unsigned char cellsize,
#define TMP_MAX_ETH 8
-void
+static void
fixup_ethernet(const char *env, char *ethstr, int *eth_no, int len)
{
char *end, *str;
@@ -376,7 +384,7 @@ fixup_ethernet(const char *env, char *ethstr, int *eth_no, int len)
*eth_no = n + 1;
}
-void
+static void
fixup_cpubusfreqs(unsigned long cpufreq, unsigned long busfreq)
{
int lo, o = 0, o2, maxo = 0, depth;
@@ -424,7 +432,7 @@ fixup_cpubusfreqs(unsigned long cpufreq, unsigned long busfreq)
}
}
-int
+static int
fdt_reg_valid(uint32_t *reg, int len, int addr_cells, int size_cells)
{
int cells_in_tuple, i, tuples, tuple_size;
@@ -456,7 +464,7 @@ fdt_reg_valid(uint32_t *reg, int len, int addr_cells, int size_cells)
return (0);
}
-void
+static void
fixup_memory(struct sys_info *si)
{
struct mem_region *curmr;
@@ -611,7 +619,7 @@ fixup_memory(struct sys_info *si)
free(sb);
}
-void
+static void
fixup_stdout(const char *env)
{
const char *str;
@@ -664,7 +672,7 @@ fixup_stdout(const char *env)
/*
* Locate the blob, fix it up and return its location.
*/
-static vm_offset_t
+static int
fdt_fixup(void)
{
const char *env;
@@ -692,7 +700,7 @@ fdt_fixup(void)
/* Value assigned to fixup-applied does not matter. */
if (fdt_getprop(fdtp, chosen, "fixup-applied", NULL))
- goto success;
+ return (1);
/* Acquire sys_info */
si = ub_get_sys_info();
@@ -735,15 +743,11 @@ fdt_fixup(void)
fixup_memory(si);
fdt_setprop(fdtp, chosen, "fixup-applied", NULL, 0);
-
-success:
- /* Overwrite the FDT with the fixed version. */
- COPYIN(fdtp, fdtp_va, fdtp_size);
- return (fdtp_va);
+ return (1);
}
/*
- * Copy DTB blob to specified location and its return size
+ * Copy DTB blob to specified location and return size
*/
int
fdt_copy(vm_offset_t va)
@@ -761,6 +765,11 @@ fdt_copy(vm_offset_t va)
if (fdt_fixup() == 0)
return (0);
+ if (fdtp_va != 0) {
+ /* Overwrite the FDT with the fixed version. */
+ /* XXX Is this really appropriate? */
+ COPYIN(fdtp, fdtp_va, fdtp_size);
+ }
COPYIN(fdtp, va, fdtp_size);
return (fdtp_size);
}
@@ -1334,8 +1343,6 @@ fdt_modprop(int nodeoff, char *propname, void *value, char mode)
else
sprintf(command_errbuf,
"Could not add/modify property!\n");
- } else {
- COPYIN(fdtp, fdtp_va, fdtp_size);
}
return (rv);
}
@@ -1520,7 +1527,6 @@ fdt_cmd_mkprop(int argc, char *argv[])
if (fdt_modprop(o, propname, value, 1))
return (CMD_ERROR);
- COPYIN(fdtp, fdtp_va, fdtp_size);
return (CMD_OK);
}
@@ -1557,8 +1563,6 @@ fdt_cmd_rm(int argc, char *argv[])
if (rv) {
sprintf(command_errbuf, "could not delete node");
return (CMD_ERROR);
- } else {
- COPYIN(fdtp, fdtp_va, fdtp_size);
}
return (CMD_OK);
}
@@ -1589,8 +1593,6 @@ fdt_cmd_mknode(int argc, char *argv[])
sprintf(command_errbuf,
"Could not add node!\n");
return (CMD_ERROR);
- } else {
- COPYIN(fdtp, fdtp_va, fdtp_size);
}
return (CMD_OK);
}
diff --git a/sys/cddl/compat/opensolaris/sys/time.h b/sys/cddl/compat/opensolaris/sys/time.h
index 8e8a99d..97c82fc 100644
--- a/sys/cddl/compat/opensolaris/sys/time.h
+++ b/sys/cddl/compat/opensolaris/sys/time.h
@@ -46,6 +46,9 @@ typedef longlong_t hrtime_t;
((ts)->tv_sec < INT64_MIN || (ts)->tv_sec > INT64_MAX)
#endif
+#define SEC_TO_TICK(sec) ((sec) * hz)
+#define NSEC_TO_TICK(usec) ((usec) / (NANOSEC / hz))
+
#ifdef _KERNEL
static __inline hrtime_t
gethrtime(void) {
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
index bc73c9d..92b7e06 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
@@ -22,6 +22,7 @@
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
+ * Copyright (c) 2013 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
*/
/*
@@ -141,6 +142,10 @@ uint_t zio_taskq_basedc = 80; /* base duty cycle */
boolean_t spa_create_process = B_TRUE; /* no process ==> no sysdc */
extern int zfs_sync_pass_deferred_free;
+#ifndef illumos
+extern void spa_deadman(void *arg);
+#endif
+
/*
* This (illegal) pool name is used when temporarily importing a spa_t in order
* to get the vdev stats associated with the imported devices.
@@ -6258,6 +6263,17 @@ spa_sync(spa_t *spa, uint64_t txg)
tx = dmu_tx_create_assigned(dp, txg);
+ spa->spa_sync_starttime = gethrtime();
+#ifdef illumos
+ VERIFY(cyclic_reprogram(spa->spa_deadman_cycid,
+ spa->spa_sync_starttime + spa->spa_deadman_synctime));
+#else /* FreeBSD */
+#ifdef _KERNEL
+ callout_reset(&spa->spa_deadman_cycid,
+ hz * spa->spa_deadman_synctime / NANOSEC, spa_deadman, spa);
+#endif
+#endif
+
/*
* If we are upgrading to SPA_VERSION_RAIDZ_DEFLATE this txg,
* set spa_deflate if we have no raid-z vdevs.
@@ -6386,6 +6402,14 @@ spa_sync(spa_t *spa, uint64_t txg)
}
dmu_tx_commit(tx);
+#ifdef illumos
+ VERIFY(cyclic_reprogram(spa->spa_deadman_cycid, CY_INFINITY));
+#else /* FreeBSD */
+#ifdef _KERNEL
+ callout_drain(&spa->spa_deadman_cycid);
+#endif
+#endif
+
/*
* Clear the dirty config list.
*/
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
index 606fd18..dc64682 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
@@ -22,10 +22,12 @@
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2013 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
*/
#include <sys/zfs_context.h>
#include <sys/spa_impl.h>
+#include <sys/spa_boot.h>
#include <sys/zio.h>
#include <sys/zio_checksum.h>
#include <sys/zio_compress.h>
@@ -253,6 +255,52 @@ TUNABLE_INT("vfs.zfs.recover", &zfs_recover);
SYSCTL_INT(_vfs_zfs, OID_AUTO, recover, CTLFLAG_RDTUN, &zfs_recover, 0,
"Try to recover from otherwise-fatal errors.");
+extern int zfs_txg_synctime_ms;
+
+/*
+ * Expiration time in units of zfs_txg_synctime_ms. This value has two
+ * meanings. First it is used to determine when the spa_deadman logic
+ * should fire. By default the spa_deadman will fire if spa_sync has
+ * not completed in 1000 * zfs_txg_synctime_ms (i.e. 1000 seconds).
+ * Secondly, the value determines if an I/O is considered "hung".
+ * Any I/O that has not completed in zfs_deadman_synctime is considered
+ * "hung" resulting in a system panic.
+ * 1000 zfs_txg_synctime_ms (i.e. 1000 seconds).
+ */
+uint64_t zfs_deadman_synctime = 1000ULL;
+TUNABLE_QUAD("vfs.zfs.deadman_synctime", &zfs_deadman_synctime);
+SYSCTL_UQUAD(_vfs_zfs, OID_AUTO, deadman_synctime, CTLFLAG_RDTUN,
+ &zfs_deadman_synctime, 0,
+ "Stalled ZFS I/O expiration time in units of vfs.zfs.txg_synctime_ms");
+
+/*
+ * Default value of -1 for zfs_deadman_enabled is resolved in
+ * zfs_deadman_init()
+ */
+int zfs_deadman_enabled = -1;
+TUNABLE_INT("vfs.zfs.deadman_enabled", &zfs_deadman_enabled);
+SYSCTL_INT(_vfs_zfs, OID_AUTO, deadman_enabled, CTLFLAG_RDTUN,
+ &zfs_deadman_enabled, 0, "Kernel panic on stalled ZFS I/O");
+
+#ifndef illumos
+#ifdef _KERNEL
+static void
+zfs_deadman_init()
+{
+ /*
+ * If we are not i386 or amd64 or in a virtual machine,
+ * disable ZFS deadman thread by default
+ */
+ if (zfs_deadman_enabled == -1) {
+#if defined(__amd64__) || defined(__i386__)
+ zfs_deadman_enabled = (vm_guest == VM_GUEST_NO) ? 1 : 0;
+#else
+ zfs_deadman_enabled = 0;
+#endif
+ }
+}
+#endif /* _KERNEL */
+#endif /* !illumos */
/*
* ==========================================================================
@@ -422,6 +470,23 @@ spa_lookup(const char *name)
}
/*
+ * Fires when spa_sync has not completed within zfs_deadman_synctime_ms.
+ * If the zfs_deadman_enabled flag is set then it inspects all vdev queues
+ * looking for potentially hung I/Os.
+ */
+void
+spa_deadman(void *arg)
+{
+ spa_t *spa = arg;
+
+ zfs_dbgmsg("slow spa_sync: started %llu seconds ago, calls %llu",
+ (gethrtime() - spa->spa_sync_starttime) / NANOSEC,
+ ++spa->spa_deadman_calls);
+ if (zfs_deadman_enabled)
+ vdev_deadman(spa->spa_root_vdev);
+}
+
+/*
* Create an uninitialized spa_t with the given name. Requires
* spa_namespace_lock. The caller must ensure that the spa_t doesn't already
* exist by calling spa_lookup() first.
@@ -431,6 +496,10 @@ spa_add(const char *name, nvlist_t *config, const char *altroot)
{
spa_t *spa;
spa_config_dirent_t *dp;
+#ifdef illumos
+ cyc_handler_t hdlr;
+ cyc_time_t when;
+#endif
ASSERT(MUTEX_HELD(&spa_namespace_lock));
@@ -462,6 +531,32 @@ spa_add(const char *name, nvlist_t *config, const char *altroot)
spa->spa_proc = &p0;
spa->spa_proc_state = SPA_PROC_NONE;
+#ifdef illumos
+ hdlr.cyh_func = spa_deadman;
+ hdlr.cyh_arg = spa;
+ hdlr.cyh_level = CY_LOW_LEVEL;
+#endif
+
+ spa->spa_deadman_synctime = zfs_deadman_synctime *
+ zfs_txg_synctime_ms * MICROSEC;
+
+#ifdef illumos
+ /*
+ * This determines how often we need to check for hung I/Os after
+ * the cyclic has already fired. Since checking for hung I/Os is
+ * an expensive operation we don't want to check too frequently.
+ * Instead wait for 5 synctimes before checking again.
+ */
+ when.cyt_interval = 5ULL * zfs_txg_synctime_ms * MICROSEC;
+ when.cyt_when = CY_INFINITY;
+ mutex_enter(&cpu_lock);
+ spa->spa_deadman_cycid = cyclic_add(&hdlr, &when);
+ mutex_exit(&cpu_lock);
+#else /* !illumos */
+#ifdef _KERNEL
+ callout_init(&spa->spa_deadman_cycid, CALLOUT_MPSAFE);
+#endif
+#endif
refcount_create(&spa->spa_refcount);
spa_config_lock_init(spa);
@@ -544,6 +639,18 @@ spa_remove(spa_t *spa)
nvlist_free(spa->spa_load_info);
spa_config_set(spa, NULL);
+#ifdef illumos
+ mutex_enter(&cpu_lock);
+ if (spa->spa_deadman_cycid != CYCLIC_NONE)
+ cyclic_remove(spa->spa_deadman_cycid);
+ mutex_exit(&cpu_lock);
+ spa->spa_deadman_cycid = CYCLIC_NONE;
+#else /* !illumos */
+#ifdef _KERNEL
+ callout_drain(&spa->spa_deadman_cycid);
+#endif
+#endif
+
refcount_destroy(&spa->spa_refcount);
spa_config_lock_destroy(spa);
@@ -1511,6 +1618,12 @@ spa_prev_software_version(spa_t *spa)
}
uint64_t
+spa_deadman_synctime(spa_t *spa)
+{
+ return (spa->spa_deadman_synctime);
+}
+
+uint64_t
dva_get_dsize_sync(spa_t *spa, const dva_t *dva)
{
uint64_t asize = DVA_GET_ASIZE(dva);
@@ -1605,7 +1718,9 @@ spa_init(int mode)
spa_mode_global = mode;
#ifdef illumos
-#ifndef _KERNEL
+#ifdef _KERNEL
+ spa_arch_init();
+#else
if (spa_mode_global != FREAD && dprintf_find_string("watch")) {
arc_procfd = open("/proc/self/ctl", O_WRONLY);
if (arc_procfd == -1) {
@@ -1629,6 +1744,11 @@ spa_init(int mode)
zpool_feature_init();
spa_config_load();
l2arc_start();
+#ifndef illumos
+#ifdef _KERNEL
+ zfs_deadman_init();
+#endif
+#endif /* !illumos */
}
void
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
index 1ee766a..de4bf4e 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
@@ -599,6 +599,7 @@ extern boolean_t spa_suspended(spa_t *spa);
extern uint64_t spa_bootfs(spa_t *spa);
extern uint64_t spa_delegation(spa_t *spa);
extern objset_t *spa_meta_objset(spa_t *spa);
+extern uint64_t spa_deadman_synctime(spa_t *spa);
/* Miscellaneous support routines */
extern void spa_activate_mos_feature(spa_t *spa, const char *feature);
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
index 1d3622f..8df5072 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_boot.h
@@ -23,6 +23,10 @@
* Use is subject to license terms.
*/
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
#ifndef _SYS_SPA_BOOT_H
#define _SYS_SPA_BOOT_H
@@ -35,6 +39,8 @@ extern "C" {
extern char *spa_get_bootprop(char *prop);
extern void spa_free_bootprop(char *prop);
+extern void spa_arch_init(void);
+
#ifdef __cplusplus
}
#endif
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
index ea9ae2e..e9526a2 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h
@@ -22,6 +22,7 @@
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 by Delphix. All rights reserved.
* Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2013 Martin Matuska <mm@FreeBSD.org>. All rights reserved.
*/
#ifndef _SYS_SPA_IMPL_H
@@ -230,6 +231,16 @@ struct spa {
uint64_t spa_feat_for_write_obj; /* required to write to pool */
uint64_t spa_feat_for_read_obj; /* required to read from pool */
uint64_t spa_feat_desc_obj; /* Feature descriptions */
+#ifdef illumos
+ cyclic_id_t spa_deadman_cycid; /* cyclic id */
+#else /* FreeBSD */
+#ifdef _KERNEL
+ struct callout spa_deadman_cycid; /* callout id */
+#endif
+#endif /* illumos */
+ uint64_t spa_deadman_calls; /* number of deadman calls */
+ uint64_t spa_sync_starttime; /* starting time fo spa_sync */
+ uint64_t spa_deadman_synctime; /* deadman expiration timer */
/*
* spa_refcnt & spa_config_lock must be the last elements
* because refcount_t changes size based on compilation options.
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
index a8788a8..d8785ea 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
@@ -80,6 +80,7 @@ extern void vdev_metaslab_fini(vdev_t *vd);
extern void vdev_metaslab_set_size(vdev_t *);
extern void vdev_expand(vdev_t *vd, uint64_t txg);
extern void vdev_split(vdev_t *vd);
+extern void vdev_deadman(vdev_t *vd);
extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs);
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
index 411ec91..be74c20 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h
@@ -104,6 +104,8 @@ struct vdev_queue {
avl_tree_t vq_read_tree;
avl_tree_t vq_write_tree;
avl_tree_t vq_pending_tree;
+ uint64_t vq_io_complete_ts;
+ uint64_t vq_io_delta_ts;
kmutex_t vq_lock;
};
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
index 0149680..b76349b 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h
@@ -22,6 +22,10 @@
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
+/*
+ * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
#ifndef _SYS_ZFS_CONTEXT_H
#define _SYS_ZFS_CONTEXT_H
@@ -88,6 +92,11 @@ extern "C" {
#include <sys/u8_textprep.h>
#include <sys/fm/util.h>
#include <sys/sunddi.h>
+#ifdef illumos
+#include <sys/cyclic.h>
+#else /* FreeBSD */
+#include <sys/callout.h>
+#endif
#include <machine/stdarg.h>
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
index 9e9ac34..5c333f7 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h
@@ -246,12 +246,24 @@ typedef struct zinject_record {
uint32_t zi_iotype;
int32_t zi_duration;
uint64_t zi_timer;
+ uint32_t zi_cmd;
+ uint32_t zi_pad;
} zinject_record_t;
#define ZINJECT_NULL 0x1
#define ZINJECT_FLUSH_ARC 0x2
#define ZINJECT_UNLOAD_SPA 0x4
+typedef enum zinject_type {
+ ZINJECT_UNINITIALIZED,
+ ZINJECT_DATA_FAULT,
+ ZINJECT_DEVICE_FAULT,
+ ZINJECT_LABEL_FAULT,
+ ZINJECT_IGNORED_WRITES,
+ ZINJECT_PANIC,
+ ZINJECT_DELAY_IO,
+} zinject_type_t;
+
typedef struct zfs_share {
uint64_t z_exportdata;
uint64_t z_sharedata;
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
index a58937f..cd50353 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
@@ -443,6 +443,7 @@ struct zio {
uint64_t io_offset;
uint64_t io_deadline;
+ uint64_t io_timestamp;
avl_node_t io_offset_node;
avl_node_t io_deadline_node;
avl_tree_t *io_vdev_tree;
@@ -596,6 +597,7 @@ extern int zio_handle_fault_injection(zio_t *zio, int error);
extern int zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error);
extern int zio_handle_label_injection(zio_t *zio, int error);
extern void zio_handle_ignored_writes(zio_t *zio);
+extern uint64_t zio_handle_io_delay(zio_t *zio);
/*
* Checksum ereport functions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
index 2d92975..17cb6c1 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c
@@ -3173,3 +3173,41 @@ vdev_split(vdev_t *vd)
}
vdev_propagate_state(cvd);
}
+
+void
+vdev_deadman(vdev_t *vd)
+{
+ for (int c = 0; c < vd->vdev_children; c++) {
+ vdev_t *cvd = vd->vdev_child[c];
+
+ vdev_deadman(cvd);
+ }
+
+ if (vd->vdev_ops->vdev_op_leaf) {
+ vdev_queue_t *vq = &vd->vdev_queue;
+
+ mutex_enter(&vq->vq_lock);
+ if (avl_numnodes(&vq->vq_pending_tree) > 0) {
+ spa_t *spa = vd->vdev_spa;
+ zio_t *fio;
+ uint64_t delta;
+
+ /*
+ * Look at the head of all the pending queues,
+ * if any I/O has been outstanding for longer than
+ * the spa_deadman_synctime we panic the system.
+ */
+ fio = avl_first(&vq->vq_pending_tree);
+ delta = ddi_get_lbolt64() - fio->io_timestamp;
+ if (delta > NSEC_TO_TICK(spa_deadman_synctime(spa))) {
+ zfs_dbgmsg("SLOW IO: zio timestamp %llu, "
+ "delta %llu, last io %llu",
+ fio->io_timestamp, delta,
+ vq->vq_io_complete_ts);
+ fm_panic("I/O to pool '%s' appears to be "
+ "hung.", spa_name(spa));
+ }
+ }
+ mutex_exit(&vq->vq_lock);
+ }
+}
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
index b44f3b2..8bde2eb 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c
@@ -23,6 +23,10 @@
* Use is subject to license terms.
*/
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
#include <sys/zfs_context.h>
#include <sys/vdev_impl.h>
#include <sys/zio.h>
@@ -315,6 +319,7 @@ again:
zio_buf_alloc(size), size, fio->io_type, ZIO_PRIORITY_AGG,
flags | ZIO_FLAG_DONT_CACHE | ZIO_FLAG_DONT_QUEUE,
vdev_queue_agg_io_done, NULL);
+ aio->io_timestamp = fio->io_timestamp;
nio = fio;
do {
@@ -386,7 +391,8 @@ vdev_queue_io(zio_t *zio)
mutex_enter(&vq->vq_lock);
- zio->io_deadline = (ddi_get_lbolt64() >> zfs_vdev_time_shift) +
+ zio->io_timestamp = ddi_get_lbolt64();
+ zio->io_deadline = (zio->io_timestamp >> zfs_vdev_time_shift) +
zio->io_priority;
vdev_queue_io_add(vq, zio);
@@ -411,10 +417,16 @@ vdev_queue_io_done(zio_t *zio)
{
vdev_queue_t *vq = &zio->io_vd->vdev_queue;
+ if (zio_injection_enabled)
+ delay(SEC_TO_TICK(zio_handle_io_delay(zio)));
+
mutex_enter(&vq->vq_lock);
avl_remove(&vq->vq_pending_tree, zio);
+ vq->vq_io_complete_ts = ddi_get_lbolt64();
+ vq->vq_io_delta_ts = vq->vq_io_complete_ts - zio->io_timestamp;
+
for (int i = 0; i < zfs_vdev_ramp_rate; i++) {
zio_t *nio = vdev_queue_io_to_issue(vq, zfs_vdev_max_pending);
if (nio == NULL)
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
index 9ae7d1f..a9d4ab4 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
/*
@@ -147,14 +148,8 @@ zio_handle_fault_injection(zio_t *zio, int error)
for (handler = list_head(&inject_handlers); handler != NULL;
handler = list_next(&inject_handlers, handler)) {
- /* Ignore errors not destined for this pool */
- if (zio->io_spa != handler->zi_spa)
- continue;
-
- /* Ignore device errors and panic injection */
- if (handler->zi_record.zi_guid != 0 ||
- handler->zi_record.zi_func[0] != '\0' ||
- handler->zi_record.zi_duration != 0)
+ if (zio->io_spa != handler->zi_spa ||
+ handler->zi_record.zi_cmd != ZINJECT_DATA_FAULT)
continue;
/* If this handler matches, return EIO */
@@ -197,10 +192,7 @@ zio_handle_label_injection(zio_t *zio, int error)
uint64_t start = handler->zi_record.zi_start;
uint64_t end = handler->zi_record.zi_end;
- /* Ignore device only faults or panic injection */
- if (handler->zi_record.zi_start == 0 ||
- handler->zi_record.zi_func[0] != '\0' ||
- handler->zi_record.zi_duration != 0)
+ if (handler->zi_record.zi_cmd != ZINJECT_LABEL_FAULT)
continue;
/*
@@ -246,13 +238,7 @@ zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error)
for (handler = list_head(&inject_handlers); handler != NULL;
handler = list_next(&inject_handlers, handler)) {
- /*
- * Ignore label specific faults, panic injection
- * or fake writes
- */
- if (handler->zi_record.zi_start != 0 ||
- handler->zi_record.zi_func[0] != '\0' ||
- handler->zi_record.zi_duration != 0)
+ if (handler->zi_record.zi_cmd != ZINJECT_DEVICE_FAULT)
continue;
if (vd->vdev_guid == handler->zi_record.zi_guid) {
@@ -316,10 +302,8 @@ zio_handle_ignored_writes(zio_t *zio)
handler = list_next(&inject_handlers, handler)) {
/* Ignore errors not destined for this pool */
- if (zio->io_spa != handler->zi_spa)
- continue;
-
- if (handler->zi_record.zi_duration == 0)
+ if (zio->io_spa != handler->zi_spa ||
+ handler->zi_record.zi_cmd != ZINJECT_IGNORED_WRITES)
continue;
/*
@@ -355,11 +339,8 @@ spa_handle_ignored_writes(spa_t *spa)
for (handler = list_head(&inject_handlers); handler != NULL;
handler = list_next(&inject_handlers, handler)) {
- /* Ignore errors not destined for this pool */
- if (spa != handler->zi_spa)
- continue;
-
- if (handler->zi_record.zi_duration == 0)
+ if (spa != handler->zi_spa ||
+ handler->zi_record.zi_cmd != ZINJECT_IGNORED_WRITES)
continue;
if (handler->zi_record.zi_duration > 0) {
@@ -379,6 +360,34 @@ spa_handle_ignored_writes(spa_t *spa)
rw_exit(&inject_lock);
}
+uint64_t
+zio_handle_io_delay(zio_t *zio)
+{
+ vdev_t *vd = zio->io_vd;
+ inject_handler_t *handler;
+ uint64_t seconds = 0;
+
+ if (zio_injection_enabled == 0)
+ return (0);
+
+ rw_enter(&inject_lock, RW_READER);
+
+ for (handler = list_head(&inject_handlers); handler != NULL;
+ handler = list_next(&inject_handlers, handler)) {
+
+ if (handler->zi_record.zi_cmd != ZINJECT_DELAY_IO)
+ continue;
+
+ if (vd->vdev_guid == handler->zi_record.zi_guid) {
+ seconds = handler->zi_record.zi_timer;
+ break;
+ }
+
+ }
+ rw_exit(&inject_lock);
+ return (seconds);
+}
+
/*
* Create a new handler for the given record. We add it to the list, adding
* a reference to the spa_t in the process. We increment zio_injection_enabled,
diff --git a/sys/conf/files b/sys/conf/files
index 322f9c4..627e7d6 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1124,7 +1124,7 @@ t4fw.fwo optional cxgbe \
no-implicit-rule \
clean "t4fw.fwo"
t4fw.fw optional cxgbe \
- dependency "$S/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu" \
+ dependency "$S/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu" \
compile-with "${NORMAL_FW}" \
no-obj no-implicit-rule \
clean "t4fw.fw"
diff --git a/sys/dev/ath/ath_hal/ah.h b/sys/dev/ath/ath_hal/ah.h
index ddc4b6a..0e3d5ab 100644
--- a/sys/dev/ath/ath_hal/ah.h
+++ b/sys/dev/ath/ath_hal/ah.h
@@ -1437,6 +1437,8 @@ struct ath_hal {
HAL_STATUS __ahdecl(*ah_setQuiet)(struct ath_hal *ah, uint32_t period,
uint32_t duration, uint32_t nextStart,
HAL_QUIET_FLAG flag);
+ void __ahdecl(*ah_setChainMasks)(struct ath_hal *,
+ uint32_t, uint32_t);
/* DFS functions */
void __ahdecl(*ah_enableDfs)(struct ath_hal *ah,
diff --git a/sys/dev/ath/ath_hal/ar5210/ar5210.h b/sys/dev/ath/ath_hal/ar5210/ar5210.h
index 2dad124..48ccc20 100644
--- a/sys/dev/ath/ath_hal/ar5210/ar5210.h
+++ b/sys/dev/ath/ath_hal/ar5210/ar5210.h
@@ -259,6 +259,7 @@ extern HAL_BOOL ar5210GetDiagState(struct ath_hal *ah, int request,
extern uint32_t ar5210Get11nExtBusy(struct ath_hal *);
extern HAL_BOOL ar5210GetMibCycleCounts(struct ath_hal *,
HAL_SURVEY_SAMPLE *);
+extern void ar5210SetChainMasks(struct ath_hal *, uint32_t, uint32_t);
extern void ar5210EnableDfs(struct ath_hal *, HAL_PHYERR_PARAM *);
extern void ar5210GetDfsThresh(struct ath_hal *, HAL_PHYERR_PARAM *);
extern void ar5210UpdateDiagReg(struct ath_hal *ah, uint32_t val);
diff --git a/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c b/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
index 495a3d0..3c0ed71 100644
--- a/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
+++ b/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c
@@ -137,6 +137,7 @@ static const struct ath_hal_private ar5210hal = {{
.ah_setCoverageClass = ar5210SetCoverageClass,
.ah_get11nExtBusy = ar5210Get11nExtBusy,
.ah_getMibCycleCounts = ar5210GetMibCycleCounts,
+ .ah_setChainMasks = ar5210SetChainMasks,
.ah_enableDfs = ar5210EnableDfs,
.ah_getDfsThresh = ar5210GetDfsThresh,
/* XXX procRadarEvent */
diff --git a/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c b/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
index bf4b8d0..8170880 100644
--- a/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
+++ b/sys/dev/ath/ath_hal/ar5210/ar5210_misc.c
@@ -671,6 +671,12 @@ ar5210GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
}
void
+ar5210SetChainMasks(struct ath_hal *ah, uint32_t txchainmask,
+ uint32_t rxchainmask)
+{
+}
+
+void
ar5210EnableDfs(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
{
}
diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211.h b/sys/dev/ath/ath_hal/ar5211/ar5211.h
index 6f813fb..c50531e 100644
--- a/sys/dev/ath/ath_hal/ar5211/ar5211.h
+++ b/sys/dev/ath/ath_hal/ar5211/ar5211.h
@@ -286,6 +286,8 @@ extern HAL_BOOL ar5211GetDiagState(struct ath_hal *ah, int request,
extern uint32_t ar5211Get11nExtBusy(struct ath_hal *);
extern HAL_BOOL ar5211GetMibCycleCounts(struct ath_hal *,
HAL_SURVEY_SAMPLE *);
+extern void ar5211SetChainMasks(struct ath_hal *ah, uint32_t, uint32_t);
+
extern void ar5211EnableDfs(struct ath_hal *, HAL_PHYERR_PARAM *);
extern void ar5211GetDfsThresh(struct ath_hal *, HAL_PHYERR_PARAM *);
diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c b/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
index 6f0379b..4549295 100644
--- a/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
+++ b/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c
@@ -137,6 +137,7 @@ static const struct ath_hal_private ar5211hal = {{
.ah_setCoverageClass = ar5211SetCoverageClass,
.ah_get11nExtBusy = ar5211Get11nExtBusy,
.ah_getMibCycleCounts = ar5211GetMibCycleCounts,
+ .ah_setChainMasks = ar5211SetChainMasks,
.ah_enableDfs = ar5211EnableDfs,
.ah_getDfsThresh = ar5211GetDfsThresh,
/* XXX procRadarEvent */
diff --git a/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c b/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
index 55f39e9..a1a5967 100644
--- a/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
+++ b/sys/dev/ath/ath_hal/ar5211/ar5211_misc.c
@@ -711,6 +711,12 @@ ar5211GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
}
void
+ar5211SetChainMasks(struct ath_hal *ah, uint32_t txchainmask,
+ uint32_t rxchainmask)
+{
+}
+
+void
ar5211EnableDfs(struct ath_hal *ah, HAL_PHYERR_PARAM *pe)
{
}
diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212.h b/sys/dev/ath/ath_hal/ar5212/ar5212.h
index d7063c4..0631432 100644
--- a/sys/dev/ath/ath_hal/ar5212/ar5212.h
+++ b/sys/dev/ath/ath_hal/ar5212/ar5212.h
@@ -513,6 +513,7 @@ extern HAL_STATUS ar5212SetQuiet(struct ath_hal *ah, uint32_t period,
uint32_t duration, uint32_t nextStart, HAL_QUIET_FLAG flag);
extern HAL_BOOL ar5212GetMibCycleCounts(struct ath_hal *,
HAL_SURVEY_SAMPLE *);
+extern void ar5212SetChainMasks(struct ath_hal *, uint32_t, uint32_t);
extern HAL_BOOL ar5212SetPowerMode(struct ath_hal *ah, HAL_POWER_MODE mode,
int setChip);
diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c b/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
index 1870f94..e0af27c 100644
--- a/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
+++ b/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c
@@ -134,6 +134,7 @@ static const struct ath_hal_private ar5212hal = {{
.ah_setCoverageClass = ar5212SetCoverageClass,
.ah_setQuiet = ar5212SetQuiet,
.ah_getMibCycleCounts = ar5212GetMibCycleCounts,
+ .ah_setChainMasks = ar5212SetChainMasks,
/* DFS Functions */
.ah_enableDfs = ar5212EnableDfs,
diff --git a/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c b/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
index 143090f..486de30 100644
--- a/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
+++ b/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c
@@ -1413,3 +1413,9 @@ ar5212GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
return (AH_FALSE);
}
+
+void
+ar5212SetChainMasks(struct ath_hal *ah, uint32_t tx_chainmask,
+ uint32_t rx_chainmask)
+{
+}
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416.h b/sys/dev/ath/ath_hal/ar5416/ar5416.h
index d570588..98dcf5e 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416.h
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416.h
@@ -239,6 +239,7 @@ extern HAL_BOOL ar5416SetDecompMask(struct ath_hal *, uint16_t, int);
extern void ar5416SetCoverageClass(struct ath_hal *, uint8_t, int);
extern HAL_BOOL ar5416GetMibCycleCounts(struct ath_hal *ah,
HAL_SURVEY_SAMPLE *hsample);
+extern void ar5416SetChainMasks(struct ath_hal *ah, uint32_t, uint32_t);
extern uint32_t ar5416Get11nExtBusy(struct ath_hal *ah);
extern void ar5416Set11nMac2040(struct ath_hal *ah, HAL_HT_MACMODE mode);
extern HAL_HT_RXCLEAR ar5416Get11nRxClear(struct ath_hal *ah);
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c b/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
index c26ca4b..9a0a479 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
@@ -150,6 +150,7 @@ ar5416InitState(struct ath_hal_5416 *ahp5416, uint16_t devid, HAL_SOFTC sc,
ah->ah_setCoverageClass = ar5416SetCoverageClass;
ah->ah_setQuiet = ar5416SetQuiet;
ah->ah_getMibCycleCounts = ar5416GetMibCycleCounts;
+ ah->ah_setChainMasks = ar5416SetChainMasks;
ah->ah_resetKeyCacheEntry = ar5416ResetKeyCacheEntry;
ah->ah_setKeyCacheEntry = ar5416SetKeyCacheEntry;
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c b/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
index 7b0e92b..6f47c5c 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c
@@ -256,6 +256,20 @@ ar5416GetMibCycleCounts(struct ath_hal *ah, HAL_SURVEY_SAMPLE *hsample)
}
/*
+ * Setup the TX/RX chainmasks - this needs to be done before a call
+ * to the reset method as it doesn't update the hardware.
+ */
+void
+ar5416SetChainMasks(struct ath_hal *ah, uint32_t tx_chainmask,
+ uint32_t rx_chainmask)
+{
+ HAL_CAPABILITIES *pCap = &AH_PRIVATE(ah)->ah_caps;
+
+ AH5416(ah)->ah_tx_chainmask = tx_chainmask & pCap->halTxChainMask;
+ AH5416(ah)->ah_rx_chainmask = rx_chainmask & pCap->halRxChainMask;
+}
+
+/*
* Return approximation of extension channel busy over an time interval
* 0% (clear) -> 100% (busy)
*
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c b/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
index 75df5e9..5f8f2ad 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c
@@ -44,7 +44,6 @@ static void ar5416InitBB(struct ath_hal *ah, const struct ieee80211_channel *);
static void ar5416InitIMR(struct ath_hal *ah, HAL_OPMODE opmode);
static void ar5416InitQoS(struct ath_hal *ah);
static void ar5416InitUserSettings(struct ath_hal *ah);
-static void ar5416UpdateChainMasks(struct ath_hal *ah, HAL_BOOL is_ht);
static void ar5416OverrideIni(struct ath_hal *ah, const struct ieee80211_channel *);
#if 0
@@ -210,11 +209,6 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMODE opmode,
__func__, OS_REG_READ(ah,AR_PHY_ADC_CTL));
/*
- * Setup ah_tx_chainmask / ah_rx_chainmask before we fiddle
- * with enabling the TX/RX radio chains.
- */
- ar5416UpdateChainMasks(ah, IEEE80211_IS_CHAN_HT(chan));
- /*
* This routine swaps the analog chains - it should be done
* before any radio register twiddling is done.
*/
@@ -1464,31 +1458,6 @@ ar5416RestoreChainMask(struct ath_hal *ah)
}
}
-/*
- * Update the chainmask based on the current channel configuration.
- *
- * XXX ath9k checks bluetooth co-existence here
- * XXX ath9k checks whether the current state is "off-channel".
- * XXX ath9k sticks the hardware into 1x1 mode for legacy;
- * we're going to leave multi-RX on for multi-path cancellation.
- */
-static void
-ar5416UpdateChainMasks(struct ath_hal *ah, HAL_BOOL is_ht)
-{
- struct ath_hal_private *ahpriv = AH_PRIVATE(ah);
- HAL_CAPABILITIES *pCap = &ahpriv->ah_caps;
-
- if (is_ht) {
- AH5416(ah)->ah_tx_chainmask = pCap->halTxChainMask;
- } else {
- AH5416(ah)->ah_tx_chainmask = 1;
- }
- AH5416(ah)->ah_rx_chainmask = pCap->halRxChainMask;
- HALDEBUG(ah, HAL_DEBUG_RESET, "TX chainmask: 0x%x; RX chainmask: 0x%x\n",
- AH5416(ah)->ah_tx_chainmask,
- AH5416(ah)->ah_rx_chainmask);
-}
-
void
ar5416InitPLL(struct ath_hal *ah, const struct ieee80211_channel *chan)
{
diff --git a/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c b/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
index 945c766..118a43b 100644
--- a/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
+++ b/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
@@ -701,20 +701,6 @@ ar5416Set11nRateScenario(struct ath_hal *ah, struct ath_desc *ds,
(void)nseries;
/*
- * XXX since the upper layers doesn't know the current chainmask
- * XXX setup, just override its decisions here.
- * XXX The upper layers need to be taught this!
- */
- if (series[0].Tries != 0)
- series[0].ChSel = AH5416(ah)->ah_tx_chainmask;
- if (series[1].Tries != 0)
- series[1].ChSel = AH5416(ah)->ah_tx_chainmask;
- if (series[2].Tries != 0)
- series[2].ChSel = AH5416(ah)->ah_tx_chainmask;
- if (series[3].Tries != 0)
- series[3].ChSel = AH5416(ah)->ah_tx_chainmask;
-
- /*
* Only one of RTS and CTS enable must be set.
* If a frame has both set, just do RTS protection -
* that's enough to satisfy legacy protection.
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 2ea3909..a614d6f 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -1476,6 +1476,26 @@ ath_reset_keycache(struct ath_softc *sc)
ieee80211_crypto_reload_keys(ic);
}
+/*
+ * Fetch the current chainmask configuration based on the current
+ * operating channel and options.
+ */
+static void
+ath_update_chainmasks(struct ath_softc *sc, struct ieee80211_channel *chan)
+{
+
+ /*
+ * Set TX chainmask to the currently configured chainmask;
+ * the TX chainmask depends upon the current operating mode.
+ */
+ sc->sc_cur_rxchainmask = sc->sc_rxchainmask;
+ if (IEEE80211_IS_CHAN_HT(chan)) {
+ sc->sc_cur_txchainmask = sc->sc_txchainmask;
+ } else {
+ sc->sc_cur_txchainmask = 1;
+ }
+}
+
void
ath_resume(struct ath_softc *sc)
{
@@ -1494,6 +1514,10 @@ ath_resume(struct ath_softc *sc)
* Must reset the chip before we reload the
* keycache as we were powered down on suspend.
*/
+ ath_update_chainmasks(sc,
+ sc->sc_curchan != NULL ? sc->sc_curchan : ic->ic_curchan);
+ ath_hal_setchainmasks(sc->sc_ah, sc->sc_cur_txchainmask,
+ sc->sc_cur_rxchainmask);
ath_hal_reset(ah, sc->sc_opmode,
sc->sc_curchan != NULL ? sc->sc_curchan : ic->ic_curchan,
AH_FALSE, &status);
@@ -1935,6 +1959,9 @@ ath_init(void *arg)
* and then setup of the interrupt mask.
*/
ath_settkipmic(sc);
+ ath_update_chainmasks(sc, ic->ic_curchan);
+ ath_hal_setchainmasks(sc->sc_ah, sc->sc_cur_txchainmask,
+ sc->sc_cur_rxchainmask);
if (!ath_hal_reset(ah, sc->sc_opmode, ic->ic_curchan, AH_FALSE, &status)) {
if_printf(ifp, "unable to reset hardware; hal status %u\n",
status);
@@ -2250,6 +2277,9 @@ ath_reset(struct ifnet *ifp, ATH_RESET_TYPE reset_type)
ath_settkipmic(sc); /* configure TKIP MIC handling */
/* NB: indicate channel change so we do a full reset */
+ ath_update_chainmasks(sc, ic->ic_curchan);
+ ath_hal_setchainmasks(sc->sc_ah, sc->sc_cur_txchainmask,
+ sc->sc_cur_rxchainmask);
if (!ath_hal_reset(ah, sc->sc_opmode, ic->ic_curchan, AH_TRUE, &status))
if_printf(ifp, "%s: unable to reset hardware; hal status %u\n",
__func__, status);
@@ -4440,6 +4470,9 @@ ath_chan_set(struct ath_softc *sc, struct ieee80211_channel *chan)
*/
ath_draintxq(sc, ATH_RESET_FULL); /* clear pending tx frames */
+ ath_update_chainmasks(sc, chan);
+ ath_hal_setchainmasks(sc->sc_ah, sc->sc_cur_txchainmask,
+ sc->sc_cur_rxchainmask);
if (!ath_hal_reset(ah, sc->sc_opmode, chan, AH_TRUE, &status)) {
if_printf(ifp, "%s: unable to reset "
"channel %u (%u MHz, flags 0x%x), hal status %u\n",
diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c
index 7245d06..c0e72ac 100644
--- a/sys/dev/ath/if_ath_tx_ht.c
+++ b/sys/dev/ath/if_ath_tx_ht.c
@@ -499,20 +499,13 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni,
series[i].Tries = rc[i].tries;
/*
- * XXX this isn't strictly correct - sc_txchainmask
- * XXX isn't the currently active chainmask;
- * XXX it's the interface chainmask at startup.
- * XXX It's overridden in the HAL rate scenario function
- * XXX for now.
- */
- /*
* XXX TODO: When the NIC is capable of three stream TX,
* transmit 1/2 stream rates on two streams.
*
* This reduces the power consumption of the NIC and
* keeps it within the PCIe slot power limits.
*/
- series[i].ChSel = sc->sc_txchainmask;
+ series[i].ChSel = sc->sc_cur_txchainmask;
if (flags & (HAL_TXDESC_RTSENA | HAL_TXDESC_CTSENA))
series[i].RateFlags |= HAL_RATESERIES_RTS_CTS;
@@ -542,6 +535,14 @@ ath_rateseries_setup(struct ath_softc *sc, struct ieee80211_node *ni,
ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20)
series[i].RateFlags |= HAL_RATESERIES_HALFGI;
+ /*
+ * XXX TODO: STBC if it's possible
+ */
+
+ /*
+ * XXX TODO: LDPC if it's possible
+ */
+
series[i].Rate = rt->info[rc[i].rix].rateCode;
series[i].RateIndex = rc[i].rix;
series[i].tx_power_cap = 0x3f; /* XXX for now */
diff --git a/sys/dev/ath/if_athvar.h b/sys/dev/ath/if_athvar.h
index 1b6e160..e8fdeff 100644
--- a/sys/dev/ath/if_athvar.h
+++ b/sys/dev/ath/if_athvar.h
@@ -715,8 +715,10 @@ struct ath_softc {
u_int32_t sc_avgtsfdeltap;/* TDMA slot adjust (+) */
u_int32_t sc_avgtsfdeltam;/* TDMA slot adjust (-) */
uint16_t *sc_eepromdata; /* Local eeprom data, if AR9100 */
- int sc_txchainmask; /* currently configured TX chainmask */
- int sc_rxchainmask; /* currently configured RX chainmask */
+ int sc_txchainmask; /* hardware TX chainmask */
+ int sc_rxchainmask; /* hardware RX chainmask */
+ int sc_cur_txchainmask; /* currently configured TX chainmask */
+ int sc_cur_rxchainmask; /* currently configured RX chainmask */
int sc_rts_aggr_limit; /* TX limit on RTS aggregates */
int sc_aggr_limit; /* TX limit on all aggregates */
int sc_delim_min_pad; /* Minimum delimiter count */
@@ -1334,6 +1336,8 @@ void ath_intr(void *);
((*(_ah)->ah_getMibCycleCounts)((_ah), (_sample)))
#define ath_hal_get_chan_ext_busy(_ah) \
((*(_ah)->ah_get11nExtBusy)((_ah)))
+#define ath_hal_setchainmasks(_ah, _txchainmask, _rxchainmask) \
+ ((*(_ah)->ah_setChainMasks)((_ah), (_txchainmask), (_rxchainmask)))
#define ath_hal_spectral_supported(_ah) \
(ath_hal_getcapability(_ah, HAL_CAP_SPECTRAL_SCAN, 0, NULL) == HAL_OK)
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c
index 9aef998..5895d7f 100644
--- a/sys/dev/ciss/ciss.c
+++ b/sys/dev/ciss/ciss.c
@@ -282,6 +282,7 @@ TUNABLE_INT("hw.ciss.force_interrupt", &ciss_force_interrupt);
#define CISS_BOARD_SA5 1
#define CISS_BOARD_SA5B 2
#define CISS_BOARD_NOMSI (1<<4)
+#define CISS_BOARD_SIMPLE (1<<5)
static struct
{
@@ -290,7 +291,8 @@ static struct
int flags;
char *desc;
} ciss_vendor_data[] = {
- { 0x0e11, 0x4070, CISS_BOARD_SA5|CISS_BOARD_NOMSI, "Compaq Smart Array 5300" },
+ { 0x0e11, 0x4070, CISS_BOARD_SA5|CISS_BOARD_NOMSI|CISS_BOARD_SIMPLE,
+ "Compaq Smart Array 5300" },
{ 0x0e11, 0x4080, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "Compaq Smart Array 5i" },
{ 0x0e11, 0x4082, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "Compaq Smart Array 532" },
{ 0x0e11, 0x4083, CISS_BOARD_SA5B|CISS_BOARD_NOMSI, "HP Smart Array 5312" },
@@ -682,8 +684,15 @@ ciss_init_pci(struct ciss_softc *sc)
supported_methods = CISS_TRANSPORT_METHOD_PERF;
break;
default:
- supported_methods = sc->ciss_cfg->supported_methods;
- break;
+ /*
+ * Override the capabilities of the BOARD and specify SIMPLE
+ * MODE
+ */
+ if (ciss_vendor_data[i].flags & CISS_BOARD_SIMPLE)
+ supported_methods = CISS_TRANSPORT_METHOD_SIMPLE;
+ else
+ supported_methods = sc->ciss_cfg->supported_methods;
+ break;
}
setup:
diff --git a/sys/dev/cxgbe/adapter.h b/sys/dev/cxgbe/adapter.h
index 55cfa52..eee9e1a 100644
--- a/sys/dev/cxgbe/adapter.h
+++ b/sys/dev/cxgbe/adapter.h
@@ -600,7 +600,7 @@ struct adapter {
struct callout sfl_callout;
an_handler_t an_handler __aligned(CACHE_LINE_SIZE);
- fw_msg_handler_t fw_msg_handler[4]; /* NUM_FW6_TYPES */
+ fw_msg_handler_t fw_msg_handler[5]; /* NUM_FW6_TYPES */
cpl_handler_t cpl_handler[0xef]; /* NUM_CPL_CMDS */
#ifdef INVARIANTS
diff --git a/sys/dev/cxgbe/common/common.h b/sys/dev/cxgbe/common/common.h
index 54647ea..abc9422 100644
--- a/sys/dev/cxgbe/common/common.h
+++ b/sys/dev/cxgbe/common/common.h
@@ -64,8 +64,9 @@ enum {
};
#define FW_VERSION_MAJOR 1
-#define FW_VERSION_MINOR 6
-#define FW_VERSION_MICRO 2
+#define FW_VERSION_MINOR 8
+#define FW_VERSION_MICRO 4
+#define FW_VERSION_BUILD 0
struct port_stats {
u64 tx_octets; /* total # of octets in good frames */
@@ -546,7 +547,4 @@ int t4_sge_ctxt_rd_bd(struct adapter *adap, unsigned int cid, enum ctxt_type cty
int t4_sge_ctxt_flush(struct adapter *adap, unsigned int mbox);
int t4_handle_fw_rpl(struct adapter *adap, const __be64 *rpl);
int t4_fwaddrspace_write(struct adapter *adap, unsigned int mbox, u32 addr, u32 val);
-int t4_config_scheduler(struct adapter *adapter, int mode, int level, int pktsize,
- int sched_class, int port, int rate, int unit,
- int weight, int minrate, int maxrate);
#endif /* __CHELSIO_COMMON_H */
diff --git a/sys/dev/cxgbe/common/t4_hw.c b/sys/dev/cxgbe/common/t4_hw.c
index 099f5a9..3aea091 100644
--- a/sys/dev/cxgbe/common/t4_hw.c
+++ b/sys/dev/cxgbe/common/t4_hw.c
@@ -3909,13 +3909,13 @@ int t4_i2c_rd(struct adapter *adap, unsigned int mbox, unsigned int port_id,
F_FW_CMD_READ |
V_FW_LDST_CMD_ADDRSPACE(FW_LDST_ADDRSPC_FUNC_I2C));
c.cycles_to_len16 = htonl(FW_LEN16(c));
- c.u.i2c.pid_pkd = V_FW_LDST_CMD_PID(port_id);
- c.u.i2c.base = dev_addr;
- c.u.i2c.boffset = offset;
+ c.u.i2c_deprecated.pid_pkd = V_FW_LDST_CMD_PID(port_id);
+ c.u.i2c_deprecated.base = dev_addr;
+ c.u.i2c_deprecated.boffset = offset;
ret = t4_wr_mbox(adap, mbox, &c, sizeof(c), &c);
if (ret == 0)
- *valp = c.u.i2c.data;
+ *valp = c.u.i2c_deprecated.data;
return ret;
}
@@ -4593,7 +4593,7 @@ int t4_alloc_vi_func(struct adapter *adap, unsigned int mbox,
}
}
if (rss_size)
- *rss_size = G_FW_VI_CMD_RSSSIZE(ntohs(c.rsssize_pkd));
+ *rss_size = G_FW_VI_CMD_RSSSIZE(ntohs(c.norss_rsssize));
return G_FW_VI_CMD_VIID(htons(c.type_to_viid));
}
@@ -5304,43 +5304,3 @@ int __devinit t4_port_init(struct port_info *p, int mbox, int pf, int vf)
return 0;
}
-
-int t4_config_scheduler(struct adapter *adapter, int mode, int level,
- int pktsize, int sched_class, int port, int unit,
- int rate, int weight, int minrate, int maxrate)
-{
- struct fw_sched_cmd cmd, rpl;
-
- if (rate < 0 || unit < 0)
- return -EINVAL;
-
- memset(&cmd, 0, sizeof(cmd));
- cmd.op_to_write = cpu_to_be32(V_FW_CMD_OP(FW_SCHED_CMD) |
- F_FW_CMD_REQUEST | F_FW_CMD_WRITE);
- cmd.retval_len16 = cpu_to_be32(V_FW_CMD_LEN16(sizeof(cmd)/16));
-
- cmd.u.params.sc = 1;
- cmd.u.params.level = level;
- cmd.u.params.mode = mode;
- cmd.u.params.ch = port;
- cmd.u.params.cl = sched_class;
- cmd.u.params.rate = rate;
- cmd.u.params.unit = unit;
-
- switch (level) {
- case FW_SCHED_PARAMS_LEVEL_CH_WRR:
- case FW_SCHED_PARAMS_LEVEL_CL_WRR:
- cmd.u.params.weight = cpu_to_be16(weight);
- break;
- case FW_SCHED_PARAMS_LEVEL_CH_RL:
- case FW_SCHED_PARAMS_LEVEL_CL_RL:
- cmd.u.params.max = cpu_to_be32(maxrate);
- cmd.u.params.min = cpu_to_be32(minrate);
- cmd.u.params.pktsize = cpu_to_be16(pktsize);
- break;
- default:
- return -EINVAL;
- }
-
- return t4_wr_mbox_meat(adapter, adapter->mbox, &cmd, sizeof(cmd), &rpl, 1);
-}
diff --git a/sys/dev/cxgbe/common/t4_msg.h b/sys/dev/cxgbe/common/t4_msg.h
index 92f760b..2111d30 100644
--- a/sys/dev/cxgbe/common/t4_msg.h
+++ b/sys/dev/cxgbe/common/t4_msg.h
@@ -2224,6 +2224,15 @@ struct cpl_sge_egr_update {
#define V_EGR_QID(x) ((x) << S_EGR_QID)
#define G_EGR_QID(x) (((x) >> S_EGR_QID) & M_EGR_QID)
+/* cpl_fw*.type values */
+enum {
+ FW_TYPE_CMD_RPL = 0,
+ FW_TYPE_WR_RPL = 1,
+ FW_TYPE_CQE = 2,
+ FW_TYPE_OFLD_CONNECTION_WR_RPL = 3,
+ FW_TYPE_RSSCPL = 4,
+};
+
struct cpl_fw2_pld {
RSS_HDR
u8 opcode;
@@ -2292,10 +2301,11 @@ struct cpl_fw6_msg {
/* cpl_fw6_msg.type values */
enum {
- FW6_TYPE_CMD_RPL = 0,
- FW6_TYPE_WR_RPL = 1,
- FW6_TYPE_CQE = 2,
- FW6_TYPE_OFLD_CONNECTION_WR_RPL = 3,
+ FW6_TYPE_CMD_RPL = FW_TYPE_CMD_RPL,
+ FW6_TYPE_WR_RPL = FW_TYPE_WR_RPL,
+ FW6_TYPE_CQE = FW_TYPE_CQE,
+ FW6_TYPE_OFLD_CONNECTION_WR_RPL = FW_TYPE_OFLD_CONNECTION_WR_RPL,
+ FW6_TYPE_RSSCPL = FW_TYPE_RSSCPL,
NUM_FW6_TYPES
};
diff --git a/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu b/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu
deleted file mode 100644
index fe4f035..0000000
--- a/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu
+++ /dev/null
@@ -1,7600 +0,0 @@
-/*-
- * Copyright (c) 2012 Chelsio Communications, Inc.
- * 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.
- * 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
- */
-begin-base64 644 t4fw
-AAADSwEGAgAAAQkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAzADPwNGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IE1vbiBBdWcgMTMgMTM6
-MjU6MDYgUERUIDIwMTIgb24gY2xlb3BhdHJhLmFzaWNkZXNpZ25lcnMuY29tOi9ob21lL2ZlbGl4
-L3cvdDRmdy1yZWxlYXNlKSwgVmVyc2lvbiBUNHh4IDAxLjA2LjAyLjAwAAAAAAAAAAAAAGp9qktg
-ALwAH/zhQIAAAAHhAHtwAAAQAB//9fjhAGAQ4QGUcCAAAADhAZwE4QB5AAACAEDhAHmAAAYAQAAC
-AAoABgAK4QB5BAAKAACAAAEA4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAAAAAAgADhAHsAAABA
-AeEAe5wAAEAAREREQuAAAADjAARjREREQOMACAAgAAJcAAAAAB//ixAAAAAAH/+LFAAAAAAf/4sY
-AAAAAB//ixwf/8AAAAAAAAAAAADAABH/0BL/0JIQEf/QEv/QkhAR/9AB9DER/9CQEBH/zyIK/5IQ
-AOQxAAUxAQIAEv/MAucxAhYAEf/LgRABAV/AIQIRAckREf/IEv/IkhAR/8gS/8iSEGAADxH/wxL/
-x5IQEf/DEv/GkhCBEBH/xcAgkhES/8SSEsAgkhMS/8OSEIIQAvJQZS/3Ef/Bxy+SEBH/wJIQEv/A
-E//AkyDAMpMhE/+/kyKCIhL/vhP/vpMgIyIhFP+9BDMByTgT/7yDMAODFAgzERT/uqQzkyET/66T
-ImAACMIwkyET/6uTIhL/tZAgkCGQIpAjkCSQJZAmkCeQKJApkCqQK5AskC2QLpAvICYQICYRgiIS
-/6jAMC03MC03NC03OC03PCM9AXIz7QACABL/pSMKAC83AC83EC83IC83MCM9AXIz7QACABL/msAw
-KDcwKDc0KDc4KDc8Iz0BcjPtAwIAEv+YwDAnNwAnNxAnNyAnNzAjPQFyM+0DAgAS/5IV/5MW/5PA
-MNcgBWYBYAAeAAAAAAAAAAAAAAAABDYFAAIA0w/TDwUzDG47FAdHFAcEQ3Yx5gQ2BQUzDG877QAC
-ABL/hBX/giMKAAInAgcEQwQ+BQUzDAdHFG878AMCABL/fskugyCEIYUivCJ0Ow6GULRVljC0M3Qz
-9GP/5gBlP+JlX98S/3LAMgMuBQMCABL/acAwKDdAKDdEKDdIKDdMIz0BcjPtAwIAAAIAEv9sLScA
-wBEBSTEASDEBAgDAABT/aATSMRX/Z5RQFP9nBNMxFf9nlFAU/2YE1DEV/2aUUBT/ZgTVMRX/ZZRQ
-EP9lAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA
-H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+F4OMACfgf/4XgH/+F4OMAD9gf
-/4XgH/+F4OMAD9gf/4XgH/+HFOMAD9gf/4cUH/+LEOMAEQwf/4sQH/+gNOMAFQgf/6A0H/+gNOMA
-Kiwf/8AAH//29eMAKiwgAAAAIAABauMAYSQgAAF4IAABfOMAYpAgAAF8IAABheMAYpQgAAGYIAAB
-nOMAYqAgAAGcIAABpeMAYqQgAAG4IAABvOMAYrAgAAG8IAABxeMAYrQgAAHYIAAB2OMAYsAgAAHc
-IAAB4uMAYsAgAAH4IAAB+OMAYsggAAH8IAAB/OMAYsggAAIYIAACGOMAYsggAAIcIAACHOMAYsgg
-AAI4IAACOOMAYsggAAI8IAACPOMAYsggAAJYIAACWOMAYsggAAJcIAACYuMAYsggAAJ4IAACeOMA
-YtAgAAJ8IAACguMAYtAgAAKYIAEewOMAYtggAoAAIAKTUOMBfwAgApNQIAKTUOMBklAgApNQIAYW
-sOMBklAgBhawIAYbIOMFFbAgBoAAIAaNQOMFGiAgBo1AIAdScOMFJ2AgB1JwIAdTPOMF7JAgCMAA
-IAjAAOMF7VwgCMAAIAjAAOMF7VwgCMAAIAkyJeMF7VwAAAAAAAAAAAAAAAAgAA8nIAAPGCAAEz0g
-AA8YIAASqCAADxggAA/RIAASQiAAEcIgAA8YIAARbSAAERwgABCxIAAPBSAAEFwgAA8YIAAPGCAA
-DxggAA/yAAAAACAAHk4gACCkIAAglSAAIIUgACB1IAAfpyAAH5ggAB47IAAeOyAAHjsgAB47IAAe
-OyAAHjsgAB47IAAeOyAAHjsgAB47IAAe+CAAHukgAB47IAAeOyAAHjsgAB47IAAeOyAAHjsgAB47
-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
-H//ziB//84gf//OIH//ziB//7zAf//G0H//wYB//8GAf//BgIAXwAAAAAAAAAAAAAAAAAAAAAAAg
-BfJoIAXyaAAAAAAAAAAAAAAAAAAAAAAgAQdgIAXwAB//8rQf//K0H//ytB//8rQf//K0H//ytAAA
-AAAf/+84AAAAAAAAAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAAAAAAEAAAAAAAAAIGAAAAAAAAQBQAA
-AAAAAAQAAAAAAAAAAAAAAAAAAAAAgQAAAAAAABgFAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAQAAAAAAAACgQAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgCgAR8XcT8XfTDwPmMQECABbxdRfxdndrBpBgtGZ3Y/hU
-DRVVlXsPFABj//kAAABsEAYpIAUqIAf4YKQVoBtFAPsgCt1hqgEAiyIuIBQc8WjxcjwN4AeVAAym
-EaxmLWKe96AKW+IAnQAtYp3r1AAGilGAACnCrmSRFS3CrWTRD6TuDg5HLiQU9cALpdIAnQAf8Vku
-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
-+kBoHaALRQBb/6VlrwGPEI/zLiEJDw9D5O4RD/7CgAD/xgAPcB8FAA/uAv7ABhWv+9YAK3wY6iQA
-CWAEgABb/xRj/2NsEAgbm3ObEPhACBWgCQUAmRKZE5MU5BYFKVAEgAD0IMYV4AwlAOYWByxGAoAA
-/QYADDANJQDoFgEo2ASAAFv/lNEPAGwQBMAg0Q8AbBAGlRCWESwgO4Yn4xYCI9kBAAD6IEgVr8gF
-APTEABXj7AEA6FUBD3cCgAD/QABFMA0VAPtFABWgAKIALCA7sd2xzCwkO45r5egIBXhBAADojEAv
-0ASAAPngBuKiAJ0AiaHpTzYE/tmAAO9EDA1IBIAA6SYADeAEgAAMBIoJAIgMAIqfsY6jiaEjogIO
-/ggPmQwppgHupgMl2EEAAO/rB3ngBIAALDwB7KYCIg5DAACOEC8hIoURGps0JCEHiRIjIQn6QPAV
-6kQBAOmSACojAoAABDMCJCEk+yAEBLC7EQDqmood2oKAAPsmAAzzhQEA65p3HEICgAAIRAIYmyQK
-mQKZcIwgnnWTcxKagJR0lXbi/wIOZgKAAO92AiaQEQAADCwCnHHrABUDqMEAAAUAigjYAph+0Q8A
-/+8ADT/8kgAgAzGmIAMxyCADMp0gAzNRIAMz0SADNE4gAzS7IAM1XSADVIIgA1RyIANUeiADVIIg
-A1RyIANUciADVHIgA1R6IANUgiADVIIgA1RyIANUciADVNQgA1U0IANU1CADVNQgA1U0IANVNCAD
-VTQgA1TUIANU1CADVNQgA1U0IANVNCADVeEgA1bbIANW5SADVeEgA1bbIANW2yADVtsgA1blIANV
-4SADVeEgA1bbIANW2wMPCBKDjpOSAAAAAAAAAAAgA4RZIAOFdCADhFkgA4RZIAOFdCADhXQgA4V0
-IAOEWSADhFkgA4RZIAOFdCADhXQgA4ZFIAOGxSADhz4gA4d5IAOHjSADiE0gA4jLIAOI3iADiUog
-A4l5IAOJngAAAAAgA5ETIAOSYCADj+QgA5AHIAOQ+yADj8QgA4/cIAOSfSADktggA5ZNIAOVDSAD
-lUcgA5NpIAOT2yADlEkgA5SIIAOUwCADlb0gA5W1IAOVrSADlXEgA5VpAAAAAAAAAAABEBgBAAEA
-AAAAAAAAAAAAIAPaSCAD2kggA9hbIAPaSCAD2FsgA9okIAPZ/SAD2FsgA9kxIAPYWyAD2FsgA9ko
-IAPYWyAD2kggA9hbIAPYWyAD2kggA9hkAAAAAAAAAAADAQACAAAAAAAAAAAAAAAAIAReXSAEXSgg
-BF0tIAReXSAEXSggBF0oIARdKCAEXS0gBF5dIAReXSAEXSggBF0oIARliiAEZbggBGc/IARliiAE
-ZzcgBGcdIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZwggBGbzIARl
-iiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGbI
-IARliiAEZq0gBGatIARliiAEZYogBGaNIARliiAEZq0gBGWKIARliiAEZYogBGWKIARliiAEZYog
-BGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAEZYogBGWKIARliiAE
-ZYogBGWKIARliiAEZm0AAAAAAAAAAAAAAAAgBKxIIASsSCAEq1ogBKxIIASlpCAErD4gBKwYIASl
-pCAEpaQgBKWkIASlpCAEpaQgBKs6IASsSCAEpaQgBKs6IASsSAAAAAAAAAAAAAAAACAEviQgBLtB
-IAS/QCAEvuwgBL6eIAS+diAEvmsgBL4kIAS74gAAAAAAAAAAAAAAAAEQGAEAAgAAARAYAQACAAAg
-BQU2IAUFCyAFA3MgBQTTIAUE0yAFBNMgBQNzIAUE0yAFA3MgBQS0IAUDcyAFA3MgBQS0IAUE0wAA
-AAAAAAAAIAUo0CAFJKQgBSikIAUoeCAFKEwgBSTLIAUkyyAFJOIgBSgzIAUlFyAFJQMgBSTLIAUl
-FyAFJMsgBSTLIAUkyyAFKNAAAAAAAAAAAAAAAAAAAAAAIAWECCAFfGAgBXwQIAV4yAAAAAAAAAAA
-AAAAACAFfEogBXxGIAV8RiAFfEYgBXxKIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYg
-BXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAF
-fEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8
-RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxG
-IAV8RiAFfEYgBXxGIAV8RiAFfEogBXxGIAV8RiAFfEYgBXxKIAV8RiAFfEYgBXxGIAV8SiAFfEYg
-BXxGIAV8RiAFfEogBXxGIAV8RiAFfEYgBXxKIAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8RiAF
-fEogBXxGIAV8RiAFfEYgBXxKIAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8RiAFfEogBXxGIAV8
-RiAFfEYgBXxKIAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8RiAFfEogBXxGIAV8RiAFfEYgBXxK
-IAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8RiAFfEogBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYg
-BXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8SiAF
-fEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8
-RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxG
-IAV8RiAFfEYgBXxGIAV8RiAFfEYgBXxGIAV8SiAFfEYgBXxGIAV8RiAFfEogBXxGIAV8RiAFfEYg
-BXxKAAAAAAAAAAAAAAAAIAV8niAFfYsgBX84IAV/KiAFfxUgBX8HIAV+8iAFfuQgBX7PIAV+wiAF
-fq8gBX6iIAV+jyAFfoIgBX5vIAV8kCAFflwgBX5PIAV+PCAFfi8gBX4bIAV+ESAFfgAgBX32IAV9
-5SAFfJAgBXyQIAV8kCAFfJAgBXyQIAV8kCAFfdggBXy3IAV8kCAFfJAgBXyQIAV9uyAFfaIgBX2Z
-IAV9fCAFfJAgBX1pIAV9TyAFfTwgBX0iIAV9DyAFfPcgBXzkIAV80QAAAAAAAAAAAAAAACAFhGEg
-BYS2IAWF0iAFhaogBYWjIAWFnCAFhZUgBYWOIAWFhyAFhYAgBYV5IAWFbyAFhWUgBYVHIAWEySAF
-hE4gBYTAIAWEawAAAAAAAAAAIAXawCAF2CQgBdaQIAXU3CAF0cwgBc8sIAXRsAAAAABSVgAAAAAA
-AEG9zWUAAAAAY29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBmb3VuZCBhZGRpdGlvbmFsIGNvbmZp
-Z3VyYXRpb24gYWZ0ZXIgW2ZpbmldCgAAZmNvZQAAAAB2bmljX2lkAHZsYW4AAAAAdG9zAGV0aGVy
-dHlwZQAAAG1hY21hdGNoAAAAAG1wc2hpdHR5cGUAAGZyYWdtZW50YXRpb24AAABiYXNpY3ZpcnR1
-YWwAAAAAc3lubWFwZW4AAAAAc3luNHR1cGVuaXB2NgAAAHN5bjJ0dXBlbmlwdjYAAABzeW40dHVw
-ZW5pcHY0AAAAc3luMnR1cGVuaXB2NAAAAG9mZG1hcGVuAAAAAHRubG1hcGVuAAAAAHRubGFsbGxr
-cAAAAGhhc2h0b2VwbGl0egAAAAB0cF9waW8AAHRwX3RtX3BpbwAAADAAAABuaWNfdm0AAG5pY191
-bQAAbmljX3VtX2lzZ2wAb2ZsZAAAAAByZGRwAAAAAHJkbWFjAAAAaXNjc2lfaW5pdGlhdG9yX3Bk
-dQBpc2NzaV90YXJnZXRfcGR1AAAAAGlzY3NpX2luaXRpYXRvcl9mb2ZsZAAAAGlzY3NpX3Rhcmdl
-dF9mb2ZsZAAAZmNvZV9pbml0aWF0b3IAAGZjb2VfdGFyZ2V0AHBwcABkY2J4AAAAACACkHBuc3Rh
-Y2tfbmwydCBbJXVdLCBmb2lzY3NpX250Y2IgWyV1XSwgcmMgWyV1XQoAAAAABAAAAAQAADB4AAAw
-WAAAMEIAACAGAfAgBegwIAYB4CAF6EAgBehUIAXnZCAF6PwgBecAAAECAwAAAAAgA65sIAOt8CAE
-uEgAAAAAIAOt6CADreAgA63YAAAAAGOCU2MAAAAAAAAAAAAAAABBQkNERUZHSElKS0xNTk9QUVJT
-VFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQAAAAAAAAAAAAAA
-AAAAAAsAAAAgApCwCAAAACACkLwIAAAAIAKQyAoAAAAgApDUDAAAACACkOASAAAAIAKQ8A0AAAAg
-ApEEDgAAACACkRQTAAAAIAKRJAoAAAAgApE4DgAAACACkUQYAAAAIAKRVA0AAAAgApFwDgAAACAC
-kYAQAAAAIAKRkBIAAAAgApGkDgAAACACkbgQAAAAIAKRyBEAAAAgApHcCgAAACACkfALAAAAIAKR
-/A0AAAAgApIIFAAAACACkhgKAAAAIAKSMA8AAAAgApI8BgAAACACkkwGAAAAIAKSVAYAAAAgApJc
-BgAAACACkmQGAAAAIAKSbAkAAAAgApJ0BgAAACACkoAEAAAAIAKSiAYAAAAgApKQCwAAACACkpgL
-AAAAIAKSpAQAAAAgApKIBAAAACACkrAJAAAAIAKSuAkAAAAgApLEAAAAAAAAAAANAAAAIAKS0AoA
-AAAgApLgBgAAACACkuwCAAAAIAKS9AMAAAAgApCsAQAAACACkvgAAAAAAAAAAP///////wAAAAdD
-AAAAAAD/////////////////////AAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAAAAAAAADAgEA
-AAAAAAAAAAAAAAAAAAAABQAAAAMAAAABAAAAAiAF3swgBd6EIAXdfCAF3DwgBdv8IAXb0CAF3CQA
-AAAAAAACAAAABAAAAAgATkEAAFYwAABWMQAAVjIAAFYzAABWNAAAVjUAAFY2AABWNwAAVjgAAFY5
-AABWQQAAVkIAAFZDAABWRAAAVkUAAFZGAABhbGwAKgAAAG5vbmUAAAAAMHgAAHBvcnQAAAAAcHJv
-dG9jb2wAAAAAZ2xvYmFsAABmdW5jdGlvbgAAAABmaW5pAAAAAHJlZwBmaWx0ZXJNb2RlAAByc3Nf
-Z2xiX2NvbmZpZ19tb2RlAHJzc19nbGJfY29uZmlnX29wdGlvbnMAAHNnZV90aW1lcl92YWx1ZQB0
-cF9wbXJ4AHRwX3BtcnhfcGFnZXNpemUAAAAAdHBfcG10eAB0cF9wbXR4X3BhZ2VzaXplAAAAAG10
-dXMAAAAAbnZmAHd4X2NhcHMAcl9jYXBzAABuaXFmbGludAAAAABuZXEAbmV0aGN0cmwAAAAAbnZp
-AG5leGFjdGYAY21hc2sAAABwbWFzawAAAG5ldGhvZmxkAAAAAG5yb3V0ZQAAbmNsaXAAAABuZmls
-dGVyAG5zZXJ2ZXIAbmhhc2gAAAB0cF9sMnQAAHRwX2RkcAAAdHBfZGRwX2lzY3NpAAAAAHRwX3N0
-YWcAdHBfcGJsAAB0cF9ycQAAAGlzY3NpX250YXNrAGlzY3NpX25zZXNzAGlzY3NpX25jb25uX3Bl
-cl9zZXNzaW9uAGlzY3NpX25pbml0aWF0b3JfaW5zdGFuY2UAAABpc2NzaV9tYXhfc2dlAAAAcHBt
-X21heF96b25lcwAAAHBwbV96b25lX3JhbmdlMABwcG1fem9uZV9yYW5nZTEAcHBtX3pvbmVfcmFu
-Z2UyAHBwbV96b25lX3JhbmdlMwBmY29lX25mY2YAAABmY29lX252bnAAAABmY29lX25zc24AAABk
-Y2IAYmdfbWVtAABscGJrX21lbQAAAABod20AbHdtAGR3bQB2ZXJzaW9uAGNoZWNrc3VtAAAAAENo
-ZWxzaW9fRk9pU0NTSQAwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoAAAAAMGIA
-AFllcwBTZXNzaW9uVHlwZQBPRk1hcmtlcgAAAABJRk1hcmtlcgAAAABEYXRhRGlnZXN0AABIZWFk
-ZXJEaWdlc3QAAAAARXJyb3JSZWNvdmVyeUxldmVsAABJbW1lZGlhdGVEYXRhAAAARGF0YVBEVUlu
-T3JkZXIAAERhdGFTZXF1ZW5jZUluT3JkZXIASW5pdGlhbFIyVAAATWF4Q29ubmVjdGlvbnMAAE1h
-eFJlY3ZEYXRhU2VnbWVudExlbmd0aAAAAABJbml0aWF0b3JOYW1lAAAASW5pdGlhdG9yQWxpYXMA
-AERlZmF1bHRUaW1lMldhaXQAAAAARGVmYXVsdFRpbWUyUmV0YWluAABNYXhCdXJzdExlbmd0aAAA
-Rmlyc3RCdXJzdExlbmd0aAAAAABNYXhPdXRzdGFuZGluZ1IyVAAAAFRhcmdldE5hbWUAAFRhcmdl
-dEFsaWFzAFRhcmdldEFkZHJlc3MAAABUYXJnZXRQb3J0YWxHcm91cFRhZwAAAABBdXRoTWV0aG9k
-AABTZW5kVGFyZ2V0cz1BbGwAQ0hBUF9BAABDSEFQX0kAAENIQVBfQwAAQ0hBUF9OAABDSEFQX1IA
-AERpc2NvdmVyeQAAAE5vcm1hbAAATm9uZQAAAABDUkMzMkMAAENSQzMyQyxOb25lAE5vbmUsQ1JD
-MzJDAENIQVAAAAAAQ0hBUCxOb25lAAAATm9uZSxDSEFQAAAATm90VW5kZXJzdG9vZAAAAElycmVs
-ZXZhbnQAAFJlamVjdAAATm8AADUAAAAAAAAMAAAAAAEAAXwADAEAAAAAEAAAABQgBhHgAAADFQ5A
-AAAf/AAAH/wAAB//oDgf/6A4IAYbICAGH1AgB1NAIAdTQCAHwAAgCBBAIAhAACAIwAAgCQMAH/+P
-rB//kWABAAAAKAAAAOAAAAAgCQLAAAD//wD///8AIAAAIAjAkCAIwPAgBhsgH/zeAB//kfAIAAAA
-BAAACIEAAAAqAAAAIAKmnCAJBLAgCMGQH/+PnCAJBhAgCMIgIAjCgCAJBmAAmJaAAACAACACtHD/
-//f/AAQAACAJByAgCQawH/+PDCAJBwAgBhtgA//QAAAQAgAAQAAAAFAH/wDAAAAgCQeg//9AACAJ
-A8AAAA//IAKNEAAACAYAAAgAIAkH4CACrpQAD//wAAAf/iAIwvAgCMMwIAjDcNdqpHjox7dWJCBw
-28G9zu71fA+vR4fGKqgwRhP9RpUBaYCY2ItE96///1uxiVzXvmuQESL9mHGTpnlDjkm0CCH2HiVi
-wECzQCZeWlHptseq1i8QXQJEFFPYoeaB59P7yCHhzebDNwfW9NUNh0VaFO2p4+kF/O+j+GdvAtmN
-KkyK//o5Qodx9oFtnWEi/eU4DKS+6kRL3s+p9rtLYL6/vHAom37G6qEn+tTvMIUEiB0F2dTQOebb
-meUfonz4xKxWZfQpIkRDKv+Xq5Qjp/yToDllW1nDjwzMkv/v9H2FhF3Rb6h+T/4s5uCjAUMUTggR
-ofdTfoK9OvI1KtfSu+uG05EgAotwIAKIoCACjHAgAowAIAKQgCACi1AgCMPQIAjEED/////P////
-IAKLfCAJCVBnRSMB782riZi63P4QMlR2IAkJcCAJCZAgCQmwIAkJ0CAJCfAgApCoIAKKwCACjCwg
-AotsIAjEUCAJChDAAAAAIAkKUAAAIAAgCQqgH/+PECAJCsAgCQtAIAkK8CAJC6AgCQvQIAjEgCAI
-xOAgCMSwIALVfCACq3wgAqisAADAACAJCIAgCQjgIAkIQCAIxSAf/4+oIAjFQCAGF7QgCQxAIAkM
-sCAIxWDhAAAAIAjGUCACixAgCMbAIAjG4CAIx3AgCMcQIAjHQCAJBRAgCQVwIAkM4BoAAAAgCQQA
-IAkEUCAFWmQAD0JAIAKkECAIyIAgAotoIAKQgCACikQgCMkQIAjI4B//jxQgCMlAIAjJsCAIymAE
-AQAIIAjKICAIytAgCMqgIAjLACAJDXAgCQ2gIAjJ4FMAAAAgCMtAIAjLsCACi9AgCMvgIAkNQCAI
-zCAgCMxgIAjMwCAIzPAgCMyQIAjNICAIzWAgCM2wIAjN8CAGGygKAAAAIAMW8B//jfQgBhkwAA/8
-ACAIzxBVAAAAIAjPoCAI0EAAADAAAAAP/h//j6QAAAwg8AAAACAI0HAgAzjEAABAAB//kBAf/4tg
-IAKLMCAI0MAgCNEQH/+PACAI0dAgCQ5wIAjRcCADJdggCNIwIAjSoCAI0vAgCQ8AIAjTMCAI06Ag
-CQ9AIAkQgCAI1AAf/4+YIAjUcCAGHlAgCNTwIAYeECAJENAXkAAAIAYWwH////8gAoAAH/+PuCYA
-AADAAAABIAjWkCAI1sAgCNbgIAjXEIAAAAAgCNVQFLAAAAAAUACAAAAEIAM2uB//jSggCNYQFaAA
-AAAAj/4gCNZAFqAAACMoFQAgoAAAP/AAACOgAAAD/wAfIAAAACAGHhogCNWAIAjVwCAI11D//wAA
-EAAAACAI16AgCNgADgAAACAI2CAgAzcwIAjYQCAI2JAgCNrQH/+P2CAI2iAgCNqAIAjY8CAI2WAg
-AoncIAjZwOEBjgAAAMggIAkREAABkQwgCRFgIAkRkOECFgDhAhoA///I////F////x//AAAQAAAC
-GRwAAhl8AAIZnB//j7T///H/AAIZAAACGqQAAhooAAIaqAACGjQAAhq0AAIaMAACGrAgCNswAADE
-AP//8//hAg4AAAAThyACgCAgAoBQIAKAgCAI24AAAMRFAADIAAAAJxAgCNtQQAAAAB3///9iAAAA
-AADoACAI2+AgCNwgIAjbsAAADAAAABgAAAIQNCAEhgAAAMQwIAkR4CAJEbDhAF4AAAJJ7wAAzAAg
-AoCwH/+LgCAI3FAgCNzgIAjcgCAI3LD//7//IAjdUB//kFgf/4v0AB6EgAABhqD/4XuAAAST4P/7
-bCAgCN2AIAjd8CAI3iAgCN5QIAjegCAI3rAgCN8QIAje4OD//gAAAhAIIAjfYCAJEuAgCRMQIAkT
-QCAJE3AAABAQAABQEOECGAAAAH/9AAAQEeECFwThAhcAAAAMCf8AAP8AAAwOAAAMDAAADAvf////
-AAAMCgAAwBAAAmJaAADDMCACgMAQEAAAIBAAAAAQB2D/7/ifHv4AAOECGAzwAMNwH/+L8AAIAAAg
-AoDwAAIQ4OECEgAAgAAAAAASAAACFQAAABOIAAAgAR//jmAdzWUA7////yACgSAAAMNQ9////yAC
-gUCAf////4B//7//////P///AAehIP/AAD8gCN+QAAAXcCAJE8AgCROgIAOYeCAJE/AgCRQQIAYZ
-FB//j6AgCN/AH/+PLCAI3+AgCOAAIAjgMB//jhThAH4AH/+PPAAA8/8EAAAAH/+SABQAAAAgA5+0
-H/+cACAI4NCD/7cAg/+2ICAJFIAf/5AYH/+dKDAAABAgCRTAIAkVIB//jRwgCRVQ4QH+ACIiIiIf
-/56kIAjhIAAADLwAAIkGIAjhUOAACSQAnAAAIAjhcCAI4cAgCOHgAAIEwOEAjgAAAJaAAACWQCAG
-GzAAAJagAACWYOECACwAAgAA4QB6AAAB4ADhAZIAAAHjAB//j7wgCOIwIAjiYAAAE9wf/51AH/+d
-5AAP//8gBh3QAABgACAGHdoAABPKAACD/yACgYAIUAEAAMAABB//nqggBfCwIAPDmOEBlgAf/40s
-H/+PsCAF8HTerb7/GsAAACAGHNgAAP/qIAYd4AAACBQAAIgAABAAAB//jjwgA9gYOAAAADAAAHQf
-/4PwIAKBkCAI4pAwAAAIMAAADDQAAAjQAAAAAACJFDsAAAg0kAAAADAAAP8H//8FXUqAIAPdwAAY
-AAAAOAAAIAkVoAYAAAAgA+pw+AAAAAH//+cAAcAAIAAAgAQAEAAf/46EH/+NYB//jqThAZoA4QGa
-QOEBmjzhAZo44QGaNOEBmjAf/46cIAkV8CAI44AgCOOwIAkWgAMAAACDAAAAIAkXACAJF3CAAAAD
-gAAAAv/8//8AAQAA4QEOAAAAEHAf/OIEH/+MwB//jUAgBAKQIAkaYCAJGBAgCRhQIAkaACAJGjAg
-CRiAIAkYwCAJGPAgCRkwIAkZYCAJGaAgCRfg//AAAB//j2wf/51QIAQR4CAJG2AgCRuQIAkbACAJ
-GqAAACMoH/+OHAAA/4AgCOPw//v//+EB4sAAAPgAAAIBDAACAQiP////AADwAOEBmAAgCORAIAjk
-kCAI5MAgCOUA4QDeAAACAwgAAgIA///wAOEA7gAf/4/E//9//wAA4AAAAPwAAAIDBAABERwAAREY
-ABAIAIAACAAAAgEEH/+PIP//wAAAAP/+AAAlgAACAwD8/4Dv4P/iwCAJG+AgCRwQIAkcMCAJG8AA
-AP/zIAjlUCAJHFAgCOVwIAkckAAAKjAAAP/4AAD/8QAA/48AAFK1AABICgAAj4IAAI+GAAA4AAAA
-j4oAAOM/AACDriAJHHAgCOWQ///PvwAAEEAgAoHgIAjlwCAJHLAAAP/7IAKB8B3/8O/+AAAAAF/2
-pwCyN8cAAAoAIAjmAP//3///9///IAkUMCAJFFAAABkAIAKCICAI5qAgCOZwIAkc4AACFgh/P///
-AAD5/wAA/z8AAP7/AAD/wCAJHTAgCOYwIAkd4CAJHZAf/5HU4AAGAAAAgMIAAP4AIARuzCAI5xAA
-ACEAIAR3CCAGF9AgBhfgIAYX8CAGGAAgBhgQIAYYICAJEgAgCRJAAAGQ+CAJErAgBhawIAjnQOEC
-FiQBMPhAGwAAAAADAAIgCR5AIAjnwCAI5/AAJiWgAmJaAAX14QAgCR7AIAkegCAI53AgCOgQH/+f
-PCAI6GAgCOigIAjo0CAI6RAgCOlAIAjpcCAJHwAgCR9AIAkfgCAI6cAgCR/gIAjpkB//nOwgCSAQ
-IAKDMCAI6vAQAAUN7gAAAAHAgAAJAAAAAACCACAI6gAAAIMAIAjqUCAI6qAQAAcCqqqqqszMzMz/
-AP8A8PDw8CAI7DAABQACIAjskCAI7LAAAPz/IAjs0CACg4AgA6xUIAOpoCADq8ggCSDwAP/AABIA
-AAAgBMjAIAkhkCAJIVAgCO0AIAjtYCAJIdAA///8AAAQNv//7/8gAoOwH/+dNCAD5ygAAAhQIAKD
-uDIAAAAAAAhAAP//+gAAgAXerb7vgYAAAAAAg/0wAAAcMAAABDAAABQAAP/v//3////+//8gAoPA
-AP/wAAAoAAAgCO2wMAAAADAAADQAAIABIAKEAAAAgAIf/OB0EAAFEJkAAAA0AAAAIAkjsCAI7fAA
-GQAAIAjuQCACjRgAABshfwAAAP8AAAAgCO5wIAjvcCAI76AgCO9AIAju0CAI7/AgCPBgIAkjACAC
-irAgCSMgIAkjYCAJIjAgCSKQAACABzOQAAAgCPCwIAjxAAABkawgCPFgIAYbUAsAAAAgBV8wIAjy
-ACAI8jAgCPJgIAkkACAJJKAgCSTwIAklYCAD7wQf/454IAKNIAAPAAAgA+/UH/+QeCAETbR8AP8P
-H/+Q4OEALgDhAJYA4QCaAAAACf8AALAAIAKEUOEADgARAAAAH/+PHOEAEgAgCPMAIAkmYAABlI8A
-AZTP///v+CAChHAf/42wIAKHYB//jzgAAknwH/+NgB//jBAgAogwIAj0EB//j2AgCPVAAD///x//
-jBgAAP/3AAD//QAA/9UAAOqXwgAADgXcAQAD/wAAIAj1oCAI9eAgCPYwIAj2cCAI9sAgCPcAH/zi
-CAPoAADgAAkc/f//0OECAAQf/42Y4QICAOECggAABAXu4QIBBOEB4gAf/49UH/+OkB//ktgAAJxA
-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
-KYAA8uFSDaC5lQAYST5yixgUST0WST6kJHlLCQZGCoZgCmAAyVPGKtEPGEZvqCiIgPhgJhWgAgUA
-0Q/HL9EPAGwQBOYkAAIBaYAAizAZSTH8kmAFoP31APrwAAVwOBUA+UGSDaACBQAJqQqJkAqQAMYq
-0Q9lX9PHL9EPAAAAZELLK2AhKmAgCLsRC6oC+mAmFaACBQDRD2RC2ypgdv1AG/xiAJ0A2aD4YCYV
-4AIFANEPZE+7LGANZMMC8mAmFaACBQDRD2RPqC1gDWTTBfJgJhWgAgUA0Q9kT5UuYA1k4q/yYCYV
-oAIFANEPAAAAAABkT30vYA1k8rHyYCYVoAIFANEPZE9qKGAN6WIOJBa5gACwmvpgJhWgAgUA0Q9k
-T1ArYA1kss3yYCYVoAIFANEPZE89LGAN6WESJhY5gACwnfxgJhXgAgUA0Q9kTyMuYA1k4r7yYCYV
-oAIFANEPZE8QiMePxqj/sP+fMdEPZE8BiWeJnimRIpkx0Q9kTvOKxpox0Q9kQdssYGArYGEIzBEM
-uwL6YCYV4AIFANEPZE7RLWBUC4tH/WAMK+IAnQDH7/5gJhWgAgUA0Q9kTrSPZ4/+j/2fMdEPZE6n
-KcKOKMKNqYiwiJgx0Q9kTpYqwo2aMdEPZE6MLcKMK8KLrbuwu5sx0Q9kTnsuwoueMdEPZE5xj2eP
-/ijyEI//qP+w/58x0Q9kTl2IZ4iOiI+YMdEPZE5QiWeJnoqciZuqmbCZmTHRD2ROPYpniq6Kq5ox
-0Q9kTjCLZ4u+jL6Lvay7sLubMdEPZE4djGeMzo3KjMmtzLDMnDHRD2ROCo1njd6N2Z0x0Q9kTf2O
-Z47uj+iO56/usO6eMdEPZE3qj2eP/o/3nzHRD2RN3YhniI6JhoiFqYiwiJgx0Q9kTcqJZ4meiZWZ
-MdEPZE29imeKriuhKSqhKKuqsKqaMdEPZE2oi2eLviuxKJsx0Q9kTZqMZ4zOLcEnLMEmrcywzJwx
-0Q9kTYWNZ43eLdEmnTHRD2RNd45nju4v4SUu4SSv7rDunjHRD2RNYo9nj/4v8SSfMdEPZE1UiGeI
-jimBIyiBIqmIsIiYMdEP2mBYDoYpYAwImRH5RgAM8IoFAAqZAvhgJhXgAgUA0Q+KMfrEBh2oqh0A
-+sQmHaACBQDRD4sx+swmHei7HQD6zAYd4AIFANEPAIkxDwIAaJAB3ZDtZHYrUASAAFreVcAg0Q8A
-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
-8tUSmAAAAAAAAAAAAAAAAP//AAUABgAHAAgACQAKAAsADAANAA4ADwAQ////////AAoAFACMAIIA
-ZABaAKAAlgB4AG4AUABGADwAMgAoAB4ACgTOBJIJzgmSArIEVgTiBKYDtgQaB7IJVgZeAnYJ4gmm
-B04COgi2CRoIFgYiAsYEagCWA3oBcgd2AL4D3gT2BLoEQgOiAmIHOgYOAIIDygQuAG4AWgMqATYB
-6gM+B8YJagFKBxIFlgh6BsIB/gZyAooDUgXmBb4I3gGaB9oJ9gm6CX4HnglCCKIJBgFeB2ICTgcm
-AxYBIgWCCGYFqgjKCS4IjgEOBW4FWgVGBtYIKgY2AhIBwgbqCD4A5gaGAtoEfgKeBAYGSgImCAID
-ZgCqA44F+gBGAdYG/gauBdIBhgeKCPIDAghSAPoFMgGuANID8gfuADIGmgLuBR4AHgUKAAAJxAmI
-BNgEnAeoCUwJ2AmcCKwJEAK8BGABaAdsBOwEsAJYBzADwAQkAyABLAe8CWAFjAhwBmgCgAW0CNQJ
-7AmwCTgImAdYAkQBGAV4CMAJJAVkBVAIIAYsBuAINALQBHQGQAIcAKADhAHMBvQBfAeACEgA8ADI
-A+gGkALkBQAExASIAqgETAOsBBAGVAJsB0QCMAgMBhgAjANwALQD1AQ4A5gGBAB4AGQAUAHgAzQB
-QAcIBrgB9ANIBdwBkAfQCXQHlAj8AVQHHAMMCFwFoAiEAQQFPAbMAggBuADcBnwClAP8B/gDXAXw
-ADwGpAXICOgC+AUoAaQH5AAoBRQAFAAABMkEjQnJCY0CrQRRBN0EoQOxBBUHrQlRBlkCcQndCaEH
-SQI1CLEJFQgRBh0CwQRlAJEDdQFtB3EAuQPZBPEEtQQ9A50CXQc1BgkAfQPFBCkAaQBVAyUBMQHl
-AzkHwQllAUUHDQWRCHUGvQH5Bm0ChQNNBeEFuQjZAZUH1QnxCbUJeQeZCT0InQkBAVkHXQJJByED
-EQEdBX0IYQWlCMUJKQiJAQkFaQVVBUEG0QglBjECDQG9BuUIOQDhBoEC1QR5ApkEAQZFAiEH/QNh
-AKUDiQX1AEEB0Qb5BqkFzQGBB4UI7QL9CE0A9QUtAakAzQPtB+kALQaVAukFGQAZBQUAAAm/CYME
-0wSXB6MJRwnTCZcIpwkLArcEWwFjB2cE5wSrAlMHKwO7BB8DGwEnB7cJWwWHCGsGYwJ7Ba8Izwnn
-CasJMwiTB1MCPwETBXMIuwkfBV8FSwgbBicG2wgvAssEbwY7AhcAmwN/AccG7wF3B3sIQwDrAMMD
-4waLAt8E+wS/BIMCowRHA6cECwZPAmcHPwIrCAcGEwCHA2sArwPPBDMDkwX/AHMAXwBLAdsDLwE7
-BwMGswHvA0MF1wGLB8sJbwePCPcBTwcXAwcIVwWbCH8A/wU3BscCAwGzANcGdwKPA/cH8wNXBesA
-NwafBcMI4wLzBSMBnwffACMFDwAAAAoAjABuAJYAeAA8AFAAoACCAGQAMgBGAFoAKAAeABQAAACH
-AGkAkQBzADcASwCbAH0AXwAtAEEAVQAjABkAACACjiQgBwz4IAKOKCAHErggAo40IAcSaCACjkgg
-BxG8IAKOYCAHEHwgAo5wIAcQVCACjnggBxAsIAKOjCAHEAQgAo6UIAcP3CACjqggBxNsIAKOsCAH
-DLggAo60IAcMgCACjrwgBwxIIAKOxCAHDBAgAo7QIAcL2CACjtQgBwugIAKO4CAHC2ggAo7kIAcL
-MCACjuwgBwr4IAKO9CAHCQwgAo78IAcKwCACjwggBwqIIAKPECAHClAgAo8YIAcKGCACjyAgBwng
-IAKPKCAHCaggAo38IAcHMCACjzAgBwb4IAKPOCAHBsAgAo9AIAcGiCACj1AgBwZQIAKPWCAHBhgg
-Ao9gIAcF4CACj2ggBwW4IAKPdCAHBZAgAo+AIAcFYCACj5ggBwU4IAKPtCAHBRAgAo/EIAcE6CAC
-j9QgBwTAIAKP5CAHBJggAo/0IAcEcCACkAQgBwRIIAKQFCAHBCAgApAgIAcD+CACkCwgBwPQIAKQ
-OCAHArggApA8IAcCiCACkEQgBwJYIAKQUCAHAiggApBUIAcB+CACkFggBwHIIAKQXCAHAaAgApBk
-IAcBeCACjgggBxWwIAKOECAHFNwgAo30IAcUJCACjhwgBxN0AAAQISBCMGNAhFClYMZw54EIkSmh
-SrFrwYzRreHO8e8SMQIQMnMiUlK1QpRy92LWkzmDGLN7o1rTvcOc8//j3iRiNEMEIBQBZOZ0x0Sk
-VIWlarVLhSiVCeXu9c/FrNWNNlMmchYRBjB212b2VpVGtLdbp3qXGYc499/n/tedx7xIxFjlaIZ4
-pwhAGGEoAjgjyczZ7emO+a+JSJlpqQq5K1r1StR6t2qWGnEKUDozKhLb/cvc+7/rnpt5i1i7O6sa
-bKZ8h0zkXMUsIjwDDGAcQe2u/Y/N7N3NrSq9C41onUl+l262XtVO9D4TLjIeUQ5w/5/vvt/dz/y/
-G686n1mPeJGIgamxyqHr0QzBLfFO4W8QgAChMMIg41AEQCVwRmBng7mTmKP7s9rDPdMc43/zXgKx
-EpAi8zLSQjVSFGJ3cla16qXLlaiFifVu5U/VLMUNNOIkwxSgBIF0ZmRHVCREBafbt/qHmZe451/3
-fscd1zwm0zbyBpEWsGZXdnZGFVY02UzJbfkO6S+ZyInpuYqpq1hESGV4BmgnGMAI4TiCKKPLfdtc
-6z/7Hov5m9iru7uaSnVaVGo3ehYK8RrQKrM6kv0u7Q/dbM1Nvaqti53ojcl8JmwHXGRMRTyiLIMc
-4AzB7x//Ps9d33yvm7+6j9mf+G4XfjZOVV50LpM+sg7RHvAAADAEAAAwEAAAWQgAAFmkAAGUMAAA
-ECQAABAwAAAQPAAAENwAAHssAAB7NAAB4owAAeaMAAHqjAAB7owAAfKMAAH2jAAB+owAAf6MAACN
-zAAAfnQAAI/cAAGRWAAAj/wAAHUcAAB1GAAAdRAAAHfgAAB35AAAd/QAAZw8AAEQdAABEIQAAJQI
-AACYXAAAlgwAAJYUAACWIAAAliwAANAoAACQCAACENwAAjDcAAJQ3AACcNwAAZBUAABgHAABoNgA
-AZCQAAB34AAAd+QAAHf0AAB5eAAAefgAAZQEAAHjwAAB58AAAevAAAHvwAAB88AAAffAAAH7wAAB
-/8AAAZQMACEACQCBAEEAIQAJACEACQCBAEEAgQBBAIEAQQCBAEEAIQAJAIEAQQAhAAkAIQARAIEA
-QQCBAEEAIQAJAIEAQQAhAAkAIQAJAQEAQQCBACEAgQAhABAQYQAAAAAAAAAAAAAwAD////8AADAI
-P////wAAWRCsgAAAAABZrH4lAAAAAZQQH////wABlDQAAAARAAGUCB////8AAZQ4AAAAEQAAECh/
-////AAAQLH////8AABA0f////wAAEDh/////AAAQQA9EAAAAAHsoAB//4gAAezA//+7/AAB7OAAA
-AAEAAHtAP//u/wAAfCQAH//iAAHiiAAIAAAAAeaIAAgAAAAB6ogACAAAAAHuiAAIAAAAAfKIAAgA
-AAAB9ogACAAAAAH6iAAIAAAAAf6IAAgAAAAAjcj/////AACN0P////8AAH5wf7///wAAfnh/v///
-AAB+AADAAAAAAZFUAf///wABkZwB////AACP2AB///0AAI/4/////QAAdRQAAAAHAAB1DAAAAAsA
-AHfcAAAAAwAAd/D/////AAGcOAABgEAAAZz4AAAAAwAAkAQAAAA+AAEQeAD///8AARB8AP///wAB
-EIgAAAAAAACUBAAA//8AAJQQAAD//wAAmFQAAAH/AACYWAAAAf8AAJYIAAAAAAAAlhAAH///AACW
-GAAf//8AAJYcAA///wAAliQAD///AACWKAD///8AAJYwAP///wAA0CAAAAAHAADQJAAAAAcAAhDY
-AAAAAwACMNgAAAADAAJQ2AAAAAMAAnDYAAAAAwABkFAAAAAvAAGg1AAAAYMAAZCMADgAAAABkJgA
-OAAAAAB5dAAAAC8AAHlwAAAABQAAefQAAAAvAAB58AAAAAXhAg4AAABAAOEAXgAACAAIAAAw1AAA
-5AAAAMQwAADEMSAI80AACYloAADEUCAI83AgCPOQIAjzsAAAIAAAAMRRAADAAQAAxFIgT/+AIFAA
-ACAGhrQgCScAIAknYCAJJrAAAMAGAACAAAAIAAIgCSegAACA1wAAQIIAAMSCAACEAyAJKZAgCSiQ
-AACApgAAgD0gCSfwAACAQCAJKPAgCSlAIAkoQB//jcgf/46IIAkqMCAI89DhAZoAH/+OYB//i/QA
-AAgA/8D//wAQAAAgCSngAAYIACAI9DAgCPSQIAkrcCAJKyAgCSqAIAkq0OEALgAgAo0wAACQAB//
-jTwALBQAgAAAgOEAWgCB8OCA4QAuCCAAAADhAFYADAAAAP/zgAAADDgARgAAAD8///+AgAAA8///
-///g//8AAQAAIAaAACAGhZQgBoEAH/+L8OEBkgDhAIoA4QAOAOEAfgDhAHoAAAIAAAB/AEAAAwAA
-AIAAgADBAMD//yP/AADIABAgASDhAI4APAAAAP//v/9QaOhH+P///wQAAACSAAAA8ADwAJ+/+/sg
-AAQEf/f//4AAAgD//+////+A///3/38AAH6wAAYAAAAAD/8AAH60AP///wBJJJIAAH4YCAEIARAB
-EAEQAQgBAAB+QCABIAEVFRUVhCGEIRAQEBDhAY4AAAD+fwQEAYAf/40c4QDOABEREREiIiIiMzMz
-Mx//kBThAI4E4QCOCOEAjgwgBoi04QB2ACACjVD///AA4P/+AIAAAQAgBoe0AACQCAAACMCAAcQR
-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
-+iAIFaAMBQBbzLiJEuKWACGAOYAAJzQAyFEkVABmrvIS+JUoapCoIqJi0Q+JEhL4kf8gBhXmmAUA
-qCKiYtEPAGwQBCsyACawAMBw6Gl+bcgEgABkYHYLuQL4IAIdoAoFAPwBIh2gLTUAbQhdaGwVfGES
-fWEi6Iz/JVAFAADmJAAhEAUAALF3q3kmkABoaVVkgGjPYmAATQAkkAD8iEAE0AUFAKt75rAALbgE
-gABtCBTkYDFiqAUAACZwAbF36Gkia8gEgABj/+TTD2P/m8CA6CQAJNAFAAD6YAYVoAIFANEPq3ur
-WcmCwLDrJAAk4AUAAOw2AC0QBIAA0Q/GKtEPAGwQCFv+0e/4WB0+QgAAEvheFvhc/fC2BaAKFQD3
-8K4F4AlFAP/wrAWgBAUA8/CwBe/19QAY+Fco5qUv5qQk5qcd+FUt5qYb+FQr5qkY+FQo5qgv5qsd
-+FIt5qovYoIb+FEY+FEL/wEI/wIvZoIe+E8uZoYqZoctSkUtZqUrwvAJuwIrxvAY+Eof+EufgC0y
-wB74Sg7dAS02wCsy0CzqwP1gBAWxHFUADLsCKzbQGPhDKDbRLTLYH/hCHvhCD90BDt0CLTbYKzLb
-HPhADLsCKzbbGPg+KCY1LTLSH/g9Hvg9D90BDt0CLTbSKzLSKHCALPr+DLsB6zbSLBBwAAArMtMd
-+DYc+DYNuwEMuwIrNtMlNvQlNvUuMt4f+DLTDw/uAS423isywx34L/1gBAX1DAUADLsCKzbDKDLB
-Gvgr+wAEBDCJBQAJiAIoNsEuMsIf+Cga+CYb+CgP7gL+eEYVpBwFAFvU1Br4JBv4JRz4JVvU0Rr4
-JP3wSgWgC1UAW80gGvgh/fBCBaALZQBbzR0a+B398DwFoAt1AFvNGRr4Gv3wNAWgC4UAW80WGvgW
-/fAwBaALlQBbzRIa+BP98CoFoAulAFvNDxr4D/3wIAWgC6UAW80LGvgM/fAYBaALtQBbzQga+Awc
-+A4Y+Az4QcYVoCsFAA8CAFvNAvvwDgWiS0UA/ABCHaANJQBby+/78AQFoUsVAPwAAh3g/PUAW8vr
-++/6BaFLFQD8AAId4Pz1AFvL5hr3+P3v9gWg6UUA+EFGFeArNQBbzO4a9/P97+oFoCtFAFvM6xr3
-7/3v5AWgK1UAW8znH/fwFvfwnywvJgsvJg0sYtQe9+4d9+4OzAH9hgAOcCrlAPzahhWgCxUAW7Xr
-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
-Y3NrX2ZjLT5mbG93Y19zdGF0ZSwgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0s
-IGZsYWdzIFsweCV4XQoAAAAAAHNlbmRfY2xvc2VfcmVxOiBjc2tfZmMtPmZsb3djX3R5cGUgWzB4
-JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2Jfc3RhdGUgWzB4JXhdCgAA
-AHNlbmRfY2xvc2VfcmVxOiBjc2tfZmMtPmZsb3djX3R5cGUgWzB4JXhdLCBjc2tfZmMtPmZsb3dj
-X2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19jc29ja190aWQgWzB4JXhdLCB1bHB0eGNoIFsldV0s
-IGltbWRsZW4gWyV1XSwgYnVmZmVyZWQgWyV1XSwgbGVuMTYgWyV1XQoAAAAAAABjc29ja19mYWls
-ZWQ6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwg
-c2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGV2
-dCBbMHgleF0KAAAAAAAAAAAAAABmb2lzY3NpX2Nzb2NrX2Nsb3NlOiBzZXNzLT5mbG93Y19pZCBb
-MHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XQoA
-AABmb2lzY3NpX2Nzb2NrX2Nsb3NlOiBpc2Vzcy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBjc2tfZmMt
-PmZsb3djX3N0YXRlIFsweCV4XSwgdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAAAAAAAA
-cmVjb3ZlcnlfdGltZW91dDogUmVjb3ZlcnkgZmFpbGVkIGluIFsldV0gcmV0cnkKAAAAAAAAAAAA
-AAAAAAAAAHJlY292ZXJ5X3RpbWVvdXQ6IHNlc3NfZmMtPmZsb3djX2lkIFsweCV4XSwgcmV0cnkg
-Y291bnQgWyVkXQoAAAByZWNvdmVyeV90aW1lcjogc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBz
-ZXNzX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0gc2Vzc19mYy0+ZmxhZ3MgWzB4JXhdCgAAAABsb2dp
-bl9wYXJhbXM6IGNvbm5fZmMtPmZsb3djX2ZvaXNjc2lfY29ubl9kaWdlc3RfdG9fdWxwIFsweCV4
-XQoAbG9naW5fcGFyYW1zOiBjb25uX2ZjLT5mbG93Y19mb2lzY3NpX2Nvbm5fZGlnZXN0X3RvX3Vs
-cCBbMHgleF0KAFRDUCBjb25uIGVzdGFibGlzaG1lbnQgZmFpbGVkICVkCgAAAAAAAAAAAAAAAAAA
-AHdyaF9mb2lzY3NpX25vZGU6IG5vZGVfd3ItPmZsb3dpZF9sZW4xNiBbJXhdCgAAAHdyaF9mb2lz
-Y3NpX2NoYXA6IGlkX2xlbiBbJXhdLCBzZWNfbGVuIFsleF0KAAAAAHdyaF9mb2lzY3NpX2NoYXA6
-IHRndF9pZF9sZW4gWyV4XSwgdGd0X3NlY19sZW4gWyV4XQoAAAAAAAAAAAAAAAB3cmhfZm9pc2Nz
-aV9jcnRsLTEKAAAAAAAAAAAAAAAAAHdyaF9mb2lzY3NpX2NydGw6IDEgY29va2llICVwCgAAd3Jo
-X2ZvaXNjc2lfY3J0bDogc2Vzc2lvbiB0eXBlICV1CgAAAAAAAAAAAAAAAAAAY2xlYXJfZGRwX21h
-cDogaXN0YXNrX2ZjLT5mbG93Y19pZCBbJXVdLCB3ci0+b3BfaW1tZGxlbiBbMHgleF0gYWxyZWFk
-eSBzY2hlZHVsZWQKAAAAAAAAAAAAAAAAAAAAcHJjb2VzX2RhdGFfaW5fcmVzcG9uc2U6IGNvbm4t
-PmZsb3djX2lkIFsweCV4XSwgZGRwX3N0YXR1cyBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2NfaWQg
-WzB4JXhdCgAAaW4gbG9vcAoAAAAAAAAAAGZvaXNjc2lfc2V0X2RpZ2VzdDogY3NrX2ZjLT5mbG93
-Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBpbiBkZWxheV9wcm9jZXNzaW5n
-CgAAAAAAAHVzZXJuYW1lIG1pc21hdGNoCgAAAAAAAAAAAAAAAAAAUmVjdmQgYW5kIENvbXB1dGVk
-IGRpZ2VzdCBtaXNtYXRjaAoAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAl
-ZCBwYWQuCgAAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAA
-AAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAAAAAAAAAAAAAA
-AAAAUmVjaWV2ZWQgQXV0aE1ldGhvZCB2YWx1ZQoAAAAAAAB2YWxpZGF0ZV9rZXl2YWw6IGZsb3dj
-X2ZvaXNjc2lfY29ubl9kaWdlc3RfdG9fdWxwIFsweCV4XQoAAAAAAAAAdmFsaWRhdGVfa2V5dmFs
-OiBmbG93Y19mb2lzY3NpX2Nvbm5fZGlnZXN0X3RvX3VscCBbMHgleF0KAAAAAAAAAEtFWV9NQVhS
-Q1ZEU0wgWyV1XQoAAAAAAAAAAAAAAAAARHVwbGljYXRlIGlzY3NpIGtleQoAAAAAAAAAAAAAAABz
-ZW5kX2xvZ2luX3JlcXVlc3Q6IHNlc3NfZmMtPmZsb3djX2lkIFsweCV4XSwgc2Vzc2lvbl90eXBl
-IFslZF0sIGNvbm5fZmMtPmZsb3djX2lkIFsweCV4XQoAAAAAAABmb2lzY3NpX3BhcnNlX3JjdmRf
-cGFyYW1zOiBlcnJvcgoAAAAAAAAAAAAAAAAAAABmb2lzY3NpX3BhcnNlX3JjdmRfcGFyYW1zOiBy
-bGVuICVkCgAAAAAAAAAAAAAAAABwcm9jZXNzX3RtZl9yZXNwb25zZTogaXN0YXNrX2ZjLT5mbG93
-Y19idWYtPnNjaGVkX25vZGUubmV4dCBbMHgleF0sIGlzdGFza19mYyBbMHgleF0sIGlzdGFza19m
-Yy0+Zmxvd2NfaWQgWyV1XQoAcHJvY2Vzc190bWZfcmVzcG9uc2U6IHVscHR4cGxlbjE2IFsldV0K
-AAAAAAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6IGRlbGF5X3Byb2Nlc3NpbmcsIG9wIFsleF0K
-AAAAAAAAAAAAAAAAAAAAAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOjogcHJvY2Vzc2luZyBBQlJUIHJl
-c3BvbnNlCgAAAAAAAAAAAAAAAAAAAABwcm9jZXNzX3RtZl9yZXNwb25zZTo6IHByb2Nlc3Npbmcg
-TFJFUyByZXNwb25zZQoAAAAAAAAAAAAAAAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6OiBBQk9S
-VF9SRVNQT05TRQoAAAAAAAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6OiBMVU5fUkVTRVRfUkVT
-UE9OU0UKAAAAAAAAY2FsbGluZyBkcm9wX3Rhc2ssIGlzdGFza19mYy0+Zmxvd2NfZm9pc2NzaV90
-YXNrX2xpZHggMHgleAoAAAAAAGFzeW5jX3BkdTogYXN5bmMgbXNnIHJlY3ZkIHNlc3NfZmMtPmZs
-b3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNvbm5fZmMtPmZsb3djX2lk
-IFsweCV4XQoAAAAAAAAAAABTZXEgIyBtaXNtYXRjaCBzdGF0c24gPSAweCV4IGV4cHN0YXRzbiA9
-IDB4JXgKAABsb2dpbl9yZXNwOiBmbG93Y19mb2lzY3NpX2Nvbm5fZGlnZXN0X3RvX3VscCBbMHgl
-eF0KAAAAAAAAAAAAAAAAbG9naW5fcmVzcDogZmxvd2NfZm9pc2NzaV9jb25uX2RpZ2VzdF90b191
-bHAgWzB4JXhdCgAAAAAAAAAAAAAAAGlTQ1NJIFNlYy1wYXJhbXMgcmVjZWl2ZWRoYXZlIGVycm9y
-cyEhCgAAAAAAAAAAAFRhcmdldCBtb3ZlZCB0ZW1wLiBjb25uICV4LCBzZXNzICV4CgAAAAAAAAAA
-AAAAAExvZ2luIEZhaWxlZCEhLiBjb25uICVkLCBzZXNzICVkCgAAAAAAAAAAAAAAAAAAAFByb3Rv
-Y29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAAAHJlY3ZfdG1mX3Jlc3Bv
-bnNlOiByZWNlaXZlZCB0bWYgcmVzcG9uc2UgcnNwLT5yZXNwb25zZSBbMHgleF0KAAByZWN2X3Rt
-Zl9yZXNwb25zZTogdGFza19pZHggWyV1XSwgdGFnIFsweCV4XQoAAABJbnZhbGlkIG9wY29kZSAw
-eCV4CgAAAAAAAAAAAAAAAHdyaF9vZmxkX3J4X2RhdGE6IGFpZWUsIGNvbm4gWzB4JXhdIHRyYW5z
-aXRlZCBpbiB0b2UgbW9kZQoAAAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93Y190eXBl
-IFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfY3NvY2tfdGlk
-IFsweCV4XSwgdWxwdHhjaCBbJXVdLCBpbW1kbGVuIFsldV0sIGJ1ZmZlcmVkIFsldV0sIGxlbjE2
-IFsldV0KAAAAAAAAaXNjc2lfaGRyOiBiYWQgY3NrX2ZjIHN0YXRlIHRvIHJ4IGRhdGEsIGNza19m
-Yy0+Zmxvd2NfaWQgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93
-Y19zdGF0ZSBbMHgleF0KAAAAAAAAAAAAAABhY3RfZXN0YWI6IHRjYl9mYy0+Zmxvd2NfYnVmIFsw
-eCV4XSwgdGNiX2ZjLT5mbG93Y190eXBlIFsweCV4XSB0Y2JfZmMtPmZsb3djX3N0YXRlIFsweCV4
-XSwgbnBhZ2VzIFsweCV4XSwgZmxvd2NfdHBfc25kX21heCBbMHgleF0KAAAAAAAAAAAAAAAAAABh
-Y3RfZXN0YWI6IGF0aWQgWzB4JXhdLCB0aWQgWzB4JXhdLCBvcCBbMHgleF0sIHJjdl9pc24gWzB4
-JXhdLCBzbmRfaXNuIFsweCV4XSwgY3NvY2stPmZsb3djX3N0YXRlIFsweCV4XSwgdGNwX29wdCBb
-MHgleF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdIAoAAAAAAAAAAAAAAAAAY3NrX2ZjLT5mbG93
-Y19jc29ja19jb29raWUgWzB4JXhdIAoAAAAAAAAAAAAAAAAAbmV0aWZfZG9fZGhjcDogd3ItPnBh
-cmFtLnZsYW5pZCBbJXVdLCBsMmRldl9mYy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhd
-CgBuZXRpZl9kb19kaGNwOiBybDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjcF9jdHh0IGlu
-aXRpYWxpemF0aW9uIGVycm9yCgAAAAAAAGwzaW40X2Rldl9jb25maWc6IHdyLT5wYXJhbS52bGFu
-aWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XQoAAAAAAAAA
-AAAAAAAAAG5ldF9sM2luNF9kZXZfY29uZmlnOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBh
-ZGRyZXNzIGFscmVhZHkgdXNlZCBieSBwb3J0ICVkCgAAAAAAAAAAAAAAAAAAAG5ldF9sM2luNF9k
-ZXZfY29uZmlnOiAgYWRkciBbMHgleF0sIG1hc2sgWzB4JXhdLCBndyBbMHgleF0sIHJlZl9jbnQg
-WzB4JXhdIGluIHVzZQoAAAAAAAAAAAAAAAAAAHdyaF9jaG5ldF9pZmNvbmY6IGwyZGV2X2ZjLT5m
-bG93Y19pZCBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y190eXBlIFslMHhdLCBpZmNvbmZfd3ItPnN1
-Ym9wIFsweCV4XQoAAAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxv
-d2NfaWQgWzB4JXhdLCB1bmtub3duIHN1Ym9wIFsweCV4XQoAAAAAAAAAAAAAAAAAAHdyaF9jaG5l
-dF9pZmNvbmY6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHJjICVkCgAAAAAAAAAAAAAAAABu
-ZXRpZl9pcF9jb25mbGljdF90aW1lcl9jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgaW5k
-ZXZjdHh0LT5zdGF0ZSBbJWRdLCBpbmRldmN0eHQtPnJldHJ5X2NudCBbJWRdCgAAAAAAAAAAbmV0
-aWZfaXBfY29uZmxpY3RfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIGluZGV2
-Y3R4dCBbMHgleF0sIGluIGZyZWUgc3RhdGUKAAAAAAAAAAAAaWZhY2VfY21kX2hhbmRsZXI6IGZj
-IFsweCV4XSwgZmMtPmZsb3djX2lkIFsweCV4XSwgZmMtPmZsb3djX3R5cGUgWzB4JXhdLCBwIFsw
-eCV4XSwgbGVuMTYgWyV1XSwgbG9jIFsweCV4XQoAAAAAAGlmYWNlX2NtZF9oYW5kbGVyOmwyZGV2
-X2ZjIFsweCV4XSwgbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkZXYtPmZsb3djX3R5cGUg
-WyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBbJTB4XQoAAAAAZm9pc2NzaV9p
-ZmFjZV9jbWRfaGFuZGxlcjogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9mbGFncyBjaGFuZ2Vk
-IGZyb20gWyUweF0gdG8gWyUweF0KAAAAAAAAAAAAY2huZXRfbDJkZXZfdXA6IG1iIFsweCV4XSwg
-ZGVmZXJyZWQKAAAAAAAAAAAAAAAAdmlpZCAldSwgbWFjLWlkIFslMDJ4OiUwMng6JTAyeDolMDJ4
-OiUwMng6JTAyeF0gcnNzX3NpemUgJXUKAAAAAHZpIHR5cGUgJXUgZmxvd2Nfc2dlX2VxaWQgJXUg
-Zmxvd2Nfc2dlX2VxaWQgJXUgZmxvd2Nfc2dlX2VxY3IgJXUKAAAAAAAAAAAAAAAAAAAAbmV0aWZf
-c2V0X21hYzogbWJfc2NyYXRjaCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAbmV0aWZfc2V0X3J4bW9k
-ZTogbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl9tdHUgWyV1XSwgbWJfc2NyYXRjaCBbMHgleF0K
-AAAAAAAAAABjaG5ldF9sMmRldl91cDogY21kLT5tYWMgWyV4OiV4OiV4OiV4OiV4OiV4XQoAAABs
-MmRldl9tYyBbJXg6JXg6JXg6JXg6JXg6JXhdCgAAAGNobmV0X2wyZGV2X3VwOiBmbG93Y19uZXRf
-bDJkZXZfZmxhZ3MgWzB4JXhdCgAAAGNobmV0X2wyZGV2X3VwOiBtYl9sb2MgWzB4JXhdLCBtYl9v
-cmlnIFsweCV4XSwgcmMgWyVkXQoAAAAAAAAAAABjaG5ldF9sMmRldl91cF9tYl9jYjogcmMgWyVk
-XSwgcG9ydCBbJXVdLCBzdGF0ZSBbJXVdLCBjb29raWUgWyV1XQoAAAAAAAAAAAAAAAAAAGNobmV0
-X3htaXQ6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHZsYW5pZCBbJXVdLCBMNENoa0Rpc2Fi
-bGVfdG9faVZsYW5UYWcgWzB4JXhdCgAAAAAAAAAAAAAAAGNobmV0X3htaXQ6IHR4X2RsZW4gWyV1
-XQoAAAAAAAAAY2huZXRfeG1pdDogYWxyZWFkeSBzY2hlZHVsZWQKAABjaG5ldF94bWl0OiBsMmRl
-dl9mYy0+Zmxvd2NpZCBbMHgleF0sIG5idWYgWzB4JXhdIGluIGRlbGF5ZWRfcHJvY2Vzc2luZwoA
-AAAAAAAAAGRoY3BfcHJvY2Vzc19jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0
-LT5zdGF0ZSBbJTB4XSwgZGhjdHh0LT5ydHJ5X2NudCBbJXVdCgAAAAAAAAAAAGRoY3BfdGltZXJf
-Y2I6IERIQ1BESVNDT1ZFUiBzZW50LCBidXQgbm8gcmVwbHkgZnJvbSBhbnkgcG9zc2libGUgc2Vy
-dmVyIG9uIHRoZSBuZXR3b3JrLiBSZXRyeWluZyBhZ2FpbgoAAAAAAAAAAABkaGNwX3RpbWVyX2Ni
-OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZW5kaW5nIERIQ1BESVNDT1ZFUiBmb3IgZGhj
-dHh0IFsweCV4XSBvbiBwaWQgWyVkXQoAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2Nf
-aWQgWzB4JXhdLCBESENQT0ZGRVIgcmVjZWl2ZWQgZm9yIGRoY3R4dCBbJXhdIHBpZCBbJWRdCgAA
-AAAAAAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCAgREhDUEFD
-SyByZWNlaXZlZCBmb3IgZGhjdHh0IFsleF0sIHBpZCBbJWRdCgAAAAAAAAAAAABkaGNwX3RpbWVy
-X2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBkaGN0eHQtPmlwYWRkciBbMHgleF0KAAAA
-AAAAAAAAAAAAAAAAAGRoY3BfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIG5v
-IHJlcGx5IGZyb20gZGhjcCBzZXJ2ZXIsIHRpbWluZyBvdXQKAAAAAAAAAAAAAAAAAAAAAGh3X2Ns
-NDVfdXBkX3NwZF9hZHYgJSN4CgAAAAAAAAAAcFsldV0gY2hhbmdpbmcgc3BlZWQgZnJvbSAlI3gg
-dG8gJSN4CgAAAAAAAAAAAAAAcFsldV0gY2FsaWJyYXRpbmcgUEhZIFNFUkRFUyBmb3IgbmV3IHNw
-ZWVkCgAAAAAAcFsldV0gYXExMjAyIGxpbmsgc3RhdHVzIGNoYW5nZSBVUAoAAAAAAAAAAAAAAAAA
-cFsldV0gUEhZIE9WRVJIRUFURUQgLSBmb3JjZWQgcG93ZXIgZG93biAodGVtcD0lZCkKAAAAAAAA
-AAAAAAAAAHBbJXVdIGFxMTIwMiBsaW5rIHN0YXR1cyBjaGFuZ2UgRE9XTgoAAAAAAAAAAAAAAG1v
-ZHVsZVsldV06IHBvcnQgbW9kdWxlIGluc2VydGVkIGFuZCByZWFkeQoAAAAAAG1vZHVsZVsldV06
-IHBvcnQgbW9kdWxlIHJlbW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06IHVua25vd24g
-bW9kdWxlIGlkZW50aWZpZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBH
-IDB4JTAyeCAxRyAweCUwMnggKGxlbmd0aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1v
-ZHVsZV90eXBlIDB4JTAyeAoAAAAAAAAAAABjeDRfY3JfcGRvd25bJXVdOiBlbiAldSB2aV9lbl9j
-bnQgJXUKAAAAAAAAAAAAAABpbml0X3BvcnRbJXVdOiAgbGluayBzdGF0dXMgMHgleCBtb2RfdHlw
-ZSAweCV4IHZpX2VuX2NudCAldSByeF9sb3MgJXUgaHNzX3NpZ2RldCAldSBwb3J0X2NmZy5zaWdk
-ZXQgJXUKAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAA
-AAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5p
-dF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1
-XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsg
-c3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAbmV3IG1vZHVsZSBuZXcgc3BlZWQgKHRlY2hfdHlw
-ZT0lI3gpCgAAAAAAAAAAAAAAY3JfbW9kdWxlX3N0YXR1c1sldV06IHR5cGUgY2hhbmdlZCBmcm9t
-IDB4JTAyeCB0byB0eXBlIDB4JTAyeCBzdHlwZSAweCUwMngKAAAAAABjeDRfY3JbJXVdOiByZXQg
-JWQgc3RhdHVzICV1IHhnbV9scyAweCUwOHgKAAAAAAB3YXRjaGRvZyBjbWQgaGFuZGxlciAodGlt
-ZSAldSBhY3Rpb24gJXUpCgAAAAAAAABXQVRDSERPRzogQWRhcHRlciBzaHV0ZG93bi4KAAAAAFdB
-VENIRE9HOiBCeXBhc3MgdGltZW91dC4KAAAAAAAAV0FUQ0hET0c6IEZMUiAtIG5vdCBpbXBsZW1l
-bnRlZCB5ZXQKAAAAAAAAAAAAAAAAV0FUQ0hET0c6IE1vbml0b3JpbmcgdGVtcGVyYXR1cmUuCgAA
-AAAAAAAAAAAAAAAAZmlsdGVyOiBwb3JncmFtbWluZyB0aWQgJXUgKGxlIHRjYW0gaW5kZXggJXUp
-Li4uCgAAAAAAAAAAAAAAAAAAAGZpbHRlcjogcmVxdWVzdGluZyBjb21wbGV0aW9uLi4uCgAAAAAA
-AAAAAAAAAAAAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5mbG93Y19p
-ZCAleCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAAcG9ydCAlZCBwcmlvciAlZCBzZWxlY3Qg
-JWQgcHJvdG9jb2xJRCAweCUwNHgKAAAAcG9ydCAlZCBzZXQgcGZjX2VuID0gMHgleAoAAAAAAABw
-b3J0ICVkIHNldCBwZ2lkXzBfNyA9IDB4JTA4eCBwZ19wZXJjZW50YWdlIDB4JTA4eF8lMDh4IG51
-bV90Y3Nfc3VwcG9ydGVkICVkCgAAAHBvcnQgJWQgc2V0IHBmY19lbiA9IDB4JXgKAAAAAAAAcG9y
-dCAlZCBzZXQgcGdpZF8wXzcgPSAweCUwOHggcGdfcGVyY2VudGFnZSAweCUwOHhfJTA4eCBudW1f
-dGNzX3N1cHBvcnRlZCAlZAoAAABGQ29FIEREUCBmYWlsZWQgOiBveF9pZCAweCV4IHJ4X2lkIDB4
-JXgKAAAAAAAAAABGQ29FIEREUCBmYWlsZWQgOiBEZHBSZXBvcnQgMHgleCBEZHBWYWxpZCAweCV4
-CgBQUkxJIFJzcCB0aW1lZG91dCA6IGZsb3djX2lkIDB4JXggb3hfaWQgMHgleCByeF9pZCAweCV4
-IAoAAAAAAAAAY29yZV9wcm9ncmFtX3RjYjogdGlkICUjeCB0X3N0YXRlICUjeCByY3ZfYWR2IDB4
-JTA4eCByY3Zfc2NhbGUgJSN4IHR4X21heCAlI3ggcmN2X254dCAlI3ggYXRpZCAlI3gKAAAAAAAA
-AAAAAAAAAAlvcHQwICUjeCV4IG9wdDIgJSN4IGlwdjYgJSN4IGZsYWdzX3RpbWVyIDB4JTA4eAoA
-AAAAAAAAAAAAAAAAAABjYW5ub3QgYWxsb2NhdGUgb2ZmbG9hZGVkIGZpbHRlciBjb25uZWN0aW9u
-CgAAAABjYW5ub3QgYWxsb2NhdGUgb2ZmbG9hZGVkIGZpbHRlciBJUHY2IGNvbm5lY3Rpb24KAAAA
-AAAAAAAAAAAAAAAAaW52YWxpZCBidWZmZXIgZ3JvdXBbJXVdIGNvbmZpZ3VyYXRpb246IG10dSAl
-dSBsd20gJXUgaHdtICV1IGR3bSAldQoAAAAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHdpdGggcG9y
-dCBtYXNrIDB4JXggY2Fubm90IGFjY2VzcyBwb3J0ICV1LCByZXQgJWQKAAAAAAAAAAAAAAAAAAAA
-AHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHZpaWQsIHJldCAlZAoAAHBmbiAldSB2
-Zm4gJXUgY291bGQgbWFwIHZpaWQgIDB4JXggdG8gZmxvd2MsIHJldCAlZAoAAAAAAAAAAAAAAABw
-Zm4gJXUgdmZuICV1IGNvdWxkIG5vdCBhbGxvY2F0ZSB1d2lyZSBmdW5jICVkIG1hYyBhZGRyLCBy
-ZXQgJWQKAAAAAAAAAAAAAAAAAAAAAG1paV9hZHZfZmNbJXVdOiByY2FwcyAweCV4CgAAAAAAbWlp
-X2FucmVzdGFydFsldV06IGFjYXBzIDB4JXgKAABtaWlfZm9yY2Vfc3BlZWRbJXVdOiByY2FwcyAw
-eCV4CgAAAAAAAAAAAAAAAAAAAABtaWlfbGlua19zdGF0dXNbJXVdOiBibXNyIDB4JTA4eCBzdGF0
-dXMgJXUgeGdtX2xzIDB4JTA4eAoAAAAAAAAAcG9ydF9jbWRfaGFuZGxlcjogdW5rbm93biB1LmRj
-Yi50eXBlIDB4JXgKAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogcGh5IHJlc2V0IG5vdCBh
-dmFpbGFibGUKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IHVua25vd24g
-YWN0aW9uIDB4JXgKAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IHVua25vd24gcmVhZCBhY3Rp
-b24gMHgleAoAAAAAAAAAAAAAAAAAAABwa3RzY2hlZCBjaGFubmVsICV1IHNldHMgc3BlZWQgdG8g
-JXUga2JwcwoAAAAAAABwb3J0X2NtZF9oYW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoA
-AAAAAABpMmMgZXJyb3IgY2F1c2VkIGJ5IG1vZHVsZSB1bnBsdWcKAAAAAAAAAAAAAAAAAABzZW5k
-dG8gcGVuZGluZzogd3JfcGVuZCAlcCBmb3IgcG9ydCAldSwgIHdhbnQgdG8gc2VuZCB0byBwb3J0
-ICV1CgAAAAAAAAAAAAAAAAAAAGZjX3BmdmYgJXUsIGxzdGF0dXMgJXUsIGZjX3BvcnQgJXUKAAAA
-AAAAAAAAAAAAAHNlbmR0bzpmbG93Y2lkICV1CgAAAAAAAAAAAAAAAAAARkNPRSBGcmVlOiBzdGls
-bCB5aWVsZGVkIHdoZW4gZnJlZWluZy4uLmZsb3djX2lkICV4IGZsb3djX2ZsYWdzICV4IAoAAAAA
-AAAAAAAAAABGQ09FIEJQIFdSIEVSUjogV1Igd2l0aCBjb29raWUgJXgleCBlcnJvcmVkIGJhY2sg
-CgAAAAAAAAAAAAAAAAAAc2NzaV9hYm9ydDogRW50ZXJpbmcgQWJvcnRfdGFzawoAAAAAAAAAAAAA
-AAAAAAAAc2NzaV9hYm9ydDo6IHdyLT5pcWlkIFsweCV4XSwgaXN0YXNrX2ZjLT5mbG93Y19zZ2Vf
-aXFpZCBbMHgleF0KAHNjc2lfYWJvcnQ6IHNyZXEtPm9wY29kZSBbMHgleF0gZmxhZ3MgWzB4JXhd
-CgAAAHNjc2lfYWJvcnQ6IHRhc2tfaWR4IFsldV0sIGl0dCBbMHgleF0KAAAAAAAAAAAAAHNjc2lf
-YWJvcnQ6OiBsdW5faWR4IFsweCV4XQoAAAAAc2NzaV9hYm9ydDogcmVmIHRhc2sgbm90IG91dHN0
-YW5kaW5nCgAAAAAAAAAAAAAAc2NzaV9hYm9ydDogcmVmIHRhc2sgZm91bmQgaXR0IFsweCV4XSBj
-b29raWUgWzB4JXBdCgAAAAAAAAAAAAAAAGFib3J0L2Nsb3NlIFdSIHdpdGggY29va2llIDB4JWx4
-IHdhcyBpc3N1ZWQgb24gc3NuIDB4JXggaW4gd3Jvbmcgc3RhdGUgMHgleAoAAAAAYWJvcnQgV1Ig
-d2l0aCBjb29raWUgMHglbHggb24gc3NuIDB4JXg7ZGlkIG5vdCBmaW5kIFdSIHdpdGggY29va2ll
-IDB4JWx4CgAAAAAAAABjbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCBvbiBzc24gMHgleDtkaWQg
-bm90IGZpbmQgV1Igd2l0aCBjb29raWUgMHglbHgKAAAAAAAAAGFib3J0IFdSIG9uIHNzbiAweCV4
-IHdhcyBpc3N1ZWQgb24geGNoZyAweCV4IHdpdGggcnhfaWQgMHgleCBpbiB3cm9uZyBzdGF0ZSAw
-eCV4CgAAAAAAAAAAAAAAAAAAAHhtaXRfaW1tZF9kYXRhOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4
-XSwgY29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdIGNza19mYy0+Zmxvd2Nfc3RhdGUsIFsweCV4XSwg
-Y29ubl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBmbGFncyBbMHgleF0KAAAAAAAAAHhtaXRfaW1t
-ZF9kYXRhOiBjb25uX2ZjLT5mbG93Y19pZCBbJWRdIGFscmVhZHkgc2NoZWR1bGVkLCBjb25uX2Zj
-LT5mbG93Y19mbGFncwoAbmV0X2wyZGV2X25vdGlmeTogRENCWCBldmVudCBvbiBwb3J0IFslZF0s
-IHVscHR4Y2ggWyV1XSwgY2xhc3MgWzB4JXhdLCBwcmlvcml0eSBbMHgleF0KAAAAAAAAAAAAc2Vu
-ZCBkY2J4IGluZm86Zmxvd2NpZCAldQoAAAAAAABzZW5kIGRjYnggY29tcGxldGUKAAAAAAAAAAAA
-AAAAAHBvcnQgJWQgYXBwbElEIDB4JTA0eCBvdWkgMHglMDZ4IHVzZXJfcHJpb3IgJWQKAGNobmV0
-X2wydF91cGRhdGU6IGwydF91cGRhdGUgcmVxdWVzdCBzZW50IGwydGVudCBbJTA4eF0sIGwydGVu
-dC0+aWR4IFslZF0sIGwydGVudC0+dmxhbiBbJWRdCgAAAG5ldGlmX3Byb2Nlc3NfZGhjcDogbDJk
-ZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgcHJvY2Vzc2luZywgb3B0X2xlbiAldQoAAAAAAAAAAAAA
-Tl9QT1JUIDB4JXgleCV4IHJlamVjdGVkIFBMT0dJIHdpdGggcmVhc29uIGNvZGUgJXgKAAAAAAAA
-AAAAAAAAAEFCVFMgd2hpbGUgYXdhaXRpbmcgUFJMSSBSc3A6IGZsb3djX2lkIDB4JXggb3hfaWQg
-MHgleCByeF9pZCAweCV4IAoAAAAAAAAAAAAAAAAAQUJUUyBmYWtlIFJzcDogbG9jIDB4JXggb3hf
-aWQgMHgleCByeF9pZCAweCV4CgAAY2huZXRfYXJwX3JlY3Y6IHBpZCBbJXVdLCBwa3QtPmFoZHIu
-c2lwIFsweCV4XSwgcGt0LT5haGRyLnJpcCBbMHgleF0sIHBrdC0+YWhkci5vcGNvZCBbMHgleF0K
-AAAAY2huZXRfYXJwX3JlY3Y6IHZsYW4gZXh0cmFjdGVkLCB2bGFuaWQgWyV1XSwgbDJkZXZfZmMt
-PmZsb3djX25ldF9sMmRldl92bGFuZGV2IFsweCV4XSwgbDJkZXZfZmMgWzB4JXhdCgAAAAAAAAAA
-AGNobmV0X2FycF9yZWN2OiBpcCBjb25mbGljdCBkZXRlY3RlZAoAAAAAAAAAAAAAAGNobmV0X2Fy
-cF9yZWN2OiB2bGFuaWQgWyUweF0sIHBpZCBbJXVdCgAAAAAAAAAAAGNobmV0X2FycF9yZWN2OiBs
-MmRldl9mYyBbJXhdLCBwa3QtPmFoZHIucmlwIFsweCV4XSwgcGt0LT5haGRyLnNpcCBbMHgleF0K
-AAAAAAAAY2huZXRfaXBfcmVjdjogdmxhbiBleHRyYWN0ZWQsIHZsYW5pZCBbJXVdLCBsMmRldl9m
-Yy0+Zmxvd2NfbmV0X2wyZGV2X3ZsYW5kZXYgWzB4JXhdLCBsMmRldl9mYyBbMHgleF0KAAAAAAAA
-AAAAAGNobmV0X2lwX3JlY3Y6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHBpZCBbMHgleF0s
-IGlwIHByb3RvIFsweCV4XQoAAAAAAAAAAAAAYWN0X29wZW5fcnBsOiBhdGlkIFsweCV4XSwgdGlk
-IFsweCV4XSwgb3AgWzB4JXhdLCBzdGF0dXMgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABhY3Rfb3Bl
-bl9ycGw6IGNza19mYy0+dGNiX3N0YXRlIFsweCV4XSwgY3NrX2ZjLT5mbGFncyBbMHgleF0sIHRj
-Yl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdCgAAAAAAAABzZW5kX2Fib3J0X3JwbDogY3NrX2ZjLT5m
-bG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nf
-Y3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBbJXVdLCBpbW1kbGVuIFsldV0sIGJ1ZmZlcmVkIFsl
-dV0sIGxlbjE2IFsldV0KAAAAAAAAdGNwX2Fib3J0X3JwbF9yc3M6IHRpZCBbMHgleF0sIHN0YXR1
-cyBbMHgleF0KAAAAdGNwX2Fib3J0X3JlcV9yc3M6IHRpZCBbMHgleF0sIHN0YXR1cyBbMHgleF0K
-AAAAdGNiX2ZjLT5mbG93Y19pZCBbMHglMDZ4XSwgdGNiX2ZjLT5mbG93Y190eXBlIFsweCV4XSwg
-Y3Bsb3AgWzB4JXhdIAoAAAAAAAAAAAAAAABwa3RzY2hlZF9jbF9ybFsldToldV06IG1vZGUgfCB1
-bml0IHwgcmF0ZSAweCUwNnggbWluICV1IG1heCAldSBwa3RzaXplICV1CgAAAAAAAHBhcmFtX2Rt
-YXFbMHgleDoweCV4XTogZG1hcSAweCV4IHJlYWQgJXUgcGYgJXUgcmV0ICVkCgAAAAAAAAAAAABG
-TEFTSCBub3QgcmVhZHk6IGkgJXUgbnZyUmVnICUjeAoAAAAAAAAAAAAAAAAAAABBUV9GTEFTSF9S
-ZWFkeSAtIFRpbWVvdXQgKDEpCgAAAEFRX0ZMQVNIX1JlYWR5IC0gVGltZW91dCAoMikKAAAACUFR
-X1JldHVybkNvbnRyb2xPZkZMQVNICgAAAAAAAABwaHk6IGZhaWxlZCB0byBhbGxvY2F0ZWQgbWVt
-b3J5IGZvciBwaHkgZncgZmlsZSwgcmV0ICVkCgAAAAAAAAAAcGh5IGZ3dmVyICUjeCByZXQgJWQK
-AAAAAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1
-IGZpbHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUKAAAAAAAAAAAAAABsZSBjb25m
-aWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBzZXJ2ZXIg
-JXUgYWN0aXZlICV1IGhhc2ggJXUgbnNlcnZlcnNyYW0gJXUKAAAAAAAAAAAAAAAAY2ZfcGFyc2U6
-IGZpbGUgbWVtdHlwZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQgQCAlcDoKAAAAAAAAAAAAAGNv
-bmZpZ3VyZWQgd2l0aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0Y2h8bmljIDB4JTA4eCB0b2V8
-cmRtYSAweCUwOHggaXNjc2l8ZmNvZSAweCUwOHgKAAAAAAAAAG5ldCBWSSBhbGxvY2F0aW9uIGZh
-aWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAAAAAAAABuZXQgVkkgbWFjIGFk
-ZHJlc3MgcHJvZ3JhbW1pbmcgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAAAA
-AAAAAAAAAAAAAG5ldCBWSSByeG1vZGUgcHJvZ3JhbW1pbmcgZmFpbGVkIGZvciBmY19pZCAldSB3
-aXRoIGVycm9yICVkCgAAAABuZXQgVkkgcnNzIGluZGlyZWN0aW9uIHRhYmxlIHByb2dyYW1taW5n
-IGZvciBmY19pZCAldSBmYWlsZWQgd2l0aCBlcnJvciAlZAoAAAAAAG5ldCBWSSByc3MgY29uZmln
-IGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAABuZXQgVkkgY29t
-bWFuZCBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQKAAAAAAAAAAAAAAAAAAAAbGUg
-aW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IGFj
-dGl2ZSAldSBzZXJ2ZXIgJXUgaGFzaCAldQoAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5l
-bnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IHNlcnZlciAldSBhY3RpdmUgJXUg
-aGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAAAAAAAHRwIG1lbSBkaXN0cmlidXRpb25bJSVd
-IHBtdHggJXUgcG1yeCAldSBkZHAgJXUgZGRwX2lzY3NpICV1IHN0YWcgJXUgcGJsICV1IHJxICV1
-IHJxdWRwICV1CgAAAAAAAFRQX1BNTV9SWF9QQUdFX1NJWkUgJXUgaXMgbm90IHN1cHBvcnRlZAoA
-AAAAAAAAAFRQX1BNTV9UWF9QQUdFX1NJWkUgJXUgaXMgbm90IHN1cHBvcnRlZAoAAAAAAAAAAHBw
-bWF4IFsldV0sIGJpdHMgWyV1XSwgRldfSVNDU0lfUEFHRVBPRF9UQUdfSURYX01BWF9TSVpFIFsl
-dV0KAABkZWZhdWx0IHRhZ21hc2sgWzB4JTB4XQoAAAAAAAAAAGN4Y25pYy0+ZGRwX2luZm8ubGxp
-bWl0IFsweCUweF0sIGN4Y25pYy0+ZGRwX2luZm8udWxpbWl0IFsweCUweF0sIGN4Y25pYy0+ZGRw
-X2luZm8uc2l6ZSBbMHglMHhdCgAAAAAAAAAAAAAAAAAAAABjeGNuaWMtPmRkcF9pbmZvLm1heF90
-eHN6IFsweCUweF0gY3hjbmljLT5kZHBfaW5mby5tYXhfcnhzeiBbMHglMHhdIGlvc2l6ZSBbMHgl
-MHhdCgAAAAAAAAAAAAAAAABwcG1heCBbJXVdLCBpZHhfYml0cyBbJXVdLCBpZHhfbWFzayBbMHgl
-MHhdLCByZXN2ZF90YWdfbWFzayBbMHglMHhdLCB0YWdtYXNrIFsweCUweF0KAAAAAAAAAAAAAAB0
-YWcgaXR0IDB4JTB4LCBiaXRzICV1LCBhZ2UgMHglMHgsIGJpdHMgJXUKAAAAAABjeGNuaWMtPmlz
-Y3NpX3BwbSBbMHglMHhdCgAAAAAAAHNjc2lfcGxkX3NpemUgWyV1XSwgQUxJR04oc2NzaV9wbGRf
-c2l6ZSwgMTYpIFsldV0KAAAAAAAAAAAAAAAAAABtYXhfcHBvZF96b25lcyBbJXVdCgAAAAAAAAAA
-AAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdLCBsMmRjLT5wZm4gWyV1XSwgbDJkYy0+dmZuIFsl
-dV0sIGwyZGMtPmxwb3J0IFsldV0sIGwyZGV2X2ZjLT5mbG93aWQgWyV1XSBsMmRjLT50eF9jaCBb
-JXVdLCBkZXYudnBkLnBvcnR2ZWMgWyV4XQoAAAAAAAAAAHBvcnR2ZWMgWyV1XQoAAABjeGNuaWNf
-ZGV2aWNlX2luaXQ6IGRldi5yZXMuZm9pc2NzaV9udGFza3MgWyV1XSwgZGV2LnJlcy5mb2lzY3Np
-X25zZXNzIFsldV0sIGRldi5yZXMubmNzb2NrIFsldV0sIGRldi5yZXMuZm9pc2NzaV9uaW5pdCBb
-JXVdCgAAAGFycF90YWJsZV9zaXplIFsldV0sIGFycF90YmxfYm1fc2l6ZSBbJXVdLCBuc3RhY2tf
-bmwydF9ibV9zaXplIFsldV0sIG9mbGRfc3BvcnRfYm1fc2l6ZSBbJXVdCgAAAGlzY3NpX25zZXNz
-X2JtX3NpemUgWyV1XSwgY3NvY2tfYm1fc2l6ZSBbJXVdLCBpc2NzaV9zY3NpX250YXNrc19ibV9z
-aXplIFsldV0KAAAAY3hjbmljX2RldmljZV9pbml0OiBjeGNuaWMgWzB4JTB4XSwgY3hjbmljLT5m
-aWx0ZXIgWyUweF0sIGN4Y25pYy0+b2ZsZF90Y3Bfc3BvcnRfYm0gWyV4XSBzaXplb2Yoc3RydWN0
-IGZsb3djKSBbJXVdLCB0b3RhbF9pc2NzaV9ibV9zaXplIFsldV0sIHRvdGFsX21lbV9zaXplIFsl
-dV0KAAAAAAAAAAAAAAAAAABjeGNuaWNfZGV2aWNlX2luaXQ6IGRldi50cC5udW1fdHhfcGFnZXMg
-WyV1XSwgZGV2Lm1jLnNpemUgWyV1XSwgZGV2LnRwLnR4X3BhZ2Vfc3ogWyV1XSAAAAAAAAAAAABw
-b3J0X2luaXRbJXVdOiBwb3J0IHR5cGUgMHgleCBpcyBub3Qgc3VwcG9ydGVkCgBFUSBwZm4gJXUg
-dmZuICV1OiBkZXN0cm95aW5nIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMg
-JXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAAAAAAAABBaCBoYS4uLmRvdWJsZSBmcmVlIG94X2lkIDB4
-JXgsIHJ4X2lkIDB4JXgKAAAAAABIb3N0IFBSTEkgUmVzcG9uc2UgdGltZWRvdXQ6IG94X2lkIDB4
-JXggcnhfaWQgMHgleAoAAAAAAAAAAAAAAAAAbDJkZXZfZmMtPmZsb3djX2lkIFsldV0sIGwyZGV2
-X2ZjLT5mbG93Y19uZXRfbDJkZXZfcGZuIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZf
-dmZuIFsldV0sIG5ldF9sMmRjLT5scG9ydCBbJXVdCgAAAAAAAAAAAABwZm4gJXUgdmZuICV1IHZp
-YSBjb21tYW5kCgAAAAAAAGh3X2xlX2NsaXBfaGFuZGxlcjogcmVtb3ZlZCBwb3M9JXUgKD1pZHgg
-JXUpCgAAAGh3X2xlX2NsaXBfaGFuZGxlcjogYWRkaW5nIHRvIHBvcz0ldSAoPWlkeCAldSkKAHBm
-biAldSB2Zm4gJXUKAABodyBwZiBiaXRtYXAgMHglMDJ4IHZmaWQgYml0bWFwIDB4JTA4eDoweCUw
-OHg6MHglMDh4OjB4JTA4eAoAAAAAYWZ0ZXIgdmZpZCBmaXh1cCwgdmZpZCBiaXRtYXAgMHglMDh4
-OjB4JTA4eDoweCUwOHg6MHglMDh4CgAAAAAAAHRpbWVyIHF1ZXVlICV1IGxvc3QgYSB0aWNrISBu
-ZXh0ICVwIGxhc3QgJXAgbnVtZSAldQoAAAAAAAAAAAAAAABmbHJfdGltZXJfc3RhcnQ6IGZsb3dj
-X2lkICV1ICVwIGJ1ZiAlcAoAAAAAAAAAAABzZXR0aW5nL3Vuc2V0dGluZyBoc3MgcmVzeW5jIGJp
-dAoAAAAAAAAAAAAAAAAAAABNQyBpbml0aWFsaXphdGlvbiBub3QgY29tcGxldGluZywgTUMgY3Vy
-cmVudCBpbml0IHN0YXRlIGlzIDB4JTAyeAoAAAAAAAAAAAAAAAAAAHBjaWU6IG5wZiAldSAocGZi
-aXRtYXAgMHglMDJ4KSBudmYgJXUgKHBmIDAuLjMgMHglMDJ4IDB4JTAyeCAweCUwMnggMHglMDJ4
-KQoAAAAAZmFpbGVkIHRvIGZpbmQgdGhlICVjJWMgVlBEIHBhcmFtZXRlcgoAAAAAAAAAAAAAZmFp
-bGVkIHRvIHBhcnNlIHRoZSAlYyVjIFZQRCBwYXJhbWV0ZXIKAAAAAAAAAAAAY2Y6IGZhaWxlZCB0
-byBhbGxvY2F0ZWQgbWVtb3J5IGZvciBjb25maWd1cmF0aW9uIGZpbGUsIHJldCAlZAoAAGZhaWxl
-ZCB0byBzdWNjZXNzZnVsbHkgZmluZCBDaGVsc2lvIFZQRAoAAAAAAAAAAGxvZyBpbml0aWFsaXpl
-ZCBAIDB4JTA4eCBzaXplICV1ICgldSBlbnRyaWVzKQoAAHNlbmRfbm9wb3V0OiBjb25uIFsweCV4
-XSwgc2VzcyBbMHgleF0sIGNza19mYyBbMHgleF0KAAAAAAAAAAAAAABzZXNzaW9uX2Jsb2NrOiBz
-ZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY29u
-bl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNza19m
-Yy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAAAA
-AAAAAABjc29ja19mcmVlOiBzaXplb2YoY3NrX2ZjLT51LmNzb2NrKSBbJXVdLCBieXRlcwoAAAAA
-AAAAAAAAAAAAAAAAY3NvY2tfY2xvc2VkOiBzaXplb2YodGNiX2ZjLT51Lm9mbGQuby5mb2lzY3Np
-X2Nvbm4pIFsldV0sIGJ5dGVzCgAAAAAAAAAAAAAAAAAAAABvZmxkX3RjcF9yZWxlYXNlX3RpZDog
-Y3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdIGluIGRlbGF5
-X3Byb2Nlc3NpbmcKAAAAAABxdWV1ZV9jc29ja193cjogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0s
-IGNza19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgY2JfZnVuYyBbMHgleF0KAAAAAAAAAABv
-ZmxkX3RjcF9kb19hY3RpdmVfY2xvc2U6IGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQg
-WzB4JXhdLCBjc2tfZmMtPnRjYl9zdGF0ZSBbMHgleF0KAAAAAABvZmxkX3RjcF9kb19hY3RpdmVf
-Y2xvc2U6IGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPnRj
-Yl9zdGF0ZSBbMHgleF0KAAAAAABmb2lzY3NpX2ZyZWVfc2Vzc2lvbjogc2VzcyBbJXVdLCBzZXNz
-X2ZjIFsweCUweF0KAAAAAAAAAAAAAAAAAAAAaXNjc2lfZnJlZV9zZXNzaW9uOiBzaXplb2Yoc2Vz
-c19mYy0+dS5mb2lzY3NpX3Nlc3Npb24pIFsldV0sIGJ5dGVzCgAAAAAAAAAAAAAAAABzZXNzaW9u
-X3JlY292ZXJ5OiBzZXNzLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsw
-eCV4XQoAAAAAAAAAAAAAAGNobmV0X2ZpbmRfbDJ0X2VudHJ5OiBkYWRkciBbJTA4eF0sIFsweCUw
-OHhdLCBsb2NhbCBuZXR3b3JrIFslZF0KAAAAAAAAAAAAAAAAAAAAbDJ0ZW50IFslMHhdLCBsMnRl
-bnQtPmlkeCBbJWRdCgB0Y3Bfc2VuZF9hb3Blbl9yZXE6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhd
-LCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgYnVmZmVyZWQgWyV1XSwgcmVzX2NudCBbMHgl
-eF0sIHNjaGVkX25vZGUubmV4dCBbMHgleF0KAG9mbGRfdGNwX3NlbmRfYW9wZW5fcmVxOiBjcGxf
-cmVxLT5GaWx0ZXIgWzB4JTB4XQoAAAAAAAAAAAAAAAAAAABvZmxkX3RjcF9zZW5kX2FvcGVuX3Jl
-cTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGluIGRlbGF5X3Byb2Nlc3NpbmcgIHBhdGhfcmVx
-X2NudCBbJXVdCgAAAAAAAAByYyBbJWRdLCBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lk
-IFsweCV4XQoAAAAAAAAAAAAAAAAAAAAAY3NvY2tfYWxsb2M6IHR4X2NoIFsweCV4XSwgbHBvcnQg
-WzB4JXhdLCBzbWFjX2lkeCBbJXVdLCBtc3NfaWR4IFsldV0gY29va2llIFslMDh4XQoAAAAAAAAA
-AAAAAAAAY3NvY2tfYWxsb2M6IGF2YWlsYWJsZSBbJXVdLCBuY3NvY2sgWyV1XSwgcG9zOmF0aWQg
-WzB4JXhdLCBjc2tfZmMgWzB4JXhdLCBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgc3BvcnQgWyV1
-XQoAAGNoYXBfY2FsY19kaWdlc3RfbWQ1IC0xCgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUg
-LTIKAAAAAAAAAABjaGFwX2NhbGNfZGlnZXN0X21kNSAtMwoAAAAAAAAAAGNoYXBfY2FsY19kaWdl
-c3RfbWQ1IC00CgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUgLTUKAAAAAAAAAABjaGFwX2Nh
-bGNfZGlnZXN0X21kNSAtNgoAAAAAAAAAAGZvaXNjc2lfcGVlcl9pbml0OiBjb25uX2F0dHItPmhk
-aWdlc3RfdG9fZGRwX3Bnc3ogWzB4JXhdCgAAAAAAAABmb2lzY3NpX3BlZXJfaW5pdDogY29ubl9m
-Yy0+Zmxvd2NfZm9pc2NzaV9jb25uX2RpZ2VzdF90b191bHAgWzB4JXhdCgAAAAAAAAAAAAAAAGZv
-aXNjc2lfcGVlcl9pbml0IGNvbm4gMHgleAoAAAAAd3JoX2ZvaXNjc2lfbm9kZTogbm9kZV93ci0+
-Zmxvd2lkX2xlbjE2IFsleF0KAAAAZm9pc2NzaV9pbm9kZV9tb2Q6IG5vZGVfZmMgWzB4JXhdLCBu
-b2RlX2ZjLT5mbG93Y19pZCBbJXVdIG5vZGVfd3ItPm5vZGVpZAoAAAAAAABmb2lzY3NpX2lub2Rl
-X2ZyZWU6IG5vZGVfZmMgWzB4JXhdLCBub2RlX2ZjLT5mbG93Y19pZCBbJXVdLCBub2RlX2ZjLT5u
-b2RlaWQgWyVkXQoAAAAAAAAAAAAAAAAAAABpbm9kZV9hbGxvYzogbm9kZV93ci0+bm9kZWlkIFsw
-eCV4XQoAAAAAAAAAAAAAAABmb2lzY3NpX2lub2RlX2FsbG9jOiBub2RlX2ZjIFsweCV4XSwgbm9k
-ZV9mYy0+Zmxvd2NfaWQgWyV1XSBub2RlX2ZjLT5mbG93Y19mb2lzY3NpX2lub2RlX2lkIFslZF0K
-AAAAAAAAAAAAAAAAAAAAZm9pc2NzaV9hbGxvY19zZXNzaW9uOiBmbG93aWQgMHgleCwgc2Vzcy5t
-YXhfY29ubiAlZCwgc2Vzcy5tYXhfcjJ0ICVkLCBzZXNzLm1heF9idXJzdCAlZCwgc2Vzcy5maXJz
-dF9idXJzdCAlZAoAAHdyaF9mb2lzY3NpX2NydGw6Y3RybF93ci0+Y3RybF9pZCAldQoAAAAAAAAA
-AAAAAG9mbGRfdGNwX2Rpc2Nvbm5lY3Q6IHRjYl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMt
-PmZsb3djX2lkIFsweCV4XSwgY3NrLT50Y2Jfc3RhdGUgWzB4JXhdCgAAAGZvaXNjc2lfdmFsaWRh
-dGVfbG9naW5fc3RhZ2U6IC0gMQoAAAAAAAAAAAAAAAAAAGRyb3BfYWxsX3Rhc2s6IHJlcXVlc3Rl
-ZCBsaWR4IFsldV0KAAAAAAAAAAAAAAAAAGdldF9yZWZfdGFzazogaXN0YXNrLT5mbG93Y19pZCBb
-MHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc3RhdGUgWyV1XSwgaXN0YXNrX2ZjLT5mbG93Y19mb2lz
-Y3NpX3Rhc2tfbGlkeCBbJXVdLCBsaWR4IFsldV0sIGlzdGN0eC0+cjJ0cCBbMHgleF0KAAAAAHJl
-Y3Zfbm9waW46IGNvbm4gWzB4JXhdLCBzZXNzIFsweCV4XSwgY3NrX2ZjIFsweCV4XQoAAAAAAAAA
-AAAAAABuZXRfbDJkZXZfZmluZF9ieV9hZGRyOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBs
-MmRjLT5scG9ydCBbJXVdLCBsMmRfZmMtPmZsb3djX2lkIFsweCV4XSwgbDJkYy0+aW40X2Rldi5p
-bl9hZGRyLmFkZHIgWzB4JXhdLCBhZGRyIFsweCV4XQoAAABuZXRfbDJkZXZfbXR1X2NvbmZpZzog
-bDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgbXR1ICV1CgAAAAAAAAAAc2Vzc2lvbl91bmJsb2Nr
-OiBzZXNzX2ZjLT5mbG93Y19pZCBbMHgleF0sIHNlc3NfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwg
-Y29ubl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjb25uX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNz
-a19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAA
-AAAAAAAAc2Vzc2lvbl9saW5rX25vdGlmeTogcG9ydCBbMHgleF0gbGluayBkb3duIHBpbmcgcmVj
-b3ZlcnkgZGlzYWJsZWQsIHRyeWluZyB0byByZWNvdmVyIHNlc3Npb24gWzB4JXhdIGNvbm4gWzB4
-JXhdCgAAAAAAAAAAAAAAAAAAAABzZXNzaW9uX2xpbmtfbm90aWZ5OiBwb3J0IFsweCV4XSBsaW5r
-IHVwIHNlc3Npb24gWzB4JXhdIGNvbm4gWzB4JXhdCgAAAAAAAAAAAAAAAGNobmV0X3ZpX2VuYWJs
-ZTogdmlpZCBbJWRdLCB2aV9mYy0+Zmxvd2NfdmlfZmxhZ3MgWzB4JXhdCgAAAAAAAABodyByZWdp
-c3RlciBvcGVyYXRpb24gbm90IGNvbXBsZXRpbmcsIHJlZyAweCUwOHggbWFzayAweCUwOHggdmFs
-dWUgMHglMDh4CgAAAAAAAE1ESU8gQ0w0NTogZmFpbGVkIHRvIHNldCB1cCBNTUQgYWRkcgoAAAAA
-AAAAAAAAAE1ESU86IGZhaWxlZCB0byByZWFkCgAAAAAAAAAAAAAATURJTyBDTDQ1OiBmYWlsZWQg
-dG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHdyaXRlCgAAAAAA
-AAAAAABod19pMmNfdHJhbnNhY3Rpb246IG5kYXRhICV1IGRhdGFbMF0gMHgleCBkYXRhWzFdIDB4
-JXggZGlmZiAldQoAaHdfaTJjX3RyYW5zYWN0aW9uOiBuZGF0YSAldSBkYXRhWzBdIDB4JXggZGF0
-YVsxXSAweCV4IGRpZmYgJXUgZHBvcyAldSBjb250ICV1IGZhaWxlZCB3aXRoIGVyciAlZAoAAAAA
-AAAAAAAAAAAAAGkyYyB0cmFuc2FjdGlvbiBmYWlsZWQgdG8gY29tcGxldGUKAAAAAAAAAAAAAAAA
-AGh3X3hnbV9sZWRfbGlua191cCBsZWQwIGNvbmZpZzogJXUKAAAAAAAAAAAAAAAAAGh3X3hnbV9s
-ZWRfbGlua191cCBsZWQxIGNvbmZpZzogJXUKAAAAAAAAAAAAAAAAAGhzc19zaWdkZXRbJXVdOiBo
-c3Nfc2lnZGV0IGNoYW5nZWQgdG8gMHgleAoAAAAAAGNyX21vZHVsZV9yeF9sb3NbJXVdOiByeF9s
-b3MgY2hhbmdlZCB0byAldQoAAAAAAFdBVENIRE9HOiBBY3RpdmF0aW5nCgAAAAAAAAAAAAAAV0FU
-Q0hET0cgLSBFbmFibGUgYWN0aW9uICV1IHRpbWUgJXUKAAAAAAAAAAAAAAAAV0FUQ0hET0cgLSBE
-aXNhYmxlIGFjdGlvbiAldQoAAABXQVRDSERPRzogRGUtYWN0aXZhdGluZwoAAAAAAAAAAGh3X3hn
-bV9wb3dlcnVwIHBvcnQgJXUgZW4gJXUKAAAAaHdfeGdtX3Bvd2VydXAgb25seSBwb3J0IChwICV1
-IGVuICV1KQoAAAAAAAAAAAAARkNvRSBGQ0IgbGlua2Rvd246IGlvX3JlcSAweCV4JXggaXFpZCAw
-eCV4IGZsb3dpZCAweCV4IG9wIDB4JXgKAGZjb2Ugbm90aWZ5IDogVXBkYXRlIG5ldyBEQ0JYIHZh
-bHVlcyBWSSBzdGF0ZSAweCV4IHByaSAweCV4IHNjaGVkY2wgMHgleCBkY2J4X2RvbmUgMHgleAoA
-AAAAAAAAAGZjb2Ugbm90aWZ5IDogRkNGIGZsb3dpZCAweCV4LCB1bHBjaCAweCV4IAoAAAAAAGZj
-b2Ugbm90aWZ5IDogRENCWCA6IHBvcnQgMHgleCwgcHJpb3JpdHkgMHgleCB1bHB0eGNoIDB4JXgg
-Y2xhc3MgMHgleAoAAAAAAAAAAAAARkNvRSBGQ0YgdGltZXI6IGZsb3djIHN0YXRlIDB4JXgsIHBv
-cnQgMHgleCAsZmNmIDB4JXgsIGZsb3djX2lkIDB4JXgKAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rp
-b25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4
-JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4JTA4eCBleGlzdHMgQCBMRSBpbmRleCAl
-dQoAAAAAAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1
-cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUw
-OHggZXhpc3RzIEAgTEUgaW5kZXggJXUKAAAAAAAAAG9mbGRfY29ubmVjdGlvbl93cjogY29ubmVj
-dGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4JTA0eCBsaXAgMHglMDh4JTA4eCBwaXAg
-MHglMDh4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rp
-b24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCBwaXAgMHglMDh4
-IGZpbHRlciAweCUwOHgKAAAAAAAAAAAAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBpcWVzaXpl
-ICV1IHRvbyBzbWFsbAoAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBpcWlkICV1IHRvbyBsYXJn
-ZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogaXFpZCAldSBu
-b3QgYWxsb2NhdGVkCgAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwwaWQgJXUgdG9vIGxhcmdl
-IChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IG5v
-dCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAldSB2Zm4gJXU6IGZsMWlkICV1IHRvbyBsYXJnZSAo
-bWF4ICV1KQoAAAAAAAAAAAAAAAAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSBub3Qg
-YWxsb2NhdGVkCgAASVFGTElOVCBwZm4gJXUgdmZuICV1OiBmbDFpZCAldSBpcyB2YWxpZCBidXQg
-bm90IGZsMGlkICV1CgAAAAAAAElRRkxJTlQgcGZuICV1IHZmbiAldTogZmwxaWQgJXUgaXMgdmFs
-aWQgYnV0IGhlYWRlciBzcGxpdCBmZWF0dXJlIGlzIG5vdCBlbmFibGVkCgAAAAAAAAAAAAAAAAAA
-AElRIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAElRIHBmbiAl
-dSB2Zm4gJXU6IGlxaWQgJXUgbm90IGFsbG9jYXRlZAoAAAAAAAAAAElRIHBmbiAldSB2Zm4gJXU6
-IGZsMGlkICV1IGZsMWlkICV1IGJ1dCBub3Qgc3VwcG9ydGVkCgAAAAAAAAAAAABFUSBwZm4gJXUg
-dmZuICV1OiBjcmVhdGluZyBFVEggZXFpZCAldSB3aXRoIHBlbmRpbmcgV1IocykgKG51bV9ieXRl
-cyAldSBhbmQgZmxhZ3MgMHglMDh4CgAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBjcmVhdGluZyBD
-VFJMIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChudW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4
-JTA4eAoAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBlcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoA
-AABFUSBwZm4gJXUgdmZuICV1OiBlcWlkICV1IG5vdCBhbGxvY2F0ZWQKAAAAAAAAAABwb3J0X2Js
-aW5rX2xlZF9yZXN0b3JlCgAAAAAAAAAAAHBvcnRfYmxpbms6IGJsaW5rZHVyPTB4JXggYmxpbmtf
-cmVmY250CgAAAAAAAAAAAHBvcnRfYmxpbms6IAlibGlua19yZWZjbnQ9MHgleAoAcG9ydF9ibGlu
-azogCWJsaW5rX3JlZmNudD0weCV4CgBtaWlfYWR2X3NwZWVkWyV1XTogcmNhcHMgMHgleAoAAG1p
-aV9pbml0WyV1XTogYWNhcHMgMHgleAoAAAAAAAAAbWlpX3Bkb3duWyV1XTogcG93ZXJkb3duIGVu
-ICV1CgBwb3J0WyV1XTogZ2F2ZSB1cCBmaXhpbmcgZXJyb3JzISEhCgAAAAAAAAAAAAAAAABwb3J0
-WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgcGNhcHMgMHgleCBhY2FwcyAweCV4IHJjYXBzIDB4
-JXgKAAAAAAAAAAAAAAAAAAAAAHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBpbnZhbGlk
-IHJlcXVlc3QsIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAAAA
-AHBvcnRbJXU6MHglMDJ4OjB4JTAyeF06IGwxY2ZnLCBtZGkgbi9hIHBjYXBzIDB4JXggYWNhcHMg
-MHgleCByY2FwcyAweCV4CgAAAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIGNh
-bm5vdCBmb3JjZSBtdWx0aXBsZSBzcGVlZHMsIHBjYXBzIDB4JXggYWNhcHMgMHgleCByY2FwcyAw
-eCV4CgAAUVNGUCBtb2R1bGUgdW5wbHVnIC0gcmVpbml0aWFsaXppbmcgcnhfbG9zICB0byAweGZm
-CgAAAAAAAAAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRlOiBjaGFuZ2VkIHJ4X2xvcyBmcm9t
-IDB4JXggdG8gMHgleAoAAAAAAABncGlvX3FzZnBfbW9kdWxlX3VwZGF0ZTogY2hhbmdlZCB0eF9k
-aXMgZnJvbSAweCV4IHRvIDB4JXgKAAAAAAAAZ2V0X3JlZl90YXNrOiByZXF1ZXN0ZWQgY29va2ll
-OiBoaWdoIFsweCUwOHhdLCBsb3cgWzB4JTA4eF0KAAAAAGdldF9yZWZfdGFzazogdGFzayBjb29r
-aWU6IGhpZ2ggWzB4JTA4eF0sIGxvdyBbMHglMDh4XQoAAAAAAAAAAABnZXRfcmVmX3Rhc2s6IGlz
-dGFzay0+Zmxvd2NfaWQgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX3N0YXRlIFsldV0sIGlzdGN0
-eC0+cjJ0cCBbMHgleF0KAAAAAAAAAABnZXRfcmVmX3Rhc2s6IHRhc2sgbm90IGZvciBjb29raWUg
-JWx4CgAAAAAAAAAAAABGQyBYQ0hHIEZJTkQ6IE5vIFhDSEcgYWxsb2NhdGVkIGZvciBXUiB3aXRo
-IGNvb2tpZSAleCAleCAKAAAAAAAAd3JoX2lzY3NpX3Njc2lfcmVhZDogaXN0YXNrX2ZjLT5mbG93
-Y19pZCBbJXVdIGFscmVhZHkgc2NoZWR1bGVkCgAAAAAAAAAAAAAAAAAAAAB3cmhfaXNjc2lfc2Nz
-aV9yZWFkOiBpc3Rhc2tfZmMtPmZsb3djX2lkIFsldV0gYWxyZWFkeSBzY2hlZHVsZWQKAAAAAAAA
-AAAAAAAAAAAAAGNobmV0X2wydF91cGRhdGU6IGwyZGV2X2ZjIFsweCV4XSwgbDJkZXZfZmMtPmZs
-b3djX2lkIFsldV0gbDJkZXZfZmMtPmZsb3djX2ZsYWdzIFsweCV4XQoAAAAAAAAAAGNobmV0X2wy
-dF91cGRhdGU6IGwyZGV2X2ZjLT5mbG93Y19pZCBbJXVdIGFscmVhZHkgc2NoZWR1bGVkCgAAAABj
-aG5ldF9sMnRfdXBkYXRlOiBpbiBkZWxheWVkX3Byb2Nlc3NpbmcsIGwydGVudCBbJTA4eF0KAAAA
-AAAAAAAAbmV0aWZfcHJvY2Vzc19kaGNwX29wdHM6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0s
-IE1TR19UWVBFIFslZF0sIGRoY3R4dC0+c3RhdGUgWyVkXQoAAAAAAAAAAAAAY2huZXRfZGhjcF9y
-ZWN2OiB2bGFuaWQgWyV1XSwgbDJkZXZfcGlkX2ZjLT5mbG93Y19uZXRfbDJkZXZfdmxhbmRldiBb
-MHgleF0sIGwyZGV2X2ZjIFsweCV4XQoAAAAAY2huZXRfZGhjcF9yZWN2OiBsMmRldl9mYy0+Zmxv
-d2NfaWQgWzB4JXhdLCBkaGN0eHQtPnN0YXRlIFslZF0sIG1hbGFjaW91cyBkaGNwIHJlY3YgZm9y
-IG5vIHJlcXVlc3QKAAAAAAAAAAAAAAAAAGRoY3R4dC0+c3RhdGUgOiAlZAAAAAAAAAAAAAAAAAAA
-bDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgQmFkIERIQ1AgY29va2llIHJlY2lldmVkLCBhYm9y
-dGluZwoAAGljbXBfcmVjdjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgcGlkIFsweCV4XSwg
-aWNtcCB0eXBlIFsweCV4XQoAAAAAAAAAAAAAAAAAQUJUUyBBQ0MgYXdhaXRpbmcgUFJMSSBSc3A6
-IGZsb3djX2lkIDB4JXggb3hfaWQgMHgleCByeF9pZCAweCV4IGlxaWQgMHgleAoAAAAAAABjc29j
-a19wZWVyX2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT50Y2JfZmMtPmZs
-b3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIGNza19mYy0+Zmxvd2Nf
-Y3NvY2tfdGNiX2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0KAAAAAAAAAAAAY3NvY2tfcGVlcl9jbG9z
-ZTogY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgIFsweCV4XQoA
-AAAAAAAAAAB3cmhfb2ZsZF90Y3BfY2xvc2VfY29uX3JlcGx5OiB0Y2JfZmMtPmZsb3djX2lkIFsw
-eCV4XSwgdGNiX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgbGVuMTYgWyV1XSwgbG9jIFsldV0KAAAA
-AAAAAAAAd3JoX29mbGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTogcnBsLT5vcF9UaWQgWzB4JXhdLCBy
-cGw+c3RhdHVzIFsweCV4XSwgcnBsLT5zbmRfbnh0IFsweCV4XSwgcnBsLT5yY3Zfbnh0IFsweCV4
-XQoAAHBrdHNjaGVkX2NoX3JsWyV1XTogd2VpZ2h0ICV1JQoAcGt0c2NoZWRfY2hfcmxbJXVdOiBy
-YXRlICV1IG1heCAldQoAAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2xfd3JyWyV1OiV1XTogd2VpZ2h0
-ICV1IHdlaWdodGVkX21hc2sgMHgleAoAAAAAAAAAAAAAAGVxX3BhcmFtc1sweCV4OjB4JXhdOiBk
-bWFxIDB4JXggcmVhZCAldSBwZiAldSBlcWlkX2FwaSAldSByZXQgJWQKAAAAAAAAAAAAAAAAAAAA
-CUFRX1Rha2VDb250cm9sT2ZGTEFTSDogMWUuYzAwMT0lI3ggMWUuYzQ1MD0lI3ggMWUuYzQ1MT0l
-I3ggMWUuMTAwPSUjeAoAAAAAAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdlIC0g
-SW1hZ2UgaW50ZWdyaXR5IGNoZWNrIGZhaWxlZCAoY2FsYyAlI3ggdmFsICUjeCkKAAAAAAAAAAAA
-AAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaEltYWdlIC0gSW1hZ2UgaW50ZWdyaXR5IGNo
-ZWNrIHBhc3NlZAoAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQgd2Fp
-dGluZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlG
-bGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAA
-AEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZs
-YXNoIGludGVyZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAt
-IFRpbWVvdXQgd2FpdGluZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkgKHBwICUjeCBhcCAlI3gp
-CgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQgd2FpdGluZyBm
-b3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFzaElt
-YWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoAAAAAAEFRX0FQ
-SV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBFcnJvciBvbiBidXJuaW5nIEZMQVNIIChjcmMx
-NiBtaXNtYXRjaCkKAAAAAAAAbWFsbG9jX2RlY1sldV06IHN0YXJ0ICVwIGVuZCAlcCBuZXh0ICVw
-IHNpemUgMHgleCBhbGlnbWVudCAweCV4IHAgJXAKAAAAAAAAAAAAAABtYWxsb2NfaW5jWyV1XTog
-c3RhcnQgJXAgZW5kICVwIG5leHQgJXAgc2l6ZSAweCV4IGFsaWdtZW50IDB4JXggcCAlcAoAAAAA
-AAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBsZWFzdCAxNiBl
-bnRyaWVzLCBuaGFzaCAldQoAAAAAAAAAAAAAAAAAbGUgY29uZmlndXJhdGlvbjogaGFzaCBtb2Rl
-IHJlcXVpcmVzIGF0IGVudHJpZXMgdG8gYmUgYSBwb3dlciBvZiAyLCBuaGFzaCAldQoAAABsZSBj
-b25maWd1cmF0aW9uOiByZXF1ZXN0ZWQgJXUgdGNhbSBlbnRyaWVzIGJ1dCBvbmx5ICV1IGF2YWls
-YWJsZQoAAAAAAAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IHRjYW0gcmVnaW9ucyBtdXN0IGhh
-dmUgbXVsdGlwbGUgb2YgMzIgZW50cmllcywgbnJvdXRlICV1IG5jbGlwICV1IG5maWx0ZXIgJXUg
-bnNlcnZlciAldQoAAAAAAABvZmxkIHRwIHRpbWVyIHNldHRpbmdzIFRQX01TTCAweCUwOHggVFBf
-UlhUX01JTiAweCUwOHggVFBfUlhUX01BWCAweCUwOHggVFBfUEVSU19NSU4gMHglMDh4IFRQX1BF
-UlNfTUFYIDB4JTA4eAoAICAgICAgICAgICAgICAgICAgICAgICBUUF9LRUVQX0lETEUgMHglMDh4
-IFRQX0tFRVBfSU5UVkwgMHglMDh4IFRQX0lOSVRfU1JUVC5pbml0X3NydHRfbWF4cnR0IDB4JTA0
-eCBUUF9JTklUX1NSVFQuaW5pdF9zcnR0X2luaXRzcnR0IDB4JTA0eCBUUF9GSU5XQUlUMl9USU1F
-UiAweCUwOHgKAAAAAAAAAAAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2VyIGVuY291bnRlcmVk
-IGVycm9yIEAgbGluZSAldToKAAAAAAAAAAAAaHdfaTJjX3cgcG9ydCAldSBkZXYgJXggcmVnICV1
-IGRhdGEgMHgleAoAAAAAAAAASE9TVCBQQUdFX1NJWkUgWzB4JTBseF0gdG9vIHNtYWxsLCBtaW4g
-WzB4JTBseF0gcmVxdWlyZWQKAAAAAAAAAHBhZ2Ugc2l6ZSBbJWx1XSBtaXNtYXRjaAoAAAAAAAAA
-UEFHRSBzaXplICVsdSB1bnN1cHBvcnRlZCwgZGRwIGRpc2FibGVkCgAAAAAAAAAASG9zdCBwYWdl
-X3NpemUgJWx1LCBkZHBfaWR4ICV1CgBGQ29FIEREUCBpbml0OiBmY29lIGxsaW1pdCAweCV4LCBm
-Y29lIHVsaW1pdCAweCV4IGdibCBsbGltaXQgMHgleCBnYmwgdWxpbWl0IDB4JXgKAAAAAAAAAAAA
-AAAAAABGQ29FIEREUCBpbml0OiBmY29lIHBwb2Qgb2ZmIDB4JXgsIGZjb2Ugc3QgcHBvZCBhZGRy
-IDB4JXggZmNvZSBudW0gcHBvZHMgMHgleAoAAGZjb2UgeGNoZyBtZ3IgaW5pdDogTnVtYmVyIG9m
-IGV4Y2hhbmdlcyBmb3IgRkNvRSBpcyAleAoAAAAAAAAAAABDYWxjdWxhdGlvbiBvdXQgb2YgYm91
-bmRzIGZ1cmluZyBpbml0OiAlI3ggJSN4ICUjeAoAAAAAAAAAAAAAAAAAcGZuICV1IHZmbiAldSBo
-YXMgcG5kdHhucyAldSBhZnRlciAxMDBtcwoAAAAAAAAAYmFkIG1haWxib3ggY21kOiBwZm4gMHgl
-eCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggPiBMQVNUQzJFIDB4JXgKAG1haWxib3ggY21kIG5vdCB5
-ZXQgc3VwcG9ydGVkOiBwZm4gMHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXgKAABiYWQgbWFpbGJv
-eCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHgleCBpcyB2YWxpZCBwb3N0IGRldmlj
-ZSBpbml0IG9ubHkKAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJhbWFzayAw
-eCV4IGNtZCByYW1hc2sgMHgleAoAAAAAAAAAAAAAAAAAAAAAYmFkIG1haWxib3ggY21kOiBwZm4g
-MHgleCB2Zm4gMHgleDsgbGVuMTYgMHgleCB2ZXJzdXMgZXhwZWN0ZWQgbGVuMTYgMHgleAoAAAAA
-AABpbnN1ZmZpY2llbnQgY2FwcyB0byBwcm9jZXNzIG1haWxib3ggY21kOiBwZm4gMHgleCB2Zm4g
-MHgleDsgcl9jYXBzIDB4JXggd3hfY2FwcyAweCV4IHJlcXVpcmVkIHJfY2FwcyAweCV4IHdfY2Fw
-cyAweCV4CgAAAAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3MgbWFpbGJveCBjbWQ6
-IHBmbiAweCV4IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXggcmVxdWlyZWQgcl9j
-YXBzIDB4JXggd19jYXBzIDB4JXgKAAAAAAAAAAAAVlBEIHJlZ2lvbiBpcyB0b28gc21hbGwgKFNF
-UkNGR19TUl9QRk5WUERTSVpFIDB4JXgpCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAggAAASAAAAAAAAAAggAA
-AQAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoCAAAAAAAAAAAAAAAAA
-gAAAAAAAAAAAAoAAAAAAAAAAAAACAAMAAAAAAWAIAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAA
-AAIAAAAAAAAAAAAgAAAAAAAAAAAAAAABAAOAAAAAAAAAAAAAAAIAAAAAAAAAAAAgA4AAAAAAAAAA
-AAAQAoAAgAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAIAAAAA
-AAAAAAAAAAKAAAAAAAAAAAABAAMAAAAAAAAAAAAAAoMAAAAAAAAAAAAQAoAAAAAAAAAAAAAwAAMA
-AAAAAAAIAAAwAAMAAAAAAAAAAAAwBYMAAAAAAAAIAAAwBYMAAAAAAAAAAAAwBIMAAAAAAAAIAAAw
-BIMAAAAAAAAAAAAwAwMAAAAAAAAIAAAwAwMAAAAAAAAAAAA4AwMAAAAAAAAAAAA4BYMAAAAAAAAA
-AAA4BIMAAAAAAAAAAAA4AAMAAAAAAAAAAAA0BoIAAAAAAAAAAAA8A4IAAAAAAAAAAAA8AAMAAAAA
-AAAIAAA8AAMAAAAAAAAAAAA8BIMAAAAAAAAAAAA8BQMAAAAAAAAAAAA9BAMAAAAAAAAAAAA8A4MA
-AAAAAAAAAAAsAAIAAAAAAAAAAAAsBYIAAAAAAAAAAAAsBQIAAAAAAAAAAAAQBoAAAAAAAAAAAAAQ
-BoLAAAAAAAAAAAAQBoKAAAAAAAAAAAAADoIAAAAAAAAAAAAQB4KAAAAAIAAAAAAAB4IAAAAAIAAA
-AAAQBwKAAAAAAAAAAAAQBwKAAAAAAAAAAAAQBwKAAAAAAAAAAAAABwIAAAAAIAAAAAAQF4MAAAAA
-AAAIAAAQF4MAAAAAAAAIAAAQAAAAAAAAAAAAAAAQBgOAAAAAAAAAAAAADgMAAAAAAAAAAAAQBgNA
-AAAAAAAAAAAQBgMAAAAAAAAAAAAQBgAAAAAAAAAAAAAABgOAAAAAAAAAAAAABgMAAAAAAAAAAAAA
-DgIAAAAAAAAAAAAADgIAAAAAAAAAAAAQBgIAAAAAAAAAAAAQBgIAAAAAAAAAAAAQBgKAAAAAAAAA
-AAAQBgKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAEAMAAAAA
-AAAIAAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////////8AAAAgAAAAAMAAAAAAAAAgAAAAAOAA
-AAAAAAAAAgAAAAAAAABAAAAAAAAAAAAAAAAAAAEhAAAAAAAAAAAAAQEgAAAAAAAAAAAAAAIAAAAE
-AAQAAAAABQAAAAQAAAAAAAAAAACgAAAAAIAAAAAAgABAAAAAAAACAAAAgAAgAAAAAAACAAABAEAA
-AAAAAAAAAAABAEIAAAAAAAAAAAAAACAAAAAAAAAAAAACECAAAAAAAAAAAAACDAIAAAAAAAAAAAAA
-hQIAAAAEAAAAAAAAgEIAAAAAAAAAAAACACIAAAAAAAAAAAAAgEEAAAAAAAAAAAAAgEGAAAAAAAAA
-AAACACEAAAAAAAAAAAAAECCAAAAAAAAAAAACJQCAAAAAAAAAAAAABQAAAAAAAAAAAAAIiASAAAAA
-AAAAAAAIiASAAAAAAAAAAAAIogCAAAAAAAAAAAAIogCAAAAAAAAAAAAIowCAAAAAAAAAAAAIowCA
-AAAAAAAAAAAIpICAAAAAAAAAAAAIpICAAAAAAAAAAAAEpIDAAAAAAAAAAAAEogDAAAAAAAAAAAAE
-owDAAAAAAAAAAAAEiATAAAAAAAAAAAAACQGAAAAAAAAAAAACDACAAAAAAAAAAAAAiATAAAAAAAAA
-AAAAiASAAAAAAAAAAAACCwCAAAAAAAAAAAAAioCAAAAAAAAAAAAAC4CAAAAAAAAAAAAAjACAAAAA
-AAAAAAACIBCAAAAAAAAAAAACCgCAAAAAAAAAAAACCoCAAAAAAAAAAAAACQKAAAAAAAAAAAAAAQEA
-AAAAAAAAAAAAAQFAAAAAAAAAAAAAAQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAA
-AIEQAAAAAAAAAAAAAIEIAAAAAAAAAAAAAIEEAAAAAAAAAAAAAIGAAAAAAAAAAAAAgADAAAAAAAAA
-AAAAgACgAAAAAAAAAAAAAAgAAAAAAAAAAAAAgYAAAAAAAAAAAAAAgYCAAAAAAAAAAAAAiYCAAAAA
-AAAAAAAAiYDAAAAAAAAAAAAAAYIAAAAAAAAAAAACAYAAAAAAAAAAAAACAYCAAAAAAAAAAAAAQYGA
-AAAAAAAAAAACAYGAAAAAAAAAAAAASYGAAAAAAAAAAAACCYGAAAAAAAAAAAACAYEAAAAAAAAAAAAA
-QYEAAAAAAAAAAAAgAAAAAAAAAAAAAAAQAAACAAAAAAAAAAAQAAAAAAAAAAAAAAAAgADAAAAAAAAA
-AAAAAAAAAAAAAAAAAAD/////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////
-//////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgA
-kgAAAAAAAAADZgAgAEAAAAAACACSAAAAAAAAAANyASUEQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAA
-AAgAAAACAIgDhwAAVgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAAA5YAIABA
-AAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCIA4UAAJYB
-IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCIA4UA
-AJYBIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCI
-A4UAAJYBIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAACAAOWACYEQAAAAAAIRyAB
-BAAAArIAAtIFICRAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAEcgAQYMoYKwQAGSBCAkQAAAAAAA
-RyABBAygQrOAAhIFICRAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAACAAAAAIAiAOFAACWASAAQAAA
-AAAIAAAAAgCIA4UAAJYBIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAADcUSugKwgNMUVIviSkYk
-QAAAAAAFxRK6AreA0xRUi2JJpiRAAAAAAAXFEqIGsIDTFFSL4kpGJEAAAAAADcUSoga3gNMUVIti
-SaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIGt4DTFFSLYkmmJEAAAAAABcUSogawgNMU
-VIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAnEEKACAICQAACLYmnGJEAAAAAAAcQQoAaw
-gJMGVItiacYkQAAAAAABxBCgBrCAkwZUi2JpxiRAAAAAAAHFELgGsICTFlSLYkjGJEAAAAAACKEQ
-iAIAgVgSAAtSAKYkQAAAAAAJwBCQArCAAxZUipIBxiRAAAAAAAnAELgGsIADEJSL4gJGJEAAAAAA
-CcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAnAELgCtIADEJSLYgGmJEAA
-AAAACcAQuAK0gAMQlItiAaYkQAAAAAABoBCQBrSAAxCUi2IBpiRAAAAAAAHAEIACsIADFFSKUgDG
-JEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAABwBCAArCAAxRUilIAxiRAAAAAAAhHIAEEAAACsgAC
-0gUgJEAAAAAAAIEAAAIAhVgHQAtSAKYkQAAAAAAAgQAAAgCFWAdAC1IApiRAAAAAAAAAAAAEAKBA
-AYAB1gAgAEAAAAAAAAAAAAYAoYAAQAFWACAAQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAiBAAAC
-AIVZgAQLUgCmJEAAAAAACWFAAAAAABgAAANCASakQAAAAAAIQAAAAAAAAAAAA1IBJiRAAAAAAAAA
-AAAEAKBAAYAB1gAgAEAAAAAACAAAAAIAiAOHAAPWACYEQAAAAAAIAAAAAgCIA4cAA9YAJgRAAAAA
-AAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAABACgQAGAAdYAIABA
-AAAAAAnAELgCtIADEJSLYgGmJEAAAAAAAAAAAAAAAAACAAOWACYEQAAAAAAAAAAAAAAAAAAAA5YA
-IABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAAAAAABACgQAGA
-AdYAIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAACKEQiAIAgVgQAAkSAaYkQAAAAAAAAAAABACg
-QAGAAdYAIABAAAAAAAAAAAAGAKGAAEABVgAgAEAAAAAACAAAAAIAiAOFQAjSAkYkQAAAAAAJxRKi
-ApSI0hCAiyJIpiRAAAAAAAnAEIACpIgAh1SLUgGmJEAAAAAACcAQgAa0iAMBFItSAaYkQAAAAAAN
-wAAAArCAwxZUi+IDRiRAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIADAABAAA
-AAIAAAIAJiRAAAAAAABHMAAGAyACtwAIAgHAJEAAAAAACAMAAAIGoAq1AAgCAMYkQAAAAAAAAAAA
-AAAAAAIAAAIAJiRAAAAAAAAgUAAEAAAAAgAAAgAmJEAAAAAACGAgAIQAAAAAAAAGACAAQAAAAAAI
-YCAAhAAAAAIBMAIAJiVAAAAAAAhgAAAEAIQBgAQEAgHGJMAAAAAAAcAAAAJDgAMCDIgCAaYkQAAA
-AAAIAGAABAAAAAIAAAIAJiRAAAAAAAgAYAAEAAAAAAAABAEgAEAAAAAAAAAAAAAAAAAAAAAEASAA
-QAAAAAAECBSABgoAAAcBTAIgpiZAAAAAAAiAAAAGAIQBgAQIAgGmJkAAAAAAAEAAAAIAoAACQAgC
-AaYkQAAAAAAAAAAAAAAAAAIAAAIAJiRAAAAAAAQAAAAChAADAooIAgSmJEAAAAAAAAAAAAAAAAAC
-AAAGASBIQAAAAAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAgAABgAmBEAAAAAACGAgAIQA
-AAACAAACASYlQAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAgAYAAEAAAAAAAABAEgAEAAAAAAAAAA
-AAAAAAAAAAACACZMcAAAAAAAAAAAAAAAAAAAAAYBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAcAAAAi0kAQJFgQCBMYkQAAAAAABwAAACLSQBAkWBAIExiRAAAAAAAQIdIBMCQAAUABc
-AmHmJEAAAAAADAh0gEQAAABSAEACYSYkQAAAAAAIAhCgBAAAAAABAAIAJiRAAAAAAAgCEKAEAAAA
-AAEAAgAmJEAAAAAABAh0AEIBAAAHAIgCYMYkQAAAAAANyBQAAgkAAARAnAJg5iRAAAAAAAnIEIAG
-tJAEApSIAmXGJEAAAAAADch0AEi0kAMAlIgCYKYkwAAAAAANyHQASLSQAwCUiAJgpiTAAAAAAAhH
-AAAEAAAAAAAAAgEgJEAAAAAACEcAAAQAAAACAAACBSAkQAAAAAAARyABDAchwrcACAIBwCRAAAAA
-AABHIAEMByHCtwAIAgHAJEAAAAAAAEcgAQwHIcK3AAgCAcAkQAAAAAAAACABCACEAAVAiAIBxiTA
-AAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAQgAhAAFQIgCAcYkwAAAAAAAACABhoIAAQLAiAID
-xiTAAAAAAAAAIAGCggAAAsCIAgPGJMAAAAAACcAgAYKkgAEFQIgCAcYkwAAAAAAIAAAADACEAAVA
-iAIBxiTAAAAAAAAAIAGGggABAsCIAgPGJMAAAAAAAAAgAYKCAAAAwIgCAqYkwAAAAAAJwCABgqSA
-AQVAiAIBxiTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQABCQEAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19tb2RlPWJhc2lj
-dmlydHVhbApyc3NfZ2xiX2NvbmZpZ19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2VwbGl0eix0bmxh
-bGxsa3AKcmVnWzB4MTAwOF09MHg0MDgxMC8weDIxYzcwCnJlZ1sweDEwMGNdPTB4MjIyMjIyMjIK
-cmVnWzB4MTBhMF09MHgwMTA0MDgxMApyZWdbMHgxMDQ0XT00MDk2CnJlZ1sweDEwNDhdPTY1NTM2
-CnJlZ1sweDEwNGNdPTE1MzYKcmVnWzB4MTA1MF09OTAyNApyZWdbMHgxMDU0XT05MjE2CnJlZ1sw
-eDEwNThdPTIwNDgKcmVnWzB4MTA1Y109MTI4CnJlZ1sweDEwNjBdPTgxOTIKcmVnWzB4MTA2NF09
-MTYzODQKcmVnWzB4MTBhNF09MHhhMDAwYTAwMC8weGYwMDBmMDAwCnJlZ1sweDEwYThdPTB4MjAw
-MC8weDIwMDAKc2dlX3RpbWVyX3ZhbHVlPTUsMTAsMjAsNTAsMTAwLDIwMApyZWdbMHg3ZGMwXT0w
-eDY0Zjg4NDkKZmlsdGVyTW9kZT1mcmFnbWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxh
-bixwb3J0LGZjb2UKdHBfcG1yeD0zMAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9wbXR4PTUwCnRw
-X3BtdHhfcGFnZXNpemU9NjRLCltmdW5jdGlvbiIwIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fw
-cz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9
-YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMSJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxs
-Cm52aT0xCm5pcWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApw
-bWFzaz0weDIKW2Z1bmN0aW9uIjIiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9
-MQpuaXFmbGludD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1hc2s9
-MHg0CltmdW5jdGlvbiIzIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlx
-ZmxpbnQ9OApuZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4OApb
-ZnVuY3Rpb24iNCJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTI4Cm5pcWZsaW50PTE3MApu
-ZXRoY3RybD0xMDAKbmVxPTI1NgpuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFzaz1hbGwKbmV0aG9m
-bGQ9MTAyNApucm91dGU9MzIKbmNsaXA9MzIKbmZpbHRlcj00OTYKbnNlcnZlcj00OTYKbmhhc2g9
-MTIyODgKcHJvdG9jb2w9bmljX3ZtLG9mbGQscmRkcCxyZG1hYyxpc2NzaV9pbml0aWF0b3JfcGR1
-LGlzY3NpX3RhcmdldF9wZHUKdHBfbDJ0PTMwNzIKdHBfZGRwPTIKdHBfZGRwX2lzY3NpPTIKdHBf
-c3RhZz0yCnRwX3BibD01CnRwX3JxPTcKW2Z1bmN0aW9uIjUiXQp3eF9jYXBzPWFsbApyX2NhcHM9
-YWxsCm52aT00Cm5pcWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NApuZXhhY3RmPTQKY21hc2s9
-YWxsCnBtYXNrPWFsbApuc2VydmVyPTE2Cm5oYXNoPTIwNDgKdHBfbDJ0PTEwMjQKcHJvdG9jb2w9
-aXNjc2lfaW5pdGlhdG9yX2ZvZmxkCnRwX2RkcF9pc2NzaT0yCmlzY3NpX250YXNrPTIwNDgKaXNj
-c2lfbnNlc3M9MjA0OAppc2NzaV9uY29ubl9wZXJfc2Vzc2lvbj0xCmlzY3NpX25pbml0aWF0b3Jf
-aW5zdGFuY2U9NjQKW2Z1bmN0aW9uIjYiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT00Cm5p
-cWZsaW50PTM0Cm5ldGhjdHJsPTMyCm5lcT02NgpuZXhhY3RmPTMyCmNtYXNrPWFsbApwbWFzaz1h
-bGwKbmhhc2g9MjA0OApwcm90b2NvbD1mY29lX2luaXRpYXRvcgp0cF9kZHA9MgpmY29lX25mY2Y9
-MTYKZmNvZV9udm5wPTMyCmZjb2VfbnNzbj0xMDI0CltmdW5jdGlvbiIxMDIzIl0Kd3hfY2Fwcz1h
-bGwKcl9jYXBzPWFsbApudmk9NApjbWFzaz1hbGwKcG1hc2s9YWxsCm5leGFjdGY9OApuZmlsdGVy
-PTE2CltmdW5jdGlvbiIwLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxp
-bnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgxCltmdW5j
-dGlvbiIxLyoiXQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRo
-Y3RybD0yCm5lcT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHgyCltmdW5jdGlvbiIyLyoi
-XQp3eF9jYXBzPTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5l
-cT00Cm5leGFjdGY9NApjbWFzaz1hbGwKcG1hc2s9MHg0CltmdW5jdGlvbiIzLyoiXQp3eF9jYXBz
-PTB4ODIKcl9jYXBzPTB4ODYKbnZpPTEKbmlxZmxpbnQ9NApuZXRoY3RybD0yCm5lcT00Cm5leGFj
-dGY9NApjbWFzaz1hbGwKcG1hc2s9MHg4Cltwb3J0IjAiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1
-CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCltwb3J0IjEiXQpkY2I9cHBwLGRjYngK
-YmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCltwb3J0IjIiXQpkY2I9
-cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdtPTMwCltwb3J0
-IjMiXQpkY2I9cHBwLGRjYngKYmdfbWVtPTI1CmxwYmtfbWVtPTI1Cmh3bT0zMApsd209MTUKZHdt
-PTMwCltmaW5pXQp2ZXJzaW9uPTB4MTQyNTAwMGIKY2hlY2tzdW09MHg3NjkwZjdhNQoAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAFtnbG9iYWxdCnJzc19nbGJfY29uZmlnX21vZGU9YmFzaWN2aXJ0dWFs
-CnJzc19nbGJfY29uZmlnX29wdGlvbnM9dG5sbWFwZW4saGFzaHRvZXBsaXR6LHRubGFsbGxrcApy
-ZWdbMHgxMDA4XT0weDQwODEwLzB4MjFjNzAKcmVnWzB4MTAwY109MHgyMjIyMjIyMgpyZWdbMHgx
-MGEwXT0weDAxMDQwODEwCnJlZ1sweDEwNDRdPTQwOTYKcmVnWzB4MTA0OF09NjU1MzYKcmVnWzB4
-MTA0Y109MTUzNgpyZWdbMHgxMDUwXT05MDI0CnJlZ1sweDEwNTRdPTkyMTYKcmVnWzB4MTA1OF09
-MjA0OApyZWdbMHgxMDVjXT0xMjgKcmVnWzB4MTA2MF09ODE5MgpyZWdbMHgxMDY0XT0xNjM4NApy
-ZWdbMHgxMGE0XT0weGEwMDBhMDAwLzB4ZjAwMGYwMDAKcmVnWzB4MTBhOF09MHgyMDAwLzB4MjAw
-MApzZ2VfdGltZXJfdmFsdWU9NSwxMCwyMCw1MCwxMDAsMjAwCnJlZ1sweDdkYzBdPTB4NjRmODg0
-OQpmaWx0ZXJNb2RlPWZyYWdtZW50YXRpb24sbXBzaGl0dHlwZSxwcm90b2NvbCx2bGFuLHBvcnQs
-ZmNvZQp0cF9wbXJ4PTMwCnRwX3BtcnhfcGFnZXNpemU9NjRLCnRwX3BtdHg9NTAKdHBfcG10eF9w
-YWdlc2l6ZT02NEsKW2Z1bmN0aW9uIjAiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApu
-aXFmbGludD0xNzAKbmV0aGN0cmw9OTYKbmVxPTI1MgpuZXhhY3RmPTQwCmNtYXNrPWFsbApwbWFz
-az1hbGwKbnJvdXRlPTMyCm5jbGlwPTMyCm5maWx0ZXI9NDgKbnNlcnZlcj0zMgpuaGFzaD0wCnBy
-b3RvY29sPW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90
-YXJnZXRfcGR1CnRwX2wydD0zMDcyCnRwX2RkcD0yCnRwX2RkcF9pc2NzaT0yCnRwX3N0YWc9Mgp0
-cF9wYmw9NQp0cF9ycT03CltmdW5jdGlvbiIxIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9
-NApuaXFmbGludD0zNApuZXRoY3RybD0zMgpuZXE9NjYKbmV4YWN0Zj0zMgpjbWFzaz1hbGwKcG1h
-c2s9YWxsCm5oYXNoPTAKcHJvdG9jb2w9ZmNvZV9pbml0aWF0b3IKdHBfZGRwPTIKZmNvZV9uZmNm
-PTE2CmZjb2VfbnZucD0zMgpmY29lX25zc249MTAyNApbZnVuY3Rpb24iMTAyMyJdCnd4X2NhcHM9
-YWxsCnJfY2Fwcz1hbGwKbnZpPTQKY21hc2s9YWxsCnBtYXNrPWFsbApuZXhhY3RmPTgKbmZpbHRl
-cj0xNgpbZnVuY3Rpb24iMC8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZs
-aW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MQpbZnVu
-Y3Rpb24iMS8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0
-aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MgpbcG9ydCIwIl0KZGNi
-PXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbcG9y
-dCIxIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3
-bT0zMApbcG9ydCIyIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAK
-bHdtPTE1CmR3bT0zMApbcG9ydCIzIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0y
-NQpod209MzAKbHdtPTE1CmR3bT0zMApbZmluaV0KdmVyc2lvbj0weDE0MjUwMDBhCmNoZWNrc3Vt
-PTB4NGU1NjY2MzkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAA
-====
diff --git a/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu b/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu
new file mode 100644
index 0000000..129a69f
--- /dev/null
+++ b/sys/dev/cxgbe/firmware/t4fw-1.8.4.0.bin.uu
@@ -0,0 +1,8237 @@
+/*-
+ * Copyright (c) 2013 Chelsio Communications, Inc.
+ * 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.
+ * 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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.
+ */
+begin-base64 644 t4fw
+AAADkgEIBAAAAQkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAA3cDhgONAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IFRodSBGZWIgIDcgMTU6
+Mzg6MjYgUFNUIDIwMTMgb24gY2xlb3BhdHJhLmFzaWNkZXNpZ25lcnMuY29tOi9ob21lL2Zpcm13
+YXJlL2N2cy9mdy1yZWxlYXNlKSwgVmVyc2lvbiBUNHh4IDAxLjA4LjA0LjAwAAAAAAAAAJ/jNKZg
+AMQA4QAwuHj///8f/OFAgAAAAeEAe3AAABAAH//7gOEAYBDhAZRwIAAAAOEBnAThAHkAAAIAQOEA
+eYAABgBAAAIACgAGAArhAHkEAAoAAIAAAQDhAHs84QB7ROEAe+TiAAAAAAEAAOEAe5AgAAAAAACA
+AOEAewAAAEAB4QB7nAAAQABERERC4AAAAOMABHNERERA4wAIACAAAlwAAAAAH/+NIAAAAAAf/40k
+AAAAAB//jSgAAAAAH/+NLB//wAAAAAAAAAAAAMAAEv/OE//OhCAEMwGTIBH/zRL/zZIQEf/NEv/N
+khAR/80B9DER/8yQEBH/zCIK/5IQAOQxAAUxAQIAEv/JAucxAhYAEf/IgRABAV/AIQIRAckUEf/F
+Ev/FkhAR/8US/8WSEGAAEgAAABH/vxL/w5IQEf+/Ev/CkhCBEBH/wcAgkhES/8CSEsAgkhMS/7+S
+EIIQAvJQZS/3Ef+9xy+SEBH/vJIQEv+8E/+8kyDAMpMhE/+7kyKCIhL/uhP/upMgIyIhFP+5BDMB
+yTgT/7iDMAODFAgzERT/tqQzkyET/6qTImAACMIwkyET/6eTIhL/sZAgkCGQIpAjkCSQJZAmkCeQ
+KJApkCqQK5AskC2QLpAvICYQICYRgiIS/6TAMC03MC03NC03OC03PCM9AXIz7QACABL/oSMKAC83
+AC83EC83IC83MCM9AXIz7QACABL/lsAwKDcwKDc0KDc4KDc8Iz0BcjPtAwIAEv+UwDAnNwAnNxAn
+NyAnNzAjPQFyM+0DAgAS/44V/48W/4/AMNcgBWYBYAAWAAAAAAQ2BQACANMP0w8FMwxuOxQHRxQH
+BEN2MeYENgUFMwxvO+0AAgAS/4IV/4AjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/3zJLoMghCGF
+IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9wwDIDLgUDAgAS/2fAMCg3QCg3RCg3SCg3TCM9
+AXIz7QMCAAACABL/ai0nAMARAUkxAEgxAQIAwAAU/2YE0jEV/2WUUBT/ZQTTMRX/ZZRQFP9kBNQx
+Ff9klFAU/2QE1TEV/2OUUBD/YwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/AAA
+H/wAAOMACfgf/AAAH/wAAOMACfgf/AAAH/wAAOMACfgf/4AAH/+GAOMACfgf/4YAH/+GAOMAD/gf
+/4YAH/+GAOMAD/gf/4YAH/+HdOMAD/gf/4d0H/+NIOMAEWwf/40gH/+nhOMAFxgf/6eEH/+nhOMA
+MXwf/8AAH//8ZeMAMXwgAAAAIAABauMAbeQgAAF4IAABfOMAb1AgAAF8IAABheMAb1QgAAGYIAAB
+nOMAb2AgAAGcIAABpeMAb2QgAAG4IAABvOMAb3AgAAG8IAABxeMAb3QgAAHYIAAB2OMAb4AgAAHc
+IAAB4uMAb4AgAAH4IAAB+OMAb4ggAAH8IAAB/OMAb4ggAAIYIAACGOMAb4ggAAIcIAACHOMAb4gg
+AAI4IAACOOMAb4ggAAI8IAACPOMAb4ggAAJYIAACWOMAb4ggAAJcIAACYuMAb4ggAAJ4IAACeOMA
+b5AgAAJ8IAACguMAb5AgAAKYIAGaouMAb5ggAoAAIAKTYOMCB6QgApNgIAKTYOMCGwQgApNgIAYP
+KOMCGwQgBg8wIAYT8OMFltQgBoAAIAaNUOMFm5QgBo1QIAdgsuMFqOQgB2DAIAdhjOMGfFQgCMAA
+IAjAAOMGfSAgCMAAIAjAAOMGfSAgCMAAIAkvL+MGfSAAAAAAAAAAAAAAAAAgAAYvIAAGICAACjkg
+AAYgIAAJpSAABiAgAAbZIAAJPSAACMIgAAYgIAAIcSAACCQgAAe5IAAGDSAAB2QgAAYgIAAGICAA
+BiAgAAb6AAAAAP///////w/8///w////APwgAItrIACMqyAAjNsgAIyhIACMYSAAjFcgAIwcIACM
+EiAAjAggAIu4IACM2SAAi64gAIuUAAAAAAAAAAAAAAAAAAAACgAAAAoAAAAUAAAACgAAAAoAAAAK
+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
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAgCgAR8X8T8X/TDwPmMQECABbxfRfxfndrBpBgtGZ3Y/hUDoBVk5kPFABj
+//kAAABsEAQY8Xsd8XYrIAcc8XYqIQj6AgAHcbsBAO7cOQ3cAoAAC6oCnDDj8XAZsASAAAiqAhzx
+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
+IANNtCADTmEgA09bIANPZSADTmEgA09bIANPWyADT1sgA09lIANOYSADTmEgA09bIANPWwMPCBKD
+jpOSAAAAAAAAAAAgA4eRIAOIrCADh5EgA4eRIAOIrCADiKwgA4isIAOHkSADh5EgA4eRIAOIrCAD
+iKwgA4l9IAOJ/SADinYgA4qwIAOKwyADi4UgA4wAIAOMEyADjH0gA4ytIAOM0gAAAAAgA5RBIAOV
+jSADkxQgA5M3IAOUKSADkvQgA5MMIAOVqiADlgggA5l9IAOYPSADmHcgA5aZIAOXCyADl3kgA5e4
+IAOX8CADmO0gA5jlIAOY3SADmKEgA5iZARAYAQABAAAgA+OoIAPjqCAD4bsgA+OoIAPhuyAD44Qg
+A+NdIAPhuyAD4pEgA+G7IAPhuyAD4oggA+G7IAPjqCAD4bsgA+G7IAPjqCAD4cQAAAAAAAAAAAMB
+AAIAAAAAAAAAAAAAAAAgBGA9IARe8SAEXvYgBGA9IARe8SAEXvEgBF7xIARe9iAEYD0gBGA9IARe
+8SAEXvEgBGVqIARlmCAEZx8gBGVqIARnFyAEZv0gBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVq
+IARlaiAEZWogBGVqIARm6CAEZtMgBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWog
+BGVqIARlaiAEZWogBGVqIARlaiAEZqggBGVqIARmjSAEZo0gBGVqIARlaiAEZm0gBGVqIARmjSAE
+ZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARl
+aiAEZWogBGVqIARlaiAEZWogBGVqIARlaiAEZWogBGVqIARmTQAAAAAAAAAAAAAAACAEqrYgBKq2
+IASpiSAEqrYgBKSmIASqrCAEqoggBKSmIASkpiAEpKYgBKSmIASkpiAEqWwgBKq2IASkpiAEqWwg
+BKq2AAAAAAAAAAAAAAAAIAS5vCAEuhEgBLxjIAS8EiAEu8sgBLugIAS7jSAEu4cgBLrdAAAAAAAA
+AAAAAAAAARAYAQACAAABEBgBAAIAACAFCAYgBQfbIAUGQyAFB6MgBQejIAUHoyAFBkMgBQejIAUG
+QyAFB4QgBQZDIAUGQyAFB4QgBQejAAAAAAAAAAAgBSuwIAUnfCAFK4QgBStYIAUrLCAFJ6MgBSej
+IAUnuiAFKxMgBSfvIAUn2yAFJ6MgBSfvIAUnoyAFJ6MgBSejIAUrsAAAAAAAAAAAAAAAAAAAAAAg
+BX9kIAV12CAFdYggBXGIAAAAAAAAAAAAAAAAIAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAF
+db4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1
+viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+
+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4g
+BXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAF
+dcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1
+viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXC
+IAV1viAFdb4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4g
+BXW+IAV1wiAFdb4gBXW+IAV1viAFdcIgBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1wiAF
+db4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1
+viAFdb4gBXW+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+
+IAV1viAFdb4gBXXCIAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4g
+BXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXW+IAV1viAFdb4gBXXCIAV1viAF
+db4gBXW+IAV1wiAFdb4gBXW+IAV1viAFdcIAAAAAAAAAAAAAAAAgBXYeIAV3HSAFeMsgBXi9IAV4
+qCAFeJogBXiFIAV4dyAFeGIgBXhVIAV4QiAFeDUgBXgiIAV4FSAFeAIgBXYLIAV37yAFd+IgBXfP
+IAV3wiAFd64gBXekIAV3kyAFd4kgBXd4IAV2CyAFdgsgBXYLIAV2CyAFdgsgBXYLIAV3ayAFdjcg
+BXYLIAV2CyAFdgsgBXdOIAV3NSAFdysgBXcMIAV2CyAFdvkgBXbfIAV2zCAFdrIgBXafIAV2hyAF
+dnQgBXZhIAV2UQAAAAAAAAAAIAV/uiAFf98gBYECIAWA2iAFgNMgBYDMIAWAxSAFgL4gBYC3IAWA
+sCAFgKkgBYCfIAWAlSAFgHcgBX/1IAV/lyAFf+wgBX/EAAAAAAAAAAAgBdCAIAXN5CAFzHggBcrE
+IAXHrCAFwcwgBcUIIAXFuFJWAAAAAAAAQb3NZQAAAABjb25maWd1cmF0aW9uIGZpbGUgcGFyc2Vy
+IGZvdW5kIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBhZnRlciBbZmluaV0KAABmY29lAAAAAHZu
+aWNfaWQAdmxhbgAAAAB0b3MAZXRoZXJ0eXBlAAAAbWFjbWF0Y2gAAAAAbXBzaGl0dHlwZQAAZnJh
+Z21lbnRhdGlvbgAAAGJhc2ljdmlydHVhbAAAAABzeW5tYXBlbgAAAABzeW40dHVwZW5pcHY2AAAA
+c3luMnR1cGVuaXB2NgAAAHN5bjR0dXBlbmlwdjQAAABzeW4ydHVwZW5pcHY0AAAAb2ZkbWFwZW4A
+AAAAdG5sbWFwZW4AAAAAdG5sYWxsbGtwAAAAaGFzaHRvZXBsaXR6AAAAAHRwX3BpbwAAdHBfdG1f
+cGlvAAAAMAAAAG5pY192bQAAbmljX3VtAABuaWNfdW1faXNnbABvZmxkAAAAAHJkZHAAAAAAcmRt
+YWMAAABpc2NzaV9pbml0aWF0b3JfcGR1AGlzY3NpX3RhcmdldF9wZHUAAAAAaXNjc2lfaW5pdGlh
+dG9yX2ZvZmxkAAAAaXNjc2lfdGFyZ2V0X2ZvZmxkAABmY29lX2luaXRpYXRvcgAAZmNvZV90YXJn
+ZXQAcG9mY29lX2luaXRpYXRvcgAAAABwb2Zjb2VfdGFyZ2V0AAAAcHBwAGRjYngAAAAAIAKQgAAE
+AAAAAAQAAAQAADB4AAAwWAAAMEIAACAF+SQgBd3wIAX5FCAF3gAgBd4UIAXdICAF3rwgBdy4AAEC
+AwAAAAAAAAAAAAAAACADsxwgA7KwIASzrAAAAAAgA7KoIAOyoCADspgAAAAAY4JTYwAAAAAAAAAA
+AAAAAAAAAAAAAAAEAAAABAAAAAhBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWpr
+bG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPQAAAAAAAAAAAAAAAAAAAAsAAAAgApDACAAAACAC
+kMwIAAAAIAKQ2AoAAAAgApDkDAAAACACkPASAAAAIAKRAA0AAAAgApEUDgAAACACkSQTAAAAIAKR
+NAoAAAAgApFIDgAAACACkVQYAAAAIAKRZA0AAAAgApGADgAAACACkZAQAAAAIAKRoBIAAAAgApG0
+DgAAACACkcgQAAAAIAKR2BEAAAAgApHsCgAAACACkgALAAAAIAKSDA0AAAAgApIYFAAAACACkigK
+AAAAIAKSQA8AAAAgApJMBgAAACACklwGAAAAIAKSZAYAAAAgApJsBgAAACACknQGAAAAIAKSfAkA
+AAAgApKEBgAAACACkpAEAAAAIAKSmAYAAAAgApKgCwAAACACkqgLAAAAIAKStAQAAAAgApKYBAAA
+ACACksAJAAAAIAKSyAkAAAAgApLUAAAAAAAAAAANAAAAIAKS4AoAAAAgApLwBgAAACACkvwCAAAA
+IAKTBAMAAAAgApC8AQAAACACkwgAAAAAAAAAAP///////wAAAAdDAAAAAAD/////////////////
+////AAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAAAAAAAADAgEAAAAAAAAAAAAAAAAAAAAABQAA
+AAMAAAABAAAAAiAF1IwgBdREIAXTPCAF0fwgBdG8IAXRkCAF0eQAAAAAAAACAAAABAAAAAgAAAAA
+AAAEBAhOQQAAVjAAAFYxAABWMgAAVjMAAFY0AABWNQAAVjYAAFY3AABWOAAAVjkAAFZBAABWQgAA
+VkMAAFZEAABWRQAAVkYAAGFsbAAqAAAAbm9uZQAAAAAweAAAcG9ydAAAAABwcm90b2NvbAAAAABn
+bG9iYWwAAGZ1bmN0aW9uAAAAAGZpbmkAAAAAcmVnAGZpbHRlck1vZGUAAHJzc19nbGJfY29uZmln
+X21vZGUAcnNzX2dsYl9jb25maWdfb3B0aW9ucwAAc2dlX3RpbWVyX3ZhbHVlAHRwX3BtcngAdHBf
+cG1yeF9wYWdlc2l6ZQAAAAB0cF9wbXR4AHRwX3BtdHhfcGFnZXNpemUAAAAAbXR1cwAAAABudmYA
+d3hfY2FwcwByX2NhcHMAAG5pcWZsaW50AAAAAG5lcQBuZXRoY3RybAAAAABudmkAcnNzbnZpAABu
+ZXhhY3RmAGNtYXNrAAAAcG1hc2sAAABuZXRob2ZsZAAAAABucm91dGUAAG5jbGlwAAAAbmZpbHRl
+cgBuc2VydmVyAG5oYXNoAAAAdHBfbDJ0AAB0cF9kZHAAAHRwX2RkcF9pc2NzaQAAAAB0cF9zdGFn
+AHRwX3BibAAAdHBfcnEAAABpc2NzaV9udGFzawBpc2NzaV9uc2VzcwBpc2NzaV9uY29ubl9wZXJf
+c2Vzc2lvbgBpc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlAAAAaXNjc2lfbWF4X3NnZQAAAHBwbV9t
+YXhfem9uZXMAAABwcG1fem9uZV9yYW5nZTAAcHBtX3pvbmVfcmFuZ2UxAHBwbV96b25lX3Jhbmdl
+MgBwcG1fem9uZV9yYW5nZTMAZmNvZV9uZmNmAAAAZmNvZV9udm5wAAAAZmNvZV9uc3NuAAAAZGNi
+AGJnX21lbQAAbHBia19tZW0AAAAAaHdtAGx3bQBkd20AdmVyc2lvbgBjaGVja3N1bQAAAABDaGVs
+c2lvX0ZPaVNDU0kAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6AAAAADBiAABZ
+ZXMAU2Vzc2lvblR5cGUAT0ZNYXJrZXIAAAAASUZNYXJrZXIAAAAARGF0YURpZ2VzdAAASGVhZGVy
+RGlnZXN0AAAAAEVycm9yUmVjb3ZlcnlMZXZlbAAASW1tZWRpYXRlRGF0YQAAAERhdGFQRFVJbk9y
+ZGVyAABEYXRhU2VxdWVuY2VJbk9yZGVyAEluaXRpYWxSMlQAAE1heENvbm5lY3Rpb25zAABNYXhS
+ZWN2RGF0YVNlZ21lbnRMZW5ndGgAAAAASW5pdGlhdG9yTmFtZQAAAEluaXRpYXRvckFsaWFzAABE
+ZWZhdWx0VGltZTJXYWl0AAAAAERlZmF1bHRUaW1lMlJldGFpbgAATWF4QnVyc3RMZW5ndGgAAEZp
+cnN0QnVyc3RMZW5ndGgAAAAATWF4T3V0c3RhbmRpbmdSMlQAAABUYXJnZXROYW1lAABUYXJnZXRB
+bGlhcwBUYXJnZXRBZGRyZXNzAAAAVGFyZ2V0UG9ydGFsR3JvdXBUYWcAAAAAQXV0aE1ldGhvZAAA
+U2VuZFRhcmdldHM9QWxsAENIQVBfQQAAQ0hBUF9JAABDSEFQX0MAAENIQVBfTgAAQ0hBUF9SAABE
+aXNjb3ZlcnkAAABOb3JtYWwAAE5vbmUAAAAAQ1JDMzJDAABDUkMzMkMsTm9uZQBOb25lLENSQzMy
+QwBDSEFQAAAAAENIQVAsTm9uZQAAAE5vbmUsQ0hBUAAAAE5vdFVuZGVyc3Rvb2QAAABJcnJlbGV2
+YW50AABSZWplY3QAAE5vAAA1AAAAAAAADAAAAAABAAF8AAwBAAAAABAAAAAUIAYKWAAAAxUOQAAA
+H/wAAB/8AAAf/6eIH/+niCAGE/AgBhiwIAdhkCAHYZAgB8AAIAgQQCAIQAAgCMAAIAjAACAJBvAg
+AqRsIAkHUCAGFEAIAAAAH/zgdCAIwFAoAAAAAQAAAOAAAAAf/44EAAgAAB//l3Af/5YoH/+WNP/9
+//8AmJaAAACAACACszwgCMDgH/+WRCAIwTAgAo0QAAAIBgAACAAABAAAAAD//yAJCJAD/9AAABAA
+AABAAAAf/5ZgAFAH/yAJCRAgAqyQAAAQAADAAAAAAA//ACAAAAAP//AgCMFQ//9AAB//lZAgCMGQ
+AAAf/h//ljjXaqR46Me3ViQgcNvBvc7u9XwPr0eHxiqoMEYT/UaVAWmAmNiLRPev//9bsYlc175r
+kBEi/Zhxk6Z5Q45JtAgh9h4lYsBAs0AmXlpR6bbHqtYvEF0CRBRT2KHmgefT+8gh4c3mwzcH1vTV
+DYdFWhTtqePpBfzvo/hnbwLZjSpMiv/6OUKHcfaBbZ1hIv3lOAykvupES97Pqfa7S2C+v7xwKJt+
+xuqhJ/rU7zCFBIgdBdnU0Dnm25nlH6J8+MSsVmX0KSJEQyr/l6uUI6f8k6A5ZVtZw48MzJL/7/R9
+hYRd0W+ofk/+LObgowFDFE4IEaH3U36CvTryNSrX0rvrhtORIAKLcCACiJAgAoxwIAKMACACkJAf
+/5iAIAkKICACi1AgCMHQIAjCED/////P////IAKLfCAJCkBnRSMB782riZi63P4QMlR2IAkKYCAJ
+CoAgCQqgIAkKwCAJCuAgApC4IAKKwCACjCwgAotsIAjCUCAJCwDAAAAAIAkLQAAAIAAgCMKA4QAA
+ACACixAgCMLQIAjC8CAIw4AgCMMgIAjDUB/83gAgCQfQIAkIMCAJC4AgBVgAGgAAACAJDDAAD0JA
+IAACmAACAAAgAovQIAkL4AD///8gAuVoIAjEoAQAAAiBAAAAAABIAAwAAAAgCMVAIAKLaAAAQAAg
+AueYIAKKRCAIxaAgCMVwIAjGACAIxdAgAwYEIAjGMCAJDGAgCMZgIAjGoCAIxwAgCMeAIAjG0CAI
+xzAgAAAAIAMC9CAIymAgBhP0CgAAACAC1ewgAqg8IAKlgAAAwAAgCQlQIAkJsCAIy/ACAAAAIAjM
+gCAIzUAf/5RwIAYSAAAP/AAAADAAIAjNcCAIzgAgCM6gVQAAAAAAD/4f/5YwAAAMIPAAAAAgCM7Q
+IAMvtB//lqAf/41wIAKLICAIzyAgCM9wH/+VhCAI0DAgCQ0AIAjP0CADGnAgCNCQIAjRACAI0VAg
+CQ2QIAjRkCAI0gD/9///H/+VmCAJDdAmAAAAIAjSYB//liQgCNLQIAYXMCAI01AgBhbwIAkOUBeQ
+AAAgBg9Af////yACgADAAAABIAjVMCAI1ZCAAAAAIAjTsCAGFkAAAFAAFLAAAIAAAAQgAy0YH/+P
+OCAI1KAVoAAAAACP/iAI1NAWoAAAIygVACCgAAA/8AAAI6AAAAP/AB8gBhb6IAjT8CAI1EAgCNXQ
+//8AABAAAAAgCNYgIAjWgA4AAAAgCNagKgAAACADLZQgCNbAIAjXECAI2VAf/5ZoIAjYoCAI2QAg
+CNdwIAjX4CACieQgCNhA4QGOACAJDpAAAZEMIAkO4CAJDxD///P/4QIWAOECGgD//8j///8X////
+H/8AAhkcAAIZfAACGZwf/5ZA///x/wACGqQAAhooAAIaqAACGjQAAhq0AAIaMAACGrD///f/AAD/
+6eECDgAAABOHIAKAICACgFAgAoCAAABADQAA//cAAA9CAAD/9QAA//AgCNoQIAjZsCAI2eAAAAwA
+AAAYAAACEDQAACBAAADEEAAAwAEAAMggIAjaQAAAxAD+AAAAAF/2pwCyN8dAAAAAHf///2IAAAAA
+AMQwIAkPYAAAxDEgCQ8wAADoACAI2pAgCNrQIAjaYAAAyAAgCQ+AAAAnECAJD7AAAMRFIASK0AAA
+yBAAABABAAAgfAAAMgDhAF4AAAJJ7wAAzAAgBhCMIAKAsCAI2wAgCNuQIAjbMCAI22D//7//IAjc
+AB//luAAHoSAAAGGoP/he4AABJPg//tsICAI3DAgCNygIAjc0CAI3QAgCN0wIAjdYCAI3cAgCN2Q
+AAIQCOD//gAgCN4QIAkP4CAJEBAgCRBAIAkQcAAAEBAAAFAQ4QIYAAAAf/0AABAR4QIXBOECFwAA
+AAwJ/wAA/wAADA4AAAwMAAAMC9////8AAAwKAADAEAACYloAAMMwIAKAwBAQAAAgEAAAABAHYP/v
++J8e/gAA4QIYDPAAw3Af/44AIAKA8AACEODhAhIAAIAAAAAAEgAAAhUAAAATiAAAIAEf/5VwHc1l
+AO////8gAoEgAADDUPf///8gAoFAgH////+Af/+//////z///wAHoSD/wAA/IAjeQAAAF3AgCRDw
+IAkQoCAJENAgA5voIAkRICAJEUAgBhHkH/+WLOEAegAgCN5wIAjekCAI3rAf/5SU4QB+AB//lcQA
+APP/BAAAAB//mJAUAAAAIAOjRB//o1AgCN9Qg/+3AIP/tiAgCRFgH/+keDAAABAgCRGgIAkSAB//
+jywgCRIw4QH+AB//kfwiIiIiH/+l9CAI36AAAAy8AACJBiAI39DgAAkkAJwAACAI3/AgCOBAAAIE
+wOEAjgAAAJaAAACWQCAGFAAAAJagAACWYOECACwAAeAA4QGSAAAB4wAf/5ZIIAjgYCAI4JAAABkc
+H/+kkAAP//8f/6REH/+PPOEBlgAf/5WsIAYWsAAAYAAgBha6AAAZCgAAg/8gAoF4CFABAADAAAQf
+/6X4IAXniCADy8QgBedM3q2+/xrAAAAgBhW4AAD/6iAGFsAAAAgUAACIAB//lLwgA+F4OAAAADAA
+AHQf/4QQIAKBgCAI4MAwAAAIMAAADDQAAAjQAAAAAACJFDsAAAg0kAAAADAAAP8H//8FXUqAIAPn
+oAAYAAAAOAAAIAkS4AYAAAAgA/V0+AAAAAH//+cAAcAAIAAAgAQAEAAf/5Sk4QGaAOEBmkDhAZo8
+4QGaOOEBmjThAZowgAAAA4AAAAIAAIbd//z//wABAADhAQ4AAAAVsB//ljwf/47QH/+PUCAEA1Ag
+CRhQIAkWACAJFkAgCRfwIAkYICAJFnAgCRawIAkW4CAJFyAgCRdQIAkXkCAJFdAP///w//AAAB//
+pKAgBBKgIAkZUCAJGYAgCRjwIAkYkB//lJwAACMoH/+ShAAA/4AgCOIw//v//+EB4sCQAADw/P+A
+7yAI4oAgCOLAAAD4AAACAQwAAgEIj////wAA8AAf/5W44QGYACAI4xAgCONgIAjjkCAI49DhAN4A
+AAIDCAACAgD///AA4QDuAB//llD//3//AADgAAAA/AAAAgMEAAERHAABERgAEAgAgAAIAB//laAA
+AgEE///AAAAA//4AACWAAAIDAB//lbDg/+LAIAkZsCAJGkAgCRpwIAkakCAJGiAAAP/zIAjkICAJ
+GrAgCORAIAka8AAAKjAAAP/4AAD/8QAA/48AAFK1AABICgAAj4IAAI+GAAA4AAAAj4oAAOM/AACD
+riAJGtAgCORg///PvwAAEEAgAoHQIAjkkCAJGxAAAP/7IAKB4B3/8O8AAAoAIAjk0P//3/8gAoIQ
+IAjlcCAI5UAgCRtAAAIWCH8///8AAPn/AAD+/wAA/8AAAP8/IAkbkCAI5QAgCRxAIAkb8OAABgAf
+/5NwH/+PBAAC//8AAJxAIAkSgCAI5bAgCOYQAACAwgAA/gAgBG8kIAjm0AAAIQAgBHf8IAYQmCAG
+EKggBhC4IAYQyCAGENggBhDoIAYQ+CAGFCAgCOcAAAGQ+CAI50AgCOewIAjn4OECFiQBMPhAIAjo
+ECAJHRAgCOiQIAjoUOECAAQbAAAAAAMAAiAI6SAAJiWgAmJaAAX14QAgCOjQIAjpsCAI6XAgCOlA
+IAjp0B//powgCOogBAEACAAAGRQAAN6tH/+kPCACgyAAAIMAIAjsoBAABQ3uAAAAAcCAAAkAAAAA
+AIIAIAjrwCAI7BAgCOxQEAAHAiAI7WAAAPz/IAjt4AAFAAIgCO4QIAjuMCACg3AgCO5QIAOxCCAD
+rjAgA7BUIAjucCAGFCgA/8AAEgAAACAEx6ggCO8QIAju0CAI71AgCO+wIAkeQCAI8NAgAoqgIAjw
+8CAI8AAgCPBgAP///AAAEDb//+//IAKDoB//pIQgA/GcAAAIUCACg6gyAAAAAAAIQAD///oAAIAF
+3q2+74GAAAAAAIP9MAAAHDAAAAQwAAAUAAD/7//+//8f/6U0IAKDsAD/8AAAKAAAIAjxMDAAAAAw
+AAA0AACAASACg/AAAIACEAAFEJkAAAA0AAAAIAke8CAI8XAAGQAAIAjxwCACjRgAABshAACABzOQ
+AAAf/5QMAxUAAAUAAACD/wAbIAjyMCAI8oAAAZGsIAVbjCAI8uAgBhQsCwAAACAI83AgCPPgIAj0
+UCAI9IAgCSDAIAkhYB//lwAgBE9E4QAOAOEAEgAf/5QYAAE4gAACJxAgCRygf///Dx//l2jhAC4A
+/AD//+EAlgDhAJoAAAAJ/wAAsAAf/5aYIAKEQB//lfThABIE4QASCOEAEgzhABIQ4QASFBEAAAAf
+/AAAIAj1ACAJIsAAAZSPAAGUz///7/ggAoRgH/+VECACh1Af/5XAAAJJ8B//lbQf/5UwIAKIIB//
+jhQgCPbAH/+WcCAI+BAf/5RkAD///wAA//0AAP/VAADql8IAAA4F3AEAA/8AACAI+HAgCPiwIAj5
+ACAI+UAgCPmQIAj50B//onAADwP/AxEAAB//l1T9///QAAAZAOECAgDhAoIAAAQF7uECAQThAeIA
+H/+V3OAACQgD6AAAH/+WpAAAeQQf/5XgACf//wAAdgAf/5SIH/+WgB//lewgBoAAAAAUACAGgRAg
+Bq6gIAbu8CAGhmAgBoVQIAaEQCAGgzAgBoIgH///8B//o3AgAopwH/+kiAAAGdQf/6aESQAAACAJ
+K4AgCSrQIAkrMB//lQwf/5XQH/+V2OEAdgDhAHIA///wDx//laQgCQHwIAkCUB//lYggBhY4QAAA
+BBSQAAAf/6Q4/+gP/wAQgAAgCQOAIAW+bCACiHAByEAG4QGZ4AAAflAAAH5AAAB+GCAFzeQf/5WA
+IAKN6CACjewgAo3wIAKN+ABQIAbhAZoMH/+VPABwIAb/4AAAAAIgBiAJA6DhAZoE4QGaCAAEIAYg
+CQPQH/+UUOAAAQDf//4AH/zAAMAAAAXhAd4AIAXg5B//lbwgCQQAH/+WyOEAVgAgCSwA/+///+EB
+lNAgCQQQH/+PNCAJBFAgCQSQH/+WnCAGEiQgAot0IAktACAJLbAgCSwwIAkscCAJLjAgCS1QIAks
+sCAGEBQf/5X8IAkFMCAF4hwf/5ggH/+nPB//p1Qf/6dsH/+Z4B//p0Af/6dYH/+ncB//lrQf/5iw
+4QAxAAQAAAEAACHBIAkFYB//jvz//H//IAkFkB/84YAgB8AAH/+OgJ////8f/5Q0AwAAAL//8P8g
+CS7wH/+WACAGFDAf/494/w///x//jhB/8AAAAB///2wQBIMoKCIQ6yISKdAEgAALgACKMsunwLD9
+/gId7wwFAG0IDXrADQqKFOSgHWXYIQAAY//retAMtLvwABwNpKodAACxuwoaFGWv99owW7dxijfx
+QiAN4AQFAPtEABWgCxUA/IBoHaANFQBbtimKN8efmaCUN1uygiQ2DiQ2DyQ2ECQ2ESQ2EiQ2EyQ2
+FCQ2FSQ2FiQ2FyQ2GCQ2Gf33mgWgClUA+gYCHeA9BQBY1eYkNAQkNAUkNgIkNCAkNCEkNCIkNCOU
+OZQ6lDuUPCQ1GuQ1GylQBIAAWANe0Q9sEAiEKBz7vC0gBCRCES4iAP5AsBXgClUA9IoQFaA7BQBY
+1dIpIAX6QEgVoHglAPkABWrnNQEAya38Y2CBUAsVACU8/gW1Odog7PusGtgEgABbqOjAINEPHPuq
+LSAEjiCPLvR/wBXgCBUABYU59CAGFaAKVQD0ICYV4DsFAFjVuxb7oSpiF2Sgb/pAaB2gC4UA7RwQ
+KmAEgABbqPzv+5sVAkGAAI4uwNCdoQ/uAp6gHPuXLWYX6RIEKl8CgACsu+m2ACGUhQAAiif6ACId
+4AwFAPtEABWgDRUAW7XW0qDRD8Ag0Q/AINEPK0wY6iQACWAEgABbu3hj/02xq+wkAAlQBIAA62YX
+IlhhAABbu3Jj/zUAAABsEBYc+36NIC4gBY8wKDAF9CAmFaAKVQD4IAYVoDsFAFjVjRf7dxb7dxX7
+dxr7ePpg6BXgDzUA/fbsBeGOBQD8EkIdoJgFAOuyDiIMeQAA/IIgElACBQBuQgmKOigwBYqofIEj
+0Q8AAAAkMAX4gAjkIgCdACoyCiqiCHxBVSoiCFgPBcAg0Q8AKaIYrr4NmQIpphgv5JIoMAV8icf7
+9rgFr5xVACw0BRz7Wxn7WyqgfSzCLSmSh8CA6OSRLmZCgADsmQgFfVSAAC0KgP0gAETwAT4AKaIY
+rr4NmQIpphgv5JIoMAV8iZUs+pUsNAUc+0kZ+0oa+0Yswi0pkocqoH0JzBGsmfFACe/SAJ0ALQqA
+/SAARPAE3gAAAC8qgK+ZjTCWFvYghhXgD0UA5RYKLu4CgAAP3QKdFSyQByqRLgwMQQDMEQyqAgWq
+ApoYCeowmBvpFgklyAsAAOlmAADQwQAACgyKCUCICgiKCSCICgSKCQCICgCK6xwQKdAEgAD8AIId
+oA0lAFuapsAg0Q8d+yKMPxj7ISnSLS3SJSiChy+gfe3KCAzOQoAA6YkIDVZCgADqiggH/DyAAC8K
+gP8gAETwACYAKCqAqJn/YABGsGxVACzUkYigJRYa9iKGFeAMRQDmFhYsRgKAAAyIAigWFS+QBy2R
+Lg8PQQD/EQ/dAgXdAi0WGAzqMPwjJhWgCQUA6RYbJcgLAADp5gAA2cEAAAscignAiAsYigmgiAsU
+igmAiAsQiiscUPwAgh2gDSUAW5p4wCDRDy8qgK+ZwIAo5JGNMJYW9iCGFeAPRQDlFgou7gKAAA/d
+Ap0VLJAHKpEuDAxBAMwRDKoCBaoCmhgJ6jAoFgspFgnpvQIg0MEAAAlgiAoMiglAiAoIigkgiAoE
+igkAiAoAiuscECnQBIAA/ACCHaANJQBbmlpj/cEAbBAEKzAF9/WsBeAEBQD38gIdoJwlAP1gBcQg
+lVUA9WAFhGCYBQD5YAZlIgCdAIk4InKK6jIJJIBxgACZoIs4mrGUOJQ5iTzIliySErDMLJYSKHJ1
+ijclMgD7QcgVoAsFAPivAAq13IUAWNERlDiUOZQ6lDuUPJQ9lD6UPyQ2ECQ2ESQ2EiQ2EyQ2FCQ2
+FSQ2FiQ2FyQ2GCQ2GSQ2GiQ2GyQ2HCQ2HSQ2HuQ2HyrYBIAA9mCmHaAMBQD6QWgVoA0VAFu0kost
+sLv6QaYV4AIFANEPjj4tIhjH/Q/uAe42Dia4aoAAfLEulDp1uQmIPvEABn/QBRUAwCDRD9ogW1RC
+HPqZKiIYKzAFDKoB+kMGFaCZJQB5udCJOCJyiu0yCSSAcYAAmdCOOJ3hlDiUOYk8yJYvkhKw/y+W
+EihydYo3JTIA+0HIFaALBQD4rwAKtdyFAFjQ15Q4lDmUOpQ7lDyUPZQ+lD8kNhAkNhEkNhIkNhMk
+NhQkNhUkNhYkNhckNhgkNhkkNhokNhskNhwkNh0kNh7kNh8q2ASAAPZgph2gDAUA+kFoFaANFQBb
+tFiLLbC7+kGmFeACBQDRDwAAAAAAAAAb+mkc+mrt+moZ0ASAAFtULtowW1QQgjeCLiQ2EiQ2FvRi
+ZhXgCwUA9GKmFeAMJQD8YoYVo2pFAPpAAEUwjAUAWNCr+nyCHaALBQD6QABFMIwFAFjQpiwqgPxA
+AEY0bUUArS0k1AAk1AEk1AIk1AMk1AQk1AUk1AYk1Ack1Agk1Akk1Aok1Ask1Awk1A0k1A4k1A8k
+xNwkxN0kxN6LPgW7AvphxhXgAgUA0Q9sEAgmIgcPAgAmYg4rYngDuAEEugHooQd5KASAACNifuz6
+OhpwBIAA+AAiHaAPBQDjuQEJ6ASAAPlPAAzwOwUA+QIAD/AKVQBY1Dnq+iYRhDmAABz6Jhv6LSqg
+fSzCLSmygP2IABYwBxUA7JkIBXxQgAApkieJnimSEPk/4BXgADoAKZKniZ4pkhCwmeKyhiSAiYAA
+gi9tmQeIInOBKSIsKMDQ4tQABoHJgADKKS4hBvoAoh2gOwUA7PoWGWgEgABY1BvRDwAAAPxAaB3v
+/14AAAAAAAAAwCD//1ANr/71AB/6DS1iYO0WBCLY6QAA+iBGFeYa5QCq2i7xAi4VAo/w/iAGFeAp
+pQD5oKYV4AxlAFjQQIYU+iBoHeYahQD6wABFMAxlAFjQOx/5/fnz9gXlrYUArW2dEyfUfyfUhfmv
+ph3gDGUALNSC/7AmHeAOhQD/sAYdoAiFAPmvhh2opx0AKtR++7CGHaALRQAr1IP6IEgV5irlAKpq
+WNAmiBMvajj+wABH+JQdAOmEjirQBIAA9RHmHaiZHQD5EaYd6JkdAPkRhh3gDgUA7vUCK1gEgAD/
+4AYVqNMdAPMTJh3onR0A+RLmHej5HQD/EsYd4AwlAP0TBh3gDjUA/sDGHaANJQBYIEJj/sQAAGwQ
+CIQqG/nMGvnN8gACHeAM1QBtCA+xM+PCDnmBCoAAAKgae4oDY//pABz5xS4gBY0gJiBQ/kNIFeAL
+FQD+IAYV53UBAOkiByP7+QAAD785nxX5IEgV4ApVAPggJhXgOwUAWNO5KyIV7CIXKlAEgABb/2nl
+pAANAs4AACoiGsGE+wAMYqIAnQDAwOwmGiOUTQAAiifAsftEABWgDRUAW7PcLSIRZNANAioC+kJI
+FeAMFQAL0AAsIhBkwAr6QkgV4AoFAAvAANogWAEhwCDRDwAc+YQqwhhkoU76QGgdoCsFAO0cECtg
+BIAAW6bfZKEAH/mVji0oITAopQIsISwP7gKeoC0iF52iLKUDKFEGKyIVm6OLLC0gU/JKEBXnkwEA
+7yBSLMuCgADsiBEO8QKAAP5wABGyu8EA6xYGL/kCgAD55gAP/5ONAPkGAAx03R0A6P8CBYdpgAD9
+8vgFoAsFAAvYAgzpAgk7AokW6PgCDM4CgAAJuwIZ+XWbpRv5dQmIApikK7J/GPlzmKcrslwoOif5
+YAW8IgCdACk6K/lgByRiAJ0AwND9QMYV4DsFAP3y1AWgClUAWNNkLQpyLSQFHPlK6hIEK18CgACs
+u+q2ACOUdQAAiif6ACId4AwFAPtEABWgDRUAW7OK0qDRD8Ag0Q8rbBjqJAAJYASAAFu5LYsV7PlX
+GVAEgABbpnHAINEPALGr7CQACVAEgADrJhojWGEAAFu5I2P/1bGt6iQAA1hhAADtxhgpYASAAFu5
+HWP/vRz5SP/8YA2gCwUAiEv8onAV4Pg5APjAAAcyiEEA7O4RDEPCgADo7gIP+wKAAO/uAg7vwoAA
+Dt0CHvk7/6YADr/8mgAZ+TkrUQd5sSMe+TgMvREO3QIvUBMe+TMP/xEP3QL/pgAOv/wCAAAAAAAA
+AAD98mAF7/+GAGwQCIQqG/keGvkf+A4iHaADBQD4QKYdoAzVAG0ID7Ez48INeYEKgAAAqRp7mgJj
+/+mNICYgUCkiGpkQiCfApf3yJAWgOwUA+QBIFaB+FQD4ICYVoA8FAFjTDisiFewiFypQBIAAW/6+
+5aQADQJGAAAqIhrBtPtgD9KiAJ0ALSIRwMDsJhomgJGAAAIqAvpCSBXgDBUAC9AALCIQyMn6QkgV
+4AoFAAvAANogWAB7YAD8AAAAABv43SqyGGShEPpAaB2gKwUA7RwQK2AEgABbpjhkoY4X+O6PLSgh
+MCilAi0hLAf/Ap+gLiIXnqItpQMoUQYsIhWcoy8gUvxKcBXnswEA4yBQLduCgADnIgwsRwKAAPOg
+ABc03R0A7jMRD/kCgAD75gAP/7ONAPsGAAxyd8EA6P8CA4XxgAD98aoFoAsFAAvYAgzpAgj4Auk7
+AgvOAoAACbsCGfjPm6Ub+M8JiAKYpCuyfxj4zZinK7JcKTon+WAEVGIAnQApOiv5YAXMYgCdAMDQ
+/UDGFeA7BQD98YgFoApVAFjSvi0Kci0kBRz4pOoSBCtfAoAArLuasO8iAClwBIAA/fGCBaAKVQD6
+BgId4A0FAFjSssAg0Q8AALGu7CQACVAEgADuthgjWGEAAFu4hdog/fFeBaALBQBbpcpj/7kc+K3/
+/RwNoAsFAIhL/KJwFeD4OQD4wAAHMohBAOzuEQxDwoAA6O4CD/sCgADv7gIO78KAAA7dAh74oP+m
+AA6//U4AAAAZ+J4rUQd5sU4e+JwMvREO3QIvUBMe+JcP/xEP3QL/pgAOv/yuAAAAAAArbBjqJAAJ
+YASAAFu4YmP/bytsGOisASlgBIAA6CYaKVAEgABbuFxj/1YAAAAA/fEUBe/+2gBsEASFIBv4iB34
+iSQhMIosKNKc87ZoFeAGBQD6gABCd5oBAOhVDASB4YAAyySMJy/6wPZA5hWv+PUA6MYAJnCBAAAP
+7gHmxgoncQEAAJ7Jnsj1IAZYkgCdAPUgBwkSAJ0Amiwr0kzuIhclgeGAAP/wogXgCgUAbQgpKPIj
+LNKtqKgJiBGozIzHjM4pwnfumQ91UAUAACnCerCZKcZ6K9JMe6sCY//PliiWKZYqliuWLJYtli6W
+LyYmECYmESYmEiYmEyYmFCYmFSYmFiYmFyYmGCYmGSYmGiYmGyYmHP3wqAWgClUA+gYCHeBdRQBY
+0kL6oGgd4HoFAPpAph2gDAUA+mEIFaANFQBbshfqMgkqWASAAPwAAh2gDRUAW7IT0Q+ONuoiDCZY
+IQAAm+HuxgIh+GEAAJ/D+mDGFe/8ngCJNOoiDCZAIQAAmJHpxgIh2EEAAJvD+GCGFa/8JgBsEAwr
+ITeDJxj4NMBS8mHIFeAMFQD7CBYN4AQFACogBSgKkvlACOwgmVUAeaEFwCDRDwAAJSYULCYTLCYV
+JCYSii7kJhYl6AUAAC0lN/FABx+SAJ0A0kDRD9ogW1GrHff5GfgeG/f9jy7/7/IFoYoFAPpgAEU/
++OUACP8Bny4f9/MlpJIu4H0rsi0pkoMkpJHqIgAt3kKAAPsgAETyjAUA/iDGFeCLBQDtFgAnfDCA
+APsgAETwABoArJn978YFoAtFAOwWAi1WAoAAC6oCmhEokAcukS4PAgAICEEAiBEI7gIP7gKeFA3q
+MC0WBeQWByHICwAA6WYAANCBAAAKDIoJQIgKCIoJIIgKBIoJAIgKAIrqJAAI2ASAAPwAgh2gDSUA
+W5dQ9EbkHaACBQDRDwAAAAAAAOokAAnYBIAAWBSqwCDRDwDaIFtRcMAg0Q8AAABsEASKIIQihyOF
+IY4wBHsDC1sBC3sDq+urqhv33YgxBUkD+0AARXyAPQAKqhiqWgmpAQlJA6mIqHcY99YKVgOJMvjg
+AEO6AD0AB3cYp6cGdgEGVgOmlqZEFvfQB6gD9oAAQjeAPQAERBiGM6R0CEgBCKgDqGamVRb3yYs0
+B0wD9qAAQrUAPQAFVRilRQxcAQx8A6y7HPfDiDWsu/tAAEV8gD0ACqoYBFsDqloLqwELSwOriBv3
+vIY2q4j44ABDugA9AAd3GAWoA6enCHgBCFgDqGYY97WNN4s4qGYY97SmRPdXAAt3gD0ABEQYpHQH
+TAMGRgEGpgOm1qhm9qAAQrUAPQAFVRilRQxcAQx8A6y7HPeohjkEWAOsu/tAAEV8gD0ACqoYG/ek
+qloIqAEISAOoaKuIBasD+OAAQ7oAPQAHdxinp4g6C3sBC1sDq4gb95oc95uriIs7qET3VwAMd4A9
+AAREGKR0B08DCEgBCKgDqLisiKhV/GGIFaUAPQAFVRilRQ9fAQ9/A6/MH/eNiD2vzP1AAEU8gD0A
+CqoYBFwDqloMrAEMTAOsiBz3hh/3h6yIjD744ABDugA9AAd3GAWoA6enCHgBCFgDqMiviAevA/iA
+AEI3gD0ABEQYiD+kdA9PAQ+vA6+IH/d5r4ioVf5gKBXlAD0ABVUYpUUEWAMIeAEISAOo/xj3cqj/
+r6r4YMgVrYA9AAqqGKpaBa8DD08BD18Dr4gf92uviKh3/+7WBeuAPQAHdxinpweoAwhYAQioA6i4
+r4gf92X4gABCOQA9AAREGKR0B0gDCKgBCHgDqOiviKhV/mCoFeYAPQAFVRilRQRYAwh4AQhIA6j/
+GPdYqP+vqvhhSBWtgD0ACqoYqloFrwMPTwEPXwOviB/3Uq+I+OAAQ7uAPQAHdxiIP6enB68DD18B
+D68Dr4gf90uviPiAAEI5AD0ABEQYiDSkdAdPAw+vAQ9/A6+IH/dEr4ioVfnuhgWmAD0ABVUYpUUE
+XwMPfwEPTwOvb6j/r6r/7noF7YA9AAqqGKpaBagDCEgBCFgDqMiviPjgAEO7gD0AB3cYiDOnpwev
+Aw9fAQ+vA6+IH/cxr4j4gABCOQA9AAREGIg4pHQHTwMPrwEPfwOviB/3K6+IqFX+YagV5gA9AAVV
+GKVFBFgDCHgBCEgDqP8Y9ySo//9AAEV9gD0ACqoYH/chqloFqAMISAEIWAOomK+IH/cd+OAAQ7uA
+PQAHdxinpweoAwhYAQioA6jYr4j4gABCOQA9AAREGIg8pHQHTwMPrwEPfwOviB/3Ea+IqFX+YKgV
+5gA9AAVVGKVFBFgDCHgDqP8Y9wuo/6+q+GEIFa4APQAKqhiqWgWvAw9PA6+IH/cFr4iod//uCAXq
+gD0AB3cYp6cHqAMIWAOouK+IH/b/+IAAQjgAPQAERBikdAdIAwioA6jIr4ioVf5gKBXkgD0ABVUY
+pUUEWAMIeAOo/xj29Kj//0AARX4APQAKqhiINKpaBa8DD08Dr4gf9u6viB/27vjgAEO6gD0AB3cY
+p6cHqAMIWAOo2K+I+IAAQjgAPQAERBiIOqR0B08DD68Dr4gf9uKviKhV/mGoFeSAPQAFVRilRQRY
+Awh4A6j/GPbcqP+vqv/tuAXuAD0ACqoYqloFqAMISAOo6K+I+OAAQ7qAPQAHdxiIM6enB68DD18D
+r4gf9tGviPiAAEI4AD0ABEQYiDakdAdPAw+vA6+IH/bLr4ioVfntlAWkgD0ABVUYpUUEXwMPfwOv
+b6j/r6r4YYgVrgA9AAqqGKpaBa8DD08Dr4gf9sCviPjgAEO6gD0AB3cYp6eIPwevAw9fA6+IH/a6
+r4gf9rr4gABCOAA9AAREGKR0B0gDCKgDqJiviPigAEK0gD0A9KsACv/49QAIfwOlRQ9fAg9PA6/u
+H/atr+7/QABFPQA9AAqqGAhOA6paDq4CDl4Drt0e9qeu3fzgAEP7AD0AB3cYCF0Dp6cNfQINrQOt
+zB32oK3MCK0D/IAAQjiAPQAERBikdIw1DU0CDX0Drcwd9pqtzAh9A/ygAEK1gD0ABVUYpUWMPA1d
+Ag1NA63MHfaTrcwITQP9QABFPQA9AAqqGKpajDMNrQINXQOtzB32jK3MCF0D/OAAQ7sAPQAHdxin
+p4w6DX0CDa0Drcwd9oWtzAitA/yAAEI4gD0ABEQYpHSMMQ1NAg19A63MHfZ/rcwIfQP8oABCtYA9
+AAVVGKVFjDgNXQINTQOtzB32eK3MCE0D/UAART0APQAKqhiqWow/Da0CDV0Drcwd9nGtzAhdA/zg
+AEO7AD0AB3cYp6eMNg19Ag2tA63MHfZqrcwIrQP8gABCOIA9AAREGKR0jD0NTQINfQOtzB32ZK3M
+CH0D/KAAQrWAPQAFVRilRYw0DV0CDU0Drcwd9l2tzI0g/UAART0APQAKqhgITAOqWgysAgxcA6y7
+HPZWqt2su6t3+kBoFesAPQAHdxinp6e7myMIWwMIqAMLewILqgOqmRr2TY8hnSCqmfiAAEJ4gD0A
+BEQYiSKkdAhIAgh3A6dmF/ZGpJmZIqdm9qAAQrWAPQAFVRilRKT/nyHRDwAAbBAGiiCIISMWAApJ
+CykmAOqbCnoYBIAAKIwBKCYBA9tS+wAARfVKGQDrJgEiBLmAAPKAAEUwTAUA5MwMBVBhAAD8YAe7
+ogCdAIsQWMwVJSwY+KBoHaAZBQBtmikpgAEqgAMrgALpgAAs5gKAAAiqEQq6AuyZAg1UAoAACpkC
+6YYAJEARAADrVAABUCEAAFv9+C0SAOTeDAJ7AQAA7zMIB2kBAADtFgAh6JOAAMBgixAKbBGry+w8
+DArQBIAAWMv40Q8AAOUsGCnrkAAA9mBoHeAGBQDiEgAhICEAANpQ+kBoHeBMBQBYy+74oGgdoBkF
+AG2aKSmAASqAAyuAAumAACzmAoAACKoRCroC7JkCDVQCgAAKmQLphgAkQBEAAOpEAArYBIAAW/3S
+53zAIzAFAADiLEAj6p+AAGP/cesSACngBIAAWMvW0Q8AAABsEAyjRhX16yciECkiESkWBShwcytS
+FSxQUPwhBhWgiAkA6BYOK1AEgABYy8od9eOKGCwSDhv14PrAAEUwMtUA4qQALmdCgAALywjtzAgF
+2BMAACuyGSzAgOwWDyVQBQAAWMu8jxiOHytSFyxQWK/u98AAQzAPBQAvZAItcHPsFgkncAkAAK5E
+8oAAQ3DdEQDtFg4rUASAAFjLrooZHPXHix6qaiKkAAy7CyywgJwf67IhJVAFAABYy6ePGY4fK1IZ
+LFBgr+73wABDMA8FAC9kAi1wc+wWCidwCQAArkTygABDcN0ZAO0WDitQBIAAWMuZihoc9bKLHqpq
+IqQADLsLLLCAnB/rsiElUAUAAFjLkY8ajh8rUhuv7vfAAEMwDwUAL2QCLXBzLFBo7BYLJ3AJAAD+
+gABCMN0BAONGCAboOQAA7RYGK1AEgABYy4Id9ZyKGxv1mYwWqmoipAALywvrsv0uZ0KAAA3MCCzA
+gOwWByVQBQAAWMt3jRuMFytSHa3Mps72rhAVoA0FAO3kAiZgCQAArETjSggLYASAAFjLbRX1iaZE
+GPWImByjRiJkAOtxNijoBIAA6AAFCPgEgAD+AKgd4A6lAP4ghhXv/GUAwJBtCB7asA67LQy/KK+q
+qloqoADq1AAu0ASAAOSwDmboBQAAY//YAAAAAAAAACmkAXobLNsQbQgi7LAAJvP/AAAp4P/s5P8l
+U/0AAOm0ACXYBQAA6rsJduv9AABj/9YAAC8QAPHhwA3gAgUA2RBtCAwokAGxIuSACmTIBQAAY//s
+AAAAsWrrFAAJYASAAFjLPffqqgWgClUA/eqyBaA7BQDsFg0paASAAFjO/eJgeCFYBQAAq0QrYh+j
+SuwkAAVQBQAAWMswjhzpEgUhWAUAAKtE8oAAQ3A61QAqZADpkhko6ASAAO4EBQjgBIAA/ASoHa/7
+ZQD8IIYVoA6lAMDwbQge3JAOmS0LmCiozKxcLMAA7NQALtAEgADkkAlm6AUAAGP/2AAAL6QBehss
+2xBtCCLusAAm+/8AACzw/+70/yVT/QAA7LQAJdgFAADquwl26/0AAGP/1gAAKBAA8QHADeACBQDZ
+EG0IDCqQAbEi5KAKZMgFAABj/+wAAACxausUAAlgBIAAWMr/+gCiHaA7BQDsEg0paASAAFjOwSss
+AQtECBv1ECKwoANKCCqsAeuyKSlgBIAAWMrz7hIMITAFAACmRPKAAENwP9UAL2QA6XIZKOgEgADu
+CAUI4ASAAPwIqB2v+2UA/CCGFaAOpQBtCB7YkA6ZLQuaKKqIqFgogADo1AAu0ASAAOSQCGboBQAA
+Y//aAMDALKQBehss2xBtCCLvsAAmw/8AAC6A/++E/yVT/QAA7rQAJdgFAADquwl26/0AAGP/1gAA
+KRAA8SHADeACBQDZEG0IDCqQAbEi5KAKZMgFAABj/+wAAACxausUAAlgBIAAWMrD+gCiHaA7BQDs
+Eg0paASAAFjOhSssAQtECBv01CKwqANKCCqsAeuyKylgBIAAWMq37hIMITAFAACmRPKAAENwP9UA
+L2QA6XIYKOgEgADuDAUI4ASAAPwMqB2v+2UA/CCGFaAOpQDA8G0IHtiQDpktC5ooqoioWCiAAOjU
+AC7QBIAA5JAIZugFAABj/9gAL6QBehss2xBtCCLusAAm+/8AACzw/+70/yVT/QAA7LQAJdgFAADq
+uwl26/0AAGP/1gAAKBAA8QGQDeACBQDZEG0IDCqQAbEi5KAHZMgFAABj/+yxausUAAlgBIAAWMqI
+FvSf+gCiHaA7BQDsEg0paASAAFjOSeJgsCFYBQAAq0QrYi2jSuwkAAVQBQAAWMp87hIMIRAFAACi
+RPKAAENwP9UAL2QA6XIXKOgEgADuEAUI4ASAAPwQqB2gAqUA/CCGFa//ZQD6IGgd4AoFAG0IHtiQ
+ApktD5worIioWCiAAOjUAC7wBIAA5JAIZugFAABj/9IAKuQBfrs56uQACNgEgAAPAgDTD9MPbQgi
+77AAJsP/AAAugP/vhP8lU/0AAO60ACXYBQAA6rsJduv9AABj/88AACkQAPEhkA3gAgUA2RBtCAwq
+kAGxIuSgB2TIBQAAY//s4xINI1AFAADrFAAJYASAAFjKRvxgaB2gClUA/EBoHeA7BQBYzgmkIrIi
+0Q9sEA4V9F4kIhCUHiZQSCdCByRAcytSE+dyDinQBIAA/MBoHaBEMQBYyjaXFRv0Thj0TuY6CAon
+QoAAC0sICEQI9JAQFaA81QAspADrvQQlUAUAAOuyGSpgBIAAWMoppkorUhWEHvNAAENwBwUA52QC
+JVAJAACaGCZQUCRAc6Oqmh/8wGgdoEQ5AFjKHRv0N4ofC0sLJLCA90AARTA81QDspAAlUAUAAOuy
+ISpgBIAAWMoUpkiEGCkSDxz0MQSECPkAAERwClUA9wBGHeA7BQDtIhgiIAkAAFjN0YgeKIBy7SIY
+JBppgADApf3oTAWgOwUAWM3KKSIYK1IXo0b8qxAVoZnhAOwWECTICQAA6RYJK1AEgABYyfod9BUq
+EhAb9BGMGfrAAEUwPtUALqQAC8sL67L9LmdCgACtzCzAgOwWCiVQBQAAWMnuLxIQjhorUhmv7qbv
+J/QCLSIYLFBg7BYRJ3AJAAD+gABCMd3xAONGCAboCQAA7RYLK1AEgABYyeAd8/sqEhEb8/eMG/rA
+AEUwMtUAIqQAC8sLK7L9DcwLLMCA7BYMJVAFAABYydUtEhGMHCtSG63Mps0mUGjn1AImYAkAAKxE
+40oIC2AEgABYycwY8+imRKNGImQA6AAFCKgEgAAFAmGVFBXz4i9QAJgd9iAmHeACBQDvFAAngNmA
+ANkQbQgMKJABsSLkgAlkyAUAAGP/7AAAsWrrFAAJYASAAFjJtxbz1foAoh2gOwUA7SQAC2AEgABY
+zXmxK6tEG/PPIrCwA0oI5hYGJVAFAADrsi0pYASAAFjJqo4d6RIFIVAFAACqRPKAAENwOtUAKmQA
+7gQFBMgHAADpFgco6ASAAOmRlCjgBIAA/ASoHa/7ZQD8IIYVoA6lAG0IHtyQDpktC58or8ysXCzA
+AOzUAC7QBIAA5JAKZugFAABj/9oAAAAnpAF6GyzbEG0IIuywACbz/wAAKeD/7OT/JVP9AADptAAl
+2AUAAOq7CXbr/QAAY//WAAAvEADx4ZAN4AIFANkQbQgMKJABsSLkgAdkyAUAAGP/7LFq6xQACWAE
+gABYyXgW85b6AKIdoDsFAOwSBiloBIAAWM054mC4IVgFAACrRCtiLwNKCOwkAAVQBQAAWMlsjh3p
+EgchWAUAAKtE8oAAQ3A61QAqZADpkZUo6ASAAO4IBQjgBIAA/AioHa/7ZQD8IIYVoA6lAG0IHtyQ
+DpktC58or8ysXCzAAOzUAC7QBIAA5JAKZugFAABj/9oAAAAnpAF6GyzbEG0IIuywACbz/wAAKeD/
+7OT/JVP9AADptAAl2AUAAOq7CXbr/QAAY//WAAAvEADx4ZAN4AIFANkQbQgMKJABsSLkgAdkyAUA
+AGP/7OMSBiNQBQAA6xQACWAEgABYyTr8YGgdoApVAPxAaB3gOwUAWMz9pCKyItEPH/NWHvNWD90B
+Dt0B/EMGFe/yngBsECaHN+MWQilQBIAA6hY/KcAEgADncg4qkASAAPRANOCQBQUA2lAZ8tuGjxPy
+2ymSJSMyh6lmCWYRpjODN/JhyBXgGYUAeSED0qDRDxvzPyaw9NpA67I+K2AEgABYyRf2gABFMcuF
+APpgAEXwPNUALKQA7DACJVAFAABYyRApMAKmmegSPyTIBQAAKRZBpJkpFkAllAAoghAZ8r4W8r+C
+hymSJYiPgi4mYof5AABEdG1FAO0tCAxGQoAAqGb2wOgVoogFAAgrCCqw3CZiDiXUDyXUDiXUDSXU
+DCXUCyXUCiXUCSXUCCXUByXUBiXUBSXUBCXUAyXUAiXUASXUACyw5PGBcA3gAwUAbQgMLLDlsTPk
+wAdl2AUAAGP/7BzzDeoUACDoEQAAldCV0ZXSldOV1JXVldaV15XYldmV2pXbldyV3ZXeld8l1hAl
+1hEl1hIl1hMl1hT1oqYV4DsFAPwmxhWgClUAWMycGPL7HvL9H/L7GfL4HPL77BY3INARAACVoJWh
+laKVo5WklaWVppWnlaiVqZWqlauVrJWtla6VryWmECWmESWmEiWmEyWmFCWmFSkWAy8WBf4gxhWg
+OwUA+CCGFaAKVQBYzIO0GvogaB3gDBUAW/yR/eXIBaAKVQD8JwYVoDsFAFjMeyoqgKpoK4Ao0w/x
+YZAN4AwFAG0IDC2AKbHM5NAJZEAFAABj/+wAACsqqOtrCADQEQAAW/x//eWmBaAKVQD8JyYVoDsF
+AFjMafxgaB2ja0UA6ysIANARAABb/HYiFjX95ZIFoApVAPwnRhWgOwUAWMxfKBIBIhwc+KMABDA8
+9QDozAwA0BEAAPsAAEU/iwUA66QYIJgxAADqrBkmQdeAACsKAFjIl/hAaB2gGQUA0w9tmikpgAEq
+gAMrgALpgAAs5gKAAAiqEQq6AuyZAg1UAoAACpkC6YYAJEARAADqNAAJWASAAFv6byocHJWglaGV
+opWjlaSVpZWmlaeVqJWplaqVq5Ws9UGmFeAAVgAAAAAAw8f5jwAOMAsFAFjIefhAaB2gCeUA0w9t
+mikpgAEqgAMrgALpgAAs5gKAAAiqEQq6AuyZAg1UAoAACpkC6YYAJEARAAAtEgIuEgHuFhUpWASA
+AO0WFinQBIAAW/pN+GBoHaAJRQDTD22aKSmAASqAAyuAAumAACzmAoAACKoRCroC7JkCDVQCgAAK
+mQLphgAkQBEAACoSNfpgaB3kbEUADwIA/UAARTAcBQBYyEX95OYFoApVAPwnZhWgOwUAWMwHG/Jk
+KhJADwIAI7D8KqwB67JAKeAEgABYyDoqEkHr8mgR4AUAAKyqKhZB9UAARTA91QD6KAYVoAwlAO2k
+ACVQBQAAWMgv9+S+BaudxQD84DmkYgCdACvKHPrgOUxiAJ0AIjqAAnsILrDk/XyQFeXuEQAObggu
+4IAutGT/fLAVoD8FAOsWPi7vAoAAD90B/XywFaPuIQAO3QINbQgt0IAttGUtsOb/kAAWMD7FAA7M
+Aft80BWh3TEADcwC/MAARjAINQD9kBAVoAlFAOy0ZiXYEQAAbZpi6HkIBdgRAACziPMgAES1qgEA
+qmoqoIAqtF8qkOQKKkWqaiqggCq0YCqQ5CyQ5QyqEf9ABAVzzCEADKoCqmoqoIAqtGEqkOUskOYO
+qhH/QAQFMcwxAAyqAqpqKqCAKrRiKpDmIhI+++QqBaXKAQCsbCzAgCy0Yygg8yqgBCokevpPZh2l
+mBEACWkI6ZCALEcCgADTD/hPBh3gOQUACYgBqG8v8ID+TyYd4BKFACoSQCs65Ot7CAlgBIAA6xY9
+JVANAABYx9otEkGzLq7epO8l9AAsco79wCAV4As1APwoJhXozLkA/WAKBiIAnQD8JsgVpGhFAPjg
+AEQyiQUA+OAARPOCBQCiciIWPiaQ3yIg7CKU3CWEACWEASWEAiWEAyWEBCWEBSWEBiWEByWECCWE
+CSWECiWECyWEDCWEDSWEDuWEDyD5gQAAlfCV8ZXylfOV9JX1lfaV95X4lfmV+pX7lfyV/ZX+JfYP
+JfYQJfYRJfYSJfYTJfYU9eKmFeAKVQDyK4YdoDsFAFjLcBvx0Brx0Bzxzu3xzBDxgQAAleCV4ZXi
+leOV5JXlleaV55XolemV6pXrleyV7ZXuJeYPJeYQJeYRJeYSJeYTJeYUJeYVLRYaLBYbKhYd+iOG
+FeAKVQD8JugVoDsFAFjLWCocYPorgBXgDBUAW/tlwKX8JwgVoDsFAFjLUShKgKh4L4DU8eZADeAM
+BQBtCAwpgNWxzOSQVGRABQAAY//s0tDRDwAT8bAmMCzaQOsyDCtgBIAAWMd7pkryepAV4DvVACuk
+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
+AgAAAAAAAAcSAAAAAAAACAMAAAAAAAAPEwAAAAAAABAEAAAAAAAAHxQAAAAAAAAgBQAAAAAAAD8V
+AAAAAAAAQAYAAAAAAACABwAAAAAAAMAWAAAAAAABAAgAAAAAAAIACQAAAAAAAwAXAAAAAAAEAAoA
+AAAAAAgACwAAAAAADAAYAAAAAAAQAAwAAAAAABgAGgAAAAAAIAANAAAAAABAAA4AAAAAAIAADwAA
+AAAAwAAaAAAAAADgABsAAAAAAQAAEAAAAAABgAAcAAAAAAHAAB0AAAAAAeAAHgAAAAACAAARAAAA
+8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpgDhRsYA4UbmPLVEpjy
+1RKY8tUSmPLVEpjy1RKY8tUSmPLVEpjy1RKYAAAAAAAAAAAAAAAA//8ABQAGAAcACAAJAAoACwAM
+AA0ADgAPABD///////8ACgAUAIwAggBkAFoAoACWAHgAbgBQAEYAPAAyACgAHgAKBM4EkgnOCZIC
+sgRWBOIEpgO2BBoHsglWBl4CdgniCaYHTgI6CLYJGggWBiICxgRqAJYDegFyB3YAvgPeBPYEugRC
+A6ICYgc6Bg4AggPKBC4AbgBaAyoBNgHqAz4HxglqAUoHEgWWCHoGwgH+BnICigNSBeYFvgjeAZoH
+2gn2CboJfgeeCUIIogkGAV4HYgJOByYDFgEiBYIIZgWqCMoJLgiOAQ4FbgVaBUYG1ggqBjYCEgHC
+BuoIPgDmBoYC2gR+Ap4EBgZKAiYIAgNmAKoDjgX6AEYB1gb+Bq4F0gGGB4oI8gMCCFIA+gUyAa4A
+0gPyB+4AMgaaAu4FHgAeBQoAAAnECYgE2AScB6gJTAnYCZwIrAkQArwEYAFoB2wE7ASwAlgHMAPA
+BCQDIAEsB7wJYAWMCHAGaAKABbQI1AnsCbAJOAiYB1gCRAEYBXgIwAkkBWQFUAggBiwG4Ag0AtAE
+dAZAAhwAoAOEAcwG9AF8B4AISADwAMgD6AaQAuQFAATEBIgCqARMA6wEEAZUAmwHRAIwCAwGGACM
+A3AAtAPUBDgDmAYEAHgAZABQAeADNAFABwgGuAH0A0gF3AGQB9AJdAeUCPwBVAccAwwIXAWgCIQB
+BAU8BswCCAG4ANwGfAKUA/wH+ANcBfAAPAakBcgI6AL4BSgBpAfkACgFFAAUAAAEyQSNCckJjQKt
+BFEE3QShA7EEFQetCVEGWQJxCd0JoQdJAjUIsQkVCBEGHQLBBGUAkQN1AW0HcQC5A9kE8QS1BD0D
+nQJdBzUGCQB9A8UEKQBpAFUDJQExAeUDOQfBCWUBRQcNBZEIdQa9AfkGbQKFA00F4QW5CNkBlQfV
+CfEJtQl5B5kJPQidCQEBWQddAkkHIQMRAR0FfQhhBaUIxQkpCIkBCQVpBVUFQQbRCCUGMQINAb0G
+5Qg5AOEGgQLVBHkCmQQBBkUCIQf9A2EApQOJBfUAQQHRBvkGqQXNAYEHhQjtAv0ITQD1BS0BqQDN
+A+0H6QAtBpUC6QUZABkFBQAACb8JgwTTBJcHowlHCdMJlwinCQsCtwRbAWMHZwTnBKsCUwcrA7sE
+HwMbAScHtwlbBYcIawZjAnsFrwjPCecJqwkzCJMHUwI/ARMFcwi7CR8FXwVLCBsGJwbbCC8CywRv
+BjsCFwCbA38BxwbvAXcHewhDAOsAwwPjBosC3wT7BL8EgwKjBEcDpwQLBk8CZwc/AisIBwYTAIcD
+awCvA88EMwOTBf8AcwBfAEsB2wMvATsHAwazAe8DQwXXAYsHywlvB48I9wFPBxcDBwhXBZsIfwD/
+BTcGxwIDAbMA1wZ3Ao8D9wfzA1cF6wA3Bp8FwwjjAvMFIwGfB98AIwUPAAAACgCMAG4AlgB4ADwA
+UACgAIIAZAAyAEYAWgAoAB4AFAAAAIcAaQCRAHMANwBLAJsAfQBfAC0AQQBVACMAGQAAIAKOLCAH
+GqwgAo4wIAcgaCACjjwgByAYIAKOUCAHH2wgAo5oIAceLCACjnggBx4EIAKOgCAHHdwgAo6UIAcd
+tCACjpwgBx2MIAKOsCAHIRwgAo64IAcabCACjrwgBxnwIAKOxCAHGbggAo7MIAcZgCACjtggBxlI
+IAKO3CAHGRAgAo7oIAcY2CACjuwgBxooIAKO9CAHGKAgAo78IAcYaCACjwQgBxZ4IAKPDCAHGDAg
+Ao8YIAcX+CACjyAgBxfAIAKPKCAHF4ggAo8wIAcXUCACjzggBxcYIAKOBCAHFIAgAo9AIAcUSCAC
+j0ggBxQQIAKPUCAHE9ggAo9gIAcToCACj2ggBxNoIAKPcCAHEzAgAo94IAcTCCACj4QgBxLgIAKP
+kCAHErAgAo+oIAcSiCACj8QgBxJgIAKP1CAHEjggAo/kIAcSECACj/QgBxHoIAKQBCAHEcAgApAU
+IAcRmCACkCQgBxFwIAKQMCAHEUggApA8IAcRIAAAAAAAAAAAIAKQSCAHEAggApBMIAcP2CACkFQg
+Bw+oIAKQYCAHD3ggApBkIAcPSCACkGggBw8YIAKQbCAHDvAgApB0IAcOyCACjhAgByNgIAKOGCAH
+IowgAo38IAch1CACjiQgByEkAAAQISBCMGNAhFClYMZw54EIkSmhSrFrwYzRreHO8e8SMQIQMnMi
+UlK1QpRy92LWkzmDGLN7o1rTvcOc8//j3iRiNEMEIBQBZOZ0x0SkVIWlarVLhSiVCeXu9c/FrNWN
+NlMmchYRBjB212b2VpVGtLdbp3qXGYc499/n/tedx7xIxFjlaIZ4pwhAGGEoAjgjyczZ7emO+a+J
+SJlpqQq5K1r1StR6t2qWGnEKUDozKhLb/cvc+7/rnpt5i1i7O6sabKZ8h0zkXMUsIjwDDGAcQe2u
+/Y/N7N3NrSq9C41onUl+l262XtVO9D4TLjIeUQ5w/5/vvt/dz/y/G686n1mPeJGIgamxyqHr0QzB
+LfFO4W8QgAChMMIg41AEQCVwRmBng7mTmKP7s9rDPdMc43/zXgKxEpAi8zLSQjVSFGJ3cla16qXL
+laiFifVu5U/VLMUNNOIkwxSgBIF0ZmRHVCREBafbt/qHmZe451/3fscd1zwm0zbyBpEWsGZXdnZG
+FVY02UzJbfkO6S+ZyInpuYqpq1hESGV4BmgnGMAI4TiCKKPLfdtc6z/7Hov5m9iru7uaSnVaVGo3
+ehYK8RrQKrM6kv0u7Q/dbM1Nvaqti53ojcl8JmwHXGRMRTyiLIMc4AzB7x//Ps9d33yvm7+6j9mf
++G4XfjZOVV50LpM+sg7RHvAAADAEAAAwEAAAWQgAAFmkAAGUMAAAECQAABAwAAAQPAAAENwAAHss
+AAB7NAAB4owAAeaMAAHqjAAB7owAAfKMAAH2jAAB+owAAf6MAACNzAAAfnQAAI/cAAGRWAAAj/wA
+AHUcAAB1GAAAdRAAAHfgAAB35AAAd/QAAZw8AAEQdAABEIQAAJQIAACYXAAAlgwAAJYUAACWIAAA
+liwAANAoAACQCAACENwAAjDcAAJQ3AACcNwAAZBUAABgHAABoNgAAZCQAAB34AAAd+QAAHf0AAB5
+eAAAefgAAZQEAAHjwAAB58AAAevAAAHvwAAB88AAAffAAAH7wAAB/8AAAZQMACEACQCBAEEAIQAJ
+ACEACQCBAEEAgQBBAIEAQQCBAEEAIQAJAIEAQQAhAAkAIQARAIEAQQCBAEEAIQAJAIEAQQAhAAkA
+IQAJAQEAQQCBACEAgQAhABAQYQAAAAAAAAAAAAAwAD///8AAADAIP///wAAAWRCsgAAAAABZrH4l
+AAAAAZQQH////wABlDQAAAARAAGUCB////8AAZQ4AAAAEQAAECh/////AAAQLH////8AABA0f///
+/wAAEDh/////AAAQQA9EAAAAAHsoAB//4gAAezA//+7/AAB7OAAAAAEAAHtAP//u/wAAfCQAH//i
+AAHiiAAIAAAAAeaIAAgAAAAB6ogACAAAAAHuiAAIAAAAAfKIAAgAAAAB9ogACAAAAAH6iAAIAAAA
+Af6IAAgAAAAAjcj/////AACN0P////8AAH5wf7///wAAfnh/v///AAB+AADAAAAAAZFUAf///wAB
+kZwB////AACP2AB///0AAI/4/////QAAdRQAAAAHAAB1DAAAAAsAAHfcAAAAAwAAd/D/////AAGc
+OAABgEAAAZz4AAAAAwAAkAQAAAA+AAEQeAD///8AARB8AP///wABEIgAAAAAAACUBAAA//8AAJQQ
+AAD//wAAmFQAAAH/AACYWAAAAf8AAJYIAAAAAAAAlhAAH///AACWGAAf//8AAJYcAA///wAAliQA
+D///AACWKAD///8AAJYwAP///wAA0CAAAAAHAADQJAAAAAcAAhDYAAAAAwACMNgAAAADAAJQ2AAA
+AAMAAnDYAAAAAwABkFAAAAAvAAGg1AAAAYMAAZCMADgAAAABkJgAOAAAAAB5dAAAAC8AAHlwAAAA
+BQAAefQAAAAvAAB58AAAAAXhAg4AAABAAAAA//AAADDU4QBeAAAIAAgAAOQAAADEMAAAxDEf/5W0
+H/+PLB//l3AgCPVAAABBHgAA8AMAAEEOAABAQAAAoAAAAKAgAABBiAAAf/8AAEGGAACAAAAAQYEA
+AKgZAACoGgAAwwAAAKgbAACoHAAAqBcAAP//AAAQBAAA5Z8AAB8RAADuCQAA//4AAOr/IAj1cAAA
+/wAgCPWwIAj18AAJiWgAAMRQIAj2ICAI9kAgCPZgAAAgAAAAxFEAAMABAADEUgAPAA8AAGGoIFAA
+ACAJIxAAAEANIAkjcCAJIzAgCSNQIE//gCAGhsQgCSPgIAkkQCAJI5AAAMAGAAgAAiAJJIAAAIDX
+AABAggAAxIIAAIQDIAkmcCAJJXAAAICmAACAPSAJJNAAAIBAIAkl0CAJJiAgCSUgH/+USB//lQwg
+CScQIAj2gOEBmgAf/5TYH/+OBAAACAD/wP//ABAAACAJJsAABggAIAj3ACAI92AgCShQIAkoACAJ
+J2AgCSew4QAuACACjTAAAJAAH/+PTAAsFACAAACA4QBaAIHw4IDhAC4IIAAAAOEAVgAMAAAA//OA
+AAAMOABGAAAAPz///4CAAADz/////+D//wABAAAgBoAAIAaFpCAGgQDhAZIAH/+OAOEAigDhAA4A
+4QB+AOEAegAAAgAAAH8AQAADAAAAgACAAMEAwP//I/8AAMgAECABIOEAjgA8AAAA//+//1Bo6Ef4
+////BAAAAJIAAADwAPAAn7/7+yAABAR/9///gAACAP//7////4D///f/fwAAfrAABgAAAAAP/wAA
+frQA////AEkkkgAAfhgIAQgBEAEQARABCAEAAH5AIAEgARUVFRWEIYQhEBAQEOEBjgAAAP5/BAQB
+gB//lpwf/5RwMzMzMyIiIiIRERER4QDOAOEAjgThAI4I4QCODCAGiMThAHYAIAKNUP//8ADg//4A
+gAABACAGh8QAAJAIAAAIwIABxBHEEcQRAP8A/wBAAEAAD0JAAAAcIP//AAAgCSjAIAkpMB//lKAz
+IhEAEREAADMzIiL/8P8AAAIAMyoqFRUf/5aUH/+VoAAA//0gCSngH/+VuCAI99AgByEkAFAAAACg
+AAAgoAAA4wACAOL//wDQAAAAz//+ACACiKAf/5WsH/+AoB//lcjhADkAH/+A0B//j1Af/4EgH/+V
+1OH//gAf/4EAAAP////8AAAABAAAH/+TcB//jvDhAZYA4QDeAOEA7gDhAf4A4QJeAOECPgDhAh4A
+4QHiAAACAQDhAQ4A4QCSAAgAAAD///D/H/+UmB//lcz/8AAAAAKABuEBngD/+///IAj6ECAI+nAf
+/4EoIAYSACACinAgCPrg4AAAAAAAfWwADwAAEAAAAAAAEAAgCPtAIAj7cB//j2Qf/4E4IAYUQB//
+lQD//8f/gACAAB//pKAf/5QYH/ziAIAAAAAAAHtgH/+YgB/83gDhAZgAH/+PNB//lnAf/5SkH/+W
+YCAJKrAgCPugIAj74CAI/AAgCPwgIAj8kCAI/PAgCP1QAAAf/yAI/YAgCP2gIAj94CAJKmAgCSog
+IAkqgB//lcD/AAAAIAj+ACAI/pAgCP6gIAj/8CAJAKAAAAwgIAj/QCAI/6Af/5agIAYPQB//klAf
+/50QH/+akB//mJQgAIgkH//vmB//7sgf/5ZAIACJtB//lcQCAIIQAgACEAIAABABAAAAABoAAAD6
+xogAIAAAAADwAB//lbAf/45EIAYQUCAGD8gf/4FQIAkBkAABhqAgBIrQIAkBYCAJATAgCQHAIAkr
+wOEAEgCIAAIQH/+PMB//lgQAAPgA4QA2AOEARfwgBhIEH/+UOAAAfkwAEEEEAACP5AAAfUwACAAA
+IAaJJCAGEKAf/5M8AEAAACAKAAAACgAAH/+UPB//lJwf/4HQH/+UuB//lLwf/5TAH/+U8B//lOwf
+/5ToH/+U5B//lOAf/5TMH/+U0B//lNQf/4HwH/+WCB//gnAf/5KAH/+UYB//knwf/5RkH/+CgB//
+lXAgAok4H/+VbA////8f/4LQIAaFlCAGhWQgBoQ0IAaFXB//lRAgBoPk4QBiAAAAZQAAAICAAABl
+HAAA9wUAAEMEAAB9M+EAagAAAGQIAAA8AACAAAD/AP8AH/+DIAEBAQHhAGIQAABkDB//g0BVqlWq
+AACqqlpaWlqlpaWlAABikAARIjOIEgADIAKNYAAAYkAAAGoAAABqGP//f3+AEAAAH/+DYAAAamAA
+ACEBAAB1BOEAcgAf/4NwAAgAKQAAYoAACgApAAB0BAAAYkQAAGJIAABiAAAAangAAGLUH/+DgAAA
+YtgAAGLoAABi3AAAYvgAAGLkQb3NZQAACcMAAGLsH/+DoAAAYvAf/4OwAABi9B//g9AAAGL8AAII
+1QAAYwAAAQRrAABjBAACCNYAAGMIAABjDB//g+AAAGMQAACiwwAAYxQAAGMYAABjIAAAYyQAAGMo
+H/+D8AAAYywAAGMwAAAnEAAAYzQAAGM4ABERE+EAAAABfXhAAAB1AB//hAAAAGKMAAB0UAAAE4gA
+AE4gAAB0HAAAagQAAGoUAABiwAAAYswAAGLEAABiyB//ldwABAAphhAAAIAUAAOAFgADgBIAQ4AR
+0gOAEAAFH/+PcB//jnAgCQXg4QHeAOEB5gDhAeoA4QHuAOEB8gDhAfYA4QH6AAAAfuiAAAcAgAAF
+AIAABgCAAAQAAAB9gPAAD/AADw//3//+AB/8wAAAAIBg///X3yAHYMAf/44MIAkGMB//jowgB2GM
+IAKIkB//jhAgCQZgH/+WREAAAAAf/5ZIVVVVX1VVVVUgBhCYH/+PMwCWAAAf/5S0AEYAAB//jhQA
+AEAJAAAJxB//lSwf/5QcIAaEpAACYlrerb7vIAKNkOIABgDiAAYI4gACAOIAAgggCS6wIAkGkOL/
+/gAf/5T4H/+V/CAIQAAgCQbAH/+SWCAH0AAf/5ZoH/+WOGwQBCggIhn9ztMPA4gRqYgpgoAa/cwK
+mQIphoAqICIrICMogoBbciQqICH9+44FoAt1APn7jAXhzrUA/kOEHaANhQD4RuQd4A6FAFu45dog
++gAiHeAMBQBbLMvAINEPAGwQBCggIhr9tg8CAAOJEaqZKpKAG/20DwIAC6oCKpaA6ZKAJAHBgAAc
+/bIrwoQd/bENuwIrxoQqICIrICNbcgb/+1YFoc+1AC8lHO4lNylQBIAAW7lHyKzHK9EPwKdbuV5j
+/8MAANogW7kpKiAh/ftEBaALFQD8AEId4A4FAFu4wCogIRz9nvoDwh3gDQUAW8ynKiAhHP2a+gPC
+HeANBQBbzKLaIPoAIh3gDAUAWzDJwCDRDwAAAABsEAbj/ZIZyASAAC8yW2Twbxv9j/37IAWgBgUA
++CAGFeCHBQAowjEtMqSoaO6wgCxGQoAAqN1tCCEAYAQOCRt/lw3JKirQIQ8CAA8CAGWgEufdCAMw
+BQAAf2slY//XAAAq0CHcQOsSACroBIAAW8yBLzJbHP146/12EzAFAAB/Y6LAINEPAAAAbBAG/frm
+BaAKRQDyICYVoBtFAFvZBRL9bSct/S1yrBX9avG9oA3ghgUAJAoALyIxLnL1D08I7FCAL/5CgAAP
+7ghtCB4AQAQMCBt/hwoq4CEPAgAPAgDNoObuCAIgBQAAfUscY//aAAAAABz9Wv36tAXgG+UAW8xd
+LXKssUR9Q6xk0XzAQC8iMS5y9Q9PCOxQgC/+QoAAD+4IbQgeAEAEDAgbf4cKKuAhDwIADwIAzaDm
+7ggCIAUAAH1LHGP/2gAAAAAc/Ub8gCId4BvlAFvMRy1yrLFEfUOsZNEkwEAsUIDTD20IDQBABAwJ
+G3+fC7FEfUsxY//pAAAAAC0iMSpy9a1N7P03Hu5CgAD9QABFcAsVAPtEMBWgHQUAW8w0LXKssUR9
+Q7dk0NfAQCxQgG0IDQBABAwOG3/vCLFEfUsuY//rAC0iMSpy9a1N7P0mHu5CgAD9QABFcAsVAPtE
+MBWgDQUAW8wiLXKssUR9Q7xk0I/AQCxQgG0IDQBABAwOG3/vB7FEfUsvY//rLSIxKnL1rU3s/RUe
+7kKAAP1AAEVwCxUA+0QwFaANBQBbzBAtcqyxRNMPfUO7ZNBGwEAsUIBtCA0AQAQMDht/7wuxRH1L
+MGP/6wAAAAArIjEc/QQqcvULSwjt/QMd3kKAAAuqCPtEMBWgG+UAW8v9LXKssUR9Q7r9+foFoAoF
+AP35+AXgG+UAW/9Z/fn0BaAKBQD8L4Id4BvlAFv/Vf356gWgCgUA+gPCHeBNBQBb/1D9+dIFoAoF
+APoAIh3gHQUAW/9L/fnQBaAKBQD9+c4F4BvlAFv/Rv350AWgCgUA+gAiHeANBQBby9/9+cgFoAoF
+AP35xgXgCxUAW8va/fnCBaAKBQD6ACId4B3lAFvL1f35vAWgCgUA+gAiHeANBQBby9D9+bQFoAoF
+APoAIh3gDZUAW8vM/fmgBaAKBQD6ACId4A0FAFvLx/35mAWgCgUA/fmeBeALFQBby8L9+ZQFoAoF
+AP35mAXgCxUAW8u9/fmMBaAKBQD9+ZAF4AsVAFvLuf35hAWgCgUA+gAiHeANlQBby7T9+XAFoAoF
+APoAIh3gDUUAW8uv/flqBaAKBQD9+XAF4AsVAFvLqv35ZAWgCgUA/flsBeALFQBby6b9+VwFoAoF
+AP35ZAXgCxUAW8uh/flUBaAKBQD6ACId4A2VAFvLnP35QgWgCgUA+gAiHeANhQBby5f9+ToFoAoF
+AP35QAXgCxUAW8uT/fk0BaAKBQD9+UAF4AsVAFvLjv35LAWgCgUA/fk4BeALFQBby4n9+SYFoAoF
+APoAIh3gDZUAW8uE/fkSBaAKBQD6ACId4A3FAFvLgP35CgWgCgUA/fkQBeALFQBby3v9+QQFoAoF
+APoAIh3gLRUAW8t2/fj+BaAKBQD6ACId4A0lAFvLcf349gWgCgUA+gAiHeANlQBby20tcqxk0EXA
+QCxQgG0IDQBABAwOG3/vCLFEfUsvY//rAC0iMSpy9a1N7PxmHu5CgAD9QABFcBvlAPtEMBWgDQUA
+W8tcLXKsJEwBfUO7wKT9+NYFoBtFAFvX5f34uAWgCgUA+gAiHeANBQBby1L9+KwFoAoFAPoAIh3g
+DQUAW8tNZDHbghEU/F7yQABC8AMFANoQ+kBoHeAMRQBb1A6PENMPDwIA7PxMH/ICgAD14AQEON8d
+AOTdAQxGAoAA+cYADzf/wQD/pgAO8AoFAP+mAA6wCxUA/CAGFe/dgQBbyzX9+HoFoAoFAPwgJBXg
+CxUAW8sw/fh0BaAKBQD6ACId4C2VAFvLLLQi5SOFcZgFAAAV/CAS/CD+cAAWsApFAP34cgWgG0UA
+W9ey/fhYBaAKBQD6ACId4A0FAFvLHv34RgWgCgUA+gAiHeANBQBbyxn9+D4FoAoFAP34PAXgCxUA
+W8sV/fg4BaAKBQD6ACId4A3FAFvLEP34MAWgCgUA+gAiHeANBQBbywv9+CoFoAoFAPoAIh3gDZUA
+W8sGLXKs0w9k0MTAQC8iMS5y9Q9PCOxQgC/+QoAAD+4IbQgeAEAEDAgbf4cKKuAhDwIADwIAzaDm
+7ggCIAUAAH1LHGP/2gAAAAAc+/D6A8Id4A0FAFvK8S1yrLFEfUOs4vvmFoNhgADAMCwggG0IDQAw
+BAwJG3+fCLEzfTtFY//rABj73iiCMSRy9ag47PvnHEZCgAD4gABCMBvlAPqEMBWgTQUAW8rdKkAh
+HPvg+gPCHeANBQBbytktcqyxM30zqGAAC9EPAAD/+sgNoAMFANEPAABsEAjpRAAJ0ASAAPygaB3n
+MgEA/CCmFeACBQD6IIYVoQUFAPggZhXgFEUA+mBoHaAb5QD8IGgd4QwFAFvKeC4RALEi9cPAHe8i
+AQByS9z6AIIdoBtFAOz70RloBIAAW9dJwCDRD4oUGPvOHPvO/CCoFeAJBQD7LQAMMBvlAOgWAinQ
+BIAAW8qwwLCbEfpgaB2gG+UA/CBoFeEMBQBbyqrAIPpgaB2gG+UA/CBoHeEMBQBbylosEQB1wBmx
+IgICT3JL3sCi/fdyBaAbRQBb1y3AINEPAPpgaB2gG+UA/CBAFeEMVQBbyk0qEQHLcXaoMokS6Pur
+EVARAACqmZkSeYuLixHsEgQl6AUAAA0LT5sR/WKSDaAOBQD+IEYVr/3GAHaozMAh0Q8AwKL990AF
+oBtFAFvXFMAg0Q9sEATApP33OAWgG0UAW9cP/fc2BeAb5QDy4AABMQwFAO40AAlQBIAAW7aO7TQA
+CVAEgAD8IAIdoBvlAFvKde1kAAlQBIAA/fccBaAb5QBbynDtVAAJUASAAP33CAWgG+UAW8pr7UQA
+CVAEgAD99wwFoBvlAFvKZtog/fcGBaAb5QD8ACId4A4FAFu2dtEPAABsEAb0AoId4QQFAPIAAh2n
+MgEA+mBoHaAb5QD8IGgd4QwFAFvKDCgRALEi9QFgHa8iAQByW9zAINEPwCHRDwAAbBAG+GAJANIA
+nQAW+z7TDyhihBn7agmIAvjQhhWgGkUAW9XNKmKE8/bMBe/7BQALqgH60IYVoAIFAMGkW9XGIiwB
+cyn0G/tfAEoRDwIA66oICtgEgABb/b/ApP32tgWgG0UAW9bGE/ssKjJbFfst5PsrFQKJgADAICtA
+gAAgBAsMG/GABGfSAJ0ALVIxKjKkDS0I/agAFrALFQD9QABFcAwFAOqgISjoBIAAW8naLhkADwIA
+DwIA6jJbLwRKAACxInojtPFGQA3gAgUAK0CAACAECw8bf/dGLVIxKjKkDS0I7Ps6Hu5CgAD9QABF
+cBvlAOqgISjoBIAAW8nGLhEADu4U6jJbLw1YAACxInojvGAAGbEi+l/7I6IAnQBj/6SxInojqmAA
+BMYq0Q8AwKT99lAFoBtFAFvWkcAg0Q8AAAAAAAAA+gBCHaAbRQDs+yIZaASAAFvWiccr0Q8A/EBo
+HeAKJQD99joFoBtFAFvWg8cr0Q8AbBAMwKdbtpzaIFu2geoWCiGMJQAAxirRDwAW+xMARxGleaaZ
+KpB+KZB/4iAiLVYCgADqmQICw/kAAPghZhWvmQEA6RYJJBfZgACKGxv7AflAaB3gDQUA63sIBXxg
+gAAe+wMtsAAO3Qkt0X77YCAV790BAAkfFGTwiiywAA2OFA7MAx76+g7MCSzBfg0NR+qwAS7uAoAA
+Dc0D+WBAFae9QQDrqwMHy/0AAP9gAIW33QEA67F+Lu4CgABtmUEpgAANvQP9ADAV760BAPsOAA23
+ygEA65kDDl4CgADumQkEQAkAACmRfguZA/joAAT3uQEA6dkDDe4CgAAOmQkrkX4NvQMNDU+OGX3h
+Gf31sgWgCiUA/iEoFaAbRQBb1jvHK9EPAAAAwKT99aYFoBtFAFvWNuz6xRlQBIAA+gPCHeANNQBb
+yaLs+r8ZUASAAPwiABXgG+UAW8lT7Pq0GVAEgAD8IkAV4BvlAFvJTuz6tBlQBIAA/CKAFeAb5QBb
+yUn6QGgdoBvlAPwiwBXhDAUAW8lEHPq6LxEKLhEJLREI+CFkFaAKRQD4IAYVoBtFAFvWF9og/fVE
+BeAb5QD/9UAFoQwFAFu1l9og/fU8BaAb5QD8CCId4E4VAFu1khz6qe36ahlQBIAA//TQBaAb5QBb
+tY0CKgL99PIF4BvlAPwAAh2gDgUAW7WH2iD99OgF4BvlAP/05AWgDAUAW7WC2iD99N4F4BvlAPwA
+Ah2gDgUAW7V9wDD6QGgdoBvlAPwAAh3jDAUAW8lisTNpPecc+o3t+k4ZUASAAPoDwh3gDgUAW7Vx
+7Pp3GVAEgAD8IgId4BvlAFvJVxn6g3WbCMcr0Q8AAAAAAPIAAh3gFEUA+kBoHaAb5QD8IwAV4QwF
+AFvJASsRDPJgIBXhDAUA/WbAHa8zAQBzS9b99OgFoAolAPw7Qh3gG0UAW9XRKxELLBEILREJ7hEK
+KVAEgABb/rnHK9EPAAAAAOz6UhlQBIAA/CACHeAb5QBbyTb6QGgdoBvlAP30xgXhDAUAW8ky2iBb
+/tBkpWH6QGgdoBvlAPwjQBXhDFUAW8jgKBEN8QAmx9IAnQCJG2SSpvq/QBXgAwUA+iGGFeABagBk
+nd7/9wQNoA0FAAADWQwpnP71IApQkgCdAPUgC7kSAJ0A9SANiZIAnQD1IBAiEgCdANog/fQwBeAb
+5QD/9CwFoQwFAFu1JlqyIIob0w/6YBIqogCdAOz6PBlQBIAA/CACHeALpQD+ACId4I4FAFv+NWSk
+Euz6HBlQBIAA/IBiHeAb5QBbyQH6QGgdoBvlAPLwAAbxDCUAW8j8+kBoHaAb5QDz4AAG8Qw1AFvI
++Isc+mGSDeAEBQDwALwNoAQFAPpAaB2gG+UA/fRCBeEMBQBbyO4sCvz8n/mboQkFAPUvAAy//MYA
+ihx6O9QDfggG7ggo4IMt4IIv4IHu4IAsRgKAAAjdAvpAaB2v3QEA7RUOL/4CgAD/xgAPcBvlAP4h
+5B2hDEUAW8jZ+kBoHaAb5QD8IeQV4QxVAFvI1PpAaB2gG+UA/fQGBeEMBQBbyND0gIAVoPvFAOtD
+jHGYEQAAY/9e2iDy4ABG8BvlAPegAEaxDFUA7dCAIZgFAABbyMTaIP3ztAWgG+UA/OACHeEOBQBb
+tNNj/pyjfabdLtCBLdCA2iD9wAAXMBvlAP+mAA6xDFUA8mBAFe/dAQBbyLTaIP3zlAWgG+UA/OAC
+HeIOBQBbtMRj/l0AAADjdAgJUASAAPaAAEIwG+UA/JBQFeEMRQBbyKYuQIEtQIDo7hEJUASAAP+m
+AA6wG+UA/eAABvEMVQBbyJ7qJAABmA0AAP3zZgWgG+UA/OACHeMOBQBbtKxj/gAAo3SmRC5Agy1A
+gujuEQlQBIAA/6YADrAb5QD94AAG8QxFAFvIjS5AgS1AgOjuEQlQBIAA/6YADrAb5QD94AAG8QxV
+AFvIheokAAGYEQAA/fMyBaAb5QD84AId5A4FAFu0k2P9mwDs+awZUASAAPwgAh3gC6UA/gAiHeCO
+BQBb/aRkoxHs+YwZUASAAPyAYh3gG+UAW8hx+kBoHaAb5QD8AAId4QwlAFvIbPpAaB2gG+UA/AAC
+HeEMNQBbyGcjXP3yTgAL8AUFAOMWDSOG6YAA9fMUBaAGRQD24AEDMANFAPpAaB2gG+UA/fMcBeEM
+BQBbyFr6QGgdoBvlAPwjwBXhDFUAW8gKKREP0w/1DgAN96kBAAuqAwSqCSqhfgUIRwiIEQqIAwgF
+TwlVAwWFTwRVCSVRfvjgAAQxDEUA7RwcLEYCgAD4twAKsBvlAPpAaB2vVQEAW8f2KREO9Q4ADfep
+AQALqgMEqgkqoX4FCEcIiBEKiAMIBU8JVQMFhU8EVQklUX4ICEcIiBH4twAKt8MBAPGAfA3vVQEA
+WrFAtDP2f/n1IgCdACMSDdog/CACHaAb5QD+AAIdpA0FAFu0PPpAaB2t05EA/CBCHaAb5QBbyCL6
+QGgdr9cBAPwgYh2gG+UAW8geAioC/fI+BeAb5QD/8joFoQwFAFu0LdogW/23ZKHDiRvTDwkJQWSR
+6fUgFHCSAJ0A9SAWMRIAnQD1IBixkgCdACsRCywRCC0RCe4RCilQBIAAW/2Fihn1QAdcYgCdAMCi
+/fJwBaAbRQBb1JLHK9EPAAAA+gBCHaAbRQD98mYFoi11AP5gaB3gDgUAW9SJKxELLBEILREJ7hEK
+KVAEgABb/XHHK9EPAAAAAADs+QoZUASAAPoDwh3gDTUAW8fu+kBoHaAb5QD8BUId4QwlAFvH6vpA
+aB2gG+UA/fI4BeEMNQBbx+X6QGgdoBvlAP3yMAXhDAUAW8fg7PkPGVAEgAD8IAId4AulAP4AIh3g
+jgUAW/0HZKLNxyvRDwAA/fIcBaAKJQD8PWId4BtFAFvUYSsRCywRCC0RCe4RCilQBIAAW/1JxyvR
+D9og/fHQBaAb5QD8CCId4E4VAFuz3Bz45O34yRlQBIAA//GOBaAb5QBbs9fAMPpAaB2gG+UA/AAC
+HeMMBQBbx7yxM2k95xz42O348hlQBIAA+gPCHeAOBQBbs8uMGvv/Yh3gAgUADLI50Q8AAAD98dQF
+oAolAPxSIh3gG0UAW9Q7KxELLBEILREJ7hEKKVAEgABb/SPHK9EPAAAAAAD98b4FoAolAPxboh3g
+G0UAW9QvKxELLBEILREJ7hEKKVAEgABb/RfHK9EPAAAAAAD6QGgdoBvlAPwkABXhDFUAW8dJKhEQ
+Gfi79Q4ADne6AQAMuwMJuwkrsX4FCEcIiBELiAMIA08KMwMDg08JMwkjMX78JAAV54gBAP0AABQx
+DEUA+HcACbAb5QD6QGgdrzMBAFvHNSoREBn4p/MOAA53ugEADLsDCbsJK7F+AwhHCIgRC4gDCAVP
+ClUDBYVPCVUJJVF+CAhHCIgRCFUD//Y0Da9VAQAAAAD6QGgdoBvlAPwkABXhDFUAW8cfKBEQ9Q4A
+DPeIAQAJiAMZ+I4JiAkogX4FBUcIVREFhQP/9TwNr1UBAAAAAAAA+kBoHaAb5QD8JAAV4QxVAFvH
+DyoREBn4gfUOAA53ugEADLsDCbsJK7F+BQhHCIgRC4gDCAVPClUDBYVPCVUJJVF+CAhHCIgRCFUD
+//PcDa9VAQAAAAAAAPpAaB2gG+UA/CQAFeEMVQBbxvkqERAZ+Gv1DgAOd7oBAAy7Awm7CSuxfgUI
+RwiIEQuIAwgDTwozAwODTwkzCSMxfvwkABXniAEA/QAAFDEMRQD4dwAJsBvlAPpAaB2vMwEAW8bl
+JREQ8w4ADHdVAQAIVQMY+FQIVQklUX4DCEcIiBEIVQP/8ZQNr1UBAAAAAP3wwAWgCiUA/EJiHeAb
+RQBb068rEQssEQgtEQnuEQopUASAAFv8l8cr0Q8AbBAEEvhVKiJ/W7N+KCKA/QAAFD8qgQAIIgLR
+D2wQBhT4Tw8CACtCsPiVqBXv+AUA70KvJZg9AAAIMwGiOnrzU2SQUOpGsC1YBIAAHPhFLkKu8iAm
+FaAKVQD6IAYV4B0FAPwgRhXgCwUA8iBmFeANFQBb04zjRk4hgSGAAPKKBhWgDhUA/onmFaACBQDR
+DwAAAAAAAP/+zA2gAwUA/fBkBaAKFQD6AAId7/1FAFvTfcck0Q8AbBAKGfguF/grFvgrKJB98/BY
+BeAU9QD78AQF4Q8FAPgAAAcwChUA7q45CeAEgAD/7QAONA0FAP+tAA2wDwUA+tHEHe8sAQDiZY8o
+BAqAAPMABBfSAJ0AKGIYZIMKKWGaLmGRK2GTKmGVJWGXrr2q3eXdCASDsYAActFuwPEvZZz9gBrj
+4gCdAA4IRGWDHwsJRGWTGQoMRGXDE/SAGIDiAJ0ADS8MDikMKWWQ/tMkHe/ZAQAL3AwsZZIKygwq
+ZZQPqgz60wQdr6oBAAWvDP7SxB3gAdoALmGRK2GTKmGVJWGXDr0ICt0IBd0IL2Wc/YAXe+SOAQDz
+C1wN5JsBAPMq3A3kygEAZcKl9IAVEOIAnQAOKQwpZZANIgzy0yQdr9kBAAvcDCxlki9lnAuYDAqK
+DCpllAWuDALuDP7TBB2vqgEABagMKGWWKWWQ7GWSLseCgAAiYZLodoQpF4KAACJ2hy9hlg6uEe52
+hS//goAAL3aGK2GW7nb9Ld+CgAD6/4YV4AIFAOYhgGlIBIAAJGGay032gBNd0gCdAClM//UgE8Ci
+AJ0ABEoCW7nmLXKKH/fFLGGO790BDXQCgAAO3QItdoosdv4qcoEb98ALqgIqdoHAqFvKcCtiwi5i
+wOWlEQ0QBIAA9W8ACn/6BQAKRAH+gAbzogCdAChiv9MPZIDRGvevKaB99NhGFaBLBQALmQLppH0q
+WASAABz3rS9iwfQgJhXgClUA+iAGFeAdBQD8IEYV4AsFAPQgZhWgDSUAW9LsZEDI5GbnIgyJgAD0
+AAId4AQFACpi58C49UAARTAMBQBbz73kJAgCqAUAAHNZ5MAg5iCUaUgEgAAtcoGZGB/3lCRhmiNh
+mSVhlyphlSthky5hkSJhj/zThBWv+OUACN0BD90C7XaBJgGJgACTEZUSlBPs94gZaASAAOoWAC34
+BIAA+gCCHaALZQBb0smCGNEP//0MDaAEBQAc94CUE5MS5RYBKWgEgADqFgAt+ASAAPjTZBXgCkUA
++CCGFeALZQBb0ryJGNKQ0Q/SkNEPK2K4L2K39WHgFa/4BQAIRAGkWnrzPSlitcuX6ma4LVgEgAAc
+918uYrb0ICYV4ApVAPogBhXgHQUA/CBGFeALBQD0IGYVoA0FAFvSpmP+5wAAAAAA//8sDaAEBQAv
+ZZr+04Qd4CsFACtlketlkyFLgQAA+NIEHeNKBQD60qQdogUFAPTS5B3ljgUA/k8ACT/ZAQDiZZkm
+44EAAPzSRB2v9fYAlRDs90sfaASAAO+kAA3wBIAA+gBCHaALZQBb0on/9tQNr+KlAAAAAAAA//pQ
+Da/yRQD+QGgdoAolAP3ufAWgC2UAW9J///Y0Da/yRQAAAAAAAPyAaB3gCiUA/e5uBaALZQBb0ndj
+/bkAAPyAaB3gCiUA/e5kBaALZQBb0nFj/aEAAGwQDB/3LvQAQh3gCGUAG/csLCpALPaqirGJsoez
+hLSDtZMVlBSXE5kSmhGLsJsQEvcXHvckJPKFIiB9+CEGFaAGBQD0ISYV4jShAOU9NgF8WIAAAdIK
+giAC7izCIPPBAA8wAGIAHvcXBT02AdcKh3AiCoAH7iwC7jYX9xMa9xX1wA22EAM1APXADNcQBbUA
+lRryIWYV4Bg1APjv5h2gCZUAKXR+FfcMLHB/+u/QFeKEuQDk9wIcQQKAAOgWDC7JwoAACYgCrLsZ
+9wEsQocLiwIJuwIKzAH9ZgANsAI1APqQ5hXuDAUA9qcIFaALVQAPAgDTD9MPbSov4nB/IiAhAADj
+cH4iqCEAAAxmAQtmAqIyAoICCSICJlY2I0KHCjMBAyICIkaHJlI4GvbsF/bZ8iGIFeAEFQDk1DYL
+EASAAOb23xohwoAABDMC7CIBCsAEgADrIgIAqKEAAOKGOCCggQAAImKQi0AZ9t2IUOoiAQ3cAoAA
+CzsCC4gCCCIC5yICAmARAADiZpAi2BEAACiSkIzAi7DqiAEOZAKAAAw8AhP20Ay7AguIAgeIAiiW
+kBn2zSuSwBz2zQy7AiuWwCjyuRr2ywqIARr2ygjYAgqIAij2uRX2yCWW2iOW3COW3iOW4sJABOQ2
+CEQQJJbkI5bmK5LoEvbBHPbCArsBDLsCK5boKJLAGva/CogBKJbAI/KsFfa9FPa9BTMBBDMC8/WG
+FeACBQDRD5Uakxv27+YdoBK1APLvxh2v+b4AlRsodH727+YdoAlFAPghRhXv+WoAAABsEAQV9q72
+QAgVoCMFAG06BodQdnsFuFXCINEPlyAiUATRDwBsEAgmCgDjFgIq2ASAAOf2oxpQBIAA4hYFKSAE
+gADrFgQhEAUAAOoWAyOogQAAKnJ/W8kU6yQADRgEgADqcn8p4ASAAFvRH+SgEWO4IQAA5XnbczAh
+AADAINEPALE8rEwqwADF3f1ACDxgDwUA5fQACPAEgADyAAId4AIFAPQEQh2gJ/UAbQgTyaPKI3eh
+PGgiWbHK3KAqoAB9oV1j/+XIMSc0AGRfr/SgBh2gAgUA0Q90qdriLAEmUAUAAOrmACdwEQAA/UBo
+Ha//OgDvxAAhEAUAAOrMAS4YBIAA6uYAJ3ARAAD9QGgdr/66AHSpoi/EAPWAaB3v/nIAySZoIUJo
+IjLIMSc0AGRfTPSgBh2gAgUA0Q+NEuLWACGAOYAAJzQAy18S9l/0oAYdpqgFAKgiomLRDwCLFPog
+KBWgDAUAW8e7ixP6IAgVoAwFAFvHt4kS4pYAIYA5gAAnNADIUSRUAGau8hL2TyhqoKgiomLRD4kS
+EvZL/yAGFeaoBQCoIqJi0Q8AbBAEKzIAJrAAwHDoaX5tyASAAGRgdgu5AvggAh2gCgUA/AEiHaAt
+NQBtCF1obBV8YRJ9YSLojP8lUAUAAOYkACEQBQAAsXereSaQAGhpVWSAaM9iYABNACSQAPyIQATQ
+BQUAq3vmsAAtuASAAG0IFORgMWKoBQAAJnABsXfoaSJryASAAGP/5NMPY/+bwIDoJAAk0AUAAPpg
+BhWgAgUA0Q+re6tZyYLAsOskACTgBQAA7DYALRAEgADRD8Yq0Q8AbBAIW/7R7PYSGAQKgAD7QEGA
+UgCdABP2Fxj2Ev/sJgXv9fUA9+wkBeAEBQD77BoF4AkVAPPsHgWgBkUAHfYPLbalLLakJLanGvYN
+KramHvYMLrapHfYMLbaoLLarGvYKKraqLHKCHvYJHfYJDswBDcwCLHaCG/YHK3aGKXaHKkpFKnal
+LvLwBu4CLvbwHfYCHPYDnNAqMsAb9gILqgEqNsAuMtAv6sD/wAQHcR9VAA/uAi420B31+y020Soy
+2Bz1+hv1+gyqAQuqAio22C4y2x/1+A/uAi422x319i0mNSoy0hz19Rv19QyqAQuqAio20ioy0iiA
+gCv6/guqAeo20iwQcAAALjLTGPXuH/XuCO4BD+4CLjbTJTb0JTb1KzLeHPXq0w8MuwErNt4oMsMa
+9ef7AAQENQkFAAmIAig2wy0ywR/14/+gBAbwjgUADt0CLTbBKTLCHPXgGvXeG/XgDJkC+HhGFeQc
+BQBb0C8a9dwb9d0c9d1b0Cwa9dz967oFoAtVAFvIHBr12f3rsgWgC2UAW8gZGvXV/eusBaALdQBb
+yBUa9dL966QFoAuFAFvIEhr1zv3roAWgC5UAW8gOGvXL/euaBaALpQBbyAsa9cf965AFoAulAFvI
+Bxr1xP3riAWgC7UAW8gEGvXEHPXGHfXE/EHGFeArBQBbx//7634FoktFAPwAQh2gDSUAW8bt++t2
+BaFLFQD8AAId4Pz1AFvG6PvrbAWhSxUA/AACHeD89QBbxuQa9bH962YFoO5FAP5BRhWgKzUAW8fr
+GvWs/etcBaArRQBbx+ga9aj961QFoCtVAFvH5Br1qRb1qZosKiYLKiYNL2LUGfWmGPWnDwIACf8B
++eYAD7Aq5QD+2oYV4AsVAFuyRPoFwh2gC3UAW7I9+gWiHaALFQBbsj/6BaIdoCuVAFuyOPoFYh2g
+CxUAW7I5+gViHaArlQBbsjL6BkIdoAsVAFuyNPoGQh2gK5UAW7It+gXiHaALFQBbsi76BeIdoCvF
+AFuyJ/oEwh2gCxUAW7Ip+gTCHaArlQBbsiL6B0IdoEt1AFuyH/oAIh3gagUAW7Ig+gWiHeBqBQBb
+shr6BsIdoAs1AFuyG/oGwh2gK+UAW7IU+gbiHaALFQBbshX6BuIdoDvFAFuyD/oAIh3gqiUAW7IQ
++gUiHeCqJQBbsgn6BKIdoAslAFuyCvoEoh2gCzUAW7IE+gdiHaALJQBbsgX6B2IdoAtlAFux/voA
+Ih3gujUAW7H/F/Vc0w8rcYHBKPpAIbjiAJ0A+grCHeC6NQBbsfT6COIdoAsVAFux9SxxgfxAITCi
+AJ0A+gjiHaA7pQBbsez6CMIdoAsVAFux7S1xgQ8CAA8CAPxAIHjiAJ0A+gjCHaA7lQBbseL6CAId
+oEvFAFux3/oGYh2gS9UAW7Hd+ghCHaBL9QBbsdr6ByIdoEvlAFux1/oJoh2gCxUAW7HY+gwiHeBK
+1QBbsdIoMv4Z9OIJiAIoNv4uYpAvCi8P7gIuZpBb/Ktmo9Eb9I7AkPtwEBXgDEUAbcoMAJAECwwb
+f8cBsZqxmRL1JR/1Jhb1Ji1xexj1Jf9foBWgDEUA/4IADTDdEQDtyjkNSASAABz1Gy6CgPzvZBXv
++7UAC+4BLoaA8aAVZ9IAnQD1IBugkgCdAPUgG7kSAJ0A9SAcAhIAnQAW9OwZ9HspZowY9GQoZpAe
+9Q/TDynmjCjmkB31DSnWjCjWkBv1DCm2jCi2kBj1Cypicca+C6oBKmZxGvUI6YJ/JEARAAD5SAYV
+4BlVAG2aD+mCfyVQEQAA6aZAJEARAAAZ9P/A6C6WeirCMi0KBe2WeyUWMYAAH/T67/IAIMBBAAD/
+AAYV67qhAC2Sch709i/Av+7dAQDAQQAACP8IL/AADbsC+y5GFeAIRQAI/wIvlnQS9O0owjIklnPo
+FgUkAOGAAFu29AKqCCSmgSsSBSumgiSmgxn05immgBr05f3pygWgTQUAbdoRK6J//WAMlCIAnQCi
+viXmgLSqL3F+ZPI/wNAa9MT8H+IdoCt1AFvF8xr0wRv02Rz02VvG/Rn02ClmcBr0vBz01x302Bj0
+1fjPBhWiSwUAW8XpxLD36agFoAw1AAy7LPvpGgWhyx0A/YBgFa/+xQDuzAEN34KAAOqiIi5mAoAA
+/WYADbAMFQAMuwIc9IT3QwALMD0lAA2qKCvGpVuzDRv0fSuyIiwKZOy6KA0oBIAAW7MIHPR4LMIi
+LTro7cooDRAEgABbswOwWOisEQxsAoAA7cwCAVv9AAAMvAIsNuQAsAT2nwAMsBpFAAqZLCk27Soy
+7JoWJDblAIAEBgYZBi4ULjbmCmgRKDbnBmkKKTboKDbpFfSlBWUoJTbqxEsEZCgkNusb9KLTDwuq
+AQpqAio27P3pQAWiUoUA8sMACTAKRQDyfcYVoAuFAPggBhXgDQUA6BYBLHgEgABbz3eWEO8SBiro
+BIAA4hYBKnAEgAD6AIIdoAuFAP3pHgWv/4EAW89uKHF+zI4pcX/MmSpxgMykK3GBZLEdwCDRD6K9
+9bAGFa/5xgAAAAAAAOTGJiSU8QAA9SAHihIAnQBpoTQpwKga9H4uoIcroIItoH0kpH0kpIIkpIep
+2am5qen5lQYd7/TuAAAAAAAAAADvxiclDz0AAPlf6SFSAJ0AKMCoLsCyL8C3KcCtJMStJMS3r+6p
+iCjEqP+WRh2v9A4AAAAAAAAAAPoAQh3gujUAW7DrY/u+AAD6COIdoAslAFuw52P7zwAA+gjCHaAL
+JQBbsONj++YAAPUuRhWv9dYAKnF/Za25K3GAZb2zLHGBZc2t//awDaANxQDSoNEPAAAd9FH9hMYV
+7/JmAB70UB/0Ti/GJv+E5hWv8iIAJsYnL8YoIsYp9YTGFa/x3gAmxicvxijzhSYVr/wmACwy4B70
+RB30RA7MAQ3MAiw24CoywBvzewuqAio2wCgy2BnzzRr0FRz0PQmIAvh7BhWgKwUAW8ZPwCDRDwBs
+EAQS9DgiIX/ANfJCYIXgBAUAE/Q1JDSAJDSBJDSCJDSD0Q9sEAQT9C8U9DAiMX8EIgEiNX/RD2wQ
+KPBTkA3gBxUA9EATCJIAnQD0QBNhEgCdAPRAGCISAJ0A9EATip/mpQDwBAQNoAMFAAAAJRJGJhyE
+9qAAQr/mpQD84Ggd4AolAP3oNgWgCwUAW87vwKL6AAId4AkFAPivph3gCKUA6FR8KOAEgABbzucb
+9BIqCgHqtIgrBVoAAB/0Di/yHfwAAh2gDgUA/k4ADHAEFQDqhAAEFemAAO33D3nABIAABEwC7jIA
+IcARAAAKGhTkoC9lW/0AAOmCACZgCQAAbbkT64IBJmAJAADunggEQCEAAImArr7uggEvUASAAKqY
+qO795+oF4Y8BAOSAMWDIBwAA84ABBfAKRQAIqgzrsgAkyEEAAKmI+iiGFeAJBQBtqQfphAAkQAUA
+ACwSRK7OLtYeH/PlwOEu9IjINvRADhISAJ0A0mDRDwAAGPN8ADURqFP+oGgdoApFAP3nuAWgCwUA
+7SQACfgEgABbzqvApfxgaB2gCwUAW86oKjAAIxZA/DCAFaAFBQDxU2AN4Pv1APtACfRiAJ0A9/1C
+HaAJBQD4KKYV4AgFAPgo5hWgAQ4AAAAAAAAqEkcPAgBkroArEkEoogEsEkLtEkMo0ASAAAuAAOah
+DG0wBIAAKBJA0w8ogADVcPEIIA3g+fUAeYF66hQAANgHAABb/RYoEADqFkYiuAUAAA8CAP8c4A3g
+XLUAfImhKByEqKUtUHsuCl0PAgB+2ZAtHQHr3AQo0ASAAOzcCCboMQAAW/yl6hZHJQohgAAvEkVl
+8SwY86GEoXhJifgoCBXgChUAKhZFGvOaA5kM+UOmFe/91gAAZmB0HPOWwLH7kQYd7/hWABXzlhjy
++QAzEaU1+GAAQb/7JgAV85IY85IAMxGlNfhgAEG/+toAAAAa8xEqoH0Z843o840VfQyAACOBxAcz
+EfhgAEH/+lYAAPWAaB3gBwUA//X8Da/mpQD1gGgd4AcFAP/1vA2v5qUAJRJGKByE+KAAQr/1hgAA
+ACOBwwczEfhgAEH/+VoAAADr8xgZ0ASAAFvS/voAwh2gCwUA/AACHaANBQD+AAIdoA8FAFvLodJg
+0Q8A3XD75toF4AplAO/zChmsAoAA/KBoHaAOFQBby5gY82gogoBogBbz5sgF7/fuAAAAAAAAAAD/
+9jANoA4FABPzX//3JA2v9uUAwKL95roFoAsFAFvOJv/zHA2v5qUAbBAEFvNZKWJZKGJYJGJaqYgZ
+8oioRGRA2yeSLSVipgl3EfagAELwCAUAKFQhKFQgKFUTmFyYWyhWDyhWDihWEShWEihUVShUVChU
+fihUfyhVLChVMihVMyhVNChVNShVNihUbihUbyhUcChUcehUciIT/QAA+K5mHa/39QD2rsYd4AQV
+AG0pZCKSLSNipihVOuJCCAIgBQAA6FUSKRZCgACiNShUcihUcyhUIShUIJhcmFsoVROYX5heKFYR
+KFYSKFRVKFRUKFR+KFR/KFUsJ1R2KFUyKFUzKFU0KFU1KFU2KFRuKFRvKFRwKFRxKFUSKFU60Q/R
+DwBsEBIZ8xwjFhEkFheFmIuViJeKloyUjZOOku+SASCwQQAAn2GeYp1jnGSaZphnm2WVaImQ6WYA
+IRNhgAArEhcW8w74IugVr8kFAPNlYA3gB5UALWKGLmKE9kBGFe8FRQDjJgAsRoKAAOXVCARA/QAA
+CYgB+GAARD/7BQALVQET8nkoJgH+oBCDoEcFAClig+owfSSQKYAAJWaGB6oC6jR9KugEgAD15OYF
+oApVAP7QqBXgCwUA9CBmFeD4xQD8IAYV4BwFAPwgRhWgDSUA6BYBKmAEgABbzbAZ8l/qVAACjmmA
+AOomAyUOCYAAiiL2AAId4AMFAPQiZhWgDQUA5KEfYKBBAAApFhItFhYrEheKQAuqKCsKZAuqLOBw
+BAVQ/QAA+kBoFeaqHQD6IoYVoaqdACoWFaO7KxYYW8UALWKGKGKDLmKE+68ACr/7hQDrVQENeASA
+AP6gBluiAJ0A6vJBFAYZgAApoH0lZob+IgYV4EsFAAuZAumkfSroBIAALBITKBIQL2KF/CAGFeAK
+VQD0IGYV4A2FAPwgRhXgCwUA+CAmFaANJQBbzXzqVAAChBGAACkSGOqWACUHOYAAJRIR+iKoFeAM
+BQBbyk0tEhYsEhgvEhT64AQA0A4VAO/GAy9wCoAAnsadxOXGAS/GgoAAqFWt/e0WFibr/QAA7cYF
+ItsBAACbwooi4zwcIiARAADlFhEjuAUAAPr/93uiAJ0AwCDRD8BQ/iIGFe/9UgAAAC1ifC9iey4S
+EPWg4BXv+IUACFUBpe5+80YpYnkPAgAPAgDLmu5mfC9oBIAALBISKBIQLmJ6/CAGFeAKVQD0IGYV
+4A2FAPwgRhXgCwUA+CAmFaANBQBbzUT6oGgdr/yaAP//IA2gBQUA//gkDaAFBQDHJNEPwSbRD8As
+0Q8tYnwvYnv9IGgdr/gFAOlieSaoPQAA+KAEArD6xQCqWnrzQMud6mZ8LWgEgAD+z0gVoApVAPQg
+ZhXgCwUA/CAGFeD4xQD4ICYVoB0FAPwgRhXgDQUAW80l2lD546YF7/dmAAAA//8UDaAFBQBsEAQX
+8lgINRHlRQIJN4KAAKdmlWDRDwBsEAoU8lOISYlIikeLRoxFjUSFQYZAjkOPQp8SnhOWEOUWASCw
+QQAAnWCcYZtimmOZZJhlhUqVZvSBaBWgBUUA5GYHIQEhgABpIRTywGgdoAWFAG1ZCYgg44EIcRAR
+AADGKtEPwCDRD/IgaB2v/54AbBAGF/I4G/I4FfHUE/I4KrACKhQCK7EA+iAEHeAINQAmUqQpMeMq
+MkwrMkorNksrdiEqdiD5AAk44gCdACRxPyhwfY4g+0AAhr/PBQDruQkO7oKAAP0wABSz3R0A/afg
+FeOZHQDv3QEHcP0AAO/uAQTI/QAAD5kB7iYALAEKgADudiQqIAqAAIwgLXYlLlahrczsJgAmYP0A
+AA/MAZwgLHYmiCApdicsVqKpiOgmACRA/QAAD4gBKCYAKHYoBu5BAe4ILuAALDJMKFajBO4o/EAI
+FeA19QAF7gsP7gEudin/oABGsAUFAO0mACYAyYAA+qBoHeAKBQBbsuouMkyxVdMPflPqLzJL8eFw
+DeACBQD6QGgd4AoVAFuy4igyS7EieCPs8IFADeACBQD6QGgd4AolAFuy3LEidCnvKTJK0w/xIXAN
+4AIFAPpAaB3gCjUAW7LUKjJKsSJ6I+zAINEPACxKAAy7NwuqN1uziCkxHCo2Iuo2JC0gBIAA5JEi
+bO/CgAAN3QnrMRsm4A0AAA3cO/viHAWhzA0ArLurSwuqNpoSW7N6mhOKEluzeB3x0Sp2ISo2Sywy
+JgSvDIsTK3YgKzZMLzYl5LgMDUgEgADoNiMmQJ+AAB7xxw7OCo7gCuAAAAAuUoMs0qb/tOgV494h
+AP2hQBXkzFEA6RYBJgS5gAAa8b6IIBnxvfsAAEQwBBUA6YgBBmAtAADp8boeAQqAAABEGvjkRhWh
+RB0A5Jk2DoIKgAD45GYV4USdAAS6LKmImCBbs0EY8a8ogr8OiBH7AAQA0A/1AOCtGg/4CoAALlKE
+ihEEqiwk+v8E9AMOTgEO3QItVoRbszQb8aMrsr8OuxEAsQQAqRoqUr0EqgEKmQIpVr0qMkz6aWgV
+7/aOAAAAKjI19UAAhT/74gAuUoMs0p4ODkPv0p8naCkAAP/84A2kzDEALlKDLNLODs5T79LPJ2gp
+AAD//HwNpMwpAC5SgyzSyQ6OU+/SyidoKQAA//wYDaTMAQAuUoMs0sMOTlPv0sQnaCkAAP/7tA2k
+zNkALlKDLNK+Dg5T79K/J2gpAAD/+1ANpMyxAC5SgyzStg7OQ+/StydoKQAA//rsDaTMkQAuUoMs
+0q4OjkPv0q8naCkAAP/6iA2kzHEAAABsEAb34tQFoAcFAPXi0gXgCQUA+CAmFeADBQArYMHyACId
+oAyFAA8CAOx8AgWB+YAALBYA6nQACVgEgABbyanUoPwgCBWgC/UAW8VQjhEFTwr+YABHMIoFAAru
+Ai72gC1gwbEz7TPMcRAFAACPEeZsASO4BQAA/mAAR/ADBQDvFgErpmQAANEPbBASFvBsKQoA+tAQ
+FaAIRQBtigwAkAQKDBt/xwGxm7GZGvB4FfDg+X+gFeAIRQD5AgAN//71APniegWhXQUA+eJ4BeH7
+HQD+sAYV4AUFANMPbdoZJYaBJYaAKpaDLpaCKpaB7paAJEAhAAApnBAb8TEc8TEd8TIe8TL4AAId
+oEkFAG2aJAuJCimdBJWQDokKKZ0ElZANiQopnQSVkOyJCgRABQAAKZ0ElZBbsdr54koFoAqFANMP
+0w9tqgflhjAkQBMAABPxHPPiQAWgBAUAJTbCJTbDJTbEJTbF5TbGKlAEgABbsaEb8Kfs8KYZUASA
+AFuxluRMASEQgwAA4z0gKic8AAD54VAFoAqFAA8CANMPbaoH5YaEJEARAAAX8QzAgPT15hXiW4UA
+bboWJXbGJXbHJXbIJXbJJXbK6HbFJEAFAAD4IGgdoBoFAA8CAA8CAG2qB+WGACRAEQAA8hECHeAC
+BQDqJAAI2ASAAFuxZbEicynvGPDwFPD2/eHsBaAKBQD8AEId4AlFAG2aGCmCgAyZAimGgOSpCgVQ
+BQAA7ZaNJECDAAAqYIDz4cQF4AIFAAAgBAoLG/NgCQ/SAJ0AIiwB4z0gKSesAAAIqxEscoAd8OIN
+zAEMuwIrdoAY8OAqgIAtgIH0kWYV4GJFAPtAAIU/9OUA7SsMDVXCgAACqi0EqgH9QwAO8A4FAPtD
+AA1wDyUAAt0sAqos/eBABv/zxQDzoAQG8b0BAPVABAUwCTUA6vo3AOGBAADtxgAkQBUAAOuqCAZg
+EQAA6tsIAOlBAABtmk7pgIAkQBUAAKvu6tYAJugRAAAJmQnpgHws1cKAAAKqLQSqAQkrDAmpKAuq
+KAKZLAn5NwKqLPVABAUxuQEAA5kBCvo36cYAJmARAACrqqqbC+kI+6AGFaYPBQDp+1xw6UEAACoK
+AG0IHA2sCovAsaoKCkHuvP4llDEAAO7GACTL+QAAefs0Y//c2iD8KAAVoAsFAFvN4y0RIC02iiwc
+QivBACzBAepggC3cAoAADLsC+nEmFe/64gAAAAAvWv/55PYN4AoFAG0IHA2sCovAsaoKCkHosgxl
+8AkAAO7GACTICQAAefMCY//cKRxQjpDudoQk6BEAAO3SACPwEQAA7eaEJOAhAADswgAj6CEAAOzW
+hCTYMQAA67IAI+AxAAArxoQpHGAskgDsdogk2BEAAOuyACPgEQAA68aIJNAhAADqogAj2CEAAOq2
+iCTAMQAA6IIAI9AxAAAopogsEhv74CwFo8wdAO7PEA5tAoAA790CDnaCgAAOzAL9hgAOcCuVAFvC
+TMAg2iBbsESxImkk9cAg+kBoHaXr5QBbsJqxImkk78Ag0Q9sEAgV8FkU77YoUSL+ouQVoBz1APqj
+JBXgAwUA51EVJBVhgAAmURsqUR2uvabdqt384CTD5P4BAPXmbA3kiwEA9QXsDeSWAQBllFb7gCKY
+ogCdAA54DA1yDCJVHyhVFguPDAb/DP6jRB3viAEAC4kMKVUYAv8M/qPEHe//AQDq+QwJ2ASAAOlV
+HCxHgoAAIlEY6EaEKReCgAAiRociURwO/xHvRoUpF4KAACJGhixRHO9G/S5ngoAALEb84lEgLZ76
+AADLLfZAIR3SAJ0AKSz/8yAhgKIAnQACKgJbsaQuQooY74MtURTo7gENfAKAAA/uAi5Gii1G/itC
+gRzvfgy7AitGgSpRFPfgMgXgAgUA5vAYFQGhgAAoQr0PAgAPAgDniAEJTwKAAAmIAihGvSZGvFvC
+EuSgCWEQBQAAxy7RDwAqURR6I88Krgod72X6AAId7/r1AP6RphWgHBUAbcoY3KDA+X+zAdww6N0E
+JdgRAADshgAm6BEAAB3v/voAAh3gGRUA0w9tmhXcoC4KIX6zAgM8AizWFOu8BCboEQAAHe/1+gAC
+HeAPRQBt+hPcoMCJeLMB3DAs1ijrvAQm6BEAAB3v7PoAAh3gCcUA0w9tmhXcoC4KIX6zAgM8AizW
+LOu8BCboEQAAHe/j+gACHeAPRQBt+hPcoMCJeLMB3DAs1jjrvAQm6BEAAB3v2voAAh3gCUUA0w9t
+mhXcoC4KIX6zAgM8AizWPOu8BCboEQAAHe/R+gACHeAPxQBt+hPcoMKBeLMB3DAs1jzrvAQm6BEA
+AB3vyPoAAh3gCcUA0w9tmhXcoC4KIX6zAgM8AizWLOu8BCboEQAAL1HmZPGyKEKBGe++CYgBKEaB
+IlEgI1EfKlEdJlEbLFEiK1EZJ1EV7lEXJg0ZgACWEJMRkhPs77Qd+ASAAOoWAivoBIAA+gCCHaAL
+ZQBbylXAINEPACZChCJRFC9RFQYiDAIiFCJVFwL/DC9VFi1ChC5ChytRFg7dDA0tFC1VGQ27DCtV
+GClChypChQqZDAkpFClVGyJChSdRFS5RFyhChitRGSZRGwgiDP9gAEa/ohEAKlUd96AARr8iEQCi
+3/7gEDPiAJ0ADghEZYHWCwlEZZHQBg9EZfHK+4AOOKIAnQAoUSKq2Q5+DC5VFgl5DPij5B3v3gEA
+C98M71UYJAhBgAAG+wwrVRoJuQz4o8Qd75kBAAqbDCtVHA7bEShRGOtGhCxHgoAAKEaHL1EcDp4R
+7kaFL/+CgAAvRoYsURzuRv0uZ4KAAPyfhhWgCwUAZrDWLEKB8YAFMtIAnQAoQooICFX7AAQA0AIV
+AAAiGgICT+JVICFo0YAA9kALldIAnQCwKfMgDACiAJ0A2iBbsNouQooY7rotURTo7gENfAKAAA/u
+Ai5Gii1G/itCgRzutAy7AvqQJhXv82IAKFHnZY5GKVHoZZ5AKlHpZa46Y/5DHO9OkhOTEuYWACvo
+BIAA6hYBLfgEgAD4pCQVoApFAPgghhWgC2UAW8nrwCDRDwDypAQd7/IyAAvoDAaIDChVGgqMDAnM
+DPyjxB2vmAEACp8M/qOEHe/71gDSsNEP32Ds7pkfaASAAOoWAC3wBIAA+gBCHaALZQBbydf/7+AN
+r+ulAAAAAAAA/uBoHaAKJQD93RwFoAtlAFvJz//vYA2v+0UAAAAAAAD6AEIdoAtlAOzuhxloBIAA
+W8nHY/wBAAD6AEIdoAtlAOzughloBIAAW8nBY/vpkhDs7nsbeASAAP3AaB3gCiUA/2BoHaALZQBb
+ybn/+iQNr+ulABzuc+rdCAvwBIAA+gDCHeAKJQBbybL/+awNr/tFAAAAAAAAAAD6AEIdoAtlAOzu
+aRloBIAAW8mpY/uJAAD6AEIdoAtlAOzuZBloBIAAW8mjY/txAABsEBIa7vQS7f8c7vkpoRUoojcr
+wAyNwu7ABCD4gQAALvQEjMCc8OmINwDgoQAALcYAKBYb+4CGHeQLBQD5YDATogCdAPojJhXgChUA
+F+5qKnbxW8kDFO6SLkIyZOb/Gu7lGe7l9AACHeACBQAjoIMooIItoIEuoIAmkIMrkIIskIEvkIAO
+IjcNIjcPVTcMVTcIIjcDIjcLVTcGVTca7eMlXAH4AAId4AMVAPtQEBWgCEUAbYoMAJAECgsbf7cB
+sZWxmRzuziIWGC9Aci5AcS1AcChAc5gQK0B0KxYBKkB1KhYCKUB2KRYD+I7wFaALZQD4IIYVoApF
+AFvJYxLutvomABXgCgUAW7B/Gu69iRyqmekWDSDQ0QAAW/xdKyHm5u6JFbAxgACIQy1CMo5Cpt35
+wQAPMB+FAA7dLA/cLOsSDSbwwQAAD+4uDt0MrcwKzBHrFhcmYDMAAKy7/2/gFa+PBQAP7gGeHS52
+xFuvoS0SGyhCMosdCt037O6XHu5CgADtuwgELfGAAC8SGQ//Dw3/ES8WGijBIPEBoA3vwgUALUHO
+Hu3qK7w/ArsB6+aMLu8CgACtuyy8PwLMAZwdHe4WLNYBW8aRix0c7l4Y7jGquxnugeoSGyXY/QAA
+ArsBLZHmqrrrhuUlUP0AAAKqAeukAAaniYAAmh6bHS9AcyJAdShAdylAdi5AdC1AcqiZou6v3S9C
+Mq7d7ZkIDVgEgADpFg8skASAAOptDAehaYAA+I4wFeOvHQD6IoYVoAsFAPgixhXgCiUAW7AvKxIU
+WrC8KxIUKhYVC6ooW68xLBIVih/AuAy7DPtDAA1wa0UAWrC0KxIVKhYQqrv6IiYV4AqFAAuqDCsS
+FioWEvtDAA1wa0UAWrCrHO4qKhYTKRIUi0IoEhoJrSj2gcYVoPtNAA3+Ae5GDyQA+YAAqLiwiAj/
+AQ/uDJ5Ppu6LQi52xv6B6BWg+00Aih6m3Z1MHe2eDKo3q6rr0H0lU/0AAAr6AfqBxhWgaAUACLsC
+CuoMpqqaTygSEyoSESvUffsAAEQwDYUACN0MiEMNnSj6IkgV4IhNAAjdAZ1NLRIQCbsoCd0o92AA
+Rb6IBQD5oABGv8oFAGQgzilAcmSUKgLeLO6eKAXY/QAACrsBK0YQCu4BLkYRrrspQHNklB0C3izu
+nigF2P0AAAq7AStGEgruAS5GE667KUB0ZJQQAt4s7p4oBdj9AAAKuwErRhQK7gEuRhWuuylAdWSU
+AwLeLO6eKAXY/QAACrsBK0YWCu4BLkYXrrspQHZkk/YC3izunigF2P0AAAq7AStGGAruAS5GGa67
+KUB3ZJPpAt4s7p4oBdj9AAAKuwErRhoK7gEuRhuuu3vLDhjtVS+AfSkKIAn/Ai+EfVvIFItCKhIX
++iGmFaAKBQBb+4DmpBxtEASAAPqAaBXgChUAW/t70qDtQgMtIOIAAP2ioEFQCgUAbQgKsaoAoQQA
+Oxp9uwJj/+6ITfy/oBWgC0UA7LU4AJiBAACjWSmQAJpGDYgsCYkuCYgM6EYFIJChAACiXy/wAI5F
+7XbNL+iCgAAN7QKMRhrt3Ovt3BZj1QAA7XbOLmQCgABbxfKPQx3t2ItCjEUuEhiITwXMLKPpC4gs
+D90s6ZABJmP5AACcR51IHO2cCYkuCYgMmEQY7a6i6iqgAYlE63bLLVBCgAAKmQKPRY1Er937pgAV
+oB+FAA+qLgrdDOl2zCbowQAAi0SKRbHuD7ssD6osBaosDrssHu00ALsRC6oCLeYbKnbHix3rdsUu
+zoKAAKm7KYJED5ks6+YYLM6CgACpuyiCRQ+ILOvmGSxGgoAAqLsP3Szr5hou7oKAAK27jkyNTi52
+yC12yhrtHi5CEC1CESlCEK2ZHe1E7tbbJMv9AAAvQhIp1twoQhMuQhKo7u/W1ydz/QAAKEIULtbY
+KUIVL0IUqf/opvUn+/0AAClCFC+m9i5CFShCFK6I6dbfJEP9AAAuQhYo1uAvQhcpQhavme6m9yTL
+/QAAL0IWKab4KEIXLkIWqO7v1uMnc/0AAClCGC7W5CpCGShCGKqI6dbhJEP9AAAuQhoo1uIvQhsq
+Qhqvqu7W6SVT/QAAKtbq+4AFGuIAnQAf7Mku8H3CIALuAv/vph2gAgUA0Q8b7XP5YAQ7ogCdACsW
+Gf/n4A2gCiUALkBwZOGSL0Bx7xYWJ4xhgACIQ67y70ICL9gEgACikqimr4r23+AVoIhNAAaGAQrd
+DPaBhhWuigUAqt0NuygO2igCuywCqiwKiAGYTahm9+AAQzD/TQAL+wHrRg8jM/0AAAb/Af6BxhXv
+ygUA/2AARf/x2gDAINEP+EAIY6IAnQAiFhn/5bQNoAo1AC2R52XbDC6R6GXrBi+R6WX7AMePKHbG
+wKAqds0qds4qdssqdswZ7LoqlhsqdscodsUolhgolhkolhoodsj4+UYVr/kuACsh52W59ywh6GXJ
+8S0h6WXZ64sdY/oaAAAALsHmZODnLxIZK3bGD/8PC/sLwID4I0YVr+jqAIlDikIJKTYKKjaaQviA
+ZhXv48IAx//+ggYV4A4FAP6CJhWv74IAx5/4gkYV4AgFAPiCZhWv77YAx//+goYV4A4FAP6CphWv
+7+oAx5/4gsYV4AgFAPiC5hWv8B4Ax//+gwYV4A4FAP6DJhWv8FIAx5/4g0YV4AgFAPiDZhWv8IYA
+AAAb7Hx4syYrFhn/4XwNoApFAMf//oGGFeAOBQCeTf6BxhXvygUA/oHmFa/s1gAb7OB4swwrFhn/
+4MgNoApVAAAAGuy1KhYZ/+CIDaAKBQAAAC3B52XfES7B6GXvC2P/FAD8gEgV4AolAP3Z5gWgC4UA
+W8eN0Q/Aov3Z4AWgC4UAW8eK0Q9sEAoW7O0U7O0Y7F8b7O2MRY5Ej0OCQiNAAuMUAiDoQQAAktCf
+0Z7SnNMkQQD0IAQdr/n1ABrsvRfs45mwmbGZspmzmbSZtZm2I4Kkmbcncn/6YAQFMTNxAOEzCACg
+QQAA8mAQFeAFBQDyzQYd4AkVAPsiAAqwAoUA9M0mHeAFdQBtKg8pQQcpZTXnmwhyI/kAALBVx18q
+gqQc7MsU7CHsqgEK3UKAAAuqAuqGpCCYgQAAKUKH9IEAFeiZgQDpNgAhuBEAACVSh/6CABXoVYEA
+5XYAIZAhAAAv8of8gwAV6P+BAO8mACHwMQAALdKHJGBmDQ1YLeYAZEAh6E0QCmQCgADtzAIKXgKA
+AAtLAgy7AipgZyuGwSqGwiRgZh3srC5gZ4UYgxmk7uBVEQ96AoAA5fUCD3YCgAAF5QIFMwINMwIj
+hrGCGuwSCykUAoAAAv8CD+4CDswCDcwCLIayG+vwK7KHKYKC+lkABXK74QAKuzfqrAIl2AkAAO+q
+EQ3eQoAA+0YADXx7FQALmQEKmQIphoIV7AAjgoL/2RwF4AcVAPbShh3gggUA9GAEAfBOBQADLjn/
+8AYdoAIFANEPAAAAbBAEGuyEKqJ/+ZwCHaPrhQALqiwIqAhuiAorGpf7YA7CogCdACoKZBbrd/rN
+RB2gCxUAW63KKmVr9djuBaACBQD32OwF4AVFAC5ggAAgBNMPDg4b88AIZ9IAnQDlXP8iIEEAAOVf
+4WEQBQAA89eyBeAHBQD2AKIdoCwFAPL/oBWgCwUA84IADbcnAQDaIFutYSgKCAh4AggIRyg2UiUy
+UwUkEQ8CAPRuAAowBQUA5TZWIigHAAAa7Fr6AEId4AwFAPaYABSwDVUA9yYADLAOFQD4awYV4A8F
+AFvGDOaggW0QBIAAsUR1SczCwCsKACs2WCd8AeoyWCkDSgAA+P/741IAnQAf7Ege7Ej92EwF4AsF
+APoAAh2gFAUABLwCDAxHLDZSCokUAJkRDZkCKTZTCwhH7wAFBdgFAADpMlMsRwKAAO6ICAVQIwAA
++ROoFaCJBQBtmgIIAmFptr5mIAJbrYrRDwDaIFutdNogW61swDDaIPpgaB3gbEUAW60x6iQACdgE
+gAD8AEIdoA0lAFutUSM8AWk72QIqAlutJB3rz/yARhXgChUAW8Wm2iD6AeId4A4FAP6ARhWgbEUA
+W60g+kBoHaAL9QD8AGIdoA0lAFutQZdCwPD+gEYV4AMFAOokAAnYBIAA/ABiHaANFQBbrTmxM2k7
+52P+YijqcKiobogFKQrPepsH//h0DaA6JQAr+jirq264BMXHessH//ggDaAalQD/+AANoAqlAGwQ
+BBfr/wk1EeVFAgk3goAAp2aVYNEPAGwQBJMg+AACHa/MBQD4QUYVoIoFAOWlOgFYgQAA/WAEBbVJ
+BQDklDoBYMEAAJwsnC3kJgsl2QEAAOsmCSFQ4QAA6yYIKtgEgABbqgbqRAAK2ASAAFutf5oh0Q8A
+bBAGF+umKHJbEurX8QMQDeADBQAoIjAkcqaoOAmIEahEikcrGlD7QcgVoAwFAFvDPylyW+pGDiGY
+BQAA0w95M9IT69P0AAIdoAYFAOswfSpQBIAAW8Pt6mY3AiAFAADpROlhmAUAACtyWCxyWSpyWpwR
+7LsIAzAFAAD7QABFcAsFAOsWAyUJcYAAG+q389ckBaAOBQD+IEYVoAHqAAAoMFQvNFWvj+8WAS/Q
+BIAA/8AH0uIAnQApCoD/TwAOMAoFAG3JLiyyMChypq6trczmrwgOZkKAAKyIjDAvhDclhAwkhA2c
+iAL/CgndAu32gCVQBQAApqaNEyhyWS9yWO5yWiboBQAAnROo/6/u/6AFKqIAnQAksi2DEypypqQz
+7xIBKZ5CgACqMyQwDd7w5TAMIntxgAAZ6o2LEimSMKuZ6DIALM5CgACpqZkQJZQM5JQNKlgEgADo
+lggq0ASAAFvDqxvqgo4QjBLqMFQtaASAAC3kN+w0VSZgBQAA7BYCKAQKgAD3X/t5UgCdAI4RDwIA
+DwIArqjuNFUke/0AAO8WAS/QBIAA/9/4c+IAnQD//QwNoAoFANEPAABsEBIU63bTDyhBlSUKgPgg
+AAQwAwUACFM5+mBoHe/69QBbrQf3QGgdoAsFAPIiZhXv+vUAW60CKhYX+kgCHaALBQBbrP8qFhb7
+/+IdoQsFAFus+yoWFfv/4h2hCwUAW6z4KhYU+//iHaELBQBbrPQqFhL6AAId7/r1AFus8Zoc+//i
+HaKLBQBbrO4qFhH6AAId7/r1AFus6ioWEPogAh3iSgUAW6znKhYP+sACHeJKBQBbrOMqFg771IYF
+o4sFAFus4CoWDfoAAh3v+vUAW6zcmhv6AAId7/r1AFus2Zoa+gACHe/69QBbrNYqFgn7/+IdpwsF
+AFus0poY+//iHacLBQBbrM+aF/v/4h2nCwUAW6zMKhYG+//iHaCLBQBbrMiaFfv/4h2hCwUAW6zF
+mhT6AAId7/r1AFuswtWg+//iHaOLBQBbrL7XoPoAAh3v+vUAW6y7LRIXLkIWiB6LHylCFy9CLCIW
+GSxCLYIUIxIQBcwoAv8oCTMoIkIYrP8sEhYLIigrQhAJiCiJHQy7KIxPCe4oKUISDcwoLRIUqO4o
+QhQNmSgtEhGjIiNCEw2IKC0SEg0zKKgzLRIVKEIRDYgoqYiJTgltKKzcq8yozCtCJqPMosyCHChC
+IIMZArsoghuuzC5CIQKIKCJCIquIqMwDIiiDGosXiBUD7igjQiqi7iJCMK7MCDMoLkIuKEIoByIo
+Cu4oC4goou6LGCJCJwsiKKgiosyIFiJCKZUSCCIolxOjIqLMIhIZr8z/gABGN/j1AHmDDtPQ+iAm
+FaAARgAAAAAAAPogJhWgAwUAo8UFWgJbrG/6oGgd4IwFAFgXY/lAaB3gjAUA56QAAYJJgACNTicS
+E/GjcA3gBQUA6hYYLRgEgADtdAAJ0ASAAPv/4h3v/PUAW/7RWqHnjk7jYwgCqAUAAH5T3PgjCBXg
+jAUABlcop5dkJoHAMPYgBhWgBQUAJkJ1pWYjZgAuQl2ITg8CAH4zCg6ICPhgB0uiAJ0ALkJeiU9+
+MwmumfhgCPviAJ0ALkJfKkIQ0w9+MwmuqvpgCdOiAJ0ALkJgK0IRfjMJrrv6YAq74gCdAC5CYS1C
+EtMPfjMJrt38YAuT4gCdAC5CYi9CE34zCa7//mAMe+IAnQAuQmMoQhTTD34zCa6I+GANU6IAnQAu
+QmcpQhd+MwmumfhgDnviAJ0ALkJoKkIY0w9+MwmuqvpgD9OiAJ0ALkJmK0IXfjMJrrv6YBD74gCd
+AC5CZS1CFn4zCa7d/GAR4+IAnQAuQmQvQhX+YBLbogCdAK7//mASiuAYRQD4wIYdoADmAOp0AAnY
+BIAA/CJoFeAJBQD4wIYd7/z1AFv+f/ogCBXv/fUA/UAGFeAMBQCcZ6e3WqGQLAqA7FUIAZgFAADy
+f/XlIgCdAGAFLOp0AAnYBIAA/f/iHaAOJQD+wIYdoA0FAFv+bS8SF/rA5hWgjAUA9+AAQ///DgAA
+AOp0AAnYBIAA+ABiHaJMBQD4wIYdoA0FAFv+YSkSFvrA5hWgjAUA9yAAQ//+TgAAAPpgaB3v/PUA
++gCCHaENBQDqZAQr0ASAAFv+VSsSFfrA5hWgjAUA92AAQ//9jgAAAOp0AAnYBIAA/ACiHaENBQD8
+wIYdr/z1AFv+SS0SFPrA5hWgjAUA96AAQ//8zgAAAOp0AAnYBIAA/f/iHaAOFQD+wIYdoQ0FAFv+
+PS8SEvrA5hWgjAUA9+AAQ//8DgAAAOp0AAnYBIAA/f/iHaAYJQD4wIYdoo0FAFv+MZpnia4qEhH3
+IAYVoIwFAPdAAEP/+z4AAAAAAAAA+uBoHaAchQD8wIYdr5tlAPrAph3gDQUA+mBoHe/89QBb/iGa
+Z/wiCBXgDgUAnmj+wSYVoIwFAPegAEP/+ioAAOp0AAnYBIAA/EgCHa+fZQD+wKYd4BiVAPjAhh2h
+DQUAW/4RiR/6wOYVoIwFAPcgAEP/+VIAAAAA+mBoHeJMBQD6AsIdpg0FAOpkBCvQBIAAW/4Fix76
+wOYVoIwFAPdgAEP/+JIAAAAA+uBoHaAcVQDsZAQp2ASAAP3R5AWjjQUAW/35jR36wOYVoIwFAPeg
+AEP/99IALkJsL0Im0w9+Mwmu//5gCJPiAJ0ALkJpKEIgfjMJroj4YAl7ogCdAC5CailCIdMPfjMJ
+rpn4YApT4gCdAC5CaypCIn4zCa6q+mALO6IAnQAuQm0rQifTD34zCa67+mAME+IAnQAuQm4tQih+
+Mwmu3fxgDPviAJ0ALkJvL0Ip0w9+Mwmu//5gDdPiAJ0ALkJwKEIqfjMJroj4YA67ogCdAC5CcSlC
+LNMPfjMJrpn4YA+T4gCdAC5CcipCLX4zCa6q+mAQe6IAnQAuQnMrQjB+Mwmuu/pgEWPiAJ0ALkJ0
+LUIu/n/oW6IAnQCu3fx/6AriAJ0A6nQACdgEgAD9/+IdoB61AP7Ahh2gDQUAW/2xjxH6wOYVoIwF
+APfgAEP/81IAAAAA6nQACdgEgAD9/+IdoAiFAPjAhh2gDQUAW/2liRz6wOYVoIwFAPcgAEP/8pIA
+AAAA+mBoHe/89QD8AAId4AqVAOpkBCvQBIAAW/2Zixv6wOYVoIwFAPdgAEP/8dIAAAAA6nQACdgE
+gAD8AAId4AylAPzAhh2v/PUAW/2NjRr6wOYVoIwFAPegAEP/8RIAAAAA6nQACdgEgAD9/+IdoA61
+AP7Ahh2gDQUAW/2Bjxn6wOYVoIwFAPfgAEP/8FIAAAAA6nQACdgEgAD9/+IdoAjFAPjAhh2nDQUA
+W/11iRj6wOYVoIwFAPcgAEP/75IAAAAA+mBoHe/89QD6AaIdpw0FAOpkBCvQBIAAW/1pixf6wOYV
+oIwFAPdgAEP/7tIAAAAA6nQACdgEgAD8AcIdpw0FAPzAhh2v/PUAW/1djRb6wOYVoIwFAPegAEP/
+7hIAAAAA6nQACdgEgAD9/+IdoA71AP7Ahh2gjQUAW/1RjxX6wOYVoIwFAPfgAEP/7VIAAAAA6nQA
+CdgEgAD9/+IdoBgFAPjAhh2hDQUAW/1FiRT6wOYVoIwFAPcgAEP/7JIAAAAA+mBoHe/89QD8AAId
+4BoVAOpkBCvQBIAAW/05ixL6wOYVoIwFAPdgAEP/69IAAAAA6nQACdgEgAD8A0Ido40FAPzAhh2v
+/PUAW/0tjRP6wOYVoIwFAPegAEP/6xIALkIn9lICHeJzBQAPAgDxyRAN4AUFABboFCZiLSJCdaZW
+CWYRpiKGJ4ZuwMDrIRIjUYEAAFvAfYsr42oIDUAEgAD4QUYVoAwFAFvAeIsu52oIDUgEgAD4QaYV
+4AwFAFvAc92g+kIoFeSqBQAKagj8QgYV4AwFAFvAbd2g+kqQFea6BQCqavxCZhXgDAUAW8BnK0In
+6iYUIqgFAAD6v/u74gCdACxCKPGJEA3gBQUAFufuJmIuIkJ1plYJZhGmIoYnhm7AwOshEiNRgQAA
+W8BXiyvjaggNQASAAPhBRhWgDAUAW8BSiy7naggNSASAAPhBphXgDAUAW8BN3aD6QigV5KoFAApq
+CPxCBhXgDAUAW8BH3aD6SpAV5roFAKpq/EJmFeAMBQBbwEErQijqJhQiqAUAAPq/+7viAJ0ALEIp
+8YkQDeAFBQAW58gmYi8iQnWmVglmEaYihieGbsDA6yESI1GBAABbwDGLK+NqCA1ABIAA+EFGFaAM
+BQBbwCyLLudqCA1IBIAA+EGmFeAMBQBbwCfdoPpCKBXkqgUACmoI/EIGFeAMBQBbwCHdoPpKkBXm
+ugUAqmr8QmYV4AwFAFvAGytCKeomFCKoBQAA+r/7u+IAnQDAINEPbBAEG+ivAiUK61UKAQP5gAAm
+vNT0QASgkgCdAOpSxSkUUAAAKFLEeokOW6okIlLD0Q8AACJSw9EPKVLBHOiKA6oM+U8ADXDUTQAN
+qgGqmSlWwy+yJfnQqgWgDhUA/SAARjANBQD57wAP8AolAOj/CAzYBIAAW8CBHOfQK8B9xNANuwIr
+xH0iUsPRDwAuUsUiUsOj7q5O/9/gFaD0TQAP7gEuVsTRDwAAAAAAAPpAaB2gCwUAW6os80fgFe/I
+BQAIMwHqUsEp2ASAAFvHw8ChW6n3FOgYwCCkqiKmgSOmgiKmgxnoFflQBhXgChUAW6nvpKkrkoBn
+sAUskoBmz/kvYs0uUsKv7i5mzS1SxC1mzyJWwSJWwiJWwyJWxCJWxdEPbBAKF+hZFuhnKHIU4mJ/
+JABJgADAINEPAFumb+omYiEYBwAAW6ZpLjIi/08ADzAFFQDqNiMncAUAAP5khhWhjAUA+896BaAL
+RQD66qYd4A3VAC10VC1ifyqi2iQyHazc+YYQFe+qgQAqFgoqNiDqNiEspUgAAAzKAvoAAh3gD0UA
+bfoSKaAsAJEEAFga6EEIdVAFAACxu8C0+4YGHeE+BQCu3i4WCC7ggPXAEjoSAJ0A/IBoHeAKVQD9
+0HYFoDsFAFvCwi4yIi0yIw7dDLHdDW0U6dQABo8xgAAND19k8ePCoAmIV2SB5gnLU2Sx7QnsUWTB
+8rCuCeo71KDApf3QVgWgOwUA/oBoHaAfFQBbwq/BgQhINraJ6DScJFv9AADqYn8tgQqAAPygAQJR
+iwUA5Ez/LAEKgADrqggKwAqAAOQ2JSyBCoAA5DYmJEP9AADoFgkq+AqAAOg2KCf7/QAA7zYpIMhB
+AAAroCssoCotoCkuoCiekJ2RnJKbkxbnlv3QGAWgClUA/NsoFeA7BQBbwo8vMijTDwr/ES9m2f3Q
+DAWgClUA/NsoFeA7BQBbwocc6AItMiIuMiMvMiSJFosXihWIFOi7EAzMAoAA65kCDVYCgAAKiAL5
+BgAMcApVAPjbRhWgOwUAW8J5hhkc5/QtMiD+ZCgVoApVAP4hSBXgOwUAW8JyHOfvLjCc/mUIFeAK
+VQD4ZSgV4DsFAOkWACtGgoAA6BYBKmgEgABbwmgc5+Ud5+b+6pAVoApVAPjqsBWgOwUA+CAGFaAP
+9QAPAgBbwl8c594vMi4oMi2YEJ8RKTIwLjIv/iBGFaAKVQD4IGYV4DsFAFvCVcCl/c+qBaA7BQD8
+PgId4f4FAFvCUP3PpAWgClUA+gYCHeANVQBbwkv6ZEgV4bpFAOoqCApmgoAAW/Rh9OKGFeACBQDR
+D//47A2gBAUAANkR//hcDaAaBQAImRH7XwAVr/hKAAAADJkR+1+AFa/4LgAOmRH7X8AVr/gaAAAA
++gCiHaA7BQDs57caaASAAFvCMSpifywagA8CAKysLMAsLaJdAMEE4F4aDgIKgAANCxlksL0tol4r
+3P/gsAQHY/0AAPyfAA4/+fUADBwU5c/5ZMgFAAAA0QQAXBrszP8tggqAAPyfAA4/+/UADBwU5c/5
+ZdgFAAD5bwAN8SnFAKmpK5R8LKJe7JSAJegFAAAtlH0vol6yuOiUfif4BQAAL5SBLaJes77ulH8m
+6AkAAC2UgiyiXrPMLJSDKmJ//DACHaALBQD9QABFMA5FAG3qEy6gLADhBABdGn1BCeu8ASVQBQAA
+wLSPGAsOR//wBh2v8zoAwKX9zvgFoDsFAFvB9vyAaB3gClUA/c7yBaA7BQBbwfFj/LkAAGwQBhzn
+dRvmVynCpxjmoPWLCBXgigUAqpkllOQogH0rsi0pwqEJuxHrmQgEfDCAAPsgAEMwACYAJiqAppYY
+50coghJlgP8d52X/zXAFoAsFAPgAAh2gGQUAbZoeDYkCKeb56cKnJEAFAAAq4vnrmQgF2AkAAAoK
+TSqVIvagBliQAwUA9cxuBaACBQDwAWQNoAdFAAAc51MipAcipDgipDkvoDcuoDb9QAgV4AkFAPlI
+Jh3v+/UAK6RAkhKdEZMQ+JAQFaA7BQD4IGYVoApVAFvBvCxAgAAwBAwMG3/PUbEz5TFmcRAFAABb
+pTtkoGovYA0oYAwopDYmphX3QiYV5d7FAC6lGi+kNylAgAAgBAkNG/O/+//SAJ0AbQgPsSIAIAQJ
+Cxvzf/tn0gCdAGP/6QD6AKIdoDsFAOznKxnoBIAAW8GfY/+XwCDRDx3nBMDB/aJGFaACBQDRD8As
+0Q8AAABsEBAY5koS5f8PAgAogH0rIi0qIjXkLf0t3kKAAOuqCAR9BIAAIwqAo6pbsIorIi0pQvUJ
+uxGrmeOaCA0oBIAAW7CBLCItK0L16lUMDlZCgACquqOqW7CE90BoHaAA8gAAACMqgKOqW7B7LiIt
+LUL1Ce4Rrt3j2ggNKASAAFuwciwiLStC9epVDA5WQoAAqrqjqluwdQqmAhzm/C5CmB3m1y9ClylC
+lS3SFikWAPiSyBWgClUA+CAmFaA7BQBbwWge5s8iQvsu4hb6kwgVoAMFAP6gABOxyUUA6XcIBwKZ
+gAAc5uouIlzvIgkpaASAAPIgJhXgClUA9iBGFeCIBQD4IAYVoDsFAFvBVsAgHObhjUcuQjKPQ5UQ
+9iAmFaAKVQDyIEYVoDsFAFvBTdEPAAAA6+YAFSMhgAD7YCLjogCdACpClw8CAGSkTvtgIluiAJ0A
+KkKVZKRA+2Ah66IAnQAqQpb1QyAN4EkFAPsgIVOiAJ0ADFcR9iKGFeHIRQD44ABDsAolAPrgaB3g
+HAUAWBMw4qQABSBhgAD8OIIdoAsFAFu9dCkSFPvNPAWhyEUAqCiYLvoACB2kmR0AbZkCCAJhBVMK
+/mgAEbAKJQD6YGgd4BwFAFgTH+omDyUeMYAA/GBoHaALBQBbvWMd5qorQpQqCgIPAgD9YwAN8BwF
+AFgTFOomECUc4YAAKkKUW7h+80BoHeAcBQD6YGgd4AolAFgTDOomACUb2YAA+pKIFeAMBQBbveUa
+5k4qotQPqhFbuHHqFg0tWASAAPwCAh2gCiUAWBL/6iYBJRpJgAAb5kTTD9MPK7LU/3gAFbAMBQBb
+vdYPWhGaHFu4Y+oWCy1YBIAA/AICHaAKJQBYEvHqJgIlGImAAPohiBXgDAUAW73L2lBbuFjqFgot
+WASAAPwCAh2gCiUAWBLn6iYDJRcxgAD6oGgd4AwFAFu9wOvlRBFoQQAALRYRnSTtJgUhYGEAAJwe
+nCb8QOYVokoFAFun6ioWEvpQAh3iSgUAW6fmLRISK0KW+iHmFaCMBQD9YwAN8AolAFgSz2SiiC5C
+lg8CAA8CAOMWBCcCUYAA+iJmFaADBQD6ImgVr/v1AP3KUgXiTAUAW/o/LRITLhISiyQsEhHoQpYl
+SCEAAJmxm6IspgMN7QgtFhPpJgQhmAUAAHgzwY0fK0KVwKL9YwAN8IwFAFgStOmkAAUQ4YAAKkKV
+0w9koEz4IgYV4AMFAPoiCBWv+/UA/EgCHaKNBQBb+iUsEhCNHygiBusSDi1IBIAA6kKVJPghAAAv
+hgEolgIrlgMM3AgsFhDvJgYhmAUAAHozulu4CfNAaB3gHAUA+mBoHeAKJQBYEpfqJgklDUmAAPqS
+qBXgDAUAW71xKkKXW7f++iEmFaAcBQD7QGgd4AolAFgSjOomCyUL6YAA+pLoFeAMBQBbvWYqQpZb
+t/P6IQYVoBwFAPtAaB3gCiUAWBKB6iYKJQqJgAD6ksgV4AwFAFu9WypClVu36Pog5hWgHAUA+0Bo
+HeAKJQBYEnbqJgglCSmAACtClfIgphXgDAUAW71PKkKYW7fcmhaMFIkYjhWNGogZgxeu3QmICC4S
+DSkSCwozCA7MCAyZCO2ZCA1YBIAA+QAARHAKJQD4YABBsBwFAFgSYOomDCUGYYAA+pMIFeAMBQBb
+vTke5XAd5cDyn2YVoAvFAPpLxhXhjAUArCwtJl3+S+YVoAkFAPmFBh3gDyUA/4VGHeAO1QD/haYd
+oA3lAP2Fxh3gCBUA+YUmHaAKRQAqxCsrxCz7hgYdoBsFACvEL/vKigWhSwUAW7RqLRIUjhsc5dIZ
+5aoqJlz+IKgV4AgVACiWFv4gBhXgOwUA/iFIFeAKVQBbwDsc5cmNGf4g6BWgClUA/iDIFeA7BQBb
+wDVj+08AAAAAAAAA/+3ADa/ipQD/7aANr/JFAGwQBBLllCgiEciDwCDRDwD7yk4FoUsVAFu0Sxnl
+tx3liA8CACmRf/vLagXhDAUADKwC/yFABtAKBQANzAIqtnL7yjYFoUsVAFu3V1ujs8Dh/kImFaAC
+BQDRDwAAbBAEEuWo9gACHeADRQAPAgDlLJQhMQEAAG06IORifyEYCwAA5DUEIqgRAADkYn8hEAkA
+AAQ0FCQ1CCdWoMAg0Q8AAABsEAQX5ZgV5ZgU5Zj9yzIFoAIFAP3I+gXgGwUA41wIKjAEgADYQOlU
+AAnQBIAADwIA0w/TD226JeyGgyRYCwAA6YZ/JEChAADphnYkyKEAACqGd+qGeCVQoQAALbUMG+WF
+HOWF/sCAJeAOBQDu9h8hUEkAAFujthjkUCiAgAAgBAgIG3+PMhzlev3IvgXiqQUAqWapd/hgAEHw
+GwUA6VUIARAFAADpRAgIBAqAAPhf+5pSAJ0AwCDRDxvkQBrlcCuyMhzkSSqigasr7eVtHd5CgAD7
+QABFcMuFAFo/imP/pWwQBBTlaCpCafPJTAWgCQUA+nwABTQIBQBtigoMmxDrJvskyAUAAGSgTmmh
+SyNCaipCVlumplumlPwEAh2gC4UA5zc4fSgEgAAd5Vca5Vj/yDIF4OM5AO7aOQHkHIAAD6oCejcF
+GORACKoCezcRGeUU+UYADXAALgDAINEPGuVM/mGABxAJRQAd5IjTDw2qAu7lSRH0YIAA7qoCAfhA
+gAAvQH0PAgB//wIMqgJ/NwIJqgILqAIoJvzAawVmDARjECMm/RnlPQk5Aikm/iMm/ygtBIiAGuSW
+G+U6/cpwBa859QAJiAHriAIBSBMAAPkgBhWgO4UAW7bM6uSNG0MCgADkbxELZwKAAOxsAgt2AoAA
+7+4CC2oCgADtPQILfAKAAAj/Ag/dAg7dAv2GAA5wO5UAW7a9KEJS9qAAEzAzBQDTD/ECkA3gBQUA
+GOTp0w8PAgAIZgLcYOrkdRnYBIAAW7ayKUJSsVXpU+pxmAUAAMAw+mBoHaALBQD8AAIdoA0FAFuj
+TLEzaT7nIwoA2jBboz+xM2k79SoiwRvlCwuqAvpYJhWgAgUA0Q9sEATAINEPAGwQCFukjxblBBzl
+BihiXPXKBgXgBAUA/gAiHaACBQDkgnJmaREAAJ4ULRYBIhYFGOT8nBDoFgImYvEAAPwgZhWgAhUA
+F+O6J3IxI2Klp0cJdxGnMycyBydyDitiWvrgaB2gDAUAW7wi+stIFeAMBQDqNh0j0IEAAFu8HSti
+ofpjxhWgGQUAKTQEq0ubMCtQgP4D4h2gDQUA+sAABHAJBQD9AeAmVPsBAC40Ifxkhh3gACoAIjQk
+LzQhJDQiLlBQKTUcIjQtKTUdKTUeKTUfKTYQKTYRKTQqKTQrKTRsKTYfKTQ0KTQs+GamHeXo5QAo
+NRkY5M0pNEn4ZuQd5O4BAAjoCvkACBWgD1UALzQpKTRw7jQjLAAigAAa5K36Y+YVoAuFAPpj5B3g
+yQUA+GPEHeABHgCKE/pj5hWgDYUA/GPkHeDMBQD8Y8QdoAC2AC5QiPogSBWgDIUA9cAEYZDLBQD6
+AEIdoBuFAOzksRpoBIAAW78FKjIfiKbaMAuAACgyHw8CAIiJ6jUcKdAEgAALgADqFgUtCHIAANow
++gAiHeAMBQBbo3spMRzzIAYnEgCdAPEgB+eSAJ0A+oBoHaALJQBbo1cb5Jvs5JsZ0ASAAFu/RSli
+XOVcASIgBQAA+J/zI+IAnQBgALEAKjYfLDUf+mPEHe/+EgAAAC5QiIoR/cNAAtDNBQD6AEIdoBuF
+AOzkihpoBIAAW77cY/9XKjYf/GPEHeAOhQD+Y+Qdr/0yAAAAAI8UyP1bo8rqFgUtAzIAAMCAmBQu
+UIjqEgAnRHUAAPoAQh2gG4UA7OR5GmgEgABbvspj/w0AAAD6Y+YVr/wqAPqAaB2gC4UAW6MpY/9E
++gBCHaAbhQDs5G4aaASAAFu+voIV0Q/AkJkVGuNuKqB9e68FghXRDwAAW6L1ghXRDwDGKtEPbBAU
+FOO6KkIQK0LeKUISKEIUJ0IWL0IYLEHILUHGLkHEnhOdEpwRLxYTJxYUKBYVKRYWKxYXmhUrQqgq
+QqcpQqkoQcr7QABFcAIFAPsgAESwBwUA6BYAJJ1hgAD4IIYV78UFAPPIlgWgDwUA/iJGFeALBQDy
+IwYVr/L1AB7i/yjiLSZC9ah4CYgRqGaDZxrjRYM+KBIXKWE+mTOYMi1CjqiYKBYXfaMJiRX8YIYV
+4AAuAIkVLGE2nDQpnD8FmQEpNgUtQHLtFhwmg0GAACtCESpgbioWDisWD1vC5PwjiBXgDAUAW8Ib
+AqoB/AAiHeAMBQAM3DkK2jkMqgLlvgEFASmAACwSGC0SD/4hyBWgCiUA/iOIFeALBQBbvm7wADAN
+r+ulAP5gxhWgCwUAZrLPiTUqEhaINg8CAOmICAVQ/QAABaoBKjYH70BzJED9AAAFiAEoFgXvFhsn
+g0GAACtCEypgbyoWDCsWDVvCwPwjaBXgDAUAW8H3AqwB/gAiHaANBQAN7TkM7DkNzALlvwEGASmA
+ACwSGC0SDf4hiBWgCiUA/iNoFeALBQBbvkrwADANr+ulAP5hBhXgCwUAZrI/ijcpEhWMOA8CAOrM
+CATI/QAABZkBKTYJ6EB0JmD9AAAFzAEsFhboFhokA0GAACtCFSpgcCoWCisWC1vCnPwjSBXgDAUA
+W8HTAqoB/AAiHeAMBQAM3DkK2jkMqgLlvQEFASmAACwSGC0SC/4hSBWgCiUA/iNIFeALBQBbvibw
+ADANr+ulAPxhRhXgCwUAZrGviTkuEhSIOg8CAOmICAdw/QAABe4BLjYL70B1JED9AAAFiAEoFhXv
+Fhkng0mAACtCFypgcSoWCCsWCVvCePwjKBXgDAUAW8GvAq8B+AAiHeAIBQAImDkPnzkI/wLluQEH
+gSmAACwSGC0SCf4hCBWgCiUA/iMoFeALBQBbvgLwADANr+ulAPhhhhXgCwUAZrEfLjILjTwqEhOP
+Eq7d7hIBJVD9AAAFqgEqNg0sQHXqFh0m6P0AAAXdAe0WFCYEOYAALEB2K0IZKmByKhYGKxYHLBYQ
+W8JS/CIIFeAMBQBbwYkCrQH+ACId4A4FAA7+OQ39OQ7dAuoSHSaBeYAALBIYLRIH/iDIFaAKJQD+
+IggV4AsFAFu93Io9/mHIFe/rpQD+IiYV4ABKAAW4ASgWEfhhxhWgCwUAjRCOEY8S/CBoFaAANgCN
+EIwTiT4pFhEpEhIoYTosNSIoNhCZP6mJKRYSKGEyLzUkKDUjKWEzrIycEy41Jik1JShhNK+fnxIt
+NSgoNScpYTWujp4RKTUpKBIRrZ2dEKio6RIEJED9AAAFiAHoFhMjuAUAAPj/5A1iAJ0A0rDRDwDR
+DwAAbBAEGuLo0w8molgV42DwwyAN4AQFABjjXvfGvAXgCQUAbQgcInCAAEAEAgIbfycLBUYLKGZA
+KWZBJqJYsUR2SwJj/9woolnxBcAN4AQFABviCG0ITi+yLi6ipq9PCf8Rr+4s4RMv4GIj4FaG7yLg
+V47s7UwIKzWCgADl3QsJEUKAAOYiAgmewoAAA/8CAv8CL9ZAAO4RDswCLNZBKaJZsUR5SwJj/6rR
+DwAAAGwQBhrjOiqiQvFBjA3gBAUAYAB2GuM2KqJC47MIAiAFAAB6S2UT4ecS4zEjMi0iIpCjQwkz
+EaMiJSEHIyETKiAM+kGwFeNVYQBbuwcb4ykpIQcoIRILmQHzJgAM8AsFAOklByR9gYAACFwRDKoC
+bQgVH+Mgo74tIRIP7grq5sAl2AUAAH27jGP/4wDAxP1BAA4wCAUA6BYAJgY5gAAa4xMd4qSdEhnh
+x4gQLhICKZItL6KQLuDBCYgICYgR+eAAR7ALBQDvFgEnA+GAAIoR6qAMJbgFAADbcFu/byahB+Oh
+Ey0gBIAAK0AN+0GQFaNmYQBbut0pQQfq4v4dKASAAChBEgqZAfMmAAzwAgUA6UUHJADJgADbYOMq
+CArgBIAAW/AgK0ESsSJ7I+qMEizAwaMj7HOXe9gEgAAa4uwsokLA1A3MNo4QjxIPAgCx7u4WACf4
+BQAALxYC/d/6S6IAnQD/w8gFp/j1AHODKRri4hvi4vPPAAzwDVUA+mABBTAMdQBtmRAf4tov8cxu
+9AJ7oW8spsC0qhni1SmRy8CDeYBXHeJjG+LS7dK/JuATAAAishgswi0kshkrspANzAjiRAgOZkKA
+AAy7CCOxBw5ENiqwDPthsBXjM2EAW7qjGOLG4k0MCc4CgAAJqQIIKApt2gfphsAkQBEAANEPAAAA
+AAAA/VgGFe/+PgBsEAZb9ezmoXxtEASAAFv1eeahcW0QBIAA+8P4BaArdQBbsSEZ4rTANPoAAAaw
+ByUA/S+GHeDKCQD9L6YdoLoRAPsvxh3gihkA+S/mHaAFFQBb80/moS5tEASAAPvD2AWhSxUAW7EQ
+FOKkEuGe98OKBaD6QQAvRFwZ4e0uYtPokX0vCboAAPMACN9SAJ0AK5F+4+G7HYCGAAAskX9lwAUt
+kYBk0SIa4pX6AEId4AwFAP4AIh2iDQUA9mJmFeAPBQBbu/9moCYlNhMsYsIsRi4rYtgrRi8pYtkp
+RjAoYtsoRjEvYvAvRjIuYuwuRjPmoJVtEASAAC1C9x7hyg8CAAjdES/ikA8PRw/dAi3mkFvxu+ag
+cm0QBIAAW/C65qBnbRAEgAAf4hsuQgcP7ggf4Xou9qtb8JIU4in6EAIdoAIFAP3+gh2gBgUAKEKe
+boM5K0Kdy7P6AAIdoAwVAPwAAh3gDwUA/iAmFeAOBQD+IEYV4AkVAPggBhXgDwUAWqBBwIMoRp1k
+IEvRD7Cq+0AgFeAOFQDr6zkFaAUAAO3COA39VgAAY//dGuGZ+igCHeMsdQBbs9UZ4Z5j/tQvIH0D
+/wL+T6Yd7/sOAAD/+/QNoAoFAAAAGuJM+cSUBaALhQD4ZaYVoAwFAFu6BhriSBviSBziR1u6Ax3h
+nhzhmhrhm///4h2gSQUAbZoMK6J/fbFqrL8u9oC0qhjiPtMPK4J/+xAIFaBJVQDsuwgEQCEAAG2a
+ECmCfyq2gCqCgOybCARAIQAAHOEo0w/TDyzAfOq2gC4QZAAAHuFVL+J2B/8CL+Z2LeJ+B90CLeZ+
+W6M5GeFEKJKCBYgCKJaC0Q+sufcwBhWv/lIAAGwQBB3hmizSWcvLKMz/CMoB6MAaflgEgABtCAyw
+qemqAQ1YBIAAebACY//sD7sRHuIYL8wf+8+GHeX/HQD/z6Yd4AoFACrkfvm0yBWgigUACAA/W6Mk
+CgE/0Q8AbBAMFeC2kxSGICxSNC9SLStSNS5SLi1SLyhgDJgXJmANlhjm4gUe7kKAAO29CA92QoAA
+7r4ID/5CgAAPvwgvFgouFgsoYn/tFgwuZkKAAOy7CAKr/wAA6xYNJAJxgABbo1MZ4UepqSqSgGeg
+C20IBSqSgGegAmP/8xvhXxzhXvoAQh2gDQUA/s/oFeAOFQBbuY4rYn8c4VgsVlgrVlksVlqsuytW
+WytWXFujZC5SFSNSGC9SFyRSFCdSEyhSEilSESpSEItf/KHIFaANBQCdGS1WXSxWXi1SFqy7LFIg
+K1Zfq6oqVmCqmStSISlWYamIKlIiKFZiqHcpUiYnVmOnRChSJyRWZydSKK9EJFZopDMjVmSj7i5W
+ZiRSKa/uI1IqL1IsLlZlrt0tVmmtzCxWai5SLay7K1ZrLVIwq6oqVmyqmSlWbamIKFZuqHcnVm+n
+RCRWcKQzI1Zxo/8vVnKv7i5Wc67dLVZ0W7lT06BbuVLXoFu5UY0ZGeBi/8FEBeBIBQD84MBAX4sF
+AMDS7wIADTZCgAD3IARq4gCdAClSXC5SWgaXDAt3Af7gEqOiAJ0AKlJZZKJJK/B9J1ZcCLsC6/R9
+K8gEgAAc4JMvUlv4IAYV4ApVAPYgJhWgjQUA/CBGFeALBQD2IGYV4A0lAFu70mVwjB/hRijyxSn6
+gO/yxCQ5/QAACXcBp27/4A8bogCdABnhPimSwmSR1RnhPPAAzA2gDQUAGuE5DdkKCpkKKJLF75LE
+JDn9AAALdwGnbv/gDbOiAJ0AK5LCZLGr9aANwRIAnQDulsUvQASAABzgZi6Sw/YgJhWghAUAJBYC
+9iBmFeAKVQD4IAYVoAsFAFu7rudWdSOM0YAAFuAVKWItKmIu6GI0IyPzAAAtQufmYi8szkKAAOl5
+CAxGQoAA6HgIDVZCgACqeioWBegWBi7uQoAA6BIKKzZCgAD24ABDNK0dAG2pBQgAhgkCYfohSBWm
+vR0AW6KsLULo0w/pEgUu7kKAAPghaBWkrR0AbakFCACGCQJh+iFoFaa9HQBboqItQunTDwndEfgh
+iBWkrR0AbakFCACGBgJh+iGIFaa9HQBbopktQu7pEgYu7kKAAPghqBWkrR0AbakFCACGCQJh+iGo
+Faa9HQBboo/AofoAAh3gDAUAW/g6iF7JjC1RlYsZ/CAABvAMhQD9jQAN8Ao1AAuqNwqKKFuildow
+W/VoW/T5GOEqKIJ/yIvAovvCUAXjyB0AW/gqG+BA/cBsBaAKBQBb+Cb6AAIdoAsFAFuifhvhIBzh
+IP9AaB3gDQUA/gAiHaAKFQBbuLyKF4sYW711iRSaIPMgBhXgAgUA0Q8AAAAA+cGOBeANBQD/+YAN
+oAcFAP/3DA2gBwUAG9//KrB9xMAMqgIqtH3/OIgV7/jqAMck0Q8AAAAAAABsEAbaIPogaB3gPNUA
+W7F4GOEEiRAign8Kkjvihn8tEASAANEPAAAAbBAG2iD6IGgd4DzVAFuxbhjg7okQIoJ/CpI74oZ/
+LRAEgADRDwAAAGwQBtog+iBoHeA81QBbsWTp4PEdAKoAAIIQBEgKqYjihIAtEASAANEP0qDRDwAA
+AGwQBtog+iBoHeA81QBbsVjp4OUdAKoAAIIQBEgKqYjihH8tEASAANEP0qDRDwAAAGwQBtog+iBo
+HeA81QBbsUzp4NkdAKoAAIIQBEgKqYjihH4tEASAANEP0qDRDwAAAGwQBtog+iBoHeA81QBbsUDp
+4M0dAKoAAIIQBEgKqYjihH0tEASAANEP0qDRDwAAAGwQBtog+iBoHeA81QBbsTTp4E4dAKoAAIIQ
+BEgKqYjihIAtEASAANEP0qDRDwAAAGwQCh/guYv0iPbi8gcpUASAAIn1jPON8o7xnhGdEiwWAykW
+BSIWBygWBisWBO/yACoYBIAA/iAGFeA71QBbsiTmpAAFAjGAACigAMCQ6uAIFAU5gAAJlALjFggg
+uIEAANMQhTAPAgAPAgAFWgJbsibrVAANEASAAOpkAAlgBIAAW7oxyKe4M3c518Yq0Q+mLCvAAMLc
+7bEKflAEgABlv+RgAAGxyukyASV/CYAALqAA1qDklAIPfVYAABvf7YoY+0AARXD/9QB/QT4Z3+gk
+pID+gaAH0AoVACyRfwrMAiyVf35HIC2Rf8DkDt0C/S/kHeACBQDRDwAA+oAAR7ACBQAi9IDRD8Ag
+0Q/AIPNQBh2gAgUA0Q8AAABsEAbaIPogaB3gPNUAW7DiGOBxiRAign8Kkjvihn8tEASAANEPAAAA
+bBAG2iD6IGgd4DzVAFuw2BjgaIkQIoJ/CpI74oZ/LRAEgADRDwAAAGwQBtog+iBoHeA81QBbsM4Y
+4F+JECKCfwqSO+KGfy0QBIAA0Q8AAABsEAbaIPogaB3gPNUAW7DEGOBWiRAign8Kkjvihn8tEASA
+ANEPAAAAbBAG2iD6IGgd4DzVAFuwuhjgTYkQIoJ/CpI74oZ/LRAEgADRDwAAAGwQBtog+iBoHeA8
+1QBbsLAY4ESJECKCfwqSO+KGfy0QBIAA0Q8AAABsEAbaIPogaB3gPNUAW7CmGOA7iRAign8Kkjvi
+hn8tEASAANEPAAAAbBAG2iD6IGgd4DzVAFuwnBjgMokQIoJ/CpI74oZ/LRAEgADRDwAAAGwQBtog
++iBoHeA81QBbsJIY3wyJECKCfwqSO+KGfy0QBIAA0Q8AAABsEAbaIPogaB3gPNUAW7CIGOAfiRAi
+gn8Kkjvihn8tEASAANEPAAAAbBAG2iD6IGgd4DzVAFuwfujgFR0AsgAAiRAigoAJIijihn4tEASA
+ANEP0qDRDwAAbBAG2iD6IGgd4DzVAFuwchjgCokQIoJ/CpI74oZ/LRAEgADRDwAAAGwQBtog+iBo
+HeA81QBbsGgY4AGJECKCfwqSO+KGfy0QBIAA0Q8AAABsEAbaIPogaB3gPNUAW7Be5qAfbRAEgADq
+NAAKWASAAPygaB2gfSUA/iAIFeAOFQBYExXRDwAAAGwQBtog+iBoHeA81QBbsFDmoB9tEASAAOo0
+AApYBIAA/KBoHaB9FQD+IAgV4A4VAFgTB9EPAAAAbBAG2iD6IGgd4DzVAFuwQuagH20QBIAA6jQA
+ClgEgAD8oGgdoH0FAP4gCBXgDhUAWBL50Q8AAABsEAbaIPogaB3gPNUAW7A05qAfbRAEgADqNAAK
+WASAAPygaB2gbfUA/iAIFeAOFQBYEuvRDwAAAGwQBtog+iBoHeA81QBbsCbmoB9tEASAAOo0AApY
+BIAA/KBoHaBt5QD+IAgV4A4VAFgS3dEPAAAAbBAG2iD6IGgd4DzVAFuwGOagH20QBIAA6jQAClgE
+gAD8oGgdoH1FAP4gCBXgDiUAWBLP0Q8AAABsEBYb36f6IGgdoIwFAFu2C/pAaB2gO9UAW7EP4qQA
+BQ6BgAAooAAjFiIlFiHkFiAkBDmAAPQv4BWgJcUA9IAgFaAJBQD4JGYV4AFuALhm9MAM7CIAnQAn
+YgAHegJbsQzrdAANGASAAOokAAngBIAAW7kXZa/WojctcADl0TF78ASAAGXfxuliAScLMYAAKhIj
+KOAA6poCDxAEgADqFiMkAOmAAPYgaB2v/r4AAAAAAP7gIBWv/0oAwLArFiMqEiIsEiH6JAgV4F3l
+AP4kaBXgDiUAWBKZLBIj+b7kBeAOJQAPAgD/gaAH0A0VAC+Rxw7/Ai+VxygSI/8BoAdQAoUAKpHH
+AqoCKpXHKxIj/2GgBxAcBQAvkccM/wIvlccoEiPTD9MPe4cIKpHIDaoCKpXIKxIj/2GgBpAjBQAv
+kckN/wIvlckoEiPTD3mHCCqRyQ6qAiqVySgSICsSIy+SGSoKYAq6AQqPOe+WGSXgQIAAK5HKDwIA
+DbsCK5XKLRIjd9cIL5HKDv8CL5XKKBIjdocIKpHKDKoCKpXKKxIjdbcILZHKA90CLZXKLhIjdOcK
+L5HLwIUI/wIvlcsqEiNzpworkcvA1g27AiuVyy4SI3LnCC+RywL/Ai+VyygSI3GHFCqRywyqAvs5
+ZB2gAgUA0Q8AxirRD8Ag0Q9sEAjaIPogaB3gPNUAW6+M5qCJbRAEgAAc3brA0OzAgCDYQQAA+gAi
+HaAIRQBtig98oAmx3eq2ACXYEQAAD6oR8aWQDeAKFQAmHBD+IAgVoA8FAPoAAh3gCEUA0w9tiid6
+4Bx6wA7/RgAP8ABaAAAAAAAAAAANuS4GmQqJkA+fAuu8AS1XwoAA2jDrRAAK4ASAAP4AIh2gbRUA
+WBIp0Q8AbBAG2iD6IGgd4DzVAFuvZOagH20QBIAA6jQAClgEgAD8oGgdoG3FAP4gCBXgDiUAWBIb
+0Q8AAABsEAbaIPogaB3gPNUAW69W5qAfbRAEgADqNAAKWASAAPygaB2gbaUA/iAIFeAOJQBYEg3R
+DwAAAGwQBtog+iBoHeA81QBbr0jmoB9tEASAAOo0AApYBIAA/KBoHaBthQD+IAgV4A4lAFgR/9EP
+AAAAbBAG2iD6IGgd4DzVAFuvOuagH20QBIAA6jQAClgEgAD8oGgdoG1lAP4gCBXgDiUAWBHx0Q8A
+AABsEAbaIPogaB3gPNUAW68s5qAfbRAEgADqNAAKWASAAPygaB2gbUUA/iAIFeAOJQBYEePRDwAA
+AGwQBtog+iBoHeA81QBbrx7moB9tEASAAOo0AApYBIAA/KBoHaB9xQD+IAgV4A4lAFgR1dEPAAAA
+bBAG2iD6IGgd4DzVAFuvEOagH20QBIAA6jQAClgEgAD8oGgdoG0FAP4gCBXgDhUAWBHH0Q8AAABs
+EAbaIPogaB3gPNUAW68C5qAfbRAEgADqNAAKWASAAPygaB2gXYUA/iAIFeAOJQBYEbnRDwAAAGwQ
+Btog+iBoHeA81QBbrvTmoB9tEASAAOo0AApYBIAA/KBoHaBdRQD+IAgV4A4VAFgRq9EPAAAAbBAG
+2iD6IGgd4DzVAFuu5uagH20QBIAA6jQAClgEgAD8oGgdoE1FAP4gCBXgDkUAWBGd0Q8AAABsEAba
+IPogaB3gPNUAW67Y5qAfbRAEgADqNAAKWASAAPygaB2gPYUA/iAIFeAORQBYEY/RDwAAAGwQBtog
++iBoHeA81QBbrsrmoB9tEASAAOo0AApYBIAA/KBoHaAtRQD+IAgV4A4lAFgRgdEPAAAAbBAG2iD6
+IGgd4DzVAFuuvOagH20QBIAA6jQAClgEgAD8oGgdoC0VAP4gCBXgDhUAWBFz0Q8AAABsEAbaIPog
+aB3gPNUAW66u5qAfbRAEgADqNAAKWASAAPygaB2gLQUA/iAIFeAOFQBYEWXRDwAAAGwQBtog+iBo
+HeA81QBbrqDmoB9tEASAAOo0AApYBIAA/KBoHaB95QD+IAgV4A4VAFgRVxnd+iiQfcChCogCKJR9
+0Q8AbBAGaTEFbkQGZEADxirRD9og+iBoHeA81QBbrozo3cYdAMIAAIkQqEgigH0JIjbihH0tEASA
+ANEP0qDRDwAAAGwQDBzeHsffnRSLwYjDicIpFgIoFgMrFgHswgApUASAAPwgBhWgW7UAW6+A4qQA
+BQuxgAAqoAAuCmB662wvCnp682bTEPQiABXgN6UAhDDaQFuvhOtEAA0wBIAA6iQAC2AEgABbt4/K
+o7gzdTne8gACHaADBQD4ACId4AoFAPMiAA0wCAUACpg4zY9gAReibCvAANrA92AQnGIAnQBlv8hg
+AgoAAAAAAAAAwDD8AAIdoF3VAP5AaB2gBAUA6xwgKVAEgAD1YGgd4A+1ANMPbfoaKqAAfaEc5KA0
+ZmAFAAAqtACiyu6kAAXYBQAA/kFgFaAMtQDqHCAnEAUAAOXICADYwQAA9QAGHaAMBQBbrj/6QGgd
+oDvVAFuvReKkAAUEQYAAK6AA0w/xYrAN4C31ANygbQgNfbEUK8AB5LAYZmAFAABj/+sAAAAAAAAA
+9CCGFaABcgAAAIkUZJBQwMD4JAAV4Aq1AG2qFSogAOSgEWEQBQAAKpQA7MwBJMgFAADAy6XL+iQA
+FaAMBQDktAAg2NEAAFuuHgr+UPwAIh3gDAUADtw4ZcC1xirRDwAA+iQAFaAMBQD+QGgdoA+1ANMP
+bfoYK+AAfbEa5LChZmAFAAArpADizggFUAUAAP5BYBWgDLUA6hwgJxAFAADlyAgA2NEAAPUABh2g
+DAUAW64E8Uy4DeBq+QDAwPgkABXgCrUA0w9tqhUqIADkoBFhEAUAACqUAOzMASTIBQAAwMuly/ok
+ABWgDAUA5LQAINhBAABbrfP6ACId4AwFAAa8OP+VYA3gmvkAwNAJvThk30nJNGg7VsHhfjE1wCDR
+DwAA//40Da/qpQAY3MCCHKgiKCKAiRT+IagV7/r1AAqZAwmIAQj/Av5QBhXgAgUA0Q8AGtydixyM
+FI0dW63QwCDRD7HK0qDyYCgV7/cKABrcmoscjBSNHVutycAg0Q8AAAAA+gAiHaAJBQAGqThln4Fj
+/sgAAABsEAbaIPogaB3gPNUAW63HGN1kiRAign8Kkjvihn8tEASAANEPAAAAbBAG2iD6IGgd4DzV
+AFutvRjdW4kQIoCACpI74oSALRAEgADRDwAAAGwQBtog+iBoHeA81QBbrbMY3VKJECKCfwqSO+KG
+fy0QBIAA0Q8AAABsEAbaIPogaB3gPNUAW62pGN1JiRAigH0KkjvihH0tEASAANEPAAAAbBAI+kBo
+HaA71QBbrqjjpAAFCVGAAMBQ97h8BaAHBQDyAAIdoCTFAPAAvA2gCwUAABzb2gUdFAbdCijSrsef
+Cc4DDogBCLgC6NauIqgFAAD0oAdDUAsFAGVw4N0Q+mBoHaAOtQBt6h0soADkwR998ASAAOTAvWXY
+BQAALNQA47oIBugFAAD6YWAVoA61APoiABXgDAUA4e8IBRgFAADi9AAo0ASAAFutefFFdA3gDgUA
+6RQACLgEgAD6YGgdoAi1AG2KFCugAMm265QAJ3AFAADqrAEkyAUAAPphYBWgDrUA+iIAFeAMBQDn
+6QgFGAUAAOKUACjQBIAAW61k8UPIDeAHFQAb3JaMFCuyfwy7KCw66Ay7LJsU8r/4t9IAnQDs3EAd
+3AKAAPoghhXv/CYAAAAAAAD//cQNr+qlANKg0Q9sEA4b3PP6IGgdoEyFAFuzUPpAaB2gO9UAW65U
+4qQABQPhgAAooADTD2SAb/YpABWgBwUA8iBoHeAANgAAAAAAuDN2MVaEMNpAW65W60QADSgEgADq
+JAAK4ASAAFu2YWWv3aJcKsAAwtztoTd+WASAAGWvy+kyASWBIYAALrAA0rDnlwIPfX4AAC8aDH9w
+DBLc0fZP5hXgAgUA0Q/GKtEPAAAAAPuAIBXv/zIAbBAE+kBoHaA71QBbri3ipAAFANmAABPcxdow
+W6433KDrNAAJUASAAFu2Q8iixirRDxjcvxrcwCKCfxncQgoiAQkiAvMP5hWgAgUA0Q8AAABsEA4b
+3Ln6IGgdoFwFAFuzEfpAaB2gO9UAW64V4qQABQOBgAAooAAPAgAPAgBkgHD2KgAVoAcFAPIgaB3g
+ADYAAAAAALgzdjFGhDDaQFuuFutEAA0oBIAA6iQACuAEgABbtiFlr92iXCrAAMLc7aEnflgEgABl
+r8vpMgElgKGAAC6wANKw55cCD31+AABgABLGKtEPAAAAAPuAIBXv/3IAAMBw3HD7t14FoUsFAFut
+7MAg0Q9sEATAINEPAGwQBi0gAOs0AApgBIAA+qBoHaA/1QD/paYN4AYFAMU7c9Ej3iDTD9MPbQgV
+5NBIYzAFAAAt4AHv0Qx3cAUAAHPRBGP/3wAAF9x6mxL8ICYVoAMFAOoWACOgQQAAJXJ/2yDsZAAK
+0ASAAFu18MisuHfkeehxmCEAAMYq0Q/aUFut23ap6RrbYfpgAEU5eAUAeKHl6xICJUAbAAAogiWM
+Ee0SAClQBIAAC4AA0qDRDwAAbBAG3EDqIAAq6ASAAPIgZhWgBgUA/mBoHaA/1QDvoS55GASAAMUr
+cqEk2zAPAgDTD20IFeSgSGMwBQAAKrAB76EMddgFAAByoQRj/94AABfcTZ4S/CAmFaACBQDtFgAj
+qMEAACRyf9sw7GQAClAEgABbtcLIrLh35XnocRAhAADGKtEP2kBbra12qeka2zP6QABFOagFAHih
+5esSAiVAGwAAKIIZjBHtEgAp0ASAAAuAANKg0Q8AAGwQBtxA6iAAKugEgAD+YGgdoD/VAOIWAykY
+BIAA/0WGDeACBQDFS3ShItswDwIA0w9tCBXkoJhhEAUAACqwAe+hCnXYBQAAdKECY//eFdwhnRKc
+Efe4PgWgBwUA/iAGFaAAOgC4ZuVhZnO4IQAAJGJ/2zDsJAAKUASAAFu1kmWv4tpAW62AcqnaGtsF
++uAARTrYBQB4oTiLEGmxFywSAS06/33JDh7cDC/igC7ifw/uCC4WAesSACVAFwAAiI0sEgHtEgIp
+0ASAAAuAANKg0Q/GKtEPbBAG3EDqIAAq6ASAAPIgZhWgBwUA/mBoHaA/1QDvoSp5GASAAMUrcqEg
+AzsCbQgV5KBIY7gFAAAqsAHvoQx12AUAAHKhBGP/4wAAFtvvnhL8ICYVoAIFAO0WACMpQQAAJGJ/
+2zDsdAAKUASAAFu1YMisuGblaehxECEAAMYq0Q/aQFutS3ep6Rra0fpAAEU7KAUAeKHl6xICJUAT
+AAAogjmMEe0SACnQBIAAC4AA0qDRDwAAAAAAAGwQBMAg0Q8AbBAEJSAG8kDwFaAKFQBYBJz1t5wF
+r/a1APdABwQgBwUA50aCKR4CgADiWx1xma8AAAhSESIta9og+gPiHeAc9QBbtM0iLQFzKewa28Eb
+28Ec28FbtMka28Ab28Ac28FbtMbAIMChW7TLsSJpKfX4mOgVoAIFAMChW7TGsSJpKfUa27kqRsop
+Ck74hoYV4AIFAMChW7TAIiwBaSn0+oaIFeACBQDAoVu0u7EiaSn1LBoA/IjmFaACBQAqCgFbtLUi
+LAFpKfP8iOgV4AIFACoKAVu0sLEiaSn0wKNYBGl2oRz5t0QFoAIFANMPbVkNJ4ZAJ4Z854Z+JEAH
+AADRD8cl0Q8AAABsEAQZ25gIKBGpiCmCQRrblhvbluiCUSllgoAAW7SVwCHRDwBsEBiFJiYgBhrb
+j/hA8BWgCxUA+CRGFaAMFQDTD1u0jCkSIvjAKorgAwUAFNuFBpcMJRYbpjXaUFv/6GSgzOJZCQrW
+AoAApKorolErlRzAgCimUSiVJSiVLuiVNyGYBQAAdznPHtt6LRIbwJApFhj/oAQGsAwVAPwihhXg
+CwUADcs4KxYVIxIYGttvBjMI69tuGeWCgABbtG7rEiIrUASAAFgC5sCg/bbUBaALBQBYAXFmoFbr
+EiIrUASAAFgC38Cg/bUYBaALBQBYAWpmoDsjFhNYAUlkpL8a2of8ImgVoAsFAPokZhXgAwUA+iQm
+FaAJBQDpFiAuZoKAAPWAAQYwBQUA/CPmFaAAjgDHK9EPAAAlXAEuEiMtEiDu7AEhmEEAAO4WIy6D
+1gAAKRIf5ZZSJPARAADl5lIk6CEAAOXWUiTgMQAA5cZSJNhBAADltlIk0FEAAOWmUiTAYQAA5YZS
+JPhxAAAl9lLrEiIrUASAAFgCsiwSIcf/0w/vzAMJ0ASAAOwWISnYBIAAWAE6Zq96WAEZZa96wJH4
+JAYV7/3iAOMSIS9fAoAAKxYeKxYS/CJoFeAJBQD4I6YV4A8FAP4hZhXgDgUA/iLmFaAFBQD0I0YV
+4A4FAC4WGQLYCegWFi7uAoAA9aAARrAMBQD8IgYV4AUFAP2qJhWgAN4AAAAAAPSgBWGSAJ0AKwoB
+6xYaIqgFAAAuEhwtEh0sEhku7BDuFh4myAUAAOkWHS4EtgAA+iRIFe//9QDvMwMLUASAAFgCfysS
+HgM8AtMP6xYcLdAEgABYAQhmrrJYAOdlr6EqEgv1X/U10gCdAC0SGisSFiysAQ3KOSuxHCwSF+oW
+Cy3fwoAA/WAYG6IAnQAszAEsFhcuEhAtEhYrEiIs5lHs1SUrUASAAFgCZf/9nA2gBQUAKRIdKxIW
+KhIX6rUlJMgFAAAf2uSN8o7xi/SI8IzzivWaFZwTmBCbFJ4R/CBGFeAOBQCeHi0SEysSEoj26BYG
+LOcCgADsuwgO7oKAAATdCi0WH4/3nxfTsOsSIitQBIAAARECWAJK2jDs2s4Z2ASAAAERAlgA1Gat
+4fIhphXgDIUA+bWOBeALBQD6IiYV4AoFAOoWDynoBIAA6RYhLpgEgADtEh8o8ASAAG3KIi/SUigK
+f/n/7SwiAJ0AieAJCUDp+QgHcBEAAOnWUiboEQAA6xIiK1AEgAABEQJYAiwsEiHyIYYV7/r1AOrM
+AwnYBIAA7BYhKdAEgABYALLtEh8tauIAAPIgaB3gBQUAizAPAgD1YApgkgCdAOM8BCKoBQAA6Vjn
+ZugRAACNEPghABWgDgUA/gAiHeAMBQD94gAOcAk1APwgKBXgzAEADwIAbZog+QAIFeAKBQAN/jjt
+ggEkQCEAAAzrAfniAA1wDgUAC6wBDf44LRIMfOAJ/iHGFeAOFQCeHy4SESkSD/2iABXgDIUA7uwB
+LpgEgADuFhEk+BmAACMSDS8SDgzoEQgzCOs0AAf1IYAAKxIiKRIV6RYIK1AEgABYAfElEiEo+v/o
+VQMJ0ASAAOs0AArgBIAAWAB55RYkLWO6AAAlEhYpEhQPAgAlURzkkJhiq8EAAJMaIxIkKBIQKxIi
+5YZRK1AEgABYAd8rEgr6ISYV7/n1AAkzA+w0AA3QBIAAWABmZqwsWABGZKBVLBIWLMEc78wRAqgF
+AAB1w0SOGY0YLuwQ7hYKJv2JgADyJIYV4ADiAAAAAADtFiUq0ASAAFgAIu0SJS11TgAAKQoAKTYA
+L9JSKPz/D484/6pGFe/6SgAqEhYlpTfrEiIrUASAAFgBvC0SFg8CAC7RNyzRJa7MDBwSLhIQKxIY
+LOZR7NUuJdgFAAArFhj3f9iNYgCdAOsSIitQBIAAWAGuwCDRDwAAACISFvxEpB2v8rUA0Q8AE9lX
+//AkDaALBQAAbBAEFdosbyhD+kAEANADRQDi2hsaqAqAAG06EygihAhYASkiiQlZAemJIXEQEQAA
+HNoUKsIlwLArxiX6oAQFMPn1APsgwIWgAhUA0Q/AINEPAAAAbBAEHNoK18Amwoj7tCwF7/j1APjX
+AAswAgUA9+AAAzD99QAocoT6QIAVoAUFAPjxKBXgDkUAbeolACAEBg8Z7/cacRAFAAAAUAT4nwAJ
+8UidAPTgAAI3MwEAdDkauFW0d+t5vn0QBIAAKMIlwJApxiV42APAIdEPwCDRD2wQBBjZ69MP0w8k
+hoQkhoUkhoYkhocihoD7s+gFoAsVAPMQJhXgDBUAW7Ls+gAiHeAMBQD+ACIdo+2FAPuz2AWgDwUA
+W7Mf+AACHe/yVQAKkjvRD2wQEiUgByQgBiIWFnVLNxnZ2gJKCeRcDApGAoAA+QAARHALBQBtyRsp
+gkEppUDrhkElUAkAAOulSCRABwAAK6VRK6VaCQdPGtnN+gAiHeAMFQBbss30gCY64AkFACkWCwRa
+DCoWEyMSCxrZxAQzCOvZxBnlgoAAW7LE6kQACtgEgABYATwqCgD9s4AFoAsFAFv/xmahzOpEAArY
+BIAAWAE1wKD9scQFoAsFAFv/wGahsdpA4xYNKtgEgABYAS4oEhaJHQiYCSgWFyiBQCoKACoWGRrZ
+qePY1RzOAoAACpkI+CMGFeAKBQD6IoYVoAYFAPkoJhWgAgUA6kQACtgEgAABEQJYARwp+v/pMwML
+UASAAOtkAAngBIAAW/+kZqFDW/+E7BIXJSExgAAswUAPzBEszBD3gAlj4gCdALF3LhIZLxIYLRIU
+9sIAFaACBQDn9kEnSAUAAOkWGSb88YAAwCD4IQYV4AYFAOYWFSy3AoAA6kQACtgEgABYAP4o+v/o
+MwMLUASAAOtkAAngBIAAW/+HZqDOW/9m5KCyYRAFAAAsEhgrEhctEhUswkErsVv2wgAVoBoFAOy7
+DAboBQAA+0AFC+IAnQDtFhUpQpgAAC4SFyflWx7ZciriAyviAijiBS/iBiniBIzhjeCdEJwRmRSf
+FpgVmxKaE+7iBypQBIAA7hYHKtgEgABYANqIGCcSFah37NljG58CgADqNAAJ2ASAAFv/YmagOiIS
+GCIiT7Eilxka2Ur5srYF4AsFAPoiRhXgBgUA+VEGFeABAgApEhgokkH5H+AVoAIFAPkoJhWv/QIA
+xyXRDwAAAAAAACIsASoSEisSGClsAeaUAAGYQQAA4rZPLQReAADqRAAK2ASAAFgAuB7ZMgM6Av2w
+yAWgDQUA7eaIKdgEgABb/0Bmr7LqRAAK2ASAAAERAlgArhjZJxzZMe/ZORnQBIAA74aIKdgEgABb
+/zVmr4hb/xXXoB7ZHxzYUu3ZMRnQBIAA7eaIKdgEgABb/y1mr2db/w33X/tY4gCdALAo4oI5A0gF
+AAAY2EeYGi8SGCwKACz2TysSDfohKBWgDQUALRYPHdkMCpoIKhYM/bEGFaAOBQDs2Q4dVwKAAO4W
+DiVQQQAA6hYQLd6CgAAMuwr6IiYV4AqFAOkSESjwBIAA0w9tqiIvkkcrCn/7//dkYgCdAIzgDAxA
+7PwIB3ARAADslkckyBEAAOpEAArYBIAAARECWAB2gxorEhDH3w0zA+q0AAngBIAAW/7+4xYKLXVi
+AAABEwL2IigV4AYFAI4w9cALOJIAnQDnfAQjMAUAAOlo6mGYEQAAjRD4IQAVoA4FAP4AIh3gDAUA
+/eIADnAJNQD8ICgV4MwBAA8CAG2aIPkACBXgCgUADf447YIBJEAhAAAM6wH54gANcA4FAAusAQ3+
+OCoSDy8SEAzpAe4SDiVQBQAA6hYPJ/hBAAD+IgYV4AgVAPkNAA9wCoUA7hYOJ3g5gAArEhj6gGgd
+oAYFAOK2TyrYBIAAWABAhxyDH6czhxoMMxHyYgAV7/j1AOh3AwnQBIAA6zQAC+AEgABb/sUjFhrm
+FhstbhoAAOYSGisQBIAAIxIYIzJBIzzwKBIY2kDjhkEq2ASAAFgALMef6XcDC1AEgADrZAAL4ASA
+AFv+tWathVv+lGSggbAzZDB85C/JYzBBAAApEhcpkUksEhcnwVupdwcXEi0SGCoSCysSEyfWQefF
+UiVQBQAAKhYL+1/aVWIAnQDqRAAK2ASAAFgAEsAg0Q8AAAAA2mBb/mllrpTAkJkwKHJHsIj46OYV
+r/oiACsSGCkSGSoSF+e2QSTIBQAA90tkHe/v/gAqEhcDCU/5SSQd7/4eAABsEATk2IAZRgKAAPJD
+cg3t+vUAAjkMBIgIbZkNKYJ8CpkB6YZ8JEAHAADAoVuxgOI5DAlGAoAA9QAARDIKBQDTD22aDSmC
+fAqZAumGfCRABwAAwKFbsXbAINEPAGwQCOQgBikYBIAA9kDwFeAKNQBYASsi+vvzQAhMIgCdABbY
+WiUKAA8CACVmgvuwvgWgCxUA9NEGFeAMFQBbsV72gAti4AoFAJoVkxIEewybFoMVGthW0w+kM+vY
+VRnlgoAAW7FViRLAUPhgAETwAwUAmREllByKEdMPDwIA80SmHeAKFQBYAQ7zQATUIgCdAOrYVBnn
+AoAA/KYADjD79QBbsUUqCgNYAQZyoXnqRAAL2ASAAFv/u81cZTAaLwoAL2aAL2aBHtdtLmaEHdhG
+LWaFLmaGLWaHGtg8+gAiHeAMFQBbsTX7sHAFoAsVAPx9Ah3gDAUA/gAiHaAPBQBbsWhmoCIoYiXi
+hyNxmAUAAPh/+yXSAJ0A6RIBIqgFAAD4v/p6UAMFAMcl0Q8AAACJFYoWsZmZFfs/+MUiAJ0Aixb+
+IEgVoA0VAPwghhXgDBUAnBP+gABHMAoFAP4gBhWgBQUAbbk7gxKkqKODKzAlLzAcq/4ODkcuNC54
+SxkoMCSJFAuIDAhZOZkUKTAbiBMPmQwJWDmYE2Sgrw29NgzsN7GqKRIEZJDRihPjEgIlBmGAAKdL
+CxsSqzstsCUrsBzq2Age5wKAAP1mAA4w+/UAW7D68sSIFeAKFQBYALnzX/o8IgCdABrX//JkAAZw
+CDUA/Z/gFaEzAQDsXDUBmAkAAOgzNA5nAoAA/GYADjD79QBbsOorYjosYjsMuwz6YEAVoLsBAAuq
+AwoKQAo6CCqsAipmOCliSPxjoEFSmQEACToI+1/gFaAAVgAAjBAtwCX9hdAVr/02AAmaAipmSPTQ
+RhXgCjUAWACX81/15CIAnQAiCgAGAAAAAAAA/Y8ADf/9BgBsEA4Y18kjIAYkIAftIgUo0ASAAPZA
+cBXgCzUA9iImFeAJlQDzr3QFoAcFANMPbZoOKYJBmaDnhkEkQAcAALSqGdfKFtfKJyYjjGOPYuVi
+ASDwwQAAleGf4pzjhmCW4A1YQeuINADQwQAACogKiIAIBkD4AQACsIgRAOpVEQxFwoAA6FUCCzeC
+gAD2pgAKsIgFAAhYAgyIEQmIAvhCBhWgBgUAwKFbsKuxZmlp9fhCCBWgBgUAwKFbsKexZmlp9RrX
+rBvXG/x9Ah3gDAUA/igAFeAOFQBbsNLxUZgN4BkFAPhEZhXgBgUAwKFbsJombAFpafT6RGgVoAYF
+AMChW7CVsWZpafXAoVuwkxrXmvoAgh3gDEUAW7CI+68wBaALRQD8fQId4AxFAP4AIh2gDwUAW7C7
+6BIRLQXaAADkOyN5zgKAABrXeQNLDA8CAAqZCNMPbbkNK5JhKZ0B82AEvtIAnQAa14T6AIId4AwF
+AFuwcvZEZhXgChUAW7B2Hdd7DFwRDcwC/EIGFaADBQDAoVuwcbEzaTn1/kIIFaADBQDAoVuwbCM8
+AWk59BrXcRvW4fx9Ah3gDAUA/igAFeAOFQBbsJhmoC/q11gYwASAAPgBIh3gD4UA/kRmFeACBQBt
+mg/pggAkQBEAAOmmQSVQBwAA0Q9lj0XHK9EPAAAAbBAEJCAGGNdJIyAH6ddBGi4CgACoVfRvAAm/
+5AUAbToNI1JABDMB41ZAIqgHAAAoksAa11MKiAH5OAYVoAIFANEPAABsEAQU1zLCMIpCCgpCyKdo
+oQVoowJppRfzRsYNr/W1AGQgkWghMWgjX2klGGAA9ACwM2Qw6sChW7A3Y//KZDDfwKFbsDSLQgsL
+Qusp73Gb/QAAwCDRDwAA9UAFupIAnQDAwfyAJhWgBQUAwKFbsCmxVWlZ9fyAKBXgBQUAwKFbsCWx
+VWlZ9WP/u2mlU8Dk/oAmFaAFBQDAoVuwHrFVaVn1/oAoFeAFBQDAoVuwGrFVaVn1Y/+PwKFb/9J1
+oWLAUJVBwKFbsBSxVWlZ9fiAKBWgBQUAwKFbsA+xVWlZ9WP/ZMChW//HdaE3KQoC+IAmFeAFBQDA
+oVuwB7FVaVn1+oAoFaAFBQDAoVuwA7FVaVn1Y/8yAMCjW/+69V/6JWIAnQDHK9EPwKNb/7Z1ofPA
+s/qAJhXgBQUAwKFbr/axVWlZ9fyAKBWgBQUAwKFbr/KxVWlZ9WP+7wAAAGwQBhbW3OhZEApDwoAA
+6YgCCc8CgAAJiAIZ1vMIKAIJiAL4wgYVoAIFAMChW6/jsSJpKfX6wggVoAIFAMChW6/fsSJpKfX7
+rKgF4AwFAP4AIh2j7YUA6tbgGPgEgABbsAr6AAId7/K1AAqyO9EPAABsEAoc1t6KJYjDicKLwZsR
+mRL4IGYVoQQFAP2ACBWgDVUA7BYAJVwcgAAtFgMKUkEBLQot0gD7raQFoAY1APwgAAZy3R0A590R
+DmZCgAD9hgAOc4sFAFuvtsAwwKFbr7uxM2k59R7Wrv/DCBWgAwUAwKFbr7axM2k59RPWosBQJTYj
+KzI7K7z792CABbAKNQD6QAAF8AwlAP9oABWwDaUAW/+7yKnHK9EPAAAAAAAAAPoAYh2gCwUA/ABi
+HaANpQBb/7Nlr94a1qfmLTQA+EEAAA/dComhiKKOo57zmPKZ8YqgmvCN0MDB/AAAB3AKNQD8AQAF
+8N0RAOq7EQ7twoAA7bsCD3eCgAD/ZgANsA2lAFv/n2WvjvIAAh2gBvUAwKFbr4qxInYp9cDoJzI6
+KjJBeutB/0fAB9CaAQCaGSkWCPNAQBWgHwUAAv80/mgmFeACBQDAoVuvfbEiaSn1+GgoFaACBQDA
+oVuvebEiaSn1ixmKGKuqwMh6wwoqrPvwABwNoqoBAAoaQiwyIPz/gBXi6gEA+9gAFzAKNQD8QAAF
+8N0ZAO7dEQ3fAoAA/2YADbDMiQDtuwIOZQKAAP1mAA2wDaUA9WYADbAMBQBb/3FlrtMiCgDAoVuv
+XbEidin1+gCiHaALBQD8AAIdoA0FAFv/aGWusMAgwKFbr1SxInYp9fRmhhXgAgUAwKFbr1AiLAFp
+KfT+ZogV4AIFAMChW69LIiwBaSn0EtZXDwIA8njmFaACBQDAoVuvRbEiaSn1+HjoFaACBQDAoVuv
+QLEiaSn1KgoBW/75x5t5oToa1kv6AGId4Aw1AFuvMsAgwKFbrzexImkp9RrWRftYKBWgAgUAwKFb
+rzKxImkp9cC4+mRmFeACBQDRD8cl0Q8AAGwQGIUkHNY7hiaHJYnDisKLwZsRKhYCKRYD/YAIFamH
+HQD8IAYVoAw1AHjAIhrWMxzWMvYKAAX312EA6N0RDdvCgAANuwIMuwJYAYJgAAkAGtYrG9YrWAF/
++6xUBaELBQBYAXz7rFIFoAsVAFgBefusTgWgCzUA/H0CHeAMNQD+ACIdoA8FAFuvPWajzvusQAWg
+KwUAWAFvGtYf+j8CHeH8BQBbrvz7rDgFoAt1AFgBaRvWDxnWGiuyySKSAo2Uj5PokgEg8EEAAJjh
+n+Pt5gQg4EEAAPPARhWiuzEADLsKiZDp5gAql8KAAOuyAClQBIAAWpem6tYKHVgEgABYAVUb1MoG
+ekMLqgkqoTAGi1ErFiQKWijhuwoNp4KAAOuyAC1XgoAAWpeZ6H8UfRgEgAAKCUD4ACIdoAMFAAmD
+OKoz6tX5GdgEgABYAUJ/NwGxM+rV9hnYBIAAWAE+6tX0GdgEgABYATwjEiT7q+IFoAsFAFgBOPqg
+aB2gB2UAW7RewFfspAAN6ASAAPur1AWgCwUAW7LtW7NFG9Xo3HD7YNINp10lAMDF21D7oNINpd61
+ANvAwMj7wNINpO8VANyw++DSDaALlQDbwBrV3VgBIhzV3I3BjsLvwgMg2MEAAJ+znrKdsYzAnLCr
+S+uyAClQBIAAWpdm76cGfVgEgACxqxrV0VgBFP2rogXgtnEA6zsJAOEBAAAMuwqO1o/XitWJ1IjT
+mMOZxJrFn8eexo/SjtGewZ/CLdIALcYA67IAKVAEgABal1IV1YkPAgArUjwsUjca1b8MuwhYAP8c
+1b2NwY7C78IDINmBAACfs56ynbGMwJywq0vrsgApUASAAFqXQ8A0A6k375cGfNAEgACxmsBuBqs0
+GtWwARECWADu69WvGVAEgABalzkDqTfvlwZ80ASAALGaB6s0GtWpWADm69WoGVAEgABalzHToCVS
+O/6hIA/QlQEAf6cBsaPIk38/AbEz+6tABaAbBQADuzRYANnAM+vVnRlQBIAAWpckBasDCwtAq6sa
+1ZpYANP7qzIFogsFAFgA0BzVl43BjsLvwgMg2cEAAJ+znrKdsYzAnLALSwjrsgApUASAAFqXFAOp
+N++XBnzQBIAAsZoHqzQa1YtYAMHr1YoZUASAAFqXDCkKCgmpN++XB3zQBIAAKpwBw74LqzQa1YNY
+ALf7qwQFoEsFAFgAtPurAgWgCyUAWACxwFXr1PoZUASAAFqW/AWpN++XBnzQBIAAsZoGozTq1XgZ
+2ASAAFgAp+rVdhnYBIAAWAClHNV0jcHuwgIg2f0AAO/CAyXYBQAAn7Oesp2xjMCcsKtL67IAKVAE
+gABalujAkwmpN++XBnzQBIAAsZoHqzQa1WZYAJTr1VYZUASAAFqW38CcCak375cGfNAEgACxmgar
+NBrVXlgAi+vVXRlQBIAAWpbW76cGfVgEgACxqxrVWVgAhPuqsgWiCwUAWACBGtUbG9VWWAB/wCDR
+D8cl0Q9sEATbMOxEAAlQBIAAW64JwDDAoVuuDrEzaTn1GNVNqCKCIMAgwKFbrgqxImkp9dEPAAAA
+bBAEiyQa1UZalrsU1PnzQGgd4NYFAPaDRhWgAgUAwKFbrf4iLAFpKfT4g0gVoAIFAMChW636IiwB
+aSn0KgoBW633GtUD+gCCHeAMRQBb/98pKtH4g0YV4AIFAMChW63vIiwBaSn0+oNIFaACBQDAoVut
+6iIsAWkp9PIAAh2gVQUAwKFbreaxInUp9SsK1/qDRhXgAgUAwKFbreCxImkp9fyDSBWgAgUAwKFb
+rdwiLAFpKfQiCgDAoVut2CIsAWkl9C0K1fyDRhXgAgUAwKFbrdOxImkp9f6DSBWgAgUAwKFbrc6x
+Imkp9cChW63M9oNGFaACBQDAoVutySIsAWkp9P6DSBXgAgUAwKFbrcQiLAFpKfQqCgFbrcEiCtHy
+g0YVoAIFAMChW629sSJpKfX4g0gVoAIFAMChW624IiwBaSn09AyCHeACBQDAoVuttLEidSn1GtS6
++hhCHeCMJQBbrajAIMChW62tsSJpKfUZ1KD5IAgV4AIFAMChW62osSJpKfXIOsAgwKFbraSxInMp
+9fOpIgXgAgUA8AA4DaA1JQDAqlutnrEidSERiUZ/l/B8l+0qMhJ+p+fAINEPxyXRD2wQBBTTsQQk
+CPKQBhXgAgUAwKFbrZKxImkp9fiQCBWgAgUAwKFbrY2xImkp9dEPAGwQBhPT1hTUmeMyqyHj6wAA
+LMJYHdNk/ECmFaIzHQDyQIYV5MwBAA3MCozAnCYa1MEZ1MH4mSgVoAuVACskB4mQ+CAGFeKICQAo
+JAMBiAgogAD4QMYdoAs1AFv/3cChW61z+6lsBaAbBQBb/9nq1LAZ2ASAAFqWJBvTBws7LOrUsBXY
+CQAAW//S9alcBeACBQDAoVutZrEidSn1LAoB/JAGFaACBQDAoVutYCIsAWkp9PyQCBXgAgUAwKFb
+rVyxImkp9fQMgh3gAgUAwKFbrVciLAF1KfQiCgAiRoDAoVutU7EiaSn1/pAIFaACBQDAoVutTiIs
+AWkp9PWpJgXgAgUAwKFbrUqxInUp9fupIAWhCwUA/CACHaPthQD+ACIdoA8FAFutdfFQ6A3gAgUA
+JTrowKFbrT6xInUp9S8KAv6YBhXgAgUAwKFbrTixImkp9fiYCBWgAgUAwKFbrTSxImkp9cAgwKFb
+rTGxImkl9SkKA/iYBhXgAgUAwKFbrSyxImkp9fqYCBWgAgUAwKFbrSciLAFpKfQiCgDAoVutJLEi
+aSn1GtRr/AACHaErRQBbrRge1BPH/4niD5kDCQlJmeKI4w+IAwgISZjjjeQa1GIP3QP9IAAG8Ttl
+AP3AhhXgDJUAW60LAxIU+kBoHaPrhQBalcV/pwGxqvuosAWvugEAW/9z69RGGVAEgABalb9/pwGx
+qvuopAWvugEAW/9t+6igBaDLhQBb/2r7qJwFoftFAFv/Z8Ag0Q/HJdEPAAAAAGwQBhbTeOvStRlo
+BIAA8EngDeBMBQD0QASwkFRNAB3UQirSgSjSfi7SfwOiDAJSAX4jdOmwfSQDiYAAItaBDJkC6bR9
+KVAEgAAc0qgv0oCTEfQgRhWgCwUA+iAGFaANJQDyIGYVoApVAFut6c8jKmLFKGLCpKLvYsQhE/0A
+APKgBAEwDQUA4ysIDSgEgADr8257UASAAGSAZtpg8ADoDaANBQDRDwAAAP/+dA2gAgUADdoKBqoK
+JaLFLqLC9KAARDAkTQDvosQkQ/0AAAgiAaMpefMryuho0i6iNSWmxRzSey6iw5UQkxH0IEYVoAsF
+APIgZhWgClUAW63F0Q8AAAD//2gNoAIFAC+wfQz/Ai+0ff9YiBXv/xIAAAAAbBAG9gACHeDChQDn
+FgArmASAAMChW6yusTNyOfXAQfOnNAXgBUUA9gHiHaAoBQDCqCo2MCU2MyI2MSQ2MhnTtA8CAA8C
+ACaWwCg2yCg2ycCz/H0CHeAMNQDq07QacASAAOQ2ESj4BIAAW6zM5qGnbRAEgADA9fwAwh2gCYUA
+HtPkLjYgHdOBxLGb0Ck2Iyc2IyU2NcWoKjY2KTY3wIcoNjgnNjksNjovNjsmNjzB5y42PSw2Piw2
+Pyw2QMDcLTZBLDZCKyoAKzZDJTZEwaAqNkUpCmQpNkYoOiAoNkckNkgvNkkvNkrA4y42S8HSLTZM
+JjZNLDoALDZO+6b4BaAMBQD7p4gF4+2FAPpiBhXgDhUA69LmGPgEgABbrKDmoPdtEASAAPulxAXg
+DAUA/6d2BePthQD7ptwFoA4VAO82ECj4BIAAW6yV5qDMbRAEgAD7pa4F4AwFAPmnYgWj7YUA+6bG
+BaAOFQDoNhAo+ASAAFusi+agoW0QBIAA+6WYBeAMBQD5p04F4+2FAPumsAWgDhUA6TYQKPgEgABb
+rIDmoHZtEASAABvSwRrTn/piBhWgDAUA+6acBaPthQD+IGgd4A4VAFusduagTW0QBIAA+6aOBaAM
+BQD7pygF4+2FAPpiBhXgDhUA69KxGPgEgABbrGvmoCJtEASAAMTALDY0+6aGBaALNQD0YCYVoAw1
+AFusKcDSnTHRD9EPAAAAbBAE8uAAATAD1QDyQ4YN4ATlAHQhFPxCIAdQiBUA+EEmDaCJdQB5IQHR
+DxvR3iqwfcDIDKoCKrR90Q8AbBAGW6x9EtNz96YOBaAJBQD/QGgdoAMVAPpIBh2gCIUAbYoSAJAE
+Dgob76cHdNgFAAArZn+xmfWm0AWgDAUA9aSqBeAH1QD/z+AH0Au1ACwkRSpSnC1SnSlSoSMkSfi0
+SBWs+h0A/pSkHe3ZkQD8SCYd46phAPVAGxOXOZEA90Aa1GIAnQAPCEd3gRjAnumBE3xoBIAAaI4L
+KAqBeNEFKQqHedkKLUARwIgI3QItRBF7oQUPCUNpmhIqQBHB0A2qAvqCJh2gAB4AANPA8cAEf5AN
+JQAtJEkjJEYvUqQqUqX4tSgVqAA9AA/PGPi1SBXrAD0ACMgYDwIA/pTEHe+YAQD4SEYd54gBAPhg
+AEGzrwEA9UAWu5IAnQD3QBZ8YgCdAA8IR3eBGSkKDumBE3xoBIAAaI4LKAqBeNEFKQqHedkKLUAR
+wIgI3QItRBH7QBVkYgCdAA8JQ/UgFQ0SAJ0A/8/AB1APRQD8tYgV4A41AC4kSSpSrSlSsS5SsvJI
+5h3qAD0A/UsADX0APQD5ywAPf4oBAPiU5B2vjgEA+EhmHafuAQD+YABBs9oBAPWgEuuSAJ0A96AS
+rGIAnQAKCk9b/4EqQaf6YAAFMAu1APtAEmRgDAUA9UASJRIAnQAuIEDA9HzndC8kSS1StCpStSlS
+uShSuvJJBh3sAD0A/UsADX8APQD5CwAMf+oBAP6VBB2vmAEA+EiGHeeIAQD4YABBs9oBAPWgECuS
+AJ0A96AP7GIAnQAKCk9b/2MqQajTD/pgAAUwC7UA+0APlGAMBQD1QA9VEgCdAC4gQHvnSi1SvCpS
+vQHEBA2qGAoOT/6VJB2j2gEA9aAOq5IAnQD3oA5sYgCdAAoKT1v/TypBqfpgAAUwC7UA+0AOJGAM
+BQD1QA3lEgCdAC4gQHrnTCpSwgAUBArKGPy4aBXv6gEA/pVEHaPaAQD1oA0rkgCdAPegDOxiAJ0A
+CgpPW/87KkGq+mAABTALtQD7QAykYAwFAPVADGUSAJ0ALiBAeedRKlLHAGQECsoY/LkIFe/qAQD+
+lWQdo9oBAPWgC6uSAJ0A96ALbGIAnQAKCk9b/ycqQavTDw8CAPpgAAUwC7UA+0AK/GAMBQD1QAq9
+EgCdAC4gQP/I4AYVgD0AKlLMLVLN0w8Kyhj6YAAGP9oBAO1FrCY9hQAAd8FZCgpPW/8TKkGs+mAA
+BTAOtQB+oQJpqgorQBHBwAy7AitEES4gQBzSkS1ifyNmgCsgQZsQKiBCmhEpIEPpFgIp+ASAAPhI
+kBWgCwUA+CBmFaAKRQBbrDXRDwAALEARwNINzAL8giYdr/5qAChAEcCSCYgC+IImHa/yegAtQBHA
+ggjdAvyCJh3v9KYAKUARwaAKmQL4giYd7/VeAC1AEcDiDt0C/IImHe/2jgAvQBHBgAj/Av6CJh3v
+9tIAKUARwNINmQL4giYd7/fuAC5AEcHwD+4C/oImHa/4OgAoQBHAkgmIAviCJh2v+K4AKkARwdAN
+qgL6giYdr/jyAC5AEcDyD+4C/oImHa/5bgAoQBHBkAmIAviCJh2v+bIALUARwOIO3QL8giYd7/ou
+AC9AEcGACP8C/oImHe/6hgBsEAoZ0a3AMOccASigBIAA6pCAILAJAAD1oWoF4AIFAAAwBAoIG3+H
+UvpgaB2gCwUAW6mBmhjrRAAL4ASAAPzAaB3gDgUAW6lrK0AAihgtQAEsQQEFqgvo3RAN2QKAAO27
+Ag5NAoAACSkCC5kCKabAGdGSLMwBDCIIKpCAtETmbAQhmAUAAOk4lmO4EQAA+6IsBe/8NQD/RiAH
+0A0FACiyn/+kSAXniKEA6rKgJHP9AADuihEPd4KAAAiuOCjykCqQgAyIAQjuAi72kH6nMiiypwGE
+BAjYGP+iJAXniAEA6rKoJHP9AADuihEPd4KAAAiuOCjykCqQgAyIAQjuAi72kH2nMCqyryiysAHE
+BAqIGAgIR+/SCRRz/QAA7ooRD3eCgAAIrjgo8pAqkIAMiAEI7gIu9pB8pywosrj/pAAF54gBAOqy
+uSRz/QAA7ooRD3eCgAAIrjgo8pAqkIAMiAEI7gIu9pB7pzQossAARATTDwjYGP+j5gXniAEA6rLB
+JHP9AADuihEPd4KAAAiuOCjykCqQgAyIAQjuAi72kHqnNCiyxQCUBNMPCNgY/6PMBeeIAQDqssYk
+c/0AAO6KEQ93goAACK44KPKQKpCADIgBCO4CLvaQeac0KLLKAOQE0w8I2Bj/o7IF54gBAOqyyyRz
+/QAA7ooRD3eCgAAIrjgo8pAqkIAMiAEI7gIu9pB4pzEoss8BNATTDwjYGPujmAWniAEA7rLQJEv9
+AADujxEMz4KAAAj5OC6ikAzuAQ6ZAimmkBbQr/YgaB3gCQUA+CEmFeAEBQAqYMHxRJAN4AMVAOoS
+CSnYBIAAW6jzL3AAKHABLHEBBa4L6IgQD/kCgADo/wIObQKAAA0tAg/dAi3mwCtgwbHM7CIIAiAF
+AADrQ79xmAUAAIkZ53wEIzAFAAD5ICAV4AQFAOkWCSymaAAA0Q8AAAAAAAAAbBAGFtB7DwIAJmHC
+GNB449AgGzXCgAAIZgj7ozYFoAsVAPwAIh2gDaUA+EACHaAOBQD4Z0YVoA8FAFuqZRnP7SiQfuLR
+khsgBIAA96MiBeALFQD7aQAMMAUFAOiUfi0UCgAAlhCLQopBKzY7iUAqNjwpNj0a0YX6ACId4AwV
+AP64ABMwDaUA9sYADHAOBQD4Z0YVoA8FAFuqTmaiQvui9AWgCxUA/AFCHeAOBQDyxgAOMA8FAPxn
+RhWgDBUAW6pE5qIcYqgFAADpXpliIDEAAI0Q96LgBeAFBQDi0W8W6BsAAO0WAC0P0gAADdQCi0KK
+QSs2O4lAKjY8KTY9GtFj+gAiHeAMFQD+uAATMA2lAPLGAAwwDgUA+GdGFaAPBQBbqixmobr7orAF
+oAsVAPwBQh3gDgUA9sYADnAPBQD8Z0YVoAwVAFuqIuahlGKoBQAA6V6ZYiAxAACNEMBQ5tBhFugb
+AADtFgAtC8IAANTQjUSMQy02OytCAiw2PCpCASs2PSlCACo2Pik2PxrRP/oAIh3gDBUA/rgAFDAN
+pQD3BgAMMA4FAPhnRhWgDwUAW6oI5qEoYqgFAADkTBQq9sgAAIQQ95/YBaAFBQAtTQqN1CxNCozD
+LTY7K00Ki7IsNjwqTQqKoSs2PSlNComQKjY+KTY/GtEl+gAiHeAMFQD+uAAUMA2lAPcGAAwwDgUA
++GdGFaAPBQBbqe7moMhiqAUAAORMFCrmmAAAhBD3n1wFoAUFAC1NDC3SJCxNDCzCIy02OytNDCuy
+Iiw2PCpNDCqiISs2PSlNDCmSICo2Pik2PxrRCvoAIh3gDBUA/rgAFDANpQD3BgAMMA4FAPhnRhWg
+DwUAW6nT5qChbRAEgACxVeRMFCrmfAAAHs9XLuB9Gs99f+dELKLgG9D+GtD8/HwABzPcIQD9oCAV
+48xBAO7sASZgBQAA5O4QDmYCgADuzAIO7wKAAA3MAlup3NEP0qDRD9Kg0Q/SoNEPLKLgG9DuGtDr
+/HAAB7PsIQD8aAAGs8wBAO3cAidwCQAA7O4RB/gJAADg/xEO7gKAAO/dAgZgCQAADswCDcwCW6nI
+0Q9sEAQU0N4Tz+31oboF4AgVAPiQBhWgAgUA2iBbqcsKCUFpkSPqKREFcIKAAAMAh6WZCQJhCQJh
+CQJhCQJh+kBoHaALBQBbqbyxImkoyypCgBvQzQuqAvqQBhWgAgUA0Q9sEARb/T8azyTTDymihRzQ
+xv0gBASwKwUAC5kCKaaFKaKXGM81G8+/Hs8iKICA+yYADP/99QD5UuYV7/rVAP0DABFQCYUAGNCm
+bZoNKYKQCpkB6YaQJEATAAAt5iAt5iEt5iIt5iMt5iQt5iUt5ib9xOYV4AIFANEPAAAAbBAEE9Cr
+/51cBeAOFQD8A8Id4AlFAPpgaB2gGBUAbYoKK6AFeyACf7c1vKoa0KL98BAVoAsFANMP/1AGHaAC
+BQBtmhgooIjo0xB1UAUAAACxBADpGgnMAiz0gLG70Q8AjqAc0JX9wBAV4AuFAP/AMBWgCiUAW6oq
+2TD+AiId4PrlAG36DSiQBQqIAeiUBSTIMQAAxyvRDwBsEAQaz1/qKggBSBEAAPtQCBXh+PUA6YMH
+eeAEgAAqooFbrpkLQgHRDwAAAGwQBiggAPpAaB2giSUA6YEKcRATAADHLtEPAAAmrBbywAfKogCd
+ABTQdRPQc5MR86DoBeCFBQD6IAYVoAG6AAAAvDN0MVUoMAUFiAHpMAQsd8QAAHeZ6dpg+mAIFeAM
+JQBbqVz8AAIdr+ulAArLOGa/zo0RLDEDiDLacO3MCANYDQAAC4AA8UqoDeAPFQAuMAXTDw/uAi40
+BSdgAuPQWRPADQAAqGZya3LbMPrAaB2gDCUAW6lI49BNFQBpgAD2wFAV7/4SAACJELRqeptdCWkM
+tJn/IgAH0AoFAIsQ6rAAJdgFAACbEAkbFMq4iBAtgADsgAEly/0AAOrdCARACQAAbZkOKYAArcrs
+gAEkQAkAAKqdDcoIHtA7KuR9KgqAW/+H0qDRDwAAAAAAAP//mA2gCgUAjjAc0DT9wBAV4AolAP/A
+MBWgC4UAW6nEY/9JAGwQBBnQLiqSfymSgAmrEauZ+yAGFaAYtQAolARbptHAoFumyhvOkCqygxzQ
+JQyqAiq2g1umqcAg0Q8AAGwQBBjQIRnQIRrQIfIAAh2gC2UACwg/Agk/AgY/Agc/Ago/CgQ/CQU/
++Q/oFaCKBQAIAD/TD1uQeh3QFgoBP/Ovxh2gDoUA/6+GHaAMFQAs1H1bpttbprjRDwAAbBAGGc7S
+IpJY+5wsBeAOBQDwVYAN7//1APfAaB2gCAUA9gACHeAEBQD8ACIdoArFAG0ITi2SniKSpq1tCdMR
+oyKdICslLi8kdpgvlywmJCIsJCAsJCEuJA32QYYdoAWFACUkBSMhEiQlEyokBKNEgyuCLi2SWKN3
+4ogIAzAFAAB9awJj/6oikllkIJsVz+yMEPX/4h2gCgUA8AEQDaAGBQAAwMEk1Aws1A0m1CIv1HaY
+35fc86FoFe+CBQAi1CAi1CGC3qN3I5JZ4ogIBVP9AADr1S4jMAUAAONrS3ZgBQAAIpKfLZKmomIJ
+IxED3QjzoAYVoAPVAPOghh3gA4UA49QFLX0OAAAqUH4kTAHlr5FiqAUAAG0IDCpQfrFE5a+BYqgF
+AABj/+woklrLivWbigXgBgUA+ADiHaAH5QBtCCUskqArkqasbAnNEa27nLAutA0otAwntAQqklrl
+tS8jMAUAAHprAmP/08Ag0Q/Y4P/8TA2gBwUAAGwQBsCgW5AtEs5P0w+iqSiSgGeAC20IBSqSgGeg
+AmP/88ChW5AmoqkrkoBnsA1tCAUskoBnwARj//MAAPud5AXgChUA/Z3iBaANBQD/nz4F4A4VAFum
+jR/OVxPOLhjO6R7NuSkykioykSsykC420S420y421S421ywyjyg20Cg20i82zy821C0yji023i8y
+lCgyk63MLjKYLTKXLDbfrLsrNuCrqiwylSo24aqZKzKWKTbiqYgqMqAoNuOo/ykyoS825ygyoq3/
+Lzbor+4uNuSuzCw25i8ypq3MLjKnLTKoLDblrLsrNumrqiwyqSo26qqZKzKqKTbrqYgqMqwoNuyo
+/ykyrS827a/uKDKwLjburt0tNu8fzcGtzCw28C82zh7OJ6y7Kzbx/nrGFaANBQAtNt2rqio28qqZ
+KTbzqYgoNvRbpk4rMtcvMtYPAgDzb+AVr4gFAOgiAQ1uQoAAotp680gpMtQPAgDLn+o21y1YBIAA
+HM2RLjLV8iBmFaAKVQD6IAYV4IgFAPwgJhXgCwUA+CBGFaANFQBbqNjiNvUhAKGAAMAg0Q8AAAAA
+//8MDaACBQDHJNEPbBAEE881+5piBaAEBQD3noIFoAcVACSmgSSmgySmgCSmghvN1ygwdf2bxAXg
+3lUA/MsIFaAZBQDppookfKKAAA7MKB7N3Q3MLC+ywA7/AQ/PAi+2wC2y4A7dAQ3MAiy24Cuy4MCg
+W4+nFc3IEs3JGc54Ba8IKfaBGM8oKPaCJPaD8/AGFaAKFQBbj56lqiSmgRvN2iumgiSmgyKmgFv+
+Quah1W0QBIAAHc19LgoIL9KPDw9DLzR0LNKKG85S/4YADjAIBQD9sUYVoImFAG2aDQuJCySWQOSW
+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
+7/+SAKWb92AEHe//agClnPeABhXv/0IApZ0n1ADRD6WeJ+UA0Q8AAAAAAAAAAAAAAAAAACACjaQM
+wAACIAXtfCACjagIwAAIIAXtfCACjawgwAAMIAXtBCACjbAGwAA0IAXu2CACjbQIwAA4IAXtfCAC
+jbgCwAA8IAXu2CACjbwIwABAIAXtfCACjcAIgABEIAXuBCACjcQYgABYIAXuBCACjcgYgABkIAXu
+BCACjcwYgABwIAXuBCACjdAYgAB8IAXuBCACjdQYgAC4IAXuBCACjdgYgADEIAXuBCACjdwYgADQ
+IAXuBCACjeAYgADcIAXuBCACjeQIgAEYIAXuBGNzb2NrX2Nsb3NlZDogc2l6ZW9mKHRjYl9mYy0+
+dS5vZmxkLm8uZm9pc2NzaV9jb25uKSBbJXVdLCBieXRlcwoAAAAAAAAAAAAAAAAAAAAAY3NvY2tf
+ZmFpbGVkOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSBbMHgl
+eF0sIHNlc3NfZmMtPmZsb3djX2lkIFsweCV4XSwgc2Vzc19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhd
+LCBldnQgWzB4JXhdCgAAAAAAAAAAAAAAY2huZXRfZmluZF9sMnRfZW50cnk6IGRhZGRyIFslMDh4
+XSwgWzB4JTA4eF0sIGxvY2FsIG5ldHdvcmsgWyVkXQoAAAAAAAAAAAAAAAAAAABsMnRlbnQgWyUw
+eF0sIGwydGVudC0+aWR4IFslZF0KAHJjIFslZF0sIGNza19mYyBbMHgleF0sIGNza19mYy0+Zmxv
+d2NfaWQgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAABjc29ja19mcmVlOiBzaXplb2YoY3NrX2ZjLT51
+LmNzb2NrKSBbJXVdLCBieXRlcwoAAAAAAAAAAAAAAAAAAAAAbG9naW5fcGFyYW1zOiBjb25uX2Zj
+LT5mbG93Y19mb2lzY3NpX2Nvbm5fZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAGxvZ2luX3BhcmFtczog
+Y29ubl9mYy0+Zmxvd2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAAAAAAABUQ1AgY29u
+biBlc3RhYmxpc2htZW50IGZhaWxlZCAlZAoAAAAAAAAAAAAAAAAAAABpbm9kZV9mYy0+Zmxvd2Nf
+ZmxhZ3MgWzB4JXhdLCBpbm9kZV9mYy0+Zmxvd2NfYnVmLT5maWZvLm51bV9ieXRlcyBbJXVdCgAA
+AAAAAAAAAHVzZXJuYW1lIG1pc21hdGNoCgAAAAAAAAAAAAAAAAAAUmVjdmQgYW5kIENvbXB1dGVk
+IGRpZ2VzdCBtaXNtYXRjaAoAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAl
+ZCBwYWQuCgAAAAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAA
+AAAAAAAAAAAAAAAAYmFzZTY0IEVSUiwgJWQgbGVmdCwgd2l0aCAlZCBwYWQuCgAAAAAAAAAAAAAA
+AAAAUmVjaWV2ZWQgQXV0aE1ldGhvZCB2YWx1ZQoAAAAAAAB2YWxpZGF0ZV9rZXl2YWw6IGZsb3dj
+X2ZvaXNjc2lfY29ubl9mbGFncyBbMHgleF0KAAAAAAAAAAAAAAAAAAAAdmFsaWRhdGVfa2V5dmFs
+OiBmbG93Y19mb2lzY3NpX2Nvbm5fZmxhZ3MgWzB4JXhdCgAAAAAAAAAAAAAAAAAAAE5lZ28gRkJM
+IFsldV0KAABLRVlfTUFYUkNWRFNMIFsldV0KAAAAAAAAAAAAAAAAAER1cGxpY2F0ZSBpc2NzaSBr
+ZXkKAAAAAAAAAAAAAAAAc2VuZF9sb2dpbl9yZXF1ZXN0OmNvbm5fZmMtPmZsb3djX2lkIFsweCV4
+XSwgc2Vzc19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBwYXJhbSBbMHgleF0sIHBhcmFtLT5zZXNzX3R5
+cGUgWzB4JXhdLCBzZXNzX2ZjLT5mbG93Y19mb2lzY3NpX3Nlc3NfdHlwZSBbMHgleF0KAAAAAAAA
+AAAAAHNlbmRfbG9naW5fcmVxdWVzdDogdHhfbGVuIFsldV0KAAAAAAAAAAAAAAAAAAAAAGZvaXNj
+c2lfcGFyc2VfcmN2ZF9wYXJhbXM6IGVycm9yCgAAAAAAAAAAAAAAAAAAAGZvaXNjc2lfcGFyc2Vf
+cmN2ZF9wYXJhbXM6IHJsZW4gJWQKAAAAAAAAAAAAAAAAAFNlcSAjIG1pc21hdGNoIHN0YXRzbiA9
+IDB4JXggZXhwc3RhdHNuID0gMHgleAoAAHRleHRfcmVzcDogY19iaXQgWzB4JXhdLCBmX2JpdCBb
+MHgleF0KAAAAAAAAAAAAAGxvZ2luX3Jlc3A6IGZsb3djX2ZvaXNjc2lfY29ubl9mbGFncyBbMHgl
+eF0KAAAAAGxvZ2luX3Jlc3A6IGZsb3djX2ZvaXNjc2lfY29ubl9mbGFncyBbMHgleF0sIHJjIFsw
+eCV4XQoAAAAAAAAAAABpU0NTSSBTZWMtcGFyYW1zIHJlY2VpdmVkaGF2ZSBlcnJvcnMhIQoAAAAA
+AAAAAABUYXJnZXQgbW92ZWQgdGVtcC4gY29ubiAleCwgc2VzcyAleAoAAAAAAAAAAAAAAABMb2dp
+biBGYWlsZWQhIS4gY29ubiAlZCwgc2VzcyAlZAoAAAAAAAAAAAAAAAAAAABsb2dpbl9yZXNwOiBz
+ZXNzX2ZjLT5mbG93Y19pZCBbJXVdLCBjb25uX2ZjLT5mbG93Y19pZCBbJXVdIGxvZ2dlZCBpbgoA
+AAAAAAAAAAAAAFByb3RvY29sIEVycm9yIGNiaXQgJWQgdGJpdCAlZCBjc2cgJWQgbnNnICVkCgAA
+AGRyb3BfYWxsX3Rhc2s6IHJlcXVlc3RlZCBsaWR4IFsldV0KAAAAAAAAAAAAAAAAAGdldF9yZWZf
+dGFzazogaXN0YXNrLT5mbG93Y19pZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc3RhdGUgWyV1
+XSwgaXN0YXNrX2ZjLT5mbG93Y19mb2lzY3NpX3Rhc2tfbGlkeCBbJXVdLCBsaWR4IFsldV0KAAAA
+AAAAAAAAcHJvY2Vzc190bWZfcmVzcG9uc2U6IGlzdGFza19mYy0+Zmxvd2NfYnVmLT5zY2hlZF9u
+b2RlLm5leHQgWzB4JXhdLCBpc3Rhc2tfZmMgWzB4JXhdLCBpc3Rhc2tfZmMtPmZsb3djX2lkIFsl
+dV0KAHByb2Nlc3NfdG1mX3Jlc3BvbnNlOiB1bHB0eHBsZW4xNiBbJXVdCgAAAAAAAAAAAHByb2Nl
+c3NfdG1mX3Jlc3BvbnNlOiBkZWxheV9wcm9jZXNzaW5nLCBvcCBbJXhdCgAAAAAAAAAAAAAAAAAA
+AABwcm9jZXNzX3RtZl9yZXNwb25zZTo6IHdyIG9wY29kZSBbMHgleF0KAAAAAAAAAABwcm9jZXNz
+X3RtZl9yZXNwb25zZTo6IHRhc2sgZnVuY3Rpb24gWzB4JXhdCgAAAABjYWxsaW5nIGRyb3BfdGFz
+aywgaXN0YXNrX2ZjLT5mbG93Y19mb2lzY3NpX3Rhc2tfbGlkeCAweCV4CgAAAAAAcHJjb2VzX2Rh
+dGFfaW5fcmVzcG9uc2U6IGNvbm4tPmZsb3djX2lkIFsweCV4XSwgaXN0YXNrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0KAAAAAABERFAgZXJyb3IgZm9yIGNvbm4gWzB4JXhdLCBtYXNrIFsweCV4XQoAAAAA
+AAAAAABzZW5kX2Fib3J0X3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBb
+JXVdLCBidWZmZXJlZCBbJXVdCgAAAAAAAAAAAAAAAAAAAABpc2NzaV9oZHI6IGJhZCB0Y2Igc3Rh
+dGUgdG8gcnggZGF0YSwgdGNiX2ZjLT5mbG93Y19pZCBbMHgleF0sIHRjYl9mYy0+Zmxvd2Nfc3Rh
+dGUgWzB4JXhdCgAAAAAAAAB3cmhfZm9pc2NzaV9ub2RlOiBub2RlX3dyLT5mbG93aWRfbGVuMTYg
+MiBbJXhdCgB3cmhfZm9pc2NzaV9jaGFwOiBpZF9sZW4gWyV4XSwgc2VjX2xlbiBbJXhdCgAAAAB3
+cmhfZm9pc2NzaV9jaGFwOiB0Z3RfaWRfbGVuIFsleF0sIHRndF9zZWNfbGVuIFsleF0KAAAAAAAA
+AAAAAAAAcGVlcl9jb246IGNza19mYyA9PiBmbG93aWQgWzB4JXhdLCBmbG93Y19idWYgWzB4JXhd
+CgAAAAAAAAAAAAAAAGZvaXNjc2lfY3RybDogc3Vib3AgWzB4JXhdLCBzZXNzX3R5cGVfdG9fZXJs
+IFsweCV4XSwgc2Vzc190eXBlIFsweCV4XQoAAAAAAAAAAAAASW52YWxpZCBvcGNvZGUgMHgleCBp
+biBjdHJsIHBhdGgKAAAAAAAAAAAAAAAAAAAAcnhfZGF0YS0+c2VxIFsweCV4XSwgcnhfZGF0YS0+
+bGVuIFsweCV4XSwgcnhfZGF0YS0+c3RhdHVzIFsweCV4XQoAAAAAAAAAAAAAAAAAAABjc2tfZmMt
+PmZsb3djX2Nzb2NrX29mZnNldCBbMHgleF0sIGRsZW4xNiBbMHgleF0KAAAAAAAAAAAAAAAAAAAA
+YWN0X2VzdDogZmxvd2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAAAAAYWN0X2VzdGFi
+OiB0Y2JfZmMtPmZsb3djX2J1ZiBbMHgleF0sIHRjYl9mYy0+Zmxvd2NfdHlwZSBbMHgleF0gdGNi
+X2ZjLT5mbG93Y19zdGF0ZSBbMHgleF0sIG5wYWdlcyBbMHgleF0sIGZsb3djX3RwX3NuZF9tYXgg
+WzB4JXhdCgAAAAAAAAAAAAAAAAAAYWN0X2VzdGFiOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwg
+b3AgWzB4JXhdLCByY3ZfaXNuIFsweCV4XSwgc25kX2lzbiBbMHgleF0sIGNzb2NrLT5mbG93Y19z
+dGF0ZSBbMHgleF0sIHRjcF9vcHQgWzB4JXhdLCB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSAKAAAA
+AAAAAAAAAAAAAGNza19mYy0+Zmxvd2NfY3NvY2tfY29va2llIFsweCV4XSAKAAAAAAAAAAAAAAAA
+AG5ldGlmX2RvX2RoY3A6IHdyLT5wYXJhbS52bGFuaWQgWyV1XSwgbDJkZXZfZmMtPmZsb3djX25l
+dF9sMmRldl92bGFuZGV2IFsweCV4XQoAbmV0aWZfZG9fZGhjcDogcmwyZGV2X2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGRoY3BfY3R4dCBpbml0aWFsaXphdGlvbiBlcnJvcgoAAAAAAABsM2luNF9kZXZf
+Y29uZmlnOiB3ci0+cGFyYW0udmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZf
+dmxhbmRldiBbMHgleF0KAAAAAAAAAAAAAAAAAABuZXRfbDNpbjRfZGV2X2NvbmZpZzogbDJkZXZf
+ZmMtPmZsb3djX2lkIFsweCV4XSwgYWRkcmVzcyBhbHJlYWR5IHVzZWQgYnkgcG9ydCAlZAoAAAAA
+AAAAAAAAAAAAAABuZXRfbDNpbjRfZGV2X2NvbmZpZzogIGFkZHIgWzB4JXhdLCBtYXNrIFsweCV4
+XSwgZ3cgWzB4JXhdLCByZWZfY250IFsweCV4XSBpbiB1c2UKAAAAAAAAAAAAAAAAAAB3cmhfY2hu
+ZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfdHlw
+ZSBbJTB4XSwgaWZjb25mX3dyLT5zdWJvcCBbMHgleF0KAAAAAAAAAAAAAAAAAAAAd3JoX2NobmV0
+X2lmY29uZjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgdW5rbm93biBzdWJvcCBbMHgleF0K
+AAAAAAAAAAAAAAAAAAB3cmhfY2huZXRfaWZjb25mOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhd
+LCByYyAlZAoAAAAAAAAAAAAAAAAAbmV0aWZfaXBfY29uZmxpY3RfdGltZXJfY2I6IGwyZGV2X2Zj
+LT5mbG93Y19pZCBbMHgleF0sIGluZGV2Y3R4dC0+c3RhdGUgWyVkXSwgaW5kZXZjdHh0LT5yZXRy
+eV9jbnQgWyVkXQoAAAAAAAAAAG5ldGlmX2lwX2NvbmZsaWN0X3RpbWVyX2NiOiBsMmRldl9mYy0+
+Zmxvd2NfaWQgWzB4JXhdLCBpbmRldmN0eHQgWzB4JXhdLCBpbiBmcmVlIHN0YXRlCgAAAAAAAAAA
+AGlmYWNlX2NtZF9oYW5kbGVyOiBmYyBbMHgleF0sIGZjLT5mbG93Y19pZCBbMHgleF0sIGZjLT5m
+bG93Y190eXBlIFsweCV4XSwgcCBbMHgleF0sIGxlbjE2IFsldV0sIGxvYyBbMHgleF0KAAAAAABp
+ZmFjZV9jbWRfaGFuZGxlcjpsMmRldl9mYyBbMHgleF0sIGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl
+eF0sIGwyZGV2LT5mbG93Y190eXBlIFsldV0sIGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfZmxh
+Z3MgWyUweF0KAAAAAGZvaXNjc2lfaWZhY2VfY21kX2hhbmRsZXI6IGwyZGV2X2ZjLT5mbG93Y19u
+ZXRfbDJkZXZfZmxhZ3MgY2hhbmdlZCBmcm9tIFslMHhdIHRvIFslMHhdCgAAAAAAAAAAAGNobmV0
+X2wyZGV2X3VwOiBtYiBbMHgleF0sIGRlZmVycmVkLCBzdGF0ZSBbMHgleF0sIHBvcnQgWzB4JXhd
+CgB2aWlkIFsweCV4XSBwb3J0IFsweCV4XSwgbWFjLWlkIFslMDJ4OiUwMng6JTAyeDolMDJ4OiUw
+Mng6JTAyeF0gcnNzX3NpemUgJXUKAAAAAHZpIHR5cGUgWzB4JXhdLCBwb3J0IFsweCV4XSwgZmxv
+d2Nfc2dlX2VxaWQgWzB4JXhdLCBmbG93Y19zZ2VfZXFpZCBbMHgleF0sIGZsb3djX3NnZV9lcWNy
+ICV1CgAAAG5ldGlmX3NldF9tYWM6IG1iX3NjcmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAG5l
+dGlmX3NldF9yeG1vZGU6IGwyZGV2X2ZjLT5mbG93Y19uZXRfbDJkZXZfbXR1IFsldV0sIG1iX3Nj
+cmF0Y2ggWzB4JXhdLCBwb3J0IFsweCV4XQoAAAAAAAAAAAAAAGNobmV0X2wyZGV2X3VwOiBsMmRl
+dl9tYWMgWyUwMng6JTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4XSwgZmxvd2NfbmV0X2wyZGV2X2Zs
+YWdzIFsweCV4XQoAAAAAAAAAAGNobmV0X2wyZGV2X3VwOiBtYl9sb2MgWzB4JXhdLCBtYl9vcmln
+IFsweCV4XSwgcmMgWyVkXQoAAAAAAAAAAABjaG5ldF9sMmRldl91cF9tYl9jYjogcmMgWyVkXSwg
+cG9ydCBbJXVdLCBzdGF0ZSBbJXVdLCBjb29raWUgWyV1XQoAAAAAAAAAAAAAAAAAAGNobmV0X3ht
+aXQ6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHZsYW5pZCBbJXVdLCBMNENoa0Rpc2FibGVf
+dG9faVZsYW5UYWcgWzB4JXhdCgAAAAAAAAAAAAAAAGNobmV0X3htaXQ6IHR4X2RsZW4gWyV1XQoA
+AAAAAAAAY2huZXRfeG1pdDogYWxyZWFkeSBzY2hlZHVsZWQKAABjaG5ldF94bWl0OiBsMmRldl9m
+Yy0+Zmxvd2NpZCBbMHgleF0sIG5idWYgWzB4JXhdIGluIGRlbGF5ZWRfcHJvY2Vzc2luZwoAAAAA
+AAAAAGRoY3BfcHJvY2Vzc19jYjogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5z
+dGF0ZSBbJTB4XSwgZGhjdHh0LT5ydHJ5X2NudCBbJXVdCgAAAAAAAAAAAGRoY3BfdGltZXJfY2I6
+IERIQ1BESVNDT1ZFUiBzZW50LCBidXQgbm8gcmVwbHkgZnJvbSBhbnkgcG9zc2libGUgc2VydmVy
+IG9uIHRoZSBuZXR3b3JrLiBSZXRyeWluZyBhZ2FpbgoAAAAAAAAAAABkaGNwX3RpbWVyX2NiOiBs
+MmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBzZW5kaW5nIERIQ1BESVNDT1ZFUiBmb3IgZGhjdHh0
+IFsweCV4XSBvbiBwaWQgWyVkXQoAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQg
+WzB4JXhdLCBESENQT0ZGRVIgcmVjZWl2ZWQgZm9yIGRoY3R4dCBbJXhdIHBpZCBbJWRdCgAAAAAA
+AAAAAABkaGNwX3RpbWVyX2NiOiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCAgREhDUEFDSyBy
+ZWNlaXZlZCBmb3IgZGhjdHh0IFsleF0sIHBpZCBbJWRdCgAAAAAAAAAAAABkaGNwX3RpbWVyX2Ni
+OiBsMmRldl9mYy0+Zmxvd2NfaWQgWzB4JXhdLCBkaGN0eHQtPmlwYWRkciBbMHgleF0KAAAAAAAA
+AAAAAAAAAAAAAGRoY3BfdGltZXJfY2I6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIG5vIHJl
+cGx5IGZyb20gZGhjcCBzZXJ2ZXIsIHRpbWluZyBvdXQKAAAAAAAAAAAAAAAAAAAAAHBbJXVdIGNo
+YW5naW5nIHNwZWVkIGZyb20gJSN4IHRvICUjeAoAAAAAAAAAAAAAAHBbJXVdIGJjbTg0ODM0IGxp
+bmsgc3RhdHVzIGNoYW5nZSBVUAoAAAAAAAAAAAAAAHBbJXVdIGJjbTg0ODM0IGxpbmsgc3RhdHVz
+IGNoYW5nZSBET1dOCgAAAAAAAAAAAGh3X2NsNDVfdXBkX3NwZF9hZHYgJSN4CgAAAAAAAAAAcFsl
+dV0gYXExMjAyIGxpbmsgc3RhdHVzIGNoYW5nZSBVUAoAAAAAAAAAAAAAAAAAcFsldV0gUEhZIE9W
+RVJIRUFURUQgLSBmb3JjZWQgcG93ZXIgZG93biAodGVtcD0lZCkKAAAAAAAAAAAAAAAAAHBbJXVd
+IGFxMTIwMiBsaW5rIHN0YXR1cyBjaGFuZ2UgRE9XTgoAAAAAAAAAAAAAAG1vZHVsZVsldV06IHBv
+cnQgbW9kdWxlIGluc2VydGVkIGFuZCByZWFkeQoAAAAAAG1vZHVsZVsldV06IHBvcnQgbW9kdWxl
+IHJlbW92ZWQKAAAAAAAAAAAAAAAAAAAAAG1vZHVsZVsldV06IHVua25vd24gbW9kdWxlIGlkZW50
+aWZpZXIgMHglMDJ4CgAAAG1vZHVsZVsldV06IGdwaW8gJXUgdHJhbnMgMTBHIDB4JTAyeCAxRyAw
+eCUwMnggKGxlbmd0aCAldSkgY2FibGUgMHglMDJ4IChsZW5ndGggJXUpIG1vZHVsZV90eXBlIDB4
+JTAyeAoAAAAAAAAAAABjeDRfY3JfcGRvd25bJXVdOiBlbiAldSB2aV9lbl9jbnQgJXUKAAAAAAAA
+AAAAAABpbml0X3BvcnRbJXVdOiAgbGluayBzdGF0dXMgMHgleCBtb2RfdHlwZSAweCV4IHZpX2Vu
+X2NudCAldSByeF9sb3MgJXUgaHNzX3NpZ2RldCAldSBwb3J0X2NmZy5zaWdkZXQgJXUKAAAAAAAA
+AAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9w
+b3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTog
+IGxpbmsgc3RhdHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3Rh
+dHVzIDB4JXgKAAAAAAAAAAAAAAAAAAAAaW5pdF9wb3J0WyV1XTogIGxpbmsgc3RhdHVzIDB4JXgK
+AAAAAAAAAAAAAAAAAAAAbmV3IG1vZHVsZSBuZXcgc3BlZWQgKHRlY2hfdHlwZT0lI3gpCgAAAAAA
+AAAAAAAAY3JfbW9kdWxlX3N0YXR1c1sldV06IHR5cGUgY2hhbmdlZCBmcm9tIDB4JTAyeCB0byB0
+eXBlIDB4JTAyeCBzdHlwZSAweCUwMngKAAAAAABjeDRfY3JbJXVdOiByZXQgJWQgc3RhdHVzICV1
+IHhnbV9scyAweCUwOHgKAAAAAAB3YXRjaGRvZyBjbWQgaGFuZGxlciAodGltZSAldSBhY3Rpb24g
+JXUpCgAAAAAAAABXQVRDSERPRzogZGV2aWNlIHNodXRkb3duCgAAAAAAAFdBVENIRE9HOiBieXBh
+c3MgdGltZW91dAoAAAAAAAAAV0FUQ0hET0c6IEZMUiAtIG5vdCBpbXBsZW1lbnRlZCB5ZXQKAAAA
+AAAAAAAAAAAAZmlsdGVyOiBwb3JncmFtbWluZyB0aWQgJXUgKGxlIHRjYW0gaW5kZXggJXUpLi4u
+CgAAAAAAAAAAAAAAAAAAAGZpbHRlcjogcmVxdWVzdGluZyBjb21wbGV0aW9uLi4uCgAAAAAAAAAA
+AAAAAAAAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5mbG93Y19pZCAl
+eCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAAcG9ydCAlZCBwcmlvciAlZCBzZWxlY3QgJWQg
+cHJvdG9jb2xJRCAweCUwNHgKAAAAcG9ydCAlZCBzZXQgcGZjX2VuID0gMHgleAoAAAAAAABwb3J0
+ICVkIHNldCBwZ2lkXzBfNyA9IDB4JTA4eCBwZ19wZXJjZW50YWdlIDB4JTA4eF8lMDh4IG51bV90
+Y3Nfc3VwcG9ydGVkICVkCgAAAHBvcnQgJWQgc2V0IHBmY19lbiA9IDB4JXgKAAAAAAAARkNvRSBE
+RFAgZmFpbGVkIDogb3hfaWQgMHgleCByeF9pZCAweCV4CgAAAAAAAAAARkNvRSBERFAgZmFpbGVk
+IDogRGRwUmVwb3J0IDB4JXggRGRwVmFsaWQgMHgleAoAUFJMSSBSc3AgdGltZWRvdXQgOiBmbG93
+Y19pZCAweCV4IG94X2lkIDB4JXggcnhfaWQgMHgleCAKAAAAAAAAAGNhbm5vdCBhbGxvY2F0ZSBv
+ZmZsb2FkZWQgZmlsdGVyIGNvbm5lY3Rpb24KAAAAAGNhbm5vdCBhbGxvY2F0ZSBvZmZsb2FkZWQg
+ZmlsdGVyIElQdjYgY29ubmVjdGlvbgoAAAAAAAAAAAAAAAAAAAB1b1sldV06IHdyICVwIHdyLT5s
+ZW5ndGggJXUgbXNzICV1CgAAAAAAAAAAAAAAAAB1b1sldV06IGYgMHglMDh4IGRzdF9jcGwgMHgl
+MDh4IHNyY19jcGwgMHglMDh4IGltbWRsZW4xNiAldQoAAAAAdW9bJXVdOiBsYXN0IG1zcyAldQoA
+AAAAAAAAAAAAAAB1b1sldV06ICFsYXN0IHdyLT5zY2hlZHBrdHNpemUgJXUKAAAAAAAAAAAAAAAA
+AABpbnZhbGlkIGJ1ZmZlciBncm91cFsldV0gY29uZmlndXJhdGlvbjogbXR1ICV1IGx3bSAldSBo
+d20gJXUgZHdtICV1CgAAAAAAAAAAAAAAAGZjICV1IHZmICV1IGdvdCBpdmY9MHgleCxyYW5nZTog
+JSN4LSUjeCAoJXUvJXUgdXNlZCkKAAAAAAAAAAAAAABWSSAldSBjYW5ub3QgZ2V0IFJTUyBzbGlj
+ZTogTm8gbW9yZSBzbGljZXMgYXZhaWxhYmxlICh1c2VkICV1LyV1KQoAAAAAAAAAAAAAAAAAAHBm
+biAldSB2Zm4gJXUgd2l0aCBwb3J0IG1hc2sgMHgleCBjYW5ub3QgYWNjZXNzIHBvcnQgJXUsIHJl
+dCAlZAoAAAAAAAAAAAAAAAAAAAAAcGZuICV1IHZmbiAldSBjb3VsZCBub3QgYWxsb2NhdGUgdmlp
+ZCwgcmV0ICVkCgAAcGZuICV1IHZmbiAldSBjb3VsZCBtYXAgdmlpZCAgMHgleCB0byBmbG93Yywg
+cmV0ICVkCgAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgY291bGQgbm90IGFsbG9jYXRlIHV3aXJl
+IGZ1bmMgJWQgbWFjIGFkZHIsIHJldCAlZAoAAAAAAAAAAAAAAAAAAAAAbWlpX2Fkdl9mY1sldV06
+IHJjYXBzIDB4JXgKAAAAAABtaWlfYW5yZXN0YXJ0WyV1XTogYWNhcHMgMHgleAoAAG1paV9mb3Jj
+ZV9zcGVlZFsldV06IHJjYXBzIDB4JXgKAAAAAAAAAAAAAAAAAAAAAG1paV9saW5rX3N0YXR1c1sl
+dV06IGJtc3IgMHglMDh4IHN0YXR1cyAldSB4Z21fbHMgMHglMDh4CgAAAAAAAABwb3J0X2NtZF9o
+YW5kbGVyOiB1bmtub3duIHUuZGNiLnR5cGUgMHgleAoAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUw
+MnhdOiBwaHkgcmVzZXQgbm90IGF2YWlsYWJsZQoAAAAAAAAAAAAAAAAAAAAAcG9ydFsldToweCUw
+Mng6MHglMDJ4XTogdW5rbm93biBhY3Rpb24gMHgleAoAAAAAcG9ydFsldToweCUwMng6MHglMDJ4
+XTogdW5rbm93biByZWFkIGFjdGlvbiAweCV4CgAAAAAAAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUv
+JXVdOiBjYXBwZWQgY2xhc3MgcmF0ZSBmcm9tIHJlcXVlc3RlZCAldSB0byBjb25maWd1cmVkIGNo
+YW5uZWwgcmF0ZSAldQoAAAAAAAAAAAAAAGNoX2NsX3JhdGVbJXUvJXVdOiBpbmNyZWFzZWQgZGVm
+aWNpdF9pbmNyIGZyb20gcmVxdWVzdGVkICV1IHRvIHJlcXVpcmVkIG1pbiBvZiAldTsgcmF0ZSAl
+dSAoZWZmICV1KSBkZWZpY2l0X21heCAldQoAAAAAAAAAAAAAAAAAcGt0c2NoZWQgY2hhbm5lbCAl
+dSBzZXRzIHNwZWVkIChmcm9tICV1KSB0byAldSBrYnBzCgAAAAAAAAAAAAAAAHBvcnRfY21kX2hh
+bmRsZXI6IHVua25vd24gdS5kY2IudHlwZSAweCV4CgAAAAAAAGh3X2kyY190cmFuc2FjdGlvbjog
+bmRhdGEgJXUgYWRkcl9vcCAweCV4IGRhdGFbMF0gMHgleCBkaWZmICV1CgBod19pMmNfdHJhbnNh
+Y3Rpb246IG5kYXRhICV1IGFkZHJfb3AgMHgleCBkYXRhWzBdIDB4JXggZGlmZiAldSBkcG9zICV1
+IGNvbnQgJXUgZmFpbGVkIHdpdGggZXJyICVkCgAAAAAAAAAAAAAAAAAAaTJjIHRyYW5zYWN0aW9u
+IGZhaWxlZCB0byBjb21wbGV0ZQoAAAAAAAAAAAAAAAAAaTJjIGVycm9yIGNhdXNlZCBieSBtb2R1
+bGUgdW5wbHVnCgAAAAAAAAAAAAAAAAAAUVNGUCBtb2R1bGUgdW5wbHVnIC0gcmVpbml0aWFsaXpp
+bmcgcnhfbG9zICB0byAweGZmCgAAAAAAAAAAAAAAAGdwaW9fcXNmcF9tb2R1bGVfdXBkYXRlOiBj
+aGFuZ2VkIHJ4X2xvcyBmcm9tIDB4JXggdG8gMHgleAoAAAAAAABncGlvX3FzZnBfbW9kdWxlX3Vw
+ZGF0ZTogY2hhbmdlZCB0eF9kaXMgZnJvbSAweCV4IHRvIDB4JXgKAAAAAAAAc2VuZHRvIHBlbmRp
+bmc6IHdyX3BlbmQgJXAgZm9yIHBvcnQgJXUsICB3YW50IHRvIHNlbmQgdG8gcG9ydCAldQoAAAAA
+AAAAAAAAAAAAAABzZW5kdG86Zmxvd2NpZCAldQoAAAAAAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5
+OiB0aWQgJXUgY3BsIDB4JTA4eCUwOHgKAAAAAAAAAAAAAGNwbF9lcnJfbm90aWZ5OiB0aWQgJXUg
+Y3BsIDB4JTA4eCUwOHggMHglMDh4JTA4eAoAAAAAAAAAAAAAAAAAAABjcGxfZXJyX25vdGlmeTog
+dGlkICV1IGxlbiAldQoAAEZDT0UgRnJlZTogc3RpbGwgeWllbGRlZCB3aGVuIGZyZWVpbmcuLi5m
+bG93Y19pZCAleCBmbG93Y19mbGFncyAleCAKAAAAAAAAAAAAAAAARkNPRSBCUCBXUiBFUlI6IFdS
+IHdpdGggY29va2llICV4JXggZXJyb3JlZCBiYWNrIAoAAAAAAAAAAAAAAAAAAHNjc2lfYWJvcnQ6
+IEVudGVyaW5nIEFib3J0X3Rhc2sKAAAAAAAAAAAAAAAAAAAAAHNjc2lfYWJvcnQ6OiB3ci0+aXFp
+ZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc2dlX2lxaWQgWzB4JXhdCgBzY3NpX2Fib3J0Ojog
+bHVuX2lkeCBbMHgleF0KAAAAAHNjc2lfYWJvcnQ6IHJlZiB0YXNrIG5vdCBvdXRzdGFuZGluZwoA
+AAAAAAAAAAAAAHNjc2lfYWJvcnQ6IHJlZiB0YXNrIGZvdW5kIGl0dCBbMHgleF0gY29va2llIFsw
+eCVwXQoAAAAAAAAAAAAAAABzY3NpX2Fib3J0OiBzcmVxLT5vcGNvZGUgWzB4JXhdIGZsYWdzIFsw
+eCV4XQoAAABzY3NpX2Fib3J0OiB0YXNrX2lkeCBbJXVdLCBpdHQgWzB4JXhdCgAAAAAAAAAAAABh
+Ym9ydC9jbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCB3YXMgaXNzdWVkIG9uIHNzbiAweCV4IGlu
+IHdyb25nIHN0YXRlIDB4JXgKAAAAAGFib3J0IFdSIG9uIHNzbiAweCV4IGRpZCBub3QgZmluZCBX
+UiB3aXRoIGNvb2tpZSAweCV4JXgKAAAAAAAAAABjbG9zZSBXUiB3aXRoIGNvb2tpZSAweCVseCBv
+biBzc24gMHgleDtkaWQgbm90IGZpbmQgV1Igd2l0aCBjb29raWUgMHglbHgKAAAAAAAAAGFib3J0
+IFdSIG9uIHNzbiAweCV4IHdhcyBpc3N1ZWQgb24geGNoZyAweCV4IHdpdGggcnhfaWQgMHgleCBp
+biB3cm9uZyBzdGF0ZSAweCV4CgAAAAAAAAAAAAAAAAAAAHdyaF9mb2lzY3NpX3Njc2lfZXJyOiB3
+ciBbMHgleF0sIHF1ZXVlZCBvbiBmbG93YyBbMHgleF0sIGZpZm8gWzB4JXhdIGJ5dGVzX2F2YWls
+YWJsZQoAAAAAAAAAAAAAAG5ldF9sMmRldl9ub3RpZnk6IEV2ZW50IG9uIGwyZGV2X2ZjLT5mbG93
+Y19pZCBbMHgleF0sIHBvcnQgWyVkXSwgZXZlbnQgWzB4JXhdLCB1bHB0eGNoIFsldV0sIGNsYXNz
+IFsweCV4XSwgcHJpb3JpdHkgWzB4JXhdCgAAAAAAcG9ydCAlZCBhcHBsSUQgMHglMDR4IG91aSAw
+eCUwNnggdXNlcl9wcmlvciAlZAoAc2VuZCBkY2J4IGluZm86Zmxvd2NpZCAldQoAAAAAAABzZW5k
+IGRjYnggY29tcGxldGUKAAAAAAAAAAAAAAAAAERDQlggcG9ydCAldSBhbGxfc3luY2QgPSAldQoA
+AAAAY2huZXRfbDJ0X3VwZGF0ZTogbDJkZXZfZmMgWzB4JXhdLCBsMmRldl9mYy0+Zmxvd2NfaWQg
+WyV1XSBsMmRldl9mYy0+Zmxvd2NfZmxhZ3MgWzB4JXhdCgAAAAAAAAAAY2huZXRfbDJ0X3VwZGF0
+ZTogbDJkZXZfZmMtPmZsb3djX2lkIFsldV0gYWxyZWFkeSBzY2hlZHVsZWQKAAAAAGNobmV0X2wy
+dF91cGRhdGU6IGluIGRlbGF5ZWRfcHJvY2Vzc2luZywgbDJ0ZW50IFslMDh4XQoAAAAAAAAAAABj
+aG5ldF9sMnRfdXBkYXRlOiBsMnRfdXBkYXRlIHJlcXVlc3Qgc2VudCBsMnRlbnQgWyUwOHhdLCBs
+MnRlbnQtPmlkeCBbJWRdLCBsMnRlbnQtPnZsYW4gWyVkXQoAAABuZXRpZl9wcm9jZXNzX2RoY3A6
+IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIHByb2Nlc3NpbmcsIG9wdF9sZW4gJXUKAAAAAAAA
+AAAAAGNobmV0X2RoY3BfcmVjdjogdmxhbmlkIFsldV0sIGwyZGV2X3BpZF9mYy0+Zmxvd2NfbmV0
+X2wyZGV2X3ZsYW5kZXYgWzB4JXhdLCBsMmRldl9mYyBbMHgleF0KAAAAAGNobmV0X2RoY3BfcmVj
+djogbDJkZXZfZmMtPmZsb3djX2lkIFsweCV4XSwgZGhjdHh0LT5zdGF0ZSBbJWRdLCBtYWxhY2lv
+dXMgZGhjcCByZWN2IGZvciBubyByZXF1ZXN0CgAAAAAAAAAAAAAAAABkaGN0eHQtPnN0YXRlIDog
+JWQAAAAAAAAAAAAAAAAAAGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIEJhZCBESENQIGNvb2tp
+ZSByZWNpZXZlZCwgYWJvcnRpbmcKAABOX1BPUlQgMHgleCV4JXggcmVqZWN0ZWQgUExPR0kgd2l0
+aCByZWFzb24gY29kZSAleAoAAAAAAAAAAAAAAAAAQUJUUyB3aGlsZSBhd2FpdGluZyBQUkxJIFJz
+cDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXggCgAAAAAAAAAAAAAAAABBQlRT
+IGZha2UgUnNwOiBsb2MgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgKAABjYW5ub3QgYWxsb2Nh
+dGUgUE9GQ09FIGZpbHRlciBjb25uZWN0aW9uIGZvciB4X2lkICV4IAoAAAAAAAAAAAAAYWN0X29w
+ZW5fcnBsOiBhdGlkIFsweCV4XSwgdGlkIFsweCV4XSwgb3AgWzB4JXhdLCBzdGF0dXMgWzB4JXhd
+CgAAAAAAAAAAAAAAAAAAAABhY3Rfb3Blbl9ycGw6IGNza19mYy0+dGNiX3N0YXRlIFsweCV4XSwg
+Y3NrX2ZjLT5mbGFncyBbMHgleF0sIHRjYl9mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdCgAAAAAAAABz
+ZW5kX2Fib3J0X3JwbDogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBbJXVdLCBi
+dWZmZXJlZCBbJXVdCgAAAAAAAAAAAAAAAAAAAAB3cmhfb2ZsZF90Y3BfY2xvc2VfY29uX3JlcGx5
+OiB0Y2JfZmMtPmZsb3djX2lkIFsweCV4XSwgdGNiX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgbGVu
+MTYgWyV1XSwgbG9jIFsldV0KAAAAAAAAAAAAd3JoX29mbGRfdGNwX2Nsb3NlX2Nvbl9yZXBseTog
+cnBsLT5vcF9UaWQgWzB4JXhdLCBycGw+c3RhdHVzIFsweCV4XSwgcnBsLT5zbmRfbnh0IFsweCV4
+XSwgcnBsLT5yY3Zfbnh0IFsweCV4XQoAAHRjcF9hYm9ydF9ycGxfcnNzOiB0aWQgWzB4JXhdLCBz
+dGF0dXMgWzB4JXhdCgAAAHRjcF9hYm9ydF9yZXFfcnNzOiB0aWQgWzB4JXhdLCBzdGF0dXMgWzB4
+JXhdCgAAAHBrdHNjaGVkX2NsX3JsWyV1OiV1XTogbW9kZSB8IHVuaXQgfCByYXRlIDB4JTA2eCBt
+aW4gJXUgbWF4ICV1IHBrdHNpemUgJXUKAAAAAAAAcGFyYW1fZG1hcVsweCV4OjB4JXhdOiBkbWFx
+IDB4JXggcmVhZCAldSBwZiAldSByZXQgJWQKAAAAAAAAAAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1
+ZW5jZTogU3RhcnRlZAoAAAAAAAAAAAAAAAAAAGh3X2JjbTg0ODM0X2xvYWRzZXF1ZW5jZTogVXBs
+b2FkIGltYWdlIHRvIFBIWSBvbi1jaGlwIG1lbW9yCgAAAABod19iY204NDgzNF9sb2Fkc2VxdWVu
+Y2U6IGRvbmUgbG9hZGluZyBpbWFnZSAoaSA9ICV1KQoAAAAAAAAAAAAARkxBU0ggbm90IHJlYWR5
+OiBpICV1IG52clJlZyAlI3gKAAAAAAAAAAAAAAAAAAAAQVFfRkxBU0hfUmVhZHkgLSBUaW1lb3V0
+ICgxKQoAAABBUV9GTEFTSF9SZWFkeSAtIFRpbWVvdXQgKDIpCgAAAAlBUV9SZXR1cm5Db250cm9s
+T2ZGTEFTSAoAAAAAAAAAcGh5OiBmYWlsZWQgdG8gYWxsb2NhdGVkIG1lbW9yeSBmb3IgcGh5IGZ3
+IGZpbGUsIHJldCAlZAoAAAAAAAAAAFBIWSBGVyB2ZXJzaW9uIGluZm9ybWF0aW9uIG5vdCBhdmFp
+bGFibGUgZm9yIHRoaXMgdGVjaG5vbG9neQoAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAl
+dSByb3V0ZSAldSBjbGlwICV1IGZpbHRlciAldSBhY3RpdmUgJXUgc2VydmVyICV1IGhhc2ggJXUK
+AAAAAAAAAAAAAABsZSBjb25maWd1cmF0aW9uOiBuZW50cmllcyAldSByb3V0ZSAldSBjbGlwICV1
+IGZpbHRlciAldSBzZXJ2ZXIgJXUgYWN0aXZlICV1IGhhc2ggJXUgbnNlcnZlcnNyYW0gJXUKAAAA
+AAAAAAAAAAAAY2ZfcGFyc2U6IGZpbGUgbWVtdHlwZSAweCV4IG1lbWFkZHIgMHgleCBtYXBwZWQg
+QCAlcDoKAAAAAAAAAAAAAGNvbmZpZ3VyZWQgd2l0aCBjYXBzIG5ibXxsaW5rIDB4JTA4eCBzd2l0
+Y2h8bmljIDB4JTA4eCB0b2V8cmRtYSAweCUwOHggaXNjc2l8ZmNvZSAweCUwOHgKAAAAAAAAAG5l
+dCBWSSBhbGxvY2F0aW9uIGZhaWxlZCBmb3IgZmNfaWQgJXUgd2l0aCBlcnJvciAlZAoAAAAAAAAA
+AAAAAABuZXQgVkkgbWFjIGFkZHJlc3MgcHJvZ3JhbW1pbmcgZmFpbGVkIGZvciBmY19pZCAldSB3
+aXRoIGVycm9yICVkCgAAAAAAAAAAAAAAAAAAAG5ldCBWSSByeG1vZGUgcHJvZ3JhbW1pbmcgZmFp
+bGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9yICVkCgAAAABuZXQgVkkgcnNzIGluZGlyZWN0aW9u
+IHRhYmxlIHByb2dyYW1taW5nIGZvciBmY19pZCAldSBmYWlsZWQgd2l0aCBlcnJvciAlZAoAAAAA
+AG5ldCBWSSByc3MgY29uZmlnIGNvbW1hbmQgZmFpbGVkIGZvciBmY19pZCAldSB3aXRoIGVycm9y
+ICVkCgAAAABuZXQgVkkgY29tbWFuZCBmYWlsZWQgZm9yIGZjX2lkICV1IHdpdGggZXJyb3IgJWQK
+AAAAAAAAAAAAAAAAAAAAbGUgaW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNs
+aXAgJXUgZmlsdGVyICV1IGFjdGl2ZSAldSBzZXJ2ZXIgJXUgaGFzaCAldQoAAAAAAAAAAAAAbGUg
+aW5pdGlhbGl6YXRpb246IG5lbnRyaWVzICV1IHJvdXRlICV1IGNsaXAgJXUgZmlsdGVyICV1IHNl
+cnZlciAldSBhY3RpdmUgJXUgaGFzaCAldSBuc2VydmVyc3JhbSAldQoAAAAAAAAAAAAAAHRwIG1l
+bSBkaXN0cmlidXRpb25bJSVdIHBtdHggJXUgcG1yeCAldSBkZHAgJXUgZGRwX2lzY3NpICV1IHN0
+YWcgJXUgcGJsICV1IHJxICV1IHJxdWRwICV1CgAAAAAAAFRQX1BNTV9SWF9QQUdFX1NJWkUgJXUg
+aXMgbm90IHN1cHBvcnRlZAoAAAAAAAAAAFRQX1BNTV9UWF9QQUdFX1NJWkUgJXUgaXMgbm90IHN1
+cHBvcnRlZAoAAAAAAAAAAHBwbWF4IFsldV0sIGJpdHMgWyV1XSwgRldfSVNDU0lfUEFHRVBPRF9U
+QUdfSURYX01BWF9TSVpFIFsldV0KAABkZWZhdWx0IHRhZ21hc2sgWzB4JTB4XQoAAAAAAAAAAHBy
+b2dyYW1tZWQgdGFnbWFzayBbMHglMHhdCgAAAAAAY3hjbmljLT5kZHBfaW5mby5sbGltaXQgWzB4
+JTB4XSwgY3hjbmljLT5kZHBfaW5mby51bGltaXQgWzB4JTB4XSwgY3hjbmljLT5kZHBfaW5mby5z
+aXplIFsweCUweF0KAAAAAAAAAAAAAAAAAAAAAGN4Y25pYy0+ZGRwX2luZm8ubWF4X3R4c3ogWzB4
+JTB4XSBjeGNuaWMtPmRkcF9pbmZvLm1heF9yeHN6IFsweCUweF0gaW9zaXplIFsweCUweF0KAAAA
+AAAAAAAAAAAAAHBwbWF4IFsldV0sIGlkeF9iaXRzIFsldV0sIGlkeF9tYXNrIFsweCUweF0sIHJl
+c3ZkX3RhZ19tYXNrIFsweCUweF0sIHRhZ21hc2sgWzB4JTB4XQoAAAAAAAAAAAAAAHRhZyBpdHQg
+MHglMHgsIGJpdHMgJXUsIGFnZSAweCUweCwgYml0cyAldQoAAAAAAGN4Y25pYy0+aXNjc2lfcHBt
+IFsweCUweF0KAAAAAAAAc2NzaV9wbGRfc2l6ZSBbJXVdLCBBTElHTihzY3NpX3BsZF9zaXplLCAx
+NikgWyV1XQoAAAAAAAAAAAAAAAAAAG1heF9wcG9kX3pvbmVzIFsldV0KAAAAAAAAAAAAAAAAbDJk
+ZXZfZmMtPmZsb3djX2lkIFsldV0sIGwyZGMtPnBmbiBbJXVdLCBsMmRjLT52Zm4gWyV1XSwgbDJk
+Yy0+bHBvcnQgWyV1XSwgbDJkZXZfZmMtPmZsb3dpZCBbJXVdIGwyZGMtPnR4X2NoIFsldV0sIGRl
+di52cGQucG9ydHZlYyBbJXhdCgAAAAAAAAAAcG9ydHZlYyBbJXVdCgAAAGN4Y25pY19kZXZpY2Vf
+aW5pdDogY3hjbmljX2RldmljZV9pbml0X2RvbmUgWyV1XSwgZGV2LnJlcy5mb2lzY3NpX250YXNr
+cyBbJXVdLCBkZXYucmVzLmZvaXNjc2lfbnNlc3MgWyV1XSwgZGV2LnJlcy5uY3NvY2sgWyV1XSwg
+ZGV2LnJlcy5mb2lzY3NpX25pbml0IFsldV0KAAAAAABhcnBfdGFibGVfc2l6ZSBbJXVdLCBhcnBf
+dGJsX2JtX3NpemUgWyV1XSwgbnN0YWNrX25sMnRfYm1fc2l6ZSBbJXVdLCBvZmxkX3Nwb3J0X2Jt
+X3NpemUgWyV1XQoAAABpc2NzaV9uc2Vzc19ibV9zaXplIFsldV0sIGNzb2NrX2JtX3NpemUgWyV1
+XSwgaXNjc2lfc2NzaV9udGFza3NfYm1fc2l6ZSBbJXVdCgAAAGN4Y25pY19kZXZpY2VfaW5pdDog
+Y3hjbmljIFsweCUweF0sIGN4Y25pYy0+ZmlsdGVyIFslMHhdLCBjeGNuaWMtPm9mbGRfdGNwX3Nw
+b3J0X2JtIFsleF0gc2l6ZW9mKHN0cnVjdCBmbG93YykgWyV1XSwgdG90YWxfaXNjc2lfYm1fc2l6
+ZSBbJXVdLCB0b3RhbF9tZW1fc2l6ZSBbJXVdCgAAAAAAAAAAAAAAAAAAY3hjbmljX2RldmljZV9p
+bml0OiBkZXYudHAubnVtX3R4X3BhZ2VzIFsldV0sIGRldi5tYy5zaXplIFsldV0sIGRldi50cC50
+eF9wYWdlX3N6IFsldV0gbnN0YWNrX25sMnQgWyV1XSwgZm9pc2NzaV9udGNiIFsldV0sIHJjIFsl
+dV0KAAAAAAAAAAAAAAAAUG9ydFsldV06IFVua25vd24gU0dNSUkgc3ViLXR5cGUgJSN4CgAAAAAA
+AAAAAAAAUG9ydFsldV06IFVua25vd24gQlRfWEZJIHN1Yi10eXBlICUjeAoAAAAAAAAAAAAAUG9y
+dFsldV06IFVua25vd24gQlRfWEFVSSBzdWItdHlwZSAlI3gKAAAAAAAAAAAAcG9ydF9pbml0WyV1
+XTogcG9ydCB0eXBlIDB4JXggaXMgbm90IHN1cHBvcnRlZAoARVEgcGZuICV1IHZmbiAldTogZGVz
+dHJveWluZyBlcWlkICV1IHdpdGggcGVuZGluZyBXUihzKSAobnVtX2J5dGVzICV1IGFuZCBmbGFn
+cyAweCUwOHgKAAAAAAAAAAAAbmV0X2wyZGV2X2ZyZWU6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgl
+eF0sIHBvcyBbJXVdCgAAAAAAAAAAAAAAAEFoIGhhLi4uZG91YmxlIGZyZWUgb3hfaWQgMHgleCwg
+cnhfaWQgMHgleAoAAAAAAEhvc3QgUFJMSSBSZXNwb25zZSB0aW1lZG91dDogb3hfaWQgMHgleCBy
+eF9pZCAweCV4CgAAAAAAAAAAAAAAAABsMmRldl9mYy0+Zmxvd2NfaWQgWyV1XSwgbDJkZXZfZmMt
+PmZsb3djX25ldF9sMmRldl9wZm4gWyV1XSwgbDJkZXZfZmMtPmZsb3djX25ldF9sMmRldl92Zm4g
+WyV1XSwgbmV0X2wyZGMtPmxwb3J0IFsldV0KAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgdmlhIGNv
+bW1hbmQKAAAAAAAAaHdfbGVfY2xpcF9oYW5kbGVyOiByZW1vdmVkIHBvcz0ldSAoPWlkeCAldSkK
+AAAAaHdfbGVfY2xpcF9oYW5kbGVyOiBhZGRpbmcgdG8gcG9zPSV1ICg9aWR4ICV1KQoAcGZuICV1
+IHZmbiAldQoAAGh3IHBmIGJpdG1hcCAweCUwMnggdmZpZCBiaXRtYXAgMHglMDh4OjB4JTA4eDow
+eCUwOHg6MHglMDh4CgAAAABhZnRlciB2ZmlkIGZpeHVwLCB2ZmlkIGJpdG1hcCAweCUwOHg6MHgl
+MDh4OjB4JTA4eDoweCUwOHgKAAAAAAAAd29ya2Fyb3VuZDEzNzIzOiBkZXRlY3RlZCBXUiBAIDB4
+JTA4eCBvZiBzaXplICV1IGJ5dGVzLCBkcmliYmxpbmcgaXQgaW4gJXUgYnl0ZXMgYXQgYSB0aW1l
+CgAAAAAAdGltZXIgcXVldWUgJXUgbG9zdCBhIHRpY2shIG5leHQgJXAgbGFzdCAlcCBudW1lICV1
+CgAAAAAAAAAAAAAAAGZscl90aW1lcl9zdGFydDogZmxvd2NfaWQgJXUgJXAgYnVmICVwCgAAAAAA
+AAAAAHNldHRpbmcvdW5zZXR0aW5nIGhzcyByZXN5bmMgYml0CgAAAAAAAAAAAAAAAAAAAE1DIGlu
+aXRpYWxpemF0aW9uIG5vdCBjb21wbGV0aW5nLCBNQyBjdXJyZW50IGluaXQgc3RhdGUgaXMgMHgl
+MDJ4CgAAAAAAAAAAAAAAAAAAcGNpZTogbnBmICV1IChwZmJpdG1hcCAweCUwMngpIG52ZiAldSAo
+cGYgMC4uMyAweCUwMnggMHglMDJ4IDB4JTAyeCAweCUwMngpCgAAAABmYWlsZWQgdG8gZmluZCB0
+aGUgJWMlYyBWUEQgcGFyYW1ldGVyCgAAAAAAAAAAAABmYWlsZWQgdG8gcGFyc2UgdGhlICVjJWMg
+VlBEIHBhcmFtZXRlcgoAAAAAAAAAAABmYWlsZWQgdG8gc3VjY2Vzc2Z1bGx5IGZpbmQgQ2hlbHNp
+byBWUEQKAAAAAAAAAABsb2cgaW5pdGlhbGl6ZWQgQCAweCUwOHggc2l6ZSAldSAoJXUgZW50cmll
+cykKAABzZW5kX2Nsb3NlX3JlcTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19pZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAABzZW5kX2Nsb3NlX3Jl
+cTogY3NrX2ZjLT5mbG93Y190eXBlIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNz
+a19mYy0+Zmxvd2NfY3NvY2tfdGlkIFsweCV4XSwgdWxwdHhjaCBbJXVdLGJ1ZmZlcmVkIFsldV0K
+AG9mbGRfdGNwX2RvX2FjdGl2ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+dGNiX3N0YXRlIFsweCV4XQoAAAAAAG9mbGRfdGNwX2RvX2FjdGl2
+ZV9jbG9zZTogY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+
+dGNiX3N0YXRlIFsweCV4XQoAAAAAAHRjcF9zZW5kX2FvcGVuX3JlcTogY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIGNza19mYy0+Zmxvd2Nfc3RhdGUgWzB4JXhdLCBidWZmZXJlZCBbJXVdLCByZXNf
+Y250IFsweCV4XSwgc2NoZWRfbm9kZS5uZXh0IFsweCV4XQoAb2ZsZF90Y3Bfc2VuZF9hb3Blbl9y
+ZXE6IGNwbF9yZXEtPkZpbHRlciBbMHglMHhdCgAAAAAAAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiB0
+eF9jaCBbMHgleF0sIGxwb3J0IFsweCV4XSwgc21hY19pZHggWyV1XSwgbXNzX2lkeCBbJXVdIGNv
+b2tpZSBbJTA4eF0KAAAAAAAAAAAAAAAAAGNzb2NrX2FsbG9jOiBhdmFpbGFibGUgWyV1XSwgbmNz
+b2NrIFsldV0sIHBvczphdGlkIFsweCV4XSwgY3NrX2ZjIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19p
+ZCBbMHgleF0sIHNwb3J0IFsldV0KAABlbmNvZGVfbnVtYmVyOiBhbGVuIFsldV0KAAAAAAAAAGNo
+YXBfY2FsY19kaWdlc3RfbWQ1IC0xCgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUgLTIKAAAA
+AAAAAABjaGFwX2NhbGNfZGlnZXN0X21kNSAtMwoAAAAAAAAAAGNoYXBfY2FsY19kaWdlc3RfbWQ1
+IC00CgAAAAAAAAAAY2hhcF9jYWxjX2RpZ2VzdF9tZDUgLTUKAAAAAAAAAABjaGFwX2NhbGNfZGln
+ZXN0X21kNSAtNgoAAAAAAAAAAGZvaXNjc2lfcGVlcl9pbml0OiBjb25uX2F0dHItPmhkaWdlc3Rf
+dG9fZGRwX3Bnc3ogWzB4JXhdCgAAAAAAAABmb2lzY3NpX3BlZXJfaW5pdDogY29ubl9mYy0+Zmxv
+d2NfZm9pc2NzaV9jb25uX2ZsYWdzIFsweCV4XQoAAAAAb2ZsZF90Y3BfZGlzY29ubmVjdDogdGNi
+X2ZjLT5mbG93Y19pZCBbMHgleF0sIGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2stPnRjYl9z
+dGF0ZSBbMHgleF0KAAAAeG1pdF9zZW5kdGFyZ2V0czogcGFyYW0tPnR0dCBbMHgleF0sIGRhdGFf
+bGVuIFsldV0sIHBhZF9sZW4gWyV1XQoAAAAAAAAAAAAAAAAAAABsb2dnZWRfaW46IGZsb3djX2Zv
+aXNjc2lfY29ubl9mbGFncyBbMHgleF0KAAAAAABmb2lzY3NpX3ZhbGlkYXRlX2xvZ2luX3N0YWdl
+OiAtIDEKAAAAAAAAAAAAAAAAAAB0YXNrX2ZyZWU6IHRyeWluZyB0byBmcmVlIHF1ZXVlZCB0YXNr
+IFsweCV4XSEhIQoAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBvcGNvZGUgMHgleCBpbiBkYXRhIHBh
+dGgKAAAAAAAAAAAAAAAAAAAAbmV0X2wyZGV2X2ZpbmRfYnlfYWRkcjogbDJkZXZfZmMtPmZsb3dj
+X2lkIFsweCV4XSwgbDJkYy0+bHBvcnQgWyV1XSwgbDJkX2ZjLT5mbG93Y19pZCBbMHgleF0sIGwy
+ZGMtPmluNF9kZXYuaW5fYWRkci5hZGRyIFsweCV4XSwgYWRkciBbMHgleF0KAAAAbmV0X2wyZGV2
+X210dV9jb25maWc6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIG10dSAldQoAAAAAAAAAAGZv
+aXNjc2kgY29ubl9mYyBbMHgleF0sIGZsb3djX3NjaGVkY2wgWzB4JXhdLCBpbmdfY2ggWzB4JXhd
+LCBlZ3JfY2ggWzB4JXhdCgAAAAAAbDJkZXZfbm90aWZ5IHdpdGggdW5rbm93biBmbGFnIFsweCV4
+XQoAAAAAAAAAAAAAY2huZXRfdmlfZW5hYmxlOiB2aWlkIFslZF0sIHZpX2ZjLT5mbG93Y192aV9m
+bGFncyBbMHgleF0KAAAAAAAAAGh3IHJlZ2lzdGVyIG9wZXJhdGlvbiBub3QgY29tcGxldGluZywg
+cmVnIDB4JTA4eCBtYXNrIDB4JTA4eCB2YWx1ZSAweCUwOHgKAAAAAAAATURJTyBDTDQ1OiBmYWls
+ZWQgdG8gc2V0IHVwIE1NRCBhZGRyCgAAAAAAAAAAAAAATURJTzogZmFpbGVkIHRvIHJlYWQKAAAA
+AAAAAAAAAABNRElPIENMNDU6IGZhaWxlZCB0byBzZXQgdXAgTU1EIGFkZHIKAAAAAAAAAAAAAABN
+RElPOiBmYWlsZWQgdG8gd3JpdGUKAAAAAAAAAAAAAHBbJXVdIGNoYW5naW5nIHNwZWVkIGZyb20g
+JSN4IHRvICUjeAoAAAAAAAAAAAAAAHBbJXVdIGNhbGlicmF0aW5nIFBIWSBTRVJERVMgZm9yIG5l
+dyBzcGVlZAoAAAAAAGh3X3hnbV9sZWRfbGlua191cCBsZWQwIGNvbmZpZzogJXUKAAAAAAAAAAAA
+AAAAAGh3X3hnbV9sZWRfbGlua191cCBsZWQxIGNvbmZpZzogJXUKAAAAAAAAAAAAAAAAAGhzc19z
+aWdkZXRbJXVdOiBoc3Nfc2lnZGV0IGNoYW5nZWQgdG8gMHgleAoAAAAAAGNyX21vZHVsZV9yeF9s
+b3NbJXVdOiByeF9sb3MgY2hhbmdlZCB0byAldQoAAAAAAFdBVENIRE9HOiBObyB0ZW1wZXJhdHVy
+ZSBzZW5zb3IgYXZhaWxhYmxlLgoAAAAAAFdBVENIRE9HOiBBY3RpdmF0aW5nCgAAAAAAAAAAAAAA
+V0FUQ0hET0cgLSBFbmFibGUgYWN0aW9uICV1IHRpbWUgJXUKAAAAAAAAAAAAAAAAV0FUQ0hET0cg
+LSBEaXNhYmxlIGFjdGlvbiAldQoAAABXQVRDSERPRzogRGUtYWN0aXZhdGluZwoAAAAAAAAAAEZD
+b0UgRkNCIGxpbmtkb3duOiBpb19yZXEgMHgleCV4IGlxaWQgMHgleCBmbG93aWQgMHgleCBvcCAw
+eCV4CgBmY29lIG5vdGlmeSA6IFVwZGF0ZSBuZXcgRENCWCB2YWx1ZXMgVkkgc3RhdGUgMHgleCBw
+cmkgMHgleCBzY2hlZGNsIDB4JXggZGNieF9kb25lIDB4JXgKAAAAAAAAAABmY29lIG5vdGlmeSA6
+IEZDRiBmbG93aWQgMHgleCwgdWxwY2ggMHgleCAKAAAAAABmY29lIG5vdGlmeSA6IERDQlggOiBw
+b3J0IDB4JXgsIHByaW9yaXR5IDB4JXggdWxwdHhjaCAweCV4IGNsYXNzIDB4JXgKAAAAAAAAAAAA
+AGNoX2NsX3JhdGVbJXUvJXVdOiBjYXBwZWQgZGVmaWNpdF9pbmNyIGZyb20gcmVxdWlyZWQgJXUg
+dG8gJXU7IHJhdGUgJXUgKGVmZiAldSkgZGVmaWNpdF9tYXggJXUKAEZDb0UgRkNGIHRpbWVyOiBm
+bG93YyBzdGF0ZSAweCV4LCBwb3J0IDB4JXggLGZjZiAweCV4LCBmbG93Y19pZCAweCV4CgAAAAAA
+AAAAAAAAY29yZV9wcm9ncmFtX3RjYjogdGlkICUjeCB0X3N0YXRlICUjeCByY3ZfYWR2IDB4JTA4
+eCByY3Zfc2NhbGUgJSN4IHR4X21heCAlI3ggcmN2X254dCAlI3ggYXRpZCAlI3gKAAAAAAAAAAAA
+AAAAAAlvcHQwICUjeCV4IG9wdDIgJSN4IGlwdjYgJSN4IGZsYWdzX3RpbWVyIDB4JTA4eAoAAAAA
+AAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxw
+IDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4eCUwOHggcGlwIDB4JTA4eCUwOHggZmlsdGVyIDB4
+JTA4eCBleGlzdHMgQCBMRSBpbmRleCAldQoAAAAAAAAAAAAAAAAAAABvZmxkX2Nvbm5lY3Rpb25f
+d3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUwNHggbGlwIDB4JTA4
+eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHggZXhpc3RzIEAgTEUgaW5kZXggJXUKAAAAAAAAAG9m
+bGRfY29ubmVjdGlvbl93cjogY29ubmVjdGlvbiB3aXRoIDUtdHVwbGUgbHAgMHglMDR4IGZwIDB4
+JTA0eCBsaXAgMHglMDh4JTA4eCBwaXAgMHglMDh4JTA4eCBmaWx0ZXIgMHglMDh4CgAAAABvZmxk
+X2Nvbm5lY3Rpb25fd3I6IGNvbm5lY3Rpb24gd2l0aCA1LXR1cGxlIGxwIDB4JTA0eCBmcCAweCUw
+NHggbGlwIDB4JTA4eCBwaXAgMHglMDh4IGZpbHRlciAweCUwOHgKAAAAAAAAAAAAAAAASVFGTElO
+VCBwZm4gJXUgdmZuICV1OiBpcWVzaXplICV1IHRvbyBzbWFsbAoAAAAASVFGTElOVCBwZm4gJXUg
+dmZuICV1OiBpcWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAAAElRRkxJTlQg
+cGZuICV1IHZmbiAldTogaXFpZCAldSBub3QgYWxsb2NhdGVkCgAAAElRRkxJTlQgcGZuICV1IHZm
+biAldTogZmwwaWQgJXUgdG9vIGxhcmdlIChtYXggJXUpCgAAAAAAAAAAAAAAAABJUUZMSU5UIHBm
+biAldSB2Zm4gJXU6IGZsMGlkICV1IG5vdCBhbGxvY2F0ZWQKAABJUUZMSU5UIHBmbiAldSB2Zm4g
+JXU6IGZsMWlkICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAAAAAAAAAAAAAAAASVFGTElOVCBwZm4g
+JXUgdmZuICV1OiBmbDFpZCAldSBub3QgYWxsb2NhdGVkCgAASVFGTElOVCBwZm4gJXUgdmZuICV1
+OiBmbDFpZCAldSBpcyB2YWxpZCBidXQgbm90IGZsMGlkICV1CgAAAAAAAElRRkxJTlQgcGZuICV1
+IHZmbiAldTogZmwxaWQgJXUgaXMgdmFsaWQgYnV0IGhlYWRlciBzcGxpdCBmZWF0dXJlIGlzIG5v
+dCBlbmFibGVkCgAAAAAAAAAAAAAAAAAAAElRIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgdG9vIGxh
+cmdlIChtYXggJXUpCgAAAElRIHBmbiAldSB2Zm4gJXU6IGlxaWQgJXUgbm90IGFsbG9jYXRlZAoA
+AAAAAAAAAElRIHBmbiAldSB2Zm4gJXU6IGZsMGlkICV1IGZsMWlkICV1IGJ1dCBub3Qgc3VwcG9y
+dGVkCgAAAAAAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBjcmVhdGluZyBFVEggZXFpZCAldSB3aXRo
+IHBlbmRpbmcgV1IocykgKG51bV9ieXRlcyAldSBhbmQgZmxhZ3MgMHglMDh4CgAAAAAAAABFUSBw
+Zm4gJXUgdmZuICV1OiBjcmVhdGluZyBDVFJMIGVxaWQgJXUgd2l0aCBwZW5kaW5nIFdSKHMpIChu
+dW1fYnl0ZXMgJXUgYW5kIGZsYWdzIDB4JTA4eAoAAAAAAABFUSBwZm4gJXUgdmZuICV1OiBlcWlk
+ICV1IHRvbyBsYXJnZSAobWF4ICV1KQoAAABFUSBwZm4gJXUgdmZuICV1OiBlcWlkICV1IG5vdCBh
+bGxvY2F0ZWQKAAAAAAAAAABod19jaW1fdHBfd29ya2Fyb3VuZDEzNzIzX2VuYWJsZTogcG9ydCAl
+dSBwcm90b2NvbCAweCV4IGVuICV1IGN1cnJlbnQgMHgleCB3b3JrYXJvdW5kX3ByMTM3MjMgMHgl
+eAoAAAAAAAAAAAAAAAAAcG9ydF9ibGlua19sZWRfcmVzdG9yZQoAAAAAAAAAAABwb3J0X2JsaW5r
+OiBibGlua2R1cj0weCV4IGJsaW5rX3JlZmNudAoAAAAAAAAAAABwb3J0X2JsaW5rOiAJYmxpbmtf
+cmVmY250PTB4JXgKAHBvcnRfYmxpbms6IAlibGlua19yZWZjbnQ9MHgleAoAbWlpX2Fkdl9zcGVl
+ZFsldV06IHJjYXBzIDB4JXgKAABtaWlfaW5pdFsldV06IGFjYXBzIDB4JXgKAAAAAAAAAG1paV9w
+ZG93blsldV06IHBvd2VyZG93biBlbiAldQoAcG9ydFsldV06IGdhdmUgdXAgZml4aW5nIGVycm9y
+cyEhIQoAAAAAAAAAAAAAAAAAcG9ydFsldToweCUwMng6MHglMDJ4XTogbDFjZmcsIHBjYXBzIDB4
+JXggYWNhcHMgMHgleCByY2FwcyAweCV4CgAAAAAAAAAAAAAAAAAAAABwb3J0WyV1OjB4JTAyeDow
+eCUwMnhdOiBsMWNmZywgaW52YWxpZCByZXF1ZXN0LCBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNh
+cHMgMHgleAoAAAAAAAAAAAAAAAAAAABwb3J0WyV1OjB4JTAyeDoweCUwMnhdOiBsMWNmZywgbWRp
+IG4vYSBwY2FwcyAweCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAAAAAAAAAHBvcnRbJXU6MHgl
+MDJ4OjB4JTAyeF06IGwxY2ZnLCBjYW5ub3QgZm9yY2UgbXVsdGlwbGUgc3BlZWRzLCBwY2FwcyAw
+eCV4IGFjYXBzIDB4JXggcmNhcHMgMHgleAoAAGNoX3JhdGVbJXVdOiBjYXBwZWQgdGljayBmcm9t
+IHJlcXVpcmVkICV1IHRvIHN1cHBvcnRlZCAldTsgcmF0ZSAldSAoZWZmICV1KSBkZWZpY2l0X2lu
+Y3IgJXUgdGljayAldQoAAAAAAAAAAAAAAABod19pMmNfdyBwb3J0ICV1IGRldiAleCByZWcgJXUg
+ZGF0YSAweCV4CgAAAAAAAABnZXRfcmVmX3Rhc2s6IHJlcXVlc3RlZCBjb29raWU6IGhpZ2ggWzB4
+JTA4eF0sIGxvdyBbMHglMDh4XQoAAAAAZ2V0X3JlZl90YXNrOiB0YXNrIGNvb2tpZTogaGlnaCBb
+MHglMDh4XSwgbG93IFsweCUwOHhdCgAAAAAAAAAAAGdldF9yZWZfdGFzazogaXN0YXNrLT5mbG93
+Y19pZCBbMHgleF0sIGlzdGFza19mYy0+Zmxvd2Nfc3RhdGUgWyV1XQoAAAAAAAAAAAAAAAAAZ2V0
+X3JlZl90YXNrOiB0YXNrIG5vdCBmb3IgY29va2llICVseAoAAAAAAAAAAAAAbmV0aWZfcHJvY2Vz
+c19kaGNwX29wdHM6IGwyZGV2X2ZjLT5mbG93Y19pZCBbMHgleF0sIE1TR19UWVBFIFslZF0sIGRo
+Y3R4dC0+c3RhdGUgWyVkXQoAAAAAAAAAAAAAaWNtcF9yZWN2OiBsMmRldl9mYy0+Zmxvd2NfaWQg
+WzB4JXhdLCBwaWQgWzB4JXhdLCBpY21wIHR5cGUgWzB4JXhdCgAAAAAAAAAAAAAAAABBQlRTIEFD
+QyBhd2FpdGluZyBQUkxJIFJzcDogZmxvd2NfaWQgMHgleCBveF9pZCAweCV4IHJ4X2lkIDB4JXgg
+aXFpZCAweCV4CgAAAAAAAGNobmV0X2FycF9yZWN2OiBwaWQgWyV1XSwgcGt0LT5haGRyLnNpcCBb
+MHgleF0sIHBrdC0+YWhkci5yaXAgWzB4JXhdLCBwa3QtPmFoZHIub3Bjb2QgWzB4JXhdCgAAAGNo
+bmV0X2FycF9yZWN2OiB2bGFuIGV4dHJhY3RlZCwgdmxhbmlkIFsldV0sIGwyZGV2X2ZjLT5mbG93
+Y19uZXRfbDJkZXZfdmxhbmRldiBbMHgleF0sIGwyZGV2X2ZjIFsweCV4XQoAAAAAAAAAAABjaG5l
+dF9hcnBfcmVjdjogaXAgY29uZmxpY3QgZGV0ZWN0ZWQKAAAAAAAAAAAAAABjaG5ldF9hcnBfcmVj
+djogdmxhbmlkIFslMHhdLCBwaWQgWyV1XQoAAAAAAAAAAABjaG5ldF9hcnBfcmVjdjogbDJkZXZf
+ZmMgWyV4XSwgcGt0LT5haGRyLnJpcCBbMHgleF0sIHBrdC0+YWhkci5zaXAgWzB4JXhdCgAAAAAA
+AGNzb2NrX3BlZXJfY2xvc2U6IGNza19mYy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPnRjYl9m
+Yy0+Zmxvd2NfaWQgWzB4JXhdLCBjc2tfZmMtPmZsb3djX3N0YXRlIFsweCV4XSwgY3NrX2ZjLT5m
+bG93Y19jc29ja190Y2JfZmMtPmZsb3djX3N0YXRlIFsweCV4XQoAAAAAAAAAAABjc29ja19wZWVy
+X2Nsb3NlOiBjc2tfZmMtPmZsb3djX2lkIFsweCV4XSwgY3NrX2ZjLT5mbG93Y19zdGF0ZSAgWzB4
+JXhdCgAAAAAAAAAAAHRjYl9mYy0+Zmxvd2NfaWQgWzB4JTA2eF0sIHRjYl9mYy0+Zmxvd2NfdHlw
+ZSBbMHgleF0sIGNwbG9wIFsweCV4XSAKAAAAAAAAAAAAAAAAcGt0c2NoZWRfY2hfcmxbJXVdOiBj
+aGFubmVsIHJsIG5vdCBhdmFpbGFibGUgaW4gY29uanVuY3Rpb24gd2l0aCBmbG93IHNoYXBpbmcK
+AABwa3RzY2hlZF9jaF9ybFsldV06IHJhdGUgJXUgbWF4ICV1CgAAAAAAAAAAAAAAAABwa3RzY2hl
+ZF9jbF93cnJbJXU6JXVdOiB3ZWlnaHQgJXUgd2VpZ2h0ZWRfbWFzayAweCV4CgAAAAAAAAAAAAAA
+ZXFfcGFyYW1zWzB4JXg6MHgleF06IGRtYXEgMHgleCByZWFkICV1IHBmICV1IGVxaWRfYXBpICV1
+IHJldCAlZAoAAAAAAAAAAAAAAAAAAABod19iY204NDM0X2NoZWNrcmFtOiBTdGFydAoAAAAAAFBI
+WVsldV0gcHJvY2Vzc29yIG5vdCBydW5uaW5nCgAAUEhZWyV1XSBGVyBoYXMgYmFkIENSQwoAAAAA
+AAAAAABQSFkgZmlybXdhcmUgbG9hZCBzdWNjZXNzZnVsIQoAAAlBUV9UYWtlQ29udHJvbE9mRkxB
+U0g6IDFlLmMwMDE9JSN4IDFlLmM0NTA9JSN4IDFlLmM0NTE9JSN4IDFlLjEwMD0lI3gKAAAAAAAA
+AAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIEltYWdlIGludGVncml0eSBjaGVj
+ayBmYWlsZWQgKGNhbGMgJSN4IHZhbCAlI3gpCgAAAAAAAAAAAAAAAAAAQVFfQVBJX1dyaXRlQW5k
+VmVyaWZ5Rmxhc2hJbWFnZSAtIEltYWdlIGludGVncml0eSBjaGVjayBwYXNzZWQKAEFRX0FQSV9X
+cml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVy
+ZmFjZSAoJXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQg
+d2FpdGluZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJp
+ZnlGbGFzaEltYWdlIC0gVGltZW91dCB3YWl0aW5nIGZvciBmbGFzaCBpbnRlcmZhY2UgKCV1KQoA
+AAAAAEFRX0FQSV9Xcml0ZUFuZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9y
+IGZsYXNoIGludGVyZmFjZSAoJXUpIChwcCAlI3ggYXAgJSN4KQoAAAAAAEFRX0FQSV9Xcml0ZUFu
+ZFZlcmlmeUZsYXNoSW1hZ2UgLSBUaW1lb3V0IHdhaXRpbmcgZm9yIGZsYXNoIGludGVyZmFjZSAo
+JXUpCgAAAAAAQVFfQVBJX1dyaXRlQW5kVmVyaWZ5Rmxhc2hJbWFnZSAtIFRpbWVvdXQgd2FpdGlu
+ZyBmb3IgZmxhc2ggaW50ZXJmYWNlICgldSkKAAAAAABBUV9BUElfV3JpdGVBbmRWZXJpZnlGbGFz
+aEltYWdlIC0gRXJyb3Igb24gYnVybmluZyBGTEFTSCAoY3JjMTYgbWlzbWF0Y2gpCgAAAAAAAG1h
+bGxvY19kZWNbJXVdOiBzdGFydCAlcCBlbmQgJXAgbmV4dCAlcCBzaXplIDB4JXggYWxpZ21lbnQg
+MHgleCBwICVwCgAAAAAAAAAAAAAAbWFsbG9jX2luY1sldV06IHN0YXJ0ICVwIGVuZCAlcCBuZXh0
+ICVwIHNpemUgMHgleCBhbGlnbWVudCAweCV4IHAgJXAKAAAAAAAAAAAAAABsZSBjb25maWd1cmF0
+aW9uOiBoYXNoIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3QgMTYgZW50cmllcywgbmhhc2ggJXUKAAAA
+AAAAAAAAAAAAAGxlIGNvbmZpZ3VyYXRpb246IGhhc2ggbW9kZSByZXF1aXJlcyBhdCBlbnRyaWVz
+IHRvIGJlIGEgcG93ZXIgb2YgMiwgbmhhc2ggJXUKAAAAbGUgY29uZmlndXJhdGlvbjogcmVxdWVz
+dGVkICV1IHRjYW0gZW50cmllcyBidXQgb25seSAldSBhdmFpbGFibGUKAAAAAAAAAAAAAAAAAABs
+ZSBjb25maWd1cmF0aW9uOiB0Y2FtIHJlZ2lvbnMgbXVzdCBoYXZlIG11bHRpcGxlIG9mIDMyIGVu
+dHJpZXMsIG5yb3V0ZSAldSBuY2xpcCAldSBuZmlsdGVyICV1IG5zZXJ2ZXIgJXUKAAAAAAAAb2Zs
+ZCB0cCB0aW1lciBzZXR0aW5ncyBUUF9NU0wgMHglMDh4IFRQX1JYVF9NSU4gMHglMDh4IFRQX1JY
+VF9NQVggMHglMDh4IFRQX1BFUlNfTUlOIDB4JTA4eCBUUF9QRVJTX01BWCAweCUwOHgKACAgICAg
+ICAgICAgICAgICAgICAgICAgVFBfS0VFUF9JRExFIDB4JTA4eCBUUF9LRUVQX0lOVFZMIDB4JTA4
+eCBUUF9JTklUX1NSVFQuaW5pdF9zcnR0X21heHJ0dCAweCUwNHggVFBfSU5JVF9TUlRULmluaXRf
+c3J0dF9pbml0c3J0dCAweCUwNHggVFBfRklOV0FJVDJfVElNRVIgMHglMDh4CgAAAAAAAAAAAAAA
+Y29uZmlndXJhdGlvbiBmaWxlIHBhcnNlciBlbmNvdW50ZXJlZCBlcnJvciBAIGxpbmUgJXU6CgAA
+AAAAAAAAAEhPU1QgUEFHRV9TSVpFIFsweCUwbHhdIHRvbyBzbWFsbCwgbWluIFsweCUwbHhdIHJl
+cXVpcmVkCgAAAAAAAABwYWdlIHNpemUgWyVsdV0gbWlzbWF0Y2gKAAAAAAAAAFBBR0Ugc2l6ZSAl
+bHUgdW5zdXBwb3J0ZWQsIGRkcCBkaXNhYmxlZAoAAAAAAAAAAEhvc3QgcGFnZV9zaXplICVsdSwg
+ZGRwX2lkeCAldQoARkNvRSBERFAgaW5pdDogZmNvZSBsbGltaXQgMHgleCwgZmNvZSB1bGltaXQg
+MHgleCBnYmwgbGxpbWl0IDB4JXggZ2JsIHVsaW1pdCAweCV4CgAAAAAAAAAAAAAAAAAARkNvRSBE
+RFAgaW5pdDogZmNvZSBwcG9kIG9mZiAweCV4LCBmY29lIHN0IHBwb2QgYWRkciAweCV4IGZjb2Ug
+bnVtIHBwb2RzIDB4JXgKAABmY29lIHhjaGcgbWdyIGluaXQ6IE51bWJlciBvZiBleGNoYW5nZXMg
+Zm9yIEZDb0UgaXMgJXgKAAAAAAAAAAAAQ2FsY3VsYXRpb24gb3V0IG9mIGJvdW5kcyBmdXJpbmcg
+aW5pdDogJSN4ICUjeCAlI3gKAAAAAAAAAAAAAAAAAHBmbiAldSB2Zm4gJXUgaGFzIHBuZHR4bnMg
+JXUgYWZ0ZXIgMTAwbXMKAAAAAAAAAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7
+IG9wY29kZSAweCV4ID4gTEFTVEMyRSAweCV4CgBtYWlsYm94IGNtZCBub3QgeWV0IHN1cHBvcnRl
+ZDogcGZuIDB4JXggdmZuIDB4JXg7IG9wY29kZSAweCV4CgAAYmFkIG1haWxib3ggY21kOiBwZm4g
+MHgleCB2Zm4gMHgleDsgb3Bjb2RlIDB4JXggaXMgdmFsaWQgcG9zdCBkZXZpY2UgaW5pdCBvbmx5
+CgBiYWQgbWFpbGJveCBjbWQ6IHBmbiAweCV4IHZmbiAweCV4OyBvcGNvZGUgMHglMDJ4IHJhbWFz
+ayAweCV4IGNtZCByYW1hc2sgMHgleAoAAGJhZCBtYWlsYm94IGNtZDogcGZuIDB4JXggdmZuIDB4
+JXg7IG9wY29kZSAweCUwMnggbGVuMTYgMHgleCB2ZXJzdXMgZXhwZWN0ZWQgbGVuMTYgMHgleAoA
+AAAAAAAAAGluc3VmZmljaWVudCBjYXBzIHRvIHByb2Nlc3MgbWFpbGJveCBjbWQ6IHBmbiAweCV4
+IHZmbiAweCV4OyByX2NhcHMgMHgleCB3eF9jYXBzIDB4JXggcmVxdWlyZWQgcl9jYXBzIDB4JXgg
+d19jYXBzIDB4JXgKAAAAAAAAAAAAaW5zdWZmaWNpZW50IGNhcHMgdG8gcHJvY2VzcyBtYWlsYm94
+IGNtZDogcGZuIDB4JXggdmZuIDB4JXg7IHJfY2FwcyAweCV4IHd4X2NhcHMgMHgleCByZXF1aXJl
+ZCByX2NhcHMgMHgleCB3X2NhcHMgMHgleAoAAAAAAAAAAABWUEQgcmVnaW9uIGlzIHRvbyBzbWFs
+bCAoU0VSQ0ZHX1NSX1BGTlZQRFNJWkUgMHgleCkKAAAAAAAAAAAAAAAAY2Y6IGZhaWxlZCB0byBh
+bGxvY2F0ZWQgbWVtb3J5IGZvciBjb25maWd1cmF0aW9uIGZpbGUsIHJldCAlZAoAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIAAAEgAAAAAAAAAIIAAAEAAAAAAAAAAIAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaAgAAAAAAAAAAAAAAAAIAAAAAAAAAAAAKAAAAA
+AAAAAAAAAgADAAAAAAFgCAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAACAAAAAAAAAAAAIAAA
+AAAAAAAAAAAAAQADgAAAAAAAAAAAAAACAAAAAAAAAAAAIAOAAAAAAAAAAAAAEAKAAIAAAAAAAAAA
+AAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAACAAAAAAAAAAAAAAACgAAAAAAA
+AAAAAQADAAAAAAAAAAAAAAKDAAAAAAAAAAAAEAKAAAAAAAAAAAAAMAADAAAAAAAACAAAMAADAAAA
+AAAAAAAAMAWDAAAAAAAACAAAMAWDAAAAAAAAAAAAMASDAAAAAAAACAAAMASDAAAAAAAAAAAAMAMD
+AAAAAAAACAAAMAMDAAAAAAAAAAAAOAMDAAAAAAAAAAAAOAWDAAAAAAAAAAAAOASDAAAAAAAAAAAA
+OAADAAAAAAAAAAAANAaCAAAAAAAAAAAAPAOCAAAAAAAAAAAAPAADAAAAAAAACAAAPAADAAAAAAAA
+AAAAPASDAAAAAAAAAAAAPAUDAAAAAAAAAAAAPQQDAAAAAAAAAAAAPAODAAAAAAAAAAAALAACAAAA
+AAAAAAAALAWCAAAAAAAAAAAALAUCAAAAAAAAAAAAEAaAAAAAAAAAAAAAEAaCwAAAAAAAAAAAEAaC
+gAAAAAAAAAAAAA6CAAAAAAAAAAAAEAeCgAAAACAAAAAAAAeCAAAAACAAAAAAEAcCgAAAAAAAAAAA
+EAcCgAAAAAAAAAAAEAcCgAAAAAAAAAAAAAcCAAAAACAAAAAAEBeDAAAAAAAACAAAEBeDAAAAAAAA
+CAAAEAAAAAAAAAAAAAAAEAYDgAAAAAAAAAAAAA4DAAAAAAAAAAAAEAYDQAAAAAAAAAAAEAYDAAAA
+AAAAAAAAEAYAAAAAAAAAAAAAAAYDgAAAAAAAAAAAAAYDAAAAAAAAAAAAAA4CAAAAAAAAAAAAAA4C
+AAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCAAAAAAAAAAAAEAYCgAAAAAAAAAAAEAYCgAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAA
+AAAA////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////AAAAIAAAAADAAAAAAAAAIAAAAADgAAAAAAAAAAIAAAAAAAAA
+QAAAAAAAAAAAAAAAAAABIQAAAAAAAAAAAAEBIAAAAAAAAAAAAAACAAAABAAEAAAAAAUAAAAEAAAA
+AAAAAAAAoAAAAACAAAAAAIAAQAAAAAAAAgAAAIAAIAAAAAAAAgAAAQBAAAAAAAAAAAAAAQBCAAAA
+AAAAAAAAAAAgAAAAAAAAAAAAAhAgAAAAAAAAAAAAAgwCAAAAAAAAAAAAAIUCAAAABAAAAAAAAIBC
+AAAAAAAAAAAAAgAiAAAAAAAAAAAAAIBBAAAAAAAAAAAAAIBBgAAAAAAAAAAAAgAhAAAAAAAAAAAA
+ABAggAAAAAAAAAAAAiUAgAAAAAAAAAAAAAUAAAAAAAAAAAAACIgEgAAAAAAAAAAACIgEgAAAAAAA
+AAAACKIAgAAAAAAAAAAACKIAgAAAAAAAAAAACKMAgAAAAAAAAAAACKMAgAAAAAAAAAAACKSAgAAA
+AAAAAAAACKSAgAAAAAAAAAAABKSAwAAAAAAAAAAABKIAwAAAAAAAAAAABKMAwAAAAAAAAAAABIgE
+wAAAAAAAAAAAAAkBgAAAAAAAAAAAAgwAgAAAAAAAAAAAAIgEwAAAAAAAAAAAAIgEgAAAAAAAAAAA
+AgsAgAAAAAAAAAAAAIqAgAAAAAAAAAAAAAuAgAAAAAAAAAAAAIwAgAAAAAAAAAAAAiAQgAAAAAAA
+AAAAAgoAgAAAAAAAAAAAAgqAgAAAAAAAAAAAAAkCgAAAAAAAAAAAAAEBAAAAAAAAAAAAAAEBQAAA
+AAAAAAAAAAEAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAACBEAAAAAAAAAAAAACB
+CAAAAAAAAAAAAACBBAAAAAAAAAAAAACBgAAAAAAAAAAAAIAAwAAAAAAAAAAAAIAAoAAAAAAAAAAA
+AAAIAAAAAAAAAAAAAIGAAAAAAAAAAAAAAIGAgAAAAAAAAAAAAImAgAAAAAAAAAAAAImAwAAAAAAA
+AAAAAAGCAAAAAAAAAAAAAgGAAAAAAAAAAAAAAgGAgAAAAAAAAAAAAEGBgAAAAAAAAAAAAgGBgAAA
+AAAAAAAAAEmBgAAAAAAAAAAAAgmBgAAAAAAAAAAAAgGBAAAAAAAAAAAAAEGBAAAAAAAAAAAAIAAA
+AAAAAAAAAAAAEAAAAgAAAAAAAAAAEAAAAAAAAAAAAAAAAIAAwAAAAAAAAAAAAAAAAAAAAAAAAAAA
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////////////////////////////////////////////////////////
+////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAJIAAAAAAAAAA2YAIABA
+AAAAAAgAkgAAAAAAAAADcgElBEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCIA4cAAFYA
+IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAAAAAAAAAAAAAA
+A5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAAAAAA
+AAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAAAAAA
+AAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAACAAAAAIAiAOFAACWASAAQAAAAAAA
+AAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAACEcgAQQAAAKyAALSBSAkQAAA
+AAAAAAAAAAAAAAAAA5YAIABAAAAAAABHIAEGDKGCsEABkgQgJEAAAAAAAEcgAQQMoEKzgAISBSAk
+QAAAAAAIAAAAAgCIA4UAAJYBIABAAAAAAAgAAAACAIgDhQAAlgEgAEAAAAAACAAAAAIAiAOFAACW
+ASAAQAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAA3FEroCsIDTFFSL4kpGJEAAAAAABcUSugK3gNMU
+VItiSaYkQAAAAAAFxRKiBrCA0xRUi+JKRiRAAAAAAA3FEqIGt4DTFFSLYkmmJEAAAAAABcUSogaw
+gNMUVIviSkYkQAAAAAANxRKiBreA0xRUi2JJpiRAAAAAAAXFEqIGsIDTFFSL4kpGJEAAAAAADcUS
+oga3gNMUVItiSaYkQAAAAAAJxBCgAgCAkAAAi2JpxiRAAAAAAAHEEKAGsICTBlSLYmnGJEAAAAAA
+AcQQoAawgJMGVItiacYkQAAAAAABxRC4BrCAkxZUi2JIxiRAAAAAAAihEIgCAIFYEgALUgCmJEAA
+AAAACcAQkAKwgAMWVIqSAcYkQAAAAAAJwBC4BrCAAxCUi+ICRiRAAAAAAAnAELgCtIADEJSLYgGm
+JEAAAAAACcAQuAK0gAMQlItiAaYkQAAAAAAJwBC4ArSAAxCUi2IBpiRAAAAAAAnAELgCtIADEJSL
+YgGmJEAAAAAAAaAQkAa0gAMQlItiAaYkQAAAAAABwBCAArCAAxRUilIAxiRAAAAAAAHAEIACsIAD
+FFSKUgDGJEAAAAAAAcAQgAKwgAMUVIpSAMYkQAAAAAAIRyABBAAAArIAAtIFICRAAAAAAACBAAAC
+AIVYB0ALUgCmJEAAAAAAAIEAAAIAhVgHQAtSAKYkQAAAAAAAAAAABACgQAGAAdYAIABAAAAAAAAA
+AAAGAKGAAEABVgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAIgQAAAgCFWYAEC1IApiRAAAAA
+AAlhQAAAAAAYAAADQgEmpEAAAAAACEAAAAAAAAAAAANSASYkQAAAAAAAAAAABACgQAGAAdYAIABA
+AAAAAAgAAAACAIgDhwAD1gAmBEAAAAAACAAAAAIAiAOHAAPWACYEQAAAAAAAAAAAAAAAAAAAA5YA
+IABAAAAAAAAAAAAAAAAAAAADlgAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAJwBC4ArSAAxCU
+i2IBpiRAAAAAAAAAAAAAAAAAAgADlgAmBEAAAAAAAAAAAAAAAAAAAAOWACAAQAAAAAAIAAAAAgCI
+A4UAAJYBIABAAAAAAAAAAAAEAKBAAYAB1gAgAEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAAAAAA
+BACgQAGAAdYAIABAAAAAAAihEIgCAIFYEAAJEgGmJEAAAAAAAAAAAAQAoEABgAHWACAAQAAAAAAA
+AAAABgChgABAAVYAIABAAAAAAAgAAAACAIgDhUAI0gJGJEAAAAAACcUSogKUiNIQgIsiSKYkQAAA
+AAAJwBCAAqSIAIdUi1IBpiRAAAAAAAnAEIAGtIgDARSLUgGmJEAAAAAADcAAAAKwgMMWVIviA0Yk
+QAAAAAAAAAAAAAAAAAAAA5YAIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAwAAQAAAACAAACACYkQAAAAAAA
+RzAABgMgArcACAIBwCRAAAAAAAgDAAACBqAKtQAIAgDGJEAAAAAAAAAAAAAAAAACAAACACYkQAAA
+AAAAIFAABAAAAAIAAAIAJiRAAAAAAAhgIACEAAAAAAAABgAgAEAAAAAACGAgAIQAAAACATACACYl
+QAAAAAAIYAAABACEAYAEBAIBxiTAAAAAAAHAAAACQ4ADAgyIAgGmJEAAAAAACABgAAQAAAACAAAC
+ACYkQAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAAAAAABAEgAEAAAAAABAgUgAYKAAAH
+AUwCIKYmQAAAAAAIgAAABgCEAYAECAIBpiZAAAAAAABAAAACAKAAAkAIAgGmJEAAAAAAAAAAAAAA
+AAACAAACACYkQAAAAAAEAAAAAoQAAwKKCAIEpiRAAAAAAAAAAAAAAAAAAgAABgEgSEAAAAAAACBQ
+AAQAAAACAAACACYkQAAAAAAIYCAAhAAAAAIAAAYAJgRAAAAAAAhgIACEAAAAAgAAAgEmJUAAAAAA
+CGAAAAQAhAGABAQCAcYkwAAAAAAIAGAABAAAAAAAAAQBIABAAAAAAAAAAAAAAAAAAAAAAgAmTHAA
+AAAAAAAAAAAAAAAAAAAGASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAItJAE
+CRYEAgTGJEAAAAAAAcAAAAi0kAQJFgQCBMYkQAAAAAAECHSATAkAAFAAXAJh5iRAAAAAAAwIdIBE
+AAAAUgBAAmEmJEAAAAAACAIQoAQAAAAAAQACACYkQAAAAAAIAhCgBAAAAAABAAIAJiRAAAAAAAQI
+dABCAQAABwCIAmDGJEAAAAAADcgUAAIJAAAEQJwCYOYkQAAAAAAJyBCABrSQBAKUiAJlxiRAAAAA
+AA3IdABItJADAJSIAmCmJMAAAAAADch0AEi0kAMAlIgCYKYkwAAAAAAIRwAABAAAAAAAAAIBICRA
+AAAAAAhHAAAEAAAAAgAAAgUgJEAAAAAAAEcgAQwHIcK3AAgCAcAkQAAAAAAARyABDAchwrcACAIB
+wCRAAAAAAABHIAEMByHCtwAIAgHAJEAAAAAAAAAgAQgAhAAFQIgCAcYkwAAAAAAAACABCACEAAVA
+iAIBxiTAAAAAAAAAIAEIAIQABUCIAgHGJMAAAAAAAAAgAYaCAAECwIgCA8YkwAAAAAAAACABgoIA
+AALAiAIDxiTAAAAAAAnAIAGCpIABBUCIAgHGJMAAAAAACAAAAAwAhAAFQIgCAcYkwAAAAAAAACAB
+hoIAAQLAiAIDxiTAAAAAAAAAIAGCggAAAMCIAgKmJMAAAAAACcAgAYKkgAEFQIgCAcYkwAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAQkBAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAW2dsb2JhbF0KcnNzX2dsYl9jb25maWdfbW9kZT1iYXNpY3ZpcnR1YWwKcnNzX2ds
+Yl9jb25maWdfb3B0aW9ucz10bmxtYXBlbixoYXNodG9lcGxpdHosdG5sYWxsbGtwCnJlZ1sweDEw
+MDhdPTB4NDA4MTAvMHgyMWM3MApyZWdbMHgxMDBjXT0weDIyMjIyMjIyCnJlZ1sweDEwYTBdPTB4
+MDEwNDA4MTAKcmVnWzB4MTA0NF09NDA5NgpyZWdbMHgxMDQ4XT02NTUzNgpyZWdbMHgxMDRjXT0x
+NTM2CnJlZ1sweDEwNTBdPTkwMjQKcmVnWzB4MTA1NF09OTIxNgpyZWdbMHgxMDU4XT0yMDQ4CnJl
+Z1sweDEwNWNdPTEyOApyZWdbMHgxMDYwXT04MTkyCnJlZ1sweDEwNjRdPTE2Mzg0CnJlZ1sweDEw
+YTRdPTB4YTAwMGEwMDAvMHhmMDAwZjAwMApyZWdbMHgxMGE4XT0weDIwMDAvMHgyMDAwCnNnZV90
+aW1lcl92YWx1ZT01LDEwLDIwLDUwLDEwMCwyMDAKcmVnWzB4N2RjMF09MHg2MmY4ODQ5CmZpbHRl
+ck1vZGU9ZnJhZ21lbnRhdGlvbixtcHNoaXR0eXBlLHByb3RvY29sLHZsYW4scG9ydCxmY29lCnRw
+X3Btcng9MzAKdHBfcG1yeF9wYWdlc2l6ZT02NEsKdHBfcG10eD01MAp0cF9wbXR4X3BhZ2VzaXpl
+PTY0SwpbZnVuY3Rpb24iMCJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5p
+cWZsaW50PTgKbmV0aGN0cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDEK
+W2Z1bmN0aW9uIjEiXQpudmY9MTYKd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MQpuaXFmbGlu
+dD04Cm5ldGhjdHJsPTgKbmVxPTE2Cm5leGFjdGY9OApjbWFzaz1hbGwKcG1hc2s9MHgyCltmdW5j
+dGlvbiIyIl0KbnZmPTE2Cnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTEKbmlxZmxpbnQ9OApu
+ZXRoY3RybD04Cm5lcT0xNgpuZXhhY3RmPTgKY21hc2s9YWxsCnBtYXNrPTB4NApbZnVuY3Rpb24i
+MyJdCm52Zj0xNgp3eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0xCm5pcWZsaW50PTgKbmV0aGN0
+cmw9OApuZXE9MTYKbmV4YWN0Zj04CmNtYXNrPWFsbApwbWFzaz0weDgKW2Z1bmN0aW9uIjQiXQp3
+eF9jYXBzPWFsbApyX2NhcHM9YWxsCm52aT0yOApuaXFmbGludD0xNzAKbmV0aGN0cmw9MTAwCm5l
+cT0yNTYKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5ldGhvZmxkPTEwMjQKbnJvdXRl
+PTMyCm5jbGlwPTMyCm5maWx0ZXI9NDk2Cm5zZXJ2ZXI9NDk2Cm5oYXNoPTEyMjg4CnByb3RvY29s
+PW5pY192bSxvZmxkLHJkZHAscmRtYWMsaXNjc2lfaW5pdGlhdG9yX3BkdSxpc2NzaV90YXJnZXRf
+cGR1CnRwX2wydD0zMDcyCnRwX2RkcD0yCnRwX2RkcF9pc2NzaT0yCnRwX3N0YWc9Mgp0cF9wYmw9
+NQp0cF9ycT03CltmdW5jdGlvbiI1Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFm
+bGludD0zNApuZXRoY3RybD0zMgpuZXE9NjQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz1hbGwK
+bnNlcnZlcj0xNgpuaGFzaD0yMDQ4CnRwX2wydD0xMDI0CnByb3RvY29sPWlzY3NpX2luaXRpYXRv
+cl9mb2ZsZAp0cF9kZHBfaXNjc2k9Mgppc2NzaV9udGFzaz0yMDQ4CmlzY3NpX25zZXNzPTIwNDgK
+aXNjc2lfbmNvbm5fcGVyX3Nlc3Npb249MQppc2NzaV9uaW5pdGlhdG9yX2luc3RhbmNlPTY0Cltm
+dW5jdGlvbiI2Il0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9NApuaXFmbGludD0zNApuZXRo
+Y3RybD0zMgpuZXE9NjYKbmV4YWN0Zj0zMgpjbWFzaz1hbGwKcG1hc2s9YWxsCm5oYXNoPTIwNDgK
+cHJvdG9jb2w9ZmNvZV9pbml0aWF0b3IKdHBfZGRwPTIKZmNvZV9uZmNmPTE2CmZjb2VfbnZucD0z
+MgpmY29lX25zc249MTAyNApbZnVuY3Rpb24iMTAyMyJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwK
+bnZpPTQKY21hc2s9YWxsCnBtYXNrPWFsbApuZXhhY3RmPTgKbmZpbHRlcj0xNgpbZnVuY3Rpb24i
+MC8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9
+MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MQpbZnVuY3Rpb24iMS8qIl0Kd3hf
+Y2Fwcz0weDgyCnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApu
+ZXhhY3RmPTQKY21hc2s9YWxsCnBtYXNrPTB4MgpbZnVuY3Rpb24iMi8qIl0Kd3hfY2Fwcz0weDgy
+CnJfY2Fwcz0weDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQK
+Y21hc2s9YWxsCnBtYXNrPTB4NApbZnVuY3Rpb24iMy8qIl0Kd3hfY2Fwcz0weDgyCnJfY2Fwcz0w
+eDg2Cm52aT0xCm5pcWZsaW50PTQKbmV0aGN0cmw9MgpuZXE9NApuZXhhY3RmPTQKY21hc2s9YWxs
+CnBtYXNrPTB4OApbcG9ydCIwIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpo
+d209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIxIl0KZGNiPXBwcCxkY2J4CmJnX21lbT0yNQpscGJr
+X21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIyIl0KZGNiPXBwcCxkY2J4CmJnX21l
+bT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbcG9ydCIzIl0KZGNiPXBwcCxk
+Y2J4CmJnX21lbT0yNQpscGJrX21lbT0yNQpod209MzAKbHdtPTE1CmR3bT0zMApbZmluaV0KdmVy
+c2lvbj0weDE0MjUwMDBjCmNoZWNrc3VtPTB4NzY4ZWY3YTUKAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AABbZ2xvYmFsXQpyc3NfZ2xiX2NvbmZpZ19tb2RlPWJhc2ljdmlydHVhbApyc3NfZ2xiX2NvbmZp
+Z19vcHRpb25zPXRubG1hcGVuLGhhc2h0b2VwbGl0eix0bmxhbGxsa3AKcmVnWzB4MTAwOF09MHg0
+MDgxMC8weDIxYzcwCnJlZ1sweDEwMGNdPTB4MjIyMjIyMjIKcmVnWzB4MTBhMF09MHgwMTA0MDgx
+MApyZWdbMHgxMDQ0XT00MDk2CnJlZ1sweDEwNDhdPTY1NTM2CnJlZ1sweDEwNGNdPTE1MzYKcmVn
+WzB4MTA1MF09OTAyNApyZWdbMHgxMDU0XT05MjE2CnJlZ1sweDEwNThdPTIwNDgKcmVnWzB4MTA1
+Y109MTI4CnJlZ1sweDEwNjBdPTgxOTIKcmVnWzB4MTA2NF09MTYzODQKcmVnWzB4MTBhNF09MHhh
+MDAwYTAwMC8weGYwMDBmMDAwCnJlZ1sweDEwYThdPTB4MjAwMC8weDIwMDAKc2dlX3RpbWVyX3Zh
+bHVlPTUsMTAsMjAsNTAsMTAwLDIwMApyZWdbMHg3ZGMwXT0weDYyZjg4NDkKZmlsdGVyTW9kZT1m
+cmFnbWVudGF0aW9uLG1wc2hpdHR5cGUscHJvdG9jb2wsdmxhbixwb3J0LGZjb2UKdHBfcG1yeD0z
+MAp0cF9wbXJ4X3BhZ2VzaXplPTY0Swp0cF9wbXR4PTUwCnRwX3BtdHhfcGFnZXNpemU9NjRLCltm
+dW5jdGlvbiIwIl0Kd3hfY2Fwcz1hbGwKcl9jYXBzPWFsbApudmk9MjgKbmlxZmxpbnQ9MTcwCm5l
+dGhjdHJsPTk2Cm5lcT0yNTIKbmV4YWN0Zj00MApjbWFzaz1hbGwKcG1hc2s9YWxsCm5yb3V0ZT0z
+MgpuY2xpcD0zMgpuZmlsdGVyPTQ4Cm5zZXJ2ZXI9MzIKbmhhc2g9MApwcm90b2NvbD1uaWNfdm0s
+b2ZsZCxyZGRwLHJkbWFjLGlzY3NpX2luaXRpYXRvcl9wZHUsaXNjc2lfdGFyZ2V0X3BkdQp0cF9s
+MnQ9MzA3Mgp0cF9kZHA9Mgp0cF9kZHBfaXNjc2k9Mgp0cF9zdGFnPTIKdHBfcGJsPTUKdHBfcnE9
+NwpbZnVuY3Rpb24iMSJdCnd4X2NhcHM9YWxsCnJfY2Fwcz1hbGwKbnZpPTQKbmlxZmxpbnQ9MzQK
+bmV0aGN0cmw9MzIKbmVxPTY2Cm5leGFjdGY9MzIKY21hc2s9YWxsCnBtYXNrPWFsbApuaGFzaD0w
+CnByb3RvY29sPWZjb2VfaW5pdGlhdG9yCnRwX2RkcD0yCmZjb2VfbmZjZj0xNgpmY29lX252bnA9
+MzIKZmNvZV9uc3NuPTEwMjQKW2Z1bmN0aW9uIjEwMjMiXQp3eF9jYXBzPWFsbApyX2NhcHM9YWxs
+Cm52aT00CmNtYXNrPWFsbApwbWFzaz1hbGwKbmV4YWN0Zj04Cm5maWx0ZXI9MTYKW2Z1bmN0aW9u
+IjAvKiJdCnd4X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJs
+PTIKbmVxPTQKbmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDEKW2Z1bmN0aW9uIjEvKiJdCnd4
+X2NhcHM9MHg4MgpyX2NhcHM9MHg4Ngpudmk9MQpuaXFmbGludD00Cm5ldGhjdHJsPTIKbmVxPTQK
+bmV4YWN0Zj00CmNtYXNrPWFsbApwbWFzaz0weDIKW3BvcnQiMCJdCmRjYj1wcHAsZGNieApiZ19t
+ZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKW3BvcnQiMSJdCmRjYj1wcHAs
+ZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAKW3BvcnQiMiJd
+CmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0xNQpkd209MzAK
+W3BvcnQiMyJdCmRjYj1wcHAsZGNieApiZ19tZW09MjUKbHBia19tZW09MjUKaHdtPTMwCmx3bT0x
+NQpkd209MzAKW2ZpbmldCnZlcnNpb249MHgxNDI1MDAwYwpjaGVja3N1bT0weDRjNTY2NjM5CgAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+====
diff --git a/sys/dev/cxgbe/firmware/t4fw_interface.h b/sys/dev/cxgbe/firmware/t4fw_interface.h
index 804d09f..4b1fbff 100644
--- a/sys/dev/cxgbe/firmware/t4fw_interface.h
+++ b/sys/dev/cxgbe/firmware/t4fw_interface.h
@@ -45,9 +45,11 @@ enum fw_retval {
FW_EFAULT = 14, /* bad address; fw bad */
FW_EBUSY = 16, /* resource busy */
FW_EEXIST = 17, /* file exists */
+ FW_ENODEV = 19, /* no such device */
FW_EINVAL = 22, /* invalid argument */
FW_ENOSPC = 28, /* no space left on device */
FW_ENOSYS = 38, /* functionality not implemented */
+ FW_ENODATA = 61, /* no data available */
FW_EPROTO = 71, /* protocol error */
FW_EADDRINUSE = 98, /* address already in use */
FW_EADDRNOTAVAIL = 99, /* cannot assigned requested address */
@@ -114,6 +116,8 @@ enum fw_wr_opcodes {
FW_SCSI_TGT_ACC_WR = 0x35,
FW_SCSI_TGT_XMIT_WR = 0x36,
FW_SCSI_TGT_RSP_WR = 0x37,
+ FW_POFCOE_TCB_WR = 0x42,
+ FW_POFCOE_ULPTX_WR = 0x43,
FW_LASTC2E_WR = 0x70
};
@@ -556,12 +560,15 @@ struct fw_eth_tx_uo_wr {
__be32 op_immdlen;
__be32 equiq_to_len16;
__be64 r3;
- __be16 ethlen;
+ __u8 r4;
+ __u8 ethlen;
__be16 iplen;
- __be16 udplen;
+ __u8 udplen;
+ __u8 rtplen;
+ __be16 r5;
__be16 mss;
+ __be16 schedpktsize;
__be32 length;
- __be32 r4;
};
struct fw_eq_flush_wr {
@@ -708,19 +715,19 @@ enum fw_flowc_mnem_uostate {
};
enum fw_flowc_mnem {
- FW_FLOWC_MNEM_PFNVFN, /* PFN [15:8] VFN [7:0] */
- FW_FLOWC_MNEM_CH,
- FW_FLOWC_MNEM_PORT,
- FW_FLOWC_MNEM_IQID,
- FW_FLOWC_MNEM_SNDNXT,
- FW_FLOWC_MNEM_RCVNXT,
- FW_FLOWC_MNEM_SNDBUF,
- FW_FLOWC_MNEM_MSS,
- FW_FLOWC_MNEM_TXDATAPLEN_MAX,
- FW_FLOWC_MNEM_TCPSTATE,
- FW_FLOWC_MNEM_UOSTATE,
- FW_FLOWC_MNEM_SCHEDCLASS,
- FW_FLOWC_MNEM_DCBPRIO,
+ FW_FLOWC_MNEM_PFNVFN = 0, /* PFN [15:8] VFN [7:0] */
+ FW_FLOWC_MNEM_CH = 1,
+ FW_FLOWC_MNEM_PORT = 2,
+ FW_FLOWC_MNEM_IQID = 3,
+ FW_FLOWC_MNEM_SNDNXT = 4,
+ FW_FLOWC_MNEM_RCVNXT = 5,
+ FW_FLOWC_MNEM_SNDBUF = 6,
+ FW_FLOWC_MNEM_MSS = 7,
+ FW_FLOWC_MNEM_TXDATAPLEN_MAX = 8,
+ FW_FLOWC_MNEM_TCPSTATE = 9,
+ FW_FLOWC_MNEM_UOSTATE = 10,
+ FW_FLOWC_MNEM_SCHEDCLASS = 11,
+ FW_FLOWC_MNEM_DCBPRIO = 12,
};
struct fw_flowc_mnemval {
@@ -2789,6 +2796,55 @@ struct fw_scsi_tgt_rsp_wr {
#define G_FW_SCSI_TGT_RSP_WR_CLASS(x) \
(((x) >> S_FW_SCSI_TGT_RSP_WR_CLASS) & M_FW_SCSI_TGT_RSP_WR_CLASS)
+struct fw_pofcoe_tcb_wr {
+ __be32 op_compl;
+ __be32 equiq_to_len16;
+ __be64 cookie;
+ __be32 tid_to_port;
+ __be16 x_id;
+ __be16 vlan_id;
+ __be32 s_id;
+ __be32 d_id;
+ __be32 tag;
+ __be32 xfer_len;
+ __be32 r4;
+ __be16 r5;
+ __be16 iqid;
+};
+
+#define S_FW_POFCOE_TCB_WR_TID 12
+#define M_FW_POFCOE_TCB_WR_TID 0xfffff
+#define V_FW_POFCOE_TCB_WR_TID(x) ((x) << S_FW_POFCOE_TCB_WR_TID)
+#define G_FW_POFCOE_TCB_WR_TID(x) \
+ (((x) >> S_FW_POFCOE_TCB_WR_TID) & M_FW_POFCOE_TCB_WR_TID)
+
+#define S_FW_POFCOE_TCB_WR_ALLOC 4
+#define M_FW_POFCOE_TCB_WR_ALLOC 0x1
+#define V_FW_POFCOE_TCB_WR_ALLOC(x) ((x) << S_FW_POFCOE_TCB_WR_ALLOC)
+#define G_FW_POFCOE_TCB_WR_ALLOC(x) \
+ (((x) >> S_FW_POFCOE_TCB_WR_ALLOC) & M_FW_POFCOE_TCB_WR_ALLOC)
+#define F_FW_POFCOE_TCB_WR_ALLOC V_FW_POFCOE_TCB_WR_ALLOC(1U)
+
+#define S_FW_POFCOE_TCB_WR_FREE 3
+#define M_FW_POFCOE_TCB_WR_FREE 0x1
+#define V_FW_POFCOE_TCB_WR_FREE(x) ((x) << S_FW_POFCOE_TCB_WR_FREE)
+#define G_FW_POFCOE_TCB_WR_FREE(x) \
+ (((x) >> S_FW_POFCOE_TCB_WR_FREE) & M_FW_POFCOE_TCB_WR_FREE)
+#define F_FW_POFCOE_TCB_WR_FREE V_FW_POFCOE_TCB_WR_FREE(1U)
+
+#define S_FW_POFCOE_TCB_WR_PORT 0
+#define M_FW_POFCOE_TCB_WR_PORT 0x7
+#define V_FW_POFCOE_TCB_WR_PORT(x) ((x) << S_FW_POFCOE_TCB_WR_PORT)
+#define G_FW_POFCOE_TCB_WR_PORT(x) \
+ (((x) >> S_FW_POFCOE_TCB_WR_PORT) & M_FW_POFCOE_TCB_WR_PORT)
+
+struct fw_pofcoe_ulptx_wr {
+ __be32 op_pkd;
+ __be32 equiq_to_len16;
+ __u64 cookie;
+};
+
+
/******************************************************************************
* C O M M A N D s
*********************/
@@ -2937,8 +2993,9 @@ enum fw_ldst_addrspc {
FW_LDST_ADDRSPC_MPS = 0x0020,
FW_LDST_ADDRSPC_FUNC = 0x0028,
FW_LDST_ADDRSPC_FUNC_PCIE = 0x0029,
- FW_LDST_ADDRSPC_FUNC_I2C = 0x002A,
+ FW_LDST_ADDRSPC_FUNC_I2C = 0x002A, /* legacy */
FW_LDST_ADDRSPC_LE = 0x0030,
+ FW_LDST_ADDRSPC_I2C = 0x0038,
};
/*
@@ -3018,17 +3075,26 @@ struct fw_ldst_cmd {
__be16 nset_pkd;
__be32 data[12];
} pcie;
- struct fw_ldst_i2c {
+ struct fw_ldst_i2c_deprecated {
__u8 pid_pkd;
__u8 base;
__u8 boffset;
__u8 data;
__be32 r9;
+ } i2c_deprecated;
+ struct fw_ldst_i2c {
+ __u8 pid;
+ __u8 did;
+ __u8 boffset;
+ __u8 blen;
+ __be32 r9;
+ __u8 data[48];
} i2c;
struct fw_ldst_le {
- __be16 region;
- __be16 nval;
- __u32 val[12];
+ __be32 index;
+ __be32 r9;
+ __u8 val[33];
+ __u8 r11[7];
} le;
} u;
};
@@ -3332,6 +3398,8 @@ enum fw_caps_config_fcoe {
FW_CAPS_CONFIG_FCOE_INITIATOR = 0x00000001,
FW_CAPS_CONFIG_FCOE_TARGET = 0x00000002,
FW_CAPS_CONFIG_FCOE_CTRL_OFLD = 0x00000004,
+ FW_CAPS_CONFIG_POFCOE_INITIATOR = 0x00000008,
+ FW_CAPS_CONFIG_POFCOE_TARGET = 0x00000010,
};
enum fw_memtype_cf {
@@ -3465,7 +3533,8 @@ enum fw_params_param_pfvf {
FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_START = 0x2D,
FW_PARAMS_PARAM_PFVF_ACTIVE_FILTER_END = 0x2E,
FW_PARAMS_PARAM_PFVF_ETHOFLD_START = 0x2F,
- FW_PARAMS_PARAM_PFVF_ETHOFLD_END = 0x30
+ FW_PARAMS_PARAM_PFVF_ETHOFLD_END = 0x30,
+ FW_PARAMS_PARAM_PFVF_CPLFW4MSG_ENCAP = 0x31
};
/*
@@ -3474,6 +3543,7 @@ enum fw_params_param_pfvf {
enum fw_params_param_dmaq {
FW_PARAMS_PARAM_DMAQ_IQ_DCAEN_DCACPU = 0x00,
FW_PARAMS_PARAM_DMAQ_IQ_INTCNTTHRESH = 0x01,
+ FW_PARAMS_PARAM_DMAQ_IQ_INTIDX = 0x02,
FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_MNGT = 0x10,
FW_PARAMS_PARAM_DMAQ_EQ_CMPLIQID_CTRL = 0x11,
FW_PARAMS_PARAM_DMAQ_EQ_SCHEDCLASS_ETH = 0x12,
@@ -4943,7 +5013,7 @@ struct fw_vi_cmd {
__u8 portid_pkd;
__u8 nmac;
__u8 nmac0[6];
- __be16 rsssize_pkd;
+ __be16 norss_rsssize;
__u8 nmac1[6];
__be16 idsiiq_pkd;
__u8 nmac2[6];
@@ -4998,6 +5068,13 @@ struct fw_vi_cmd {
#define G_FW_VI_CMD_PORTID(x) \
(((x) >> S_FW_VI_CMD_PORTID) & M_FW_VI_CMD_PORTID)
+#define S_FW_VI_CMD_NORSS 11
+#define M_FW_VI_CMD_NORSS 0x1
+#define V_FW_VI_CMD_NORSS(x) ((x) << S_FW_VI_CMD_NORSS)
+#define G_FW_VI_CMD_NORSS(x) \
+ (((x) >> S_FW_VI_CMD_NORSS) & M_FW_VI_CMD_NORSS)
+#define F_FW_VI_CMD_NORSS V_FW_VI_CMD_NORSS(1U)
+
#define S_FW_VI_CMD_RSSSIZE 0
#define M_FW_VI_CMD_RSSSIZE 0x7ff
#define V_FW_VI_CMD_RSSSIZE(x) ((x) << S_FW_VI_CMD_RSSSIZE)
@@ -5524,6 +5601,8 @@ enum fw_port_dcb_type {
enum fw_port_diag_ops {
FW_PORT_DIAGS_TEMP = 0x00,
+ FW_PORT_DIAGS_TX_POWER = 0x01,
+ FW_PORT_DIAGS_RX_POWER = 0x02,
};
struct fw_port_cmd {
@@ -5560,8 +5639,9 @@ struct fw_port_cmd {
__be64 r9;
} info;
struct fw_port_diags {
- __be32 diagop_diagval;
- __be32 r;
+ __u8 diagop;
+ __u8 r[3];
+ __be32 diagval;
} diags;
union fw_port_dcb {
struct fw_port_dcb_pgid {
@@ -5602,7 +5682,7 @@ struct fw_port_cmd {
struct fw_port_dcb_control {
__u8 type;
__u8 all_syncd_pkd;
- __be16 r10_lo[3];
+ __be16 r10_lo[3];
__be64 r11;
} control;
} dcb;
@@ -5748,18 +5828,6 @@ struct fw_port_cmd {
#define G_FW_PORT_CMD_MODTYPE(x) \
(((x) >> S_FW_PORT_CMD_MODTYPE) & M_FW_PORT_CMD_MODTYPE)
-#define S_FW_PORT_CMD_DIAGOP 24
-#define M_FW_PORT_CMD_DIAGOP 0xff
-#define V_FW_PORT_CMD_DIAGOP(x) ((x) << S_FW_PORT_CMD_DIAGOP)
-#define G_FW_PORT_CMD_DIAGOP(x) \
- (((x) >> S_FW_PORT_CMD_DIAGOP) & M_FW_PORT_CMD_DIAGOP)
-
-#define S_FW_PORT_CMD_DIAGVAL 0
-#define M_FW_PORT_CMD_DIAGVAL 0xffffff
-#define V_FW_PORT_CMD_DIAGVAL(x) ((x) << S_FW_PORT_CMD_DIAGVAL)
-#define G_FW_PORT_CMD_DIAGVAL(x) \
- (((x) >> S_FW_PORT_CMD_DIAGVAL) & M_FW_PORT_CMD_DIAGVAL)
-
#define S_FW_PORT_CMD_APPLY 7
#define M_FW_PORT_CMD_APPLY 0x1
#define V_FW_PORT_CMD_APPLY(x) ((x) << S_FW_PORT_CMD_APPLY)
@@ -5816,6 +5884,10 @@ enum fw_port_module_type {
enum fw_port_mod_sub_type {
FW_PORT_MOD_SUB_TYPE_NA,
FW_PORT_MOD_SUB_TYPE_MV88E114X=0x1,
+ FW_PORT_MOD_SUB_TYPE_TN8022=0x2,
+ FW_PORT_MOD_SUB_TYPE_AQ1202=0x3,
+ FW_PORT_MOD_SUB_TYPE_88x3120=0x4,
+ FW_PORT_MOD_SUB_TYPE_BCM84834=0x5,
FW_PORT_MOD_SUB_TYPE_BT_VSC8634=0x8,
/*
@@ -5832,11 +5904,13 @@ enum fw_port_mod_sub_type {
/* link down reason codes (3b) */
enum fw_port_link_dn_rc {
FW_PORT_LINK_DN_RC_NONE,
- FW_PORT_LINK_DN_RC_REMFLT,
- FW_PORT_LINK_DN_ANEG_F,
- FW_PORT_LINK_DN_MS_RES_F,
- FW_PORT_LINK_DN_OVERHEAT,
- FW_PORT_LINK_DN_UNKNOWN
+ FW_PORT_LINK_DN_RC_REMFLT, /* Remote fault detected */
+ FW_PORT_LINK_DN_ANEG_F, /* Auto-negotiation fault */
+ FW_PORT_LINK_DN_RESERVED3,
+ FW_PORT_LINK_DN_OVERHEAT, /* Port overheated */
+ FW_PORT_LINK_DN_UNKNOWN, /* Unable to determine reason */
+ FW_PORT_LINK_DN_RX_LOS, /* No RX signal detected */
+ FW_PORT_LINK_DN_RESERVED7
};
/* port stats */
@@ -6635,7 +6709,6 @@ enum fw_sched_params_level {
FW_SCHED_PARAMS_LEVEL_CL_RL = 0,
FW_SCHED_PARAMS_LEVEL_CL_WRR = 1,
FW_SCHED_PARAMS_LEVEL_CH_RL = 2,
- FW_SCHED_PARAMS_LEVEL_CH_WRR = 3,
};
enum fw_sched_params_mode {
@@ -6676,7 +6749,8 @@ struct fw_sched_cmd {
__be32 max;
__be16 weight;
__be16 pktsize;
- __be32 r4;
+ __be16 burstsize;
+ __be16 r4;
} params;
} u;
};
@@ -7353,6 +7427,16 @@ struct fw_debug_cmd {
* P C I E F W R E G I S T E R
**************************************/
+enum pcie_fw_eval {
+ PCIE_FW_EVAL_CRASH = 0,
+ PCIE_FW_EVAL_PREP = 1,
+ PCIE_FW_EVAL_CONF = 2,
+ PCIE_FW_EVAL_INIT = 3,
+ PCIE_FW_EVAL_UNEXPECTEDEVENT = 4,
+ PCIE_FW_EVAL_OVERHEAT = 5,
+ PCIE_FW_EVAL_DEVICESHUTDOWN = 6,
+};
+
/**
* Register definitions for the PCIE_FW register which the firmware uses
* to retain status across RESETs. This register should be considered
@@ -7377,6 +7461,11 @@ struct fw_debug_cmd {
#define G_PCIE_FW_HALT(x) (((x) >> S_PCIE_FW_HALT) & M_PCIE_FW_HALT)
#define F_PCIE_FW_HALT V_PCIE_FW_HALT(1U)
+#define S_PCIE_FW_EVAL 24
+#define M_PCIE_FW_EVAL 0x7
+#define V_PCIE_FW_EVAL(x) ((x) << S_PCIE_FW_EVAL)
+#define G_PCIE_FW_EVAL(x) (((x) >> S_PCIE_FW_EVAL) & M_PCIE_FW_EVAL)
+
#define S_PCIE_FW_STAGE 21
#define M_PCIE_FW_STAGE 0x7
#define V_PCIE_FW_STAGE(x) ((x) << S_PCIE_FW_STAGE)
@@ -7455,11 +7544,11 @@ struct fw_hdr {
__u8 intfver_ri;
__u8 intfver_iscsipdu;
__u8 intfver_iscsi;
+ __u8 intfver_fcoepdu;
__u8 intfver_fcoe;
- __u8 reserved2;
+ __u32 reserved2;
__u32 reserved3;
__u32 reserved4;
- __u32 reserved5;
__be32 flags;
__be32 reserved6[23];
};
@@ -7504,6 +7593,7 @@ enum {
FW_HDR_INTFVER_RI = 0x00,
FW_HDR_INTFVER_ISCSIPDU = 0x00,
FW_HDR_INTFVER_ISCSI = 0x00,
+ FW_HDR_INTFVER_FCOEPDU = 0x00,
FW_HDR_INTFVER_FCOE = 0x00,
};
diff --git a/sys/dev/cxgbe/t4_main.c b/sys/dev/cxgbe/t4_main.c
index 0e24c7c..da3accd 100644
--- a/sys/dev/cxgbe/t4_main.c
+++ b/sys/dev/cxgbe/t4_main.c
@@ -281,6 +281,7 @@ static int upload_config_file(struct adapter *, const struct firmware *,
static int partition_resources(struct adapter *, const struct firmware *);
static int get_params__pre_init(struct adapter *);
static int get_params__post_init(struct adapter *);
+static int set_params__post_init(struct adapter *);
static void t4_set_desc(struct adapter *);
static void build_medialist(struct port_info *);
static int update_mac_settings(struct port_info *, int);
@@ -519,6 +520,10 @@ t4_attach(device_t dev)
if (rc != 0)
goto done; /* error message displayed already */
+ rc = set_params__post_init(sc);
+ if (rc != 0)
+ goto done; /* error message displayed already */
+
if (sc->flags & MASTER_PF) {
uint16_t indsz = min(RX_COPY_THRESHOLD - 1, M_INDICATESIZE);
@@ -1991,6 +1996,33 @@ get_params__post_init(struct adapter *sc)
return (rc);
}
+static int
+set_params__post_init(struct adapter *sc)
+{
+ uint32_t param, val;
+ int rc;
+
+ param = FW_PARAM_PFVF(CPLFW4MSG_ENCAP);
+ rc = -t4_query_params(sc, sc->mbox, sc->pf, 0, 1, &param, &val);
+ if (rc == 0) {
+ /* ask for encapsulated CPLs */
+ param = FW_PARAM_PFVF(CPLFW4MSG_ENCAP);
+ val = 1;
+ rc = -t4_set_params(sc, sc->mbox, sc->pf, 0, 1, &param, &val);
+ if (rc != 0) {
+ device_printf(sc->dev,
+ "failed to set parameter (post_init): %d.\n", rc);
+ return (rc);
+ }
+ } else if (rc != FW_EINVAL) {
+ device_printf(sc->dev,
+ "failed to check for encapsulated CPLs: %d.\n", rc);
+ } else
+ rc = 0; /* the firmware doesn't support the param, no worries */
+
+ return (rc);
+}
+
#undef FW_PARAM_PFVF
#undef FW_PARAM_DEV
@@ -3077,6 +3109,14 @@ t4_register_fw_msg_handler(struct adapter *sc, int type, fw_msg_handler_t h)
if (type >= nitems(sc->fw_msg_handler))
return (EINVAL);
+ /*
+ * These are dispatched by the handler for FW{4|6}_CPL_MSG using the CPL
+ * handler dispatch table. Reject any attempt to install a handler for
+ * this subtype.
+ */
+ if (type == FW_TYPE_RSSCPL || type == FW6_TYPE_RSSCPL)
+ return (EINVAL);
+
new = h ? (uintptr_t)h : (uintptr_t)fw_msg_not_handled;
loc = (uintptr_t *) &sc->fw_msg_handler[type];
atomic_store_rel_ptr(loc, new);
diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c
index 94dca53..578f06f 100644
--- a/sys/dev/cxgbe/t4_sge.c
+++ b/sys/dev/cxgbe/t4_sge.c
@@ -3509,6 +3509,10 @@ handle_sge_egr_update(struct sge_iq *iq, const struct rss_header *rss,
return (0);
}
+/* handle_fw_msg works for both fw4_msg and fw6_msg because this is valid */
+CTASSERT(offsetof(struct cpl_fw4_msg, data) == \
+ offsetof(struct cpl_fw6_msg, data));
+
static int
handle_fw_msg(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m)
{
@@ -3518,6 +3522,13 @@ handle_fw_msg(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m)
KASSERT(m == NULL, ("%s: payload with opcode %02x", __func__,
rss->opcode));
+ if (cpl->type == FW_TYPE_RSSCPL || cpl->type == FW6_TYPE_RSSCPL) {
+ const struct rss_header *rss2;
+
+ rss2 = (const struct rss_header *)&cpl->data[0];
+ return (sc->cpl_handler[rss2->opcode](iq, rss2, m));
+ }
+
return (sc->fw_msg_handler[cpl->type](sc, &cpl->data[0]));
}
diff --git a/sys/dev/isp/isp.c b/sys/dev/isp/isp.c
index c4747e7..d3e5bdb 100644
--- a/sys/dev/isp/isp.c
+++ b/sys/dev/isp/isp.c
@@ -1709,7 +1709,13 @@ isp_fibre_init(ispsoftc_t *isp)
*
* NB: for the 2300, ICBOPT_EXTENDED is required.
*/
- if (IS_2200(isp) || IS_23XX(isp)) {
+ if (IS_2100(isp)) {
+ /*
+ * We can't have Fast Posting any more- we now
+ * have 32 bit handles.
+ */
+ icbp->icb_fwoptions &= ~ICBOPT_FAST_POST;
+ } else if (IS_2200(isp) || IS_23XX(isp)) {
icbp->icb_fwoptions |= ICBOPT_EXTENDED;
icbp->icb_xfwoptions = fcp->isp_xfwoptions;
diff --git a/sys/dev/mxge/if_mxge.c b/sys/dev/mxge/if_mxge.c
index 245c139..68624ad 100644
--- a/sys/dev/mxge/if_mxge.c
+++ b/sys/dev/mxge/if_mxge.c
@@ -288,42 +288,43 @@ mxge_dma_free(mxge_dma_t *dma)
static int
mxge_parse_strings(mxge_softc_t *sc)
{
-#define MXGE_NEXT_STRING(p) while(ptr < limit && *ptr++)
-
- char *ptr, *limit;
+ char *ptr;
int i, found_mac, found_sn2;
+ char *endptr;
ptr = sc->eeprom_strings;
- limit = sc->eeprom_strings + MXGE_EEPROM_STRINGS_SIZE;
found_mac = 0;
found_sn2 = 0;
- while (ptr < limit && *ptr != '\0') {
- if (memcmp(ptr, "MAC=", 4) == 0) {
- ptr += 1;
- sc->mac_addr_string = ptr;
- for (i = 0; i < 6; i++) {
- ptr += 3;
- if ((ptr + 2) > limit)
+ while (*ptr != '\0') {
+ if (strncmp(ptr, "MAC=", 4) == 0) {
+ ptr += 4;
+ for (i = 0;;) {
+ sc->mac_addr[i] = strtoul(ptr, &endptr, 16);
+ if (endptr - ptr != 2)
+ goto abort;
+ ptr = endptr;
+ if (++i == 6)
+ break;
+ if (*ptr++ != ':')
goto abort;
- sc->mac_addr[i] = strtoul(ptr, NULL, 16);
- found_mac = 1;
}
- } else if (memcmp(ptr, "PC=", 3) == 0) {
+ found_mac = 1;
+ } else if (strncmp(ptr, "PC=", 3) == 0) {
ptr += 3;
- strncpy(sc->product_code_string, ptr,
- sizeof (sc->product_code_string) - 1);
- } else if (!found_sn2 && (memcmp(ptr, "SN=", 3) == 0)) {
+ strlcpy(sc->product_code_string, ptr,
+ sizeof(sc->product_code_string));
+ } else if (!found_sn2 && (strncmp(ptr, "SN=", 3) == 0)) {
ptr += 3;
- strncpy(sc->serial_number_string, ptr,
- sizeof (sc->serial_number_string) - 1);
- } else if (memcmp(ptr, "SN2=", 4) == 0) {
+ strlcpy(sc->serial_number_string, ptr,
+ sizeof(sc->serial_number_string));
+ } else if (strncmp(ptr, "SN2=", 4) == 0) {
/* SN2 takes precedence over SN */
ptr += 4;
found_sn2 = 1;
- strncpy(sc->serial_number_string, ptr,
- sizeof (sc->serial_number_string) - 1);
+ strlcpy(sc->serial_number_string, ptr,
+ sizeof(sc->serial_number_string));
}
- MXGE_NEXT_STRING(ptr);
+ while (*ptr++ != '\0') {}
}
if (found_mac)
@@ -649,12 +650,6 @@ abort:
return (mxge_load_firmware(sc, 0));
}
-union qualhack
-{
- const char *ro_char;
- char *rw_char;
-};
-
static int
mxge_validate_firmware(mxge_softc_t *sc, const mcp_gen_header_t *hdr)
{
@@ -667,7 +662,7 @@ mxge_validate_firmware(mxge_softc_t *sc, const mcp_gen_header_t *hdr)
}
/* save firmware version for sysctl */
- strncpy(sc->fw_version, hdr->version, sizeof (sc->fw_version));
+ strlcpy(sc->fw_version, hdr->version, sizeof(sc->fw_version));
if (mxge_verbose)
device_printf(sc->dev, "firmware id: %s\n", hdr->version);
@@ -3325,8 +3320,6 @@ mxge_alloc_slice_rings(struct mxge_slice_state *ss, int rx_ring_entries,
size_t bytes;
int err, i;
- err = ENOMEM;
-
/* allocate per-slice receive resources */
ss->rx_small.mask = ss->rx_big.mask = rx_ring_entries - 1;
@@ -3335,24 +3328,16 @@ mxge_alloc_slice_rings(struct mxge_slice_state *ss, int rx_ring_entries,
/* allocate the rx shadow rings */
bytes = rx_ring_entries * sizeof (*ss->rx_small.shadow);
ss->rx_small.shadow = malloc(bytes, M_DEVBUF, M_ZERO|M_WAITOK);
- if (ss->rx_small.shadow == NULL)
- return err;
bytes = rx_ring_entries * sizeof (*ss->rx_big.shadow);
ss->rx_big.shadow = malloc(bytes, M_DEVBUF, M_ZERO|M_WAITOK);
- if (ss->rx_big.shadow == NULL)
- return err;
/* allocate the rx host info rings */
bytes = rx_ring_entries * sizeof (*ss->rx_small.info);
ss->rx_small.info = malloc(bytes, M_DEVBUF, M_ZERO|M_WAITOK);
- if (ss->rx_small.info == NULL)
- return err;
bytes = rx_ring_entries * sizeof (*ss->rx_big.info);
ss->rx_big.info = malloc(bytes, M_DEVBUF, M_ZERO|M_WAITOK);
- if (ss->rx_big.info == NULL)
- return err;
/* allocate the rx busdma resources */
err = bus_dma_tag_create(sc->parent_dmat, /* parent */
@@ -3449,8 +3434,6 @@ mxge_alloc_slice_rings(struct mxge_slice_state *ss, int rx_ring_entries,
bytes = 8 +
sizeof (*ss->tx.req_list) * (ss->tx.max_desc + 4);
ss->tx.req_bytes = malloc(bytes, M_DEVBUF, M_WAITOK);
- if (ss->tx.req_bytes == NULL)
- return err;
/* ensure req_list entries are aligned to 8 bytes */
ss->tx.req_list = (mcp_kreq_ether_send_t *)
((unsigned long)(ss->tx.req_bytes + 7) & ~7UL);
@@ -3459,14 +3442,10 @@ mxge_alloc_slice_rings(struct mxge_slice_state *ss, int rx_ring_entries,
bytes = sizeof (*ss->tx.seg_list) * ss->tx.max_desc;
ss->tx.seg_list = (bus_dma_segment_t *)
malloc(bytes, M_DEVBUF, M_WAITOK);
- if (ss->tx.seg_list == NULL)
- return err;
/* allocate the tx host info ring */
bytes = tx_ring_entries * sizeof (*ss->tx.info);
ss->tx.info = malloc(bytes, M_DEVBUF, M_ZERO|M_WAITOK);
- if (ss->tx.info == NULL)
- return err;
/* allocate the tx busdma resources */
err = bus_dma_tag_create(sc->parent_dmat, /* parent */
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index 68ad77f..7eebfd3 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -8211,8 +8211,13 @@ static void sym_update_trans(hcb_p np, tcb_p tp, struct sym_trans *tip,
* Scale against driver configuration limits.
*/
if (tip->width > SYM_SETUP_MAX_WIDE) tip->width = SYM_SETUP_MAX_WIDE;
- if (tip->offset > SYM_SETUP_MAX_OFFS) tip->offset = SYM_SETUP_MAX_OFFS;
- if (tip->period < SYM_SETUP_MIN_SYNC) tip->period = SYM_SETUP_MIN_SYNC;
+ if (tip->period && tip->offset) {
+ if (tip->offset > SYM_SETUP_MAX_OFFS) tip->offset = SYM_SETUP_MAX_OFFS;
+ if (tip->period < SYM_SETUP_MIN_SYNC) tip->period = SYM_SETUP_MIN_SYNC;
+ } else {
+ tip->offset = 0;
+ tip->period = 0;
+ }
/*
* Scale against actual controller BUS width.
@@ -8231,21 +8236,23 @@ static void sym_update_trans(hcb_p np, tcb_p tp, struct sym_trans *tip,
/*
* Scale period factor and offset against controller limits.
*/
- if (tip->options & PPR_OPT_DT) {
- if (tip->period < np->minsync_dt)
- tip->period = np->minsync_dt;
- if (tip->period > np->maxsync_dt)
- tip->period = np->maxsync_dt;
- if (tip->offset > np->maxoffs_dt)
- tip->offset = np->maxoffs_dt;
- }
- else {
- if (tip->period < np->minsync)
- tip->period = np->minsync;
- if (tip->period > np->maxsync)
- tip->period = np->maxsync;
- if (tip->offset > np->maxoffs)
- tip->offset = np->maxoffs;
+ if (tip->offset && tip->period) {
+ if (tip->options & PPR_OPT_DT) {
+ if (tip->period < np->minsync_dt)
+ tip->period = np->minsync_dt;
+ if (tip->period > np->maxsync_dt)
+ tip->period = np->maxsync_dt;
+ if (tip->offset > np->maxoffs_dt)
+ tip->offset = np->maxoffs_dt;
+ }
+ else {
+ if (tip->period < np->minsync)
+ tip->period = np->minsync;
+ if (tip->period > np->maxsync)
+ tip->period = np->maxsync;
+ if (tip->offset > np->maxoffs)
+ tip->offset = np->maxoffs;
+ }
}
}
diff --git a/sys/dev/usb/usb_pf.c b/sys/dev/usb/usb_pf.c
index 98705eb..d849a13 100644
--- a/sys/dev/usb/usb_pf.c
+++ b/sys/dev/usb/usb_pf.c
@@ -63,8 +63,8 @@
#include <dev/usb/usb_transfer.h>
#endif /* USB_GLOBAL_INCLUDE_FILE */
-static void usbpf_init(void);
-static void usbpf_uninit(void);
+static void usbpf_init(void *);
+static void usbpf_uninit(void *);
static int usbpf_ioctl(struct ifnet *, u_long, caddr_t);
static int usbpf_clone_match(struct if_clone *, const char *);
static int usbpf_clone_create(struct if_clone *, char *, size_t, caddr_t);
@@ -82,7 +82,7 @@ SYSINIT(usbpf_init, SI_SUB_PSEUDO, SI_ORDER_MIDDLE, usbpf_init, NULL);
SYSUNINIT(usbpf_uninit, SI_SUB_PSEUDO, SI_ORDER_MIDDLE, usbpf_uninit, NULL);
static void
-usbpf_init(void)
+usbpf_init(void *arg)
{
usbpf_cloner = if_clone_advanced(usbusname, 0, usbpf_clone_match,
@@ -90,7 +90,7 @@ usbpf_init(void)
}
static void
-usbpf_uninit(void)
+usbpf_uninit(void *arg)
{
int devlcnt;
device_t *devlp;
diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs
index 6242047..958745e 100644
--- a/sys/dev/usb/usbdevs
+++ b/sys/dev/usb/usbdevs
@@ -650,6 +650,7 @@ vendor OWEN 0x1555 Owen
vendor OQO 0x1557 OQO
vendor UMEDIA 0x157e U-MEDIA Communications
vendor FIBERLINE 0x1582 Fiberline
+vendor AFATECH 0x15a4 Afatech Technologies, Inc.
vendor SPARKLAN 0x15a9 SparkLAN
vendor OLIMEX 0x15ba Olimex
vendor SOUNDGRAPH 0x15c2 Soundgraph, Inc.
@@ -916,6 +917,9 @@ product ADS UBS10BTX 0x0009 UBS-10BT Ethernet
/* AEI products */
product AEI FASTETHERNET 0x1701 Fast Ethernet
+/* Afatech Technologies, Inc. */
+product AFATECH AFATECH1336 0x1336 Flash Card Reader
+
/* Agate Technologies products */
product AGATE QDRIVE 0x0378 Q-Drive
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index c8aa9901..1dff1f9 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -387,7 +387,7 @@ pmap_bootstrap()
*/
ia64_kptdir = ia64_physmem_alloc(PAGE_SIZE, PAGE_SIZE);
nkpt = 0;
- kernel_vm_end = VM_MIN_KERNEL_ADDRESS;
+ kernel_vm_end = VM_INIT_KERNEL_ADDRESS;
/*
* Determine a valid (mappable) VHPT size.
@@ -425,7 +425,7 @@ pmap_bootstrap()
ia64_set_pta(base + (1 << 8) + (pmap_vhpt_log2size << 2) + 1);
ia64_srlz_i();
- virtual_avail = VM_MIN_KERNEL_ADDRESS;
+ virtual_avail = VM_INIT_KERNEL_ADDRESS;
virtual_end = VM_MAX_KERNEL_ADDRESS;
/*
@@ -1383,7 +1383,7 @@ pmap_kextract(vm_offset_t va)
/* Region 5 is our KVA. Bail out if the VA is beyond our limits. */
if (va >= kernel_vm_end)
goto err_out;
- if (va >= VM_MIN_KERNEL_ADDRESS) {
+ if (va >= VM_INIT_KERNEL_ADDRESS) {
pte = pmap_find_kpte(va);
pa = pmap_present(pte) ? pmap_ppn(pte) | (va & PAGE_MASK) : 0;
goto out;
@@ -2746,7 +2746,7 @@ DB_COMMAND(kpte, db_kpte)
db_printf("usage: kpte <kva>\n");
return;
}
- if (addr < VM_MIN_KERNEL_ADDRESS) {
+ if (addr < VM_INIT_KERNEL_ADDRESS) {
db_printf("kpte: error: invalid <kva>\n");
return;
}
diff --git a/sys/ia64/include/vmparam.h b/sys/ia64/include/vmparam.h
index 16c5e7d..10125db 100644
--- a/sys/ia64/include/vmparam.h
+++ b/sys/ia64/include/vmparam.h
@@ -181,12 +181,13 @@
/* user/kernel map constants */
#define VM_MIN_ADDRESS 0
#define VM_MAXUSER_ADDRESS IA64_RR_BASE(IA64_VM_MINKERN_REGION)
-#define VM_MIN_KERNEL_ADDRESS IA64_RR_BASE(IA64_VM_MINKERN_REGION + 1)
-#define VM_MAX_KERNEL_ADDRESS \
- (VM_MIN_KERNEL_ADDRESS + IA64_REGION_GAP_START - 1)
+#define VM_MIN_KERNEL_ADDRESS VM_MAXUSER_ADDRESS
+#define VM_INIT_KERNEL_ADDRESS IA64_RR_BASE(IA64_VM_MINKERN_REGION + 1)
+#define VM_MAX_KERNEL_ADDRESS (IA64_RR_BASE(IA64_VM_MINKERN_REGION + 2) - 1)
#define VM_MAX_ADDRESS ~0UL
-#define KERNBASE VM_MAXUSER_ADDRESS
+/* We link the kernel at IA64_PBVM_BASE. */
+#define KERNBASE IA64_PBVM_BASE
/*
* USRSTACK is the top (end) of the user stack. Immediately above the user
diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c
index 9de55e82..acdea40 100644
--- a/sys/kern/kern_descrip.c
+++ b/sys/kern/kern_descrip.c
@@ -855,9 +855,7 @@ do_dup(struct thread *td, int flags, int old, int new,
/*
* If the caller specified a file descriptor, make sure the file
* table is large enough to hold it, and grab it. Otherwise, just
- * allocate a new descriptor the usual way. Since the filedesc
- * lock may be temporarily dropped in the process, we have to look
- * out for a race.
+ * allocate a new descriptor the usual way.
*/
if (flags & DUP_FIXED) {
if (new >= fdp->fd_nfiles) {
@@ -1427,8 +1425,7 @@ fdgrowtable(struct filedesc *fdp, int nfd)
FILEDESC_XLOCK_ASSERT(fdp);
- KASSERT(fdp->fd_nfiles > 0,
- ("zero-length file table"));
+ KASSERT(fdp->fd_nfiles > 0, ("zero-length file table"));
/* save old values */
onfiles = fdp->fd_nfiles;
@@ -1449,13 +1446,11 @@ fdgrowtable(struct filedesc *fdp, int nfd)
* it on the freelist. We place the struct freetable in the
* middle so we don't have to worry about padding.
*/
- ntable = malloc(nnfiles * sizeof(*ntable) +
- sizeof(struct freetable) +
- nnfiles * sizeof(*nfileflags),
- M_FILEDESC, M_ZERO | M_WAITOK);
+ ntable = malloc(nnfiles * sizeof(*ntable) + sizeof(struct freetable) +
+ nnfiles * sizeof(*nfileflags), M_FILEDESC, M_ZERO | M_WAITOK);
nfileflags = (char *)&ntable[nnfiles] + sizeof(struct freetable);
- nmap = malloc(NDSLOTS(nnfiles) * NDSLOTSIZE,
- M_FILEDESC, M_ZERO | M_WAITOK);
+ nmap = malloc(NDSLOTS(nnfiles) * NDSLOTSIZE, M_FILEDESC,
+ M_ZERO | M_WAITOK);
/* copy the old data over and point at the new tables */
memcpy(ntable, otable, onfiles * sizeof(*otable));
diff --git a/sys/modules/cxgbe/firmware/Makefile b/sys/modules/cxgbe/firmware/Makefile
index b6a8729..fea29a5 100644
--- a/sys/modules/cxgbe/firmware/Makefile
+++ b/sys/modules/cxgbe/firmware/Makefile
@@ -17,7 +17,7 @@ FIRMWS += ${F}:${F:C/.txt//}:1.0.0.0
.endif
.endfor
-T4FW_VER = 1.6.2.0
+T4FW_VER = 1.8.4.0
FIRMWS += t4fw.fw:t4fw:${T4FW_VER}
CLEANFILES += t4fw.fw
diff --git a/tools/regression/bin/test/regress.sh b/tools/regression/bin/test/regress.sh
index 9229551..117a7e2 100644
--- a/tools/regression/bin/test/regress.sh
+++ b/tools/regression/bin/test/regress.sh
@@ -52,7 +52,7 @@ t ()
}
count=0
-echo "1..130"
+echo "1..266"
t 0 'b = b'
t 0 'b == b'
@@ -194,3 +194,66 @@ t 1 '\( ! -a \)'
t 0 '\( -n -o \)'
t 1 '\( -z -o \)'
t 1 '\( ! -o \)'
+
+# Test all file timestamp comparison operators
+s() {
+ t ${1} "${35} -nt ${36}"
+ t ${2} "${35} -ntaa ${36}"
+ t ${3} "${35} -ntab ${36}"
+ t ${4} "${35} -ntac ${36}"
+ t ${5} "${35} -ntam ${36}"
+ t ${6} "${35} -ntba ${36}"
+ t ${7} "${35} -ntbb ${36}"
+ t ${8} "${35} -ntbc ${36}"
+ t ${9} "${35} -ntbm ${36}"
+ t ${10} "${35} -ntca ${36}"
+ t ${11} "${35} -ntcb ${36}"
+ t ${12} "${35} -ntcc ${36}"
+ t ${13} "${35} -ntcm ${36}"
+ t ${14} "${35} -ntma ${36}"
+ t ${15} "${35} -ntmb ${36}"
+ t ${16} "${35} -ntmc ${36}"
+ t ${17} "${35} -ntmm ${36}"
+ t ${18} "${35} -ot ${36}"
+ t ${19} "${35} -otaa ${36}"
+ t ${20} "${35} -otab ${36}"
+ t ${21} "${35} -otac ${36}"
+ t ${22} "${35} -otam ${36}"
+ t ${23} "${35} -otba ${36}"
+ t ${24} "${35} -otbb ${36}"
+ t ${25} "${35} -otbc ${36}"
+ t ${26} "${35} -otbm ${36}"
+ t ${27} "${35} -otca ${36}"
+ t ${28} "${35} -otcb ${36}"
+ t ${29} "${35} -otcc ${36}"
+ t ${30} "${35} -otcm ${36}"
+ t ${31} "${35} -otma ${36}"
+ t ${32} "${35} -otmb ${36}"
+ t ${33} "${35} -otmc ${36}"
+ t ${34} "${35} -otmm ${36}"
+}
+
+a=/tmp/test$$.1
+b=/tmp/test$$.2
+trap "rm -f $a $b" EXIT
+
+# Tests 131-164
+s 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 $a $b
+
+touch $a
+# Tests 165-198
+s 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 $a $b
+
+sleep 2 # Ensure $b is newer than $a
+touch $b
+# Tests 199-232
+s 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 $a $b
+
+sleep 2
+echo >$b # Updates mtime & ctime
+sleep 2
+touch -A 01 -a $b
+
+# $b now has ctime > mtime > atime > btime
+# Tests 233-266
+s 1 1 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 0 1 $b $b
diff --git a/usr.bin/systat/systat.1 b/usr.bin/systat/systat.1
index fa8f789..4916b9c 100644
--- a/usr.bin/systat/systat.1
+++ b/usr.bin/systat/systat.1
@@ -513,12 +513,12 @@ The following units are recognised: kbit, kbyte, mbit,
mbyte, gbit, gbyte and auto.
.It Cm pps
Show statistics in packets per second instead of bytes/bits per second.
-A subsequent call of
-.Ic pps
+A subsequent call of
+.Ic pps
switches this mode off.
.It Cm match Op Ar patterns
-Display only interfaces that match pattern provided as an argument.
-Patterns should be in shell syntax separated by whitespaces or commas.
+Display only interfaces that match pattern provided as an argument.
+Patterns should be in shell syntax separated by whitespaces or commas.
If this command is called without arguments then all interfaces are displayed.
For example:
.Pp
@@ -528,8 +528,8 @@ This will display em0 and bge1 interfaces.
.Pp
.Dl match em*, bge*, lo0
.Pp
-This will display all
-.Ic em
+This will display all
+.Ic em
interfaces, all
.Ic bge
interfaces and the loopback interface.
diff --git a/usr.sbin/bhyve/pci_emul.h b/usr.sbin/bhyve/pci_emul.h
index 079d5f2..db218bb 100644
--- a/usr.sbin/bhyve/pci_emul.h
+++ b/usr.sbin/bhyve/pci_emul.h
@@ -105,7 +105,6 @@ struct pci_devinst {
uint8_t pi_bus, pi_slot, pi_func;
uint8_t pi_lintr_pin;
char pi_name[PI_NAMESZ];
- uint16_t pi_iobase;
int pi_bar_getsize;
struct {
diff --git a/usr.sbin/bsdconfig/include/Makefile b/usr.sbin/bsdconfig/include/Makefile
index cb4b1b6..ee21cec 100644
--- a/usr.sbin/bsdconfig/include/Makefile
+++ b/usr.sbin/bsdconfig/include/Makefile
@@ -3,7 +3,8 @@
NO_OBJ=
FILESDIR= ${LIBEXECDIR}/bsdconfig/include
-FILES= bsdconfig.hlp messages.subr usage.hlp
+FILES= bsdconfig.hlp media.hlp messages.subr network_device.hlp \
+ options.hlp tcp.hlp usage.hlp
beforeinstall:
mkdir -p ${DESTDIR}${FILESDIR}
diff --git a/usr.sbin/bsdconfig/include/media.hlp b/usr.sbin/bsdconfig/include/media.hlp
new file mode 100644
index 0000000..6df5b03
--- /dev/null
+++ b/usr.sbin/bsdconfig/include/media.hlp
@@ -0,0 +1,48 @@
+You can install from the following types of media:
+
+ CDROM requires one of the following supported CDROM drives:
+ ATAPI - Any standard ATAPI CDROM drive hooked to
+ a supported controller (see Hardware Guide).
+ SCSI - Any standard SCSI CDROM drive hooked to
+ a supported controller (see Hardware Guide).
+
+
+ DOS A DOS primary partition with the required FreeBSD
+ distribution files copied onto it (e.g. C:\FREEBSD\)
+
+
+ UFS Assuming a disk or partition with an existing
+ FreeBSD file system and distribution set on it,
+ get the distribution files from there.
+
+
+ Floppy Get distribution files from one or more DOS or UFS
+ formatted floppies. Such floppies are assumed to
+ contain the appropriate distribution pieces - see
+ ABOUT.TXT for more information about making floppy
+ distribution media.
+
+
+ FTP Get the distribution files from an anonymous ftp server
+ (you will be presented with a list). Please note that
+ you may invoke FTP in "Active" mode, "Passive" mode, or
+ via an HTTP proxy.
+
+ Active mode is the standard way of fetching files and
+ Passive mode is for use when you're behind a firewall or
+ some other security mechanism that blocks active FTP
+ connections. Using an HTTP proxy is sometimes necessary
+ for firewalls which block all FTP connections.
+
+ If you chose to enter your own URL in the FTP menu, please
+ note that all paths are *relative* to the home directory
+ of the user being logged in as. By default, this is the
+ user "ftp" (anonymous ftp) but you may change this in the
+ Options screen.
+
+
+ NFS Get the distribution files from an NFS server somewhere
+ (make sure that permissions on the server allow this!).
+ If this install method hangs on you or refuses to work
+ properly, you may need to set some special options for
+ your NFS server. See the Options screen for more details.
diff --git a/usr.sbin/bsdconfig/include/messages.subr b/usr.sbin/bsdconfig/include/messages.subr
index dc7c246..82afb6d 100644
--- a/usr.sbin/bsdconfig/include/messages.subr
+++ b/usr.sbin/bsdconfig/include/messages.subr
@@ -1,5 +1,5 @@
# Copyright (c) 2012 Ron McDowell
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -27,39 +27,251 @@
field_username="Username:"
field_password="Password:"
+hline_alnum_arrows_punc_tab_enter="Use alnum, arrows, punctuation, TAB or ENTER"
hline_alnum_punc_tab_enter="Use alpha-numeric, punctuation, TAB or ENTER"
hline_arrows_tab_enter="Press arrows, TAB or ENTER"
+hline_choose_help_for_more_information_on_media_types="Choose Help for more information on the various media types"
+msg_accept_continue="Accept/Continue"
msg_always_try_sudo_when_run_as="Always try sudo(8) when run as %s"
+msg_argentina="Argentina"
+msg_assume_network_is_already_configured="Running multi-user, assume that the network is already configured?"
+msg_attempt_automatic_dhcp_configuration="Attempt automatic DHCP configuration of interfaces"
+msg_attempt_ipv6_configuration_of_interfaces="Attempt IPv6 configuration of interfaces"
+msg_australia="Australia"
+msg_austria="Austria"
msg_becoming_root_via_sudo="Becoming root via sudo(8)..."
+msg_brazil="Brazil"
+msg_canada="Canada"
msg_cancel="Cancel"
msg_cancel_exit="Cancel/Exit"
msg_cannot_create_permission_denied="%s: cannot create %s: Permission denied"
+msg_cannot_resolve_hostname="Cannot resolve \`%s'! Are you sure that your\nname server, gateway and network interface are correctly configured?"
+msg_cant_find_distribution="Warning: Can't find the \`%s' distribution on this\nFTP server. You may need to visit a different server for\nthe release you are trying to fetch or go to the Options\nmenu and set the release name to explicitly match what's\navailable on %s (or set to \"any\").\n\nWould you like to select another FTP server?"
+msg_cant_seem_to_write_out_resolv_conf="Can't seem to write out %s. Net cannot be used."
+msg_cd_dvd="CD/DVD"
+msg_cdrom="CDROM"
+msg_checking_access_to="Checking access to\n %s"
+msg_china="China"
+msg_choose_a_cd_dvd_type="Choose a CD/DVD type"
+msg_choose_a_dos_partition="Choose a DOS partition"
+msg_choose_a_floppy_drive="Choose a Floppy drive"
+msg_choose_a_ufs_partition="Choose a UFS partition"
+msg_choose_a_usb_partition="Choose a USB drive"
+msg_choose_installation_media="Choose Installation Media"
+msg_choose_installation_media_description="FreeBSD can be installed from a variety of different installation\nmedia, ranging from floppies to an Internet FTP server. If you're\ninstalling FreeBSD from a supported CD/DVD drive then this is generally\nthe best media to use if you have no overriding reason for using other\nmedia."
+msg_client_error="Client error, you could try an other server"
msg_command_failed_rest_of_script_aborted="Command \`%s' failed - rest of script aborted."
+msg_configuration_for_interface="Configuration for Interface"
+msg_could_not_unmount_the_cdrom_dvd="Could not unmount the CDROM/DVD from %s: %s"
+msg_could_not_unmount_the_dos_partition="Could not unmount the DOS partition from %s: %s"
+msg_could_not_unmount_the_nfs_partition="Could not unmount the NFS partition from %s: %s"
+msg_could_not_unmount_the_ufs_partition="Could not unmount the UFS partition from %s: %s"
+msg_couldnt_connect_to_proxy="Couldn't connect to proxy"
+msg_couldnt_connect_to_ftp_server="Couldn't connect to FTP server"
+msg_couldnt_open_ftp_connection="Couldn't open FTP connection to %s:\n %s."
msg_created_path="Created %s"
+msg_croatia="Croatia"
+msg_czech_republic="Czech Republic"
+msg_debugging="Debugging"
+msg_denmark="Denmark"
+msg_device_is_not_configured="The %s device is not configured. You will need to do so\nin the Networking configuration menu before proceeding."
+msg_dhcp="DHCP"
+msg_dialog_mixedform_navigation_help="Use <up>/<down> arrows to navigate between fields, TAB to focus buttons, and Enter for OK/Cancel."
+msg_directory="Directory"
msg_directory_not_found="%s: Directory not found."
+msg_done="Done"
+msg_dos="DOS"
+msg_editor="Editor"
+msg_emit_extra_debugging_output="Emit extra debugging output"
+msg_enter_a_fully_qualified_pathname_for_the_directory="Enter a fully qualified pathname for the directory\ncontaining the FreeBSD distribution files:"
+msg_enter_the_device_name_of_a_ufs_formatted_partition="Enter the device-name of a UFS formatted partition"
+msg_error="Error"
+msg_error_mounting_device="Error mounting %s on %s: %s"
+msg_error_mounting_floppy_device="Error mounting floppy %s (%s) on %s: %s"
+msg_error_mounting_usb_drive="Error mounting USB drive %s on %s: %s"
+msg_error_when_requesting_url="Error when requesting %s, you could try an other server"
+msg_estonia="Estonia"
msg_exit="Exit"
msg_exit_bsdconfig="Exit bsdconfig"
+msg_extra_options_to_ifconfig="Extra options to ifconfig (usually empty):"
+msg_failed_to_add_default_route="Failed to add a default route; please check your network configuration"
+msg_file_system="File System"
+msg_finland="Finland"
+msg_floppy="Floppy"
+msg_france="France"
+msg_ftp="FTP"
+msg_ftp_passive="FTP Passive"
+msg_ftp_username="FTP username"
+msg_germany="Germany"
+msg_greece="Greece"
+msg_help="Help"
+msg_host_name_including_domain="Host name (including domain)"
+msg_hostname_variable_not_set="WARNING: hostname variable not set and is a non-optional\nparameter. Please add this to your installation script\nor set the netInteractive variable (see bsdconfig man page)"
+msg_http="HTTP"
+msg_http_proxy="HTTP Proxy"
+msg_hungary="Hungary"
+msg_iceland="Iceland"
+msg_install_from_a_dos_partition="Install from a DOS partition"
+msg_install_from_a_floppy_disk_set="Install from a floppy disk set"
+msg_install_from_a_freebsd_cd_dvd="Install from a FreeBSD CD/DVD"
+msg_install_from_a_usb_drive="Install from a USB drive"
+msg_install_from_a_ufs_partition="Install from a UFS partition"
+msg_install_from_an_ftp_server="Install from an FTP server"
+msg_install_from_an_ftp_server_thru_firewall="Install from an FTP server through a firewall"
+msg_install_from_an_ftp_server_thru_proxy="Install from an FTP server through an HTTP proxy"
+msg_install_from_the_existing_filesystem="Install from the existing filesystem"
+msg_install_over_nfs="Install over NFS"
+msg_invalid_gateway_ipv4_address_specified="Invalid gateway IPv4 address specified"
+msg_invalid_hostname_value="Invalid hostname value"
+msg_invalid_ipv4_address="Invalid IPv4 address"
+msg_invalid_name_server_ip_address_specified="Invalid name server IP address specified"
+msg_invalid_netmask_value="Invalid netmask value"
+msg_invalid_nfs_path_specification="Invalid NFS path specification. Must be of the form:\nhost:/full/pathname/to/FreeBSD/distdir"
+msg_ipv4_address="IPv4 Address"
+msg_ipv4_gateway="IPv4 Gateway"
+msg_ipv6="IPv6"
+msg_ipv6_ready="IPv6 ready"
+msg_ireland="Ireland"
+msg_israel="Israel"
+msg_italy="Italy"
+msg_japan="Japan"
+msg_korea="Korea"
+msg_lithuania="Lithuania"
+msg_length_of_specified_url_is_too_long="Length of specified URL is %u characters. Allowable maximum is %u."
+msg_logging_in_to_user_at_host="Logging in to %s@%s.."
+msg_looking_up_host="Looking up host %s"
msg_main_menu="Main Menu"
+msg_main_site="Main Site"
+msg_media_timeout="Media Timeout"
+msg_media_type="Media Type"
msg_menu_text="If you've already installed FreeBSD, you may use\nthis menu to customize it somewhat to suit your\nparticular configuration. Most importantly, you\ncan use the Packages utility to load extra '3rd\nparty' software not provided in the base\ndistributions."
+msg_missing_ftp_host_or_directory="Missing FTP host or directory specification. FTP media not initialized."
msg_must_be_root_to_execute="%s: must be root to execute"
+msg_must_specify_a_host_name_of_some_sort="Must specify a host name of some sort!"
+msg_name_server="Name server"
+msg_net_device_init_failed="Net device init failed."
+msg_netmask="Netmask"
+msg_netherlands="Netherlands"
+msg_network_configuration="Network Configuration"
+msg_network_interface_information_required="Network interface information required"
msg_nfailed_attempts="%u incorrect password attempts"
+msg_nfs="NFS"
+msg_nfs_secure="NFS Secure"
+msg_nfs_server_talks_only_on_a_secure_port="NFS server talks only on a secure port"
+msg_nfs_slow="NFS Slow"
+msg_nfs_tcp="NFS TCP"
+msg_nfs_version_3="NFS version 3"
msg_no="No"
+msg_no_cd_dvd_devices_found="No CD/DVD devices found! Please check that your system's\nconfiguration is correct and that the CD/DVD drive is of a\nsupported type. For more information, consult the hardware\nguide in the Doc menu."
+msg_no_dos_primary_partitions_found="No DOS primary partitions found! This installation method is unavailable"
+msg_no_floppy_devices_found="No floppy devices found! Please check that your system's configuration\nis correct. For more information, consult the hardware guide in the Doc\nmenu."
+msg_no_gateway_has_been_set="No gateway has been set. You will be unable to access hosts\nnot on your local network"
+msg_no_network_devices="No network devices available!"
msg_no_such_file_or_directory="%s: %s: No such file or directory"
+msg_no_usb_devices_found="No USB devices found (try Options/Re-scan Devices)"
msg_no_username="No username provided!"
+msg_norway="Norway"
+msg_not_a_directory="%s: %s: Not a directory"
msg_not_found="not found"
+msg_not_yet_set="not yet set"
msg_ok="OK"
+msg_options="Options"
+msg_options_editor="Options Editor"
+msg_other="other"
msg_permission_denied="%s: %s: Permission denied"
+msg_please_check_the_url_and_try_again="No such directory: %s\nplease check the URL and try again."
msg_please_enter_password="Please enter your password for sudo(8):"
msg_please_enter_username_password="Please enter a username and password for sudo(8):"
+msg_please_enter_the_address_of_the_http_proxy="Please enter the address of the HTTP proxy in this format:\n hostname:port (the ':port' is optional, default is 3128)"
+msg_please_enter_the_full_nfs_file_specification="Please enter the full NFS file specification for the remote\nhost and directory containing the FreeBSD distribution files.\nThis should be in the format: hostname:/some/freebsd/dir"
+msg_please_enter_the_password_for_this_user="Please enter the password for this user:"
+msg_please_enter_the_username_you_wish_to_login_as="Please enter the username you wish to login as:"
+msg_please_insert_floppy_in_drive="Please insert floppy in %s"
+msg_please_insert_floppy_containing="Please insert floppy containing %s in %s"
+msg_please_select_a_cd_dvd_drive="FreeBSD can be installed directly from a CD/DVD containing a valid\nFreeBSD distribution. If you are seeing this menu it is because\nmore than one CD/DVD drive was found on your system. Please select\none of the following CD/DVD drives as your installation drive."
+msg_please_select_a_floppy_drive="You have more than one floppy drive. Please choose which drive\nyou would like to use."
+msg_please_select_a_freebsd_ftp_distribution_site="Please select a FreeBSD FTP distribution site"
+msg_please_select_dos_partition="FreeBSD can be installed directly from a DOS partition assuming,\nof course, that you have copied the relevant distributions into\nyour DOS partition before starting this installation. If this is\nnot the case then you should reboot DOS at this time and copy the\ndistributions you wish to install into a \"FREEBSD\" subdirectory\non one of your DOS partitions. Otherwise, please select the DOS\npartition containing the FreeBSD distribution files."
+msg_please_select_ufs_partition="FreeBSD can be installed directly from another FreeBSD partition\nthat is UFS formatted assuming, of course, that you have copied\nthe relevant distributions into said partition before starting\ninstallation."
+msg_please_select_a_usb_drive="You have more than one USB drive. Please choose which drive\nyou would like to use."
+msg_please_select_ethernet_device_to_configure="Please select the ethernet or PLIP device to configure."
+msg_please_select_the_site_closest_to_you_or_other="Please select the site closest to you or \"other\" if you'd like to\nspecify a different choice. Also note that not every site listed here\ncarries more than the base distribution kits. Only Primary sites are\nguaranteed to carry the full range of possible distributions."
+msg_please_specify_the_name_of_the_text_editor="Please specify the name of the text editor you wish to use:"
+msg_please_specify_the_number_of_seconds_to_wait="Please specify the number of seconds to wait for slow media:"
+msg_please_specify_the_release_you_wish_to_load="Please specify the release you wish to load or\n\"any\" for a generic release install:"
+msg_please_specify_url_of_a_freebsd_distribution="Please specify the URL of a FreeBSD distribution on a\nremote ftp site. This site must accept either anonymous\nftp or you should have set an ftp username and password\nin the Options screen.\n\nA URL looks like this: ftp://<hostname>/<path>\nWhere <path> is relative to the anonymous ftp directory or the\nhome directory of the user being logged in as."
+msg_poland="Poland"
+msg_portugal="Portugal"
msg_previous_syntax_errors="%s: Not overwriting \`%s' due to previous syntax errors"
+msg_primary="Primary"
+msg_probing_devices_please_wait_this_can_take_a_while="Probing devices, please wait (this can take a while)..."
msg_quick_start_how_to_use_this_menu_system="Quick start - How to use this menu system"
+msg_release_name="Release Name"
+msg_rerun_bsdconfig_initial_device_probe="Re-run bsdconfig initial device probe"
+msg_rescan_devices="Re-scan Devices"
+msg_reset="RESET!"
+msg_reset_all_values_to_startup_defaults="Reset all values to startup defaults"
+msg_reuse_old_ftp_site_selection_values="Re-use old FTP site selection values?"
+msg_romania="Romania"
+msg_russia="Russia"
+msg_scanning_for_dhcp_servers="Scanning for DHCP servers..."
+msg_scanning_for_ra_servers="Scanning for RA servers..."
msg_secure_mode_requires_x11="Secure-mode requires X11 (use \`-X')!"
msg_secure_mode_requires_root="Secure-mode requires root-access!"
+msg_select_a_site_thats_close="Select a site that's close!"
+msg_server_error_when_requesting_url="Server error when requesting %s, you could try an other server"
+msg_singapore="Singapore"
+msg_slovak_republic="Slovak Republic"
+msg_slovenia="Slovenia"
+msg_snapshots_server_japan="Snapshots Server Japan"
+msg_snapshots_server_sweden="Snapshots Server Sweden"
+msg_sorry_invalid_url="Sorry, %s is an invalid URL!"
msg_sorry_try_again="Sorry, try again."
+msg_south_africa="South Africa"
+msg_spain="Spain"
+msg_specify_some_other_ftp_site="Specify some other ftp site by URL"
+msg_sweden="Sweden"
+msg_switzerland="Switzerland"
+msg_taiwan="Taiwan"
+msg_the_current_installation_media_type="The current installation media type."
+msg_timeout_value_in_seconds_for_slow_media="Timeout value in seconds for slow media."
+msg_try_dhcp_configuration="Do you want to try DHCP configuration of the interface?"
+msg_try_ipv6_configuration="Do you want to try IPv6 configuration of the interface?"
msg_try_sudo_only_this_once="Try sudo(8) only this once"
+msg_turkey="Turkey"
+msg_ufs="UFS"
+msg_uk="UK"
+msg_ukraine="Ukraine"
+msg_unable_to_configure_device="Unable to configure the %s interface!\nThis installation method cannot be used."
+msg_unable_to_get_proper_ftp_path="Unable to get proper FTP path. FTP media not initialized."
+msg_unable_to_make_directory_mountpoint="Unable to make %s directory mountpoint for %s!"
msg_unable_to_open="Unable to open %s"
+msg_unknown="unknown"
msg_unknown_user="Unknown user: %s"
+msg_url_was_not_found="%s was not found, maybe directory or release-version are wrong?"
+msg_usa="USA"
msg_usage="Usage"
+msg_usb="USB"
+msg_use_defaults="Use Defaults"
+msg_use_nfs_version_3="Use NFS version 3"
+msg_use_tcp_protocol_for_nfs="Use TCP protocol for NFS"
msg_user_disallowed="User disallowed: %s"
+msg_user_is_using_a_slow_pc_or_ethernet_card="User is using a slow PC or Ethernet card"
+msg_username_and_password_to_use="Username and password to use instead of anonymous"
+msg_using_interface="Using interface %s"
+msg_using_usb_device="Using USB device: %s"
+msg_view_set_various_media_options="View/Set various media options"
+msg_which_release_to_attempt_to_load="Which release to attempt to load from installation media"
+msg_which_text_editor_to_use="Which text editor to use during installation"
+msg_would_you_like_to_bring_interface_up="Would you like to bring the %s interface up right now?"
msg_yes="Yes"
msg_you_are_not_root_but="You are not root but %s can use sudo(8).\nWhat would you like to do?"
+msg_you_may_remove_the_floppy="You may remove the floppy from %s"
+msg_youve_already_done_the_network_configuration="You've already done the network configuration once,\nwould you like to skip over it now?"
+tcplayout_extras_help="Any interface-specific options to ifconfig you would like to add"
+tcplayout_extras_help_for_plip="For PLIP configuration, you must enter the peer's IP address here."
+tcplayout_gateway_help="IPv4 address of host forwarding packets to non-local destinations"
+tcplayout_hostname_help="Your fully-qualified hostname, e.g. foo.example.com"
+tcplayout_ipaddr_help="The IPv4 address to be used for this interface"
+tcplayout_nameserver_help="IPv4 or IPv6 address of your local DNS server"
+tcplayout_netmask_help="The netmask for this interface, e.g. 255.255.255.0 for a class C network"
diff --git a/usr.sbin/bsdconfig/include/network_device.hlp b/usr.sbin/bsdconfig/include/network_device.hlp
new file mode 100644
index 0000000..affa86a
--- /dev/null
+++ b/usr.sbin/bsdconfig/include/network_device.hlp
@@ -0,0 +1,58 @@
+You can do network installations over 3 types of communications links:
+
+ Serial port: SLIP / PPP
+ Parallel port: PLIP (laplink cable)
+ Ethernet: A standard Ethernet controller (includes some
+ PCMCIA networking cards).
+
+SLIP support is rather primitive and limited primarily to directly
+connected links, such as a serial cable running between a laptop
+computer and another PC. The link must be hard-wired as the SLIP
+installation doesn't currently offer a dialing capability (that
+facility is offered by the PPP utility, which should be used in
+preference to SLIP whenever possible). When you choose the SLIP
+option, you'll be given the option of later editing the slattach
+command before it's run on the serial line. It is expected that
+you'll run slattach (or some equivalent command) on the other end of
+the link at that time and bring up the line. FreeBSD will then
+install itself at serial speeds of up to 115.2K/baud (the recommended
+speed for a hardwired cable).
+
+If you're using a modem then PPP is almost certainly your only choice.
+Make sure that you have your service provider's information handy as
+you'll need to know it fairly early in the installation process. You
+will need to know your service provider's IP address, the IP address
+of your provider's DNS server, and possibly your own IP address unless
+your ISP supports dynamic negotiation, most do. If you do not choose
+a PAP or CHAP login you will also need to know how to use the various
+"AT commands" to dial the ISP with your particular brand of modem as
+the PPP dialer provides only a very simple terminal emulator and has no
+"modem capabilities database". If you choose a PAP or CHAP login you
+can simply enter `dial' (without the quotes) at the ppp prompt if your
+modem uses the Hayes compatible AT command set.
+
+If a hard-wired connection to another FreeBSD (2.0R or later) machine
+is available, you might also consider installing over a "laplink"
+parallel port cable. The data rate over the parallel port is much
+higher than what is typically possible over a serial line, and speeds
+of over 50KB/sec are not uncommon.
+
+Finally, for the fastest possible network installation, an Ethernet
+adaptor is always a good choice! FreeBSD supports most common PC
+Ethernet cards, a table of which is provided in the FreeBSD Hardware
+Guide (see the `Documentation' entry in the main menu). If you are
+using one of the supported PCMCIA Ethernet cards, also be sure that
+it's plugged in BEFORE the laptop is powered on! Sysinstall does not,
+unfortunately, currently support "hot insertion" of PCMCIA cards.
+
+You will also need to know your IP address on the network, the
+"netmask" value for your address class, and the name of your machine.
+Your system administrator can tell you which values to use for your
+particular network setup. If you will be referring to other hosts by
+name rather than IP address, you'll also need a name server and
+possibly the address of a gateway (if you're using PPP, it's your
+provider's IP address) to use in talking to it. If you do not know
+the answers to all or most of these questions then you should really
+probably talk to your system administrator FIRST before trying this
+type of installation! Choosing the wrong IP address on a busy network
+will NOT make you popular with your systems administrator! :-)
diff --git a/usr.sbin/bsdconfig/include/options.hlp b/usr.sbin/bsdconfig/include/options.hlp
new file mode 100644
index 0000000..674e48d
--- /dev/null
+++ b/usr.sbin/bsdconfig/include/options.hlp
@@ -0,0 +1,98 @@
+The following options may be set from this screen.
+
+NFS Secure: NFS server talks only on a secure port
+
+ This is most commonly used when talking to Sun workstations, which
+ will not talk NFS over "non privileged" ports.
+
+
+NFS Slow: User is using a slow PC or Ethernet card
+
+ Use this option if you have a slow PC (386) or an Ethernet card
+ with poor performance being "fed" by NFS on a higher-performance
+ workstation. This will throttle the workstation back to prevent
+ the PC from becoming swamped with data.
+
+
+NFS TCP: Use TCP for the NFS mount
+
+ This option can be used if your NFS server supports TCP
+ connections; not all do! This may be useful if your NFS server
+ is at a remote site in which case it may offer some additional
+ stability.
+
+
+NFS version 3: Use NFS version 3
+
+ This option forces the use of NFS version 3 and is on by default.
+ If your NFS server only supports NFS version 2, disable this option.
+
+
+Debugging: Turn on the extra debugging flag
+
+ This turns on a lot of extra noise in between dialogs (unless
+ debugFile has been set, sending the data to a logfile instead).
+ Optionally, if debugFile begins with a plus sign (`+'), output will
+ occur both on standard output and to debugFile (minus leading plus).
+ If your installation should fail for any reason, PLEASE turn this
+ flag on when attempting to reproduce the problem. It will provide a
+ lot of extra debugging at the failure point and may be very helpful
+ to the developers in tracking such problems down!
+
+
+DHCP: Enable DHCP configuration of interfaces
+
+ This option specifies whether DHCP configuration of interfaces
+ may be attempted. The default setting is to interactively ask
+ the user.
+
+
+IPv6: Enable IPv6 router solicitation configuration
+
+ This option specifies whether automatic configuration of IPv6
+ interfaces may be attempted. This uses the router solicitation
+ method of automatic configuration. The default setting is to
+ interactively ask the user.
+
+
+FTP username: Specify username and password instead of anonymous.
+
+ By default, the installation attempts to log in as the
+ anonymous user. If you wish to log in as someone else,
+ specify the username and password with this option.
+
+
+Editor: Specify which screen editor to use.
+
+ At various points during the installation it may be necessary
+ to customize some text file, at which point the user will be
+ thrown unceremoniously into a screen editor. A relatively
+ simplistic editor which shows its command set on-screen is
+ selected by default, but UNIX purists may wish to change this
+ setting to `/usr/bin/vi'.
+
+
+Release Name: Which release to attempt to load from installation media.
+
+ You should only change this option if you're really sure you know
+ what you are doing! This will change the release name used by
+ bsdconfig when fetching components of any distributions, and
+ is a useful way of using a more recent installation boot floppy
+ with an older release (say, on CDROM).
+
+
+Media Type: Which media type is being used.
+
+ This is mostly informational and indicates which media type (if any)
+ was last selected in the Media menu. It's also a convenient short-cut
+ to the media menu itself.
+
+
+Re-scan Devices:
+
+ Reprobe the system for devices.
+
+
+Use Defaults: Use default values.
+
+ Reset all options back to their default values.
diff --git a/usr.sbin/bsdconfig/networking/include/tcp.hlp b/usr.sbin/bsdconfig/include/tcp.hlp
index 6d0ba10..6d0ba10 100644
--- a/usr.sbin/bsdconfig/networking/include/tcp.hlp
+++ b/usr.sbin/bsdconfig/include/tcp.hlp
diff --git a/usr.sbin/bsdconfig/networking/devices b/usr.sbin/bsdconfig/networking/devices
index 443294f..f9c27b4 100755
--- a/usr.sbin/bsdconfig/networking/devices
+++ b/usr.sbin/bsdconfig/networking/devices
@@ -1,6 +1,6 @@
#!/bin/sh
#-
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -34,6 +34,7 @@ f_dprintf "%s: loading includes..." "$0"
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/mustberoot.subr
f_include $BSDCFG_SHARE/sysrc.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
f_include $BSDCFG_SHARE/networking/device.subr
f_include $BSDCFG_SHARE/networking/ipaddr.subr
f_include $BSDCFG_SHARE/networking/media.subr
diff --git a/usr.sbin/bsdconfig/networking/include/Makefile b/usr.sbin/bsdconfig/networking/include/Makefile
index be6cacb..c93d486 100644
--- a/usr.sbin/bsdconfig/networking/include/Makefile
+++ b/usr.sbin/bsdconfig/networking/include/Makefile
@@ -3,7 +3,7 @@
NO_OBJ=
FILESDIR= ${LIBEXECDIR}/bsdconfig/120.networking/include
-FILES= messages.subr tcp.hlp
+FILES= messages.subr
beforeinstall:
mkdir -p ${DESTDIR}${FILESDIR}
diff --git a/usr.sbin/bsdconfig/networking/share/common.subr b/usr.sbin/bsdconfig/networking/share/common.subr
index e501a9c..1a37a9c 100644
--- a/usr.sbin/bsdconfig/networking/share/common.subr
+++ b/usr.sbin/bsdconfig/networking/share/common.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_COMMON_SUBR" ]; then _NETWORKING_COMMON_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -33,17 +33,6 @@ BSDCFG_SHARE="/usr/share/bsdconfig"
############################################################ FUNCTIONS
-# f_mounted $local_directory
-#
-# Return success if a filesystem is mounted on a particular directory.
-#
-f_mounted()
-{
- local dir="$1"
- [ -d "$dir" ] || return $FAILURE
- mount | grep -Eq " on $dir \([^)]+\)$"
-}
-
# f_jailed
#
# Returns true if the current process is jail(8)ed.
diff --git a/usr.sbin/bsdconfig/networking/share/device.subr b/usr.sbin/bsdconfig/networking/share/device.subr
index 23ac83b..cac8ef5 100644
--- a/usr.sbin/bsdconfig/networking/share/device.subr
+++ b/usr.sbin/bsdconfig/networking/share/device.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_DEVICE_SUBR" ]; then _NETWORKING_DEVICE_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,10 @@ if [ ! "$_NETWORKING_DEVICE_SUBR" ]; then _NETWORKING_DEVICE_SUBR=1
BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." networking/device.subr
+f_include $BSDCFG_SHARE/device.subr
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/sysrc.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
f_include $BSDCFG_SHARE/networking/common.subr
f_include $BSDCFG_SHARE/networking/ipaddr.subr
f_include $BSDCFG_SHARE/networking/media.subr
@@ -43,8 +45,6 @@ f_include $BSDCFG_SHARE/networking/routing.subr
BSDCFG_LIBE="/usr/libexec/bsdconfig" APP_DIR="120.networking"
f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
-TCP_HELPFILE=$BSDCFG_LIBE/$APP_DIR/include/tcp.hlp
-
############################################################ GLOBALS
#
@@ -55,133 +55,6 @@ TCP_HELPFILE=$BSDCFG_LIBE/$APP_DIR/include/tcp.hlp
############################################################ FUNCTIONS
-# f_device_desc $device_name
-#
-# Print a description for a device name (eg., `fxp0').
-#
-f_device_desc()
-{
- local device="$1" d="[1234567890]" desc=""
-
- # Check variables
- [ "$device" ] || return $SUCCESS
-
- #
- # Return sysctl MIB dev.NAME.UNIT.%desc if it exists,
- # otherwise fall through to below static list.
- #
- if f_have sysctl; then
- local devname devunit
- devname="${device%%$d*}"
- devunit="${device#$devname}"
- devunit="${devunit%%[a-zA-Z_]*}"
- sysctl -n "dev.$devname.$devunit.%desc" 2> /dev/null &&
- return $SUCCESS
- fi
-
- case "$device" in
- # Network devices
- ae$d) desc="Attansic/Atheros L2 Fast Ethernet";;
- age$d) desc="Attansic/Atheros L1 Gigabit Ethernet";;
- alc$d) desc="Atheros AR8131/AR8132 PCIe Ethernet";;
- ale$d) desc="Atheros AR8121/AR8113/AR8114 PCIe Ethernet";;
- an$d) desc="Aironet 4500/4800 802.11 wireless adapter";;
- ath$d) desc="Atheros IEEE 802.11 wireless adapter";;
- aue$d) desc="ADMtek USB Ethernet adapter";;
- axe$d) desc="ASIX Electronics USB Ethernet adapter";;
- bce$d) desc="Broadcom NetXtreme II Gigabit Ethernet card";;
- bfe$d) desc="Broadcom BCM440x PCI Ethernet card";;
- bge$d) desc="Broadcom BCM570x PCI Gigabit Ethernet card";;
- bm$d) desc="Apple BMAC Built-in Ethernet";;
- bwn$d) desc="Broadcom BCM43xx IEEE 802.11 wireless adapter";;
- cas$d) desc="Sun Cassini/Cassini+ or NS DP83065 Saturn Ethernet";;
- cc3i$d) desc="SDL HSSI sync serial PCI card";;
- cue$d) desc="CATC USB Ethernet adapter";;
- cxgb$d) desc="Chelsio T3 10Gb Ethernet card";;
- dc$d) desc="DEC/Intel 21143 (and clones) PCI Fast Ethernet card";;
- de$d) desc="DEC DE435 PCI NIC or other DC21040-AA based card";;
- disc$d) desc="Software discard network interface";;
- ed$d) desc="Novell NE1000/2000; 3C503; NE2000-compatible PCMCIA";;
- el$d) desc="3Com 3C501 Ethernet card";;
- em$d) desc="Intel(R) PRO/1000 Ethernet card";;
- en$d) desc="Efficient Networks ATM PCI card";;
- ep$d) desc="3Com 3C509 Ethernet card/3C589 PCMCIA";;
- et$d) desc="Agere ET1310 based PCI Express Gigabit Ethernet card";;
- ex$d) desc="Intel EtherExpress Pro/10 Ethernet card";;
- fe$d) desc="Fujitsu MB86960A/MB86965A Ethernet card";;
- fpa$d) desc="DEC DEFPA PCI FDDI card";;
- fwe$d) desc="FireWire Ethernet emulation";;
- fwip$d) desc="IP over FireWire";;
- fxp$d) desc="Intel EtherExpress Pro/100B PCI Fast Ethernet card";;
- gem$d) desc="Apple GMAC or Sun ERI/GEM Ethernet adapter";;
- hme$d) desc="Sun HME (Happy Meal Ethernet) Ethernet adapter";;
- ie$d) desc="AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210";;
- igb$d) desc="Intel(R) PRO/1000 PCI Express Gigabit Ethernet card";;
- ipw$d) desc="Intel PRO/Wireless 2100 IEEE 802.11 adapter";;
- iwi$d) desc="Intel PRO/Wireless 2200BG/2225BG/2915ABG adapter";;
- iwn$d) desc="Intel Wireless WiFi Link 4965AGN IEEE 802.11n adapter";;
- ix$d) desc="Intel Etherexpress Ethernet card";;
- ixgb$d) desc="Intel(R) PRO/10Gb Ethernet card";;
- ixgbe$d) desc="Intel(R) PRO/10Gb Ethernet card";;
- jme$d) desc="JMicron JMC250 Gigabit/JMC260 Fast Ethernet";;
- kue$d) desc="Kawasaki LSI USB Ethernet adapter";;
- le$d) desc="AMD Am7900 LANCE or Am79C9xx PCnet Ethernet adapter";;
- lge$d) desc="Level 1 LXT1001 Gigabit Ethernet card";;
- lnc$d) desc="Lance/PCnet (Isolan/Novell NE2100/NE32-VL) Ethernet";;
- lp$d) desc="Parallel Port IP (PLIP) peer connection";;
- lo$d) desc="Loop-back (local) network interface";;
- malo$d) desc="Marvell Libertas 88W8335 802.11 wireless adapter";;
- msk$d) desc="Marvell/SysKonnect Yukon II Gigabit Ethernet";;
- mxge$d) desc="Myricom Myri10GE 10Gb Ethernet card";;
- nfe$d) desc="NVIDIA nForce MCP Ethernet";;
- ng${d}_*|ng$d${d}_*|ng$d$d${d}_*|ng$d$d$d${d}_*|ng$d$d$d$d${d}_*)
- desc="Vimage netgraph(4) bridged Ethernet device";;
- nge$d) desc="NatSemi PCI Gigabit Ethernet card";;
- nve$d) desc="NVIDIA nForce MCP Ethernet";;
- nxge$d) desc="Neterion Xframe 10GbE Server/Storage adapter";;
- pcn$d) desc="AMD Am79c79x PCI Ethernet card";;
- plip$d) desc="Parallel Port IP (PLIP) peer connection";;
- ral$d) desc="Ralink Technology IEEE 802.11 wireless adapter";;
- ray$d) desc="Raytheon Raylink 802.11 wireless adapter";;
- re$d) desc="RealTek 8139C+/8169/8169S/8110S PCI Ethernet adapter";;
- rl$d) desc="RealTek 8129/8139 PCI Ethernet card";;
- rue$d) desc="RealTek USB Ethernet card";;
- rum$d) desc="Ralink Technology USB IEEE 802.11 wireless adapter";;
- sf$d) desc="Adaptec AIC-6915 PCI Ethernet card";;
- sge$d) desc="Silicon Integrated Systems SiS190/191 Ethernet";;
- sis$d) desc="SiS 900/SiS 7016 PCI Ethernet card";;
- sk$d) desc="SysKonnect PCI Gigabit Ethernet card";;
- sn$d) desc="SMC/Megahertz Ethernet card";;
- snc$d) desc="SONIC Ethernet card";;
- sr$d) desc="SDL T1/E1 sync serial PCI card";;
- ste$d) desc="Sundance ST201 PCI Ethernet card";;
- stge$d) desc="Sundance/Tamarack TC9021 Gigabit Ethernet";;
- ti$d) desc="Alteon Networks PCI Gigabit Ethernet card";;
- tl$d) desc="Texas Instruments ThunderLAN PCI Ethernet card";;
- tx$d) desc="SMC 9432TX Ethernet card";;
- txp$d) desc="3Com 3cR990 Ethernet card";;
- uath$d) desc="Atheros AR5005UG and AR5005UX USB wireless adapter";;
- upgt$d) desc="Conexant/Intersil PrismGT USB wireless adapter";;
- ural$d) desc="Ralink Technology RT2500USB 802.11 wireless adapter";;
- urtw$d) desc="Realtek 8187L USB wireless adapter";;
- vge$d) desc="VIA VT612x PCI Gigabit Ethernet card";;
- vlan$d|vlan$d$d|vlan$d$d$d|vlan$d$d$d$d|vlan$d$d$d$d$d)
- desc="IEEE 802.1Q VLAN network interface";;
- vr$d) desc="VIA VT3043/VT86C100A Rhine PCI Ethernet card";;
- vx$d) desc="3COM 3c590 / 3c595 Ethernet card";;
- wb$d) desc="Winbond W89C840F PCI Ethernet card";;
- wi$d) desc="Lucent WaveLAN/IEEE 802.11 wireless adapter";;
- wpi$d) desc="Intel 3945ABG IEEE 802.11 wireless adapter";;
- wx$d) desc="Intel Gigabit Ethernet (82452) card";;
- xe$d) desc="Xircom/Intel EtherExpress Pro100/16 Ethernet card";;
- xl$d) desc="3COM 3c90x / 3c90xB PCI Ethernet card";;
- zyd$d) desc="ZyDAS ZD1211/ZD1211B USB 802.11 wireless adapter";;
- # Unknown device
- *) desc="<unknown network interface type>";;
- esac
- printf "%s\n" "$desc"
-}
-
# f_dialog_menu_netdev
#
# Display a list of network devices with descriptions.
diff --git a/usr.sbin/bsdconfig/networking/share/hostname.subr b/usr.sbin/bsdconfig/networking/share/hostname.subr
index b276059..61df2b4 100644
--- a/usr.sbin/bsdconfig/networking/share/hostname.subr
+++ b/usr.sbin/bsdconfig/networking/share/hostname.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_HOSTNAME_SUBR" ]; then _NETWORKING_HOSTNAME_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -41,63 +41,6 @@ f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
############################################################ FUNCTIONS
-# f_validate_hostname $hostname
-#
-# Returns zero if the given argument (a fully-qualified hostname) is compliant
-# with standards set-forth in RFC's 952 and 1123 of the Network Working Group:
-#
-# RFC 952 - DoD Internet host table specification
-# http://tools.ietf.org/html/rfc952
-#
-# RFC 1123 - Requirements for Internet Hosts - Application and Support
-# http://tools.ietf.org/html/rfc1123
-#
-# See http://en.wikipedia.org/wiki/Hostname for a brief overview.
-#
-# The return status for invalid hostnames is one of:
-# 255 Entire hostname exceeds the maximum length of 255 characters.
-# 63 One or more individual labels within the hostname (separated by
-# dots) exceeds the maximum of 63 characters.
-# 1 One or more individual labels within the hostname contains one
-# or more invalid characters.
-# 2 One or more individual labels within the hostname starts or
-# ends with a hyphen (hyphens are allowed, but a label cannot
-# begin or end with a hyphen).
-# 3 One or more individual labels within the hostname are null.
-#
-# If the hostname is determined to be invalid, the appropriate error will be
-# displayed using the f_show_msg function.
-#
-f_validate_hostname()
-{
- local fqhn="$1"
-
- ( # Operate within a sub-shell to protect the parent environment
-
- # Return error if the hostname exceeds 255 characters
- [ ${#fqhn} -gt 255 ] && exit 255
-
- IFS="." # Split on `dot'
- for label in $fqhn; do
-
- # Return error if the label exceeds 63 characters
- [ ${#label} -gt 63 ] && exit 63
-
- # Return error if the label is null
- [ "$label" ] || exit 3
-
- # Return error if label begins/ends with dash
- case "$label" in
- -*|*-) exit 2
- esac
-
- # Return error if the label contains any invalid chars
- echo "$label" | grep -q '^[[:alnum:]-]*$' || exit 1
-
- done
- )
-}
-
# f_dialog_hnerror $error $hostname
#
# Display a msgbox with the appropriate error message for an error returned by
diff --git a/usr.sbin/bsdconfig/networking/share/ipaddr.subr b/usr.sbin/bsdconfig/networking/share/ipaddr.subr
index d5398e5..4b39dd2 100644
--- a/usr.sbin/bsdconfig/networking/share/ipaddr.subr
+++ b/usr.sbin/bsdconfig/networking/share/ipaddr.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_IPADDR_SUBR" ]; then _NETWORKING_IPADDR_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -40,75 +40,10 @@ f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
############################################################ FUNCTIONS
-# f_ifconfig_inet $interface
-#
-# Returns the IPv4 address associated with $interface.
-#
-f_ifconfig_inet()
-{
- local interface="$1"
- ifconfig "$interface" 2> /dev/null | awk \
- '
- BEGIN { found = 0 }
- ( $1 == "inet" ) \
- {
- print $2
- found = 1
- exit
- }
- END { exit ! found }
- '
-}
-
-# f_validate_ipaddr $ipaddr
-#
-# Returns zero if the given argument (an IP address) is of the proper format.
-#
-# The return status for invalid IP address is one of:
-# 1 One or more individual octets within the IP address (separated
-# by dots) contains one or more invalid characters.
-# 2 One or more individual octets within the IP address are null
-# and/or missing.
-# 3 One or more individual octets within the IP address exceeds the
-# maximum of 255 (or 2^8, being an octet comprised of 8 bits).
-# 4 The IP address has either too few or too many octets.
-#
-f_validate_ipaddr()
-{
- local ip="$1"
-
- ( # Operate within a sub-shell to protect the parent environment
-
- # Track number of octets for error checking
- noctets=0
-
- IFS="." # Split on `dot'
- for octet in $ip; do
-
- # Return error if the octet is null
- [ "$octet" ] || exit 2
-
- # Return error if not a whole integer
- f_isinteger "$octet" || exit 1
-
- # Return error if not a positive integer
- [ $octet -ge 0 ] || exit 1
-
- # Return error if the octet exceeds 255
- [ $octet -gt 255 ] && exit 3
-
- noctets=$(( $noctets + 1 ))
-
- done
-
- [ $noctets -eq 4 ] || exit 4
- )
-}
-
# f_dialog_iperror $error $ipaddr
#
# Display a msgbox with the appropriate error message for an error returned by
-# the f_validate_ipaddr function above.
+# the f_validate_ipaddr function.
#
f_dialog_iperror()
{
@@ -144,141 +79,6 @@ f_dialog_validate_ipaddr()
return $retval
}
-# f_validate_ipaddr6 $ipv6_addr
-#
-# Returns zero if the given argument (an IPv6 address) is of the proper format.
-#
-# The return status for invalid IP address is one of:
-# 1 One or more individual segments within the IP address
-# (separated by colons) contains one or more invalid characters.
-# Segments must contain only combinations of the characters 0-9,
-# A-F, or a-f.
-# 2 Too many/incorrect null segments. A single null segment is
-# allowed within the IP address (separated by colons) but not
-# allowed at the beginning or end (unless a double-null segment;
-# i.e., "::*" or "*::").
-# 3 One or more individual segments within the IP address
-# (separated by colons) exceeds the length of 4 hex-digits.
-# 4 The IP address entered has either too few (less than 3), too
-# many (more than 8), or not enough segments, separated by
-# colons.
-# 5* The IPv4 address at the end of the IPv6 address is invalid.
-# * When there is an error with the dotted-quad IPv4 address at the
-# end of the IPv6 address, the return value of 5 is OR'd with a
-# bit-shifted (<< 4) return of f_validate_ipaddr.
-#
-f_validate_ipaddr6()
-{
- local ip="$1"
-
- ( # Operate within a sub-shell to protect the parent environment
-
- IFS=":" # Split on `colon'
- set -- $ip:
-
- # Return error if too many or too few segments
- # Using 9 as max in case of leading or trailing null spanner
- [ $# -gt 9 -o $# -lt 3 ] && exit 4
-
- h="[0-9A-Fa-f]"
- nulls=0
- nsegments=$#
- contains_ipv4_segment=
-
- while [ $# -gt 0 ]; do
-
- segment="${1%:}"
- shift
-
- #
- # Return error if this segment makes one null too-many.
- # A single null segment is allowed anywhere in the
- # middle as well as double null segments are allowed at
- # the beginning or end (but not both).
- #
- if [ ! "$segment" ]; then
- nulls=$(( $nulls + 1 ))
- if [ $nulls -eq 3 ]; then
- # Only valid syntax for 3 nulls is `::'
- [ "$ip" = "::" ] || exit 2
- elif [ $nulls -eq 2 ]; then
- # Only valid if begins/ends with `::'
- case "$ip" in
- ::*|*::) : fall thru ;;
- *) exit 2
- esac
- fi
- continue
- fi
-
- #
- # Return error if not a valid hexadecimal short
- #
- case "$segment" in
- $h|$h$h|$h$h$h|$h$h$h$h)
- : valid segment of 1-4 hexadecimal digits
- ;;
- *[!0-9A-Fa-f]*)
- # Segment contains at least one invalid char
-
- # Return error immediately if not last segment
- [ $# -eq 0 ] || exit 1
-
- # Otherwise, check for legacy IPv4 notation
- case "$segment" in
- *[!0-9.]*)
- # Segment contains at least one invalid
- # character even for an IPv4 address
- exit 1
- esac
-
- # Return error if not enough segments
- if [ $nulls -eq 0 ]; then
- [ $nsegments -eq 7 ] || exit 4
- fi
-
- contains_ipv4_segment=1
-
- # Validate the IPv4 address
- f_validate_ipaddr "$segment" ||
- exit $(( 5 | $? << 4 ))
- ;;
- *)
- # Segment characters are all valid but too many
- exit 3
- esac
-
- done
-
- if [ $nulls -eq 1 ]; then
- # Single null segment cannot be at beginning/end
- case "$ip" in
- :*|*:) exit 2
- esac
- fi
-
- #
- # A legacy IPv4 address can span the last two 16-bit segments,
- # reducing the amount of maximum allowable segments by-one.
- #
- maxsegments=8
- if [ "$contains_ipv4_segment" ]; then
- maxsegments=7
- fi
-
- case $nulls in
- # Return error if missing segments with no null spanner
- 0) [ $nsegments -eq $maxsegments ] || exit 4 ;;
- # Return error if null spanner with too many segments
- 1) [ $nsegments -le $maxsegments ] || exit 4 ;;
- # Return error if leading/trailing `::' with too many segments
- 2) [ $nsegments -le $(( $maxsegments + 1 )) ] || exit 4 ;;
- esac
-
- exit $SUCCESS
- )
-}
-
# f_dialog_ip6error $error $ipv6_addr
#
# Display a msgbox with the appropriate error message for an error returned by
diff --git a/usr.sbin/bsdconfig/networking/share/netmask.subr b/usr.sbin/bsdconfig/networking/share/netmask.subr
index 3a8665d..e6838e5 100644
--- a/usr.sbin/bsdconfig/networking/share/netmask.subr
+++ b/usr.sbin/bsdconfig/networking/share/netmask.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_NETMASK_SUBR" ]; then _NETWORKING_NETMASK_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -40,87 +40,6 @@ f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
############################################################ FUNCTIONS
-# f_ifconfig_netmask $interface
-#
-# Returns the IPv4 subnet mask associated with $interface.
-#
-f_ifconfig_netmask()
-{
- local interface="$1" octets
- octets=$( ifconfig "$interface" 2> /dev/null | awk \
- '
- BEGIN { found = 0 }
- ( $1 == "inet" ) \
- {
- printf "%s %s %s %s\n",
- substr($4,3,2),
- substr($4,5,2),
- substr($4,7,2),
- substr($4,9,2)
- found = 1
- exit
- }
- END { exit ! found }
- ' ) || return $FAILURE
-
- local octet netmask=
- for octet in $octets; do
- netmask="$netmask${netmask:+.}$( printf "%u" "0x$octet" )"
- done
- echo $netmask
-}
-
-# f_validate_netmask $netmask
-#
-# Returns zero if the given argument (a subnet mask) is of the proper format.
-#
-# The return status for invalid IP address is one of:
-# 1 One or more individual fields within the subnet mask (separated
-# by dots) contains one or more invalid characters.
-# 2 One or more individual fields within the subnet mask are null
-# and/or missing.
-# 3 One or more individual fields within the subnet mask exceeds
-# the maximum of 255 (a full 8-bit register).
-# 4 The subnet mask has either too few or too many fields.
-# 5 One or more individual fields within the subnet mask is an
-# invalid integer (only 0,128,192,224,240,248,252,254,255 are
-# valid integers).
-#
-f_validate_netmask()
-{
- local mask="$1"
-
- ( # Operate within a sub-shell to protect the parent environment
-
- # Track number of fields for error checking
- nfields=0
-
- IFS="." # Split on `dot'
- for field in $mask; do
-
- # Return error if the field is null
- [ "$field" ] || exit 2
-
- # Return error if not a whole positive integer
- f_isinteger "$field" || exit 1
-
- # Return error if the field exceeds 255
- [ $field -gt 255 ] && exit 3
-
- # Return error if the field is an invalid integer
- case "$field" in
- 0|128|192|224|240|248|252|254|255) :;;
- *) exit 5;;
- esac
-
- nfields=$(( $nfields + 1 ))
-
- done
-
- [ $nfields -eq 4 ] || exit 4
- )
-}
-
# f_dialog_maskerror $error $netmask
#
# Display a msgbox with the appropriate error message for an error returned by
diff --git a/usr.sbin/bsdconfig/networking/share/resolv.subr b/usr.sbin/bsdconfig/networking/share/resolv.subr
index 7d9af3b..b525a4d 100644
--- a/usr.sbin/bsdconfig/networking/share/resolv.subr
+++ b/usr.sbin/bsdconfig/networking/share/resolv.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_RESOLV_SUBR" ]; then _NETWORKING_RESOLV_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@ BSDCFG_SHARE="/usr/share/bsdconfig"
f_dprintf "%s: loading includes..." networking/resolv.subr
f_include $BSDCFG_SHARE/dialog.subr
f_include $BSDCFG_SHARE/strings.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
f_include $BSDCFG_SHARE/networking/common.subr
f_include $BSDCFG_SHARE/networking/ipaddr.subr
@@ -42,11 +43,6 @@ f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
############################################################ CONFIGURATION
#
-# Path to resolv.conf(5).
-#
-: ${RESOLV_CONF:="/etc/resolv.conf"}
-
-#
# When updating resolv.conf(5), should we populate the `search' directive with
# all possible sub-domains? In example, if the domain is "sub.domain.com", when
# the below option is set to 1, include both "sub.domain.com" and "domain.com"
@@ -103,25 +99,6 @@ f_resolv_conf_search()
'
}
-# f_resolv_conf_nameservers
-#
-# Returns nameserver(s) configured in resolv.conf(5).
-#
-f_resolv_conf_nameservers()
-{
- awk \
- '
- BEGIN { found = 0 }
- ( $1 == "nameserver" ) \
- {
- print $2
- found = 1
- }
- END { exit ! found }
- ' \
- "$RESOLV_CONF" 2> /dev/null
-}
-
# f_dialog_resolv_conf_update $hostname
#
# Updates the search/domain directives in resolv.conf(5) given a valid fully-
diff --git a/usr.sbin/bsdconfig/networking/share/routing.subr b/usr.sbin/bsdconfig/networking/share/routing.subr
index 4207ab2..2d8cafc 100644
--- a/usr.sbin/bsdconfig/networking/share/routing.subr
+++ b/usr.sbin/bsdconfig/networking/share/routing.subr
@@ -1,6 +1,6 @@
if [ ! "$_NETWORKING_ROUTING_SUBR" ]; then _NETWORKING_ROUTING_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -33,6 +33,7 @@ BSDCFG_SHARE="/usr/share/bsdconfig"
f_dprintf "%s: loading includes..." networking/routing.subr
f_include $BSDCFG_SHARE/sysrc.subr
f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
f_include $BSDCFG_SHARE/networking/common.subr
f_include $BSDCFG_SHARE/networking/ipaddr.subr
@@ -41,25 +42,6 @@ f_include_lang $BSDCFG_LIBE/$APP_DIR/include/messages.subr
############################################################ FUNCTIONS
-# f_route_get_default
-#
-# Returns the IP address of the currently active default router.
-#
-f_route_get_default()
-{
- route -n get default 2> /dev/null | awk \
- '
- BEGIN { found = 0 }
- ( $1 == "gateway:" ) \
- {
- print $2
- found = 1
- exit
- }
- END { exit ! found }
- '
-}
-
# f_dialog_input_defaultrouter
#
# Edits the default router.
diff --git a/usr.sbin/bsdconfig/share/Makefile b/usr.sbin/bsdconfig/share/Makefile
index cd56dfc..4c20c2b 100644
--- a/usr.sbin/bsdconfig/share/Makefile
+++ b/usr.sbin/bsdconfig/share/Makefile
@@ -2,9 +2,11 @@
NO_OBJ=
+SUBDIR= media
+
FILESDIR= ${SHAREDIR}/bsdconfig
-FILES= common.subr dialog.subr mustberoot.subr script.subr \
- strings.subr sysrc.subr variable.subr
+FILES= common.subr device.subr dialog.subr mustberoot.subr \
+ script.subr strings.subr struct.subr sysrc.subr variable.subr
beforeinstall:
mkdir -p ${DESTDIR}${FILESDIR}
diff --git a/usr.sbin/bsdconfig/share/common.subr b/usr.sbin/bsdconfig/share/common.subr
index c66a54f..cb9096f 100644
--- a/usr.sbin/bsdconfig/share/common.subr
+++ b/usr.sbin/bsdconfig/share/common.subr
@@ -1,7 +1,7 @@
if [ ! "$_COMMON_SUBR" ]; then _COMMON_SUBR=1
#
# Copyright (c) 2012 Ron McDowell
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -127,15 +127,15 @@ f_have()
#
f_getvar()
{
- local var_to_get="$1" var_to_set="$2"
- [ "$var_to_set" ] || local value
- eval ${var_to_set:-value}=\"\${$var_to_get}\"
- eval [ \"\${$var_to_get+set}\" ]
- local retval=$?
+ local __var_to_get="$1" __var_to_set="$2"
+ [ "$__var_to_set" ] || local value
+ eval ${__var_to_set:-value}=\"\${$__var_to_get}\"
+ eval [ \"\${$__var_to_get+set}\" ]
+ local __retval=$?
eval f_dprintf '"f_getvar: var=[%s] value=[%s] r=%u"' \
- \"\$var_to_get\" \"\$${var_to_set:-value}\" \$retval
- [ "$var_to_set" ] || { [ "$value" ] && echo "$value"; }
- return $retval
+ \"\$__var_to_get\" \"\$${__var_to_set:-value}\" \$__retval
+ [ "$__var_to_set" ] || { [ "$value" ] && echo "$value"; }
+ return $__retval
}
# f_die [ $status [ $fmt [ $opts ... ]]]
@@ -574,6 +574,30 @@ f_index_menusel_command()
echo "$command"
}
+# f_running_as_init
+#
+# Returns true if running as init(1).
+#
+f_running_as_init()
+{
+ #
+ # When a custom init(8) performs an exec(3) to invoke a shell script,
+ # PID 1 becomes sh(1) and $PPID is set to 1 in the executed script.
+ #
+ [ ${PPID:-0} -eq 1 ] # Return status
+}
+
+# f_mounted $local_directory
+#
+# Return success if a filesystem is mounted on a particular directory.
+#
+f_mounted()
+{
+ local dir="$1"
+ [ -d "$dir" ] || return $FAILURE
+ mount | grep -Eq " on $dir \([^)]+\)$"
+}
+
############################################################ MAIN
#
diff --git a/usr.sbin/bsdconfig/share/device.subr b/usr.sbin/bsdconfig/share/device.subr
new file mode 100644
index 0000000..473838b
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/device.subr
@@ -0,0 +1,799 @@
+if [ ! "$_DEVICE_SUBR" ]; then _DEVICE_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/strings.subr
+f_include $BSDCFG_SHARE/struct.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+DEVICES=
+DEVICE_NAMES=
+
+# A "device" from sysinstall's point of view
+f_struct_define DEVICE \
+ name \
+ desc \
+ devname \
+ type \
+ enabled \
+ init \
+ get \
+ shutdown \
+ flags \
+ private \
+ volume
+
+# Network devices have their `private' property set to this
+f_struct_define DEVICE_INFO \
+ use_rtsol use_dhcp ipaddr ipv6addr netmask extras
+
+setvar DEVICE_TYPE_NONE 1
+setvar DEVICE_TYPE_DISK 2
+setvar DEVICE_TYPE_FLOPPY 3
+setvar DEVICE_TYPE_FTP 4
+setvar DEVICE_TYPE_NETWORK 5
+setvar DEVICE_TYPE_CDROM 6
+setvar DEVICE_TYPE_USB 7
+setvar DEVICE_TYPE_DOS 8
+setvar DEVICE_TYPE_UFS 9
+setvar DEVICE_TYPE_NFS 10
+setvar DEVICE_TYPE_ANY 11
+setvar DEVICE_TYPE_HTTP_PROXY 12
+
+#
+# Default behavior is to call f_device_get_all() automatically when loaded.
+#
+: ${DEVICE_SELF_SCAN_ALL=1}
+
+############################################################ FUNCTIONS
+
+# f_device_try $name [$i [$var_path]]
+#
+# Test a particular device. If $i is given, then $name is expected to contain a
+# single "%d" where $i will be inserted using printf. If $var_path is given,
+# it is used as a variable name to provide the caller the device pathname.
+#
+# Returns success if the device path exists and is a cdev.
+#
+f_device_try()
+{
+ local name="$1" i="$2" var_path="$3" unit
+ if [ "$i" ]; then
+ unit=$( printf "$name" "$i" )
+ else
+ unit="$name"
+ fi
+ case "$unit" in
+ /dev/*) : good ;; # already qualified
+ *) unit="/dev/$unit" ;;
+ esac
+ [ "$var_path" ] && setvar "$var_path" "$unit"
+ f_dprintf "f_device_try: making sure %s is a device node" "$unit"
+ if [ -c "$unit" ]; then
+ f_dprintf "f_device_try: %s is a cdev [good]" "$unit"
+ return $SUCCESS
+ else
+ f_dprintf "f_device_try: %s is not a cdev [skip]" "$unit"
+ return $FAILURE
+ fi
+}
+
+# f_device_register $name $desc $devname $type $enabled $init_function \
+# $get_function $shutdown_function $private
+#
+# Register a device. A `structure' (see struct.subr) is created with the name
+# device_$name (so make sure $name contains only alpha-numeric characters or
+# the underscore, `_'). The remaining arguments after $name correspond to the
+# properties of the `DEVICE' structure-type (defined above).
+#
+# If not already registered, the device is then appended to the DEVICES
+# environment variable, a space-separated list of all registered devices.
+#
+f_device_register()
+{
+ local name="$1" desc="$2" devname="$3" type="$4" enabled="$5"
+ local init_func="$6" get_func="$7" shutdown_func="$8" private="$9"
+
+ f_struct_new DEVICE "device_$name" || return $FAILURE
+ device_$name set name "$name"
+ device_$name set desc "$desc"
+ device_$name set devname "$devname"
+ device_$name set type "$type"
+ device_$name set enabled "$enabled"
+ device_$name set init "$init_func"
+ device_$name set get "$get_func"
+ device_$name set shutdown "$shutdown_func"
+ device_$name set private "$private"
+
+ # Scan our global register to see if it needs ammending
+ local dev found=
+ for dev in $DEVICES; do
+ [ "$dev" = "$name" ] || continue
+ found=1 && break
+ done
+ [ "$found" ] || DEVICES="$DEVICES $name"
+
+ return $SUCCESS
+}
+
+# f_device_reset
+#
+# Reset the registered device chain.
+#
+f_device_reset()
+{
+ local dev
+ for dev in $DEVICES; do
+ f_device_shutdown $dev
+
+ #
+ # XXX this potentially leaks $dev->private if it's being
+ # used to point to something dynamic, but you're not supposed
+ # to call this routine at such times that some open instance
+ # has its private member pointing somewhere anyway. XXX
+ #
+ f_struct_free device_$dev
+ done
+ DEVICES=
+}
+
+# f_device_get_all
+#
+# Get all device information for devices we have attached.
+#
+f_device_get_all()
+{
+ local devname desc
+
+ f_dprintf "f_device_get_all: Probing devices..."
+ f_dialog_info "$msg_probing_devices_please_wait_this_can_take_a_while"
+
+ # First go for the network interfaces
+ for devname in $( ifconfig -l ); do
+ # Eliminate network devices that don't make sense
+ case "$devname" in
+ lo*) continue ;;
+ esac
+
+ # Try and find its description
+ f_device_desc "$devname" $DEVICE_TYPE_NETWORK desc
+
+ f_dprintf "Found a network device named %s" "$devname"
+ f_device_register $devname \
+ "$desc" "$devname" $DEVICE_TYPE_NETWORK 1 \
+ f_media_init_network "" f_media_shutdown_network ""
+ done
+
+ # Next, try to find all the types of devices one might use
+ # as a media source for content
+ #
+
+ local dev desc type max n=0
+ for dev in $DEVICE_NAMES; do
+ n=$(( $n + 1 ))
+ # Get the desc, type, and max (with debugging disabled)
+ # NOTE: Bypassing f_device_name_get() for efficiency
+ debug= f_getvar _device_desc$n desc
+ debug= f_getvar _device_type$n type
+ debug= f_getvar _device_max$n max
+
+ local k=0
+ while [ $k -lt ${max:-0} ]; do
+ i=$k k=$(( $k + 1 ))
+ devname=""
+ case "$type" in
+ $DEVICE_TYPE_CDROM)
+ f_device_try "$dev" "$i" devname || continue
+ f_device_register "${devname##*/}" "$desc" \
+ "$devname" $DEVICE_TYPE_CDROM 1 \
+ f_media_init_cdrom f_media_get_cdrom \
+ f_media_shutdown_cdrom ""
+ f_dprintf "Found a CDROM device for %s" \
+ "$devname"
+ ;;
+ $DEVICE_TYPE_FLOPPY)
+ f_device_try "$dev" "$i" devname || continue
+ f_device_register "${devname##*/}" "$desc" \
+ "$devname" $DEVICE_TYPE_FLOPPY 1 \
+ f_media_init_floppy \
+ f_media_get_floppy \
+ f_media_shutdown_floppy ""
+ f_dprintf "Found a floppy device for %s" \
+ "$devname"
+ ;;
+ $DEVICE_TYPE_USB)
+ f_device_try "$dev" "$i" devname || continue
+ f_device_register "${devname##*/}" "$desc" \
+ "$devname" $DEVICE_TYPE_USB 1 \
+ f_media_init_usb f_media_get_usb \
+ f_media_shutdown_usb ""
+ f_dprintf "Found a USB disk for %s" "$devname"
+ ;;
+ esac
+ done
+ done
+
+ # Register ISO9660 providers as CDROM devices
+ for devname in /dev/iso9660/*; do
+ f_device_try "$devname" || continue
+ f_device_register "${devname##*/}" "ISO9660 file system" \
+ "$devname" $DEVICE_TYPE_CDROM 1 \
+ f_media_init_cdrom f_media_get_cdrom \
+ f_media_shutdown_cdrom ""
+ f_dprintf "Found a CDROM device for %s" "$devname"
+ done
+
+ # Scan for mdconfig(8)-created md(4) devices
+ local filename
+ for devname in /dev/md[0-9] /dev/md[0-9][0-9]; do
+ f_device_try "$devname" || continue
+
+ # See if the md(4) device is a vnode type backed by a file
+ filename=$( sysctl kern.geom.conftxt |
+ awk -v devname="${devname##*/}" \
+ '
+ ( $2 == "MD" ) && \
+ ( $3 == devname ) && \
+ ( $(NF-2) == "vnode" ) && \
+ ( $(NF-1) == "file" ) \
+ {
+ print $NF
+ }
+ ' )
+ case "$filename" in
+ *.iso) # Register the device as an ISO9660 provider
+ f_device_register "${devname##*/}" \
+ "md(4) vnode file system" \
+ "$devname" $DEVICE_TYPE_CDROM 1 \
+ f_media_init_cdrom f_media_get_cdrom \
+ f_media_shutdown_cdrom ""
+ f_dprintf "Found a CDROM device for %s" "$devname"
+ ;;
+ esac
+ done
+
+ # Finally go get the disks and look for partitions to register
+ local diskname slices index type rest slice part
+ for diskname in $( sysctl -n kern.disks ); do
+
+ case "$diskname" in
+ cd*)
+ # XXX
+ # Due to unknown reasons, kern.disks returns SCSI
+ # CDROM as a valid disk. This will prevent bsdconfig
+ # from presenting SCSI CDROMs as available disks in
+ # various menus. Why GEOM treats SCSI CDROM as a disk
+ # is beyond me and that should be investigated.
+ # For temporary workaround, ignore SCSI CDROM device.
+ #
+ continue ;;
+ esac
+
+ # Try to create a list of partitions and their types,
+ # consisting of "N,typeN ..." (e.g., "1,0xa5 2,0x06").
+ if ! slices=$( fdisk -p "$diskname" 2> /dev/null |
+ awk '( $1 == "p" ) { print $2","$3 }' )
+ then
+ f_dprintf "Unable to open disk %s" "$diskname"
+ continue
+ fi
+
+ f_device_register "$diskname" "" \
+ "/dev/$diskname" $DEVICE_TYPE_DISK 0
+ f_dprintf "Found a disk device named %s" "$diskname"
+
+ # Look for existing partitions to register
+ for slice in $slices; do
+ index="${slice%%,*}" type="${slice#*,}"
+ slice=${diskname}s$index
+ case "$type" in
+ 0x01|0x04|0x06|0x0b|0x0c|0x0e|0xef)
+ # DOS partitions to add as "DOS media devices"
+ f_device_register "$slice" "" \
+ "/dev/$slice" $DEVICE_TYPE_DOS 1 \
+ f_media_init_dos f_media_get_dos \
+ f_media_shutdown_dos ""
+ f_dprintf "Found a DOS partition %s" "$slice"
+ ;;
+ 0xa5) # FreeBSD partition
+ for part in $(
+ bsdlabel -r $slice 2> /dev/null |
+ awk -v slice="$slice" '
+ ( $1 ~ /[abdefgh]:/ ) {
+ printf "%s%s\n",
+ slice,
+ substr($1,1,1)
+ }'
+ ); do
+ f_quietly dumpfs -m /dev/$part ||
+ continue
+ f_device_register \
+ "$part" "" "/dev/$part" \
+ $DEVICE_TYPE_UFS 1 \
+ f_media_init_ufs \
+ f_media_get_ufs \
+ f_media_shutdown_ufs ""
+ f_dprintf "Found a UFS partition %s" \
+ "$part"
+ done # parts
+ ;;
+ esac
+ done # slices
+
+ done # disks
+}
+
+# f_device_name_get $type $name type|desc|max [$var_to_set]
+#
+# Fetch the device type (type), description (desc), or maximum number of
+# devices to scan for (max) associated with device $name and $type. If $type is
+# either NULL, missing, or set to $DEVICE_TYPE_ANY then only $name is used.
+# Returns success if a match was found, otherwise failure.
+#
+# If $var_to_set is missing or NULL, the device name is printed to standard out
+# for capturing in a sub-shell (which is less-recommended because of
+# performance degredation; for example, when called in a loop).
+#
+f_device_name_get()
+{
+ local __type="$1" __name="$2" __prop="$3" __var_to_set="$4"
+ local __dev __devtype __n=0
+
+ # Return failure if no $name or $prop is an unknown property
+ [ "$__name" ] || return $FAILURE
+ case "$__prop" in type|desc|max) : good ;;
+ *) return $FAILURE; esac
+
+ [ "$__type" = "$DEVICE_TYPE_ANY" ] && __type=
+ for __dev in $DEVICE_NAMES; do
+ __n=$(( $__n + 1 ))
+ [ "$__dev" = "$__name" ] || continue
+ f_getvar _device_type$__n __devtype
+ [ "${__type:-$__devtype}" = "$__devtype" ] || continue
+ f_getvar _device_$__prop$__n $__var_to_set
+ return $?
+ done
+ return $FAILURE
+}
+
+# f_device_name_set $type $name $desc [$max]
+#
+# Store a description (desc) and [optionally] maximum number of devices to scan
+# for (max) in-association with device $type and $name. Returns success. Use
+# the f_device_name_get() routine with the same $name and [optionally] $type to
+# retrieve one of type, desc, or max properties.
+#
+f_device_name_set()
+{
+ local type="$1" name="$2" desc="$3" max="$4"
+ local dev devtype n=0 found=
+ [ "$name" ] || return $FAILURE
+ for dev in $DEVICE_NAMES; do
+ n=$(( $n + 1 ))
+ [ "$dev" = "$name" ] || continue
+ if f_getvar _device_type$n devtype; then
+ # Allow multiple entries with same name but diff type
+ [ "$devtype" = "$type" ] || continue
+ fi
+ found=1 && break
+ done
+ if [ ! "$found" ]; then
+ DEVICE_NAMES="$DEVICE_NAMES $name"
+ n=$(( $n + 1 ))
+ fi
+ setvar _device_type$n "$type"
+ setvar _device_desc$n "$desc"
+ [ "${4+set}" ] && setvar _device_max$n "$max"
+ return $SUCCESS
+}
+
+# f_device_desc $device_name $device_type [$var_to_set]
+#
+# Print a description for a device name (eg., `fxp0') given a specific device
+# type/class.
+#
+# If $var_to_set is missing or NULL, the device description is printed to
+# standard out for capturing in a sub-shell (which is less-recommended because
+# of performance degredation; for example, when called in a loop).
+#
+f_device_desc()
+{
+ local __name="$1" __type="$2" __var_to_set="$3"
+ local __devname __devunit __cp
+
+ # Check variables
+ [ "$__name" ] || return $SUCCESS
+ [ "$__type" = "$DEVICE_TYPE_ANY" ] && type=
+ [ "$__var_to_set" ] && { setvar "$__var_to_set" "" || return; }
+
+ #
+ # Return sysctl MIB dev.NAME.UNIT.%desc if it exists,
+ # otherwise fall through to below static list.
+ #
+ if f_have sysctl; then
+ __devname="${__name%%[0-9]*}"
+ __devunit="${__name#$__devname}"
+ __devunit="${__devunit%%[!0-9]*}"
+ if [ "$__var_to_set" ]; then
+ if __cp=$(
+ sysctl -n "dev.$__devname.$__devunit.%desc" \
+ 2> /dev/null
+ ); then
+ setvar "$__var_to_set" "$__cp" &&
+ return $SUCCESS
+ fi
+ else
+ sysctl -n "dev.$__devname.$__devunit.%desc" \
+ 2> /dev/null && return $SUCCESS
+ fi
+ fi
+
+ local __dev __devtype __n=0
+ for __dev in $DEVICE_NAMES; do
+ __n=$(( $__n + 1 ))
+ debug= f_getvar _device_type$__n __devtype
+ [ "${__type:-$__devtype}" = "$__devtype" ] || continue
+ if [ "$__devtype" = "$DEVICE_TYPE_NETWORK" ]; then
+ __devname=$( f_substr "$__name" 0 ${#__dev} )
+ [ "$__devname" = "$__dev" ] || continue
+ else
+ __devname="${__name%%[0-9]*}"
+ __devunit="${__name#$__devname}"
+ __devunit="${__devunit%%[!0-9]*}"
+ __devname=$( printf "$__dev" $__devunit )
+ [ "$__devname" = "$__name" ] || continue
+ fi
+ debug= f_getvar _device_desc$__n $__var_to_set
+ return $?
+ done
+
+ #
+ # Sensible fall-backs for specific types
+ #
+ case "$__type" in
+ $DEVICE_TYPE_CDROM) __cp="<unknown cdrom device type>";;
+ $DEVICE_TYPE_DISK) __cp="<unknown disk device type>";;
+ $DEVICE_TYPE_FLOPPY) __cp="<unknown floppy device type>";;
+ $DEVICE_TYPE_USB) __cp="<unknown usb storage device type>";;
+ $DEVICE_TYPE_NETWORK) __cp="<unknown network interface type>";;
+ *)
+ __cp="<unknown device type>"
+ esac
+
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" "$__cp"
+ else
+ echo "$__cp"
+ fi
+
+ return $FAILURE
+}
+
+# f_device_rescan
+#
+# Rescan all devices, after closing previous set - convenience function.
+#
+f_device_rescan()
+{
+ f_device_reset
+ f_device_get_all
+}
+
+# f_device_find $name [$type [$var_to_set]]
+#
+# Find one or more registered devices by name, type, or both. Returns a space-
+# separated list of devices matching the search criterion.
+#
+# If $var_to_set is missing or NULL, the device name(s) are printed to standard
+# out for capturing in a sub-shell (which is less-recommended because of
+# performance degredation; for example, when called in a loop).
+#
+f_device_find()
+{
+ local __name="$1" __type="${2:-$DEVICE_TYPE_ANY}" __var_to_set="$3"
+ local __dev __devname __devtype __found=
+ for __dev in $DEVICES; do
+ device_$__dev get name __devname
+ device_$__dev get type __devtype
+ if [ "$__name" = "$__devname" -o ! "$__name" ] &&
+ [ "$__type" = "$DEVICE_TYPE_ANY" -o \
+ "$__type" = "$__devtype" ]
+ then
+ __found="$__found $__dev"
+ fi
+ done
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" "${__found# }"
+ else
+ echo $__found
+ fi
+ [ "$__found" ] # Return status
+}
+
+# f_device_init $name
+#
+# Initialize a device by evaluating its `init' function.
+#
+f_device_init()
+{
+ local name="$1" init_func
+ device_$name get init init_func || return
+ ${init_func:-:} $name
+}
+
+# f_device_get $name $file [$probe]
+#
+# Read $file by evaluating the device's `get' function. The file is commonly
+# produced on standard output (but it truly depends on the function called).
+#
+f_device_get()
+{
+ local name="$1" file="$2" probe="$3" get_func
+ device_$name get get get_func || return
+ ${get_func:-:} $name "$file" ${3+"$probe"}
+}
+
+# f_device_shutdown $name
+#
+# Shutdown a device by evaluating its `shutdown' function.
+#
+f_device_shutdown()
+{
+ local name="$1" shutdown_func
+ device_$name get shutdown shutdown_func || return
+ ${shutdown_func:-:} $name
+}
+
+# f_device_menu $title $prompt $hline $device_type [$helpfile]
+#
+# Display a menu listing all the devices of a certain type in the system.
+#
+f_device_menu()
+{
+ f_dialog_title "$1"
+ local title="$DIALOG_TITLE" btitle="$DIALOG_BACKTITLE"
+ f_dialog_title_restore
+
+ local prompt="$2" hline="$3" type="$4" helpfile="$5"
+
+ local dev devtype devs=
+ for dev in $DEVICES; do
+ device_$dev get type devtype || continue
+ [ "$devtype" = "$type" ] || continue
+ devs="$devs $dev"
+ done
+ [ "$devs" ] || return $FAILURE
+
+ local sanitize_awk="{ gsub(/'/, \"'\\\\''\"); print }"
+
+ local desc menu_list=
+ for dev in $devs; do
+ device_$dev get desc desc
+ desc=$( echo "$desc" | awk "$sanitize_awk" )
+ menu_list="$menu_list '$dev' '$desc'"
+ done
+
+ local size mtag
+ size=$( eval f_dialog_menu_size \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list )
+
+ local errexit=
+ case $- in *e*) errexit=1; esac
+ set +e
+
+ while :; do
+ mtag=$( eval $DIALOG \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ ${helpfile:+ \
+ --help-button \
+ --help-label \"\$msg_help\" \
+ ${USE_XDIALOG:+--help \"\"} \
+ } \
+ --menu \"\$prompt\" $size \
+ $menu_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ local retval=$?
+
+ [ $retval -ne 2 ] && break
+ # Otherwise, the Help button was pressed
+ f_show_help "$helpfile"
+ # Loop back to menu
+ done
+ f_dprintf "retval=%u mtag=[%s]" $retval "$mtag"
+
+ [ "$errexit" ] && set -e
+
+ [ $retval -eq 0 ] && echo "$mtag" >&2
+
+ return $retval
+}
+
+#
+# Short-hand
+#
+f_cdrom() { f_device_name_set $DEVICE_TYPE_CDROM "$1" "$2" "$3"; }
+f_disk() { f_device_name_set $DEVICE_TYPE_DISK "$1" "$2" "$3"; }
+f_floppy() { f_device_name_set $DEVICE_TYPE_FLOPPY "$1" "$2" "$3"; }
+f_serial() { f_device_name_set $DEVICE_TYPE_NETWORK "$1" "$2" "$3"; }
+f_usb() { f_device_name_set $DEVICE_TYPE_USB "$1" "$2" "$3"; }
+f_network() { f_device_name_set $DEVICE_TYPE_NETWORK "$1" "$2"; }
+
+############################################################ MAIN
+
+# CDROM, Disk, Floppy, Serial, and USB devices/names
+f_cdrom "acd%d" "ATAPI/IDE CDROM" 4
+f_cdrom "cd%d" "SCSI CDROM drive" 4
+f_cdrom "mcd%d" "Mitsumi (old model) CDROM drive" 4
+f_cdrom "scd%d" "Sony CDROM drive - CDU31/33A type" 4
+f_disk "aacd%d" "Adaptec FSA RAID array" 4
+f_disk "ad%d" "ATA/IDE disk device" 16
+f_disk "ada%d" "SATA disk device" 16
+f_disk "afd%d" "ATAPI/IDE floppy device" 4
+f_disk "amrd%d" "AMI MegaRAID drive" 4
+f_disk "ar%d" "ATA/IDE RAID device" 16
+f_disk "da%d" "SCSI disk device" 16
+f_disk "idad%d" "Compaq RAID array" 4
+f_disk "ipsd%d" "IBM ServeRAID RAID array" 4
+f_disk "mfid%d" "LSI MegaRAID SAS array" 4
+f_disk "mlxd%d" "Mylex RAID disk" 4
+f_disk "twed%d" "3ware ATA RAID array" 4
+f_floppy "fd%d" "Floppy Drive unit A" 4
+f_serial "cuau%d" "%s on device %s (COM%d)" 16
+f_usb "da%da" "USB Mass Storage Device" 16
+
+# Network interfaces/names
+f_network "ae" "Attansic/Atheros L2 Fast Ethernet"
+f_network "age" "Attansic/Atheros L1 Gigabit Ethernet"
+f_network "alc" "Atheros AR8131/AR8132 PCIe Ethernet"
+f_network "ale" "Atheros AR8121/AR8113/AR8114 PCIe Ethernet"
+f_network "an" "Aironet 4500/4800 802.11 wireless adapter"
+f_network "ath" "Atheros IEEE 802.11 wireless adapter"
+f_network "aue" "ADMtek USB Ethernet adapter"
+f_network "axe" "ASIX Electronics USB Ethernet adapter"
+f_network "bce" "Broadcom NetXtreme II Gigabit Ethernet card"
+f_network "bfe" "Broadcom BCM440x PCI Ethernet card"
+f_network "bge" "Broadcom BCM570x PCI Gigabit Ethernet card"
+f_network "bm" "Apple BMAC Built-in Ethernet"
+f_network "bwn" "Broadcom BCM43xx IEEE 802.11 wireless adapter"
+f_network "cas" "Sun Cassini/Cassini+ or NS DP83065 Saturn Ethernet"
+f_network "cc3i" "SDL HSSI sync serial PCI card"
+f_network "cue" "CATC USB Ethernet adapter"
+f_network "cxgb" "Chelsio T3 10Gb Ethernet card"
+f_network "dc" "DEC/Intel 21143 (and clones) PCI Fast Ethernet card"
+f_network "de" "DEC DE435 PCI NIC or other DC21040-AA based card"
+f_network "disc" "Software discard network interface"
+f_network "ed" "Novell NE1000/2000; 3C503; NE2000-compatible PCMCIA"
+f_network "el" "3Com 3C501 Ethernet card"
+f_network "em" "Intel(R) PRO/1000 Ethernet card"
+f_network "en" "Efficient Networks ATM PCI card"
+f_network "ep" "3Com 3C509 Ethernet card/3C589 PCMCIA"
+f_network "et" "Agere ET1310 based PCI Express Gigabit Ethernet card"
+f_network "ex" "Intel EtherExpress Pro/10 Ethernet card"
+f_network "fe" "Fujitsu MB86960A/MB86965A Ethernet card"
+f_network "fpa" "DEC DEFPA PCI FDDI card"
+f_network "fwe" "FireWire Ethernet emulation"
+f_network "fwip" "IP over FireWire"
+f_network "fxp" "Intel EtherExpress Pro/100B PCI Fast Ethernet card"
+f_network "gem" "Apple GMAC or Sun ERI/GEM Ethernet adapter"
+f_network "hme" "Sun HME (Happy Meal Ethernet) Ethernet adapter"
+f_network "ie" "AT&T StarLAN 10 and EN100; 3Com 3C507; NI5210"
+f_network "igb" "Intel(R) PRO/1000 PCI Express Gigabit Ethernet card"
+f_network "ipw" "Intel PRO/Wireless 2100 IEEE 802.11 adapter"
+f_network "iwi" "Intel PRO/Wireless 2200BG/2225BG/2915ABG adapter"
+f_network "iwn" "Intel Wireless WiFi Link 4965AGN IEEE 802.11n adapter"
+f_network "ixgbe" "Intel(R) PRO/10Gb Ethernet card"
+f_network "ixgb" "Intel(R) PRO/10Gb Ethernet card"
+f_network "ix" "Intel Etherexpress Ethernet card"
+ # Maintain sequential order of above(3): ixgbe ixgb ix
+f_network "jme" "JMicron JMC250 Gigabit/JMC260 Fast Ethernet"
+f_network "kue" "Kawasaki LSI USB Ethernet adapter"
+f_network "le" "AMD Am7900 LANCE or Am79C9xx PCnet Ethernet adapter"
+f_network "lge" "Level 1 LXT1001 Gigabit Ethernet card"
+f_network "lnc" "Lance/PCnet (Isolan/Novell NE2100/NE32-VL) Ethernet"
+f_network "lo" "Loop-back (local) network interface"
+f_network "lp" "Parallel Port IP (PLIP) peer connection"
+f_network "malo" "Marvell Libertas 88W8335 802.11 wireless adapter"
+f_network "msk" "Marvell/SysKonnect Yukon II Gigabit Ethernet"
+f_network "mxge" "Myricom Myri10GE 10Gb Ethernet card"
+f_network "nfe" "NVIDIA nForce MCP Ethernet"
+f_network "nge" "NatSemi PCI Gigabit Ethernet card"
+f_network "ng" "Vimage netgraph(4) bridged Ethernet device"
+ # Maintain sequential order of above(2): nge ng
+f_network "nve" "NVIDIA nForce MCP Ethernet"
+f_network "nxge" "Neterion Xframe 10GbE Server/Storage adapter"
+f_network "pcn" "AMD Am79c79x PCI Ethernet card"
+f_network "plip" "Parallel Port IP (PLIP) peer connection"
+f_network "ral" "Ralink Technology IEEE 802.11 wireless adapter"
+f_network "ray" "Raytheon Raylink 802.11 wireless adapter"
+f_network "re" "RealTek 8139C+/8169/8169S/8110S PCI Ethernet adapter"
+f_network "rl" "RealTek 8129/8139 PCI Ethernet card"
+f_network "rue" "RealTek USB Ethernet card"
+f_network "rum" "Ralink Technology USB IEEE 802.11 wireless adapter"
+f_network "sf" "Adaptec AIC-6915 PCI Ethernet card"
+f_network "sge" "Silicon Integrated Systems SiS190/191 Ethernet"
+f_network "sis" "SiS 900/SiS 7016 PCI Ethernet card"
+f_network "sk" "SysKonnect PCI Gigabit Ethernet card"
+f_network "snc" "SONIC Ethernet card"
+f_network "sn" "SMC/Megahertz Ethernet card"
+ # Maintain sequential order of above(2): snc sn
+f_network "sr" "SDL T1/E1 sync serial PCI card"
+f_network "ste" "Sundance ST201 PCI Ethernet card"
+f_network "stge" "Sundance/Tamarack TC9021 Gigabit Ethernet"
+f_network "ti" "Alteon Networks PCI Gigabit Ethernet card"
+f_network "tl" "Texas Instruments ThunderLAN PCI Ethernet card"
+f_network "txp" "3Com 3cR990 Ethernet card"
+f_network "tx" "SMC 9432TX Ethernet card"
+ # Maintain sequential order of above(2): txp tx
+f_network "uath" "Atheros AR5005UG and AR5005UX USB wireless adapter"
+f_network "upgt" "Conexant/Intersil PrismGT USB wireless adapter"
+f_network "ural" "Ralink Technology RT2500USB 802.11 wireless adapter"
+f_network "urtw" "Realtek 8187L USB wireless adapter"
+f_network "vge" "VIA VT612x PCI Gigabit Ethernet card"
+f_network "vlan" "IEEE 802.1Q VLAN network interface"
+f_network "vr" "VIA VT3043/VT86C100A Rhine PCI Ethernet card"
+f_network "vx" "3COM 3c590 / 3c595 Ethernet card"
+f_network "wb" "Winbond W89C840F PCI Ethernet card"
+f_network "wi" "Lucent WaveLAN/IEEE 802.11 wireless adapter"
+f_network "wpi" "Intel 3945ABG IEEE 802.11 wireless adapter"
+f_network "wx" "Intel Gigabit Ethernet (82452) card"
+f_network "xe" "Xircom/Intel EtherExpress Pro100/16 Ethernet card"
+f_network "xl" "3COM 3c90x / 3c90xB PCI Ethernet card"
+f_network "zyd" "ZyDAS ZD1211/ZD1211B USB 802.11 wireless adapter"
+
+f_dprintf "%s: Initialized %u known device names/descriptions." device.subr \
+ "$( set -- $DEVICE_NAMES; echo $# )"
+
+#
+# Scan for the above devices unless requeted otherwise
+#
+f_dprintf "%s: DEVICE_SELF_SCAN_ALL=[%s]" device.subr "$DEVICE_SELF_SCAN_ALL"
+case "$DEVICE_SELF_SCAN_ALL" in
+""|0|[Nn][Oo]|[Oo][Ff][Ff]|[Ff][Aa][Ll][Ss][Ee]) : do nothing ;;
+*) f_device_get_all
+esac
+
+f_dprintf "%s: Successfully loaded." device.subr
+
+fi # ! $_DEVICE_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/Makefile b/usr.sbin/bsdconfig/share/media/Makefile
new file mode 100644
index 0000000..ebd7c96
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/Makefile
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+NO_OBJ=
+
+FILESDIR= ${SHAREDIR}/bsdconfig/media
+FILES= any.subr cdrom.subr common.subr directory.subr dos.subr \
+ floppy.subr ftp.subr httpproxy.subr network.subr nfs.subr \
+ options.subr tcpip.subr ufs.subr usb.subr
+
+beforeinstall:
+ mkdir -p ${DESTDIR}${FILESDIR}
+
+.include <bsd.prog.mk>
diff --git a/usr.sbin/bsdconfig/share/media/any.subr b/usr.sbin/bsdconfig/share/media/any.subr
new file mode 100644
index 0000000..f64710f
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/any.subr
@@ -0,0 +1,152 @@
+if [ ! "$_MEDIA_ANY_SUBR" ]; then _MEDIA_ANY_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/any.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/media/cdrom.subr
+f_include $BSDCFG_SHARE/media/directory.subr
+f_include $BSDCFG_SHARE/media/dos.subr
+f_include $BSDCFG_SHARE/media/floppy.subr
+f_include $BSDCFG_SHARE/media/ftp.subr
+f_include $BSDCFG_SHARE/media/httpproxy.subr
+f_include $BSDCFG_SHARE/media/nfs.subr
+f_include $BSDCFG_SHARE/media/options.subr
+f_include $BSDCFG_SHARE/media/ufs.subr
+f_include $BSDCFG_SHARE/media/usb.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+MEDIA_HELPFILE=$BSDCFG_LIBE/include/media.hlp
+
+############################################################ FUNCTIONS
+
+# f_media_get_type
+#
+# Prompt the user to select amongst the known media types (included above).
+#
+# If the user does not cancel or press Esc, invokes the f_media_set_* function
+# associated with the chosen media type. If after all that we have a struct
+# named `device_media' then success is returned, otherwise failure.
+#
+# NOTE: The f_media_set_* function should create the `device_media' struct.
+# See `struct.subr' and the above `media/*.subr' includes for more details.
+#
+f_media_get_type()
+{
+ f_dialog_title "$msg_choose_installation_media"
+ local title="$DIALOG_TITLE" btitle="$DIALOG_BACKTITLE"
+ f_dialog_title_restore
+ local prompt="$msg_choose_installation_media_description"
+ local hline="$hline_choose_help_for_more_information_on_media_types"
+ local menu_list size
+
+ menu_list="
+ '1 $msg_cd_dvd' '$msg_install_from_a_freebsd_cd_dvd'
+ '2 $msg_ftp' '$msg_install_from_an_ftp_server'
+ '3 $msg_ftp_passive'
+ '$msg_install_from_an_ftp_server_thru_firewall'
+ '4 $msg_http' '$msg_install_from_an_ftp_server_thru_proxy'
+ '5 $msg_directory' '$msg_install_from_the_existing_filesystem'
+ '6 $msg_nfs' '$msg_install_over_nfs'
+ '7 $msg_dos' '$msg_install_from_a_dos_partition'
+ '8 $msg_ufs' '$msg_install_from_a_ufs_partition'
+ '9 $msg_floppy' '$msg_install_from_a_floppy_disk_set'
+ 'A $msg_usb' '$msg_install_from_a_usb_drive'
+ 'X $msg_options' '$msg_view_set_various_media_options'
+ " # END-QUOTE
+
+ size=$( eval f_dialog_menu_size \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list )
+
+ local dialog_menu
+
+ while :; do
+ dialog_menu=$( eval $DIALOG \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --help-button \
+ --help-label \"\$msg_help\" \
+ ${USE_XDIALOG:+--help \"\"} \
+ --menu \"\$prompt\" $size $menu_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ local retval=$?
+ setvar DIALOG_MENU_$$ "$dialog_menu"
+
+ local mtag
+ mtag=$( f_dialog_menutag )
+ f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
+
+ if [ $retval -eq 2 ]; then
+ # The Help button was pressed
+ f_show_help "$MEDIA_HELPFILE"
+ continue
+ elif [ $retval -ne 0 ]; then
+ return $FAILURE
+ fi
+
+ case "$mtag" in
+ ?" $msg_cd_dvd") f_media_set_cdrom ;;
+ ?" $msg_ftp") f_media_set_ftp_active ;;
+ ?" $msg_ftp_passive") f_media_set_ftp_passive ;;
+ ?" $msg_http") f_media_set_http_proxy ;;
+ ?" $msg_directory") f_media_set_directory ;;
+ ?" $msg_dos") f_media_set_dos ;;
+ ?" $msg_nfs") f_media_set_nfs ;;
+ ?" $msg_ufs") f_media_set_ufs ;;
+ ?" $msg_floppy") f_media_set_floppy ;;
+ ?" $msg_usb") f_media_set_usb ;;
+ ?" $msg_options")
+ f_media_options_menu
+ continue
+ ;;
+ esac
+ break
+ done
+
+ f_struct device_media || return $FAILURE
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/any.subr
+
+fi # ! $_MEDIA_ANY_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/cdrom.subr b/usr.sbin/bsdconfig/share/media/cdrom.subr
new file mode 100644
index 0000000..f22ebd2
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/cdrom.subr
@@ -0,0 +1,210 @@
+if [ ! "$_MEDIA_CDROM_SUBR" ]; then _MEDIA_CDROM_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/cdrom.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+CDROM_MOUNTED=
+CDROM_PREVIOUSLY_MOUNTED=
+CDROM_INIT_QUIET=
+
+############################################################ FUNCTIONS
+
+# f_media_set_cdrom
+#
+# Return success if we both found and set the media type to be a CD.
+#
+f_media_set_cdrom()
+{
+ f_media_close
+
+ local devs ndevs
+ f_device_find "" $DEVICE_TYPE_CDROM devs
+ ndevs=$( set -- $devs; echo $# )
+
+ if [ ${ndevs:=0} -eq 0 ]; then
+ f_interactive && f_dialog_msgbox "$msg_no_cd_dvd_devices_found"
+ return $FAILURE
+ elif [ $ndevs -gt 1 ]; then
+ local title="$msg_choose_a_cd_dvd_type"
+ local prompt="$msg_please_select_a_cd_dvd_drive"
+ local hline=""
+
+ local dev retval
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_CDROM \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_device_find "$dev" $DEVICE_TYPE_CDROM devs
+ [ "$devs" ] || return $FAILURE
+ dev="${devs%%[$IFS]*}"
+
+ f_struct_copy device_$dev device_media
+ [ $retval -eq $SUCCESS ] || return $FAILURE
+ else
+ f_struct_copy device_$devs device_media
+ fi
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_cdrom $device
+#
+# Initializes the CDROM media device. Returns success if able to mount the CD
+# device using mount_cd9660(8).
+#
+f_media_init_cdrom()
+{
+ local dev="$1" devname err
+
+ device_$dev get devname devname || return $FAILURE
+ f_dprintf "Init routine called for CDROM device. devname=[%s]" \
+ "$devname"
+
+ if [ "$CDROM_MOUNTED" ]; then
+ f_dprintf "CDROM device already mounted."
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$MOUNTPOINT" ] &&
+ ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 )
+ then
+ f_dialog_msgbox "$err"
+ return $FAILURE
+ fi
+
+ if ! err=$( mount_cd9660 "$devname" "$MOUNTPOINT" 2>&1 )
+ then
+ err="${err#mount_cd9660: }"; err="${err#$devname: }"
+ case "$err" in
+ "Device busy")
+ # Perhaps the CDROM drive is already mounted as /cdrom
+ if f_mounted /cdrom; then
+ CDROM_PREVIOUSLY_MOUNTED=1
+ MOUNTPOINT=/cdrom
+ err=
+ fi
+ ;;
+ esac
+ case "$err" in
+ "") : good ;; # no error
+ *)
+ [ "$CDROM_INIT_QUIET" ] ||
+ f_show_msg "$msg_error_mounting_device" \
+ "$devname" "$MOUNTPOINT" "$err"
+ return $FAILURE
+ esac
+ fi
+ CDROM_MOUNTED=1
+
+ : xxx # /cdrom.inf has been deprecated since 9.0-R
+
+ # No other CDROM media validation at this time
+
+ return $SUCCESS
+}
+
+# f_media_get_cdrom $device $file [$probe_only]
+#
+# Returns data from $file on a mounted CDROM device. Similar to cat(1).
+# $probe_only is currently unused by this media type.
+#
+f_media_get_cdrom()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_cdrom: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ f_media_generic_get "$MOUNTPOINT" "$file"
+}
+
+# f_media_shutdown_cdrom $device
+#
+# Shuts down the CDROM device and ejects the media using f_media_eject_cdrom(),
+# below. Return status should be ignored.
+#
+f_media_shutdown_cdrom()
+{
+ local dev="$1" err
+
+ [ "$CDROM_MOUNTED" ] || return
+
+ if [ "$CDROM_PREVIOUSLY_MOUNTED" ]; then
+ CDROM_MOUNTED=
+ return $SUCCESS
+ fi
+
+ if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*: }"
+ f_show_msg "$msg_could_not_unmount_the_cdrom_dvd" \
+ "$MOUNTPOINT" "$err"
+ else
+ CDROM_MOUNTED=
+ fi
+
+ f_media_eject_cdrom "$dev"
+}
+
+# f_media_eject_cdrom $device
+#
+# Eject the media from the CDROM device. Returns success.
+#
+f_media_eject_cdrom()
+{
+ local dev="$1" devname err
+ device_$dev get name devname || return $SUCCESS
+ case "$devname" in /dev/iso9660/*) return $SUCCESS; esac
+ f_dprintf "Ejecting CDROM/DVD at %s" "$devname"
+ if ! err=$( cdcontrol -f "$devname" eject 2>&1 ); then
+ f_dprintf "Could not eject the CDROM/DVD from %s: %s" \
+ "$devname" "${err#cdcontrol: }"
+ fi
+ return $SUCCESS
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/cdrom.subr
+
+fi # ! $_MEDIA_CDROM_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/common.subr b/usr.sbin/bsdconfig/share/media/common.subr
new file mode 100644
index 0000000..589bbdc
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/common.subr
@@ -0,0 +1,109 @@
+if [ ! "$_MEDIA_COMMON_SUBR" ]; then _MEDIA_COMMON_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/common.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+
+############################################################ GLOBALS
+
+#
+# Where to mount media
+#
+MOUNTPOINT=/dist
+
+############################################################ FUNCTIONS
+
+# f_media_open
+#
+# Returms success if able to initialize the media device.
+#
+f_media_open()
+{
+ { # Verify and initialize device media if-defined
+ f_struct device_media &&
+ f_media_verify &&
+ f_device_init media
+ } || return $FAILURE
+}
+
+# f_media_close
+#
+# Shuts down the media device, see f_device_shutdown() from device.subr for
+# more details.
+#
+f_media_close()
+{
+ f_struct device_media &&
+ f_device_shutdown media
+ f_struct_free device_media
+}
+
+# f_media_verify
+#
+# Returns success if the media device is available, and if not, prompts the
+# user to select a media type. See f_media_get_type() from media/any.subr for
+# more details.
+#
+f_media_verify()
+{
+ f_struct device_media || f_media_get_type
+}
+
+# f_media_generic_get $base $file
+#
+# A generic open which follows a well-known "path" of places to look.
+#
+f_media_generic_get()
+{
+ local base="$1" file="$2" rel path
+
+ f_getvar $VAR_RELNAME rel
+ for path in \
+ "$base/$file" \
+ "$base/FreeBSD/$file" \
+ "$base/releases/$file" \
+ "$base/$rel/$file" \
+ ; do
+ if [ -f "$path" -a -r "$path" ]; then
+ cat "$path"
+ return
+ fi
+ done
+ cat "$base/releases/$rel/$file" # Final path to try
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/common.subr
+
+fi # ! $_MEDIA_COMMON_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/directory.subr b/usr.sbin/bsdconfig/share/media/directory.subr
new file mode 100644
index 0000000..3831140
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/directory.subr
@@ -0,0 +1,146 @@
+if [ ! "$_MEDIA_DIRECTORY_SUBR" ]; then _MEDIA_DIRECTORY_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/directory.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+DIRECTORY_CHECKED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_directory
+#
+# Return success if we both found and set the media type to be a local
+# directory.
+#
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_DIRECTORY_PATH
+# Path to an existing directory containing the FreeBSD
+# distribution files.
+#
+f_media_set_directory()
+{
+ local path
+
+ f_media_close
+
+ f_variable_get_value $VAR_DIRECTORY_PATH \
+ "$msg_enter_a_fully_qualified_pathname_for_the_directory"
+ f_getvar $VAR_DIRECTORY_PATH path
+ [ "$path" ] || return $FAILURE
+
+ f_struct_new DEVICE device_directory
+ device_directory set get f_media_get_directory
+ device_directory set init f_media_init_directory
+ device_directory set shutdown f_media_shutdown_directory
+ device_directory set private "$path"
+
+ f_struct_copy device_directory device_media
+ f_struct_free device_directory
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_directory $device
+#
+# Initializes the Directory media device. Returns success if the directory path
+# both exists and is a directory.
+#
+f_media_init_directory()
+{
+ local dev="$1" path
+
+ device_$dev get private path || return $FAILURE
+ f_dprintf "Init routine called for Directory device. path=[%s]" \
+ "$path"
+
+ # Track whether we've been through here before (for remote filesystems
+ # mounted in the directory path, not repeating these queries saves us
+ # valuable time for slow/uncooperative links).
+ if [ "$DIRECTORY_CHECKED" ]; then
+ f_dprintf "Directory device already checked."
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$path" ]; then
+ f_show_msg "$msg_no_such_file_or_directory" \
+ "f_media_init_directory" "$path"
+ return $FAILURE
+ elif [ ! -d "$path" ]; then
+ f_show_msg "$msg_not_a_directory" \
+ "f_media_init_directory" "$path"
+ return $FAILURE
+ fi
+ DIRECTORY_CHECKED=1
+ return $SUCCESS
+}
+
+# f_media_get_directory $device $file [$probe_only]
+#
+# Returns data from $file in the existing/current filesystem. Similar to
+# cat(1). $probe_only is currently unused by this media type.
+#
+f_media_get_directory()
+{
+ local dev="$1" file="$2" probe_only="$3" path
+
+ f_dprintf "f_media_get_directory: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ device_$dev get private path
+ f_media_generic_get "$path" "$file"
+}
+
+# f_media_shutdown_directory $device
+#
+# Shuts down the Directory device. Return status should be ignored.
+#
+f_media_shutdown_directory()
+{
+ DIRECTORY_CHECKED=
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/directory.subr
+
+fi # ! $_MEDIA_DIRECTORY_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/dos.subr b/usr.sbin/bsdconfig/share/media/dos.subr
new file mode 100644
index 0000000..3e59fb6
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/dos.subr
@@ -0,0 +1,164 @@
+if [ ! "$_MEDIA_DOS_SUBR" ]; then _MEDIA_DOS_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/dos.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+DOS_MOUNTED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_dos
+#
+# Return success if we both found and set the media type to be a DOS partition.
+#
+f_media_set_dos()
+{
+ f_media_close
+
+ local devs ndevs
+ f_device_find "" $DEVICE_TYPE_DOS devs
+ ndevs=$( set -- $devs; echo $# )
+
+ if [ ${ndevs:=0} -eq 0 ]; then
+ f_dialog_msgbox "$msg_no_dos_primary_partitions_found"
+ return $FAILURE
+ elif [ $ndevs -gt 1 ]; then
+ local title="$msg_choose_a_dos_partition"
+ local prompt="$msg_please_select_dos_partition"
+ local hline=""
+
+ local dev retval
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_DOS \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_device_find "$dev" $DEVICE_TYPE_DOS devs
+ [ "$devs" ] || return $FAILURE
+ dev="${devs%%[$IFS]*}"
+
+ f_struct_copy device_$dev device_media
+ [ $retval -eq $SUCCESS ] || return $FAILURE
+ else
+ f_struct_copy device_$devs device_media
+ fi
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_dos $device
+#
+# Initializes the DOS media device. Returns success if able to mount the DOS
+# partition device using mount_msdosfs(8).
+#
+f_media_init_dos()
+{
+ local dev="$1" devname err
+
+ device_$dev get devname devname || return $FAILURE
+ f_dprintf "Init routine called for DOS device. devname=[%s]" \
+ "$devname"
+
+ if [ "$DOS_MOUNTED" ]; then
+ f_dprintf "DOS device already mounted."
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$MOUNTPOINT" ] &&
+ ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 )
+ then
+ f_dialog_msgbox "$err"
+ return $FAILURE
+ fi
+
+ if ! err=$( mount_msdosfs "$devname" "$MOUNTPOINT" 2>&1 )
+ then
+ err="${err#mount_msdosfs: }"; err="${err#$devname: }"
+ f_show_msg "$msg_error_mounting_device" \
+ "$devname" "$MOUNTPOINT" "$err"
+ return $FAILURE
+ fi
+ DOS_MOUNTED=1
+ return $SUCCESS
+}
+
+# f_media_get_dos $device $file [$probe_only]
+#
+# Returns data from $file on a mounted DOS partition device. Similar to cat(1).
+# $probe_only is currently unused by this media type.
+#
+f_media_get_dos()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_dos: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ f_media_generic_get "$MOUNTPOINT" "$file"
+}
+
+# f_media_shutdown_dos $device
+#
+# Shuts down the DOS partition device using umount(8). Return status should be
+# ignored.
+#
+f_media_shutdown_dos()
+{
+ local dev="$1" err
+
+ [ "$DOS_MOUNTED" ] || return
+
+ if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*: }"
+ f_show_msg "$msg_could_not_unmount_the_dos_partition" \
+ "$MOUNTPOINT" "$err"
+ else
+ DOS_MOUNTED=
+ fi
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/dos.subr
+
+fi # ! $_MEDIA_DOS_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/floppy.subr b/usr.sbin/bsdconfig/share/media/floppy.subr
new file mode 100644
index 0000000..c874c61
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/floppy.subr
@@ -0,0 +1,214 @@
+if [ ! "$_MEDIA_FLOPPY_SUBR" ]; then _MEDIA_FLOPPY_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/floppy.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+FLOPPY_MOUNTED=
+FLOPPY_DISTWANTED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_floppy
+#
+# Return success if we both found and set the media type to be a floppy.
+#
+f_media_set_floppy()
+{
+ f_media_close
+
+ local devs ndevs
+ f_device_find "" $DEVICE_TYPE_FLOPPY devs
+ ndevs=$( set -- $devs; echo $# )
+
+ if [ ${ndevs:=0} -eq 0 ]; then
+ f_interactive && f_dialog_msgbox "$msg_no_floppy_devices_found"
+ return $FAILURE
+ elif [ $ndevs -gt 1 ]; then
+ local title="$msg_choose_a_floppy_drive"
+ local prompt="$msg_please_select_a_floppy_drive"
+ local hline=""
+
+ local dev retval
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_FLOPPY \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_device_find "$dev" $DEVICE_TYPE_FLOPPY devs
+ [ "$devs" ] || return $FAILURE
+ dev="${devs%%[$IFS]*}"
+
+ f_struct_copy device_$dev device_media
+ [ $retval -eq $SUCCESS ] || return $FAILURE
+ else
+ f_struct_copy device_$devs device_media
+ fi
+
+ f_struct device_media &&
+ device_media unset private
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_floppy $device
+#
+# Initializes the Floppy media device. Returns success if able to mount the
+# Floppy disk device using either mount_msdosfs(8) or mount(8) (tried in that
+# order).
+#
+f_media_init_floppy()
+{
+ local dev="$1" devname err
+
+ device_$dev get devname devname || return $FAILURE
+ f_dprintf "Init floppy called for %s distribution. devname=[%s]" \
+ "${FLOPPY_DISTWANTED:-some}" "$devname"
+
+ if [ "$FLOPPY_MOUNTED" ]; then
+ f_dprintf "Floppy device already mounted."
+ return $SUCCESS
+ fi
+
+ local mp
+ device_$dev get private mp
+ if [ ! -e "${mp:=$MOUNTPOINT}" ] && ! f_quietly mkdir -p "$mp"; then
+ f_show_msg "$msg_unable_to_make_directory_mountpoint" \
+ "$mp" "$devname"
+ return $FAILURE
+ fi
+
+ if f_interactive; then
+ local desc
+ device_$dev get desc desc
+ if [ "$FLOPPY_DISTWANTED" ]; then
+ f_show_msg "$msg_please_insert_floppy_in_drive" "$desc"
+ else
+ f_show_msg "$msg_please_insert_floppy_containing" \
+ "$FLOPPY_DISTWANTED" "$desc"
+ fi
+ fi
+
+ if ! {
+ f_quietly mount_msdosfs -o ro -m 0777 -u 0 -g 0 "$devname" "$mp" ||
+ err=$( mount -o ro "$devname" "$mp" 2>&1 )
+ }; then
+ err="${err#mount: }"; err="${err#*: }"
+ local name
+ device_$dev get name name
+ f_show_msg "$msg_error_mounting_floppy_device" \
+ "$name" "$devname" "$mp" "$err"
+ return $FAILURE
+ fi
+ FLOPPY_MOUNTED=1
+ FLOPPY_DISTWANTED=
+ return $SUCCESS
+}
+
+# f_media_get_floppy $device $file [$probe_only]
+#
+# Returns data from $file on a mounted Floppy disk device. Similar to cat(1).
+# If $probe_only is present and non-null, limits retries to zero.
+#
+f_media_get_floppy()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_floppy: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ #
+ # floppies don't use f_media_generic_get() because it's too expensive
+ # to speculatively open files on a floppy disk. Make user get it
+ # right or give up with floppies.
+ #
+ local mp
+ device_$dev get private mp
+ local fp="${mp:=$MOUNTPOINT}/$file"
+ if ! [ -f "$fp" -a -r "$fp" ]; then
+ local nretries=4
+ [ "$probe_only" ] && return $FAILURE
+ while ! [ -f "$fp" -a -r "$fp" ]; do
+ if [ $nretries -eq 0 ]; then
+ f_show_msg "$msg_failed_to_get_floppy_file" \
+ "$fp"
+ return $FAILURE
+ fi
+ FLOPPY_DISTWANTED="$fp"
+ f_media_shutdown_floppy "$dev"
+ f_media_init_floppy "$dev" || return $FAILURE
+ nretries=$(( $nretries - 1 ))
+ done
+ fi
+ cat "$fp"
+}
+
+# f_media_shutdown_floppy $device
+#
+# Shuts down the Floppy disk device using umount(8). Return status should be
+# ignored.
+#
+f_media_shutdown_floppy()
+{
+ local dev="$1" err mp
+
+ [ "$FLOPPY_MOUNTED" ] || return
+
+ device_$dev get private mp
+ if ! err=$( umount -f "${mp:=$MOUNTPOINT}" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*:}"
+ f_dprintf "Umount of floppy on %s failed: %s" "$mp" "$err"
+ else
+ FLOPPY_MOUNTED=
+ if f_interactive && [ "$_systemState" != "fixit" ]; then
+ local desc
+ device_$dev get desc desc
+ f_show_msg "$msg_you_may_remove_the_floppy" "$desc"
+ fi
+ fi
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/floppy.subr
+
+fi # ! $_MEDIA_FLOPPY_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/ftp.subr b/usr.sbin/bsdconfig/share/media/ftp.subr
new file mode 100644
index 0000000..ecc7724
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/ftp.subr
@@ -0,0 +1,893 @@
+if [ ! "$_MEDIA_FTP_SUBR" ]; then _MEDIA_FTP_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/ftp.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/strings.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
+f_include $BSDCFG_SHARE/media/network.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+FTP_SKIP_RESOLV=
+
+URL_MAX=261261 # according to actual fetch(1) test-results
+
+FTP_DIRS="
+ .
+ releases/$UNAME_P
+ snapshots/$UNAME_P
+ pub/FreeBSD
+ pub/FreeBSD/releases/$UNAME_P
+ pub/FreeBSD/snapshots/$UNAME_P
+ pub/FreeBSD-Archive/old-releases/$UNAME_P
+" # END-QUOTE
+
+############################################################ FUNCTIONS
+
+# f_dialog_menu_media_ftp
+#
+# Prompt the user to select from a range of ``built-in'' FTP servers or specify
+# their own. If the user makes a choice and doesn't cancel or press Esc, stores
+# the user's choice in VAR_FTP_PATH (see variables.subr) and returns success.
+#
+f_dialog_menu_media_ftp()
+{
+ f_dialog_title "$msg_please_select_a_freebsd_ftp_distribution_site"
+ local title="$DIALOG_TITLE" btitle="$DIALOG_BACKTITLE"
+ f_dialog_title_restore
+
+ local prompt="$msg_please_select_the_site_closest_to_you_or_other"
+ local hline="$msg_select_a_site_thats_close"
+ local menu_list="
+ '$msg_main_site' 'ftp.freebsd.org'
+ 'URL' '$msg_specify_some_other_ftp_site'
+ '$msg_snapshots_server_japan'
+ 'snapshots.jp.freebsd.org'
+ '$msg_snapshots_server_sweden'
+ 'snapshots.se.freebsd.org'
+ 'IPv6 $msg_main_site' 'ftp.freebsd.org'
+ ' IPv6 $msg_ireland' 'ftp3.ie.freebsd.org'
+ ' IPv6 $msg_israel' 'ftp.il.freebsd.org'
+ ' IPv6 $msg_japan' 'ftp2.jp.freebsd.org'
+ ' IPv6 $msg_usa' 'ftp4.us.freebsd.org'
+ ' IPv6 $msg_turkey' 'ftp2.tr.freebsd.org'
+ '$msg_primary' 'ftp1.freebsd.org'
+ ' $msg_primary #2' 'ftp2.freebsd.org'
+ ' $msg_primary #3' 'ftp3.freebsd.org'
+ ' $msg_primary #4' 'ftp4.freebsd.org'
+ ' $msg_primary #5' 'ftp5.freebsd.org'
+ ' $msg_primary #6' 'ftp6.freebsd.org'
+ ' $msg_primary #7' 'ftp7.freebsd.org'
+ ' $msg_primary #8' 'ftp8.freebsd.org'
+ ' $msg_primary #9' 'ftp9.freebsd.org'
+ ' $msg_primary #10' 'ftp10.freebsd.org'
+ ' $msg_primary #11' 'ftp11.freebsd.org'
+ ' $msg_primary #12' 'ftp12.freebsd.org'
+ ' $msg_primary #13' 'ftp13.freebsd.org'
+ ' $msg_primary #14' 'ftp14.freebsd.org'
+ '$msg_argentina' 'ftp.ar.freebsd.org'
+ '$msg_australia' 'ftp.au.freebsd.org'
+ ' $msg_australia #2' 'ftp2.au.freebsd.org'
+ ' $msg_australia #3' 'ftp3.au.freebsd.org'
+ '$msg_austria' 'ftp.at.freebsd.org'
+ ' $msg_austria #2' 'ftp2.at.freebsd.org'
+ '$msg_brazil' 'ftp.br.freebsd.org'
+ ' $msg_brazil #2' 'ftp2.br.freebsd.org'
+ ' $msg_brazil #3' 'ftp3.br.freebsd.org'
+ ' $msg_brazil #4' 'ftp4.br.freebsd.org'
+ ' $msg_brazil #5' 'ftp5.br.freebsd.org'
+ ' $msg_brazil #6' 'ftp6.br.freebsd.org'
+ ' $msg_brazil #7' 'ftp7.br.freebsd.org'
+ '$msg_canada' 'ftp.ca.freebsd.org'
+ '$msg_china' 'ftp.cn.freebsd.org'
+ ' $msg_china #2' 'ftp2.cn.freebsd.org'
+ '$msg_croatia' 'ftp.hr.freebsd.org'
+ '$msg_czech_republic' 'ftp.cz.freebsd.org'
+ '$msg_denmark' 'ftp.dk.freebsd.org'
+ ' $msg_denmark #2' 'ftp2.dk.freebsd.org'
+ '$msg_estonia' 'ftp.ee.freebsd.org'
+ '$msg_finland' 'ftp.fi.freebsd.org'
+ '$msg_france' 'ftp.fr.freebsd.org'
+ ' $msg_france #2' 'ftp2.fr.freebsd.org'
+ ' $msg_france #3' 'ftp3.fr.freebsd.org'
+ ' $msg_france #5' 'ftp5.fr.freebsd.org'
+ ' $msg_france #6' 'ftp6.fr.freebsd.org'
+ ' $msg_france #8' 'ftp8.fr.freebsd.org'
+ '$msg_germany' 'ftp.de.freebsd.org'
+ ' $msg_germany #2' 'ftp2.de.freebsd.org'
+ ' $msg_germany #3' 'ftp3.de.freebsd.org'
+ ' $msg_germany #4' 'ftp4.de.freebsd.org'
+ ' $msg_germany #5' 'ftp5.de.freebsd.org'
+ ' $msg_germany #6' 'ftp6.de.freebsd.org'
+ ' $msg_germany #7' 'ftp7.de.freebsd.org'
+ ' $msg_germany #8' 'ftp8.de.freebsd.org'
+ '$msg_greece' 'ftp.gr.freebsd.org'
+ ' $msg_greece #2' 'ftp2.gr.freebsd.org'
+ '$msg_hungary' 'ftp.hu.freebsd.org'
+ '$msg_iceland' 'ftp.is.freebsd.org'
+ '$msg_ireland' 'ftp.ie.freebsd.org'
+ ' $msg_ireland #2' 'ftp2.ie.freebsd.org'
+ ' $msg_ireland #3' 'ftp3.ie.freebsd.org'
+ '$msg_israel' 'ftp.il.freebsd.org'
+ '$msg_italy' 'ftp.it.freebsd.org'
+ '$msg_japan' 'ftp.jp.freebsd.org'
+ ' $msg_japan #2' 'ftp2.jp.freebsd.org'
+ ' $msg_japan #3' 'ftp3.jp.freebsd.org'
+ ' $msg_japan #4' 'ftp4.jp.freebsd.org'
+ ' $msg_japan #5' 'ftp5.jp.freebsd.org'
+ ' $msg_japan #6' 'ftp6.jp.freebsd.org'
+ ' $msg_japan #7' 'ftp7.jp.freebsd.org'
+ ' $msg_japan #8' 'ftp8.jp.freebsd.org'
+ ' $msg_japan #9' 'ftp9.jp.freebsd.org'
+ '$msg_korea' 'ftp.kr.freebsd.org'
+ ' $msg_korea #2' 'ftp2.kr.freebsd.org'
+ '$msg_lithuania' 'ftp.lt.freebsd.org'
+ '$msg_netherlands' 'ftp.nl.freebsd.org'
+ ' $msg_netherlands #2' 'ftp2.nl.freebsd.org'
+ '$msg_norway' 'ftp.no.freebsd.org'
+ ' $msg_norway #3' 'ftp3.no.freebsd.org'
+ '$msg_poland' 'ftp.pl.freebsd.org'
+ ' $msg_poland #2' 'ftp2.pl.freebsd.org'
+ ' $msg_poland #5' 'ftp5.pl.freebsd.org'
+ '$msg_portugal' 'ftp.pt.freebsd.org'
+ ' $msg_portugal #2' 'ftp2.pt.freebsd.org'
+ ' $msg_portugal #4' 'ftp4.pt.freebsd.org'
+ '$msg_romania' 'ftp.ro.freebsd.org'
+ '$msg_russia' 'ftp.ru.freebsd.org'
+ ' $msg_russia #2' 'ftp2.ru.freebsd.org'
+ ' $msg_russia #3' 'ftp3.ru.freebsd.org'
+ ' $msg_russia #4' 'ftp4.ru.freebsd.org'
+ '$msg_singapore' 'ftp.sg.freebsd.org'
+ '$msg_slovak_republic' 'ftp.sk.freebsd.org'
+ '$msg_slovenia' 'ftp.si.freebsd.org'
+ ' $msg_slovenia #2' 'ftp2.si.freebsd.org'
+ '$msg_south_africa' 'ftp.za.freebsd.org'
+ ' $msg_south_africa #2' 'ftp2.za.freebsd.org'
+ ' $msg_south_africa #3' 'ftp3.za.freebsd.org'
+ ' $msg_south_africa #4' 'ftp4.za.freebsd.org'
+ '$msg_spain' 'ftp.es.freebsd.org'
+ ' $msg_spain #2' 'ftp2.es.freebsd.org'
+ ' $msg_spain #3' 'ftp3.es.freebsd.org'
+ '$msg_sweden' 'ftp.se.freebsd.org'
+ ' $msg_sweden #2' 'ftp2.se.freebsd.org'
+ ' $msg_sweden #3' 'ftp3.se.freebsd.org'
+ ' $msg_sweden #4' 'ftp4.se.freebsd.org'
+ ' $msg_sweden #5' 'ftp5.se.freebsd.org'
+ '$msg_switzerland' 'ftp.ch.freebsd.org'
+ ' $msg_switzerland #2' 'ftp2.ch.freebsd.org'
+ '$msg_taiwan' 'ftp.tw.freebsd.org'
+ ' $msg_taiwan #2' 'ftp2.tw.freebsd.org'
+ ' $msg_taiwan #3' 'ftp3.tw.freebsd.org'
+ ' $msg_taiwan #4' 'ftp4.tw.freebsd.org'
+ ' $msg_taiwan #6' 'ftp6.tw.freebsd.org'
+ ' $msg_taiwan #11' 'ftp11.tw.freebsd.org'
+ '$msg_turkey' 'ftp.tr.freebsd.org'
+ ' $msg_turkey #2' 'ftp2.tr.freebsd.org'
+ '$msg_uk' 'ftp.uk.freebsd.org'
+ ' $msg_uk #2' 'ftp2.uk.freebsd.org'
+ ' $msg_uk #3' 'ftp3.uk.freebsd.org'
+ ' $msg_uk #4' 'ftp4.uk.freebsd.org'
+ ' $msg_uk #5' 'ftp5.uk.freebsd.org'
+ ' $msg_uk #6' 'ftp6.uk.freebsd.org'
+ '$msg_ukraine' 'ftp.ua.freebsd.org'
+ ' $msg_ukraine #2' 'ftp2.ua.freebsd.org'
+ ' $msg_ukraine #5' 'ftp5.ua.freebsd.org'
+ ' $msg_ukraine #6' 'ftp6.ua.freebsd.org'
+ ' $msg_ukraine #7' 'ftp7.ua.freebsd.org'
+ ' $msg_ukraine #8' 'ftp8.ua.freebsd.org'
+ '$msg_usa #1' 'ftp1.us.freebsd.org'
+ ' $msg_usa #2' 'ftp2.us.freebsd.org'
+ ' $msg_usa #3' 'ftp3.us.freebsd.org'
+ ' $msg_usa #4' 'ftp4.us.freebsd.org'
+ ' $msg_usa #5' 'ftp5.us.freebsd.org'
+ ' $msg_usa #6' 'ftp6.us.freebsd.org'
+ ' $msg_usa #7' 'ftp7.us.freebsd.org'
+ ' $msg_usa #8' 'ftp8.us.freebsd.org'
+ ' $msg_usa #9' 'ftp9.us.freebsd.org'
+ ' $msg_usa #10' 'ftp10.us.freebsd.org'
+ ' $msg_usa #11' 'ftp11.us.freebsd.org'
+ ' $msg_usa #12' 'ftp12.us.freebsd.org'
+ ' $msg_usa #13' 'ftp13.us.freebsd.org'
+ ' $msg_usa #14' 'ftp14.us.freebsd.org'
+ ' $msg_usa #15' 'ftp15.us.freebsd.org'
+ " # END-QUOTE
+
+ local size
+ size=$( eval f_dialog_menu_size \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list )
+
+ local dialog_menu retval mtag value
+ dialog_menu=$( eval $DIALOG \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --hline \"\$hline\" \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_cancel\" \
+ --menu \"\$prompt\" $size \
+ $menu_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ retval=$?
+ setvar DIALOG_MENU_$$ "$dialog_menu"
+ mtag=$( f_dialog_menutag )
+
+ [ $retval -eq 0 ] || return $FAILURE
+
+ case "$mtag" in
+ URL) setvar $VAR_FTP_PATH "other" ;;
+ *)
+ value=$( eval f_dialog_menutag2item \"\$mtag\" $menu_list )
+ setvar $VAR_FTP_PATH "ftp://$value"
+ esac
+
+ return $SUCCESS
+}
+
+# f_media_set_ftp
+#
+# Return success if we both found and set the media type to be an FTP server.
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_FTP_PATH
+# Can be a URL (including "ftp://" protocol-prefix) or "other"
+# (user is prompted to enter FTP URL). If a URL, can optionally
+# contain directory prefix after hostname/port. Valid examples
+# include:
+# ftp://myhost
+# ftp://somename:21/pub/
+# ftp://192.168.2.3/pub/
+# ftp://[::1]:21/
+# The default port if not specified is 21.
+# VAR_NAMESERVER [Optional]
+# If set, overrides resolv.conf(5) and sets the nameserver that
+# is used to convert names into addresses (when a name converts
+# into multiple addresses, the first address to successfully
+# connect is used).
+#
+# Meanwhile, the following variables from variable.subr are set after
+# successful execution:
+#
+# VAR_FTP_HOST
+# The FTP host to connect to, parsed from VAR_FTP_PATH. In the
+# example case of IPv6 where VAR_FTP_PATH is a "ftp://[::1]" this
+# variable will be set to "::1" (the outer brackets are removed).
+# VAR_FTP_PORT
+# The TCP port to connect to, parsed from VAR_FTP_PATH. Usually
+# 21 unless VAR_FTP_PATH was of one of the following forms:
+# ftp://hostname:OTHER_PORT
+# ftp://hostname:OTHER_PORT/*
+# ftp://ip:OTHER_PORT
+# ftp://ip:OTHER_PORT/*
+# ftp://[ip6]:OTHER_PORT
+# ftp://[ip6]:OTHER_PORT/*
+# VAR_FTP_DIR
+# If VAR_FTP_PATH contained a directory element (e.g.,
+# "ftp://localhost/pub") this variable contains only the
+# directory element (e.g., "/pub").
+#
+f_media_set_ftp()
+{
+ f_media_close
+
+ local url
+ f_getvar $VAR_FTP_PATH url
+
+ # If we've been through here before ...
+ if f_struct device_network && [ "${url#$msg_other}" ]; then
+ f_dialog_yesno "$msg_reuse_old_ftp_site_selection_values" ||
+ url=
+ fi
+
+ if [ ! "$url" ]; then
+ f_dialog_menu_media_ftp || return $FAILURE
+ f_getvar $VAR_FTP_PATH url
+ fi
+ [ "$url" ] || return $FAILURE
+
+ case "$url" in
+ other)
+ setvar $VAR_FTP_PATH "ftp://"
+ f_variable_get_value $VAR_FTP_PATH \
+ "$msg_please_specify_url_of_a_freebsd_distribution"
+ f_getvar $VAR_FTP_PATH url
+ if [ ! "${url#ftp://}" ]; then
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ fi
+ if [ ${#url} -gt ${URL_MAX:-261261} ]; then
+ f_show_msg "$msg_length_of_specified_url_is_too_long" \
+ ${#url} ${URL_MAX:-261261}
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ fi
+ case "$url" in
+ ftp://*) : valid URL ;;
+ *)
+ f_show_msg "$msg_sorry_invalid_url" "$url"
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ esac
+ esac
+ case "$url" in
+ ftp://*) : valid URL ;;
+ *)
+ f_show_msg "$msg_sorry_invalid_url" "$url"
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ esac
+
+ # Set the name of the FTP device to the URL
+ f_struct_new DEVICE device_ftp
+ device_ftp set name "$url"
+
+ if ! f_struct device_network ||
+ ! f_dialog_yesno "$msg_youve_already_done_the_network_configuration"
+ then
+ f_struct device_network &&
+ f_device_shutdown network
+ if ! f_device_select_tcp; then
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ fi
+ local dev
+ f_getvar $VAR_NETWORK_DEVICE dev
+ f_struct_copy "device_$dev" device_network
+ fi
+ if ! f_device_init network; then
+ f_dprintf "f_media_set_ftp: %s" "$msg_net_device_init_failed"
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ fi
+
+ local hostname="${url#*://}" port=21 dir=/
+ case "$hostname" in
+ "["*"]")
+ hostname="${hostname#\[}"
+ hostname="${hostname%%\]*}"
+ ;;
+ "["*"]/"*)
+ hostname="${hostname#\[}"
+ dir="/${hostname#*/}"
+ hostname="${hostname%%\]*}"
+ ;;
+ *"/"*)
+ dir="/${hostname#*/}"
+ hostname="${hostname%%/*}"
+ ;;
+ "["*"]:"*)
+ hostname="${hostname#\[}"
+ port="${hostname#*\]:}"
+ port="${port%%[!0-9]*}"
+ hostname="${hostname%%\]:*}"
+ ;;
+ *)
+ hostname="${hostname%%/*}"
+ esac
+
+ f_dprintf "hostname = \`%s'" "$hostname"
+ f_dprintf "dir = \`%s'" "$dir"
+ f_dprintf "port \# = \`%d'" "$port"
+
+ local ns
+ f_getvar $VAR_NAMESERVER ns
+ [ "$ns" ] || f_resolv_conf_nameservers ns
+ if [ "$ns" -a ! "$FTP_SKIP_RESOLV" ] && ! {
+ f_validate_ipaddr "$hostname" ||
+ f_validate_ipaddr6 "$hostname"
+ }; then
+ f_show_info "$msg_looking_up_host" "$hostname"
+ f_dprintf "%s: Looking up hostname, %s, using host(1)" \
+ "f_media_set_ftp" "$hostname"
+ if ! f_quietly f_host_lookup "$hostname"; then
+ f_show_msg "$msg_cannot_resolve_hostname" "$hostname"
+ f_struct device_network &&
+ f_device_shutdown network
+ f_struct_free device_network
+ unset $VAR_FTP_PATH
+ return $FAILURE
+ fi
+ f_dprintf "Found DNS entry for %s successfully." "$hostname"
+ fi
+
+ setvar $VAR_FTP_HOST "$hostname"
+ setvar $VAR_FTP_PORT "$port"
+ setvar $VAR_FTP_DIR "$dir"
+
+ device_ftp set type $DEVICE_TYPE_FTP
+ device_ftp set init f_media_init_ftp
+ device_ftp set get f_media_get_ftp
+ device_ftp set shutdown f_media_shutdown_ftp
+ device_ftp set private network
+ f_struct_copy device_ftp device_media
+ f_struct_free device_ftp
+
+ return $SUCCESS
+}
+
+# f_media_set_ftp_active
+#
+# Wrapper to f_media_set_ftp to access FTP servers actively.
+#
+f_media_set_ftp_active()
+{
+ setvar $VAR_FTP_STATE "active"
+ f_media_set_ftp
+}
+
+# f_media_set_ftp_passive
+#
+# Wrapper to f_media_set_ftp to access FTP servers passively.
+#
+f_media_set_ftp_passive()
+{
+ setvar $VAR_FTP_STATE "passive"
+ f_media_set_ftp
+}
+
+# f_media_set_ftp_userpass
+#
+# Prompt the user to enter/confirm the username/password variables that will
+# be used to communicate with the FTP servers. Returns success if the user does
+# not cancel or press Esc to either username or password.
+#
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_FTP_USER
+# The username to send via ftp(1) when connecting to an FTP
+# server.
+# VAR_FTP_PASS
+# The password to send with the above username.
+#
+# Does not prompt for confirmation of values if VAR_NONINTERACTIVE is set (see
+# variable.subr for more information).
+#
+f_media_set_ftp_userpass()
+{
+ local user pass
+ f_variable_get_value $VAR_FTP_USER \
+ "$msg_please_enter_the_username_you_wish_to_login_as"
+ f_getvar $VAR_FTP_USER user
+ if [ "$user" ]; then
+ f_variable_get_value $VAR_FTP_PASS \
+ "$msg_please_enter_the_password_for_this_user"
+ f_getvar $VAR_FTP_PASS pass
+ else
+ pass=
+ fi
+ [ "$pass" ] # Return status
+}
+
+# f_device_network_up $device
+#
+# Brings up attached network device, if any - takes FTP device as arg.
+#
+f_device_network_up()
+{
+ local dev="$1" netDev
+ device_$dev get private netDev || return $SUCCESS # No net == happy net
+ f_device_init $netDev
+}
+
+# f_device_network_down $device
+#
+# Brings down attached network device, if any - takes FTP device as arg.
+#
+f_device_network_down()
+{
+ local dev="$1" netDev
+ device_$dev get private netDev || return $SUCCESS
+ f_device_shutdown $netDev
+}
+
+# f_media_init_ftp $device
+#
+# Initializes the FTP media device. Returns success if both able to log into
+# the FTP server and confirm the existence of at least one known release path
+# using ftp(1).
+#
+# Variables from variable.subr used to initialize the connection are as follows
+# (all of which are configured by f_media_set_ftp above):
+#
+# VAR_FTP_PATH
+# The unparsed FTP URL representing the server to contact.
+# Usually "ftp://server" for example. Can contain TCP port number
+# and/or directory path (but should not contain username/password
+# info).
+# VAR_FTP_HOST
+# The FTP host to connect to. Can be an IPv4 address (e.g.,
+# 127.0.0.1), IPv6 address (e.g., ::1), or DNS hostname. Usually
+# set automatically in f_media_set_ftp() by parsing VAR_FTP_PATH.
+# VAR_FTP_PORT
+# The TCP port to connect to. Usually set automatically in
+# f_media_set_ftp() by parsing VAR_FTP_PATH.
+# VAR_FTP_DIR
+# The base FTP directory to use when downloading files from the
+# FTP server. Usually set automatically in f_media_set_ftp() by
+# parsing VAR_FTP_PATH.
+# VAR_FTP_USER [Optional]
+# If unset, defaults to using anonymous access.
+# VAR_FTP_PASS [Optional]
+# If unset, defaults to a sensible value.
+#
+# In addition, the following (managed either manually or by f_media_set_ftp_*):
+#
+# VAR_FTP_STATE
+# Sets FTPMODE for ftp(1) and can be one of:
+# active active mode FTP only
+# auto automatic determination of passive or active
+# (this is the default)
+# gate gate-ftp mode
+# passive passive mode FTP only
+# See ftp(1) for additional information.
+#
+# And last, but not least (managed automatically or manually):
+#
+# VAR_RELNAME
+# Defaults to being set to $(uname -r) but can be overridden.
+# This sets the name of a release to look for as part of a well
+# known set of paths to search for release data once connected
+# via FTP. If set to "__RELEASE" or "any" then the VAR_FTP_DIR is
+# taken as the absolute path to the release and no further
+# searching is done (see FTP_DIRS above in the GLOBALS section
+# for a list of well known paths that are used when searching for
+# a VAR_RELNAME sub-directory).
+#
+f_media_init_ftp()
+{
+ local dev="$1"
+
+ local url
+ device_$dev get name url
+ f_dprintf "Init routine called for FTP device. url=[%s]" "$url"
+
+ if [ "$FTP_INITIALIZED" ]; then
+ f_dprintf "FTP device already initialized."
+ return $SUCCESS
+ fi
+
+ # If we can't initialize the network, bag it!
+ f_device_network_up $dev || return $FAILURE
+
+ local cp
+ while :; do
+ f_getvar $VAR_FTP_PATH cp
+ if [ ! "$cp" ]; then
+ if ! f_media_set_ftp ||
+ ! f_getvar $VAR_FTP_PATH cp ||
+ [ ! "$cp" ]
+ then
+ f_dialog_msgbox \
+ "$msg_unable_to_get_proper_ftp_path"
+ f_device_network_down $dev
+ return $FAILURE
+ fi
+ fi
+
+ local ftp_host ftp_dir
+ if ! {
+ f_getvar $VAR_FTP_HOST ftp_host &&
+ f_getvar $VAR_FTP_DIR ftp_dir
+ }; then
+ f_dialog_msgbox "$msg_missing_ftp_host_or_directory"
+ f_device_network_down $dev
+ return $FAILURE
+ fi
+
+ local ftp_port
+ f_getvar $VAR_FTP_PORT ftp_port
+ local host="$ftp_host" port="${ftp_port:+:$ftp_port}"
+ case "$host" in *:*) host="[$host]"; esac
+
+ local user pass use_anon=""
+ f_getvar $VAR_FTP_USER user
+ if [ ! "$user" ]; then
+ user="anonymous"
+ use_anon=1
+ fi
+ if ! f_getvar $VAR_FTP_PASS pass; then
+ f_getvar $VAR_HOSTNAME cp
+ if f_running_as_init; then
+ pass="installer@$cp"
+ else
+ local name="$( id -un 2> /dev/null )"
+ pass="${name:-ftp}@$cp"
+ fi
+ fi
+
+ f_show_info "$msg_logging_in_to_user_at_host" \
+ "$user" "$ftp_host"
+
+ local userpass=""
+ if [ ! "$use_anon" ] && [ "$user" -o "$pass" ]; then
+ userpass="$user${pass:+:$( f_uriencode "$pass" )}"
+ userpass="$userpass${userpass:+@}"
+ fi
+
+ local mode rx
+ f_getvar $VAR_FTP_STATE mode
+
+ if [ "$ftp_dir" ]; then
+ if ! rx=$(
+ printf 'cd "%s"\npwd\n' "$ftp_dir" | eval \
+ FTPMODE=\"\$mode\" \
+ ${use_anon:+FTPANONPASS=\"\$pass\"} \
+ ftp -V ${use_anon:+-a} \
+ \"ftp://\$userpass\$host\$port\" \
+ 2>&1
+ ); then
+ f_show_msg "$msg_couldnt_open_ftp_connection" \
+ "$ftp_host" "$rx"
+ break # to failure
+ fi
+ if echo "$rx" | awk -v dir="/${ftp_dir#/}" '
+ BEGIN { found = 0 }
+ /^Remote directory: / {
+ sub(/^[^:]*:[[:space:]]*/, "")
+ if ($0 != dir) next
+ found = 1; exit
+ }
+ END { exit ! found }
+ '; then
+ setvar $VAR_FTP_DIR "$ftp_dir"
+ setvar $VAR_FTP_PATH \
+ "ftp://$ftp_host/${ftp_dir#/}"
+ else
+ f_show_msg \
+ "$msg_please_check_the_url_and_try_again" \
+ "ftp://$ftp_host/${ftp_dir#/}"
+ break # to failure
+ fi
+ fi
+
+ #
+ # Now that we've verified that the path we're given is ok,
+ # let's try to be a bit intelligent in locating the release we
+ # are looking for. First off, if the release is specified as
+ # "__RELEASE" or "any", then just assume that the current
+ # directory is the one we want and give up.
+ #
+ local rel
+ f_getvar $VAR_RELNAME rel
+ f_dprintf "f_media_init_ftp: rel=[%s]" "$rel"
+
+ case "$rel" in
+ __RELEASE|any)
+ FTP_INITIALIZED=YES
+ return $SUCCESS
+ ;;
+ *)
+ #
+ # Ok, since we have a release variable, let's walk
+ # through the list of directories looking for a release
+ # directory. First successful CWD wins.
+ #
+ if ! rx=$(
+ for dir in $FTP_DIRS; do
+ # Avoid confusing some servers
+ [ "$dir" = "." ] && continue
+ printf 'cd "/%s/%s"\npwd\n' \
+ "$dir" "$rel"
+ done | eval \
+ FTPMODE=\"\$mode\" \
+ ${use_anon:+FTPANONPASS=\"\$pass\"} \
+ ftp -V ${use_anon:+-a} \
+ \"ftp://\$userpass\$host\$port\" \
+ 2>&1
+ ); then
+ f_show_msg "$msg_couldnt_open_ftp_connection" \
+ "$ftp_host" "$rx"
+ break # to failure
+ fi
+
+ local fdir
+ if fdir=$( echo "$rx" | awk '
+ BEGIN { found = 0 }
+ /^Remote directory: / {
+ sub(/^[^:]*:[[:space:]]*/, "")
+ if ($0 == "/") next
+ # Exit after the first dir
+ found++; print; exit
+ }
+ END { exit ! found }
+ ' ); then
+ setvar $VAR_FTP_DIR "$fdir"
+ setvar $VAR_FTP_PATH "ftp://$ftp_host$fdir"
+ FTP_INITIALIZED=YES
+ return $SUCCESS
+ else
+ f_yesno "$msg_cant_find_distribution" \
+ "$rel" "$ftp_host"
+ if [ $? -eq $SUCCESS ]; then
+ unset $VAR_FTP_PATH
+ f_media_set_ftp && continue
+ fi
+ fi
+ esac
+ break # to failure
+ done
+
+ unset FTP_INITIALIZED $VAR_FTP_PATH
+ f_device_network_down $dev
+ return $FAILURE
+}
+
+# f_media_get_ftp $device $file [$probe_only]
+#
+# Returns data from $file on an FTP server using ftp(1). Please note that
+# $device is unused but must be present (even if null). Information is instead
+# gathered from the environment. $probe_only is currently unused by this media
+# type.
+#
+# Variables from variable.subr used to configure the connection are as follows
+# (all of which are configured by f_media_set_ftp above):
+#
+# VAR_FTP_HOST
+# FTP host to connect to. Can be an IPv4 address, IPv6 address,
+# or DNS hostname of your choice.
+# VAR_FTP_PORT
+# TCP port to connect on; see f_media_set_ftp() above.
+# VAR_FTP_USER [Optional]
+# If unset, defaults to using anonymous access.
+# VAR_FTP_PASS [Optional]
+# If unset, defaults to a sensible value.
+#
+# In addition, the following (managed either manually or by f_media_set_ftp_*):
+#
+# VAR_FTP_STATE
+# Sets FTPMODE for ftp(1) and can be one of:
+# active active mode FTP only
+# auto automatic determination of passive or active
+# (this is the default)
+# gate gate-ftp mode
+# passive passive mode FTP only
+# See ftp(1) for additional information.
+#
+# See variable.subr for additional information.
+#
+# Example usage:
+# f_media_set_ftp
+# f_media_get_ftp media $file
+#
+f_media_get_ftp()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_ftp: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ local ftp_host ftp_port
+ f_getvar $VAR_FTP_HOST ftp_host
+ f_getvar $VAR_FTP_PORT ftp_port
+
+ if [ ! "$FTP_INITIALIZED" ]; then
+ f_dprintf "No FTP connection open, can't get file %s" "$file"
+ return $FAILURE
+ fi
+
+ if ! {
+ f_validate_ipaddr "$ftp_host" ||
+ f_validate_ipaddr6 "$ftp_host" ||
+ {
+ f_dprintf "%s: Looking up hostname, %s, using host(1)" \
+ "f_media_get_ftp" "$ftp_host"
+ f_host_lookup "$ftp_host" hosts
+ }
+ }; then
+ # All the above validations failed
+ [ "$hosts" ] && f_dialog_msgbox "$hosts"
+ return $FAILURE
+ elif [ ! "$hosts" ]; then
+ # One of the first two validations passed
+ hosts="$ftp_host"
+ fi
+
+ local host connected=
+ for host in $hosts; do
+ f_quietly nc -nz "$host" "$ftp_port" || continue
+ connected=1; break
+ done
+ if [ ! "$connected" ]; then
+ f_show_msg "$msg_couldnt_connect_to_ftp_server %s:%s" \
+ "$ftp_host" "$ftp_port"
+ return $FAILURE
+ fi
+
+ local user pass use_anon=""
+ f_getvar $VAR_FTP_USER user
+ if [ ! "$user" ]; then
+ user="anonymous"
+ use_anon=1
+ fi
+ if ! f_getvar $VAR_FTP_PASS pass; then
+ f_getvar $VAR_HOSTNAME cp
+ if f_running_as_init; then
+ pass="installer@$cp"
+ else
+ local name="$( id -un 2> /dev/null )"
+ pass="${name:-ftp}@$cp"
+ fi
+ fi
+
+ local userpass=""
+ if [ ! "$use_anon" ] && [ "$user" -o "$pass" ]; then
+ userpass="$user${pass:+:$( f_uriencode "$pass" )}"
+ userpass="$userpass${userpass:+@}"
+ fi
+
+ local ftp_dir mode rx
+ f_getvar $VAR_FTP_DIR ftp_dir
+ f_getvar $VAR_FTP_STATE mode
+
+ local dir="${ftp_dir#/}"
+ local port="${ftp_port:+:$ftp_port}"
+ case "$host" in *:*) host="[$host]"; esac
+
+ f_dprintf "sending ftp request for: %s" "ftp://$host$port/$dir/$file"
+
+ eval FTPMODE=\"\$mode\" ${use_anon:+FTPANONPASS=\"\$pass\"} \
+ ftp -V ${use_anon:+-a} -o - \
+ \"ftp://\$userpass\$host\$port/\$dir/\$file\" 2> /dev/null
+ local retval=$?
+
+ [ $retval -eq $SUCCESS ] || f_dprintf "request failed!"
+ return $retval
+}
+
+# f_media_shutdown_ftp $device
+#
+# Shuts down the FTP device. Return status should be ignored. Note that since
+# we don't maintain an open connection to the FTP server there's nothing to do.
+#
+f_media_shutdown_ftp()
+{
+ [ "$FTP_INITIALIZED" ] || return $SUCCESS
+
+ unset FTP_INITIALIZED
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/ftp.subr
+
+fi # ! $_MEDIA_FTP_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/httpproxy.subr b/usr.sbin/bsdconfig/share/media/httpproxy.subr
new file mode 100644
index 0000000..fad1007
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/httpproxy.subr
@@ -0,0 +1,433 @@
+if [ ! "$_MEDIA_HTTPPROXY_SUBR" ]; then _MEDIA_HTTPPROXY_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/httpproxy.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/ftp.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ FUNCTIONS
+
+# f_media_set_http_proxy
+#
+# Return success if we both found and set the media type to be an ftp server,
+# accessed via http proxy.
+#
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_HTTP_PROXY
+# HTTP Proxy server to use. Valid examples include:
+# myhost
+# somename:3128
+# 192.168.2.3
+# [::1]:8080
+# The default port if not specified is 3128.
+#
+# Variables from variable.subr that are set after successful execution include
+# the following:
+#
+# VAR_HTTP_PROXY_HOST The host portion of VAR_HTTP_PROXY.
+# VAR_HTTP_PROXY_PORT The TCP port parsed from VAR_HTTP_PROXY.
+#
+# See also f_media_set_ftp() for additional variables.
+#
+f_media_set_http_proxy()
+{
+ FTP_SKIP_RESOLV=1 f_media_set_ftp || return $FAILURE
+
+ f_variable_get_value $VAR_HTTP_PROXY \
+ "$msg_please_enter_the_address_of_the_http_proxy"
+
+ local proxy
+ f_getvar $VAR_HTTP_PROXY proxy
+ [ "$proxy" ] || return $FAILURE
+
+ local hostname="$proxy" port=3128
+ case "$hostname" in
+ "["*"]")
+ hostname="${hostname#\[}"
+ hostname="${hostname%\]}"
+ ;;
+ "["*"]:")
+ hostname="${hostname#\[}"
+ port="${hostname#*\]:}"
+ port="${port%%[!0-9]*}"
+ hostname="${hostname%%\]:*}"
+ ;;
+ *":"*)
+ port="${hostname#*:}"
+ hostname="${hostname%%:*}"
+ esac
+
+ setvar $VAR_HTTP_PROXY_HOST "$hostname"
+ setvar $VAR_HTTP_PROXY_PORT "$port"
+
+ if f_debugging; then
+ f_dprintf "VAR_FTP_PATH : %s" "$( f_getvar $VAR_FTP_PATH )"
+ f_dprintf "VAR_HTTP_PROXY_HOST, _PORT: %s:%s" \
+ "$( f_getvar $VAR_HTTP_PROXY_HOST )" \
+ "$( f_getvar $VAR_HTTP_PROXY_PORT )"
+ fi
+
+ # media device has been set by f_media_set_ftp(), overwrite partly:
+ device_media set type $DEVICE_TYPE_HTTP_PROXY
+ device_media set init f_media_init_http_proxy
+ device_media set get f_media_get_http_proxy
+ device_media unset shutdown
+
+ return $SUCCESS
+}
+
+# f_http_proxy_check_access [$connect_only]
+#
+# Return success if able list a remote FTP directory via HTTP proxy. If
+# $connect_only is present and non-null, then returns success if a connection
+# can be made. Variables from variable.subr that can be used to script user
+# input:
+#
+# VAR_HTTP_PROXY_HOST
+# The HTTP proxy server host name, IPv4 address or IPv6 address.
+# Valid examples include:
+# myhost
+# 192.168.2.3
+# ::1
+# VAR_HTTP_PROXY_PORT
+# The TCP port to connect to when communicating with the HTTP
+# proxy server.
+# VAR_HTTP_PROXY_PATH
+# The FTP URL sent to the HTTP proxy server. Unused if
+# $connect_only is present and non-NULL.
+#
+f_http_proxy_check_access()
+{
+ local connect_only="$1" hosts=""
+
+ local proxy_host proxy_port
+ f_getvar $VAR_HTTP_PROXY_HOST proxy_host
+ f_getvar $VAR_HTTP_PROXY_PORT proxy_port
+
+ if ! {
+ f_validate_ipaddr "$proxy_host" ||
+ f_validate_ipaddr6 "$proxy_host" ||
+ {
+ f_dprintf "%s: Looking up hostname, %s, using host(1)" \
+ "f_http_proxy_check_access" "$proxy_host"
+ f_host_lookup "$proxy_host" hosts
+ }
+ }; then
+ # All the above validations failed
+ [ "$hosts" ] && f_dialog_msgbox "$hosts"
+ unset $VAR_HTTP_PROXY_HOST
+ return $FAILURE
+ elif [ ! "$hosts" ]; then
+ # One of the first two validations passed
+ hosts="$proxy_host"
+ fi
+
+ local host connected=
+ for host in $hosts; do
+ f_quietly nc -nz "$host" "$proxy_port" || continue
+ connected=1; break
+ done
+ if [ ! "$connected" ]; then
+ f_show_msg "$msg_couldnt_connect_to_proxy %s:%s" \
+ "$proxy_host" "$proxy_port"
+ unset $VAR_HTTP_PROXY_HOST
+ return $FAILURE
+ fi
+ [ "$connect_only" ] && return $SUCCESS
+
+ #
+ # Some proxies fetch files with certain extensions in "ascii mode"
+ # instead of "binary mode" for FTP. The FTP server then translates all
+ # LF to CRLF.
+ #
+ # You can force Squid to use binary mode by appending ";type=i" to the
+ # URL, which is what sysinstall(8) has traditionally done.
+ #
+
+ local proxy_path
+ f_getvar $VAR_HTTP_PROXY_PATH proxy_path
+ f_show_info "$msg_checking_access_to" "$proxy_path"
+
+ local rx
+ if ! rx=$(
+ printf "GET %s/ HTTP/1.0\r\n\r\n" "${proxy_path%/}" |
+ nc -n "$host" "$proxy_port"
+ ); then
+ f_show_msg "$msg_couldnt_connect_to_proxy %s:%s" \
+ "$proxy_host" "$proxy_port"
+ unset $VAR_HTTP_PROXY_HOST
+ return $FAILURE
+ fi
+
+ local hdr
+ hdr=$( echo "$rx" | awk '/^\r$/{exit}{print}' )
+
+ local http_found=$FAILURE
+ if echo "$hdr" | awk '
+ BEGIN { found = 0 }
+ /^HTTP.... 200 / {
+ found = 1
+ exit
+ }
+ END { exit ! found }
+ '; then
+ http_found=$SUCCESS
+ fi
+
+ #
+ # Scan the headers of the response
+ # this is extremely quick'n dity
+ #
+
+ unset $VAR_HTTP_FTP_MODE
+ if echo "$hdr" | awk '
+ BEGIN { found = 0 }
+ {
+ if (!match($0, /^Server: /)) next
+ found = ( substr($0, 9, 5) ~ /[Ss]quid/ )
+ }
+ END { exit ! found }
+ '; then
+ setvar $VAR_HTTP_FTP_MODE ";type=i"
+ else
+ setvar $VAR_HTTP_FTP_MODE ""
+ fi
+
+ return $http_found
+}
+
+# f_media_init_http_proxy $device
+#
+# Initializes the HTTP Proxy media device. Returns success if able to confirm
+# the existence of at least one known FTP server release path via HTTP proxy
+# using f_http_proxy_check_access(), above.
+#
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_HTTP_PROXY_HOST
+# The HTTP proxy server to connect to. Usually set by having
+# f_media_set_http_proxy() parse VAR_HTTP_PROXY. Must be set.
+# Also see f_http_proxy_check_access() for additional variables.
+# VAR_RELNAME
+# Usually set to `uname -r' but can be overridden.
+# VAR_FTP_PATH
+# The FTP URL to send to the HTTP proxy server. Usually set by
+# calling f_media_set_ftp().
+#
+# Meanwhile, after successful execution, the following variables (also from
+# variable.subr) are set:
+#
+# VAR_HTTP_PROXY_PATH
+# The [possibly] adjusted VAR_FTP_PATH that was found to contain
+# a valid FreeBSD repository.
+#
+f_media_init_http_proxy()
+{
+ local dev="$1"
+ f_dprintf "Init routine called for HTTP Proxy device. dev=[%s]" "$dev"
+
+ #
+ # First verify access
+ #
+ local connect_only=1
+ f_http_proxy_check_access $connect_only
+
+ local proxy_host
+ f_getvar $VAR_HTTP_PROXY_HOST proxy_host
+ while [ ! "$proxy_host" ]; do
+ f_media_set_http_proxy || return $FAILURE
+ f_http_proxy_check_access $connect_only
+ f_getvar $VAR_HTTP_PROXY_HOST proxy_host
+ done
+
+ local rel proxy_path http_found=$FAILURE
+ while :; do
+ #
+ # If the release is specified as "__RELEASE" or "any", then
+ # just assume that the path the user gave is ok.
+ #
+ f_getvar $VAR_RELNAME rel
+ f_dprintf "f_media_init_http_proxy: rel=[%s]" "$rel"
+
+ case "$rel" in
+ __RELEASE|any)
+ f_getvar $VAR_FTP_PATH $VAR_HTTP_PROXY_PATH
+ f_http_proxy_check_access
+ http_found=$?
+ ;;
+ *)
+ local fdir fp
+ f_getvar $VAR_FTP_PATH fp
+ for fdir in $FTP_DIRS; do
+ setvar $VAR_HTTP_PROXY_PATH "$fp/$fdir/$rel"
+ if f_http_proxy_check_access; then
+ http_found=$SUCCESS
+ break
+ fi
+ done
+ esac
+
+ [ $http_found -eq $SUCCESS ] && break
+
+ f_getvar $VAR_HTTP_PROXY_PATH proxy_path
+ f_show_msg "$msg_please_check_the_url_and_try_again" \
+ "$proxy_path"
+
+ unset $VAR_HTTP_PROXY_PATH
+ f_media_set_http_proxy || break
+ done
+
+ return $http_found
+}
+
+# f_media_get_http_proxy $device $file [$probe_only]
+#
+# Returns data from $file on an FTP server via HTTP proxy using nc(1). Please
+# note that $device is unused but must be present (even if null). Information
+# is instead gathered from the environment. $probe_only is currently unused by
+# this media type.
+#
+# The variables used to configure the connection are as follows (all of which
+# are configured by f_media_set_http_proxy above):
+#
+# VAR_HTTP_PROXY_HOST
+# HTTP proxy host to connect. Can be an IPv4 address, IPv6
+# address, or DNS hostname of your choice.
+# VAR_HTTP_PROXY_PORT
+# TCP port to connect on; see f_media_set_http_proxy above.
+# VAR_HTTP_PROXY_PATH
+# URL (including "ftp://" protocol-prefix) of FTP directory to
+# use as a prefix when requesting $file via HTTP proxy.
+#
+# See variable.subr for additional information.
+#
+# Example usage:
+# f_media_set_http_proxy
+# f_media_get_http_proxy media $file
+#
+f_media_get_http_proxy()
+{
+ local dev="$1" file="$2" probe_only="$3" hosts=
+
+ f_dprintf "f_media_get_http_proxy: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ local proxy_host proxy_port
+ f_getvar $VAR_HTTP_PROXY_HOST proxy_host
+ f_getvar $VAR_HTTP_PROXY_PORT proxy_port
+
+ if ! {
+ f_validate_ipaddr "$proxy_host" ||
+ f_validate_ipaddr6 "$proxy_host" ||
+ {
+ f_dprintf "%s: Looking up hostname, %s, using host(1)" \
+ "f_media_get_http_proxy" "$proxy_host"
+ f_host_lookup "$proxy_host" hosts
+ }
+ }; then
+ # All the above validations failed
+ [ "$hosts" ] && f_dialog_msgbox "$hosts"
+ return $FAILURE
+ elif [ ! "$hosts" ]; then
+ # One of the first two validations passed
+ hosts="$proxy_host"
+ fi
+
+ local host connected=
+ for host in $hosts; do
+ f_quietly nc -nz "$host" "$proxy_port" || continue
+ connected=1; break
+ done
+ if [ ! "$connected" ]; then
+ f_show_msg "$msg_couldnt_connect_to_proxy %s:%s" \
+ "$proxy_host" "$proxy_port"
+ return $FAILURE
+ fi
+
+ local proxy_path mode
+ f_getvar $VAR_HTTP_PROXY_PATH proxy_path
+ f_getvar $VAR_HTTP_FTP_MODE mode
+ local url="${proxy_path%/}/$file$mode" rx
+
+ f_dprintf "sending http request for: %s" "$url"
+ printf "GET %s HTTP/1.0\r\n\r\n" "$url" | nc -n "$host" "$proxy_port" |
+ (
+ #
+ # scan the headers of the response
+ # this is extremely quick'n dirty
+ #
+
+ rv=0
+ while read LINE; do
+ case "$LINE" in
+ HTTP*)
+ f_dprintf "received response: %s" "$LINE"
+ set -- $LINE; rv=$2
+ f_isinteger "$rv" || rv=0
+ ;;
+ *)
+ [ "${LINE% }" ] || break # End of headers
+ esac
+ done
+
+ [ $rv -ge 500 ] && exit 5
+ [ $rv -eq 404 ] && exit 44
+ [ $rv -ge 400 ] && exit 4
+ [ $rv -ge 300 ] && exit 3
+ [ $rv -eq 200 ] || exit $FAILURE
+
+ cat # output the rest ``as-is''
+ exit 200
+ )
+ local retval=$?
+ [ $retval -eq 200 ] && return $SUCCESS
+
+ case "$retval" in
+ 5) f_show_msg "$msg_server_error_when_requesting_url" "$url" ;;
+ 44) f_show_msg "$msg_url_was_not_found" "$url" ;;
+ 4) f_show_msg "$msg_client_error" ;;
+ *) f_show_msg "$msg_error_when_requesting_url" "$url" ;;
+ esac
+ return $FAILURE
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/httpproxy.subr
+
+fi # ! $_MEDIA_HTTPPROXY_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/network.subr b/usr.sbin/bsdconfig/share/media/network.subr
new file mode 100644
index 0000000..d9fe8e6
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/network.subr
@@ -0,0 +1,182 @@
+if [ ! "$_MEDIA_NETWORK_SUBR" ]; then _MEDIA_NETWORK_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/network.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+NETWORK_INITIALIZED=
+
+############################################################ FUNCTIONS
+
+# f_media_init_network $device
+#
+# Initialize a network device (such as `fxp0', `em0', etc.). Returns success if
+# able to successfully initialize the device. If not running as init (basically
+# from the FreeBSD install media) then assume that the network has already been
+# initialized and returns success.
+#
+# The variables (from variable.subr) used to initialize the network are as
+# follows (all of which are configured either automatically or manaully):
+#
+# VAR_IFCONFIG + device_name (e.g., `ifconfig_em0')
+# Automatically populated but can be overridden in a script. This
+# defines the ifconfig(8) properties specific to a chosen network
+# interface device. Optional if VAR_IPV6ADDR is set.
+# VAR_IPV6ADDR [Optional]
+# If not running as init (and setting up RTSOL connections for
+# the interface), then must be set manually. If set, used as the
+# IPv6 configuration for the given network interface device.
+# VAR_GATEWAY [Optional]
+# If not running as init (and setting up a static connection for
+# the interface) then must be set (usually via rc.conf(5), but
+# can be set manually to override). If unset, the user is warned
+# but not prevented from proceeding (as most connections need a
+# default route but not everyone).
+#
+f_media_init_network()
+{
+ local dev="$1"
+
+ f_dprintf "Init routine called for network device \`%s'." "$dev"
+ if [ "$NETWORK_INITIALIZED" ]; then
+ f_dprintf "Network already initialized."
+ return $SUCCESS
+ elif ! f_running_as_init; then
+ f_dprintf "Not running as init -- calling the deed done."
+ NETWORK_INITIALIZED=1
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$RESOLV_CONF" ]; then
+ if ! f_config_resolv; then
+ f_show_msg "$msg_cant_seem_to_write_out_resolv_conf" \
+ "$RESOLV_CONF"
+ return $FAILURE
+ fi
+ fi
+
+ local cp
+ if f_getvar $VAR_IFCONFIG$dev cp; then
+ #
+ # If this interface isn't a DHCP one, bring it up.
+ # If it is, then it's already up.
+ #
+ case "$cp" in
+ *DHCP*)
+ f_dprintf "A DHCP interface. Should already be up."
+ ;;
+ *)
+ f_dprintf "Not a DHCP interface."
+ if ! f_quietly ifconfig "$dev" $cp; then
+ f_show_msg "$msg_unable_to_configure_device" \
+ "$dev"
+ return $FAILURE
+ fi
+ local rp
+ f_getvar $VAR_GATEWAY rp
+ if [ ! "$rp" ]; then
+ f_dialog_msgbox "$msg_no_gateway_has_been_set"
+ else
+ #
+ # Explicitly flush all routes to get back to a
+ # known sane state. We don't need to check this
+ # exit code because if anything fails it will
+ # show up in the route add below.
+ #
+ f_quietly route -n flush
+ f_dprintf "Adding default route to %s." "$rp"
+ if ! f_quietly route -n add default "$rp"; then
+ f_dialog_msgbox \
+ "$msg_failed_to_add_default_route"
+ return $FAILURE
+ fi
+ fi
+ esac
+ elif ! { f_getvar $VAR_IPV6ADDR cp && [ "$cp" ]; }; then
+ f_show_msg "$msg_device_is_not_configured" "$dev"
+ return $FAILURE
+ fi
+
+ f_dprintf "Network initialized successfully."
+ NETWORK_INITIALIZED=1
+ return $SUCCESS
+}
+
+# f_media_shutdown_network $device
+#
+# Shuts down the configured network device (e.g., `fxp0', `em0', etc.) and
+# deletes the default route (if configured). Returns failure if the device
+# passed has not been configured. If not running as init (basically from the
+# FreeBSD install media) then does nothing and returns success.
+#
+f_media_shutdown_network()
+{
+ local dev="$1" cp
+
+ f_dprintf "Shutdown called for network device %s" "$dev"
+ if [ ! "$NETWORK_INITIALIZED" ]; then
+ f_dprintf "Network not initialized -- nothing to do."
+ return $SUCCESS
+ fi
+
+ unset NETWORK_INITIALIZED
+ unset $VAR_NETWORK_DEVICE
+
+ if ! f_running_as_init; then
+ f_dprintf "Not running as init -- calling the deed done."
+ return $SUCCESS
+ fi
+
+ f_getvar $VAR_IFCONFIG$dev cp || return $FAILURE
+ f_dprintf "ifconfig %s down" "$dev"
+ f_quietly ifconfig $dev down ||
+ f_show_msg "$msg_unable_to_down_the_interface_properly" "$dev"
+
+ if f_getvar $VAR_GATEWAY cp; then
+ f_dprintf "Deleting default route."
+ f_quietly route -n delete default
+ fi
+
+ return $SUCCESS
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/network.subr
+
+fi # ! $_MEDIA_NETWORK_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/nfs.subr b/usr.sbin/bsdconfig/share/media/nfs.subr
new file mode 100644
index 0000000..461db1c
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/nfs.subr
@@ -0,0 +1,251 @@
+if [ ! "$_MEDIA_NFS_SUBR" ]; then _MEDIA_NFS_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/nfs.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
+f_include $BSDCFG_SHARE/media/network.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+NFS_MOUNTED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_nfs
+#
+# Return success if we both found and set the media type to be an NFS server.
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_NFS_PATH
+# The NFS path specification (host:path) to use when mounting the
+# remote repository.
+# VAR_NAMESERVER [Optional]
+# Automatically populated from resolv.conf(5) but can be
+# overridden. If set, the host portion of VAR_NFS_PATH is
+# looked up using f_host_lookup() from `tcpip.subr'.
+#
+# Meanwhile, the following variables from variable.subr are set after
+# successful execution:
+#
+# VAR_NFS_HOST
+# The host portion of the NFS path specification, parsed from
+# VAR_NFS_PATH.
+#
+f_media_set_nfs()
+{
+ local nfs
+
+ f_media_close
+
+ f_variable_get_value $VAR_NFS_PATH \
+ "$msg_please_enter_the_full_nfs_file_specification"
+ f_getvar $VAR_NFS_PATH nfs
+ [ "$nfs" ] || return $FAILURE
+
+ case "$nfs" in
+ *:*) : valid NFS path ;;
+ *)
+ f_dialog_msgbox "$msg_invalid_nfs_path_specification"
+ return $FAILURE
+ esac
+
+ f_struct_new DEVICE device_nfs
+ device_nfs set name "$nfs"
+
+ if ! f_struct device_network ||
+ ! f_dialog_yesno "$msg_youve_already_done_the_network_configuration"
+ then
+ f_struct device_network &&
+ f_device_shutdown network
+ f_device_select_tcp || return $FAILURE
+ local dev
+ f_getvar $VAR_NETWORK_DEVICE dev
+ f_struct_copy "device_$dev" device_network
+ fi
+ f_device_init network ||
+ f_dprintf "%s: $msg_net_device_init_failed\n" f_media_set_nfs
+
+ local hostname="${nfs%%:*}"
+ if f_quietly f_getvar $VAR_NAMESERVER && ! {
+ f_validate_ipaddr "$hostname" ||
+ f_validate_ipaddr6 "$hostname"
+ }; then
+ f_show_info "$msg_looking_up_host" "$hostname"
+ f_dprintf "%s Looking up hostname, %s, using host(1)" \
+ "f_media_set_nfs" "$hostname"
+ if ! f_quietly f_host_lookup "$hostname"; then
+ f_show_msg "$msg_cannot_resolve_hostname" "$hostname"
+ f_struct device_network &&
+ f_device_shutdown network
+ f_struct_free device_network
+ unset $VAR_NFS_PATH
+ return $FAILURE
+ fi
+ f_dprintf "Found DNS entry for %s successfully." "$hostname"
+ fi
+
+ setvar $VAR_NFS_HOST "$hostname"
+
+ device_nfs set type $DEVICE_TYPE_NFS
+ device_nfs set init f_media_init_nfs
+ device_nfs set get f_media_get_nfs
+ device_nfs set shutdown f_media_shutdown_nfs
+ device_nfs set private device_network # in name only (deref'd later)
+
+ f_struct_copy device_nfs device_media
+ f_struct_free device_nfs
+
+ return $SUCCESS
+}
+
+# f_media_init_nfs $device
+#
+# Initializes the NFS media device. Returns success if able to mount the NFS
+# device using mount_nfs(1).
+#
+# The variables (from variable.subr) used to initialize the NFS mount are as
+# follows (all of which are configured manually/optionally from the options
+# menu):
+#
+# VAR_NFS_TCP [Optional]
+# If non-NULL, adds the "tcp" option via `-o' to mount_nfs(8).
+# VAR_NFS_V3 [Optional]
+# If non-NULL, adds the "nfsv3" option via `-o' to mount_nfs(8).
+# VAR_NFS_SECURE [Optional]
+# If non-NULL, adds the "-P" flag to mount_nfs(8).
+# VAR_SLOW_ETHER [Optional]
+# If non-NULL, adjusts the read/write size to avoid timeouts.
+#
+f_media_init_nfs()
+{
+ local dev="$1" name err
+
+ device_$dev get name name || return $FAILURE
+ f_dprintf "Init routine called for NFS device. name=[%s]" \
+ "$name"
+
+ if [ "$NFS_MOUNTED" ]; then
+ f_dprintf "NFS device already mounted."
+ return $SUCCESS
+ fi
+
+ if ! f_device_init network; then
+ f_dprintf "f_media_init_nfs: %s" "$msg_net_device_init_failed"
+ return $FAILURE
+ fi
+
+ if [ ! -e "$MOUNTPOINT" ] &&
+ ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 )
+ then
+ f_dialog_msgbox "$err"
+ return $FAILURE
+ fi
+
+ local cp tcp="" use3="" secure="" readsize=4096 writesize=4096
+ f_getvar $VAR_NFS_TCP cp
+ [ "$cp" = "YES" ] && tcp=1
+ f_getvar $VAR_NFS_V3 cp
+ [ "$cp" = "YES" ] && use3=1
+ f_getvar $VAR_NFS_SECURE cp
+ [ "$cp" = "YES" ] && secure=1
+ f_getvar $VAR_SLOW_ETHER cp
+ [ "$cp" = "YES" ] && readsize=1024 writesize=1024
+
+ local options="rsize=$readsize,wsize=$writesize"
+ [ "$use3" ] && options="$options,nfsv3"
+ [ "$tcp" ] && options="$options,tcp"
+
+ if ! err=$( mount_nfs \
+ ${secure:+-P} -o "$options" "$name" "$MOUNTPOINT" 2>&1 )
+ then
+ err="${err#mount_nfs: }"
+ f_show_msg "$msg_error_mounting_device" \
+ "$name" "$MOUNTPOINT" "$err"
+ f_struct device_network &&
+ f_device_shutdown network
+ return $FAILURE
+ fi
+ NFS_MOUNTED=1
+
+ f_dprintf "Mounted NFS device %s onto %s" "$name" "$MOUNTPOINT"
+
+ return $SUCCESS
+}
+
+# f_media_get_nfs $device $file [$probe_only]
+#
+# Returns data from $file on a mounted NFS device. Similar to cat(1).
+# $probe_only is currently unused by this media type.
+#
+f_media_get_nfs()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_nfs: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ f_media_generic_get "$MOUNTPOINT" "$file"
+}
+
+# f_media_shutdown_nfs $device
+#
+# Shuts down the NFS device using umount(8). Return status should be ignored.
+#
+f_media_shutdown_nfs()
+{
+ local dev="$1" err
+
+ [ "$NFS_MOUNTED" ] || return
+
+ f_dprintf "Unmounting NFS partition on %s" "$MOUNTPOINT"
+ if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*: }"
+ f_show_msg "$msg_could_not_unmount_the_nfs_partition" \
+ "$MOUNTPOINT" "$err"
+ else
+ NFS_MOUNTED=
+ fi
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/nfs.subr
+
+fi # ! $_MEDIA_NFS_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/options.subr b/usr.sbin/bsdconfig/share/media/options.subr
new file mode 100644
index 0000000..c32bec5
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/options.subr
@@ -0,0 +1,308 @@
+if [ ! "$_MEDIA_OPTIONS_SUBR" ]; then _MEDIA_OPTIONS_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/options.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/any.subr
+f_include $BSDCFG_SHARE/media/ftp.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+OPTIONS_HELPFILE=$BSDCFG_LIBE/include/options.hlp
+
+############################################################ FUNCTIONS
+
+# f_media_options_menu
+#
+# Prompt the user to confirm/edit various media settings. Returns success.
+#
+f_media_options_menu()
+{
+ f_dialog_title "$msg_options_editor"
+ local title="$DIALOG_TITLE" btitle="$DIALOG_BACKTITLE"
+ f_dialog_title_restore
+ local prompt=""
+ local hline="$hline_arrows_tab_enter"
+ local menu_list size cp
+
+ #
+ # A hack so that the dialogs below are always interactive in a script
+ #
+ local old_interactive=
+ if ! f_interactive; then
+ f_getvar $VAR_NONINTERACTIVE old_interactive
+ unset $VAR_NONINTERACTIVE
+ fi
+
+ while :; do
+ menu_list=""
+
+ f_getvar $VAR_NFS_SECURE cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_nfs_secure' 'YES'
+ '$msg_nfs_server_talks_only_on_a_secure_port'"
+ else menu_list="$menu_list
+ ' $msg_nfs_secure' 'NO'
+ '$msg_nfs_server_talks_only_on_a_secure_port'"
+ fi
+
+ f_getvar $VAR_SLOW_ETHER cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_nfs_slow' 'YES'
+ '$msg_user_is_using_a_slow_pc_or_ethernet_card'"
+ else menu_list="$menu_list
+ ' $msg_nfs_slow' 'NO'
+ '$msg_user_is_using_a_slow_pc_or_ethernet_card'"
+ fi
+
+ f_getvar $VAR_NFS_TCP cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_nfs_tcp' 'YES' '$msg_use_tcp_protocol_for_nfs'"
+ else menu_list="$menu_list
+ ' $msg_nfs_tcp' 'NO' '$msg_use_tcp_protocol_for_nfs'"
+ fi
+
+ f_getvar $VAR_NFS_V3 cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_nfs_version_3' 'YES' '$msg_use_nfs_version_3'"
+ else menu_list="$menu_list
+ ' $msg_nfs_version_3' 'NO' '$msg_use_nfs_version_3'"
+ fi
+
+ f_getvar $VAR_DEBUG cp
+ if [ "$cp" ]; then menu_list="$menu_list
+ ' $msg_debugging' 'YES'
+ '$msg_emit_extra_debugging_output'"
+ else menu_list="$menu_list
+ ' $msg_debugging' 'NO'
+ '$msg_emit_extra_debugging_output'"
+ fi
+
+ f_getvar $VAR_TRY_DHCP cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_dhcp' 'YES'
+ '$msg_attempt_automatic_dhcp_configuration'"
+ else menu_list="$menu_list
+ ' $msg_dhcp' 'NO'
+ '$msg_attempt_automatic_dhcp_configuration'"
+ fi
+
+ f_getvar $VAR_TRY_RTSOL cp
+ if [ "$cp" = "YES" ]; then menu_list="$menu_list
+ ' $msg_ipv6' 'YES'
+ '$msg_attempt_ipv6_configuration_of_interfaces'"
+ else menu_list="$menu_list
+ ' $msg_ipv6' 'NO'
+ '$msg_attempt_ipv6_configuration_of_interfaces'"
+ fi
+
+ f_getvar $VAR_FTP_USER cp
+ menu_list="$menu_list
+ ' $msg_ftp_username' '$cp'
+ '$msg_username_and_password_to_use'"
+
+ f_getvar $VAR_EDITOR cp
+ menu_list="$menu_list
+ ' $msg_editor' '$cp' '$msg_which_text_editor_to_use'"
+
+ f_getvar $VAR_RELNAME cp
+ menu_list="$menu_list
+ ' $msg_release_name' '$cp'
+ '$msg_which_release_to_attempt_to_load'"
+
+ if f_struct device_media; then
+ device_media get type cp
+ case "$cp" in
+ $DEVICE_TYPE_UFS|$DEVICE_TYPE_DISK)
+ cp="$msg_file_system";;
+ $DEVICE_TYPE_DIRECTORY)
+ cp="$msg_directory";;
+ $DEVICE_TYPE_FLOPPY)
+ cp="$msg_floppy";;
+ $DEVICE_TYPE_FTP)
+ cp="$msg_ftp";;
+ $DEVICE_TYPE_HTTP_PROXY)
+ cp="$msg_http_proxy";;
+ $DEVICE_TYPE_CDROM)
+ cp="$msg_cdrom";;
+ $DEVICE_TYPE_USB)
+ cp="$msg_usb";;
+ $DEVICE_TYPE_DOS)
+ cp="$msg_dos";;
+ $DEVICE_TYPE_NFS)
+ cp="$msg_nfs";;
+ *)
+ cp="<$msg_unknown>"
+ esac
+ else
+ cp="<$msg_not_yet_set>"
+ fi
+ menu_list="$menu_list
+ ' $msg_media_type' '$cp'
+ '$msg_the_current_installation_media_type'"
+
+ f_getvar $VAR_MEDIA_TIMEOUT cp
+ menu_list="$menu_list
+ ' $msg_media_timeout' '$cp'
+ '$msg_timeout_value_in_seconds_for_slow_media'"
+
+ menu_list="$menu_list
+ ' $msg_rescan_devices' '<*>'
+ '$msg_rerun_bsdconfig_initial_device_probe'
+ ' $msg_use_defaults' '[${msg_reset}]'
+ '$msg_reset_all_values_to_startup_defaults'
+ " # END-QUOTE
+
+ size=$( eval f_dialog_menu_with_help_size \
+ \"\$title\" \
+ \"\$btitle\" \
+ \"\$prompt\" \
+ \"\$hline\" \
+ $menu_list )
+
+ local dialog_menu
+
+ dialog_menu=$( eval $DIALOG \
+ --title \"\$title\" \
+ --backtitle \"\$btitle\" \
+ --hline \"\$hline\" \
+ --item-help \
+ --ok-label \"\$msg_ok\" \
+ --cancel-label \"\$msg_done\" \
+ --help-button \
+ --help-label \"\$msg_help\" \
+ ${USE_XDIALOG:+--help \"\"} \
+ --menu \"\$prompt\" $size $menu_list \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ local retval=$?
+ setvar DIALOG_MENU_$$ "$dialog_menu"
+
+ local mtag
+ mtag=$( f_dialog_menutag )
+ f_dprintf "retval=%s mtag=[%s]" $retval "$mtag"
+
+ if [ $retval -eq 2 ]; then
+ # The Help button was pressed
+ f_show_help "$OPTIONS_HELPFILE"
+ continue
+ elif [ $retval -ne 0 ]; then
+ break # to success
+ fi
+
+ case "$mtag" in
+ " $msg_nfs_secure")
+ f_getvar $VAR_NFS_SECURE cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_NFS_SECURE="NO"
+ else
+ export $VAR_NFS_SECURE="YES"
+ fi ;;
+ " $msg_nfs_slow")
+ f_getvar $VAR_SLOW_ETHER cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_SLOW_ETHER="NO"
+ else
+ export $VAR_SLOW_ETHER="YES"
+ fi ;;
+ " $msg_nfs_tcp")
+ f_getvar $VAR_NFS_TCP cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_NFS_TCP="NO"
+ else
+ export $VAR_NFS_TCP="YES"
+ fi ;;
+ " $msg_nfs_version_3")
+ f_getvar $VAR_NFS_V3 cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_NFS_V3="NO"
+ else
+ export $VAR_NFS_V3="YES"
+ fi ;;
+ " $msg_debugging")
+ if f_getvar $VAR_DEBUG cp && [ "$cp" ]; then
+ unset $VAR_DEBUG
+ else
+ export $VAR_DEBUG=1
+ fi ;;
+ " $msg_dhcp")
+ f_getvar $VAR_TRY_DHCP cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_TRY_DHCP="NO"
+ else
+ export $VAR_TRY_DHCP="YES"
+ fi ;;
+ " $msg_ipv6")
+ f_getvar $VAR_TRY_RTSOL cp
+ if [ "$cp" = "YES" ]; then
+ export $VAR_TRY_RTSOL="NO"
+ else
+ export $VAR_TRY_RTSOL="YES"
+ fi ;;
+ " $msg_ftp_username")
+ f_media_set_ftp_userpass ;;
+ " $msg_editor")
+ f_variable_get_value $VAR_EDITOR \
+ "$msg_please_specify_the_name_of_the_text_editor"
+ ;;
+ " $msg_release_name")
+ f_variable_get_value $VAR_RELNAME \
+ "$msg_please_specify_the_release_you_wish_to_load"
+ ;;
+ " $msg_media_type")
+ f_media_get_type ;;
+ " $msg_media_timeout")
+ f_variable_get_value $VAR_MEDIA_TIMEOUT \
+ "$msg_please_specify_the_number_of_seconds_to_wait"
+ ;;
+ " $msg_rescan_devices")
+ f_device_rescan ;;
+ " $msg_use_defaults")
+ f_variable_set_defaults ;;
+ esac
+ done
+
+ # Restore old VAR_NONINTERACTIVE if needed.
+ [ "$old_interactive" ] &&
+ setvar $VAR_NONINTERACTIVE "$old_interactive"
+
+ return $SUCCESS
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/options.subr
+
+fi # ! $_MEDIA_OPTIONS_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/tcpip.subr b/usr.sbin/bsdconfig/share/media/tcpip.subr
new file mode 100644
index 0000000..0bf0487
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/tcpip.subr
@@ -0,0 +1,1688 @@
+if [ ! "$_MEDIA_TCPIP_SUBR" ]; then _MEDIA_TCPIP_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/tcpip.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+TCP_HELPFILE=$BSDCFG_LIBE/include/tcp.hlp
+NETWORK_DEVICE_HELPFILE=$BSDCFG_LIBE/include/network_device.hlp
+
+############################################################ GLOBALS
+
+#
+# Path to resolv.conf(5).
+#
+: ${RESOLV_CONF:="/etc/resolv.conf"}
+
+#
+# Path to nsswitch.conf(5).
+#
+: ${NSSWITCH_CONF:="/etc/nsswitch.conf"}
+
+#
+# Path to hosts(5)
+#
+: ${ETC_HOSTS:="/etc/hosts"}
+
+#
+# Structure of dhclient.leases(5) lease { ... } entry
+#
+f_struct_define DHCP_LEASE \
+ interface \
+ fixed_address \
+ filename \
+ server_name \
+ script \
+ medium \
+ host_name \
+ subnet_mask \
+ routers \
+ domain_name_servers \
+ domain_name \
+ broadcast_address \
+ dhcp_lease_time \
+ dhcp_message_type \
+ dhcp_server_identifier \
+ dhcp_renewal_time \
+ dhcp_rebinding_time \
+ renew \
+ rebind \
+ expire
+
+############################################################ FUNCTIONS
+
+# f_validate_hostname $hostname
+#
+# Returns zero if the given argument (a fully-qualified hostname) is compliant
+# with standards set-forth in RFC's 952 and 1123 of the Network Working Group:
+#
+# RFC 952 - DoD Internet host table specification
+# http://tools.ietf.org/html/rfc952
+#
+# RFC 1123 - Requirements for Internet Hosts - Application and Support
+# http://tools.ietf.org/html/rfc1123
+#
+# See http://en.wikipedia.org/wiki/Hostname for a brief overview.
+#
+# The return status for invalid hostnames is one of:
+# 255 Entire hostname exceeds the maximum length of 255 characters.
+# 63 One or more individual labels within the hostname (separated by
+# dots) exceeds the maximum of 63 characters.
+# 1 One or more individual labels within the hostname contains one
+# or more invalid characters.
+# 2 One or more individual labels within the hostname starts or
+# ends with a hyphen (hyphens are allowed, but a label cannot
+# begin or end with a hyphen).
+# 3 One or more individual labels within the hostname are null.
+#
+# f_dialog_validate_hostname $hostname
+#
+# If the hostname is determined to be invalid, the appropriate error will be
+# displayed using the f_show_msg function.
+#
+f_validate_hostname()
+{
+ local fqhn="$1"
+
+ # Return error if the hostname exceeds 255 characters
+ [ ${#fqhn} -gt 255 ] && return 255
+
+ local IFS="." # Split on `dot'
+ for label in $fqhn; do
+ # Return error if the label exceeds 63 characters
+ [ ${#label} -gt 63 ] && return 63
+
+ # Return error if the label is null
+ [ "$label" ] || return 3
+
+ # Return error if label begins/ends with dash
+ case "$label" in -*|*-) return 2; esac
+
+ # Return error if the label contains any invalid chars
+ case "$label" in *[!0-9a-zA-Z-]*) return 1; esac
+ done
+
+ return $SUCCESS
+}
+
+# f_inet_atoi $ipv4_address [$var_to_set]
+#
+# Convert an IPv4 address or mask from dotted-quad notation (e.g., `127.0.0.1'
+# or `255.255.255.0') to a 32-bit unsigned integer for the purpose of network
+# and broadcast calculations. For example, one can validate that two addresses
+# are on the same network:
+#
+# f_inet_atoi 1.2.3.4 ip1num
+# f_inet_atoi 1.2.4.5 ip2num
+# f_inet_atoi 255.255.0.0 masknum
+# if [ $(( $ip1num & $masknum )) -eq \
+# $(( $ip2num & $masknum )) ]
+# then
+# : IP addresses are on same network
+# fi
+#
+# See f_validate_ipaddr() below for an additional example usage, on calculating
+# network and broadcast addresses.
+#
+# If $var_to_set is missing or NULL, the converted IP address is printed to
+# standard output for capturing in a sub-shell (which is less-recommended
+# because of performance degredation; for example, when called in a loop).
+#
+f_inet_atoi()
+{
+ local __addr="$1" __var_to_set="$2" __num=0
+ if f_validate_ipaddr "$__addr"; then
+ __num=$( IFS=.; set -- $__addr; \
+ echo $(( ($1 << 24) + ($2 << 16) + ($3 << 8) + $4 )) )
+ fi
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" $__num
+ else
+ echo $__num
+ fi
+}
+
+# f_validate_ipaddr $ipaddr [$netmask]
+#
+# Returns zero if the given argument (an IP address) is of the proper format.
+#
+# The return status for invalid IP address is one of:
+# 1 One or more individual octets within the IP address (separated
+# by dots) contains one or more invalid characters.
+# 2 One or more individual octets within the IP address are null
+# and/or missing.
+# 3 One or more individual octets within the IP address exceeds the
+# maximum of 255 (or 2^8, being an octet comprised of 8 bits).
+# 4 The IP address has either too few or too many octets.
+#
+# If a netmask is provided, the IP address is checked further:
+#
+# 5 The IP address must not be the network or broadcast address.
+#
+f_validate_ipaddr()
+{
+ local ip="$1" mask="$2"
+
+ # Track number of octets for error checking
+ local noctets=0
+
+ local oldIFS="$IFS"
+ local IFS="." # Split on `dot'
+ for octet in $ip; do
+ # Return error if the octet is null
+ [ "$octet" ] || return 2
+
+ # Return error if not a whole integer
+ f_isinteger "$octet" || return 1
+
+ # Return error if not a positive integer
+ [ $octet -ge 0 ] || return 1
+
+ # Return error if the octet exceeds 255
+ [ $octet -gt 255 ] && return 3
+
+ noctets=$(( $noctets + 1 ))
+ done
+ IFS="$oldIFS"
+
+ [ $noctets -eq 4 ] || return 4
+
+ #
+ # The IP address must not be network or broadcast address.
+ #
+ if [ "$mask" ]; then
+ local ipnum masknum netnum bcastnum
+ local max_addr=4294967295 # 255.255.255.255
+
+ f_inet_atoi $ip ipnum
+ f_inet_atoi $mask masknum
+
+ netnum=$(( $ipnum & $masknum ))
+ bcastnum=$(( ($ipnum & $masknum)+$max_addr-$masknum ))
+
+ if [ "$masknum" ] &&
+ [ $ipnum -eq $netnum -o $ipnum -eq $bcastnum ]
+ then
+ return 5
+ fi
+ fi
+
+ return $SUCCESS
+}
+
+# f_validate_ipaddr6 $ipv6_addr
+#
+# Returns zero if the given argument (an IPv6 address) is of the proper format.
+#
+# The return status for invalid IP address is one of:
+# 1 One or more individual segments within the IP address
+# (separated by colons) contains one or more invalid characters.
+# Segments must contain only combinations of the characters 0-9,
+# A-F, or a-f.
+# 2 Too many/incorrect null segments. A single null segment is
+# allowed within the IP address (separated by colons) but not
+# allowed at the beginning or end (unless a double-null segment;
+# i.e., "::*" or "*::").
+# 3 One or more individual segments within the IP address
+# (separated by colons) exceeds the length of 4 hex-digits.
+# 4 The IP address entered has either too few (less than 3), too
+# many (more than 8), or not enough segments, separated by
+# colons.
+# 5* The IPv4 address at the end of the IPv6 address is invalid.
+# * When there is an error with the dotted-quad IPv4 address at the
+# end of the IPv6 address, the return value of 5 is OR'd with a
+# bit-shifted (<< 4) return of f_validate_ipaddr.
+#
+f_validate_ipaddr6()
+{
+ local ip="${1%\%*}" # removing the interface specification if-present
+
+ local IFS=":" # Split on `colon'
+ set -- $ip:
+
+ # Return error if too many or too few segments
+ # Using 9 as max in case of leading or trailing null spanner
+ [ $# -gt 9 -o $# -lt 3 ] && return 4
+
+ local h="[0-9A-Fa-f]"
+ local nulls=0 nsegments=$# contains_ipv4_segment=
+
+ while [ $# -gt 0 ]; do
+
+ segment="${1%:}"
+ shift
+
+ #
+ # Return error if this segment makes one null too-many. A
+ # single null segment is allowed anywhere in the middle as well
+ # as double null segments are allowed at the beginning or end
+ # (but not both).
+ #
+ if [ ! "$segment" ]; then
+ nulls=$(( $nulls + 1 ))
+ if [ $nulls -eq 3 ]; then
+ # Only valid syntax for 3 nulls is `::'
+ [ "$ip" = "::" ] || return 2
+ elif [ $nulls -eq 2 ]; then
+ # Only valid if begins/ends with `::'
+ case "$ip" in
+ ::*|*::) : fall thru ;;
+ *) return 2
+ esac
+ fi
+ continue
+ fi
+
+ #
+ # Return error if not a valid hexadecimal short
+ #
+ case "$segment" in
+ $h|$h$h|$h$h$h|$h$h$h$h)
+ : valid segment of 1-4 hexadecimal digits
+ ;;
+ *[!0-9A-Fa-f]*)
+ # Segment contains at least one invalid char
+
+ # Return error immediately if not last segment
+ [ $# -eq 0 ] || return 1
+
+ # Otherwise, check for legacy IPv4 notation
+ case "$segment" in
+ *[!0-9.]*)
+ # Segment contains at least one invalid
+ # character even for an IPv4 address
+ return 1
+ esac
+
+ # Return error if not enough segments
+ if [ $nulls -eq 0 ]; then
+ [ $nsegments -eq 7 ] || return 4
+ fi
+
+ contains_ipv4_segment=1
+
+ # Validate the IPv4 address
+ f_validate_ipaddr "$segment" ||
+ return $(( 5 | $? << 4 ))
+ ;;
+ *)
+ # Segment characters are all valid but too many
+ return 3
+ esac
+
+ done
+
+ if [ $nulls -eq 1 ]; then
+ # Single null segment cannot be at beginning/end
+ case "$ip" in
+ :*|*:) return 2
+ esac
+ fi
+
+ #
+ # A legacy IPv4 address can span the last two 16-bit segments,
+ # reducing the amount of maximum allowable segments by-one.
+ #
+ maxsegments=8
+ if [ "$contains_ipv4_segment" ]; then
+ maxsegments=7
+ fi
+
+ case $nulls in
+ # Return error if missing segments with no null spanner
+ 0) [ $nsegments -eq $maxsegments ] || return 4 ;;
+ # Return error if null spanner with too many segments
+ 1) [ $nsegments -le $maxsegments ] || return 4 ;;
+ # Return error if leading/trailing `::' with too many segments
+ 2) [ $nsegments -le $(( $maxsegments + 1 )) ] || return 4 ;;
+ esac
+
+ return $SUCCESS
+}
+
+# f_validate_netmask $netmask
+#
+# Returns zero if the given argument (a subnet mask) is of the proper format.
+#
+# The return status for invalid netmask is one of:
+# 1 One or more individual fields within the subnet mask (separated
+# by dots) contains one or more invalid characters.
+# 2 One or more individual fields within the subnet mask are null
+# and/or missing.
+# 3 One or more individual fields within the subnet mask exceeds
+# the maximum of 255 (a full 8-bit register).
+# 4 The subnet mask has either too few or too many fields.
+# 5 One or more individual fields within the subnet mask is an
+# invalid integer (only 0,128,192,224,240,248,252,254,255 are
+# valid integers).
+#
+f_validate_netmask()
+{
+ local mask="$1"
+
+ # Track number of fields for error checking
+ local nfields=0
+
+ local IFS="." # Split on `dot'
+ for field in $mask; do
+ # Return error if the field is null
+ [ "$field" ] || return 2
+
+ # Return error if not a whole positive integer
+ f_isinteger "$field" || return 1
+
+ # Return error if the field exceeds 255
+ [ $field -gt 255 ] && return 3
+
+ # Return error if the field is an invalid integer
+ case "$field" in
+ 0|128|192|224|240|248|252|254|255) :;;
+ *) return 5;;
+ esac
+
+ nfields=$(( $nfields + 1 ))
+ done
+
+ [ $nfields -eq 4 ] || return 4
+}
+
+# f_validate_gateway $gateway $ipaddr $netmask
+#
+# Validate an IPv4 default gateway (aka router) address for a given IP address
+# making sure the two are in the same network (able to ``talk'' to each other).
+# Returns success if $ipaddr and $gateway are in the same network given subnet
+# mask $netmask.
+#
+f_validate_gateway()
+{
+ local gateway="$1" ipaddr="$2" netmask="$3"
+ local gwnum ipnum masknum
+
+ f_validate_ipaddr "$gateway" "$netmask" || return $FAILURE
+
+ f_inet_atoi "$netmask" masknum
+ f_inet_atoi "$ipaddr" ipnum
+ f_inet_atoi "$gateway" gwnum
+
+ # Gateway must be within set of IPs reachable through interface
+ [ $(( $ipnum & $masknum )) -eq \
+ $(( $gwnum & $masknum )) ] # Return status
+}
+
+# f_dialog_validate_tcpip $hostname $gateway $nameserver $ipaddr $netmask
+#
+# Returns success if the arguments provided are valid for accessing a TCP/IP
+# network, otherwise returns failure.
+#
+f_dialog_validate_tcpip()
+{
+ local hostname="$1" gateway="$2" nameserver="$3"
+ local ipaddr="$4" netmask="$5"
+ local ipnum masknum
+
+ if [ ! "$hostname" ]; then
+ f_dialog_msgbox "$msg_must_specify_a_host_name_of_some_sort"
+ elif ! f_validate_hostname "$hostname"; then
+ f_dialog_msgbox "$msg_invalid_hostname_value"
+ elif [ "$netmask" ] && ! f_validate_netmask "$netmask"; then
+ f_dialog_msgbox "$msg_invalid_netmask_value"
+ elif [ "$nameserver" ] &&
+ ! f_validate_ipaddr "$nameserver" &&
+ ! f_validate_ipaddr6 "$nameserver"; then
+ f_dialog_msgbox "$msg_invalid_name_server_ip_address_specified"
+ elif [ "$ipaddr" ] && ! f_validate_ipaddr "$ipaddr" "$netmask"; then
+ f_dialog_msgbox "$msg_invalid_ipv4_address"
+ elif [ "$gateway" -a "$gateway" != "NO" ] &&
+ ! f_validate_gateway "$gateway" "$ipaddr" "$netmask"; then
+ f_dialog_msgbox "$msg_invalid_gateway_ipv4_address_specified"
+ else
+ return $SUCCESS
+ fi
+
+ return $FAILURE
+}
+
+# f_ifconfig_inet $interface [$var_to_set]
+#
+# Returns the IPv4 address associated with $interface. If $var_to_set is
+# missing or NULL, the IP address is printed to standard output for capturing
+# in a sub-shell (which is less-recommended because of performance degredation;
+# for example, when called in a loop).
+#
+# This function is a two-parter. Below is the awk(1) portion of the function,
+# afterward is the sh(1) function which utilizes the below awk script.
+#
+f_ifconfig_inet_awk='
+BEGIN { found = 0 }
+( $1 == "inet" ) \
+{
+ print $2
+ found = 1
+ exit
+}
+END { exit ! found }
+'
+f_ifconfig_inet()
+{
+ local __interface="$1" __var_to_set="$2"
+ if [ "$__var_to_set" ]; then
+ local __ip
+ __ip=$( ifconfig "$__interface" 2> /dev/null |
+ awk "$f_ifconfig_inet_awk" )
+ setvar "$__var_to_set" "$__ip"
+ else
+ ifconfig "$__interface" 2> /dev/null |
+ awk "$f_ifconfig_inet_awk"
+ fi
+}
+
+# f_ifconfig_inet6 $interface [$var_to_set]
+#
+# Returns the IPv6 address associated with $interface. If $var_to_set is
+# missing or NULL, the IP address is printed to standard output for capturing
+# in a sub-shell (which is less-recommended because of performance degredation;
+# for example, when called in a loop).
+#
+# This function is a two-parter. Below is the awk(1) portion of the function,
+# afterward is the sh(1) function which utilizes the below awk script.
+#
+f_ifconfig_inet6_awk='
+BEGIN { found = 0 }
+( $1 == "inet6" ) \
+{
+ print $2
+ found = 1
+ exit
+}
+END { exit ! found }
+'
+f_ifconfig_inet6()
+{
+ local __interface="$1" __var_to_set="$2"
+ if [ "$__var_to_set" ]; then
+ local __ip6
+ __ip6=$( ifconfig "$__interface" 2> /dev/null |
+ awk "$f_ifconfig_inet6_awk" )
+ setvar "$__var_to_set" "$__ip6"
+ else
+ ifconfig "$__interface" 2> /dev/null |
+ awk "$f_ifconfig_inet6_awk"
+ fi
+}
+
+# f_ifconfig_netmask $interface [$var_to_set]
+#
+# Returns the IPv4 subnet mask associated with $interface. If $var_to_set is
+# missing or NULL, the netmask is printed to standard output for capturing in a
+# sub-shell (which is less-recommended because of performance degredation; for
+# example, when called in a loop).
+#
+f_ifconfig_netmask()
+{
+ local __interface="$1" __var_to_set="$2" __octets
+ __octets=$( ifconfig "$__interface" 2> /dev/null | awk \
+ '
+ BEGIN { found = 0 }
+ ( $1 == "inet" ) \
+ {
+ printf "%s %s %s %s\n",
+ substr($4,3,2),
+ substr($4,5,2),
+ substr($4,7,2),
+ substr($4,9,2)
+ found = 1
+ exit
+ }
+ END { exit ! found }
+ ' ) || return $FAILURE
+
+ local __octet __netmask=
+ for __octet in $__octets; do
+ __netmask="$__netmask.$( printf "%u" "0x$__octet" )"
+ done
+ __netmask="${__netmask#.}"
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" "$__netmask"
+ else
+ echo $__netmask
+ fi
+}
+
+# f_route_get_default [$var_to_set]
+#
+# Returns the IP address of the currently active default router. If $var_to_set
+# is missing or NULL, the IP address is printed to standard output for
+# capturing in a sub-shell (which is less-recommended because of performance
+# degredation; for example, when called in a loop).
+#
+# This function is a two-parter. Below is the awk(1) portion of the function,
+# afterward is the sh(1) function which utilizes the below awk script.
+#
+f_route_get_default='
+BEGIN { found = 0 }
+( $1 == "gateway:" ) \
+{
+ print $2
+ found = 1
+ exit
+}
+END { exit ! found }
+'
+f_route_get_default()
+{
+ local __var_to_set="$1"
+ if [ "$__var_to_set" ]; then
+ local __ip
+ __ip=$( route -n get default 2> /dev/null |
+ awk "$f_route_get_default_awk" )
+ setvar "$__var_to_set" "$__ip"
+ else
+ route -n get default 2> /dev/null |
+ awk "$f_route_get_default_awk"
+ fi
+}
+
+# f_resolv_conf_nameservers [$var_to_set]
+#
+# Returns nameserver(s) configured in resolv.conf(5). If $var_to_set is missing
+# or NULL, the list of nameservers is printed to standard output for capturing
+# in a sub-shell (which is less-recommended because of performance degredation;
+# for example, when called in a loop).
+#
+# This function is a two-parter. Below is the awk(1) portion of the function,
+# afterward is the sh(1) function which utilizes the below awk script.
+#
+f_resolv_conf_nameservers_awk='
+BEGIN { found = 0 }
+( $1 == "nameserver" ) \
+{
+ print $2
+ found = 1
+}
+END { exit ! found }
+'
+f_resolv_conf_nameservers()
+{
+ local __var_to_set="$1"
+ if [ "$__var_to_set" ]; then
+ local __ns
+ __ns=$( awk "$f_resolv_conf_nameservers_awk" "$RESOLV_CONF" \
+ 2> /dev/null )
+ setvar "$__var_to_set" "$__ns"
+ else
+ awk "$f_resolv_conf_nameservers_awk" "$RESOLV_CONF" \
+ 2> /dev/null
+ fi
+}
+
+# f_config_resolv
+#
+# Attempts to configure resolv.conf(5) and ilk. Returns success if able to
+# write the file(s), otherwise returns error status.
+#
+# Variables from variable.subr that are used in configuring resolv.conf(5) are
+# as follows (all of which can be configured automatically through functions
+# like f_dhcp_get_info() or manually):
+#
+# VAR_NAMESERVER
+# The nameserver to add in resolv.conf(5).
+# VAR_DOMAINNAME
+# The domain to configure in resolv.conf(5). Also used in the
+# configuration of hosts(5).
+# VAR_IPADDR
+# The IPv4 address to configure in hosts(5).
+# VAR_IPV6ADDR
+# The IPv6 address to configure in hosts(5).
+# VAR_HOSTNAME
+# The hostname to associate with the IPv4 and/or IPv6 address in
+# hosts(5).
+#
+f_config_resolv()
+{
+ local cp c6p dp hp
+
+ f_getvar $VAR_NAMESERVER cp
+ if [ "$cp" ]; then
+ case "$RESOLV_CONF" in
+ */*) f_quietly mkdir -p "${RESOLV_CONF%/*}" ;;
+ esac
+
+ # Attempt to create/truncate the file
+ ( :> "$RESOLV_CONF" ) 2> /dev/null || return $FAILURE
+
+ f_getvar $VAR_DOMAINNAME dp &&
+ printf "domain\t%s\n" "$dp" >> "$RESOLV_CONF"
+ printf "nameserver\t%s\n" "$cp" >> "$RESOLV_CONF"
+
+ f_dprintf "Wrote out %s" "$RESOLV_CONF"
+ fi
+
+ f_getvar $VAR_DOMAINNAME dp
+ f_getvar $VAR_IPADDR cp
+ f_getvar $VAR_IPV6ADDR c6p
+ f_getvar $VAR_HOSTNAME hp
+
+ # Attempt to create the file if it doesn't already exist
+ if [ ! -e "$ETC_HOSTS" ]; then
+ case "$ETC_HOSTS" in
+ */*) f_quietly mkdir -p "${ETC_HOSTS%/*}" ;;
+ esac
+
+ ( :> "$ETC_HOSTS" ) 2> /dev/null || return $FAILURE
+ fi
+
+ # Scan the file and add ourselves if not already configured
+ awk -v dn="$dp" -v ip4="$cp" -v ip6="$c6p" -v hn="$hp" '
+ BEGIN {
+ local4found = local6found = 0
+ hn4found = hn6found = h4found = h6found = 0
+ h = ( match(hn, /\./) ? substr(hn, 0, RSTART-1) : "" )
+ }
+ ($1 == "127.0.0.1") { local4found = 1 }
+ ($1 == "::1") { local6found = 1 }
+ {
+ for (n = 2; n <= NF; n++)
+ {
+ if ( $1 == ip4 ) {
+ if ( $n == h ) h4found = 1
+ if ( $n == hn ) hn4found = 1
+ if ( $n == hn "." ) hn4found = 1
+ }
+ if ( $1 == ip6 ) {
+ if ( $n == h ) h6found = 1
+ if ( $n == hn ) hn6found = 1
+ if ( $n == hn "." ) hn6found = 1
+ }
+ }
+ }
+ END {
+ hosts = FILENAME
+
+ if ( ! local6found )
+ printf "::1\t\t\tlocalhost%s\n",
+ ( dn ? " localhost." dn : "" ) >> hosts
+ if ( ! local4found )
+ printf "127.0.0.1\t\tlocalhost%s\n",
+ ( dn ? " localhost." dn : "" ) >> hosts
+
+ if ( ip6 && ! (h6found && hn6found))
+ {
+ printf "%s\t%s %s\n", ip6, hn, h >> hosts
+ printf "%s\t%s.\n", ip6, hn >> hosts
+ }
+ else if ( ip6 )
+ {
+ if ( ! h6found )
+ printf "%s\t%s.\n", ip6, h >> hosts
+ if ( ! hn6found )
+ printf "%s\t%s\n", ip6, hn >> hosts
+ }
+
+ if ( ip4 && ! (h4found && hn4found))
+ {
+ printf "%s\t\t%s %s\n", ip4, hn, h >> hosts
+ printf "%s\t\t%s.\n", ip4, hn >> hosts
+ }
+ else if ( ip4 )
+ {
+ if ( ! h4found )
+ printf "%s\t\t%s.\n", ip4, h >> hosts
+ if ( ! hn4found )
+ printf "%s\t\t%s\n", ip4, hn >> hosts
+ }
+ }
+ ' "$ETC_HOSTS" 2> /dev/null || return $FAILURE
+
+ f_dprintf "Wrote out %s" "$ETC_HOSTS"
+ return $SUCCESS
+}
+
+# f_dhcp_parse_leases $leasefile struct_name
+#
+# Parse $leasefile and store the information for the most recent lease in a
+# struct (see struct.subr for additional details) named `struct_name'. See
+# DHCP_LEASE struct definition in the GLOBALS section above.
+#
+f_dhcp_parse_leases()
+{
+ local leasefile="$1" struct_name="$2"
+
+ [ "$struct_name" ] || return $FAILURE
+
+ if [ ! -e "$leasefile" ]; then
+ f_dprintf "%s: No such file or directory" "$leasefile"
+ return $FAILURE
+ fi
+
+ f_struct "$struct_name" && f_struct_free "$struct_name"
+ f_struct_new DHCP_LEASE "$struct_name"
+
+ eval "$( awk -v struct="$struct_name" '
+ BEGIN {
+ lease_found = 0
+ keyword_list = " \
+ interface \
+ fixed-address \
+ filename \
+ server-name \
+ script \
+ medium \
+ "
+ split(keyword_list, keywords, FS)
+
+ time_list = "renew rebind expire"
+ split(time_list, times, FS)
+
+ option_list = " \
+ host-name \
+ subnet-mask \
+ routers \
+ domain-name-servers \
+ domain-name \
+ broadcast-address \
+ dhcp-lease-time \
+ dhcp-message-type \
+ dhcp-server-identifier \
+ dhcp-renewal-time \
+ dhcp-rebinding-time \
+ "
+ split(option_list, options, FS)
+ }
+ function set_value(prop,value)
+ {
+ lease_found = 1
+ gsub(/[^[:alnum:]_]/, "_", prop)
+ sub(/;$/, "", value)
+ sub(/^"/, "", value)
+ sub(/"$/, "", value)
+ sub(/,.*/, "", value)
+ printf "%s set %s \"%s\"\n", struct, prop, value
+ }
+ /^lease {$/, /^}$/ \
+ {
+ if ( $0 ~ /^lease {$/ ) next
+ if ( $0 ~ /^}$/ ) exit
+
+ for (k in keywords)
+ {
+ keyword = keywords[k]
+ if ( $1 == keyword )
+ {
+ set_value(keyword, $2)
+ next
+ }
+ }
+
+ for (t in times)
+ {
+ time = times[t]
+ if ( $1 == time )
+ {
+ set_value(time, $2 " " $3 " " $4)
+ next
+ }
+ }
+
+ if ( $1 != "option" ) next
+ for (o in options)
+ {
+ option = options[o]
+ if ( $2 == option )
+ {
+ set_value(option, $3)
+ next
+ }
+ }
+ }
+ EXIT {
+ if ( ! lease_found )
+ {
+ printf "f_struct_free \"%s\"\n", struct
+ print "return $FAILURE"
+ }
+ }
+ ' "$leasefile" )"
+}
+
+# f_dhcp_get_info $interface
+#
+# Parse the dhclient(8) lease database for $interface to obtain all the
+# necessary IPv4 details necessary to communicate on the network. The retrieved
+# information is stored in VAR_IPADDR, VAR_NETMASK, VAR_GATEWAY, and
+# VAR_NAMESERVER.
+#
+# If reading the lease database fails, values are obtained from ifconfig(8) and
+# route(8). If the DHCP lease did not provide a nameserver (or likewise, we
+# were unable to parse the lease database), fall-back to resolv.conf(5) for
+# obtaining the nameserver. Always returns success.
+#
+f_dhcp_get_info()
+{
+ local interface="$1" cp
+ local leasefile="/var/db/dhclient.leases.$interface"
+
+ # If it fails, do it the old-fashioned way
+ if f_dhcp_parse_leases "$leasefile" lease; then
+ lease get fixed_address $VAR_IPADDR
+ lease get subnet_mask $VAR_NETMASK
+ lease get routers cp
+ setvar $VAR_GATEWAY "${cp%%,*}"
+ lease get domain_name_servers cp
+ setvar $VAR_NAMESERVER "${cp%%,*}"
+ lease get host_name cp &&
+ setvar $VAR_HOSTNAME "$cp"
+ f_struct_free lease
+ else
+ # Bah, now we have to get the information from ifconfig
+ if f_debugging; then
+ f_dprintf "DHCP configured interface returns %s" \
+ "$( ifconfig "$interface" )"
+ fi
+ f_ifconfig_inet "$interface" $VAR_IPADDR
+ f_ifconfig_netmask "$interface" $VAR_NETMASK
+ f_route_get_default $VAR_GATEWAY
+ fi
+
+ # If we didn't get a name server value, hunt for it in resolv.conf
+ local ns
+ if [ -r "$RESOLV_CONF" ] && ! {
+ f_getvar $VAR_NAMESERVER ns || [ "$ns" ]
+ }; then
+ f_resolv_conf_nameservers cp &&
+ setvar $VAR_NAMESERVER ${cp%%[$IFS]*}
+ fi
+
+ return $SUCCESS
+}
+
+# f_rtsol_get_info $interface
+#
+# Returns the rtsol-provided IPv6 address associated with $interface. The
+# retrieved IP address is stored in VAR_IPV6ADDR. Always returns success.
+#
+f_rtsol_get_info()
+{
+ local interface="$1" cp
+ cp=$( ifconfig "$interface" 2> /dev/null | awk \
+ '
+ BEGIN { found = 0 }
+ ( $1 == "inet6" ) && ( $2 ~ /^fe80:/ ) \
+ {
+ print $2
+ found = 1
+ exit
+ }
+ END { exit ! found }
+ ' ) && setvar $VAR_IPV6ADDR "$cp"
+}
+
+# f_host_lookup $host [$var_to_set]
+#
+# Use host(1) to lookup (or reverse) an Internet number from (or to) a name.
+# Multiple answers are returned separated by a single space. If host(1) does
+# not exit cleanly, its full output is provided and the return status is 1.
+#
+# If nsswitch.conf(5) has been configured to query local access first for the
+# `hosts' database, we'll manually check hosts(5) first (preventing host(1)
+# from hanging in the event that DNS goes awry).
+#
+# If $var_to_set is missing or NULL, the list of IP addresses is printed to
+# standard output for capturing in a sub-shell (which is less-recommended
+# because of performance degredation; for example, when called in a loop).
+#
+# The variables from variable.subr used in looking up the host are as follows
+# (which are set manually):
+#
+# VAR_IPV6_ENABLE [Optional]
+# If set to "YES", enables the lookup of IPv6 addresses and IPv4
+# address. IPv6 addresses, if any, will come before IPv4. Note
+# that if nsswitch.conf(5) shows an affinity for "files" for the
+# "host" database and there is a valid entry in hosts(5) for
+# $host, this setting currently has no effect (an IPv4 address
+# can supersede an IPv6 address). By design, hosts(5) overrides
+# any preferential treatment. Otherwise, if this variable is not
+# set, IPv6 addresses will not be used (IPv4 addresses will
+# specifically be requested from DNS).
+#
+# This function is a two-parter. Below is the awk(1) portion of the function,
+# afterward is the sh(1) function which utilizes the below awk script.
+#
+f_host_lookup_awk='
+BEGIN{ addrs = "" }
+!/^[[:space:]]*(#|$)/ \
+{
+ for (n=1; n++ < NF;) if ($n == name)
+ addrs = addrs (addrs ? " " : "") $1
+}
+END {
+ if (addrs) print addrs
+ exit !addrs
+}
+'
+f_host_lookup()
+{
+ local __host="$1" __var_to_set="$2"
+ f_dprintf "f_host_lookup: host=[%s]" "$__host"
+
+ # If we're configured to look at local files first, do that
+ if awk '/^hosts:/{exit !($2=="files")}' "$NSSWITCH_CONF"; then
+ if [ "$__var_to_set" ]; then
+ local __cp
+ if __cp=$( awk -v name="$__host" \
+ "$f_host_lookup_awk" "$ETC_HOSTS" )
+ then
+ setvar "$__var_to_set" "$__cp"
+ return $SUCCESS
+ fi
+ else
+ awk -v name="$__host" \
+ "$f_host_lookup_awk" "$ETC_HOSTS" &&
+ return $SUCCESS
+ fi
+ fi
+
+ #
+ # Fall back to host(1) -- which is further governed by nsswitch.conf(5)
+ #
+
+ local __output __ip6 __addrs="" __wait=""
+ f_getvar $VAR_MEDIA_TIMEOUT __wait
+ [ "$__wait" ] && __wait="-W $(( $__wait / 2 ))"
+ f_getvar $VAR_IPV6_ENABLE __ip6
+ if [ "$__ip6" = "YES" ]; then
+ if ! __output=$( host -t AAAA $__wait -- "$__host" 2>&1 ); then
+ # An error occurred, display in-full and return error
+ [ "$__var_to_set" ] &&
+ setvar "$__var_to_set" "$__output"
+ return $FAILURE
+ fi
+ __addrs=$( echo "$__output" | awk '/ address /{print $NF}' )
+ fi
+ if ! __output=$( host -t A $__wait -- "$__host" 2>&1 ); then
+ # An error occurred, display it in-full and return error
+ [ "$__var_to_set" ] && setvar "$__var_to_set" "$__output"
+ return $FAILURE
+ fi
+ __addrs="$__addrs${__addrs:+ }$(
+ echo "$__output" | awk '/ address /{print $NF}' )"
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" "$__addrs"
+ else
+ echo $__addrs
+ fi
+}
+
+# f_device_dialog_tcp $device
+#
+# This is it - how to get TCP setup values. Prompt the user to edit/confirm the
+# interface, gateway, nameserver, and hostname settings -- all required for
+# general TCP/IP access.
+#
+# Variables from variable.subr that can be used to sript user input:
+#
+# VAR_NO_INET6
+# If set, prevents asking the user if they would like to use
+# rtsol(8) to check for an IPv6 router.
+# VAR_TRY_RTSOL
+# If set to "YES" (and VAR_NONINTERACTIVE is unset), asks the
+# user if they would like to try the IPv6 RouTer SOLicitation
+# utility (rtsol(8)) to get IPv6 information. Ignored if
+# VAR_NO_INET6 is set.
+# VAR_TRY_DHCP
+# If set to "YES" (and VAR_NONINTERACTIVE is unset), asks the
+# user if they would like to try to acquire IPv4 connection
+# settings from a DHCP server using dhclient(8).
+#
+# VAR_GATEWAY Default gateway to use.
+# VAR_IPADDR Interface address to assign.
+# VAR_NETMASK Interface subnet mask.
+# VAR_EXTRAS Extra interface options to ifconfig(8).
+# VAR_HOSTNAME Hostname to set.
+# VAR_DOMAINNAME Domain name to use.
+# VAR_NAMESERVER DNS nameserver to use when making lookups.
+# VAR_IPV6ADDR IPv6 interface address.
+#
+# In addition, the following variables are used in acquiring network settings
+# from the user:
+#
+# VAR_NONINTERACTIVE
+# If set (such as when running in a script), prevents asking the
+# user questions or displaying the usual prompts, etc.
+# VAR_NETINTERACTIVE
+# The one exception to VAR_NONINTERACTIVE is VAR_NETINTERACTIVE,
+# which if set will prompt the user to try RTSOL (unless
+# VAR_TRY_RTSOL has been set), try DHCP (unless VAR_TRY_DHCP has
+# been set), and display the network verification dialog. This
+# allows you to have a mostly non-interactive script that still
+# prompts for network setup/confirmation.
+#
+# After successfull execution, the following variables are set:
+#
+# VAR_IFCONFIG + $device (e.g., `ifconfig_em0')
+# Defines the ifconfig(8) properties specific to $device.
+#
+f_device_dialog_tcp()
+{
+ local dev="$1" cp n
+ local use_dhcp="" use_rtsol=""
+ local _ipaddr _netmask _extras
+
+ [ "$dev" ] || return $FAILURE
+
+ # Initialize vars from previous device values
+ local private
+ device_$dev get private private
+ if [ "$private" ] && f_struct "$private"; then
+ $private get ipaddr _ipaddr
+ $private get netmask _netmask
+ $private get extras _extras
+ $private get use_dhcp use_dhcp
+ $private get use_rtsol use_rtsol
+ else # See if there are any defaults
+
+ #
+ # This is a hack so that the dialogs below are interactive in a
+ # script if we have requested interactive behavior.
+ #
+ local old_interactive=
+ if ! f_interactive && f_netinteractive; then
+ f_getvar $VAR_NONINTERACTIVE old_interactive
+ unset $VAR_NONINTERACTIVE
+ fi
+
+
+ #
+ # Try a RTSOL scan if such behavior is desired.
+ # If the variable was configured and is YES, do it.
+ # If it was configured to anything else, treat it as NO.
+ # Otherwise, ask the question interactively.
+ #
+ local try6
+ if ! f_quietly f_getvar $VAR_NO_INET6 && {
+ { f_getvar $VAR_TRY_RTSOL try6 && [ "$try6" = "YES" ]; } ||
+ {
+ ! f_quietly f_getvar $VAR_TRY_RTSOL &&
+ f_dialog_noyes "$msg_try_ipv6_configuration"
+ }
+ }; then
+ local i
+
+ f_quietly sysctl net.inet6.ip6.forwarding=0
+ f_quietly sysctl net.inet6.ip6.accept_rtadv=1
+ f_quietly ifconfig $dev up
+
+ i=$( sysctl -n net.inet6.ip6.dad_count )
+ sleep $(( $i + 1 ))
+
+ f_quietly mkdir -p /var/run
+ f_dialog_info "$msg_scanning_for_ra_servers"
+ if f_quietly rtsol $dev; then
+ i=$( sysctl -n net.inet6.ip6.dad_count )
+ sleep $(( $i + 1 ))
+ f_rtsol_get_info $dev
+ use_rtsol=1
+ else
+ use_rtsol=
+ fi
+ fi
+
+ #
+ # Try a DHCP scan if such behavior is desired.
+ # If the variable was configured and is YES, do it.
+ # If it was configured to anything else, treat it as NO.
+ # Otherwise, ask the question interactively.
+ #
+ local try4
+ if { f_getvar $VAR_TRY_DHCP try4 && [ "$try4" = "YES" ]; } || {
+ ! f_quietly f_getvar $VAR_TRY_DHCP &&
+ f_dialog_noyes "$msg_try_dhcp_configuration"
+ }; then
+ f_quietly ifconfig $dev delete
+ f_quietly mkdir -p /var/db
+ f_quietly mkdir -p /var/run
+ f_quietly mkdir -p /tmp
+
+ local msg="$msg_scanning_for_dhcp_servers"
+ trap - SIGINT
+ ( # Execute in sub-shell to allow/catch Ctrl-C
+ trap 'exit $FAILURE' SIGINT
+ if [ "$USE_XDIALOG" ]; then
+ f_quietly dhclient $dev |
+ f_xdialog_info "$msg"
+ else
+ f_dialog_info "$msg"
+ f_quietly dhclient $dev
+ fi
+ )
+ local retval=$?
+ trap 'f_interrupt' SIGINT
+ if [ $retval -eq $SUCCESS ]; then
+ f_dhcp_get_info $dev
+ use_dhcp=1
+ else
+ use_dhcp=
+ fi
+ fi
+
+ # Restore old VAR_NONINTERACTIVE if needed.
+ [ "$old_interactive" ] &&
+ setvar $VAR_NONINTERACTIVE "$old_interactive"
+
+ # Special hack so it doesn't show up oddly in the menu
+ local gw
+ if f_getvar $VAR_GATEWAY gw && [ "$gw" = "NO" ]; then
+ setvar $VAR_GATEWAY ""
+ fi
+
+ # Get old IP address from variable space, if available
+ if [ ! "$_ipaddr" ]; then
+ if f_getvar $VAR_IPADDR cp; then
+ _ipaddr="$cp"
+ elif f_getvar ${dev}_$VAR_IPADDR cp; then
+ _ipaddr="$cp"
+ fi
+ fi
+
+ # Get old netmask from variable space, if available
+ if [ ! "$_netmask" ]; then
+ if f_getvar $VAR_NETMASK cp; then
+ _netmask="$cp"
+ elif f_getvar ${dev}_$VAR_NETMASK cp; then
+ _netmask="$cp"
+ fi
+ fi
+
+ # Get old extras string from variable space, if available
+ if [ ! "$_extras" ]; then
+ if f_getvar $VAR_EXTRAS cp; then
+ _extras="$cp"
+ elif f_getvar ${dev}_$VAR_EXTRAS cp; then
+ _extras="$cp"
+ fi
+ fi
+ fi
+
+ # Look up values already recorded with the system, or blank the string
+ # variables ready to accept some new data
+ local _hostname _gateway _nameserver
+ f_getvar $VAR_HOSTNAME _hostname
+ case "$_hostname" in
+ *.*) : do nothing ;; # Already fully-qualified
+ *)
+ f_getvar $VAR_DOMAINNAME cp
+ [ "$cp" ] && _hostname="$_hostname.$cp"
+ esac
+ f_getvar $VAR_GATEWAY _gateway
+ f_getvar $VAR_NAMESERVER _nameserver
+
+ # Re-check variables for initial inheritance before heading into dialog
+ [ "$_hostname" ] || _hostname="${HOSTNAME:-$( hostname )}"
+ [ "$_gateway" ] || f_route_get_default _gateway
+ [ ! "$_nameserver" ] &&
+ f_resolv_conf_nameservers cp && _nameserver=${cp%%[$IFS]*}
+ [ "$_ipaddr" ] || f_ifconfig_inet $dev _ipaddr
+ [ "$_netmask" ] || f_ifconfig_netmask $dev _netmask
+
+ # If non-interactive, jump over dialog section and into config section
+ if f_netinteractive || f_interactive || [ ! "$_hostname" ]
+ then
+ [ ! "$_hostname" ] && f_interactive &&
+ f_dialog_msgbox "$msg_hostname_variable_not_set"
+
+ local title=" $msg_network_configuration "
+ local hline="$hline_alnum_arrows_punc_tab_enter"
+ local extras_help="$tcplayout_extras_help"
+
+ # Modify the help line for PLIP config
+ [ "${dev#plip}" != "$dev" ] &&
+ extras_help="$tcplayout_extras_help_for_plip"
+
+ f_getvar $VAR_IPV6ADDR cp && [ "$cp" ] &&
+ title="$title($msg_ipv6_ready) "
+
+ if [ ! "$USE_XDIALOG" ]; then
+ local prompt="$msg_dialog_mixedform_navigation_help"
+ # Calculate center position for displaying device label
+ local devlabel="$msg_configuration_for_interface $dev"
+ local width=54
+ local n=$(( $width/2 - (${#devlabel} + 4)/2 - 2 ))
+
+ while :; do
+ cp=$( $DIALOG \
+ --title "$title" \
+ --backtitle "$DIALOG_BACKTITLE" \
+ --hline "$hline" \
+ --item-help \
+ --ok-label "$msg_ok" \
+ --cancel-label "$msg_cancel" \
+ --help-button \
+ --help-label "$msg_help" \
+ --mixedform "$prompt" 16 $width 9 \
+ "$msg_host_name_including_domain:" 1 2 \
+ "$_hostname" 2 3 45 255 0 \
+ "$tcplayout_hostname_help" \
+ "$msg_ipv4_gateway:" 3 2 \
+ "$_gateway" 4 3 16 15 0 \
+ "$tcplayout_gateway_help" \
+ "$msg_name_server:" 3 31 \
+ "$_nameserver" 4 32 16 15 0 \
+ "$tcplayout_nameserver_help" \
+ "- $devlabel -" 5 $n "" 0 0 0 0 3 "" \
+ "$msg_ipv4_address:" 6 6 \
+ "$_ipaddr" 7 7 16 15 0 \
+ "$tcplayout_ipaddr_help" \
+ "$msg_netmask:" 6 31 \
+ "$_netmask" 7 32 16 15 0 \
+ "$tcplayout_netmask_help" \
+ "$msg_extra_options_to_ifconfig" 8 6 \
+ "$_extras" 9 7 41 2048 0 \
+ "$extras_help" \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+
+ # --mixed-form always returns 0, we have to
+ # use the returned data to determine button
+ if [ ! "$cp" ]; then
+ # User either chose "Cancel", pressed
+ # ESC, or blanked every form field
+ return $FAILURE
+ else
+ n=$( echo "$cp" | f_number_of_lines )
+ [ $n -eq 1 ] && case "$cp" in HELP*)
+ # User chose "Help"
+ f_show_help "$TCP_HELPFILE"
+ continue
+ esac
+ fi
+
+ # Turn mixed-form results into env variables
+ eval "$( echo "$cp" | awk '
+ BEGIN {
+ n = 0
+ field[++n] = "_hostname"
+ field[++n] = "_gateway"
+ field[++n] = "_nameserver"
+ field[++n] = "_ipaddr"
+ field[++n] = "_netmask"
+ field[++n] = "_extras"
+ nfields = n
+ n = 0
+ }
+ {
+ gsub(/'\''/, "'\'\\\\\'\''")
+ sub(/[[:space:]]*$/, "")
+ value[field[++n]] = $0
+ }
+ END {
+ for ( n = 1; n <= nfields; n++ )
+ {
+ printf "%s='\''%s'\'';\n",
+ field[n],
+ value[field[n]]
+ }
+ }' )"
+
+ f_dialog_validate_tcpip \
+ "$_hostname" \
+ "$_gateway" \
+ "$_nameserver" \
+ "$_ipaddr" \
+ "$_netmask" \
+ && break
+ done
+ else
+ # Xdialog(1) does not support --mixed-form
+ # Create a persistent menu instead
+
+ f_dialog_title "$msg_network_configuration"
+ local prompt=""
+
+ while :; do
+ cp=$( $DIALOG \
+ --title "$DIALOG_TITLE" \
+ --backtitle "$DIALOG_BACKTITLE" \
+ --hline "$hline" \
+ --item-help \
+ --ok-label "$msg_ok" \
+ --cancel-label "$msg_cancel" \
+ --help "" \
+ --menu "$prompt" 21 60 8 \
+ "$msg_accept_continue" "" \
+ "$tcplayout_accept_cont_help" \
+ "$msg_host_name_including_domain:" \
+ "$_hostname" \
+ "$tcplayout_hostname_help" \
+ "$msg_ipv4_gateway:" "$_gateway" \
+ "$tcplayout_gateway_help" \
+ "$msg_name_server:" "$_nameserver" \
+ "$tcplayout_nameserver_help" \
+ "$msg_ipv4_address:" "$_ipaddr" \
+ "$tcplayout_ipaddr_help" \
+ "$msg_netmask:" "$_netmask" \
+ "$tcplayout_netmask_help" \
+ "$msg_extra_options_to_ifconfig" \
+ "$_extras" "$extras_help" \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD
+ )
+ local retval=$?
+ f_dprintf "retval=%u mtag=[%s]" $retval "$cp"
+
+ if [ $retval -eq 2 ]; then
+ # The Help button was pressed
+ f_show_help "$TCP_HELPFILE"
+ continue
+ elif [ $retval -ne 0 ]; then
+ # User chose "Cancel" or pressed ESC
+ f_dialog_title_restore
+ return $FAILURE
+ fi
+
+ case "$cp" in
+ "$msg_accept_continue")
+ f_dialog_validate_tcpip \
+ "$_hostname" \
+ "$_gateway" \
+ "$_nameserver" \
+ "$_ipaddr" \
+ "$_netmask" \
+ && break ;;
+ "$msg_host_name_including_domain:")
+ cp=$( f_dialog_input "$cp" \
+ "$_hostname"
+ ) && _hostname="$cp" ;;
+ "$msg_ipv4_gateway:")
+ cp=$( f_dialog_input "$cp" \
+ "$_gateway"
+ ) && _gateway="$cp" ;;
+ "$msg_name_server:")
+ cp=$( f_dialog_input "$cp" \
+ "$_nameserver"
+ ) && _nameserver="$cp" ;;
+ "$msg_ipv4_address:")
+ cp=$( f_dialog_input "$cp" \
+ "$_ipaddr"
+ ) && _ipaddr="$cp" ;;
+ "$msg_netmask:")
+ cp=$( f_dialog_input "$cp" \
+ "$_netmask"
+ ) && _netmask="$cp" ;;
+ "$msg_extra_options_to_ifconfig")
+ cp=$( f_dialog_input "$cp" \
+ "$_extras"
+ ) && _extras="$cp" ;;
+ esac
+ done
+
+ f_dialog_title_restore
+
+ fi # XDIALOG
+
+ fi # interactive
+
+ # We actually need to inform the rest of bsdconfig about this
+ # data now if the user hasn't selected cancel.
+
+ if [ "$_hostname" ]; then
+ setvar $VAR_HOSTNAME "$_hostname"
+ f_quietly hostname "$_hostname"
+ case "$_hostname" in
+ *.*) setvar $VAR_DOMAINNAME "${_hostname#*.}" ;;
+ esac
+ fi
+ [ "$_gateway" ] && setvar $VAR_GATEWAY "$_gateway"
+ [ "$_nameserver" ] && setvar $VAR_NAMESERVER "$_nameserver"
+ [ "$_ipaddr" ] && setvar $VAR_IPADDR "$_ipaddr"
+ [ "$_netmask" ] && setvar $VAR_NETMASK "$_netmask"
+ [ "$_extras" ] && setvar $VAR_EXTRAS "$_extras"
+
+ f_dprintf "Creating struct DEVICE_INFO devinfo_%s" "$dev"
+ f_struct_new DEVICE_INFO devinfo_$dev
+ device_$dev set private devinfo_$dev
+
+ devinfo_$dev set ipaddr $_ipaddr
+ devinfo_$dev set netmask $_netmask
+ devinfo_$dev set extras $_extras
+ devinfo_$dev set use_rtsol $use_rtsol
+ devinfo_$dev set use_dhcp $use_dhcp
+
+ if [ "$use_dhcp" -o "$_ipaddr" ]; then
+ if [ "$use_dhcp" ]; then
+ cp="DHCP${extras:+ $extras}"
+ else
+ cp="inet $_ipaddr netmask $_netmask${extras:+ $extras}"
+ fi
+ setvar $VAR_IFCONFIG$dev "$cp"
+ fi
+ [ "$use_rtsol" ] &&
+ setvar $VAR_IPV6_ENABLE "YES"
+
+ [ "$use_dhcp" ] ||
+ f_config_resolv # XXX this will do it on the MFS copy
+
+ return $SUCCESS
+}
+
+# f_device_scan_tcp [$var_to_set]
+#
+# Scan for the first active/configured TCP/IP device. The name of the interface
+# is printed to stderr like other dialog(1)-based functions (stdout is reserved
+# for dialog(1) interaction) if $var_to_set is missing or NULL. Returns failure
+# if no active/configured interface
+#
+f_device_scan_tcp()
+{
+ local __var_to_set="$1" __iface
+ for __iface in $( ifconfig -l ); do
+ if ifconfig $__iface | awk '
+ BEGIN {
+ has_inet = has_inet6 = is_ethernet = 0
+ is_usable = 1
+ }
+ ( $1 == "status:" && $2 != "active" ) { is_usable = 0; exit }
+ ( $1 == "inet" ) {
+ if ($2 == "0.0.0.0") { is_usable = 0; exit }
+ has_inet++
+ }
+ ( $1 == "inet6") { has_inet6++ }
+ ( $1 == "media:" ) {
+ if ($2 != "Ethernet") { is_usable = 0; exit }
+ is_ethernet = 1
+ }
+ END {
+ if (!(is_ethernet && (has_inet || has_inet6)))
+ is_usable = 0
+ exit ! is_usable
+ }'; then
+ f_interactive &&
+ f_show_msg "$msg_using_interface" "$__iface"
+ f_dprintf "f_device_scan_tcp found %s" "$__iface"
+ if [ "$__var_to_set" ]; then
+ setvar "$__var_to_set" "$__iface"
+ else
+ echo "$__iface" >&2
+ fi
+ return $SUCCESS
+ fi
+ done
+
+ return $FAILURE
+}
+
+# f_device_select_tcp
+#
+# Prompt the user to select network interface to use for TCP/IP access.
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_NETWORK_DEVICE [Optional]
+# Either a comma-separated list of network interfaces to try when
+# setting up network access (e.g., "fxp0,em0") or "ANY" (case-
+# sensitive) to indicate that the first active and configured
+# interface is acceptable. If unset, the user is presented with a
+# menu of all available network interfaces.
+#
+# Returns success if a valid network interface has been selected.
+#
+f_device_select_tcp()
+{
+ local devs dev cnt network_dev
+ f_getvar $VAR_NETWORK_DEVICE network_dev
+
+ f_dprintf "f_device_select_tcp: %s=[%s]" \
+ VAR_NETWORK_DEVICE "$network_dev"
+
+ if [ "$network_dev" ]; then
+ #
+ # This can be set to several types of values. If set to ANY,
+ # scan all network devices looking for a valid link, and go
+ # with the first device found. Can also be specified as a
+ # comma delimited list, with each network device tried in
+ # order. Can also be set to a single network device.
+ #
+ [ "$network_dev" = "ANY" ] && f_device_scan_tcp network_dev
+
+ while [ "$network_dev" ]; do
+ case "$network_dev" in
+ *,*) dev="${network_dev%%,*}"
+ network_dev="${network_dev#*,}"
+ ;;
+ *) dev="$network_dev"
+ network_dev=
+ esac
+
+ f_device_find "$dev" $DEVICE_TYPE_NETWORK devs
+ cnt=$( set -- $devs; echo $# )
+
+ if [ ${cnt:=0} -gt 0 ]; then
+ dev="${devs%%[$IFS]*}"
+ f_device_dialog_tcp $dev
+ if [ $? -eq $SUCCESS ]; then
+ setvar $VAR_NETWORK_DEVICE $dev
+ return $SUCCESS
+ fi
+ fi
+ done
+
+ f_interactive && f_dialog_msgbox "$msg_no_network_devices"
+ return $FAILURE
+
+ fi # $network_dev
+
+ f_device_find "" $DEVICE_TYPE_NETWORK devs
+ cnt=$( set -- $devs; echo $# )
+ dev="${devs%%[$IFS]*}"
+
+ f_quietly f_getvar NETWORK_CONFIGURED # for debugging info
+ if ! f_running_as_init &&
+ ! [ "${NETWORK_CONFIGURED+set}" -a "$NETWORK_CONFIGURED" = "NO" ]
+ then
+ trap 'f_interrupt' SIGINT
+ if f_dialog_yesno "$msg_assume_network_is_already_configured"
+ then
+ setvar $VAR_NETWORK_DEVICE $dev
+ return $SUCCESS
+ fi
+ fi
+
+ local retval=$SUCCESS
+ if [ ${cnt:=0} -eq 0 ]; then
+ f_dialog_msgbox "$msg_no_network_devices"
+ retval=$FAILURE
+ elif [ $cnt -eq 1 ]; then
+ f_device_dialog_tcp $dev
+ retval=$?
+ [ $retval -eq $SUCCESS ] && setvar $VAR_NETWORK_DEVICE $dev
+ else
+ local title="$msg_network_interface_information_required"
+ local prompt="$msg_please_select_ethernet_device_to_configure"
+ local hline="$hline_arrows_tab_enter"
+
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_NETWORK \
+ "$NETWORK_DEVICE_HELPFILE" \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_device_find "$dev" $DEVICE_TYPE_NETWORK devs
+ [ "$devs" ] || return $FAILURE
+ dev="${devs%%[$IFS]*}"
+
+ f_device_dialog_tcp $dev
+ retval=$?
+ if [ $retval -eq $SUCCESS ]; then
+ f_struct_copy device_$dev device_network
+ setvar $VAR_NETWORK_DEVICE network
+ else
+ f_struct_free device_network
+ fi
+ fi
+
+ return $retval
+}
+
+# f_dialog_menu_select_tcp
+#
+# Like f_dialog_select_tcp() above, but do it from a menu that doesn't care
+# about status. In other words, where f_dialog_select_tcp() will not display a
+# menu if scripted, this function will always display the menu of available
+# network interfaces.
+#
+f_dialog_menu_select_tcp()
+{
+ local private use_dhcp name
+ NETWORK_CONFIGURED=NO f_device_select_tcp
+ if f_struct device_network &&
+ device_network get private private &&
+ f_struct_copy "$private" di &&
+ di get use_dhcp use_dhcp &&
+ [ ! "$use_dhcp" ] &&
+ device_network get name name &&
+ f_yesno "$msg_would_you_like_to_bring_interface_up" "$name"
+ then
+ if ! f_device_init network; then
+ f_show_msg "$msg_initialization_of_device_failed" \
+ "$name"
+ fi
+ fi
+ return $SUCCESS
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/tcpip.subr
+
+fi # ! $_MEDIA_TCPIP_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/ufs.subr b/usr.sbin/bsdconfig/share/media/ufs.subr
new file mode 100644
index 0000000..0b70f09
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/ufs.subr
@@ -0,0 +1,193 @@
+if [ ! "$_MEDIA_UFS_SUBR" ]; then _MEDIA_UFS_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/ufs.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+UFS_MOUNTED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_ufs
+#
+# Return success if we both found and set the media type to be a UFS partition.
+# Variables from variable.subr that can be used to script user input:
+#
+# VAR_UFS_PATH
+# Path to a UFS character device node to be used with mount(8) in
+# mounting a UFS formatted partition. Valid examples include:
+# /dev/da0s1a
+# /dev/ad4s1e
+# However, other forms may be valid (see mount(8) for additional
+# information).
+#
+f_media_set_ufs()
+{
+ local ufs
+
+ f_media_close
+
+ local devs ndevs
+ f_device_find "" $DEVICE_TYPE_UFS devs
+ ndevs=$( set -- $devs; echo $# )
+
+ if [ ${ndevs:=0} -eq 0 ]; then
+ f_variable_get_value $VAR_UFS_PATH \
+ "$msg_enter_the_device_name_of_a_ufs_formatted_partition"
+ f_getvar $VAR_UFS_PATH ufs
+ [ "$ufs" ] || return $FAILURE
+
+ local fstype
+ fstype=$( df -nT $ufs 2> /dev/null |
+ awk '!/Type/{print $2;exit}' )
+
+ f_struct_new DEVICE device_ufs
+ device_ufs set name ${fstype:-ufs}
+ device_ufs set devname "$ufs"
+ device_ufs set get f_media_get_ufs
+ device_ufs set init f_media_init_ufs
+ device_ufs set shutdown f_media_shutdown_ufs
+ device_ufs unset private
+
+ f_struct_copy device_ufs device_media
+ f_struct_free device_ufs
+ elif [ $ndevs -gt 1 ]; then
+ local title="$msg_choose_a_ufs_partition"
+ local prompt="$msg_please_select_ufs_partition"
+ local hline=""
+
+ local dev retval
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_UFS \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_struct_copy device_$dev device_media
+ [ $retval -eq $SUCCESS ] || return $FAILURE
+ else
+ f_struct_copy device_$devs device_media
+ fi
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_ufs $device
+#
+# Initializes the UFS media device. Returns success if able to mount the UFS
+# partition device using mount(1).
+#
+f_media_init_ufs()
+{
+ local dev="$1" devname err
+
+ device_$dev get devname devname || return $FAILURE
+ f_dprintf "Init routine called for UFS device. devname=[%s]" \
+ "$devname"
+
+ if [ "$UFS_MOUNTED" ]; then
+ f_dprintf "UFS device already mounted."
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$devname" ]; then
+ f_show_msg "$msg_no_such_file_or_directory" \
+ "f_media_init_ufs" "$devname"
+ return $FAILURE
+ fi
+
+ if [ ! -e "$MOUNTPOINT" ] &&
+ ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 )
+ then
+ f_dialog_msgbox "$err"
+ return $FAILURE
+ fi
+
+ if ! err=$( mount "$devname" "$MOUNTPOINT" 2>&1 )
+ then
+ err="${err#mount: }"; err="${err#$devname : }"
+ f_show_msg "$msg_error_mounting_device" \
+ "$devname" "$MOUNTPOINT" "$err"
+ return $FAILURE
+ fi
+ UFS_MOUNTED=1
+ return $SUCCESS
+}
+
+# f_media_get_ufs $device $file [$probe_only]
+#
+# Returns data from $file on a mounted UFS partition device. Similar to cat(1).
+# $probe_only is currently unused by this media type.
+#
+f_media_get_ufs()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_ufs: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ f_media_generic_get "$MOUNTPOINT" "$file"
+}
+
+# f_media_shutdown_ufs $device
+#
+# Shuts down the UFS device using umount(8). Return status should be ignored.
+#
+f_media_shutdown_ufs()
+{
+ local dev="$1" err
+
+ [ "$UFS_MOUNTED" ] || return
+
+ if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*: }"
+ f_show_msg "$msg_could_not_unmount_the_ufs_partition" \
+ "$MOUNTPOINT" "$err"
+ else
+ UFS_MOUNTED=
+ fi
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/ufs.subr
+
+fi # ! $_MEDIA_UFS_SUBR
diff --git a/usr.sbin/bsdconfig/share/media/usb.subr b/usr.sbin/bsdconfig/share/media/usb.subr
new file mode 100644
index 0000000..c7fc973
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/media/usb.subr
@@ -0,0 +1,174 @@
+if [ ! "$_MEDIA_USB_SUBR" ]; then _MEDIA_USB_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+f_dprintf "%s: loading includes..." media/usb.subr
+f_include $BSDCFG_SHARE/struct.subr
+f_include $BSDCFG_SHARE/device.subr
+f_include $BSDCFG_SHARE/dialog.subr
+f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/common.subr
+
+BSDCFG_LIBE="/usr/libexec/bsdconfig"
+f_include_lang $BSDCFG_LIBE/include/messages.subr
+
+############################################################ GLOBALS
+
+USB_MOUNTED=
+
+############################################################ FUNCTIONS
+
+# f_media_set_usb
+#
+# Attempt to use USB as the media type. Return success if we both found and set
+# the media type to be a USB drive.
+#
+f_media_set_usb()
+{
+ f_media_close
+
+ local devs ndevs
+ f_device_find "" $DEVICE_TYPE_USB devs
+ ndevs=$( set -- $devs; echo $# )
+
+ if [ ${ndevs:=0} -eq 0 ]; then
+ f_dialog_msgbox "$msg_no_usb_devices_found"
+ return $FAILURE
+ elif [ $ndevs -gt 1 ]; then
+ local title="$msg_choose_a_usb_drive"
+ local prompt="$msg_please_select_a_usb_drive"
+ local hline=""
+
+ local dev retval
+ dev=$( f_device_menu \
+ "$title" "$prompt" "$hline" $DEVICE_TYPE_USB \
+ 2>&1 >&$DIALOG_TERMINAL_PASSTHRU_FD )
+ retval=$?
+ [ "$dev" ] || return $FAILURE
+
+ f_device_find "$dev" $DEVICE_TYPE_USB devs
+ [ "$devs" ] || return $FAILURE
+ dev="${devs%%[$IFS]*}"
+
+ f_struct_copy device_$dev device_media
+ [ $retval -eq $SUCCESS ] || return $FAILURE
+ else
+ f_struct_copy device_$devs device_media
+ fi
+
+ f_struct device_media &&
+ device_media unset private
+
+ if f_interactive; then
+ local name
+ f_struct device_media get name name
+ f_show_msg "$msg_using_usb_device" "$name"
+ fi
+
+ f_struct device_media || return $FAILURE
+}
+
+# f_media_init_usb $device
+#
+# Initializes the USB media device. Returns success if able to mount the USB
+# disk device using mount(8).
+#
+f_media_init_usb()
+{
+ local dev="$1" devname err
+
+ device_$dev get devname devname || return $FAILURE
+ f_dprintf "Init routine called for USB device. devname=[%s]" \
+ "$devname"
+
+ if [ "$USB_MOUNTED" ]; then
+ f_dprintf "USB device already mounted."
+ return $SUCCESS
+ fi
+
+ if [ ! -e "$MOUNTPOINT" ] &&
+ ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 )
+ then
+ f_dialog_msgbox "$err"
+ return $FAILURE
+ fi
+
+ if err=$( mount "$devname" "$MOUNTPOINT" 2>&1 ); then
+ USB_MOUNTED=1
+ return $SUCCESS
+ fi
+
+ err="${err#mount: }"; err="${err#$devname: }"
+ f_show_msg "$msg_error_mounting_usb_drive" \
+ "$devname" "$MOUNTPOINT" "$err"
+ return $FAILURE
+}
+
+# f_media_get_usb $device $file [$probe_only]
+#
+# Returns data from $file on a mounted USB disk device. Similar to cat(1).
+# $probe_only is currently unused by this media type.
+#
+f_media_get_usb()
+{
+ local dev="$1" file="$2" probe_only="$3"
+
+ f_dprintf "f_media_get_usb: dev=[%s] file=[%s] probe_only=%s" \
+ "$dev" "$file" "$probe_only"
+
+ f_media_generic_get "$MOUNTPOINT" "$file"
+}
+
+# f_media_shutdown_usb $device
+#
+# Shuts down the USB disk device using umount(8). Return status should be
+# ignored.
+#
+f_media_shutdown_usb()
+{
+ local dev="$1" err
+
+ [ "$USB_MOUNTED" ] || return
+
+ if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then
+ err="${err#umount: }"; err="${err#*: }"
+ f_show_msg "$msg_could_not_unmount_the_ufs_partition" \
+ "$MOUNTPOINT" "$err"
+ else
+ USB_MOUNTED=
+ fi
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." media/usb.subr
+
+fi # ! $_MEDIA_USB_SUBR
diff --git a/usr.sbin/bsdconfig/share/script.subr b/usr.sbin/bsdconfig/share/script.subr
index 84d1cab..3ea5dd5 100644
--- a/usr.sbin/bsdconfig/share/script.subr
+++ b/usr.sbin/bsdconfig/share/script.subr
@@ -1,6 +1,6 @@
if [ ! "$_SCRIPT_SUBR" ]; then _SCRIPT_SUBR=1
#
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,10 @@ if [ ! "$_SCRIPT_SUBR" ]; then _SCRIPT_SUBR=1
BSDCFG_SHARE="/usr/share/bsdconfig"
. $BSDCFG_SHARE/common.subr || exit 1
f_dprintf "%s: loading includes..." script.subr
+f_include $BSDCFG_SHARE/device.subr
f_include $BSDCFG_SHARE/variable.subr
+f_include $BSDCFG_SHARE/media/any.subr
+f_include $BSDCFG_SHARE/media/tcpip.subr
############################################################ GLOBALS
@@ -75,11 +78,13 @@ f_dispatch()
local func="$1" resword="${2:-$1}"
f_dprintf "f_dispatch: calling resword \`%s'" "$resword"
eval $func
- local retval=$? _ignore_this_error
- f_getvar $VAR_NO_ERROR _ignore_this_error
- [ $retval -eq $SUCCESS ] ||
+ local retval=$?
+ if [ $retval -ne $SUCCESS ]; then
+ local _ignore_this_error
+ f_getvar $VAR_NO_ERROR _ignore_this_error
[ "$_ignore_this_error" ] || f_die $retval \
- "$msg_command_failed_rest_of_script_aborted" "$resword"
+ "$msg_command_failed_rest_of_script_aborted" "$resword"
+ fi
unset $VAR_NO_ERROR
}
@@ -146,8 +151,26 @@ f_script_load()
#
# Reserved words meant for scripting
#
+f_resword_new deviceRescan f_device_rescan
f_resword_new dumpVariables f_dump_variables
f_resword_new loadConfig f_script_load
+f_resword_new mediaClose f_media_close
+f_resword_new mediaGetType f_media_get_type
+f_resword_new mediaOpen f_media_open
+f_resword_new mediaSetCDROM f_media_set_cdrom
+f_resword_new mediaSetDOS f_media_set_dos
+f_resword_new mediaSetFTP f_media_set_ftp
+f_resword_new mediaSetFTPActive f_media_set_ftp_active
+f_resword_new mediaSetFTPPassive f_media_set_ftp_passive
+f_resword_new mediaSetFTPUserPass f_media_set_ftp_userpass
+f_resword_new mediaSetFloppy f_media_set_floppy
+f_resword_new mediaSetHTTP f_media_set_http_proxy
+f_resword_new mediaSetHTTPProxy f_media_set_http_proxy
+f_resword_new mediaSetNFS f_media_set_nfs
+f_resword_new mediaSetUFS f_media_set_ufs
+f_resword_new mediaSetUSB f_media_set_usb
+f_resword_new optionsEditor f_media_options_menu
+f_resword_new tcpMenuSelect f_dialog_menu_select_tcp
f_dprintf "%s: Successfully loaded." script.subr
diff --git a/usr.sbin/bsdconfig/share/strings.subr b/usr.sbin/bsdconfig/share/strings.subr
index 6fe0f32..5b9f51e 100644
--- a/usr.sbin/bsdconfig/share/strings.subr
+++ b/usr.sbin/bsdconfig/share/strings.subr
@@ -1,6 +1,6 @@
if [ ! "$_STRINGS_SUBR" ]; then _STRINGS_SUBR=1
#
-# Copyright (c) 2006-2012 Devin Teske
+# Copyright (c) 2006-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -101,6 +101,72 @@ f_isinteger()
( : $((0/$arg)) ) > /dev/null 2>&1
}
+# f_uriencode [$text]
+#
+# Encode $text for the purpose of embedding safely into a URL. Non-alphanumeric
+# characters are converted to `%XX' sequence where XX represents the hexa-
+# decimal ordinal of the non-alphanumeric character. If $text is missing, data
+# is instead read from standard input.
+#
+f_uriencode_awk='
+BEGIN {
+ output = ""
+ for (n = 0; n < 256; n++) pack[sprintf("%c", n)] = sprintf("%%%02x", n)
+}
+{
+ sline = ""
+ slen = length($0)
+ for (n = 1; n <= slen; n++) {
+ char = substr($0, n, 1)
+ if ( char !~ /^[[:alnum:]_]$/ ) char = pack[char]
+ sline = sline char
+ }
+ output = output ( output ? "%0a" : "" ) sline
+}
+END { print output }
+'
+f_uriencode()
+{
+ if [ $# -gt 0 ]; then
+ echo "$1" | awk "$f_uriencode_awk"
+ else
+ awk "$f_uriencode_awk"
+ fi
+}
+
+# f_uridecode [$text]
+#
+# Decode $text from a URI. Encoded characters are converted from their `%XX'
+# sequence into original unencoded ASCII sequences. If $text is missing, data
+# is instead read from standard input.
+#
+f_uridecode_awk='
+BEGIN { for (n = 0; n < 256; n++) chr[n] = sprintf("%c", n) }
+{
+ sline = ""
+ slen = length($0)
+ for (n = 1; n <= slen; n++)
+ {
+ seq = substr($0, n, 3)
+ if ( seq ~ /^%[[:xdigit:]][[:xdigit:]]$/ ) {
+ hex = substr(seq, 2, 2)
+ sline = sline chr[sprintf("%u", "0x"hex)]
+ n += 2
+ } else
+ sline = sline substr(seq, 1, 1)
+ }
+ print sline
+}
+'
+f_uridecode()
+{
+ if [ $# -gt 0 ]; then
+ echo "$1" | awk "$f_uridecode_awk"
+ else
+ awk "$f_uridecode_awk"
+ fi
+}
+
f_dprintf "%s: Successfully loaded." strings.subr
fi # ! $_STRINGS_SUBR
diff --git a/usr.sbin/bsdconfig/share/struct.subr b/usr.sbin/bsdconfig/share/struct.subr
new file mode 100644
index 0000000..3c6f90f
--- /dev/null
+++ b/usr.sbin/bsdconfig/share/struct.subr
@@ -0,0 +1,206 @@
+if [ ! "$_STRUCT_SUBR" ]; then _STRUCT_SUBR=1
+#
+# Copyright (c) 2012-2013 Devin Teske
+# 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.
+# 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 AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INLUDING, 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.
+#
+# $FreeBSD$
+#
+############################################################ INCLUDES
+
+BSDCFG_SHARE="/usr/share/bsdconfig"
+. $BSDCFG_SHARE/common.subr || exit 1
+
+############################################################ FUNCTIONS
+
+# f_struct_define $type $member_name1 ...
+#
+# Define a new `structure' type $type made up of the properties $member_name1
+# $member_name2 and so-on. Properties are not typed and can hold any type of
+# data (including names of other structs).
+#
+# Before creating instances of a struct (using f_struct_new $type $name) you
+# should use this function to define $type.
+#
+# Both $type and member names should consist only of alpha-numeric letters or
+# the underscore.
+#
+f_struct_define()
+{
+ local type="$1"
+ [ "$type" ] || return $FAILURE
+ shift
+ setvar "_struct_typedef_$type" "$*"
+}
+
+# f_struct_new $type $name
+#
+# Create a new `structure' named $name of type $type. There are two ways to
+# access properties of a struct, but they are not equal (each method has its
+# own unique benefits, discussed below).
+#
+# The primary method of accessing (both setting and getting) properties of any
+# struct is through the f_struct() function below.
+#
+# The secondary method of accessing data is by using $name as a function.
+#
+# Both access methods are cross-platform compatible with any version of sh(1).
+# Below is an example of the primary access method:
+#
+# f_struct_new MY_STRUCT_TYPE my_struct
+# f_struct my_struct set abc 123
+# f_struct my_struct get abc # prints 123 to stdout
+# f_struct my_struct get abc abc # sets local variable $abc to 123
+#
+# Alternatively, the secondary access method (details below):
+#
+# f_struct_new MY_STRUCT_TYPE my_struct
+# my_struct set abc 123
+# my_struct get abc # prints 123 to stdout
+# my_struct get abc abc # sets local variable $abc to 123
+#
+# The secondary form should only be used if/when:
+# + You are certain that the structure already exists
+# + You want a syntax error if/when the struct does not exist
+#
+# The primary benefit to the secondary form is syntax cleanliness and read-
+# ability. If you are unsure if a given struct exists (which would cause a
+# syntax error when using this form), you can use the primary access method to
+# first test for the existence of the struct. For example:
+#
+# if f_struct my_struct; then
+# my_struct get abc # only executed if my_struct exists
+# fi
+#
+# For more information, see the f_struct() function.
+#
+f_struct_new()
+{
+ local type="$1" name="$2"
+ f_dprintf "f_struct_new: type=[%s] name=[%s]" "$type" "$name"
+ [ "$name" ] || return $FAILURE
+ setvar "_struct_type_$name" "$type" || return $FAILURE
+ # OK to use bare $name at this point
+ eval $name\(\){ f_struct $name \"\$@\"\; }
+}
+
+# f_struct $name
+# f_struct $name get $property [$var_to_set]
+# f_struct $name set $property $new_value
+# f_struct $name unset $property
+#
+# Access routine for getting, setting, unsetting, and testing properties of
+# `structures'.
+#
+# If only given $name, returns success if struct $name has been created (using
+# the f_struct_new() function above).
+#
+# For getting properties of a struct (versus setting) there are two methods of
+# access. If $var_to_set is missing or NULL, the value of the property is
+# printed to standard output for capturing in a sub-shell (which is less-
+# recommended because of performance degredation; for example, when called in a
+# loop). Returns success unless the property is unset.
+#
+# For setting properties of a struct, sets the value of $property to $new_value
+# and returns success.
+#
+# For unsetting, the underlying environment variable associated with the given
+# $property is unset.
+#
+f_struct()
+{
+ local __name="$1" __action="$2" __property="$3"
+ case $# in
+ 0) return $FAILURE ;;
+ 1) f_have $__name ;;
+ *) case "$__action" in
+ get) local __var_to_set="$4"
+ f_getvar "_struct_value_${__name}_$__property" "$__var_to_set"
+ ;;
+ set) local new_value="$4"
+ setvar "_struct_value_${__name}_$__property" "$new_value" ;;
+ unset) unset "_struct_value_${__name}_$__property" ;;
+ esac
+ esac
+ # Return the status of the last command above
+}
+
+# f_struct_free $name
+#
+# Unset the collection of environment variables and accessor-function
+# associated with struct $name.
+#
+f_struct_free()
+{
+ local name="$1" type member members
+ f_getvar "_struct_type_$name" type
+ f_dprintf "f_struct_free: name=[%s] type=[%s]" "$name" "$type"
+ [ "$name" ] || return $FAILURE
+ f_getvar "_struct_typedef_$type" members
+ for member in $members; do
+ f_struct "$name" unset $member
+ done
+ unset -f "$name"
+ unset "_struct_type_$name"
+}
+
+# f_struct_copy $from_name $to_name
+#
+# Copy the properties of one struct to another. If struct $to_name does not
+# exist, it is created. If struct $from_name does not exist, nothing is done
+# and struct $to_name remains unmodified.
+#
+# Returns success unless struct $to_name did not exist and f_struct_new() was
+# unable to create it.
+#
+f_struct_copy()
+{
+ local from_name="$1" to_name="$2" type
+ f_dprintf "f_struct_copy: from_name=[%s] to_name=[%s]" \
+ "$from_name" "$to_name"
+ f_getvar "_struct_type_$from_name" type
+ f_struct "$to_name" ||
+ f_struct_new "$type" "$to_name" || return $FAILURE
+ f_struct "$from_name" || return $SUCCESS
+ f_dprintf "f_struct_copy: copying properties from %s to %s" \
+ "$from_name" "$to_name"
+ local property properties from_value n=0 k=0
+ f_getvar "_struct_typedef_$type" properties
+ for property in $properties; do
+ k=$(( $k + 1 ))
+ if f_struct "$from_name" get $property from_value; then
+ f_struct "$to_name" set $property "$from_value"
+ n=$(( $n + 1 ))
+ else
+ f_struct "$to_name" unset $property
+ fi
+ done
+ f_dprintf "f_struct_copy: copied %u of %u properties from %s to %s" \
+ "$n" "$k" "$from_name" "$to_name"
+}
+
+############################################################ MAIN
+
+f_dprintf "%s: Successfully loaded." struct.subr
+
+fi # ! $_STRUCT_SUBR
diff --git a/usr.sbin/bsdconfig/share/variable.subr b/usr.sbin/bsdconfig/share/variable.subr
index 235f6dc..7a066421 100644
--- a/usr.sbin/bsdconfig/share/variable.subr
+++ b/usr.sbin/bsdconfig/share/variable.subr
@@ -1,6 +1,6 @@
if [ ! "$_VARIABLE_SUBR" ]; then _VARIABLE_SUBR=1
#
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -109,7 +109,15 @@ f_variable_set_defaults()
#
# Initialize various user-edittable values to their defaults
#
- setvar $VAR_RELNAME "$UNAME_R"
+ setvar $VAR_EDITOR "${EDITOR:-/usr/bin/ee}"
+ setvar $VAR_FTP_STATE "passive"
+ setvar $VAR_FTP_USER "ftp"
+ setvar $VAR_HOSTNAME "$( hostname )"
+ setvar $VAR_MEDIA_TIMEOUT "300"
+ setvar $VAR_NFS_SECURE "NO"
+ setvar $VAR_NFS_TCP "NO"
+ setvar $VAR_NFS_V3 "YES"
+ setvar $VAR_RELNAME "$UNAME_R"
f_dprintf "f_variable_set_defaults: Defaults initialized."
}
@@ -158,17 +166,71 @@ f_interactive()
! f_getvar $VAR_NONINTERACTIVE value || [ ! "$value" ]
}
+# f_netinteractive()
+#
+# Has the user specifically requested the network-portion of configuration and
+# setup to be performed interactively? Returns success if the user has asked
+# for the network configuration to be done interactively even if perhaps over-
+# all non-interactive mode has been requested (by setting nonInteractive).
+#
+# Returns success if $netInteractive is set and non-NULL.
+#
+f_netinteractive()
+{
+ local value
+ f_getvar $VAR_NETINTERACTIVE value && [ "$value" ]
+}
+
############################################################ MAIN
#
# Variables that can be tweaked from config files
#
+# Handle Variable Name
f_variable_new VAR_CONFIG_FILE configFile
f_variable_new VAR_DEBUG debug
f_variable_new VAR_DEBUG_FILE debugFile
-f_variable_new VAR_NO_ERROR noError
+f_variable_new VAR_DIRECTORY_PATH _directoryPath
+f_variable_new VAR_DOMAINNAME domainname
+f_variable_new VAR_EDITOR editor
+f_variable_new VAR_EXTRAS ifconfig_
+f_variable_new VAR_FTP_DIR ftpDirectory
+f_variable_new VAR_FTP_HOST ftpHost
+f_variable_new VAR_FTP_PASS ftpPass
+f_variable_new VAR_FTP_PATH _ftpPath
+f_variable_new VAR_FTP_PORT ftpPort
+f_variable_new VAR_FTP_STATE ftpState
+f_variable_new VAR_FTP_USER ftpUser
+f_variable_new VAR_GATEWAY defaultrouter
+f_variable_new VAR_HOSTNAME hostname
+f_variable_new VAR_HTTP_FTP_MODE httpFtpMode
+f_variable_new VAR_HTTP_PROXY httpProxy
+f_variable_new VAR_HTTP_PROXY_HOST httpProxyHost
+f_variable_new VAR_HTTP_PROXY_PATH _httpProxyPath
+f_variable_new VAR_HTTP_PROXY_PORT httpProxyPort
+f_variable_new VAR_IFCONFIG ifconfig_
+f_variable_new VAR_IPADDR ipaddr
+f_variable_new VAR_IPV6ADDR ipv6addr
+f_variable_new VAR_IPV6_ENABLE ipv6_activate_all_interfaces
+f_variable_new VAR_MEDIA_TIMEOUT MEDIA_TIMEOUT
+f_variable_new VAR_MEDIA_TYPE mediaType
+f_variable_new VAR_NAMESERVER nameserver
+f_variable_new VAR_NETINTERACTIVE netInteractive
+f_variable_new VAR_NETMASK netmask
+f_variable_new VAR_NETWORK_DEVICE netDev
+f_variable_new VAR_NFS_HOST nfsHost
+f_variable_new VAR_NFS_PATH nfsPath
+f_variable_new VAR_NFS_SECURE nfs_reserved_port_only
+f_variable_new VAR_NFS_TCP nfs_use_tcp
+f_variable_new VAR_NFS_V3 nfs_use_v3
f_variable_new VAR_NONINTERACTIVE nonInteractive
+f_variable_new VAR_NO_ERROR noError
+f_variable_new VAR_NO_INET6 noInet6
f_variable_new VAR_RELNAME releaseName
+f_variable_new VAR_SLOW_ETHER slowEthernetCard
+f_variable_new VAR_TRY_DHCP tryDHCP
+f_variable_new VAR_TRY_RTSOL tryRTSOL
+f_variable_new VAR_UFS_PATH ufs
#
# Self-initialize unless requested otherwise
diff --git a/usr.sbin/bsdconfig/startup/rcvar b/usr.sbin/bsdconfig/startup/rcvar
index d7ced9e..d655e61 100755
--- a/usr.sbin/bsdconfig/startup/rcvar
+++ b/usr.sbin/bsdconfig/startup/rcvar
@@ -1,6 +1,6 @@
#!/bin/sh
#-
-# Copyright (c) 2012 Devin Teske
+# Copyright (c) 2012-2013 Devin Teske
# All Rights Reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -75,7 +75,7 @@ dialog_menu_main()
" # END-QUOTE
if [ ! "$_RCVAR_MAP" ]; then
- # Genreate RCVAR_MAP of `rcvar dflt script desc ...' per-line
+ # Generate RCVAR_MAP of `rcvar dflt script desc ...' per-line
f_dialog_info "$msg_creating_rcvar_map"
RCVAR_MAP=$( f_startup_rcvar_map )
export RCVAR_MAP
diff --git a/usr.sbin/rtadvd/rtadvd.8 b/usr.sbin/rtadvd/rtadvd.8
index ad39887..fcb46fe 100644
--- a/usr.sbin/rtadvd/rtadvd.8
+++ b/usr.sbin/rtadvd/rtadvd.8
@@ -29,7 +29,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 14, 2011
+.Dd February 25, 2013
.Dt RTADVD 8
.Os
.Sh NAME
@@ -39,13 +39,19 @@
.Nm
.Op Fl dDfRs
.Op Fl c Ar configfile
+.Op Fl C Ar ctlsock
.Op Fl M Ar ifname
.Op Fl p Ar pidfile
-.Ar interface ...
+.Op Ar interface ...
.Sh DESCRIPTION
.Nm
sends router advertisement packets to the specified
.Ar interfaces .
+If no interfaces are specified,
+.Nm
+will still run, but will not advertise any routes until interfaces are
+added using
+.Xr rtadvctl 8 .
.Pp
The program will daemonize itself on invocation.
It will then send router advertisement packets periodically, as well
@@ -121,6 +127,11 @@ for the configuration file.
By default,
.Pa /etc/rtadvd.conf
is used.
+.It Fl C
+Specify an alternate location for the control socket used by
+.Xr rtadvctl 8 .
+The default is
+.Pa /var/run/rtadvd.sock .
.It Fl d
Print debugging information.
.It Fl D
@@ -185,6 +196,7 @@ The default process ID file.
.Ex -std
.Sh SEE ALSO
.Xr rtadvd.conf 5 ,
+.Xr rtadvctl 8 ,
.Xr rtsol 8
.Rs
.%A Thomas Narten
diff --git a/usr.sbin/rtadvd/rtadvd.c b/usr.sbin/rtadvd/rtadvd.c
index a5f306d..4d2a527 100644
--- a/usr.sbin/rtadvd/rtadvd.c
+++ b/usr.sbin/rtadvd/rtadvd.c
@@ -166,6 +166,15 @@ static void rtmsg_input(struct sockinfo *);
static void set_short_delay(struct ifinfo *);
static int check_accept_rtadv(int);
+static void
+usage(void)
+{
+
+ fprintf(stderr, "usage: rtadvd [-dDfRs] "
+ "[-c configfile] [-C ctlsock] [-M ifname] [-p pidfile]\n");
+ exit(1);
+}
+
int
main(int argc, char *argv[])
{
@@ -177,7 +186,7 @@ main(int argc, char *argv[])
pid_t pid, otherpid;
/* get command line options and arguments */
- while ((ch = getopt(argc, argv, "c:C:dDfM:p:Rs")) != -1) {
+ while ((ch = getopt(argc, argv, "c:C:dDfhM:p:Rs")) != -1) {
switch (ch) {
case 'c':
conffile = optarg;
@@ -209,17 +218,12 @@ main(int argc, char *argv[])
case 'p':
pidfilename = optarg;
break;
+ default:
+ usage();
}
}
argc -= optind;
argv += optind;
- if (argc == 0) {
- fprintf(stderr,
- "usage: rtadvd [-dDfRs] [-c conffile] "
- "[-C ctrlsockname] [-M ifname] "
- "[-p pidfile] interfaces...\n");
- exit(1);
- }
logopt = LOG_NDELAY | LOG_PID;
if (fflag)
OpenPOWER on IntegriCloud