summaryrefslogtreecommitdiffstats
path: root/meta/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-support')
-rw-r--r--meta/recipes-support/apr/apr-util_1.5.4.bb (renamed from meta/recipes-support/apr/apr-util_1.5.3.bb)34
-rw-r--r--meta/recipes-support/apr/apr_1.5.1.bb10
-rw-r--r--meta/recipes-support/aspell/aspell_0.60.6.1.bb2
-rw-r--r--meta/recipes-support/atk/at-spi2-atk_2.14.1.bb (renamed from meta/recipes-support/atk/at-spi2-atk_2.12.0.bb)4
-rw-r--r--meta/recipes-support/atk/at-spi2-core_2.14.1.bb (renamed from meta/recipes-support/atk/at-spi2-core_2.12.0.bb)11
-rw-r--r--meta/recipes-support/atk/atk_2.14.0.bb (renamed from meta/recipes-support/atk/atk_2.12.0.bb)8
-rw-r--r--meta/recipes-support/attr/acl.inc2
-rw-r--r--meta/recipes-support/attr/attr.inc2
-rw-r--r--meta/recipes-support/attr/ea-acl.inc2
-rw-r--r--meta/recipes-support/bdwgc/bdwgc_7.4.2.bb (renamed from meta/recipes-support/bdwgc/bdwgc_7.2d.bb)19
-rw-r--r--meta/recipes-support/beecrypt/beecrypt/add-option-dev-dsp.patch34
-rw-r--r--meta/recipes-support/beecrypt/beecrypt/run-ptest2
-rw-r--r--meta/recipes-support/beecrypt/beecrypt_4.2.1.bb1
-rw-r--r--meta/recipes-support/boost/bjam-native_1.57.0.bb (renamed from meta/recipes-support/boost/bjam-native_1.55.0.bb)0
-rw-r--r--meta/recipes-support/boost/boost-1.57.0.inc (renamed from meta/recipes-support/boost/boost-1.55.0.inc)4
-rw-r--r--meta/recipes-support/boost/boost.inc41
-rw-r--r--meta/recipes-support/boost/boost_1.55.0.bb4
-rw-r--r--meta/recipes-support/boost/boost_1.57.0.bb6
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch21
-rw-r--r--meta/recipes-support/ca-certificates/ca-certificates_20141019.bb (renamed from meta/recipes-support/ca-certificates/ca-certificates_20130610.bb)7
-rw-r--r--meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch33
-rw-r--r--meta/recipes-support/consolekit/consolekit_0.4.6.bb13
-rw-r--r--meta/recipes-support/createrepo/createrepo_0.4.11.bb1
-rw-r--r--meta/recipes-support/curl/curl/generate_code_for_disable_manual.patch38
-rw-r--r--meta/recipes-support/curl/curl/remove_inappropriate_file_from_rel.patch8203
-rw-r--r--meta/recipes-support/curl/curl_7.40.0.bb (renamed from meta/recipes-support/curl/curl_7.36.0.bb)46
-rw-r--r--meta/recipes-support/db/db/arm-thumb-mutex_db5.patch10
-rw-r--r--meta/recipes-support/db/db_5.3.28.bb (renamed from meta/recipes-support/db/db_5.3.21.bb)7
-rw-r--r--meta/recipes-support/db/db_6.0.30.bb115
-rw-r--r--meta/recipes-support/debianutils/debianutils_4.4.bb35
-rw-r--r--meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch22
-rw-r--r--meta/recipes-support/gdbm/gdbm_1.8.3.bb3
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/configure.patch209
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch33
-rw-r--r--meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch48
-rw-r--r--meta/recipes-support/gmp/gmp.inc7
-rw-r--r--meta/recipes-support/gmp/gmp/append_user_provided_flags.patch (renamed from meta/recipes-support/gmp/gmp-5.1.1/append_user_provided_flags.patch)0
-rw-r--r--meta/recipes-support/gmp/gmp/configure.patch (renamed from meta/recipes-support/gmp/gmp-5.1.1/configure.patch)128
-rw-r--r--meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch26
-rw-r--r--meta/recipes-support/gmp/gmp_4.2.1.bb20
-rw-r--r--meta/recipes-support/gmp/gmp_5.1.1.bb11
-rw-r--r--meta/recipes-support/gmp/gmp_6.0.0.bb14
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch35
-rw-r--r--meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb8
-rw-r--r--meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch62
-rw-r--r--meta/recipes-support/gnupg/gnupg/dirmngr-uses-libgpg-error.patch16
-rw-r--r--meta/recipes-support/gnupg/gnupg/pkgconfig.patch24
-rw-r--r--meta/recipes-support/gnupg/gnupg/use-pkgconfig-instead-of-npth-config.patch72
-rw-r--r--meta/recipes-support/gnupg/gnupg_1.4.7.bb5
-rw-r--r--meta/recipes-support/gnupg/gnupg_2.1.1.bb (renamed from meta/recipes-support/gnupg/gnupg_2.0.22.bb)17
-rw-r--r--meta/recipes-support/gnutls/gnutls.inc8
-rw-r--r--meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch31
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.2.15.bb7
-rw-r--r--meta/recipes-support/gnutls/gnutls_3.3.12.bb7
-rw-r--r--meta/recipes-support/gnutls/libtasn1_4.0.bb (renamed from meta/recipes-support/gnutls/libtasn1_3.5.bb)4
-rw-r--r--meta/recipes-support/gpgme/gpgme-1.4.3/disable_gpgconf_check.patch39
-rw-r--r--meta/recipes-support/gpgme/gpgme-1.4.3/gpgme.pc10
-rw-r--r--meta/recipes-support/gpgme/gpgme_1.4.3.bb10
-rw-r--r--meta/recipes-support/icu/icu.inc20
-rw-r--r--meta/recipes-support/icu/icu_54.1.bb (renamed from meta/recipes-support/icu/icu_53.1.bb)6
-rw-r--r--meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch38
-rw-r--r--meta/recipes-support/libassuan/libassuan_2.2.0.bb (renamed from meta/recipes-support/libassuan/libassuan_2.1.1.bb)8
-rw-r--r--meta/recipes-support/libbsd/libbsd_0.7.0.bb (renamed from meta/recipes-support/libbsd/libbsd_0.6.0.bb)7
-rw-r--r--meta/recipes-support/libcap/libcap/fix-CAP_LAST_CAP.patch39
-rw-r--r--meta/recipes-support/libcap/libcap_2.22.bb6
-rw-r--r--meta/recipes-support/libcap/libcap_2.24.bb (renamed from meta/recipes-support/libcap/libcap.inc)48
-rw-r--r--meta/recipes-support/libcheck/libcheck_0.9.14.bb (renamed from meta/recipes-support/libcheck/libcheck_0.9.13.bb)4
-rw-r--r--meta/recipes-support/libcroco/libcroco_0.6.8.bb6
-rw-r--r--meta/recipes-support/libevdev/libevdev_1.3.bb13
-rw-r--r--meta/recipes-support/libevent/libevent_2.0.21.bb2
-rw-r--r--meta/recipes-support/libfm/libfm-1.1.2.2/fix-make-parallelism-issue.patch31
-rw-r--r--meta/recipes-support/libfm/libfm-1.1.2.2/ignore_automake_warnings.patch14
-rw-r--r--meta/recipes-support/libfm/libfm-extra_1.2.3.bb23
-rw-r--r--meta/recipes-support/libfm/libfm_1.1.2.2.bb25
-rw-r--r--meta/recipes-support/libfm/libfm_1.2.3.bb38
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt.inc8
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb4
-rw-r--r--meta/recipes-support/libgcrypt/libgcrypt_1.6.2.bb4
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch (renamed from meta/recipes-support/libgpg-error/libgpg-error-1.12/pkgconfig.patch)69
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.12.bb31
-rw-r--r--meta/recipes-support/libgpg-error/libgpg-error_1.18.bb55
-rw-r--r--meta/recipes-support/libical/files/pthread-fix.patch52
-rw-r--r--meta/recipes-support/libical/libical_0.48.bb16
-rw-r--r--meta/recipes-support/libical/libical_1.0.0.bb13
-rw-r--r--meta/recipes-support/libiconv/libiconv_1.11.1.bb4
-rw-r--r--meta/recipes-support/libiconv/libiconv_1.14.bb4
-rw-r--r--meta/recipes-support/libksba/libksba_1.3.2.bb (renamed from meta/recipes-support/libksba/libksba_1.3.0.bb)5
-rw-r--r--meta/recipes-support/libnl/libnl/fix-lib-cache_mngr.c-two-parentheses-bugs.patch37
-rw-r--r--meta/recipes-support/libnl/libnl/fix-pktloc_syntax_h-race.patch14
-rw-r--r--meta/recipes-support/libnl/libnl_3.2.25.bb (renamed from meta/recipes-support/libnl/libnl_3.2.24.bb)9
-rw-r--r--meta/recipes-support/libpcre/libpcre/Makefile2
-rw-r--r--meta/recipes-support/libpcre/libpcre_8.36.bb (renamed from meta/recipes-support/libpcre/libpcre_8.35.bb)6
-rw-r--r--meta/recipes-support/libproxy/libproxy_0.4.11.bb2
-rw-r--r--meta/recipes-support/libsoup/libsoup-2.4_2.46.0.bb2
-rw-r--r--meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch20
-rw-r--r--meta/recipes-support/libunistring/libunistring/libunistring_fix_for_automake_1.12.patch81
-rw-r--r--meta/recipes-support/libunistring/libunistring/parallelmake.patch26
-rw-r--r--meta/recipes-support/libunistring/libunistring_0.9.4.bb (renamed from meta/recipes-support/libunistring/libunistring_0.9.3.bb)8
-rw-r--r--meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch2529
-rw-r--r--meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch28
-rw-r--r--meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch42
-rw-r--r--meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch72
-rw-r--r--meta/recipes-support/libunwind/libunwind.inc31
-rw-r--r--meta/recipes-support/libunwind/libunwind_1.1.bb11
-rw-r--r--meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch47
-rw-r--r--meta/recipes-support/liburcu/liburcu/aarch64.patch19
-rw-r--r--meta/recipes-support/liburcu/liburcu/fixsepbuild.patch19
-rw-r--r--meta/recipes-support/liburcu/liburcu_0.8.6.bb (renamed from meta/recipes-support/liburcu/liburcu_0.8.1.bb)8
-rw-r--r--meta/recipes-support/libusb/libusb1_1.0.19.bb (renamed from meta/recipes-support/libusb/libusb1_1.0.18.bb)4
-rw-r--r--meta/recipes-support/libxslt/libxslt_1.1.28.bb5
-rw-r--r--meta/recipes-support/lz4/lz4_svn.bb4
-rw-r--r--meta/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch70
-rw-r--r--meta/recipes-support/lzo/lzo/acinclude.m4 (renamed from meta/recipes-support/lzo/lzo-2.06/acinclude.m4)0
-rw-r--r--meta/recipes-support/lzo/lzo/run-ptest8
-rw-r--r--meta/recipes-support/lzo/lzo_2.06.bb24
-rw-r--r--meta/recipes-support/lzo/lzo_2.09.bb35
-rw-r--r--meta/recipes-support/neon/neon/pkgconfig.patch (renamed from meta/recipes-support/neon/neon-0.30.0/pkgconfig.patch)11
-rw-r--r--meta/recipes-support/neon/neon_0.30.1.bb (renamed from meta/recipes-support/neon/neon_0.30.0.bb)4
-rw-r--r--meta/recipes-support/nettle/nettle_2.7.1.bb2
-rw-r--r--meta/recipes-support/npth/npth/pkgconfig.patch49
-rw-r--r--meta/recipes-support/npth/npth_1.1.bb (renamed from meta/recipes-support/npth/npth_0.91.bb)6
-rw-r--r--meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch31
-rw-r--r--meta/recipes-support/nspr/nspr/nspr-CVE-2014-1545.patch67
-rw-r--r--meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch19
-rw-r--r--meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch62
-rw-r--r--meta/recipes-support/nspr/nspr_4.10.8.bb (renamed from meta/recipes-support/nspr/nspr_4.10.3.bb)22
-rw-r--r--meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb9
-rw-r--r--meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-1741.patch92
-rw-r--r--meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-5605.patch18
-rw-r--r--meta/recipes-support/nss/files/nss-CVE-2013-1740.patch916
-rw-r--r--meta/recipes-support/nss/files/nss-CVE-2014-1492.patch68
-rw-r--r--meta/recipes-support/nss/nss.inc21
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch (renamed from meta/recipes-support/nss/files/nss-fix-incorrect-shebang-of-perl.patch)0
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch35
-rw-r--r--meta/recipes-support/nss/nss/nss-fix-support-cross-compiling.patch (renamed from meta/recipes-support/nss/files/nss-fix-support-cross-compiling.patch)0
-rw-r--r--meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch (renamed from meta/recipes-support/nss/files/nss-no-rpath-for-cross-compiling.patch)0
-rw-r--r--meta/recipes-support/nss/nss/nss.pc.in (renamed from meta/recipes-support/nss/files/nss.pc.in)0
-rw-r--r--meta/recipes-support/nss/nss/signlibs.sh (renamed from meta/recipes-support/nss/files/signlibs.sh)0
-rw-r--r--meta/recipes-support/nss/nss_3.15.1.bb9
-rw-r--r--meta/recipes-support/nss/nss_3.17.3.bb7
-rw-r--r--meta/recipes-support/pinentry/pinentry_0.9.0.bb29
-rw-r--r--meta/recipes-support/ptest-runner/files/ptest-runner8
-rw-r--r--meta/recipes-support/ptest-runner/ptest-runner_1.0.bb2
-rw-r--r--meta/recipes-support/pth/files/pth-fix-parallel.patch48
-rw-r--r--meta/recipes-support/pth/pth_2.0.7.bb6
-rw-r--r--meta/recipes-support/serf/serf/env.patch28
-rw-r--r--meta/recipes-support/serf/serf/norpath.patch42
-rw-r--r--meta/recipes-support/serf/serf_1.3.8.bb26
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_1.2.bb7
-rw-r--r--meta/recipes-support/shared-mime-info/shared-mime-info_1.3.bb7
-rw-r--r--meta/recipes-support/sqlite/sqlite3_3.8.7.4.bb (renamed from meta/recipes-support/sqlite/sqlite3_3.8.4.3.bb)6
-rw-r--r--meta/recipes-support/taglib/taglib_1.9.1.bb4
152 files changed, 4419 insertions, 10589 deletions
diff --git a/meta/recipes-support/apr/apr-util_1.5.3.bb b/meta/recipes-support/apr/apr-util_1.5.4.bb
index 063a787396..6a14d14d41 100644
--- a/meta/recipes-support/apr/apr-util_1.5.3.bb
+++ b/meta/recipes-support/apr/apr-util_1.5.4.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://apr.apache.org/"
SECTION = "libs"
DEPENDS = "apr expat gdbm"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=519e0a18e03f7c023070568c14b077bb \
@@ -15,8 +15,8 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \
file://run-ptest \
"
-SRC_URI[md5sum] = "71a11d037240b292f824ba1eb537b4e3"
-SRC_URI[sha256sum] = "76db34cb508e346e3bf69347c29ed1500bf0b71bcc48d54271ad9d1c25703743"
+SRC_URI[md5sum] = "866825c04da827c6e5f53daff5569f42"
+SRC_URI[sha256sum] = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19"
EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
--without-odbc \
@@ -28,22 +28,36 @@ EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
--with-expat=${STAGING_DIR_HOST}${prefix}"
-inherit autotools-brokensep lib_package binconfig
+inherit autotools lib_package binconfig
+
+PR = "r1"
OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'"
do_configure_append() {
if [ "${CLASSOVERRIDE}" = "class-target" ]; then
- cp ${STAGING_DATADIR}/apr/apr_rules.mk ${S}/build/rules.mk
+ cp ${STAGING_DATADIR}/apr/apr_rules.mk ${B}/build/rules.mk
fi
}
do_configure_prepend_class-native() {
- cp ${STAGING_DATADIR_NATIVE}/apr/apr_rules.mk ${S}/build/rules.mk
+ mkdir ${B}/build
+ cp ${STAGING_DATADIR_NATIVE}/apr/apr_rules.mk ${B}/build/rules.mk
}
do_configure_append_class-native() {
- sed -i "s#LIBTOOL=\$(SHELL) \$(apr_builddir)#LIBTOOL=\$(SHELL) ${STAGING_BINDIR_NATIVE}#" ${S}/build/rules.mk
+ sed -i "s#LIBTOOL=\$(SHELL) \$(apr_builddir)#LIBTOOL=\$(SHELL) ${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk
# sometimes there isn't SHELL
- sed -i "s#LIBTOOL=\$(apr_builddir)#LIBTOOL=${STAGING_BINDIR_NATIVE}#" ${S}/build/rules.mk
+ sed -i "s#LIBTOOL=\$(apr_builddir)#LIBTOOL=${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk
+}
+
+do_configure_prepend_class-nativesdk() {
+ cp ${STAGING_DATADIR}/apr/apr_rules.mk ${S}/build/rules.mk
+}
+
+do_configure_append_class-nativesdk() {
+ sed -i "s#\(apr_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${S}/build/rules.mk
+ sed -i "s#\(apr_builders\)=.*#\1=${STAGING_DATADIR}/build-1#" ${S}/build/rules.mk
+ sed -i "s#\(top_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${S}/build/rules.mk
+ sed -i "s#\(LIBTOOL=\$(apr_builddir)\).*#\1/libtool#" ${S}/build/rules.mk
}
FILES_${PN} += "${libdir}/apr-util-1/apr_dbm_gdbm-1.so"
@@ -54,7 +68,7 @@ FILES_${PN}-staticdev += "${libdir}/apr-util-1/apr_dbm_gdbm.a"
inherit ptest
do_compile_ptest() {
- cd ${S}/test
+ cd ${B}/test
oe_runmake
}
@@ -62,6 +76,6 @@ do_install_ptest() {
t=${D}${PTEST_PATH}/test
mkdir $t
for i in testall data; do \
- cp -r ${S}/test/$i $t; \
+ cp -r ${B}/test/$i $t; \
done
}
diff --git a/meta/recipes-support/apr/apr_1.5.1.bb b/meta/recipes-support/apr/apr_1.5.1.bb
index 2720b523f3..985ef67530 100644
--- a/meta/recipes-support/apr/apr_1.5.1.bb
+++ b/meta/recipes-support/apr/apr_1.5.1.bb
@@ -7,7 +7,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4dfd4cd216828c8cae5de5a12f3844c8 \
file://include/apr_lib.h;endline=17;md5=ee42fa7575dc40580a9e01c1b75fae96"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \
file://configure_fixes.patch \
@@ -32,11 +32,17 @@ CACHED_CONFIGUREVARS += "apr_cv_mutex_recursive=yes"
CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sctp_uio_h=no"
do_configure_prepend() {
+ # Avoid absolute paths for grep since it causes failures
+ # when using sstate between different hosts with different
+ # install paths for grep.
+ export GREP="grep"
+
cd ${S}
./buildconf
}
FILES_${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*"
+RDEPENDS_${PN}-dev += "bash"
#for some reason, build/libtool.m4 handled by buildconf still be overwritten
#when autoconf, so handle it again.
@@ -85,3 +91,5 @@ do_install_ptest() {
cp ${S}/test/testall $t/
cp ${S}/test/tryread $t/
}
+
+export CONFIG_SHELL="/bin/bash"
diff --git a/meta/recipes-support/aspell/aspell_0.60.6.1.bb b/meta/recipes-support/aspell/aspell_0.60.6.1.bb
index 56dabd38eb..a4f0e140b2 100644
--- a/meta/recipes-support/aspell/aspell_0.60.6.1.bb
+++ b/meta/recipes-support/aspell/aspell_0.60.6.1.bb
@@ -15,6 +15,8 @@ PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses"
PACKAGES += "libaspell libpspell libpspell-dev aspell-utils"
+RDEPENDS_${PN}-utils += "perl"
+
FILES_${PN}-dbg += "${libdir}/aspell-0.60/.debu*"
FILES_libaspell = "${libdir}/libaspell.so.* ${libdir}/aspell*"
FILES_aspell-utils = "${bindir}/word-list-compress ${bindir}/aspell-import ${bindir}/run-with-aspell ${bindir}/pre*"
diff --git a/meta/recipes-support/atk/at-spi2-atk_2.12.0.bb b/meta/recipes-support/atk/at-spi2-atk_2.14.1.bb
index db6dc9032c..23913899ce 100644
--- a/meta/recipes-support/atk/at-spi2-atk_2.12.0.bb
+++ b/meta/recipes-support/atk/at-spi2-atk_2.14.1.bb
@@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "aafc5e1bb17cd3ad440f6350e7a021c1"
-SRC_URI[sha256sum] = "3b5467c9f169812bc36a4245355b7deedea0a62eb22153df96ced88dcd1c3633"
+SRC_URI[md5sum] = "5c6a085249a6d4e792ead86dca183504"
+SRC_URI[sha256sum] = "058f34ea60edf0a5f831c9f2bdd280fe95c1bcafb76e466e44aa0fb356d17bcb"
DEPENDS = "dbus glib-2.0 atk at-spi2-core"
diff --git a/meta/recipes-support/atk/at-spi2-core_2.12.0.bb b/meta/recipes-support/atk/at-spi2-core_2.14.1.bb
index 31e133fe43..1a1ce6c5ee 100644
--- a/meta/recipes-support/atk/at-spi2-core_2.12.0.bb
+++ b/meta/recipes-support/atk/at-spi2-core_2.14.1.bb
@@ -5,13 +5,16 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e9f288ba982d60518f375b5898283886"
MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
SRC_URI = "${GNOME_MIRROR}/${BPN}/${MAJ_VER}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "b12ad0e0924706f5e7f51216241068ef"
-SRC_URI[sha256sum] = "db550edd98e53b4252521459c2dcaf0f3b060a9bad52489b9dbadbaedad3fb89"
+
+SRC_URI[md5sum] = "a37993cc50d90465c9aeed95e2ac439a"
+SRC_URI[sha256sum] = "eef9660b14fdf0fb1f30d1be7c72d591fa7cbb87b00ca3a444425712f46ce657"
DEPENDS = "dbus glib-2.0 virtual/libx11 libxi libxtst intltool-native"
-inherit autotools gtk-doc pkgconfig
+inherit autotools gtk-doc pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
-EXTRA_OECONF = "--disable-introspection --disable-xevie"
+EXTRA_OECONF = "--disable-introspection --disable-xevie --with-dbus-daemondir=${bindir}"
FILES_${PN} += "${datadir}/dbus-1/services/*.service"
diff --git a/meta/recipes-support/atk/atk_2.12.0.bb b/meta/recipes-support/atk/atk_2.14.0.bb
index 9112bbb6c2..e0e9be3be9 100644
--- a/meta/recipes-support/atk/atk_2.12.0.bb
+++ b/meta/recipes-support/atk/atk_2.14.0.bb
@@ -5,8 +5,8 @@ SECTION = "x11/libs"
LICENSE = "GPLv2+ & LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://atk/atkutil.c;endline=20;md5=db21b0bdbef9da4dc6eb122debc9f9bc \
- file://atk/atk.h;endline=20;md5=c58238d688c24387376d6c69d06248a7"
+ file://atk/atkutil.c;endline=18;md5=6fd31cd2fdc9b30f619ca8d819bc12d3 \
+ file://atk/atk.h;endline=18;md5=fcd7710187e0eae485e356c30d1b0c3b"
DEPENDS = "glib-2.0"
@@ -14,8 +14,8 @@ inherit gnomebase gtk-doc
GNOME_COMPRESS_TYPE = "xz"
-SRC_URI[archive.md5sum] = "930238dec55fdbf8eda9975b44f07b76"
-SRC_URI[archive.sha256sum] = "48a8431974639c5a59c24fcd3ece1a19709872d5dfe78907524d9f5e9993f18f"
+SRC_URI[archive.md5sum] = "ecb7ca8469a5650581b1227d78051b8b"
+SRC_URI[archive.sha256sum] = "2875cc0b32bfb173c066c22a337f79793e0c99d2cc5e81c4dac0d5a523b8fbad"
BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/attr/acl.inc b/meta/recipes-support/attr/acl.inc
index bc9fd6dda3..b2bc8bac28 100644
--- a/meta/recipes-support/attr/acl.inc
+++ b/meta/recipes-support/attr/acl.inc
@@ -36,4 +36,4 @@ do_install_ptest() {
cp ${S}/include/builddefs ${S}/include/buildmacros ${S}/include/buildrules ${D}${PTEST_PATH}/include/
}
-RDEPENDS_${PN}-ptest = "bash coreutils perl perl-module-filehandle perl-module-getopt-std perl-module-posix shadow"
+RDEPENDS_${PN}-ptest = "acl bash coreutils perl perl-module-filehandle perl-module-getopt-std perl-module-posix shadow"
diff --git a/meta/recipes-support/attr/attr.inc b/meta/recipes-support/attr/attr.inc
index c37d34f23d..28c750f987 100644
--- a/meta/recipes-support/attr/attr.inc
+++ b/meta/recipes-support/attr/attr.inc
@@ -35,3 +35,5 @@ do_install_ptest() {
}
RDEPENDS_${PN}-ptest = "coreutils perl-module-filehandle perl-module-getopt-std perl-module-posix"
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta/recipes-support/attr/ea-acl.inc b/meta/recipes-support/attr/ea-acl.inc
index 72f623e593..b17e9b10a4 100644
--- a/meta/recipes-support/attr/ea-acl.inc
+++ b/meta/recipes-support/attr/ea-acl.inc
@@ -7,7 +7,7 @@ inherit autotools-brokensep gettext
# the package comes with a custom config.h.in, it cannot be
# overwritten by autoheader
-export AUTOHEADER = "true"
+EXTRA_AUTORECONF += "--exclude=autoheader"
EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root"
EXTRA_OECONF_append_class-native = " --enable-gettext=no"
diff --git a/meta/recipes-support/bdwgc/bdwgc_7.2d.bb b/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb
index 2ba7aa5a87..23ec95419c 100644
--- a/meta/recipes-support/bdwgc/bdwgc_7.2d.bb
+++ b/meta/recipes-support/bdwgc/bdwgc_7.4.2.bb
@@ -16,17 +16,15 @@ DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\
by replacing malloc with GC_malloc calls, replacing realloc with GC_realloc\
calls, and removing free calls."
-HOMEPAGE = "http://www.hpl.hp.com/personal/Hans_Boehm/gc/"
+HOMEPAGE = "http://www.hboehm.info/gc/"
SECTION = "devel"
-LICENSE = "MIT & FSF-Unlimited & GPL-2.0"
-LIC_FILES_CHKSUM = "file://README.QUICK;md5=9b9dd874f6940641b6ab19893ee8f1cc \
- file://doc/README;md5=92e7dd0334d1f672b699cd0aca08bef0 \
- file://libatomic_ops/doc/LICENSING.txt;md5=607073e04548eac7d1f763e480477bab"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.QUICK;md5=55f5088f90a982fed7af9a4897047ef7"
-SRC_URI = "http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-${PV}.tar.gz"
+SRC_URI = "http://www.hboehm.info/gc/gc_source/gc-${PV}.tar.gz"
-SRC_URI[md5sum] = "91340b28c61753a789eb6077675d87d2"
-SRC_URI[sha256sum] = "d9fe0ae8650d43746a48bfb394cab01a319f3809cee19f8ebd16aa985b511c5e"
+SRC_URI[md5sum] = "12c05fd2811d989341d8c6d81f66af87"
+SRC_URI[sha256sum] = "63320ad7c45460e4a40e03f5aa4c6893783f21a16416c3282b994f933312afa2"
FILES_${PN}-doc = "/usr/share"
REAL_PV = "${@[d.getVar('PV',1)[:-1], d.getVar('PV',1)][(d.getVar('PV',1)[-1]).isdigit()]}"
@@ -35,4 +33,9 @@ S = "${WORKDIR}/gc-${REAL_PV}"
ARM_INSTRUCTION_SET = "arm"
inherit autotools pkgconfig
+
+# by default use external libatomic-ops
+PACKAGECONFIG ??= "libatomic-ops"
+PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomics-ops"
+
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/beecrypt/beecrypt/add-option-dev-dsp.patch b/meta/recipes-support/beecrypt/beecrypt/add-option-dev-dsp.patch
new file mode 100644
index 0000000000..b3298ce2db
--- /dev/null
+++ b/meta/recipes-support/beecrypt/beecrypt/add-option-dev-dsp.patch
@@ -0,0 +1,34 @@
+Add config option --with-dev-dsp.
+
+Upstream-Status: Pending
+
+Signed-off-by: Zhang Xiao <xiao.zhang@windriver.com>
+---
+--- a/configure.ac
++++ b/configure.ac
+@@ -106,6 +106,16 @@ AC_ARG_WITH(python,[ --with-python[[=AR
+ fi
+ ])
+
++AC_ARG_WITH(dev-dsp,[ --with-dev-dsp enables dev/dsp for entropy producing. auto for auto-detecting dev/dep on host. [[default=no]]],[
++ if test "$withval" = yes; then
++ AC_DEFINE([HAVE_DEV_DSP], 1)
++ else
++ if test "$withval" = auto; then
++ ac_detect_dev_dsp=yes
++ fi
++ fi
++ ],[ac_detect_dev_dsp=no])
++
+ # Check for expert mode
+ if test "$ac_enable_expert_mode" = yes; then
+ BEE_EXPERT_MODE
+@@ -464,7 +474,7 @@ linux*)
+ ac_cv_have_dev_dsp=no
+ fi
+ ])
+- if test "$ac_cv_have_dev_dsp" = yes; then
++ if test "$ac_cv_have_dev_dsp" = yes && test "$ac_detect_dev_dsp" = yes; then
+ AC_DEFINE([HAVE_DEV_DSP], 1)
+ fi
+ ;;
diff --git a/meta/recipes-support/beecrypt/beecrypt/run-ptest b/meta/recipes-support/beecrypt/beecrypt/run-ptest
index 5bc7460be9..2ee294d991 100644
--- a/meta/recipes-support/beecrypt/beecrypt/run-ptest
+++ b/meta/recipes-support/beecrypt/beecrypt/run-ptest
@@ -1,5 +1,5 @@
#!/bin/sh
cd tests
-for i in `ls`; do ./$i; if [ $? == 0 ]; then echo "PASS: $i"; \
+for i in `ls`; do ./$i; if [ $? -eq 0 ]; then echo "PASS: $i"; \
else echo "FAIL: $i"; fi; done
diff --git a/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb b/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
index 209b92e653..1e626f154c 100644
--- a/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
+++ b/meta/recipes-support/beecrypt/beecrypt_4.2.1.bb
@@ -11,6 +11,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/beecrypt/beecrypt-${PV}.tar.gz \
file://fix-for-gcc-4.7.patch \
file://run-ptest \
file://beecrypt-enable-ptest-support.patch \
+ file://add-option-dev-dsp.patch \
"
SRC_URI[md5sum] = "8441c014170823f2dff97e33df55af1e"
diff --git a/meta/recipes-support/boost/bjam-native_1.55.0.bb b/meta/recipes-support/boost/bjam-native_1.57.0.bb
index d85d1a96cb..d85d1a96cb 100644
--- a/meta/recipes-support/boost/bjam-native_1.55.0.bb
+++ b/meta/recipes-support/boost/bjam-native_1.57.0.bb
diff --git a/meta/recipes-support/boost/boost-1.55.0.inc b/meta/recipes-support/boost/boost-1.57.0.inc
index 7daadb6c9e..809419dbac 100644
--- a/meta/recipes-support/boost/boost-1.55.0.inc
+++ b/meta/recipes-support/boost/boost-1.57.0.inc
@@ -13,7 +13,7 @@ BOOST_P = "boost_${BOOST_VER}"
SRC_URI = "${SOURCEFORGE_MIRROR}/boost/${BOOST_P}.tar.bz2"
-SRC_URI[md5sum] = "d6eef4b4cacb2183f2bf265a5a03a354"
-SRC_URI[sha256sum] = "fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52"
+SRC_URI[md5sum] = "1be49befbdd9a5ce9def2983ba3e7b76"
+SRC_URI[sha256sum] = "910c8c022a33ccec7f088bd65d4f14b466588dda94ba2124e78b8c57db264967"
S = "${WORKDIR}/${BOOST_P}"
diff --git a/meta/recipes-support/boost/boost.inc b/meta/recipes-support/boost/boost.inc
index 0a44d79746..6b42133aed 100644
--- a/meta/recipes-support/boost/boost.inc
+++ b/meta/recipes-support/boost/boost.inc
@@ -5,6 +5,8 @@ DEPENDS = "bjam-native zlib bzip2"
ARM_INSTRUCTION_SET = "arm"
BOOST_LIBS = "\
+ atomic \
+ chrono \
date_time \
filesystem \
graph \
@@ -90,7 +92,8 @@ EQD = '\"'
#boost.bb: "... '-sGCC=... '${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}config${EQD}'${SQD} ..."
BJAM_CONF = "${SQD}'-DBOOST_PLATFORM_CONFIG=${EQD}boost/config/platform/${TARGET_OS}.hpp${EQD}'${SQD}"
-BJAM_TOOLS = "-sTOOLS=gcc \
+BJAM_TOOLS = "--ignore-site-config \
+ '-sTOOLS=gcc' \
'-sGCC=${CC} '${BJAM_CONF} \
'-sGXX=${CXX} '${BJAM_CONF} \
'-sGCC_INCLUDE_DIRECTORY=${STAGING_INCDIR}' \
@@ -106,21 +109,29 @@ BJAM_TOOLS = "-sTOOLS=gcc \
def get_boost_parallel_make(bb, d):
pm = d.getVar('PARALLEL_MAKE', True)
if pm:
- # people are usually using "-jN" or "-j N", but let it work with something else appended to it
- import re
- pm_prefix = re.search("\D+", pm)
- pm_val = re.search("\d+", pm)
- if pm_prefix is None or pm_val is None:
- bb.error("Unable to analyse format of PARALLEL_MAKE variable: %s" % pm)
- pm_nval = min(64, int(pm_val.group(0)))
- return pm_prefix.group(0) + str(pm_nval) + pm[pm_val.end():]
- else:
- return ""
+ # look for '-j' and throw other options (e.g. '-l') away
+ # because they might have different meaning in bjam
+ pm = pm.split()
+ while pm:
+ v = None
+ opt = pm.pop(0)
+ if opt == '-j':
+ v = pm.pop(0)
+ elif opt.startswith('-j'):
+ v = opt[2:].strip()
+ else:
+ v = None
+
+ if v:
+ v = min(64, int(v))
+ return '-j' + str(v)
+
+ return ""
BOOST_PARALLEL_MAKE = "${@get_boost_parallel_make(bb, d)}"
BJAM_OPTS = '${BOOST_PARALLEL_MAKE} \
${BJAM_TOOLS} \
- -sBOOST_BUILD_USER_CONFIG=${S}/tools/build/v2/user-config.jam \
+ -sBOOST_BUILD_USER_CONFIG=${S}/tools/build/example/user-config.jam \
--builddir=${S}/${TARGET_SYS} \
--disable-icu \
${BJAM_EXTRA}'
@@ -132,12 +143,12 @@ do_boostconfig() {
cp -f boost/config/platform/linux.hpp boost/config/platform/linux-gnueabi.hpp
# D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation.
- if ! grep -qe "^using gcc : 4.3.1" ${S}/tools/build/v2/user-config.jam
+ if ! grep -qe "^using gcc : 4.3.1" ${S}/tools/build/example/user-config.jam
then
- echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${S}/tools/build/v2/user-config.jam
+ echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${S}/tools/build/example/user-config.jam
fi
- echo "using python : ${PYTHON_BASEVERSION} : : ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${S}/tools/build/v2/user-config.jam
+ echo "using python : ${PYTHON_BASEVERSION} : : ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${S}/tools/build/example/user-config.jam
CC="${BUILD_CC}" CFLAGS="${BUILD_CFLAGS}" ./bootstrap.sh --with-bjam=bjam --with-toolset=gcc --with-python-root=${PYTHON_ROOT}
sed -i '/^using python/d' project-config.jam
diff --git a/meta/recipes-support/boost/boost_1.55.0.bb b/meta/recipes-support/boost/boost_1.55.0.bb
deleted file mode 100644
index b199c88577..0000000000
--- a/meta/recipes-support/boost/boost_1.55.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include boost-${PV}.inc
-include boost.inc
-
-SRC_URI += "file://arm-intrinsics.patch"
diff --git a/meta/recipes-support/boost/boost_1.57.0.bb b/meta/recipes-support/boost/boost_1.57.0.bb
new file mode 100644
index 0000000000..c09d5f431f
--- /dev/null
+++ b/meta/recipes-support/boost/boost_1.57.0.bb
@@ -0,0 +1,6 @@
+include boost-${PV}.inc
+include boost.inc
+
+SRC_URI += "\
+ file://arm-intrinsics.patch \
+"
diff --git a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch b/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
index 7e0ee4cd24..6a5d6da676 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
+++ b/meta/recipes-support/ca-certificates/ca-certificates/default-sysroot.patch
@@ -4,13 +4,15 @@ update-ca-certificates: find SYSROOT relative to its own location
This makes the script relocatable.
---- ca-certificates-20130119.orig/sbin/update-ca-certificates
-+++ ca-certificates-20130119/sbin/update-ca-certificates
-@@ -37,11 +37,44 @@ do
+Index: git/sbin/update-ca-certificates
+===================================================================
+--- git.orig/sbin/update-ca-certificates
++++ git/sbin/update-ca-certificates
+@@ -37,6 +37,39 @@ do
shift
done
-
--CERTSCONF=$SYSROOT/etc/ca-certificates.conf
+
++
+if [ -z "$SYSROOT" ]; then
+ local_which () {
+ if [ $# -lt 1 ]; then
@@ -43,13 +45,6 @@ This makes the script relocatable.
+ SYSROOT=
+ fi
+fi
-+
+ CERTSCONF=$SYSROOT/etc/ca-certificates.conf
CERTSDIR=$SYSROOT/usr/share/ca-certificates
-+CERTSCONF=$SYSROOT/etc/ca-certificates.conf
-+ETCCERTSDIR=$SYSROOT/etc/ssl/certs
LOCALCERTSDIR=$SYSROOT/usr/local/share/ca-certificates
- CERTBUNDLE=ca-certificates.crt
--ETCCERTSDIR=$SYSROOT/etc/ssl/certs
-
- cleanup() {
- rm -f "$TEMPBUNDLE"
diff --git a/meta/recipes-support/ca-certificates/ca-certificates_20130610.bb b/meta/recipes-support/ca-certificates/ca-certificates_20141019.bb
index c9ef07bfb7..e5a482138f 100644
--- a/meta/recipes-support/ca-certificates/ca-certificates_20130610.bb
+++ b/meta/recipes-support/ca-certificates/ca-certificates_20141019.bb
@@ -5,20 +5,21 @@ This derived from Debian's CA Certificates."
HOMEPAGE = "http://packages.debian.org/sid/ca-certificates"
SECTION = "misc"
LICENSE = "GPL-2.0+ & MPL-2.0"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=d8fc4ed45f01c31c87c9b496d4babcae"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=48d2baf97986999e776b43c8dd9e0c5a"
# This is needed to ensure we can run the postinst at image creation time
DEPENDS = "ca-certificates-native"
DEPENDS_class-native = ""
-# tag: debian/20130610
-SRCREV = "9f3c12784eaee1e2b005a23ce8b5c38e1e851404"
+# tag: debian/20140325 + 2
+SRCREV = "2b8a047c78aadbecd90bf8e49ccf68898a211610"
SRC_URI = "git://anonscm.debian.org/collab-maint/ca-certificates.git \
file://0001-update-ca-certificates-remove-c-rehash.patch \
file://0002-update-ca-certificates-use-SYSROOT.patch \
file://default-sysroot.patch \
file://sbindir.patch"
+
S = "${WORKDIR}/git"
inherit allarch
diff --git a/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch b/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch
new file mode 100644
index 0000000000..ad879d466b
--- /dev/null
+++ b/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch
@@ -0,0 +1,33 @@
+Upstream-Status: Pending
+
+--- ConsoleKit-0.4.6.orig/configure.ac
++++ ConsoleKit-0.4.6/configure.ac
+@@ -56,10 +56,24 @@ PKG_CHECK_MODULES(CONSOLE_KIT,
+ gthread-2.0 >= $GLIB_REQUIRED_VERSION
+ )
+
+-PKG_CHECK_MODULES(POLKIT,
+- polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION,
+- have_polkit=yes,
+- have_polkit=no)
++AC_ARG_WITH([polkit],
++ [AS_HELP_STRING([--with-polkit],
++ [support PolicyKit @<:@default=check@:>@])],
++ [],
++ [with_polkit=check])
++
++AS_IF([test "x$with_polkit" != xno],
++ [PKG_CHECK_MODULES(POLKIT,
++ polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION,
++ have_polkit=yes,
++ [if test "x$with_polkit" != xcheck; then
++ AC_MSG_FAILURE(
++ [--with-polkit was given, but test for polkit failed])
++ else
++ have_polkit=no
++ fi
++ ])])
++
+ if test "x$have_polkit" = "xyes" ; then
+ AC_DEFINE(HAVE_POLKIT, [], [Define if we have polkit])
+ fi
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
index 98516166cf..66a892a7df 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
@@ -6,13 +6,17 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
file://src/main.c;endline=21;md5=0a994e09769780220163255d8f9071c3"
-DEPENDS = "glib-2.0 dbus dbus-glib virtual/libx11"
+DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib virtual/libx11"
RDEPENDS_${PN} += "base-files"
-inherit autotools pkgconfig
+inherit autotools pkgconfig distro_features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI = "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${PV}.tar.xz \
- file://sepbuildfix.patch"
+ file://sepbuildfix.patch \
+ file://add-polkit-configure-argument.patch \
+"
SRC_URI[md5sum] = "611792b4d616253a5bdec9175f8b7678"
SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c"
@@ -23,8 +27,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/security,--disable-pam-module,libpam"
-# No option to turn it on or off, so rely on the build dependency for now.
-PACKAGECONFIG[policykit] = ",,polkit"
+PACKAGECONFIG[policykit] = "--with-polkit,--without-polkit,polkit"
PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--with-systemdsystemunitdir="
FILES_${PN} += "${localstatedir}/log/ConsoleKit ${exec_prefix}/lib/ConsoleKit \
diff --git a/meta/recipes-support/createrepo/createrepo_0.4.11.bb b/meta/recipes-support/createrepo/createrepo_0.4.11.bb
index 159a6c4b27..49b45fc3b8 100644
--- a/meta/recipes-support/createrepo/createrepo_0.4.11.bb
+++ b/meta/recipes-support/createrepo/createrepo_0.4.11.bb
@@ -5,6 +5,7 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760"
DEPENDS_class-native += "libxml2-native rpm-native"
+RDEPENDS_${PN}_class-target = "libxml2-python"
PR = "r9"
diff --git a/meta/recipes-support/curl/curl/generate_code_for_disable_manual.patch b/meta/recipes-support/curl/curl/generate_code_for_disable_manual.patch
deleted file mode 100644
index dc755e44ad..0000000000
--- a/meta/recipes-support/curl/curl/generate_code_for_disable_manual.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Upsteam-Status Backport [fixed in 7.37.0]
-commit 38d582ff541353d738858299d4a2b78bafac03ed
-Author: Daniel Stenberg <daniel@haxx.se>
-Date: Wed Mar 26 13:22:10 2014 +0100
-
- mkhelp: generate code for --disable-manual as well
-
- This allows configure --disable-manual to run and build without having
- to regenerate the src/tool_hugehelp.c file which otherwise is necessary
- since we ship tarballs with that file present.
-
- Reported-by: Remi Gacogne
- Bug: http://curl.haxx.se/bug/view.cgi?id=1350
-
-diff --git a/src/mkhelp.pl b/src/mkhelp.pl
-index 444b669..7ed86f7 100644
---- a/src/mkhelp.pl
-+++ b/src/mkhelp.pl
-@@ -6,7 +6,7 @@
- # | (__| |_| | _ <| |___
- # \___|\___/|_| \_\_____|
- #
--# Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
-+# Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
- #
- # This software is licensed as described in the file COPYING, which
- # you should have received as part of this distribution. The terms
-@@ -256,6 +256,10 @@ foot();
-
- sub foot {
- print <<FOOT
-+#else /* !USE_MANUAL */
-+/* built-in manual is disabled, blank function */
-+#include "tool_hugehelp.h"
-+void hugehelp(void) {}
- #endif /* USE_MANUAL */
- FOOT
- ;
diff --git a/meta/recipes-support/curl/curl/remove_inappropriate_file_from_rel.patch b/meta/recipes-support/curl/curl/remove_inappropriate_file_from_rel.patch
deleted file mode 100644
index e4b8fe2ab6..0000000000
--- a/meta/recipes-support/curl/curl/remove_inappropriate_file_from_rel.patch
+++ /dev/null
@@ -1,8203 +0,0 @@
-Upstream-Status: Backport [to be fixed in 7.37.0]
-Signed-off-by: Tudor Florea <tudor.florea@enea.com>
-
-diff -ruN a/src/tool_hugehelp.c b/src/tool_hugehelp.c
---- a/src/tool_hugehelp.c 2014-03-25 11:29:49.000000000 +0100
-+++ b/src/tool_hugehelp.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,8196 +0,0 @@
--#include "tool_setup.h"
--#ifndef HAVE_LIBZ
--/*
-- * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
-- * Generation time: Tue Mar 25 11:29:49 2014
-- */
--#ifdef USE_MANUAL
--#include "tool_hugehelp.h"
--void hugehelp(void)
--{
-- fputs(
--" _ _ ____ _\n"
--" Project ___| | | | _ \\| |\n"
--" / __| | | | |_) | |\n"
--" | (__| |_| | _ <| |___\n"
--" \\___|\\___/|_| \\_\\_____|\n"
--"\n"
--"NAME\n"
--" curl - transfer a URL\n"
--"\n"
--"SYNOPSIS\n"
--" curl [options] [URL...]\n"
--"\n"
--"DESCRIPTION\n"
--" curl is a tool to transfer data from or to a server, using one of the\n"
--" supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP,\n"
--, stdout);
-- fputs(
--" IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS,\n"
--" TELNET and TFTP). The command is designed to work without user inter-\n"
--" action.\n"
--"\n"
--" curl offers a busload of useful tricks like proxy support, user authen-\n"
--" tication, FTP upload, HTTP post, SSL connections, cookies, file trans-\n"
--" fer resume, Metalink, and more. As you will see below, the number of\n"
--" features will make your head spin!\n"
--"\n"
--, stdout);
-- fputs(
--" curl is powered by libcurl for all transfer-related features. See\n"
--" libcurl(3) for details.\n"
--"\n"
--"URL\n"
--" The URL syntax is protocol-dependent. You'll find a detailed descrip-\n"
--" tion in RFC 3986.\n"
--"\n"
--" You can specify multiple URLs or parts of URLs by writing part sets\n"
--" within braces as in:\n"
--"\n"
--" http://site.{one,two,three}.com\n"
--"\n"
--" or you can get sequences of alphanumeric series by using [] as in:\n"
--"\n"
--" ftp://ftp.numericals.com/file[1-100].txt\n"
--, stdout);
-- fputs(
--" ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)\n"
--" ftp://ftp.letters.com/file[a-z].txt\n"
--"\n"
--" Nested sequences are not supported, but you can use several ones next\n"
--" to each other:\n"
--"\n"
--" http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html\n"
--"\n"
--" You can specify any amount of URLs on the command line. They will be\n"
--" fetched in a sequential manner in the specified order.\n"
--"\n"
--, stdout);
-- fputs(
--" You can specify a step counter for the ranges to get every Nth number\n"
--" or letter:\n"
--"\n"
--" http://www.numericals.com/file[1-100:10].txt\n"
--" http://www.letters.com/file[a-z:2].txt\n"
--"\n"
--" If you specify URL without protocol:// prefix, curl will attempt to\n"
--" guess what protocol you might want. It will then default to HTTP but\n"
--" try other protocols based on often-used host name prefixes. For exam-\n"
--, stdout);
-- fputs(
--" ple, for host names starting with \"ftp.\" curl will assume you want to\n"
--" speak FTP.\n"
--"\n"
--" curl will do its best to use what you pass to it as a URL. It is not\n"
--" trying to validate it as a syntactically correct URL by any means but\n"
--" is instead very liberal with what it accepts.\n"
--"\n"
--" curl will attempt to re-use connections for multiple file transfers, so\n"
--" that getting many files from the same server will not do multiple con-\n"
--, stdout);
-- fputs(
--" nects / handshakes. This improves speed. Of course this is only done on\n"
--" files specified on a single command line and cannot be used between\n"
--" separate curl invokes.\n"
--"\n"
--"PROGRESS METER\n"
--" curl normally displays a progress meter during operations, indicating\n"
--" the amount of transferred data, transfer speeds and estimated time\n"
--" left, etc.\n"
--"\n"
--" curl displays this data to the terminal by default, so if you invoke\n"
--, stdout);
-- fputs(
--" curl to do an operation and it is about to write data to the terminal,\n"
--" it disables the progress meter as otherwise it would mess up the output\n"
--" mixing progress meter and response data.\n"
--"\n"
--" If you want a progress meter for HTTP POST or PUT requests, you need to\n"
--" redirect the response output to a file, using shell redirect (>), -o\n"
--" [file] or similar.\n"
--"\n"
--" It is not the same case for FTP upload as that operation does not spit\n"
--, stdout);
-- fputs(
--" out any response data to the terminal.\n"
--"\n"
--" If you prefer a progress \"bar\" instead of the regular meter, -# is your\n"
--" friend.\n"
--"OPTIONS\n"
--" Options start with one or two dashes. Many of the options require an\n"
--" addition value next to it.\n"
--"\n"
--" The short \"single-dash\" form of the options, -d for example, may be\n"
--" used with or without a space between it and its value, although a space\n"
--" is a recommended separator. The long \"double-dash\" form, --data for\n"
--, stdout);
-- fputs(
--" example, requires a space between it and its value.\n"
--"\n"
--" Short version options that don't need any additional values can be used\n"
--" immediately next to each other, like for example you can specify all\n"
--" the options -O, -L and -v at once as -OLv.\n"
--"\n"
--" In general, all boolean options are enabled with --option and yet again\n"
--" disabled with --no-option. That is, you use the exact same option name\n"
--, stdout);
-- fputs(
--" but prefix it with \"no-\". However, in this list we mostly only list and\n"
--" show the --option version of them. (This concept with --no options was\n"
--" added in 7.19.0. Previously most options were toggled on/off on\n"
--" repeated use of the same command line option.)\n"
--"\n"
--" -#, --progress-bar\n"
--" Make curl display progress as a simple progress bar instead of\n"
--" the standard, more informational, meter.\n"
--"\n"
--" -:, --next\n"
--, stdout);
-- fputs(
--" Tells curl to use a separate operation for the following URL and\n"
--" associated options. This allows you to send several URL\n"
--" requests, each with their own specific options, for example,\n"
--" such as different user names or custom requests for each. (Added\n"
--" in 7.36.0)\n"
--"\n"
--" -0, --http1.0\n"
--" (HTTP) Tells curl to use HTTP version 1.0 instead of using its\n"
--" internally preferred: HTTP 1.1.\n"
--"\n"
--, stdout);
-- fputs(
--" --http1.1\n"
--" (HTTP) Tells curl to use HTTP version 1.1. This is the internal\n"
--" default version. (Added in 7.33.0)\n"
--"\n"
--" --http2\n"
--" (HTTP) Tells curl to issue its requests using HTTP 2. This\n"
--" requires that the underlying libcurl was built to support it.\n"
--" (Added in 7.33.0)\n"
--"\n"
--" --no-npn\n"
--" Disable the NPN TLS extension. NPN is enabled by default if\n"
--, stdout);
-- fputs(
--" libcurl was built with an SSL library that supports NPN. NPN is\n"
--" used by a libcurl that supports HTTP 2 to negotiate HTTP 2 sup-\n"
--" port with the server during https sessions.\n"
--"\n"
--" (Added in 7.36.0)\n"
--"\n"
--" --no-alpn\n"
--" Disable the ALPN TLS extension. ALPN is enabled by default if\n"
--" libcurl was built with an SSL library that supports ALPN. ALPN\n"
--, stdout);
-- fputs(
--" is used by a libcurl that supports HTTP 2 to negotiate HTTP 2\n"
--" support with the server during https sessions.\n"
--"\n"
--" (Added in 7.36.0)\n"
--"\n"
--" -1, --tlsv1\n"
--" (SSL) Forces curl to use TLS version 1.x when negotiating with a\n"
--" remote TLS server. You can use options --tlsv1.0, --tlsv1.1,\n"
--" and --tlsv1.2 to control the TLS version more precisely (if the\n"
--" SSL backend in use supports such a level of control).\n"
--"\n"
--, stdout);
-- fputs(
--" -2, --sslv2\n"
--" (SSL) Forces curl to use SSL version 2 when negotiating with a\n"
--" remote SSL server.\n"
--"\n"
--" -3, --sslv3\n"
--" (SSL) Forces curl to use SSL version 3 when negotiating with a\n"
--" remote SSL server.\n"
--"\n"
--" -4, --ipv4\n"
--" If curl is capable of resolving an address to multiple IP ver-\n"
--" sions (which it is if it is IPv6-capable), this option tells\n"
--" curl to resolve names to IPv4 addresses only.\n"
--, stdout);
-- fputs(
--"\n"
--" -6, --ipv6\n"
--" If curl is capable of resolving an address to multiple IP ver-\n"
--" sions (which it is if it is IPv6-capable), this option tells\n"
--" curl to resolve names to IPv6 addresses only.\n"
--"\n"
--" -a, --append\n"
--" (FTP/SFTP) When used in an upload, this will tell curl to append\n"
--" to the target file instead of overwriting it. If the file\n"
--" doesn't exist, it will be created. Note that this flag is\n"
--, stdout);
-- fputs(
--" ignored by some SSH servers (including OpenSSH).\n"
--"\n"
--" -A, --user-agent <agent string>\n"
--" (HTTP) Specify the User-Agent string to send to the HTTP server.\n"
--" Some badly done CGIs fail if this field isn't set to\n"
--" \"Mozilla/4.0\". To encode blanks in the string, surround the\n"
--" string with single quote marks. This can also be set with the\n"
--" -H, --header option of course.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --anyauth\n"
--" (HTTP) Tells curl to figure out authentication method by itself,\n"
--" and use the most secure one the remote site claims to support.\n"
--" This is done by first doing a request and checking the response-\n"
--" headers, thus possibly inducing an extra network round-trip.\n"
--" This is used instead of setting a specific authentication\n"
--, stdout);
-- fputs(
--" method, which you can do with --basic, --digest, --ntlm, and\n"
--" --negotiate.\n"
--"\n"
--" Note that using --anyauth is not recommended if you do uploads\n"
--" from stdin, since it may require data to be sent twice and then\n"
--" the client must be able to rewind. If the need should arise when\n"
--" uploading from stdin, the upload operation will fail.\n"
--"\n"
--" -b, --cookie <name=data>\n"
--, stdout);
-- fputs(
--" (HTTP) Pass the data to the HTTP server as a cookie. It is sup-\n"
--" posedly the data previously received from the server in a \"Set-\n"
--" Cookie:\" line. The data should be in the format \"NAME1=VALUE1;\n"
--" NAME2=VALUE2\".\n"
--"\n"
--" If no '=' symbol is used in the line, it is treated as a file-\n"
--" name to use to read previously stored cookie lines from, which\n"
--, stdout);
-- fputs(
--" should be used in this session if they match. Using this method\n"
--" also activates the \"cookie parser\" which will make curl record\n"
--" incoming cookies too, which may be handy if you're using this in\n"
--" combination with the -L, --location option. The file format of\n"
--" the file to read cookies from should be plain HTTP headers or\n"
--" the Netscape/Mozilla cookie file format.\n"
--"\n"
--, stdout);
-- fputs(
--" NOTE that the file specified with -b, --cookie is only used as\n"
--" input. No cookies will be stored in the file. To store cookies,\n"
--" use the -c, --cookie-jar option or you could even save the HTTP\n"
--" headers to a file using -D, --dump-header!\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -B, --use-ascii\n"
--" (FTP/LDAP) Enable ASCII transfer. For FTP, this can also be\n"
--, stdout);
-- fputs(
--" enforced by using an URL that ends with \";type=A\". This option\n"
--" causes data sent to stdout to be in text mode for win32 systems.\n"
--"\n"
--" --basic\n"
--" (HTTP) Tells curl to use HTTP Basic authentication. This is the\n"
--" default and this option is usually pointless, unless you use it\n"
--" to override a previously set option that sets a different\n"
--" authentication method (such as --ntlm, --digest, or --negoti-\n"
--, stdout);
-- fputs(
--" ate).\n"
--"\n"
--" -c, --cookie-jar <file name>\n"
--" (HTTP) Specify to which file you want curl to write all cookies\n"
--" after a completed operation. Curl writes all cookies previously\n"
--" read from a specified file as well as all cookies received from\n"
--" remote server(s). If no cookies are known, no file will be writ-\n"
--" ten. The file will be written using the Netscape cookie file\n"
--, stdout);
-- fputs(
--" format. If you set the file name to a single dash, \"-\", the\n"
--" cookies will be written to stdout.\n"
--"\n"
--" This command line option will activate the cookie engine that\n"
--" makes curl record and use cookies. Another way to activate it is\n"
--" to use the -b, --cookie option.\n"
--"\n"
--" If the cookie jar can't be created or written to, the whole curl\n"
--" operation won't fail or even report an error clearly. Using -v\n"
--, stdout);
-- fputs(
--" will get a warning displayed, but that is the only visible feed-\n"
--" back you get about this possibly lethal situation.\n"
--"\n"
--" If this option is used several times, the last specified file\n"
--" name will be used.\n"
--"\n"
--" -C, --continue-at <offset>\n"
--" Continue/Resume a previous file transfer at the given offset.\n"
--" The given offset is the exact number of bytes that will be\n"
--, stdout);
-- fputs(
--" skipped, counting from the beginning of the source file before\n"
--" it is transferred to the destination. If used with uploads, the\n"
--" FTP server command SIZE will not be used by curl.\n"
--"\n"
--" Use \"-C -\" to tell curl to automatically find out where/how to\n"
--" resume the transfer. It then uses the given output/input files\n"
--" to figure that out.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--, stdout);
-- fputs(
--" --ciphers <list of ciphers>\n"
--" (SSL) Specifies which ciphers to use in the connection. The list\n"
--" of ciphers must specify valid ciphers. Read up on SSL cipher\n"
--" list details on this URL:\n"
--" http://www.openssl.org/docs/apps/ciphers.html\n"
--"\n"
--" NSS ciphers are done differently than OpenSSL and GnuTLS. The\n"
--" full list of NSS ciphers is in the NSSCipherSuite entry at this\n"
--, stdout);
-- fputs(
--" URL: http://git.fedora-\n"
--" hosted.org/cgit/mod_nss.git/plain/docs/mod_nss.html#Directives\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --compressed\n"
--" (HTTP) Request a compressed response using one of the algorithms\n"
--" curl supports, and save the uncompressed document. If this\n"
--" option is used and the server sends an unsupported encoding,\n"
--, stdout);
-- fputs(
--" curl will report an error.\n"
--"\n"
--" --connect-timeout <seconds>\n"
--" Maximum time in seconds that you allow the connection to the\n"
--" server to take. This only limits the connection phase, once\n"
--" curl has connected this option is of no more use. Since 7.32.0,\n"
--" this option accepts decimal values, but the actual timeout will\n"
--" decrease in accuracy as the specified timeout increases in deci-\n"
--, stdout);
-- fputs(
--" mal precision. See also the -m, --max-time option.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --create-dirs\n"
--" When used in conjunction with the -o option, curl will create\n"
--" the necessary local directory hierarchy as needed. This option\n"
--" creates the dirs mentioned with the -o option, nothing else. If\n"
--" the -o file name uses no dir or if the dirs it mentions already\n"
--, stdout);
-- fputs(
--" exist, no dir will be created.\n"
--"\n"
--" To create remote directories when using FTP or SFTP, try --ftp-\n"
--" create-dirs.\n"
--"\n"
--" --crlf (FTP) Convert LF to CRLF in upload. Useful for MVS (OS/390).\n"
--"\n"
--" --crlfile <file>\n"
--" (HTTPS/FTPS) Provide a file using PEM format with a Certificate\n"
--" Revocation List that may specify peer certificates that are to\n"
--" be considered revoked.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" (Added in 7.19.7)\n"
--" -d, --data <data>\n"
--" (HTTP) Sends the specified data in a POST request to the HTTP\n"
--" server, in the same way that a browser does when a user has\n"
--" filled in an HTML form and presses the submit button. This will\n"
--" cause curl to pass the data to the server using the content-type\n"
--, stdout);
-- fputs(
--" application/x-www-form-urlencoded. Compare to -F, --form.\n"
--"\n"
--" -d, --data is the same as --data-ascii. To post data purely\n"
--" binary, you should instead use the --data-binary option. To URL-\n"
--" encode the value of a form field you may use --data-urlencode.\n"
--"\n"
--" If any of these options is used more than once on the same com-\n"
--" mand line, the data pieces specified will be merged together\n"
--, stdout);
-- fputs(
--" with a separating &-symbol. Thus, using '-d name=daniel -d\n"
--" skill=lousy' would generate a post chunk that looks like\n"
--" 'name=daniel&skill=lousy'.\n"
--"\n"
--" If you start the data with the letter @, the rest should be a\n"
--" file name to read the data from, or - if you want curl to read\n"
--" the data from stdin. Multiple files can also be specified. Post-\n"
--, stdout);
-- fputs(
--" ing data from a file named 'foobar' would thus be done with\n"
--" --data @foobar. When --data is told to read from a file like\n"
--" that, carriage returns and newlines will be stripped out.\n"
--"\n"
--" -D, --dump-header <file>\n"
--" Write the protocol headers to the specified file.\n"
--"\n"
--" This option is handy to use when you want to store the headers\n"
--" that an HTTP site sends to you. Cookies from the headers could\n"
--, stdout);
-- fputs(
--" then be read in a second curl invocation by using the -b,\n"
--" --cookie option! The -c, --cookie-jar option is however a better\n"
--" way to store cookies.\n"
--"\n"
--" When used in FTP, the FTP server response lines are considered\n"
--" being \"headers\" and thus are saved there.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --data-ascii <data>\n"
--" See -d, --data.\n"
--"\n"
--" --data-binary <data>\n"
--, stdout);
-- fputs(
--" (HTTP) This posts data exactly as specified with no extra pro-\n"
--" cessing whatsoever.\n"
--"\n"
--" If you start the data with the letter @, the rest should be a\n"
--" filename. Data is posted in a similar manner as --data-ascii\n"
--" does, except that newlines and carriage returns are preserved\n"
--" and conversions are never done.\n"
--"\n"
--" If this option is used several times, the ones following the\n"
--, stdout);
-- fputs(
--" first will append data as described in -d, --data.\n"
--"\n"
--" --data-urlencode <data>\n"
--" (HTTP) This posts data, similar to the other --data options with\n"
--" the exception that this performs URL-encoding. (Added in 7.18.0)\n"
--" To be CGI-compliant, the <data> part should begin with a name\n"
--" followed by a separator and a content specification. The <data>\n"
--" part can be passed to curl using one of the following syntaxes:\n"
--"\n"
--, stdout);
-- fputs(
--" content\n"
--" This will make curl URL-encode the content and pass that\n"
--" on. Just be careful so that the content doesn't contain\n"
--" any = or @ symbols, as that will then make the syntax\n"
--" match one of the other cases below!\n"
--"\n"
--" =content\n"
--" This will make curl URL-encode the content and pass that\n"
--" on. The preceding = symbol is not included in the data.\n"
--"\n"
--, stdout);
-- fputs(
--" name=content\n"
--" This will make curl URL-encode the content part and pass\n"
--" that on. Note that the name part is expected to be URL-\n"
--" encoded already.\n"
--"\n"
--" @filename\n"
--" This will make curl load data from the given file\n"
--" (including any newlines), URL-encode that data and pass\n"
--" it on in the POST.\n"
--"\n"
--" name@filename\n"
--, stdout);
-- fputs(
--" This will make curl load data from the given file\n"
--" (including any newlines), URL-encode that data and pass\n"
--" it on in the POST. The name part gets an equal sign\n"
--" appended, resulting in name=urlencoded-file-content. Note\n"
--" that the name is expected to be URL-encoded already.\n"
--"\n"
--" --delegation LEVEL\n"
--" Set LEVEL to tell the server what it is allowed to delegate when\n"
--, stdout);
-- fputs(
--" it comes to user credentials. Used with GSS/kerberos.\n"
--"\n"
--" none Don't allow any delegation.\n"
--"\n"
--" policy Delegates if and only if the OK-AS-DELEGATE flag is set\n"
--" in the Kerberos service ticket, which is a matter of\n"
--" realm policy.\n"
--"\n"
--" always Unconditionally allow the server to delegate.\n"
--"\n"
--" --digest\n"
--" (HTTP) Enables HTTP Digest authentication. This is an authenti-\n"
--, stdout);
-- fputs(
--" cation scheme that prevents the password from being sent over\n"
--" the wire in clear text. Use this in combination with the normal\n"
--" -u, --user option to set user name and password. See also\n"
--" --ntlm, --negotiate and --anyauth for related options.\n"
--"\n"
--" If this option is used several times, only the first one is\n"
--" used.\n"
--"\n"
--" --disable-eprt\n"
--, stdout);
-- fputs(
--" (FTP) Tell curl to disable the use of the EPRT and LPRT commands\n"
--" when doing active FTP transfers. Curl will normally always first\n"
--" attempt to use EPRT, then LPRT before using PORT, but with this\n"
--" option, it will use PORT right away. EPRT and LPRT are exten-\n"
--" sions to the original FTP protocol, and may not work on all\n"
--" servers, but they enable more functionality in a better way than\n"
--, stdout);
-- fputs(
--" the traditional PORT command.\n"
--"\n"
--" --eprt can be used to explicitly enable EPRT again and --no-eprt\n"
--" is an alias for --disable-eprt.\n"
--"\n"
--" Disabling EPRT only changes the active behavior. If you want to\n"
--" switch to passive mode you need to not use -P, --ftp-port or\n"
--" force it with --ftp-pasv.\n"
--"\n"
--" --disable-epsv\n"
--" (FTP) Tell curl to disable the use of the EPSV command when\n"
--, stdout);
-- fputs(
--" doing passive FTP transfers. Curl will normally always first\n"
--" attempt to use EPSV before PASV, but with this option, it will\n"
--" not try using EPSV.\n"
--"\n"
--" --epsv can be used to explicitly enable EPSV again and --no-epsv\n"
--" is an alias for --disable-epsv.\n"
--"\n"
--" Disabling EPSV only changes the passive behavior. If you want to\n"
--" switch to active mode you need to use -P, --ftp-port.\n"
--"\n"
--, stdout);
-- fputs(
--" --dns-interface <interface>\n"
--" Tell curl to send outgoing DNS requests through <interface>.\n"
--" This option is a counterpart to --interface (which does not\n"
--" affect DNS). The supplied string must be an interface name (not\n"
--" an address).\n"
--"\n"
--" This option requires that libcurl was built with a resolver\n"
--" backend that supports this operation. The c-ares backend is the\n"
--, stdout);
-- fputs(
--" only such one. (Added in 7.33.0)\n"
--"\n"
--" --dns-ipv4-addr <ip-address>\n"
--" Tell curl to bind to <ip-address> when making IPv4 DNS requests,\n"
--" so that the DNS requests originate from this address. The argu-\n"
--" ment should be a single IPv4 address.\n"
--"\n"
--" This option requires that libcurl was built with a resolver\n"
--" backend that supports this operation. The c-ares backend is the\n"
--, stdout);
-- fputs(
--" only such one. (Added in 7.33.0)\n"
--"\n"
--" --dns-ipv6-addr <ip-address>\n"
--" Tell curl to bind to <ip-address> when making IPv6 DNS requests,\n"
--" so that the DNS requests originate from this address. The argu-\n"
--" ment should be a single IPv6 address.\n"
--"\n"
--" This option requires that libcurl was built with a resolver\n"
--" backend that supports this operation. The c-ares backend is the\n"
--, stdout);
-- fputs(
--" only such one. (Added in 7.33.0)\n"
--"\n"
--" --dns-servers <ip-address,ip-address>\n"
--" Set the list of DNS servers to be used instead of the system\n"
--" default. The list of IP addresses should be separated with com-\n"
--" mas. Port numbers may also optionally be given as :<port-number>\n"
--" after each IP address.\n"
--"\n"
--" This option requires that libcurl was built with a resolver\n"
--, stdout);
-- fputs(
--" backend that supports this operation. The c-ares backend is the\n"
--" only such one. (Added in 7.33.0)\n"
--"\n"
--" -e, --referer <URL>\n"
--" (HTTP) Sends the \"Referrer Page\" information to the HTTP server.\n"
--" This can also be set with the -H, --header flag of course. When\n"
--" used with -L, --location you can append \";auto\" to the --referer\n"
--" URL to make curl automatically set the previous URL when it fol-\n"
--, stdout);
-- fputs(
--" lows a Location: header. The \";auto\" string can be used alone,\n"
--" even if you don't set an initial --referer.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -E, --cert <certificate[:password]>\n"
--" (SSL) Tells curl to use the specified client certificate file\n"
--" when getting a file with HTTPS, FTPS or another SSL-based proto-\n"
--" col. The certificate must be in PKCS#12 format if using Secure\n"
--, stdout);
-- fputs(
--" Transport, or PEM format if using any other engine. If the\n"
--" optional password isn't specified, it will be queried for on the\n"
--" terminal. Note that this option assumes a \"certificate\" file\n"
--" that is the private key and the private certificate concate-\n"
--" nated! See --cert and --key to specify them independently.\n"
--"\n"
--" If curl is built against the NSS SSL library then this option\n"
--, stdout);
-- fputs(
--" can tell curl the nickname of the certificate to use within the\n"
--" NSS database defined by the environment variable SSL_DIR (or by\n"
--" default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (lib-\n"
--" nsspem.so) is available then PEM files may be loaded. If you\n"
--" want to use a file from the current directory, please precede it\n"
--" with \"./\" prefix, in order to avoid confusion with a nickname.\n"
--, stdout);
-- fputs(
--" If the nickname contains \":\", it needs to be preceded by \"\\\" so\n"
--" that it is not recognized as password delimiter. If the nick-\n"
--" name contains \"\\\", it needs to be escaped as \"\\\\\" so that it is\n"
--" not recognized as an escape character.\n"
--"\n"
--" (iOS and Mac OS X only) If curl is built against Secure Trans-\n"
--" port, then the certificate string can either be the name of a\n"
--, stdout);
-- fputs(
--" certificate/private key in the system or user keychain, or the\n"
--" path to a PKCS#12-encoded certificate and private key. If you\n"
--" want to use a file from the current directory, please precede it\n"
--" with \"./\" prefix, in order to avoid confusion with a nickname.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --engine <name>\n"
--" Select the OpenSSL crypto engine to use for cipher operations.\n"
--, stdout);
-- fputs(
--" Use --engine list to print a list of build-time supported\n"
--" engines. Note that not all (or none) of the engines may be\n"
--" available at run-time.\n"
--"\n"
--" --environment\n"
--" (RISC OS ONLY) Sets a range of environment variables, using the\n"
--" names the -w option supports, to allow easier extraction of use-\n"
--" ful information after having run curl.\n"
--"\n"
--" --egd-file <file>\n"
--, stdout);
-- fputs(
--" (SSL) Specify the path name to the Entropy Gathering Daemon\n"
--" socket. The socket is used to seed the random engine for SSL\n"
--" connections. See also the --random-file option.\n"
--"\n"
--" --cert-type <type>\n"
--" (SSL) Tells curl what certificate type the provided certificate\n"
--" is in. PEM, DER and ENG are recognized types. If not specified,\n"
--" PEM is assumed.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --cacert <CA certificate>\n"
--" (SSL) Tells curl to use the specified certificate file to verify\n"
--" the peer. The file may contain multiple CA certificates. The\n"
--" certificate(s) must be in PEM format. Normally curl is built to\n"
--" use a default file for this, so this option is typically used to\n"
--" alter that default file.\n"
--"\n"
--, stdout);
-- fputs(
--" curl recognizes the environment variable named 'CURL_CA_BUNDLE'\n"
--" if it is set, and uses the given path as a path to a CA cert\n"
--" bundle. This option overrides that variable.\n"
--"\n"
--" The windows version of curl will automatically look for a CA\n"
--" certs file named 'curl-ca-bundle.crt', either in the same direc-\n"
--" tory as curl.exe, or in the Current Working Directory, or in any\n"
--" folder along your PATH.\n"
--"\n"
--, stdout);
-- fputs(
--" If curl is built against the NSS SSL library, the NSS PEM\n"
--" PKCS#11 module (libnsspem.so) needs to be available for this\n"
--" option to work properly.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --capath <CA certificate directory>\n"
--" (SSL) Tells curl to use the specified certificate directory to\n"
--" verify the peer. Multiple paths can be provided by separating\n"
--, stdout);
-- fputs(
--" them with \":\" (e.g. \"path1:path2:path3\"). The certificates must\n"
--" be in PEM format, and if curl is built against OpenSSL, the\n"
--" directory must have been processed using the c_rehash utility\n"
--" supplied with OpenSSL. Using --capath can allow OpenSSL-powered\n"
--" curl to make SSL-connections much more efficiently than using\n"
--" --cacert if the --cacert file contains many CA certificates.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is set, the default capath value will be ignored,\n"
--" and if it is used several times, the last one will be used.\n"
--"\n"
--" -f, --fail\n"
--" (HTTP) Fail silently (no output at all) on server errors. This\n"
--" is mostly done to better enable scripts etc to better deal with\n"
--" failed attempts. In normal cases when an HTTP server fails to\n"
--" deliver a document, it returns an HTML document stating so\n"
--, stdout);
-- fputs(
--" (which often also describes why and more). This flag will pre-\n"
--" vent curl from outputting that and return error 22.\n"
--"\n"
--" This method is not fail-safe and there are occasions where non-\n"
--" successful response codes will slip through, especially when\n"
--" authentication is involved (response codes 401 and 407).\n"
--"\n"
--" -F, --form <name=content>\n"
--" (HTTP) This lets curl emulate a filled-in form in which a user\n"
--, stdout);
-- fputs(
--" has pressed the submit button. This causes curl to POST data\n"
--" using the Content-Type multipart/form-data according to RFC\n"
--" 2388. This enables uploading of binary files etc. To force the\n"
--" 'content' part to be a file, prefix the file name with an @\n"
--" sign. To just get the content part from a file, prefix the file\n"
--" name with the symbol <. The difference between @ and < is then\n"
--, stdout);
-- fputs(
--" that @ makes a file get attached in the post as a file upload,\n"
--" while the < makes a text field and just get the contents for\n"
--" that text field from a file.\n"
--"\n"
--" Example, to send your password file to the server, where 'pass-\n"
--" word' is the name of the form-field to which /etc/passwd will be\n"
--" the input:\n"
--"\n"
--" curl -F password=@/etc/passwd www.mypasswords.com\n"
--"\n"
--, stdout);
-- fputs(
--" To read content from stdin instead of a file, use - as the file-\n"
--" name. This goes for both @ and < constructs.\n"
--"\n"
--" You can also tell curl what Content-Type to use by using\n"
--" 'type=', in a manner similar to:\n"
--"\n"
--" curl -F \"web=@index.html;type=text/html\" url.com\n"
--"\n"
--" or\n"
--"\n"
--" curl -F \"name=daniel;type=text/foo\" url.com\n"
--"\n"
--" You can also explicitly change the name field of a file upload\n"
--, stdout);
-- fputs(
--" part by setting filename=, like this:\n"
--"\n"
--" curl -F \"file=@localfile;filename=nameinpost\" url.com\n"
--"\n"
--" If filename/path contains ',' or ';', it must be quoted by dou-\n"
--" ble-quotes like:\n"
--"\n"
--" curl -F \"file=@\\\"localfile\\\";filename=\\\"nameinpost\\\"\" url.com\n"
--"\n"
--" or\n"
--"\n"
--" curl -F 'file=@\"localfile\";filename=\"nameinpost\"' url.com\n"
--"\n"
--" Note that if a filename/path is quoted by double-quotes, any\n"
--, stdout);
-- fputs(
--" double-quote or backslash within the filename must be escaped by\n"
--" backslash.\n"
--"\n"
--" See further examples and details in the MANUAL.\n"
--"\n"
--" This option can be used multiple times.\n"
--"\n"
--" --ftp-account [data]\n"
--" (FTP) When an FTP server asks for \"account data\" after user name\n"
--" and password has been provided, this data is sent off using the\n"
--" ACCT command. (Added in 7.13.0)\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --ftp-alternative-to-user <command>\n"
--" (FTP) If authenticating with the USER and PASS commands fails,\n"
--" send this command. When connecting to Tumbleweed's Secure\n"
--" Transport server over FTPS using a client certificate, using\n"
--" \"SITE AUTH\" will tell the server to retrieve the username from\n"
--" the certificate. (Added in 7.15.5)\n"
--"\n"
--, stdout);
-- fputs(
--" --ftp-create-dirs\n"
--" (FTP/SFTP) When an FTP or SFTP URL/operation uses a path that\n"
--" doesn't currently exist on the server, the standard behavior of\n"
--" curl is to fail. Using this option, curl will instead attempt to\n"
--" create missing directories.\n"
--"\n"
--" --ftp-method [method]\n"
--" (FTP) Control what method curl should use to reach a file on an\n"
--" FTP(S) server. The method argument should be one of the follow-\n"
--, stdout);
-- fputs(
--" ing alternatives:\n"
--"\n"
--" multicwd\n"
--" curl does a single CWD operation for each path part in\n"
--" the given URL. For deep hierarchies this means very many\n"
--" commands. This is how RFC 1738 says it should be done.\n"
--" This is the default but the slowest behavior.\n"
--"\n"
--" nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR\n"
--, stdout);
-- fputs(
--" etc and give a full path to the server for all these com-\n"
--" mands. This is the fastest behavior.\n"
--"\n"
--" singlecwd\n"
--" curl does one CWD with the full target directory and then\n"
--" operates on the file \"normally\" (like in the multicwd\n"
--" case). This is somewhat more standards compliant than\n"
--" 'nocwd' but without the full penalty of 'multicwd'.\n"
--" (Added in 7.15.1)\n"
--"\n"
--, stdout);
-- fputs(
--" --ftp-pasv\n"
--" (FTP) Use passive mode for the data connection. Passive is the\n"
--" internal default behavior, but using this option can be used to\n"
--" override a previous -P/-ftp-port option. (Added in 7.11.0)\n"
--"\n"
--" If this option is used several times, only the first one is\n"
--" used. Undoing an enforced passive really isn't doable but you\n"
--" must then instead enforce the correct -P, --ftp-port again.\n"
--"\n"
--, stdout);
-- fputs(
--" Passive mode means that curl will try the EPSV command first and\n"
--" then PASV, unless --disable-epsv is used.\n"
--"\n"
--" --ftp-skip-pasv-ip\n"
--" (FTP) Tell curl to not use the IP address the server suggests in\n"
--" its response to curl's PASV command when curl connects the data\n"
--" connection. Instead curl will re-use the same IP address it\n"
--" already uses for the control connection. (Added in 7.14.2)\n"
--"\n"
--, stdout);
-- fputs(
--" This option has no effect if PORT, EPRT or EPSV is used instead\n"
--" of PASV.\n"
--"\n"
--" --ftp-pret\n"
--" (FTP) Tell curl to send a PRET command before PASV (and EPSV).\n"
--" Certain FTP servers, mainly drftpd, require this non-standard\n"
--" command for directory listings as well as up and downloads in\n"
--" PASV mode. (Added in 7.20.x)\n"
--"\n"
--" --ftp-ssl-ccc\n"
--, stdout);
-- fputs(
--" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS\n"
--" layer after authenticating. The rest of the control channel com-\n"
--" munication will be unencrypted. This allows NAT routers to fol-\n"
--" low the FTP transaction. The default mode is passive. See --ftp-\n"
--" ssl-ccc-mode for other modes. (Added in 7.16.1)\n"
--"\n"
--" --ftp-ssl-ccc-mode [active/passive]\n"
--, stdout);
-- fputs(
--" (FTP) Use CCC (Clear Command Channel) Sets the CCC mode. The\n"
--" passive mode will not initiate the shutdown, but instead wait\n"
--" for the server to do it, and will not reply to the shutdown from\n"
--" the server. The active mode initiates the shutdown and waits for\n"
--" a reply from the server. (Added in 7.16.2)\n"
--"\n"
--" --ftp-ssl-control\n"
--" (FTP) Require SSL/TLS for the FTP login, clear for transfer.\n"
--, stdout);
-- fputs(
--" Allows secure authentication, but non-encrypted data transfers\n"
--" for efficiency. Fails the transfer if the server doesn't sup-\n"
--" port SSL/TLS. (Added in 7.16.0) that can still be used but will\n"
--" be removed in a future version.\n"
--"\n"
--" --form-string <name=string>\n"
--" (HTTP) Similar to --form except that the value string for the\n"
--" named parameter is used literally. Leading '@' and '<' charac-\n"
--, stdout);
-- fputs(
--" ters, and the ';type=' string in the value have no special mean-\n"
--" ing. Use this in preference to --form if there's any possibility\n"
--" that the string value may accidentally trigger the '@' or '<'\n"
--" features of --form.\n"
--"\n"
--" -g, --globoff\n"
--" This option switches off the \"URL globbing parser\". When you set\n"
--" this option, you can specify URLs that contain the letters {}[]\n"
--, stdout);
-- fputs(
--" without having them being interpreted by curl itself. Note that\n"
--" these letters are not normal legal URL contents but they should\n"
--" be encoded according to the URI standard.\n"
--"\n"
--" -G, --get\n"
--" When used, this option will make all data specified with -d,\n"
--" --data, --data-binary or --data-urlencode to be used in an HTTP\n"
--" GET request instead of the POST request that otherwise would be\n"
--, stdout);
-- fputs(
--" used. The data will be appended to the URL with a '?' separator.\n"
--" If used in combination with -I, the POST data will instead be\n"
--" appended to the URL with a HEAD request.\n"
--"\n"
--" If this option is used several times, only the first one is\n"
--" used. This is because undoing a GET doesn't make sense, but you\n"
--" should then instead enforce the alternative method you prefer.\n"
--"\n"
--" -H, --header <header>\n"
--, stdout);
-- fputs(
--" (HTTP) Extra header to use when getting a web page. You may\n"
--" specify any number of extra headers. Note that if you should add\n"
--" a custom header that has the same name as one of the internal\n"
--" ones curl would use, your externally set header will be used\n"
--" instead of the internal one. This allows you to make even trick-\n"
--" ier stuff than curl would normally do. You should not replace\n"
--, stdout);
-- fputs(
--" internally set headers without knowing perfectly well what\n"
--" you're doing. Remove an internal header by giving a replacement\n"
--" without content on the right side of the colon, as in: -H\n"
--" \"Host:\". If you send the custom header with no-value then its\n"
--" header must be terminated with a semicolon, such as -H \"X-Cus-\n"
--" tom-Header;\" to send \"X-Custom-Header:\".\n"
--"\n"
--, stdout);
-- fputs(
--" curl will make sure that each header you add/replace is sent\n"
--" with the proper end-of-line marker, you should thus not add that\n"
--" as a part of the header content: do not add newlines or carriage\n"
--" returns, they will only mess things up for you.\n"
--"\n"
--" See also the -A, --user-agent and -e, --referer options.\n"
--"\n"
--" This option can be used multiple times to add/replace/remove\n"
--" multiple headers.\n"
--"\n"
--, stdout);
-- fputs(
--" --hostpubmd5 <md5>\n"
--" (SCP/SFTP) Pass a string containing 32 hexadecimal digits. The\n"
--" string should be the 128 bit MD5 checksum of the remote host's\n"
--" public key, curl will refuse the connection with the host unless\n"
--" the md5sums match. (Added in 7.17.1)\n"
--"\n"
--" --ignore-content-length\n"
--" (HTTP) Ignore the Content-Length header. This is particularly\n"
--, stdout);
-- fputs(
--" useful for servers running Apache 1.x, which will report incor-\n"
--" rect Content-Length for files larger than 2 gigabytes.\n"
--"\n"
--" -i, --include\n"
--" (HTTP) Include the HTTP-header in the output. The HTTP-header\n"
--" includes things like server-name, date of the document, HTTP-\n"
--" version and more...\n"
--"\n"
--" -I, --head\n"
--" (HTTP/FTP/FILE) Fetch the HTTP-header only! HTTP-servers feature\n"
--, stdout);
-- fputs(
--" the command HEAD which this uses to get nothing but the header\n"
--" of a document. When used on an FTP or FILE file, curl displays\n"
--" the file size and last modification time only.\n"
--"\n"
--" --interface <name>\n"
--" Perform an operation using a specified interface. You can enter\n"
--" interface name, IP address or host name. An example could look\n"
--" like:\n"
--"\n"
--" curl --interface eth0:1 http://www.netscape.com/\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -j, --junk-session-cookies\n"
--" (HTTP) When curl is told to read cookies from a given file, this\n"
--" option will make it discard all \"session cookies\". This will\n"
--" basically have the same effect as if a new session is started.\n"
--" Typical browsers always discard session cookies when they're\n"
--" closed down.\n"
--"\n"
--" -J, --remote-header-name\n"
--, stdout);
-- fputs(
--" (HTTP) This option tells the -O, --remote-name option to use the\n"
--" server-specified Content-Disposition filename instead of\n"
--" extracting a filename from the URL.\n"
--"\n"
--" There's no attempt to decode %-sequences (yet) in the provided\n"
--" file name, so this option may provide you with rather unexpected\n"
--" file names.\n"
--"\n"
--" -k, --insecure\n"
--" (SSL) This option explicitly allows curl to perform \"insecure\"\n"
--, stdout);
-- fputs(
--" SSL connections and transfers. All SSL connections are attempted\n"
--" to be made secure by using the CA certificate bundle installed\n"
--" by default. This makes all connections considered \"insecure\"\n"
--" fail unless -k, --insecure is used.\n"
--"\n"
--" See this online resource for further details:\n"
--" http://curl.haxx.se/docs/sslcerts.html\n"
--"\n"
--" -K, --config <config file>\n"
--, stdout);
-- fputs(
--" Specify which config file to read curl arguments from. The con-\n"
--" fig file is a text file in which command line arguments can be\n"
--" written which then will be used as if they were written on the\n"
--" actual command line.\n"
--"\n"
--" Options and their parameters must be specified on the same con-\n"
--" fig file line, separated by whitespace, colon, or the equals\n"
--, stdout);
-- fputs(
--" sign. Long option names can optionally be given in the config\n"
--" file without the initial double dashes and if so, the colon or\n"
--" equals characters can be used as separators. If the option is\n"
--" specified with one or two dashes, there can be no colon or\n"
--" equals character between the option and its parameter.\n"
--"\n"
--" If the parameter is to contain whitespace, the parameter must be\n"
--, stdout);
-- fputs(
--" enclosed within quotes. Within double quotes, the following\n"
--" escape sequences are available: \\\\, \\\", \\t, \\n, \\r and \\v. A\n"
--" backslash preceding any other letter is ignored. If the first\n"
--" column of a config line is a '#' character, the rest of the line\n"
--" will be treated as a comment. Only write one option per physical\n"
--" line in the config file.\n"
--"\n"
--, stdout);
-- fputs(
--" Specify the filename to -K, --config as '-' to make curl read\n"
--" the file from stdin.\n"
--"\n"
--" Note that to be able to specify a URL in the config file, you\n"
--" need to specify it using the --url option, and not by simply\n"
--" writing the URL on its own line. So, it could look similar to\n"
--" this:\n"
--"\n"
--" url = \"http://curl.haxx.se/docs/\"\n"
--"\n"
--, stdout);
-- fputs(
--" When curl is invoked, it always (unless -q is used) checks for a\n"
--" default config file and uses it if found. The default config\n"
--" file is checked for in the following places in this order:\n"
--"\n"
--" 1) curl tries to find the \"home dir\": It first checks for the\n"
--" CURL_HOME and then the HOME environment variables. Failing that,\n"
--" it uses getpwuid() on UNIX-like systems (which returns the home\n"
--, stdout);
-- fputs(
--" dir given the current user in your system). On Windows, it then\n"
--" checks for the APPDATA variable, or as a last resort the '%USER-\n"
--" PROFILE%\\Application Data'.\n"
--"\n"
--" 2) On windows, if there is no _curlrc file in the home dir, it\n"
--" checks for one in the same dir the curl executable is placed. On\n"
--" UNIX-like systems, it will simply try to load .curlrc from the\n"
--" determined home dir.\n"
--"\n"
--, stdout);
-- fputs(
--" # --- Example file ---\n"
--" # this is a comment\n"
--" url = \"curl.haxx.se\"\n"
--" output = \"curlhere.html\"\n"
--" user-agent = \"superagent/1.0\"\n"
--"\n"
--" # and fetch another URL too\n"
--" url = \"curl.haxx.se/docs/manpage.html\"\n"
--" -O\n"
--" referer = \"http://nowhereatall.com/\"\n"
--" # --- End of example file ---\n"
--"\n"
--" This option can be used multiple times to load multiple config\n"
--" files.\n"
--"\n"
--, stdout);
-- fputs(
--" --keepalive-time <seconds>\n"
--" This option sets the time a connection needs to remain idle\n"
--" before sending keepalive probes and the time between individual\n"
--" keepalive probes. It is currently effective on operating systems\n"
--" offering the TCP_KEEPIDLE and TCP_KEEPINTVL socket options\n"
--" (meaning Linux, recent AIX, HP-UX and more). This option has no\n"
--" effect if --no-keepalive is used. (Added in 7.18.0)\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--" If unspecified, the option defaults to 60 seconds.\n"
--"\n"
--" --key <key>\n"
--" (SSL/SSH) Private key file name. Allows you to provide your pri-\n"
--" vate key in this separate file.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --key-type <type>\n"
--" (SSL) Private key file type. Specify which type your --key pro-\n"
--, stdout);
-- fputs(
--" vided private key is. DER, PEM, and ENG are supported. If not\n"
--" specified, PEM is assumed.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --krb <level>\n"
--" (FTP) Enable Kerberos authentication and use. The level must be\n"
--" entered and should be one of 'clear', 'safe', 'confidential', or\n"
--" 'private'. Should you use a level that is not one of these,\n"
--, stdout);
-- fputs(
--" 'private' will instead be used.\n"
--"\n"
--" This option requires a library built with kerberos4 or GSSAPI\n"
--" (GSS-Negotiate) support. This is not very common. Use -V, --ver-\n"
--" sion to see if your curl supports it.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -l, --list-only\n"
--" (FTP) When listing an FTP directory, this switch forces a name-\n"
--, stdout);
-- fputs(
--" only view. This is especially useful if the user wants to\n"
--" machine-parse the contents of an FTP directory since the normal\n"
--" directory view doesn't use a standard look or format. When used\n"
--" like this, the option causes a NLST command to be sent to the\n"
--" server instead of LIST.\n"
--"\n"
--" Note: Some FTP servers list only files in their response to\n"
--, stdout);
-- fputs(
--" NLST; they do not include sub-directories and symbolic links.\n"
--"\n"
--" (POP3) When retrieving a specific email from POP3, this switch\n"
--" forces a LIST command to be performed instead of RETR. This is\n"
--" particularly useful if the user wants to see if a specific mes-\n"
--" sage id exists on the server and what size it is.\n"
--"\n"
--" Note: When combined with -X, --request <command>, this option\n"
--, stdout);
-- fputs(
--" can be used to send an UIDL command instead, so the user may use\n"
--" the email's unique identifier rather than it's message id to\n"
--" make the request. (Added in 7.21.5)\n"
--"\n"
--" -L, --location\n"
--" (HTTP/HTTPS) If the server reports that the requested page has\n"
--" moved to a different location (indicated with a Location: header\n"
--" and a 3XX response code), this option will make curl redo the\n"
--, stdout);
-- fputs(
--" request on the new place. If used together with -i, --include or\n"
--" -I, --head, headers from all requested pages will be shown. When\n"
--" authentication is used, curl only sends its credentials to the\n"
--" initial host. If a redirect takes curl to a different host, it\n"
--" won't be able to intercept the user+password. See also --loca-\n"
--" tion-trusted on how to change this. You can limit the amount of\n"
--, stdout);
-- fputs(
--" redirects to follow by using the --max-redirs option.\n"
--"\n"
--" When curl follows a redirect and the request is not a plain GET\n"
--" (for example POST or PUT), it will do the following request with\n"
--" a GET if the HTTP response was 301, 302, or 303. If the response\n"
--" code was any other 3xx code, curl will re-send the following\n"
--" request using the same unmodified method.\n"
--"\n"
--" --libcurl <file>\n"
--, stdout);
-- fputs(
--" Append this option to any ordinary curl command line, and you\n"
--" will get a libcurl-using C source code written to the file that\n"
--" does the equivalent of what your command-line operation does!\n"
--"\n"
--" If this option is used several times, the last given file name\n"
--" will be used. (Added in 7.16.1)\n"
--"\n"
--" --limit-rate <speed>\n"
--" Specify the maximum transfer rate you want curl to use. This\n"
--, stdout);
-- fputs(
--" feature is useful if you have a limited pipe and you'd like your\n"
--" transfer not to use your entire bandwidth.\n"
--"\n"
--" The given speed is measured in bytes/second, unless a suffix is\n"
--" appended. Appending 'k' or 'K' will count the number as kilo-\n"
--" bytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it\n"
--" gigabytes. Examples: 200K, 3m and 1G.\n"
--"\n"
--, stdout);
-- fputs(
--" The given rate is the average speed counted during the entire\n"
--" transfer. It means that curl might use higher transfer speeds in\n"
--" short bursts, but over time it uses no more than the given rate.\n"
--" If you also use the -Y, --speed-limit option, that option will\n"
--" take precedence and might cripple the rate-limiting slightly, to\n"
--" help keeping the speed-limit logic working.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --local-port <num>[-num]\n"
--" Set a preferred number or range of local port numbers to use for\n"
--" the connection(s). Note that port numbers by nature are a\n"
--" scarce resource that will be busy at times so setting this range\n"
--" to something too narrow might cause unnecessary connection setup\n"
--" failures. (Added in 7.15.2)\n"
--"\n"
--" --location-trusted\n"
--, stdout);
-- fputs(
--" (HTTP/HTTPS) Like -L, --location, but will allow sending the\n"
--" name + password to all hosts that the site may redirect to. This\n"
--" may or may not introduce a security breach if the site redirects\n"
--" you to a site to which you'll send your authentication info\n"
--" (which is plaintext in the case of HTTP Basic authentication).\n"
--"\n"
--" -m, --max-time <seconds>\n"
--, stdout);
-- fputs(
--" Maximum time in seconds that you allow the whole operation to\n"
--" take. This is useful for preventing your batch jobs from hang-\n"
--" ing for hours due to slow networks or links going down. Since\n"
--" 7.32.0, this option accepts decimal values, but the actual time-\n"
--" out will decrease in accuracy as the specified timeout increases\n"
--" in decimal precision. See also the --connect-timeout option.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --mail-auth <address>\n"
--" (SMTP) Specify a single address. This will be used to specify\n"
--" the authentication address (identity) of a submitted message\n"
--" that is being relayed to another server.\n"
--"\n"
--" (Added in 7.25.0)\n"
--"\n"
--" --mail-from <address>\n"
--" (SMTP) Specify a single address that the given mail should get\n"
--" sent from.\n"
--"\n"
--, stdout);
-- fputs(
--" (Added in 7.20.0)\n"
--"\n"
--" --max-filesize <bytes>\n"
--" Specify the maximum size (in bytes) of a file to download. If\n"
--" the file requested is larger than this value, the transfer will\n"
--" not start and curl will return with exit code 63.\n"
--"\n"
--" NOTE: The file size is not always known prior to download, and\n"
--" for such files this option has no effect even if the file trans-\n"
--, stdout);
-- fputs(
--" fer ends up being larger than this given limit. This concerns\n"
--" both FTP and HTTP transfers.\n"
--"\n"
--" --mail-rcpt <address>\n"
--" (SMTP) Specify a single address, user name or mailing list name.\n"
--" When performing a mail transfer, the recipient should specify a\n"
--" valid email address to send the mail to. (Added in 7.20.0)\n"
--"\n"
--" When performing an address verification (VRFY command), the\n"
--, stdout);
-- fputs(
--" recipient should be specified as the user name or user name and\n"
--" domain (as per Section 3.5 of RFC5321). (Added in 7.34.0)\n"
--"\n"
--" When performing a mailing list expand (EXPN command), the recip-\n"
--" ient should be specified using the mailing list name, such as\n"
--" \"Friends\" or \"London-Office\". (Added in 7.34.0)\n"
--"\n"
--" --max-redirs <num>\n"
--" Set maximum number of redirection-followings allowed. If -L,\n"
--, stdout);
-- fputs(
--" --location is used, this option can be used to prevent curl from\n"
--" following redirections \"in absurdum\". By default, the limit is\n"
--" set to 50 redirections. Set this option to -1 to make it limit-\n"
--" less.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --metalink\n"
--" This option can tell curl to parse and process a given URI as\n"
--, stdout);
-- fputs(
--" Metalink file (both version 3 and 4 (RFC 5854) are supported)\n"
--" and make use of the mirrors listed within for failover if there\n"
--" are errors (such as the file or server not being available). It\n"
--" will also verify the hash of the file after the download com-\n"
--" pletes. The Metalink file itself is downloaded and processed in\n"
--" memory and not stored in the local file system.\n"
--"\n"
--, stdout);
-- fputs(
--" Example to use a remote Metalink file:\n"
--"\n"
--" curl --metalink http://www.example.com/example.metalink\n"
--"\n"
--" To use a Metalink file in the local file system, use FILE proto-\n"
--" col (file://):\n"
--"\n"
--" curl --metalink file://example.metalink\n"
--"\n"
--" Please note that if FILE protocol is disabled, there is no way\n"
--" to use a local Metalink file at the time of this writing. Also\n"
--, stdout);
-- fputs(
--" note that if --metalink and --include are used together,\n"
--" --include will be ignored. This is because including headers in\n"
--" the response will break Metalink parser and if the headers are\n"
--" included in the file described in Metalink file, hash check will\n"
--" fail.\n"
--"\n"
--" (Added in 7.27.0, if built against the libmetalink library.)\n"
--"\n"
--" -n, --netrc\n"
--, stdout);
-- fputs(
--" Makes curl scan the .netrc (_netrc on Windows) file in the\n"
--" user's home directory for login name and password. This is typi-\n"
--" cally used for FTP on UNIX. If used with HTTP, curl will enable\n"
--" user authentication. See netrc(4) or ftp(1) for details on the\n"
--" file format. Curl will not complain if that file doesn't have\n"
--" the right permissions (it should not be either world- or group-\n"
--, stdout);
-- fputs(
--" readable). The environment variable \"HOME\" is used to find the\n"
--" home directory.\n"
--"\n"
--" A quick and very simple example of how to setup a .netrc to\n"
--" allow curl to FTP to the machine host.domain.com with user name\n"
--" 'myself' and password 'secret' should look similar to:\n"
--"\n"
--" machine host.domain.com login myself password secret\n"
--"\n"
--" -N, --no-buffer\n"
--, stdout);
-- fputs(
--" Disables the buffering of the output stream. In normal work sit-\n"
--" uations, curl will use a standard buffered output stream that\n"
--" will have the effect that it will output the data in chunks, not\n"
--" necessarily exactly when the data arrives. Using this option\n"
--" will disable that buffering.\n"
--"\n"
--" Note that this is the negated option name documented. You can\n"
--" thus use --buffer to enforce the buffering.\n"
--"\n"
--, stdout);
-- fputs(
--" --netrc-file\n"
--" This option is similar to --netrc, except that you provide the\n"
--" path (absolute or relative) to the netrc file that Curl should\n"
--" use. You can only specify one netrc file per invocation. If\n"
--" several --netrc-file options are provided, only the last one\n"
--" will be used. (Added in 7.21.5)\n"
--"\n"
--" This option overrides any use of --netrc as they are mutually\n"
--, stdout);
-- fputs(
--" exclusive. It will also abide by --netrc-optional if specified.\n"
--"\n"
--" --netrc-optional\n"
--" Very similar to --netrc, but this option makes the .netrc usage\n"
--" optional and not mandatory as the --netrc option does.\n"
--"\n"
--" --negotiate\n"
--" (HTTP) Enables GSS-Negotiate authentication. The GSS-Negotiate\n"
--" method was designed by Microsoft and is used in their web appli-\n"
--, stdout);
-- fputs(
--" cations. It is primarily meant as a support for Kerberos5\n"
--" authentication but may be also used along with another authenti-\n"
--" cation method. For more information see IETF draft draft-brezak-\n"
--" spnego-http-04.txt.\n"
--"\n"
--" If you want to enable Negotiate for your proxy authentication,\n"
--" then use --proxy-negotiate.\n"
--"\n"
--" This option requires a library built with GSSAPI support. This\n"
--, stdout);
-- fputs(
--" is not very common. Use -V, --version to see if your version\n"
--" supports GSS-Negotiate.\n"
--"\n"
--" When using this option, you must also provide a fake -u, --user\n"
--" option to activate the authentication code properly. Sending a\n"
--" '-u :' is enough as the user name and password from the -u\n"
--" option aren't actually used.\n"
--"\n"
--" If this option is used several times, only the first one is\n"
--" used.\n"
--"\n"
--, stdout);
-- fputs(
--" --no-keepalive\n"
--" Disables the use of keepalive messages on the TCP connection, as\n"
--" by default curl enables them.\n"
--"\n"
--" Note that this is the negated option name documented. You can\n"
--" thus use --keepalive to enforce keepalive.\n"
--"\n"
--" --no-sessionid\n"
--" (SSL) Disable curl's use of SSL session-ID caching. By default\n"
--" all transfers are done using the cache. Note that while nothing\n"
--, stdout);
-- fputs(
--" should ever get hurt by attempting to reuse SSL session-IDs,\n"
--" there seem to be broken SSL implementations in the wild that may\n"
--" require you to disable this in order for you to succeed. (Added\n"
--" in 7.16.0)\n"
--"\n"
--" Note that this is the negated option name documented. You can\n"
--" thus use --sessionid to enforce session-ID caching.\n"
--"\n"
--" --noproxy <no-proxy-list>\n"
--, stdout);
-- fputs(
--" Comma-separated list of hosts which do not use a proxy, if one\n"
--" is specified. The only wildcard is a single * character, which\n"
--" matches all hosts, and effectively disables the proxy. Each name\n"
--" in this list is matched as either a domain which contains the\n"
--" hostname, or the hostname itself. For example, local.com would\n"
--" match local.com, local.com:80, and www.local.com, but not\n"
--, stdout);
-- fputs(
--" www.notlocal.com. (Added in 7.19.4).\n"
--"\n"
--" --ntlm (HTTP) Enables NTLM authentication. The NTLM authentication\n"
--" method was designed by Microsoft and is used by IIS web servers.\n"
--" It is a proprietary protocol, reverse-engineered by clever peo-\n"
--" ple and implemented in curl based on their efforts. This kind of\n"
--" behavior should not be endorsed, you should encourage everyone\n"
--, stdout);
-- fputs(
--" who uses NTLM to switch to a public and documented authentica-\n"
--" tion method instead, such as Digest.\n"
--"\n"
--" If you want to enable NTLM for your proxy authentication, then\n"
--" use --proxy-ntlm.\n"
--"\n"
--" This option requires a library built with SSL support. Use -V,\n"
--" --version to see if your curl supports NTLM.\n"
--"\n"
--" If this option is used several times, only the first one is\n"
--" used.\n"
--"\n"
--, stdout);
-- fputs(
--" -o, --output <file>\n"
--" Write output to <file> instead of stdout. If you are using {} or\n"
--" [] to fetch multiple documents, you can use '#' followed by a\n"
--" number in the <file> specifier. That variable will be replaced\n"
--" with the current string for the URL being fetched. Like in:\n"
--"\n"
--" curl http://{one,two}.site.com -o \"file_#1.txt\"\n"
--"\n"
--" or use several variables like:\n"
--"\n"
--, stdout);
-- fputs(
--" curl http://{site,host}.host[1-5].com -o \"#1_#2\"\n"
--"\n"
--" You may use this option as many times as the number of URLs you\n"
--" have.\n"
--"\n"
--" See also the --create-dirs option to create the local directo-\n"
--" ries dynamically. Specifying the output as '-' (a single dash)\n"
--" will force the output to be done to stdout.\n"
--"\n"
--" -O, --remote-name\n"
--" Write output to a local file named like the remote file we get.\n"
--, stdout);
-- fputs(
--" (Only the file part of the remote file is used, the path is cut\n"
--" off.)\n"
--"\n"
--" The remote file name to use for saving is extracted from the\n"
--" given URL, nothing else.\n"
--"\n"
--" Consequentially, the file will be saved in the current working\n"
--" directory. If you want the file saved in a different directory,\n"
--" make sure you change current working directory before you invoke\n"
--, stdout);
-- fputs(
--" curl with the -O, --remote-name flag!\n"
--"\n"
--" There is no URL decoding done on the file name. If it has %20 or\n"
--" other URL encoded parts of the name, they will end up as-is as\n"
--" file name.\n"
--"\n"
--" You may use this option as many times as the number of URLs you\n"
--" have.\n"
--"\n"
--" --oauth2-bearer\n"
--" (IMAP, POP3, SMTP) Specify the Bearer Token for OAUTH 2.0 server\n"
--, stdout);
-- fputs(
--" authentication. The Bearer Token is used in conjunction with the\n"
--" user name which can be specified as part of the --url or -u,\n"
--" --user options.\n"
--"\n"
--" The Bearer Token and user name are formatted according to RFC\n"
--" 6750.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -p, --proxytunnel\n"
--" When an HTTP proxy is used (-x, --proxy), this option will cause\n"
--, stdout);
-- fputs(
--" non-HTTP protocols to attempt to tunnel through the proxy\n"
--" instead of merely using it to do HTTP-like operations. The tun-\n"
--" nel approach is made with the HTTP proxy CONNECT request and\n"
--" requires that the proxy allows direct connect to the remote port\n"
--" number curl wants to tunnel through to.\n"
--"\n"
--" -P, --ftp-port <address>\n"
--" (FTP) Reverses the default initiator/listener roles when con-\n"
--, stdout);
-- fputs(
--" necting with FTP. This switch makes curl use active mode. In\n"
--" practice, curl then tells the server to connect back to the\n"
--" client's specified address and port, while passive mode asks the\n"
--" server to setup an IP address and port for it to connect to.\n"
--" <address> should be one of:\n"
--"\n"
--" interface\n"
--" i.e \"eth0\" to specify which interface's IP address you\n"
--, stdout);
-- fputs(
--" want to use (Unix only)\n"
--"\n"
--" IP address\n"
--" i.e \"192.168.10.1\" to specify the exact IP address\n"
--"\n"
--" host name\n"
--" i.e \"my.host.domain\" to specify the machine\n"
--"\n"
--" - make curl pick the same IP address that is already used\n"
--" for the control connection\n"
--"\n"
--" If this option is used several times, the last one will be used. Dis-\n"
--, stdout);
-- fputs(
--" able the use of PORT with --ftp-pasv. Disable the attempt to use the\n"
--" EPRT command instead of PORT by using --disable-eprt. EPRT is really\n"
--" PORT++.\n"
--"\n"
--" Starting in 7.19.5, you can append \":[start]-[end]\" to the right of the\n"
--" address, to tell curl what TCP port range to use. That means you spec-\n"
--" ify a port range, from a lower to a higher number. A single number\n"
--" works as well, but do note that it increases the risk of failure since\n"
--, stdout);
-- fputs(
--" the port may not be available.\n"
--"\n"
--" --pass <phrase>\n"
--" (SSL/SSH) Passphrase for the private key\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --post301\n"
--" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
--" POST requests into GET requests when following a 301 redirect-\n"
--" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
--, stdout);
-- fputs(
--" curl does the conversion by default to maintain consistency.\n"
--" However, a server may require a POST to remain a POST after such\n"
--" a redirection. This option is meaningful only when using -L,\n"
--" --location (Added in 7.17.1)\n"
--"\n"
--" --post302\n"
--" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
--" POST requests into GET requests when following a 302 redirect-\n"
--, stdout);
-- fputs(
--" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
--" curl does the conversion by default to maintain consistency.\n"
--" However, a server may require a POST to remain a POST after such\n"
--" a redirection. This option is meaningful only when using -L,\n"
--" --location (Added in 7.19.1)\n"
--"\n"
--" --post303\n"
--" (HTTP) Tells curl to respect RFC 2616/10.3.2 and not convert\n"
--, stdout);
-- fputs(
--" POST requests into GET requests when following a 303 redirect-\n"
--" ion. The non-RFC behaviour is ubiquitous in web browsers, so\n"
--" curl does the conversion by default to maintain consistency.\n"
--" However, a server may require a POST to remain a POST after such\n"
--" a redirection. This option is meaningful only when using -L,\n"
--" --location (Added in 7.26.0)\n"
--"\n"
--" --proto <protocols>\n"
--, stdout);
-- fputs(
--" Tells curl to use the listed protocols for its initial\n"
--" retrieval. Protocols are evaluated left to right, are comma sep-\n"
--" arated, and are each a protocol name or 'all', optionally pre-\n"
--" fixed by zero or more modifiers. Available modifiers are:\n"
--"\n"
--" + Permit this protocol in addition to protocols already permit-\n"
--" ted (this is the default if no modifier is used).\n"
--"\n"
--, stdout);
-- fputs(
--" - Deny this protocol, removing it from the list of protocols\n"
--" already permitted.\n"
--"\n"
--" = Permit only this protocol (ignoring the list already permit-\n"
--" ted), though subject to later modification by subsequent\n"
--" entries in the comma separated list.\n"
--"\n"
--" For example:\n"
--"\n"
--" --proto -ftps uses the default protocols, but disables ftps\n"
--"\n"
--" --proto -all,https,+http\n"
--, stdout);
-- fputs(
--" only enables http and https\n"
--"\n"
--" --proto =http,https\n"
--" also only enables http and https\n"
--"\n"
--" Unknown protocols produce a warning. This allows scripts to\n"
--" safely rely on being able to disable potentially dangerous pro-\n"
--" tocols, without relying upon support for that protocol being\n"
--" built into curl to avoid an error.\n"
--"\n"
--, stdout);
-- fputs(
--" This option can be used multiple times, in which case the effect\n"
--" is the same as concatenating the protocols into one instance of\n"
--" the option.\n"
--"\n"
--" (Added in 7.20.2)\n"
--"\n"
--" --proto-redir <protocols>\n"
--" Tells curl to use the listed protocols after a redirect. See\n"
--" --proto for how protocols are represented.\n"
--"\n"
--" (Added in 7.20.2)\n"
--"\n"
--" --proxy-anyauth\n"
--, stdout);
-- fputs(
--" Tells curl to pick a suitable authentication method when commu-\n"
--" nicating with the given proxy. This might cause an extra\n"
--" request/response round-trip. (Added in 7.13.2)\n"
--"\n"
--" --proxy-basic\n"
--" Tells curl to use HTTP Basic authentication when communicating\n"
--" with the given proxy. Use --basic for enabling HTTP Basic with a\n"
--" remote host. Basic is the default authentication method curl\n"
--, stdout);
-- fputs(
--" uses with proxies.\n"
--"\n"
--" --proxy-digest\n"
--" Tells curl to use HTTP Digest authentication when communicating\n"
--" with the given proxy. Use --digest for enabling HTTP Digest with\n"
--" a remote host.\n"
--"\n"
--" --proxy-negotiate\n"
--" Tells curl to use HTTP Negotiate authentication when communicat-\n"
--" ing with the given proxy. Use --negotiate for enabling HTTP\n"
--" Negotiate with a remote host. (Added in 7.17.1)\n"
--"\n"
--, stdout);
-- fputs(
--" --proxy-ntlm\n"
--" Tells curl to use HTTP NTLM authentication when communicating\n"
--" with the given proxy. Use --ntlm for enabling NTLM with a remote\n"
--" host.\n"
--"\n"
--" --proxy1.0 <proxyhost[:port]>\n"
--" Use the specified HTTP 1.0 proxy. If the port number is not\n"
--" specified, it is assumed at port 1080.\n"
--"\n"
--" The only difference between this and the HTTP proxy option (-x,\n"
--, stdout);
-- fputs(
--" --proxy), is that attempts to use CONNECT through the proxy will\n"
--" specify an HTTP 1.0 protocol instead of the default HTTP 1.1.\n"
--"\n"
--" --pubkey <key>\n"
--" (SSH) Public key file name. Allows you to provide your public\n"
--" key in this separate file.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -q If used as the first parameter on the command line, the curlrc\n"
--, stdout);
-- fputs(
--" config file will not be read and used. See the -K, --config for\n"
--" details on the default config file search path.\n"
--"\n"
--" -Q, --quote <command>\n"
--" (FTP/SFTP) Send an arbitrary command to the remote FTP or SFTP\n"
--" server. Quote commands are sent BEFORE the transfer takes place\n"
--" (just after the initial PWD command in an FTP transfer, to be\n"
--" exact). To make commands take place after a successful transfer,\n"
--, stdout);
-- fputs(
--" prefix them with a dash '-'. To make commands be sent after\n"
--" curl has changed the working directory, just before the transfer\n"
--" command(s), prefix the command with a '+' (this is only sup-\n"
--" ported for FTP). You may specify any number of commands. If the\n"
--" server returns failure for one of the commands, the entire oper-\n"
--" ation will be aborted. You must send syntactically correct FTP\n"
--, stdout);
-- fputs(
--" commands as RFC 959 defines to FTP servers, or one of the com-\n"
--" mands listed below to SFTP servers. This option can be used\n"
--" multiple times. When speaking to an FTP server, prefix the com-\n"
--" mand with an asterisk (*) to make curl continue even if the com-\n"
--" mand fails as by default curl will stop at first failure.\n"
--"\n"
--" SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP\n"
--, stdout);
-- fputs(
--" quote commands itself before sending them to the server. File\n"
--" names may be quoted shell-style to embed spaces or special char-\n"
--" acters. Following is the list of all supported SFTP quote com-\n"
--" mands:\n"
--"\n"
--" chgrp group file\n"
--" The chgrp command sets the group ID of the file named by\n"
--" the file operand to the group ID specified by the group\n"
--, stdout);
-- fputs(
--" operand. The group operand is a decimal integer group ID.\n"
--"\n"
--" chmod mode file\n"
--" The chmod command modifies the file mode bits of the\n"
--" specified file. The mode operand is an octal integer mode\n"
--" number.\n"
--"\n"
--" chown user file\n"
--" The chown command sets the owner of the file named by the\n"
--" file operand to the user ID specified by the user oper-\n"
--, stdout);
-- fputs(
--" and. The user operand is a decimal integer user ID.\n"
--"\n"
--" ln source_file target_file\n"
--" The ln and symlink commands create a symbolic link at the\n"
--" target_file location pointing to the source_file loca-\n"
--" tion.\n"
--"\n"
--" mkdir directory_name\n"
--" The mkdir command creates the directory named by the\n"
--" directory_name operand.\n"
--"\n"
--, stdout);
-- fputs(
--" pwd The pwd command returns the absolute pathname of the cur-\n"
--" rent working directory.\n"
--"\n"
--" rename source target\n"
--" The rename command renames the file or directory named by\n"
--" the source operand to the destination path named by the\n"
--" target operand.\n"
--"\n"
--" rm file\n"
--" The rm command removes the file specified by the file op-\n"
--" erand.\n"
--"\n"
--, stdout);
-- fputs(
--" rmdir directory\n"
--" The rmdir command removes the directory entry specified\n"
--" by the directory operand, provided it is empty.\n"
--"\n"
--" symlink source_file target_file\n"
--" See ln.\n"
--"\n"
--" -r, --range <range>\n"
--" (HTTP/FTP/SFTP/FILE) Retrieve a byte range (i.e a partial docu-\n"
--" ment) from a HTTP/1.1, FTP or SFTP server or a local FILE.\n"
--" Ranges can be specified in a number of ways.\n"
--"\n"
--, stdout);
-- fputs(
--" 0-499 specifies the first 500 bytes\n"
--"\n"
--" 500-999 specifies the second 500 bytes\n"
--"\n"
--" -500 specifies the last 500 bytes\n"
--"\n"
--" 9500- specifies the bytes from offset 9500 and forward\n"
--"\n"
--" 0-0,-1 specifies the first and last byte only(*)(H)\n"
--"\n"
--" 500-700,600-799\n"
--" specifies 300 bytes from offset 500(H)\n"
--"\n"
--" 100-199,500-599\n"
--, stdout);
-- fputs(
--" specifies two separate 100-byte ranges(*)(H)\n"
--"\n"
--" (*) = NOTE that this will cause the server to reply with a multipart\n"
--" response!\n"
--"\n"
--" Only digit characters (0-9) are valid in the 'start' and 'stop' fields\n"
--" of the 'start-stop' range syntax. If a non-digit character is given in\n"
--" the range, the server's response will be unspecified, depending on the\n"
--" server's configuration.\n"
--"\n"
--, stdout);
-- fputs(
--" You should also be aware that many HTTP/1.1 servers do not have this\n"
--" feature enabled, so that when you attempt to get a range, you'll\n"
--" instead get the whole document.\n"
--"\n"
--" FTP and SFTP range downloads only support the simple 'start-stop' syn-\n"
--" tax (optionally with one of the numbers omitted). FTP use depends on\n"
--" the extended FTP command SIZE.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -R, --remote-time\n"
--, stdout);
-- fputs(
--" When used, this will make curl attempt to figure out the time-\n"
--" stamp of the remote file, and if that is available make the\n"
--" local file get that same timestamp.\n"
--"\n"
--" --random-file <file>\n"
--" (SSL) Specify the path name to file containing what will be con-\n"
--" sidered as random data. The data is used to seed the random\n"
--" engine for SSL connections. See also the --egd-file option.\n"
--"\n"
--, stdout);
-- fputs(
--" --raw (HTTP) When used, it disables all internal HTTP decoding of con-\n"
--" tent or transfer encodings and instead makes them passed on\n"
--" unaltered, raw. (Added in 7.16.2)\n"
--"\n"
--" --remote-name-all\n"
--" This option changes the default action for all given URLs to be\n"
--" dealt with as if -O, --remote-name were used for each one. So if\n"
--" you want to disable that for a specific URL after --remote-name-\n"
--, stdout);
-- fputs(
--" all has been used, you must use \"-o -\" or --no-remote-name.\n"
--" (Added in 7.19.0)\n"
--"\n"
--" --resolve <host:port:address>\n"
--" Provide a custom address for a specific host and port pair.\n"
--" Using this, you can make the curl requests(s) use a specified\n"
--" address and prevent the otherwise normally resolved address to\n"
--" be used. Consider it a sort of /etc/hosts alternative provided\n"
--, stdout);
-- fputs(
--" on the command line. The port number should be the number used\n"
--" for the specific protocol the host will be used for. It means\n"
--" you need several entries if you want to provide address for the\n"
--" same host but different ports.\n"
--"\n"
--" This option can be used many times to add many host names to\n"
--" resolve.\n"
--"\n"
--" (Added in 7.21.3)\n"
--"\n"
--" --retry <num>\n"
--, stdout);
-- fputs(
--" If a transient error is returned when curl tries to perform a\n"
--" transfer, it will retry this number of times before giving up.\n"
--" Setting the number to 0 makes curl do no retries (which is the\n"
--" default). Transient error means either: a timeout, an FTP 4xx\n"
--" response code or an HTTP 5xx response code.\n"
--"\n"
--" When curl is about to retry a transfer, it will first wait one\n"
--, stdout);
-- fputs(
--" second and then for all forthcoming retries it will double the\n"
--" waiting time until it reaches 10 minutes which then will be the\n"
--" delay between the rest of the retries. By using --retry-delay\n"
--" you disable this exponential backoff algorithm. See also\n"
--" --retry-max-time to limit the total time allowed for retries.\n"
--" (Added in 7.12.3)\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --retry-delay <seconds>\n"
--" Make curl sleep this amount of time before each retry when a\n"
--" transfer has failed with a transient error (it changes the\n"
--" default backoff time algorithm between retries). This option is\n"
--" only interesting if --retry is also used. Setting this delay to\n"
--, stdout);
-- fputs(
--" zero will make curl use the default backoff time. (Added in\n"
--" 7.12.3)\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --retry-max-time <seconds>\n"
--" The retry timer is reset before the first transfer attempt.\n"
--" Retries will be done as usual (see --retry) as long as the timer\n"
--" hasn't reached this given limit. Notice that if the timer hasn't\n"
--, stdout);
-- fputs(
--" reached the limit, the request will be made and while perform-\n"
--" ing, it may take longer than this given time period. To limit a\n"
--" single request's maximum time, use -m, --max-time. Set this\n"
--" option to zero to not timeout retries. (Added in 7.12.3)\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -s, --silent\n"
--" Silent or quiet mode. Don't show progress meter or error mes-\n"
--, stdout);
-- fputs(
--" sages. Makes Curl mute. It will still output the data you ask\n"
--" for, potentially even to the terminal/stdout unless you redirect\n"
--" it.\n"
--"\n"
--" --sasl-ir\n"
--" Enable initial response in SASL authentication. (Added in\n"
--" 7.31.0)\n"
--"\n"
--" -S, --show-error\n"
--" When used with -s it makes curl show an error message if it\n"
--" fails.\n"
--"\n"
--" --ssl (FTP, POP3, IMAP, SMTP) Try to use SSL/TLS for the connection.\n"
--, stdout);
-- fputs(
--" Reverts to a non-secure connection if the server doesn't support\n"
--" SSL/TLS. See also --ftp-ssl-control and --ssl-reqd for differ-\n"
--" ent levels of encryption required. (Added in 7.20.0)\n"
--"\n"
--" This option was formerly known as --ftp-ssl (Added in 7.11.0).\n"
--" That option name can still be used but will be removed in a\n"
--" future version.\n"
--"\n"
--" --ssl-reqd\n"
--, stdout);
-- fputs(
--" (FTP, POP3, IMAP, SMTP) Require SSL/TLS for the connection.\n"
--" Terminates the connection if the server doesn't support SSL/TLS.\n"
--" (Added in 7.20.0)\n"
--"\n"
--" This option was formerly known as --ftp-ssl-reqd (added in\n"
--" 7.15.5). That option name can still be used but will be removed\n"
--" in a future version.\n"
--"\n"
--" --ssl-allow-beast\n"
--" (SSL) This option tells curl to not work around a security flaw\n"
--, stdout);
-- fputs(
--" in the SSL3 and TLS1.0 protocols known as BEAST. If this option\n"
--" isn't used, the SSL layer may use workarounds known to cause\n"
--" interoperability problems with some older SSL implementations.\n"
--" WARNING: this option loosens the SSL security, and by using this\n"
--" flag you ask for exactly that. (Added in 7.25.0)\n"
--"\n"
--" --socks4 <host[:port]>\n"
--" Use the specified SOCKS4 proxy. If the port number is not speci-\n"
--, stdout);
-- fputs(
--" fied, it is assumed at port 1080. (Added in 7.15.2)\n"
--"\n"
--" This option overrides any previous use of -x, --proxy, as they\n"
--" are mutually exclusive.\n"
--"\n"
--" Since 7.21.7, this option is superfluous since you can specify a\n"
--" socks4 proxy with -x, --proxy using a socks4:// protocol prefix.\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --socks4a <host[:port]>\n"
--, stdout);
-- fputs(
--" Use the specified SOCKS4a proxy. If the port number is not spec-\n"
--" ified, it is assumed at port 1080. (Added in 7.18.0)\n"
--"\n"
--" This option overrides any previous use of -x, --proxy, as they\n"
--" are mutually exclusive.\n"
--"\n"
--" Since 7.21.7, this option is superfluous since you can specify a\n"
--" socks4a proxy with -x, --proxy using a socks4a:// protocol pre-\n"
--" fix.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --socks5-hostname <host[:port]>\n"
--" Use the specified SOCKS5 proxy (and let the proxy resolve the\n"
--" host name). If the port number is not specified, it is assumed\n"
--" at port 1080. (Added in 7.18.0)\n"
--"\n"
--" This option overrides any previous use of -x, --proxy, as they\n"
--" are mutually exclusive.\n"
--"\n"
--, stdout);
-- fputs(
--" Since 7.21.7, this option is superfluous since you can specify a\n"
--" socks5 hostname proxy with -x, --proxy using a socks5h:// proto-\n"
--" col prefix.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--" (This option was previously wrongly documented and used as\n"
--" --socks without the number appended.)\n"
--"\n"
--" --socks5 <host[:port]>\n"
--, stdout);
-- fputs(
--" Use the specified SOCKS5 proxy - but resolve the host name\n"
--" locally. If the port number is not specified, it is assumed at\n"
--" port 1080.\n"
--"\n"
--" This option overrides any previous use of -x, --proxy, as they\n"
--" are mutually exclusive.\n"
--"\n"
--" Since 7.21.7, this option is superfluous since you can specify a\n"
--" socks5 proxy with -x, --proxy using a socks5:// protocol prefix.\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--" (This option was previously wrongly documented and used as\n"
--" --socks without the number appended.)\n"
--"\n"
--" This option (as well as --socks4) does not work with IPV6, FTPS\n"
--" or LDAP.\n"
--"\n"
--" --socks5-gssapi-service <servicename>\n"
--" The default service name for a socks server is rcmd/server-fqdn.\n"
--" This option allows you to change it.\n"
--"\n"
--, stdout);
-- fputs(
--" Examples: --socks5 proxy-name --socks5-gssapi-service sockd\n"
--" would use sockd/proxy-name --socks5 proxy-name --socks5-gssapi-\n"
--" service sockd/real-name would use sockd/real-name for cases\n"
--" where the proxy-name does not match the principal name. (Added\n"
--" in 7.19.4).\n"
--"\n"
--" --socks5-gssapi-nec\n"
--" As part of the gssapi negotiation a protection mode is negoti-\n"
--, stdout);
-- fputs(
--" ated. RFC 1961 says in section 4.3/4.4 it should be protected,\n"
--" but the NEC reference implementation does not. The option\n"
--" --socks5-gssapi-nec allows the unprotected exchange of the pro-\n"
--" tection mode negotiation. (Added in 7.19.4).\n"
--"\n"
--" --stderr <file>\n"
--" Redirect all writes to stderr to the specified file instead. If\n"
--" the file name is a plain '-', it is instead written to stdout.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -t, --telnet-option <OPT=val>\n"
--" Pass options to the telnet protocol. Supported options are:\n"
--"\n"
--" TTYPE=<term> Sets the terminal type.\n"
--"\n"
--" XDISPLOC=<X display> Sets the X display location.\n"
--"\n"
--" NEW_ENV=<var,val> Sets an environment variable.\n"
--"\n"
--" -T, --upload-file <file>\n"
--" This transfers the specified local file to the remote URL. If\n"
--, stdout);
-- fputs(
--" there is no file part in the specified URL, Curl will append the\n"
--" local file name. NOTE that you must use a trailing / on the last\n"
--" directory to really prove to Curl that there is no file name or\n"
--" curl will think that your last directory name is the remote file\n"
--" name to use. That will most likely cause the upload operation to\n"
--" fail. If this is used on an HTTP(S) server, the PUT command will\n"
--" be used.\n"
--"\n"
--, stdout);
-- fputs(
--" Use the file name \"-\" (a single dash) to use stdin instead of a\n"
--" given file. Alternately, the file name \".\" (a single period)\n"
--" may be specified instead of \"-\" to use stdin in non-blocking\n"
--" mode to allow reading server output while stdin is being\n"
--" uploaded.\n"
--"\n"
--" You can specify one -T for each URL on the command line. Each -T\n"
--, stdout);
-- fputs(
--" + URL pair specifies what to upload and to where. curl also sup-\n"
--" ports \"globbing\" of the -T argument, meaning that you can upload\n"
--" multiple files to a single URL by using the same URL globbing\n"
--" style supported in the URL, like this:\n"
--"\n"
--" curl -T \"{file1,file2}\" http://www.uploadtothissite.com\n"
--"\n"
--" or even\n"
--"\n"
--" curl -T \"img[1-1000].png\" ftp://ftp.picturemania.com/upload/\n"
--"\n"
--" --tcp-nodelay\n"
--, stdout);
-- fputs(
--" Turn on the TCP_NODELAY option. See the curl_easy_setopt(3) man\n"
--" page for details about this option. (Added in 7.11.2)\n"
--"\n"
--" --tftp-blksize <value>\n"
--" (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block\n"
--" size that curl will try to use when transferring data to or from\n"
--" a TFTP server. By default 512 bytes will be used.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--, stdout);
-- fputs(
--" (Added in 7.20.0)\n"
--"\n"
--" --tlsauthtype <authtype>\n"
--" Set TLS authentication type. Currently, the only supported\n"
--" option is \"SRP\", for TLS-SRP (RFC 5054). If --tlsuser and\n"
--" --tlspassword are specified but --tlsauthtype is not, then this\n"
--" option defaults to \"SRP\". (Added in 7.21.4)\n"
--"\n"
--" --tlspassword <password>\n"
--" Set password for use with the TLS authentication method speci-\n"
--, stdout);
-- fputs(
--" fied with --tlsauthtype. Requires that --tlsuser also be set.\n"
--" (Added in 7.21.4)\n"
--"\n"
--" --tlsuser <user>\n"
--" Set username for use with the TLS authentication method speci-\n"
--" fied with --tlsauthtype. Requires that --tlspassword also be\n"
--" set. (Added in 7.21.4)\n"
--"\n"
--" --tlsv1.0\n"
--" (SSL) Forces curl to use TLS version 1.0 when negotiating with a\n"
--" remote TLS server. (Added in 7.34.0)\n"
--"\n"
--" --tlsv1.1\n"
--, stdout);
-- fputs(
--" (SSL) Forces curl to use TLS version 1.1 when negotiating with a\n"
--" remote TLS server. (Added in 7.34.0)\n"
--"\n"
--" --tlsv1.2\n"
--" (SSL) Forces curl to use TLS version 1.2 when negotiating with a\n"
--" remote TLS server. (Added in 7.34.0)\n"
--"\n"
--" --tr-encoding\n"
--" (HTTP) Request a compressed Transfer-Encoding response using one\n"
--" of the algorithms curl supports, and uncompress the data while\n"
--" receiving it.\n"
--"\n"
--, stdout);
-- fputs(
--" (Added in 7.21.6)\n"
--"\n"
--" --trace <file>\n"
--" Enables a full trace dump of all incoming and outgoing data,\n"
--" including descriptive information, to the given output file. Use\n"
--" \"-\" as filename to have the output sent to stdout.\n"
--"\n"
--" This option overrides previous uses of -v, --verbose or --trace-\n"
--" ascii.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --trace-ascii <file>\n"
--, stdout);
-- fputs(
--" Enables a full trace dump of all incoming and outgoing data,\n"
--" including descriptive information, to the given output file. Use\n"
--" \"-\" as filename to have the output sent to stdout.\n"
--"\n"
--" This is very similar to --trace, but leaves out the hex part and\n"
--" only shows the ASCII part of the dump. It makes smaller output\n"
--" that might be easier to read for untrained humans.\n"
--"\n"
--, stdout);
-- fputs(
--" This option overrides previous uses of -v, --verbose or --trace.\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --trace-time\n"
--" Prepends a time stamp to each trace or verbose line that curl\n"
--" displays. (Added in 7.14.0)\n"
--"\n"
--" -u, --user <user:password;options>\n"
--" Specify the user name, password and optional login options to\n"
--, stdout);
-- fputs(
--" use for server authentication. Overrides -n, --netrc and\n"
--" --netrc-optional.\n"
--"\n"
--" If you simply specify the user name, with or without the login\n"
--" options, curl will prompt for a password.\n"
--"\n"
--" If you use an SSPI-enabled curl binary and perform NTLM authen-\n"
--" tication, you can force curl to select the user name and pass-\n"
--" word from your environment by simply specifying a single colon\n"
--, stdout);
-- fputs(
--" with this option: \"-u :\" or by specifying the login options on\n"
--" their own, for example \"-u ;auth=NTLM\".\n"
--"\n"
--" You can use the optional login options part to specify protocol\n"
--" specific options that may be used during authentication. At\n"
--" present only IMAP, POP3 and SMTP support login options as part\n"
--" of the user login information. For more information about the\n"
--, stdout);
-- fputs(
--" login options please see RFC 2384, RFC 5092 and IETF draft\n"
--" draft-earhart-url-smtp-00.txt (Added in 7.31.0).\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -U, --proxy-user <user:password>\n"
--" Specify the user name and password to use for proxy authentica-\n"
--" tion.\n"
--"\n"
--" If you use an SSPI-enabled curl binary and do NTLM authentica-\n"
--, stdout);
-- fputs(
--" tion, you can force curl to pick up the user name and password\n"
--" from your environment by simply specifying a single colon with\n"
--" this option: \"-U :\".\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --url <URL>\n"
--" Specify a URL to fetch. This option is mostly handy when you\n"
--" want to specify URL(s) in a config file.\n"
--"\n"
--, stdout);
-- fputs(
--" This option may be used any number of times. To control where\n"
--" this URL is written, use the -o, --output or the -O, --remote-\n"
--" name options.\n"
--" -v, --verbose\n"
--" Makes the fetching more verbose/talkative. Mostly useful for\n"
--" debugging. A line starting with '>' means \"header data\" sent by\n"
--" curl, '<' means \"header data\" received by curl that is hidden in\n"
--, stdout);
-- fputs(
--" normal cases, and a line starting with '*' means additional info\n"
--" provided by curl.\n"
--"\n"
--" Note that if you only want HTTP headers in the output, -i,\n"
--" --include might be the option you're looking for.\n"
--"\n"
--" If you think this option still doesn't give you enough details,\n"
--" consider using --trace or --trace-ascii instead.\n"
--"\n"
--" This option overrides previous uses of --trace-ascii or --trace.\n"
--"\n"
--, stdout);
-- fputs(
--" Use -s, --silent to make curl quiet.\n"
--"\n"
--" -w, --write-out <format>\n"
--" Defines what to display on stdout after a completed and success-\n"
--" ful operation. The format is a string that may contain plain\n"
--" text mixed with any number of variables. The string can be spec-\n"
--" ified as \"string\", to get read from a particular file you spec-\n"
--" ify it \"@filename\" and to tell curl to read the format from\n"
--, stdout);
-- fputs(
--" stdin you write \"@-\".\n"
--"\n"
--" The variables present in the output format will be substituted\n"
--" by the value or text that curl thinks fit, as described below.\n"
--" All variables are specified as %{variable_name} and to output a\n"
--" normal % you just write them as %%. You can output a newline by\n"
--" using \\n, a carriage return with \\r and a tab space with \\t.\n"
--"\n"
--, stdout);
-- fputs(
--" NOTE: The %-symbol is a special symbol in the win32-environment,\n"
--" where all occurrences of % must be doubled when using this\n"
--" option.\n"
--"\n"
--" The variables available are:\n"
--"\n"
--" content_type The Content-Type of the requested document, if\n"
--" there was any.\n"
--"\n"
--" filename_effective\n"
--" The ultimate filename that curl writes out to.\n"
--, stdout);
-- fputs(
--" This is only meaningful if curl is told to write\n"
--" to a file with the --remote-name or --output\n"
--" option. It's most useful in combination with the\n"
--" --remote-header-name option. (Added in 7.25.1)\n"
--"\n"
--" ftp_entry_path The initial path curl ended up in when logging on\n"
--" to the remote FTP server. (Added in 7.15.4)\n"
--"\n"
--, stdout);
-- fputs(
--" http_code The numerical response code that was found in the\n"
--" last retrieved HTTP(S) or FTP(s) transfer. In\n"
--" 7.18.2 the alias response_code was added to show\n"
--" the same info.\n"
--"\n"
--" http_connect The numerical code that was found in the last\n"
--" response (from a proxy) to a curl CONNECT\n"
--" request. (Added in 7.12.4)\n"
--"\n"
--, stdout);
-- fputs(
--" local_ip The IP address of the local end of the most\n"
--" recently done connection - can be either IPv4 or\n"
--" IPv6 (Added in 7.29.0)\n"
--"\n"
--" local_port The local port number of the most recently done\n"
--" connection (Added in 7.29.0)\n"
--"\n"
--" num_connects Number of new connects made in the recent trans-\n"
--" fer. (Added in 7.12.3)\n"
--"\n"
--, stdout);
-- fputs(
--" num_redirects Number of redirects that were followed in the\n"
--" request. (Added in 7.12.3)\n"
--"\n"
--" redirect_url When an HTTP request was made without -L to fol-\n"
--" low redirects, this variable will show the actual\n"
--" URL a redirect would take you to. (Added in\n"
--" 7.18.2)\n"
--"\n"
--" remote_ip The remote IP address of the most recently done\n"
--, stdout);
-- fputs(
--" connection - can be either IPv4 or IPv6 (Added in\n"
--" 7.29.0)\n"
--"\n"
--" remote_port The remote port number of the most recently done\n"
--" connection (Added in 7.29.0)\n"
--"\n"
--" size_download The total amount of bytes that were downloaded.\n"
--"\n"
--" size_header The total amount of bytes of the downloaded head-\n"
--" ers.\n"
--"\n"
--, stdout);
-- fputs(
--" size_request The total amount of bytes that were sent in the\n"
--" HTTP request.\n"
--"\n"
--" size_upload The total amount of bytes that were uploaded.\n"
--"\n"
--" speed_download The average download speed that curl measured for\n"
--" the complete download. Bytes per second.\n"
--"\n"
--" speed_upload The average upload speed that curl measured for\n"
--" the complete upload. Bytes per second.\n"
--"\n"
--, stdout);
-- fputs(
--" ssl_verify_result\n"
--" The result of the SSL peer certificate verifica-\n"
--" tion that was requested. 0 means the verification\n"
--" was successful. (Added in 7.19.0)\n"
--"\n"
--" time_appconnect\n"
--" The time, in seconds, it took from the start\n"
--" until the SSL/SSH/etc connect/handshake to the\n"
--, stdout);
-- fputs(
--" remote host was completed. (Added in 7.19.0)\n"
--"\n"
--" time_connect The time, in seconds, it took from the start\n"
--" until the TCP connect to the remote host (or\n"
--" proxy) was completed.\n"
--"\n"
--" time_namelookup\n"
--" The time, in seconds, it took from the start\n"
--" until the name resolving was completed.\n"
--"\n"
--" time_pretransfer\n"
--, stdout);
-- fputs(
--" The time, in seconds, it took from the start\n"
--" until the file transfer was just about to begin.\n"
--" This includes all pre-transfer commands and nego-\n"
--" tiations that are specific to the particular pro-\n"
--" tocol(s) involved.\n"
--"\n"
--" time_redirect The time, in seconds, it took for all redirection\n"
--, stdout);
-- fputs(
--" steps include name lookup, connect, pretransfer\n"
--" and transfer before the final transaction was\n"
--" started. time_redirect shows the complete execu-\n"
--" tion time for multiple redirections. (Added in\n"
--" 7.12.3)\n"
--"\n"
--" time_starttransfer\n"
--" The time, in seconds, it took from the start\n"
--, stdout);
-- fputs(
--" until the first byte was just about to be trans-\n"
--" ferred. This includes time_pretransfer and also\n"
--" the time the server needed to calculate the\n"
--" result.\n"
--"\n"
--" time_total The total time, in seconds, that the full opera-\n"
--" tion lasted. The time will be displayed with mil-\n"
--" lisecond resolution.\n"
--"\n"
--, stdout);
-- fputs(
--" url_effective The URL that was fetched last. This is most mean-\n"
--" ingful if you've told curl to follow location:\n"
--" headers.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -x, --proxy <[protocol://][user:password@]proxyhost[:port]>\n"
--" Use the specified proxy.\n"
--"\n"
--" The proxy string can be specified with a protocol:// prefix to\n"
--, stdout);
-- fputs(
--" specify alternative proxy protocols. Use socks4://, socks4a://,\n"
--" socks5:// or socks5h:// to request the specific SOCKS version to\n"
--" be used. No protocol specified, http:// and all others will be\n"
--" treated as HTTP proxies. (The protocol support was added in curl\n"
--" 7.21.7)\n"
--"\n"
--" If the port number is not specified in the proxy string, it is\n"
--" assumed to be 1080.\n"
--"\n"
--, stdout);
-- fputs(
--" This option overrides existing environment variables that set\n"
--" the proxy to use. If there's an environment variable setting a\n"
--" proxy, you can set proxy to \"\" to override it.\n"
--"\n"
--" All operations that are performed over an HTTP proxy will trans-\n"
--" parently be converted to HTTP. It means that certain protocol\n"
--" specific operations might not be available. This is not the case\n"
--, stdout);
-- fputs(
--" if you can tunnel through the proxy, as one with the -p, --prox-\n"
--" ytunnel option.\n"
--"\n"
--" User and password that might be provided in the proxy string are\n"
--" URL decoded by curl. This allows you to pass in special charac-\n"
--" ters such as @ by using %40 or pass in a colon with %3a.\n"
--"\n"
--" The proxy host can be specified the exact same way as the proxy\n"
--" environment variables, including the protocol prefix (http://)\n"
--, stdout);
-- fputs(
--" and the embedded user + password.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -X, --request <command>\n"
--" (HTTP) Specifies a custom request method to use when communicat-\n"
--" ing with the HTTP server. The specified request will be used\n"
--" instead of the method otherwise used (which defaults to GET).\n"
--" Read the HTTP 1.1 specification for details and explanations.\n"
--, stdout);
-- fputs(
--" Common additional HTTP requests include PUT and DELETE, but\n"
--" related technologies like WebDAV offers PROPFIND, COPY, MOVE and\n"
--" more.\n"
--"\n"
--" Normally you don't need this option. All sorts of GET, HEAD,\n"
--" POST and PUT requests are rather invoked by using dedicated com-\n"
--" mand line options.\n"
--"\n"
--" This option only changes the actual word used in the HTTP\n"
--, stdout);
-- fputs(
--" request, it does not alter the way curl behaves. So for example\n"
--" if you want to make a proper HEAD request, using -X HEAD will\n"
--" not suffice. You need to use the -I, --head option.\n"
--"\n"
--" (FTP) Specifies a custom FTP command to use instead of LIST when\n"
--" doing file lists with FTP.\n"
--"\n"
--" (POP3) Specifies a custom POP3 command to use instead of LIST or\n"
--" RETR. (Added in 7.26.0)\n"
--"\n"
--, stdout);
-- fputs(
--" (IMAP) Specifies a custom IMAP command to use instead of LIST.\n"
--" (Added in 7.30.0)\n"
--"\n"
--" (SMTP) Specifies a custom SMTP command to use instead of HELP or\n"
--" VRFY. (Added in 7.34.0)\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" --xattr\n"
--" When saving output to a file, this option tells curl to store\n"
--" certain file metadata in extended file attributes. Currently,\n"
--, stdout);
-- fputs(
--" the URL is stored in the xdg.origin.url attribute and, for HTTP,\n"
--" the content type is stored in the mime_type attribute. If the\n"
--" file system does not support extended attributes, a warning is\n"
--" issued.\n"
--"\n"
--" -y, --speed-time <time>\n"
--" If a download is slower than speed-limit bytes per second during\n"
--" a speed-time period, the download gets aborted. If speed-time is\n"
--, stdout);
-- fputs(
--" used, the default speed-limit will be 1 unless set with -Y.\n"
--"\n"
--" This option controls transfers and thus will not affect slow\n"
--" connects etc. If this is a concern for you, try the --connect-\n"
--" timeout option.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -Y, --speed-limit <speed>\n"
--" If a download is slower than this given speed (in bytes per sec-\n"
--, stdout);
-- fputs(
--" ond) for speed-time seconds it gets aborted. speed-time is set\n"
--" with -y and is 30 if not set.\n"
--"\n"
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -z, --time-cond <date expression>|<file>\n"
--" (HTTP/FTP) Request a file that has been modified later than the\n"
--" given time and date, or one that has been modified before that\n"
--" time. The <date expression> can be all sorts of date strings or\n"
--, stdout);
-- fputs(
--" if it doesn't match any internal ones, it is taken as a filename\n"
--" and tries to get the modification date (mtime) from <file>\n"
--" instead. See the curl_getdate(3) man pages for date expression\n"
--" details.\n"
--"\n"
--" Start the date expression with a dash (-) to make it request for\n"
--" a document that is older than the given date/time, default is a\n"
--" document that is newer than the specified date/time.\n"
--"\n"
--, stdout);
-- fputs(
--" If this option is used several times, the last one will be used.\n"
--"\n"
--" -h, --help\n"
--" Usage help.\n"
--"\n"
--" -M, --manual\n"
--" Manual. Display the huge help text.\n"
--"\n"
--" -V, --version\n"
--" Displays information about curl and the libcurl version it uses.\n"
--" The first line includes the full version of curl, libcurl and\n"
--" other 3rd party libraries linked with the executable.\n"
--"\n"
--, stdout);
-- fputs(
--" The second line (starts with \"Protocols:\") shows all protocols\n"
--" that libcurl reports to support.\n"
--"\n"
--" The third line (starts with \"Features:\") shows specific features\n"
--" libcurl reports to offer. Available features include:\n"
--"\n"
--" IPv6 You can use IPv6 with this.\n"
--"\n"
--" krb4 Krb4 for FTP is supported.\n"
--"\n"
--" SSL HTTPS and FTPS are supported.\n"
--"\n"
--, stdout);
-- fputs(
--" libz Automatic decompression of compressed files over HTTP is\n"
--" supported.\n"
--"\n"
--" NTLM NTLM authentication is supported.\n"
--"\n"
--" GSS-Negotiate\n"
--" Negotiate authentication and krb5 for FTP is supported.\n"
--"\n"
--" Debug This curl uses a libcurl built with Debug. This enables\n"
--" more error-tracking and memory debugging etc. For curl-\n"
--" developers only!\n"
--"\n"
--" AsynchDNS\n"
--, stdout);
-- fputs(
--" This curl uses asynchronous name resolves.\n"
--"\n"
--" SPNEGO SPNEGO Negotiate authentication is supported.\n"
--"\n"
--" Largefile\n"
--" This curl supports transfers of large files, files larger\n"
--" than 2GB.\n"
--"\n"
--" IDN This curl supports IDN - international domain names.\n"
--"\n"
--" SSPI SSPI is supported. If you use NTLM and set a blank user\n"
--, stdout);
-- fputs(
--" name, curl will authenticate with your current user and\n"
--" password.\n"
--"\n"
--" TLS-SRP\n"
--" SRP (Secure Remote Password) authentication is supported\n"
--" for TLS.\n"
--" Metalink\n"
--" This curl supports Metalink (both version 3 and 4 (RFC\n"
--" 5854)), which describes mirrors and hashes. curl will\n"
--, stdout);
-- fputs(
--" use mirrors for failover if there are errors (such as the\n"
--" file or server not being available).\n"
--"\n"
--"FILES\n"
--" ~/.curlrc\n"
--" Default config file, see -K, --config for details.\n"
--"\n"
--"ENVIRONMENT\n"
--" The environment variables can be specified in lower case or upper case.\n"
--" The lower case version has precedence. http_proxy is an exception as it\n"
--" is only available in lower case.\n"
--"\n"
--, stdout);
-- fputs(
--" Using an environment variable to set the proxy has the same effect as\n"
--" using the --proxy option.\n"
--"\n"
--" http_proxy [protocol://]<host>[:port]\n"
--" Sets the proxy server to use for HTTP.\n"
--" HTTPS_PROXY [protocol://]<host>[:port]\n"
--" Sets the proxy server to use for HTTPS.\n"
--"\n"
--" [url-protocol]_PROXY [protocol://]<host>[:port]\n"
--" Sets the proxy server to use for [url-protocol], where the pro-\n"
--, stdout);
-- fputs(
--" tocol is a protocol that curl supports and as specified in a\n"
--" URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.\n"
--"\n"
--" ALL_PROXY [protocol://]<host>[:port]\n"
--" Sets the proxy server to use if no protocol-specific proxy is\n"
--" set.\n"
--"\n"
--" NO_PROXY <comma-separated list of hosts>\n"
--" list of host names that shouldn't go through any proxy. If set\n"
--" to a asterisk '*' only, it matches all hosts.\n"
--"\n"
--"PROXY PROTOCOL PREFIXES\n"
--, stdout);
-- fputs(
--" Since curl version 7.21.7, the proxy string may be specified with a\n"
--" protocol:// prefix to specify alternative proxy protocols.\n"
--"\n"
--" If no protocol is specified in the proxy string or if the string\n"
--" doesn't match a supported one, the proxy will be treated as an HTTP\n"
--" proxy.\n"
--"\n"
--" The supported proxy protocol prefixes are as follows:\n"
--"\n"
--" socks4://\n"
--" Makes it the equivalent of --socks4\n"
--"\n"
--" socks4a://\n"
--, stdout);
-- fputs(
--" Makes it the equivalent of --socks4a\n"
--"\n"
--" socks5://\n"
--" Makes it the equivalent of --socks5\n"
--"\n"
--" socks5h://\n"
--" Makes it the equivalent of --socks5-hostname\n"
--"\n"
--"EXIT CODES\n"
--" There are a bunch of different error codes and their corresponding\n"
--" error messages that may appear during bad conditions. At the time of\n"
--" this writing, the exit codes are:\n"
--"\n"
--" 1 Unsupported protocol. This build of curl has no support for this\n"
--, stdout);
-- fputs(
--" protocol.\n"
--"\n"
--" 2 Failed to initialize.\n"
--"\n"
--" 3 URL malformed. The syntax was not correct.\n"
--"\n"
--" 4 A feature or option that was needed to perform the desired\n"
--" request was not enabled or was explicitly disabled at build-\n"
--" time. To make curl able to do this, you probably need another\n"
--" build of libcurl!\n"
--"\n"
--" 5 Couldn't resolve proxy. The given proxy host could not be\n"
--" resolved.\n"
--"\n"
--, stdout);
-- fputs(
--" 6 Couldn't resolve host. The given remote host was not resolved.\n"
--"\n"
--" 7 Failed to connect to host.\n"
--"\n"
--" 8 FTP weird server reply. The server sent data curl couldn't\n"
--" parse.\n"
--"\n"
--" 9 FTP access denied. The server denied login or denied access to\n"
--" the particular resource or directory you wanted to reach. Most\n"
--" often you tried to change to a directory that doesn't exist on\n"
--" the server.\n"
--"\n"
--, stdout);
-- fputs(
--" 11 FTP weird PASS reply. Curl couldn't parse the reply sent to the\n"
--" PASS request.\n"
--"\n"
--" 13 FTP weird PASV reply, Curl couldn't parse the reply sent to the\n"
--" PASV request.\n"
--"\n"
--" 14 FTP weird 227 format. Curl couldn't parse the 227-line the\n"
--" server sent.\n"
--"\n"
--" 15 FTP can't get host. Couldn't resolve the host IP we got in the\n"
--" 227-line.\n"
--"\n"
--, stdout);
-- fputs(
--" 17 FTP couldn't set binary. Couldn't change transfer method to\n"
--" binary.\n"
--"\n"
--" 18 Partial file. Only a part of the file was transferred.\n"
--"\n"
--" 19 FTP couldn't download/access the given file, the RETR (or simi-\n"
--" lar) command failed.\n"
--"\n"
--" 21 FTP quote error. A quote command returned error from the server.\n"
--" 22 HTTP page not retrieved. The requested url was not found or\n"
--, stdout);
-- fputs(
--" returned another error with the HTTP error code being 400 or\n"
--" above. This return code only appears if -f, --fail is used.\n"
--"\n"
--" 23 Write error. Curl couldn't write data to a local filesystem or\n"
--" similar.\n"
--"\n"
--" 25 FTP couldn't STOR file. The server denied the STOR operation,\n"
--" used for FTP uploading.\n"
--"\n"
--" 26 Read error. Various reading problems.\n"
--"\n"
--" 27 Out of memory. A memory allocation request failed.\n"
--"\n"
--, stdout);
-- fputs(
--" 28 Operation timeout. The specified time-out period was reached\n"
--" according to the conditions.\n"
--"\n"
--" 30 FTP PORT failed. The PORT command failed. Not all FTP servers\n"
--" support the PORT command, try doing a transfer using PASV\n"
--" instead!\n"
--"\n"
--" 31 FTP couldn't use REST. The REST command failed. This command is\n"
--" used for resumed FTP transfers.\n"
--"\n"
--" 33 HTTP range error. The range \"command\" didn't work.\n"
--"\n"
--, stdout);
-- fputs(
--" 34 HTTP post error. Internal post-request generation error.\n"
--"\n"
--" 35 SSL connect error. The SSL handshaking failed.\n"
--"\n"
--" 36 FTP bad download resume. Couldn't continue an earlier aborted\n"
--" download.\n"
--"\n"
--" 37 FILE couldn't read file. Failed to open the file. Permissions?\n"
--"\n"
--" 38 LDAP cannot bind. LDAP bind operation failed.\n"
--"\n"
--" 39 LDAP search failed.\n"
--"\n"
--" 41 Function not found. A required LDAP function was not found.\n"
--"\n"
--, stdout);
-- fputs(
--" 42 Aborted by callback. An application told curl to abort the oper-\n"
--" ation.\n"
--"\n"
--" 43 Internal error. A function was called with a bad parameter.\n"
--"\n"
--" 45 Interface error. A specified outgoing interface could not be\n"
--" used.\n"
--"\n"
--" 47 Too many redirects. When following redirects, curl hit the maxi-\n"
--" mum amount.\n"
--"\n"
--" 48 Unknown option specified to libcurl. This indicates that you\n"
--, stdout);
-- fputs(
--" passed a weird option to curl that was passed on to libcurl and\n"
--" rejected. Read up in the manual!\n"
--"\n"
--" 49 Malformed telnet option.\n"
--"\n"
--" 51 The peer's SSL certificate or SSH MD5 fingerprint was not OK.\n"
--"\n"
--" 52 The server didn't reply anything, which here is considered an\n"
--" error.\n"
--"\n"
--" 53 SSL crypto engine not found.\n"
--"\n"
--" 54 Cannot set SSL crypto engine as default.\n"
--"\n"
--" 55 Failed sending network data.\n"
--"\n"
--, stdout);
-- fputs(
--" 56 Failure in receiving network data.\n"
--"\n"
--" 58 Problem with the local certificate.\n"
--"\n"
--" 59 Couldn't use specified SSL cipher.\n"
--"\n"
--" 60 Peer certificate cannot be authenticated with known CA certifi-\n"
--" cates.\n"
--"\n"
--" 61 Unrecognized transfer encoding.\n"
--"\n"
--" 62 Invalid LDAP URL.\n"
--"\n"
--" 63 Maximum file size exceeded.\n"
--"\n"
--" 64 Requested FTP SSL level failed.\n"
--"\n"
--" 65 Sending the data requires a rewind that failed.\n"
--"\n"
--, stdout);
-- fputs(
--" 66 Failed to initialise SSL Engine.\n"
--"\n"
--" 67 The user name, password, or similar was not accepted and curl\n"
--" failed to log in.\n"
--"\n"
--" 68 File not found on TFTP server.\n"
--"\n"
--" 69 Permission problem on TFTP server.\n"
--"\n"
--" 70 Out of disk space on TFTP server.\n"
--"\n"
--" 71 Illegal TFTP operation.\n"
--"\n"
--" 72 Unknown TFTP transfer ID.\n"
--"\n"
--" 73 File already exists (TFTP).\n"
--"\n"
--" 74 No such user (TFTP).\n"
--"\n"
--, stdout);
-- fputs(
--" 75 Character conversion failed.\n"
--"\n"
--" 76 Character conversion functions required.\n"
--"\n"
--" 77 Problem with reading the SSL CA cert (path? access rights?).\n"
--"\n"
--" 78 The resource referenced in the URL does not exist.\n"
--"\n"
--" 79 An unspecified error occurred during the SSH session.\n"
--"\n"
--" 80 Failed to shut down the SSL connection.\n"
--"\n"
--" 82 Could not load CRL file, missing or wrong format (added in\n"
--" 7.19.0).\n"
--"\n"
--, stdout);
-- fputs(
--" 83 Issuer check failed (added in 7.19.0).\n"
--"\n"
--" 84 The FTP PRET command failed\n"
--"\n"
--" 85 RTSP: mismatch of CSeq numbers\n"
--"\n"
--" 86 RTSP: mismatch of Session Identifiers\n"
--"\n"
--" 87 unable to parse FTP file list\n"
--"\n"
--" 88 FTP chunk callback reported error\n"
--"\n"
--" 89 No connection available, the session will be queued\n"
--"\n"
--" XX More error codes will appear here in future releases. The exist-\n"
--" ing ones are meant to never change.\n"
--"\n"
--, stdout);
-- fputs(
--"AUTHORS / CONTRIBUTORS\n"
--" Daniel Stenberg is the main author, but the whole list of contributors\n"
--" is found in the separate THANKS file.\n"
--"\n"
--"WWW\n"
--" http://curl.haxx.se\n"
--"\n"
--"FTP\n"
--" ftp://ftp.sunet.se/pub/www/utilities/curl/\n"
--"\n"
--"SEE ALSO\n"
--" ftp(1), wget(1)\n"
--"\n"
--"LATEST VERSION\n"
--"\n"
--" You always find news about what's going on as well as the latest versions\n"
--" from the curl web pages, located at:\n"
--"\n"
--" http://curl.haxx.se\n"
--"\n"
--"SIMPLE USAGE\n"
--"\n"
--" Get the main page from Netscape's web-server:\n"
--"\n"
--, stdout);
-- fputs(
--" curl http://www.netscape.com/\n"
--"\n"
--" Get the README file the user's home directory at funet's ftp-server:\n"
--"\n"
--" curl ftp://ftp.funet.fi/README\n"
--"\n"
--" Get a web page from a server using port 8000:\n"
--"\n"
--" curl http://www.weirdserver.com:8000/\n"
--"\n"
--" Get a directory listing of an FTP site:\n"
--"\n"
--" curl ftp://cool.haxx.se/\n"
--"\n"
--" Get the definition of curl from a dictionary:\n"
--"\n"
--" curl dict://dict.org/m:curl\n"
--"\n"
--" Fetch two documents at once:\n"
--"\n"
--, stdout);
-- fputs(
--" curl ftp://cool.haxx.se/ http://www.weirdserver.com:8000/\n"
--"\n"
--" Get a file off an FTPS server:\n"
--"\n"
--" curl ftps://files.are.secure.com/secrets.txt\n"
--"\n"
--" or use the more appropriate FTPS way to get the same file:\n"
--"\n"
--" curl --ftp-ssl ftp://files.are.secure.com/secrets.txt\n"
--"\n"
--" Get a file from an SSH server using SFTP:\n"
--"\n"
--" curl -u username sftp://shell.example.com/etc/issue\n"
--"\n"
--" Get a file from an SSH server using SCP using a private key to authenticate:\n"
--"\n"
--, stdout);
-- fputs(
--" curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \\\n"
--" scp://shell.example.com/~/personal.txt\n"
--"\n"
--" Get the main page from an IPv6 web server:\n"
--"\n"
--" curl -g \"http://[2001:1890:1112:1::20]/\"\n"
--"\n"
--"DOWNLOAD TO A FILE\n"
--"\n"
--" Get a web page and store in a local file with a specific name:\n"
--"\n"
--" curl -o thatpage.html http://www.netscape.com/\n"
--"\n"
--" Get a web page and store in a local file, make the local file get the name\n"
--, stdout);
-- fputs(
--" of the remote document (if no file name part is specified in the URL, this\n"
--" will fail):\n"
--"\n"
--" curl -O http://www.netscape.com/index.html\n"
--"\n"
--" Fetch two files and store them with their remote names:\n"
--"\n"
--" curl -O www.haxx.se/index.html -O curl.haxx.se/download.html\n"
--"\n"
--"USING PASSWORDS\n"
--"\n"
--" FTP\n"
--"\n"
--" To ftp files using name+passwd, include them in the URL like:\n"
--"\n"
--" curl ftp://name:passwd@machine.domain:port/full/path/to/file\n"
--"\n"
--" or specify them with the -u flag like\n"
--"\n"
--, stdout);
-- fputs(
--" curl -u name:passwd ftp://machine.domain:port/full/path/to/file\n"
--"\n"
--" FTPS\n"
--"\n"
--" It is just like for FTP, but you may also want to specify and use\n"
--" SSL-specific options for certificates etc.\n"
--"\n"
--" Note that using FTPS:// as prefix is the \"implicit\" way as described in the\n"
--" standards while the recommended \"explicit\" way is done by using FTP:// and\n"
--" the --ftp-ssl option.\n"
--"\n"
--" SFTP / SCP\n"
--"\n"
--" This is similar to FTP, but you can specify a private key to use instead of\n"
--, stdout);
-- fputs(
--" a password. Note that the private key may itself be protected by a password\n"
--" that is unrelated to the login password of the remote system. If you\n"
--" provide a private key file you must also provide a public key file.\n"
--"\n"
--" HTTP\n"
--"\n"
--" Curl also supports user and password in HTTP URLs, thus you can pick a file\n"
--" like:\n"
--"\n"
--" curl http://name:passwd@machine.domain/full/path/to/file\n"
--"\n"
--" or specify user and password separately like in\n"
--"\n"
--, stdout);
-- fputs(
--" curl -u name:passwd http://machine.domain/full/path/to/file\n"
--"\n"
--" HTTP offers many different methods of authentication and curl supports\n"
--" several: Basic, Digest, NTLM and Negotiate. Without telling which method to\n"
--" use, curl defaults to Basic. You can also ask curl to pick the most secure\n"
--" ones out of the ones that the server accepts for the given URL, by using\n"
--" --anyauth.\n"
--"\n"
--" NOTE! According to the URL specification, HTTP URLs can not contain a user\n"
--, stdout);
-- fputs(
--" and password, so that style will not work when using curl via a proxy, even\n"
--" though curl allows it at other times. When using a proxy, you _must_ use\n"
--" the -u style for user and password.\n"
--"\n"
--" HTTPS\n"
--"\n"
--" Probably most commonly used with private certificates, as explained below.\n"
--"\n"
--"PROXY\n"
--"\n"
--" curl supports both HTTP and SOCKS proxy servers, with optional authentication.\n"
--" It does not have special support for FTP proxy servers since there are no\n"
--, stdout);
-- fputs(
--" standards for those, but it can still be made to work with many of them. You\n"
--" can also use both HTTP and SOCKS proxies to transfer files to and from FTP\n"
--" servers.\n"
--"\n"
--" Get an ftp file using an HTTP proxy named my-proxy that uses port 888:\n"
--"\n"
--" curl -x my-proxy:888 ftp://ftp.leachsite.com/README\n"
--"\n"
--" Get a file from an HTTP server that requires user and password, using the\n"
--" same proxy as above:\n"
--"\n"
--" curl -u user:passwd -x my-proxy:888 http://www.get.this/\n"
--"\n"
--, stdout);
-- fputs(
--" Some proxies require special authentication. Specify by using -U as above:\n"
--"\n"
--" curl -U user:passwd -x my-proxy:888 http://www.get.this/\n"
--"\n"
--" A comma-separated list of hosts and domains which do not use the proxy can\n"
--" be specified as:\n"
--"\n"
--" curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/\n"
--"\n"
--" If the proxy is specified with --proxy1.0 instead of --proxy or -x, then\n"
--" curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.\n"
--"\n"
--, stdout);
-- fputs(
--" curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.\n"
--"\n"
--" See also the environment variables Curl supports that offer further proxy\n"
--" control.\n"
--"\n"
--" Most FTP proxy servers are set up to appear as a normal FTP server from the\n"
--" client's perspective, with special commands to select the remote FTP server.\n"
--" curl supports the -u, -Q and --ftp-account options that can be used to\n"
--" set up transfers through many FTP proxies. For example, a file can be\n"
--, stdout);
-- fputs(
--" uploaded to a remote FTP server using a Blue Coat FTP proxy with the\n"
--" options:\n"
--"\n"
--" curl -u \"Remote-FTP-Username@remote.ftp.server Proxy-Username:Remote-Pass\" \\\n"
--" --ftp-account Proxy-Password --upload-file local-file \\\n"
--" ftp://my-ftp.proxy.server:21/remote/upload/path/\n"
--"\n"
--" See the manual for your FTP proxy to determine the form it expects to set up\n"
--" transfers, and curl's -v option to see exactly what curl is sending.\n"
--"\n"
--"RANGES\n"
--"\n"
--" HTTP 1.1 introduced byte-ranges. Using this, a client can request\n"
--, stdout);
-- fputs(
--" to get only one or more subparts of a specified document. Curl supports\n"
--" this with the -r flag.\n"
--"\n"
--" Get the first 100 bytes of a document:\n"
--"\n"
--" curl -r 0-99 http://www.get.this/\n"
--"\n"
--" Get the last 500 bytes of a document:\n"
--"\n"
--" curl -r -500 http://www.get.this/\n"
--"\n"
--" Curl also supports simple ranges for FTP files as well. Then you can only\n"
--" specify start and stop position.\n"
--"\n"
--" Get the first 100 bytes of a document using FTP:\n"
--"\n"
--" curl -r 0-99 ftp://www.get.this/README\n"
--"\n"
--"UPLOADING\n"
--"\n"
--, stdout);
-- fputs(
--" FTP / FTPS / SFTP / SCP\n"
--"\n"
--" Upload all data on stdin to a specified server:\n"
--"\n"
--" curl -T - ftp://ftp.upload.com/myfile\n"
--"\n"
--" Upload data from a specified file, login with user and password:\n"
--"\n"
--" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/myfile\n"
--"\n"
--" Upload a local file to the remote site, and use the local file name at the remote\n"
--" site too:\n"
--"\n"
--" curl -T uploadfile -u user:passwd ftp://ftp.upload.com/\n"
--"\n"
--" Upload a local file to get appended to the remote file:\n"
--"\n"
--, stdout);
-- fputs(
--" curl -T localfile -a ftp://ftp.upload.com/remotefile\n"
--"\n"
--" Curl also supports ftp upload through a proxy, but only if the proxy is\n"
--" configured to allow that kind of tunneling. If it does, you can run curl in\n"
--" a fashion similar to:\n"
--"\n"
--" curl --proxytunnel -x proxy:port -T localfile ftp.upload.com\n"
--"\n"
--" HTTP\n"
--"\n"
--" Upload all data on stdin to a specified HTTP site:\n"
--"\n"
--" curl -T - http://www.upload.com/myfile\n"
--"\n"
--" Note that the HTTP server must have been configured to accept PUT before\n"
--, stdout);
-- fputs(
--" this can be done successfully.\n"
--"\n"
--" For other ways to do HTTP data upload, see the POST section below.\n"
--"\n"
--"VERBOSE / DEBUG\n"
--"\n"
--" If curl fails where it isn't supposed to, if the servers don't let you in,\n"
--" if you can't understand the responses: use the -v flag to get verbose\n"
--" fetching. Curl will output lots of info and what it sends and receives in\n"
--" order to let the user see all client-server interaction (but it won't show\n"
--" you the actual data).\n"
--"\n"
--" curl -v ftp://ftp.upload.com/\n"
--"\n"
--, stdout);
-- fputs(
--" To get even more details and information on what curl does, try using the\n"
--" --trace or --trace-ascii options with a given file name to log to, like\n"
--" this:\n"
--"\n"
--" curl --trace trace.txt www.haxx.se\n"
--"\n"
--"\n"
--"DETAILED INFORMATION\n"
--"\n"
--" Different protocols provide different ways of getting detailed information\n"
--" about specific files/documents. To get curl to show detailed information\n"
--" about a single file, you should use -I/--head option. It displays all\n"
--, stdout);
-- fputs(
--" available info on a single file for HTTP and FTP. The HTTP information is a\n"
--" lot more extensive.\n"
--"\n"
--" For HTTP, you can get the header information (the same as -I would show)\n"
--" shown before the data by using -i/--include. Curl understands the\n"
--" -D/--dump-header option when getting files from both FTP and HTTP, and it\n"
--" will then store the headers in the specified file.\n"
--"\n"
--" Store the HTTP headers in a separate file (headers.txt in the example):\n"
--"\n"
--, stdout);
-- fputs(
--" curl --dump-header headers.txt curl.haxx.se\n"
--"\n"
--" Note that headers stored in a separate file can be very useful at a later\n"
--" time if you want curl to use cookies sent by the server. More about that in\n"
--" the cookies section.\n"
--"\n"
--"POST (HTTP)\n"
--"\n"
--" It's easy to post data using curl. This is done using the -d <data>\n"
--" option. The post data must be urlencoded.\n"
--"\n"
--" Post a simple \"name\" and \"phone\" guestbook.\n"
--"\n"
--" curl -d \"name=Rafael%20Sagula&phone=3320780\" \\\n"
--, stdout);
-- fputs(
--" http://www.where.com/guest.cgi\n"
--"\n"
--" How to post a form with curl, lesson #1:\n"
--"\n"
--" Dig out all the <input> tags in the form that you want to fill in. (There's\n"
--" a perl program called formfind.pl on the curl site that helps with this).\n"
--"\n"
--" If there's a \"normal\" post, you use -d to post. -d takes a full \"post\n"
--" string\", which is in the format\n"
--"\n"
--" <variable1>=<data1>&<variable2>=<data2>&...\n"
--"\n"
--" The 'variable' names are the names set with \"name=\" in the <input> tags, and\n"
--, stdout);
-- fputs(
--" the data is the contents you want to fill in for the inputs. The data *must*\n"
--" be properly URL encoded. That means you replace space with + and that you\n"
--" replace weird letters with %XX where XX is the hexadecimal representation of\n"
--" the letter's ASCII code.\n"
--"\n"
--" Example:\n"
--"\n"
--" (page located at http://www.formpost.com/getthis/\n"
--"\n"
--" <form action=\"post.cgi\" method=\"post\">\n"
--" <input name=user size=10>\n"
--" <input name=pass type=password size=10>\n"
--, stdout);
-- fputs(
--" <input name=id type=hidden value=\"blablabla\">\n"
--" <input name=ding value=\"submit\">\n"
--" </form>\n"
--"\n"
--" We want to enter user 'foobar' with password '12345'.\n"
--"\n"
--" To post to this, you enter a curl command line like:\n"
--"\n"
--" curl -d \"user=foobar&pass=12345&id=blablabla&ding=submit\" (continues)\n"
--" http://www.formpost.com/getthis/post.cgi\n"
--"\n"
--"\n"
--" While -d uses the application/x-www-form-urlencoded mime-type, generally\n"
--, stdout);
-- fputs(
--" understood by CGI's and similar, curl also supports the more capable\n"
--" multipart/form-data type. This latter type supports things like file upload.\n"
--"\n"
--" -F accepts parameters like -F \"name=contents\". If you want the contents to\n"
--" be read from a file, use <@filename> as contents. When specifying a file,\n"
--" you can also specify the file content type by appending ';type=<mime type>'\n"
--" to the file name. You can also post the contents of several files in one\n"
--, stdout);
-- fputs(
--" field. For example, the field name 'coolfiles' is used to send three files,\n"
--" with different content types using the following syntax:\n"
--"\n"
--" curl -F \"coolfiles=@fil1.gif;type=image/gif,fil2.txt,fil3.html\" \\\n"
--" http://www.post.com/postit.cgi\n"
--"\n"
--" If the content-type is not specified, curl will try to guess from the file\n"
--" extension (it only knows a few), or use the previously specified type (from\n"
--" an earlier file if several files are specified in a list) or else it will\n"
--, stdout);
-- fputs(
--" use the default type 'application/octet-stream'.\n"
--"\n"
--" Emulate a fill-in form with -F. Let's say you fill in three fields in a\n"
--" form. One field is a file name which to post, one field is your name and one\n"
--" field is a file description. We want to post the file we have written named\n"
--" \"cooltext.txt\". To let curl do the posting of this data instead of your\n"
--" favourite browser, you have to read the HTML source of the form page and\n"
--, stdout);
-- fputs(
--" find the names of the input fields. In our example, the input field names\n"
--" are 'file', 'yourname' and 'filedescription'.\n"
--"\n"
--" curl -F \"file=@cooltext.txt\" -F \"yourname=Daniel\" \\\n"
--" -F \"filedescription=Cool text file with cool text inside\" \\\n"
--" http://www.post.com/postit.cgi\n"
--"\n"
--" To send two files in one post you can do it in two ways:\n"
--"\n"
--" 1. Send multiple files in a single \"field\" with a single field name:\n"
--"\n"
--" curl -F \"pictures=@dog.gif,cat.gif\"\n"
--"\n"
--, stdout);
-- fputs(
--" 2. Send two fields with two field names:\n"
--"\n"
--" curl -F \"docpicture=@dog.gif\" -F \"catpicture=@cat.gif\"\n"
--"\n"
--" To send a field value literally without interpreting a leading '@'\n"
--" or '<', or an embedded ';type=', use --form-string instead of\n"
--" -F. This is recommended when the value is obtained from a user or\n"
--" some other unpredictable source. Under these circumstances, using\n"
--" -F instead of --form-string would allow a user to trick curl into\n"
--" uploading a file.\n"
--"\n"
--"REFERRER\n"
--"\n"
--, stdout);
-- fputs(
--" An HTTP request has the option to include information about which address\n"
--" referred it to the actual page. Curl allows you to specify the\n"
--" referrer to be used on the command line. It is especially useful to\n"
--" fool or trick stupid servers or CGI scripts that rely on that information\n"
--" being available or contain certain data.\n"
--"\n"
--" curl -e www.coolsite.com http://www.showme.com/\n"
--"\n"
--" NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL.\n"
--"\n"
--"USER AGENT\n"
--"\n"
--, stdout);
-- fputs(
--" An HTTP request has the option to include information about the browser\n"
--" that generated the request. Curl allows it to be specified on the command\n"
--" line. It is especially useful to fool or trick stupid servers or CGI\n"
--" scripts that only accept certain browsers.\n"
--"\n"
--" Example:\n"
--"\n"
--" curl -A 'Mozilla/3.0 (Win95; I)' http://www.nationsbank.com/\n"
--"\n"
--" Other common strings:\n"
--" 'Mozilla/3.0 (Win95; I)' Netscape Version 3 for Windows 95\n"
--, stdout);
-- fputs(
--" 'Mozilla/3.04 (Win95; U)' Netscape Version 3 for Windows 95\n"
--" 'Mozilla/2.02 (OS/2; U)' Netscape Version 2 for OS/2\n"
--" 'Mozilla/4.04 [en] (X11; U; AIX 4.2; Nav)' NS for AIX\n"
--" 'Mozilla/4.05 [en] (X11; U; Linux 2.0.32 i586)' NS for Linux\n"
--"\n"
--" Note that Internet Explorer tries hard to be compatible in every way:\n"
--" 'Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)' MSIE for W95\n"
--"\n"
--" Mozilla is not the only possible User-Agent name:\n"
--, stdout);
-- fputs(
--" 'Konqueror/1.0' KDE File Manager desktop client\n"
--" 'Lynx/2.7.1 libwww-FM/2.14' Lynx command line browser\n"
--"\n"
--"COOKIES\n"
--"\n"
--" Cookies are generally used by web servers to keep state information at the\n"
--" client's side. The server sets cookies by sending a response line in the\n"
--" headers that looks like 'Set-Cookie: <data>' where the data part then\n"
--" typically contains a set of NAME=VALUE pairs (separated by semicolons ';'\n"
--, stdout);
-- fputs(
--" like \"NAME1=VALUE1; NAME2=VALUE2;\"). The server can also specify for what\n"
--" path the \"cookie\" should be used for (by specifying \"path=value\"), when the\n"
--" cookie should expire (\"expire=DATE\"), for what domain to use it\n"
--" (\"domain=NAME\") and if it should be used on secure connections only\n"
--" (\"secure\").\n"
--"\n"
--" If you've received a page from a server that contains a header like:\n"
--" Set-Cookie: sessionid=boo123; path=\"/foo\";\n"
--"\n"
--, stdout);
-- fputs(
--" it means the server wants that first pair passed on when we get anything in\n"
--" a path beginning with \"/foo\".\n"
--"\n"
--" Example, get a page that wants my name passed in a cookie:\n"
--"\n"
--" curl -b \"name=Daniel\" www.sillypage.com\n"
--"\n"
--" Curl also has the ability to use previously received cookies in following\n"
--" sessions. If you get cookies from a server and store them in a file in a\n"
--" manner similar to:\n"
--"\n"
--" curl --dump-header headers www.example.com\n"
--"\n"
--, stdout);
-- fputs(
--" ... you can then in a second connect to that (or another) site, use the\n"
--" cookies from the 'headers' file like:\n"
--"\n"
--" curl -b headers www.example.com\n"
--"\n"
--" While saving headers to a file is a working way to store cookies, it is\n"
--" however error-prone and not the preferred way to do this. Instead, make curl\n"
--" save the incoming cookies using the well-known netscape cookie format like\n"
--" this:\n"
--"\n"
--" curl -c cookies.txt www.example.com\n"
--"\n"
--, stdout);
-- fputs(
--" Note that by specifying -b you enable the \"cookie awareness\" and with -L\n"
--" you can make curl follow a location: (which often is used in combination\n"
--" with cookies). So that if a site sends cookies and a location, you can\n"
--" use a non-existing file to trigger the cookie awareness like:\n"
--"\n"
--" curl -L -b empty.txt www.example.com\n"
--"\n"
--" The file to read cookies from must be formatted using plain HTTP headers OR\n"
--" as netscape's cookie file. Curl will determine what kind it is based on the\n"
--, stdout);
-- fputs(
--" file contents. In the above command, curl will parse the header and store\n"
--" the cookies received from www.example.com. curl will send to the server the\n"
--" stored cookies which match the request as it follows the location. The\n"
--" file \"empty.txt\" may be a nonexistent file.\n"
--"\n"
--" Alas, to both read and write cookies from a netscape cookie file, you can\n"
--" set both -b and -c to use the same file:\n"
--"\n"
--" curl -b cookies.txt -c cookies.txt www.example.com\n"
--"\n"
--"PROGRESS METER\n"
--"\n"
--, stdout);
-- fputs(
--" The progress meter exists to show a user that something actually is\n"
--" happening. The different fields in the output have the following meaning:\n"
--"\n"
--" % Total % Received % Xferd Average Speed Time Curr.\n"
--" Dload Upload Total Current Left Speed\n"
--" 0 151M 0 38608 0 0 9406 0 4:41:43 0:00:04 4:41:39 9287\n"
--"\n"
--" From left-to-right:\n"
--" % - percentage completed of the whole transfer\n"
--, stdout);
-- fputs(
--" Total - total size of the whole expected transfer\n"
--" % - percentage completed of the download\n"
--" Received - currently downloaded amount of bytes\n"
--" % - percentage completed of the upload\n"
--" Xferd - currently uploaded amount of bytes\n"
--" Average Speed\n"
--" Dload - the average transfer speed of the download\n"
--" Average Speed\n"
--" Upload - the average transfer speed of the upload\n"
--" Time Total - expected time to complete the operation\n"
--, stdout);
-- fputs(
--" Time Current - time passed since the invoke\n"
--" Time Left - expected time left to completion\n"
--" Curr.Speed - the average transfer speed the last 5 seconds (the first\n"
--" 5 seconds of a transfer is based on less time of course.)\n"
--"\n"
--" The -# option will display a totally different progress bar that doesn't\n"
--" need much explanation!\n"
--"\n"
--"SPEED LIMIT\n"
--"\n"
--" Curl allows the user to set the transfer speed conditions that must be met\n"
--, stdout);
-- fputs(
--" to let the transfer keep going. By using the switch -y and -Y you\n"
--" can make curl abort transfers if the transfer speed is below the specified\n"
--" lowest limit for a specified time.\n"
--"\n"
--" To have curl abort the download if the speed is slower than 3000 bytes per\n"
--" second for 1 minute, run:\n"
--"\n"
--" curl -Y 3000 -y 60 www.far-away-site.com\n"
--"\n"
--" This can very well be used in combination with the overall time limit, so\n"
--" that the above operation must be completed in whole within 30 minutes:\n"
--"\n"
--, stdout);
-- fputs(
--" curl -m 1800 -Y 3000 -y 60 www.far-away-site.com\n"
--"\n"
--" Forcing curl not to transfer data faster than a given rate is also possible,\n"
--" which might be useful if you're using a limited bandwidth connection and you\n"
--" don't want your transfer to use all of it (sometimes referred to as\n"
--" \"bandwidth throttle\").\n"
--"\n"
--" Make curl transfer data no faster than 10 kilobytes per second:\n"
--"\n"
--" curl --limit-rate 10K www.far-away-site.com\n"
--"\n"
--" or\n"
--"\n"
--" curl --limit-rate 10240 www.far-away-site.com\n"
--"\n"
--, stdout);
-- fputs(
--" Or prevent curl from uploading data faster than 1 megabyte per second:\n"
--"\n"
--" curl -T upload --limit-rate 1M ftp://uploadshereplease.com\n"
--"\n"
--" When using the --limit-rate option, the transfer rate is regulated on a\n"
--" per-second basis, which will cause the total transfer speed to become lower\n"
--" than the given number. Sometimes of course substantially lower, if your\n"
--" transfer stalls during periods.\n"
--"\n"
--"CONFIG FILE\n"
--"\n"
--" Curl automatically tries to read the .curlrc file (or _curlrc file on win32\n"
--, stdout);
-- fputs(
--" systems) from the user's home dir on startup.\n"
--"\n"
--" The config file could be made up with normal command line switches, but you\n"
--" can also specify the long options without the dashes to make it more\n"
--" readable. You can separate the options and the parameter with spaces, or\n"
--" with = or :. Comments can be used within the file. If the first letter on a\n"
--" line is a '#'-symbol the rest of the line is treated as a comment.\n"
--"\n"
--" If you want the parameter to contain spaces, you must enclose the entire\n"
--, stdout);
-- fputs(
--" parameter within double quotes (\"). Within those quotes, you specify a\n"
--" quote as \\\".\n"
--"\n"
--" NOTE: You must specify options and their arguments on the same line.\n"
--"\n"
--" Example, set default time out and proxy in a config file:\n"
--"\n"
--" # We want a 30 minute timeout:\n"
--" -m 1800\n"
--" # ... and we use a proxy for all accesses:\n"
--" proxy = proxy.our.domain.com:8080\n"
--"\n"
--" White spaces ARE significant at the end of lines, but all white spaces\n"
--, stdout);
-- fputs(
--" leading up to the first characters of each line are ignored.\n"
--"\n"
--" Prevent curl from reading the default file by using -q as the first command\n"
--" line parameter, like:\n"
--"\n"
--" curl -q www.thatsite.com\n"
--"\n"
--" Force curl to get and display a local help page in case it is invoked\n"
--" without URL by making a config file similar to:\n"
--"\n"
--" # default url to get\n"
--" url = \"http://help.with.curl.com/curlhelp.html\"\n"
--"\n"
--" You can specify another config file to be read by using the -K/--config\n"
--, stdout);
-- fputs(
--" flag. If you set config file name to \"-\" it'll read the config from stdin,\n"
--" which can be handy if you want to hide options from being visible in process\n"
--" tables etc:\n"
--"\n"
--" echo \"user = user:passwd\" | curl -K - http://that.secret.site.com\n"
--"\n"
--"EXTRA HEADERS\n"
--"\n"
--" When using curl in your own very special programs, you may end up needing\n"
--" to pass on your own custom headers when getting a web page. You can do\n"
--" this by using the -H flag.\n"
--"\n"
--, stdout);
-- fputs(
--" Example, send the header \"X-you-and-me: yes\" to the server when getting a\n"
--" page:\n"
--"\n"
--" curl -H \"X-you-and-me: yes\" www.love.com\n"
--"\n"
--" This can also be useful in case you want curl to send a different text in a\n"
--" header than it normally does. The -H header you specify then replaces the\n"
--" header curl would normally send. If you replace an internal header with an\n"
--" empty one, you prevent that header from being sent. To prevent the Host:\n"
--" header from being used:\n"
--"\n"
--, stdout);
-- fputs(
--" curl -H \"Host:\" www.server.com\n"
--"\n"
--"FTP and PATH NAMES\n"
--"\n"
--" Do note that when getting files with the ftp:// URL, the given path is\n"
--" relative the directory you enter. To get the file 'README' from your home\n"
--" directory at your ftp site, do:\n"
--"\n"
--" curl ftp://user:passwd@my.site.com/README\n"
--"\n"
--" But if you want the README file from the root directory of that very same\n"
--" site, you need to specify the absolute file name:\n"
--"\n"
--" curl ftp://user:passwd@my.site.com//README\n"
--"\n"
--, stdout);
-- fputs(
--" (I.e with an extra slash in front of the file name.)\n"
--"\n"
--"SFTP and SCP and PATH NAMES\n"
--"\n"
--" With sftp: and scp: URLs, the path name given is the absolute name on the\n"
--" server. To access a file relative to the remote user's home directory,\n"
--" prefix the file with /~/ , such as:\n"
--"\n"
--" curl -u $USER sftp://home.example.com/~/.bashrc\n"
--"\n"
--"FTP and firewalls\n"
--"\n"
--" The FTP protocol requires one of the involved parties to open a second\n"
--, stdout);
-- fputs(
--" connection as soon as data is about to get transferred. There are two ways to\n"
--" do this.\n"
--"\n"
--" The default way for curl is to issue the PASV command which causes the\n"
--" server to open another port and await another connection performed by the\n"
--" client. This is good if the client is behind a firewall that doesn't allow\n"
--" incoming connections.\n"
--"\n"
--" curl ftp.download.com\n"
--"\n"
--" If the server, for example, is behind a firewall that doesn't allow connections\n"
--, stdout);
-- fputs(
--" on ports other than 21 (or if it just doesn't support the PASV command), the\n"
--" other way to do it is to use the PORT command and instruct the server to\n"
--" connect to the client on the given IP number and port (as parameters to the\n"
--" PORT command).\n"
--"\n"
--" The -P flag to curl supports a few different options. Your machine may have\n"
--" several IP-addresses and/or network interfaces and curl allows you to select\n"
--" which of them to use. Default address can also be used:\n"
--"\n"
--, stdout);
-- fputs(
--" curl -P - ftp.download.com\n"
--"\n"
--" Download with PORT but use the IP address of our 'le0' interface (this does\n"
--" not work on windows):\n"
--"\n"
--" curl -P le0 ftp.download.com\n"
--"\n"
--" Download with PORT but use 192.168.0.10 as our IP address to use:\n"
--"\n"
--" curl -P 192.168.0.10 ftp.download.com\n"
--"\n"
--"NETWORK INTERFACE\n"
--"\n"
--" Get a web page from a server using a specified port for the interface:\n"
--"\n"
--" curl --interface eth0:1 http://www.netscape.com/\n"
--"\n"
--" or\n"
--"\n"
--, stdout);
-- fputs(
--" curl --interface 192.168.1.10 http://www.netscape.com/\n"
--"\n"
--"HTTPS\n"
--"\n"
--" Secure HTTP requires SSL libraries to be installed and used when curl is\n"
--" built. If that is done, curl is capable of retrieving and posting documents\n"
--" using the HTTPS protocol.\n"
--"\n"
--" Example:\n"
--"\n"
--" curl https://www.secure-site.com\n"
--"\n"
--" Curl is also capable of using your personal certificates to get/post files\n"
--" from sites that require valid certificates. The only drawback is that the\n"
--, stdout);
-- fputs(
--" certificate needs to be in PEM-format. PEM is a standard and open format to\n"
--" store certificates with, but it is not used by the most commonly used\n"
--" browsers (Netscape and MSIE both use the so called PKCS#12 format). If you\n"
--" want curl to use the certificates you use with your (favourite) browser, you\n"
--" may need to download/compile a converter that can convert your browser's\n"
--" formatted certificates to PEM formatted ones. This kind of converter is\n"
--, stdout);
-- fputs(
--" included in recent versions of OpenSSL, and for older versions Dr Stephen\n"
--" N. Henson has written a patch for SSLeay that adds this functionality. You\n"
--" can get his patch (that requires an SSLeay installation) from his site at:\n"
--" http://www.drh-consultancy.demon.co.uk/\n"
--"\n"
--" Example on how to automatically retrieve a document using a certificate with\n"
--" a personal password:\n"
--"\n"
--" curl -E /path/to/cert.pem:password https://secure.site.com/\n"
--"\n"
--, stdout);
-- fputs(
--" If you neglect to specify the password on the command line, you will be\n"
--" prompted for the correct password before any data can be received.\n"
--"\n"
--" Many older SSL-servers have problems with SSLv3 or TLS, which newer versions\n"
--" of OpenSSL etc use, therefore it is sometimes useful to specify what\n"
--" SSL-version curl should use. Use -3, -2 or -1 to specify that exact SSL\n"
--" version to use (for SSLv3, SSLv2 or TLSv1 respectively):\n"
--"\n"
--" curl -2 https://secure.site.com/\n"
--"\n"
--, stdout);
-- fputs(
--" Otherwise, curl will first attempt to use v3 and then v2.\n"
--"\n"
--" To use OpenSSL to convert your favourite browser's certificate into a PEM\n"
--" formatted one that curl can use, do something like this:\n"
--"\n"
--" In Netscape, you start with hitting the 'Security' menu button.\n"
--"\n"
--" Select 'certificates->yours' and then pick a certificate in the list\n"
--"\n"
--" Press the 'Export' button\n"
--"\n"
--" enter your PIN code for the certs\n"
--"\n"
--" select a proper place to save it\n"
--"\n"
--, stdout);
-- fputs(
--" Run the 'openssl' application to convert the certificate. If you cd to the\n"
--" openssl installation, you can do it like:\n"
--"\n"
--" # ./apps/openssl pkcs12 -in [file you saved] -clcerts -out [PEMfile]\n"
--"\n"
--" In Firefox, select Options, then Advanced, then the Encryption tab,\n"
--" View Certificates. This opens the Certificate Manager, where you can\n"
--" Export. Be sure to select PEM for the Save as type.\n"
--"\n"
--" In Internet Explorer, select Internet Options, then the Content tab, then\n"
--, stdout);
-- fputs(
--" Certificates. Then you can Export, and depending on the format you may\n"
--" need to convert to PEM.\n"
--"\n"
--" In Chrome, select Settings, then Show Advanced Settings. Under HTTPS/SSL\n"
--" select Manage Certificates.\n"
--"\n"
--"RESUMING FILE TRANSFERS\n"
--"\n"
--" To continue a file transfer where it was previously aborted, curl supports\n"
--" resume on HTTP(S) downloads as well as FTP uploads and downloads.\n"
--"\n"
--" Continue downloading a document:\n"
--"\n"
--" curl -C - -o file ftp://ftp.server.com/path/file\n"
--"\n"
--, stdout);
-- fputs(
--" Continue uploading a document(*1):\n"
--"\n"
--" curl -C - -T file ftp://ftp.server.com/path/file\n"
--"\n"
--" Continue downloading a document from a web server(*2):\n"
--"\n"
--" curl -C - -o file http://www.server.com/\n"
--"\n"
--" (*1) = This requires that the FTP server supports the non-standard command\n"
--" SIZE. If it doesn't, curl will say so.\n"
--"\n"
--" (*2) = This requires that the web server supports at least HTTP/1.1. If it\n"
--" doesn't, curl will say so.\n"
--"\n"
--"TIME CONDITIONS\n"
--"\n"
--, stdout);
-- fputs(
--" HTTP allows a client to specify a time condition for the document it\n"
--" requests. It is If-Modified-Since or If-Unmodified-Since. Curl allows you to\n"
--" specify them with the -z/--time-cond flag.\n"
--"\n"
--" For example, you can easily make a download that only gets performed if the\n"
--" remote file is newer than a local copy. It would be made like:\n"
--"\n"
--" curl -z local.html http://remote.server.com/remote.html\n"
--"\n"
--" Or you can download a file only if the local file is newer than the remote\n"
--, stdout);
-- fputs(
--" one. Do this by prepending the date string with a '-', as in:\n"
--"\n"
--" curl -z -local.html http://remote.server.com/remote.html\n"
--"\n"
--" You can specify a \"free text\" date as condition. Tell curl to only download\n"
--" the file if it was updated since January 12, 2012:\n"
--"\n"
--" curl -z \"Jan 12 2012\" http://remote.server.com/remote.html\n"
--"\n"
--" Curl will then accept a wide range of date formats. You always make the date\n"
--" check the other way around by prepending it with a dash '-'.\n"
--"\n"
--"DICT\n"
--"\n"
--" For fun try\n"
--"\n"
--, stdout);
-- fputs(
--" curl dict://dict.org/m:curl\n"
--" curl dict://dict.org/d:heisenbug:jargon\n"
--" curl dict://dict.org/d:daniel:web1913\n"
--"\n"
--" Aliases for 'm' are 'match' and 'find', and aliases for 'd' are 'define'\n"
--" and 'lookup'. For example,\n"
--"\n"
--" curl dict://dict.org/find:curl\n"
--"\n"
--" Commands that break the URL description of the RFC (but not the DICT\n"
--" protocol) are\n"
--"\n"
--" curl dict://dict.org/show:db\n"
--" curl dict://dict.org/show:strat\n"
--"\n"
--, stdout);
-- fputs(
--" Authentication is still missing (but this is not required by the RFC)\n"
--"\n"
--"LDAP\n"
--"\n"
--" If you have installed the OpenLDAP library, curl can take advantage of it\n"
--" and offer ldap:// support.\n"
--"\n"
--" LDAP is a complex thing and writing an LDAP query is not an easy task. I do\n"
--" advise you to dig up the syntax description for that elsewhere. Two places\n"
--" that might suit you are:\n"
--"\n"
--" Netscape's \"Netscape Directory SDK 3.0 for C Programmer's Guide Chapter 10:\n"
--" Working with LDAP URLs\":\n"
--, stdout);
-- fputs(
--" http://developer.netscape.com/docs/manuals/dirsdk/csdk30/url.htm\n"
--"\n"
--" RFC 2255, \"The LDAP URL Format\" http://curl.haxx.se/rfc/rfc2255.txt\n"
--"\n"
--" To show you an example, this is how I can get all people from my local LDAP\n"
--" server that has a certain sub-domain in their email address:\n"
--"\n"
--" curl -B \"ldap://ldap.frontec.se/o=frontec??sub?mail=*sth.frontec.se\"\n"
--"\n"
--" If I want the same info in HTML format, I can get it by not using the -B\n"
--" (enforce ASCII) flag.\n"
--"\n"
--"ENVIRONMENT VARIABLES\n"
--"\n"
--, stdout);
-- fputs(
--" Curl reads and understands the following environment variables:\n"
--"\n"
--" http_proxy, HTTPS_PROXY, FTP_PROXY\n"
--"\n"
--" They should be set for protocol-specific proxies. General proxy should be\n"
--" set with\n"
--"\n"
--" ALL_PROXY\n"
--"\n"
--" A comma-separated list of host names that shouldn't go through any proxy is\n"
--" set in (only an asterisk, '*' matches all hosts)\n"
--"\n"
--" NO_PROXY\n"
--"\n"
--" If the host name matches one of these strings, or the host is within the\n"
--, stdout);
-- fputs(
--" domain of one of these strings, transactions with that node will not be\n"
--" proxied.\n"
--"\n"
--"\n"
--" The usage of the -x/--proxy flag overrides the environment variables.\n"
--"\n"
--"NETRC\n"
--"\n"
--" Unix introduced the .netrc concept a long time ago. It is a way for a user\n"
--" to specify name and password for commonly visited FTP sites in a file so\n"
--" that you don't have to type them in each time you visit those sites. You\n"
--" realize this is a big security risk if someone else gets hold of your\n"
--, stdout);
-- fputs(
--" passwords, so therefore most unix programs won't read this file unless it is\n"
--" only readable by yourself (curl doesn't care though).\n"
--"\n"
--" Curl supports .netrc files if told to (using the -n/--netrc and\n"
--" --netrc-optional options). This is not restricted to just FTP,\n"
--" so curl can use it for all protocols where authentication is used.\n"
--"\n"
--" A very simple .netrc file could look something like:\n"
--"\n"
--" machine curl.haxx.se login iamdaniel password mysecret\n"
--"\n"
--"CUSTOM OUTPUT\n"
--"\n"
--, stdout);
-- fputs(
--" To better allow script programmers to get to know about the progress of\n"
--" curl, the -w/--write-out option was introduced. Using this, you can specify\n"
--" what information from the previous transfer you want to extract.\n"
--"\n"
--" To display the amount of bytes downloaded together with some text and an\n"
--" ending newline:\n"
--"\n"
--" curl -w 'We downloaded %{size_download} bytes\\n' www.download.com\n"
--"\n"
--"KERBEROS FTP TRANSFER\n"
--"\n"
--" Curl supports kerberos4 and kerberos5/GSSAPI for FTP transfers. You need\n"
--, stdout);
-- fputs(
--" the kerberos package installed and used at curl build time for it to be\n"
--" available.\n"
--"\n"
--" First, get the krb-ticket the normal way, like with the kinit/kauth tool.\n"
--" Then use curl in way similar to:\n"
--"\n"
--" curl --krb private ftp://krb4site.com -u username:fakepwd\n"
--"\n"
--" There's no use for a password on the -u switch, but a blank one will make\n"
--" curl ask for one and you already entered the real password to kinit/kauth.\n"
--"\n"
--"TELNET\n"
--"\n"
--, stdout);
-- fputs(
--" The curl telnet support is basic and very easy to use. Curl passes all data\n"
--" passed to it on stdin to the remote server. Connect to a remote telnet\n"
--" server using a command line similar to:\n"
--"\n"
--" curl telnet://remote.server.com\n"
--"\n"
--" And enter the data to pass to the server on stdin. The result will be sent\n"
--" to stdout or to the file you specify with -o.\n"
--"\n"
--" You might want the -N/--no-buffer option to switch off the buffered output\n"
--" for slow connections or similar.\n"
--"\n"
--, stdout);
-- fputs(
--" Pass options to the telnet protocol negotiation, by using the -t option. To\n"
--" tell the server we use a vt100 terminal, try something like:\n"
--"\n"
--" curl -tTTYPE=vt100 telnet://remote.server.com\n"
--"\n"
--" Other interesting options for it -t include:\n"
--"\n"
--" - XDISPLOC=<X display> Sets the X display location.\n"
--"\n"
--" - NEW_ENV=<var,val> Sets an environment variable.\n"
--"\n"
--" NOTE: The telnet protocol does not specify any way to login with a specified\n"
--, stdout);
-- fputs(
--" user and password so curl can't do that automatically. To do that, you need\n"
--" to track when the login prompt is received and send the username and\n"
--" password accordingly.\n"
--"\n"
--"PERSISTENT CONNECTIONS\n"
--"\n"
--" Specifying multiple files on a single command line will make curl transfer\n"
--" all of them, one after the other in the specified order.\n"
--"\n"
--" libcurl will attempt to use persistent connections for the transfers so that\n"
--" the second transfer to the same host can use the same connection that was\n"
--, stdout);
-- fputs(
--" already initiated and was left open in the previous transfer. This greatly\n"
--" decreases connection time for all but the first transfer and it makes a far\n"
--" better use of the network.\n"
--"\n"
--" Note that curl cannot use persistent connections for transfers that are used\n"
--" in subsequence curl invokes. Try to stuff as many URLs as possible on the\n"
--" same command line if they are using the same host, as that'll make the\n"
--" transfers faster. If you use an HTTP proxy for file transfers, practically\n"
--, stdout);
-- fputs(
--" all transfers will be persistent.\n"
--"\n"
--"MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE\n"
--"\n"
--" As is mentioned above, you can download multiple files with one command line\n"
--" by simply adding more URLs. If you want those to get saved to a local file\n"
--" instead of just printed to stdout, you need to add one save option for each\n"
--" URL you specify. Note that this also goes for the -O option (but not\n"
--" --remote-name-all).\n"
--"\n"
--" For example: get two files and use -O for the first and a custom file\n"
--, stdout);
-- fputs(
--" name for the second:\n"
--"\n"
--" curl -O http://url.com/file.txt ftp://ftp.com/moo.exe -o moo.jpg\n"
--"\n"
--" You can also upload multiple files in a similar fashion:\n"
--"\n"
--" curl -T local1 ftp://ftp.com/moo.exe -T local2 ftp://ftp.com/moo2.txt\n"
--"\n"
--"IPv6\n"
--"\n"
--" curl will connect to a server with IPv6 when a host lookup returns an IPv6\n"
--" address and fall back to IPv4 if the connection fails. The --ipv4 and --ipv6\n"
--" options can specify which address to use when both are available. IPv6\n"
--, stdout);
-- fputs(
--" addresses can also be specified directly in URLs using the syntax:\n"
--"\n"
--" http://[2001:1890:1112:1::20]/overview.html\n"
--"\n"
--" When this style is used, the -g option must be given to stop curl from\n"
--" interpreting the square brackets as special globbing characters. Link local\n"
--" and site local addresses including a scope identifier, such as fe80::1234%1,\n"
--" may also be used, but the scope portion must be numeric and the percent\n"
--" character must be URL escaped. The previous example in an SFTP URL might\n"
--, stdout);
-- fputs(
--" look like:\n"
--"\n"
--" sftp://[fe80::1234%251]/\n"
--"\n"
--" IPv6 addresses provided other than in URLs (e.g. to the --proxy, --interface\n"
--" or --ftp-port options) should not be URL encoded.\n"
--"\n"
--"METALINK\n"
--"\n"
--" Curl supports Metalink (both version 3 and 4 (RFC 5854) are supported), a way\n"
--" to list multiple URIs and hashes for a file. Curl will make use of the mirrors\n"
--" listed within for failover if there are errors (such as the file or server not\n"
--, stdout);
-- fputs(
--" being available). It will also verify the hash of the file after the download\n"
--" completes. The Metalink file itself is downloaded and processed in memory and\n"
--" not stored in the local file system.\n"
--"\n"
--" Example to use a remote Metalink file:\n"
--"\n"
--" curl --metalink http://www.example.com/example.metalink\n"
--"\n"
--" To use a Metalink file in the local file system, use FILE protocol (file://):\n"
--"\n"
--" curl --metalink file://example.metalink\n"
--"\n"
--, stdout);
-- fputs(
--" Please note that if FILE protocol is disabled, there is no way to use a local\n"
--" Metalink file at the time of this writing. Also note that if --metalink and\n"
--" --include are used together, --include will be ignored. This is because including\n"
--" headers in the response will break Metalink parser and if the headers are included\n"
--" in the file described in Metalink file, hash check will fail.\n"
--"\n"
--"MAILING LISTS\n"
--"\n"
--" For your convenience, we have several open mailing lists to discuss curl,\n"
--, stdout);
-- fputs(
--" its development and things relevant to this. Get all info at\n"
--" http://curl.haxx.se/mail/. Some of the lists available are:\n"
--"\n"
--" curl-users\n"
--"\n"
--" Users of the command line tool. How to use it, what doesn't work, new\n"
--" features, related tools, questions, news, installations, compilations,\n"
--" running, porting etc.\n"
--"\n"
--" curl-library\n"
--"\n"
--" Developers using or developing libcurl. Bugs, extensions, improvements.\n"
--"\n"
--" curl-announce\n"
--"\n"
--, stdout);
-- fputs(
--" Low-traffic. Only receives announcements of new public versions. At worst,\n"
--" that makes something like one or two mails per month, but usually only one\n"
--" mail every second month.\n"
--"\n"
--" curl-and-php\n"
--"\n"
--" Using the curl functions in PHP. Everything curl with a PHP angle. Or PHP\n"
--" with a curl angle.\n"
--"\n"
--" curl-and-python\n"
--"\n"
--" Python hackers using curl with or without the python binding pycurl.\n"
--"\n"
--" Please direct curl questions, feature requests and trouble reports to one of\n"
--, stdout);
-- fputs(
--" these mailing lists instead of mailing any individual.\n"
--, stdout) ;
--}
--#endif /* USE_MANUAL */
--#else
--/*
-- * NEVER EVER edit this manually, fix the mkhelp.pl script instead!
-- * Generation time: Tue Mar 25 11:29:49 2014
-- */
--#ifdef USE_MANUAL
--#include "tool_hugehelp.h"
--#include <zlib.h>
--#include "memdebug.h" /* keep this as LAST include */
--static const unsigned char hugehelpgz[] = {
-- /* This mumbo-jumbo is the huge help text compressed with gzip.
-- Thanks to this operation, the size of this data shrunk from 156972
-- to 47509 bytes. You can disable the use of compressed help
-- texts by NOT passing -c to the mkhelp.pl tool. */
-- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0xed, 0xbd,
-- 0x6b, 0x5b, 0x23, 0x57, 0x92, 0x2e, 0xfa, 0x9d, 0x5f, 0x91, 0xad, 0x3e,
-- 0x3d, 0xc0, 0xb4, 0x24, 0x2e, 0x75, 0xb1, 0x8b, 0xae, 0xf2, 0x18, 0x53,
-- 0x94, 0xcd, 0x36, 0x55, 0xb0, 0x81, 0xf2, 0x65, 0xdb, 0x7e, 0xea, 0x49,
-- 0x49, 0x09, 0x64, 0x23, 0x29, 0xd5, 0x99, 0x29, 0x28, 0x7a, 0x66, 0xf6,
-- 0x6f, 0x3f, 0x11, 0x6f, 0x44, 0xac, 0xb5, 0x32, 0x57, 0x0a, 0xca, 0x9e,
-- 0x76, 0x9f, 0x39, 0xfb, 0x1c, 0xcf, 0x34, 0x05, 0x52, 0xe6, 0xba, 0xc6,
-- 0x8a, 0x15, 0xd7, 0x37, 0x92, 0xe4, 0xb1, 0xff, 0x3e, 0xe0, 0x7f, 0x1f,
-- 0xe8, 0x3f, 0xfa, 0x77, 0x2d, 0x49, 0x4e, 0xcb, 0xe2, 0xaf, 0xd9, 0xb8,
-- 0xee, 0x7e, 0xf6, 0xc3, 0x87, 0xff, 0x48, 0xe4, 0xff, 0xe8, 0x9d, 0x9f,
-- 0xe9, 0xdf, 0xb5, 0x07, 0xdb, 0xde, 0x4a, 0xfc, 0x0b, 0xff, 0xf1, 0x61,
-- 0x33, 0x79, 0xec, 0x85, 0xff, 0x48, 0x36, 0xf0, 0xc2, 0x07, 0xed, 0xe1,
-- 0x25, 0xff, 0xfe, 0xe1, 0xc3, 0xc3, 0x9d, 0xfc, 0xcc, 0xa3, 0xe2, 0x1f,
-- 0x5b, 0xfc, 0xde, 0xcf, 0x1f, 0xf8, 0x57, 0xfa, 0x64, 0x6d, 0xed, 0xdd,
-- 0xfe, 0xdb, 0x43, 0x7b, 0x75, 0xbc, 0x2c, 0xa7, 0xc9, 0x20, 0xa9, 0xcb,
-- 0x74, 0x5e, 0x5d, 0x66, 0x65, 0x92, 0x26, 0xef, 0xcf, 0x8e, 0xd7, 0xd6,
-- 0xce, 0x7f, 0x7c, 0x77, 0x72, 0x7a, 0x7e, 0x74, 0xde, 0x78, 0xec, 0xa7,
-- 0x62, 0x51, 0xe7, 0xc5, 0xbc, 0xfa, 0x25, 0xf9, 0x89, 0x1e, 0x1a, 0x0e,
-- 0x87, 0xbf, 0xac, 0xad, 0xbd, 0x3e, 0x3c, 0x3f, 0x38, 0x3b, 0x3a, 0xbd,
-- 0x38, 0x3a, 0x79, 0xd7, 0x78, 0x36, 0xc9, 0xab, 0x84, 0x1a, 0xab, 0x8b,
-- 0x62, 0x4a, 0x3f, 0x7c, 0xfb, 0x93, 0xb4, 0x4e, 0x93, 0xcb, 0xb2, 0x98,
-- 0x25, 0x45, 0xc9, 0x5f, 0xa4, 0x49, 0x95, 0x95, 0xb7, 0x59, 0xd9, 0x4f,
-- 0x96, 0x55, 0x3e, 0xbf, 0x4a, 0x8a, 0x79, 0x96, 0x14, 0x97, 0x49, 0x7d,
-- 0x9d, 0x59, 0x73, 0xd5, 0x72, 0xb1, 0x28, 0xca, 0x3a, 0x9b, 0x24, 0x8b,
-- 0xb2, 0xa8, 0x8b, 0x71, 0x31, 0xad, 0x92, 0x8d, 0xd7, 0x47, 0x07, 0x17,
-- 0xfd, 0xe4, 0xcd, 0xd1, 0xf1, 0x21, 0xfd, 0xbc, 0x38, 0xc5, 0x8f, 0xf3,
-- 0x7e, 0xf2, 0xf5, 0xc9, 0xe9, 0x37, 0x87, 0x67, 0xfd, 0xe4, 0x9b, 0x0b,
-- 0xfe, 0x8c, 0x7f, 0xd2, 0x87, 0xc9, 0xd1, 0xdb, 0xfd, 0xd3, 0xbe, 0x35,
-- 0xc7, 0x7f, 0xf0, 0x87, 0xc7, 0xaf, 0xe9, 0x43, 0xf9, 0x87, 0xff, 0x3c,
-- 0x3d, 0x39, 0x7d, 0xd2, 0xc7, 0x4f, 0xfa, 0xeb, 0xec, 0xe2, 0xed, 0x29,
-- 0xff, 0x3c, 0xa7, 0x9f, 0xe7, 0x07, 0xfc, 0x03, 0x7d, 0x9c, 0xbf, 0xb5,
-- 0x9f, 0xe7, 0xae, 0xb9, 0x8b, 0xc3, 0xe3, 0x77, 0x87, 0x17, 0x49, 0x3a,
-- 0x9f, 0x24, 0x17, 0xf4, 0xd0, 0xe6, 0x90, 0x3e, 0xba, 0xce, 0x92, 0x71,
-- 0x31, 0x9b, 0xf1, 0x67, 0xb4, 0x0a, 0x93, 0xac, 0xca, 0xaf, 0xe6, 0x34,
-- 0x7c, 0x9a, 0xed, 0x5d, 0x51, 0xde, 0x24, 0x77, 0x79, 0x7d, 0x5d, 0x2c,
-- 0x6b, 0x9a, 0x30, 0xad, 0x47, 0x92, 0xcf, 0xeb, 0xac, 0x1c, 0x58, 0x73,
-- 0xe9, 0x98, 0x57, 0x78, 0xb8, 0xd6, 0x58, 0xcb, 0xe2, 0x92, 0x56, 0xae,
-- 0xa2, 0xa5, 0x1a, 0x2d, 0xab, 0x69, 0x91, 0x4e, 0x78, 0x81, 0xe8, 0xe5,
-- 0xcb, 0x25, 0x2d, 0x6d, 0x99, 0x8f, 0x6f, 0xaa, 0x64, 0x9a, 0xdf, 0x64,
-- 0xbc, 0x3c, 0x1f, 0xef, 0x6d, 0xb9, 0xfa, 0xd2, 0x7c, 0xba, 0xa4, 0x95,
-- 0x9c, 0xbb, 0xe6, 0xeb, 0x7c, 0x9c, 0x72, 0x07, 0x58, 0xaf, 0x64, 0xb9,
-- 0xe0, 0xd6, 0x64, 0x9d, 0x92, 0x45, 0x51, 0xd1, 0x4b, 0xe7, 0xe7, 0xc7,
-- 0x34, 0xf6, 0xf9, 0x3c, 0xc3, 0x38, 0xaa, 0x3e, 0xfd, 0x51, 0xdc, 0xe4,
-- 0x19, 0xfd, 0x72, 0x99, 0x4f, 0xb3, 0x44, 0xf6, 0xd1, 0x35, 0xc7, 0x1b,
-- 0x9a, 0x94, 0x59, 0xb5, 0x9c, 0x65, 0xb4, 0x84, 0x6f, 0xb3, 0x3a, 0x9d,
-- 0xe6, 0xf3, 0x1b, 0xfa, 0x95, 0xa7, 0x3e, 0x2b, 0xca, 0x6c, 0x98, 0xec,
-- 0x57, 0xc9, 0x7d, 0xb1, 0xa4, 0x39, 0x4f, 0xa7, 0xb4, 0xd3, 0x59, 0x32,
-- 0xca, 0xa6, 0xc5, 0x5d, 0x9f, 0xf7, 0x37, 0x99, 0x2f, 0x67, 0x23, 0x6a,
-- 0xa0, 0xb8, 0xf4, 0xcd, 0xa5, 0xf5, 0x92, 0x9a, 0x93, 0xa7, 0x67, 0x29,
-- 0xcd, 0x89, 0xde, 0x2d, 0x93, 0xeb, 0x8c, 0xe6, 0x5c, 0x2d, 0xf2, 0xf9,
-- 0x1f, 0x9a, 0xeb, 0x42, 0x8b, 0xbb, 0x28, 0xee, 0xb2, 0x92, 0xd6, 0x76,
-- 0x74, 0x9f, 0xd0, 0x22, 0x8c, 0x84, 0xf4, 0x2e, 0x89, 0xb4, 0x92, 0x94,
-- 0x9a, 0x70, 0x64, 0x37, 0x28, 0xb3, 0x69, 0xca, 0x24, 0xe4, 0xfa, 0xa0,
-- 0x7d, 0x3a, 0xcf, 0x1c, 0x8d, 0xe9, 0xab, 0x1b, 0x4f, 0x36, 0xf1, 0xf2,
-- 0x84, 0x66, 0x92, 0x4f, 0x2b, 0xda, 0x06, 0x3e, 0x0c, 0xb6, 0xd3, 0x34,
-- 0x64, 0x3e, 0x1c, 0x44, 0x91, 0xf7, 0xf3, 0x3a, 0xfd, 0x88, 0xee, 0x95,
-- 0x22, 0x07, 0x93, 0x6c, 0x91, 0xcd, 0x27, 0xd9, 0xbc, 0x1e, 0x26, 0x3f,
-- 0x16, 0xcb, 0x75, 0xea, 0xfb, 0x32, 0xa7, 0x35, 0x48, 0xb5, 0x29, 0xea,
-- 0x99, 0xc8, 0x60, 0x5c, 0xe6, 0x8b, 0x60, 0x2b, 0x8a, 0x39, 0x6d, 0x7e,
-- 0x72, 0xf6, 0xe6, 0x20, 0x79, 0xf2, 0xe2, 0xf3, 0xe7, 0x7e, 0xcf, 0xa9,
-- 0x81, 0x64, 0x9c, 0xce, 0x69, 0xc6, 0xd9, 0x38, 0xbf, 0xbc, 0x4f, 0x66,
-- 0xcb, 0x69, 0x9d, 0x2f, 0x68, 0xf5, 0xa9, 0xf3, 0x8a, 0x8f, 0xcd, 0x22,
-- 0x2d, 0xeb, 0x8a, 0x89, 0x00, 0x1f, 0x60, 0xee, 0x77, 0x65, 0x5e, 0xf3,
-- 0xf1, 0xc1, 0x77, 0x34, 0xc2, 0xac, 0xae, 0xac, 0x39, 0x26, 0x37, 0xea,
-- 0x67, 0x54, 0xa6, 0x63, 0x5a, 0xda, 0xb4, 0xa2, 0x4e, 0xf7, 0x5c, 0x5f,
-- 0xc9, 0x75, 0x5d, 0x2f, 0xf6, 0xb6, 0xb6, 0xaa, 0xbc, 0xce, 0x86, 0xff,
-- 0x4e, 0x87, 0xaf, 0x5f, 0xdf, 0x15, 0xfd, 0xfa, 0xba, 0xcc, 0xb2, 0xff,
-- 0x1c, 0x12, 0x11, 0xbb, 0x07, 0xa9, 0xdb, 0x7b, 0x1d, 0xd7, 0x55, 0x56,
-- 0x53, 0x07, 0x7f, 0x5b, 0x66, 0x73, 0x6e, 0x90, 0x86, 0x91, 0x4e, 0x17,
-- 0xd7, 0x29, 0xed, 0x66, 0x46, 0xc4, 0xc8, 0xc7, 0x99, 0xe8, 0x85, 0x07,
-- 0x25, 0x07, 0xfa, 0xa7, 0x5f, 0xa2, 0x3e, 0x2f, 0xd1, 0x25, 0xfd, 0x1c,
-- 0xea, 0x4b, 0x29, 0xad, 0x35, 0x75, 0xb6, 0xc5, 0x34, 0xf6, 0xd3, 0xce,
-- 0x60, 0x67, 0x7b, 0xfb, 0x97, 0x61, 0xfd, 0xb1, 0xfe, 0xc4, 0x17, 0xb6,
-- 0xb7, 0xfd, 0x2b, 0xfc, 0xf4, 0x06, 0xcf, 0x38, 0x99, 0x12, 0xd1, 0x70,
-- 0xff, 0x7f, 0xcf, 0xca, 0xa2, 0xda, 0xec, 0x68, 0x6a, 0x9a, 0xd5, 0x74,
-- 0xf2, 0x82, 0x76, 0xd2, 0xc1, 0xdf, 0xa5, 0x5b, 0x7b, 0xf8, 0x5d, 0x56,
-- 0x81, 0x66, 0xfc, 0x64, 0x93, 0xb4, 0x24, 0xba, 0x2d, 0x6a, 0xcf, 0x94,
-- 0xfa, 0x74, 0x28, 0x6b, 0xb7, 0x34, 0x74, 0xe6, 0xe8, 0x69, 0x62, 0x67,
-- 0xe9, 0x94, 0x39, 0x59, 0x95, 0xcc, 0x33, 0x3f, 0x0d, 0x3a, 0xff, 0x59,
-- 0x3a, 0xbe, 0x4e, 0x0a, 0x22, 0xfe, 0x32, 0xde, 0x82, 0x74, 0x7e, 0x3f,
-- 0x2c, 0xca, 0xab, 0xad, 0xb4, 0x1c, 0x5f, 0xe7, 0xb7, 0xb4, 0x0e, 0x2f,
-- 0x5e, 0x3c, 0x1f, 0xd0, 0x8f, 0x17, 0xbf, 0x6c, 0xdd, 0x16, 0x53, 0x5a,
-- 0x96, 0xa7, 0xbf, 0x6c, 0xf1, 0xee, 0xfe, 0x7b, 0xda, 0x1f, 0xf5, 0xc7,
-- 0xff, 0x39, 0xbc, 0xae, 0x67, 0xd3, 0x95, 0x34, 0x43, 0x8d, 0x25, 0xe9,
-- 0xac, 0x58, 0xce, 0x6b, 0x47, 0x27, 0x44, 0x6e, 0x75, 0xc0, 0x99, 0xe8,
-- 0xa4, 0x66, 0xc2, 0xac, 0x98, 0x7c, 0xf8, 0xc0, 0xd1, 0xd9, 0xf4, 0x27,
-- 0xb1, 0x1e, 0x5f, 0xd3, 0xd4, 0x89, 0x6e, 0x52, 0x9d, 0x7e, 0x9d, 0xa7,
-- 0x7c, 0x26, 0x89, 0x35, 0x94, 0xfc, 0x31, 0x37, 0x25, 0x9d, 0xe5, 0xf4,
-- 0x5c, 0x51, 0x4e, 0xb2, 0xb2, 0x49, 0xc1, 0x18, 0x8e, 0x1f, 0x4f, 0x42,
-- 0x4b, 0xb9, 0xa0, 0xce, 0x97, 0xcc, 0xee, 0x70, 0xc8, 0xb8, 0x05, 0x3a,
-- 0x9e, 0x57, 0xb4, 0x4a, 0xb4, 0x32, 0x4c, 0x54, 0xbc, 0x70, 0xf7, 0xc9,
-- 0x3b, 0xda, 0x3c, 0x61, 0x0d, 0x01, 0xed, 0xc9, 0x66, 0xc5, 0x8b, 0x76,
-- 0x77, 0x77, 0xb7, 0x9a, 0x88, 0xf6, 0x76, 0x5a, 0x74, 0x14, 0xbc, 0xd4,
-- 0xb5, 0xfb, 0x7b, 0xbb, 0xcd, 0xfd, 0x3f, 0xba, 0xc4, 0xc6, 0xda, 0x1c,
-- 0xf8, 0xec, 0x1b, 0xef, 0xb6, 0x83, 0x4f, 0xad, 0xd1, 0xef, 0xd9, 0x65,
-- 0xfe, 0xb1, 0x6f, 0x17, 0x9f, 0xac, 0x65, 0x4a, 0xcd, 0xcf, 0x16, 0x35,
-- 0xef, 0xba, 0x35, 0x77, 0xb5, 0xcc, 0x2a, 0x22, 0xa1, 0xbb, 0xeb, 0x94,
-- 0x3e, 0xb6, 0x06, 0x12, 0x74, 0x31, 0xcb, 0xaf, 0xae, 0xeb, 0xe4, 0x2e,
-- 0x65, 0xfe, 0x71, 0x54, 0x4b, 0x13, 0xcc, 0xb8, 0x89, 0x6b, 0x5c, 0xa6,
-- 0x74, 0xfc, 0x79, 0x85, 0xc0, 0xa5, 0x89, 0xd8, 0x1c, 0x39, 0xd1, 0x5a,
-- 0x81, 0x94, 0x82, 0x7b, 0x71, 0x94, 0x56, 0xbc, 0x1b, 0x73, 0xda, 0xf4,
-- 0x9a, 0xd8, 0xfe, 0x92, 0xff, 0xba, 0x26, 0xc6, 0x9e, 0xcc, 0xd3, 0x59,
-- 0xa6, 0x03, 0x05, 0xef, 0x7b, 0xc3, 0x2c, 0x32, 0xfb, 0x98, 0xce, 0x1c,
-- 0x3f, 0x22, 0x06, 0xd3, 0x57, 0xd6, 0xe9, 0xde, 0xa8, 0x68, 0xd7, 0x88,
-- 0xe2, 0xf8, 0x18, 0xe1, 0x4c, 0xf5, 0xf8, 0xdc, 0xf4, 0x64, 0x9e, 0x18,
-- 0x63, 0x5a, 0x31, 0xef, 0x17, 0x0e, 0x4f, 0x83, 0x0f, 0x26, 0x4b, 0x8b,
-- 0x96, 0xde, 0xf0, 0x2d, 0xd3, 0xba, 0xcb, 0xf0, 0xda, 0xa4, 0x48, 0x72,
-- 0xe2, 0x60, 0x23, 0x3a, 0x5f, 0x3c, 0x33, 0x3e, 0x35, 0x58, 0x15, 0x6e,
-- 0x67, 0x41, 0x6d, 0xf2, 0x87, 0x79, 0xcd, 0x7c, 0x03, 0xe2, 0x08, 0x8d,
-- 0x97, 0x16, 0x05, 0x12, 0x05, 0x9d, 0xbd, 0x60, 0xfe, 0xe0, 0x78, 0xf4,
-- 0x6c, 0x72, 0x4b, 0x17, 0x0f, 0x49, 0x16, 0x99, 0x7b, 0x0b, 0x2c, 0x7a,
-- 0xcc, 0xd7, 0xdd, 0x74, 0x7a, 0x4f, 0x64, 0x57, 0x96, 0x2c, 0xba, 0xf1,
-- 0x0e, 0x8e, 0xe4, 0x70, 0xcc, 0x32, 0xba, 0x19, 0xc2, 0xe5, 0xcc, 0x99,
-- 0x49, 0x11, 0x91, 0xd2, 0x55, 0x03, 0x32, 0xa4, 0x2b, 0x01, 0xc7, 0x18,
-- 0x13, 0xc7, 0xe8, 0xb8, 0xed, 0xf1, 0x38, 0x5b, 0xd4, 0x55, 0xd7, 0x9c,
-- 0x6c, 0xc3, 0x69, 0x38, 0x65, 0xc6, 0x2b, 0x1f, 0xde, 0xa3, 0x58, 0x57,
-- 0xc7, 0xc7, 0x71, 0x95, 0xda, 0xd5, 0x44, 0x57, 0x6b, 0xe5, 0x56, 0xad,
-- 0x06, 0x6d, 0xd0, 0x59, 0xc0, 0x9a, 0xcf, 0x78, 0xa0, 0xfc, 0x70, 0x25,
-- 0x12, 0x13, 0xce, 0x1c, 0x6f, 0xa4, 0x88, 0x4c, 0xd2, 0x2f, 0x73, 0x23,
-- 0x5a, 0x4f, 0xd7, 0x38, 0xf5, 0xea, 0xf6, 0x94, 0xbb, 0xaf, 0x48, 0xd8,
-- 0x24, 0xee, 0x3c, 0xa9, 0xae, 0xe9, 0x3e, 0xa5, 0xad, 0xbf, 0xb8, 0xe6,
-- 0x99, 0xce, 0x88, 0x66, 0x6e, 0x79, 0x7f, 0x17, 0x59, 0x36, 0x19, 0x26,
-- 0x27, 0x97, 0x7c, 0x34, 0x4b, 0x1a, 0x74, 0x8d, 0xaf, 0x99, 0x5b, 0xd0,
-- 0xba, 0x4d, 0x20, 0x8d, 0xcd, 0x1d, 0x57, 0xc0, 0x50, 0x82, 0x63, 0xcf,
-- 0x94, 0x46, 0x8b, 0x9d, 0x30, 0xa3, 0x9f, 0x36, 0x59, 0x0b, 0x44, 0x00,
-- 0x62, 0x01, 0x3c, 0xbc, 0x51, 0x96, 0x80, 0x12, 0x47, 0x59, 0x7d, 0x97,
-- 0x65, 0xae, 0xb9, 0x2a, 0x23, 0x76, 0xc6, 0x9b, 0x26, 0x97, 0xf9, 0xfc,
-- 0xb6, 0xe0, 0x01, 0xae, 0xad, 0x9d, 0x9e, 0x9d, 0x7c, 0x7d, 0x76, 0x78,
-- 0x7e, 0x9e, 0xbc, 0x3d, 0xbc, 0x38, 0x3c, 0x6b, 0xac, 0xf4, 0xbc, 0x28,
-- 0x67, 0xd8, 0xd1, 0x49, 0x5e, 0x2d, 0xa6, 0xe9, 0x3d, 0x6f, 0x35, 0xcd,
-- 0xe4, 0xaa, 0xe4, 0x93, 0x35, 0xcb, 0x98, 0xb5, 0x4c, 0x96, 0x25, 0xc8,
-- 0xa2, 0x58, 0xd0, 0xf6, 0xa9, 0x10, 0x43, 0x8d, 0x4f, 0x20, 0xf9, 0xcc,
-- 0xaf, 0xfc, 0x4a, 0xd3, 0x6d, 0xae, 0x1c, 0x92, 0x59, 0xa4, 0xdb, 0x0f,
-- 0x96, 0x26, 0x20, 0xa5, 0xf6, 0xfd, 0x67, 0xb2, 0x4c, 0x15, 0xe6, 0x44,
-- 0x34, 0x9b, 0xcf, 0x20, 0x4b, 0xd0, 0xbf, 0x5e, 0x80, 0xc8, 0x2e, 0x49,
-- 0x7a, 0x22, 0xae, 0xd9, 0x22, 0x0d, 0x37, 0x4e, 0xac, 0x2b, 0x84, 0x5f,
-- 0x96, 0x86, 0xa9, 0x73, 0x1a, 0xeb, 0x2c, 0x9f, 0x13, 0x81, 0x11, 0x41,
-- 0xea, 0x29, 0x67, 0x4a, 0xa0, 0xb1, 0x5e, 0x0a, 0x4f, 0xd0, 0x15, 0x69,
-- 0x4a, 0xd5, 0xf4, 0x32, 0x6d, 0x36, 0x71, 0x56, 0x37, 0x3d, 0x0c, 0x8a,
-- 0x48, 0x93, 0x9a, 0x4f, 0x47, 0xcc, 0x9a, 0x58, 0xcc, 0x24, 0x69, 0x20,
-- 0xeb, 0xec, 0xcd, 0xc9, 0xad, 0xf4, 0x06, 0x8d, 0x2d, 0x1d, 0xf1, 0x8e,
-- 0xf2, 0x03, 0xad, 0x55, 0xa4, 0x43, 0x04, 0xde, 0x72, 0x97, 0x57, 0x38,
-- 0x54, 0x77, 0xc5, 0x72, 0x4a, 0x22, 0x1d, 0x3f, 0xb0, 0x5c, 0xe0, 0x05,
-- 0xea, 0x6a, 0xe1, 0x4f, 0xcf, 0x2c, 0xff, 0xc8, 0xab, 0xde, 0x6e, 0x85,
-- 0x86, 0x46, 0x7f, 0x2e, 0x68, 0x13, 0x64, 0x38, 0xc3, 0x36, 0x6f, 0x05,
-- 0xd7, 0x88, 0xf6, 0x90, 0x4f, 0x0b, 0xd8, 0xdd, 0xe9, 0xc9, 0xf9, 0x05,
-- 0xb3, 0xff, 0xd3, 0xf7, 0x17, 0xd4, 0x10, 0x5d, 0x43, 0x55, 0x4d, 0xdb,
-- 0xc9, 0x2f, 0xce, 0x33, 0x48, 0xd4, 0xd6, 0x1c, 0xed, 0x5a, 0x8e, 0x23,
-- 0x8e, 0x5b, 0xc5, 0xba, 0x94, 0x31, 0x8a, 0x9a, 0xc1, 0xc4, 0x6b, 0x4a,
-- 0x46, 0x75, 0x9d, 0x31, 0x8f, 0x76, 0x2f, 0x25, 0x1b, 0x5f, 0x6c, 0xd2,
-- 0x76, 0x0f, 0x5c, 0x73, 0x3f, 0xf1, 0xd3, 0xbf, 0x70, 0xcf, 0x55, 0x3e,
-- 0xcb, 0xa7, 0x69, 0x70, 0xb7, 0x29, 0x27, 0x62, 0xba, 0x76, 0xe7, 0x71,
-- 0x4c, 0x6c, 0x17, 0x83, 0xf6, 0x52, 0x35, 0xaf, 0x20, 0x4e, 0xb3, 0xdf,
-- 0xa8, 0x49, 0x91, 0xc9, 0x7b, 0x24, 0xca, 0xba, 0x85, 0xe3, 0x1d, 0xe3,
-- 0x63, 0xde, 0x58, 0xa6, 0xf6, 0xae, 0x45, 0xcb, 0xc6, 0x9c, 0x1c, 0xca,
-- 0x9a, 0x5b, 0xb8, 0xde, 0x28, 0x2d, 0x7b, 0x8e, 0x83, 0x89, 0x06, 0x45,
-- 0x8d, 0x5e, 0x2d, 0x69, 0xf0, 0xb2, 0xaa, 0xfd, 0x64, 0xf0, 0x47, 0x1e,
-- 0x39, 0x8b, 0xd4, 0xee, 0x44, 0x93, 0xac, 0x36, 0x9f, 0x0c, 0xd7, 0x4e,
-- 0xa0, 0xc0, 0x39, 0x6d, 0xef, 0x44, 0xf4, 0xbc, 0x44, 0xd8, 0xbf, 0x88,
-- 0x90, 0x89, 0xa8, 0x66, 0x74, 0x6f, 0xdf, 0x11, 0x0d, 0xa6, 0xb4, 0x84,
-- 0xc4, 0x4c, 0xde, 0xf2, 0xd0, 0xb5, 0x33, 0x55, 0x0e, 0xb1, 0x4f, 0xb4,
-- 0xac, 0x34, 0x2b, 0xa7, 0xd4, 0x4c, 0x26, 0x39, 0x56, 0x80, 0xd8, 0xf4,
-- 0x32, 0x83, 0x4c, 0x24, 0x1c, 0xde, 0xcf, 0x8b, 0x85, 0xeb, 0xea, 0x9a,
-- 0x24, 0xaa, 0xa4, 0x27, 0xcc, 0x64, 0xc0, 0x5d, 0xf4, 0x78, 0x51, 0x67,
-- 0xad, 0x0e, 0x68, 0x1e, 0x13, 0xbd, 0xa8, 0xf8, 0x02, 0x93, 0x7b, 0x6b,
-- 0x96, 0xde, 0x87, 0xf2, 0x0b, 0xd8, 0x0d, 0x46, 0x5d, 0x94, 0xee, 0xce,
-- 0xa6, 0x5b, 0x61, 0x41, 0x32, 0xb0, 0xb1, 0x21, 0xf0, 0x73, 0x9c, 0x9d,
-- 0x4a, 0x06, 0xd6, 0x27, 0x41, 0x96, 0x9f, 0xbc, 0xba, 0xb6, 0x47, 0x83,
-- 0xbb, 0x21, 0xa5, 0x79, 0x31, 0x7f, 0x63, 0x29, 0x7f, 0x62, 0xac, 0xab,
-- 0x28, 0x87, 0x18, 0xf9, 0xb4, 0x60, 0x8e, 0xd3, 0x9b, 0x14, 0xcb, 0x91,
-- 0x1b, 0x39, 0x86, 0xce, 0x44, 0x35, 0xc0, 0x8e, 0xf2, 0x9f, 0xd6, 0x9c,
-- 0x1b, 0xb6, 0x2e, 0x55, 0xf5, 0xe8, 0xd0, 0xfc, 0x42, 0x9d, 0x63, 0x91,
-- 0x88, 0xfb, 0x57, 0xbc, 0xa0, 0xb6, 0xe6, 0xa0, 0x34, 0xe2, 0xd6, 0xeb,
-- 0xb5, 0x1c, 0x0c, 0x88, 0x7f, 0xba, 0xea, 0xc4, 0x62, 0xd0, 0x46, 0x05,
-- 0x89, 0x4c, 0x79, 0xb1, 0x9b, 0x19, 0xcd, 0x68, 0x92, 0x13, 0x3b, 0x23,
-- 0x9e, 0x6a, 0xfb, 0xe2, 0x85, 0xd4, 0xbe, 0x28, 0x96, 0xbc, 0xd6, 0x3a,
-- 0x66, 0xe1, 0x4c, 0x0d, 0xd1, 0x8e, 0x35, 0xad, 0x90, 0xab, 0xda, 0x98,
-- 0x06, 0x27, 0xb4, 0x53, 0xc7, 0x98, 0xc7, 0xe0, 0x36, 0xe1, 0x93, 0x40,
-- 0x22, 0x34, 0x1f, 0x8b, 0xc1, 0xc9, 0xf1, 0x6d, 0x40, 0xd1, 0xac, 0x50,
-- 0xcc, 0xf9, 0xaa, 0xed, 0x43, 0x67, 0x1b, 0x15, 0x05, 0x89, 0xee, 0x7e,
-- 0x6a, 0x2c, 0x71, 0x67, 0x73, 0x66, 0x54, 0xba, 0xa3, 0x83, 0x81, 0x7c,
-- 0x85, 0x96, 0xef, 0x49, 0x6c, 0x4c, 0xaf, 0xd2, 0xdc, 0xd1, 0x9a, 0x32,
-- 0x35, 0xf7, 0xec, 0xbc, 0xd0, 0xc7, 0x79, 0xa7, 0xf8, 0x12, 0x57, 0xfe,
-- 0xb1, 0xc4, 0x5d, 0x97, 0xf1, 0xbc, 0x88, 0x01, 0xe0, 0x14, 0x6b, 0xb3,
-- 0x90, 0x7c, 0xac, 0xb9, 0x11, 0x64, 0x3d, 0x16, 0x9b, 0xc0, 0x05, 0x21,
-- 0x04, 0x51, 0x93, 0xbd, 0x61, 0xf2, 0x0d, 0x69, 0x9e, 0xb0, 0x5b, 0x40,
-- 0x18, 0xce, 0x59, 0x07, 0x27, 0x69, 0xe6, 0x2e, 0x23, 0xbd, 0xb7, 0xaa,
-- 0x69, 0x35, 0x71, 0x81, 0xe2, 0x33, 0x1a, 0xa7, 0xbb, 0xf2, 0xae, 0x8b,
-- 0x3b, 0x74, 0xeb, 0x26, 0xe1, 0x76, 0x12, 0x34, 0x3e, 0x1b, 0x26, 0x1b,
-- 0xb8, 0xa0, 0xc7, 0xbc, 0x58, 0x8b, 0xda, 0xcf, 0xc2, 0xad, 0x07, 0xb1,
-- 0xcc, 0x2a, 0x38, 0x58, 0x7c, 0x5b, 0xd1, 0x08, 0x92, 0xcf, 0x86, 0x3b,
-- 0x2f, 0x86, 0xdb, 0x43, 0x36, 0x53, 0x65, 0xb7, 0x79, 0xb1, 0xac, 0xa8,
-- 0x77, 0x0c, 0x25, 0x09, 0xde, 0x24, 0x55, 0x99, 0xaf, 0x90, 0xab, 0xab,
-- 0xa9, 0x5c, 0xde, 0x5b, 0xc5, 0xe5, 0x65, 0x70, 0xbf, 0x97, 0xa4, 0xc4,
-- 0xe2, 0x66, 0xe3, 0xc5, 0xd1, 0x43, 0x27, 0xfc, 0x2d, 0xbc, 0xd8, 0x75,
-- 0x39, 0x37, 0xdd, 0x0e, 0x0e, 0xfe, 0x48, 0x1b, 0x3d, 0x30, 0x4e, 0x34,
-- 0x20, 0x46, 0xd4, 0xb2, 0x4b, 0xbd, 0x65, 0x4d, 0x3e, 0xbc, 0x0e, 0x3d,
-- 0xdb, 0x12, 0x61, 0x2d, 0x07, 0x69, 0xb9, 0x0f, 0xa9, 0x85, 0xc4, 0xb1,
-- 0xb2, 0xc0, 0x3e, 0x10, 0x10, 0x19, 0x31, 0xa6, 0xf9, 0x24, 0x2d, 0x49,
-- 0xfd, 0x62, 0x33, 0x03, 0x3d, 0xcc, 0xa7, 0x2d, 0x15, 0x72, 0xef, 0x0b,
-- 0xbf, 0xf3, 0x24, 0x36, 0xd8, 0xe3, 0x01, 0x86, 0xaa, 0x98, 0x71, 0x1d,
-- 0xba, 0x06, 0x2a, 0x19, 0x99, 0x8a, 0xa1, 0xa9, 0x97, 0x4a, 0x3c, 0xe3,
-- 0x36, 0x6d, 0xe5, 0xb2, 0x98, 0x4e, 0x8b, 0x3b, 0xbe, 0x40, 0x58, 0x90,
-- 0x0c, 0xb6, 0xd5, 0xb6, 0xa3, 0xaa, 0x8a, 0x71, 0x2e, 0x76, 0x06, 0x5d,
-- 0x74, 0x68, 0x58, 0x30, 0x85, 0xf1, 0xab, 0x95, 0xde, 0xec, 0x2c, 0xb2,
-- 0x56, 0xc4, 0x49, 0x12, 0xa7, 0x2c, 0xc2, 0xb2, 0xd0, 0x6a, 0xce, 0x5f,
-- 0x78, 0x72, 0x24, 0x95, 0x0d, 0xd3, 0x48, 0x72, 0x5a, 0x9f, 0xe2, 0xce,
-- 0xb4, 0x3d, 0x52, 0xba, 0x1d, 0x6b, 0x0c, 0x8e, 0x6a, 0xbf, 0xd5, 0x5c,
-- 0xb5, 0xa4, 0x36, 0x68, 0xbd, 0x27, 0x39, 0x9b, 0x93, 0x48, 0xa1, 0x13,
-- 0x0b, 0x91, 0xc8, 0xf9, 0xf4, 0xda, 0x78, 0x59, 0xd5, 0x24, 0x64, 0x5a,
-- 0xaf, 0xd2, 0x14, 0xf5, 0x4b, 0x24, 0xb9, 0xcf, 0x74, 0xd6, 0x6a, 0x8e,
-- 0x88, 0xee, 0xb3, 0xe1, 0x93, 0xe7, 0xc3, 0xed, 0x80, 0x10, 0xb6, 0x79,
-- 0x9d, 0x59, 0xc9, 0xda, 0x19, 0x6e, 0xb7, 0x1e, 0xdf, 0xe0, 0xfb, 0x7c,
-- 0xd3, 0x96, 0xbc, 0xb1, 0xe6, 0xb8, 0xe9, 0xed, 0x1c, 0xd0, 0x9b, 0xe1,
-- 0x2d, 0x26, 0xf7, 0x75, 0xee, 0xad, 0x19, 0xae, 0x77, 0xda, 0xe1, 0x39,
-- 0x44, 0x41, 0xb9, 0x0b, 0xe9, 0x2e, 0xdf, 0x93, 0x96, 0x76, 0x86, 0x3b,
-- 0xc1, 0xd6, 0xeb, 0x70, 0x76, 0xba, 0x87, 0x13, 0x13, 0x40, 0x6b, 0x30,
-- 0x3b, 0x26, 0x30, 0x8b, 0x94, 0xe4, 0xfa, 0x6d, 0x35, 0x67, 0x6a, 0x9a,
-- 0xbe, 0x68, 0x4b, 0xa6, 0x8b, 0xf4, 0xa4, 0xb1, 0x48, 0x18, 0xd1, 0xee,
-- 0x27, 0x2c, 0x0f, 0xc8, 0x24, 0x27, 0x0d, 0x8b, 0xfb, 0xa5, 0x0d, 0xf1,
-- 0x5b, 0x23, 0xab, 0x82, 0xa1, 0xee, 0xca, 0x00, 0x3b, 0x48, 0x07, 0x17,
-- 0x0b, 0x2e, 0x06, 0x1e, 0xf9, 0x92, 0xee, 0xad, 0x72, 0x0a, 0x8d, 0xc9,
-- 0xec, 0x64, 0xc4, 0x48, 0x88, 0xbf, 0xe5, 0xd3, 0x5a, 0x09, 0x52, 0x4c,
-- 0x1a, 0x09, 0xee, 0xe5, 0xd6, 0xe8, 0x1e, 0x98, 0x0d, 0x71, 0xc3, 0xf9,
-- 0x62, 0xde, 0x7a, 0xe1, 0xb5, 0x70, 0x61, 0x15, 0xb3, 0xdf, 0x9d, 0xbe,
-- 0xa3, 0x99, 0x1d, 0x9f, 0xf3, 0xcd, 0x47, 0x6a, 0xa9, 0xac, 0x10, 0x3e,
-- 0xa5, 0x65, 0x35, 0xde, 0xee, 0xc5, 0x60, 0x92, 0x80, 0x5b, 0xcd, 0xc5,
-- 0x23, 0xc6, 0x51, 0xa0, 0x5b, 0x82, 0xed, 0x95, 0xf4, 0x6d, 0x99, 0x92,
-- 0xc6, 0x86, 0xb9, 0xea, 0x2c, 0x2a, 0x6e, 0x7e, 0x28, 0x3d, 0x47, 0xab,
-- 0x03, 0xe9, 0x00, 0x8a, 0xa0, 0x6b, 0xb9, 0xf9, 0xae, 0xac, 0x2c, 0xaf,
-- 0xca, 0x3c, 0xbb, 0x2a, 0x6a, 0x3e, 0xd2, 0xf6, 0x19, 0x3d, 0x33, 0x68,
-- 0x35, 0x87, 0x55, 0xc3, 0x80, 0xc0, 0x99, 0x44, 0x37, 0x53, 0x35, 0x84,
-- 0xf7, 0x9a, 0xb4, 0x2c, 0xe2, 0x6a, 0xe0, 0x06, 0x6b, 0x0f, 0x2d, 0xec,
-- 0xf3, 0x68, 0x61, 0xd3, 0xe9, 0xca, 0x95, 0xe5, 0xae, 0xf6, 0x8f, 0x69,
-- 0x7a, 0xbc, 0xae, 0xc1, 0xb2, 0xe2, 0xb3, 0x60, 0x59, 0x61, 0x1d, 0xb4,
-- 0x85, 0x5d, 0xbd, 0xb2, 0x58, 0xda, 0x4f, 0x5e, 0x5b, 0xee, 0x44, 0xba,
-- 0x6a, 0x1f, 0xcb, 0x4a, 0x35, 0xbd, 0x4f, 0x59, 0xdb, 0x60, 0x71, 0xe5,
-- 0xd3, 0x64, 0x37, 0x62, 0x59, 0x8b, 0xdf, 0x67, 0x71, 0x77, 0x98, 0x51,
-- 0xd5, 0xd3, 0xea, 0x36, 0xe2, 0x0b, 0x34, 0xe9, 0x4d, 0xb6, 0x8e, 0xb0,
-- 0xb5, 0x2f, 0xe4, 0x0b, 0xbc, 0xcc, 0x9e, 0x2d, 0x7c, 0x4c, 0xee, 0xd8,
-- 0x3a, 0x63, 0x13, 0x70, 0x06, 0x92, 0x34, 0x3a, 0x87, 0xb3, 0xa2, 0x96,
-- 0x97, 0x65, 0xe8, 0x43, 0x6f, 0xaa, 0xe3, 0x56, 0xfd, 0xdd, 0xac, 0xc3,
-- 0x19, 0x6e, 0xf7, 0xfd, 0xef, 0x3b, 0x6d, 0x16, 0xce, 0x77, 0xb0, 0xfb,
-- 0x16, 0x6b, 0x48, 0x72, 0x42, 0x5d, 0x16, 0x30, 0x16, 0x35, 0x86, 0x88,
-- 0x5b, 0x91, 0x38, 0xe3, 0x98, 0xf4, 0x37, 0xe2, 0x91, 0x1b, 0x79, 0xc3,
-- 0xa5, 0x62, 0xb2, 0x24, 0x6d, 0xf0, 0x28, 0x1d, 0xdf, 0xf0, 0x4d, 0x94,
-- 0xab, 0xf1, 0xd2, 0xb6, 0x49, 0x6e, 0x0b, 0xd2, 0x6b, 0x6f, 0x33, 0x76,
-- 0x40, 0x58, 0x47, 0x9b, 0x01, 0x6b, 0xdd, 0xe5, 0x45, 0xac, 0xaa, 0xe9,
-- 0xed, 0xee, 0xa7, 0x2e, 0x22, 0x77, 0x68, 0x23, 0xdc, 0x8d, 0x97, 0x50,
-- 0x2f, 0xb8, 0x15, 0x8b, 0xc8, 0x2f, 0xeb, 0x22, 0xfa, 0x31, 0x3c, 0xb1,
-- 0x31, 0x3c, 0xe9, 0x1c, 0x83, 0x0d, 0x62, 0xe5, 0x28, 0x9e, 0xfc, 0xba,
-- 0x8d, 0xec, 0x1c, 0xc3, 0x53, 0x1e, 0x43, 0xbe, 0xb8, 0x7d, 0xda, 0x7a,
-- 0x87, 0x74, 0x35, 0x73, 0x53, 0x8c, 0xd3, 0x05, 0x4e, 0x2d, 0x2d, 0x24,
-- 0x71, 0xe5, 0x62, 0x7a, 0xcb, 0x1d, 0x11, 0x0d, 0x90, 0x00, 0x07, 0x89,
-- 0xa7, 0x0e, 0x0c, 0x38, 0xc9, 0x11, 0x9d, 0x84, 0xdb, 0xc0, 0x27, 0x64,
-- 0x87, 0x41, 0x08, 0x65, 0xe3, 0xee, 0x3a, 0x67, 0x61, 0x20, 0x57, 0x8b,
-- 0x18, 0xed, 0xac, 0x68, 0xff, 0x47, 0xa7, 0xb7, 0xcf, 0x07, 0xda, 0xd1,
-- 0x66, 0x5f, 0x64, 0x52, 0x15, 0x32, 0x6b, 0xbe, 0x55, 0x5a, 0xcd, 0xd9,
-- 0x8a, 0xc8, 0x78, 0x32, 0x95, 0x03, 0xe8, 0x03, 0x6a, 0xe7, 0xa9, 0x0d,
-- 0x2c, 0x13, 0x43, 0x50, 0x30, 0xd9, 0xe7, 0x3a, 0xd9, 0xe7, 0xff, 0xc7,
-- 0x4c, 0xf6, 0xf9, 0xea, 0xc9, 0xa6, 0x3c, 0xd9, 0x74, 0xc1, 0xae, 0x9d,
-- 0x36, 0x79, 0x91, 0xa6, 0xbf, 0xc5, 0x5e, 0xc1, 0xcd, 0xe4, 0x7b, 0x26,
-- 0x20, 0x70, 0x3d, 0xb6, 0x96, 0xcf, 0x9d, 0x57, 0x0d, 0x63, 0x12, 0x4b,
-- 0x2e, 0x5b, 0x1b, 0x6c, 0x08, 0x9d, 0xcd, 0x31, 0x37, 0xc4, 0x55, 0x49,
-- 0xfa, 0x36, 0x5b, 0xc2, 0xd5, 0xdb, 0x16, 0xc8, 0xc0, 0xf4, 0x3f, 0x5a,
-- 0x26, 0xe7, 0xe6, 0xc9, 0xd9, 0x50, 0x2c, 0x12, 0x3a, 0x3f, 0xda, 0x16,
-- 0x47, 0x8a, 0xac, 0x62, 0x5d, 0x30, 0xfb, 0x98, 0xb3, 0x53, 0x2f, 0x57,
-- 0x8b, 0x32, 0xe9, 0x7e, 0xc9, 0xb8, 0x84, 0x88, 0x3f, 0x64, 0xf7, 0x06,
-- 0x53, 0xb4, 0x9a, 0x1c, 0x31, 0xd8, 0xe4, 0x72, 0x9a, 0x5e, 0x75, 0xdc,
-- 0x97, 0xf9, 0xd5, 0xbc, 0x50, 0x27, 0x5b, 0x55, 0xcc, 0xf8, 0x14, 0x7c,
-- 0xa3, 0xa7, 0xa0, 0x22, 0xce, 0x32, 0x1f, 0x4f, 0x97, 0xf0, 0xb4, 0x9c,
-- 0xd0, 0xc4, 0xe8, 0xab, 0x90, 0x45, 0xec, 0xf3, 0x02, 0xb2, 0x98, 0x39,
-- 0x48, 0xaf, 0x58, 0xe2, 0x7c, 0x29, 0xff, 0x54, 0x35, 0xf3, 0xef, 0x2f,
-- 0xba, 0x65, 0xa0, 0x73, 0xd5, 0x2b, 0x79, 0x6e, 0xef, 0xf9, 0xd5, 0xfd,
-- 0xe0, 0x1d, 0x5e, 0x29, 0x48, 0xce, 0x6a, 0x21, 0xc1, 0xbd, 0x61, 0x27,
-- 0xb2, 0xc5, 0xdd, 0x78, 0xa8, 0xc4, 0xdf, 0x26, 0xac, 0x09, 0xc1, 0x92,
-- 0x99, 0x1c, 0x7c, 0x7d, 0xc4, 0xb3, 0x4c, 0xf3, 0xa9, 0x98, 0xd9, 0x74,
-- 0xd6, 0x79, 0x36, 0x65, 0x2d, 0x0a, 0x4b, 0x06, 0xdf, 0x59, 0x12, 0x9a,
-- 0xed, 0xf5, 0xbf, 0xde, 0xdb, 0xe2, 0xef, 0xb4, 0x88, 0xe9, 0xd6, 0xd3,
-- 0xe1, 0x76, 0x8f, 0xc5, 0x7a, 0xda, 0xb2, 0x6c, 0x3e, 0x2e, 0x26, 0xdc,
-- 0xc9, 0x34, 0x9d, 0xdf, 0x54, 0xa2, 0x88, 0x89, 0x76, 0xc2, 0x63, 0xed,
-- 0x13, 0x13, 0x2d, 0xcb, 0x62, 0xc9, 0xa3, 0x8d, 0x78, 0xaf, 0x4e, 0x07,
-- 0xcc, 0x46, 0xcd, 0xa7, 0x7f, 0x5b, 0xf2, 0x86, 0xcc, 0xd2, 0xf2, 0xc6,
-- 0xcc, 0xb4, 0x7c, 0x4d, 0xa4, 0xd3, 0xaa, 0xc0, 0xce, 0x61, 0x5c, 0x4e,
-- 0x05, 0x68, 0x35, 0x37, 0xf8, 0x06, 0xa2, 0x37, 0x11, 0x0b, 0x7b, 0x54,
-- 0xe5, 0x20, 0x14, 0x66, 0xd4, 0x8d, 0x6e, 0x46, 0x50, 0x8e, 0x3f, 0x31,
-- 0x76, 0x6b, 0x9b, 0x32, 0xc2, 0x86, 0xcd, 0x4a, 0x7c, 0xb4, 0xd3, 0xb4,
-- 0xaa, 0x61, 0xf8, 0x31, 0x02, 0xe2, 0x07, 0x43, 0xf1, 0x3a, 0x9d, 0xdf,
-- 0xb3, 0x8f, 0xf9, 0x53, 0xc4, 0xeb, 0xcb, 0xfc, 0x6a, 0x59, 0x66, 0x62,
-- 0xf1, 0x82, 0x5b, 0xda, 0xbc, 0xd1, 0xac, 0xaf, 0x5d, 0x17, 0xa0, 0x2f,
-- 0x92, 0x73, 0xb3, 0xe9, 0x65, 0xd7, 0xbd, 0x67, 0x0a, 0x3b, 0x74, 0xda,
-- 0x2a, 0x1b, 0xa3, 0xa9, 0x79, 0xa6, 0x76, 0x2e, 0x70, 0x67, 0x76, 0x62,
-- 0x26, 0xe3, 0x69, 0x9a, 0xcf, 0xaa, 0x86, 0x48, 0xdb, 0xa6, 0x0c, 0x93,
-- 0xe8, 0x41, 0x14, 0x23, 0x36, 0xb1, 0x97, 0x15, 0x9b, 0x4f, 0xc0, 0xa7,
-- 0x4c, 0xca, 0x16, 0x03, 0xf6, 0x75, 0x36, 0xbe, 0x01, 0xd9, 0x05, 0x66,
-- 0xc5, 0x36, 0xaf, 0x92, 0x55, 0xc7, 0x82, 0x2d, 0xd9, 0x23, 0x4d, 0xe2,
-- 0xc8, 0x88, 0x68, 0x2e, 0x9f, 0x4f, 0x96, 0x63, 0x1c, 0x56, 0xb6, 0x96,
-- 0x90, 0x88, 0x56, 0xa6, 0x2c, 0xf2, 0xd4, 0x88, 0x01, 0x48, 0x40, 0x17,
-- 0x03, 0x22, 0x82, 0x45, 0xe7, 0xe8, 0xc0, 0xed, 0x44, 0x4e, 0x6d, 0x30,
-- 0x81, 0x4a, 0x5d, 0x03, 0xb0, 0xba, 0x9b, 0xf6, 0xd7, 0x5c, 0xcd, 0x56,
-- 0x73, 0xb2, 0xb6, 0xfd, 0x44, 0x38, 0xa9, 0x39, 0x2a, 0x27, 0x85, 0x92,
-- 0xd2, 0x80, 0xf4, 0xf5, 0x2a, 0x1f, 0x8b, 0xa1, 0x2a, 0xbf, 0xca, 0x98,
-- 0x5f, 0xb0, 0xf0, 0x59, 0x4f, 0x67, 0xe2, 0xc7, 0x6f, 0x13, 0xda, 0xc0,
-- 0x49, 0x6d, 0x11, 0x59, 0x85, 0x0c, 0x45, 0x54, 0x14, 0x47, 0x1f, 0x66,
-- 0x32, 0x0d, 0x8d, 0x68, 0xb9, 0xd8, 0x32, 0x69, 0x28, 0xc2, 0x32, 0xdb,
-- 0x6c, 0x07, 0x3e, 0x8f, 0xaa, 0x26, 0xde, 0xd2, 0xe7, 0x23, 0x32, 0x86,
-- 0x21, 0x9a, 0x0d, 0x7d, 0x66, 0x61, 0x34, 0x53, 0xe9, 0x88, 0x05, 0x43,
-- 0xf6, 0x3e, 0xdd, 0xe5, 0x63, 0x71, 0x3c, 0xc0, 0x79, 0xd6, 0x61, 0x36,
-- 0x18, 0x4f, 0x73, 0x7e, 0x70, 0x46, 0xaa, 0x2e, 0xbf, 0x25, 0x92, 0x34,
-- 0x5f, 0x0b, 0xa4, 0xd5, 0x4f, 0x1c, 0x47, 0x85, 0x09, 0xad, 0xba, 0x86,
-- 0xc9, 0x3b, 0x2d, 0x73, 0x78, 0xa7, 0xa2, 0xe6, 0x64, 0xcc, 0x3c, 0xc9,
-- 0x70, 0x9c, 0x50, 0xb5, 0xc4, 0x00, 0xec, 0xed, 0x07, 0x38, 0x3b, 0xcc,
-- 0x75, 0x82, 0x83, 0x33, 0xe2, 0xf3, 0x2a, 0xc1, 0x15, 0xc9, 0x4b, 0xbe,
-- 0x8e, 0x5e, 0xf1, 0x6c, 0x56, 0xb0, 0xc4, 0x53, 0xf8, 0xc4, 0xae, 0x9b,
-- 0xc6, 0xe1, 0x80, 0xf5, 0x89, 0x19, 0x45, 0x5a, 0x83, 0x03, 0x91, 0xa9,
-- 0xa7, 0x53, 0x53, 0x21, 0x8a, 0x62, 0x76, 0xe8, 0xda, 0x5a, 0x78, 0x6b,
-- 0x11, 0x6d, 0x4d, 0x96, 0xdf, 0xd2, 0xcc, 0xbd, 0xaf, 0x49, 0x1a, 0x87,
-- 0x13, 0xb8, 0x77, 0x9e, 0xd5, 0xed, 0xe6, 0x0e, 0xd0, 0xe1, 0x5e, 0x2f,
-- 0xf0, 0x25, 0x4b, 0xab, 0xba, 0x76, 0xa3, 0xcc, 0x3c, 0xc5, 0x62, 0x9d,
-- 0x21, 0x26, 0xca, 0xa1, 0x47, 0x3b, 0xaf, 0xbe, 0xdb, 0x3f, 0x7e, 0x7f,
-- 0xb8, 0xf3, 0x97, 0x36, 0xf9, 0xd0, 0x77, 0xbb, 0xf2, 0xdd, 0x6e, 0xaf,
-- 0x8b, 0x67, 0x11, 0x05, 0x25, 0xc9, 0xfa, 0xab, 0xf5, 0xa4, 0xba, 0x9f,
-- 0x8d, 0x8a, 0xa9, 0xe3, 0x5b, 0xda, 0x09, 0x8f, 0xa2, 0xaf, 0xf2, 0x41,
-- 0x2d, 0xd7, 0x9c, 0x2c, 0x0c, 0xdf, 0x90, 0xed, 0xb1, 0xc3, 0x21, 0xaa,
-- 0x02, 0x21, 0x28, 0x20, 0x9d, 0x84, 0x8b, 0x51, 0xd5, 0xb8, 0xf1, 0x74,
-- 0x83, 0xb8, 0xe5, 0x4a, 0x08, 0xb2, 0x9f, 0xc8, 0x49, 0x6a, 0xb3, 0x73,
-- 0x99, 0xb1, 0x73, 0x75, 0x99, 0x51, 0x50, 0x95, 0x93, 0x44, 0xe4, 0xef,
-- 0x7b, 0x22, 0xdf, 0x9a, 0x2d, 0x2a, 0xef, 0x2b, 0x61, 0x2a, 0x79, 0xa5,
-- 0xe7, 0xb3, 0xcd, 0xf0, 0x98, 0xe9, 0xb3, 0xff, 0xf2, 0x96, 0x66, 0x21,
-- 0x5b, 0xdf, 0xd3, 0xb1, 0x2c, 0x52, 0xe2, 0xe8, 0x65, 0x4f, 0xcf, 0xb3,
-- 0x8f, 0x94, 0x51, 0x9b, 0x01, 0x1f, 0xb0, 0x32, 0xb6, 0xd5, 0xd0, 0xa9,
-- 0xe3, 0x1e, 0x35, 0x9a, 0x87, 0xc3, 0xb2, 0x8c, 0x23, 0xf0, 0x81, 0xa2,
-- 0x51, 0xb3, 0x8b, 0xf0, 0x5e, 0x8f, 0xe4, 0x7a, 0x99, 0xe9, 0xf9, 0x15,
-- 0x6f, 0x60, 0x9b, 0xf4, 0xa9, 0xb1, 0x51, 0x3e, 0x37, 0xda, 0x56, 0xd5,
-- 0x6c, 0x70, 0xcc, 0x14, 0x3d, 0x2d, 0x94, 0xa5, 0x7b, 0xa3, 0xab, 0xfa,
-- 0x3b, 0x1d, 0x0d, 0x74, 0xda, 0xf3, 0x2c, 0xbc, 0xa8, 0x48, 0x64, 0x2b,
-- 0x6c, 0xa0, 0x72, 0xb6, 0x1c, 0x39, 0x2d, 0x88, 0xb9, 0xcf, 0x85, 0xf2,
-- 0x95, 0xeb, 0x26, 0x45, 0xd9, 0xd1, 0xdc, 0xbb, 0xac, 0xae, 0x48, 0x3a,
-- 0xcc, 0xb6, 0xf4, 0xd2, 0xb6, 0x8d, 0x44, 0x2f, 0x32, 0x90, 0x98, 0x7b,
-- 0x9d, 0x5c, 0x1c, 0x7a, 0x7b, 0x09, 0x9e, 0xf4, 0x9e, 0x4e, 0xb1, 0xc3,
-- 0x86, 0x87, 0xd6, 0x7c, 0xa4, 0xca, 0xa5, 0xd3, 0xd8, 0x42, 0xb5, 0x58,
-- 0xd6, 0x6c, 0xe6, 0x28, 0xdc, 0x64, 0xec, 0x0e, 0x55, 0xe2, 0xb2, 0xb3,
-- 0x41, 0x3d, 0x0d, 0x59, 0x9c, 0xc0, 0xc7, 0x2e, 0xe0, 0x2a, 0xb6, 0x59,
-- 0xc8, 0x32, 0x8f, 0xfd, 0x18, 0x06, 0x7f, 0x4d, 0xfd, 0x65, 0xaf, 0xf1,
-- 0x39, 0x58, 0x29, 0xba, 0xc7, 0xe7, 0x49, 0x95, 0xde, 0xca, 0x2b, 0x58,
-- 0xaf, 0xee, 0x3b, 0xcb, 0xbb, 0xc6, 0x8c, 0x61, 0xbf, 0xe6, 0xe6, 0x27,
-- 0xcb, 0xd9, 0x42, 0x85, 0x89, 0x3f, 0xfc, 0x7e, 0xb2, 0xc3, 0x57, 0x2a,
-- 0x1c, 0x0e, 0xd2, 0x6a, 0x9c, 0xe7, 0x5d, 0x02, 0x36, 0x07, 0xe7, 0x91,
-- 0x12, 0x77, 0x38, 0x17, 0x63, 0xd2, 0xfe, 0xf9, 0xc1, 0xd1, 0x91, 0xf7,
-- 0xca, 0x5a, 0x18, 0x03, 0x62, 0xf3, 0xea, 0x96, 0xbc, 0xd4, 0x6a, 0x2e,
-- 0x63, 0x03, 0xf1, 0x58, 0x64, 0x58, 0x99, 0x29, 0x3d, 0xca, 0x56, 0x5c,
-- 0x6c, 0x38, 0xdd, 0x47, 0x95, 0x1a, 0xf7, 0xff, 0x52, 0xdf, 0x2f, 0xb2,
-- 0x57, 0xfb, 0x3d, 0x67, 0xb8, 0x95, 0x79, 0xb6, 0x4f, 0x40, 0xba, 0x64,
-- 0x75, 0x41, 0x98, 0x1d, 0xae, 0x1e, 0xde, 0xbe, 0x89, 0xba, 0x5f, 0x95,
-- 0xef, 0xb1, 0x3b, 0x65, 0xc6, 0xf2, 0xe1, 0x25, 0x9c, 0x50, 0xf3, 0x27,
-- 0xbb, 0xc4, 0xb8, 0xe8, 0x2e, 0x9f, 0x55, 0xa1, 0x00, 0x85, 0xeb, 0xf7,
-- 0x41, 0x6b, 0x60, 0x64, 0x9e, 0xfc, 0x8a, 0x5f, 0x69, 0xdd, 0xfa, 0x0d,
-- 0x3b, 0xe5, 0x0a, 0xeb, 0x64, 0x0a, 0x49, 0xb4, 0xb5, 0x77, 0x4b, 0x31,
-- 0xa2, 0x92, 0xf0, 0x53, 0x4f, 0x89, 0x59, 0xf5, 0x93, 0xe5, 0x9c, 0xff,
-- 0x75, 0x4e, 0x92, 0x24, 0xaf, 0x3b, 0x94, 0x15, 0x56, 0x46, 0xca, 0x9c,
-- 0x65, 0xdf, 0x34, 0x09, 0xf9, 0xa6, 0x48, 0xa9, 0xe6, 0x49, 0x11, 0x51,
-- 0x80, 0x83, 0xd1, 0x38, 0x12, 0xce, 0xec, 0xce, 0x6d, 0x5e, 0xd7, 0x29,
-- 0x0b, 0x6e, 0x98, 0xb9, 0xda, 0xc9, 0x22, 0x81, 0x7c, 0xc2, 0xbb, 0x6e,
-- 0x82, 0x48, 0x9b, 0xb1, 0x13, 0xc3, 0x0c, 0x35, 0x90, 0xf6, 0x71, 0x79,
-- 0x09, 0x62, 0x67, 0xee, 0xbf, 0xe2, 0xae, 0xf5, 0xfa, 0x47, 0xa1, 0x1c,
-- 0x12, 0x6f, 0x38, 0x67, 0xb5, 0xed, 0x86, 0xf8, 0xd8, 0xd9, 0x63, 0xa5,
-- 0x27, 0xb6, 0x3d, 0x8e, 0x4b, 0x78, 0xc0, 0x99, 0x59, 0x92, 0xa2, 0xcb,
-- 0x77, 0x91, 0x13, 0x08, 0x86, 0xc9, 0x01, 0xac, 0x99, 0xdc, 0x42, 0x15,
-- 0x36, 0x11, 0x2e, 0x65, 0x64, 0x80, 0x60, 0x11, 0x10, 0xec, 0x30, 0x0d,
-- 0xf8, 0x12, 0xc6, 0x46, 0xab, 0x74, 0x97, 0x21, 0x1a, 0xa7, 0xd1, 0x58,
-- 0xe3, 0x42, 0xef, 0xb6, 0x67, 0xc8, 0x0d, 0xbf, 0x51, 0x6d, 0x42, 0xf6,
-- 0x99, 0x7b, 0x56, 0xc5, 0x5e, 0xb7, 0x9b, 0x79, 0x71, 0x47, 0x22, 0xcd,
-- 0xbc, 0x90, 0x5e, 0xec, 0x14, 0xf3, 0xb0, 0xdb, 0x8b, 0x5e, 0x67, 0x73,
-- 0xbd, 0xff, 0x95, 0x91, 0x5b, 0x40, 0x19, 0x9e, 0xae, 0xa1, 0x20, 0x9b,
-- 0x18, 0x6d, 0xbc, 0x39, 0xe4, 0xc9, 0x6d, 0xc9, 0x4f, 0x38, 0xb4, 0x0b,
-- 0xc0, 0xca, 0x02, 0x9e, 0x6c, 0x17, 0x77, 0x10, 0x77, 0x02, 0x77, 0x34,
-- 0x91, 0x45, 0x6f, 0xd0, 0xeb, 0x77, 0x29, 0x47, 0x6d, 0xfe, 0x6b, 0x63,
-- 0x72, 0x87, 0x36, 0xba, 0x0b, 0xe4, 0xe8, 0x9b, 0xdb, 0x4b, 0xfc, 0x5e,
-- 0x46, 0xd5, 0x12, 0xed, 0xa3, 0x77, 0xb3, 0x86, 0xd4, 0x61, 0x22, 0xd9,
-- 0xfc, 0x2a, 0x87, 0x42, 0x92, 0xb6, 0x49, 0x9c, 0x2f, 0x68, 0x3d, 0xc7,
-- 0x72, 0x3f, 0x3b, 0x8d, 0x46, 0x87, 0x36, 0x4c, 0xf6, 0xe7, 0x12, 0xcb,
-- 0x75, 0x97, 0x82, 0xf2, 0x5c, 0xfb, 0x10, 0x67, 0xe2, 0x03, 0xe8, 0xae,
-- 0x83, 0xf0, 0x4a, 0xd2, 0x3b, 0xb7, 0x93, 0x63, 0xbb, 0x51, 0xf2, 0x21,
-- 0x20, 0x3e, 0xb9, 0x0e, 0x01, 0x58, 0xad, 0x01, 0xf0, 0x92, 0xbb, 0x45,
-- 0x11, 0xee, 0x7d, 0x77, 0x5d, 0x4c, 0xc5, 0x6b, 0xd7, 0x6a, 0x2e, 0x90,
-- 0x6b, 0xe1, 0x70, 0x86, 0x3a, 0xcd, 0xbe, 0x22, 0xbe, 0x74, 0xca, 0x0c,
-- 0x06, 0x5b, 0x62, 0xae, 0xc4, 0x1f, 0xd8, 0xa9, 0x34, 0xcd, 0xd2, 0x72,
-- 0x7a, 0x4f, 0xc4, 0x21, 0x22, 0x4f, 0x32, 0xb8, 0x6d, 0x35, 0x87, 0xe5,
-- 0x64, 0x9b, 0x47, 0x4a, 0x73, 0x2f, 0xe7, 0xfc, 0x90, 0x7a, 0x09, 0x2d,
-- 0xb8, 0xb2, 0x16, 0xbf, 0xad, 0x38, 0x97, 0xf9, 0xca, 0xbd, 0xcd, 0x59,
-- 0xc3, 0x22, 0x7a, 0x20, 0x39, 0xbd, 0x4d, 0x89, 0x6c, 0xcf, 0x04, 0xd1,
-- 0xa0, 0x49, 0x09, 0x88, 0xb9, 0xce, 0x03, 0xb5, 0x8c, 0xce, 0xe2, 0x35,
-- 0xdd, 0x53, 0xa4, 0x2b, 0x2e, 0xd3, 0xd5, 0xcb, 0xf5, 0x49, 0x17, 0x9c,
-- 0xdc, 0x70, 0x61, 0x3c, 0x54, 0x07, 0x2d, 0x83, 0x5e, 0x57, 0xdc, 0x80,
-- 0x07, 0xb2, 0x79, 0xc4, 0xfc, 0xe6, 0x4b, 0xba, 0x06, 0xeb, 0xe4, 0x65,
-- 0x71, 0x79, 0x49, 0xd4, 0xfe, 0x45, 0x24, 0x68, 0xcb, 0x23, 0x5b, 0x67,
-- 0x88, 0xb5, 0x6e, 0x30, 0xdd, 0xa4, 0x19, 0x4e, 0x96, 0xa8, 0xfc, 0x72,
-- 0x95, 0xf3, 0x76, 0x48, 0x73, 0xb1, 0x86, 0xd9, 0xfc, 0xde, 0x16, 0x57,
-- 0x7c, 0xe1, 0x16, 0x97, 0x0d, 0x7d, 0x73, 0x74, 0xcf, 0x2c, 0x4a, 0x19,
-- 0x79, 0x3b, 0x4a, 0xd4, 0x64, 0xdf, 0x9b, 0x7c, 0xb1, 0xe0, 0xcd, 0x92,
-- 0xf0, 0x4e, 0x6c, 0xb3, 0xd3, 0x21, 0x46, 0x19, 0x1d, 0x0a, 0xec, 0xaa,
-- 0x39, 0x94, 0x8b, 0x25, 0x5d, 0xc4, 0x32, 0xe8, 0x51, 0x46, 0x27, 0xbd,
-- 0xdd, 0x9c, 0x09, 0xf0, 0x3e, 0x1c, 0x4b, 0x15, 0x9e, 0x09, 0x87, 0x5e,
-- 0xcd, 0x95, 0x83, 0xf2, 0x36, 0xf9, 0x28, 0x0f, 0x55, 0x20, 0xfb, 0x1d,
-- 0x87, 0xff, 0x8d, 0xd7, 0x92, 0xec, 0x3c, 0x9f, 0x1f, 0xfd, 0xaf, 0x43,
-- 0x1f, 0x3c, 0xe7, 0xa2, 0xd3, 0xee, 0x41, 0xed, 0x11, 0x3d, 0xbc, 0xe7,
-- 0x4b, 0xb0, 0x37, 0x38, 0xa0, 0xfd, 0xea, 0x61, 0x28, 0x0d, 0x6b, 0xde,
-- 0xb2, 0x2e, 0xd8, 0xef, 0x2c, 0x71, 0x86, 0x88, 0xf9, 0x66, 0x92, 0x23,
-- 0x7d, 0xb1, 0xcc, 0xb6, 0xe0, 0xec, 0x2f, 0x22, 0xce, 0x8b, 0x2d, 0x44,
-- 0x78, 0x8f, 0x13, 0x64, 0x8e, 0x6a, 0x09, 0xf7, 0x84, 0x54, 0xe1, 0xb7,
-- 0x4f, 0x03, 0x98, 0xb6, 0x20, 0x4b, 0x6a, 0xfc, 0x5d, 0xcc, 0x0b, 0xd4,
-- 0xae, 0x22, 0xd1, 0x46, 0x1d, 0xcc, 0xec, 0x1f, 0x68, 0xed, 0x19, 0xe7,
-- 0x8b, 0x6b, 0x16, 0x1b, 0x5f, 0x22, 0xb0, 0x81, 0x0d, 0x4c, 0xf2, 0xc1,
-- 0x17, 0x9d, 0xd6, 0xf7, 0x73, 0x3d, 0x18, 0x95, 0x5e, 0xa4, 0xf6, 0xb6,
-- 0xf2, 0xaf, 0xdc, 0x02, 0x92, 0x2d, 0x4c, 0x52, 0x83, 0x69, 0xa8, 0xe9,
-- 0x36, 0xcb, 0x71, 0x1d, 0x89, 0xea, 0x6e, 0xa1, 0x27, 0x08, 0xfb, 0xb4,
-- 0xaf, 0x86, 0xc9, 0x19, 0xee, 0xc8, 0xe5, 0x42, 0xe2, 0x12, 0xd9, 0x56,
-- 0xaf, 0xdf, 0x45, 0x4e, 0xaf, 0xaa, 0x6e, 0x88, 0x47, 0x88, 0xf6, 0x0f,
-- 0xfb, 0x9b, 0x37, 0xf4, 0x89, 0x3c, 0xf8, 0x8e, 0x64, 0xc6, 0xbd, 0xb6,
-- 0x2c, 0xed, 0xa3, 0x8a, 0x89, 0x37, 0xce, 0xab, 0x6a, 0x8a, 0x38, 0xee,
-- 0x49, 0x31, 0xae, 0xb6, 0xd2, 0xc5, 0xa2, 0xda, 0xb2, 0x01, 0x36, 0x22,
-- 0xb6, 0x4d, 0xeb, 0x38, 0x3f, 0x77, 0x73, 0xe3, 0x4b, 0x17, 0x36, 0x29,
-- 0x27, 0x2a, 0x4d, 0xe1, 0x79, 0x9b, 0xab, 0x69, 0xf5, 0x58, 0x3d, 0x40,
-- 0x5f, 0xcf, 0x97, 0x17, 0xc7, 0xe7, 0x72, 0xe1, 0xb6, 0x6f, 0xce, 0x25,
-- 0x1f, 0x51, 0xdb, 0x9d, 0xb0, 0x71, 0x28, 0x72, 0x72, 0x01, 0x9f, 0x9f,
-- 0x1f, 0xe0, 0xc3, 0xf3, 0x25, 0x8b, 0x30, 0xd4, 0x4d, 0x79, 0x2f, 0x6c,
-- 0x23, 0xba, 0x69, 0x78, 0xb6, 0xc9, 0x27, 0xff, 0xa7, 0x0b, 0x71, 0x95,
-- 0xd7, 0xc3, 0xcb, 0x6c, 0x52, 0x94, 0x69, 0x64, 0x29, 0x2b, 0x38, 0xa0,
-- 0x1e, 0xab, 0x33, 0xa6, 0xa7, 0xb6, 0x48, 0x3a, 0xfe, 0x40, 0xeb, 0x35,
-- 0xe4, 0xdf, 0xa1, 0xda, 0xc9, 0xa2, 0xd9, 0xc7, 0xbc, 0x5e, 0x7f, 0x7c,
-- 0x8d, 0x10, 0x3d, 0x3a, 0x0e, 0xd5, 0xef, 0x49, 0xd7, 0x24, 0xa4, 0xc1,
-- 0x05, 0x30, 0xe9, 0x16, 0x0a, 0xcf, 0xcc, 0x26, 0x98, 0xf8, 0x27, 0x7d,
-- 0xc8, 0x5e, 0x3b, 0x73, 0x89, 0xa4, 0xb0, 0xab, 0x82, 0xae, 0xd3, 0xeb,
-- 0x59, 0xa7, 0x1f, 0xc2, 0x7c, 0x6c, 0x7d, 0xec, 0x26, 0xd4, 0x34, 0xb9,
-- 0x4e, 0x96, 0xf3, 0xa0, 0x75, 0xa2, 0x84, 0x31, 0x31, 0x0a, 0x8e, 0x08,
-- 0x17, 0xe3, 0x47, 0xc7, 0xf6, 0x98, 0x9c, 0xed, 0x8d, 0x85, 0x66, 0xfc,
-- 0x32, 0x96, 0x57, 0x41, 0xb5, 0x61, 0xaf, 0xc4, 0xdc, 0xe7, 0x51, 0xc1,
-- 0x6c, 0xcd, 0x06, 0xea, 0xae, 0xd1, 0x61, 0x89, 0x5a, 0xd7, 0x78, 0x73,
-- 0xa9, 0x70, 0x5c, 0x07, 0xbc, 0xbc, 0xcc, 0xea, 0x5e, 0x56, 0x24, 0xd1,
-- 0x50, 0x27, 0x5f, 0x44, 0x41, 0x3f, 0x1f, 0xf3, 0xd9, 0x72, 0x86, 0x6d,
-- 0x60, 0xca, 0xd3, 0xc7, 0x84, 0x4d, 0xf1, 0x05, 0x8d, 0x88, 0x18, 0x9d,
-- 0xb9, 0xe7, 0x01, 0xce, 0x17, 0xd2, 0xbe, 0x64, 0x64, 0x3e, 0xf2, 0x2d,
-- 0x89, 0x53, 0x43, 0x27, 0xa5, 0x69, 0xa0, 0xd5, 0x8c, 0x43, 0x24, 0x9a,
-- 0xfc, 0x24, 0x59, 0x5c, 0xa7, 0x55, 0xd6, 0x47, 0xe0, 0x59, 0xd7, 0x54,
-- 0xe9, 0x5b, 0x7b, 0x3a, 0x8b, 0x34, 0xa3, 0x02, 0xf2, 0x30, 0xfc, 0xa8,
-- 0xb4, 0xb4, 0x9c, 0x2e, 0x04, 0x13, 0xe4, 0x67, 0xc3, 0x27, 0xbb, 0xc3,
-- 0xed, 0x7e, 0x64, 0x73, 0xf0, 0xaa, 0xa2, 0x05, 0x89, 0x13, 0x5f, 0x19,
-- 0xe7, 0x33, 0x17, 0x7d, 0x67, 0xb2, 0x4c, 0xc6, 0xb2, 0xdd, 0x52, 0xe9,
-- 0x13, 0x77, 0x45, 0x3e, 0x8d, 0xc3, 0x49, 0x58, 0x30, 0x13, 0x16, 0x49,
-- 0xad, 0x2d, 0xcb, 0x74, 0x7c, 0x2f, 0x01, 0xa5, 0xa1, 0x4d, 0xc2, 0x1a,
-- 0xa0, 0x71, 0xe1, 0x69, 0x1c, 0x70, 0xee, 0x74, 0x10, 0x89, 0x9f, 0x53,
-- 0xf5, 0x05, 0x83, 0xc9, 0x9e, 0x67, 0x99, 0x68, 0xc9, 0x10, 0x20, 0x67,
-- 0x2c, 0x83, 0xcc, 0xd2, 0x8f, 0xd8, 0xd0, 0x07, 0x45, 0xc8, 0x7f, 0xd0,
-- 0x51, 0x83, 0xc8, 0x49, 0xba, 0x5c, 0xd9, 0xa6, 0x66, 0x38, 0xd2, 0x9c,
-- 0xd1, 0x1b, 0x44, 0xf1, 0x57, 0x3a, 0x12, 0x2d, 0x33, 0x93, 0x45, 0xc2,
-- 0xf5, 0x03, 0x72, 0x95, 0x36, 0x3b, 0xec, 0x40, 0xb4, 0xb5, 0x74, 0x9a,
-- 0x38, 0x80, 0x81, 0x0d, 0x53, 0x1c, 0x7f, 0xc6, 0xcc, 0xa4, 0xa0, 0xbf,
-- 0xaf, 0x73, 0x1a, 0x79, 0x39, 0xbe, 0xc6, 0xba, 0xb2, 0xc1, 0x17, 0x3e,
-- 0xb1, 0x87, 0x54, 0x7e, 0xf4, 0x51, 0xa9, 0xed, 0x34, 0xe7, 0xab, 0x88,
-- 0xb5, 0xd6, 0x62, 0x6e, 0x32, 0x48, 0x6b, 0x74, 0x2c, 0xcf, 0x33, 0x5b,
-- 0xc8, 0xa6, 0x4c, 0x3d, 0x47, 0x5d, 0x46, 0xaf, 0x41, 0x11, 0xa8, 0x34,
-- 0xb8, 0xfa, 0x89, 0xe2, 0xa8, 0x69, 0x96, 0xa6, 0xc5, 0x60, 0x28, 0x1d,
-- 0xb1, 0xd9, 0x5b, 0xfa, 0x42, 0x20, 0x19, 0xab, 0x82, 0x6d, 0xf5, 0x50,
-- 0x3d, 0x7d, 0xfa, 0xbe, 0xad, 0xbd, 0x39, 0xfb, 0x22, 0xf5, 0xa6, 0xb0,
-- 0xf9, 0x98, 0x22, 0x68, 0x0b, 0x23, 0x97, 0xb5, 0xd3, 0xd7, 0x58, 0x78,
-- 0xa2, 0xc1, 0x48, 0xfa, 0x23, 0x5f, 0x13, 0x83, 0xc1, 0x65, 0x1d, 0x99,
-- 0x95, 0x83, 0x2d, 0x6d, 0xee, 0xf4, 0xf4, 0x12, 0x76, 0x9c, 0x4d, 0x16,
-- 0x60, 0x89, 0x52, 0xea, 0xe4, 0xf8, 0x0d, 0x1f, 0xe0, 0x83, 0x33, 0xfa,
-- 0x37, 0x37, 0x4f, 0x29, 0x5b, 0x43, 0x91, 0xcb, 0xc8, 0x66, 0x92, 0xb7,
-- 0xdf, 0x9d, 0x27, 0x1b, 0x27, 0xe7, 0x5b, 0x4f, 0x5e, 0x6c, 0x6f, 0xb6,
-- 0xdb, 0xe2, 0xa5, 0x82, 0xfa, 0xde, 0xa9, 0xb9, 0x9f, 0x6f, 0x71, 0x0a,
-- 0xe8, 0x26, 0xa7, 0xe9, 0xde, 0xb2, 0x61, 0xa2, 0x61, 0xd6, 0x3a, 0x3d,
-- 0x7c, 0x6b, 0xf6, 0x47, 0x71, 0xef, 0x93, 0x4c, 0x4d, 0xe3, 0x61, 0xef,
-- 0x49, 0x4c, 0x38, 0x67, 0xd9, 0xad, 0x59, 0x31, 0x93, 0x63, 0x88, 0x0a,
-- 0xe0, 0x59, 0x6c, 0x28, 0x35, 0xc1, 0x63, 0x91, 0xb1, 0x38, 0xe9, 0x5b,
-- 0x50, 0xb6, 0xc6, 0x17, 0x78, 0x24, 0xf0, 0x8d, 0xc0, 0x92, 0x2a, 0x1a,
-- 0x53, 0x89, 0x4b, 0x83, 0x83, 0xfa, 0x27, 0xbf, 0xdf, 0x09, 0xeb, 0x08,
-- 0x7e, 0xd9, 0x79, 0x31, 0xfc, 0xcc, 0x65, 0xc0, 0x0d, 0x26, 0x7d, 0x8b,
-- 0x49, 0x7e, 0xf9, 0x80, 0xcb, 0xe1, 0x3c, 0x13, 0x66, 0x1d, 0x32, 0x1c,
-- 0xbc, 0x04, 0x6f, 0x00, 0xe2, 0xf2, 0xcd, 0x51, 0xe6, 0xbd, 0xd7, 0x1d,
-- 0x86, 0x46, 0xcb, 0xee, 0x75, 0xbe, 0x51, 0x89, 0x28, 0x85, 0x9e, 0xab,
-- 0x8b, 0x96, 0x8c, 0xca, 0xe2, 0x8e, 0x43, 0x11, 0x11, 0x20, 0x0f, 0xea,
-- 0x4b, 0x25, 0x36, 0xf1, 0x3a, 0xb2, 0xaa, 0xd2, 0x9e, 0x4e, 0x9d, 0xa7,
-- 0xfd, 0x9b, 0x8b, 0xb7, 0xc7, 0x12, 0x21, 0xce, 0xd7, 0xde, 0x42, 0x7d,
-- 0xf8, 0x18, 0xf3, 0x72, 0x44, 0xf7, 0x01, 0x73, 0xdc, 0xda, 0x99, 0xc6,
-- 0xba, 0x18, 0x2d, 0xec, 0x78, 0x4e, 0x98, 0x5f, 0x74, 0xb9, 0x59, 0xf4,
-- 0xe2, 0xf1, 0xf6, 0x0b, 0xd6, 0xd7, 0xe8, 0x34, 0x0e, 0xd8, 0x50, 0xd8,
-- 0xb6, 0xf9, 0x2c, 0x16, 0x53, 0xb5, 0x63, 0x6d, 0x7d, 0x1c, 0x90, 0x40,
-- 0x38, 0xe0, 0xd1, 0x0d, 0xa8, 0x79, 0xf1, 0x14, 0x33, 0x8b, 0x39, 0xa0,
-- 0x2b, 0x5e, 0xe8, 0x24, 0x19, 0xbc, 0xe1, 0xad, 0xe0, 0x47, 0xa2, 0xed,
-- 0x0b, 0x76, 0x49, 0x95, 0x33, 0x2c, 0x5b, 0x5a, 0x59, 0x40, 0xb9, 0x18,
-- 0x4d, 0xd5, 0x0f, 0xbd, 0x40, 0x9c, 0xaf, 0xc4, 0x99, 0x2f, 0x48, 0x17,
-- 0x88, 0xac, 0x47, 0x6c, 0xae, 0x2f, 0xef, 0x25, 0xf2, 0x59, 0xad, 0xe9,
-- 0xe6, 0x56, 0x74, 0x96, 0x04, 0x69, 0x56, 0x9e, 0xf4, 0xe6, 0xfb, 0x82,
-- 0x65, 0xc0, 0x41, 0x64, 0x4d, 0x85, 0xdf, 0x9b, 0x5f, 0x93, 0x90, 0x7e,
-- 0x4e, 0x02, 0x95, 0x9d, 0x10, 0x67, 0x3a, 0x72, 0xda, 0xd2, 0x7b, 0x34,
-- 0xae, 0x0d, 0xbb, 0x45, 0xe8, 0x22, 0x7d, 0x9f, 0x46, 0x50, 0xf9, 0x00,
-- 0x72, 0x3b, 0x03, 0xb8, 0x83, 0x21, 0x06, 0x23, 0x82, 0x5c, 0xf3, 0x18,
-- 0x85, 0x8c, 0x48, 0x60, 0x8a, 0x6f, 0x3b, 0x33, 0xd9, 0xf4, 0x95, 0xe2,
-- 0x74, 0x61, 0x72, 0xbe, 0x0c, 0x1a, 0x36, 0x7d, 0x39, 0x3f, 0xb3, 0xac,
-- 0xbc, 0x82, 0x96, 0x79, 0x95, 0xd5, 0xb1, 0xb2, 0xa0, 0xfc, 0x42, 0xc3,
-- 0x82, 0xa1, 0xdc, 0xfe, 0xcb, 0x40, 0x1c, 0x50, 0xb8, 0x30, 0x96, 0x1c,
-- 0x9f, 0x2b, 0xd4, 0x91, 0xac, 0x73, 0x66, 0x82, 0x3a, 0xf3, 0xe6, 0xb4,
-- 0x10, 0xbc, 0x8f, 0xb1, 0xb2, 0x3c, 0x9d, 0xbe, 0x9a, 0x92, 0xe2, 0x7e,
-- 0xbf, 0x9e, 0x68, 0x5a, 0x8d, 0x06, 0xc0, 0xd7, 0xaa, 0xd8, 0x63, 0x33,
-- 0xc7, 0xd7, 0xcb, 0xf9, 0x8d, 0x29, 0xde, 0xd3, 0xa2, 0xe0, 0xf0, 0x02,
-- 0x0e, 0xc6, 0x6f, 0x35, 0xb7, 0x1e, 0xf4, 0xf6, 0x2f, 0x61, 0xdb, 0x5d,
-- 0xab, 0x8c, 0xdd, 0x47, 0x46, 0x87, 0x23, 0x72, 0x77, 0x73, 0x49, 0x3e,
-- 0x64, 0xf2, 0x65, 0xdf, 0x5c, 0xdd, 0x75, 0xc3, 0xa9, 0x15, 0x05, 0x44,
-- 0x89, 0x99, 0x0f, 0x37, 0x97, 0xf3, 0x9f, 0xb9, 0x56, 0xc5, 0x51, 0x46,
-- 0xec, 0x7c, 0x60, 0x4e, 0xde, 0x86, 0xe9, 0x94, 0x1f, 0xee, 0xb8, 0x0e,
-- 0x3d, 0x34, 0x00, 0x9c, 0xa9, 0xc3, 0xe4, 0x6d, 0x98, 0x30, 0xd7, 0x8c,
-- 0x86, 0x70, 0xbb, 0x38, 0x4c, 0x4e, 0x69, 0xbd, 0x06, 0x91, 0xf3, 0xe5,
-- 0xca, 0xb6, 0x1d, 0x0d, 0xf2, 0xba, 0xfa, 0x11, 0x4f, 0x92, 0xf5, 0xcb,
-- 0xa2, 0x18, 0xa5, 0xe5, 0xba, 0x6e, 0x00, 0x1c, 0xf7, 0x23, 0x55, 0xbe,
-- 0x78, 0x49, 0x22, 0xa7, 0x37, 0xda, 0xfa, 0x52, 0xde, 0x1a, 0x8a, 0xa4,
-- 0x12, 0x1c, 0xcf, 0x62, 0x3a, 0x71, 0x8b, 0xd0, 0xee, 0xb0, 0x63, 0xd3,
-- 0x78, 0x53, 0x49, 0x7c, 0x49, 0xcb, 0x32, 0x4f, 0xaf, 0x78, 0xb1, 0xeb,
-- 0x65, 0x39, 0x97, 0xec, 0xb2, 0x79, 0x76, 0x27, 0xce, 0x46, 0xef, 0x2b,
-- 0x2a, 0x61, 0x5d, 0x69, 0x6a, 0xf6, 0x91, 0x9b, 0xa6, 0xfb, 0x62, 0xfc,
-- 0x1e, 0x36, 0x6a, 0x4d, 0xef, 0x92, 0x74, 0xd3, 0xc0, 0xf1, 0xd3, 0x64,
-- 0xee, 0x70, 0x43, 0x75, 0xdb, 0x41, 0x03, 0x35, 0x43, 0xdc, 0x84, 0x2e,
-- 0x67, 0x93, 0x96, 0x21, 0xc8, 0xfd, 0x54, 0x0f, 0x16, 0xb7, 0xab, 0xdd,
-- 0x74, 0x4c, 0x5c, 0x18, 0x37, 0x1b, 0x65, 0x72, 0x18, 0xa0, 0x71, 0xcd,
-- 0x14, 0xdc, 0xcc, 0x50, 0x1d, 0xca, 0x41, 0xb6, 0xa3, 0x1b, 0xae, 0x38,
-- 0xb6, 0x62, 0xa2, 0x99, 0x0b, 0x75, 0xca, 0xca, 0xe7, 0x9a, 0x8d, 0x08,
-- 0x4d, 0xc3, 0xe1, 0x50, 0xcc, 0xdd, 0x6d, 0xee, 0x7c, 0x3f, 0x6a, 0x39,
-- 0x8d, 0x76, 0xb9, 0x61, 0x47, 0xfd, 0x03, 0xac, 0x11, 0xab, 0xfc, 0x6d,
-- 0xbc, 0x16, 0x92, 0x01, 0xc2, 0x17, 0x18, 0x0e, 0x4f, 0x9b, 0x71, 0x88,
-- 0x25, 0xb7, 0xe1, 0xd5, 0x8b, 0x16, 0xb8, 0x25, 0xf3, 0xaa, 0x2b, 0x2b,
-- 0x0b, 0xad, 0x56, 0x4e, 0xcd, 0x14, 0xc2, 0x48, 0xcb, 0x50, 0x9e, 0x88,
-- 0x64, 0x0d, 0x9e, 0x5e, 0x4f, 0x57, 0xad, 0xa7, 0x1e, 0x9f, 0xa5, 0xbc,
-- 0xc5, 0x9a, 0x26, 0x0e, 0x69, 0xf9, 0xbb, 0x46, 0x04, 0xf9, 0xdb, 0xa9,
-- 0x5b, 0xc0, 0x60, 0xf5, 0xc3, 0x5f, 0x6f, 0xd1, 0x9b, 0x7a, 0x01, 0x3d,
-- 0x24, 0x9b, 0x5c, 0xa8, 0x41, 0xb7, 0x56, 0x0f, 0x1c, 0xec, 0x96, 0x53,
-- 0x48, 0xf2, 0x2d, 0x8f, 0x2d, 0x07, 0x0c, 0x68, 0xe4, 0x0d, 0x9d, 0x80,
-- 0x48, 0x6e, 0x65, 0xe7, 0x3c, 0x07, 0x61, 0x11, 0x59, 0x56, 0x45, 0xd6,
-- 0x88, 0xea, 0x0c, 0xa2, 0x0e, 0x90, 0xb2, 0xa1, 0x99, 0x70, 0x9f, 0xc4,
-- 0x38, 0xbd, 0xbf, 0xba, 0x8b, 0x6b, 0x32, 0x07, 0xa2, 0x9b, 0xe3, 0xb5,
-- 0x32, 0x8f, 0x05, 0x6c, 0x22, 0x9a, 0x69, 0x2f, 0xc9, 0x86, 0x89, 0xe5,
-- 0xd9, 0x47, 0xf7, 0x7d, 0x47, 0x9c, 0x1f, 0x67, 0x87, 0x7c, 0x44, 0xae,
-- 0x90, 0x5e, 0x16, 0x8e, 0x85, 0x48, 0x06, 0x6e, 0x9b, 0xc9, 0x48, 0x5c,
-- 0x30, 0x68, 0x6b, 0xd2, 0x11, 0x66, 0x35, 0x86, 0xa4, 0x5e, 0xb9, 0xd4,
-- 0xab, 0x39, 0x48, 0x9c, 0x19, 0xe3, 0x6f, 0xa4, 0x19, 0x39, 0xc7, 0x85,
-- 0x04, 0x50, 0xb8, 0x04, 0x9a, 0x0e, 0x0d, 0x5f, 0xa2, 0xb0, 0xc4, 0xbb,
-- 0x82, 0x18, 0x49, 0x59, 0xe8, 0xb4, 0x52, 0xe8, 0x8c, 0x91, 0xac, 0xd2,
-- 0x03, 0xa4, 0xe3, 0x44, 0x8c, 0x5f, 0x43, 0x3d, 0x7d, 0xb7, 0xea, 0xca,
-- 0x12, 0xc5, 0x0f, 0xa3, 0xdc, 0xdd, 0x64, 0x91, 0x8e, 0x4b, 0x41, 0x2c,
-- 0xe6, 0xbc, 0xf2, 0x88, 0x3a, 0xbd, 0x4e, 0xcd, 0xd3, 0x90, 0x95, 0x2c,
-- 0x09, 0x55, 0x10, 0x9c, 0xcc, 0xd4, 0xd2, 0xcc, 0x08, 0xd9, 0xf9, 0x9c,
-- 0xa3, 0xd1, 0x23, 0x9d, 0x8c, 0x08, 0xe6, 0xe0, 0xeb, 0x23, 0x18, 0xa3,
-- 0xa6, 0x39, 0xb1, 0x54, 0x21, 0x29, 0x99, 0x8b, 0x00, 0x7b, 0x38, 0xca,
-- 0xba, 0x62, 0x5e, 0xa7, 0xe1, 0xd2, 0xcd, 0x8c, 0x35, 0xe7, 0x42, 0xe3,
-- 0xa5, 0x76, 0x79, 0x0e, 0x2e, 0x61, 0x11, 0x9b, 0x9c, 0x9a, 0x10, 0xeb,
-- 0x62, 0xc8, 0x52, 0x6f, 0x7f, 0xed, 0x5c, 0x3b, 0xf4, 0xae, 0xf9, 0x83,
-- 0x2c, 0x26, 0x8b, 0x55, 0x1e, 0x1c, 0x36, 0xb2, 0x7e, 0xf9, 0x5d, 0x16,
-- 0xa0, 0x94, 0xac, 0xda, 0x5b, 0x8b, 0x3c, 0x72, 0xe8, 0xbe, 0x1b, 0xbf,
-- 0xe8, 0xc2, 0x05, 0xce, 0xce, 0x5c, 0xe2, 0x98, 0x5b, 0xcb, 0x2c, 0x94,
-- 0xc1, 0x45, 0xee, 0x67, 0xa9, 0xbd, 0xcb, 0xeb, 0xe6, 0x8c, 0xb9, 0x74,
-- 0xda, 0xfe, 0x07, 0x9b, 0x8d, 0xa1, 0x8a, 0x11, 0x51, 0xb3, 0xb2, 0x09,
-- 0xf3, 0x87, 0xfa, 0x4a, 0xac, 0x35, 0x0b, 0x9b, 0xe5, 0xbf, 0xd3, 0x28,
-- 0xea, 0xc5, 0x1d, 0x92, 0xfb, 0xe4, 0x15, 0xcb, 0x36, 0x5f, 0x6a, 0x18,
-- 0x12, 0xdb, 0xf1, 0x54, 0xff, 0x13, 0x07, 0x89, 0x5c, 0x4b, 0x12, 0x94,
-- 0x23, 0x1a, 0x0f, 0x96, 0xa1, 0xbb, 0x39, 0x04, 0x04, 0x85, 0xab, 0x27,
-- 0xe4, 0x37, 0x86, 0x3d, 0x07, 0x60, 0x39, 0x51, 0x04, 0xc6, 0xab, 0xc7,
-- 0x57, 0xef, 0xd7, 0x2e, 0xdf, 0xc3, 0xab, 0x77, 0x71, 0x2d, 0xb9, 0x04,
-- 0x19, 0xc2, 0xdd, 0x5e, 0x05, 0xe1, 0x57, 0xec, 0x3f, 0x91, 0x00, 0x60,
-- 0x1f, 0xcf, 0xd2, 0x3c, 0x9a, 0x81, 0x17, 0xec, 0xd5, 0x3f, 0x6a, 0xd7,
-- 0x41, 0x8c, 0x90, 0xf2, 0x79, 0xf0, 0xdd, 0xcd, 0x09, 0x2f, 0x94, 0x44,
-- 0xa3, 0xa2, 0xce, 0xfc, 0x66, 0x0b, 0x12, 0x06, 0xb7, 0xc0, 0x59, 0x32,
-- 0x1f, 0x17, 0x6a, 0xfc, 0xc3, 0xe9, 0xeb, 0x50, 0x75, 0x1a, 0x1a, 0xcf,
-- 0xc4, 0xac, 0x2f, 0xd1, 0xfc, 0xbe, 0x34, 0xce, 0xfe, 0xd8, 0xe4, 0x1a,
-- 0xc1, 0x5a, 0x88, 0x13, 0x6c, 0xc8, 0xa9, 0xa0, 0x17, 0x75, 0xfe, 0x74,
-- 0x38, 0x13, 0x8d, 0x93, 0xf9, 0xa0, 0x6b, 0xd0, 0xa3, 0xe3, 0xf9, 0x9b,
-- 0xfd, 0xe6, 0x9a, 0x71, 0x56, 0x30, 0x98, 0xa8, 0x6e, 0x74, 0x77, 0x73,
-- 0x39, 0x5f, 0xe8, 0xb6, 0x7d, 0xac, 0xda, 0x77, 0x6e, 0xdf, 0xff, 0x61,
-- 0x53, 0x94, 0x68, 0x05, 0x51, 0x60, 0x04, 0x34, 0xe9, 0x8a, 0xe3, 0x54,
-- 0x24, 0x58, 0xf7, 0x6f, 0x6c, 0xa0, 0x4d, 0x18, 0xb7, 0x6b, 0x05, 0x13,
-- 0xc0, 0x05, 0xc5, 0x3e, 0x4f, 0x76, 0xe7, 0x4d, 0xa1, 0x16, 0x52, 0xe3,
-- 0xa0, 0x72, 0xaf, 0xed, 0x0f, 0x10, 0x78, 0xa8, 0x54, 0x3b, 0x04, 0x1d,
-- 0x3e, 0x40, 0xac, 0x8e, 0x38, 0xbb, 0xe9, 0x72, 0x25, 0x05, 0xd2, 0x4d,
-- 0x95, 0x4d, 0xb3, 0x2b, 0x11, 0x71, 0x8f, 0x0f, 0xbf, 0x3b, 0x3c, 0x8e,
-- 0x04, 0xae, 0x5a, 0x3e, 0x77, 0xde, 0xcb, 0xc0, 0xae, 0x61, 0xc8, 0x26,
-- 0x79, 0x25, 0x06, 0x79, 0xe9, 0x53, 0x5b, 0xec, 0x0c, 0x7c, 0xcd, 0x99,
-- 0x41, 0x6a, 0xfa, 0x04, 0xac, 0x34, 0x63, 0x92, 0x43, 0x05, 0x1f, 0xa8,
-- 0x82, 0x2d, 0x4f, 0x65, 0xaf, 0xaf, 0xcf, 0xcf, 0xb7, 0x6e, 0xb2, 0x72,
-- 0xc4, 0xf8, 0x4b, 0x31, 0x41, 0x21, 0x1e, 0x3f, 0x79, 0x8d, 0x08, 0x02,
-- 0xf1, 0x04, 0xf0, 0x2e, 0xfb, 0x99, 0x44, 0x6f, 0x2c, 0x8a, 0x69, 0x3e,
-- 0xbe, 0x4f, 0x5e, 0xeb, 0xc8, 0x24, 0x19, 0x04, 0xbb, 0x0e, 0x07, 0x80,
-- 0xda, 0x4b, 0x4f, 0xbe, 0x1d, 0xec, 0x9f, 0x0f, 0x5e, 0x1f, 0x1e, 0x1f,
-- 0x7e, 0xbd, 0x7f, 0x71, 0x28, 0x09, 0x0d, 0x08, 0xc3, 0x5c, 0xc1, 0x75,
-- 0x94, 0x22, 0xbe, 0xd5, 0x71, 0x62, 0x55, 0x38, 0x88, 0xb8, 0xce, 0xc7,
-- 0x37, 0x59, 0x6d, 0xc1, 0x9e, 0x86, 0x66, 0xc7, 0xdc, 0xba, 0x16, 0xd7,
-- 0x78, 0x77, 0x73, 0xb4, 0x35, 0xd3, 0x99, 0x0e, 0x35, 0x9a, 0x41, 0x3a,
-- 0xbd, 0x63, 0x24, 0x90, 0xf7, 0x73, 0x56, 0x4f, 0x34, 0x35, 0x9f, 0xa5,
-- 0x56, 0xcc, 0x3e, 0xd8, 0x92, 0x60, 0xfd, 0x1b, 0xbb, 0x8c, 0xe8, 0xa7,
-- 0x15, 0x41, 0x4b, 0x12, 0x22, 0xa7, 0xd9, 0x75, 0xaf, 0xf1, 0xe4, 0xca,
-- 0x00, 0x31, 0x56, 0xa3, 0xf5, 0xab, 0x48, 0x22, 0x16, 0x2a, 0xaa, 0xc6,
-- 0xd7, 0xd9, 0x4c, 0x0f, 0x17, 0xc7, 0x19, 0xd0, 0xa3, 0x8a, 0x12, 0x42,
-- 0x07, 0xec, 0x8e, 0xe3, 0x57, 0xe4, 0x28, 0x8b, 0xba, 0x21, 0x11, 0x70,
-- 0x08, 0x09, 0xeb, 0x8a, 0xec, 0xbc, 0xcb, 0x91, 0xa0, 0x2d, 0xa1, 0x20,
-- 0x88, 0x8a, 0x03, 0x95, 0x58, 0x6c, 0x69, 0x77, 0x34, 0xa9, 0x00, 0xbd,
-- 0xb4, 0x15, 0xb4, 0xa5, 0xa5, 0x93, 0xb8, 0x5c, 0x9f, 0x42, 0x23, 0xce,
-- 0x04, 0x4b, 0x4f, 0x4e, 0xb3, 0xbb, 0x19, 0x78, 0xa4, 0x82, 0xf3, 0x26,
-- 0x11, 0xb5, 0x71, 0x28, 0x3b, 0x22, 0xcb, 0x82, 0x90, 0x76, 0x41, 0x2b,
-- 0x70, 0x41, 0xeb, 0x6c, 0x91, 0x36, 0xe4, 0x38, 0x4b, 0xe8, 0xee, 0xd2,
-- 0x10, 0xea, 0xb6, 0x9a, 0xac, 0x1a, 0x5d, 0x4b, 0x14, 0x06, 0xa1, 0x4a,
-- 0x20, 0x53, 0xa9, 0x4a, 0x54, 0x67, 0x6e, 0x6a, 0x73, 0xd7, 0x91, 0xef,
-- 0x39, 0xc8, 0x16, 0x65, 0xdd, 0x11, 0x22, 0x29, 0x39, 0x16, 0xce, 0xb2,
-- 0x32, 0x09, 0xb2, 0x43, 0x83, 0x24, 0xfe, 0xc3, 0xd3, 0x33, 0x81, 0x28,
-- 0x3c, 0xe6, 0x5f, 0x34, 0x0c, 0xa2, 0xdd, 0x33, 0xb4, 0x79, 0x4d, 0x82,
-- 0x80, 0xc3, 0x15, 0x4a, 0xa8, 0x83, 0x29, 0xb2, 0xa0, 0x35, 0x09, 0x9b,
-- 0x50, 0x18, 0x1e, 0x25, 0x69, 0xcc, 0x27, 0x8a, 0xc3, 0x73, 0x78, 0x48,
-- 0x3c, 0x12, 0x1e, 0x42, 0x5f, 0x44, 0x23, 0x0c, 0x42, 0x42, 0x3f, 0xcc,
-- 0x3c, 0x7f, 0xc2, 0x5f, 0x8e, 0x96, 0xb5, 0xcb, 0x6f, 0x59, 0xe1, 0xea,
-- 0xec, 0x4b, 0x2a, 0x98, 0x5c, 0x33, 0xdc, 0x2c, 0xbf, 0x99, 0x94, 0x40,
-- 0xcf, 0x4a, 0x69, 0x28, 0xc3, 0xd6, 0x54, 0x01, 0x1e, 0xc1, 0xc9, 0xb1,
-- 0xdd, 0xf9, 0x65, 0x26, 0xf1, 0x53, 0x03, 0x80, 0xe2, 0xe1, 0x09, 0x9b,
-- 0xa5, 0x44, 0xbc, 0xb3, 0x02, 0x2c, 0xc2, 0x62, 0x8e, 0x60, 0x37, 0x0a,
-- 0xe2, 0x51, 0x64, 0x47, 0xd6, 0x6c, 0x28, 0xe7, 0xe3, 0xbb, 0xd7, 0xfc,
-- 0x5b, 0xb1, 0x5d, 0x5e, 0xaa, 0x17, 0x2b, 0x9d, 0xe6, 0xf5, 0xbd, 0x68,
-- 0x7a, 0x62, 0x31, 0x10, 0x1b, 0xc1, 0x75, 0xda, 0x95, 0xaa, 0x40, 0x0b,
-- 0xef, 0xf0, 0x3b, 0x30, 0x4b, 0xdd, 0xb6, 0xd8, 0x54, 0x0c, 0xda, 0x08,
-- 0xc1, 0x3d, 0x00, 0xe2, 0xf1, 0x91, 0x4d, 0xd1, 0x39, 0xab, 0xc5, 0x3a,
-- 0x14, 0x59, 0x19, 0xc6, 0xca, 0x50, 0x2a, 0x9f, 0x17, 0x5d, 0x54, 0xa5,
-- 0x0c, 0x82, 0x14, 0x10, 0x81, 0x00, 0x68, 0x92, 0x60, 0xd4, 0xbb, 0xe4,
-- 0x23, 0x83, 0x0d, 0xa0, 0x03, 0xd0, 0xf8, 0xf8, 0x5a, 0x71, 0xdd, 0xc4,
-- 0xdb, 0xc9, 0xb4, 0x34, 0xca, 0xae, 0xd3, 0xdb, 0x9c, 0x01, 0x53, 0x42,
-- 0xe4, 0x9f, 0xc8, 0x59, 0x52, 0x11, 0x01, 0x10, 0xbf, 0x55, 0x63, 0x3c,
-- 0xbf, 0x88, 0x08, 0xda, 0x00, 0xf1, 0x47, 0x36, 0x03, 0x91, 0xa9, 0x83,
-- 0x53, 0x84, 0x85, 0xb2, 0x47, 0x4a, 0x32, 0xd7, 0xa3, 0x58, 0x70, 0x04,
-- 0xfd, 0x3a, 0xe4, 0x0e, 0x7d, 0x34, 0xad, 0x6e, 0xbb, 0x4f, 0x58, 0x75,
-- 0xdb, 0x79, 0xc2, 0xe4, 0x88, 0x05, 0x39, 0xf9, 0x93, 0x30, 0xbb, 0xbd,
-- 0x71, 0xcc, 0xce, 0xbf, 0x73, 0x41, 0x46, 0x1d, 0x37, 0xa7, 0x1c, 0x2e,
-- 0x9b, 0x58, 0xd7, 0xe9, 0x52, 0xca, 0x76, 0xe7, 0xcb, 0x0e, 0xd8, 0x83,
-- 0x27, 0x0c, 0x63, 0x92, 0x33, 0x46, 0xfd, 0xeb, 0xc1, 0x3a, 0xdd, 0x3f,
-- 0xff, 0x2e, 0x38, 0x52, 0x81, 0xa2, 0xee, 0xf2, 0x01, 0xa3, 0x2b, 0xb9,
-- 0x86, 0x8b, 0x4f, 0x8e, 0x24, 0xb7, 0xd5, 0x49, 0x6a, 0xd5, 0xed, 0xa7,
-- 0x90, 0x1a, 0x0d, 0x24, 0x22, 0xb5, 0x68, 0x79, 0x1f, 0x22, 0xb5, 0x70,
-- 0x8f, 0x22, 0x52, 0x43, 0xfb, 0x11, 0xa5, 0xd9, 0xc2, 0xfe, 0x6a, 0x52,
-- 0x53, 0x12, 0x8d, 0x28, 0x0d, 0xde, 0x8b, 0xd3, 0x7e, 0x40, 0x62, 0x0d,
-- 0xba, 0x99, 0x57, 0x03, 0xc0, 0x41, 0x5c, 0x32, 0x72, 0xcf, 0x4b, 0xf7,
-- 0xeb, 0x17, 0x1d, 0x20, 0x23, 0x8e, 0x41, 0x23, 0x77, 0xb1, 0x58, 0xd6,
-- 0x57, 0x20, 0x85, 0xe4, 0xf5, 0xbb, 0xf3, 0x00, 0xd6, 0x81, 0x66, 0x51,
-- 0x02, 0x7e, 0x28, 0x6c, 0x6d, 0xf8, 0x98, 0x49, 0x96, 0xe5, 0x12, 0xc5,
-- 0x55, 0x14, 0x39, 0x96, 0x3d, 0x4b, 0xc1, 0xc8, 0x34, 0x87, 0xd6, 0xd0,
-- 0xa7, 0xa2, 0x30, 0xe5, 0x4b, 0x46, 0xc0, 0xa2, 0x81, 0x6c, 0x8a, 0x48,
-- 0xcc, 0x61, 0x22, 0x53, 0x36, 0xa0, 0x69, 0x86, 0xa2, 0xcb, 0x95, 0x9a,
-- 0x27, 0xbe, 0x4d, 0xb9, 0x68, 0x37, 0x3a, 0x9a, 0x73, 0x69, 0xbe, 0x9b,
-- 0x8f, 0x18, 0x93, 0x1d, 0x44, 0x85, 0xf9, 0x38, 0x42, 0x24, 0x82, 0x10,
-- 0x88, 0xc0, 0x92, 0x76, 0xcb, 0x8e, 0x48, 0x4f, 0x64, 0x82, 0x36, 0xe0,
-- 0x05, 0x94, 0xd0, 0x5d, 0xa4, 0x35, 0xc0, 0x78, 0x07, 0x29, 0x77, 0xe4,
-- 0x52, 0xdd, 0xab, 0x2e, 0xf3, 0x13, 0xc8, 0x09, 0x41, 0xe7, 0x6c, 0xeb,
-- 0x7a, 0x10, 0xf2, 0x02, 0x3b, 0xbf, 0xb8, 0x7d, 0x3a, 0xe0, 0xa9, 0xd2,
-- 0x5e, 0x2d, 0x06, 0x3a, 0xe7, 0x07, 0xb7, 0x7e, 0x94, 0x4b, 0xda, 0x6a,
-- 0xf8, 0xbc, 0x5c, 0xba, 0xa4, 0x2f, 0xf1, 0x4a, 0x23, 0xf1, 0x9a, 0x29,
-- 0xc2, 0x01, 0xbf, 0xb4, 0x29, 0x36, 0xb0, 0x59, 0x84, 0xcf, 0xd9, 0x05,
-- 0x46, 0xf2, 0x8b, 0x5a, 0xce, 0xf9, 0x64, 0x49, 0x17, 0xaa, 0xe7, 0xa4,
-- 0xe5, 0xd5, 0x32, 0x72, 0x94, 0xc1, 0x00, 0xe4, 0x6d, 0x95, 0x16, 0x4e,
-- 0x1d, 0x26, 0x80, 0xff, 0xbf, 0x7b, 0x13, 0x3f, 0x65, 0x17, 0x9f, 0xff,
-- 0xe3, 0x77, 0xf1, 0xf9, 0x7f, 0x93, 0x5d, 0x7c, 0xfe, 0xff, 0x91, 0x5d,
-- 0xb4, 0x5c, 0xf4, 0x60, 0x4f, 0xfa, 0xab, 0xb7, 0x93, 0xd5, 0x61, 0x0d,
-- 0xdf, 0x46, 0x70, 0x07, 0x87, 0x39, 0xf3, 0x3e, 0x58, 0x2b, 0xa2, 0x72,
-- 0x6b, 0x16, 0x5f, 0x03, 0x4e, 0x4f, 0xb2, 0x77, 0xba, 0x93, 0x6b, 0x34,
-- 0xfd, 0xc1, 0x22, 0x2f, 0x8f, 0x4e, 0x03, 0x54, 0x01, 0xbf, 0x3b, 0x06,
-- 0x2e, 0xa5, 0x2a, 0x72, 0xa7, 0xf7, 0xba, 0x62, 0x97, 0x26, 0xf1, 0x71,
-- 0x09, 0xc3, 0xae, 0x20, 0x81, 0xc2, 0xed, 0x29, 0xdb, 0x05, 0xb9, 0x60,
-- 0x64, 0x11, 0xc2, 0xb4, 0x41, 0x7b, 0x2f, 0x79, 0xb9, 0x07, 0xf2, 0xf8,
-- 0x17, 0x9d, 0x59, 0x28, 0x80, 0x8f, 0xf2, 0x43, 0xea, 0x26, 0x07, 0xa5,
-- 0x86, 0x26, 0x74, 0x50, 0x17, 0x3e, 0x8c, 0xb7, 0x3b, 0x3f, 0x42, 0x0e,
-- 0xbf, 0x89, 0x1e, 0xfe, 0x4b, 0xe4, 0x90, 0xf1, 0x65, 0x0d, 0x3c, 0x28,
-- 0x76, 0x89, 0xbe, 0x3f, 0x3b, 0x7e, 0x34, 0xba, 0xa5, 0x77, 0x26, 0xe8,
-- 0x51, 0x65, 0x72, 0x9a, 0x5e, 0x65, 0xbd, 0x10, 0x49, 0xec, 0x13, 0x30,
-- 0x06, 0xa2, 0x2c, 0x7d, 0x56, 0x46, 0x7d, 0x34, 0x58, 0x98, 0x94, 0x0f,
-- 0x53, 0x84, 0x4f, 0xc9, 0x17, 0xd7, 0x5f, 0x17, 0x30, 0x91, 0x88, 0xaa,
-- 0xcd, 0x6c, 0x4a, 0x4b, 0xdb, 0x56, 0xc7, 0x48, 0xef, 0x2f, 0x1c, 0x77,
-- 0xde, 0xb3, 0x01, 0xba, 0x29, 0xc7, 0xd1, 0xbb, 0x00, 0xdb, 0x70, 0xf6,
-- 0xd4, 0x66, 0xb4, 0xba, 0xa5, 0xd5, 0xb8, 0x4c, 0x02, 0x00, 0x1c, 0x5f,
-- 0x0b, 0xfc, 0xe0, 0x65, 0x31, 0x6d, 0x93, 0x26, 0x00, 0xcc, 0xd2, 0xe4,
-- 0x58, 0x07, 0xb5, 0xa7, 0xce, 0x59, 0xd9, 0x48, 0x1b, 0x92, 0x4a, 0x0d,
-- 0x2a, 0x22, 0x5a, 0x54, 0xea, 0x94, 0x91, 0xc5, 0xdb, 0x41, 0x24, 0x4c,
-- 0xbf, 0x2e, 0x07, 0x9c, 0xed, 0x40, 0x3c, 0x20, 0x88, 0x19, 0x39, 0xc0,
-- 0xa6, 0xdd, 0xb4, 0x7e, 0x47, 0x6f, 0xe5, 0x21, 0xbc, 0xbb, 0x1c, 0x9a,
-- 0xf6, 0x32, 0x08, 0xe7, 0xfa, 0x69, 0xcf, 0xcc, 0x07, 0xbf, 0x74, 0x47,
-- 0xb6, 0x47, 0x38, 0x5d, 0x16, 0x45, 0xe3, 0xfd, 0x8f, 0x9a, 0x6a, 0x1e,
-- 0xb4, 0xda, 0x65, 0xed, 0xc4, 0x72, 0x1b, 0xde, 0x6f, 0x6a, 0x89, 0x56,
-- 0x44, 0x00, 0x5a, 0xbb, 0x80, 0x63, 0xda, 0x12, 0x78, 0x6d, 0xc4, 0x2f,
-- 0x40, 0xbd, 0x0f, 0x04, 0xe4, 0x19, 0x7a, 0x6a, 0x64, 0xbf, 0xd1, 0xa0,
-- 0x14, 0x36, 0xbf, 0x06, 0x1d, 0x9b, 0x0c, 0x47, 0x47, 0xe6, 0xf4, 0xdb,
-- 0x83, 0xf3, 0x3f, 0xee, 0xec, 0x5a, 0x34, 0x5c, 0x6e, 0x10, 0x6b, 0xe7,
-- 0x40, 0x54, 0x68, 0x93, 0x37, 0xab, 0x27, 0x52, 0x4d, 0x80, 0x41, 0x58,
-- 0x7d, 0x10, 0x9d, 0x7b, 0x4d, 0x6c, 0xb3, 0x32, 0x36, 0x4d, 0x80, 0xf2,
-- 0xf1, 0xca, 0x59, 0xa7, 0x0e, 0xcf, 0xc1, 0xa8, 0x66, 0x46, 0x12, 0xcc,
-- 0x0d, 0xb7, 0x68, 0x0d, 0xa8, 0x12, 0xba, 0x15, 0x4b, 0x04, 0x26, 0x50,
-- 0xd7, 0x12, 0xf3, 0x13, 0x25, 0x9d, 0x29, 0x3a, 0x6a, 0xc3, 0xc2, 0xef,
-- 0xc9, 0x42, 0xd1, 0xa9, 0x45, 0x42, 0xee, 0x05, 0xeb, 0xd1, 0xeb, 0x34,
-- 0x3c, 0xcb, 0xdd, 0xa7, 0x37, 0x12, 0xfb, 0x8b, 0x25, 0x01, 0x2b, 0xb9,
-- 0xc9, 0xee, 0xd5, 0x8f, 0x9e, 0xb9, 0x0f, 0xc3, 0xc5, 0x65, 0xa8, 0x46,
-- 0x0e, 0x7f, 0x8c, 0x4c, 0xe6, 0xc4, 0xe6, 0xff, 0x20, 0xde, 0x6e, 0xa1,
-- 0x30, 0x51, 0x85, 0xb8, 0x39, 0x56, 0x04, 0x3c, 0xca, 0xc9, 0x8c, 0xa1,
-- 0x22, 0xac, 0x7e, 0xc0, 0xf4, 0xbe, 0x8b, 0xda, 0x0d, 0x5a, 0x47, 0x18,
-- 0x30, 0x34, 0xab, 0xaa, 0xb6, 0x60, 0xfe, 0x06, 0x50, 0x97, 0x7a, 0x9f,
-- 0xea, 0x87, 0x72, 0x57, 0xf9, 0x7b, 0x2f, 0xd3, 0xb0, 0xb5, 0x2d, 0x1f,
-- 0xdf, 0x40, 0xa4, 0xd7, 0x8b, 0x2e, 0x9c, 0x9e, 0xc5, 0x7a, 0x48, 0x15,
-- 0x81, 0x78, 0x17, 0x78, 0x00, 0x6c, 0x80, 0x67, 0xaa, 0xe4, 0xcb, 0x30,
-- 0x9f, 0x4b, 0x2e, 0x0d, 0xdc, 0xa3, 0xf3, 0xdb, 0xbc, 0x2c, 0xe6, 0x10,
-- 0x51, 0x6e, 0xd3, 0x32, 0x87, 0x72, 0x48, 0xa3, 0xfd, 0xf0, 0xfa, 0xe8,
-- 0x2c, 0xd9, 0xe0, 0x2c, 0xce, 0xd1, 0xfd, 0x8a, 0x5c, 0xd5, 0x64, 0x2b,
-- 0xab, 0xc7, 0x5b, 0x8b, 0x9b, 0x7c, 0x6b, 0x5e, 0x55, 0x93, 0xd1, 0xe6,
-- 0xd0, 0x11, 0x95, 0x74, 0xc9, 0xc4, 0x28, 0xb4, 0xbc, 0xc3, 0x8a, 0xdb,
-- 0x92, 0x1a, 0xde, 0xa0, 0x35, 0x88, 0x76, 0xa1, 0xa2, 0x85, 0x9e, 0x0d,
-- 0xab, 0x62, 0x13, 0xda, 0xe6, 0x6d, 0x9a, 0x4f, 0xcd, 0x40, 0x36, 0x17,
-- 0x82, 0x46, 0x68, 0x91, 0xc2, 0xc7, 0x8a, 0xbb, 0x02, 0x61, 0x7a, 0xea,
-- 0xf8, 0x8f, 0x62, 0x3a, 0xe6, 0xb5, 0x87, 0x8a, 0x94, 0x6c, 0x72, 0x8b,
-- 0x55, 0xa1, 0xd5, 0x04, 0xaa, 0xa2, 0x8b, 0x31, 0xee, 0x33, 0xa6, 0x3a,
-- 0xaf, 0x8a, 0xf8, 0xce, 0xb2, 0x38, 0x93, 0x56, 0x52, 0x8e, 0x87, 0x5b,
-- 0x3d, 0x87, 0x21, 0x9f, 0xcf, 0x05, 0x4b, 0x1f, 0x6a, 0xe9, 0x6d, 0x91,
-- 0xc3, 0x21, 0x7f, 0xb9, 0xac, 0x9c, 0x71, 0x14, 0xee, 0x5e, 0xdd, 0xae,
-- 0x61, 0xa7, 0x29, 0x32, 0xd8, 0x4e, 0x75, 0x64, 0x56, 0x49, 0x6f, 0xaf,
-- 0x87, 0xb3, 0x35, 0x07, 0x8c, 0xb5, 0x48, 0x38, 0x3a, 0x2a, 0x6c, 0x56,
-- 0xef, 0xe7, 0x5e, 0x12, 0xd9, 0x47, 0x6b, 0xef, 0x1a, 0x30, 0xe8, 0x8e,
-- 0xab, 0x79, 0xfe, 0x77, 0x41, 0x55, 0x70, 0x47, 0x78, 0x92, 0x21, 0xf6,
-- 0x1e, 0xe9, 0xd8, 0x6e, 0x87, 0x78, 0x04, 0x9d, 0x88, 0x0b, 0xc1, 0x90,
-- 0x7e, 0x8e, 0x87, 0x94, 0x21, 0x31, 0x14, 0xed, 0xf7, 0x7e, 0xc6, 0x90,
-- 0x82, 0x41, 0x74, 0x98, 0x2b, 0x9a, 0x43, 0xe2, 0x6c, 0x05, 0xcd, 0x2c,
-- 0xbd, 0x26, 0x29, 0x6b, 0x5c, 0x77, 0xdc, 0x1c, 0x1b, 0xf9, 0xc9, 0x39,
-- 0x0e, 0xe2, 0xdb, 0x74, 0x9c, 0xd0, 0xaf, 0x3f, 0x40, 0xba, 0xd8, 0x5c,
-- 0x7d, 0xc6, 0x94, 0x31, 0x2a, 0x2f, 0xec, 0x82, 0xfe, 0xeb, 0xfb, 0x33,
-- 0xd7, 0x62, 0xbb, 0xc1, 0x5d, 0x98, 0xe5, 0x60, 0x91, 0xa3, 0xcc, 0xbb,
-- 0x79, 0x38, 0x66, 0x32, 0x0a, 0x48, 0x71, 0x2f, 0x6f, 0x19, 0xab, 0x61,
-- 0x7e, 0x61, 0xf5, 0x16, 0x20, 0x7f, 0x32, 0x2b, 0x86, 0xb9, 0x9b, 0xbe,
-- 0xa1, 0x89, 0x32, 0xea, 0x08, 0x12, 0xa2, 0xe3, 0xa3, 0xb9, 0x48, 0x61,
-- 0x4c, 0x95, 0x5c, 0x59, 0x65, 0xfc, 0xce, 0x8f, 0x14, 0x0e, 0x54, 0xc2,
-- 0x67, 0x5d, 0x7f, 0x66, 0x38, 0xf9, 0x6f, 0x47, 0xfc, 0x69, 0x40, 0xfa,
-- 0xbf, 0x5f, 0x00, 0x93, 0xe6, 0xf1, 0xbe, 0xec, 0x4a, 0x12, 0x3f, 0xcf,
-- 0xa6, 0x00, 0x0c, 0xc7, 0x5e, 0x5b, 0x56, 0xd6, 0xb8, 0xbc, 0x5f, 0xb0,
-- 0x1d, 0x4c, 0xf3, 0x7f, 0x65, 0x85, 0xf8, 0xda, 0x92, 0xdc, 0xab, 0x00,
-- 0x8a, 0x7e, 0xd8, 0x91, 0x5b, 0xe8, 0x3a, 0x14, 0x75, 0x84, 0xb7, 0x8b,
-- 0xf6, 0x82, 0x3d, 0x2a, 0x69, 0xa8, 0xa2, 0x30, 0x59, 0x4e, 0x24, 0x49,
-- 0xc3, 0x57, 0x1f, 0x89, 0xe2, 0x72, 0xb9, 0xa1, 0x6a, 0xd8, 0x84, 0xe2,
-- 0x81, 0xc1, 0x14, 0xe5, 0x70, 0xc0, 0x72, 0xd9, 0xf5, 0xb6, 0x69, 0x9c,
-- 0x5e, 0xdf, 0x50, 0x14, 0x90, 0xb6, 0xf2, 0xe0, 0xd8, 0x25, 0x35, 0x53,
-- 0x2e, 0xe7, 0xe8, 0xbd, 0xb9, 0x52, 0x8e, 0xbf, 0xb7, 0xcf, 0xd9, 0xd9,
-- 0xd1, 0xf9, 0x01, 0x1f, 0xb0, 0x93, 0x77, 0xc7, 0x3f, 0xb2, 0xbc, 0x0d,
-- 0x08, 0x00, 0x94, 0xfb, 0xe0, 0xae, 0xbb, 0x2e, 0x86, 0xca, 0xd0, 0xd9,
-- 0x3b, 0x28, 0x59, 0xf1, 0xda, 0x58, 0xd6, 0xbd, 0xb3, 0x2d, 0xf6, 0x69,
-- 0x54, 0x4c, 0x2e, 0x70, 0xa2, 0x11, 0xc1, 0xe5, 0xac, 0xee, 0x70, 0xc4,
-- 0xd7, 0xd8, 0x30, 0xb0, 0x96, 0x31, 0x62, 0x13, 0x07, 0x80, 0x84, 0x82,
-- 0xbe, 0x68, 0x49, 0x6c, 0x35, 0xa4, 0xee, 0x69, 0xa2, 0xad, 0x44, 0x50,
-- 0x9a, 0xe8, 0x95, 0x38, 0x73, 0x57, 0xe4, 0x1f, 0x04, 0xd9, 0x8e, 0xf7,
-- 0x6a, 0x8a, 0xe4, 0xe0, 0x33, 0x0b, 0x8e, 0x15, 0x6a, 0x39, 0x64, 0x00,
-- 0xc5, 0x05, 0xdd, 0x33, 0x5f, 0xa7, 0xcc, 0x0b, 0xc4, 0xfe, 0x97, 0x66,
-- 0xb3, 0xe8, 0x82, 0xae, 0x0a, 0xf6, 0x3d, 0x9a, 0x1c, 0x27, 0x7f, 0x05,
-- 0x5e, 0x25, 0x58, 0x11, 0x25, 0x90, 0x8f, 0x17, 0x74, 0x42, 0x27, 0x50,
-- 0x09, 0x88, 0x49, 0x8e, 0x86, 0x12, 0xc7, 0xda, 0x58, 0x19, 0x8a, 0x76,
-- 0xee, 0xcf, 0x40, 0xde, 0x97, 0xa9, 0xb5, 0x53, 0x7f, 0x44, 0x6a, 0x41,
-- 0x98, 0x7b, 0xf2, 0x92, 0x7f, 0x76, 0x4f, 0x3b, 0xc0, 0xa8, 0x80, 0x2f,
-- 0xb9, 0x21, 0x3b, 0xf0, 0xbb, 0x1a, 0x7e, 0xca, 0x49, 0x19, 0x93, 0x06,
-- 0x8b, 0x8b, 0xad, 0xc1, 0x1c, 0xf4, 0x4b, 0x97, 0x72, 0x3f, 0x79, 0x7d,
-- 0x78, 0x06, 0xa6, 0x74, 0xf8, 0xee, 0x6b, 0xf8, 0x70, 0x02, 0x46, 0xcf,
-- 0x6d, 0x56, 0x72, 0xd7, 0x08, 0x96, 0xbe, 0xc9, 0x8e, 0xad, 0xe6, 0xf8,
-- 0x72, 0xe7, 0x2b, 0x1f, 0x32, 0xe0, 0xe4, 0x77, 0xcd, 0x68, 0x4a, 0x45,
-- 0x81, 0x38, 0xd8, 0x0f, 0x67, 0xf7, 0xe8, 0x6a, 0x75, 0x6b, 0x0d, 0x2d,
-- 0x75, 0x81, 0x9f, 0xa2, 0x11, 0x11, 0x5d, 0x75, 0xb9, 0x56, 0x39, 0x0d,
-- 0xa5, 0x89, 0xbb, 0xc0, 0xe7, 0x58, 0xaf, 0x58, 0x0f, 0xb2, 0xd8, 0x1c,
-- 0x98, 0x18, 0x93, 0x56, 0xdf, 0x3c, 0x1b, 0xd5, 0x66, 0x43, 0x61, 0x70,
-- 0x52, 0x3f, 0xcb, 0xd9, 0xea, 0x97, 0x68, 0xde, 0x95, 0xb1, 0x6d, 0x5d,
-- 0xae, 0x08, 0x93, 0xe5, 0x0c, 0x75, 0x07, 0x2b, 0xde, 0x97, 0x5b, 0xbd,
-- 0xb1, 0xf4, 0xb4, 0xa7, 0xaa, 0x93, 0x2a, 0x85, 0x47, 0x9e, 0x73, 0x3e,
-- 0x9f, 0x12, 0xeb, 0x11, 0xb4, 0x19, 0x6d, 0xaa, 0x43, 0x58, 0x00, 0xad,
-- 0x54, 0xab, 0x65, 0x50, 0x89, 0x02, 0x4f, 0xd6, 0x0f, 0x48, 0xe5, 0xfd,
-- 0x70, 0xb0, 0xff, 0xe1, 0xab, 0xf7, 0xef, 0x5e, 0x1f, 0x1f, 0xae, 0xb7,
-- 0x29, 0xf2, 0xd2, 0x23, 0x4f, 0x56, 0x88, 0x06, 0x50, 0xd8, 0x86, 0x30,
-- 0x47, 0x1b, 0x47, 0x1d, 0x30, 0x53, 0xf8, 0x0d, 0x80, 0x3a, 0xba, 0xe0,
-- 0x6d, 0xb3, 0xc8, 0x72, 0x3e, 0x01, 0xd4, 0x4f, 0x30, 0x79, 0xc3, 0x51,
-- 0x51, 0x73, 0x8b, 0x0d, 0xb0, 0xc3, 0x42, 0xc3, 0xf4, 0x47, 0x87, 0x95,
-- 0x54, 0xf0, 0x00, 0x32, 0x3e, 0x28, 0x3f, 0xd3, 0x50, 0xed, 0x91, 0x31,
-- 0x60, 0x85, 0xd0, 0x12, 0x1a, 0x4f, 0xc7, 0x76, 0x57, 0x3e, 0xf9, 0x6c,
-- 0x92, 0xac, 0x73, 0x4b, 0x44, 0xc9, 0x03, 0x1d, 0xe4, 0xb8, 0xac, 0xd7,
-- 0xfb, 0x26, 0xb5, 0xe4, 0x41, 0xc6, 0x05, 0x2e, 0xf8, 0x08, 0xfe, 0x83,
-- 0x33, 0xea, 0x52, 0xa1, 0xeb, 0x61, 0xf6, 0x31, 0x83, 0xba, 0xa8, 0x6f,
-- 0x1d, 0xa8, 0x64, 0xf0, 0x7d, 0x51, 0xc2, 0x3e, 0xfa, 0xda, 0x4b, 0x08,
-- 0xf2, 0x10, 0x69, 0x90, 0x71, 0xec, 0x22, 0x4b, 0x01, 0x29, 0xca, 0x2a,
-- 0xa0, 0x02, 0xdc, 0xe9, 0xfe, 0xc5, 0x37, 0x9d, 0x9e, 0x77, 0x5f, 0x6b,
-- 0x50, 0x49, 0xd1, 0xc9, 0x6d, 0x4e, 0x53, 0x08, 0xd5, 0xa3, 0xbe, 0xd3,
-- 0x99, 0x88, 0xac, 0xdb, 0x0c, 0x23, 0xd6, 0x26, 0x02, 0xed, 0xc1, 0x89,
-- 0xa9, 0x92, 0x0d, 0xe1, 0x6e, 0x46, 0x59, 0xe3, 0xd5, 0xb9, 0xb9, 0x56,
-- 0xf4, 0x8f, 0x38, 0xe0, 0x82, 0x01, 0xb8, 0x7f, 0x5f, 0x46, 0x04, 0x12,
-- 0x6c, 0x31, 0x22, 0x2f, 0x93, 0x7d, 0x82, 0x2d, 0xe3, 0x51, 0xa6, 0xe4,
-- 0x33, 0x28, 0xa3, 0x53, 0x2a, 0x7c, 0x4a, 0xf8, 0x3d, 0x18, 0x93, 0xcb,
-- 0xdf, 0xe0, 0x61, 0xb9, 0xf2, 0x13, 0xc1, 0x65, 0x30, 0xba, 0x4f, 0x82,
-- 0xc4, 0x9a, 0x98, 0xc3, 0xcd, 0x54, 0x48, 0xdc, 0xeb, 0x25, 0x1b, 0xd9,
-- 0xf0, 0x8a, 0x58, 0x5d, 0x8f, 0x9b, 0xda, 0xd9, 0xe3, 0x9f, 0xbb, 0xf8,
-- 0xf9, 0xa4, 0xa7, 0x7e, 0xab, 0x46, 0x36, 0x1e, 0xf3, 0xaf, 0x38, 0x0d,
-- 0xaf, 0xc1, 0xcd, 0xc4, 0xbf, 0x9f, 0x5f, 0x3e, 0x40, 0x42, 0x2a, 0xdf,
-- 0x75, 0x62, 0xca, 0xf8, 0x75, 0x10, 0x66, 0xc9, 0xd2, 0x03, 0x23, 0x81,
-- 0x72, 0xf5, 0x0e, 0x9a, 0xe0, 0x58, 0x92, 0xb8, 0x83, 0xac, 0xb1, 0x0f,
-- 0x65, 0x76, 0x9d, 0x56, 0xd7, 0xc9, 0xb2, 0xce, 0x39, 0x0c, 0xa0, 0x03,
-- 0xe9, 0x7a, 0xea, 0xc2, 0xd6, 0xb5, 0x63, 0xc3, 0x89, 0x73, 0x3b, 0x2b,
-- 0x96, 0x46, 0xa4, 0x4d, 0xeb, 0x23, 0x03, 0x2d, 0x80, 0xd8, 0xc5, 0x08,
-- 0x41, 0xad, 0x12, 0x8b, 0xc7, 0x4f, 0x86, 0xe5, 0xa8, 0x66, 0x6c, 0x4d,
-- 0x45, 0x6c, 0x42, 0x76, 0x49, 0x6b, 0x96, 0x07, 0x50, 0x03, 0x18, 0x72,
-- 0x9c, 0x19, 0x21, 0x77, 0x9c, 0x46, 0x59, 0xb9, 0xbf, 0xc1, 0x41, 0x9c,
-- 0x4a, 0x87, 0x7a, 0x55, 0xed, 0xcb, 0xe6, 0x71, 0x7a, 0x07, 0x6b, 0x15,
-- 0x80, 0x0f, 0xe1, 0xed, 0x3a, 0x5b, 0x49, 0x2d, 0x33, 0x62, 0x57, 0x10,
-- 0xda, 0x2e, 0x68, 0x50, 0x87, 0x0a, 0xfc, 0x5b, 0x4f, 0xce, 0x25, 0x7c,
-- 0xbc, 0x74, 0xa4, 0x57, 0x44, 0x57, 0xbd, 0x01, 0x62, 0x6c, 0xc5, 0xf1,
-- 0x8f, 0xbc, 0x4e, 0x1b, 0x5c, 0x8e, 0x43, 0x4a, 0x0b, 0xa5, 0x88, 0x5e,
-- 0xdb, 0x64, 0x03, 0x95, 0x46, 0x6f, 0x21, 0x61, 0xbe, 0xea, 0x44, 0xe5,
-- 0x67, 0xb4, 0x3f, 0x29, 0x0e, 0x82, 0x44, 0x23, 0xe8, 0xbc, 0x08, 0x03,
-- 0x51, 0xb7, 0x39, 0x0a, 0x44, 0x12, 0x5f, 0xce, 0xea, 0x71, 0xf0, 0xe5,
-- 0x24, 0x4b, 0xa7, 0x49, 0x57, 0x00, 0xfa, 0xa5, 0x14, 0x96, 0xb4, 0x38,
-- 0x00, 0x08, 0x45, 0x73, 0x0b, 0x1e, 0xd0, 0x08, 0x62, 0xc9, 0xa6, 0x9c,
-- 0x37, 0xc0, 0x22, 0x2f, 0x81, 0x76, 0x11, 0x1d, 0x5f, 0x56, 0xe4, 0x25,
-- 0x9d, 0xc5, 0x90, 0x07, 0xa0, 0x9f, 0xbb, 0xcc, 0x01, 0x44, 0x46, 0x22,
-- 0xe5, 0xd2, 0x3d, 0x80, 0xb4, 0x08, 0xc9, 0x89, 0x8b, 0xac, 0x07, 0x06,
-- 0xdd, 0x8c, 0x4a, 0x74, 0x8a, 0x68, 0x68, 0x81, 0xfc, 0x3c, 0xae, 0x7b,
-- 0x57, 0x24, 0x74, 0x53, 0xaf, 0x44, 0x58, 0xc8, 0xb1, 0x43, 0xa4, 0x10,
-- 0x0e, 0x22, 0xe6, 0x62, 0x09, 0x64, 0x52, 0x3c, 0x16, 0xcb, 0x5f, 0xcb,
-- 0xe9, 0x4a, 0x6b, 0xad, 0x34, 0xc5, 0x03, 0x55, 0xe0, 0xa1, 0xdd, 0xdd,
-- 0x6e, 0x2f, 0x87, 0xc2, 0x8b, 0xa9, 0x4d, 0x83, 0x97, 0x62, 0x50, 0xa5,
-- 0x97, 0x99, 0x59, 0xf8, 0xb8, 0x6e, 0x11, 0x03, 0xcb, 0x8e, 0x69, 0xf9,
-- 0x24, 0xf0, 0x1f, 0x9f, 0xb1, 0xd2, 0x34, 0x88, 0xeb, 0x69, 0xf0, 0x29,
-- 0x67, 0x5d, 0xc2, 0xe7, 0xe8, 0x24, 0xac, 0x5c, 0x5b, 0xfc, 0x75, 0x52,
-- 0x4d, 0xf3, 0x85, 0x39, 0xf5, 0xe9, 0x36, 0x05, 0x47, 0xc5, 0xfd, 0xdc,
-- 0x11, 0x1c, 0xd2, 0x82, 0x41, 0x83, 0x34, 0x7c, 0xcb, 0xde, 0x95, 0x49,
-- 0xb2, 0xe1, 0x9a, 0x97, 0xd6, 0x9f, 0x6e, 0xef, 0x60, 0xbc, 0x4f, 0xb7,
-- 0x3f, 0x0b, 0x93, 0xa4, 0x5d, 0x36, 0xa9, 0x02, 0x8a, 0x6a, 0xe0, 0xe9,
-- 0x43, 0x69, 0x10, 0x53, 0xd6, 0xcb, 0xb0, 0xaa, 0x19, 0x49, 0x8b, 0x30,
-- 0x05, 0x68, 0x8a, 0xed, 0x20, 0x9f, 0x4b, 0x42, 0x27, 0xfd, 0xab, 0x3b,
-- 0x99, 0x4a, 0x98, 0x5d, 0x1b, 0xd3, 0x23, 0x15, 0xd8, 0x32, 0x01, 0xad,
-- 0x90, 0x78, 0x77, 0xc9, 0xbe, 0x6d, 0xa6, 0xdf, 0x2a, 0x64, 0x9e, 0xdd,
-- 0x32, 0xc8, 0x20, 0x66, 0xbb, 0x61, 0x24, 0x39, 0x1a, 0xc7, 0x04, 0xea,
-- 0x11, 0x27, 0xda, 0x5e, 0xb0, 0x16, 0xa1, 0xd2, 0x6c, 0x5a, 0xd6, 0x5b,
-- 0xc8, 0xa9, 0x95, 0x88, 0xe2, 0x74, 0xcc, 0x68, 0x5a, 0xae, 0x0c, 0xe0,
-- 0xd9, 0x9b, 0x83, 0x56, 0x73, 0xbb, 0x4f, 0x3e, 0xff, 0xdc, 0xe5, 0xf5,
-- 0x67, 0x1a, 0x24, 0xe9, 0xa1, 0x5b, 0x49, 0x84, 0xd2, 0x7c, 0x23, 0xb1,
-- 0x03, 0x72, 0x01, 0x37, 0xce, 0xc4, 0x90, 0xb8, 0xa1, 0x98, 0xeb, 0xaf,
-- 0xeb, 0x9a, 0xae, 0x4b, 0xc8, 0xb0, 0x58, 0xad, 0xac, 0xb6, 0x98, 0xd6,
-- 0x09, 0x0a, 0xe0, 0x2c, 0x45, 0x03, 0x54, 0xbb, 0x1d, 0x1d, 0x82, 0x2f,
-- 0xa3, 0x28, 0xb4, 0xab, 0xb9, 0xa4, 0xf0, 0xfe, 0x95, 0xef, 0x90, 0xab,
-- 0xac, 0x8e, 0xe3, 0xdc, 0x15, 0xf2, 0x2d, 0xea, 0x62, 0x35, 0xd4, 0x94,
-- 0xd5, 0x4a, 0x90, 0x28, 0xfd, 0x97, 0x72, 0x3d, 0x1a, 0xa4, 0x4c, 0x50,
-- 0x64, 0xea, 0x4b, 0x10, 0xd1, 0x4b, 0x67, 0xf3, 0x9e, 0x77, 0x1a, 0xc4,
-- 0xbf, 0x34, 0xf8, 0x32, 0x35, 0xf9, 0x00, 0x57, 0xab, 0xae, 0x53, 0xab,
-- 0x0f, 0x8a, 0xeb, 0x9e, 0x53, 0x56, 0x1d, 0xd4, 0xaa, 0x21, 0xa0, 0x47,
-- 0xae, 0x8e, 0x5c, 0x23, 0x13, 0x5f, 0xba, 0x16, 0x81, 0x91, 0x28, 0x29,
-- 0xc3, 0x3c, 0x16, 0xac, 0x02, 0x7a, 0x70, 0xb0, 0x20, 0x35, 0x62, 0x4f,
-- 0xc3, 0xea, 0x59, 0x8d, 0x98, 0x69, 0xff, 0x7e, 0xb0, 0x4e, 0xd1, 0xc9,
-- 0x3f, 0x74, 0x75, 0xc2, 0x2c, 0x04, 0x07, 0x52, 0xa5, 0x8f, 0x66, 0x55,
-- 0x4d, 0xcb, 0x07, 0xe1, 0xf6, 0xf5, 0xe0, 0xaf, 0xf3, 0x33, 0xed, 0x93,
-- 0xcf, 0xef, 0xac, 0x5b, 0x5e, 0x76, 0x68, 0x37, 0x07, 0x65, 0xca, 0x70,
-- 0x1c, 0x7a, 0xa0, 0xd8, 0xb1, 0xb9, 0x27, 0x97, 0x71, 0xdc, 0xa1, 0xca,
-- 0x01, 0xe1, 0x69, 0xaf, 0x53, 0x9f, 0x19, 0xbc, 0x71, 0x03, 0x7d, 0xf5,
-- 0x65, 0xa3, 0xb5, 0xbb, 0xbb, 0xe1, 0xec, 0xde, 0xbe, 0xab, 0x1a, 0xe5,
-- 0x7a, 0x7d, 0x52, 0x91, 0xc2, 0xa9, 0x0a, 0x45, 0xf9, 0xec, 0xda, 0xd0,
-- 0xb7, 0xed, 0x8b, 0xe3, 0xd1, 0xd5, 0x6e, 0x38, 0x23, 0xab, 0x40, 0x73,
-- 0xf5, 0x38, 0x5f, 0x71, 0x38, 0x11, 0xcb, 0xbe, 0xa3, 0x82, 0xe8, 0xcd,
-- 0x48, 0x89, 0x13, 0x13, 0xeb, 0x72, 0x39, 0xae, 0xe3, 0x7b, 0xdf, 0xca,
-- 0x5e, 0xe0, 0x22, 0x10, 0xff, 0x83, 0x15, 0x4c, 0x05, 0x9d, 0x35, 0x4f,
-- 0xbb, 0x85, 0xb4, 0x41, 0x44, 0xec, 0x12, 0x49, 0xd6, 0x81, 0xd3, 0xb9,
-- 0xde, 0x97, 0x70, 0x4a, 0xcd, 0x97, 0xf3, 0x99, 0x5c, 0x2b, 0x97, 0xb2,
-- 0x77, 0x97, 0x8d, 0x5e, 0x7d, 0xc9, 0x0e, 0x97, 0x8f, 0xc0, 0x17, 0x12,
-- 0xbc, 0x4f, 0xa6, 0xa3, 0x2d, 0xfe, 0xb3, 0x97, 0xb0, 0x0a, 0xd3, 0xb1,
-- 0x92, 0x44, 0x7f, 0xab, 0x5a, 0x0c, 0x52, 0xb0, 0x83, 0xd6, 0x2e, 0x8b,
-- 0x62, 0x65, 0x63, 0xbe, 0x3e, 0x2e, 0x56, 0x23, 0x08, 0xa0, 0x93, 0x78,
-- 0x36, 0x4f, 0x58, 0x42, 0x4c, 0x6e, 0x8f, 0xf4, 0x68, 0x75, 0x25, 0x67,
-- 0x8d, 0xee, 0x1d, 0x38, 0xb8, 0x25, 0x6a, 0xbc, 0xd2, 0xfa, 0x6d, 0x2c,
-- 0x6f, 0xad, 0x5e, 0x10, 0x7e, 0xfa, 0xd5, 0x97, 0xc0, 0x47, 0xe1, 0x5f,
-- 0xff, 0xe2, 0xde, 0xe6, 0x1f, 0x44, 0x97, 0x74, 0xb6, 0x57, 0x4e, 0x84,
-- 0x84, 0x39, 0x7b, 0x7c, 0x4b, 0x24, 0x54, 0x93, 0x05, 0xd7, 0xfb, 0xeb,
-- 0xac, 0xdf, 0xad, 0xff, 0x65, 0x1d, 0x52, 0x84, 0x19, 0x14, 0x80, 0x71,
-- 0x2f, 0xe5, 0xba, 0x27, 0x45, 0x14, 0xcb, 0xc2, 0xa1, 0x7f, 0x78, 0x42,
-- 0x2a, 0x9a, 0x3f, 0x36, 0xe6, 0x9f, 0x7b, 0x6e, 0xd4, 0x3f, 0xf7, 0xfc,
-- 0xb8, 0x7f, 0xee, 0xf9, 0x91, 0xff, 0xdc, 0xfb, 0x0d, 0x3b, 0xba, 0x2e,
-- 0xcd, 0xfb, 0xd6, 0x83, 0xc6, 0x83, 0xb6, 0x7b, 0xeb, 0xab, 0x9a, 0x0e,
-- 0xad, 0xaf, 0xc8, 0x52, 0x48, 0x5a, 0xcb, 0x44, 0x07, 0xc8, 0xaf, 0x84,
-- 0x96, 0x0d, 0x94, 0x89, 0xf7, 0x3b, 0xf4, 0xe1, 0xf0, 0x01, 0x5e, 0x54,
-- 0x8e, 0x96, 0xa8, 0xa6, 0xac, 0x4c, 0x78, 0xaf, 0x9c, 0xeb, 0xc0, 0x2d,
-- 0xb5, 0x39, 0x53, 0x22, 0x17, 0x9b, 0x7b, 0x3d, 0x3a, 0xa3, 0x6c, 0x1d,
-- 0xbc, 0x5c, 0x96, 0x50, 0xfa, 0xb5, 0x8a, 0x98, 0xa4, 0x91, 0x1a, 0x44,
-- 0x9a, 0xf6, 0xf5, 0x76, 0xff, 0xdd, 0xfb, 0xfd, 0xe3, 0x07, 0xc3, 0x48,
-- 0xc2, 0x18, 0x51, 0x67, 0x88, 0x82, 0x48, 0x1e, 0x6a, 0xac, 0x1c, 0x57,
-- 0xc9, 0x77, 0x38, 0x57, 0x61, 0xfd, 0x89, 0xaf, 0xf4, 0x5f, 0x3a, 0x23,
-- 0x70, 0xbf, 0x57, 0x29, 0xf6, 0x4d, 0x88, 0x78, 0x7e, 0x23, 0xfc, 0xa7,
-- 0x67, 0xef, 0xf3, 0xeb, 0x3d, 0x35, 0xe5, 0xba, 0xca, 0x66, 0x1d, 0xda,
-- 0x82, 0xe3, 0xfa, 0x2c, 0xb9, 0x98, 0xbe, 0x06, 0x85, 0xb4, 0x1f, 0x54,
-- 0x69, 0x85, 0x5e, 0x82, 0xea, 0xd9, 0x97, 0xab, 0xcd, 0xd2, 0xfb, 0x07,
-- 0x07, 0x3e, 0x2e, 0xbb, 0x99, 0xe1, 0xd9, 0x88, 0x4b, 0xf9, 0xc7, 0xab,
-- 0xfa, 0x58, 0xb8, 0x29, 0x6a, 0x91, 0x71, 0xec, 0xea, 0xa0, 0x2e, 0x24,
-- 0x2f, 0xe2, 0xa5, 0x8e, 0xe6, 0x8b, 0xee, 0x48, 0x66, 0x36, 0x99, 0x84,
-- 0x82, 0xa6, 0x55, 0xa0, 0x40, 0xad, 0x8d, 0x73, 0x35, 0xba, 0x9e, 0xee,
-- 0x33, 0x6c, 0x9c, 0x26, 0x09, 0x88, 0xb6, 0x10, 0xc5, 0xb0, 0x65, 0x06,
-- 0x25, 0xec, 0xa7, 0x6f, 0xc9, 0xec, 0xa6, 0x67, 0x9a, 0x50, 0x76, 0xb1,
-- 0x9c, 0x11, 0xf5, 0x92, 0xc4, 0x31, 0x59, 0xaf, 0x92, 0x47, 0xe2, 0x0c,
-- 0x3c, 0xce, 0x57, 0x81, 0x9f, 0x08, 0x7f, 0x30, 0xc0, 0xe6, 0x8e, 0x90,
-- 0x8a, 0x7e, 0xe7, 0xdd, 0xd0, 0x3b, 0x3f, 0xba, 0x38, 0x4c, 0xf6, 0xdf,
-- 0x5f, 0x7c, 0xd3, 0x0b, 0x0a, 0xb0, 0x34, 0x33, 0x6c, 0x48, 0x59, 0x28,
-- 0xf3, 0xcc, 0x10, 0xb2, 0x79, 0xed, 0x44, 0x58, 0xeb, 0xc0, 0xca, 0x6d,
-- 0x79, 0xc4, 0x5b, 0x1b, 0xfd, 0x6c, 0xf8, 0x6c, 0xb3, 0xb5, 0x31, 0xab,
-- 0x21, 0xae, 0x82, 0xb2, 0x31, 0xba, 0x5a, 0x7c, 0x09, 0x04, 0x28, 0x4b,
-- 0x1c, 0x83, 0xb3, 0xe5, 0x11, 0x56, 0x21, 0x32, 0x9b, 0x65, 0x31, 0xce,
-- 0xd1, 0x74, 0x09, 0xab, 0x62, 0x63, 0xe3, 0x00, 0xec, 0x8f, 0x08, 0x40,
-- 0x9b, 0x37, 0x44, 0x99, 0xb0, 0x60, 0xa2, 0x8b, 0x8e, 0xee, 0x48, 0x62,
-- 0x32, 0xab, 0x2e, 0x63, 0x4a, 0x72, 0xb5, 0x82, 0x10, 0xa6, 0x3e, 0x06,
-- 0xdd, 0x32, 0x01, 0xc2, 0x27, 0x7a, 0x74, 0xc2, 0x42, 0x25, 0xb3, 0x5c,
-- 0xb2, 0xec, 0x03, 0x88, 0xa9, 0x36, 0x25, 0xab, 0x52, 0xf6, 0x93, 0xfc,
-- 0xdb, 0xcd, 0x03, 0x0e, 0xb4, 0xd2, 0x15, 0xa4, 0x05, 0x7d, 0x41, 0xe0,
-- 0xf4, 0x24, 0xba, 0xce, 0x03, 0xf9, 0xa3, 0x70, 0x95, 0xb8, 0x34, 0xb0,
-- 0xc0, 0x31, 0x20, 0xe8, 0xc6, 0xf9, 0x66, 0xe2, 0x0a, 0x72, 0xb1, 0x74,
-- 0xac, 0xed, 0x71, 0x7c, 0x65, 0x2b, 0x9e, 0x32, 0xca, 0x6b, 0xee, 0x82,
-- 0x1a, 0x09, 0x4e, 0x62, 0x7c, 0xd1, 0x82, 0xfb, 0x8d, 0xef, 0x26, 0xdd,
-- 0x19, 0x63, 0x52, 0x16, 0xb3, 0x90, 0x1a, 0xb0, 0x12, 0xb9, 0x79, 0xf0,
-- 0xfd, 0xeb, 0x56, 0xf1, 0x49, 0x29, 0xff, 0x28, 0xee, 0x5c, 0x89, 0xf1,
-- 0x5e, 0x95, 0x9d, 0x1c, 0x24, 0x57, 0xa2, 0x70, 0x3a, 0x03, 0xa4, 0x4f,
-- 0xb2, 0x6c, 0xe1, 0xf0, 0xce, 0x80, 0xfe, 0x2f, 0x8a, 0x30, 0x17, 0x40,
-- 0x47, 0xa9, 0xf3, 0x59, 0x7c, 0xe5, 0x38, 0xdf, 0x91, 0x70, 0x01, 0x9f,
-- 0x3c, 0xc6, 0x98, 0xa6, 0xa4, 0x66, 0x25, 0x3b, 0x9f, 0x3d, 0xf9, 0x3c,
-- 0xa9, 0x38, 0x37, 0x21, 0x6f, 0x21, 0xc5, 0x08, 0x56, 0xc0, 0xea, 0x1c,
-- 0x51, 0x95, 0x9b, 0xcd, 0xd8, 0x63, 0xa8, 0x78, 0x15, 0x27, 0x1f, 0xe2,
-- 0xe6, 0xd2, 0xe8, 0xfd, 0x38, 0x65, 0x90, 0x16, 0xd1, 0x64, 0x46, 0xac,
-- 0x18, 0xe0, 0x1d, 0x78, 0xb5, 0xc4, 0x0a, 0x33, 0x6c, 0x56, 0x98, 0x67,
-- 0x94, 0xd7, 0x7e, 0x72, 0x76, 0x78, 0x71, 0xd6, 0x4f, 0xce, 0x2f, 0x4e,
-- 0xce, 0x56, 0x24, 0xf6, 0xd6, 0x63, 0x30, 0x3d, 0x5e, 0x33, 0x26, 0x1b,
-- 0xc6, 0xcf, 0x34, 0x43, 0x7e, 0xc0, 0x31, 0x78, 0x17, 0x52, 0x61, 0x22,
-- 0x50, 0xc3, 0x67, 0x83, 0x55, 0xe9, 0xdc, 0x8d, 0xd5, 0x02, 0xd9, 0x10,
-- 0x2f, 0x7f, 0x70, 0x62, 0xb2, 0xed, 0x9f, 0x40, 0x21, 0x4c, 0x8b, 0x3c,
-- 0x5d, 0xc7, 0xb2, 0x31, 0x5a, 0x2d, 0x19, 0xe5, 0x0d, 0x92, 0x6a, 0xca,
-- 0x58, 0x41, 0x21, 0x42, 0x59, 0x68, 0xcd, 0x83, 0x6a, 0xf7, 0x2c, 0xe3,
-- 0xa4, 0x97, 0xb0, 0xe1, 0xfb, 0x26, 0x0b, 0xf0, 0xba, 0x1e, 0xa1, 0xdf,
-- 0xb4, 0x62, 0x03, 0x4e, 0x50, 0xb5, 0x86, 0x4b, 0x44, 0x89, 0x48, 0x0f,
-- 0x03, 0xa3, 0x31, 0x9e, 0x2a, 0x71, 0xb8, 0x06, 0x5d, 0x29, 0x4f, 0x0e,
-- 0xcf, 0x88, 0x77, 0x79, 0xdd, 0x25, 0xae, 0x14, 0x4a, 0x1d, 0xb2, 0x2f,
-- 0x24, 0xe0, 0x4c, 0x6b, 0x20, 0x45, 0xad, 0xdb, 0xa8, 0xd6, 0x1d, 0xa9,
-- 0xb5, 0xb8, 0xf2, 0x4e, 0x9b, 0x2b, 0x73, 0xde, 0x4f, 0x27, 0x67, 0x61,
-- 0x27, 0x7c, 0x23, 0xdb, 0xc8, 0xea, 0xbd, 0x42, 0x10, 0x08, 0xe1, 0x69,
-- 0x4f, 0xf5, 0xa9, 0x15, 0x71, 0xcb, 0x56, 0x1c, 0xd4, 0x47, 0x31, 0xd9,
-- 0x9e, 0x4b, 0x26, 0xce, 0xb2, 0xcd, 0x4e, 0x5b, 0x99, 0x34, 0x6d, 0x01,
-- 0xd5, 0x30, 0xf6, 0x7d, 0x99, 0x96, 0x64, 0x70, 0xba, 0xe5, 0xf3, 0x9d,
-- 0x0c, 0xa4, 0xab, 0x31, 0xf3, 0x9d, 0xdf, 0x2c, 0x78, 0x68, 0x3d, 0x0b,
-- 0xb5, 0x5f, 0x94, 0x08, 0x3c, 0x98, 0x67, 0x2b, 0xea, 0x67, 0x32, 0xa2,
-- 0xf7, 0x5c, 0x12, 0x9a, 0x24, 0x65, 0xda, 0x0a, 0x2c, 0xd8, 0x4a, 0x72,
-- 0x2a, 0x2c, 0xe7, 0xe5, 0xe2, 0x82, 0x9a, 0x14, 0x30, 0x70, 0xf2, 0x22,
-- 0xc4, 0x71, 0x25, 0x10, 0x58, 0x11, 0x42, 0x63, 0x57, 0x8a, 0x36, 0xa6,
-- 0xc6, 0x90, 0x12, 0x35, 0xda, 0x9b, 0x89, 0x38, 0x62, 0xa4, 0x8f, 0x8e,
-- 0xd2, 0x69, 0xb8, 0x8d, 0xc2, 0xe1, 0x20, 0x85, 0x7b, 0xc6, 0x50, 0x97,
-- 0xf7, 0x71, 0xae, 0x96, 0xcc, 0x36, 0x2e, 0x76, 0x24, 0x51, 0x62, 0xc8,
-- 0xa4, 0xd2, 0xaa, 0x08, 0xcd, 0x14, 0x25, 0x5b, 0xc9, 0xf6, 0x7d, 0xc6,
-- 0x88, 0xd8, 0xa0, 0xb7, 0x41, 0xbe, 0x78, 0x3c, 0x69, 0x93, 0x0d, 0x91,
-- 0xe6, 0x74, 0xf1, 0x41, 0xda, 0x0d, 0x14, 0xd7, 0xe5, 0xd5, 0x15, 0x52,
-- 0x04, 0xf2, 0x38, 0x19, 0xbb, 0xf2, 0xc6, 0x47, 0x45, 0xe4, 0x20, 0x31,
-- 0x8b, 0xc7, 0xdc, 0xc8, 0x44, 0x93, 0xce, 0x94, 0x96, 0x2b, 0x0f, 0x8b,
-- 0xb6, 0x32, 0x56, 0x00, 0xc6, 0x64, 0x2d, 0x3c, 0x35, 0x0e, 0x52, 0xd3,
-- 0xca, 0x6c, 0x00, 0xbd, 0xdc, 0x39, 0x04, 0x83, 0x11, 0x47, 0x21, 0x3e,
-- 0x9a, 0xab, 0x2e, 0x62, 0x8c, 0x9d, 0x2a, 0x2b, 0x59, 0x19, 0xf6, 0xd5,
-- 0xa0, 0xe0, 0xa7, 0xc3, 0xdd, 0xcd, 0x87, 0x54, 0x0b, 0x96, 0xdb, 0x89,
-- 0xf3, 0x67, 0x92, 0xb9, 0x44, 0xfa, 0x95, 0xa4, 0x8f, 0x4a, 0xfa, 0x61,
-- 0x29, 0x3b, 0x6b, 0x24, 0x6e, 0x24, 0x15, 0x03, 0x4a, 0xf3, 0x12, 0xb5,
-- 0xf7, 0x8d, 0x8e, 0x59, 0xfd, 0x68, 0x0a, 0xa0, 0x99, 0x90, 0xd2, 0xe4,
-- 0x94, 0x2e, 0x17, 0xb7, 0xca, 0x41, 0xde, 0x5d, 0xb2, 0x81, 0xd8, 0x05,
-- 0x1a, 0xc7, 0x66, 0xfb, 0x22, 0x64, 0xd4, 0xc9, 0x34, 0x0f, 0x35, 0x19,
-- 0x3a, 0x78, 0x33, 0xfa, 0x84, 0x9d, 0x02, 0x25, 0x8d, 0x81, 0x61, 0xd4,
-- 0xad, 0xbe, 0x95, 0x4a, 0xd8, 0x6c, 0x7b, 0x36, 0x2e, 0xba, 0xd6, 0x79,
-- 0x3f, 0xab, 0x17, 0x32, 0xf0, 0x49, 0x71, 0xdc, 0x10, 0x9d, 0xcd, 0x2a,
-- 0xac, 0x0d, 0xb1, 0x5c, 0x88, 0x2e, 0x57, 0xdc, 0xcd, 0x81, 0x96, 0x1e,
-- 0x53, 0x13, 0x06, 0xcf, 0x67, 0xa7, 0x15, 0x65, 0xbf, 0xbb, 0x3d, 0xfc,
-- 0xd8, 0x66, 0xa7, 0x55, 0x35, 0x1d, 0x8c, 0xc7, 0xe3, 0x95, 0x1c, 0xf5,
-- 0xe0, 0xe0, 0x20, 0xd9, 0x38, 0x40, 0xce, 0xf7, 0x81, 0x8e, 0xf2, 0xe0,
-- 0x9a, 0xcd, 0x34, 0x53, 0xae, 0xb1, 0x71, 0xbd, 0x64, 0xab, 0x1e, 0x0f,
-- 0x45, 0x19, 0xce, 0xf9, 0xf9, 0xf1, 0xd6, 0xc5, 0xf1, 0x79, 0x3b, 0xe4,
-- 0x3c, 0xbd, 0x67, 0x5d, 0x4f, 0x4a, 0x69, 0x34, 0xf4, 0x16, 0x91, 0xdb,
-- 0x00, 0xb7, 0x64, 0x41, 0xab, 0x46, 0x57, 0xd2, 0x4b, 0x67, 0x72, 0xc5,
-- 0x72, 0x6e, 0xf6, 0x75, 0xa7, 0x58, 0xcd, 0xb3, 0x39, 0xe2, 0xb7, 0x98,
-- 0xa5, 0x81, 0xca, 0xb4, 0x52, 0xf7, 0xbb, 0xfd, 0x0b, 0x2e, 0xd2, 0x56,
-- 0x6b, 0x4a, 0xc8, 0x8a, 0x80, 0x78, 0x07, 0xd6, 0x85, 0x4c, 0xce, 0x34,
-- 0x80, 0x31, 0xb7, 0x2b, 0x00, 0xac, 0x28, 0xaf, 0x8c, 0x2f, 0x0e, 0x35,
-- 0x22, 0xb8, 0x03, 0x46, 0x55, 0x57, 0x74, 0xe0, 0xee, 0x20, 0x09, 0xab,
-- 0xe6, 0x3f, 0xab, 0xd6, 0x86, 0xec, 0x3c, 0x8f, 0xef, 0xb7, 0xc6, 0xeb,
-- 0x3f, 0x49, 0x4e, 0xe3, 0x96, 0xf6, 0xfa, 0xcb, 0x6f, 0xda, 0x26, 0x44,
-- 0x6d, 0xa9, 0x2d, 0x9e, 0x1e, 0x33, 0xca, 0xb8, 0xe8, 0x08, 0x34, 0xd4,
-- 0x7b, 0x11, 0x7d, 0xbb, 0x24, 0xd6, 0x5a, 0x43, 0xf9, 0x15, 0x83, 0xae,
-- 0xa2, 0x4d, 0x9f, 0xa0, 0xa4, 0xc8, 0x08, 0xa8, 0xc5, 0xc2, 0x5d, 0xee,
-- 0xd2, 0x88, 0x6d, 0x18, 0xa7, 0x08, 0xf0, 0x10, 0x0a, 0x62, 0x2e, 0xe2,
-- 0xb1, 0x75, 0xb8, 0xfd, 0x65, 0xb6, 0x98, 0xde, 0x3b, 0x31, 0x4d, 0xdb,
-- 0x5e, 0xa5, 0xbf, 0x85, 0xc2, 0x7e, 0x98, 0xee, 0x69, 0x03, 0xac, 0x9a,
-- 0xad, 0xa0, 0xa3, 0x34, 0x97, 0x2a, 0xe8, 0x6d, 0xa6, 0xa6, 0x3d, 0xb7,
-- 0xca, 0xa4, 0xc5, 0x3b, 0xb4, 0xdb, 0xb9, 0x43, 0x42, 0xa5, 0x9d, 0xfb,
-- 0x71, 0xa6, 0xe7, 0x5e, 0xcf, 0x82, 0x5b, 0x07, 0xa6, 0x2f, 0x22, 0xb6,
-- 0x2b, 0x84, 0x7a, 0x0a, 0x8c, 0x82, 0x86, 0x1d, 0x58, 0x01, 0x81, 0xb6,
-- 0x5d, 0x42, 0x8b, 0xcd, 0x6b, 0x99, 0xc4, 0x96, 0x6f, 0x49, 0xd6, 0x9f,
-- 0xb9, 0x8a, 0x23, 0x7d, 0x45, 0x3c, 0xb5, 0x6c, 0xe4, 0x8e, 0xfd, 0x30,
-- 0x3f, 0xf1, 0x98, 0x6b, 0x79, 0xbc, 0x11, 0x0f, 0x62, 0x50, 0xc2, 0xc0,
-- 0x3c, 0xc3, 0xa6, 0xbe, 0x9b, 0x66, 0xba, 0xb2, 0x5e, 0xb6, 0xce, 0x31,
-- 0x5e, 0xb5, 0xed, 0x4d, 0xbd, 0xb2, 0x49, 0xaa, 0x20, 0x1e, 0xe6, 0xcd,
-- 0x1f, 0x2a, 0x13, 0x46, 0x79, 0xcb, 0x23, 0x01, 0x31, 0xbe, 0x35, 0x10,
-- 0xb5, 0xcb, 0x65, 0xcd, 0x93, 0xb6, 0x52, 0xec, 0xe1, 0x1e, 0xb0, 0x79,
-- 0x5e, 0x83, 0x72, 0xc5, 0x45, 0xf6, 0x70, 0x21, 0x52, 0x8f, 0x0b, 0xa6,
-- 0x7e, 0x35, 0x05, 0x5a, 0x73, 0xe9, 0x7b, 0xe2, 0xa1, 0xb6, 0x38, 0x5f,
-- 0x0b, 0x05, 0xe9, 0x72, 0xcb, 0x00, 0x91, 0xa2, 0xa4, 0x5f, 0x00, 0x1f,
-- 0x62, 0xb7, 0xd3, 0x94, 0xe3, 0xa6, 0x59, 0x4c, 0x1a, 0x26, 0xc7, 0x99,
-- 0x78, 0xa4, 0xd6, 0xbf, 0x5c, 0x07, 0xf5, 0xad, 0xbf, 0x5c, 0xd7, 0x30,
-- 0xe6, 0xb8, 0xd6, 0x4e, 0xa9, 0xd0, 0xf1, 0x3c, 0x84, 0x75, 0x31, 0x39,
-- 0xaf, 0xdb, 0x20, 0xd4, 0x42, 0x27, 0x23, 0x43, 0x4c, 0xc2, 0x5c, 0x93,
-- 0x0d, 0x48, 0xd0, 0x63, 0x89, 0xa8, 0x43, 0x7f, 0x6d, 0xe2, 0x71, 0x2c,
-- 0x24, 0xeb, 0x86, 0x3d, 0x45, 0x7e, 0xe6, 0xb2, 0xbd, 0x65, 0xb6, 0x5e,
-- 0x21, 0xe3, 0x43, 0xaa, 0xa9, 0x74, 0x05, 0x32, 0xb8, 0xb5, 0xd1, 0xf1,
-- 0xc8, 0x40, 0x90, 0xc3, 0x36, 0x1e, 0xe7, 0x9c, 0xe1, 0x00, 0xb1, 0x90,
-- 0xbe, 0x24, 0x91, 0x46, 0xc8, 0x1b, 0x73, 0x46, 0x08, 0x33, 0x4d, 0xba,
-- 0x4d, 0x7a, 0x59, 0xca, 0xbb, 0x09, 0x38, 0xf6, 0x36, 0x54, 0xee, 0xe0,
-- 0x8a, 0x25, 0xc2, 0xab, 0x69, 0x31, 0x2a, 0x2e, 0x2f, 0x1f, 0x90, 0x17,
-- 0x24, 0xd1, 0x1b, 0x6d, 0x08, 0x91, 0xf6, 0x38, 0xd1, 0x89, 0xdf, 0x1b,
-- 0x49, 0x3e, 0x3e, 0x0a, 0xea, 0x29, 0xaa, 0xa7, 0xd6, 0x1b, 0xea, 0xc2,
-- 0x77, 0x37, 0x13, 0x88, 0x25, 0x63, 0x59, 0x0a, 0x07, 0xb5, 0x66, 0x62,
-- 0xa6, 0x46, 0xde, 0x79, 0x5c, 0x40, 0x3a, 0x84, 0xff, 0xfe, 0x9f, 0x3f,
-- 0xfd, 0xd2, 0x11, 0xfa, 0xcc, 0x9a, 0x8d, 0x85, 0x9c, 0x22, 0xd4, 0x45,
-- 0xc0, 0x54, 0xa0, 0x43, 0xb0, 0x1c, 0xe2, 0x2b, 0x92, 0x68, 0x51, 0xd4,
-- 0x20, 0xcd, 0x25, 0x66, 0x70, 0x95, 0xef, 0x10, 0xa8, 0x7d, 0x45, 0x6d,
-- 0x71, 0x00, 0x0c, 0x24, 0x03, 0x24, 0x2d, 0xef, 0x4d, 0x73, 0x20, 0x15,
-- 0xaa, 0xb7, 0xc7, 0x07, 0xca, 0x81, 0x0d, 0x39, 0xff, 0xaa, 0xf2, 0xd9,
-- 0xf7, 0x67, 0x47, 0x4e, 0xa3, 0x0b, 0x76, 0xe2, 0x6b, 0xec, 0x44, 0xb4,
-- 0x6c, 0x1e, 0xdd, 0xb2, 0xdf, 0x06, 0x49, 0xf1, 0x48, 0x5f, 0xac, 0x56,
-- 0x4b, 0x21, 0xb5, 0x56, 0xb5, 0xbd, 0x49, 0xbf, 0x13, 0x86, 0xb5, 0xdf,
-- 0x86, 0x2a, 0x2e, 0x63, 0xfc, 0xbf, 0x46, 0x0e, 0xa7, 0x06, 0x2e, 0x44,
-- 0xd0, 0xd4, 0x5f, 0x93, 0xf4, 0xe6, 0x40, 0xac, 0x5b, 0xa9, 0x9e, 0x0d,
-- 0x80, 0x6b, 0xa9, 0xac, 0xc2, 0xf4, 0x7f, 0x87, 0x62, 0xa0, 0x6a, 0x1b,
-- 0xea, 0xd4, 0x8a, 0x2e, 0x3c, 0x40, 0xa4, 0xb0, 0x2e, 0x83, 0x8a, 0xf2,
-- 0x2b, 0x78, 0x6c, 0xc1, 0xec, 0xeb, 0xff, 0xb6, 0xee, 0x81, 0xf9, 0x3a,
-- 0x92, 0x39, 0x6c, 0xfc, 0x11, 0x42, 0xce, 0xe0, 0xa8, 0xef, 0x47, 0x29,
-- 0x9e, 0x70, 0xb9, 0x73, 0x5d, 0xad, 0xd8, 0x51, 0x07, 0x34, 0xf5, 0xaa,
-- 0x61, 0x7c, 0x73, 0xb8, 0xff, 0xda, 0xe6, 0xfa, 0x4f, 0x81, 0xb7, 0x71,
-- 0xe6, 0x91, 0x51, 0x26, 0x00, 0xdc, 0xcb, 0xb9, 0x15, 0xdf, 0xe5, 0x3d,
-- 0xb1, 0xbb, 0x03, 0xd4, 0x41, 0xa2, 0x36, 0x97, 0x70, 0x60, 0x92, 0xed,
-- 0x50, 0x1d, 0xd5, 0xee, 0xb4, 0x52, 0x79, 0x0c, 0x0c, 0x73, 0x66, 0xe3,
-- 0xe3, 0xd3, 0x2b, 0x2c, 0x2e, 0xa0, 0xdf, 0x30, 0x51, 0xf3, 0xa5, 0xfc,
-- 0xbb, 0xaa, 0x3c, 0xdc, 0xa1, 0xc0, 0x89, 0xea, 0xc3, 0xde, 0x51, 0xd9,
-- 0xca, 0xe4, 0xbb, 0xcb, 0x46, 0xc4, 0x59, 0xae, 0x48, 0x5e, 0xfa, 0x51,
-- 0xb0, 0xb0, 0xdb, 0x23, 0x57, 0xe6, 0xc1, 0xdc, 0x54, 0x0b, 0x2e, 0x71,
-- 0x5c, 0x3c, 0x1a, 0x57, 0xf8, 0xd6, 0x30, 0xaf, 0x4d, 0xf3, 0x24, 0xad,
-- 0x28, 0xed, 0x24, 0x82, 0xee, 0x64, 0xe5, 0xa4, 0xaa, 0x19, 0x94, 0xc9,
-- 0x8d, 0x8c, 0xdf, 0xbb, 0x4e, 0x03, 0xf4, 0xf0, 0xb9, 0x42, 0x88, 0x07,
-- 0x36, 0x4d, 0x33, 0x59, 0x44, 0x29, 0xb7, 0x16, 0xaa, 0x71, 0x67, 0xc6,
-- 0xd5, 0xbe, 0xf8, 0xcc, 0x19, 0x4d, 0xa7, 0x9c, 0xbb, 0xfc, 0x51, 0xd7,
-- 0x9b, 0x2b, 0xf8, 0x86, 0x2d, 0x8e, 0xee, 0x98, 0xc6, 0xe1, 0x72, 0x76,
-- 0x12, 0xe4, 0xf3, 0x86, 0x42, 0x37, 0xcf, 0xd1, 0x32, 0x56, 0x91, 0x1f,
-- 0x4a, 0xf7, 0x44, 0x9c, 0x49, 0xc4, 0x31, 0xfe, 0x55, 0xbd, 0x04, 0x37,
-- 0x4f, 0xe7, 0xe1, 0x38, 0x1d, 0x70, 0xca, 0xa4, 0x90, 0x85, 0x77, 0x96,
-- 0x49, 0x24, 0x41, 0xb0, 0xe0, 0x96, 0x8e, 0x57, 0x99, 0x6d, 0x5c, 0xf9,
-- 0x42, 0x07, 0x3a, 0xec, 0xf8, 0x34, 0x97, 0xc2, 0xc3, 0x15, 0xcf, 0xe0,
-- 0x9e, 0x19, 0xc0, 0x66, 0x45, 0xad, 0xba, 0x8b, 0xb9, 0xb1, 0x16, 0x50,
-- 0x05, 0x45, 0x73, 0x4d, 0x22, 0x16, 0x4d, 0x1c, 0x7a, 0x06, 0xcf, 0x5a,
-- 0x97, 0x8c, 0xb8, 0xfb, 0x55, 0x7e, 0x2b, 0xd4, 0x62, 0x23, 0xeb, 0xc8,
-- 0xa4, 0x70, 0x63, 0x30, 0x1f, 0x7e, 0x52, 0x98, 0xce, 0x24, 0xb8, 0x47,
-- 0x49, 0x85, 0x3a, 0x8c, 0x85, 0xe6, 0x5e, 0x8d, 0x8b, 0x29, 0x5f, 0x52,
-- 0x29, 0xdf, 0xe5, 0x7b, 0x44, 0xd9, 0x6d, 0xdf, 0xc8, 0x37, 0x45, 0x55,
-- 0xef, 0xf5, 0x82, 0xda, 0x7a, 0x2a, 0x48, 0x28, 0xf9, 0xe8, 0xe0, 0x24,
-- 0x66, 0x65, 0x5e, 0x0c, 0x54, 0xc4, 0x91, 0x0c, 0x27, 0xba, 0x88, 0x3a,
-- 0xeb, 0x88, 0x5a, 0x0c, 0x24, 0xa7, 0x37, 0x49, 0x52, 0xa6, 0x4b, 0x71,
-- 0x67, 0xe8, 0xd1, 0x59, 0xae, 0x83, 0x72, 0x35, 0x1d, 0xbf, 0x49, 0x7a,
-- 0x3f, 0x0c, 0x0e, 0x96, 0x55, 0x1c, 0x48, 0x3c, 0x1b, 0x7c, 0x83, 0x26,
-- 0xff, 0xd2, 0x73, 0x8a, 0xb6, 0x3c, 0xea, 0xbf, 0xda, 0xeb, 0x75, 0x07,
-- 0x7e, 0xfb, 0x2b, 0xa5, 0x72, 0xf5, 0xb0, 0x60, 0x39, 0xb7, 0x41, 0x02,
-- 0xc8, 0x97, 0xce, 0xce, 0x96, 0xae, 0xb6, 0x45, 0x76, 0x77, 0xae, 0xb9,
-- 0xe5, 0x2d, 0x2c, 0x10, 0x9f, 0x37, 0x19, 0x14, 0x97, 0x03, 0x94, 0x01,
-- 0xe4, 0xfa, 0xec, 0xec, 0x54, 0x09, 0x8e, 0x23, 0x10, 0x96, 0x99, 0xc0,
-- 0xa8, 0xed, 0xae, 0xfb, 0x59, 0xa3, 0xc3, 0x4b, 0xa7, 0xaa, 0xea, 0x80,
-- 0x74, 0x47, 0xf7, 0x58, 0xbd, 0xb1, 0xd7, 0x1d, 0x7a, 0x2f, 0xa7, 0x0f,
-- 0x29, 0x78, 0x6f, 0x54, 0x41, 0x0c, 0x01, 0x79, 0x7d, 0xb9, 0xc3, 0x31,
-- 0x6b, 0xb0, 0xde, 0x99, 0x58, 0x8d, 0xa0, 0xf6, 0x93, 0xae, 0x7f, 0x29,
-- 0x25, 0x61, 0x3b, 0x9d, 0xbc, 0x3e, 0x05, 0x64, 0xdf, 0x20, 0xd5, 0x06,
-- 0xd4, 0x91, 0x42, 0x82, 0x36, 0xd3, 0xe8, 0x57, 0x01, 0x9f, 0x35, 0x31,
-- 0x24, 0x10, 0xcd, 0xe0, 0x32, 0xbe, 0x9b, 0x1e, 0x5f, 0x04, 0xc5, 0xfb,
-- 0x65, 0xdf, 0x12, 0x71, 0xbd, 0xcb, 0x4d, 0xc2, 0xaf, 0x18, 0xf7, 0x0b,
-- 0x04, 0x77, 0xae, 0x1b, 0xb5, 0x58, 0x8e, 0x66, 0x93, 0x67, 0xc9, 0x4b,
-- 0xfa, 0x11, 0xc7, 0x31, 0x1f, 0x98, 0x57, 0x0d, 0x95, 0xb2, 0x53, 0x97,
-- 0x79, 0x27, 0xf2, 0x18, 0xff, 0xfa, 0x64, 0x97, 0x1a, 0xfe, 0x98, 0x5a,
-- 0x4d, 0x9e, 0x64, 0x92, 0x5f, 0xe5, 0x08, 0x99, 0x8c, 0xb5, 0x59, 0x13,
-- 0xe7, 0x03, 0xa7, 0x06, 0x2f, 0xd5, 0xce, 0xee, 0xe7, 0xc9, 0x28, 0xaf,
-- 0x93, 0xb7, 0xaf, 0x9f, 0x49, 0x5d, 0xf8, 0x6a, 0x39, 0xb3, 0x0d, 0xd5,
-- 0x2a, 0x2a, 0x3c, 0xce, 0xf5, 0xf6, 0x11, 0xa1, 0x81, 0x4f, 0xf3, 0x31,
-- 0xe7, 0xd5, 0xf5, 0x1b, 0x15, 0x96, 0x2e, 0xcd, 0xe6, 0x17, 0x14, 0x2c,
-- 0x72, 0x84, 0xc7, 0x2d, 0xa9, 0xcd, 0xb1, 0x43, 0x9b, 0xa5, 0x35, 0xa0,
-- 0xce, 0x2b, 0xab, 0x26, 0xdd, 0xd0, 0xa0, 0x3e, 0x6b, 0x5a, 0x06, 0x24,
-- 0x6c, 0xd6, 0x40, 0x28, 0x07, 0x24, 0x20, 0x5d, 0x45, 0x81, 0xa4, 0x76,
-- 0xb5, 0x1d, 0xe1, 0xd9, 0xa4, 0x19, 0x7d, 0x77, 0x8c, 0x37, 0x82, 0x5c,
-- 0x7f, 0xb9, 0xba, 0x99, 0x9c, 0xf3, 0xf1, 0x72, 0xca, 0xd5, 0x1d, 0xe3,
-- 0x3b, 0xde, 0xca, 0xb9, 0x18, 0xa6, 0x46, 0xb9, 0x94, 0x1a, 0x80, 0xfb,
-- 0x0b, 0x8e, 0x1b, 0x4b, 0x76, 0x86, 0x1f, 0xfb, 0x61, 0x01, 0x6b, 0x2d,
-- 0x37, 0x85, 0x3a, 0xd5, 0xe5, 0x20, 0x22, 0xf7, 0x71, 0xdd, 0x1e, 0x0d,
-- 0xb7, 0x2d, 0x11, 0x7b, 0x53, 0xf6, 0x7e, 0x94, 0x72, 0x11, 0xec, 0x12,
-- 0x43, 0xbd, 0x4a, 0x51, 0xb2, 0x30, 0xa0, 0x9e, 0xbc, 0x0f, 0x38, 0x24,
-- 0x80, 0xd4, 0xae, 0x9a, 0xb8, 0x7c, 0x1b, 0x54, 0x31, 0x31, 0x61, 0x40,
-- 0x85, 0x79, 0x09, 0x37, 0x15, 0xe9, 0x2e, 0xf8, 0x3a, 0x2e, 0xb3, 0xcd,
-- 0xcd, 0xb8, 0x43, 0x08, 0x47, 0x8a, 0x2c, 0xc1, 0x80, 0xef, 0xde, 0x3e,
-- 0xcb, 0x6a, 0x99, 0xe3, 0xd4, 0x41, 0x9c, 0xad, 0x34, 0x1a, 0xc7, 0xd3,
-- 0x23, 0xcf, 0xc3, 0xe2, 0x64, 0x87, 0xc3, 0x60, 0x56, 0x47, 0x26, 0xb1,
-- 0x74, 0x4d, 0x89, 0x4b, 0xe1, 0x6c, 0xbd, 0x39, 0x3a, 0x3e, 0xdc, 0x4c,
-- 0xde, 0x64, 0x00, 0xb9, 0x6a, 0x8e, 0x1b, 0xfc, 0xe2, 0x0f, 0xf2, 0x89,
-- 0x6d, 0x91, 0x6a, 0x5a, 0x5d, 0xbe, 0x6f, 0xb5, 0x0b, 0x41, 0x4e, 0x94,
-- 0x5d, 0x83, 0x44, 0x28, 0x89, 0x30, 0x05, 0xe2, 0xf5, 0xac, 0xda, 0x11,
-- 0xe4, 0xb4, 0x00, 0xb9, 0x3f, 0xb6, 0xbb, 0xf2, 0x6d, 0xe7, 0x4b, 0x9b,
-- 0x7d, 0xaf, 0x55, 0x0f, 0x19, 0xc5, 0xd3, 0x22, 0x3c, 0x68, 0x6f, 0x79,
-- 0xec, 0x1a, 0x94, 0x26, 0xee, 0x2f, 0xa9, 0x08, 0xda, 0x75, 0x16, 0xa4,
-- 0x50, 0x77, 0xfe, 0x77, 0x09, 0xe1, 0x45, 0xe0, 0xc4, 0xac, 0x98, 0x38,
-- 0x4c, 0x6b, 0xa9, 0x3f, 0xc6, 0xf3, 0x0d, 0x19, 0x4a, 0x80, 0xdb, 0xd5,
-- 0x95, 0xe5, 0x79, 0x2a, 0x10, 0xde, 0x3c, 0xa0, 0xd0, 0x17, 0x2f, 0x77,
-- 0xb5, 0x57, 0x53, 0x5c, 0x2b, 0x43, 0x17, 0xdd, 0xc6, 0xd5, 0xf4, 0x3a,
-- 0xe8, 0xc2, 0x7a, 0x4b, 0x84, 0x0c, 0x42, 0xa3, 0x39, 0xcd, 0x16, 0x87,
-- 0x5d, 0x62, 0xeb, 0xf6, 0xe7, 0x16, 0x78, 0xa3, 0xa5, 0xbc, 0x39, 0x91,
-- 0x27, 0x2a, 0x5f, 0xd8, 0x11, 0x1a, 0xa5, 0xc1, 0x4b, 0xc1, 0xcc, 0x48,
-- 0xdc, 0xdd, 0xde, 0xdb, 0x09, 0xab, 0x13, 0xce, 0xb5, 0xf2, 0x2e, 0x87,
-- 0x2c, 0x6d, 0xfd, 0x7e, 0xc1, 0x29, 0x7f, 0x65, 0xd2, 0xfc, 0xeb, 0x72,
-- 0x7e, 0x43, 0xb4, 0x55, 0x31, 0x05, 0x0f, 0xba, 0x2b, 0x24, 0xeb, 0xe9,
-- 0xfb, 0xde, 0xb9, 0x27, 0xda, 0xa5, 0x34, 0x1a, 0x45, 0xe0, 0x53, 0x75,
-- 0x6b, 0x0b, 0x55, 0x3c, 0x50, 0x0c, 0x2f, 0xc4, 0x20, 0x66, 0xdf, 0x34,
-- 0xd1, 0xce, 0x98, 0x03, 0x1f, 0x58, 0xcf, 0xec, 0xe9, 0x88, 0xac, 0xe9,
-- 0xde, 0xd0, 0xe3, 0x16, 0x47, 0x51, 0x52, 0x95, 0x26, 0x53, 0x5d, 0x5b,
-- 0x21, 0x75, 0x08, 0xd1, 0xea, 0x76, 0x60, 0xf9, 0x8a, 0xa3, 0xf2, 0xe8,
-- 0xbe, 0x4e, 0xac, 0x51, 0x11, 0x27, 0xb8, 0x50, 0x00, 0xaf, 0x47, 0xeb,
-- 0xb6, 0x94, 0x14, 0xb7, 0xc4, 0x8a, 0x1d, 0x55, 0x1e, 0xdb, 0xcf, 0x06,
-- 0x98, 0xb4, 0x06, 0x27, 0x2a, 0x05, 0x5f, 0xf2, 0xeb, 0xd1, 0xb9, 0x1c,
-- 0x4f, 0x0b, 0xde, 0x1d, 0x36, 0x56, 0x06, 0x2b, 0xff, 0x3f, 0xe4, 0xde,
-- 0xe6, 0xbb, 0x48, 0x4f, 0xfa, 0xa0, 0x23, 0x08, 0x2a, 0x0c, 0x00, 0xb7,
-- 0x2c, 0x25, 0xa4, 0x00, 0x41, 0x20, 0x38, 0x09, 0xda, 0x90, 0xd8, 0x56,
-- 0x97, 0xc8, 0xa4, 0x17, 0x56, 0x27, 0xf6, 0xe5, 0x20, 0xa8, 0x82, 0xeb,
-- 0xb8, 0xf5, 0x6b, 0x3a, 0xb6, 0x45, 0x95, 0xcb, 0xbe, 0xf8, 0x08, 0xb5,
-- 0x40, 0x4f, 0x8d, 0x83, 0x50, 0x2c, 0x79, 0xd7, 0xe1, 0xa1, 0x48, 0x1c,
-- 0xa4, 0x19, 0x5b, 0x39, 0xaa, 0xa1, 0x23, 0x39, 0x0e, 0x96, 0xa9, 0x79,
-- 0x11, 0xa2, 0x8e, 0xd2, 0x55, 0xcf, 0xa6, 0x80, 0x3f, 0x11, 0x15, 0x92,
-- 0x6a, 0x3b, 0xe7, 0xda, 0x3f, 0x1b, 0xf7, 0x59, 0xbd, 0xe9, 0x3d, 0xdb,
-- 0x16, 0xf7, 0xd5, 0x55, 0xda, 0x46, 0x0e, 0x6a, 0x2b, 0x55, 0x91, 0xcd,
-- 0x58, 0xfa, 0x92, 0x00, 0x0b, 0xf2, 0x75, 0x5d, 0x22, 0x9d, 0x97, 0x1d,
-- 0x09, 0x0a, 0xda, 0xbc, 0xaa, 0xb9, 0xf0, 0x52, 0xba, 0x91, 0x4b, 0xa9,
-- 0xea, 0x8a, 0x86, 0xd2, 0x4c, 0xd1, 0xa0, 0xdf, 0x20, 0x40, 0x54, 0x15,
-- 0x25, 0xf3, 0x44, 0x59, 0xb5, 0x01, 0x12, 0xec, 0xad, 0xb5, 0x5e, 0x5b,
-- 0xde, 0x3b, 0x3f, 0x0e, 0x73, 0x80, 0xc5, 0x72, 0xe8, 0x71, 0x27, 0xf7,
-- 0xe9, 0x58, 0x44, 0x8f, 0x70, 0x1a, 0x84, 0xac, 0x64, 0x34, 0x1d, 0x31,
-- 0xad, 0xcc, 0x88, 0xb8, 0xcc, 0xbc, 0xdc, 0x28, 0xab, 0xd2, 0xca, 0x3d,
-- 0xd3, 0xa4, 0x47, 0xd9, 0xf1, 0x94, 0x13, 0x0b, 0xda, 0xc7, 0xec, 0xbe,
-- 0x09, 0xa1, 0xc5, 0x47, 0x48, 0xa2, 0xc3, 0xb5, 0x96, 0xb9, 0x1f, 0x55,
-- 0x50, 0x45, 0x6d, 0xe5, 0x64, 0x51, 0x8c, 0xda, 0x7c, 0xb5, 0x8d, 0x45,
-- 0x8e, 0x7d, 0xb5, 0x81, 0x3c, 0x9c, 0xf8, 0x32, 0xaf, 0x74, 0x55, 0xa0,
-- 0xda, 0xb7, 0xa0, 0x5b, 0xa1, 0x56, 0xb1, 0x9a, 0xc0, 0x91, 0x38, 0x2e,
-- 0xc1, 0x91, 0x92, 0x2f, 0x83, 0x98, 0xc8, 0x15, 0xd5, 0x60, 0x91, 0x0a,
-- 0x79, 0x9d, 0x7e, 0xfc, 0x38, 0xac, 0x32, 0xa9, 0x6a, 0x5a, 0x55, 0x53,
-- 0xa4, 0x5d, 0x36, 0xcb, 0xc0, 0x0e, 0xbe, 0xd5, 0x1a, 0xd0, 0x97, 0xf9,
-- 0x15, 0x47, 0xef, 0xe1, 0xdf, 0xae, 0x24, 0x73, 0x4b, 0x2f, 0xb7, 0x5a,
-- 0xba, 0xfe, 0x49, 0xcf, 0x2f, 0x81, 0xf1, 0xa4, 0x31, 0x4c, 0xc2, 0x36,
-- 0x35, 0x37, 0x2e, 0xce, 0x5e, 0x71, 0x2f, 0xe7, 0x41, 0x1c, 0xfe, 0x34,
-- 0xf3, 0xe9, 0x1e, 0x76, 0xeb, 0x63, 0x35, 0x7c, 0xa3, 0x26, 0xe8, 0xb7,
-- 0x35, 0x26, 0xad, 0x1e, 0x6e, 0xb9, 0x22, 0xd0, 0x17, 0xc3, 0xfb, 0x41,
-- 0x19, 0xa6, 0xa8, 0x2c, 0x1c, 0x59, 0x6f, 0x6f, 0x74, 0x42, 0xfb, 0x68,
-- 0x89, 0xcc, 0x70, 0x0c, 0xd1, 0xbe, 0x9d, 0x2c, 0x02, 0x7a, 0xbe, 0xce,
-- 0xf2, 0xd2, 0x5b, 0xd8, 0x2b, 0x17, 0x04, 0xeb, 0xb9, 0x52, 0xab, 0x6c,
-- 0x58, 0xe7, 0x82, 0xb8, 0x92, 0x4d, 0xa8, 0x1d, 0xe6, 0xc1, 0xda, 0x98,
-- 0x4a, 0x69, 0x62, 0x24, 0x57, 0x92, 0xfc, 0xca, 0x32, 0x89, 0xa8, 0xb3,
-- 0xea, 0x9e, 0x01, 0x5a, 0x7c, 0xd5, 0x99, 0xda, 0x71, 0xcc, 0x19, 0xac,
-- 0x7a, 0x88, 0x05, 0xc3, 0x60, 0x0c, 0x99, 0x22, 0x06, 0x72, 0xf3, 0x5c,
-- 0x49, 0x76, 0xb6, 0xb3, 0xdc, 0x96, 0xb3, 0x05, 0x88, 0x15, 0x45, 0x60,
-- 0xb2, 0x24, 0x3a, 0x98, 0x44, 0xcb, 0xea, 0x5a, 0xa3, 0x75, 0x69, 0x9d,
-- 0x2b, 0xad, 0xe2, 0x8e, 0x91, 0xc6, 0xb8, 0xb8, 0x32, 0x64, 0x8f, 0x93,
-- 0x52, 0x35, 0x22, 0x51, 0xb8, 0x8e, 0x8e, 0x99, 0x25, 0xab, 0xa1, 0x47,
-- 0x75, 0xf1, 0x16, 0xc0, 0x4e, 0x63, 0x16, 0x78, 0xbf, 0x18, 0x0e, 0x10,
-- 0x37, 0x02, 0x6f, 0xc8, 0x1d, 0xe3, 0xe5, 0x62, 0x68, 0x92, 0x46, 0xc9,
-- 0xd5, 0x8b, 0xa4, 0x2b, 0xe2, 0xd6, 0x9f, 0x38, 0x3a, 0x97, 0xb1, 0x02,
-- 0x51, 0x5c, 0x8b, 0xac, 0xf2, 0x3c, 0xeb, 0xca, 0xef, 0xf9, 0xaa, 0xb2,
-- 0xf7, 0xde, 0xed, 0x22, 0x91, 0x8d, 0x66, 0xa3, 0x0f, 0xf7, 0xb3, 0xf9,
-- 0x9c, 0xd2, 0x4e, 0x5c, 0xf3, 0x4e, 0xee, 0x5c, 0x0b, 0xba, 0x96, 0x08,
-- 0x6e, 0x56, 0x21, 0xbf, 0xd7, 0x0f, 0x74, 0x27, 0x12, 0x8b, 0xe4, 0x6e,
-- 0x14, 0x43, 0x69, 0x37, 0x27, 0x48, 0x35, 0xfe, 0x6e, 0x02, 0xcf, 0xb5,
-- 0xb4, 0xe2, 0xbd, 0xe4, 0xe7, 0x9f, 0xfb, 0x09, 0x23, 0xe4, 0xfc, 0x4c,
-- 0xda, 0xc1, 0xcf, 0xec, 0xf7, 0xfb, 0xb9, 0x54, 0x64, 0xf3, 0x9f, 0x6f,
-- 0xa9, 0xcb, 0xfd, 0x55, 0x31, 0xdd, 0x49, 0x50, 0xa9, 0x23, 0x04, 0xe7,
-- 0xd2, 0x32, 0x45, 0xac, 0xbc, 0x49, 0x22, 0xe5, 0xd0, 0x16, 0xa8, 0x0b,
-- 0x5a, 0x98, 0x36, 0x66, 0x39, 0x9b, 0x4b, 0xde, 0x81, 0x72, 0x1a, 0xf0,
-- 0x01, 0x30, 0x8b, 0xf5, 0x3f, 0xae, 0xfb, 0xbd, 0x09, 0xca, 0x1e, 0xa9,
-- 0x2e, 0xcc, 0x0f, 0x46, 0xf6, 0x14, 0x61, 0x04, 0xb5, 0xd4, 0x23, 0x15,
-- 0x83, 0x08, 0x1f, 0x6e, 0xe8, 0x00, 0x27, 0x6c, 0xbc, 0xb8, 0x43, 0xa9,
-- 0x32, 0x58, 0x26, 0x65, 0x83, 0xd9, 0xee, 0xb2, 0xb8, 0xbe, 0x87, 0x10,
-- 0x16, 0x09, 0xc0, 0xf3, 0xb0, 0x7a, 0xb8, 0xb1, 0xb2, 0x98, 0xb3, 0x07,
-- 0x88, 0x1c, 0x4e, 0x92, 0x60, 0x9f, 0x56, 0xc8, 0x73, 0x69, 0x2c, 0xeb,
-- 0x83, 0xf5, 0x20, 0x57, 0x56, 0xa2, 0x5d, 0x56, 0xd4, 0xa8, 0xf3, 0xa8,
-- 0x37, 0x52, 0xa3, 0xee, 0xa1, 0xc8, 0x7f, 0x4d, 0x16, 0x17, 0xbc, 0x29,
-- 0x8f, 0xf8, 0x95, 0xc2, 0xf6, 0x1e, 0x0f, 0xbf, 0xdf, 0x61, 0xdf, 0x36,
-- 0x24, 0x62, 0x7b, 0x37, 0xaf, 0xc3, 0x0a, 0x66, 0xec, 0xf0, 0xf0, 0xc0,
-- 0xe8, 0x20, 0x0e, 0x98, 0x39, 0x91, 0x56, 0x9d, 0x93, 0x12, 0x71, 0xdf,
-- 0xc1, 0xa5, 0x2d, 0x94, 0x5d, 0xe0, 0x01, 0x51, 0x15, 0x83, 0xb1, 0x47,
-- 0xef, 0xe6, 0xc2, 0x65, 0x93, 0xf3, 0xa2, 0x2f, 0x25, 0x1e, 0x4c, 0xfb,
-- 0x08, 0xb2, 0x6a, 0x3a, 0xbc, 0x62, 0x91, 0x22, 0xc2, 0x63, 0x7a, 0x95,
-- 0xf4, 0x56, 0x5e, 0x83, 0xbd, 0xce, 0x12, 0x68, 0x26, 0xff, 0x73, 0xce,
-- 0xe3, 0x8d, 0x02, 0xc1, 0xa9, 0x7c, 0xbc, 0x61, 0xd7, 0xf9, 0xdf, 0xec,
-- 0x0a, 0xdf, 0x54, 0xfb, 0x8b, 0x44, 0x65, 0xae, 0x02, 0x10, 0xd3, 0xa5,
-- 0x55, 0xd6, 0x89, 0xd5, 0x81, 0xc6, 0x9a, 0xc3, 0x9a, 0x7e, 0x59, 0x2c,
-- 0xe7, 0x93, 0x66, 0xa4, 0xc6, 0x6a, 0xc6, 0xcb, 0xe9, 0x8b, 0xdc, 0xa3,
-- 0xa2, 0xd1, 0x59, 0xc6, 0x85, 0xab, 0x73, 0x04, 0xb3, 0x96, 0x66, 0x47,
-- 0xb0, 0xd4, 0xc6, 0x20, 0x46, 0xd1, 0xc2, 0xec, 0x6c, 0xaa, 0xd4, 0x86,
-- 0x22, 0xbb, 0x1c, 0x63, 0x9d, 0xab, 0xe9, 0xb5, 0x77, 0x5d, 0x08, 0xb2,
-- 0x42, 0x6f, 0x2f, 0x39, 0xaa, 0x2d, 0xf6, 0x4e, 0xe7, 0xb8, 0xca, 0xab,
-- 0x0c, 0xe8, 0x8a, 0x6f, 0x4e, 0xde, 0x1e, 0xba, 0x78, 0x4f, 0xd1, 0xf2,
-- 0xf9, 0x93, 0x4e, 0x78, 0x9d, 0x21, 0xdc, 0xf6, 0x96, 0x31, 0xdb, 0x8f,
-- 0xab, 0x7a, 0x60, 0x75, 0x48, 0x99, 0x5f, 0xdc, 0x2d, 0xf3, 0xc9, 0x06,
-- 0x72, 0x9a, 0xdf, 0xbf, 0x3b, 0xfa, 0x61, 0x20, 0x66, 0x0c, 0x60, 0x4f,
-- 0x55, 0x96, 0xd6, 0x6b, 0x49, 0xc1, 0xa2, 0xea, 0x17, 0xb3, 0x8e, 0xf4,
-- 0x78, 0x8b, 0x43, 0x0e, 0xe1, 0xa1, 0x90, 0xa3, 0x90, 0xcf, 0xc5, 0x95,
-- 0x20, 0x4d, 0x6e, 0x32, 0x03, 0x20, 0x16, 0x0a, 0x6c, 0x0b, 0xec, 0x7b,
-- 0x47, 0xec, 0x6a, 0xb0, 0xdf, 0xdc, 0xdc, 0xfe, 0xe9, 0xe9, 0xeb, 0xfd,
-- 0x8b, 0x7d, 0x37, 0x37, 0x5c, 0xc5, 0x60, 0x2a, 0xd0, 0x4d, 0x59, 0x70,
-- 0xd3, 0x22, 0x97, 0xeb, 0x7f, 0xe2, 0xb4, 0x86, 0xf6, 0x5d, 0x7f, 0x7a,
-- 0x76, 0xc2, 0x16, 0x86, 0x3f, 0xfd, 0xbc, 0xef, 0x0b, 0xb6, 0xa2, 0x20,
-- 0x5b, 0x5c, 0x36, 0x73, 0x77, 0x33, 0xe1, 0xf1, 0x19, 0xf8, 0x46, 0xdf,
-- 0x79, 0xc2, 0x25, 0x85, 0x38, 0xf9, 0xc0, 0x7b, 0x5a, 0x8e, 0x9d, 0xf0,
-- 0x24, 0xc6, 0x3b, 0xd9, 0xce, 0x7e, 0x1c, 0x11, 0x17, 0x4c, 0xa4, 0xf0,
-- 0x4c, 0xcc, 0x90, 0x35, 0x6c, 0xad, 0xa6, 0x24, 0xf1, 0x93, 0xd0, 0x5a,
-- 0x83, 0x75, 0xb0, 0xb1, 0x8d, 0xe9, 0x6b, 0xc2, 0x0b, 0xd5, 0xc6, 0x8f,
-- 0x72, 0xfb, 0x63, 0x1b, 0x24, 0x15, 0x12, 0xc0, 0x70, 0x85, 0x05, 0x48,
-- 0xc4, 0x63, 0x21, 0x85, 0x78, 0x86, 0x36, 0x5a, 0x55, 0xa7, 0xa2, 0xb3,
-- 0x23, 0xe6, 0x7b, 0xa2, 0x73, 0x9b, 0x43, 0xb4, 0x20, 0x7f, 0x24, 0xbe,
-- 0x33, 0xb0, 0x8c, 0x4a, 0x99, 0x36, 0x7d, 0x10, 0x3d, 0x54, 0x5b, 0xb1,
-- 0x11, 0xe3, 0xf3, 0xdd, 0x6c, 0x22, 0xe4, 0x0f, 0x6d, 0x59, 0x5e, 0x53,
-- 0xec, 0xf5, 0x29, 0x94, 0x2d, 0x44, 0x8a, 0x5e, 0x6c, 0x6e, 0x34, 0xe3,
-- 0x35, 0x3d, 0x5a, 0x2d, 0xd9, 0x60, 0xc3, 0x7f, 0x6d, 0xed, 0x0c, 0xb7,
-- 0x7b, 0xf1, 0xe8, 0x11, 0xef, 0x09, 0xa3, 0x98, 0x61, 0x6a, 0x0a, 0x4c,
-- 0x6a, 0xf1, 0xf8, 0x00, 0x85, 0x81, 0x91, 0x44, 0x0a, 0xc7, 0x5e, 0xd7,
-- 0x58, 0x06, 0x27, 0x91, 0xf1, 0x52, 0x8c, 0xe8, 0x9e, 0x23, 0xce, 0x0b,
-- 0x64, 0x96, 0xa6, 0xac, 0x0d, 0xc1, 0x10, 0xd3, 0xeb, 0x5e, 0xe0, 0xf9,
-- 0x44, 0x1c, 0x82, 0xad, 0x75, 0xfe, 0x4d, 0x29, 0x57, 0x6e, 0xff, 0xfd,
-- 0xe7, 0xab, 0xb9, 0x5d, 0xc3, 0xf2, 0x7e, 0x93, 0x91, 0x20, 0x38, 0x45,
-- 0x86, 0x11, 0xdb, 0xd1, 0x5e, 0x4a, 0x6d, 0xcd, 0x18, 0x22, 0xbb, 0xe1,
-- 0x0b, 0xa8, 0x7c, 0xdc, 0x98, 0xe0, 0x95, 0x85, 0x51, 0xd4, 0x1e, 0x49,
-- 0xa5, 0xcc, 0x38, 0xf0, 0x31, 0xc9, 0x27, 0x51, 0x22, 0xb3, 0xc6, 0x52,
-- 0xb2, 0xf7, 0x87, 0xf9, 0x95, 0x1b, 0x04, 0x2b, 0xdf, 0xa3, 0xcc, 0x89,
-- 0xfc, 0xd2, 0xba, 0x09, 0x87, 0x8c, 0xa2, 0x99, 0x93, 0x6a, 0xbe, 0x8c,
-- 0xe4, 0x85, 0xf6, 0xfb, 0x43, 0xe6, 0xb2, 0x79, 0x15, 0xa6, 0xcd, 0xc0,
-- 0xa8, 0xc3, 0x4f, 0x14, 0xce, 0xe4, 0x87, 0xfa, 0x75, 0x38, 0x53, 0x91,
-- 0x11, 0xf3, 0x52, 0xe1, 0xbb, 0x30, 0xc5, 0x8b, 0x83, 0xd3, 0x0f, 0xdf,
-- 0x1e, 0x1e, 0x9e, 0x1e, 0xbd, 0x3e, 0x3e, 0xd4, 0x7b, 0xc6, 0x7d, 0xf4,
-- 0xee, 0xe2, 0xbb, 0x63, 0x0f, 0xe1, 0xa5, 0x9e, 0x94, 0xb6, 0xba, 0xcf,
-- 0x51, 0x39, 0x68, 0xee, 0x38, 0x9f, 0x2f, 0x3f, 0x72, 0x49, 0xa9, 0x31,
-- 0x13, 0xf3, 0xfe, 0xd1, 0x0f, 0xfd, 0xe4, 0x9b, 0xd3, 0xc1, 0xfb, 0x1f,
-- 0x22, 0xa4, 0x84, 0x46, 0x20, 0x6c, 0x5b, 0xb0, 0x74, 0x61, 0xb1, 0x28,
-- 0xbb, 0xe0, 0xe7, 0x6e, 0xfa, 0x6f, 0x47, 0x25, 0xc2, 0x7f, 0xb4, 0x29,
-- 0x30, 0x8e, 0x64, 0x98, 0x07, 0x18, 0xaf, 0x81, 0x14, 0xaf, 0x57, 0x2f,
-- 0xc8, 0xe1, 0xf9, 0xb6, 0x56, 0x6e, 0x6d, 0x11, 0xe0, 0x7d, 0xf2, 0x92,
-- 0x7e, 0x74, 0x61, 0xd7, 0x6c, 0x9d, 0x9f, 0x7f, 0xc3, 0x05, 0xdf, 0x3d,
-- 0x50, 0xa2, 0xb3, 0xb5, 0x0c, 0x2d, 0x06, 0x4e, 0x3d, 0xca, 0x81, 0xd5,
-- 0xa6, 0x64, 0x78, 0xbd, 0xc8, 0xd6, 0xde, 0x80, 0x5a, 0xcc, 0x9d, 0x02,
-- 0x94, 0x75, 0x4b, 0x96, 0xff, 0xc0, 0x4c, 0x3e, 0xea, 0xf4, 0x51, 0x8c,
-- 0xb5, 0x68, 0x8a, 0xfc, 0xe8, 0xd0, 0xc9, 0xb7, 0x6a, 0x93, 0xe7, 0x46,
-- 0x30, 0x3f, 0x59, 0xb5, 0xae, 0x8a, 0xa7, 0x8a, 0xbb, 0xd3, 0xc0, 0xb6,
-- 0xa5, 0xd1, 0x0f, 0x19, 0x70, 0xad, 0x2f, 0xd0, 0x6b, 0x21, 0xec, 0x9a,
-- 0xc3, 0x19, 0x1c, 0x2a, 0xdc, 0xda, 0x2a, 0xbd, 0xaf, 0xff, 0x4f, 0x84,
-- 0x5b, 0xbb, 0x29, 0x47, 0xc9, 0xcb, 0x29, 0xbd, 0x38, 0xed, 0x4e, 0x72,
-- 0x94, 0x52, 0x58, 0xbe, 0xa4, 0x57, 0x0b, 0x58, 0x43, 0x21, 0xbc, 0x44,
-- 0xf4, 0x43, 0x33, 0xce, 0x79, 0x1d, 0x69, 0x7c, 0x35, 0x8c, 0x4d, 0xfc,
-- 0x46, 0x94, 0x10, 0xb6, 0x8e, 0x38, 0xcc, 0xf5, 0x7e, 0xb2, 0xce, 0xf0,
-- 0x21, 0xfc, 0x2f, 0x18, 0xaa, 0x16, 0x42, 0x5b, 0xef, 0xc7, 0x5a, 0xed,
-- 0xba, 0xae, 0xfa, 0x3a, 0x6d, 0x9c, 0xb4, 0xc6, 0xb4, 0x29, 0x48, 0x69,
-- 0x32, 0x0e, 0x8f, 0x40, 0x0c, 0x31, 0x5e, 0x94, 0xe8, 0x4b, 0x8d, 0xef,
-- 0xea, 0xaf, 0x6a, 0xae, 0x99, 0x8d, 0x17, 0x2d, 0x58, 0x27, 0x87, 0xf6,
-- 0x88, 0xff, 0xa9, 0x43, 0x0e, 0x0e, 0x80, 0xfe, 0xad, 0x6c, 0xdb, 0x53,
-- 0x96, 0xab, 0xbe, 0x3e, 0x3f, 0xdf, 0x3f, 0x3d, 0x6a, 0x2f, 0x35, 0x7d,
-- 0x3a, 0x78, 0x67, 0x65, 0xb3, 0x36, 0x8d, 0x52, 0xbc, 0x7f, 0x90, 0x67,
-- 0x80, 0xe4, 0x32, 0xbe, 0xfe, 0x39, 0x26, 0x1a, 0x50, 0x97, 0xdf, 0xb1,
-- 0xe2, 0xc5, 0xd6, 0xe2, 0x8e, 0x72, 0x4c, 0x0a, 0x6c, 0xa8, 0xa1, 0x2e,
-- 0xa5, 0x26, 0xf7, 0x19, 0x78, 0x7c, 0x5e, 0xff, 0x8e, 0x34, 0x35, 0x05,
-- 0xd8, 0x7a, 0x5e, 0xd5, 0x03, 0x76, 0x14, 0x75, 0x67, 0x00, 0x40, 0x4d,
-- 0xd1, 0xb0, 0x7a, 0xf3, 0x54, 0x05, 0x68, 0xa7, 0xc2, 0x34, 0xa4, 0xa4,
-- 0x0c, 0xe2, 0x8f, 0x58, 0xf4, 0x61, 0x4e, 0x34, 0xe8, 0x42, 0xb3, 0xbf,
-- 0xcd, 0xb3, 0x3b, 0xbf, 0x56, 0x21, 0x32, 0x8c, 0x79, 0x4f, 0x91, 0x37,
-- 0xee, 0x72, 0x53, 0x05, 0x7c, 0xb5, 0xea, 0x40, 0xda, 0x9b, 0xa5, 0xe3,
-- 0x6b, 0x12, 0xd8, 0x06, 0x88, 0x62, 0x4c, 0x42, 0xf8, 0x10, 0xc4, 0x4c,
-- 0xb6, 0x07, 0xca, 0xc9, 0x66, 0x1a, 0x1b, 0xd5, 0x59, 0x62, 0xcd, 0x3f,
-- 0xc8, 0x43, 0x74, 0xa1, 0x58, 0x42, 0xa5, 0x2e, 0x87, 0x14, 0x6a, 0x61,
-- 0x51, 0x3a, 0x5c, 0x40, 0x1f, 0xe7, 0xd7, 0xe1, 0xaa, 0x4a, 0x14, 0xf6,
-- 0xaf, 0x61, 0x43, 0x52, 0x34, 0x98, 0x34, 0x79, 0x77, 0x7c, 0xee, 0x73,
-- 0x28, 0x6a, 0xc5, 0xd0, 0x17, 0x9c, 0xd9, 0x55, 0xae, 0x86, 0x30, 0x9c,
-- 0xe8, 0xf8, 0xa8, 0xa3, 0x5a, 0x25, 0x2b, 0xe1, 0x7b, 0xa4, 0xc8, 0xce,
-- 0xc2, 0x3a, 0xda, 0x95, 0xd6, 0x66, 0x40, 0x8e, 0x93, 0xf8, 0x8e, 0xcd,
-- 0xe6, 0xc6, 0xba, 0x8a, 0x47, 0xf0, 0x89, 0x96, 0x98, 0x87, 0xf8, 0x17,
-- 0xb1, 0x5c, 0x6a, 0xa0, 0x86, 0x3a, 0x7a, 0x19, 0xe8, 0x66, 0x10, 0xa4,
-- 0xb5, 0x0a, 0xa7, 0x00, 0xec, 0x4a, 0x3e, 0x66, 0x75, 0xfa, 0x26, 0x8e,
-- 0x9a, 0xd8, 0x38, 0x3d, 0x39, 0x7d, 0xe2, 0xb2, 0x7f, 0x35, 0x0b, 0xb9,
-- 0xe1, 0x58, 0x1c, 0x27, 0x2c, 0x17, 0x29, 0xce, 0x11, 0x3f, 0xdd, 0x20,
-- 0xae, 0xae, 0x02, 0x57, 0x40, 0xe5, 0x3f, 0x8a, 0xd6, 0x51, 0x5d, 0x03,
-- 0xcd, 0x3a, 0x16, 0x9c, 0x0f, 0x19, 0xa4, 0xeb, 0x75, 0x20, 0x49, 0x98,
-- 0x57, 0xdf, 0x91, 0xa2, 0x86, 0x76, 0x83, 0x0e, 0x85, 0x0c, 0xfd, 0x49,
-- 0x0d, 0x46, 0x4d, 0xa7, 0x2d, 0x3a, 0xd6, 0x5c, 0x79, 0x3a, 0x9f, 0x48,
-- 0x56, 0x72, 0xd5, 0x4c, 0x4b, 0x96, 0x18, 0x7b, 0x14, 0x88, 0x60, 0xe7,
-- 0x2d, 0x00, 0xbc, 0x56, 0xec, 0xa4, 0x58, 0x08, 0x10, 0x04, 0xe9, 0x82,
-- 0x43, 0x7f, 0x10, 0x37, 0x95, 0x04, 0x68, 0xfa, 0xb4, 0xf7, 0xfe, 0xa3,
-- 0xd0, 0xe7, 0x41, 0xe1, 0x2a, 0x49, 0xe3, 0x21, 0x2d, 0x97, 0x44, 0x37,
-- 0xb7, 0x76, 0xba, 0x56, 0xea, 0xfb, 0xd1, 0x69, 0xb3, 0xe3, 0x87, 0x7e,
-- 0xe9, 0xaa, 0x00, 0xcd, 0x7b, 0xb5, 0x4e, 0xac, 0x67, 0x9e, 0xd3, 0x58,
-- 0x12, 0xb9, 0x00, 0x2e, 0x39, 0x42, 0x4d, 0xfd, 0x42, 0x88, 0x4c, 0xa0,
-- 0xe9, 0x71, 0xf2, 0x3b, 0x47, 0xe8, 0xf0, 0x92, 0xf0, 0x9a, 0x74, 0x1d,
-- 0xe5, 0x9b, 0x4c, 0xad, 0x69, 0x12, 0x8b, 0xd9, 0xcc, 0xc1, 0xd9, 0x69,
-- 0x24, 0x9a, 0x37, 0xea, 0x43, 0x74, 0xc6, 0x00, 0xa0, 0x82, 0xc0, 0xa6,
-- 0x07, 0xe5, 0x76, 0xe5, 0xe4, 0xad, 0x1a, 0x87, 0x06, 0x6a, 0x6b, 0x6f,
-- 0x48, 0xdd, 0xbb, 0xe2, 0x98, 0xf1, 0x36, 0x51, 0x48, 0x6c, 0x3d, 0x80,
-- 0x2d, 0x0d, 0x45, 0xa8, 0x4e, 0x5c, 0x69, 0x8a, 0x0d, 0x16, 0xbb, 0xc7,
-- 0x61, 0xc0, 0x57, 0xbb, 0x40, 0x44, 0x07, 0x06, 0x03, 0x07, 0x01, 0x3c,
-- 0xf9, 0xe1, 0x87, 0xe0, 0xd8, 0xb1, 0xaf, 0x6e, 0xb3, 0xdf, 0x60, 0xe8,
-- 0xad, 0x62, 0xc0, 0x74, 0x15, 0x77, 0xf1, 0x04, 0xa3, 0x01, 0x25, 0x2e,
-- 0xf6, 0xc7, 0x42, 0x5d, 0x1e, 0xba, 0x08, 0xda, 0xba, 0xb8, 0xca, 0xb0,
-- 0x15, 0x42, 0x39, 0x61, 0x3c, 0x48, 0x7c, 0x4b, 0xfb, 0xc0, 0x8a, 0xbe,
-- 0x8b, 0x03, 0x14, 0xff, 0x33, 0xe2, 0x54, 0xc2, 0xa5, 0xaa, 0xdc, 0x75,
-- 0x42, 0xd2, 0xc1, 0xdd, 0x7c, 0xd8, 0x55, 0xd1, 0x23, 0x46, 0xf5, 0x92,
-- 0x68, 0x68, 0xcc, 0x48, 0x0a, 0x9b, 0xa0, 0x14, 0x09, 0xdb, 0xe0, 0x82,
-- 0x3a, 0xaa, 0x0e, 0x36, 0x38, 0x8a, 0x24, 0x10, 0x9b, 0x3f, 0x42, 0x06,
-- 0x04, 0x04, 0x97, 0xd3, 0x51, 0x84, 0x07, 0x25, 0x35, 0xfc, 0x66, 0xe6,
-- 0x1a, 0x0c, 0x77, 0x8b, 0x1f, 0xef, 0xb0, 0x46, 0xdc, 0xa1, 0xec, 0x46,
-- 0x60, 0xa3, 0x44, 0xf4, 0x80, 0xe6, 0x38, 0x08, 0xe9, 0xff, 0xd9, 0x17,
-- 0xd2, 0x74, 0x75, 0x34, 0x13, 0x25, 0xbd, 0x28, 0x7a, 0x8f, 0x7d, 0xfd,
-- 0x75, 0xb9, 0xc4, 0x0a, 0xf1, 0x86, 0x70, 0xb2, 0x38, 0x9b, 0xdc, 0x0d,
-- 0xd4, 0x86, 0x25, 0x4d, 0x8b, 0x94, 0x00, 0x6a, 0xbc, 0x04, 0xe9, 0xce,
-- 0x80, 0xdf, 0x11, 0x79, 0x82, 0x6d, 0x5e, 0x62, 0x2c, 0x83, 0xb1, 0xad,
-- 0xe9, 0x6b, 0x1c, 0x0c, 0x66, 0xe9, 0xc7, 0x01, 0x1e, 0xab, 0x22, 0xf8,
-- 0xe2, 0xc8, 0xba, 0x28, 0x2d, 0x54, 0xe1, 0x82, 0x99, 0x1e, 0xe9, 0x82,
-- 0xc0, 0x35, 0x8c, 0x8f, 0x29, 0x88, 0xef, 0x86, 0xaf, 0x0f, 0x2f, 0xda,
-- 0x47, 0x0b, 0xb9, 0x30, 0xaa, 0x94, 0x23, 0xfc, 0x9a, 0x0b, 0x63, 0xbc,
-- 0xbf, 0xd8, 0xf4, 0xa5, 0x2b, 0x84, 0x4a, 0x03, 0xeb, 0xa0, 0xb5, 0xde,
-- 0x01, 0xe1, 0x27, 0x01, 0xcf, 0xca, 0x60, 0x81, 0xd1, 0xe7, 0x0e, 0x04,
-- 0x17, 0xdc, 0x79, 0xb2, 0xbd, 0xd3, 0xa7, 0x1f, 0xbb, 0xb0, 0x6f, 0x3d,
-- 0xd9, 0x7e, 0xe2, 0x6c, 0xf6, 0xf6, 0x54, 0x64, 0xb6, 0x47, 0xfa, 0x55,
-- 0x5a, 0x35, 0xeb, 0x72, 0x3c, 0xf9, 0xf8, 0x11, 0x5f, 0x35, 0xe3, 0xcf,
-- 0x06, 0x2e, 0xf4, 0x73, 0x95, 0x8f, 0xc2, 0x06, 0xee, 0x57, 0x1c, 0x86,
-- 0xaa, 0xe5, 0x5c, 0x02, 0x6c, 0xd8, 0xcc, 0x80, 0x98, 0xea, 0x50, 0x3a,
-- 0xb7, 0x82, 0x41, 0x9d, 0x40, 0xd9, 0xfb, 0x52, 0xbe, 0x26, 0x3c, 0xe4,
-- 0x4c, 0xa8, 0x73, 0x0e, 0xe2, 0x9f, 0x48, 0x34, 0xbf, 0xe6, 0xa9, 0x6a,
-- 0x5a, 0xa3, 0x7a, 0xe2, 0xf0, 0x7b, 0x07, 0x20, 0x3d, 0x22, 0x3d, 0x00,
-- 0x48, 0x66, 0x85, 0x8a, 0x06, 0x32, 0xd6, 0x83, 0x44, 0x5d, 0xb7, 0x58,
-- 0x11, 0x73, 0x35, 0x6a, 0xe8, 0xbb, 0x68, 0x50, 0xdd, 0x68, 0x1a, 0xe6,
-- 0xd0, 0x23, 0xd1, 0x7a, 0x2a, 0xf0, 0x2f, 0x72, 0x47, 0x89, 0x44, 0x2a,
-- 0xc3, 0x92, 0x38, 0x50, 0x1f, 0x18, 0xc4, 0xef, 0xfd, 0xe1, 0xbf, 0x28,
-- 0x9c, 0x06, 0xf5, 0xb0, 0x93, 0x2e, 0xe0, 0x9a, 0x86, 0xe0, 0xfa, 0x60,
-- 0x2a, 0x20, 0xce, 0xd5, 0x00, 0xaa, 0xeb, 0x4b, 0xba, 0x9b, 0xb3, 0xc9,
-- 0x4a, 0x47, 0xb2, 0x64, 0xf7, 0xa7, 0x1f, 0xf3, 0xd9, 0x72, 0xe6, 0x73,
-- 0xc9, 0x92, 0x04, 0xef, 0xba, 0xba, 0x89, 0x01, 0x2c, 0x6c, 0x27, 0xa8,
-- 0xa5, 0xc6, 0x8d, 0xe9, 0x0c, 0x55, 0x5e, 0xe0, 0xb7, 0x11, 0x36, 0x93,
-- 0xca, 0x39, 0x67, 0x8e, 0x99, 0x2f, 0x24, 0x44, 0x8b, 0xe3, 0xa3, 0x27,
-- 0x22, 0x19, 0xf2, 0xaa, 0xb6, 0x79, 0x88, 0x0d, 0x03, 0xe5, 0x28, 0x25,
-- 0xe6, 0x44, 0x02, 0xcf, 0x89, 0x33, 0x72, 0xb0, 0x01, 0x35, 0x71, 0x97,
-- 0x4f, 0xea, 0xeb, 0x4e, 0x88, 0x64, 0x5d, 0x47, 0xcc, 0x3b, 0x11, 0x90,
-- 0x0b, 0x8e, 0x05, 0xc6, 0x52, 0x21, 0x2e, 0x70, 0x4b, 0x4c, 0x0c, 0x2e,
-- 0x9f, 0x9b, 0xe4, 0x97, 0xe5, 0x25, 0x43, 0xea, 0x45, 0xf3, 0xb2, 0x84,
-- 0x89, 0xa1, 0x91, 0x2d, 0xb2, 0xb3, 0x6e, 0x04, 0xd5, 0xea, 0x5b, 0xd5,
-- 0xba, 0x04, 0x79, 0x08, 0xf7, 0x8e, 0xc4, 0xf0, 0xb3, 0x15, 0x3a, 0xb9,
-- 0xc9, 0xa7, 0x91, 0xe6, 0x8d, 0xde, 0x89, 0x94, 0xd7, 0x67, 0x92, 0xeb,
-- 0xf4, 0x76, 0x5d, 0xc3, 0x1c, 0x18, 0x1c, 0x2b, 0xd3, 0xa8, 0xc5, 0xbe,
-- 0x82, 0xe4, 0xad, 0x5f, 0x49, 0x37, 0x5f, 0xfb, 0x87, 0x5a, 0xcd, 0xf9,
-- 0x40, 0x47, 0x33, 0xc5, 0x56, 0x7b, 0xc9, 0xee, 0xf6, 0xf6, 0xb7, 0xc4,
-- 0x2f, 0x66, 0x58, 0xe6, 0x9d, 0xaf, 0x3b, 0x57, 0x48, 0x16, 0x08, 0x5b,
-- 0xac, 0xf8, 0x14, 0xe9, 0x2d, 0x0c, 0xa6, 0xba, 0x68, 0x52, 0x49, 0x92,
-- 0x4b, 0xb6, 0x2f, 0x03, 0x1b, 0x97, 0x2c, 0xfe, 0x8a, 0xad, 0x82, 0x39,
-- 0xad, 0x9d, 0x6c, 0x3f, 0x43, 0x6c, 0x3a, 0xef, 0xde, 0x35, 0xfd, 0xc6,
-- 0x72, 0x90, 0x6d, 0x2c, 0xfa, 0xe9, 0x48, 0x3e, 0xa6, 0x4b, 0x94, 0x61,
-- 0xcc, 0x96, 0x25, 0xd7, 0xcc, 0x43, 0x20, 0x21, 0x30, 0x80, 0x60, 0xe3,
-- 0x33, 0xef, 0xc4, 0xbc, 0x10, 0x50, 0x09, 0x08, 0x55, 0x75, 0x63, 0x3a,
-- 0x1d, 0x56, 0x27, 0xa6, 0x42, 0xdc, 0x57, 0x16, 0x69, 0x3b, 0xf8, 0x91,
-- 0x2f, 0x77, 0x0c, 0x40, 0xce, 0x89, 0xf3, 0x9e, 0x89, 0xea, 0x1d, 0x86,
-- 0x90, 0xb5, 0x27, 0xcb, 0x72, 0x88, 0xd6, 0xb2, 0x60, 0x0d, 0x0a, 0x26,
-- 0x39, 0xcc, 0x91, 0x41, 0x5b, 0x17, 0x8a, 0x6c, 0xc8, 0x03, 0x91, 0x96,
-- 0x61, 0x3e, 0x9c, 0xf2, 0x03, 0x53, 0xd6, 0x0e, 0x8b, 0x28, 0x6e, 0x7e,
-- 0xba, 0x80, 0x5d, 0xd2, 0x71, 0xd6, 0x60, 0x50, 0x9c, 0xea, 0x39, 0x06,
-- 0x6c, 0x34, 0xa7, 0x10, 0xfc, 0x8e, 0xa6, 0x14, 0x00, 0x9c, 0x09, 0x9e,
-- 0xc2, 0x4b, 0x22, 0xe0, 0x2f, 0x7e, 0xe2, 0x2a, 0x72, 0xbf, 0x74, 0xd4,
-- 0xcb, 0x4b, 0x35, 0x65, 0x86, 0x8f, 0x92, 0x65, 0xab, 0x94, 0xbe, 0x9c,
-- 0x03, 0xda, 0x91, 0xbc, 0x4e, 0xab, 0x5a, 0xe7, 0xab, 0x60, 0x74, 0x01,
-- 0xd7, 0x7b, 0x73, 0xf0, 0x46, 0xc5, 0xe8, 0x21, 0x0d, 0xbf, 0xa9, 0xc4,
-- 0x02, 0x5b, 0x43, 0x7c, 0xe5, 0xcf, 0x85, 0xc5, 0xc0, 0x45, 0xde, 0xa6,
-- 0x9a, 0x71, 0xca, 0x7c, 0xde, 0xc5, 0xea, 0xa0, 0x09, 0x9b, 0xef, 0x68,
-- 0x59, 0xdd, 0x33, 0x38, 0x8c, 0x18, 0xc1, 0xab, 0xc2, 0x21, 0xe4, 0x61,
-- 0x01, 0x31, 0xfc, 0x38, 0xba, 0x89, 0xf1, 0x4b, 0x24, 0x98, 0xb5, 0x2e,
-- 0x48, 0xdd, 0x4b, 0xcb, 0x92, 0xe4, 0x0e, 0xdd, 0x6a, 0xcd, 0x56, 0xa2,
-- 0xb1, 0xb3, 0x24, 0x0f, 0xeb, 0x86, 0xb3, 0x6b, 0x53, 0xdb, 0xcb, 0x45,
-- 0x47, 0x38, 0x12, 0xa7, 0x2f, 0x46, 0x98, 0x51, 0x8d, 0xdc, 0x60, 0x93,
-- 0xa5, 0x4d, 0x76, 0x7a, 0x48, 0x9c, 0x3f, 0x66, 0xbe, 0xd9, 0x94, 0xfe,
-- 0x35, 0x3b, 0x4a, 0x6e, 0x43, 0x85, 0x87, 0x36, 0xd3, 0xf9, 0x8a, 0x74,
-- 0xd4, 0xe4, 0xcf, 0x1e, 0x06, 0x4d, 0xaa, 0x67, 0x40, 0x44, 0x0c, 0xb4,
-- 0x82, 0x8a, 0xdd, 0xf1, 0xac, 0xf6, 0x78, 0xe9, 0xb2, 0xe8, 0xe4, 0xff,
-- 0xfc, 0x4c, 0x21, 0x1a, 0x92, 0xa8, 0xc6, 0x75, 0x59, 0x4c, 0x96, 0x63,
-- 0xd8, 0x0b, 0x38, 0xf0, 0x8a, 0x4b, 0x5e, 0x8f, 0x04, 0x95, 0xc9, 0x72,
-- 0x84, 0xb9, 0x69, 0x27, 0xdc, 0xc5, 0xd9, 0x33, 0xae, 0x64, 0x0d, 0x1e,
-- 0xc4, 0x1f, 0x62, 0xe1, 0xe4, 0x9b, 0x83, 0xfd, 0x5a, 0x0e, 0xc0, 0xb3,
-- 0x2d, 0x5d, 0xcf, 0x2f, 0x57, 0xa0, 0x10, 0x8b, 0x0f, 0x8d, 0xa5, 0xdb,
-- 0x8f, 0xb5, 0x73, 0xbd, 0xa7, 0x52, 0xb9, 0x19, 0x62, 0xd7, 0x57, 0x1c,
-- 0xed, 0xd9, 0x6a, 0x2f, 0xc4, 0xd6, 0x45, 0x99, 0x78, 0x96, 0x36, 0x1f,
-- 0x74, 0x83, 0xbc, 0xd5, 0xcb, 0x54, 0x78, 0xd6, 0xdc, 0xec, 0xd9, 0xb2,
-- 0xaa, 0xc2, 0x8d, 0x0c, 0x33, 0x80, 0xa6, 0x54, 0x4c, 0xb3, 0x24, 0x10,
-- 0x23, 0x3a, 0xfc, 0xeb, 0xc4, 0x73, 0x86, 0x01, 0x6c, 0x52, 0x10, 0x58,
-- 0xcf, 0x80, 0x30, 0x3c, 0x52, 0x03, 0xc8, 0x1f, 0x71, 0x26, 0x40, 0xf2,
-- 0xd7, 0x62, 0xa4, 0xda, 0x0a, 0x4b, 0xdc, 0x5d, 0x48, 0x55, 0x97, 0x08,
-- 0x37, 0x26, 0x1e, 0x4b, 0xfc, 0x5d, 0xa2, 0x12, 0x78, 0x40, 0xf3, 0xac,
-- 0x66, 0x6e, 0x83, 0x60, 0x64, 0x98, 0x2d, 0x12, 0xad, 0x4f, 0x8c, 0xf8,
-- 0x52, 0xe6, 0x01, 0x6c, 0x35, 0x6a, 0x35, 0xf7, 0xd9, 0xf0, 0xc9, 0xee,
-- 0x70, 0xbb, 0xa9, 0xb2, 0xa5, 0x63, 0x56, 0x1e, 0xaa, 0xc4, 0xd2, 0x2c,
-- 0x90, 0x3d, 0xe4, 0xcb, 0xa2, 0x5b, 0x5c, 0x17, 0xaf, 0xcf, 0x20, 0xf6,
-- 0xf6, 0xa9, 0xfc, 0x9c, 0x31, 0x70, 0x58, 0x85, 0x05, 0xa4, 0xf6, 0x96,
-- 0x65, 0x3a, 0xbe, 0x37, 0x50, 0x52, 0x1f, 0x68, 0xc4, 0x4d, 0x14, 0x80,
-- 0x11, 0x90, 0xa7, 0x23, 0xac, 0xed, 0xb9, 0x1b, 0x04, 0x73, 0xed, 0xbc,
-- 0x12, 0x4c, 0x93, 0x56, 0xfd, 0x13, 0x3d, 0xbe, 0x03, 0x6b, 0x6d, 0x85,
-- 0x12, 0xf1, 0x0f, 0x64, 0xb9, 0x6c, 0x2e, 0x18, 0x30, 0x9d, 0x25, 0x2f,
-- 0x57, 0xd4, 0x27, 0xdd, 0x38, 0x7f, 0x0b, 0x83, 0xa3, 0x93, 0xd3, 0x52,
-- 0x83, 0x88, 0x0a, 0xab, 0xc1, 0xe6, 0x55, 0x33, 0xbc, 0xce, 0x07, 0x89,
-- 0x74, 0xf0, 0xdb, 0xb6, 0x09, 0x5c, 0x43, 0xcf, 0x37, 0xc4, 0x5a, 0x51,
-- 0xdf, 0x6f, 0xba, 0xc8, 0x7c, 0x81, 0x6e, 0x86, 0x00, 0xa0, 0xc6, 0x8a,
-- 0xce, 0xa2, 0x60, 0x95, 0x66, 0x2b, 0x97, 0x19, 0x23, 0x74, 0x08, 0x0f,
-- 0x51, 0x6f, 0xaa, 0x15, 0xca, 0x6c, 0xcf, 0x2a, 0x34, 0x65, 0x3c, 0x6b,
-- 0xd6, 0x70, 0xc5, 0x9a, 0x80, 0x6c, 0x7f, 0xc5, 0x9a, 0x34, 0x97, 0xc4,
-- 0x33, 0x2e, 0x91, 0x08, 0x60, 0x41, 0x53, 0xa3, 0x7d, 0x9c, 0x97, 0x5c,
-- 0x19, 0x16, 0xee, 0xc3, 0xc3, 0xdc, 0x6e, 0x0f, 0xf3, 0x23, 0x2a, 0xe5,
-- 0xc0, 0x5e, 0xf5, 0x12, 0xd2, 0xd7, 0x17, 0x0f, 0x44, 0x1c, 0x99, 0x64,
-- 0x8d, 0xc7, 0x37, 0x4c, 0x00, 0xdd, 0x0c, 0xc0, 0x5c, 0xa5, 0x98, 0xbc,
-- 0xc2, 0xb1, 0x40, 0x9b, 0xef, 0xba, 0x2b, 0xf1, 0xa8, 0xb7, 0x3c, 0xe4,
-- 0xcd, 0x9c, 0x17, 0xd0, 0x25, 0x8e, 0x59, 0xbf, 0x09, 0xc8, 0xb0, 0xa2,
-- 0xc2, 0x3b, 0xc2, 0xd3, 0x21, 0xbd, 0x84, 0xba, 0x20, 0x80, 0xd3, 0x61,
-- 0x1e, 0xc9, 0x3e, 0x22, 0xf8, 0x87, 0xb4, 0xa6, 0xe7, 0x4f, 0x62, 0x73,
-- 0xdc, 0xc9, 0xc5, 0xe1, 0x1e, 0xc4, 0x48, 0x9f, 0x75, 0x61, 0x3a, 0xb3,
-- 0x04, 0xeb, 0x70, 0xa2, 0x24, 0x43, 0x08, 0x30, 0xc0, 0x60, 0x38, 0x3b,
-- 0x51, 0xe2, 0x3a, 0x70, 0x25, 0x90, 0x12, 0x28, 0xe6, 0xd8, 0x7a, 0x25,
-- 0xc6, 0x8f, 0x95, 0x0a, 0xf5, 0xda, 0x5b, 0x57, 0x31, 0xb6, 0x4b, 0xc9,
-- 0xd4, 0x43, 0xf2, 0x9b, 0x90, 0x67, 0xb4, 0x50, 0xaa, 0x66, 0x41, 0xcc,
-- 0x72, 0x56, 0x50, 0x2e, 0xe0, 0x98, 0x95, 0x91, 0x5f, 0x16, 0xc0, 0xc6,
-- 0x6c, 0x3f, 0x46, 0xee, 0xcb, 0x85, 0x61, 0xbc, 0x5c, 0xb6, 0x72, 0xd3,
-- 0x40, 0xbc, 0xe5, 0x78, 0x51, 0x3f, 0x46, 0xbc, 0xe7, 0x2e, 0xfe, 0xab,
-- 0x49, 0xba, 0x7d, 0x8f, 0x56, 0x2a, 0x17, 0xa9, 0x04, 0xe9, 0xc0, 0x5a,
-- 0xdd, 0x55, 0xe5, 0x4f, 0x2c, 0xc7, 0x6a, 0xdc, 0x15, 0xcb, 0x31, 0xa8,
-- 0xdd, 0x46, 0x67, 0x11, 0x79, 0xe3, 0x7c, 0x91, 0x07, 0x58, 0x86, 0x2e,
-- 0xfc, 0x2c, 0xf2, 0x7c, 0x4e, 0xd9, 0x42, 0x8b, 0x26, 0xdc, 0x61, 0x2a,
-- 0x7c, 0x5e, 0xa8, 0xb4, 0x5d, 0x0c, 0x1f, 0x38, 0x1a, 0xe1, 0xc0, 0xc2,
-- 0x71, 0xcd, 0x13, 0xd7, 0xa2, 0x14, 0x07, 0x31, 0x06, 0x94, 0x6c, 0x7c,
-- 0x77, 0xf6, 0xe6, 0x47, 0x07, 0x5f, 0xb4, 0xd9, 0x59, 0x61, 0xc3, 0xcf,
-- 0x20, 0x2c, 0xa0, 0xec, 0x2e, 0x00, 0xbd, 0x11, 0x1a, 0x6b, 0xe7, 0xff,
-- 0x88, 0x89, 0x6d, 0x52, 0x20, 0xda, 0x60, 0x83, 0x6b, 0x17, 0x72, 0x21,
-- 0x55, 0x95, 0xda, 0x9e, 0x0c, 0x9f, 0xc1, 0x2c, 0xfe, 0xe6, 0xe0, 0xd9,
-- 0x93, 0xdd, 0x9d, 0xcd, 0x56, 0xe1, 0xf7, 0xa7, 0x9f, 0x32, 0xcd, 0xe6,
-- 0x96, 0x65, 0x1f, 0x17, 0x4c, 0x30, 0x1b, 0x87, 0x3f, 0x9c, 0xbe, 0x0b,
-- 0x26, 0xe8, 0xf6, 0x24, 0x4e, 0x66, 0x9e, 0xb7, 0x00, 0x14, 0xfd, 0x1c,
-- 0xbd, 0xe1, 0x25, 0xa2, 0x0a, 0x97, 0x4c, 0xdb, 0xce, 0xef, 0x7d, 0x53,
-- 0xe6, 0x7c, 0x08, 0x7a, 0xbc, 0x1e, 0xbd, 0x63, 0x12, 0x3f, 0x48, 0xae,
-- 0x3c, 0x61, 0xf0, 0x96, 0xac, 0xd7, 0xae, 0x9d, 0xfc, 0x34, 0xe6, 0x6f,
-- 0x6a, 0x4c, 0x83, 0x36, 0xd0, 0xa1, 0x07, 0x18, 0x4f, 0xf3, 0x19, 0xeb,
-- 0x4e, 0x90, 0x63, 0xf9, 0xd5, 0x19, 0x92, 0x2a, 0x15, 0x44, 0x5d, 0x29,
-- 0x4d, 0x92, 0x58, 0x23, 0x30, 0x07, 0x67, 0x42, 0x76, 0x56, 0xd1, 0xd5,
-- 0xd0, 0x78, 0x26, 0xf0, 0xf8, 0x12, 0x10, 0x71, 0xcd, 0x20, 0x67, 0x6e,
-- 0x73, 0x03, 0xaa, 0x38, 0x51, 0x20, 0x49, 0x47, 0xd5, 0xb2, 0x9c, 0x2c,
-- 0x67, 0x34, 0xff, 0xaf, 0xee, 0x2d, 0xe4, 0xa0, 0x6f, 0x25, 0xc0, 0x67,
-- 0x52, 0xe1, 0x29, 0xba, 0x21, 0x24, 0x80, 0xf3, 0xd9, 0x76, 0xa3, 0xbd,
-- 0x21, 0x56, 0xa1, 0x65, 0xbf, 0x1a, 0xec, 0xb8, 0x9c, 0x75, 0x56, 0xde,
-- 0x60, 0x7f, 0x69, 0xfb, 0xc1, 0xba, 0xaa, 0x6e, 0xff, 0x23, 0xa5, 0x8a,
-- 0xac, 0x4e, 0x59, 0x70, 0x7b, 0x24, 0x3a, 0xa8, 0x0e, 0x61, 0xe7, 0xc4,
-- 0x63, 0x28, 0xa5, 0x1f, 0x51, 0xaf, 0x86, 0xef, 0x7f, 0x65, 0x90, 0x0c,
-- 0xf3, 0x11, 0xd3, 0xd6, 0x5b, 0xed, 0xc5, 0xec, 0x54, 0x1b, 0x60, 0x91,
-- 0x2e, 0x4f, 0xf1, 0x89, 0x14, 0xa5, 0x48, 0x36, 0x18, 0x1f, 0xf4, 0xd9,
-- 0xe7, 0xcf, 0x9e, 0x6e, 0x36, 0x83, 0x08, 0x36, 0x3b, 0x1c, 0x01, 0x58,
-- 0xb5, 0x65, 0xe5, 0xf0, 0x08, 0x66, 0x39, 0xca, 0xa7, 0x80, 0xce, 0xd5,
-- 0xa3, 0x20, 0x85, 0x28, 0xa0, 0x4a, 0xc1, 0x20, 0xa0, 0x8e, 0xd1, 0xc8,
-- 0x1c, 0xc1, 0x7d, 0x69, 0xf5, 0x95, 0x64, 0xc3, 0x32, 0xcd, 0xdd, 0x8d,
-- 0xe1, 0x92, 0x51, 0x71, 0x5b, 0xc9, 0xf5, 0xe0, 0xc2, 0xad, 0x37, 0xd9,
-- 0x84, 0xd1, 0x65, 0x71, 0x83, 0xa8, 0x18, 0xd4, 0x35, 0x42, 0x05, 0x9f,
-- 0x22, 0xb8, 0x88, 0x04, 0x9a, 0xcc, 0xd2, 0x39, 0xe5, 0xae, 0x4b, 0xba,
-- 0xa0, 0xc7, 0x16, 0xd3, 0x4c, 0x82, 0xc5, 0xf9, 0xf6, 0x74, 0x0b, 0x29,
-- 0x51, 0x83, 0x80, 0x77, 0xe1, 0xfd, 0xb7, 0x16, 0x34, 0xe8, 0xc0, 0xd7,
-- 0x11, 0x8a, 0x8c, 0x25, 0xb3, 0x6c, 0x66, 0x50, 0x9f, 0x72, 0xab, 0x17,
-- 0xa5, 0x2f, 0xc7, 0x20, 0xea, 0xb8, 0x5c, 0xd1, 0x88, 0x60, 0x5a, 0x55,
-- 0x10, 0xc1, 0x57, 0xf3, 0xd4, 0x04, 0xe6, 0xc6, 0xc0, 0x56, 0xc0, 0xaf,
-- 0x3b, 0x62, 0x0b, 0x53, 0x0b, 0xd5, 0x24, 0x8e, 0x80, 0x36, 0xfb, 0xdd,
-- 0x11, 0x65, 0x5c, 0x94, 0x40, 0x3a, 0x6d, 0x2d, 0xc3, 0x8a, 0xc1, 0x4b,
-- 0x5d, 0x02, 0x64, 0x84, 0xae, 0xaa, 0x79, 0x9d, 0x6c, 0x60, 0xbc, 0x5b,
-- 0x5b, 0x9b, 0x8f, 0x8e, 0x59, 0x1f, 0x7c, 0x6c, 0x8c, 0xa7, 0x52, 0xbc,
-- 0x94, 0x17, 0xd7, 0xec, 0x12, 0x44, 0x77, 0x7e, 0x10, 0xdc, 0x29, 0x6f,
-- 0x98, 0x80, 0x41, 0x4a, 0x50, 0x93, 0x8b, 0x09, 0xbd, 0x8b, 0xd0, 0x3e,
-- 0xdc, 0x3a, 0xcb, 0xec, 0x9a, 0x13, 0x57, 0xc1, 0x55, 0x12, 0x55, 0x95,
-- 0x27, 0x58, 0xa8, 0x36, 0x5b, 0x1f, 0xa7, 0x51, 0x6d, 0x9d, 0x79, 0x0b,
-- 0x5f, 0x3e, 0x98, 0x9f, 0xd8, 0xca, 0xbd, 0x83, 0x4b, 0x8e, 0x85, 0xe0,
-- 0xb5, 0x98, 0x23, 0x2c, 0x66, 0xc5, 0xf6, 0x74, 0xab, 0xd8, 0x52, 0x8c,
-- 0xd4, 0x22, 0x0f, 0xf2, 0xe1, 0x71, 0x20, 0x19, 0xf9, 0xbc, 0x4b, 0x6a,
-- 0xf5, 0xfe, 0x74, 0x69, 0x93, 0x94, 0xb4, 0x1b, 0x3f, 0x6f, 0xc1, 0x5c,
-- 0xb2, 0x64, 0x15, 0x0f, 0x89, 0x80, 0x34, 0x88, 0xee, 0xac, 0x6a, 0x47,
-- 0xdd, 0x58, 0x33, 0xab, 0x24, 0x84, 0x4f, 0x1b, 0xcb, 0xd9, 0x97, 0x43,
-- 0x8a, 0x40, 0xdb, 0x2e, 0x21, 0x18, 0xc8, 0xd6, 0x0f, 0x8a, 0xfd, 0x9f,
-- 0xb1, 0x56, 0x4b, 0xc3, 0x8a, 0x8b, 0x6d, 0x4f, 0xf3, 0x91, 0x5b, 0x68,
-- 0x0d, 0x9b, 0x19, 0x06, 0x37, 0xe8, 0x9c, 0x8d, 0x04, 0xa4, 0x4b, 0x97,
-- 0xe3, 0xc8, 0x2e, 0x80, 0x84, 0x36, 0xc9, 0x2c, 0xa8, 0xa4, 0x00, 0x37,
-- 0x2f, 0xd2, 0x10, 0x0f, 0x53, 0xf7, 0x1f, 0xf4, 0x97, 0xc2, 0x45, 0x42,
-- 0x6f, 0x86, 0x87, 0xa2, 0x23, 0xe2, 0x75, 0xbd, 0x72, 0x21, 0xba, 0x1a,
-- 0xb0, 0xc1, 0x4c, 0x12, 0x20, 0x71, 0x4e, 0x02, 0x4a, 0xbc, 0xef, 0xce,
-- 0x01, 0x12, 0xdf, 0x2f, 0xa2, 0xd8, 0xb7, 0xb1, 0x0b, 0x3c, 0x91, 0xf0,
-- 0x76, 0xe4, 0x60, 0x4b, 0xec, 0xb7, 0x77, 0xa2, 0xba, 0xa2, 0xf4, 0xa1,
-- 0x13, 0x49, 0x0a, 0xea, 0x74, 0x8c, 0xae, 0xa5, 0x71, 0x8a, 0xef, 0x10,
-- 0x73, 0xdc, 0xa0, 0x5b, 0x81, 0xb9, 0x79, 0xbd, 0xd8, 0xd8, 0xd9, 0x44,
-- 0x77, 0x56, 0x5b, 0xc0, 0x70, 0x4d, 0x3a, 0x33, 0x9f, 0x2c, 0xd2, 0x84,
-- 0xcb, 0x09, 0x1a, 0x16, 0x29, 0x33, 0x3e, 0x60, 0x0a, 0x23, 0x8a, 0xf4,
-- 0x52, 0xce, 0x83, 0x50, 0x87, 0x86, 0xad, 0xb0, 0x0b, 0xa2, 0x83, 0x38,
-- 0x05, 0x37, 0x65, 0xc1, 0xa1, 0xce, 0x95, 0x54, 0x79, 0xda, 0xc8, 0x9d,
-- 0x9c, 0x2c, 0xd7, 0x83, 0x95, 0x3e, 0xa4, 0xd5, 0x9b, 0x4e, 0x06, 0x48,
-- 0x65, 0xba, 0x2a, 0x8b, 0x18, 0xcb, 0x8e, 0xd3, 0x44, 0xf4, 0x06, 0x11,
-- 0x07, 0x44, 0x67, 0xb9, 0xc9, 0x1e, 0x47, 0xe5, 0xf7, 0xdc, 0x0d, 0x1f,
-- 0xc4, 0xfe, 0xb7, 0xcd, 0xc2, 0x8d, 0x2d, 0x8d, 0xc8, 0x74, 0x3f, 0xf9,
-- 0xdb, 0x32, 0x27, 0xb2, 0xe6, 0xbd, 0x45, 0x70, 0x15, 0x42, 0xbc, 0x33,
-- 0xe7, 0x90, 0x24, 0xee, 0xc1, 0x2e, 0x57, 0x68, 0x5e, 0x30, 0x47, 0x42,
-- 0xa7, 0x37, 0x2a, 0xeb, 0x28, 0xab, 0x09, 0x5b, 0xa1, 0x09, 0x04, 0x80,
-- 0xb1, 0x2c, 0x54, 0xdc, 0x44, 0x54, 0x91, 0xb8, 0x99, 0x45, 0x72, 0x66,
-- 0xd6, 0x2e, 0x54, 0xb0, 0xaa, 0xb8, 0xc2, 0xfa, 0xec, 0x9e, 0x2f, 0xb2,
-- 0xf5, 0x66, 0x95, 0x85, 0xf5, 0x8a, 0xed, 0x39, 0xf5, 0xba, 0xad, 0x6f,
-- 0x2b, 0xa5, 0x24, 0x86, 0x4b, 0x5f, 0xd1, 0xb5, 0x90, 0xb6, 0x74, 0xe1,
-- 0x5b, 0x97, 0xc6, 0xfd, 0x11, 0x7c, 0xd7, 0x97, 0xb0, 0xd7, 0xd1, 0x92,
-- 0x5d, 0xdf, 0xad, 0xa6, 0x5f, 0x0b, 0xb7, 0x16, 0xa9, 0x40, 0x9e, 0xd0,
-- 0x22, 0x50, 0x1e, 0xe3, 0x81, 0xd1, 0x3f, 0xb2, 0x74, 0x36, 0xe4, 0x52,
-- 0x6a, 0x8a, 0xa0, 0x86, 0xfa, 0x8d, 0x55, 0x2c, 0xd4, 0x2d, 0xa5, 0xa6,
-- 0x73, 0xbf, 0x09, 0x90, 0xdb, 0x0a, 0x95, 0x92, 0x6e, 0x38, 0xff, 0x30,
-- 0x6c, 0xbe, 0xcb, 0xfd, 0x88, 0xd7, 0x5d, 0xae, 0xb9, 0x6a, 0xbe, 0x56,
-- 0xfe, 0x5c, 0x50, 0x5e, 0xa4, 0x09, 0x07, 0x4d, 0xcd, 0xd0, 0x60, 0xd7,
-- 0xcb, 0xf9, 0x0d, 0x0d, 0x21, 0x8e, 0xcd, 0x34, 0x1b, 0x75, 0xce, 0x67,
-- 0x9b, 0x08, 0x44, 0x41, 0x8b, 0x5c, 0xa5, 0x72, 0xb4, 0xc0, 0x00, 0x33,
-- 0xb7, 0x10, 0x4b, 0x22, 0xa8, 0xff, 0xae, 0xd1, 0xe9, 0x75, 0x27, 0xa3,
-- 0x72, 0x0b, 0xd8, 0x9d, 0x04, 0xa5, 0x06, 0x19, 0x8f, 0x83, 0x3e, 0xcf,
-- 0xae, 0x10, 0x25, 0x12, 0xa4, 0x43, 0x7a, 0x24, 0x08, 0x28, 0x0a, 0x56,
-- 0x16, 0x27, 0x3a, 0xb2, 0xcb, 0x4a, 0x6a, 0x13, 0xe9, 0xb6, 0x26, 0x28,
-- 0xb6, 0xed, 0x51, 0xbe, 0x3a, 0x46, 0xa2, 0x7c, 0x78, 0xd0, 0x51, 0x25,
-- 0xeb, 0xa2, 0x8d, 0x66, 0x56, 0x85, 0x38, 0x8f, 0x78, 0xad, 0xdf, 0x40,
-- 0x7a, 0x14, 0xc4, 0x30, 0x89, 0x1f, 0x5e, 0x51, 0x64, 0x7d, 0x83, 0x74,
-- 0x8c, 0x62, 0xba, 0x94, 0xf2, 0x2c, 0x6c, 0x14, 0xe3, 0x58, 0xf2, 0x4d,
-- 0x3b, 0x4d, 0x72, 0xfe, 0x9c, 0xdb, 0xd9, 0x98, 0x58, 0x27, 0xf8, 0x1e,
-- 0xdc, 0xac, 0x61, 0x85, 0x20, 0x09, 0x58, 0x33, 0xed, 0x9d, 0x95, 0x80,
-- 0xa0, 0xb9, 0x05, 0xa2, 0xe1, 0x6e, 0x0b, 0x63, 0xb3, 0x91, 0x05, 0xc9,
-- 0x94, 0x89, 0x70, 0x3d, 0x2c, 0x0e, 0x1d, 0xa2, 0x81, 0xaf, 0x7d, 0x12,
-- 0xc2, 0x7f, 0x43, 0xe1, 0xe0, 0xce, 0x1e, 0x74, 0x43, 0x3f, 0x10, 0x9f,
-- 0xd4, 0xb9, 0xd6, 0xbe, 0xd8, 0x2d, 0x7c, 0xfe, 0x2a, 0xf6, 0xeb, 0xd0,
-- 0x54, 0x5a, 0xbf, 0xc7, 0xa8, 0x66, 0x4b, 0xb6, 0x13, 0x47, 0xa1, 0x98,
-- 0xb4, 0x2b, 0xd3, 0xa5, 0xa0, 0xe8, 0xb2, 0xcf, 0xd1, 0x8b, 0xe8, 0xe9,
-- 0x88, 0x37, 0x67, 0x74, 0xef, 0xe6, 0x69, 0x29, 0xb6, 0xc8, 0x85, 0x35,
-- 0x7d, 0x3a, 0x26, 0x0f, 0x7b, 0xac, 0xd5, 0xcf, 0x77, 0xca, 0x5b, 0x23,
-- 0xb2, 0x10, 0x3b, 0x76, 0x08, 0x08, 0x70, 0xa3, 0xec, 0xc4, 0x98, 0xec,
-- 0xb2, 0xc3, 0x66, 0xea, 0x06, 0x63, 0xe2, 0x3a, 0xdb, 0x04, 0x52, 0x2b,
-- 0x9a, 0x2b, 0x96, 0x68, 0x79, 0xdd, 0xc2, 0xe2, 0x8b, 0x66, 0x16, 0xc6,
-- 0xdc, 0x02, 0x6d, 0x57, 0x61, 0xd2, 0x69, 0x61, 0xbb, 0xa4, 0x11, 0x95,
-- 0x1b, 0x5d, 0xc2, 0x7c, 0x41, 0x35, 0x9e, 0x88, 0x94, 0x0a, 0x20, 0xe4,
-- 0x71, 0xfc, 0x08, 0x6d, 0x12, 0xc9, 0x80, 0x82, 0x41, 0xf9, 0x36, 0x1f,
-- 0x97, 0x45, 0x55, 0x5c, 0x8a, 0xd9, 0xd0, 0x2e, 0x31, 0x91, 0x4c, 0xf2,
-- 0x12, 0x48, 0x77, 0x29, 0xe7, 0x51, 0xc5, 0x72, 0x85, 0xea, 0xcc, 0xbc,
-- 0x57, 0x88, 0x73, 0x5d, 0x94, 0xf9, 0x4c, 0x39, 0x12, 0xfb, 0x8b, 0x6b,
-- 0x71, 0x97, 0xa7, 0xae, 0xa0, 0x3d, 0xe4, 0x01, 0x0b, 0xdc, 0x7e, 0xf6,
-- 0x70, 0x28, 0x15, 0x6f, 0x85, 0x54, 0xad, 0x77, 0x3e, 0xde, 0x89, 0x96,
-- 0x0c, 0x96, 0x38, 0x34, 0xb5, 0x47, 0xdb, 0x6b, 0xdd, 0xa3, 0xb3, 0x08,
-- 0x16, 0x14, 0xca, 0x80, 0x6b, 0x39, 0xac, 0x0b, 0xcf, 0x41, 0x8e, 0x47,
-- 0x87, 0x17, 0x6f, 0x92, 0x49, 0x49, 0x8a, 0x9e, 0xfc, 0x1c, 0x90, 0x28,
-- 0xfb, 0xf7, 0x34, 0xc2, 0xa4, 0xab, 0x16, 0xbc, 0x49, 0x03, 0x56, 0x89,
-- 0x06, 0xdb, 0x4f, 0x87, 0xf5, 0xc7, 0xce, 0x78, 0x65, 0x17, 0x55, 0x01,
-- 0x0e, 0x06, 0x5e, 0xea, 0xb7, 0x4b, 0x01, 0xbb, 0x4a, 0x44, 0xee, 0x7f,
-- 0xbc, 0x8f, 0x60, 0x7b, 0xbb, 0xc0, 0xe9, 0x85, 0x2d, 0xe2, 0x79, 0x4f,
-- 0x25, 0x9f, 0x1a, 0xfc, 0xdd, 0x19, 0xfb, 0x2d, 0xe1, 0xde, 0xcd, 0x80,
-- 0xee, 0xb8, 0x8e, 0xe9, 0xc3, 0xe1, 0xdd, 0x16, 0xce, 0x8d, 0x05, 0x84,
-- 0x86, 0x22, 0xf3, 0xd2, 0xaf, 0x3a, 0x6a, 0xdf, 0x22, 0x24, 0xb1, 0x41,
-- 0x9b, 0xdd, 0x91, 0x5c, 0x71, 0x0d, 0x05, 0x41, 0x62, 0x43, 0x08, 0x3f,
-- 0xe8, 0xc0, 0x38, 0x75, 0x4a, 0x92, 0x3e, 0xbb, 0x4a, 0x97, 0x06, 0x70,
-- 0xb6, 0xb2, 0x3e, 0x33, 0xf0, 0xa0, 0x0d, 0xa4, 0xba, 0x45, 0x65, 0xb0,
-- 0x84, 0xbb, 0xda, 0xcd, 0x6c, 0x04, 0x53, 0xbf, 0x6a, 0xdb, 0x8c, 0xba,
-- 0x3e, 0x20, 0x86, 0xbd, 0xb7, 0x2e, 0x74, 0x9e, 0xcd, 0xb9, 0xe2, 0xa7,
-- 0x50, 0xb7, 0x8f, 0xe1, 0x8e, 0xc4, 0x72, 0x8f, 0x6a, 0x32, 0x58, 0x76,
-- 0x8f, 0x8e, 0x78, 0x21, 0xcb, 0xb1, 0xe2, 0x36, 0xd3, 0xf2, 0xe8, 0xc3,
-- 0x7f, 0x46, 0x75, 0x87, 0x90, 0xf9, 0x04, 0x49, 0x44, 0x0f, 0x09, 0x54,
-- 0xca, 0xce, 0x7d, 0xc2, 0x91, 0x3a, 0x90, 0x5c, 0xdc, 0xef, 0xc5, 0xc1,
-- 0x69, 0xe0, 0x2f, 0xef, 0xc7, 0xf6, 0xa5, 0xd1, 0xbd, 0xcf, 0xc5, 0x45,
-- 0x12, 0xe4, 0xdc, 0xb5, 0x3e, 0xfb, 0x27, 0x0a, 0x19, 0x7e, 0x06, 0x81,
-- 0x9c, 0xe1, 0x3e, 0x6c, 0x2d, 0x8d, 0x62, 0xf6, 0xe4, 0x93, 0xee, 0xda,
-- 0xda, 0xba, 0x42, 0x56, 0x97, 0x41, 0xd7, 0x88, 0xf1, 0x56, 0x0c, 0x1b,
-- 0xe9, 0xe8, 0x35, 0x8d, 0x86, 0x45, 0x5e, 0xd6, 0xf5, 0xbd, 0x7d, 0x32,
-- 0x16, 0xd5, 0xbd, 0xfb, 0x01, 0x57, 0x24, 0x4a, 0x08, 0x07, 0xf5, 0xa5,
-- 0x19, 0x58, 0x2d, 0x44, 0x0c, 0x95, 0x48, 0x22, 0x03, 0xe6, 0xea, 0xc6,
-- 0x4d, 0x65, 0xc7, 0x4a, 0xa9, 0x05, 0x37, 0xaf, 0x97, 0xa5, 0xa4, 0x8e,
-- 0x2b, 0xf0, 0x8b, 0x82, 0xfe, 0x96, 0x19, 0x8f, 0xb9, 0x39, 0xe0, 0xaa,
-- 0x83, 0x15, 0x21, 0x5d, 0x2f, 0x9b, 0x69, 0xe8, 0xf9, 0xa8, 0x2c, 0x6e,
-- 0xe8, 0xb4, 0xf2, 0x6b, 0xd0, 0x50, 0x78, 0xf5, 0xe5, 0x36, 0x30, 0x2d,
-- 0x9e, 0xee, 0x6e, 0xc1, 0x4a, 0xec, 0xc0, 0x46, 0x75, 0xf5, 0x0f, 0x34,
-- 0x79, 0xcb, 0x8b, 0x9d, 0x82, 0x50, 0x8d, 0xfc, 0x6a, 0x63, 0x97, 0x70,
-- 0x56, 0x70, 0x29, 0x5e, 0x1f, 0x18, 0x17, 0xbb, 0x82, 0x15, 0x59, 0xfc,
-- 0x9f, 0x47, 0x43, 0x8e, 0x2c, 0x42, 0x1a, 0xea, 0xd8, 0xf2, 0x06, 0x31,
-- 0x09, 0xdb, 0x7f, 0x49, 0x54, 0x25, 0x0c, 0x9d, 0x8d, 0xa0, 0x6d, 0x2b,
-- 0x3c, 0x40, 0xfa, 0x07, 0x01, 0x34, 0x09, 0x3c, 0x02, 0xa2, 0xf9, 0x71,
-- 0x00, 0x87, 0xc4, 0x3b, 0x4c, 0x7c, 0x55, 0x91, 0x54, 0x6e, 0x13, 0x58,
-- 0x34, 0x62, 0x81, 0x8e, 0xc5, 0x5f, 0x27, 0x1e, 0x89, 0x0a, 0x0b, 0x3e,
-- 0xc1, 0xdb, 0x03, 0x50, 0xaa, 0x3c, 0x28, 0x4c, 0xf5, 0xaf, 0x21, 0xec,
-- 0x83, 0xf4, 0x14, 0x29, 0x6f, 0x82, 0xb4, 0xed, 0x02, 0x4a, 0x24, 0x9f,
-- 0xcc, 0xa5, 0x57, 0x32, 0x32, 0x6b, 0xc8, 0x33, 0x30, 0xb4, 0x61, 0x72,
-- 0xc8, 0xd1, 0x21, 0x1d, 0x1a, 0xa5, 0x25, 0xe3, 0x61, 0x8e, 0xb9, 0xe2,
-- 0x1d, 0x8a, 0xef, 0x47, 0xf5, 0xf3, 0xd4, 0xfc, 0x3a, 0x06, 0x3c, 0xe3,
-- 0x0a, 0x50, 0x76, 0x6a, 0xd7, 0x55, 0xad, 0x00, 0x6c, 0x9a, 0x53, 0xef,
-- 0x3e, 0x72, 0x18, 0xdb, 0x6f, 0x7c, 0x7c, 0x6f, 0x5f, 0xac, 0x75, 0xa2,
-- 0xf8, 0x76, 0x88, 0xea, 0x18, 0x4d, 0xe2, 0x1f, 0xea, 0x07, 0xbf, 0xef,
-- 0x7d, 0xbe, 0x6d, 0x71, 0xab, 0x6c, 0x1e, 0x0d, 0x9f, 0x41, 0xb0, 0x4e,
-- 0x87, 0xc2, 0x06, 0x84, 0xb6, 0xa2, 0x76, 0x8f, 0xb6, 0xa1, 0xf1, 0x5f,
-- 0x0c, 0x9f, 0x6e, 0x36, 0xe8, 0xa5, 0x9e, 0xce, 0x62, 0x09, 0xf0, 0xdd,
-- 0xc5, 0xf1, 0xdb, 0x24, 0x92, 0xfc, 0xc4, 0x36, 0x81, 0xef, 0x9a, 0x5f,
-- 0xfd, 0x57, 0x24, 0x40, 0xfa, 0xe2, 0xe8, 0xe8, 0x1c, 0xf2, 0x9f, 0xa6,
-- 0xd8, 0x44, 0x31, 0x78, 0x22, 0xf7, 0x81, 0x04, 0x49, 0xf6, 0xcb, 0x6a,
-- 0x96, 0x35, 0xcc, 0x7e, 0xca, 0x89, 0xae, 0xfc, 0x52, 0x36, 0xc8, 0xe6,
-- 0xa4, 0xda, 0x67, 0xd0, 0x92, 0x19, 0xf2, 0x7c, 0x0a, 0xae, 0xb4, 0xc8,
-- 0x8a, 0x0e, 0x1b, 0xba, 0x0c, 0xc0, 0x58, 0x8a, 0xc2, 0x63, 0xf3, 0x5d,
-- 0x31, 0x4a, 0x2b, 0x07, 0xf2, 0x93, 0xa3, 0x5c, 0x01, 0x8b, 0x14, 0x6a,
-- 0xf8, 0xba, 0xc9, 0x91, 0x4d, 0x1d, 0x65, 0x19, 0x5b, 0x25, 0xbc, 0x10,
-- 0x24, 0x18, 0xe8, 0xe7, 0x93, 0xa2, 0x84, 0x43, 0x2a, 0x00, 0x79, 0x65,
-- 0x64, 0xf1, 0x25, 0x02, 0x25, 0x79, 0x78, 0xf7, 0x1d, 0xba, 0xd1, 0x75,
-- 0x21, 0x41, 0x8a, 0x58, 0x66, 0xe6, 0x4a, 0x92, 0x0d, 0x86, 0x50, 0x7c,
-- 0x05, 0x01, 0x05, 0x41, 0x78, 0x56, 0x12, 0x6e, 0x54, 0x57, 0x30, 0xbd,
-- 0xab, 0x56, 0xee, 0x72, 0x52, 0xd4, 0xad, 0xf1, 0x3a, 0xbf, 0x5a, 0x05,
-- 0xd6, 0x8d, 0x00, 0xaa, 0xb6, 0x8c, 0xc9, 0x23, 0x72, 0xe2, 0xa5, 0xb0,
-- 0x99, 0x76, 0x4d, 0x88, 0x0e, 0xd4, 0x85, 0x86, 0x70, 0x49, 0xd4, 0xf6,
-- 0x60, 0xc1, 0xcf, 0x87, 0xa5, 0x4a, 0x5c, 0x20, 0x26, 0x52, 0x42, 0x58,
-- 0x64, 0x69, 0x31, 0xb2, 0x43, 0x07, 0xb2, 0xe3, 0xea, 0x54, 0x40, 0x9e,
-- 0xcd, 0x3f, 0x05, 0xa7, 0xdc, 0x1f, 0xb6, 0x82, 0x85, 0x48, 0x35, 0xbf,
-- 0x74, 0x46, 0xb6, 0x7f, 0x2f, 0xf0, 0x35, 0x6a, 0xa0, 0x29, 0xf4, 0xa1,
-- 0x30, 0xf1, 0xaa, 0xaa, 0x27, 0x05, 0x43, 0x88, 0x5a, 0x5c, 0x6a, 0x69,
-- 0xb7, 0xf7, 0xbf, 0xff, 0x67, 0x9c, 0x85, 0xf2, 0xd3, 0x2f, 0x62, 0xc4,
-- 0x13, 0xa0, 0x02, 0x9f, 0xb5, 0x6f, 0xa4, 0x53, 0xf9, 0x2a, 0x04, 0xbc,
-- 0x49, 0x8c, 0xc8, 0x23, 0x0e, 0x50, 0x39, 0x42, 0x6d, 0xe1, 0x54, 0xdd,
-- 0xb5, 0x7a, 0xf5, 0xea, 0xd8, 0x8c, 0xef, 0x03, 0xd4, 0x35, 0x0d, 0xac,
-- 0x95, 0x1e, 0xca, 0x5b, 0x01, 0x7b, 0x27, 0xab, 0xe0, 0x91, 0x0d, 0xd6,
-- 0x43, 0x11, 0x73, 0x0d, 0x9e, 0x83, 0x01, 0x15, 0xc4, 0xc3, 0x86, 0xf1,
-- 0xf3, 0xcd, 0x82, 0xb0, 0xc5, 0x7c, 0x1e, 0xc3, 0x56, 0xca, 0xde, 0xaa,
-- 0x27, 0xe9, 0xdf, 0x69, 0x2f, 0xfa, 0xf5, 0x5d, 0xf1, 0x9f, 0x43, 0x0e,
-- 0xfd, 0x03, 0xe3, 0x1d, 0x14, 0x52, 0xed, 0xf7, 0xc3, 0x1f, 0x77, 0x58,
-- 0xa9, 0xea, 0xc5, 0x55, 0x7c, 0xb1, 0x02, 0xb6, 0xc5, 0x0e, 0xed, 0x64,
-- 0x05, 0x4a, 0x66, 0xb3, 0x3b, 0xee, 0xa5, 0xcf, 0x57, 0xc0, 0x7f, 0x0e,
-- 0xf9, 0xe7, 0x4f, 0x3b, 0x83, 0x67, 0xbf, 0xb8, 0x5e, 0xff, 0xb8, 0xf3,
-- 0xe1, 0x8f, 0xbb, 0xbd, 0xce, 0xd2, 0xcd, 0x9a, 0x0e, 0xd6, 0x0c, 0x7d,
-- 0xab, 0x50, 0x47, 0x51, 0x63, 0x4d, 0x55, 0xaf, 0xf7, 0x7e, 0x72, 0x14,
-- 0x89, 0x88, 0x53, 0x18, 0xd8, 0xde, 0xf7, 0x08, 0x42, 0x73, 0x58, 0x4e,
-- 0x34, 0xd0, 0x5a, 0xb4, 0xba, 0xa6, 0x98, 0x6b, 0xe0, 0x55, 0x32, 0xc3,
-- 0x71, 0x64, 0xa3, 0xe6, 0xd4, 0xc4, 0x64, 0x72, 0x4f, 0xf7, 0x9c, 0x20,
-- 0x5a, 0x0e, 0x5d, 0xa0, 0x92, 0x49, 0x8f, 0x4a, 0xb8, 0x8a, 0x85, 0xb4,
-- 0xe1, 0x6e, 0x7c, 0x46, 0xee, 0xda, 0xec, 0xb2, 0x01, 0x79, 0xe3, 0x9b,
-- 0xa7, 0xf9, 0x91, 0x0a, 0xa5, 0x7c, 0x78, 0x85, 0xd8, 0xfd, 0x01, 0x6a,
-- 0xa3, 0x4a, 0x3e, 0x72, 0x7c, 0xd2, 0xd0, 0x0d, 0x28, 0xf5, 0x53, 0xb4,
-- 0x92, 0xb5, 0xc3, 0x5a, 0xc6, 0x57, 0x77, 0x19, 0xa4, 0xd7, 0xf6, 0xbd,
-- 0xb3, 0x71, 0xe2, 0x74, 0x1d, 0x31, 0x93, 0x05, 0xd8, 0xdb, 0xe1, 0xeb,
-- 0x41, 0xe0, 0x41, 0x96, 0x58, 0x61, 0xe6, 0xf1, 0xb2, 0x8e, 0x01, 0x1f,
-- 0x86, 0x9b, 0x5d, 0xc1, 0xf4, 0x61, 0x5b, 0x06, 0x2e, 0xa5, 0x51, 0xcf,
-- 0x49, 0x25, 0xa5, 0x3d, 0x44, 0x1f, 0x14, 0x4c, 0x4b, 0xe6, 0x45, 0x50,
-- 0xf9, 0x3a, 0x64, 0x13, 0x57, 0xb3, 0xb3, 0xef, 0xb0, 0x74, 0xb3, 0x69,
-- 0x15, 0xd3, 0xc6, 0x01, 0x3b, 0xd5, 0x18, 0x33, 0xac, 0x46, 0xbe, 0x70,
-- 0x3f, 0x0c, 0x12, 0x73, 0xe9, 0x68, 0xe9, 0xad, 0x77, 0x97, 0xd9, 0x19,
-- 0xd5, 0x70, 0xf2, 0x55, 0xf9, 0xbe, 0xc3, 0xa6, 0x79, 0xc2, 0x85, 0x78,
-- 0xa5, 0xae, 0xae, 0x8e, 0xcf, 0x26, 0x0b, 0xf2, 0x9e, 0xbb, 0x52, 0x18,
-- 0x81, 0xbe, 0x0e, 0xf6, 0x24, 0x79, 0x5f, 0xad, 0x11, 0x04, 0x2e, 0x2b,
-- 0xc5, 0xf9, 0xe0, 0x67, 0x05, 0xf8, 0xa9, 0x1b, 0xd6, 0x5d, 0xb9, 0x4d,
-- 0x0c, 0x4d, 0x7a, 0x39, 0x4d, 0xaf, 0xfe, 0xd0, 0x89, 0x06, 0xaa, 0x9e,
-- 0x58, 0xe6, 0x44, 0xc0, 0x01, 0x45, 0xbf, 0x48, 0xdd, 0x0f, 0x9c, 0x88,
-- 0x02, 0x14, 0x41, 0xf3, 0xce, 0xa5, 0x50, 0xc2, 0x9f, 0x76, 0xb7, 0x63,
-- 0x56, 0xac, 0x39, 0x54, 0x00, 0xcb, 0xb2, 0xb2, 0x28, 0x4c, 0x4f, 0x95,
-- 0x11, 0x94, 0x48, 0x94, 0x1e, 0x8b, 0x9d, 0x03, 0xa7, 0xb8, 0xd4, 0x5a,
-- 0x35, 0x00, 0x1e, 0xc2, 0x2a, 0x34, 0xd0, 0x61, 0x17, 0x67, 0xf9, 0xad,
-- 0x8c, 0xe5, 0x51, 0xce, 0x42, 0xb7, 0x17, 0x5f, 0xf8, 0xbb, 0x83, 0x51,
-- 0x46, 0x37, 0x4f, 0x7b, 0x8e, 0x1b, 0x47, 0x6f, 0xf7, 0x4f, 0xfb, 0x9a,
-- 0x6c, 0xdc, 0x8c, 0x56, 0xe3, 0xce, 0xbe, 0xc2, 0x3b, 0xc9, 0x05, 0x74,
-- 0x3a, 0xa6, 0xed, 0x13, 0xae, 0xad, 0x9c, 0xec, 0x0e, 0xb7, 0x55, 0xf0,
-- 0x7b, 0xd0, 0x52, 0x27, 0x76, 0xc7, 0x46, 0x1b, 0x81, 0x0d, 0x91, 0xe4,
-- 0xf5, 0xbf, 0x2e, 0xe7, 0x4d, 0xf4, 0xf3, 0x2e, 0x87, 0xa2, 0xaa, 0x61,
-- 0x26, 0xe5, 0x2b, 0xda, 0x7c, 0x23, 0x1c, 0x2c, 0x3c, 0xe5, 0x8a, 0x8d,
-- 0x56, 0xb2, 0xfd, 0x27, 0x92, 0x32, 0xd0, 0xe0, 0x6a, 0x58, 0xfb, 0xd6,
-- 0x60, 0x15, 0x30, 0xc2, 0xec, 0x37, 0x65, 0xa6, 0xce, 0x48, 0x91, 0xdf,
-- 0x5c, 0x81, 0x1c, 0xdc, 0xd7, 0x67, 0x6f, 0x0e, 0x5a, 0xcd, 0x3d, 0xff,
-- 0xec, 0xd9, 0xf6, 0xef, 0x18, 0xf9, 0xb3, 0xe8, 0x9b, 0x84, 0x56, 0x73,
-- 0x5a, 0xc2, 0xb4, 0xcb, 0x66, 0x46, 0x6b, 0x85, 0xf0, 0x45, 0x91, 0xfb,
-- 0xac, 0xb3, 0x8d, 0xc1, 0x47, 0xf7, 0x6e, 0x57, 0xe2, 0x2d, 0xfc, 0xfd,
-- 0x51, 0xdc, 0xc1, 0x7c, 0x60, 0x4d, 0x41, 0x86, 0xd7, 0x44, 0x55, 0x43,
-- 0xdd, 0x95, 0xac, 0x55, 0x0c, 0x84, 0xf9, 0x52, 0x29, 0x56, 0x30, 0xc3,
-- 0xda, 0xfd, 0x78, 0xbf, 0xa2, 0x2c, 0x08, 0x6f, 0xda, 0x8c, 0x0e, 0xed,
-- 0xd4, 0x92, 0x3b, 0xf3, 0x5a, 0x8b, 0xbe, 0x01, 0xa1, 0x1c, 0x9c, 0xdf,
-- 0xc5, 0xc9, 0x57, 0x42, 0x4f, 0xd4, 0xcb, 0x20, 0xf2, 0x78, 0x4d, 0xd9,
-- 0x10, 0x5d, 0x16, 0xa9, 0x44, 0xfc, 0x03, 0xa3, 0xd6, 0x71, 0x0f, 0x8c,
-- 0xdb, 0x2c, 0xab, 0x07, 0x27, 0xef, 0xde, 0x1d, 0x1e, 0x04, 0xe5, 0x7f,
-- 0x3a, 0x02, 0x06, 0x9d, 0x40, 0xeb, 0x42, 0x8b, 0x55, 0x70, 0x96, 0x34,
-- 0x52, 0xcd, 0x8a, 0x50, 0x83, 0x96, 0xb9, 0x7a, 0xf4, 0x46, 0x60, 0x41,
-- 0xb5, 0x5b, 0x06, 0x13, 0x96, 0x66, 0x59, 0xf4, 0xba, 0x56, 0xb6, 0x54,
-- 0x75, 0x11, 0x6c, 0x6d, 0xb3, 0xde, 0xe9, 0xca, 0xe0, 0x52, 0xad, 0x1c,
-- 0x07, 0x4d, 0xaa, 0x59, 0x59, 0x59, 0x6b, 0xdb, 0x15, 0xe5, 0x16, 0xa2,
-- 0xa9, 0xe6, 0xc8, 0xed, 0x2b, 0xa0, 0x25, 0xde, 0x59, 0xa5, 0xf6, 0x78,
-- 0x0d, 0xb5, 0x72, 0xbb, 0xe0, 0x78, 0x52, 0xe3, 0x2e, 0x4c, 0x56, 0xd5,
-- 0x99, 0x99, 0x4f, 0x32, 0x86, 0x79, 0xc1, 0x17, 0xd3, 0x63, 0x9f, 0x69,
-- 0x5b, 0x63, 0x03, 0x94, 0xf3, 0xd8, 0x32, 0x4f, 0x05, 0xa5, 0xce, 0x61,
-- 0x4d, 0x5b, 0xb1, 0x38, 0xa6, 0x1a, 0x5b, 0x47, 0x20, 0x59, 0xae, 0x4a,
-- 0x7f, 0x96, 0x02, 0xf0, 0xeb, 0x55, 0x78, 0xee, 0x35, 0xc0, 0x14, 0x76,
-- 0x55, 0x5a, 0x28, 0x4b, 0xa1, 0x6b, 0x14, 0xf4, 0x4d, 0xab, 0x9b, 0x6a,
-- 0x35, 0x9c, 0x04, 0x94, 0x8d, 0x1a, 0xd5, 0x31, 0x43, 0x60, 0x76, 0x6b,
-- 0x51, 0x00, 0xf8, 0xf2, 0xba, 0x35, 0x4e, 0xde, 0xab, 0x66, 0x73, 0x6e,
-- 0x8b, 0x22, 0xb4, 0x98, 0x48, 0x0e, 0x75, 0x28, 0xed, 0xdd, 0x55, 0x90,
-- 0xf3, 0x21, 0x9d, 0x98, 0x1e, 0x03, 0xb8, 0xf7, 0xd4, 0x99, 0xdf, 0x40,
-- 0xfa, 0x71, 0x6f, 0xd3, 0x4a, 0x04, 0x03, 0x8e, 0xef, 0x00, 0x93, 0xd8,
-- 0x54, 0x1b, 0xe4, 0xfd, 0xda, 0x78, 0x3f, 0xcf, 0x3f, 0x42, 0x05, 0x8a,
-- 0x61, 0x9f, 0x5c, 0x53, 0xab, 0x47, 0xd5, 0xdb, 0x79, 0xb1, 0x3b, 0xdc,
-- 0x79, 0xfe, 0xf9, 0x70, 0x67, 0x7b, 0xb8, 0xd3, 0x0b, 0xa1, 0x29, 0xe1,
-- 0xb4, 0x66, 0x37, 0x73, 0xd8, 0x4e, 0x87, 0x01, 0xa6, 0xcb, 0xce, 0x13,
-- 0x76, 0x30, 0xbb, 0x1f, 0x06, 0xae, 0xff, 0xa8, 0x0b, 0x0d, 0x0f, 0x68,
-- 0xb7, 0x3c, 0x08, 0xe4, 0x0f, 0x90, 0xda, 0x82, 0xe3, 0x24, 0xba, 0x8a,
-- 0xd4, 0x5a, 0x02, 0x83, 0x2b, 0x4e, 0xdb, 0x85, 0x5b, 0x12, 0x04, 0xa8,
-- 0x77, 0x97, 0xac, 0x75, 0xfd, 0x47, 0x7a, 0xe7, 0xaf, 0x66, 0xe6, 0x6c,
-- 0x23, 0x76, 0xc7, 0x50, 0xed, 0x9c, 0xce, 0x9a, 0xce, 0xa5, 0x6d, 0x15,
-- 0xb7, 0xc0, 0x15, 0xb1, 0x1e, 0x3a, 0xab, 0x32, 0x1c, 0x16, 0x21, 0xef,
-- 0xb5, 0xd2, 0xbc, 0xd6, 0x1c, 0x6a, 0xe2, 0xfa, 0x74, 0xea, 0x90, 0xe1,
-- 0xa2, 0x65, 0x97, 0x4e, 0x1f, 0xd6, 0x35, 0x66, 0x15, 0x1d, 0x2f, 0x72,
-- 0x8e, 0x5c, 0x16, 0xba, 0x61, 0xf9, 0x9d, 0x3f, 0xff, 0xd9, 0xf3, 0xa8,
-- 0x73, 0x4e, 0x26, 0xd0, 0xaa, 0x83, 0xb0, 0x50, 0x3d, 0xf3, 0x7a, 0xa9,
-- 0xe4, 0xcf, 0x26, 0xbd, 0xbd, 0x9f, 0x90, 0x72, 0xf0, 0xcb, 0xe0, 0x27,
-- 0xfa, 0xf3, 0x97, 0x9e, 0x63, 0x94, 0x88, 0xc1, 0x91, 0xdb, 0xda, 0x4d,
-- 0xde, 0x02, 0xe2, 0xf1, 0x90, 0x8b, 0x55, 0x45, 0x02, 0x36, 0x3b, 0x0f,
-- 0x70, 0x1a, 0x25, 0xe9, 0xd0, 0x27, 0x24, 0xa7, 0x96, 0x7b, 0x0a, 0x5b,
-- 0x0d, 0x51, 0x8a, 0x5b, 0x4b, 0x09, 0xb6, 0xf7, 0x2f, 0xf5, 0xad, 0x90,
-- 0x00, 0xeb, 0xc9, 0xa5, 0xa8, 0x19, 0x96, 0x9d, 0xaa, 0xec, 0x99, 0xc3,
-- 0xed, 0x5c, 0xb6, 0x8d, 0x7e, 0xb6, 0xe6, 0xc0, 0x12, 0x38, 0x43, 0xca,
-- 0x0a, 0xea, 0x8a, 0x2f, 0x58, 0xec, 0xac, 0x99, 0x0b, 0xd3, 0x70, 0xd9,
-- 0x48, 0x3a, 0xc7, 0xea, 0x86, 0xa7, 0xa8, 0x59, 0x80, 0x82, 0xbd, 0xb3,
-- 0x16, 0x04, 0x22, 0x61, 0x6c, 0x96, 0x39, 0x37, 0x0a, 0xf0, 0x7f, 0x43,
-- 0xc1, 0x8d, 0x39, 0x59, 0xf2, 0x72, 0x71, 0x5d, 0x52, 0xbb, 0x0f, 0xa0,
-- 0xa0, 0xd1, 0x53, 0xf2, 0x8c, 0xa3, 0xda, 0x85, 0x47, 0x0d, 0xfb, 0x1d,
-- 0x43, 0x8f, 0x17, 0x74, 0x58, 0x9f, 0x6c, 0xef, 0xac, 0xa8, 0x31, 0x00,
-- 0x5e, 0x6f, 0x01, 0x46, 0x25, 0x70, 0x8e, 0x6a, 0x96, 0x92, 0x92, 0x64,
-- 0xf7, 0xf9, 0xce, 0xf3, 0x2d, 0xe2, 0x22, 0x4f, 0x86, 0xbb, 0x21, 0x76,
-- 0x2d, 0x1d, 0x31, 0x1a, 0x43, 0xfb, 0xf2, 0x04, 0xd2, 0x82, 0x5d, 0xd6,
-- 0x88, 0x39, 0xa4, 0xe6, 0x18, 0x3a, 0xc1, 0x7d, 0x84, 0x1b, 0xcd, 0x07,
-- 0x81, 0xa7, 0x8c, 0x9d, 0xe0, 0x42, 0xb7, 0xa3, 0x98, 0x7b, 0x93, 0x4a,
-- 0x59, 0xa0, 0xe1, 0xd1, 0xa8, 0x29, 0x70, 0x09, 0x80, 0xe4, 0xe5, 0x28,
-- 0xa7, 0x9b, 0xbf, 0xe6, 0x72, 0xeb, 0x40, 0x08, 0x62, 0x03, 0xa7, 0x2b,
-- 0xdb, 0xc0, 0xb8, 0xe0, 0x45, 0x97, 0x9a, 0x22, 0xf0, 0x01, 0x2e, 0xbd,
-- 0xd5, 0x2c, 0x59, 0xa1, 0x53, 0x0b, 0x51, 0xe2, 0xb9, 0xc0, 0x4f, 0x03,
-- 0xcc, 0x9e, 0x6f, 0xe5, 0xf1, 0x7d, 0xfb, 0x1e, 0xf9, 0x86, 0xc8, 0xf3,
-- 0x96, 0x4d, 0xec, 0xa9, 0xdd, 0x50, 0x92, 0x87, 0x29, 0x4e, 0x91, 0x54,
-- 0x16, 0xc3, 0xe3, 0x27, 0xea, 0x07, 0x12, 0x89, 0xcc, 0x06, 0xc2, 0xb8,
-- 0x34, 0x5c, 0x10, 0xc2, 0x3e, 0xec, 0x08, 0x80, 0x51, 0x00, 0x42, 0xce,
-- 0x2d, 0x14, 0xe3, 0xbf, 0x78, 0x96, 0xc1, 0x17, 0x1e, 0x8a, 0xdb, 0x7f,
-- 0xa8, 0xee, 0x90, 0x90, 0xc5, 0xee, 0x7f, 0x43, 0xb2, 0xd8, 0xfd, 0xff,
-- 0xc9, 0xe2, 0x9f, 0x48, 0x16, 0x2f, 0xba, 0xc8, 0xe2, 0xc9, 0x7f, 0x43,
-- 0xb2, 0x78, 0xf2, 0xff, 0x93, 0xc5, 0x3f, 0x8f, 0x2c, 0x76, 0x9f, 0x37,
-- 0x53, 0x8f, 0xa0, 0x4f, 0xd2, 0x25, 0x67, 0x6a, 0x65, 0x84, 0x2f, 0x0b,
-- 0xca, 0xd0, 0xa5, 0x0b, 0x05, 0x9d, 0xc4, 0x32, 0x45, 0x42, 0x95, 0x54,
-- 0x05, 0xf6, 0xca, 0x03, 0x26, 0xc5, 0x15, 0xf4, 0x18, 0x76, 0x2d, 0x9d,
-- 0x0e, 0x93, 0x53, 0xf7, 0x1a, 0x6b, 0xf6, 0xfc, 0xd9, 0x12, 0x7e, 0xd5,
-- 0x69, 0x76, 0x89, 0x2d, 0x80, 0x9c, 0xd2, 0xc7, 0x97, 0x10, 0xa3, 0x18,
-- 0x18, 0x74, 0x10, 0x65, 0x9e, 0xf0, 0x2b, 0xe2, 0xea, 0x44, 0x2b, 0xac,
-- 0x80, 0xa6, 0x3e, 0x51, 0xc0, 0xd2, 0xd3, 0xd6, 0x49, 0x96, 0x5a, 0xef,
-- 0x27, 0x61, 0xfd, 0x07, 0xce, 0x6b, 0x8a, 0x2b, 0x51, 0x7c, 0x14, 0x33,
-- 0xfe, 0xdf, 0xb3, 0xb2, 0x48, 0x2c, 0x2e, 0x49, 0x31, 0x77, 0x50, 0xb2,
-- 0xc5, 0xc4, 0x04, 0xff, 0x21, 0xf7, 0x1b, 0x69, 0x19, 0x7f, 0x46, 0x25,
-- 0x2b, 0x81, 0x59, 0xe2, 0x0c, 0x78, 0x97, 0xb8, 0x80, 0x14, 0xe0, 0xdc,
-- 0x2c, 0xc9, 0x7e, 0xe5, 0x4c, 0x24, 0x46, 0x68, 0x74, 0x74, 0x0e, 0x58,
-- 0x68, 0x61, 0xc3, 0x41, 0xe8, 0x2b, 0x77, 0xba, 0xe6, 0xa5, 0x60, 0x73,
-- 0xc8, 0x70, 0x1c, 0x50, 0xfb, 0xb0, 0x43, 0x4e, 0x7f, 0x9d, 0xb1, 0x31,
-- 0x2b, 0x1c, 0x50, 0x5f, 0x0a, 0x78, 0xab, 0xe6, 0xef, 0x82, 0x62, 0xbc,
-- 0x6b, 0xdb, 0x0f, 0x31, 0x1e, 0x52, 0x73, 0xcc, 0x75, 0x47, 0x7c, 0xcc,
-- 0x2b, 0xb7, 0x0c, 0xe6, 0xfa, 0x09, 0x17, 0x63, 0x03, 0xb9, 0x0e, 0x66,
-- 0x08, 0x47, 0x97, 0x9f, 0xb2, 0x0c, 0x30, 0x99, 0x40, 0x69, 0xaf, 0x96,
-- 0xa3, 0xbf, 0xaa, 0x46, 0xc8, 0x81, 0x93, 0xc8, 0x07, 0x6a, 0x54, 0x20,
-- 0x13, 0x3c, 0xfe, 0xe5, 0x48, 0xed, 0xb6, 0x71, 0x73, 0xf4, 0x21, 0x6c,
-- 0xf4, 0xae, 0x26, 0x80, 0xd2, 0x99, 0xba, 0xf8, 0x79, 0x4c, 0xd1, 0xa4,
-- 0x02, 0x3f, 0x75, 0xb4, 0xef, 0x76, 0x9e, 0x58, 0x63, 0xa8, 0x14, 0xf5,
-- 0x3e, 0xdc, 0x2c, 0xb7, 0x9a, 0x2a, 0xc4, 0x9a, 0x47, 0x9e, 0x1f, 0x5f,
-- 0xd9, 0x16, 0x91, 0x6b, 0x9f, 0xfd, 0x26, 0x55, 0xff, 0xcf, 0xfc, 0x4f,
-- 0xb7, 0xc2, 0xd4, 0x00, 0xb9, 0xb4, 0xf0, 0x1d, 0x7e, 0x1c, 0x67, 0x03,
-- 0xaf, 0xaf, 0xea, 0xe0, 0x15, 0x7f, 0x2b, 0x3d, 0x3c, 0xdc, 0x36, 0x3c,
-- 0x23, 0xbf, 0xa2, 0x83, 0xf7, 0x73, 0x49, 0x4a, 0x0e, 0x39, 0xc4, 0x42,
-- 0x31, 0x2a, 0x98, 0xdd, 0xdd, 0xa5, 0xe5, 0x5c, 0xa2, 0x6f, 0xc2, 0x4a,
-- 0xb4, 0x9c, 0x5e, 0xb2, 0x80, 0x91, 0x26, 0xc2, 0x34, 0xbc, 0x64, 0x43,
-- 0x15, 0xac, 0x55, 0x1c, 0x86, 0x28, 0x99, 0x64, 0x8a, 0x9f, 0x66, 0x91,
-- 0x2a, 0x8b, 0xa2, 0x36, 0x0b, 0x7d, 0x32, 0x61, 0xdd, 0xa3, 0xc4, 0xfd,
-- 0xd0, 0x81, 0xc8, 0x6b, 0x1b, 0xe1, 0x6b, 0xbb, 0x70, 0xcb, 0x30, 0xc1,
-- 0x2c, 0x17, 0x00, 0xd3, 0x0e, 0x42, 0x23, 0xa1, 0x66, 0x38, 0xca, 0x45,
-- 0xd7, 0x6d, 0x9f, 0x36, 0x5c, 0xae, 0xb8, 0xf0, 0x1c, 0x0e, 0xdc, 0x6d,
-- 0x91, 0x03, 0xe6, 0x10, 0xb9, 0x71, 0xc3, 0xdf, 0x86, 0x20, 0xde, 0x0f,
-- 0x0a, 0x03, 0xa5, 0x55, 0x18, 0xa2, 0x1e, 0x07, 0x94, 0x78, 0xb5, 0x3b,
-- 0x45, 0xd1, 0x26, 0x06, 0x07, 0x9c, 0xa7, 0xb5, 0x1d, 0x31, 0xbf, 0x0d,
-- 0x18, 0xa6, 0xc0, 0xe0, 0x73, 0xbc, 0xfc, 0x38, 0x8b, 0x7d, 0xf4, 0x1e,
-- 0x2b, 0xfa, 0xb1, 0x54, 0xfd, 0xdd, 0xe8, 0x3e, 0x91, 0x64, 0xd6, 0x47,
-- 0x6f, 0x95, 0x00, 0xe0, 0xca, 0xb1, 0x80, 0x6c, 0x12, 0x52, 0x8b, 0x26,
-- 0xf9, 0x05, 0x57, 0xa3, 0x20, 0x49, 0xac, 0xa0, 0x64, 0xc1, 0xd8, 0xb8,
-- 0x0b, 0xf9, 0x6a, 0xc9, 0x96, 0x41, 0x62, 0xf5, 0x95, 0x44, 0x10, 0xfd,
-- 0xca, 0xa9, 0x7c, 0xbc, 0x1f, 0xa4, 0xf3, 0x7b, 0xb6, 0xaa, 0x3f, 0x70,
-- 0x2d, 0x32, 0x23, 0x47, 0x6e, 0x08, 0x51, 0x4c, 0x2e, 0x95, 0x03, 0x5a,
-- 0xb1, 0x8c, 0x16, 0xdc, 0xa1, 0x68, 0x9a, 0xb3, 0x65, 0x64, 0xfc, 0xc3,
-- 0x93, 0x16, 0x40, 0x2b, 0x3c, 0x58, 0x13, 0x42, 0x35, 0x50, 0xc7, 0x0a,
-- 0x74, 0x49, 0xe1, 0x61, 0x49, 0x09, 0x43, 0x9e, 0x37, 0x3c, 0x5c, 0xdd,
-- 0xf0, 0x71, 0x5b, 0x2e, 0x15, 0xac, 0xe4, 0x9a, 0x1b, 0x03, 0xe2, 0x75,
-- 0x8b, 0x16, 0x1e, 0xce, 0x93, 0xae, 0x29, 0xa3, 0x00, 0xdf, 0x23, 0x72,
-- 0x00, 0xf7, 0xbf, 0x12, 0xbf, 0x25, 0x98, 0xa9, 0xcd, 0x6c, 0x95, 0x23,
-- 0x5b, 0x66, 0xa9, 0x93, 0x7c, 0x2f, 0xa9, 0x06, 0x68, 0x11, 0x70, 0x7f,
-- 0xcc, 0x66, 0x78, 0x59, 0x82, 0x9e, 0x24, 0xc4, 0x38, 0x9a, 0x30, 0x8c,
-- 0xbf, 0x06, 0xce, 0x28, 0x4f, 0xba, 0x13, 0x61, 0xdc, 0xb7, 0x7b, 0x57,
-- 0x78, 0x4a, 0xb1, 0xdf, 0xa3, 0x92, 0x8e, 0x78, 0x60, 0x79, 0x33, 0x24,
-- 0x5c, 0xd6, 0x68, 0x82, 0x38, 0x90, 0x47, 0xc9, 0x1a, 0x03, 0x97, 0x98,
-- 0x91, 0xce, 0x35, 0xfa, 0xcd, 0x8b, 0x24, 0xfd, 0x77, 0xac, 0x92, 0x76,
-- 0xd6, 0x09, 0x79, 0x18, 0x14, 0xcb, 0x8d, 0x67, 0xb4, 0x2a, 0xd4, 0x7d,
-- 0xc5, 0xa4, 0x56, 0x05, 0xbb, 0xb7, 0xf7, 0xbe, 0x0b, 0x0b, 0xe7, 0x01,
-- 0x32, 0x97, 0xd9, 0xcd, 0x1b, 0xa1, 0xd9, 0x8d, 0x09, 0xb6, 0x03, 0x09,
-- 0xdd, 0x93, 0x8a, 0x81, 0x1a, 0xce, 0xf1, 0x61, 0x3d, 0xd9, 0x45, 0xd7,
-- 0x7c, 0xe2, 0x84, 0x3b, 0xe2, 0xbb, 0x92, 0xff, 0xe2, 0x2e, 0x22, 0x92,
-- 0xac, 0x31, 0x45, 0xf4, 0xd2, 0x98, 0x4a, 0x87, 0x25, 0x37, 0xda, 0xbc,
-- 0x9d, 0xe1, 0x36, 0xb8, 0xed, 0xc7, 0x7b, 0x44, 0x53, 0xec, 0xf1, 0xbd,
-- 0xf5, 0x4b, 0x9b, 0xe9, 0xbe, 0x57, 0x36, 0xeb, 0x4d, 0xf8, 0x98, 0x17,
-- 0xbf, 0xab, 0x83, 0x72, 0xf5, 0xc6, 0x42, 0x20, 0x30, 0x87, 0x8b, 0xbe,
-- 0x1a, 0x82, 0x1e, 0x10, 0xc2, 0x86, 0x40, 0xcf, 0x59, 0xb5, 0x78, 0x7f,
-- 0x67, 0xfb, 0xf3, 0xed, 0x6e, 0xac, 0x40, 0xc8, 0x10, 0xe6, 0xd5, 0x1e,
-- 0x67, 0x41, 0x95, 0xb1, 0xdc, 0x97, 0x98, 0x08, 0x3c, 0x67, 0x7a, 0x49,
-- 0xb2, 0xe3, 0xac, 0x8b, 0xf3, 0xc3, 0x8d, 0x96, 0xab, 0x81, 0x59, 0xad,
-- 0xb2, 0x0e, 0x07, 0xcd, 0x1c, 0x4e, 0xce, 0xd3, 0xe3, 0xdc, 0x49, 0x1d,
-- 0x29, 0xaa, 0x0e, 0xaa, 0x63, 0xde, 0x58, 0x1b, 0x13, 0xde, 0x5d, 0x48,
-- 0x51, 0xc8, 0x55, 0xf4, 0xc1, 0x9d, 0xc6, 0xa6, 0x2c, 0x47, 0x0f, 0x94,
-- 0x4f, 0xf8, 0x66, 0x93, 0xe4, 0x62, 0x09, 0x4b, 0x93, 0x3a, 0x00, 0x9f,
-- 0x58, 0x3c, 0x01, 0xaf, 0x44, 0x15, 0x36, 0xfe, 0xf9, 0x95, 0x13, 0xfe,
-- 0x66, 0xed, 0x59, 0xcd, 0x3a, 0x1f, 0xd2, 0xe5, 0x6b, 0xb9, 0x15, 0xf3,
-- 0x46, 0x09, 0x63, 0xc5, 0x13, 0x15, 0xb5, 0x1b, 0xa5, 0x70, 0xa2, 0x64,
-- 0xf2, 0xa0, 0x68, 0x94, 0xcb, 0x32, 0x1d, 0x65, 0x52, 0x60, 0x51, 0x5d,
-- 0xc1, 0x8a, 0x85, 0x0b, 0x3f, 0x73, 0x58, 0x4a, 0x2c, 0x06, 0xbb, 0xb3,
-- 0xdc, 0x56, 0x1d, 0x46, 0xb3, 0xd2, 0x94, 0x46, 0x58, 0x64, 0x69, 0x49,
-- 0x52, 0x15, 0x47, 0x9f, 0x04, 0x93, 0xfb, 0x9f, 0xdc, 0x2c, 0xea, 0xc8,
-- 0x79, 0x6c, 0xeb, 0x0e, 0xcf, 0x9f, 0x56, 0x3d, 0x3f, 0x57, 0x20, 0xeb,
-- 0xb4, 0x1c, 0xe5, 0x75, 0x99, 0x6a, 0x5a, 0x86, 0x22, 0x81, 0x07, 0x6e,
-- 0x49, 0xce, 0xf0, 0x44, 0xe8, 0x2b, 0xbf, 0xd6, 0xe9, 0x0c, 0x23, 0xde,
-- 0xf7, 0x3f, 0xd1, 0xab, 0x36, 0x20, 0xb2, 0x0b, 0xf0, 0x92, 0xbe, 0x3a,
-- 0x7c, 0x73, 0x72, 0x76, 0xd8, 0x04, 0x19, 0x12, 0xc4, 0x61, 0x04, 0x89,
-- 0xb5, 0x47, 0xf7, 0x57, 0x64, 0x64, 0x40, 0x72, 0x0a, 0xab, 0x15, 0x9e,
-- 0x7e, 0xff, 0x3a, 0x80, 0xda, 0x36, 0x7c, 0xfa, 0x00, 0xbc, 0x46, 0xcb,
-- 0xa6, 0x45, 0x99, 0x5f, 0xe9, 0xb8, 0xe6, 0xf2, 0x27, 0x0a, 0xb4, 0xe1,
-- 0x86, 0x27, 0xb8, 0x8c, 0x3c, 0x00, 0xed, 0x2c, 0x95, 0x68, 0xf0, 0xaa,
-- 0x62, 0x03, 0x85, 0x6b, 0x36, 0xf2, 0x4b, 0x66, 0x0c, 0xfa, 0xc9, 0x89,
-- 0x05, 0xc6, 0xe6, 0x38, 0xd4, 0x89, 0xa3, 0x9f, 0x86, 0x89, 0xeb, 0xc4,
-- 0xf7, 0x22, 0xb8, 0x2c, 0x88, 0x7d, 0x41, 0x2f, 0x5d, 0x26, 0x1d, 0x8e,
-- 0x20, 0x91, 0x88, 0x17, 0xe1, 0x1c, 0x51, 0xb8, 0x4b, 0x3f, 0xf9, 0xab,
-- 0x54, 0x16, 0xbc, 0x14, 0x08, 0x4b, 0xbf, 0x8e, 0x11, 0x11, 0xa2, 0xdb,
-- 0x8d, 0x8a, 0x18, 0x8a, 0x1f, 0xa9, 0x5b, 0x36, 0x1d, 0xf0, 0xfa, 0x9f,
-- 0xd7, 0x13, 0x55, 0xc6, 0xc1, 0x1b, 0x35, 0x51, 0x30, 0xce, 0x51, 0x16,
-- 0xf4, 0x8d, 0xc4, 0x72, 0xbb, 0x37, 0x87, 0x2e, 0xd4, 0xc4, 0x33, 0x9a,
-- 0xfb, 0x20, 0xa2, 0xc4, 0x66, 0x6d, 0x68, 0xc3, 0xdd, 0x5e, 0x53, 0xab,
-- 0x00, 0x66, 0xce, 0x0d, 0x2b, 0x69, 0xa5, 0x7c, 0xc9, 0x1a, 0x91, 0xb3,
-- 0xac, 0xe0, 0xad, 0xec, 0xc4, 0x8f, 0x8c, 0x27, 0x61, 0xd5, 0x66, 0x40,
-- 0x51, 0x6b, 0xc5, 0x91, 0x1f, 0x2d, 0xad, 0x07, 0x50, 0x44, 0xd5, 0xfd,
-- 0xbc, 0x86, 0x2f, 0x19, 0x3a, 0xd5, 0xb8, 0x28, 0xe1, 0x7d, 0x8f, 0xc9,
-- 0xd8, 0xd3, 0x6d, 0x05, 0xcb, 0xe1, 0x8b, 0x67, 0x2f, 0xf8, 0xd8, 0xd1,
-- 0xb9, 0xaf, 0x2c, 0xc7, 0x59, 0x83, 0x95, 0x01, 0xaa, 0xac, 0x23, 0x36,
-- 0x43, 0x5c, 0x04, 0xdb, 0xa1, 0xdb, 0x6f, 0x46, 0xa6, 0x51, 0x36, 0xb5,
-- 0xfc, 0xea, 0xf3, 0xa0, 0xa9, 0xe1, 0x4a, 0x35, 0xaa, 0xdd, 0x5c, 0x43,
-- 0xa9, 0xd2, 0xc2, 0x09, 0xb4, 0x0b, 0xe9, 0x8d, 0xa6, 0x5b, 0xe8, 0x79,
-- 0x90, 0x76, 0x1b, 0xbb, 0xbf, 0x6a, 0x74, 0x96, 0xed, 0x46, 0x13, 0x26,
-- 0xc2, 0x64, 0x8f, 0xd3, 0xc6, 0xbf, 0x6e, 0x3a, 0x40, 0x1a, 0x85, 0x53,
-- 0x66, 0xa4, 0xc0, 0x65, 0xd6, 0xc0, 0xd1, 0x5a, 0xd5, 0xdc, 0x25, 0x18,
-- 0x16, 0xad, 0x5e, 0x3b, 0x1b, 0x47, 0x6a, 0x8a, 0xd5, 0xc5, 0x22, 0x49,
-- 0xad, 0x46, 0x9d, 0xee, 0x7d, 0x1c, 0xc0, 0xc8, 0x73, 0x40, 0xe0, 0xf7,
-- 0x48, 0x50, 0x9d, 0xed, 0xf6, 0x22, 0x89, 0x63, 0x8e, 0x70, 0x0e, 0xa5,
-- 0x45, 0x8d, 0x0b, 0x80, 0x43, 0x9b, 0xe6, 0xca, 0x26, 0xbb, 0x0e, 0xd6,
-- 0x24, 0x7c, 0x30, 0x38, 0x8d, 0x8a, 0x98, 0xd2, 0x2a, 0x13, 0x85, 0xd3,
-- 0xac, 0x0c, 0xcf, 0x71, 0xb3, 0x37, 0x71, 0x02, 0xb0, 0x14, 0x62, 0xd5,
-- 0xdc, 0x41, 0xb4, 0xcd, 0xf5, 0x5d, 0x48, 0xdc, 0x1a, 0x54, 0xf5, 0xbd,
-- 0xe8, 0xf1, 0xd9, 0x8c, 0xa1, 0x25, 0x50, 0x1d, 0x14, 0xa0, 0x88, 0x5a,
-- 0x9f, 0x03, 0xf9, 0x0f, 0x83, 0xb8, 0x56, 0xad, 0x90, 0x40, 0xf2, 0xc6,
-- 0x19, 0x94, 0xd5, 0x3a, 0x26, 0x15, 0x27, 0x2e, 0x91, 0x0e, 0xe1, 0x60,
-- 0x70, 0x64, 0x75, 0xfe, 0x66, 0x5c, 0xb6, 0x93, 0xe2, 0x62, 0x18, 0x93,
-- 0xeb, 0xab, 0x72, 0x21, 0x10, 0x04, 0x49, 0x47, 0x4e, 0x73, 0x20, 0xd6,
-- 0xc8, 0x93, 0xc6, 0x2b, 0x50, 0x8a, 0x0b, 0x62, 0x1f, 0x5e, 0x3d, 0x7a,
-- 0xdd, 0x40, 0xaf, 0x91, 0xc8, 0x4a, 0xda, 0xe9, 0xee, 0xe6, 0x7c, 0x64,
-- 0xa1, 0x84, 0xdf, 0xf8, 0xfb, 0xc4, 0xb5, 0xe6, 0xa5, 0xb8, 0xd1, 0xbd,
-- 0xff, 0xa6, 0xbb, 0x39, 0x6d, 0x43, 0x6c, 0xe9, 0xd2, 0x82, 0x35, 0x0b,
-- 0x5a, 0x31, 0xbc, 0x46, 0xa6, 0x06, 0x86, 0x6d, 0xb3, 0x4e, 0x86, 0xf1,
-- 0x62, 0xcc, 0x8a, 0x89, 0x44, 0x76, 0x3c, 0xb6, 0x16, 0xfc, 0xa0, 0xad,
-- 0x85, 0x5a, 0x27, 0xab, 0x70, 0x5e, 0x68, 0x84, 0xa8, 0x94, 0x29, 0x4f,
-- 0xf9, 0x40, 0x77, 0x73, 0x7e, 0xa2, 0x10, 0x6b, 0xd0, 0x3c, 0x5e, 0x0e,
-- 0xa7, 0x30, 0x4f, 0x8a, 0x71, 0x1d, 0xcc, 0x80, 0x1f, 0xe8, 0x6e, 0x4e,
-- 0xdd, 0xcd, 0xf1, 0xcc, 0xd8, 0x52, 0x85, 0x68, 0xb3, 0xc7, 0x66, 0xc6,
-- 0x0f, 0x46, 0xbb, 0x4c, 0x1f, 0x0a, 0x0f, 0x6f, 0x6d, 0xb1, 0x6c, 0xce,
-- 0x8a, 0x20, 0x87, 0xc6, 0x06, 0xdb, 0x0e, 0x63, 0x0c, 0x5d, 0x1b, 0xac,
-- 0xc1, 0x73, 0x31, 0x23, 0xf7, 0xa8, 0x4e, 0xb2, 0x3a, 0xee, 0xc1, 0x95,
-- 0x1b, 0xac, 0x7d, 0x44, 0xab, 0x30, 0x9d, 0x2b, 0x7c, 0xfb, 0x07, 0xc9,
-- 0x99, 0x67, 0x14, 0xbf, 0xfa, 0xc3, 0xc3, 0x0b, 0x32, 0x9d, 0x5b, 0xf5,
-- 0x15, 0xa0, 0xb3, 0x38, 0x5e, 0xa1, 0x61, 0xd2, 0x69, 0xb3, 0x2e, 0x8b,
-- 0x62, 0xee, 0xac, 0x20, 0x7b, 0xdf, 0x5f, 0xe2, 0xeb, 0x5c, 0xd0, 0x35,
-- 0x9a, 0xcf, 0x6b, 0x8b, 0xf4, 0x03, 0x8f, 0x09, 0xc6, 0xd8, 0x55, 0x0e,
-- 0x21, 0x48, 0xe4, 0x88, 0xa6, 0x38, 0xbb, 0x61, 0xd3, 0x94, 0x13, 0x0d,
-- 0x3e, 0xac, 0x0e, 0x8a, 0x01, 0xa1, 0xe1, 0x69, 0xdb, 0x6d, 0x99, 0x92,
-- 0x79, 0x8f, 0x7c, 0x34, 0xad, 0x3f, 0xce, 0x0f, 0xd0, 0x71, 0xb3, 0x4b,
-- 0x77, 0x26, 0xdb, 0xe3, 0x5b, 0xdc, 0x4d, 0xac, 0x73, 0xfe, 0xd5, 0xba,
-- 0x0e, 0xcb, 0x7e, 0x3a, 0xc8, 0x03, 0x16, 0x5d, 0xa5, 0xb1, 0x4b, 0x8b,
-- 0x38, 0x5e, 0xb1, 0x14, 0xdd, 0x61, 0xc0, 0x51, 0xe7, 0xa5, 0x54, 0xea,
-- 0x35, 0x44, 0x67, 0x6c, 0xc7, 0xea, 0xc5, 0xd1, 0xa7, 0xfd, 0x10, 0x85,
-- 0xbf, 0x87, 0xc8, 0x5f, 0x7e, 0x8d, 0xec, 0x38, 0x3c, 0xc0, 0xf0, 0xac,
-- 0xe8, 0x7b, 0x8b, 0xe5, 0x4d, 0x32, 0x2e, 0xfd, 0x24, 0xb4, 0x80, 0x50,
-- 0xf1, 0xc7, 0x4f, 0x96, 0x8c, 0x7c, 0xe5, 0x1a, 0x97, 0xb3, 0x47, 0x0e,
-- 0x39, 0x3d, 0xe0, 0x67, 0xc5, 0x55, 0x58, 0x82, 0x59, 0x45, 0xe7, 0x52,
-- 0x91, 0x1d, 0x56, 0xac, 0xfc, 0xaa, 0x11, 0x34, 0xa8, 0x70, 0xf5, 0x48,
-- 0xf4, 0xc9, 0xce, 0xe1, 0xf8, 0xc5, 0x65, 0x3f, 0xc6, 0xbd, 0x1f, 0x59,
-- 0x77, 0x73, 0x3a, 0x5c, 0xff, 0x96, 0x2e, 0x4f, 0xdf, 0x41, 0x51, 0xa8,
-- 0x22, 0xcf, 0xfa, 0x73, 0x4c, 0x1b, 0x76, 0xc0, 0x7f, 0x15, 0x83, 0x60,
-- 0x6d, 0x6d, 0x1a, 0x1c, 0xc2, 0x41, 0x89, 0x48, 0x72, 0x44, 0x12, 0xbd,
-- 0xc4, 0x3f, 0x5f, 0x74, 0x62, 0x6e, 0x9b, 0x86, 0xb5, 0xc5, 0xc0, 0x5f,
-- 0x1c, 0x65, 0x09, 0xb7, 0x21, 0x73, 0x13, 0xc6, 0x72, 0xd5, 0x50, 0xa4,
-- 0x0d, 0x0e, 0x5b, 0x4b, 0xa5, 0x74, 0x12, 0xb2, 0x30, 0x8a, 0x71, 0x64,
-- 0x59, 0xe5, 0x9c, 0x9d, 0x4d, 0x0b, 0xfe, 0x4f, 0x13, 0x68, 0xeb, 0x5b,
-- 0xa4, 0xad, 0xf7, 0x93, 0xa6, 0x4e, 0x66, 0xc2, 0x35, 0x97, 0xb3, 0xd5,
-- 0x14, 0x08, 0xee, 0xba, 0xed, 0xf3, 0x3d, 0xe3, 0x8e, 0x5d, 0xcd, 0x76,
-- 0x4f, 0x0a, 0xf0, 0xef, 0x7a, 0x41, 0x9e, 0x11, 0x59, 0xa3, 0x05, 0xdc,
-- 0x1e, 0x3c, 0x7d, 0xf1, 0xa2, 0x71, 0xa5, 0x85, 0x9a, 0xf3, 0xb3, 0xed,
-- 0x6d, 0xc1, 0xa9, 0x6d, 0xbf, 0x46, 0x5f, 0x0c, 0x5e, 0xe0, 0xc5, 0xe6,
-- 0x6b, 0x02, 0x71, 0xbd, 0xfa, 0xbd, 0x01, 0x7f, 0xd3, 0xd1, 0x1d, 0xb4,
-- 0xfb, 0x95, 0x6f, 0xbd, 0xe0, 0xee, 0x3a, 0xde, 0xc2, 0xc3, 0xb2, 0x8c,
-- 0xc5, 0xe5, 0x25, 0x83, 0x34, 0xf2, 0x93, 0x52, 0xd3, 0xb5, 0x28, 0xef,
-- 0xd2, 0x72, 0x12, 0x4f, 0x77, 0xbb, 0x3f, 0xd8, 0x59, 0x35, 0x5d, 0xd8,
-- 0x04, 0x78, 0x24, 0xd8, 0x4f, 0xd6, 0xa0, 0x48, 0x78, 0xde, 0xf8, 0x66,
-- 0xb3, 0x6b, 0xf6, 0x9f, 0x6d, 0x6f, 0xf7, 0x9f, 0xf3, 0xbf, 0x2f, 0x5e,
-- 0xac, 0x74, 0x50, 0xf9, 0x3e, 0x9e, 0xd8, 0xd4, 0x1a, 0xa3, 0xa5, 0x76,
-- 0x3a, 0x5a, 0xdf, 0xa1, 0x56, 0x77, 0x5e, 0xbc, 0xe8, 0x73, 0x2f, 0xcf,
-- 0x3e, 0xa9, 0xf5, 0xfa, 0xae, 0xf0, 0x76, 0x16, 0x7e, 0xdd, 0xd3, 0x63,
-- 0xd5, 0x9a, 0x01, 0x6b, 0x03, 0xaf, 0x80, 0xdc, 0x1b, 0x64, 0x3a, 0xfb,
-- 0x08, 0xef, 0x30, 0x10, 0x17, 0x51, 0x02, 0x0b, 0xc0, 0x04, 0xc1, 0x32,
-- 0x9a, 0x9a, 0xc2, 0x92, 0xfa, 0x10, 0x0b, 0x33, 0xe6, 0xfb, 0xb4, 0x0b,
-- 0xc9, 0xb5, 0x99, 0xe4, 0x57, 0x0c, 0x1c, 0x6c, 0xf9, 0xc1, 0x55, 0xb2,
-- 0x41, 0xf4, 0x22, 0x00, 0x90, 0x82, 0x30, 0xab, 0xce, 0xcd, 0x75, 0x44,
-- 0x03, 0x0a, 0x46, 0xd4, 0x3a, 0x6b, 0x13, 0xeb, 0xb4, 0x15, 0xd9, 0x74,
-- 0xe2, 0x9c, 0x7e, 0x7a, 0x89, 0xc8, 0x73, 0x03, 0x79, 0x42, 0x0e, 0x1a,
-- 0x54, 0xc0, 0x8f, 0x43, 0x29, 0x7a, 0xc4, 0xb1, 0x18, 0xad, 0x3e, 0x13,
-- 0x0f, 0xf0, 0xeb, 0x31, 0xe9, 0x04, 0x8c, 0x4e, 0xc2, 0xff, 0xfc, 0x54,
-- 0xd7, 0xab, 0xa0, 0xd0, 0x8e, 0x99, 0x97, 0xc2, 0x1a, 0xa5, 0x93, 0xcc,
-- 0x4a, 0x7e, 0x14, 0x0d, 0x04, 0x36, 0xf7, 0xba, 0x98, 0x70, 0x96, 0x12,
-- 0x93, 0xee, 0x0f, 0xd9, 0x8f, 0x3e, 0x61, 0x14, 0x7e, 0x4a, 0x56, 0x68,
-- 0xef, 0xd2, 0x32, 0xb3, 0x54, 0x77, 0x52, 0xb4, 0xed, 0xec, 0xbb, 0xba,
-- 0x74, 0x93, 0x42, 0xa3, 0x59, 0x00, 0xfe, 0x84, 0x0d, 0xb2, 0xe6, 0xac,
-- 0xb8, 0x8a, 0xba, 0x3a, 0x27, 0x88, 0x27, 0x31, 0xe4, 0x3f, 0x31, 0xfa,
-- 0x22, 0xdf, 0x33, 0x0c, 0x02, 0x95, 0x7a, 0x38, 0x3a, 0x65, 0x81, 0xcc,
-- 0x5f, 0x6b, 0x05, 0xdc, 0x5f, 0x65, 0x12, 0xd0, 0x2e, 0x18, 0xf4, 0x96,
-- 0x54, 0xe8, 0x67, 0x61, 0xa8, 0xc7, 0x60, 0x49, 0xb2, 0xf8, 0x06, 0x4d,
-- 0x59, 0x69, 0xd5, 0x2a, 0xf5, 0x4a, 0x0a, 0x9e, 0x3f, 0xc0, 0xc7, 0x1a,
-- 0x3b, 0xc6, 0x9b, 0xe5, 0x98, 0x20, 0xed, 0x1a, 0xd1, 0x61, 0x18, 0xf5,
-- 0x20, 0xf4, 0x15, 0x98, 0x0b, 0xac, 0xda, 0x43, 0x21, 0x3e, 0xfc, 0xcd,
-- 0x21, 0xc6, 0xc0, 0xf4, 0x29, 0x3b, 0xc1, 0xdd, 0x86, 0x5b, 0x9a, 0x7d,
-- 0xac, 0x51, 0x9d, 0x05, 0x8f, 0xd9, 0xad, 0x74, 0x7e, 0xf4, 0xbf, 0x0e,
-- 0x87, 0x61, 0x64, 0xee, 0x3f, 0xc8, 0xd2, 0x78, 0x16, 0xe4, 0x1d, 0xf1,
-- 0x6b, 0x5d, 0x49, 0x16, 0x01, 0x80, 0x6d, 0xab, 0x6e, 0x99, 0xed, 0x0d,
-- 0x50, 0xdf, 0xae, 0x78, 0x37, 0xe1, 0xe6, 0x75, 0xe5, 0x91, 0x23, 0x24,
-- 0x99, 0x3a, 0x9d, 0x2d, 0x12, 0x6f, 0x95, 0x30, 0xaf, 0x92, 0x80, 0x1b,
-- 0x7a, 0xcc, 0x44, 0x09, 0x63, 0x4e, 0x7d, 0x2c, 0x88, 0x96, 0x8f, 0x6b,
-- 0x0b, 0xd3, 0x3e, 0x91, 0x4e, 0xb6, 0x9d, 0x2b, 0xee, 0x21, 0x57, 0x8d,
-- 0x17, 0x80, 0xfb, 0x0a, 0x4d, 0xc6, 0x7c, 0x13, 0x93, 0x4e, 0x8a, 0xc7,
-- 0x3b, 0x13, 0x5d, 0x05, 0xd7, 0x22, 0xcc, 0x0e, 0x72, 0xc2, 0x90, 0xcc,
-- 0x70, 0x9a, 0x59, 0x0e, 0x3e, 0x3c, 0x89, 0x61, 0x39, 0x8e, 0x8e, 0x7c,
-- 0x83, 0x8a, 0x2e, 0xfc, 0x12, 0x89, 0x34, 0x15, 0x8e, 0xe9, 0x84, 0x2f,
-- 0x48, 0x86, 0x26, 0xb3, 0x9c, 0x75, 0x01, 0x3a, 0xab, 0x82, 0x9a, 0x7d,
-- 0x6a, 0x5e, 0x93, 0x87, 0xa3, 0x92, 0xad, 0x9c, 0x49, 0x0e, 0xeb, 0x02,
-- 0x67, 0x1c, 0xfb, 0x78, 0xed, 0x2a, 0xc6, 0xfe, 0xcf, 0xae, 0x26, 0x21,
-- 0x1c, 0x56, 0x73, 0x15, 0xee, 0x5c, 0x50, 0x5a, 0xb0, 0xbb, 0x79, 0x10,
-- 0x2b, 0x91, 0x4e, 0xd5, 0x6c, 0xc1, 0xb8, 0x4e, 0x30, 0xbe, 0xbb, 0x3c,
-- 0x33, 0x98, 0xd0, 0xa2, 0x99, 0xd6, 0xb0, 0x1e, 0x02, 0x77, 0xc0, 0x55,
-- 0x5a, 0x42, 0x3e, 0x99, 0xc2, 0x25, 0x87, 0xf1, 0xd9, 0x0e, 0x56, 0x6a,
-- 0x86, 0x3c, 0x06, 0x24, 0xb6, 0xb7, 0x9d, 0x83, 0xd4, 0x2f, 0xca, 0xd3,
-- 0xf6, 0x69, 0x25, 0xee, 0xa2, 0x92, 0x50, 0x0d, 0x7f, 0x6a, 0x90, 0x32,
-- 0xc7, 0x61, 0x1c, 0x0f, 0x05, 0x00, 0x5c, 0x8b, 0x64, 0xd1, 0xf0, 0x57,
-- 0x4a, 0x72, 0x16, 0xaf, 0x29, 0x4f, 0xda, 0x25, 0x2a, 0x56, 0xdd, 0x96,
-- 0xda, 0x49, 0x96, 0x5a, 0xd2, 0x37, 0xed, 0x29, 0x97, 0xa1, 0x8e, 0xd2,
-- 0xf6, 0xee, 0xb2, 0x32, 0xf3, 0x70, 0x93, 0x88, 0x96, 0xa2, 0xd3, 0x37,
-- 0x4c, 0xce, 0x0b, 0x7a, 0xbe, 0xa3, 0x1e, 0x88, 0xe5, 0x2f, 0x34, 0xe0,
-- 0xe7, 0x30, 0x1e, 0x5f, 0x7d, 0x92, 0xf3, 0xf3, 0xc4, 0x00, 0xdc, 0x9c,
-- 0x6f, 0x07, 0x8e, 0x0a, 0x2c, 0xb5, 0x34, 0x70, 0xab, 0x59, 0xda, 0x57,
-- 0x26, 0x0a, 0x63, 0x23, 0xb3, 0x9c, 0xde, 0xa0, 0x48, 0x06, 0x00, 0xd0,
-- 0x06, 0xc4, 0x4b, 0xd0, 0xdc, 0xf0, 0x01, 0xc7, 0xfd, 0xce, 0x8b, 0x66,
-- 0x4c, 0x1b, 0x97, 0xa4, 0x99, 0x12, 0x43, 0x7f, 0xc9, 0xce, 0x30, 0xf8,
-- 0xc2, 0xf6, 0x56, 0xe4, 0xf0, 0x9c, 0x3a, 0xc8, 0xa2, 0x31, 0x0d, 0x81,
-- 0x43, 0xd4, 0x35, 0x57, 0x41, 0xe6, 0xe8, 0x27, 0x29, 0x09, 0x14, 0x42,
-- 0x2b, 0xe2, 0x1c, 0x5b, 0xa4, 0x79, 0x39, 0x8c, 0x3c, 0x6c, 0x5a, 0xf9,
-- 0x05, 0x55, 0x57, 0xef, 0x0d, 0x49, 0xce, 0x95, 0x97, 0xd4, 0x6a, 0x8a,
-- 0x12, 0x0a, 0xb9, 0x51, 0x6d, 0x1a, 0x64, 0xe1, 0x0a, 0xb9, 0xbd, 0x91,
-- 0x0f, 0xa3, 0x28, 0xdc, 0xb0, 0x35, 0x70, 0x62, 0xe4, 0x5d, 0x5e, 0x59,
-- 0x25, 0x59, 0x04, 0xc5, 0x60, 0xca, 0x93, 0x00, 0xf7, 0x3d, 0x8a, 0x9f,
-- 0x19, 0x29, 0x1c, 0xed, 0x50, 0x72, 0x59, 0xf9, 0xfc, 0xf3, 0xc1, 0xa2,
-- 0xfe, 0x0b, 0x49, 0xdf, 0xdb, 0xca, 0xea, 0xf1, 0x96, 0x80, 0x99, 0x80,
-- 0xc4, 0xe7, 0x00, 0xd3, 0x73, 0xda, 0x41, 0x54, 0x4e, 0x37, 0x72, 0xf0,
-- 0x88, 0xf9, 0x21, 0xa8, 0x46, 0x14, 0xe4, 0xe3, 0x80, 0xa3, 0x9a, 0x47,
-- 0xb1, 0xc3, 0x40, 0x7b, 0x69, 0xc0, 0x20, 0xc1, 0xa2, 0x3b, 0xd7, 0x9b,
-- 0x01, 0x86, 0x34, 0x2b, 0x6f, 0xd0, 0x2b, 0xbe, 0x02, 0x56, 0x07, 0xf5,
-- 0x72, 0xbd, 0x7b, 0x77, 0xeb, 0xb8, 0x50, 0xaf, 0x26, 0x16, 0x98, 0x03,
-- 0xad, 0x0a, 0x36, 0xbe, 0xcb, 0xf4, 0xce, 0xa7, 0x07, 0x23, 0x90, 0xb8,
-- 0x2d, 0x4b, 0xc8, 0x05, 0x2e, 0xc2, 0x23, 0xa8, 0x5f, 0x96, 0x32, 0xa9,
-- 0xd1, 0x3d, 0x3e, 0xa3, 0x94, 0xad, 0xce, 0x13, 0xfd, 0xc4, 0x25, 0xe8,
-- 0x74, 0x04, 0x3e, 0xe9, 0xe6, 0x3e, 0x1c, 0xbc, 0xb2, 0x33, 0x7c, 0xd2,
-- 0x3c, 0x03, 0xac, 0x11, 0x76, 0xa1, 0xc9, 0x43, 0x88, 0x03, 0x27, 0x04,
-- 0x00, 0x3e, 0x62, 0x93, 0x24, 0xe1, 0x84, 0x2d, 0x0c, 0x99, 0x85, 0xa9,
-- 0xc0, 0xfd, 0x2d, 0x09, 0xec, 0xcc, 0x6d, 0x14, 0x76, 0x3f, 0x86, 0xdf,
-- 0x0a, 0xfc, 0x47, 0xb9, 0xd5, 0x42, 0x92, 0xce, 0x71, 0x25, 0x7b, 0x9d,
-- 0x48, 0xe6, 0xac, 0x96, 0x63, 0xe2, 0x65, 0x7c, 0x54, 0x96, 0x8b, 0x61,
-- 0x8c, 0x75, 0xef, 0xe2, 0x95, 0xf4, 0x5d, 0xea, 0x7e, 0x3b, 0x4c, 0x7e,
-- 0x43, 0xea, 0x87, 0x46, 0x92, 0x56, 0x56, 0x67, 0xc8, 0x82, 0x3d, 0x22,
-- 0x9e, 0x08, 0x56, 0x0a, 0x90, 0x58, 0x37, 0x65, 0x9d, 0xb3, 0x66, 0xaf,
-- 0x08, 0x9e, 0xcd, 0x1e, 0x2f, 0x8a, 0xd4, 0xa2, 0xe9, 0x9b, 0x2f, 0xe0,
-- 0xe9, 0xc7, 0x8f, 0xf1, 0x4e, 0xf8, 0xa2, 0xa9, 0xd0, 0x15, 0xd5, 0x51,
-- 0xfc, 0xec, 0xe3, 0xc7, 0xe6, 0x97, 0x0f, 0x94, 0xc3, 0x64, 0xd9, 0x61,
-- 0x54, 0x48, 0xba, 0xbd, 0xac, 0x54, 0x1a, 0xac, 0xa2, 0x41, 0x8e, 0x2a,
-- 0x52, 0xd8, 0x5d, 0x9a, 0x77, 0xe2, 0x41, 0xaa, 0xf6, 0x27, 0x1c, 0xa9,
-- 0xbe, 0xce, 0xfc, 0x35, 0xc1, 0xf0, 0x2b, 0xd7, 0x74, 0x2a, 0x05, 0x91,
-- 0x5f, 0x89, 0xde, 0x55, 0xc8, 0x5c, 0x6a, 0xf6, 0x52, 0x3b, 0x48, 0x21,
-- 0x95, 0xc2, 0x69, 0x80, 0xc2, 0x5e, 0xce, 0xeb, 0x7c, 0xca, 0xef, 0xa0,
-- 0x78, 0x14, 0xbd, 0xbe, 0x43, 0xeb, 0x9f, 0xcf, 0x97, 0xac, 0x53, 0x69,
-- 0xc5, 0x7b, 0xee, 0xd0, 0xce, 0x62, 0xe7, 0xb2, 0x4f, 0xd3, 0xfb, 0xc4,
-- 0xf9, 0xf5, 0xad, 0x72, 0x66, 0x00, 0x05, 0x80, 0x71, 0x09, 0xee, 0x96,
-- 0xe5, 0x41, 0x61, 0x2d, 0x06, 0x78, 0xb5, 0xab, 0x34, 0x95, 0xdd, 0x41,
-- 0x9a, 0xf4, 0x95, 0x7d, 0xa4, 0xc5, 0x96, 0x50, 0x3f, 0x49, 0x5d, 0x24,
-- 0x45, 0x8f, 0x6f, 0x99, 0xab, 0xa2, 0xa4, 0x0d, 0x9d, 0xa9, 0xd4, 0x21,
-- 0x41, 0x8b, 0x51, 0xd0, 0x80, 0x74, 0xe5, 0xaa, 0x4a, 0x49, 0x00, 0xa9,
-- 0x14, 0x24, 0x80, 0x77, 0xb0, 0xa8, 0x55, 0x4e, 0xb5, 0x62, 0x0a, 0x58,
-- 0x5d, 0x1b, 0xf5, 0x43, 0x57, 0xd1, 0x6e, 0x78, 0x0c, 0xff, 0xf1, 0x39,
-- 0x3f, 0xc1, 0x1a, 0x3d, 0x50, 0x0b, 0xcb, 0x04, 0xe0, 0x6a, 0x9a, 0x65,
-- 0x0b, 0x8d, 0xaa, 0xb0, 0x52, 0xaf, 0x32, 0x2d, 0x3d, 0x86, 0x22, 0x02,
-- 0x28, 0x15, 0xaa, 0x5a, 0xb3, 0xea, 0x80, 0xeb, 0xed, 0xcd, 0x9e, 0x27,
-- 0xbe, 0x67, 0x9c, 0xa2, 0x5a, 0xb7, 0xcf, 0xd5, 0x86, 0xa8, 0x86, 0x26,
-- 0xce, 0x74, 0x9f, 0x48, 0xb7, 0x65, 0xba, 0xca, 0xba, 0x6d, 0x8e, 0x64,
-- 0x74, 0xad, 0x37, 0x87, 0x0d, 0x29, 0x29, 0x86, 0x8b, 0x11, 0xdf, 0x2b,
-- 0xe4, 0xc1, 0x4c, 0x2a, 0xc4, 0xb3, 0xe0, 0xa3, 0xec, 0x0f, 0x41, 0xa5,
-- 0x8a, 0x50, 0x39, 0x0c, 0x58, 0x0b, 0xe3, 0xc7, 0x63, 0x09, 0x23, 0x56,
-- 0x8b, 0xc0, 0xef, 0x96, 0x1a, 0x61, 0xba, 0xba, 0x8d, 0xdc, 0x53, 0x1b,
-- 0x8f, 0x7d, 0xe8, 0x29, 0x20, 0x06, 0x64, 0xff, 0x67, 0x11, 0xc4, 0xa3,
-- 0xf5, 0xd1, 0xc4, 0x94, 0x28, 0xdb, 0xcc, 0x0f, 0x6a, 0x54, 0x0f, 0xc7,
-- 0x45, 0xf2, 0x84, 0xbc, 0x63, 0x5c, 0xd8, 0x8e, 0xdb, 0x73, 0x55, 0xa1,
-- 0x22, 0x33, 0x98, 0xf2, 0x15, 0x1b, 0x15, 0x00, 0x1e, 0x52, 0x9e, 0x06,
-- 0x17, 0x19, 0xdb, 0x60, 0x04, 0x21, 0x1d, 0xda, 0x26, 0x7f, 0x0c, 0x6c,
-- 0x50, 0x8d, 0x13, 0x41, 0xef, 0x11, 0x62, 0x02, 0x40, 0xc3, 0x85, 0xdd,
-- 0x4c, 0xc2, 0x82, 0x41, 0x5a, 0x2f, 0xe8, 0x5d, 0xc1, 0xb9, 0xcc, 0xae,
-- 0x1a, 0x80, 0x6b, 0x47, 0xdf, 0x8c, 0xa1, 0xc1, 0xb5, 0x9d, 0x4c, 0x1a,
-- 0xe8, 0x37, 0x6a, 0x0d, 0xdb, 0xa0, 0x91, 0xa5, 0x2e, 0x40, 0x61, 0x82,
-- 0xd8, 0xa7, 0x77, 0x5c, 0x47, 0xc4, 0x9a, 0x5c, 0x6e, 0xec, 0xb8, 0x44,
-- 0xd4, 0x03, 0xcf, 0xa7, 0xa3, 0xba, 0x11, 0x76, 0x80, 0x1a, 0xc9, 0x19,
-- 0xd6, 0xf4, 0xa2, 0x50, 0x8e, 0x12, 0xd5, 0x4d, 0x94, 0x1c, 0x47, 0x1d,
-- 0xcd, 0x7a, 0xe5, 0x4a, 0xbb, 0xf0, 0xeb, 0x52, 0x72, 0x01, 0x55, 0xef,
-- 0x82, 0xb2, 0x77, 0x43, 0xb9, 0x18, 0x9b, 0x16, 0x8a, 0x08, 0x4d, 0x13,
-- 0xb4, 0x5b, 0x0b, 0xfe, 0x9c, 0x95, 0x55, 0x73, 0x8c, 0xf6, 0x9f, 0xc8,
-- 0xa4, 0x2a, 0x94, 0xfa, 0xcc, 0xa7, 0x71, 0xc4, 0xfd, 0x39, 0x3e, 0x14,
-- 0x5d, 0xec, 0x6f, 0xcb, 0x9c, 0x67, 0x24, 0xe9, 0xeb, 0xaf, 0x51, 0x0e,
-- 0xbb, 0xd2, 0xd8, 0xdd, 0x2b, 0x48, 0x62, 0x1a, 0x46, 0x54, 0x2a, 0x57,
-- 0x59, 0x51, 0xe4, 0x9e, 0xef, 0x10, 0x01, 0xf9, 0x07, 0xb4, 0xf3, 0x8c,
-- 0x2e, 0xa9, 0xa1, 0x43, 0x28, 0x26, 0x86, 0xd0, 0x01, 0xde, 0xad, 0x86,
-- 0x9b, 0xea, 0x26, 0x96, 0x40, 0xfb, 0x8d, 0xf8, 0x71, 0x38, 0xed, 0xd5,
-- 0x09, 0x51, 0x73, 0x46, 0x02, 0x69, 0x7e, 0x5b, 0x02, 0xb0, 0x63, 0x55,
-- 0x6c, 0xb9, 0x29, 0x0b, 0x4d, 0x6e, 0x93, 0x4d, 0x23, 0x4c, 0xaf, 0x4a,
-- 0xab, 0xe9, 0x20, 0x6f, 0x13, 0xbe, 0x80, 0xc7, 0xf9, 0xe2, 0xe2, 0xbe,
-- 0x76, 0x03, 0x27, 0x34, 0x9d, 0xef, 0x93, 0x26, 0x1d, 0x23, 0xca, 0x3d,
-- 0xc4, 0x6e, 0x9e, 0xec, 0x34, 0x54, 0xa1, 0x73, 0x6c, 0x05, 0x2d, 0xeb,
-- 0x00, 0x8b, 0xb8, 0x02, 0xd7, 0xd5, 0xb3, 0xf3, 0x41, 0x25, 0x52, 0x5c,
-- 0x20, 0x6d, 0x61, 0x53, 0x2c, 0x86, 0xdd, 0x90, 0x45, 0xf9, 0x10, 0x46,
-- 0x95, 0x71, 0x11, 0xbf, 0xd0, 0x98, 0x73, 0x35, 0x95, 0x60, 0x29, 0x03,
-- 0x38, 0x11, 0xb0, 0x13, 0x81, 0x39, 0xb9, 0x60, 0x09, 0x51, 0x42, 0xf4,
-- 0x38, 0x95, 0xf6, 0xe2, 0xf8, 0x3c, 0x50, 0x01, 0xbc, 0xf9, 0x20, 0xe6,
-- 0x3c, 0x9c, 0x76, 0x26, 0xb2, 0x33, 0x4c, 0x91, 0x28, 0x75, 0x99, 0x85,
-- 0xe5, 0x40, 0xad, 0xd8, 0xa5, 0x98, 0x56, 0xad, 0x22, 0x81, 0xda, 0xcd,
-- 0xda, 0x14, 0x29, 0x5d, 0x87, 0x36, 0x0a, 0x49, 0xf7, 0xa6, 0xb1, 0x0f,
-- 0x2c, 0xf9, 0x9c, 0x79, 0x04, 0x66, 0x43, 0x2c, 0xed, 0x6f, 0x22, 0x0a,
-- 0xa8, 0x0a, 0x30, 0x88, 0xac, 0x20, 0x75, 0xc2, 0x20, 0x7a, 0x53, 0x60,
-- 0xd4, 0x64, 0xf3, 0x71, 0x79, 0xdf, 0xc0, 0x68, 0x9b, 0x7c, 0x42, 0x31,
-- 0xaf, 0xa6, 0xf2, 0xc0, 0x80, 0x80, 0xcc, 0x94, 0x18, 0x05, 0x57, 0x6b,
-- 0xbc, 0xd1, 0x27, 0x6e, 0x8c, 0xcd, 0x73, 0xcd, 0x9b, 0x3f, 0x8c, 0x9a,
-- 0x4b, 0xeb, 0x06, 0xa0, 0x26, 0xab, 0x23, 0x72, 0x30, 0x4c, 0x8f, 0x0a,
-- 0x8a, 0x98, 0x8e, 0xd4, 0xec, 0x75, 0x2b, 0xf4, 0x15, 0x4b, 0x03, 0x97,
-- 0x4b, 0x98, 0x45, 0x35, 0x6d, 0xae, 0xb5, 0xdb, 0x58, 0x9f, 0x8e, 0x60,
-- 0xb9, 0x7e, 0xa2, 0x04, 0xa0, 0x14, 0xa0, 0x24, 0x40, 0x9b, 0xa9, 0x70,
-- 0xa3, 0x21, 0x05, 0x68, 0xda, 0xff, 0x8a, 0xfd, 0xbf, 0x90, 0x73, 0x58,
-- 0xab, 0xa9, 0xe4, 0x53, 0xb7, 0xdd, 0x6d, 0xf4, 0x27, 0x57, 0x1d, 0x5c,
-- 0xb9, 0x1b, 0x7e, 0x3b, 0x74, 0x3f, 0x60, 0x41, 0xf3, 0x54, 0x03, 0x1a,
-- 0xd9, 0x48, 0xb5, 0xdd, 0x58, 0x20, 0x78, 0x36, 0x7c, 0xb6, 0x39, 0xfc,
-- 0xd4, 0x6d, 0x71, 0x32, 0xb6, 0x6e, 0x4a, 0x0c, 0xd3, 0x99, 0x3e, 0xb2,
-- 0x25, 0x10, 0x60, 0x19, 0x7c, 0x28, 0x8a, 0x56, 0x57, 0xa0, 0xdc, 0x50,
-- 0xbe, 0xaa, 0x1b, 0xa1, 0xcf, 0x7c, 0x91, 0xa0, 0x04, 0x43, 0x8a, 0xfc,
-- 0x81, 0xb0, 0xae, 0xec, 0xe5, 0x34, 0xbd, 0xeb, 0x82, 0x0c, 0xc5, 0x61,
-- 0x96, 0x72, 0x54, 0xb4, 0xda, 0x61, 0xf8, 0x6c, 0xe5, 0xa9, 0xf7, 0xab,
-- 0xc3, 0xfd, 0xf3, 0x8b, 0x61, 0xfb, 0xca, 0x89, 0xd2, 0x59, 0x78, 0xfb,
-- 0xcc, 0x4c, 0x04, 0xae, 0xc0, 0x86, 0xc5, 0x84, 0xcb, 0x5e, 0x96, 0x0e,
-- 0xae, 0x89, 0x87, 0x27, 0xa3, 0xb3, 0xf6, 0x39, 0xff, 0xa6, 0x03, 0x40,
-- 0x07, 0x12, 0x22, 0x1c, 0x9e, 0xa3, 0x7c, 0xca, 0x33, 0xa0, 0x71, 0x11,
-- 0xeb, 0x9d, 0x69, 0x9c, 0x3f, 0x97, 0x1e, 0x4e, 0x8a, 0x29, 0x9b, 0x44,
-- 0xa4, 0x9b, 0x16, 0x78, 0x6e, 0x54, 0x0a, 0x70, 0xff, 0xec, 0xdd, 0xd1,
-- 0xbb, 0xaf, 0xf7, 0x1a, 0x77, 0xe6, 0xb4, 0x28, 0xaa, 0x4c, 0x7d, 0xf4,
-- 0x82, 0xdb, 0x2b, 0xab, 0x25, 0xf9, 0x89, 0x0e, 0xf1, 0xa1, 0xe3, 0x12,
-- 0x67, 0x38, 0x2d, 0x01, 0x27, 0xac, 0x6e, 0xc4, 0x34, 0xa7, 0x65, 0x23,
-- 0x58, 0xe2, 0x19, 0x3e, 0x5c, 0xc3, 0xb3, 0x2a, 0xc6, 0x37, 0xd5, 0x53,
-- 0x31, 0x76, 0x7d, 0x72, 0xe4, 0xf7, 0xf9, 0xc9, 0xc1, 0xb7, 0xe7, 0x4f,
-- 0x83, 0xb8, 0xef, 0xba, 0x65, 0xb8, 0x51, 0xa4, 0x71, 0xbc, 0x11, 0xa7,
-- 0x49, 0x3e, 0x12, 0xf4, 0xfd, 0x40, 0xcd, 0xe5, 0xce, 0x63, 0xe5, 0xcb,
-- 0x13, 0xb0, 0x29, 0x84, 0x4d, 0x5d, 0x79, 0xb1, 0x74, 0x98, 0xcd, 0x01,
-- 0x5c, 0x52, 0xdf, 0x6a, 0x15, 0x74, 0x54, 0x20, 0xb3, 0xca, 0x05, 0x41,
-- 0xad, 0x82, 0x28, 0x3a, 0x8e, 0x61, 0x20, 0xc4, 0x58, 0xf2, 0x59, 0xbf,
-- 0x2d, 0xee, 0x10, 0xa7, 0x20, 0xf9, 0x6f, 0xba, 0xe4, 0x9e, 0x81, 0x17,
-- 0xe1, 0x00, 0x35, 0x56, 0x15, 0x70, 0xd4, 0x95, 0xb7, 0x68, 0x72, 0x86,
-- 0x0a, 0xf1, 0x43, 0xd5, 0xcd, 0x4e, 0xf5, 0xa9, 0xbd, 0xad, 0x2d, 0x6f,
-- 0xce, 0x92, 0xe0, 0xc2, 0xe1, 0xef, 0xa7, 0x15, 0x48, 0x9f, 0xe9, 0x6f,
-- 0x22, 0x8a, 0xf4, 0xd3, 0xa8, 0x22, 0x92, 0x92, 0x7f, 0x25, 0x55, 0x7c,
-- 0xbe, 0x8a, 0xd9, 0xea, 0xf4, 0x7f, 0x05, 0x4d, 0x18, 0xda, 0xfb, 0x7f,
-- 0x27, 0xaa, 0x48, 0x3f, 0x8d, 0x2c, 0xd2, 0x06, 0x5d, 0xac, 0xc8, 0x49,
-- 0xfe, 0x3d, 0xeb, 0x17, 0x62, 0x18, 0xcf, 0x06, 0x0e, 0x8d, 0xf9, 0x31,
-- 0x8a, 0x69, 0x98, 0x68, 0x59, 0x48, 0x00, 0xd1, 0x3c, 0xd3, 0xd9, 0x6e,
-- 0xc0, 0x12, 0x9c, 0x85, 0xa0, 0x5d, 0x66, 0x8c, 0xef, 0x06, 0x85, 0xc6,
-- 0xdd, 0xb7, 0xf9, 0x28, 0x07, 0x72, 0xb4, 0x25, 0xf8, 0x41, 0x42, 0x5d,
-- 0x51, 0x38, 0xf3, 0xaf, 0xa7, 0xb5, 0xff, 0x23, 0x38, 0xd0, 0x33, 0x8f,
-- 0xa5, 0xfd, 0x29, 0x34, 0xf7, 0xec, 0xda, 0xd1, 0x5c, 0x57, 0x41, 0x3f,
-- 0xe3, 0x4d, 0xff, 0x68, 0x92, 0x6b, 0xc9, 0x1e, 0x1d, 0x72, 0x95, 0xad,
-- 0x3a, 0xdc, 0xd4, 0x25, 0xa9, 0xd8, 0x88, 0x6e, 0x08, 0x21, 0x9b, 0x35,
-- 0x09, 0x24, 0xc6, 0x76, 0x54, 0x3a, 0x76, 0xa9, 0xbc, 0x81, 0xf5, 0x58,
-- 0xd0, 0x90, 0x68, 0x04, 0xd1, 0x9d, 0xf9, 0xec, 0xb7, 0xb0, 0x47, 0xa3,
-- 0x74, 0xce, 0xa7, 0x1f, 0x49, 0xd2, 0xb0, 0xd0, 0xb7, 0x1c, 0x0c, 0x71,
-- 0x13, 0x75, 0xc4, 0x14, 0xc2, 0x19, 0x0c, 0x00, 0x58, 0x4b, 0xb2, 0x7a,
-- 0x94, 0xd6, 0x1b, 0x7c, 0xb4, 0x23, 0xb3, 0x60, 0x55, 0x82, 0xd5, 0xff,
-- 0x29, 0x3c, 0xf4, 0xd9, 0xa7, 0x91, 0xf3, 0x3f, 0xe3, 0x66, 0xfd, 0x6f,
-- 0x44, 0xbc, 0x1d, 0xdb, 0xbc, 0xa1, 0xc8, 0x58, 0xa2, 0x19, 0xca, 0xc5,
-- 0xb2, 0x29, 0x38, 0x27, 0x4e, 0x84, 0xc7, 0x22, 0x1e, 0x9d, 0x7e, 0xf7,
-- 0x5c, 0x02, 0xdf, 0xce, 0x63, 0x30, 0xe7, 0xe3, 0xd7, 0xfb, 0xa7, 0x1d,
-- 0x37, 0xc3, 0x15, 0x29, 0xfc, 0x8b, 0x7c, 0xc0, 0x6a, 0x15, 0x9b, 0xe0,
-- 0x5e, 0xea, 0x2f, 0x4c, 0xe2, 0x5d, 0x46, 0x46, 0x33, 0x92, 0xda, 0xf3,
-- 0x82, 0x16, 0x2b, 0x1e, 0x63, 0xcc, 0x52, 0xf5, 0x33, 0x76, 0x38, 0x8d,
-- 0x67, 0x93, 0x2d, 0xf9, 0x73, 0x70, 0xf9, 0xb7, 0x49, 0xac, 0xea, 0x85,
-- 0x50, 0xac, 0x8d, 0xb4, 0x38, 0x85, 0xb7, 0xcd, 0xeb, 0x55, 0xe5, 0x55,
-- 0xab, 0xbd, 0xe0, 0x94, 0x27, 0x9a, 0xe9, 0x09, 0x18, 0xd3, 0x55, 0xf3,
-- 0x12, 0x9a, 0x8b, 0xf0, 0xb6, 0x05, 0x9d, 0x1e, 0x38, 0xd7, 0xfc, 0xf5,
-- 0x56, 0xd0, 0x94, 0x6b, 0xbf, 0xe3, 0x33, 0x6b, 0xbd, 0x23, 0x81, 0x87,
-- 0x3b, 0x93, 0xb6, 0x18, 0xe1, 0x4d, 0x47, 0x15, 0xf4, 0x13, 0x7f, 0x09,
-- 0x7b, 0x03, 0xe7, 0xfe, 0x57, 0x11, 0xee, 0x3d, 0xbb, 0xf3, 0xfd, 0x5d,
-- 0x2b, 0xcf, 0xbb, 0x7d, 0x97, 0x2a, 0x09, 0x8a, 0x47, 0x36, 0x1f, 0xe7,
-- 0x8b, 0x74, 0xaa, 0x49, 0x86, 0x0f, 0x55, 0xeb, 0x68, 0x17, 0x3b, 0x68,
-- 0x4e, 0x88, 0x94, 0xed, 0x76, 0x65, 0xc4, 0x26, 0xfc, 0xab, 0x3c, 0x97,
-- 0x58, 0x02, 0x2f, 0xf6, 0x0e, 0xc7, 0x53, 0xb5, 0x74, 0x09, 0xfb, 0x47,
-- 0x46, 0x29, 0x1e, 0x89, 0x93, 0x92, 0xe0, 0xa0, 0x06, 0xf4, 0xd0, 0xce,
-- 0x8b, 0xe7, 0x3b, 0x49, 0xc5, 0xc5, 0xed, 0x73, 0xae, 0x08, 0x25, 0x0d,
-- 0x3c, 0x1d, 0x3e, 0xd9, 0x7a, 0x3a, 0x7c, 0x9a, 0xf8, 0xba, 0x91, 0xa3,
-- 0xcc, 0x3a, 0x20, 0xc6, 0x19, 0xa1, 0x32, 0xc8, 0x79, 0x7a, 0x77, 0x78,
-- 0xc0, 0xac, 0xda, 0x12, 0x4e, 0x5b, 0xea, 0x9d, 0x81, 0x02, 0xd1, 0xaa,
-- 0x0d, 0x5d, 0x8e, 0x6a, 0x97, 0x52, 0xda, 0xb1, 0x1c, 0x89, 0xd1, 0x26,
-- 0x42, 0xf4, 0xe7, 0x6e, 0x24, 0xcc, 0x2c, 0x85, 0x4c, 0x75, 0x65, 0xba,
-- 0x20, 0x28, 0xc2, 0x45, 0x09, 0x96, 0x6c, 0xf8, 0x70, 0xfd, 0x89, 0xaa,
-- 0x26, 0x3d, 0xb5, 0xec, 0x8e, 0x12, 0x3a, 0x53, 0x63, 0x24, 0x5c, 0x81,
-- 0x5c, 0xca, 0x56, 0xfc, 0xcc, 0xfa, 0x8a, 0xc5, 0xcf, 0x37, 0x52, 0x2a,
-- 0x2c, 0xf8, 0x05, 0x77, 0x53, 0x07, 0x0a, 0x84, 0x07, 0xd9, 0x96, 0x8a,
-- 0x12, 0xa8, 0xfa, 0xb9, 0x3e, 0x58, 0xb7, 0x4b, 0xca, 0x62, 0x67, 0xb8,
-- 0xb7, 0x5a, 0x2c, 0xa6, 0x6d, 0x14, 0xf2, 0x7f, 0xb8, 0xdc, 0x5a, 0xf3,
-- 0x6d, 0x50, 0x67, 0xd3, 0x79, 0x56, 0x6b, 0x29, 0xb9, 0xe4, 0xe5, 0xc9,
-- 0xe9, 0xc5, 0xab, 0xdb, 0x74, 0x1a, 0xc5, 0x78, 0x30, 0x8a, 0x9f, 0x15,
-- 0xde, 0x73, 0xd6, 0x5c, 0x7e, 0x33, 0x48, 0x8e, 0x3a, 0x77, 0x39, 0x42,
-- 0x41, 0x89, 0xbe, 0x28, 0x17, 0xe8, 0xe2, 0xe2, 0xc7, 0xd3, 0xc3, 0x57,
-- 0x2f, 0xd9, 0x16, 0xfc, 0x05, 0x1b, 0xe4, 0xab, 0x86, 0x69, 0x98, 0x4b,
-- 0xbc, 0xc6, 0x37, 0xe3, 0x0f, 0xaf, 0x8f, 0xce, 0x4f, 0x8f, 0x4f, 0x0e,
-- 0x5e, 0xbd, 0xfc, 0x81, 0x5d, 0x98, 0xb4, 0x7a, 0xf7, 0xc1, 0xbb, 0xee,
-- 0x33, 0x97, 0xee, 0x10, 0x97, 0x5b, 0x3a, 0xfc, 0xfe, 0xc3, 0xe1, 0xbb,
-- 0xef, 0x5e, 0xbd, 0xbc, 0x4d, 0xcb, 0x3e, 0xcf, 0x4f, 0xde, 0x66, 0x93,
-- 0x6c, 0x47, 0xc5, 0xd3, 0x60, 0x8d, 0x2e, 0x50, 0x7f, 0x6b, 0xc1, 0xb1,
-- 0x83, 0x0f, 0x84, 0x95, 0xc9, 0x5d, 0xe6, 0x2b, 0x1c, 0xb5, 0x05, 0xfc,
-- 0x20, 0x8a, 0xad, 0x99, 0xd2, 0xfa, 0xfe, 0xec, 0x78, 0xd8, 0x49, 0x30,
-- 0x0e, 0x03, 0xdc, 0x23, 0xc0, 0xab, 0x6d, 0xc8, 0xb7, 0x0a, 0xb8, 0xf5,
-- 0x03, 0x97, 0xdc, 0xa6, 0x90, 0x95, 0x0f, 0xc6, 0xd0, 0x09, 0xeb, 0xf2,
-- 0xe1, 0xb4, 0xae, 0xf8, 0x98, 0x04, 0xd1, 0xd0, 0x0c, 0x72, 0x64, 0xd0,
-- 0x6f, 0x59, 0x64, 0xca, 0x34, 0x36, 0x79, 0xf9, 0xd8, 0x77, 0xf8, 0xde,
-- 0x21, 0xd4, 0x70, 0x04, 0x08, 0xe6, 0x76, 0x20, 0x40, 0xb9, 0x92, 0xa0,
-- 0xd2, 0x9c, 0x84, 0x30, 0xe2, 0xa2, 0xec, 0x46, 0x49, 0xe7, 0x0a, 0x51,
-- 0xd7, 0x1c, 0x1a, 0x6f, 0xe3, 0x2a, 0x85, 0x7e, 0x9b, 0xc9, 0x0f, 0x96,
-- 0x9a, 0x16, 0x40, 0xd7, 0x77, 0xa4, 0xc7, 0x35, 0xf1, 0x35, 0xc5, 0x13,
-- 0xc9, 0x32, 0x25, 0xe7, 0xee, 0x71, 0xfa, 0xa5, 0x8b, 0x1c, 0x96, 0x8d,
-- 0xf5, 0xe8, 0xcc, 0xb1, 0x2f, 0x13, 0xf5, 0x96, 0xdd, 0x99, 0xb3, 0xc3,
-- 0x56, 0x38, 0x58, 0xea, 0x8d, 0xf3, 0x4d, 0x97, 0xee, 0xc8, 0x2d, 0x9e,
-- 0xbe, 0xbf, 0x08, 0x32, 0x5d, 0xa3, 0x68, 0xb5, 0xe8, 0x10, 0xb6, 0x04,
-- 0x65, 0xbf, 0x50, 0xbd, 0x41, 0xaf, 0x5d, 0xc9, 0xc0, 0x4c, 0xfd, 0xc4,
-- 0x18, 0xb8, 0x64, 0xb0, 0xcf, 0xa4, 0x8f, 0x44, 0x3f, 0x8d, 0x23, 0x96,
-- 0x5c, 0x2f, 0xae, 0xc1, 0x2d, 0x81, 0x48, 0x99, 0x43, 0xdc, 0x0f, 0xfa,
-- 0x19, 0x86, 0xfd, 0x88, 0xe3, 0x6d, 0x33, 0x4a, 0xea, 0xbb, 0x6f, 0x47,
-- 0xea, 0xbb, 0xbe, 0x79, 0x9c, 0x0e, 0xd2, 0x4c, 0x46, 0x06, 0x9b, 0x37,
-- 0xbb, 0x15, 0x46, 0x44, 0x79, 0x1d, 0xa8, 0xfd, 0x72, 0x7d, 0x01, 0x79,
-- 0x5b, 0x4a, 0xf8, 0x72, 0x76, 0x3a, 0x82, 0xbe, 0x0c, 0x52, 0x59, 0xbd,
-- 0x4d, 0xe6, 0x53, 0xb4, 0x66, 0xab, 0x4e, 0xd0, 0x20, 0xd9, 0xc4, 0x8e,
-- 0x45, 0xfd, 0xb1, 0x25, 0x20, 0x33, 0x2b, 0x1c, 0x5c, 0xf8, 0xa8, 0x3d,
-- 0x0e, 0xba, 0xeb, 0x0c, 0xc0, 0x42, 0x41, 0xa7, 0xc1, 0x45, 0x84, 0x47,
-- 0xc6, 0x2f, 0x70, 0xc8, 0x5a, 0x10, 0xca, 0x8e, 0x08, 0x51, 0xde, 0x17,
-- 0xa1, 0x24, 0xcd, 0xb8, 0x81, 0x50, 0x31, 0xd4, 0x00, 0x5a, 0xf6, 0x87,
-- 0xac, 0xc8, 0x6b, 0xae, 0x92, 0xde, 0xd5, 0xb4, 0x18, 0x8d, 0x68, 0x52,
-- 0x3d, 0x87, 0xfd, 0x7e, 0x41, 0x6c, 0xf3, 0x0a, 0x22, 0x6f, 0xdf, 0xd0,
-- 0xea, 0xfc, 0x61, 0x45, 0xcd, 0x14, 0xf4, 0xb5, 0x2a, 0x37, 0x17, 0x7b,
-- 0x6b, 0xc8, 0xe6, 0xb6, 0xaf, 0xa8, 0x69, 0x72, 0x1f, 0x14, 0x5c, 0x43,
-- 0x2c, 0x16, 0x7f, 0x6a, 0xfd, 0x47, 0x61, 0xbc, 0x9c, 0x4b, 0xea, 0xb3,
-- 0x3e, 0x95, 0xf9, 0x80, 0xe5, 0x68, 0x2d, 0x8b, 0xbc, 0x5a, 0x51, 0xae,
-- 0xfe, 0x22, 0xe9, 0xfd, 0x3b, 0x0f, 0x62, 0xa7, 0xcf, 0x3f, 0x77, 0xff,
-- 0xb3, 0x67, 0x15, 0x4b, 0xb8, 0x46, 0x94, 0x0c, 0xbe, 0xe6, 0x22, 0x11,
-- 0x95, 0x95, 0x49, 0xe9, 0xa8, 0x8a, 0xc2, 0x6e, 0xc3, 0x95, 0xad, 0xe7,
-- 0xb3, 0xab, 0x9f, 0x76, 0x06, 0x3b, 0xdb, 0xdb, 0xdb, 0xbf, 0x0c, 0x17,
-- 0xbc, 0x74, 0x97, 0x68, 0x9e, 0x7e, 0x0e, 0x17, 0xf9, 0x98, 0x0d, 0xf9,
-- 0xb4, 0x99, 0x79, 0xca, 0x4d, 0x6f, 0x49, 0x7f, 0x5b, 0xc1, 0xcd, 0x5f,
-- 0x8f, 0x17, 0x83, 0x79, 0xd1, 0x15, 0x22, 0x73, 0xb1, 0x2c, 0xe7, 0x41,
-- 0xb9, 0xbf, 0x0f, 0xef, 0x4e, 0x5e, 0x1f, 0x1e, 0xef, 0xff, 0x68, 0x21,
-- 0xb6, 0x0e, 0x36, 0x81, 0x07, 0xf2, 0x21, 0x4b, 0xab, 0xfb, 0x0f, 0x55,
-- 0x56, 0xd3, 0x97, 0x1b, 0x4f, 0x36, 0x91, 0xf9, 0x1a, 0xd5, 0xd6, 0xbd,
-- 0xca, 0x1a, 0x35, 0xc2, 0x35, 0x62, 0xc9, 0xdf, 0xde, 0xc3, 0xb6, 0xeb,
-- 0xa9, 0x11, 0xf8, 0x5a, 0xb3, 0x37, 0x64, 0x34, 0xbd, 0xa9, 0xf2, 0xbf,
-- 0xd3, 0xbd, 0xc3, 0xd8, 0x7e, 0x71, 0x3c, 0xf3, 0x85, 0x22, 0x28, 0xd4,
-- 0x09, 0xff, 0x96, 0x7c, 0x75, 0xfc, 0x2d, 0x87, 0x91, 0x3b, 0xa5, 0x66,
-- 0x26, 0x29, 0xfb, 0xc9, 0x17, 0xcf, 0x76, 0x76, 0x37, 0x83, 0x3a, 0xea,
-- 0x9c, 0x8c, 0xc2, 0x87, 0x33, 0x72, 0xab, 0xff, 0x5d, 0x03, 0x04, 0x02,
-- 0xae, 0xec, 0x7d, 0x8c, 0x88, 0x6d, 0xb1, 0x5b, 0x0e, 0xa0, 0x73, 0xf0,
-- 0x05, 0xd7, 0x80, 0xf9, 0xe3, 0x44, 0x91, 0x08, 0x2c, 0xe7, 0xc2, 0x67,
-- 0x05, 0x0d, 0x83, 0xf2, 0x80, 0x09, 0x0d, 0x47, 0xf3, 0x4b, 0xba, 0x65,
-- 0x93, 0x7f, 0xb4, 0xac, 0xf3, 0xa8, 0xa7, 0x8a, 0x56, 0x7b, 0x5a, 0xb1,
-- 0x97, 0x98, 0xe5, 0x8f, 0xe4, 0xa5, 0xfd, 0xf6, 0x45, 0x1c, 0x59, 0x97,
-- 0xb0, 0x53, 0x26, 0xc6, 0xb0, 0x81, 0xdc, 0x82, 0xda, 0xc8, 0x1c, 0xd3,
-- 0xe8, 0x4b, 0x9b, 0x84, 0xf9, 0x06, 0x71, 0xf8, 0xa7, 0x9b, 0x57, 0xef,
-- 0xfc, 0xec, 0xb4, 0xd7, 0x57, 0x3d, 0x85, 0x3a, 0x18, 0xd0, 0xdf, 0x34,
-- 0x5e, 0x88, 0xf0, 0xcf, 0xb6, 0x9f, 0x3d, 0xdd, 0x54, 0xa3, 0x07, 0xc6,
-- 0x29, 0x25, 0x25, 0x62, 0xcc, 0x7f, 0x7c, 0xe9, 0xca, 0x73, 0x0a, 0xf6,
-- 0x85, 0x4f, 0xb4, 0x23, 0xd2, 0x6b, 0xce, 0x52, 0x0c, 0x26, 0x7d, 0xc5,
-- 0xb5, 0x5f, 0x19, 0x15, 0xa1, 0x7b, 0x06, 0xb9, 0x0f, 0xc3, 0x8c, 0x4b,
-- 0x27, 0x3f, 0x6d, 0x2d, 0xa4, 0x1b, 0xc3, 0x4b, 0xfb, 0xad, 0x6b, 0x21,
-- 0x7d, 0x21, 0x51, 0x2d, 0x83, 0xe4, 0x50, 0x7e, 0x78, 0x85, 0xdb, 0x0b,
-- 0xac, 0x48, 0x53, 0xab, 0xbd, 0x29, 0xce, 0xff, 0x1e, 0x4e, 0x72, 0xe8,
-- 0x1c, 0xa4, 0x0a, 0x6d, 0xe3, 0x17, 0xd0, 0x32, 0x5c, 0xaa, 0x8e, 0x0a,
-- 0x3c, 0x0f, 0x4f, 0x0f, 0xaf, 0xbf, 0xe4, 0x9f, 0x5d, 0xd3, 0xe2, 0xcf,
-- 0x9d, 0xc6, 0xfe, 0x4f, 0x98, 0x56, 0x30, 0x2f, 0xb7, 0xa2, 0x3a, 0xb7,
-- 0x48, 0x75, 0xae, 0x1f, 0xdf, 0xbb, 0xdb, 0x9d, 0xe1, 0x76, 0xa7, 0x93,
-- 0xf3, 0x0d, 0x17, 0x4d, 0x6a, 0x62, 0x3a, 0xf1, 0x84, 0x0c, 0xfc, 0x95,
-- 0xfd, 0x94, 0x60, 0x10, 0x4e, 0x07, 0x73, 0xb5, 0x8c, 0xbb, 0x81, 0xc6,
-- 0xf8, 0x65, 0x07, 0x74, 0x10, 0x0e, 0xea, 0xc9, 0xd3, 0xe8, 0x64, 0xd2,
-- 0xa0, 0x76, 0x7e, 0xdb, 0xa0, 0x76, 0x7e, 0xd7, 0x41, 0xed, 0xfe, 0xb6,
-- 0x41, 0xed, 0xfe, 0x5e, 0x83, 0x2a, 0x07, 0x96, 0x94, 0xd1, 0x8d, 0x51,
-- 0x7c, 0xa6, 0xe1, 0x5b, 0x29, 0x4b, 0x3c, 0x8c, 0xe8, 0xc7, 0xec, 0xf4,
-- 0x42, 0x39, 0xfa, 0xe0, 0x50, 0xdf, 0xf5, 0x21, 0x34, 0x22, 0x30, 0xc4,
-- 0x91, 0xb3, 0x2a, 0xab, 0xb8, 0x90, 0xc3, 0xaa, 0x59, 0xe4, 0x4e, 0x9c,
-- 0xb5, 0xcb, 0xb9, 0x75, 0xa2, 0xb9, 0xde, 0x08, 0x1c, 0x82, 0x4c, 0x17,
-- 0xcd, 0x73, 0x9c, 0xe5, 0x8a, 0xa0, 0xfa, 0x58, 0x84, 0xf6, 0xf3, 0xe6,
-- 0x84, 0x19, 0x3a, 0xa7, 0x53, 0x27, 0x73, 0x35, 0x25, 0x53, 0x0e, 0xb8,
-- 0xe0, 0xb8, 0x0c, 0x79, 0x38, 0x99, 0x2c, 0x67, 0x0b, 0x83, 0xb5, 0xc8,
-- 0xe7, 0x1a, 0xe4, 0xcb, 0xe3, 0xa5, 0xcb, 0xf9, 0xaa, 0xb0, 0x5b, 0xad,
-- 0x1f, 0x19, 0x76, 0xc6, 0xd3, 0xa5, 0x14, 0x62, 0xca, 0x04, 0x5d, 0x93,
-- 0xc3, 0xfa, 0x83, 0x72, 0xdb, 0x7d, 0x87, 0x2e, 0x01, 0xe1, 0x5b, 0x45,
-- 0x58, 0x11, 0xc1, 0xdf, 0x47, 0xae, 0x74, 0x16, 0x9b, 0x39, 0x2a, 0x85,
-- 0x83, 0xb9, 0x54, 0x63, 0x41, 0xfe, 0x5c, 0x50, 0x93, 0x0c, 0x80, 0x3d,
-- 0xab, 0xed, 0x00, 0xdd, 0x36, 0xea, 0xd0, 0x3e, 0x8d, 0xf8, 0x99, 0xc1,
-- 0xad, 0x56, 0xb5, 0x1e, 0x15, 0x55, 0x26, 0x49, 0x21, 0x58, 0x87, 0xc8,
-- 0x66, 0x54, 0x8d, 0xf3, 0xfc, 0xf7, 0x74, 0x92, 0x49, 0xaf, 0xe8, 0xe6,
-- 0xe1, 0x0d, 0x4b, 0x65, 0xbb, 0x64, 0xb7, 0xc2, 0xcd, 0xf2, 0xbb, 0x25,
-- 0x11, 0x87, 0x6e, 0xbf, 0xfe, 0x5f, 0xb4, 0x61, 0xf4, 0xff, 0x28, 0x3c,
-- 0x5e, 0xe5, 0xb3, 0x7c, 0x9a, 0xc2, 0x98, 0xa4, 0x4b, 0x23, 0x68, 0xb6,
-- 0xd3, 0x2c, 0xe5, 0xcc, 0x74, 0x33, 0x61, 0x5f, 0x67, 0x1f, 0x45, 0xf9,
-- 0x8f, 0x2f, 0x7b, 0x05, 0x4c, 0xba, 0x66, 0xb3, 0x19, 0x9e, 0xdd, 0x3f,
-- 0x3f, 0x38, 0x3a, 0x6a, 0xd8, 0x11, 0x79, 0xf1, 0x24, 0xb9, 0x03, 0xa1,
-- 0x68, 0x15, 0xa7, 0xb9, 0x70, 0x38, 0x20, 0x86, 0x1b, 0xd9, 0x1c, 0x38,
-- 0xc3, 0x13, 0xc8, 0x98, 0x5c, 0x43, 0x34, 0xad, 0x72, 0x4b, 0xa9, 0x4d,
-- 0xf5, 0x82, 0x9e, 0xb3, 0x75, 0x80, 0x73, 0x1b, 0xae, 0x97, 0x24, 0xeb,
-- 0x56, 0xff, 0x68, 0x82, 0x1c, 0xfe, 0xde, 0xa4, 0xd7, 0x91, 0xfb, 0x78,
-- 0x5a, 0x6a, 0x7a, 0xa6, 0xe4, 0x2d, 0x68, 0xf2, 0x22, 0x23, 0xe8, 0xb0,
-- 0x06, 0x28, 0x14, 0x48, 0x23, 0xb4, 0xc1, 0x42, 0x3d, 0xb4, 0xfc, 0xd5,
-- 0x0e, 0xc8, 0x4b, 0x35, 0x43, 0x55, 0xed, 0xda, 0xb7, 0x4d, 0x2e, 0xed,
-- 0x4a, 0xba, 0x8b, 0x08, 0xb1, 0x67, 0x97, 0xf6, 0x5f, 0xd4, 0x6a, 0x16,
-- 0xc9, 0x14, 0xaa, 0xbe, 0x06, 0xb5, 0xd8, 0xb5, 0x6a, 0x9b, 0xbf, 0xee,
-- 0xe7, 0x13, 0x07, 0xcb, 0x9d, 0x4c, 0x8b, 0x2b, 0xae, 0x32, 0xed, 0x8c,
-- 0x75, 0x1d, 0x65, 0x51, 0x45, 0xcc, 0x34, 0x6d, 0x3b, 0x0a, 0x8e, 0x3c,
-- 0x71, 0xbb, 0x97, 0x0c, 0xe6, 0x08, 0xa2, 0x9d, 0x67, 0x75, 0x39, 0x4e,
-- 0xba, 0x65, 0x4e, 0x7c, 0x37, 0xb0, 0xee, 0x57, 0x57, 0x75, 0x45, 0xa2,
-- 0xed, 0x7d, 0xa3, 0x1c, 0x8e, 0x2b, 0x4c, 0xd6, 0x97, 0xfb, 0x8f, 0x46,
-- 0x15, 0x3a, 0x70, 0x30, 0x93, 0x4e, 0xa1, 0xb4, 0xea, 0x07, 0x1a, 0xca,
-- 0x82, 0x34, 0x8f, 0x85, 0xa5, 0xd4, 0xd9, 0x9a, 0x74, 0x8d, 0x83, 0x87,
-- 0x01, 0x43, 0x17, 0xd7, 0xf6, 0x3e, 0x3d, 0x1a, 0x68, 0x5a, 0xb2, 0x96,
-- 0xe0, 0x15, 0xac, 0x27, 0xe4, 0x89, 0x69, 0x9e, 0x4e, 0x88, 0x56, 0x19,
-- 0x17, 0xb8, 0xb5, 0xd2, 0xb3, 0x3e, 0x47, 0x4d, 0xca, 0x4a, 0xda, 0xb5,
-- 0x5f, 0x65, 0x53, 0x94, 0xd6, 0x0a, 0xe7, 0x29, 0xcd, 0xd3, 0x10, 0x07,
-- 0x91, 0x93, 0x84, 0xe5, 0x60, 0xce, 0xb5, 0x87, 0xe9, 0x2b, 0xb4, 0x4a,
-- 0x8e, 0xee, 0x5b, 0x4b, 0x27, 0x8e, 0x3b, 0x57, 0xe7, 0x65, 0x5c, 0x4c,
-- 0x23, 0x1b, 0xbb, 0x61, 0x83, 0x7a, 0x17, 0xdb, 0x1e, 0x71, 0xb0, 0x65,
-- 0xb2, 0x87, 0xbc, 0xc0, 0x51, 0xa3, 0x29, 0xb7, 0xd2, 0x8e, 0x66, 0x8a,
-- 0xb8, 0x34, 0x38, 0x57, 0x25, 0x2e, 0xee, 0x68, 0xb6, 0x97, 0x1e, 0xb9,
-- 0x1b, 0x2d, 0xfe, 0x85, 0x97, 0xe7, 0x15, 0xaf, 0x54, 0x6f, 0xa5, 0x01,
-- 0xc6, 0xcc, 0x6d, 0x2b, 0x48, 0x14, 0x2c, 0x2b, 0x28, 0x94, 0xe4, 0x4c,
-- 0xca, 0xdd, 0x60, 0x99, 0x63, 0x47, 0x04, 0x76, 0x14, 0x67, 0x92, 0x27,
-- 0xa3, 0x61, 0xb8, 0x93, 0x25, 0x54, 0xd3, 0x36, 0x55, 0xef, 0xd7, 0x31,
-- 0x8a, 0x1e, 0x38, 0x36, 0x18, 0xa9, 0x2f, 0x21, 0x28, 0xa9, 0xe3, 0x6f,
-- 0x59, 0x6f, 0xd5, 0xb0, 0xc7, 0xe6, 0x68, 0xe1, 0xe4, 0x0d, 0x31, 0x05,
-- 0xbc, 0x48, 0x14, 0x9e, 0x50, 0x79, 0x29, 0xb8, 0x6e, 0xa4, 0x38, 0x37,
-- 0xc0, 0xf0, 0x83, 0x4f, 0x9d, 0x4d, 0x20, 0x36, 0xda, 0x36, 0x96, 0x68,
-- 0xca, 0x75, 0x79, 0x50, 0x55, 0x58, 0x0a, 0x4a, 0x3c, 0xf9, 0xfc, 0x69,
-- 0x5f, 0x3d, 0x3c, 0xcf, 0xb6, 0x5f, 0x58, 0x55, 0x89, 0xa3, 0xc3, 0x8b,
-- 0x37, 0xc4, 0x86, 0xca, 0xf4, 0x32, 0x32, 0xda, 0xf2, 0x67, 0x83, 0x2c,
-- 0x2d, 0xaf, 0x39, 0xcb, 0x9d, 0x28, 0x74, 0x50, 0xcd, 0xea, 0xc5, 0x60,
-- 0x7b, 0x9b, 0xcb, 0xd2, 0x36, 0x65, 0x4a, 0x09, 0x80, 0xfd, 0xdd, 0xb8,
-- 0xf1, 0x7b, 0xe7, 0x83, 0xee, 0x62, 0x82, 0x0f, 0x32, 0xbf, 0xf8, 0x18,
-- 0xe1, 0xd8, 0x04, 0x65, 0x4b, 0xdb, 0xc5, 0xa1, 0xbb, 0xca, 0x52, 0xff,
-- 0x57, 0x38, 0x03, 0x83, 0x1d, 0xb4, 0x31, 0x6c, 0xbb, 0xfa, 0x58, 0xcd,
-- 0x15, 0x80, 0x72, 0xbd, 0x5c, 0x3c, 0x30, 0x9f, 0xb6, 0x0e, 0xf8, 0x6b,
-- 0x98, 0x42, 0x83, 0x27, 0x24, 0x5d, 0x00, 0xc6, 0xc1, 0x2e, 0x32, 0x4b,
-- 0x78, 0x4f, 0x2c, 0xe1, 0xf7, 0x94, 0xfa, 0x78, 0xd6, 0x2f, 0xdf, 0x9f,
-- 0x1d, 0xaf, 0xdc, 0xd7, 0x54, 0x8b, 0x93, 0xba, 0x7a, 0xd1, 0xcd, 0x64,
-- 0x25, 0xae, 0xd8, 0x51, 0x54, 0x1c, 0xc5, 0x79, 0x4d, 0x6b, 0xa4, 0xe5,
-- 0x3a, 0xe2, 0x52, 0x71, 0x96, 0x89, 0x6a, 0x2c, 0x84, 0x9a, 0xe4, 0xd4,
-- 0x60, 0x84, 0xf6, 0x06, 0x70, 0xa5, 0x0f, 0xca, 0x2c, 0x6a, 0xe5, 0x96,
-- 0xf8, 0x82, 0x06, 0xa4, 0xa4, 0xc2, 0x1d, 0x72, 0x3a, 0x8a, 0x2b, 0xa6,
-- 0x26, 0x36, 0xde, 0xae, 0xc5, 0x95, 0xf9, 0x30, 0x92, 0x82, 0xf8, 0xf2,
-- 0xfa, 0x8e, 0xff, 0x35, 0x0a, 0x71, 0x6b, 0x94, 0x76, 0x23, 0xbf, 0xbc,
-- 0xcb, 0x97, 0xe1, 0x2a, 0x7d, 0xda, 0x9a, 0x86, 0xf2, 0x53, 0x47, 0xd6,
-- 0x9a, 0x02, 0xc4, 0xf0, 0x52, 0x32, 0x4d, 0x80, 0xe1, 0x98, 0x04, 0xb3,
-- 0x55, 0xa7, 0xd3, 0x1b, 0x24, 0x24, 0x73, 0xc6, 0x87, 0xac, 0x2b, 0x8f,
-- 0x8e, 0xc1, 0x46, 0x3b, 0xf1, 0x5f, 0x47, 0xcb, 0xab, 0x2b, 0xa9, 0x2e,
-- 0xb0, 0x2f, 0xc2, 0x4f, 0x65, 0x35, 0xd3, 0x70, 0xc3, 0xac, 0x7f, 0xb1,
-- 0xae, 0x09, 0xa0, 0xbd, 0x6b, 0x92, 0x13, 0x39, 0x64, 0x9c, 0x24, 0xf1,
-- 0x9e, 0x48, 0xc2, 0x11, 0x4c, 0x15, 0x1f, 0x81, 0x7e, 0xb2, 0xfe, 0xb2,
-- 0xfb, 0x1d, 0xd1, 0x01, 0x05, 0x11, 0x6a, 0xec, 0xbc, 0x48, 0xb4, 0x8c,
-- 0xd7, 0x39, 0x31, 0xa7, 0x79, 0x1c, 0x06, 0x2e, 0x79, 0xdb, 0xe2, 0xd4,
-- 0xd7, 0xea, 0x25, 0x9d, 0x63, 0xfc, 0x57, 0xeb, 0xcf, 0xaa, 0x86, 0x00,
-- 0xc3, 0xed, 0xb2, 0x88, 0xae, 0x03, 0xc5, 0x6f, 0xd2, 0xfe, 0x63, 0x1f,
-- 0xa2, 0x2f, 0x95, 0x26, 0x0c, 0x43, 0xea, 0xc7, 0x30, 0xe5, 0x69, 0x79,
-- 0x4e, 0x99, 0x8f, 0x56, 0xd2, 0x11, 0xeb, 0x1f, 0xf6, 0x9a, 0x45, 0xa8,
-- 0x3c, 0x46, 0x5d, 0x16, 0x0d, 0x25, 0xf3, 0x52, 0xb7, 0xbf, 0x23, 0x81,
-- 0x7c, 0x52, 0xf2, 0xbd, 0x5c, 0xdc, 0x68, 0x6d, 0xf2, 0x95, 0x82, 0x95,
-- 0xb9, 0xcd, 0x3c, 0x25, 0x4b, 0x08, 0xbc, 0x45, 0xef, 0xb3, 0x7a, 0x83,
-- 0x07, 0xb3, 0x39, 0xc0, 0x9b, 0xd5, 0x1a, 0xdd, 0x8f, 0xb1, 0x83, 0x25,
-- 0x9d, 0xdd, 0x52, 0x49, 0x9d, 0xf8, 0xdb, 0xd4, 0xdd, 0xcc, 0xd1, 0xfd,
-- 0x5b, 0xc5, 0xff, 0x46, 0x63, 0xa1, 0xf8, 0xdf, 0xe1, 0x12, 0x0b, 0xd3,
-- 0xa0, 0x9a, 0xa0, 0xa0, 0xc8, 0x7c, 0x0a, 0x18, 0xcd, 0x1d, 0x3f, 0x08,
-- 0x57, 0x3d, 0x9f, 0x2f, 0x52, 0x30, 0x71, 0xc1, 0xb6, 0xb9, 0xce, 0x6b,
-- 0x85, 0x52, 0x35, 0xaf, 0x8d, 0xf9, 0x8d, 0xb1, 0x66, 0x48, 0x49, 0x32,
-- 0x14, 0x5e, 0xb6, 0x5c, 0x4c, 0xb3, 0x3a, 0x13, 0xd9, 0x5a, 0x31, 0x79,
-- 0x23, 0xf3, 0x1c, 0x1f, 0x1b, 0xe7, 0x3c, 0x34, 0xcc, 0x0f, 0xe9, 0x3a,
-- 0x11, 0x47, 0xbf, 0xd6, 0x96, 0x57, 0xfc, 0x9c, 0x7b, 0x03, 0x17, 0x91,
-- 0x00, 0x80, 0x28, 0x92, 0xe1, 0x23, 0xab, 0x60, 0x5c, 0x3e, 0x47, 0x51,
-- 0x51, 0x43, 0x26, 0xe4, 0x6a, 0xc3, 0x0b, 0x40, 0x80, 0x36, 0x1c, 0x80,
-- 0x68, 0x75, 0x06, 0x13, 0x43, 0x5c, 0xe9, 0xc9, 0xc3, 0xbd, 0xbe, 0x01,
-- 0xec, 0x88, 0x52, 0x27, 0xe5, 0x04, 0x81, 0xfc, 0x35, 0x5e, 0xb2, 0x32,
-- 0x0a, 0xaf, 0x60, 0x54, 0x88, 0xd0, 0x35, 0x77, 0xcf, 0xb1, 0x0a, 0xbd,
-- 0x2f, 0x4d, 0x05, 0xee, 0x99, 0xb7, 0xcb, 0xd7, 0x3a, 0x04, 0x17, 0x47,
-- 0xe3, 0x8a, 0x52, 0xa9, 0x4b, 0xd1, 0xe1, 0x1b, 0x10, 0x9f, 0x1e, 0x50,
-- 0x04, 0x50, 0x3d, 0xbd, 0xf7, 0xe5, 0xa0, 0xd7, 0x0d, 0x74, 0xee, 0x26,
-- 0xee, 0x45, 0x36, 0xf5, 0x46, 0x99, 0xca, 0x2e, 0xbd, 0xb8, 0xfa, 0xe1,
-- 0xcb, 0x11, 0x1d, 0x80, 0x7a, 0x19, 0x9b, 0xdb, 0x15, 0xbc, 0x0d, 0x9e,
-- 0x14, 0xf0, 0x5f, 0x5e, 0x70, 0xef, 0xee, 0xc0, 0x41, 0x62, 0x15, 0xbf,
-- 0x46, 0x80, 0xaa, 0xda, 0x0d, 0x46, 0x0e, 0x39, 0xb7, 0xad, 0xa1, 0xee,
-- 0xb3, 0x4d, 0xc2, 0x8f, 0xae, 0x69, 0x6e, 0xe7, 0x82, 0xdc, 0xff, 0x6e,
-- 0x5f, 0x02, 0xad, 0xf0, 0x3f, 0x6d, 0xbd, 0xac, 0x5c, 0x7d, 0x37, 0x3f,
-- 0xfb, 0x13, 0x16, 0x05, 0x58, 0xcb, 0xb2, 0x32, 0x00, 0x52, 0xe1, 0xe6,
-- 0xfe, 0x34, 0x74, 0x12, 0xb5, 0x35, 0x91, 0xcc, 0xb3, 0x3b, 0x51, 0x4a,
-- 0x23, 0x6e, 0x2b, 0xc7, 0xf8, 0xe7, 0x39, 0x97, 0xd6, 0x1a, 0xa7, 0x74,
-- 0x1c, 0xd9, 0x1b, 0x25, 0xf8, 0x04, 0x42, 0x5e, 0x3f, 0x97, 0xca, 0x34,
-- 0xeb, 0x74, 0x24, 0x60, 0xb1, 0xfa, 0x79, 0x6c, 0xba, 0xe0, 0x80, 0x81,
-- 0x3d, 0xec, 0xc6, 0x9f, 0x06, 0x82, 0x44, 0xa9, 0xd4, 0xad, 0xc0, 0xb2,
-- 0xf6, 0x99, 0x6c, 0xcb, 0x5d, 0x3e, 0x7f, 0xb2, 0x3b, 0x08, 0xa4, 0x95,
-- 0x7e, 0x67, 0xcc, 0x15, 0x9b, 0x74, 0x8a, 0xb1, 0x94, 0x57, 0x1f, 0x0b,
-- 0x73, 0xf8, 0x93, 0xc2, 0x98, 0x40, 0x98, 0x97, 0x3c, 0xfb, 0x89, 0xa5,
-- 0x54, 0x2f, 0x3d, 0x2e, 0x48, 0xa7, 0x4a, 0xd8, 0x49, 0x3c, 0xc1, 0xee,
-- 0x38, 0xa4, 0xa1, 0xae, 0xa0, 0x14, 0x3e, 0x96, 0x34, 0xd0, 0x0f, 0xf0,
-- 0x8b, 0x28, 0xdd, 0x1d, 0xc8, 0x67, 0x83, 0x0b, 0x7c, 0x66, 0xe2, 0xbd,
-- 0xa6, 0x9c, 0xb2, 0x9e, 0xa1, 0x81, 0x89, 0xfd, 0x18, 0xf6, 0x25, 0xe9,
-- 0x8a, 0xe7, 0xe0, 0x10, 0x47, 0x3a, 0xd2, 0xd1, 0x38, 0xed, 0x3c, 0x7d,
-- 0x90, 0x8a, 0x34, 0xc4, 0xad, 0x1f, 0x6e, 0x0d, 0xe8, 0xa4, 0x53, 0x92,
-- 0x49, 0x0c, 0xa5, 0x5e, 0xec, 0x51, 0x8e, 0x8c, 0x2d, 0x62, 0x49, 0x81,
-- 0x9a, 0xa2, 0x42, 0xbf, 0x49, 0x57, 0xec, 0x4a, 0xae, 0xc8, 0x58, 0x41,
-- 0x79, 0x34, 0xba, 0xe5, 0x0c, 0x6a, 0xa1, 0x2e, 0xa6, 0xe2, 0xd7, 0xe6,
-- 0x96, 0x1f, 0x99, 0x2b, 0xe7, 0x14, 0x0a, 0xf8, 0x68, 0x50, 0xa0, 0xa2,
-- 0x89, 0xa0, 0x83, 0xdc, 0x55, 0x13, 0x84, 0x1e, 0x29, 0xc5, 0xa4, 0x7e,
-- 0xd2, 0xe4, 0x08, 0x59, 0xbe, 0x85, 0x84, 0xaa, 0x60, 0x78, 0x00, 0x90,
-- 0x1d, 0x19, 0xa8, 0xe5, 0x8a, 0xea, 0xeb, 0x49, 0x8c, 0x5a, 0x80, 0x71,
-- 0xc8, 0x55, 0x3d, 0x08, 0x24, 0xac, 0x61, 0x3b, 0x41, 0x68, 0x27, 0x8a,
-- 0x17, 0xbd, 0xac, 0x17, 0x1f, 0x80, 0x12, 0xf9, 0x01, 0xa8, 0x51, 0x17,
-- 0x01, 0x30, 0x3c, 0x3e, 0xc0, 0x72, 0x09, 0xb0, 0x17, 0x49, 0xf8, 0xb9,
-- 0x96, 0xf1, 0x20, 0x4d, 0xee, 0x4a, 0xac, 0xe8, 0x8f, 0xae, 0x5c, 0x0b,
-- 0xec, 0xde, 0x6c, 0xfe, 0xad, 0x4c, 0xa0, 0xa7, 0xd1, 0xc0, 0xd8, 0xbf,
-- 0xfe, 0x01, 0x70, 0x1a, 0x8e, 0x42, 0xe8, 0xe2, 0xc8, 0x4a, 0xc6, 0x1b,
-- 0x6f, 0xe1, 0x6d, 0x80, 0x4e, 0x24, 0x21, 0x72, 0x39, 0x37, 0xbf, 0xfe,
-- 0xc3, 0x03, 0x83, 0x90, 0xaf, 0x45, 0xe7, 0xb4, 0xe0, 0x05, 0x87, 0xbd,
-- 0x60, 0x17, 0x69, 0x98, 0x2c, 0x68, 0x3b, 0xaf, 0x30, 0xef, 0xd4, 0x23,
-- 0xf3, 0x44, 0x2e, 0xc1, 0x6e, 0xa2, 0x0e, 0x84, 0x3c, 0xf5, 0x60, 0x76,
-- 0x32, 0x05, 0x9c, 0x13, 0x4c, 0x98, 0x05, 0xfa, 0xeb, 0xe2, 0xee, 0xd1,
-- 0xc3, 0x25, 0xd1, 0x0c, 0x2c, 0xd3, 0x0d, 0x57, 0xac, 0x8c, 0x56, 0xbd,
-- 0x6e, 0xad, 0x4c, 0x73, 0x41, 0x74, 0x45, 0xbc, 0xf0, 0xd6, 0x11, 0xfb,
-- 0x94, 0xac, 0x80, 0x32, 0x49, 0x92, 0x0d, 0x87, 0x8e, 0x29, 0xc5, 0x34,
-- 0x2c, 0x00, 0x43, 0xcf, 0xa4, 0x56, 0xd0, 0x78, 0xac, 0x39, 0xf0, 0x96,
-- 0x28, 0xd1, 0x3c, 0xde, 0x70, 0x84, 0x74, 0x7d, 0xc8, 0x17, 0x01, 0x4b,
-- 0x08, 0x8a, 0x44, 0x3b, 0x53, 0x84, 0x44, 0x7e, 0x31, 0x49, 0x06, 0xf6,
-- 0x09, 0x3e, 0x44, 0x8f, 0x8d, 0x63, 0x0c, 0x1f, 0x76, 0x22, 0x98, 0x04,
-- 0x41, 0x7e, 0xe8, 0xc0, 0x04, 0x0e, 0x01, 0x7c, 0xa1, 0x4e, 0x6f, 0x9f,
-- 0xc6, 0x21, 0x5d, 0xad, 0xff, 0xe8, 0xa1, 0xe7, 0xcd, 0xc3, 0xf5, 0xa2,
-- 0x23, 0x97, 0x44, 0xa6, 0x24, 0xb8, 0x50, 0x3a, 0x25, 0x19, 0x7e, 0x18,
-- 0xe3, 0xaf, 0x86, 0x6d, 0xf0, 0x81, 0xd6, 0x30, 0x1f, 0x1e, 0x43, 0x30,
-- 0x87, 0x47, 0x47, 0x42, 0x7d, 0x19, 0xc9, 0x70, 0x11, 0xc6, 0x77, 0x8a,
-- 0xb7, 0x44, 0x7d, 0xd3, 0x6d, 0x9b, 0xb8, 0x6f, 0x00, 0x7d, 0xa0, 0x57,
-- 0x9e, 0x0c, 0x45, 0x4e, 0xc1, 0xe0, 0xe1, 0x91, 0x5c, 0x46, 0x27, 0xba,
-- 0x0b, 0x49, 0x80, 0xc7, 0x60, 0x39, 0xf1, 0x95, 0x1b, 0x03, 0x0d, 0xc1,
-- 0x7f, 0xa8, 0x30, 0x8a, 0x08, 0x5f, 0x96, 0x62, 0xa0, 0x99, 0xa7, 0xde,
-- 0xdf, 0x46, 0x68, 0xf1, 0x38, 0xac, 0xbb, 0x0f, 0xa0, 0x62, 0xcd, 0x76,
-- 0x37, 0xc0, 0x1e, 0x07, 0x06, 0x91, 0xea, 0x6a, 0x98, 0xf1, 0x76, 0x70,
-- 0x0c, 0x34, 0xbd, 0x62, 0xfa, 0xc8, 0x5a, 0x70, 0xf4, 0x97, 0x9b, 0x90,
-- 0xa6, 0x3c, 0xd8, 0x95, 0xad, 0xe8, 0x03, 0x9c, 0x39, 0x0f, 0x4e, 0x31,
-- 0xe6, 0xfc, 0x89, 0x87, 0x9b, 0x83, 0xe2, 0x1d, 0xd4, 0x39, 0x73, 0x31,
-- 0xe1, 0x00, 0x9c, 0x10, 0x8b, 0x0c, 0xdd, 0x87, 0x7e, 0xd6, 0x9f, 0xc2,
-- 0xa8, 0x3a, 0x96, 0x84, 0x19, 0xb4, 0x3b, 0x7c, 0x17, 0x9e, 0x67, 0x37,
-- 0x8f, 0xe0, 0x7f, 0x99, 0x50, 0x57, 0x1c, 0xb6, 0xd6, 0x79, 0x7a, 0x6c,
-- 0x0e, 0x9d, 0x24, 0xae, 0x73, 0xb0, 0xd3, 0x16, 0xcc, 0x61, 0xd5, 0x69,
-- 0xfb, 0xbd, 0x0e, 0x1b, 0x87, 0x1c, 0x7d, 0x30, 0x78, 0x4e, 0x19, 0x89,
-- 0x20, 0x07, 0x79, 0xb0, 0x1d, 0x09, 0x14, 0x12, 0x3e, 0xcd, 0xd4, 0x6e,
-- 0x4f, 0x77, 0x04, 0xf8, 0xa0, 0x35, 0x35, 0x2b, 0x24, 0x0f, 0xb5, 0x66,
-- 0x1e, 0x32, 0xd7, 0x14, 0x94, 0xf7, 0x47, 0xc8, 0x95, 0x0b, 0x25, 0x74,
-- 0xf6, 0x68, 0x07, 0xe1, 0xd3, 0xc6, 0x2f, 0x95, 0x58, 0x3e, 0xe9, 0xa0,
-- 0x86, 0xc7, 0xac, 0xbb, 0x6b, 0x0d, 0x3c, 0xfc, 0xc4, 0xae, 0x57, 0xc6,
-- 0x4a, 0x92, 0x24, 0x9f, 0x4d, 0xfc, 0x3e, 0x70, 0x5b, 0x29, 0x5b, 0xfb,
-- 0x02, 0xec, 0x54, 0x79, 0x26, 0x10, 0x34, 0x49, 0x56, 0xac, 0x96, 0xa5,
-- 0xe0, 0x3a, 0x3d, 0x7e, 0x47, 0x9b, 0x46, 0xed, 0xda, 0xe3, 0x80, 0x30,
-- 0x1e, 0xdd, 0x82, 0x21, 0xee, 0x80, 0xb8, 0xb3, 0x62, 0x54, 0x6e, 0x8a,
-- 0xe1, 0xa8, 0xf4, 0xc3, 0xf6, 0x98, 0xfc, 0xa0, 0x7e, 0xe5, 0xa8, 0xa4,
-- 0xbd, 0x4f, 0x19, 0x53, 0x35, 0xfd, 0x40, 0x63, 0x20, 0x75, 0x98, 0xb6,
-- 0xbd, 0x22, 0x41, 0xfc, 0x71, 0x69, 0x3d, 0x91, 0x07, 0x8d, 0xe8, 0x38,
-- 0xad, 0x9d, 0x86, 0x5d, 0x26, 0xe3, 0x8c, 0x54, 0x6f, 0x14, 0x5a, 0x05,
-- 0xf2, 0x00, 0x7e, 0x7d, 0x84, 0x04, 0x25, 0x4a, 0xd9, 0x44, 0x16, 0xa7,
-- 0x8c, 0x0c, 0x19, 0xdd, 0x0d, 0x46, 0x2e, 0x28, 0xb8, 0xda, 0x56, 0x47,
-- 0xf2, 0x45, 0xd2, 0xb6, 0x9b, 0x56, 0x41, 0xc1, 0xa1, 0xe1, 0x03, 0x88,
-- 0x90, 0xae, 0x7f, 0x52, 0x54, 0xd2, 0xc5, 0x42, 0x8f, 0xf8, 0x27, 0xcc,
-- 0x5d, 0x10, 0x79, 0x40, 0xee, 0x8a, 0xab, 0xa4, 0x28, 0x77, 0x75, 0x51,
-- 0xdc, 0xf8, 0x72, 0xb9, 0x30, 0xda, 0x3d, 0xdc, 0x9c, 0x40, 0xaa, 0xe9,
-- 0x0a, 0x6e, 0x9d, 0x9f, 0x7f, 0xc3, 0x58, 0x8b, 0x8e, 0xdb, 0x6c, 0xb1,
-- 0x81, 0xb8, 0xba, 0x06, 0xa7, 0xaf, 0x8b, 0x4f, 0xba, 0x04, 0x5d, 0x91,
-- 0x3b, 0xac, 0x83, 0x33, 0xf9, 0x7c, 0xea, 0x32, 0x34, 0xc5, 0xca, 0xdf,
-- 0x65, 0xa2, 0x17, 0x07, 0xa7, 0x89, 0xeb, 0x46, 0x67, 0xd5, 0xac, 0xd4,
-- 0xc8, 0xd0, 0xc4, 0x8f, 0xd0, 0xb9, 0x0a, 0xa4, 0xcd, 0x39, 0x76, 0xce,
-- 0x88, 0xd5, 0x21, 0x36, 0x39, 0x2e, 0x17, 0xff, 0x0f, 0x6d, 0x2c, 0xf4,
-- 0x31, 0xc9, 0x06, 0x85, 0x01, 0xf7, 0xf1, 0x21, 0x73, 0xdd, 0x9d, 0xee,
-- 0x3a, 0x54, 0x1d, 0x63, 0x96, 0x21, 0x4b, 0x22, 0x54, 0x7b, 0xc0, 0x0a,
-- 0x6f, 0x2f, 0x99, 0x1b, 0x9f, 0x3a, 0x66, 0x1f, 0x4c, 0xef, 0xd0, 0xbe,
-- 0x78, 0xcc, 0x52, 0x3d, 0xcc, 0xf0, 0x09, 0x47, 0x19, 0xe9, 0x7f, 0x9f,
-- 0xa2, 0x85, 0xab, 0x41, 0x58, 0xe0, 0x79, 0x39, 0x8d, 0xdd, 0x35, 0xea,
-- 0xeb, 0x42, 0x91, 0x28, 0xcf, 0x61, 0x63, 0x8f, 0xb2, 0x89, 0x54, 0xdd,
-- 0xff, 0x28, 0xe7, 0xe7, 0x2d, 0x53, 0x63, 0x53, 0x33, 0x03, 0xb3, 0x5f,
-- 0x47, 0x52, 0x55, 0xa4, 0x9a, 0x8e, 0x8b, 0xa9, 0x38, 0x54, 0x6e, 0x01,
-- 0x91, 0xda, 0xbd, 0x17, 0x5e, 0xee, 0xea, 0x5e, 0x6c, 0x2e, 0xe5, 0x0d,
-- 0xda, 0x50, 0x94, 0xc5, 0xa0, 0x54, 0xfb, 0xc3, 0xfd, 0x13, 0x8b, 0x5b,
-- 0x54, 0x16, 0xd2, 0x93, 0xa9, 0x63, 0x44, 0x08, 0xb5, 0x6f, 0xe7, 0x03,
-- 0xe5, 0xa6, 0x3e, 0x8d, 0x14, 0x60, 0x87, 0xb3, 0xa5, 0x35, 0x14, 0x3f,
-- 0x2d, 0xab, 0xc3, 0xde, 0x01, 0xf9, 0x52, 0x91, 0x83, 0x79, 0x43, 0x1f,
-- 0x1b, 0x5d, 0x2a, 0x35, 0xbf, 0x5a, 0xab, 0x20, 0xb1, 0x39, 0x8d, 0x5b,
-- 0x26, 0xfb, 0x98, 0xc5, 0xe5, 0x15, 0x3a, 0x59, 0x7c, 0xae, 0x01, 0xa4,
-- 0x3e, 0xae, 0x3f, 0x58, 0xad, 0x20, 0xc2, 0xe4, 0x53, 0xa4, 0xd8, 0x2e,
-- 0xc1, 0x1e, 0x43, 0xc5, 0xc8, 0x3f, 0xfd, 0xf8, 0xfc, 0x2e, 0x47, 0x5e,
-- 0xc0, 0xf2, 0x50, 0x01, 0xa0, 0xeb, 0xe8, 0x24, 0x9f, 0xaa, 0x54, 0x01,
-- 0x18, 0xca, 0xac, 0x59, 0x76, 0x90, 0xda, 0x2c, 0x42, 0x2c, 0x9e, 0x31,
-- 0x9a, 0x65, 0x87, 0x64, 0xa0, 0xa0, 0x96, 0x60, 0x07, 0x1a, 0x28, 0xc3,
-- 0x58, 0xb8, 0x99, 0x14, 0x19, 0x22, 0xd1, 0x7c, 0xca, 0xa7, 0xa7, 0xce,
-- 0x3e, 0xe9, 0xa6, 0xe1, 0xeb, 0xbf, 0xfb, 0xcc, 0x88, 0xc4, 0xe6, 0x57,
-- 0xd8, 0xa1, 0x66, 0x36, 0x8f, 0x8e, 0xa5, 0x54, 0x49, 0x6c, 0x1c, 0x7c,
-- 0x0e, 0x9f, 0x42, 0x46, 0x6c, 0xc2, 0xc8, 0xb4, 0xa2, 0x11, 0x26, 0xe4,
-- 0xc0, 0x06, 0xc5, 0xf3, 0x61, 0xae, 0x86, 0x59, 0xfe, 0xa8, 0xaa, 0x96,
-- 0x2b, 0x5a, 0x2a, 0xb8, 0xf3, 0xb2, 0xd3, 0xe2, 0x8a, 0xb4, 0x08, 0x33,
-- 0x62, 0xca, 0x84, 0x58, 0x25, 0xf3, 0x26, 0x27, 0x76, 0x4a, 0x66, 0x52,
-- 0xb3, 0xc2, 0x27, 0x23, 0x40, 0xbd, 0x60, 0xe1, 0xe5, 0x91, 0x11, 0x78,
-- 0xb3, 0x24, 0x3b, 0xc7, 0x90, 0x6e, 0x36, 0x9d, 0x04, 0x7e, 0x07, 0xd1,
-- 0x81, 0x7d, 0xcd, 0xa3, 0xbd, 0x87, 0x9b, 0x53, 0x67, 0xdd, 0xef, 0x81,
-- 0xb8, 0x1f, 0xa4, 0xd9, 0xbf, 0xfc, 0xc9, 0x82, 0x59, 0xf6, 0xb6, 0xb6,
-- 0x7e, 0xf9, 0xa9, 0x11, 0xeb, 0xf0, 0xe5, 0x2f, 0xbf, 0xbe, 0xda, 0xac,
-- 0xc0, 0xca, 0x74, 0xfa, 0x49, 0x14, 0x53, 0x21, 0x76, 0x0c, 0xc9, 0x9b,
-- 0x5a, 0x77, 0x31, 0x18, 0x8e, 0xab, 0xcf, 0x57, 0xac, 0xaa, 0xe0, 0xda,
-- 0x04, 0xb0, 0xfe, 0xe8, 0x2b, 0xe1, 0x55, 0x52, 0x7c, 0xd7, 0xc1, 0xf2,
-- 0xf4, 0x93, 0x00, 0x8b, 0xa5, 0xdf, 0x09, 0x44, 0xc0, 0x1d, 0x72, 0x2d,
-- 0x3a, 0x0f, 0x9f, 0x81, 0xe8, 0x42, 0x51, 0x9c, 0x82, 0x49, 0x8e, 0x05,
-- 0x23, 0xc2, 0x45, 0x4b, 0x77, 0x41, 0x70, 0x0b, 0x16, 0xe9, 0xbb, 0xc2,
-- 0x63, 0x16, 0x04, 0xa8, 0x0f, 0x9a, 0x6c, 0xa4, 0x47, 0x7d, 0x2a, 0x48,
-- 0xdf, 0x95, 0x07, 0x67, 0x8b, 0xa0, 0x59, 0xb9, 0x1e, 0x15, 0x1c, 0x36,
-- 0xae, 0x5a, 0xae, 0xa0, 0x3d, 0x5e, 0x04, 0xe5, 0xde, 0x5d, 0x30, 0x90,
-- 0xb7, 0x4e, 0xe6, 0xf3, 0xae, 0x18, 0x40, 0x81, 0x6f, 0xe8, 0x46, 0x86,
-- 0x7c, 0x18, 0xaf, 0xc2, 0x6c, 0x49, 0xb2, 0xd2, 0xb2, 0x8d, 0xca, 0x5e,
-- 0x23, 0x97, 0x87, 0x61, 0x5a, 0x08, 0x8b, 0x5c, 0x8d, 0x61, 0xd1, 0x81,
-- 0xcd, 0x42, 0x77, 0x50, 0x2e, 0x20, 0xaf, 0x5d, 0xa9, 0xaf, 0x2a, 0x31,
-- 0x54, 0x59, 0xdd, 0x91, 0xc4, 0x2c, 0x23, 0xb3, 0xe4, 0x4a, 0x99, 0x52,
-- 0x99, 0xad, 0xaf, 0xcc, 0xa3, 0x45, 0xc6, 0x81, 0x14, 0x1d, 0x4b, 0xd7,
-- 0x3a, 0x64, 0xd2, 0xbe, 0xc7, 0xb0, 0x90, 0x44, 0x62, 0x69, 0xbd, 0x87,
-- 0x8c, 0x42, 0x1b, 0x71, 0x57, 0x48, 0xf8, 0xbe, 0xf1, 0xc0, 0x96, 0x90,
-- 0xa3, 0x81, 0x7b, 0x9c, 0xa1, 0x79, 0x9b, 0x79, 0x60, 0x69, 0x5f, 0xaa,
-- 0xb8, 0xfb, 0x32, 0x21, 0x59, 0x48, 0x6c, 0x1b, 0x52, 0xe5, 0x81, 0xc1,
-- 0x11, 0x65, 0x6d, 0xf9, 0x6d, 0x8f, 0x8e, 0xee, 0x22, 0x3f, 0xe9, 0x7b,
-- 0xf6, 0xe1, 0x3e, 0x1a, 0xa7, 0x16, 0x0c, 0x51, 0x7c, 0xfc, 0x5a, 0x8d,
-- 0xd7, 0xf9, 0xa2, 0x3c, 0x13, 0x04, 0xde, 0x28, 0x4b, 0x0a, 0x69, 0x8c,
-- 0xba, 0x76, 0xe9, 0x96, 0xa9, 0x5e, 0x92, 0xa8, 0x33, 0x8d, 0xcb, 0x30,
-- 0xc3, 0x5f, 0x29, 0x0c, 0x49, 0x53, 0x4d, 0x06, 0x0b, 0xe3, 0x41, 0xed,
-- 0xc9, 0xde, 0x6b, 0x23, 0x2b, 0xbc, 0x66, 0xef, 0x2b, 0xbd, 0x25, 0x7d,
-- 0x78, 0x55, 0x23, 0x32, 0xd8, 0x97, 0xb9, 0x8a, 0xa9, 0x95, 0xf7, 0x60,
-- 0x2d, 0x36, 0xc9, 0xa1, 0xb4, 0x44, 0x10, 0x58, 0x21, 0x93, 0x6e, 0xa2,
-- 0x51, 0x70, 0x6f, 0xb8, 0xf0, 0xd4, 0xa3, 0xa8, 0x75, 0x71, 0xe2, 0x64,
-- 0xff, 0x12, 0x0a, 0x2b, 0xaa, 0x33, 0x7c, 0xe9, 0x53, 0x1a, 0xff, 0xf4,
-- 0x74, 0x9b, 0x99, 0x8b, 0xb5, 0x92, 0x6a, 0x00, 0x14, 0x96, 0xe3, 0x4f,
-- 0x4f, 0xd2, 0x87, 0x18, 0x26, 0x94, 0xa8, 0x88, 0x5b, 0x4a, 0x95, 0x96,
-- 0x74, 0xac, 0xd5, 0x46, 0xee, 0xd2, 0x7b, 0xc3, 0xde, 0xc5, 0x5b, 0x11,
-- 0x64, 0x65, 0xc7, 0x49, 0xea, 0x07, 0x21, 0xe8, 0x75, 0xc8, 0x4a, 0x8c,
-- 0xef, 0x26, 0x1b, 0xca, 0xaa, 0xda, 0xf9, 0xb6, 0x56, 0xbd, 0x1b, 0x75,
-- 0x3c, 0xe1, 0x4d, 0xe2, 0x4d, 0xf9, 0xf3, 0x83, 0xb1, 0xad, 0xff, 0xa0,
-- 0xab, 0xeb, 0x07, 0x89, 0x46, 0x12, 0xae, 0xbc, 0xb2, 0x76, 0xb3, 0x24,
-- 0x93, 0x9c, 0xbb, 0x2c, 0x58, 0x57, 0xfa, 0xc1, 0xde, 0xd4, 0xac, 0xa6,
-- 0x30, 0x6f, 0xf0, 0xe1, 0x6a, 0xf6, 0x8e, 0x70, 0x71, 0x60, 0x5d, 0xb2,
-- 0xcb, 0x45, 0xe3, 0xf2, 0x73, 0x66, 0x36, 0x8f, 0xb3, 0xd9, 0x51, 0x04,
-- 0xc1, 0x92, 0x93, 0x03, 0x8f, 0x87, 0x8c, 0xc6, 0x97, 0x7c, 0xc0, 0xea,
-- 0x28, 0xe8, 0x7d, 0x98, 0xde, 0xf6, 0xf5, 0xe1, 0xc5, 0x66, 0x0c, 0x96,
-- 0x9a, 0x06, 0xb5, 0xd4, 0x51, 0xf9, 0x48, 0xcf, 0x77, 0xea, 0x2a, 0x8b,
-- 0xb8, 0x0c, 0x4f, 0x09, 0xc3, 0xcc, 0x3e, 0x92, 0x6c, 0x35, 0xef, 0x06,
-- 0x3d, 0x3c, 0xa0, 0x65, 0x60, 0x86, 0x1c, 0x04, 0x23, 0x69, 0xf4, 0x90,
-- 0xd5, 0xb4, 0x08, 0xf4, 0x1c, 0xce, 0x26, 0xe7, 0x16, 0x5f, 0x1f, 0x1e,
-- 0x1f, 0x5e, 0x1c, 0x22, 0x43, 0x20, 0x32, 0xe4, 0x4e, 0x71, 0x7b, 0xd5,
-- 0xd9, 0xf8, 0x7a, 0x5e, 0x70, 0xd0, 0x28, 0x6d, 0x07, 0x12, 0x74, 0xbf,
-- 0xcf, 0x46, 0xaf, 0xf7, 0xbf, 0xe3, 0xd2, 0x5d, 0x7c, 0x66, 0x4e, 0xcf,
-- 0x4e, 0x4e, 0xdf, 0x1c, 0xbd, 0x7b, 0xdd, 0x4f, 0x0e, 0x4e, 0x4e, 0x7f,
-- 0xec, 0x27, 0x6f, 0x4f, 0xbe, 0x3b, 0xec, 0x88, 0xe6, 0xe6, 0x68, 0xb1,
-- 0x8e, 0xc0, 0x27, 0x2d, 0x90, 0xa1, 0x18, 0xf2, 0xc0, 0x19, 0x96, 0xc2,
-- 0x10, 0xcd, 0x64, 0x56, 0x66, 0xcb, 0x15, 0xd2, 0x9a, 0x69, 0xe9, 0x69,
-- 0x2d, 0xfb, 0xc9, 0x37, 0x87, 0xfb, 0xaf, 0xdb, 0xe2, 0xc0, 0xe9, 0xc9,
-- 0xb9, 0xcc, 0x8a, 0x67, 0xe7, 0x26, 0xcd, 0xec, 0x9b, 0x98, 0x25, 0xdb,
-- 0xb9, 0x59, 0xc9, 0xbc, 0xc9, 0x02, 0xb0, 0x47, 0x3a, 0x02, 0x30, 0x92,
-- 0x4d, 0x56, 0x96, 0xfd, 0x45, 0x0c, 0x84, 0x8b, 0x94, 0x7b, 0xf8, 0x26,
-- 0x44, 0xde, 0x84, 0x61, 0xab, 0x0b, 0x81, 0x88, 0x73, 0x41, 0xa3, 0xb0,
-- 0x85, 0x3a, 0x94, 0xbd, 0xf1, 0xd6, 0xac, 0x75, 0x3a, 0x4f, 0xa4, 0xa0,
-- 0x8e, 0xe1, 0xc4, 0x40, 0x54, 0x92, 0xe8, 0x87, 0x54, 0xe3, 0xd7, 0x46,
-- 0x19, 0x27, 0x88, 0x54, 0x28, 0x0c, 0x03, 0x22, 0xd1, 0xb0, 0xe9, 0x98,
-- 0xbd, 0xcb, 0xba, 0x4a, 0x24, 0x99, 0x45, 0x39, 0x41, 0x52, 0x63, 0x33,
-- 0x24, 0x2f, 0xa1, 0xef, 0x53, 0x83, 0xb3, 0x7e, 0x90, 0x8f, 0x3b, 0x10,
-- 0x06, 0x20, 0x52, 0x2c, 0x2f, 0x89, 0x3c, 0x33, 0x09, 0x17, 0xc1, 0x3e,
-- 0xe9, 0x41, 0xc4, 0xcd, 0x70, 0xc4, 0x47, 0xfc, 0x1a, 0xe9, 0xfb, 0xdd,
-- 0x57, 0xc0, 0xc6, 0x9b, 0x15, 0xa7, 0x3b, 0xac, 0x56, 0xa5, 0x2d, 0x06,
-- 0x48, 0x00, 0xc7, 0x47, 0xb4, 0xaf, 0x7c, 0xd4, 0xdb, 0x51, 0x84, 0xc8,
-- 0xd1, 0x91, 0x3a, 0xa3, 0x39, 0x6f, 0x35, 0xce, 0x3a, 0xb5, 0x15, 0x77,
-- 0xcc, 0xf1, 0xd7, 0x9d, 0x3d, 0x23, 0x30, 0xfb, 0x91, 0xae, 0x23, 0x33,
-- 0xd8, 0xd9, 0xe1, 0xc5, 0x59, 0xcb, 0xab, 0xff, 0xbc, 0xc3, 0x96, 0xb7,
-- 0xc1, 0xb1, 0xdf, 0x9d, 0xbd, 0xf2, 0x17, 0xab, 0x7a, 0x05, 0x77, 0xe1,
-- 0x7e, 0x1f, 0xca, 0x1d, 0x7d, 0xd2, 0x85, 0x86, 0xbb, 0x21, 0xc0, 0xbd,
-- 0x1d, 0xfd, 0x21, 0xea, 0x7c, 0xf5, 0x2c, 0xbf, 0x39, 0x3c, 0x3e, 0x8d,
-- 0x67, 0xf9, 0xdd, 0xd9, 0x9b, 0x1f, 0x87, 0x0f, 0x64, 0x05, 0xfe, 0xe3,
-- 0x63, 0x7a, 0x3f, 0xa6, 0x75, 0xdd, 0x09, 0x83, 0x5d, 0xa5, 0xb0, 0xda,
-- 0x19, 0x56, 0xb8, 0x45, 0x82, 0x34, 0xb1, 0xcc, 0x04, 0x1e, 0x37, 0xd0,
-- 0xdb, 0x68, 0xea, 0x91, 0xd8, 0xe0, 0x44, 0x2c, 0xad, 0x73, 0x4c, 0xec,
-- 0x55, 0xb2, 0x07, 0xe9, 0x33, 0x57, 0x3c, 0x0d, 0xdf, 0xf1, 0x58, 0xf2,
-- 0x11, 0x97, 0xd5, 0x18, 0x06, 0xc9, 0xd7, 0x1d, 0xc2, 0x2b, 0x4b, 0x22,
-- 0x8c, 0xa3, 0xc6, 0xbd, 0xb9, 0xe3, 0xfd, 0x71, 0x72, 0x35, 0x2c, 0xca,
-- 0x9c, 0xed, 0x73, 0x5a, 0xec, 0x4c, 0x1a, 0x4b, 0x50, 0xd2, 0x93, 0x4f,
-- 0x2d, 0x33, 0x80, 0xae, 0xe6, 0x2c, 0x64, 0x48, 0x32, 0xbf, 0x93, 0xb8,
-- 0xe9, 0x19, 0xb4, 0x7b, 0xfe, 0xce, 0xb5, 0xba, 0xa2, 0x24, 0xbd, 0x54,
-- 0x44, 0xbd, 0xa7, 0x7d, 0x9e, 0x79, 0x86, 0x62, 0xfa, 0x86, 0x9b, 0xad,
-- 0x9f, 0x28, 0x47, 0x74, 0x11, 0xb7, 0x28, 0x81, 0x0c, 0x11, 0xeb, 0x06,
-- 0x39, 0xe9, 0x06, 0x8d, 0x0d, 0xbb, 0x47, 0x10, 0x25, 0x3b, 0x4a, 0xb4,
-- 0xbe, 0x01, 0xff, 0xec, 0xac, 0x68, 0xe3, 0x5c, 0x3d, 0x3c, 0x1b, 0x76,
-- 0x28, 0x2b, 0x3e, 0xbf, 0xbc, 0x2c, 0x50, 0xfc, 0xa3, 0x96, 0x83, 0x44,
-- 0xf3, 0x2d, 0xa2, 0xd4, 0xff, 0xa0, 0x43, 0x41, 0x15, 0xe9, 0x37, 0x3c,
-- 0x6e, 0x1c, 0x87, 0x08, 0x44, 0x04, 0x31, 0x9d, 0x51, 0xf7, 0xc1, 0x0b,
-- 0xd1, 0x9c, 0xac, 0x3e, 0x5d, 0x80, 0x8d, 0x16, 0x0c, 0xc9, 0x08, 0x75,
-- 0xc7, 0x10, 0xe5, 0x59, 0x9d, 0x10, 0xc4, 0xbb, 0x1f, 0x1f, 0xab, 0x2b,
-- 0x24, 0xe1, 0xdc, 0x4d, 0xf4, 0x1e, 0x91, 0xbf, 0x96, 0x0a, 0x4e, 0x00,
-- 0xf6, 0x0e, 0xab, 0x06, 0xd6, 0x64, 0xad, 0xd3, 0xd7, 0x59, 0x25, 0x59,
-- 0x3d, 0x6e, 0x00, 0xc5, 0x20, 0xf0, 0x9c, 0xe8, 0x58, 0x24, 0x04, 0xe2,
-- 0xf0, 0xfd, 0x44, 0x2a, 0x47, 0x48, 0x3c, 0x94, 0xbe, 0x37, 0xe8, 0xb0,
-- 0x09, 0xb1, 0xed, 0x6b, 0x05, 0x6b, 0xfe, 0xc7, 0x9d, 0xe2, 0x1f, 0x3d,
-- 0x51, 0xc8, 0x22, 0xbe, 0xc4, 0x1f, 0xbf, 0x8a, 0x2c, 0x82, 0xb2, 0x0d,
-- 0xe2, 0x87, 0xdb, 0x20, 0xda, 0x6f, 0xd0, 0xc7, 0x20, 0x4a, 0x5a, 0x9c,
-- 0x6c, 0x62, 0x3d, 0x82, 0xcd, 0x56, 0x1b, 0x17, 0x5f, 0xa7, 0x4d, 0x9a,
-- 0x08, 0x9e, 0x01, 0xd8, 0x59, 0xac, 0x94, 0xca, 0x1e, 0x4b, 0x6a, 0x46,
-- 0xce, 0x55, 0x4b, 0xf9, 0x36, 0xc5, 0xe9, 0xc9, 0x7e, 0x4f, 0xe0, 0xac,
-- 0xbf, 0x03, 0x38, 0x8b, 0x8b, 0x1f, 0xe2, 0x00, 0xbc, 0x9c, 0xa4, 0x30,
-- 0xed, 0x22, 0xd5, 0x99, 0x9a, 0xfe, 0xe2, 0x3f, 0xba, 0x6b, 0x0f, 0x5a,
-- 0x51, 0x5e, 0x05, 0x6d, 0x97, 0x3c, 0x6c, 0x71, 0x1e, 0xb0, 0x8a, 0xc5,
-- 0x95, 0x61, 0x50, 0xd6, 0x4d, 0x2b, 0xbd, 0xb3, 0x9d, 0xac, 0xf6, 0x4b,
-- 0x9d, 0x75, 0x62, 0xfc, 0x48, 0xe5, 0x17, 0x3e, 0x85, 0xf4, 0x6c, 0x9f,
-- 0x75, 0x20, 0x1e, 0xf7, 0x8a, 0xf6, 0x02, 0x5b, 0x77, 0x04, 0x86, 0xa9,
-- 0x25, 0x32, 0x58, 0xe0, 0x8e, 0xe6, 0x63, 0xea, 0x51, 0x1a, 0xca, 0x77,
-- 0x78, 0x48, 0xf4, 0xbe, 0x2a, 0xbe, 0x95, 0x50, 0xdb, 0xc0, 0x85, 0xa0,
-- 0x0b, 0x8a, 0x1e, 0xc7, 0x33, 0xbb, 0xa2, 0x83, 0x34, 0xcc, 0xca, 0xc0,
-- 0xcf, 0x38, 0x3c, 0x03, 0xa0, 0xe6, 0xa9, 0x8b, 0x67, 0xec, 0xd0, 0x88,
-- 0xc2, 0x4a, 0x5a, 0x57, 0x59, 0xed, 0xa2, 0x99, 0x26, 0x5e, 0x16, 0x97,
-- 0x41, 0x6d, 0xcc, 0x78, 0x32, 0x9b, 0x62, 0x8f, 0xee, 0xdc, 0x0a, 0x07,
-- 0xd6, 0xd6, 0x40, 0x74, 0xa1, 0x46, 0xf9, 0x7d, 0x46, 0x73, 0xa1, 0x1b,
-- 0x18, 0xf0, 0x2d, 0x5a, 0xcb, 0x0c, 0xcd, 0x06, 0x2b, 0x12, 0xe5, 0x49,
-- 0xd4, 0xcd, 0xb2, 0x0d, 0x96, 0xe4, 0x52, 0xa7, 0xa5, 0xab, 0x99, 0x11,
-- 0xae, 0xa8, 0x19, 0xe3, 0x18, 0xd6, 0x29, 0xd9, 0x18, 0x6c, 0x3a, 0xa9,
-- 0x0f, 0xf5, 0xa2, 0x84, 0x34, 0x62, 0xf7, 0x75, 0xea, 0x42, 0x4e, 0x5d,
-- 0x6e, 0x84, 0xa0, 0xad, 0x1b, 0x85, 0x28, 0x4d, 0x70, 0x67, 0x5b, 0x62,
-- 0x42, 0x36, 0x6e, 0x09, 0xc4, 0xdf, 0x48, 0x2e, 0x6b, 0x35, 0x36, 0xcf,
-- 0xee, 0xc2, 0xc6, 0xbc, 0xde, 0xe5, 0x1a, 0xfc, 0x1d, 0xcf, 0xd4, 0xb5,
-- 0x48, 0xa5, 0xd3, 0x45, 0x64, 0x8f, 0x60, 0x6f, 0x3f, 0x7f, 0x11, 0x3c,
-- 0xfc, 0xb6, 0x8f, 0xc2, 0x2e, 0xf3, 0x38, 0x22, 0xe8, 0x2d, 0x3e, 0x1c,
-- 0x26, 0xaf, 0x35, 0xb2, 0x1f, 0x49, 0xd4, 0x4b, 0x6d, 0x01, 0x01, 0xdf,
-- 0x41, 0x33, 0xdf, 0x69, 0x26, 0x4d, 0xc7, 0x96, 0xea, 0xfb, 0x55, 0x47,
-- 0xae, 0x9e, 0xa0, 0x3a, 0xcd, 0xad, 0x34, 0xce, 0x08, 0x7f, 0x9b, 0xb5,
-- 0x32, 0x47, 0x7c, 0x6a, 0x35, 0xec, 0xb2, 0x37, 0x68, 0x35, 0x32, 0x89,
-- 0xd7, 0xf6, 0x2e, 0x0a, 0x33, 0xea, 0x5b, 0x13, 0xc5, 0xa5, 0x66, 0xca,
-- 0x58, 0xdb, 0x1d, 0xb9, 0xdf, 0xd0, 0x93, 0x9e, 0x94, 0x13, 0xb8, 0xf1,
-- 0xee, 0xf9, 0xc9, 0x32, 0x2d, 0x45, 0xf5, 0x9b, 0xdf, 0x98, 0xb1, 0x57,
-- 0x6c, 0x18, 0xd9, 0x78, 0x59, 0x37, 0x41, 0xed, 0x82, 0x31, 0xe9, 0x15,
-- 0x8e, 0x21, 0x6d, 0xc0, 0x6d, 0xa3, 0xe2, 0x79, 0xef, 0xd4, 0x2c, 0xbd,
-- 0x7b, 0xbd, 0x4d, 0xcb, 0x32, 0x47, 0x12, 0xbe, 0x33, 0x01, 0x77, 0x25,
-- 0x90, 0xdb, 0x90, 0xcb, 0x4c, 0xe0, 0xad, 0xea, 0xc2, 0x04, 0x99, 0xce,
-- 0xee, 0x89, 0x76, 0xca, 0xce, 0xde, 0xdf, 0x48, 0xe5, 0xe0, 0xa0, 0x73,
-- 0x67, 0x54, 0xd3, 0xa2, 0xc2, 0xed, 0xee, 0x3b, 0x7a, 0x86, 0xea, 0x4b,
-- 0x5a, 0xa9, 0x8b, 0xfc, 0xb6, 0x57, 0x6d, 0xf1, 0xa3, 0x30, 0x70, 0x44,
-- 0x56, 0x35, 0xf3, 0x56, 0xf1, 0x91, 0x2e, 0x67, 0x1e, 0x1f, 0xf1, 0x9b,
-- 0x72, 0xf4, 0x94, 0xfe, 0xf9, 0x96, 0xff, 0x61, 0x56, 0xc1, 0x2a, 0x92,
-- 0xa0, 0xf5, 0x0a, 0xe0, 0x4f, 0xcc, 0x13, 0xb8, 0x30, 0x82, 0xa8, 0xfc,
-- 0xe7, 0xa0, 0xa2, 0x37, 0xf8, 0xa5, 0xcc, 0x1e, 0x78, 0x87, 0xe6, 0xf6,
-- 0x77, 0xb6, 0x7a, 0x2e, 0x49, 0x49, 0x20, 0x4a, 0x1c, 0xc3, 0xa2, 0x36,
-- 0x73, 0xcc, 0x04, 0x15, 0x5b, 0x1d, 0x9a, 0x87, 0xc0, 0x7f, 0xc1, 0xfe,
-- 0x29, 0x76, 0x85, 0x7c, 0x85, 0xfb, 0x72, 0x75, 0x7f, 0x92, 0xe1, 0x28,
-- 0xff, 0xb4, 0xf0, 0x6a, 0x1e, 0x9c, 0xdb, 0xd7, 0xe7, 0xe7, 0x83, 0x77,
-- 0x8a, 0x69, 0xb2, 0xc2, 0x25, 0xe6, 0xbe, 0x6e, 0x37, 0xcc, 0x4b, 0x41,
-- 0x8b, 0xf9, 0xec, 0xd3, 0x56, 0xf1, 0x35, 0x67, 0xa6, 0x99, 0x2c, 0x27,
-- 0xaa, 0x04, 0x12, 0x8c, 0x52, 0x47, 0x07, 0xa3, 0x65, 0x6e, 0x85, 0x5c,
-- 0xf1, 0xb0, 0x5a, 0x1d, 0x25, 0xb1, 0x73, 0xc5, 0x8a, 0x20, 0x57, 0x0e,
-- 0x35, 0x7a, 0x90, 0x93, 0x74, 0x63, 0xc0, 0x20, 0xb3, 0x6c, 0xc6, 0x00,
-- 0x84, 0x2e, 0x1d, 0x4e, 0x64, 0x3d, 0xe4, 0xf3, 0xa2, 0xf3, 0x15, 0x8e,
-- 0xab, 0x09, 0x17, 0xb1, 0x61, 0x1d, 0x5e, 0x62, 0xeb, 0xff, 0x10, 0x59,
-- 0xb1, 0xab, 0xfb, 0xf9, 0xf8, 0xfa, 0xf5, 0xbb, 0xf3, 0xb5, 0xd5, 0x21,
-- 0x01, 0x56, 0x3c, 0x8d, 0x61, 0xac, 0xf9, 0xe9, 0xb2, 0x98, 0x73, 0x36,
-- 0x55, 0x10, 0x27, 0x91, 0x75, 0xdc, 0x3b, 0xa7, 0xef, 0x0e, 0xbf, 0x3e,
-- 0xb1, 0x7f, 0x56, 0x2e, 0xf9, 0x83, 0x2b, 0x7c, 0x9c, 0x96, 0x57, 0x59,
-- 0x07, 0xbe, 0x62, 0x34, 0x38, 0xc3, 0x7c, 0x09, 0x04, 0x68, 0x22, 0xc8,
-- 0x29, 0xbf, 0x2e, 0xb4, 0xd8, 0x57, 0x92, 0xc4, 0x47, 0x2b, 0xbc, 0xcc,
-- 0xb8, 0x74, 0x76, 0xbf, 0xfe, 0x2a, 0xbe, 0x60, 0x5e, 0xbf, 0x5b, 0xd1,
-- 0x1d, 0x7f, 0x33, 0x30, 0x79, 0x42, 0x2d, 0x69, 0x13, 0x3a, 0x1f, 0xb9,
-- 0xd4, 0x82, 0xe9, 0x58, 0x95, 0xf3, 0xd3, 0x23, 0xfb, 0xa7, 0x31, 0xf5,
-- 0x30, 0x01, 0x58, 0x68, 0x9e, 0x53, 0xbe, 0x50, 0x87, 0x3c, 0x19, 0x4d,
-- 0xd3, 0xf9, 0x8d, 0xe4, 0x74, 0x77, 0x8f, 0x5c, 0xd0, 0x0b, 0x2c, 0xf3,
-- 0x02, 0x38, 0x9c, 0x7e, 0x95, 0xd5, 0x20, 0x8f, 0xec, 0x5d, 0x49, 0x74,
-- 0x11, 0x78, 0xa8, 0x0e, 0x96, 0xee, 0x5c, 0x11, 0x2b, 0x4c, 0xbc, 0x8a,
-- 0x09, 0xd6, 0xfd, 0x16, 0x83, 0x85, 0x6d, 0x9c, 0x4b, 0x11, 0xa7, 0x33,
-- 0x09, 0x0e, 0x3a, 0xd5, 0x86, 0x36, 0x3b, 0x76, 0x7d, 0x25, 0x1e, 0x99,
-- 0x29, 0xa4, 0x44, 0xd8, 0x1d, 0x75, 0x7e, 0xde, 0x92, 0x98, 0xc3, 0xf7,
-- 0xcb, 0x03, 0x14, 0xa1, 0xeb, 0xe0, 0x36, 0xc9, 0xbd, 0x93, 0x6c, 0x8c,
-- 0xe8, 0xd2, 0x72, 0x77, 0x9c, 0x64, 0xd9, 0x3f, 0x05, 0xc0, 0x59, 0x77,
-- 0x73, 0xcf, 0x3e, 0x7f, 0xf6, 0x74, 0x73, 0xb3, 0x9f, 0x98, 0x91, 0x56,
-- 0x52, 0xb1, 0xd8, 0x91, 0xc2, 0xe7, 0x53, 0x02, 0x61, 0x58, 0xc4, 0xbd,
-- 0x46, 0x66, 0x6e, 0xb0, 0xfe, 0xdd, 0xcd, 0xf1, 0xde, 0xda, 0xab, 0x3c,
-- 0x3d, 0xc6, 0xf5, 0x04, 0x8f, 0xcc, 0xd5, 0x8b, 0x05, 0x16, 0x9c, 0xc9,
-- 0x03, 0x1b, 0xe6, 0x61, 0x58, 0xe9, 0xd9, 0x97, 0xca, 0xdb, 0xa5, 0x45,
-- 0x06, 0x88, 0x5f, 0x07, 0xec, 0xc2, 0x2e, 0x1b, 0x4e, 0xa1, 0x7f, 0x73,
-- 0x74, 0x7c, 0xe8, 0x0e, 0xf7, 0xff, 0xde, 0x1a, 0xf2, 0x20, 0xcb, 0x71,
-- 0x9c, 0x93, 0x08, 0x11, 0x2d, 0x48, 0x53, 0xee, 0x23, 0xd1, 0x7f, 0xf0,
-- 0x6d, 0x5f, 0xf4, 0x44, 0x7c, 0xec, 0x61, 0x04, 0xa9, 0xe1, 0xc3, 0x77,
-- 0xdf, 0x1d, 0x9d, 0x9d, 0xbc, 0x7b, 0x7b, 0xf8, 0xce, 0x65, 0x14, 0xf0,
-- 0x75, 0xda, 0xed, 0xd0, 0x8b, 0x7c, 0x1b, 0x39, 0xe7, 0xa4, 0xb0, 0xa8,
-- 0xc7, 0xce, 0x26, 0x9e, 0x05, 0xed, 0x96, 0xfe, 0x35, 0x0c, 0x9b, 0x0b,
-- 0x1e, 0xb2, 0x7d, 0x63, 0x9d, 0x62, 0xc1, 0xa1, 0xc0, 0x13, 0xce, 0xd9,
-- 0x1a, 0x4a, 0x7a, 0x85, 0xf8, 0x51, 0x72, 0x71, 0x03, 0x7e, 0x1c, 0x67,
-- 0x8a, 0x36, 0x5e, 0x05, 0xd5, 0xcd, 0x2c, 0xbd, 0xc8, 0x67, 0x61, 0x35,
-- 0x06, 0xe1, 0xa9, 0x5d, 0xaa, 0x3f, 0xaf, 0xf2, 0x27, 0x02, 0x55, 0x23,
-- 0x2c, 0x8c, 0x71, 0xad, 0x4e, 0x19, 0x38, 0x69, 0x12, 0x89, 0x3d, 0x48,
-- 0x02, 0x74, 0x78, 0x0f, 0x78, 0x69, 0x0e, 0xf9, 0xb6, 0x62, 0x1d, 0xcc,
-- 0xa0, 0xe1, 0xaa, 0x47, 0x59, 0x83, 0x2f, 0xd4, 0x2f, 0x1f, 0xa3, 0xbc,
-- 0x55, 0xa1, 0xf3, 0x4b, 0x88, 0x20, 0x80, 0x21, 0x80, 0xdf, 0x70, 0x2d,
-- 0x88, 0xe1, 0x3d, 0xff, 0x70, 0x7a, 0x76, 0xf2, 0xc3, 0x8f, 0xff, 0xe0,
-- 0x2e, 0xce, 0xfd, 0x34, 0x7e, 0xe2, 0x6b, 0xc8, 0x1a, 0xff, 0xe5, 0x37,
-- 0xf5, 0xf6, 0x60, 0x77, 0xcd, 0xf6, 0xfb, 0x9a, 0xc2, 0xb7, 0x0a, 0x92,
-- 0x1b, 0x6e, 0x2e, 0x01, 0xba, 0xf6, 0xd5, 0xa7, 0x2d, 0x44, 0xd7, 0x31,
-- 0x07, 0x1c, 0x61, 0x4e, 0xbc, 0x09, 0x2a, 0xa1, 0x74, 0x95, 0x4b, 0x03,
-- 0x48, 0x32, 0x2a, 0xa0, 0xb1, 0xac, 0x14, 0xd7, 0xc1, 0xeb, 0x03, 0x76,
-- 0x1f, 0x97, 0xb2, 0x5b, 0x8f, 0xfd, 0xe3, 0xe3, 0xdf, 0xbe, 0x08, 0x2e,
-- 0x94, 0xa2, 0xb1, 0x0c, 0x30, 0x2d, 0xb8, 0x09, 0x0d, 0x9c, 0x40, 0x6a,
-- 0xe4, 0xdf, 0x01, 0xb6, 0xe7, 0x86, 0xf3, 0xee, 0x44, 0x47, 0x23, 0x2e,
-- 0xb5, 0x41, 0x95, 0x91, 0xe0, 0x0e, 0x8f, 0x06, 0x9b, 0xc4, 0xf9, 0xc2,
-- 0x44, 0xc9, 0xf0, 0x2f, 0x22, 0xc1, 0xcf, 0x7f, 0x69, 0x85, 0xad, 0xe1,
-- 0x9e, 0x07, 0x68, 0x3b, 0x92, 0xbb, 0x0b, 0xe7, 0x0d, 0x96, 0xf2, 0x14,
-- 0xa8, 0x3a, 0x84, 0xdc, 0xf0, 0x0e, 0x1f, 0x3e, 0x5b, 0x64, 0x39, 0x22,
-- 0xa8, 0xcc, 0xab, 0x1b, 0x24, 0xc6, 0xf3, 0xa1, 0xec, 0x4b, 0x59, 0xce,
-- 0x1a, 0x55, 0x8a, 0x59, 0xc4, 0xc7, 0x50, 0x68, 0xec, 0x32, 0x62, 0xfa,
-- 0x79, 0x71, 0x72, 0x70, 0x72, 0x4c, 0xbf, 0x1c, 0xbe, 0x39, 0xfa, 0xc1,
-- 0x33, 0x34, 0x29, 0x57, 0xa1, 0x9c, 0xd7, 0x18, 0x84, 0x2b, 0x5f, 0x11,
-- 0x3b, 0x87, 0x23, 0x14, 0xe1, 0x26, 0xe4, 0x5d, 0x67, 0x60, 0xca, 0x27,
-- 0x85, 0xa2, 0x84, 0x11, 0x3c, 0xc1, 0x0e, 0xe1, 0x92, 0x0f, 0x99, 0x5e,
-- 0x73, 0x6f, 0x65, 0x50, 0x48, 0x62, 0xcb, 0x2f, 0x5d, 0xdc, 0x67, 0x68,
-- 0xca, 0x34, 0xeb, 0x85, 0x9a, 0x2f, 0x80, 0xb9, 0xe3, 0x00, 0x71, 0x59,
-- 0x97, 0xed, 0x07, 0x93, 0x34, 0xb5, 0x36, 0x08, 0x27, 0xd1, 0xf0, 0x83,
-- 0xb5, 0x30, 0xe4, 0xc1, 0x0f, 0x16, 0xea, 0x97, 0x6b, 0xae, 0x39, 0x27,
-- 0x5d, 0x00, 0x4d, 0x2a, 0x46, 0xb2, 0x1e, 0xbc, 0xe5, 0x5e, 0x61, 0x71,
-- 0x91, 0x37, 0x9d, 0x08, 0x10, 0xb9, 0xf0, 0x48, 0x46, 0x88, 0xbc, 0x4d,
-- 0x91, 0x3c, 0x8f, 0xcc, 0x7b, 0x79, 0xa9, 0xd5, 0x46, 0xfa, 0x9b, 0x1a,
-- 0x49, 0x9b, 0xad, 0x3c, 0xfb, 0x2d, 0x8d, 0x3c, 0x6b, 0xb5, 0x71, 0xfd,
-- 0x9b, 0x1a, 0x71, 0x65, 0x97, 0xe8, 0x5a, 0xfc, 0xe1, 0xe8, 0x22, 0x39,
-- 0x38, 0x79, 0xed, 0x69, 0xf4, 0xc2, 0x5d, 0xed, 0x29, 0x69, 0x04, 0x24,
-- 0x3f, 0xc3, 0x72, 0xe5, 0x2a, 0xcf, 0x5b, 0x11, 0x73, 0x8e, 0x4f, 0xa8,
-- 0x7c, 0x1d, 0xf0, 0x1c, 0x1f, 0x95, 0x92, 0xdd, 0x17, 0x82, 0x29, 0xba,
-- 0x9a, 0xe7, 0x28, 0xe0, 0xd9, 0xc0, 0x1f, 0x62, 0xf4, 0xf5, 0xb4, 0x34,
-- 0xf0, 0xa1, 0x51, 0xca, 0xbe, 0xca, 0xb9, 0xb8, 0x78, 0x2b, 0x06, 0x1f,
-- 0xf2, 0x31, 0x85, 0x85, 0xcb, 0x16, 0x86, 0xe9, 0x84, 0x73, 0x6a, 0x11,
-- 0xe9, 0x23, 0xea, 0x3a, 0xd7, 0x7d, 0xc6, 0x68, 0x1a, 0x69, 0xca, 0x3b,
-- 0xca, 0x09, 0xe7, 0x0d, 0x8a, 0x51, 0xdc, 0x7d, 0x48, 0x5e, 0xac, 0xef,
-- 0x4c, 0xcc, 0x76, 0x80, 0x7b, 0x71, 0xee, 0x74, 0x6f, 0x2d, 0x09, 0x19,
-- 0xb1, 0x28, 0xd7, 0x84, 0xeb, 0x67, 0x57, 0xfe, 0x79, 0x23, 0xf5, 0xa9,
-- 0xe9, 0xfc, 0x69, 0x7e, 0x6b, 0xfe, 0xf7, 0xe0, 0x8e, 0x7e, 0xe2, 0x43,
-- 0x3b, 0x66, 0xe9, 0x54, 0x02, 0x6e, 0x14, 0x94, 0xe0, 0x7e, 0x5e, 0xa7,
-- 0x1f, 0x11, 0x23, 0xc5, 0x22, 0x11, 0xd6, 0x70, 0x1c, 0xb0, 0xc1, 0xa7,
-- 0xca, 0x9c, 0x13, 0x53, 0xc5, 0xe5, 0xfc, 0x99, 0x31, 0x5e, 0x33, 0xda,
-- 0xd2, 0xca, 0x85, 0x5a, 0x72, 0x64, 0x88, 0x82, 0x71, 0x89, 0xf1, 0xbf,
-- 0xe2, 0x02, 0xa0, 0xdd, 0x0e, 0x59, 0xd7, 0xad, 0x81, 0xf7, 0x14, 0x12,
-- 0x8c, 0x0d, 0x77, 0x7c, 0x3e, 0xce, 0x25, 0x79, 0x49, 0x0a, 0xa0, 0x4f,
-- 0x50, 0xea, 0x4a, 0x16, 0x6d, 0xb0, 0xc2, 0x12, 0x5a, 0x48, 0x09, 0x57,
-- 0xe5, 0x70, 0x26, 0x7f, 0x4c, 0x0a, 0xac, 0xa4, 0x84, 0x2e, 0x71, 0xfd,
-- 0x43, 0xfa, 0xe2, 0x5e, 0x9c, 0xac, 0xe9, 0x1c, 0x76, 0x99, 0xa8, 0x7a,
-- 0x86, 0x6e, 0x8c, 0x6a, 0xa6, 0x5e, 0x0d, 0x7c, 0x66, 0x11, 0x01, 0xca,
-- 0xcb, 0xad, 0x0a, 0x92, 0x31, 0x71, 0x18, 0x8d, 0x14, 0xca, 0x5d, 0xb9,
-- 0x96, 0x44, 0xfc, 0x8f, 0x25, 0xab, 0x8d, 0xe7, 0x1a, 0xc7, 0xb3, 0x69,
-- 0x2b, 0x81, 0x06, 0xf1, 0x7c, 0x45, 0x3f, 0xdc, 0x98, 0xec, 0x9b, 0x74,
-- 0xd2, 0x4e, 0x88, 0xe0, 0xf6, 0xe3, 0xd6, 0x3e, 0x6b, 0x93, 0x88, 0xe5,
-- 0x27, 0x30, 0x22, 0x62, 0x11, 0xa6, 0x29, 0x7d, 0xae, 0x4f, 0xb2, 0x11,
-- 0xe2, 0x2e, 0x63, 0x4b, 0x8f, 0x8b, 0xa4, 0x2d, 0xb3, 0xc5, 0xd4, 0x4d,
-- 0xd1, 0x3e, 0x44, 0x5e, 0x14, 0xdc, 0x7c, 0x58, 0xf1, 0xb1, 0x8e, 0x37,
-- 0x0e, 0xd6, 0x0a, 0x05, 0xc6, 0x17, 0xbe, 0x93, 0x14, 0x79, 0x2c, 0x44,
-- 0x24, 0xf3, 0xdc, 0x11, 0xa4, 0x16, 0x32, 0xc5, 0x47, 0x86, 0xa9, 0xe5,
-- 0xfe, 0xb6, 0x37, 0xe2, 0x18, 0x43, 0xb9, 0x29, 0x7c, 0x88, 0x3c, 0xd6,
-- 0x61, 0x59, 0x0a, 0x1e, 0x8a, 0x2f, 0x49, 0x00, 0xf8, 0x8a, 0x74, 0xae,
-- 0xd1, 0x62, 0x28, 0x99, 0x3d, 0x04, 0xae, 0x4e, 0x84, 0x0d, 0x56, 0x0b,
-- 0x6c, 0x11, 0x6c, 0xd8, 0x93, 0xa0, 0xfc, 0x0e, 0xae, 0xe4, 0xa0, 0xa2,
-- 0x02, 0x9f, 0x00, 0x77, 0xef, 0x20, 0x52, 0x2f, 0xe9, 0x84, 0x63, 0xb3,
-- 0x10, 0x19, 0xcf, 0x21, 0x76, 0xda, 0x8b, 0x7d, 0xba, 0x7f, 0x7e, 0x6e,
-- 0x0b, 0x7d, 0x10, 0x2e, 0xa8, 0x2c, 0xa1, 0xe6, 0xad, 0x02, 0x42, 0x4a,
-- 0xe1, 0x55, 0x62, 0x75, 0x47, 0xdb, 0x68, 0xe5, 0x9f, 0xed, 0x3c, 0x71,
-- 0x7d, 0xb9, 0xae, 0xbe, 0x93, 0xb6, 0xfa, 0x9f, 0xd8, 0x55, 0x77, 0x5f,
-- 0xdf, 0x75, 0xf4, 0xf5, 0x34, 0x22, 0xa2, 0xdd, 0xdd, 0xcf, 0x0c, 0x5a,
-- 0x44, 0x10, 0xb7, 0xa7, 0x89, 0xef, 0x30, 0xe8, 0x91, 0x9e, 0x1b, 0xc0,
-- 0xb6, 0x18, 0xf7, 0xa5, 0x74, 0xc1, 0xa3, 0x09, 0xba, 0x7a, 0xe6, 0xba,
-- 0x22, 0x9d, 0x69, 0x1d, 0xee, 0x28, 0x3d, 0x24, 0xd1, 0xd9, 0x81, 0x5d,
-- 0x99, 0x0f, 0xca, 0x11, 0xaf, 0x01, 0x89, 0x61, 0x2b, 0x33, 0xfa, 0x6c,
-- 0x14, 0x41, 0x3f, 0x9f, 0xf9, 0x29, 0xf9, 0x71, 0x4b, 0x11, 0x79, 0x40,
-- 0x8d, 0x0d, 0x83, 0xc3, 0xea, 0x08, 0xc5, 0x22, 0xd8, 0x5d, 0x68, 0x55,
-- 0x9b, 0xcf, 0xc8, 0xab, 0xbe, 0x17, 0x39, 0x7e, 0xa7, 0x4c, 0xc4, 0x5a,
-- 0xfe, 0x63, 0x98, 0x9c, 0x40, 0x09, 0x6b, 0x80, 0x84, 0x42, 0x95, 0xe5,
-- 0xe3, 0xee, 0x80, 0xdd, 0xc3, 0xd3, 0xbe, 0xf3, 0xc2, 0xaf, 0x89, 0x0d,
-- 0xc9, 0xdc, 0x81, 0x5b, 0x7a, 0x7c, 0xbc, 0xe7, 0xc1, 0xbc, 0xfd, 0x19,
-- 0x62, 0x2f, 0x38, 0x33, 0x09, 0xb0, 0x8f, 0x11, 0xae, 0x35, 0x1d, 0xa9,
-- 0x4d, 0x17, 0xe8, 0x70, 0x09, 0x4e, 0x12, 0xdc, 0x41, 0x9e, 0x92, 0xff,
-- 0xb6, 0x64, 0x86, 0x84, 0x5b, 0x97, 0xee, 0x50, 0xfd, 0xd3, 0xde, 0x13,
-- 0x2c, 0x13, 0x2e, 0x12, 0x84, 0x5b, 0xd9, 0x67, 0x1f, 0xe8, 0xc9, 0x70,
-- 0xeb, 0xef, 0x33, 0x29, 0x05, 0x92, 0x5f, 0x18, 0xa7, 0x03, 0x34, 0x18,
-- 0xba, 0x24, 0x3d, 0x43, 0xf6, 0x00, 0xb2, 0xa4, 0x32, 0x40, 0x01, 0x05,
-- 0x88, 0x7c, 0x31, 0xae, 0x73, 0x65, 0xfa, 0x3a, 0x88, 0x66, 0x18, 0x5b,
-- 0x20, 0x5d, 0x24, 0x6a, 0x1f, 0x48, 0x9e, 0x6e, 0x6f, 0x77, 0x14, 0x41,
-- 0x49, 0x47, 0xc5, 0xad, 0x45, 0x83, 0x2a, 0x46, 0x0b, 0xde, 0x12, 0xa5,
-- 0x19, 0xa2, 0x45, 0xc5, 0x62, 0xea, 0xe0, 0x92, 0x6d, 0x02, 0xbc, 0x62,
-- 0xe6, 0x6b, 0x09, 0xd6, 0x4d, 0x4e, 0xe5, 0xf7, 0x00, 0x8d, 0xb1, 0x45,
-- 0x6b, 0x1d, 0x47, 0x41, 0x94, 0x31, 0xd4, 0xfe, 0x34, 0x28, 0x0d, 0xa3,
-- 0xf1, 0x07, 0xd1, 0xc8, 0x14, 0xa8, 0x36, 0xe8, 0xe6, 0x59, 0x4c, 0x11,
-- 0xe7, 0x17, 0x27, 0x67, 0x4a, 0x61, 0x31, 0xd7, 0xd5, 0xba, 0xc3, 0xfc,
-- 0x88, 0x8f, 0x88, 0xed, 0x77, 0x38, 0xf8, 0x9d, 0xe9, 0x57, 0x72, 0x31,
-- 0x19, 0x77, 0xcc, 0xf7, 0xfa, 0xdc, 0x07, 0xe3, 0xe9, 0xd4, 0xbe, 0x4b,
-- 0x4b, 0x20, 0x4b, 0x59, 0xf5, 0x10, 0x2b, 0x46, 0x1c, 0xbc, 0x24, 0x07,
-- 0xed, 0x64, 0x09, 0x62, 0x17, 0x2b, 0x2e, 0xd3, 0x91, 0xda, 0x73, 0x39,
-- 0x02, 0x55, 0x8d, 0x62, 0xce, 0xe9, 0xd6, 0xa6, 0x45, 0x39, 0x44, 0x27,
-- 0xae, 0x40, 0x8c, 0x39, 0xe8, 0xdd, 0xdd, 0xe5, 0x55, 0x57, 0x38, 0x84,
-- 0xd9, 0x41, 0x24, 0xe1, 0x0e, 0x9a, 0xa0, 0x99, 0x72, 0xc6, 0x43, 0x7b,
-- 0xb7, 0xc7, 0x24, 0x19, 0x49, 0x5c, 0x68, 0x61, 0x15, 0xb8, 0x4d, 0x54,
-- 0xf4, 0x52, 0xd6, 0xb6, 0x5b, 0xe7, 0xd3, 0x93, 0xb3, 0x0b, 0x1b, 0x1a,
-- 0xba, 0xc5, 0x07, 0xad, 0xf3, 0xc3, 0xf8, 0x64, 0xea, 0xa2, 0x01, 0x67,
-- 0x91, 0x4d, 0x88, 0xb4, 0x52, 0x95, 0x08, 0x65, 0x53, 0xd0, 0x8e, 0x35,
-- 0xc4, 0x3a, 0x5b, 0x79, 0x6f, 0xf1, 0x5a, 0xac, 0xed, 0x38, 0x9e, 0x23,
-- 0x66, 0x14, 0x66, 0xd0, 0xdd, 0x8e, 0x54, 0x2f, 0xd3, 0x3c, 0xd9, 0x89,
-- 0xa9, 0x83, 0x95, 0xe7, 0xb3, 0x43, 0xae, 0x56, 0x7d, 0x71, 0x2d, 0xbf,
-- 0x45, 0x63, 0x17, 0xfb, 0xae, 0x7e, 0xd8, 0x1d, 0xfe, 0x01, 0xea, 0xe0,
-- 0x4c, 0x1a, 0x0e, 0xef, 0xe6, 0xf6, 0x9d, 0xbd, 0x39, 0x58, 0xb3, 0x27,
-- 0x41, 0xd6, 0x34, 0xd8, 0xa6, 0xd2, 0x0a, 0x12, 0xdc, 0xf1, 0x41, 0x4f,
-- 0x7b, 0xe9, 0xd1, 0xad, 0x2b, 0x47, 0xa2, 0x28, 0x6f, 0x82, 0x16, 0x9e,
-- 0xfa, 0x16, 0x16, 0xcc, 0xdf, 0xb5, 0x81, 0x23, 0xf3, 0x5b, 0xf3, 0x87,
-- 0x2e, 0x40, 0xf6, 0x2a, 0x9b, 0x1b, 0x61, 0xc8, 0x73, 0xbe, 0x9d, 0x67,
-- 0xce, 0xdb, 0x63, 0xf2, 0x51, 0x30, 0x14, 0xfe, 0xd8, 0xd2, 0x55, 0x11,
-- 0x1c, 0xd7, 0x22, 0xbb, 0x27, 0xcf, 0xfd, 0x0d, 0xc1, 0xaa, 0x84, 0x8f,
-- 0xc0, 0xd0, 0x15, 0x08, 0x6e, 0x24, 0x8e, 0x60, 0xc9, 0xe7, 0x4b, 0x60,
-- 0x57, 0x12, 0x9b, 0x98, 0x32, 0x6e, 0xb3, 0x86, 0x50, 0x44, 0x0e, 0x5f,
-- 0x4d, 0xbc, 0xf6, 0xfd, 0xe8, 0x4d, 0x74, 0x74, 0x7c, 0xe8, 0xb7, 0x4b,
-- 0xc0, 0xc1, 0x70, 0x98, 0xbd, 0x90, 0x47, 0x07, 0x77, 0xee, 0xae, 0x8b,
-- 0x61, 0x72, 0xca, 0xe5, 0xba, 0xe0, 0x7d, 0xaa, 0xfe, 0xcd, 0xb7, 0x26,
-- 0x87, 0x05, 0xc6, 0x18, 0xba, 0x40, 0x61, 0x14, 0xcd, 0xe7, 0xb4, 0xbb,
-- 0xf8, 0x84, 0x7f, 0x0d, 0x2a, 0x2d, 0x45, 0x53, 0x7e, 0xe1, 0x5f, 0xae,
-- 0x68, 0x1e, 0xa4, 0xaa, 0xb5, 0x1f, 0x79, 0xaa, 0xb4, 0x45, 0x7a, 0x9c,
-- 0x94, 0x7c, 0x37, 0xf6, 0xcc, 0x67, 0xba, 0x94, 0x72, 0x08, 0x13, 0x69,
-- 0xe1, 0xd2, 0x9e, 0x69, 0xb0, 0xf1, 0xa0, 0x29, 0xb9, 0x14, 0xf6, 0x65,
-- 0x9d, 0x10, 0x99, 0x4e, 0x27, 0x67, 0x94, 0x8e, 0x6f, 0xa8, 0xad, 0x39,
-- 0x73, 0xdc, 0xa9, 0xd9, 0xcb, 0x7d, 0x96, 0x11, 0x73, 0x4c, 0x7e, 0x41,
-- 0x71, 0xfa, 0xb2, 0x32, 0xae, 0xbb, 0xd7, 0x30, 0x2d, 0x3e, 0x15, 0x6a,
-- 0x74, 0xa4, 0xe3, 0xee, 0xb1, 0xc6, 0xe8, 0xb8, 0x63, 0x9f, 0x9e, 0xc3,
-- 0xbb, 0xcd, 0xa6, 0x21, 0xba, 0xe5, 0x43, 0xe9, 0xee, 0xe9, 0x33, 0xdf,
-- 0xd4, 0x25, 0x50, 0xec, 0x8d, 0xbf, 0xef, 0x37, 0x78, 0x90, 0x83, 0x44,
-- 0xcf, 0xdd, 0x93, 0xa2, 0x2c, 0x88, 0x85, 0xba, 0xe3, 0x58, 0x05, 0x7d,
-- 0x08, 0x31, 0x5c, 0x14, 0x1c, 0x8b, 0x30, 0xbf, 0xf7, 0xc0, 0x1c, 0x43,
-- 0x89, 0xee, 0x13, 0x1b, 0x84, 0x94, 0x07, 0x70, 0x90, 0x1d, 0xa2, 0x6d,
-- 0xaa, 0x82, 0x3e, 0x4b, 0x3f, 0x46, 0x57, 0xfd, 0x6c, 0x39, 0x53, 0x3c,
-- 0x82, 0xa0, 0xa7, 0xcf, 0x55, 0x9b, 0x95, 0x6a, 0xf3, 0x4e, 0xff, 0x0b,
-- 0x99, 0x69, 0xe1, 0x5c, 0xba, 0x96, 0x24, 0x31, 0x97, 0x20, 0xe0, 0xca,
-- 0x15, 0x43, 0x5a, 0x8b, 0x5d, 0x27, 0x7c, 0x21, 0xab, 0x98, 0x68, 0xe1,
-- 0x86, 0x45, 0x80, 0x26, 0xc9, 0xeb, 0xad, 0x8f, 0xc9, 0x57, 0xe6, 0x2d,
-- 0xec, 0x70, 0xc8, 0x94, 0xd9, 0x5f, 0x51, 0x83, 0x70, 0x28, 0x97, 0x8e,
-- 0x00, 0x3a, 0xc9, 0x2c, 0x39, 0xc4, 0xc0, 0xb3, 0xbc, 0xa7, 0x2f, 0xd4,
-- 0x54, 0xa1, 0xaa, 0xb0, 0x15, 0xc6, 0x6b, 0x5b, 0x9a, 0x9f, 0xed, 0x38,
-- 0xbb, 0x0f, 0x67, 0xff, 0xaf, 0x57, 0xc2, 0x1d, 0x02, 0x0c, 0x00, 0x62,
-- 0x70, 0xe7, 0xe7, 0xdf, 0x24, 0x6f, 0x5f, 0x3f, 0xe3, 0x44, 0xd4, 0xab,
-- 0xac, 0xe4, 0x9a, 0x93, 0x5e, 0x17, 0x3b, 0xf9, 0x36, 0x68, 0x6c, 0xd7,
-- 0xc7, 0x15, 0x98, 0xfe, 0xa4, 0x0c, 0x4d, 0x25, 0x6d, 0xda, 0x42, 0x06,
-- 0xb4, 0xbb, 0x32, 0x17, 0x8a, 0x95, 0x63, 0x33, 0x9c, 0x47, 0xc8, 0x2e,
-- 0xed, 0x3c, 0x86, 0x26, 0x13, 0x7b, 0xf6, 0xc4, 0x33, 0xb1, 0xf2, 0x7e,
-- 0xc1, 0xb8, 0xe8, 0xf3, 0x2b, 0x16, 0xa8, 0x3b, 0x4e, 0xd4, 0x33, 0x61,
-- 0x9c, 0x07, 0x72, 0xee, 0x59, 0x98, 0x8d, 0x5f, 0x4b, 0x2b, 0x0b, 0x48,
-- 0x09, 0xde, 0x7b, 0x16, 0xaa, 0x93, 0x24, 0x90, 0xe3, 0x5e, 0xa4, 0xf5,
-- 0x43, 0xc5, 0x55, 0x96, 0x54, 0x82, 0x67, 0x9f, 0xbb, 0x67, 0x97, 0x80,
-- 0x51, 0x0e, 0x0a, 0x47, 0xac, 0x78, 0x43, 0x85, 0x60, 0x11, 0x0d, 0xbc,
-- 0x78, 0x26, 0x72, 0x4f, 0xb0, 0xf6, 0xc1, 0x2b, 0x2f, 0x9a, 0xda, 0x32,
-- 0x2a, 0xae, 0xf9, 0xfa, 0xc5, 0x3c, 0xa9, 0x7c, 0x71, 0x1d, 0x1e, 0xce,
-- 0xe7, 0x72, 0x53, 0x9f, 0xb6, 0x21, 0x1d, 0x8c, 0x07, 0x36, 0x1c, 0xaf,
-- 0x76, 0xd4, 0x85, 0xf4, 0x0f, 0xf6, 0x13, 0x7b, 0x25, 0xaa, 0x23, 0xcd,
-- 0xb4, 0x1e, 0x74, 0xb2, 0xa3, 0x67, 0x86, 0xa6, 0x5c, 0x5c, 0xcd, 0xf3,
-- 0xbf, 0x67, 0x41, 0x0e, 0xb3, 0x15, 0xfd, 0x08, 0x1e, 0xdf, 0x55, 0x86,
-- 0x71, 0x9b, 0x4e, 0x73, 0x65, 0x8a, 0x6c, 0x47, 0xf7, 0x0f, 0x3c, 0x51,
-- 0xaa, 0xfd, 0x98, 0xf3, 0x11, 0x95, 0x18, 0x54, 0x2e, 0xff, 0xc4, 0x1e,
-- 0x9c, 0xac, 0x01, 0x11, 0xf2, 0xfc, 0xa9, 0xca, 0x5e, 0x26, 0x1f, 0xf3,
-- 0xbd, 0xc4, 0x0b, 0x31, 0x65, 0x07, 0x77, 0xc4, 0xa6, 0x9f, 0xeb, 0xd5,
-- 0xa7, 0x5b, 0xa9, 0xe1, 0x4f, 0xa9, 0x71, 0x68, 0xf6, 0x0a, 0x94, 0xd9,
-- 0x5d, 0x3e, 0xd7, 0xcc, 0xa2, 0xe8, 0xf5, 0xe7, 0x2b, 0x4c, 0x50, 0x95,
-- 0xdc, 0x9b, 0x87, 0xa0, 0xa5, 0xe0, 0xf9, 0xcf, 0xfc, 0x49, 0x08, 0xc1,
-- 0xf1, 0x9d, 0x2b, 0x15, 0x51, 0x71, 0x56, 0x6f, 0xc1, 0xce, 0x12, 0xab,
-- 0x2e, 0x0b, 0x83, 0xf7, 0xec, 0x48, 0xe3, 0xbb, 0x74, 0xdd, 0x4f, 0x0b,
-- 0xe6, 0xa6, 0x41, 0x7f, 0x42, 0x52, 0x6f, 0x50, 0x41, 0xcf, 0x2b, 0x08,
-- 0xf3, 0x46, 0xad, 0x2b, 0xff, 0xf4, 0x0b, 0xa5, 0x0d, 0xbb, 0x2f, 0x4d,
-- 0x4c, 0x5d, 0xf9, 0xc6, 0x67, 0xdb, 0xa1, 0xd0, 0x3a, 0x61, 0x4b, 0xbd,
-- 0x80, 0x33, 0xae, 0x7c, 0x41, 0x28, 0xe3, 0x88, 0xae, 0x91, 0x2b, 0x22,
-- 0x6a, 0x3c, 0xe3, 0x41, 0x49, 0xfd, 0x63, 0xbb, 0x0d, 0xa6, 0x7b, 0x11,
-- 0x8a, 0x50, 0xc9, 0xd1, 0xeb, 0xe0, 0xc1, 0x27, 0x7e, 0x82, 0xe9, 0x94,
-- 0xa5, 0x81, 0x7b, 0xb1, 0x44, 0x54, 0x5a, 0x6e, 0x2c, 0x78, 0xf4, 0xa9,
-- 0x26, 0x88, 0x48, 0x4e, 0x16, 0x96, 0x3f, 0x7a, 0x46, 0xc8, 0xe1, 0x00,
-- 0xf9, 0x5c, 0x35, 0xb0, 0x0c, 0xe6, 0xe6, 0x2d, 0x68, 0xef, 0xfd, 0x67,
-- 0xcf, 0x1f, 0x78, 0x56, 0x2f, 0xcd, 0xca, 0x5d, 0xf5, 0xc1, 0x7b, 0x9f,
-- 0xc5, 0xc7, 0xdc, 0xd4, 0x02, 0x43, 0x5c, 0xa1, 0xa3, 0xc6, 0x27, 0x2d,
-- 0xd9, 0x60, 0xa8, 0xbe, 0x7f, 0x33, 0xd3, 0x4f, 0xc9, 0x79, 0x6d, 0xd5,
-- 0xbf, 0x85, 0xe3, 0xfd, 0x3c, 0x80, 0x75, 0x52, 0xa3, 0x8f, 0x2b, 0x7a,
-- 0x1b, 0x16, 0xc2, 0xf3, 0xb1, 0xda, 0x58, 0x9d, 0xa0, 0x05, 0xd9, 0x73,
-- 0x92, 0x23, 0x96, 0x73, 0xcf, 0x39, 0x44, 0x19, 0x54, 0xc0, 0x4b, 0x87,
-- 0x52, 0x2f, 0xa3, 0xfb, 0x86, 0x36, 0x15, 0xd4, 0x11, 0x18, 0xcf, 0xb6,
-- 0x5b, 0xc7, 0xa0, 0xba, 0x5e, 0x8a, 0xea, 0xed, 0x66, 0xe4, 0x61, 0x96,
-- 0x82, 0xd7, 0x76, 0x3d, 0xf7, 0xc2, 0xd8, 0x20, 0x35, 0x1e, 0xd0, 0x68,
-- 0x45, 0x37, 0x4f, 0x40, 0x86, 0xe6, 0xf8, 0x40, 0x91, 0x6d, 0x0f, 0xd3,
-- 0xba, 0x91, 0xae, 0x80, 0x14, 0x50, 0x14, 0x94, 0xa0, 0x1b, 0x15, 0x6d,
-- 0x38, 0xd4, 0x9c, 0x76, 0xe9, 0x3a, 0x1b, 0xdf, 0xd8, 0x91, 0xd9, 0x48,
-- 0x5b, 0xd8, 0x29, 0xc1, 0x5b, 0x4f, 0xdd, 0xd2, 0x42, 0xad, 0x39, 0x3b,
-- 0x6c, 0x6b, 0x02, 0xfe, 0x51, 0xa1, 0x9a, 0xb3, 0x8b, 0xf3, 0xd3, 0x3d,
-- 0x1e, 0xb3, 0xb8, 0x60, 0xe8, 0x40, 0x1c, 0x9c, 0x67, 0x7f, 0xd3, 0x0c,
-- 0xda, 0xca, 0x3f, 0xfd, 0x7c, 0xc5, 0xd3, 0xe7, 0x1a, 0x22, 0x75, 0x34,
-- 0x61, 0xf6, 0x4b, 0xfb, 0x10, 0xbe, 0xf4, 0x99, 0x22, 0x11, 0x98, 0x69,
-- 0x57, 0x2c, 0x47, 0x3c, 0x32, 0x97, 0xac, 0xe2, 0x1f, 0xfe, 0xdc, 0xeb,
-- 0x35, 0xd7, 0xcb, 0xf9, 0x8d, 0x93, 0x17, 0x35, 0xe0, 0xcc, 0x36, 0xd8,
-- 0xbf, 0xf0, 0xc2, 0x8e, 0x46, 0x80, 0x86, 0xe5, 0xdc, 0xdf, 0x7d, 0xb5,
-- 0x54, 0x58, 0x34, 0xa8, 0xf8, 0x8e, 0x88, 0xbf, 0x2e, 0x83, 0x35, 0xf8,
-- 0xe1, 0x07, 0x61, 0xd1, 0x2e, 0x2a, 0x49, 0x3d, 0x03, 0xae, 0xda, 0x2b,
-- 0xf1, 0x33, 0xb9, 0xd5, 0xf9, 0x74, 0xc0, 0x9c, 0x5e, 0x66, 0x28, 0x14,
-- 0xa0, 0x18, 0xc1, 0xa0, 0xcb, 0xae, 0x6c, 0x3b, 0x0e, 0xbe, 0x95, 0xaa,
-- 0xf4, 0x99, 0x02, 0xa7, 0xcf, 0x39, 0x62, 0x53, 0x6d, 0x4d, 0xb4, 0x61,
-- 0xfb, 0xef, 0x2f, 0xbe, 0x39, 0x39, 0x3b, 0x4f, 0xb6, 0x18, 0xb8, 0xf0,
-- 0xe2, 0xec, 0xe8, 0xab, 0xf7, 0xa4, 0xbe, 0x3b, 0xaf, 0xca, 0xeb, 0x94,
-- 0x14, 0xfb, 0x69, 0x72, 0x5e, 0x67, 0x73, 0xda, 0x86, 0x2b, 0xab, 0x28,
-- 0x88, 0xd8, 0x1b, 0xbe, 0xea, 0x8a, 0xb2, 0xef, 0x8a, 0x46, 0xdf, 0x5d,
-- 0x17, 0xba, 0x96, 0xc8, 0x98, 0x41, 0xbc, 0x3d, 0xa7, 0x31, 0x14, 0x5e,
-- 0x35, 0xcd, 0x9b, 0x60, 0x94, 0x89, 0x39, 0x47, 0x93, 0x8b, 0x6f, 0xf6,
-- 0xdf, 0x7d, 0x7b, 0x6e, 0xc8, 0xed, 0xdf, 0x7f, 0xff, 0x7d, 0xe8, 0xb4,
-- 0xdf, 0xdb, 0xda, 0x82, 0x74, 0x78, 0x9d, 0x7e, 0xfc, 0x38, 0xac, 0xb2,
-- 0xb5, 0xb5, 0x37, 0xde, 0xd5, 0xe6, 0xeb, 0x41, 0x56, 0x4b, 0x12, 0x0c,
-- 0xe8, 0xeb, 0xad, 0xc5, 0x72, 0xc4, 0xf5, 0x27, 0xb7, 0x96, 0x75, 0x3e,
-- 0xa5, 0xfb, 0x24, 0xab, 0xf0, 0xf6, 0xd6, 0xda, 0xda, 0xf9, 0xe1, 0x61,
-- 0xb2, 0x7f, 0x7c, 0x7e, 0x12, 0xbc, 0xbb, 0xb1, 0xc3, 0x81, 0x27, 0x57,
-- 0x59, 0xbd, 0xc1, 0x18, 0xa0, 0xc7, 0xfb, 0x17, 0xac, 0xb2, 0x7e, 0x77,
-- 0x78, 0x76, 0x7e, 0x74, 0xf2, 0x8e, 0x77, 0x87, 0xe3, 0x03, 0xd3, 0xe9,
-- 0x1d, 0x87, 0x87, 0x5e, 0xe6, 0x00, 0x64, 0xb9, 0xb3, 0xe2, 0x8e, 0x8c,
-- 0x2c, 0x4d, 0x92, 0x9d, 0x08, 0xe1, 0x12, 0x05, 0x61, 0x55, 0xe5, 0x25,
-- 0x0a, 0xb6, 0x66, 0xbd, 0x51, 0x79, 0x1a, 0xaf, 0x80, 0x33, 0x5b, 0x49,
-- 0x3d, 0x93, 0x6c, 0x24, 0x71, 0xc7, 0x7d, 0x81, 0x31, 0x40, 0xde, 0x47,
-- 0x10, 0xa6, 0xd8, 0x39, 0xf1, 0xf3, 0xa3, 0xb7, 0xa7, 0xa4, 0xc0, 0xbd,
-- 0x3f, 0xdf, 0xff, 0xfa, 0x90, 0x1f, 0xfd, 0x3a, 0xab, 0xfd, 0x7e, 0x48,
-- 0x11, 0x4a, 0xee, 0xe4, 0x5d, 0x56, 0x57, 0xe3, 0x74, 0xc1, 0xf9, 0xda,
-- 0xd4, 0xcd, 0x40, 0xae, 0x91, 0xa0, 0x6d, 0x11, 0xe5, 0x7d, 0xa5, 0xce,
-- 0xb9, 0x3e, 0x8f, 0x32, 0x9a, 0x61, 0xbb, 0x67, 0x87, 0xfb, 0xaf, 0xdf,
-- 0x1e, 0x5a, 0xe4, 0xba, 0x94, 0x31, 0xa0, 0x46, 0xaf, 0x0b, 0x2e, 0x9c,
-- 0xee, 0x4c, 0xd9, 0x7c, 0xb5, 0xf3, 0xe2, 0xd3, 0x37, 0x5c, 0xc7, 0xb2,
-- 0xbb, 0x3b, 0xbf, 0x51, 0x78, 0x76, 0x78, 0x99, 0x6f, 0x49, 0xeb, 0xd6,
-- 0x5f, 0xea, 0x96, 0xc4, 0xf0, 0xaa, 0x55, 0xda, 0x15, 0x93, 0x04, 0x6c,
-- 0x19, 0x9f, 0x6f, 0x6f, 0x6f, 0x3f, 0x30, 0x0f, 0xa8, 0x03, 0x7a, 0x69,
-- 0xd2, 0x54, 0xf6, 0xf8, 0xf1, 0x2d, 0xdf, 0xbe, 0x1f, 0xf1, 0x54, 0xf3,
-- 0xe2, 0xb9, 0xdc, 0xd4, 0x5c, 0x00, 0x58, 0xf3, 0x3a, 0xeb, 0x1e, 0xf2,
-- 0xb8, 0x28, 0xdc, 0x0e, 0x34, 0x16, 0x67, 0xc2, 0x10, 0xe3, 0x79, 0x1d,
-- 0x04, 0xf2, 0xda, 0xc0, 0x49, 0x7d, 0x41, 0x98, 0x5a, 0x79, 0xdf, 0x6e,
-- 0x92, 0xbf, 0xa1, 0x36, 0xf9, 0x9f, 0x61, 0x51, 0x5e, 0x6d, 0xcd, 0xf6,
-- 0x20, 0x91, 0xd0, 0x43, 0x6f, 0x32, 0x94, 0x9f, 0xbf, 0x2b, 0x5c, 0xb4,
-- 0x76, 0xc5, 0x0b, 0xcb, 0x89, 0x25, 0x9f, 0x30, 0xae, 0x5f, 0xb1, 0x0a,
-- 0x12, 0xd0, 0x74, 0x69, 0x33, 0xb7, 0x7a, 0x73, 0x1d, 0x9d, 0x54, 0xbc,
-- 0x61, 0x6c, 0x30, 0x1c, 0x12, 0x03, 0xa1, 0x5e, 0x38, 0xe8, 0x0c, 0x24,
-- 0x42, 0xbf, 0x96, 0x44, 0x32, 0x5c, 0x50, 0x84, 0xdf, 0xd2, 0xe2, 0x87,
-- 0x02, 0x20, 0xc8, 0x0e, 0xd8, 0x05, 0x27, 0x34, 0x96, 0x08, 0x44, 0x44,
-- 0x0f, 0x9c, 0x28, 0xa9, 0x78, 0xe4, 0x2e, 0x84, 0x87, 0x1b, 0x6e, 0xf7,
-- 0x39, 0x18, 0x80, 0x7e, 0x2a, 0x47, 0x2d, 0x9f, 0xd0, 0x79, 0x30, 0x29,
-- 0x59, 0xfd, 0xb9, 0xde, 0xb2, 0x01, 0xed, 0x9c, 0xd3, 0x28, 0xa2, 0xbe,
-- 0x96, 0xbe, 0x7c, 0x63, 0x25, 0xdd, 0x55, 0xd7, 0x74, 0x7e, 0x87, 0x9a,
-- 0xbb, 0x89, 0xbe, 0x68, 0x4f, 0xb6, 0x90, 0x64, 0xf5, 0xc9, 0x3d, 0x1d,
-- 0x9c, 0xea, 0x6f, 0x1c, 0x10, 0x93, 0xdf, 0xf2, 0x12, 0xdc, 0x64, 0x98,
-- 0x7d, 0xa8, 0x19, 0x3c, 0x30, 0x98, 0x3d, 0x5a, 0x05, 0x7e, 0xe3, 0x7f,
-- 0x6f, 0x0d, 0xab, 0xea, 0x7a, 0x2b, 0x9f, 0x7c, 0x98, 0x54, 0x29, 0xc7,
-- 0x34, 0x2d, 0x47, 0xd1, 0xc7, 0x43, 0xfa, 0x30, 0xf9, 0xb9, 0xc1, 0xf5,
-- 0xab, 0x71, 0xf7, 0x4c, 0xfe, 0xf7, 0x16, 0x47, 0xa7, 0xa2, 0x6c, 0x53,
-- 0xb0, 0x70, 0x1d, 0xbc, 0x83, 0x66, 0x25, 0x81, 0xd0, 0x74, 0x18, 0xbb,
-- 0x29, 0x63, 0x70, 0x95, 0xf4, 0x94, 0xdc, 0x7e, 0xda, 0xdd, 0xde, 0xde,
-- 0xd9, 0xdb, 0xf9, 0xfc, 0xc5, 0xf6, 0xde, 0xce, 0xce, 0xce, 0xee, 0xde,
-- 0xce, 0xde, 0xde, 0xee, 0xf6, 0x2f, 0x5b, 0xbd, 0xb5, 0xb5, 0xd7, 0x27,
-- 0xdf, 0xbf, 0x3b, 0x3e, 0xd9, 0x7f, 0x9d, 0x5c, 0x9c, 0x24, 0xfb, 0x30,
-- 0x3b, 0x75, 0x9c, 0x73, 0x44, 0x5f, 0xd6, 0x52, 0x27, 0xa7, 0x61, 0xa2,
-- 0x36, 0x1b, 0x89, 0x8b, 0xbc, 0xc1, 0xca, 0xb4, 0xc7, 0x51, 0x40, 0xad,
-- 0xe0, 0x96, 0x86, 0xd7, 0xf5, 0xec, 0x71, 0x8e, 0xf6, 0x29, 0x3d, 0xf7,
-- 0xc5, 0x13, 0xec, 0x35, 0x47, 0x0c, 0xc7, 0x28, 0x57, 0xf3, 0x55, 0xd4,
-- 0x9f, 0xa2, 0x5e, 0x54, 0x97, 0x5d, 0xb1, 0x21, 0x71, 0x43, 0xbe, 0xe2,
-- 0xb6, 0x14, 0x73, 0xaf, 0x62, 0xe0, 0x0f, 0x14, 0x57, 0x56, 0x37, 0x3d,
-- 0xee, 0x78, 0x96, 0x89, 0x36, 0xa3, 0x09, 0x9e, 0xac, 0x9c, 0x12, 0xdd,
-- 0x45, 0xd9, 0x47, 0xcc, 0xba, 0xc9, 0x3b, 0x24, 0xfe, 0xd6, 0xcf, 0x0e,
-- 0x88, 0xf2, 0xa6, 0x0b, 0xe7, 0xa5, 0x0d, 0x19, 0x01, 0x46, 0x1d, 0xdd,
-- 0x71, 0x3f, 0xc6, 0x52, 0x7c, 0x17, 0xfc, 0x4d, 0x78, 0x0f, 0x6d, 0x39,
-- 0xf3, 0xa2, 0x0c, 0xe0, 0xfd, 0xf9, 0xd1, 0xbb, 0xaf, 0xe1, 0x40, 0xfc,
-- 0xfe, 0xe4, 0xec, 0xf5, 0x39, 0x35, 0xcb, 0x17, 0xf4, 0x1a, 0x2c, 0x4c,
-- 0x7c, 0x92, 0x75, 0x54, 0x72, 0x2e, 0xb8, 0xeb, 0x3f, 0x43, 0x61, 0x9b,
-- 0xf4, 0x5d, 0xfa, 0x3b, 0x86, 0x19, 0xc8, 0xdb, 0x9c, 0xd6, 0xde, 0xcd,
-- 0xf5, 0x40, 0x08, 0xf2, 0xfa, 0x97, 0xb3, 0x94, 0x0b, 0x9f, 0x64, 0x43,
-- 0x89, 0x05, 0x46, 0xa4, 0xd7, 0x16, 0xe7, 0x57, 0x6c, 0xb1, 0xdc, 0xbf,
-- 0x55, 0x17, 0xe0, 0x1f, 0x68, 0xa5, 0x28, 0xc3, 0x62, 0x64, 0x81, 0x75,
-- 0x80, 0x0e, 0xde, 0xe5, 0x34, 0xbd, 0x42, 0x87, 0xf1, 0x99, 0x0c, 0x3a,
-- 0xd3, 0xee, 0x3f, 0xb5, 0x4b, 0x66, 0x7b, 0x68, 0xef, 0x08, 0x04, 0x00,
-- 0xa8, 0x2b, 0xe4, 0xea, 0xab, 0xe3, 0x43, 0xa4, 0x26, 0x76, 0x13, 0x23,
-- 0xa2, 0x84, 0x6b, 0xb8, 0xb6, 0x0b, 0xdb, 0xa0, 0xae, 0xa6, 0x40, 0x84,
-- 0x90, 0x0a, 0x30, 0x08, 0xa0, 0x46, 0x44, 0x37, 0xe2, 0x96, 0x02, 0x1b,
-- 0x44, 0xe5, 0xa3, 0xe2, 0x7c, 0xf9, 0x12, 0x59, 0x72, 0x1e, 0x0c, 0x60,
-- 0x72, 0x2a, 0x0b, 0xb7, 0x52, 0x31, 0xae, 0xc7, 0x75, 0x85, 0x38, 0x5e,
-- 0xa2, 0x67, 0xb0, 0x17, 0xbe, 0x10, 0x82, 0x87, 0x0b, 0xaf, 0x6a, 0x1a,
-- 0x4a, 0x4a, 0x57, 0x8a, 0x16, 0x69, 0x57, 0x14, 0x64, 0x92, 0xe6, 0x25,
-- 0x5d, 0xb5, 0x67, 0x51, 0x17, 0xd2, 0x0a, 0xb5, 0x0d, 0x2c, 0x69, 0x97,
-- 0xd3, 0xcf, 0xcc, 0x57, 0x40, 0x7a, 0xd6, 0xd4, 0xa3, 0xed, 0xf9, 0xbc,
-- 0xb7, 0x9c, 0x31, 0x8f, 0x26, 0x21, 0x94, 0x18, 0xa8, 0x50, 0x8e, 0xe6,
-- 0x56, 0x06, 0xd5, 0x13, 0x1b, 0xcb, 0x16, 0x56, 0x7b, 0x8f, 0x58, 0x6d,
-- 0x33, 0x9b, 0x7a, 0x0d, 0x09, 0x55, 0x2e, 0xdc, 0x3a, 0x58, 0x1e, 0x89,
-- 0xe9, 0xf2, 0xaf, 0xf2, 0x5e, 0xe4, 0x75, 0x95, 0x4d, 0x2f, 0x15, 0xff,
-- 0xa4, 0x86, 0x5d, 0x90, 0xa7, 0x92, 0x36, 0x8a, 0x36, 0x59, 0x1e, 0xd5,
-- 0x72, 0xee, 0x50, 0x19, 0x8a, 0xa0, 0xba, 0x9a, 0x03, 0x54, 0x69, 0x32,
-- 0x0a, 0x71, 0xbc, 0x0d, 0xad, 0x0c, 0xd5, 0x5a, 0xe2, 0x4a, 0xd1, 0xb4,
-- 0xa6, 0xe0, 0xaa, 0x73, 0xa0, 0x44, 0x02, 0xa8, 0x23, 0x78, 0x70, 0x39,
-- 0xa2, 0xd5, 0x76, 0xcf, 0xf1, 0xda, 0x21, 0xf6, 0x8c, 0x9b, 0x3b, 0x08,
-- 0xcb, 0xd0, 0x4b, 0xe8, 0xe5, 0x32, 0x42, 0x79, 0xc9, 0x15, 0x2b, 0x87,
-- 0x0e, 0x1a, 0x32, 0xb6, 0x96, 0x95, 0x5b, 0x51, 0x94, 0xac, 0x92, 0x3b,
-- 0x6e, 0x0d, 0x41, 0x89, 0xf1, 0x31, 0x54, 0x8e, 0xb4, 0xfa, 0x1c, 0x3e,
-- 0x7e, 0x04, 0xe3, 0x21, 0x99, 0x1e, 0x30, 0xbd, 0x97, 0x53, 0x92, 0xcf,
-- 0x1f, 0x3e, 0x8c, 0x3a, 0x88, 0x4f, 0xea, 0x18, 0x73, 0x55, 0x6c, 0x0c,
-- 0x58, 0xbb, 0x7d, 0x50, 0x98, 0x38, 0xd8, 0x91, 0xc5, 0xd0, 0x91, 0xa3,
-- 0xd2, 0x08, 0x61, 0xc5, 0x41, 0x90, 0x5c, 0xb7, 0xbd, 0xe4, 0xab, 0xb4,
-- 0xca, 0xc7, 0xfd, 0xe4, 0x75, 0x7e, 0x05, 0xa4, 0x06, 0x97, 0x49, 0xe0,
-- 0xf2, 0x2f, 0x86, 0xc9, 0xf7, 0x56, 0xdc, 0x90, 0x2e, 0x62, 0xa0, 0x9e,
-- 0xc0, 0x32, 0xdb, 0xf0, 0xe8, 0xd3, 0x32, 0xa8, 0x55, 0x3d, 0x04, 0x26,
-- 0x41, 0xdb, 0xbe, 0xfc, 0x07, 0x36, 0x33, 0xad, 0x6e, 0x9a, 0x55, 0xc5,
-- 0x1c, 0x56, 0xb3, 0xc8, 0x45, 0x58, 0xdf, 0xb9, 0x16, 0x13, 0x55, 0x9a,
-- 0xc3, 0xdf, 0x8e, 0xca, 0x55, 0x48, 0x11, 0x5b, 0x58, 0xa5, 0x51, 0x62,
-- 0xe6, 0xcb, 0xc7, 0x6d, 0x64, 0xc7, 0x75, 0x0d, 0x89, 0xff, 0xb4, 0x4e,
-- 0xbc, 0x22, 0xca, 0x4f, 0x4e, 0x2e, 0x0e, 0xff, 0x90, 0xec, 0xb7, 0x5d,
-- 0x99, 0xcc, 0xa8, 0x1b, 0x00, 0x29, 0x7d, 0x4f, 0x57, 0x18, 0xbb, 0x04,
-- 0x86, 0x49, 0x15, 0x9c, 0xd4, 0x25, 0x56, 0x84, 0x1b, 0xdf, 0x4f, 0xaa,
-- 0x42, 0xe3, 0x5c, 0xeb, 0x7b, 0x03, 0x02, 0xe7, 0xd7, 0x60, 0xe0, 0x05,
-- 0x98, 0x8c, 0xf0, 0x10, 0xc9, 0xbc, 0xcb, 0x53, 0x89, 0x33, 0x66, 0x18,
-- 0x24, 0xda, 0x8b, 0xb9, 0x1c, 0x45, 0x84, 0xc4, 0x4a, 0xe4, 0x96, 0x00,
-- 0x0d, 0xe5, 0x35, 0x24, 0x67, 0x38, 0xeb, 0xb5, 0xa0, 0xd7, 0xf7, 0xbe,
-- 0xa9, 0x34, 0x44, 0xa4, 0xfa, 0xc0, 0x27, 0xec, 0x83, 0xf1, 0x59, 0xbd,
-- 0x11, 0x64, 0x2c, 0x5a, 0xd3, 0xbb, 0x49, 0xa9, 0x76, 0xda, 0x84, 0xb9,
-- 0x9f, 0x5a, 0x50, 0x18, 0xf6, 0x62, 0x0c, 0xbc, 0x97, 0xe9, 0xbd, 0xf8,
-- 0x30, 0x71, 0xc5, 0xd8, 0xa1, 0x0e, 0xf9, 0x34, 0x10, 0x9c, 0x80, 0x1b,
-- 0x83, 0x12, 0xab, 0x5a, 0x6f, 0x46, 0x42, 0x70, 0xa9, 0xd5, 0x66, 0xe0,
-- 0x34, 0x52, 0x29, 0xb0, 0xaa, 0xa8, 0x55, 0x08, 0xb8, 0xb4, 0x30, 0x70,
-- 0xbb, 0xb2, 0x72, 0x9a, 0x56, 0x6f, 0xb1, 0x55, 0x0b, 0x71, 0x8d, 0x2f,
-- 0x20, 0x67, 0xbd, 0x42, 0x19, 0x5b, 0x57, 0xc9, 0x25, 0x88, 0x18, 0x7c,
-- 0xe3, 0xa0, 0xb3, 0xb4, 0x59, 0x2e, 0x2f, 0x37, 0xce, 0x82, 0x7c, 0x89,
-- 0x39, 0x91, 0xac, 0xbf, 0x08, 0x84, 0x7e, 0x8a, 0x4a, 0x4b, 0xd9, 0xe6,
-- 0x02, 0xab, 0x24, 0xc5, 0xa8, 0x46, 0x99, 0x20, 0xc4, 0x73, 0x11, 0x11,
-- 0xec, 0x22, 0x50, 0x07, 0xf9, 0xe0, 0x09, 0x65, 0xce, 0x40, 0xdc, 0x6b,
-- 0x9e, 0xba, 0x99, 0x5b, 0xaf, 0x9a, 0x27, 0x27, 0x3a, 0x32, 0xb9, 0x99,
-- 0xf5, 0x52, 0x24, 0x09, 0x96, 0xa6, 0xe7, 0x5a, 0xd6, 0x08, 0xb6, 0x00,
-- 0x1d, 0x35, 0xef, 0x0e, 0x04, 0xbd, 0xb9, 0x13, 0x3b, 0x6c, 0xd3, 0x1b,
-- 0xf8, 0x60, 0xcc, 0x4a, 0x26, 0xc9, 0xec, 0x5e, 0x13, 0x05, 0xf4, 0xaa,
-- 0xe4, 0x5c, 0x76, 0x28, 0x99, 0x9f, 0x7f, 0x1e, 0x89, 0x46, 0x1f, 0xdd,
-- 0xd3, 0x7b, 0xf4, 0x75, 0xa0, 0xcc, 0x4e, 0xd9, 0xed, 0xcf, 0xca, 0x23,
-- 0xc4, 0x32, 0xa7, 0xd1, 0x76, 0xe8, 0x0a, 0x01, 0xdc, 0x91, 0xf4, 0xe8,
-- 0xac, 0xe4, 0x11, 0x95, 0xf5, 0x7d, 0x36, 0xc3, 0x9a, 0x68, 0x4b, 0x5a,
-- 0xed, 0xb0, 0x92, 0xf0, 0x91, 0x15, 0xea, 0x83, 0x71, 0xc7, 0xf6, 0x68,
-- 0x03, 0x21, 0x92, 0x04, 0xd9, 0x21, 0xcb, 0x9d, 0x2c, 0x13, 0x9f, 0x17,
-- 0xda, 0x30, 0x2f, 0xb2, 0x0e, 0xc6, 0x51, 0x47, 0xbb, 0xa6, 0xa6, 0x55,
-- 0xf1, 0x73, 0xb7, 0xfa, 0xe0, 0xfd, 0xea, 0xe1, 0xbc, 0xff, 0x2d, 0xc3,
-- 0xd9, 0x4f, 0x1e, 0x0c, 0x98, 0xd7, 0xa2, 0x8c, 0xcc, 0xe8, 0x2b, 0x4b,
-- 0x15, 0x2a, 0x40, 0xd5, 0xa6, 0x7b, 0xca, 0x1a, 0x8d, 0xd9, 0xd5, 0x35,
-- 0x6a, 0xd6, 0x67, 0x8a, 0xf5, 0xcc, 0x79, 0x21, 0x4f, 0x43, 0xc6, 0xe7,
-- 0xf6, 0xfb, 0x36, 0x94, 0x4f, 0x1d, 0xae, 0xc1, 0xfc, 0x59, 0x46, 0x4c,
-- 0x2b, 0xd8, 0x5d, 0x93, 0x50, 0x76, 0x86, 0xdb, 0x21, 0xae, 0x8b, 0x4b,
-- 0x4d, 0x29, 0x01, 0x1d, 0x59, 0x03, 0x42, 0xc7, 0x97, 0xb7, 0xe5, 0x99,
-- 0x00, 0x3a, 0xa0, 0xf5, 0x9a, 0x7e, 0xb6, 0x23, 0x70, 0xba, 0x74, 0x92,
-- 0xb4, 0xc6, 0x08, 0x23, 0x85, 0x64, 0xb3, 0x05, 0x42, 0xf8, 0x8d, 0x03,
-- 0x86, 0x77, 0x3f, 0xce, 0xd1, 0x53, 0x7f, 0xa4, 0x9e, 0xb9, 0xed, 0xd6,
-- 0x31, 0x4a, 0x84, 0x37, 0x1e, 0xb0, 0x20, 0x6b, 0xc8, 0x62, 0x59, 0x26,
-- 0x2d, 0xd5, 0x2b, 0x53, 0x8d, 0x0e, 0x9a, 0x09, 0x81, 0x4c, 0xcf, 0xb8,
-- 0x63, 0x93, 0xcb, 0x65, 0x09, 0xc6, 0xab, 0xe0, 0x69, 0x8a, 0xba, 0xc1,
-- 0xad, 0x72, 0xb4, 0x64, 0x07, 0xa7, 0x41, 0x42, 0x2c, 0x1d, 0x97, 0x25,
-- 0xca, 0x31, 0xab, 0xb1, 0x13, 0x08, 0x01, 0x5a, 0x26, 0xcb, 0x7b, 0x42,
-- 0x9c, 0x09, 0x8d, 0xda, 0x9d, 0xe6, 0x34, 0xa0, 0x75, 0xc0, 0x4f, 0xf0,
-- 0xd2, 0x73, 0xba, 0x80, 0xf2, 0x42, 0x23, 0x61, 0x87, 0xa4, 0xdc, 0xac,
-- 0xd0, 0x1b, 0x57, 0xdd, 0x69, 0x33, 0x5d, 0xb9, 0x06, 0xfa, 0xc9, 0xe0,
-- 0x7f, 0xea, 0xca, 0xb0, 0xb4, 0xca, 0x91, 0x3c, 0x80, 0xda, 0x5f, 0x04,
-- 0x48, 0x84, 0x9a, 0x70, 0x05, 0x86, 0xcf, 0x97, 0xba, 0xcd, 0xc3, 0xe5,
-- 0x47, 0x5a, 0xc6, 0x06, 0xf8, 0xdf, 0x9b, 0x10, 0x73, 0xf2, 0x8d, 0xaf,
-- 0xae, 0xdb, 0x37, 0x56, 0x21, 0xcd, 0xad, 0x39, 0xec, 0x7e, 0x89, 0xdc,
-- 0x8a, 0x06, 0xec, 0x2e, 0xb2, 0xaf, 0xb8, 0xba, 0xd9, 0x41, 0x91, 0x86,
-- 0xcb, 0xea, 0xab, 0x23, 0xe9, 0x48, 0x85, 0xf8, 0x8d, 0x4f, 0xf4, 0x24,
-- 0x69, 0x70, 0x40, 0x2f, 0x0c, 0xde, 0xab, 0xc9, 0xe1, 0x4b, 0xe9, 0x61,
-- 0x08, 0x2b, 0xaa, 0xf4, 0x70, 0x8a, 0xaa, 0xad, 0xf6, 0xc0, 0x9e, 0xbe,
-- 0xc4, 0x99, 0x86, 0x3d, 0x35, 0x38, 0x34, 0x57, 0x45, 0x9e, 0xb7, 0x4c,
-- 0x44, 0xae, 0x06, 0x8a, 0x29, 0x0c, 0xc4, 0xbc, 0xce, 0x87, 0x4c, 0x7e,
-- 0x95, 0x77, 0x55, 0x97, 0xba, 0xe7, 0x26, 0x86, 0x12, 0x03, 0xad, 0xa6,
-- 0x86, 0xdd, 0x9d, 0x2d, 0x19, 0xcc, 0x96, 0x34, 0x20, 0xe2, 0x9c, 0x92,
-- 0xa4, 0x77, 0xc9, 0x1b, 0xd0, 0x4a, 0x78, 0x73, 0x71, 0xc4, 0x36, 0x87,
-- 0x52, 0xcc, 0x34, 0x0e, 0x14, 0xbe, 0x0e, 0xbe, 0x9a, 0xe8, 0xae, 0x95,
-- 0x2a, 0x2a, 0x85, 0xee, 0xcf, 0x9a, 0xdf, 0xa0, 0xbe, 0x93, 0xf4, 0x88,
-- 0x94, 0x06, 0xb7, 0x41, 0x28, 0x01, 0xe7, 0xe5, 0x01, 0x16, 0x90, 0x2b,
-- 0x3f, 0xba, 0x8c, 0x26, 0x3e, 0xe8, 0xe2, 0xed, 0x24, 0x8a, 0x3e, 0xdb,
-- 0x7f, 0xf7, 0xf5, 0x21, 0x24, 0x01, 0x07, 0x18, 0x97, 0x33, 0xb5, 0x4f,
-- 0x96, 0x63, 0x28, 0x0d, 0xb4, 0x62, 0x88, 0x44, 0x02, 0x84, 0xaa, 0xf0,
-- 0xf3, 0x1c, 0x90, 0x3e, 0x42, 0xbc, 0xd8, 0x6e, 0x8d, 0x2f, 0x5a, 0x4b,
-- 0xcc, 0x40, 0x06, 0x09, 0x82, 0xf5, 0x27, 0x2b, 0x21, 0x5c, 0x2d, 0x47,
-- 0x8b, 0x54, 0x91, 0x38, 0xd2, 0x10, 0xaa, 0x41, 0xcd, 0x0e, 0xc3, 0xe6,
-- 0x59, 0x5c, 0xb3, 0x64, 0x03, 0xa7, 0xe2, 0x96, 0x50, 0x71, 0x87, 0xa1,
-- 0xcd, 0x47, 0xf0, 0x09, 0x76, 0xb6, 0xb7, 0x7d, 0x8d, 0x0c, 0x0f, 0x39,
-- 0x11, 0x71, 0xcb, 0x32, 0xd9, 0x1e, 0xbc, 0x78, 0xb1, 0x8a, 0x11, 0xba,
-- 0x46, 0x81, 0xfb, 0xf0, 0xec, 0x93, 0xdb, 0x1c, 0xf0, 0xa3, 0xab, 0xda,
-- 0xec, 0x50, 0x64, 0x50, 0x04, 0x57, 0x63, 0xbb, 0x2a, 0x27, 0xb5, 0xa8,
-- 0xc1, 0x43, 0x6c, 0xef, 0xf0, 0x85, 0xcc, 0x9d, 0x36, 0xc3, 0x4b, 0xb9,
-- 0xe6, 0x31, 0x6e, 0x01, 0x3b, 0x60, 0xb6, 0x91, 0x05, 0x87, 0x77, 0xe5,
-- 0xce, 0xa3, 0xf6, 0x49, 0x0b, 0x13, 0xe8, 0xb3, 0x2b, 0x96, 0xe8, 0x32,
-- 0x9e, 0x8d, 0x89, 0x04, 0xef, 0x4f, 0xd9, 0x1c, 0x76, 0xf4, 0xee, 0x6b,
-- 0xb1, 0x0e, 0x90, 0xaa, 0x0b, 0xd3, 0xe8, 0x56, 0x4b, 0xf1, 0x7d, 0x2f,
-- 0xc5, 0x2e, 0x38, 0xb8, 0x0f, 0xae, 0x74, 0xa9, 0x57, 0x99, 0xcf, 0x85,
-- 0x15, 0xf8, 0xdd, 0x5f, 0x61, 0x9a, 0xbb, 0x48, 0x06, 0x81, 0x70, 0xa2,
-- 0x95, 0x2e, 0x58, 0x32, 0x99, 0xdd, 0x9b, 0x42, 0xa4, 0x3d, 0xa0, 0x75,
-- 0x33, 0xb4, 0xbb, 0x66, 0xc5, 0x04, 0x26, 0x5a, 0x2c, 0x28, 0x28, 0x92,
-- 0x4d, 0x3a, 0xba, 0x94, 0x6e, 0x70, 0xbe, 0x5b, 0x92, 0xc8, 0xa7, 0x0d,
-- 0xa5, 0x61, 0xf9, 0x6b, 0xd6, 0x46, 0x63, 0xc9, 0xaa, 0x6f, 0xa6, 0x90,
-- 0xb6, 0x55, 0x4e, 0xea, 0x29, 0x87, 0x5c, 0x9d, 0x77, 0x1b, 0x85, 0x14,
-- 0x8b, 0xe2, 0xbf, 0x3e, 0xce, 0x07, 0x46, 0xc8, 0x07, 0x95, 0x6f, 0xaa,
-- 0xf9, 0xc4, 0xab, 0xfe, 0x3a, 0xe2, 0x4e, 0xbb, 0xf6, 0x85, 0xbc, 0x2f,
-- 0x5d, 0xa7, 0xdd, 0xdd, 0xc9, 0xfb, 0xb6, 0x34, 0x1d, 0x07, 0x80, 0x45,
-- 0x5a, 0xad, 0x85, 0xe2, 0x12, 0x01, 0x4d, 0x97, 0x61, 0x29, 0x1c, 0x9c,
-- 0x23, 0x6f, 0x8a, 0x25, 0x6b, 0x89, 0x66, 0x1b, 0xa3, 0x50, 0x0a, 0xd3,
-- 0x10, 0x90, 0xb3, 0x71, 0x79, 0xdd, 0x20, 0x4c, 0xef, 0x52, 0xa1, 0x66,
-- 0x51, 0xfb, 0xf7, 0xc8, 0x61, 0xf9, 0x78, 0xc0, 0xde, 0x72, 0x39, 0x57,
-- 0xde, 0xc7, 0xfa, 0x16, 0x0d, 0x3e, 0xad, 0xae, 0x51, 0x7a, 0xd6, 0x59,
-- 0x66, 0x62, 0xf1, 0x0a, 0xdd, 0x2b, 0xfa, 0x2c, 0xc9, 0x53, 0x22, 0x4c,
-- 0x41, 0xb8, 0x6e, 0x2c, 0x45, 0x73, 0x05, 0x02, 0x43, 0xc6, 0xa7, 0x9e,
-- 0x02, 0x91, 0xa9, 0x3b, 0x5c, 0x37, 0x38, 0x08, 0x01, 0x73, 0xe9, 0x24,
-- 0xbf, 0xa6, 0x21, 0x28, 0x94, 0xcf, 0x61, 0x77, 0x81, 0xb6, 0x04, 0x58,
-- 0xa5, 0xd6, 0x12, 0x42, 0x89, 0x06, 0xa6, 0xa5, 0xa0, 0x2c, 0x19, 0xcb,
-- 0x55, 0x69, 0x00, 0xd6, 0x2f, 0x5f, 0x6a, 0x65, 0x2a, 0x91, 0xfa, 0x7c,
-- 0xdf, 0x8b, 0x4a, 0x0a, 0x6f, 0xa2, 0xe4, 0x17, 0xa1, 0x4f, 0xcc, 0x50,
-- 0x06, 0x28, 0xe9, 0xe0, 0x35, 0xe2, 0x7e, 0xcf, 0x2f, 0x58, 0xbb, 0xc7,
-- 0x75, 0x64, 0x3a, 0xe2, 0x77, 0x87, 0x67, 0x5f, 0x9d, 0x9c, 0x1f, 0x12,
-- 0xb7, 0x78, 0x7d, 0xf8, 0xd5, 0x7b, 0xe6, 0x24, 0xbc, 0x63, 0x62, 0x1d,
-- 0x05, 0x28, 0xa9, 0xe4, 0xea, 0x02, 0x6a, 0x89, 0x03, 0x9a, 0x40, 0x3a,
-- 0x22, 0x9b, 0xf4, 0x8d, 0x32, 0x4c, 0xec, 0x12, 0x6c, 0xcf, 0x69, 0x26,
-- 0xe6, 0xb4, 0x1c, 0x61, 0xda, 0x1e, 0x7f, 0x98, 0xa3, 0xa1, 0xe6, 0x0c,
-- 0x9a, 0x5e, 0x1b, 0xfc, 0x8d, 0x15, 0xc0, 0xab, 0xf6, 0x3c, 0xbe, 0xe4,
-- 0xad, 0x18, 0x4f, 0xf5, 0x40, 0xf8, 0x42, 0xd5, 0x56, 0x92, 0x5a, 0xaf,
-- 0x26, 0xc8, 0xb6, 0x0a, 0x15, 0x38, 0x2d, 0xe4, 0x26, 0x63, 0xb0, 0x1d,
-- 0x9c, 0x6b, 0xdc, 0xad, 0x79, 0x8d, 0x6b, 0x55, 0x84, 0x7c, 0x2d, 0x0f,
-- 0x5d, 0x09, 0xc1, 0x11, 0xcb, 0x91, 0xc4, 0xdc, 0xa9, 0xb2, 0x68, 0x70,
-- 0xa4, 0x2a, 0x13, 0x8c, 0x2a, 0xb9, 0x49, 0xd5, 0xe5, 0x28, 0xa1, 0x90,
-- 0x5a, 0xcc, 0x61, 0x43, 0x15, 0xd3, 0x3b, 0xcc, 0x53, 0x8b, 0x0b, 0x4a,
-- 0x11, 0x65, 0x2b, 0x31, 0x86, 0x95, 0x0f, 0x82, 0x16, 0x94, 0x74, 0x6e,
-- 0x57, 0xb3, 0x83, 0x0b, 0x99, 0x29, 0xdb, 0x1e, 0xe4, 0x72, 0x36, 0x34,
-- 0x58, 0xc0, 0x92, 0x05, 0xf8, 0x41, 0xec, 0xea, 0x77, 0x42, 0x83, 0x9c,
-- 0x27, 0x8e, 0xb8, 0x0e, 0xd4, 0xba, 0xd5, 0x65, 0x97, 0x4d, 0xc2, 0x54,
-- 0x1f, 0x88, 0xcf, 0xb7, 0x10, 0x86, 0xa7, 0x81, 0x4a, 0xbc, 0xa5, 0xb0,
-- 0x5a, 0x0b, 0xf1, 0xc5, 0x67, 0x50, 0x5a, 0x97, 0x8a, 0xcb, 0xf5, 0xc7,
-- 0x3a, 0xb4, 0xed, 0xaf, 0xad, 0xad, 0xbd, 0x3e, 0xbc, 0xd8, 0x3f, 0x3a,
-- 0x3e, 0x7c, 0x9d, 0x1c, 0xbd, 0x7b, 0x73, 0x72, 0xf6, 0x76, 0xff, 0x42,
-- 0x1d, 0xde, 0xaf, 0x9d, 0x71, 0xcc, 0x65, 0xdd, 0x3a, 0xdb, 0xa3, 0x37,
-- 0x9c, 0x81, 0x84, 0x69, 0x17, 0xaf, 0x14, 0xf4, 0x5b, 0x96, 0x21, 0x6b,
-- 0xac, 0xc1, 0x5a, 0xa2, 0x8e, 0x72, 0x8f, 0xe7, 0xc3, 0x77, 0xf5, 0x96,
-- 0x73, 0x6f, 0x0e, 0x6d, 0x39, 0xcd, 0xb4, 0x85, 0x0a, 0x70, 0x0f, 0x36,
-- 0xe5, 0xca, 0xde, 0xcb, 0x3d, 0x85, 0x02, 0xc6, 0x48, 0x90, 0x06, 0x4d,
-- 0x0e, 0x8e, 0xb6, 0x9a, 0x70, 0xa7, 0x30, 0x7e, 0x18, 0xbc, 0x53, 0x0a,
-- 0xc0, 0x88, 0x10, 0x96, 0x80, 0x28, 0x90, 0x4d, 0x7d, 0x61, 0x9b, 0x2e,
-- 0xe1, 0xde, 0x00, 0x7b, 0x24, 0xbc, 0x02, 0x9f, 0x84, 0xfb, 0xcb, 0x19,
-- 0xef, 0x6b, 0x5c, 0x80, 0xa0, 0x56, 0x28, 0x19, 0xc6, 0x6e, 0xac, 0xb8,
-- 0xda, 0xba, 0x9d, 0x75, 0xa0, 0x49, 0x3a, 0x26, 0x6a, 0x0e, 0x24, 0x2d,
-- 0x58, 0x16, 0x36, 0xb5, 0xe1, 0x5c, 0xa2, 0x24, 0xc5, 0x0c, 0x8e, 0xb4,
-- 0x90, 0x1d, 0xaf, 0x05, 0x83, 0x45, 0xf3, 0xbf, 0x73, 0x43, 0x73, 0x73,
-- 0x01, 0x76, 0x5e, 0x0b, 0xcf, 0xb7, 0x5c, 0x75, 0x71, 0x3d, 0x6d, 0xfe,
-- 0xdc, 0x1a, 0xaa, 0xc5, 0xe0, 0x35, 0x3d, 0x34, 0x59, 0xce, 0x16, 0x5a,
-- 0x0b, 0xd5, 0xa4, 0x5c, 0xd8, 0xd7, 0x6c, 0x0b, 0x45, 0x90, 0x82, 0x40,
-- 0x00, 0x63, 0xcc, 0x1b, 0x5d, 0x03, 0x99, 0x07, 0xe8, 0xbb, 0x36, 0x6f,
-- 0x55, 0x0d, 0x08, 0x50, 0x73, 0x30, 0xb9, 0x62, 0xe8, 0x79, 0x1b, 0x4d,
-- 0xcc, 0xec, 0xd3, 0xc9, 0xb9, 0x7b, 0x16, 0x2b, 0x19, 0xbc, 0x90, 0xfa,
-- 0x18, 0x10, 0xac, 0xff, 0x86, 0x15, 0x6b, 0x60, 0x92, 0xd5, 0x06, 0x55,
-- 0x4d, 0x8a, 0xfd, 0x63, 0x8d, 0x49, 0x85, 0x2f, 0x36, 0xa3, 0x26, 0x42,
-- 0x4e, 0x6f, 0x5d, 0x7b, 0x04, 0xcf, 0xf6, 0x08, 0x94, 0x8b, 0x13, 0x3f,
-- 0xb9, 0xb7, 0x02, 0xb4, 0x8c, 0x39, 0x2f, 0x10, 0x7d, 0x6b, 0x92, 0xfc,
-- 0x61, 0x9c, 0x12, 0x3e, 0x1b, 0x23, 0xdf, 0x25, 0x0a, 0xaf, 0x16, 0x37,
-- 0xac, 0x5f, 0x23, 0xf9, 0x4d, 0x8b, 0x50, 0x1b, 0xc4, 0x35, 0xa2, 0x7b,
-- 0xb4, 0xde, 0x09, 0x98, 0xde, 0x7c, 0xcd, 0x2a, 0x93, 0xd9, 0x4b, 0x16,
-- 0xe2, 0x05, 0xee, 0x2f, 0xd8, 0xdb, 0x60, 0xf2, 0xac, 0xe8, 0x66, 0x69,
-- 0x05, 0x25, 0x07, 0xb9, 0x0a, 0x72, 0x67, 0x38, 0xd3, 0xa8, 0x47, 0x97,
-- 0xc7, 0xe5, 0x13, 0x60, 0x61, 0x08, 0x66, 0x61, 0xca, 0x70, 0x03, 0xae,
-- 0xc0, 0x2e, 0xe2, 0x92, 0x5d, 0x2b, 0xb8, 0xeb, 0x58, 0x89, 0x2d, 0xa7,
-- 0x08, 0x2e, 0xd5, 0x68, 0xbb, 0xd3, 0xa2, 0x92, 0xf3, 0x06, 0xa9, 0xbb,
-- 0xe7, 0xcb, 0x80, 0xf7, 0x16, 0xd7, 0xd4, 0x47, 0x2f, 0xb9, 0x62, 0xbd,
-- 0x65, 0x44, 0x43, 0x8f, 0x18, 0xe8, 0x44, 0x1e, 0x7f, 0x75, 0x96, 0x5e,
-- 0xa6, 0xd9, 0xf4, 0x4f, 0xbb, 0xdb, 0xe7, 0xe9, 0xd5, 0x72, 0x9a, 0xfe,
-- 0x0b, 0x5e, 0x7c, 0xf5, 0xe4, 0xc9, 0xee, 0xf6, 0x67, 0x9f, 0x6f, 0xf7,
-- 0x5a, 0x8e, 0xeb, 0x20, 0xe6, 0x05, 0x41, 0x0c, 0x7c, 0x93, 0x81, 0xef,
-- 0xa2, 0x9f, 0xe1, 0xf8, 0x2a, 0x87, 0xa2, 0xc5, 0xc2, 0x8b, 0xae, 0x41,
-- 0x2a, 0x1a, 0x1e, 0xd8, 0xa4, 0xc2, 0xa8, 0xd1, 0x8d, 0x4b, 0x74, 0xfd,
-- 0xc7, 0x9d, 0x3d, 0x61, 0x65, 0x00, 0xa8, 0xc5, 0x3d, 0xc1, 0x6b, 0xf1,
-- 0x32, 0x9f, 0xd3, 0x0d, 0xf4, 0x45, 0x52, 0xa7, 0x57, 0x8e, 0x56, 0x35,
-- 0xdf, 0x58, 0xa2, 0xcc, 0x9d, 0x0b, 0xee, 0x92, 0x89, 0x3c, 0x9f, 0x4b,
-- 0x61, 0x08, 0x2e, 0x7b, 0x00, 0xc1, 0x67, 0x91, 0x95, 0x9c, 0xae, 0x5f,
-- 0x5c, 0x95, 0xe9, 0xcc, 0x62, 0xf9, 0xf9, 0x7d, 0x0e, 0x0c, 0x1a, 0x2e,
-- 0xa6, 0x88, 0x33, 0xb7, 0xe8, 0x1e, 0x91, 0x42, 0x85, 0xe0, 0xa6, 0x8b,
-- 0xca, 0xc3, 0x8a, 0xc9, 0x75, 0x13, 0x16, 0x54, 0xa0, 0xc5, 0x82, 0x9d,
-- 0xa3, 0x87, 0x59, 0xf5, 0x1d, 0x3e, 0xd1, 0x60, 0x62, 0x33, 0x1d, 0xe2,
-- 0x77, 0xe4, 0xc7, 0xa7, 0x02, 0x20, 0xd7, 0x5b, 0x48, 0xe6, 0xa9, 0xab,
-- 0xf6, 0x2e, 0x06, 0xb1, 0xbc, 0x31, 0xaf, 0xd4, 0xc7, 0xb4, 0x25, 0x2f,
-- 0xcd, 0x72, 0xb3, 0xf3, 0xc5, 0x2b, 0x10, 0xc4, 0xce, 0x17, 0xff, 0xe2,
-- 0x3e, 0xdb, 0xd5, 0xcf, 0x76, 0xbf, 0xf8, 0x97, 0xe1, 0x10, 0xe3, 0x63,
-- 0x0a, 0x59, 0xb7, 0xaf, 0xd7, 0x15, 0x8f, 0x22, 0xd5, 0x23, 0x2c, 0x7f,
-- 0x39, 0xe0, 0x55, 0xd9, 0xeb, 0x9e, 0xf5, 0x1c, 0xae, 0x72, 0x5f, 0x9d,
-- 0x7e, 0x8e, 0x6f, 0xe5, 0x56, 0x24, 0x09, 0x80, 0xba, 0x55, 0xd7, 0xa2,
-- 0x3b, 0xdf, 0x04, 0xda, 0xd1, 0xf0, 0x36, 0xbc, 0xfc, 0xaf, 0x4c, 0xa9,
-- 0xff, 0xba, 0x96, 0xa8, 0x6f, 0x8e, 0xb7, 0xe3, 0x1e, 0x4e, 0x08, 0x23,
-- 0x5b, 0x7a, 0x34, 0xb5, 0x02, 0x0e, 0xdc, 0x32, 0x47, 0xc7, 0xf3, 0x1d,
-- 0x18, 0x54, 0x3c, 0xff, 0xb3, 0xc2, 0xf9, 0xb9, 0xb4, 0x02, 0x7b, 0x46,
-- 0x32, 0x09, 0x48, 0xc6, 0x40, 0xdd, 0x01, 0xa9, 0x26, 0xf0, 0xc3, 0x0f,
-- 0x2a, 0x50, 0xd1, 0x2f, 0x3a, 0xf2, 0x6b, 0xe2, 0x45, 0x13, 0x62, 0x6f,
-- 0x33, 0x54, 0x5b, 0xd6, 0x22, 0xf5, 0x7a, 0xe5, 0x5f, 0xea, 0x4c, 0xa5,
-- 0x11, 0xda, 0xda, 0xfd, 0xf3, 0x83, 0xa3, 0x23, 0x44, 0xf2, 0x61, 0x51,
-- 0x0f, 0x85, 0x8d, 0x81, 0x36, 0x37, 0x10, 0x85, 0xe0, 0x03, 0xbf, 0x42,
-- 0xd2, 0xe7, 0xbd, 0xc3, 0xb6, 0x83, 0xfa, 0xa9, 0x31, 0x53, 0x8a, 0x75,
-- 0x2b, 0x41, 0xb3, 0x22, 0xe5, 0xbc, 0xea, 0xc9, 0x83, 0x57, 0x79, 0x4f,
-- 0x7d, 0x4b, 0xf2, 0x49, 0xcf, 0xc3, 0x8b, 0xc8, 0x7e, 0x60, 0xd3, 0x5e,
-- 0x89, 0xe8, 0x94, 0xff, 0x3d, 0x7b, 0xb5, 0xb3, 0xdd, 0xfd, 0x04, 0xca,
-- 0x2a, 0x30, 0x94, 0xf1, 0x2b, 0xef, 0x9b, 0x7b, 0xe8, 0xf9, 0x7c, 0x22,
-- 0x4f, 0x5f, 0xe7, 0x93, 0x09, 0xdd, 0x09, 0xb7, 0xe9, 0x74, 0x49, 0xb4,
-- 0x30, 0xe2, 0x1b, 0x96, 0xff, 0x7f, 0xc5, 0x38, 0xe0, 0x45, 0xd2, 0x67,
-- 0xab, 0xe5, 0x68, 0x96, 0x37, 0x06, 0xbc, 0xc5, 0x13, 0xfc, 0x82, 0x27,
-- 0xfc, 0x7d, 0xe6, 0xa8, 0x23, 0x63, 0xd1, 0x4e, 0x64, 0xbf, 0xf5, 0xcb,
-- 0xa2, 0x18, 0xa5, 0xe5, 0xba, 0xba, 0x58, 0x6c, 0x9c, 0xeb, 0x3b, 0xbb,
-- 0x4f, 0x9e, 0x3e, 0x5b, 0x1f, 0xaa, 0x9c, 0x06, 0x16, 0x51, 0x87, 0x29,
-- 0xfc, 0xd2, 0x84, 0x4b, 0x39, 0x9f, 0x79, 0x38, 0xf9, 0x2e, 0x3f, 0x27,
-- 0x73, 0x31, 0xee, 0xee, 0x95, 0xf4, 0xf6, 0x2f, 0xdc, 0xcf, 0x2b, 0x74,
-- 0xf1, 0x2f, 0xf9, 0xe4, 0x95, 0x9b, 0xe1, 0xbf, 0xf0, 0x5c, 0x5e, 0xe9,
-- 0x24, 0x68, 0x5f, 0x2d, 0x47, 0xab, 0x0a, 0x2b, 0x3d, 0x3c, 0xb6, 0xb9,
-- 0xb6, 0x89, 0x6b, 0x98, 0x34, 0x9c, 0xec, 0x83, 0x89, 0x78, 0x24, 0x20,
-- 0xad, 0xfa, 0x1c, 0xa5, 0xad, 0x8f, 0x03, 0x6a, 0x65, 0xc0, 0xad, 0x0c,
-- 0x3c, 0xc3, 0x06, 0x02, 0xf5, 0x80, 0x37, 0xa2, 0xaf, 0x89, 0x6a, 0x53,
-- 0x58, 0x3e, 0x54, 0x14, 0x28, 0x0a, 0xb8, 0xb0, 0x0f, 0xbe, 0x3e, 0x5a,
-- 0xd7, 0xd8, 0x10, 0x51, 0xdd, 0xfa, 0x5d, 0x36, 0x63, 0x17, 0xc5, 0x35,
-- 0x4e, 0x17, 0x7c, 0xfa, 0xd7, 0x12, 0x2d, 0x4c, 0x96, 0x72, 0xa8, 0x03,
-- 0xf7, 0x2b, 0x39, 0xa5, 0xd4, 0x99, 0xde, 0x3a, 0x53, 0xb6, 0x42, 0x97,
-- 0x02, 0x8e, 0x1d, 0x34, 0x03, 0xb4, 0x58, 0x89, 0x79, 0x80, 0x1f, 0x66,
-- 0xe1, 0x12, 0xd2, 0x06, 0x6f, 0x9c, 0x23, 0xd2, 0x25, 0x40, 0xe9, 0xa3,
-- 0xf4, 0x95, 0xf0, 0x13, 0x63, 0x11, 0x3d, 0x87, 0xd9, 0x26, 0x94, 0x10,
-- 0x72, 0x0f, 0xb8, 0x51, 0x47, 0x99, 0xa6, 0xb1, 0x89, 0x29, 0x43, 0x04,
-- 0x43, 0xe6, 0x9f, 0x2f, 0xbf, 0x34, 0x84, 0xd9, 0x2f, 0x12, 0x14, 0x17,
-- 0x94, 0xb7, 0xd4, 0x17, 0xa8, 0x46, 0x21, 0xb1, 0xa3, 0xe2, 0x25, 0x55,
-- 0x0f, 0x9c, 0x5b, 0x2a, 0x08, 0x18, 0x51, 0xc1, 0x40, 0x61, 0xc0, 0x31,
-- 0xd1, 0xd1, 0xbd, 0x1a, 0x00, 0xb8, 0x85, 0xf5, 0xbf, 0xe0, 0x10, 0xbc,
-- 0xe4, 0x6d, 0xc0, 0xd7, 0x5f, 0xac, 0xaf, 0xb9, 0x2a, 0xef, 0x4e, 0x72,
-- 0x6f, 0x39, 0x75, 0x85, 0x40, 0xc3, 0xf9, 0x90, 0x40, 0x6d, 0x70, 0xaa,
-- 0x22, 0x8d, 0x31, 0x84, 0x01, 0x2a, 0xf0, 0x92, 0x34, 0x35, 0x9d, 0x28,
-- 0x0e, 0xa1, 0x33, 0x1a, 0x4b, 0xe3, 0x19, 0x47, 0x7f, 0xb3, 0xf4, 0xb8,
-- 0xce, 0x01, 0x81, 0x78, 0x6f, 0xdd, 0xa1, 0xb3, 0xc2, 0x8e, 0x09, 0x86,
-- 0x57, 0x66, 0x86, 0xd1, 0xb7, 0xa6, 0x60, 0xca, 0x5e, 0x9a, 0x0f, 0x27,
-- 0x56, 0x05, 0xc2, 0x83, 0x4f, 0x03, 0x13, 0xb4, 0x8f, 0xe8, 0x88, 0xbc,
-- 0xe1, 0x1c, 0x4b, 0xed, 0xf4, 0x15, 0x2f, 0xf7, 0xce, 0xf0, 0x2a, 0xbf,
-- 0x94, 0xc5, 0x20, 0x16, 0x79, 0x95, 0x6d, 0xd1, 0x9f, 0x7d, 0xfa, 0x7c,
-- 0x97, 0xa5, 0x32, 0xfe, 0xe5, 0x09, 0x42, 0x86, 0xc2, 0xbb, 0x3f, 0x38,
-- 0x1b, 0xee, 0x5c, 0xf0, 0x2f, 0xb9, 0xbb, 0xf3, 0xd5, 0xd3, 0xa2, 0xa3,
-- 0x04, 0x99, 0x47, 0x15, 0x95, 0xfa, 0x81, 0x17, 0x85, 0x15, 0x2d, 0x56,
-- 0x49, 0x97, 0x1c, 0xf5, 0xef, 0x82, 0x6e, 0x35, 0xa6, 0x41, 0x05, 0x75,
-- 0x96, 0xbb, 0x73, 0x35, 0x99, 0x70, 0x96, 0x04, 0x6e, 0xd6, 0xec, 0x6e,
-- 0xb3, 0x1f, 0x06, 0x33, 0x12, 0x7b, 0xbf, 0xe5, 0xbc, 0x63, 0x06, 0x33,
-- 0xf0, 0xe5, 0x62, 0xb8, 0x7b, 0x94, 0x80, 0x5f, 0x4b, 0xc2, 0x44, 0x4c,
-- 0x6c, 0x73, 0xde, 0xde, 0xc1, 0xa0, 0x1e, 0xa3, 0x49, 0x9b, 0xec, 0xd5,
-- 0xda, 0xe4, 0x6e, 0xb2, 0x69, 0x05, 0x5d, 0x5d, 0xa1, 0xec, 0xac, 0x57,
-- 0x03, 0xf2, 0x45, 0x47, 0xeb, 0xe1, 0xd9, 0x2f, 0xc6, 0x75, 0x46, 0xba,
-- 0x2e, 0xe3, 0x0e, 0xcd, 0x84, 0xcf, 0x1d, 0xce, 0xa4, 0x30, 0x1d, 0x48,
-- 0x78, 0x3a, 0x90, 0xdb, 0x53, 0x45, 0xa2, 0xc1, 0x9b, 0x61, 0x72, 0x8c,
-- 0xa0, 0xdc, 0x2a, 0x15, 0xfc, 0x0a, 0xbb, 0x61, 0x8d, 0x1a, 0x88, 0x74,
-- 0x44, 0x06, 0x5f, 0x93, 0xc4, 0x00, 0x06, 0x0d, 0x30, 0x92, 0xca, 0x0d,
-- 0xa2, 0x59, 0x88, 0x4b, 0xe4, 0x0b, 0x95, 0x47, 0xfa, 0xb0, 0x4f, 0xbb,
-- 0xe7, 0x60, 0x87, 0x17, 0x5b, 0x1c, 0xd2, 0x63, 0x1c, 0xc1, 0x06, 0x8d,
-- 0x48, 0x5c, 0x91, 0x0a, 0xa0, 0x01, 0x5b, 0x77, 0x87, 0x40, 0xa2, 0xfe,
-- 0x32, 0x31, 0xba, 0x70, 0xee, 0x3a, 0xc3, 0x68, 0xc0, 0x4f, 0x4b, 0xad,
-- 0x81, 0xca, 0x80, 0xe8, 0x4b, 0x64, 0xd4, 0x83, 0xde, 0x38, 0xcd, 0x9c,
-- 0x72, 0xad, 0xe5, 0xb6, 0x5c, 0x44, 0x2f, 0x6c, 0x31, 0x22, 0x6e, 0x78,
-- 0x17, 0x1a, 0x0f, 0x92, 0xc7, 0x95, 0xde, 0xd2, 0x2f, 0x2c, 0x9c, 0x8d,
-- 0x4a, 0xda, 0xf5, 0xac, 0x94, 0xab, 0x01, 0xbd, 0x0a, 0xae, 0x87, 0x55,
-- 0x80, 0x79, 0x7b, 0x9c, 0x18, 0x0e, 0xc8, 0xa5, 0x17, 0x15, 0x2d, 0x78,
-- 0x10, 0x53, 0x54, 0xcb, 0x88, 0xc8, 0x43, 0xfa, 0x94, 0xdc, 0x72, 0xb2,
-- 0xb6, 0x9c, 0x4b, 0x9c, 0xf0, 0xe2, 0x34, 0x8e, 0x6c, 0xf0, 0x84, 0xbc,
-- 0xca, 0x74, 0x44, 0x64, 0xb2, 0xce, 0x4b, 0xb0, 0xde, 0x4f, 0xd6, 0x79,
-- 0xa8, 0xfc, 0xc5, 0x3a, 0xd6, 0x13, 0x1f, 0x07, 0xcb, 0xb7, 0x3e, 0xec,
-- 0x38, 0x85, 0xfc, 0xcc, 0xab, 0x2f, 0x1b, 0xab, 0x84, 0xcf, 0xad, 0xa9,
-- 0x57, 0x12, 0xc7, 0x1f, 0xc9, 0xdc, 0xf6, 0x6e, 0xd0, 0xfe, 0xab, 0x83,
-- 0x82, 0x31, 0xdc, 0xa8, 0x99, 0x20, 0x12, 0x73, 0xec, 0x3e, 0xcb, 0x91,
-- 0x52, 0x18, 0x35, 0xf4, 0xf8, 0x29, 0xbe, 0x30, 0x56, 0xe4, 0xa2, 0x14,
-- 0x85, 0xbb, 0x09, 0x09, 0x18, 0xe7, 0xa5, 0xdd, 0xcc, 0x45, 0xef, 0xbb,
-- 0x2b, 0x60, 0x65, 0x00, 0xcf, 0xd9, 0x19, 0x22, 0xc7, 0xcc, 0x57, 0xc8,
-- 0x74, 0x0d, 0x38, 0xe5, 0xbd, 0x87, 0x05, 0xed, 0xb9, 0xc0, 0x51, 0x53,
-- 0xe9, 0x6d, 0x95, 0xbb, 0x78, 0xd7, 0x22, 0x1f, 0x03, 0x24, 0xf8, 0xd5,
-- 0x97, 0x93, 0xe2, 0x8a, 0x39, 0x57, 0x9f, 0x0e, 0x1a, 0xff, 0xdb, 0xe3,
-- 0x87, 0x77, 0xb5, 0x53, 0x19, 0x30, 0xce, 0x8a, 0x48, 0xf1, 0xf6, 0xf7,
-- 0x8a, 0x28, 0x4a, 0x6a, 0x78, 0x52, 0x8c, 0xb5, 0x6d, 0xd7, 0xb4, 0xec,
-- 0x07, 0xb5, 0xef, 0xbe, 0x08, 0xfb, 0xb2, 0xc5, 0x49, 0xb5, 0x65, 0xc8,
-- 0x46, 0xc4, 0x29, 0x6a, 0xb9, 0xca, 0xd1, 0x31, 0xab, 0x32, 0x30, 0x70,
-- 0x71, 0x91, 0x4b, 0xb9, 0xb7, 0xa6, 0x9a, 0xf8, 0xb4, 0xfe, 0xe5, 0xba,
-- 0x84, 0x61, 0xaf, 0xbf, 0x5c, 0x07, 0x07, 0x63, 0xbe, 0x64, 0x15, 0xa5,
-- 0xf4, 0x72, 0x5a, 0x97, 0x5b, 0x71, 0x20, 0xb2, 0x83, 0x62, 0xa2, 0x35,
-- 0x82, 0xe4, 0x98, 0x61, 0x98, 0x1a, 0x19, 0xc6, 0xf7, 0xc1, 0x4c, 0x80,
-- 0x62, 0xd3, 0x18, 0x15, 0x03, 0x3c, 0x8e, 0x6a, 0x09, 0x5e, 0xd1, 0x4b,
-- 0x17, 0x62, 0x19, 0xf0, 0x24, 0x2a, 0x8e, 0x29, 0x10, 0x33, 0xe7, 0x72,
-- 0xbe, 0xe0, 0xec, 0xe1, 0x31, 0x20, 0xa9, 0xf5, 0x2c, 0x0d, 0x93, 0xf7,
-- 0x73, 0x81, 0x31, 0xcf, 0x58, 0x59, 0xce, 0xcb, 0xf1, 0x72, 0xc6, 0xa6,
-- 0x8a, 0x31, 0x1b, 0xc8, 0x2c, 0xfc, 0x88, 0x16, 0xaa, 0xe1, 0x32, 0x0f,
-- 0x07, 0x2c, 0xc6, 0x11, 0x31, 0x62, 0x6b, 0xbf, 0x08, 0x0f, 0xe1, 0xa0,
-- 0x28, 0x35, 0x52, 0x43, 0x2a, 0x70, 0xb8, 0x12, 0xca, 0x80, 0xd8, 0x5b,
-- 0x77, 0xf8, 0xe6, 0xf0, 0xec, 0xec, 0xf0, 0x8c, 0xd7, 0x7b, 0x7f, 0xde,
-- 0xa8, 0xb7, 0xee, 0xc0, 0x25, 0xbd, 0xfb, 0xcf, 0x22, 0x53, 0x63, 0x50,
-- 0x70, 0x61, 0x85, 0xe9, 0x64, 0xc2, 0x28, 0xcc, 0xd0, 0x20, 0x04, 0x49,
-- 0x45, 0x6a, 0xde, 0x86, 0xe6, 0x45, 0x44, 0x26, 0x3b, 0x53, 0x7e, 0x58,
-- 0x03, 0x2d, 0x90, 0x2d, 0x7c, 0x0b, 0xa5, 0xd6, 0xf8, 0x5b, 0x5a, 0xd2,
-- 0xf2, 0x75, 0xd6, 0x10, 0x53, 0x87, 0x1a, 0x4c, 0x9a, 0xa9, 0x83, 0x7b,
-- 0xea, 0xec, 0x13, 0x98, 0xf2, 0x25, 0x9f, 0x51, 0xd6, 0x9d, 0xb0, 0x18,
-- 0x55, 0xbd, 0x5c, 0xe4, 0x13, 0x67, 0xed, 0xa5, 0xcf, 0x49, 0xfc, 0x4b,
-- 0xe4, 0x94, 0x57, 0x16, 0x7f, 0x02, 0x4f, 0xa3, 0x19, 0x23, 0x42, 0x6b,
-- 0x5b, 0x0b, 0xe1, 0x34, 0x41, 0x42, 0x92, 0x04, 0x72, 0x59, 0xbd, 0x96,
-- 0x66, 0xf6, 0xad, 0xd2, 0x7e, 0x06, 0x2b, 0x23, 0x73, 0x0b, 0x0b, 0x89,
-- 0x09, 0x39, 0x03, 0xdb, 0xb2, 0x66, 0x3e, 0x24, 0x9b, 0xc3, 0xca, 0xf6,
-- 0x04, 0x28, 0x02, 0x49, 0x77, 0xe5, 0x5e, 0xf2, 0x53, 0x95, 0x8f, 0x7f,
-- 0xf1, 0x97, 0x07, 0x32, 0x2c, 0x9a, 0x15, 0x9a, 0xb0, 0x74, 0xba, 0x50,
-- 0xaa, 0x0c, 0x4b, 0xb2, 0xeb, 0xfb, 0xf3, 0xc3, 0xb3, 0x64, 0xff, 0x6b,
-- 0xc6, 0x49, 0xfd, 0x2f, 0x6e, 0x30, 0x3f, 0xa7, 0xb7, 0xc3, 0x9a, 0x86,
-- 0x7a, 0x2a, 0xfa, 0x43, 0x66, 0xa6, 0x70, 0x41, 0x2e, 0x6a, 0xec, 0x6c,
-- 0x6e, 0x55, 0x6c, 0xfd, 0x75, 0xdf, 0xdc, 0xc3, 0xb5, 0xe4, 0xd1, 0x5d,
-- 0xfc, 0x94, 0x3d, 0xe4, 0x43, 0x16, 0xee, 0xa2, 0xe0, 0xc6, 0x88, 0x4b,
-- 0xc2, 0xf6, 0x46, 0x47, 0x5f, 0x45, 0x6a, 0xa7, 0xec, 0xd2, 0x7e, 0xb2,
-- 0xfe, 0xb6, 0xf8, 0x3b, 0x09, 0x03, 0xe9, 0xd6, 0x93, 0xe1, 0x76, 0xb2,
-- 0xf1, 0x7d, 0x3e, 0x7f, 0xf1, 0xec, 0x2f, 0xc9, 0xd1, 0xe6, 0x7a, 0x23,
-- 0xde, 0x5c, 0xaa, 0x9a, 0x8d, 0xd2, 0xf9, 0x8d, 0xdb, 0xb2, 0x13, 0x9c,
-- 0x6c, 0x09, 0x74, 0xb3, 0x8a, 0x10, 0x52, 0x7c, 0x75, 0x65, 0x8b, 0x02,
-- 0x05, 0x2e, 0xa1, 0xeb, 0xc9, 0x77, 0x0e, 0x14, 0x98, 0xb5, 0x7c, 0x7a,
-- 0x6a, 0xc2, 0x4b, 0xf7, 0xe2, 0x59, 0xd4, 0xc4, 0x53, 0xd7, 0xc6, 0x7b,
-- 0x69, 0xe3, 0x57, 0x36, 0xb1, 0x3b, 0xdc, 0xde, 0x4d, 0x36, 0x4e, 0xce,
-- 0xb7, 0x76, 0x5d, 0x0b, 0x71, 0x13, 0xbb, 0x68, 0x82, 0x1f, 0x6a, 0xbe,
-- 0xfc, 0x94, 0xfb, 0xff, 0x29, 0x9b, 0xff, 0x92, 0x6c, 0xfc, 0xb0, 0xb3,
-- 0x43, 0x0d, 0xfc, 0x25, 0xd9, 0x3f, 0xfa, 0x21, 0x79, 0x3a, 0xa4, 0xc6,
-- 0xde, 0xa5, 0xb7, 0xda, 0x9c, 0xc2, 0x7d, 0x9e, 0xa3, 0x11, 0xfa, 0x3e,
-- 0x6a, 0xe3, 0x59, 0xab, 0x8d, 0x63, 0xd2, 0x0b, 0x3f, 0xd2, 0xb5, 0xb2,
-- 0x3d, 0x7c, 0xb2, 0x9b, 0xe4, 0xcf, 0x3e, 0x7f, 0x6e, 0x0d, 0x69, 0x1b,
-- 0xf8, 0xbe, 0x69, 0xad, 0x14, 0x40, 0x09, 0x12, 0x75, 0x0e, 0x3f, 0x12,
-- 0x43, 0x03, 0x8b, 0x00, 0xf6, 0xff, 0x75, 0x5a, 0x5a, 0x45, 0x50, 0xc6,
-- 0x83, 0xa7, 0x9d, 0x52, 0xa0, 0xdd, 0x0c, 0x66, 0x4b, 0xba, 0x38, 0xf7,
-- 0xa2, 0xe1, 0xb0, 0x6e, 0x6a, 0x8f, 0xfe, 0x25, 0x79, 0x7b, 0x7e, 0x74,
-- 0x48, 0x33, 0xda, 0xa6, 0xa1, 0xf9, 0x35, 0x94, 0x01, 0xe1, 0x2b, 0x2c,
-- 0xee, 0x0b, 0xe0, 0x36, 0x6a, 0x1b, 0x61, 0xed, 0x4a, 0x10, 0x1d, 0x5d,
-- 0xdc, 0x15, 0xfa, 0xe5, 0x30, 0x91, 0xc1, 0xfe, 0x15, 0xab, 0x10, 0x72,
-- 0xd5, 0xa2, 0xeb, 0x6f, 0x8b, 0x39, 0x1d, 0x93, 0xb2, 0x28, 0x39, 0x9a,
-- 0x69, 0xbd, 0x21, 0x2d, 0x7c, 0xfb, 0xfa, 0x50, 0x92, 0x8e, 0xdf, 0xa6,
-- 0x73, 0xe2, 0x91, 0x8c, 0x1f, 0x54, 0xdd, 0xb0, 0x4f, 0x5e, 0xdc, 0x39,
-- 0xf2, 0xfe, 0xf1, 0xfd, 0xfc, 0x23, 0xed, 0xe3, 0x67, 0xc3, 0x1d, 0xc6,
-- 0x6e, 0x60, 0xad, 0xf7, 0xcd, 0x5b, 0xfa, 0x7b, 0xe7, 0xe9, 0x7a, 0xc2,
-- 0x5f, 0x35, 0x35, 0x78, 0x3b, 0xaf, 0x6b, 0x07, 0x27, 0x27, 0xdf, 0x1e,
-- 0x49, 0x50, 0xc6, 0x81, 0x9a, 0x55, 0x59, 0xb8, 0x72, 0x5a, 0xb1, 0x70,
-- 0x57, 0xd2, 0xde, 0x7c, 0x7e, 0x0b, 0x9c, 0x71, 0x37, 0x59, 0xb6, 0xe0,
-- 0x08, 0x81, 0xba, 0xc5, 0x11, 0x6a, 0xe5, 0xd1, 0x2e, 0xde, 0x88, 0xc5,
-- 0x9f, 0x06, 0xf6, 0x51, 0xc5, 0x60, 0xb2, 0x66, 0xc2, 0x1d, 0xdd, 0x3b,
-- 0x60, 0x83, 0xd4, 0xb9, 0xcc, 0x64, 0x88, 0x2e, 0xa0, 0xde, 0x4c, 0xd0,
-- 0x52, 0x46, 0x81, 0x5e, 0x54, 0xdd, 0x77, 0xfd, 0x9c, 0xa4, 0x7b, 0x19,
-- 0xf4, 0x9e, 0x5a, 0x6d, 0xd7, 0x03, 0xf4, 0x5d, 0x48, 0xb4, 0x0b, 0x2d,
-- 0x33, 0x02, 0xd3, 0xf1, 0x3d, 0xc9, 0x12, 0x98, 0x93, 0xf2, 0xe6, 0x0a,
-- 0xb6, 0x6c, 0x84, 0xcc, 0xbd, 0xdb, 0x7f, 0x7b, 0xf8, 0xea, 0xbb, 0xfd,
-- 0xe3, 0xf7, 0x87, 0xf4, 0x4a, 0x0e, 0xa0, 0x6b, 0x17, 0x56, 0x87, 0x31,
-- 0xce, 0x72, 0xd4, 0xcd, 0xac, 0x48, 0x3c, 0x58, 0x5f, 0x93, 0x48, 0xef,
-- 0xa4, 0xc7, 0x6f, 0xed, 0xc8, 0x6b, 0x44, 0x17, 0xfc, 0xd7, 0xae, 0xfc,
-- 0xb5, 0xfb, 0x97, 0xde, 0x66, 0x63, 0xd2, 0x91, 0x96, 0xcc, 0xf4, 0x72,
-- 0x27, 0xb5, 0x66, 0x38, 0x64, 0x47, 0xd2, 0x0b, 0x64, 0x55, 0x7a, 0xe6,
-- 0xa3, 0xb1, 0xbb, 0x8d, 0x9f, 0xdd, 0x18, 0xdd, 0x87, 0x3a, 0x78, 0x8f,
-- 0x5f, 0x7a, 0x05, 0x01, 0xa3, 0x07, 0x28, 0xf0, 0xcc, 0x56, 0x4b, 0xda,
-- 0xb0, 0x26, 0xb2, 0x8f, 0x0b, 0x8e, 0x52, 0xdc, 0xe8, 0xc9, 0x2f, 0xaf,
-- 0x5e, 0xef, 0x5f, 0x1c, 0xf2, 0x0b, 0xd6, 0xbd, 0xe1, 0xc2, 0x5b, 0x12,
-- 0x00, 0x8f, 0x67, 0xa3, 0x27, 0x1f, 0xbe, 0xe2, 0x09, 0xf5, 0x36, 0xc5,
-- 0x97, 0x01, 0x47, 0x77, 0x6b, 0x5c, 0xc5, 0x5c, 0xe3, 0xa9, 0x83, 0x44,
-- 0xde, 0xca, 0xa2, 0x48, 0x36, 0x7a, 0xf2, 0x5d, 0xcf, 0x59, 0x70, 0xb5,
-- 0x36, 0xb5, 0xba, 0x2b, 0x27, 0x48, 0x11, 0x88, 0x92, 0x17, 0x25, 0x4c,
-- 0xcc, 0xef, 0x8f, 0x3a, 0x2b, 0xc4, 0xe2, 0x14, 0xe0, 0x11, 0xbb, 0x8d,
-- 0xd7, 0x4c, 0x61, 0xb6, 0x31, 0x15, 0xc5, 0xce, 0xee, 0x93, 0xbf, 0x60,
-- 0x3d, 0x5f, 0xf5, 0xb6, 0xe8, 0x6e, 0xe8, 0xfd, 0x85, 0xbb, 0xce, 0xcd,
-- 0xc6, 0x19, 0x04, 0x76, 0xb3, 0x3e, 0xa5, 0x14, 0x25, 0x21, 0x2c, 0xbc,
-- 0xeb, 0x01, 0x00, 0x0a, 0x16, 0xf4, 0x4e, 0x12, 0x99, 0x0c, 0x2e, 0xc4,
-- 0x1c, 0xfa, 0xd8, 0xaf, 0x51, 0x76, 0x95, 0xcf, 0xe7, 0xae, 0x3e, 0xa7,
-- 0x74, 0x17, 0xde, 0x1f, 0x7d, 0x79, 0x57, 0xe6, 0xa8, 0x10, 0x2b, 0xdc,
-- 0xe7, 0xec, 0xde, 0x72, 0x9d, 0xaa, 0xca, 0x54, 0x5c, 0xd9, 0xb3, 0x48,
-- 0x32, 0x1e, 0xa9, 0x6d, 0xc7, 0x94, 0x11, 0xc8, 0x04, 0xc4, 0x5a, 0xee,
-- 0x21, 0x28, 0x49, 0x04, 0x40, 0x10, 0xf8, 0x60, 0x77, 0x76, 0x3a, 0xe2,
-- 0x3c, 0x5e, 0x97, 0xd8, 0x11, 0x68, 0xe5, 0x6e, 0xe9, 0xed, 0xf8, 0xe5,
-- 0x01, 0x76, 0x0d, 0x5f, 0x94, 0xb2, 0x96, 0x95, 0xb3, 0x21, 0xc1, 0xdb,
-- 0xa8, 0xcf, 0x36, 0xf7, 0xa9, 0x95, 0x32, 0x85, 0x69, 0x88, 0x4a, 0x2f,
-- 0xfa, 0x31, 0xb1, 0x9a, 0x79, 0x56, 0x3e, 0x18, 0xf4, 0xd0, 0xe1, 0x8c,
-- 0xc2, 0x14, 0x83, 0x34, 0x3c, 0x7e, 0x67, 0x38, 0x1c, 0xfa, 0x2a, 0xbf,
-- 0xbc, 0x2d, 0xea, 0x83, 0x42, 0x79, 0x96, 0x00, 0x61, 0x13, 0x6b, 0xbc,
-- 0x01, 0x61, 0x1e, 0x02, 0xf5, 0xa6, 0x06, 0xc3, 0xa8, 0x9d, 0xc0, 0x1d,
-- 0x8d, 0xc0, 0xc6, 0xb1, 0xae, 0xdd, 0xae, 0x5b, 0x5a, 0xfb, 0x4d, 0xd7,
-- 0x26, 0x3c, 0x30, 0x36, 0xb1, 0x3d, 0x6a, 0x71, 0x3f, 0xc7, 0xa7, 0x0a,
-- 0xb7, 0x16, 0x4c, 0xc1, 0x1c, 0xd4, 0x0d, 0x3a, 0x91, 0xa4, 0x4e, 0x59,
-- 0x34, 0x1d, 0x8a, 0x96, 0x79, 0x62, 0x26, 0x57, 0xdc, 0x21, 0xcf, 0x5c,
-- 0x6a, 0x6c, 0x2c, 0x4a, 0xd6, 0xf4, 0x78, 0x8d, 0xed, 0x06, 0x59, 0x38,
-- 0xb1, 0x59, 0xdb, 0x51, 0xb4, 0x55, 0xd6, 0x99, 0x21, 0xfb, 0x6b, 0x22,
-- 0x9e, 0x02, 0x76, 0x54, 0xa9, 0x22, 0x31, 0x92, 0xd8, 0x56, 0xcc, 0xe0,
-- 0xf6, 0xd2, 0xc9, 0x7b, 0x73, 0x15, 0x47, 0x80, 0x0d, 0x04, 0xf2, 0xc2,
-- 0x72, 0xe5, 0x8c, 0x7b, 0x28, 0xec, 0xc1, 0x43, 0xfe, 0xf2, 0xb1, 0xb5,
-- 0xe8, 0x9c, 0xe5, 0xad, 0xb5, 0xf1, 0xb7, 0x72, 0x93, 0x75, 0xd1, 0x8a,
-- 0x8a, 0x75, 0x59, 0xc0, 0x05, 0x3c, 0xdf, 0x4b, 0xd2, 0x3b, 0xae, 0x36,
-- 0x9d, 0x71, 0xcc, 0x24, 0x22, 0x1d, 0x60, 0x95, 0x39, 0x0e, 0xec, 0x8c,
-- 0x6e, 0x86, 0x56, 0xd1, 0x3e, 0xf5, 0x25, 0xed, 0xad, 0x68, 0xad, 0x00,
-- 0x8a, 0x9a, 0x41, 0x2f, 0x47, 0x75, 0x5d, 0x06, 0x80, 0x54, 0x49, 0xdd,
-- 0xd4, 0x73, 0x1e, 0xf9, 0x26, 0x0a, 0x90, 0x8a, 0x38, 0x8f, 0x58, 0x41,
-- 0xb6, 0x73, 0x48, 0x5c, 0x85, 0xad, 0x16, 0x2a, 0xa5, 0xbb, 0x4e, 0x9c,
-- 0x7f, 0x5a, 0xcd, 0x4f, 0x1c, 0x72, 0x3b, 0x1f, 0xb8, 0xaa, 0xe1, 0x2e,
-- 0x1e, 0xab, 0xcc, 0xaf, 0xae, 0xb4, 0xe6, 0x69, 0x7b, 0x6a, 0xdd, 0x44,
-- 0x76, 0xcc, 0xab, 0xc2, 0x91, 0xc9, 0xf7, 0xab, 0x56, 0xf3, 0xc2, 0x6c,
-- 0x3e, 0x66, 0x75, 0x69, 0x10, 0xb3, 0xf9, 0x24, 0x65, 0xdf, 0x00, 0xd4,
-- 0x28, 0x49, 0xe0, 0x9c, 0x34, 0xd1, 0xf4, 0x21, 0x9f, 0x9c, 0xad, 0x01,
-- 0x5a, 0x7e, 0xee, 0x73, 0xde, 0x6d, 0xd3, 0x81, 0x5f, 0xe6, 0x23, 0x50,
-- 0x7c, 0x74, 0xe8, 0x9d, 0x0b, 0x7f, 0x92, 0xaa, 0x64, 0xa3, 0xd4, 0xab,
-- 0x5c, 0x6b, 0x49, 0xc3, 0xda, 0xcb, 0x25, 0x27, 0x8e, 0xe6, 0xca, 0x87,
-- 0x8a, 0xdb, 0xcc, 0x43, 0xe8, 0x79, 0x83, 0xa3, 0xc7, 0x21, 0xd5, 0xd3,
-- 0xef, 0x98, 0x49, 0xcb, 0xc1, 0xeb, 0xf8, 0x15, 0x26, 0xd9, 0x5a, 0x95,
-- 0x61, 0x12, 0x34, 0x29, 0xa6, 0x92, 0x22, 0x64, 0xf1, 0x32, 0x36, 0xf5,
-- 0x5b, 0x5b, 0x8b, 0x9a, 0x56, 0x04, 0x10, 0x8c, 0x40, 0x35, 0x91, 0x92,
-- 0x0c, 0x86, 0x25, 0xee, 0xe2, 0xe6, 0xbc, 0xff, 0xd7, 0x66, 0xd9, 0x73,
-- 0x9b, 0xd4, 0x33, 0xd4, 0x76, 0x10, 0x01, 0x68, 0x80, 0x05, 0x3a, 0xe7,
-- 0xc2, 0xdf, 0x9f, 0xa6, 0x1c, 0xc4, 0x52, 0x48, 0x74, 0x00, 0xb6, 0x0c,
-- 0x44, 0x0d, 0x63, 0x5a, 0x8b, 0xa7, 0x46, 0xc7, 0xcf, 0x45, 0x6b, 0x08,
-- 0xad, 0xb1, 0x90, 0x82, 0x66, 0x88, 0x4a, 0x10, 0x61, 0x3d, 0x0e, 0xcb,
-- 0xd6, 0xae, 0x4e, 0x0f, 0x1f, 0x35, 0xce, 0xe8, 0x63, 0x47, 0xf6, 0xf4,
-- 0xec, 0xe4, 0xeb, 0xb3, 0xc3, 0xf3, 0xf3, 0xe4, 0xed, 0xe1, 0x85, 0xa8,
-- 0xfd, 0x17, 0x12, 0x19, 0x77, 0xc5, 0x9a, 0x7b, 0x02, 0xb7, 0x83, 0xc1,
-- 0xdd, 0x58, 0xf4, 0x89, 0xd9, 0x14, 0x90, 0x92, 0x54, 0xb0, 0x4b, 0x0d,
-- 0xa2, 0x1c, 0xf4, 0xf9, 0xa9, 0x06, 0xd4, 0x5d, 0xc3, 0xf0, 0x8f, 0xf0,
-- 0x26, 0xf8, 0x26, 0x9d, 0x1d, 0xdd, 0x5b, 0x54, 0x21, 0x23, 0x4b, 0xc0,
-- 0xd3, 0xb5, 0x71, 0x2e, 0x6f, 0x4d, 0xe7, 0xdb, 0x9b, 0xfe, 0xc5, 0xf4,
-- 0xfe, 0x94, 0x5c, 0x14, 0x35, 0x17, 0x24, 0xe6, 0x5f, 0xcf, 0x8c, 0x3e,
-- 0xfe, 0x94, 0xfc, 0x40, 0x6d, 0x4e, 0x68, 0xd5, 0xd9, 0x98, 0x4c, 0x17,
-- 0xee, 0x39, 0x8a, 0x2e, 0xfa, 0x0a, 0x2c, 0xa8, 0x94, 0x18, 0xd6, 0x9a,
-- 0x5e, 0x96, 0xe5, 0xb0, 0xbb, 0x80, 0x49, 0xa3, 0x02, 0x89, 0x20, 0x0b,
-- 0x6a, 0x78, 0x9d, 0xeb, 0x59, 0xab, 0xa9, 0x26, 0xc9, 0x71, 0x76, 0x59,
-- 0x43, 0x20, 0xe1, 0xee, 0xa8, 0xb9, 0x6d, 0x86, 0xca, 0xdd, 0xe1, 0x0a,
-- 0x51, 0xf4, 0xeb, 0x93, 0xcf, 0x9f, 0x6f, 0x7f, 0x2e, 0xbf, 0xda, 0xcf,
-- 0x17, 0x4f, 0xb7, 0x15, 0x72, 0x9a, 0xfe, 0x7a, 0xba, 0xf7, 0x74, 0x67,
-- 0x8f, 0x91, 0xf0, 0xb6, 0xf7, 0xb6, 0xe9, 0xff, 0x9f, 0xea, 0x27, 0x0c,
-- 0xf7, 0xf7, 0x62, 0xf7, 0xf3, 0xcf, 0x10, 0x18, 0xc3, 0xf4, 0x31, 0xa5,
-- 0x4e, 0x06, 0x75, 0x31, 0x00, 0x20, 0x0f, 0x84, 0xa0, 0x3f, 0x35, 0x8d,
-- 0x92, 0xec, 0x69, 0x1f, 0xb3, 0x5f, 0xf5, 0x4a, 0xd4, 0x9b, 0x69, 0xc6,
-- 0x1c, 0x40, 0x0d, 0xac, 0x82, 0x32, 0x62, 0x01, 0xdc, 0x92, 0x64, 0xac,
-- 0xd3, 0xd0, 0xb7, 0x6b, 0xfc, 0x0d, 0x84, 0xab, 0xc6, 0x3b, 0x12, 0x07,
-- 0x1e, 0x80, 0x69, 0xfd, 0xda, 0xae, 0x2d, 0xed, 0x79, 0x0d, 0x10, 0x59,
-- 0xba, 0x55, 0xfa, 0xde, 0xd8, 0x0a, 0xd2, 0xba, 0xa7, 0x58, 0x22, 0x9c,
-- 0x49, 0xca, 0xc0, 0xa5, 0x44, 0x13, 0xff, 0xda, 0xfe, 0xc4, 0x88, 0xc5,
-- 0x6f, 0x29, 0x35, 0x24, 0x71, 0x6f, 0x2e, 0x55, 0xa0, 0xa3, 0xaf, 0x06,
-- 0xf1, 0xac, 0xf9, 0xed, 0xf7, 0x2b, 0xc5, 0x5c, 0x4d, 0x1f, 0x72, 0x29,
-- 0x56, 0x52, 0xdf, 0xb3, 0x63, 0xca, 0x51, 0x73, 0x4a, 0x46, 0xbf, 0xa2,
-- 0x39, 0x3f, 0x23, 0x50, 0xb0, 0xdb, 0xb9, 0x41, 0xb0, 0x39, 0xb9, 0xc4,
-- 0xb8, 0xd9, 0x6a, 0x38, 0x08, 0x46, 0xbb, 0xf1, 0xe4, 0x55, 0x47, 0xb2,
-- 0x03, 0x79, 0x43, 0xc5, 0x4f, 0x97, 0xb6, 0xa6, 0xa5, 0xc5, 0xdd, 0xf3,
-- 0x46, 0xd9, 0x51, 0x57, 0x4c, 0x8d, 0x41, 0x7f, 0xda, 0x07, 0xce, 0x93,
-- 0x3b, 0x74, 0x0f, 0x4e, 0xcd, 0x87, 0xbe, 0xbb, 0xfa, 0xa6, 0x1b, 0x2e,
-- 0x94, 0xbc, 0xeb, 0x48, 0xfa, 0xe7, 0x10, 0x5d, 0xee, 0x9a, 0x0b, 0x2f,
-- 0x22, 0xd4, 0xb6, 0xd5, 0x1a, 0x02, 0x8c, 0xeb, 0xc8, 0x40, 0xe8, 0x9b,
-- 0xc6, 0xc2, 0x06, 0x7f, 0x74, 0x11, 0x5c, 0xb8, 0xd7, 0xb4, 0x00, 0x62,
-- 0x2a, 0x94, 0x3f, 0x0d, 0x33, 0x5c, 0x1d, 0xb7, 0x1b, 0xa5, 0x65, 0x03,
-- 0x72, 0x7c, 0x4d, 0xcb, 0xba, 0xcf, 0x18, 0xcd, 0x2b, 0xa8, 0x62, 0xff,
-- 0x87, 0xb5, 0xb5, 0xf3, 0xd3, 0xc3, 0xc3, 0xd7, 0xc9, 0xf1, 0xd1, 0xdb,
-- 0xa3, 0x8b, 0x40, 0x20, 0x77, 0x17, 0x89, 0x19, 0x5d, 0xad, 0x3c, 0x4f,
-- 0x6b, 0x39, 0x3c, 0xc0, 0xad, 0xf4, 0x67, 0x57, 0xf9, 0x2c, 0xd3, 0x24,
-- 0x87, 0x69, 0xfb, 0x3d, 0xa8, 0xde, 0x80, 0xd1, 0x19, 0x26, 0x5f, 0x05,
-- 0x31, 0x92, 0x49, 0x45, 0xc2, 0xcd, 0xd8, 0x55, 0x7d, 0x1d, 0xfc, 0xa8,
-- 0x21, 0x1b, 0x4d, 0xc9, 0x49, 0x71, 0x3a, 0x5d, 0xc6, 0x8d, 0x86, 0xb9,
-- 0xb6, 0x46, 0xc5, 0x6b, 0x9b, 0x49, 0xe4, 0x73, 0x60, 0xa1, 0x43, 0x04,
-- 0xdf, 0x5d, 0x86, 0xdc, 0xfc, 0x59, 0x2e, 0xa9, 0x90, 0x61, 0x78, 0xb1,
-- 0x2b, 0x84, 0x79, 0x51, 0x08, 0x1f, 0x0f, 0x7b, 0x0c, 0x2b, 0x1c, 0x5b,
-- 0x6c, 0xad, 0xf5, 0x15, 0x96, 0xce, 0x7d, 0xb2, 0xed, 0xb2, 0x09, 0x16,
-- 0xe0, 0x39, 0x2a, 0xea, 0x73, 0x67, 0x3b, 0x09, 0xc9, 0x23, 0x4b, 0x96,
-- 0xea, 0xcb, 0xe5, 0x3c, 0xba, 0xee, 0x7e, 0x94, 0x77, 0x69, 0xfe, 0xcf,
-- 0xb7, 0x71, 0xbd, 0x5d, 0xa6, 0xe5, 0x80, 0x24, 0xaf, 0xfb, 0x81, 0x59,
-- 0x57, 0x85, 0x22, 0x34, 0xf4, 0x58, 0x4c, 0x3f, 0x99, 0xaf, 0xb9, 0xd9,
-- 0x92, 0x16, 0x7d, 0x4a, 0x48, 0x01, 0x17, 0xe5, 0x54, 0x0f, 0x00, 0x4f,
-- 0x9d, 0x13, 0x71, 0xcd, 0xd8, 0xe9, 0x65, 0x1d, 0x8f, 0xe1, 0x6a, 0xbb,
-- 0xe8, 0x79, 0x14, 0x27, 0x08, 0x80, 0xad, 0x72, 0xab, 0x39, 0x4f, 0x53,
-- 0xe7, 0x12, 0x8b, 0xd6, 0xb3, 0x64, 0xe7, 0x73, 0x9e, 0xc7, 0xa7, 0xcd,
-- 0xe7, 0x4d, 0x51, 0x8e, 0x5d, 0xca, 0x2f, 0xd4, 0x85, 0x20, 0xff, 0x53,
-- 0xb2, 0x16, 0x50, 0xd8, 0x46, 0x56, 0xd7, 0xe2, 0x63, 0x11, 0xbf, 0xc7,
-- 0xfa, 0x89, 0xba, 0xd6, 0x61, 0x99, 0x82, 0xaf, 0x5b, 0x24, 0x24, 0xbe,
-- 0x6b, 0x74, 0x5d, 0xd8, 0xd6, 0x2a, 0xf1, 0x7b, 0xeb, 0xa5, 0xcb, 0x0f,
-- 0x95, 0x65, 0x60, 0xeb, 0x08, 0xd1, 0xda, 0x5d, 0x3e, 0x81, 0x54, 0xed,
-- 0xd1, 0xbc, 0x68, 0xbf, 0x84, 0xf8, 0x24, 0x6c, 0x1a, 0xee, 0x4b, 0xf8,
-- 0x3d, 0xdd, 0xc8, 0x54, 0x80, 0xe1, 0x65, 0x2d, 0x60, 0x5c, 0xd8, 0x80,
-- 0xfc, 0xc0, 0xe9, 0xc7, 0xde, 0x45, 0xc0, 0xaa, 0x14, 0xb3, 0xe6, 0x9e,
-- 0xef, 0x85, 0x43, 0xf9, 0xeb, 0x7a, 0x6a, 0x76, 0x85, 0xb7, 0x8e, 0xb0,
-- 0x9b, 0x73, 0x66, 0x5c, 0x91, 0x60, 0xda, 0x3b, 0xdb, 0x24, 0xbf, 0x4e,
-- 0x8b, 0x76, 0x85, 0xee, 0x58, 0x29, 0xc5, 0xb4, 0x06, 0x58, 0x9d, 0x9d,
-- 0xed, 0x6f, 0x57, 0xaf, 0x3a, 0x90, 0xca, 0x1f, 0x7c, 0x79, 0xf7, 0xe9,
-- 0x03, 0x9b, 0x76, 0x52, 0x42, 0x2f, 0xcf, 0x2c, 0x1c, 0x12, 0x82, 0xa0,
-- 0x77, 0xc2, 0x44, 0xdb, 0x46, 0x84, 0x9f, 0x5d, 0xa5, 0x3c, 0xfc, 0x87,
-- 0x46, 0x6f, 0x29, 0x1b, 0xad, 0xa1, 0xbc, 0xd5, 0x00, 0x6d, 0xf9, 0xb2,
-- 0x62, 0x0b, 0xd9, 0x02, 0x60, 0x68, 0x5e, 0x8d, 0x75, 0xd9, 0xde, 0x02,
-- 0x37, 0x11, 0xbc, 0x2d, 0x9c, 0xb3, 0xdf, 0x64, 0x12, 0x46, 0x3d, 0x65,
-- 0x76, 0xb5, 0x14, 0x3c, 0x87, 0x42, 0xd4, 0x7e, 0x86, 0xfe, 0xd5, 0xf3,
-- 0x4a, 0xbc, 0x99, 0x23, 0x89, 0x84, 0x9e, 0xc0, 0x78, 0xc7, 0xa9, 0x89,
-- 0xac, 0x22, 0x72, 0xb4, 0x2f, 0x06, 0xb6, 0xcf, 0x8e, 0xd9, 0x21, 0x06,
-- 0x6e, 0xb0, 0x96, 0xb4, 0xab, 0xf7, 0x0a, 0xb6, 0xdd, 0x10, 0x89, 0xb8,
-- 0x42, 0x28, 0x8e, 0xd9, 0x73, 0xd6, 0x17, 0x3b, 0xc6, 0x6a, 0xf1, 0x10,
-- 0xa0, 0x81, 0xbe, 0x52, 0x2d, 0x5a, 0x72, 0x5d, 0x31, 0xc7, 0xaf, 0x0c,
-- 0x63, 0x50, 0xf0, 0xc8, 0xd9, 0xee, 0x7f, 0x70, 0xf2, 0xee, 0xcd, 0xd1,
-- 0xd7, 0x0e, 0x78, 0x47, 0x98, 0xb8, 0x55, 0x15, 0x45, 0x9b, 0x62, 0x49,
-- 0x0e, 0x9d, 0xde, 0x5a, 0xb5, 0x4e, 0x03, 0x71, 0x89, 0x3d, 0x7d, 0x08,
-- 0x3f, 0x00, 0x03, 0x99, 0x3f, 0x61, 0x5b, 0xb9, 0x00, 0x59, 0x54, 0x9b,
-- 0xde, 0xf2, 0xd0, 0x02, 0x06, 0x93, 0x84, 0x8d, 0xb4, 0xac, 0x97, 0x0b,
-- 0x17, 0x4f, 0x18, 0x54, 0xbd, 0x53, 0xa4, 0x62, 0xcb, 0x14, 0x5f, 0x2e,
-- 0x84, 0x35, 0x69, 0xbe, 0x67, 0xc3, 0xb0, 0x2b, 0x77, 0x00, 0x5b, 0x16,
-- 0x14, 0xf9, 0x43, 0x2f, 0x80, 0x28, 0x44, 0x67, 0xca, 0xf8, 0x86, 0x61,
-- 0xe8, 0xbc, 0xb9, 0x72, 0x26, 0xa8, 0x1c, 0x18, 0xd6, 0x5d, 0x9e, 0x89,
-- 0x66, 0xc6, 0xf3, 0x46, 0xb9, 0x5c, 0x17, 0x97, 0xe3, 0x02, 0x81, 0xbd,
-- 0xab, 0xa8, 0x72, 0xf5, 0x7f, 0x5d, 0xa8, 0x92, 0x65, 0x99, 0xa6, 0xf0,
-- 0x5a, 0xc2, 0xed, 0x89, 0x4f, 0x5e, 0xb1, 0x87, 0x66, 0x8f, 0xf1, 0xba,
-- 0x67, 0x02, 0xdf, 0x15, 0x66, 0x87, 0x2a, 0x97, 0xf4, 0xb8, 0xda, 0x47,
-- 0x97, 0x41, 0xc2, 0x99, 0x84, 0x0c, 0x1a, 0xd1, 0x89, 0xb9, 0x98, 0x6d,
-- 0x2d, 0xeb, 0x7f, 0x5c, 0x1f, 0x54, 0xf7, 0xb3, 0x51, 0x31, 0xb5, 0x1c,
-- 0x0c, 0x87, 0xef, 0x60, 0x0f, 0x85, 0x55, 0xa8, 0x12, 0x71, 0xda, 0xd6,
-- 0x81, 0x85, 0xd2, 0x87, 0x4d, 0xf9, 0xf1, 0x4b, 0x25, 0x17, 0x78, 0x8a,
-- 0x6c, 0x16, 0x0e, 0x6c, 0x24, 0x9b, 0x8f, 0xa7, 0x85, 0x52, 0x35, 0xe7,
-- 0x7f, 0x63, 0xa5, 0x9a, 0x53, 0x67, 0xe7, 0x5f, 0xb1, 0x64, 0x63, 0x07,
-- 0xaa, 0x34, 0x90, 0xb8, 0xc3, 0xc6, 0xe1, 0xef, 0x6d, 0x82, 0xfc, 0xb6,
-- 0x7c, 0xa1, 0x01, 0xfa, 0x86, 0xd2, 0x42, 0x0d, 0x49, 0x59, 0x07, 0x1a,
-- 0xea, 0xcf, 0x62, 0x5b, 0x14, 0x17, 0xe0, 0x8f, 0xd6, 0xb9, 0x3d, 0xda,
-- 0x5a, 0x7a, 0xa2, 0xa7, 0xb4, 0xbc, 0x52, 0x4c, 0x34, 0x75, 0xaa, 0x41,
-- 0x49, 0x74, 0xc5, 0x36, 0x9c, 0x8d, 0x92, 0x85, 0x12, 0x17, 0x40, 0x03,
-- 0xf1, 0x69, 0x29, 0x29, 0x7f, 0x9a, 0x10, 0x25, 0xd6, 0x49, 0x47, 0x88,
-- 0x01, 0xc7, 0xf9, 0xa3, 0x0b, 0x4b, 0x49, 0xfd, 0x5d, 0x66, 0x35, 0x00,
-- 0xbc, 0xa9, 0x56, 0x2f, 0xb3, 0xe0, 0x35, 0xb6, 0xe7, 0x41, 0x13, 0xce,
-- 0xd4, 0x86, 0x22, 0x5d, 0x41, 0x96, 0x60, 0x38, 0x40, 0xe4, 0x01, 0x65,
-- 0x95, 0x6f, 0x42, 0xbe, 0x7f, 0xa5, 0xc5, 0x7f, 0xe8, 0x3c, 0x2b, 0x7e,
-- 0x89, 0x82, 0xb5, 0x7d, 0xbe, 0xad, 0x96, 0xb8, 0x5a, 0x23, 0x57, 0xab,
-- 0x64, 0xff, 0xec, 0x90, 0x24, 0xdb, 0xab, 0x39, 0x20, 0x24, 0xe6, 0xb5,
-- 0xe5, 0xbc, 0x65, 0x73, 0xad, 0x36, 0x34, 0xb7, 0xf3, 0xc1, 0x1d, 0xde,
-- 0x05, 0x6f, 0x32, 0x31, 0x69, 0x8c, 0x80, 0xa4, 0x57, 0x7b, 0x92, 0x1b,
-- 0x1b, 0xf2, 0x2a, 0xb8, 0x0e, 0xa3, 0x18, 0x08, 0x49, 0xb1, 0xb7, 0x84,
-- 0xba, 0x2a, 0x0c, 0x75, 0xf5, 0x34, 0x62, 0xeb, 0x21, 0xdc, 0xaa, 0xad,
-- 0x35, 0x4e, 0xb5, 0xcf, 0x4a, 0xf8, 0x9b, 0xa1, 0x20, 0x6a, 0x5f, 0x0d,
-- 0x0f, 0xa8, 0x27, 0xa7, 0x7e, 0xb7, 0xf5, 0xe8, 0x6f, 0xb8, 0x67, 0x58,
-- 0x16, 0x69, 0xcb, 0x05, 0x99, 0x0b, 0xb6, 0x17, 0x43, 0xf6, 0x24, 0x10,
-- 0x7e, 0x25, 0x43, 0x0f, 0xc5, 0xbf, 0x61, 0xa3, 0x66, 0xe1, 0x27, 0xad,
-- 0x34, 0x1b, 0x4a, 0xd5, 0x81, 0x89, 0x9e, 0x55, 0xa6, 0x0a, 0x8e, 0x1c,
-- 0x1e, 0x31, 0xe6, 0x8f, 0x14, 0xff, 0x6d, 0xf0, 0xa7, 0x4e, 0x33, 0xef,
-- 0x1f, 0xdd, 0x6c, 0xfd, 0x18, 0xdc, 0x97, 0xfc, 0xd1, 0x2b, 0x87, 0x8b,
-- 0x86, 0x22, 0xe6, 0xdc, 0x11, 0x58, 0x2a, 0xdc, 0xa7, 0xfc, 0x0b, 0x3e,
-- 0x46, 0x00, 0x9c, 0x61, 0x4b, 0x36, 0x60, 0x8c, 0xb4, 0xbe, 0x48, 0x38,
-- 0x10, 0xf1, 0xf1, 0x81, 0x43, 0x8f, 0x42, 0xd1, 0x78, 0xf0, 0xed, 0x96,
-- 0x15, 0x0c, 0x65, 0x53, 0x0e, 0xe7, 0xf7, 0xda, 0x81, 0xaf, 0xb2, 0x46,
-- 0x85, 0x51, 0x97, 0x34, 0xd4, 0x1b, 0xf4, 0x68, 0x2d, 0xd6, 0xa7, 0x53,
-- 0xcf, 0xf0, 0xed, 0x31, 0xde, 0x55, 0xe4, 0xd7, 0x79, 0x81, 0x49, 0x79,
-- 0x17, 0x97, 0x2e, 0xb8, 0x6f, 0x64, 0x3b, 0x70, 0xed, 0x27, 0x4e, 0x06,
-- 0x72, 0x30, 0x54, 0xc8, 0x18, 0x41, 0xbc, 0xc0, 0x6d, 0x5e, 0x99, 0x1f,
-- 0x92, 0x68, 0x7b, 0x2c, 0xe1, 0x11, 0xb5, 0xe0, 0x05, 0x64, 0xf5, 0x38,
-- 0x58, 0xca, 0x6c, 0x7c, 0x5d, 0x48, 0x78, 0x2d, 0x2d, 0x5a, 0x90, 0x88,
-- 0xd9, 0x4b, 0xfe, 0x43, 0x69, 0xe0, 0x5b, 0x9f, 0xbf, 0xc7, 0x84, 0x30,
-- 0x14, 0xd4, 0xbf, 0xa1, 0x27, 0x88, 0xc3, 0x1f, 0x2e, 0xce, 0xf6, 0x93,
-- 0x6f, 0x0e, 0xf7, 0x5f, 0x1f, 0x9e, 0x9d, 0xb7, 0x2e, 0x7d, 0x8d, 0x04,
-- 0x11, 0x09, 0x8d, 0xed, 0xc1, 0x10, 0x8d, 0x0d, 0x17, 0x40, 0x43, 0xf8,
-- 0x8d, 0xeb, 0x11, 0xf1, 0xf0, 0x41, 0xa2, 0xf3, 0xc1, 0x0a, 0x91, 0x38,
-- 0x0e, 0x00, 0x11, 0x5b, 0x81, 0xd9, 0xb8, 0x36, 0xc6, 0xc4, 0xa1, 0x38,
-- 0x9e, 0xc1, 0xac, 0xe7, 0x61, 0xf2, 0x8c, 0x47, 0x96, 0xf3, 0x97, 0xc9,
-- 0xa4, 0xb0, 0xbc, 0xc0, 0xe6, 0xce, 0x7d, 0xe3, 0xd3, 0xb1, 0x03, 0xb6,
-- 0xa5, 0x97, 0x8c, 0x1a, 0x10, 0x7b, 0x3f, 0x0c, 0xa8, 0xdf, 0x01, 0x2d,
-- 0xfe, 0x80, 0x11, 0x01, 0xef, 0xb3, 0xaa, 0xd7, 0xb2, 0x06, 0x36, 0xbb,
-- 0x5f, 0x93, 0x7a, 0x37, 0xd1, 0x49, 0xfa, 0xa6, 0xb3, 0x25, 0x3e, 0x5d,
-- 0x5c, 0x12, 0x37, 0xd2, 0x20, 0x70, 0xa9, 0x06, 0x42, 0xb2, 0x9e, 0xa0,
-- 0x28, 0xd3, 0x45, 0x63, 0x95, 0xbc, 0x9a, 0xa9, 0xa1, 0x61, 0x18, 0x88,
-- 0x4e, 0x01, 0xb2, 0x0e, 0x9d, 0x3d, 0xb9, 0xd4, 0x61, 0x17, 0x31, 0xb0,
-- 0x5a, 0x1a, 0x96, 0x3e, 0x14, 0xde, 0x0f, 0xf0, 0x85, 0x68, 0x38, 0x7e,
-- 0xd5, 0x70, 0x95, 0xaa, 0x5d, 0x54, 0x81, 0x8e, 0xb5, 0x39, 0x1e, 0x83,
-- 0xa3, 0x79, 0x8b, 0xe2, 0xe7, 0x2e, 0xad, 0x06, 0x83, 0xbe, 0x2b, 0x01,
-- 0x61, 0xac, 0xd4, 0xc3, 0xd4, 0x29, 0xc5, 0x1c, 0xa5, 0xa2, 0x9b, 0x30,
-- 0xb6, 0x20, 0x2d, 0x28, 0x24, 0x66, 0x14, 0x8c, 0x42, 0x20, 0xb9, 0x7b,
-- 0x2e, 0x4b, 0xbe, 0x29, 0x2a, 0xdc, 0x05, 0xf1, 0xe3, 0x7c, 0xc9, 0x77,
-- 0x2d, 0x3f, 0xde, 0x50, 0x57, 0x97, 0x83, 0xe4, 0x04, 0x82, 0x2d, 0xd8,
-- 0xd7, 0xe9, 0xfe, 0xc5, 0x37, 0x70, 0xb4, 0x82, 0x84, 0x5f, 0x03, 0xd0,
-- 0xc4, 0xdc, 0x6b, 0x71, 0x76, 0x96, 0x53, 0xe0, 0x44, 0xfe, 0x35, 0x18,
-- 0x41, 0x93, 0x27, 0xe1, 0xc8, 0xcb, 0x25, 0x26, 0x69, 0x2a, 0x05, 0x34,
-- 0xc1, 0xa3, 0x1b, 0x45, 0xcc, 0x10, 0x05, 0xef, 0x52, 0xef, 0x5c, 0xe8,
-- 0xe5, 0xba, 0xe4, 0xa9, 0xaf, 0xcb, 0x9c, 0x40, 0xf4, 0x2c, 0xcc, 0xb1,
-- 0xc6, 0x13, 0xe2, 0xbc, 0xe2, 0x0b, 0x4e, 0x44, 0x16, 0x5f, 0xd4, 0xa4,
-- 0xe8, 0x46, 0xe9, 0x0b, 0x8e, 0xf4, 0x97, 0xb3, 0xfb, 0x61, 0x8c, 0x8f,
-- 0x93, 0x7c, 0xb5, 0xac, 0x9b, 0x6c, 0xa5, 0x85, 0x36, 0xeb, 0x24, 0xcb,
-- 0xb2, 0x28, 0xea, 0x60, 0x0c, 0x90, 0x7e, 0xd2, 0x5a, 0x4f, 0xb4, 0xc0,
-- 0x31, 0xca, 0x58, 0xb8, 0xa9, 0xb9, 0xca, 0xdd, 0xa1, 0x60, 0x98, 0x8e,
-- 0xaa, 0x62, 0xba, 0xac, 0x83, 0x40, 0xec, 0x5f, 0x37, 0xe6, 0x60, 0xd0,
-- 0x1b, 0x47, 0x43, 0x83, 0xa6, 0xe4, 0xfa, 0xc7, 0x24, 0x84, 0x93, 0xa6,
-- 0x4f, 0xe2, 0x25, 0xfc, 0x8e, 0x65, 0x31, 0x6f, 0x56, 0xda, 0x42, 0xcc,
-- 0xf7, 0xe6, 0xda, 0xda, 0xb9, 0x6d, 0x36, 0x83, 0x83, 0xc6, 0x9b, 0xfe,
-- 0x3d, 0xa4, 0x49, 0x1e, 0x83, 0xf8, 0x0d, 0xc6, 0xf4, 0x8b, 0x41, 0xb3,
-- 0x65, 0xb2, 0xa7, 0x60, 0xe1, 0xb2, 0xc7, 0x79, 0xd5, 0x9c, 0x14, 0xbe,
-- 0x72, 0x9e, 0x0b, 0x4b, 0x35, 0xbb, 0x28, 0x0c, 0xf5, 0x5c, 0x3d, 0x77,
-- 0x9e, 0x20, 0x1a, 0xc9, 0xea, 0x9d, 0x78, 0xbe, 0x7c, 0x09, 0x58, 0x59,
-- 0x56, 0x17, 0x99, 0xcb, 0x83, 0xdc, 0xfa, 0xdf, 0x5b, 0x49, 0x3f, 0xd1,
-- 0x8a, 0xd9, 0x1d, 0x18, 0x44, 0xff, 0x17, 0x62, 0xb0, 0x14, 0x4c, 0x95,
-- 0xdb, 0x6c, 0x21, 0x90, 0x0e, 0x49, 0x85, 0xba, 0x2e, 0xc7, 0x9e, 0xfa,
-- 0x49, 0x3a, 0xc8, 0xee, 0x58, 0x7f, 0x31, 0x1d, 0x41, 0xd1, 0x3c, 0xa4,
-- 0x32, 0xaa, 0xc3, 0x47, 0x02, 0x1a, 0xc6, 0xa5, 0xb3, 0xea, 0x71, 0x91,
-- 0x42, 0xa9, 0xd8, 0x27, 0x62, 0x3d, 0x0a, 0xd6, 0x98, 0x07, 0x55, 0x12,
-- 0xde, 0x9d, 0xde, 0x5e, 0x25, 0x55, 0x21, 0xff, 0x5a, 0xfe, 0x91, 0xc6,
-- 0x78, 0x29, 0xf9, 0x07, 0x85, 0xd0, 0x82, 0x0a, 0xa2, 0x16, 0x7c, 0x2a,
-- 0x81, 0x75, 0xe6, 0x99, 0xb4, 0x41, 0x9a, 0x14, 0xc0, 0x8e, 0x4b, 0x80,
-- 0x30, 0x2a, 0x30, 0x08, 0x07, 0x95, 0x31, 0x56, 0xac, 0xe4, 0x6f, 0x73,
-- 0x89, 0x3b, 0xd3, 0x64, 0xec, 0x4a, 0xb5, 0x8c, 0x8e, 0xb5, 0xb0, 0xe0,
-- 0xb0, 0x0c, 0x5f, 0xef, 0x7e, 0xe4, 0xc8, 0xc3, 0x49, 0x77, 0x97, 0x32,
-- 0x8c, 0x99, 0x17, 0x09, 0x6c, 0x4a, 0x5a, 0x24, 0x53, 0xe2, 0x38, 0xc2,
-- 0xd8, 0x14, 0x1f, 0xbc, 0x79, 0xc5, 0x09, 0x1f, 0x6a, 0x92, 0x52, 0xa8,
-- 0x11, 0xd8, 0xbf, 0xae, 0x73, 0x0d, 0x31, 0x95, 0x55, 0x6f, 0x96, 0x20,
-- 0x84, 0x85, 0x8f, 0xa3, 0x0b, 0xbc, 0x83, 0xd5, 0xc5, 0x40, 0x0c, 0xe3,
-- 0x03, 0x33, 0x74, 0x18, 0xa0, 0x7a, 0x89, 0x1c, 0x85, 0xe9, 0xe5, 0x12,
-- 0x90, 0xe1, 0xc2, 0x9e, 0x3f, 0xb1, 0xf7, 0xb0, 0x4b, 0x8e, 0x67, 0x9d,
-- 0x27, 0x92, 0x4b, 0xa2, 0x48, 0x6e, 0x7c, 0xa1, 0xec, 0xee, 0x40, 0x31,
-- 0x95, 0xf0, 0x0d, 0xa0, 0x6a, 0x5a, 0x0b, 0x06, 0x67, 0xd6, 0x5e, 0xfc,
-- 0xcd, 0xbe, 0xae, 0x92, 0x4b, 0xbe, 0x57, 0x6f, 0xb3, 0xc8, 0x85, 0x81,
-- 0xdf, 0xa9, 0x51, 0x6a, 0x4b, 0x12, 0xba, 0xab, 0xba, 0x5c, 0x8e, 0x1b,
-- 0x08, 0x7a, 0xa0, 0x88, 0x86, 0x97, 0xde, 0xad, 0x71, 0x11, 0xea, 0xf6,
-- 0x47, 0xa7, 0xaa, 0xde, 0x8b, 0xf6, 0xc1, 0x23, 0xdb, 0x48, 0x1b, 0xf9,
-- 0x2e, 0xae, 0x0a, 0x63, 0xd8, 0xef, 0xa6, 0xa3, 0xb2, 0xc1, 0xa9, 0x4b,
-- 0xae, 0x6f, 0xd5, 0xd2, 0xe6, 0x44, 0x85, 0xe0, 0xee, 0x55, 0x41, 0x0c,
-- 0x82, 0x47, 0x99, 0x28, 0x24, 0x22, 0xc4, 0x1a, 0x36, 0x59, 0xae, 0x39,
-- 0xd8, 0x42, 0x1a, 0xd2, 0x40, 0xa3, 0x56, 0xc5, 0x11, 0xbc, 0x45, 0x0b,
-- 0x69, 0xb5, 0x54, 0x5c, 0x11, 0xa1, 0xca, 0x43, 0x1f, 0xb6, 0x42, 0x56,
-- 0x81, 0xa0, 0xe4, 0xe4, 0x43, 0xc5, 0x72, 0xd3, 0xf5, 0x1b, 0xba, 0xda,
-- 0xf6, 0xda, 0x43, 0x5b, 0x9c, 0x88, 0xef, 0xc6, 0x53, 0x41, 0x2a, 0x89,
-- 0xe8, 0xe8, 0xb5, 0xd9, 0x54, 0xc1, 0x72, 0xb0, 0x36, 0xac, 0xd9, 0xd8,
-- 0x26, 0xd1, 0xba, 0x5a, 0x17, 0x34, 0x04, 0x9e, 0xf1, 0xfa, 0x34, 0xdb,
-- 0x5e, 0x0f, 0xaa, 0x20, 0x6d, 0x48, 0xfc, 0x7f, 0x01, 0xed, 0xc7, 0x61,
-- 0x09, 0x8a, 0xf5, 0x82, 0xe3, 0xdc, 0x36, 0x3b, 0x86, 0x42, 0x4d, 0xfc,
-- 0xda, 0xc1, 0xec, 0xbc, 0xd8, 0x1d, 0xee, 0x3c, 0xff, 0x7c, 0xb8, 0x3d,
-- 0xdc, 0xd9, 0x66, 0xfe, 0xc2, 0x43, 0x09, 0x06, 0x27, 0xeb, 0xd2, 0xd1,
-- 0x55, 0xe3, 0xbd, 0xb8, 0xcf, 0x77, 0x87, 0x17, 0xdf, 0x9f, 0x9c, 0x7d,
-- 0x9b, 0x1c, 0xbd, 0xbb, 0x38, 0x3c, 0x7b, 0xb3, 0x7f, 0xf0, 0xa9, 0xf0,
-- 0xe8, 0xa1, 0xd9, 0x3a, 0x28, 0x04, 0x9c, 0xf9, 0x85, 0x89, 0x6d, 0x83,
-- 0x7e, 0xcd, 0xb2, 0xfa, 0x7a, 0x7b, 0x6f, 0xe7, 0x41, 0x00, 0xe5, 0x0e,
-- 0xf3, 0xa0, 0x7f, 0xdf, 0x26, 0xb5, 0xc3, 0x93, 0x5a, 0xdd, 0x8a, 0x43,
-- 0x4e, 0x3c, 0x97, 0x30, 0x2b, 0x17, 0xa2, 0x0b, 0x36, 0x8f, 0x3a, 0x33,
-- 0xf9, 0xa8, 0x4c, 0xcd, 0x30, 0x35, 0x12, 0x14, 0x57, 0xc9, 0xb4, 0x55,
-- 0x0c, 0x18, 0x0d, 0x47, 0x57, 0x9e, 0xbb, 0x26, 0x45, 0x77, 0x6b, 0x35,
-- 0xa7, 0x08, 0x28, 0xeb, 0x04, 0x22, 0x9e, 0x71, 0x65, 0x4d, 0x63, 0x63,
-- 0x6a, 0xd1, 0x3a, 0x90, 0x82, 0x07, 0x38, 0x71, 0x29, 0x23, 0x0e, 0x90,
-- 0x00, 0x51, 0x10, 0x26, 0xa7, 0x63, 0xac, 0xcd, 0xba, 0xc9, 0x61, 0x24,
-- 0x6d, 0x0b, 0x11, 0xb5, 0xb2, 0x10, 0x67, 0x4c, 0xac, 0x61, 0x1a, 0x3d,
-- 0xd0, 0x81, 0xe0, 0x34, 0x04, 0xa3, 0x91, 0xae, 0x20, 0x50, 0x19, 0x34,
-- 0x77, 0x13, 0xcf, 0x57, 0xee, 0x28, 0xa4, 0x51, 0x88, 0xfc, 0x67, 0x35,
-- 0x04, 0xb8, 0xf5, 0xaa, 0x81, 0x21, 0x98, 0x48, 0xed, 0x9f, 0xf0, 0x75,
-- 0x11, 0xb5, 0x11, 0xa8, 0x39, 0x29, 0xd3, 0x3b, 0x14, 0xb0, 0xc8, 0x3d,
-- 0x22, 0xe8, 0x5a, 0xd2, 0x28, 0x60, 0xc4, 0x82, 0x93, 0x5f, 0xf3, 0xe4,
-- 0xf4, 0xf0, 0xed, 0xc0, 0xca, 0xae, 0xd2, 0xef, 0x62, 0x8c, 0x32, 0xf8,
-- 0x47, 0x49, 0xf3, 0x59, 0x64, 0x73, 0x0b, 0xab, 0x01, 0x4f, 0xd4, 0x38,
-- 0xa0, 0x70, 0x02, 0x7c, 0x68, 0x1c, 0x40, 0xa4, 0x46, 0x8f, 0x5a, 0xf8,
-- 0xa5, 0x43, 0x30, 0x6d, 0xa0, 0x66, 0xf2, 0x7e, 0x6a, 0xec, 0x72, 0xb2,
-- 0xe1, 0xe2, 0x75, 0xb9, 0x3f, 0x04, 0xa5, 0x22, 0x66, 0xc0, 0x85, 0x09,
-- 0x14, 0x96, 0x84, 0x7d, 0xfa, 0xed, 0xc1, 0xf9, 0x1f, 0x77, 0x76, 0x75,
-- 0x38, 0x9b, 0x43, 0x8f, 0xaf, 0x1b, 0xe5, 0xe7, 0x83, 0x5d, 0x87, 0x63,
-- 0xb4, 0x6c, 0x6b, 0x1c, 0x70, 0x6c, 0xc6, 0x86, 0xcb, 0x11, 0xda, 0x6c,
-- 0x24, 0x09, 0xad, 0x49, 0xf5, 0x6f, 0x13, 0x31, 0x5d, 0x69, 0x54, 0x76,
-- 0x89, 0xa0, 0x80, 0x8e, 0x96, 0xb0, 0xa9, 0x5d, 0xd4, 0x5f, 0x3a, 0xb7,
-- 0x8f, 0xa4, 0x65, 0x6d, 0x0d, 0xe9, 0xe4, 0x3e, 0xb2, 0xa5, 0xbd, 0xe7,
-- 0xbc, 0xde, 0xfe, 0x5b, 0x86, 0x71, 0xd5, 0x9b, 0xdd, 0xf0, 0x7a, 0x7c,
-- 0x37, 0x38, 0x00, 0x1a, 0xc8, 0x3e, 0xb1, 0x22, 0x59, 0x73, 0x5f, 0x74,
-- 0x82, 0x9f, 0x3e, 0xa1, 0x8d, 0xa2, 0x93, 0x25, 0x10, 0x0e, 0xcc, 0x14,
-- 0x8a, 0x29, 0xab, 0x2e, 0xee, 0x91, 0xd7, 0x25, 0x57, 0xf7, 0x58, 0x48,
-- 0x48, 0xe9, 0xbb, 0x61, 0xf2, 0x4d, 0x36, 0xe7, 0x1c, 0x7a, 0x0e, 0xbe,
-- 0xb3, 0x34, 0x2c, 0x84, 0x08, 0x72, 0x95, 0x3e, 0x54, 0x2d, 0x3b, 0xce,
-- 0x52, 0x85, 0xcc, 0x24, 0x5e, 0x57, 0x89, 0x86, 0x6b, 0x15, 0x7b, 0x52,
-- 0x0e, 0xd4, 0x53, 0x7c, 0x4f, 0x87, 0x7b, 0xc1, 0x0f, 0x48, 0x03, 0x1b,
-- 0x4d, 0xdc, 0x4b, 0x00, 0xe8, 0xa3, 0x39, 0x3d, 0xe6, 0xf0, 0x35, 0xa9,
-- 0x55, 0xf9, 0x1a, 0xe0, 0xcf, 0x6c, 0x2d, 0x14, 0x8d, 0xcb, 0x33, 0x95,
-- 0x49, 0x79, 0xcd, 0xa6, 0x8f, 0x8a, 0xae, 0x9b, 0x74, 0x3e, 0xbe, 0x1f,
-- 0x4e, 0x48, 0x96, 0x65, 0xe3, 0xd9, 0x70, 0x79, 0xb3, 0x15, 0x1c, 0x53,
-- 0x66, 0xf9, 0xd7, 0x02, 0x17, 0xd0, 0x34, 0x7c, 0x5b, 0x39, 0xd8, 0x18,
-- 0xd9, 0x2b, 0x6d, 0x9c, 0x09, 0x26, 0x09, 0x4b, 0xfc, 0x97, 0xe3, 0xb9,
-- 0x12, 0x03, 0xeb, 0x30, 0x71, 0xb8, 0xc3, 0xdc, 0xc2, 0x70, 0x91, 0xcd,
-- 0xf6, 0x5c, 0x62, 0xb2, 0xf1, 0x07, 0xad, 0x61, 0xe0, 0x14, 0x8b, 0xc0,
-- 0x48, 0x3b, 0xcf, 0xae, 0xa6, 0x2a, 0x50, 0x84, 0xaa, 0x8b, 0xc7, 0x91,
-- 0x8e, 0xb3, 0x41, 0x44, 0xe1, 0xd1, 0x7a, 0x32, 0x90, 0xd8, 0x89, 0x0e,
-- 0x6b, 0x8d, 0xae, 0x95, 0x87, 0x51, 0x92, 0xdd, 0x37, 0xa2, 0x20, 0x22,
-- 0x80, 0x40, 0x46, 0xe9, 0x6d, 0x31, 0xf1, 0x58, 0x50, 0x92, 0xba, 0x9f,
-- 0x18, 0xa7, 0x15, 0x14, 0x02, 0xd0, 0x71, 0x0d, 0x90, 0x86, 0xf3, 0xd3,
-- 0xaa, 0xae, 0xca, 0x59, 0xa1, 0xaf, 0x6f, 0x9f, 0xb0, 0xc5, 0xfb, 0xe2,
-- 0xf8, 0xdc, 0xbc, 0x22, 0xf3, 0xec, 0x2e, 0x20, 0x2d, 0x01, 0xca, 0x57,
-- 0xfa, 0x63, 0x03, 0x90, 0x20, 0x1e, 0x03, 0xf8, 0x00, 0x23, 0x11, 0xae,
-- 0xe0, 0xdd, 0x64, 0x3e, 0x0f, 0xc2, 0x16, 0x41, 0x23, 0x8a, 0x79, 0x28,
-- 0x56, 0x1c, 0x4a, 0x84, 0x21, 0x07, 0xfa, 0xc2, 0xd0, 0x7a, 0x24, 0x2c,
-- 0x3d, 0xe9, 0x27, 0x83, 0x5d, 0x40, 0xe9, 0xec, 0x34, 0x17, 0x31, 0xad,
-- 0x05, 0xc5, 0x8f, 0xdb, 0xa0, 0x96, 0xac, 0x15, 0x65, 0x07, 0x1b, 0x4a,
-- 0xd2, 0xb7, 0xf4, 0x3e, 0xff, 0xb3, 0xab, 0x13, 0xba, 0xdd, 0x41, 0xf0,
-- 0xb6, 0xc0, 0x4a, 0x4e, 0xef, 0x63, 0x91, 0x61, 0xf7, 0xc1, 0x5d, 0x45,
-- 0x9a, 0xc4, 0x5d, 0xee, 0xf0, 0x9d, 0x05, 0xe2, 0x1f, 0xa6, 0x50, 0x45,
-- 0xec, 0xb4, 0x01, 0xd0, 0x12, 0xaa, 0x91, 0x7b, 0x9e, 0xdc, 0xee, 0x9a,
-- 0xaf, 0x99, 0xbf, 0xb1, 0x75, 0x13, 0x63, 0xbd, 0x67, 0x22, 0x51, 0x06,
-- 0x23, 0x07, 0xbc, 0x05, 0x54, 0xcb, 0x09, 0x50, 0x44, 0xb3, 0xc4, 0x45,
-- 0x1a, 0x5c, 0xa6, 0x98, 0xab, 0x59, 0x41, 0xb2, 0xdf, 0xd3, 0xb9, 0x6c,
-- 0x06, 0xc9, 0xc1, 0x3e, 0xcc, 0x09, 0x41, 0xe0, 0x41, 0x70, 0xe4, 0xd1,
-- 0xdc, 0xe5, 0x4c, 0xa8, 0x29, 0x1f, 0x08, 0x7a, 0xd8, 0xfe, 0xeb, 0x5c,
-- 0x0c, 0x13, 0x08, 0x3b, 0xc5, 0x75, 0x4e, 0x27, 0x7f, 0x3d, 0xa1, 0xc3,
-- 0xb4, 0x64, 0x8e, 0x5f, 0xbb, 0x4a, 0x55, 0xe7, 0x82, 0xbc, 0xb9, 0x1e,
-- 0xb2, 0xb9, 0xc1, 0x17, 0x3c, 0x95, 0x6a, 0xdd, 0xcf, 0x5d, 0x81, 0xc7,
-- 0x9b, 0x13, 0x51, 0x3f, 0x87, 0xd5, 0x66, 0x3a, 0x2d, 0xad, 0x04, 0xf5,
-- 0xfa, 0xe1, 0x47, 0x96, 0x71, 0xd6, 0xb5, 0x27, 0xf9, 0x5a, 0xd2, 0xfb,
-- 0xb1, 0x46, 0xa7, 0x47, 0xef, 0xa4, 0xa8, 0xb2, 0x3b, 0x0b, 0x19, 0x23,
-- 0x23, 0xae, 0x49, 0x3d, 0x70, 0x8c, 0x27, 0x55, 0x08, 0x89, 0x44, 0x0c,
-- 0x47, 0x4c, 0x33, 0x4c, 0xe3, 0xb9, 0xf6, 0x75, 0xb6, 0x94, 0xde, 0xd7,
-- 0xf9, 0x9e, 0xab, 0xaa, 0xe9, 0x7a, 0xab, 0x50, 0xa8, 0xdb, 0x93, 0xd6,
-- 0x85, 0xe2, 0x2c, 0x52, 0xe3, 0x49, 0x58, 0x66, 0x5d, 0x5b, 0x69, 0xf0,
-- 0xb9, 0x7e, 0x2b, 0xe9, 0x31, 0x34, 0x85, 0xff, 0x31, 0x19, 0x6e, 0x51,
-- 0x87, 0xd5, 0x96, 0xbd, 0xb8, 0xb8, 0x19, 0x57, 0x74, 0xc3, 0x71, 0x86,
-- 0xef, 0x4f, 0x0e, 0x1d, 0x9e, 0x47, 0x3c, 0xf9, 0x25, 0x19, 0x8c, 0xa7,
-- 0x98, 0x5f, 0x82, 0x92, 0xc4, 0x3f, 0xd1, 0xce, 0xf3, 0x13, 0xbf, 0xb8,
-- 0x3d, 0x7c, 0x93, 0xf3, 0x79, 0xfb, 0xd8, 0xb7, 0xa9, 0x9f, 0x88, 0xc2,
-- 0x20, 0xf0, 0xb3, 0xc9, 0xfe, 0xe4, 0x96, 0xf3, 0xef, 0x26, 0xfa, 0x27,
-- 0xcf, 0xe7, 0x70, 0x8e, 0x62, 0x8e, 0x98, 0x69, 0x3a, 0x92, 0xfa, 0xcd,
-- 0xdf, 0xe5, 0xa4, 0x74, 0x1c, 0xb4, 0xe4, 0x0b, 0x4e, 0x05, 0xe4, 0x01,
-- 0xe2, 0xad, 0xe0, 0x4b, 0xcb, 0xeb, 0xe8, 0x6b, 0xfa, 0x82, 0x8f, 0xfc,
-- 0x63, 0xee, 0xcc, 0x5b, 0x37, 0x4c, 0xbe, 0x62, 0x1f, 0x67, 0x99, 0x05,
-- 0xe0, 0xac, 0x7a, 0xf1, 0x49, 0xd1, 0x33, 0xde, 0x8c, 0x54, 0xa0, 0x28,
-- 0x86, 0x6e, 0x26, 0x51, 0x3a, 0x8c, 0x9b, 0x93, 0xfb, 0xa6, 0x39, 0x39,
-- 0x8c, 0xcb, 0xb2, 0xdb, 0x69, 0x2a, 0x96, 0x3a, 0x91, 0x44, 0x53, 0x09,
-- 0x60, 0x23, 0x65, 0x84, 0x72, 0x61, 0x4e, 0x32, 0xcb, 0xf1, 0x2f, 0x42,
-- 0x60, 0x15, 0xb3, 0x1c, 0xa3, 0x29, 0x93, 0x08, 0x1c, 0x49, 0xe0, 0x0e,
-- 0xf7, 0xa3, 0x3e, 0xb8, 0x26, 0xd6, 0x9c, 0xb9, 0xa1, 0x9e, 0x8b, 0x49,
-- 0xcf, 0x86, 0x78, 0xce, 0x77, 0x94, 0x6d, 0x82, 0xfb, 0xd2, 0x12, 0x25,
-- 0x21, 0x85, 0x6e, 0x09, 0xef, 0x72, 0xb4, 0x2b, 0xab, 0xdb, 0x9c, 0x02,
-- 0xe7, 0x37, 0x9e, 0xbf, 0x7f, 0xcb, 0x85, 0x38, 0x50, 0xe3, 0xf7, 0xe2,
-- 0x6c, 0xff, 0xdd, 0xf9, 0x1b, 0x31, 0x8d, 0x5f, 0x14, 0x41, 0xe9, 0x60,
-- 0xf5, 0x2b, 0x98, 0xff, 0xd8, 0x21, 0xc6, 0xdd, 0x49, 0x75, 0x08, 0x0b,
-- 0xad, 0xd7, 0xba, 0xc2, 0xfd, 0x36, 0x0a, 0xbe, 0x14, 0x25, 0xe6, 0xd5,
-- 0xe0, 0xa1, 0x6d, 0x9c, 0x6f, 0x3a, 0x41, 0xa8, 0x0a, 0x2b, 0x60, 0xf9,
-- 0xda, 0xde, 0x06, 0xdc, 0xac, 0x0f, 0xf1, 0xb2, 0x1c, 0xd8, 0x60, 0xec,
-- 0x53, 0xb9, 0x7b, 0x57, 0x62, 0x85, 0x1e, 0x90, 0xaa, 0x38, 0xd0, 0xba,
-- 0x2a, 0x41, 0xbd, 0x2f, 0x67, 0x4e, 0x95, 0xbb, 0x57, 0x51, 0xfd, 0x5c,
-- 0xe3, 0x61, 0x0a, 0xa8, 0x35, 0xbd, 0xf1, 0xaf, 0x3b, 0x9b, 0xdd, 0xcd,
-- 0x5f, 0xfc, 0xda, 0xe6, 0xbb, 0xc7, 0x6e, 0xba, 0x99, 0xcf, 0x2e, 0xda,
-- 0xf8, 0xd7, 0xdd, 0xcd, 0x07, 0x67, 0x14, 0x26, 0x48, 0xfa, 0x3e, 0xe9,
-- 0x0d, 0x1e, 0x6c, 0xf2, 0xca, 0x2a, 0xc5, 0xab, 0xcc, 0xe4, 0x22, 0x74,
-- 0x02, 0x38, 0xe0, 0x06, 0x76, 0x07, 0x47, 0x70, 0x3b, 0x49, 0xdd, 0x3b,
-- 0xde, 0x34, 0xd1, 0xe4, 0xe8, 0x7f, 0x1d, 0x86, 0x28, 0x8f, 0xf3, 0xf5,
-- 0x3a, 0xbc, 0xa2, 0x18, 0x28, 0xa0, 0x2a, 0x86, 0xe8, 0x7b, 0xf7, 0x81,
-- 0xbe, 0xfd, 0xec, 0x02, 0xb3, 0x04, 0x7b, 0xb1, 0x39, 0x0c, 0xce, 0xc0,
-- 0xaa, 0xb5, 0x9f, 0x35, 0x5f, 0x93, 0x7a, 0x75, 0x7f, 0x17, 0x47, 0x6f,
-- 0x0f, 0x19, 0xd4, 0xfa, 0xf5, 0x11, 0xe3, 0xd0, 0x9d, 0x2b, 0x12, 0xa4,
-- 0x59, 0x20, 0x1c, 0x60, 0x6e, 0x58, 0x1d, 0x45, 0xdc, 0xbb, 0x2e, 0xda,
-- 0xcc, 0x71, 0x0e, 0xb7, 0x13, 0xdc, 0xb5, 0x86, 0x43, 0x57, 0x96, 0x74,
-- 0x79, 0x74, 0x39, 0x78, 0x5b, 0x4c, 0xa0, 0x25, 0x0f, 0xce, 0x11, 0x2a,
-- 0x48, 0x6f, 0xd1, 0x87, 0xef, 0xe7, 0xb3, 0xc6, 0xc7, 0xc3, 0x8e, 0xa4,
-- 0xdd, 0xb5, 0x55, 0x25, 0x64, 0xfe, 0xbe, 0x35, 0x18, 0xa0, 0x22, 0xbc,
-- 0x84, 0x75, 0xa9, 0x73, 0xa7, 0x01, 0xd5, 0x61, 0xac, 0x85, 0x16, 0x28,
-- 0x9f, 0xde, 0x4b, 0x20, 0x42, 0xea, 0xc3, 0xc7, 0x7c, 0x22, 0xe7, 0x15,
-- 0x27, 0x93, 0x79, 0x13, 0x9f, 0x18, 0xf1, 0xd6, 0x42, 0x6c, 0x51, 0x28,
-- 0x52, 0xd9, 0x9d, 0x8f, 0x7f, 0xd2, 0x02, 0xb7, 0xc5, 0xe2, 0x1e, 0xb3,
-- 0xbc, 0x6b, 0x84, 0x56, 0x74, 0xfa, 0x57, 0xff, 0x2e, 0xef, 0x34, 0x8a,
-- 0x26, 0x29, 0x04, 0x74, 0x40, 0x81, 0xfa, 0x89, 0xd6, 0x18, 0x3a, 0x29,
-- 0x83, 0xeb, 0x4a, 0x87, 0x6d, 0xb5, 0xc4, 0x02, 0xdc, 0xd1, 0x00, 0x26,
-- 0xb5, 0x39, 0xce, 0x10, 0xa3, 0xb5, 0xe0, 0x2c, 0xd8, 0xd7, 0x85, 0x73,
-- 0x8e, 0x11, 0xdb, 0x59, 0x34, 0x4b, 0xc8, 0x66, 0x89, 0xe5, 0x7b, 0x4b,
-- 0x3a, 0xff, 0xfa, 0x60, 0x1d, 0x65, 0x13, 0xf2, 0x79, 0xc7, 0x64, 0x06,
-- 0xbf, 0x7e, 0x36, 0x91, 0xeb, 0x35, 0xe9, 0x5d, 0x32, 0x26, 0x06, 0xfb,
-- 0xb1, 0x7a, 0x32, 0x00, 0x81, 0x8c, 0x11, 0xe2, 0xa2, 0x0b, 0x82, 0xf9,
-- 0x9a, 0x29, 0x92, 0xa2, 0x54, 0xbb, 0xc8, 0x58, 0x67, 0x24, 0x17, 0xab,
-- 0x24, 0x33, 0xd2, 0xe5, 0x62, 0x82, 0xa0, 0x0c, 0x09, 0x47, 0xfd, 0x1f,
-- 0x8c, 0x59, 0x5d, 0xde, 0x27, 0x3b, 0xbb, 0xfd, 0x64, 0x77, 0x7b, 0x67,
-- 0xb7, 0x63, 0x0e, 0xbd, 0xff, 0xc1, 0x41, 0x51, 0xbb, 0xf8, 0xba, 0xf7,
-- 0xa9, 0xb3, 0xf0, 0xa9, 0x0d, 0xb8, 0x49, 0x34, 0x09, 0x98, 0x98, 0x0f,
-- 0xfb, 0x67, 0x81, 0x93, 0x8c, 0xba, 0xb2, 0x40, 0xb6, 0xc3, 0xb5, 0x25,
-- 0x46, 0x42, 0x2b, 0x68, 0xe8, 0x0a, 0x5d, 0xf1, 0x13, 0x6b, 0x5a, 0xda,
-- 0x13, 0x91, 0x2f, 0xce, 0x52, 0x9a, 0x96, 0xa8, 0xd6, 0xd8, 0xdc, 0xa3,
-- 0xbc, 0xb6, 0x6d, 0xe1, 0xd0, 0x1a, 0xde, 0x1b, 0xa2, 0xf7, 0xd7, 0x47,
-- 0x07, 0x17, 0x06, 0x7d, 0x78, 0xc9, 0xc2, 0x53, 0x79, 0xff, 0x69, 0xa5,
-- 0xef, 0x1e, 0x7c, 0x66, 0xb2, 0x77, 0x9d, 0x91, 0x18, 0x3d, 0x1f, 0x2d,
-- 0xaf, 0xf6, 0xfe, 0x9a, 0x96, 0x57, 0xc5, 0xfc, 0xb1, 0xe7, 0x27, 0xc8,
-- 0x2d, 0xdb, 0x23, 0x0e, 0xb5, 0xf3, 0x62, 0xe7, 0x89, 0x24, 0x2e, 0xe4,
-- 0x5c, 0x27, 0x13, 0x0c, 0x62, 0x7d, 0xb6, 0x2e, 0x58, 0x1b, 0xc8, 0x98,
-- 0x70, 0x00, 0x1b, 0xf3, 0xc9, 0xba, 0x5c, 0xf7, 0x69, 0xf8, 0xec, 0x44,
-- 0x9f, 0x95, 0x2c, 0xf4, 0xf5, 0x35, 0x29, 0x5d, 0xb2, 0xce, 0x19, 0x9b,
-- 0xcb, 0xc5, 0x7a, 0x13, 0xc1, 0xfd, 0x91, 0xb9, 0x72, 0x17, 0xae, 0xd2,
-- 0xdf, 0x81, 0xc3, 0xa5, 0x47, 0x32, 0x51, 0x99, 0xa5, 0x37, 0xbe, 0xd0,
-- 0xac, 0x07, 0xe2, 0x30, 0x97, 0xc7, 0xd9, 0x9b, 0x03, 0x01, 0x33, 0xb5,
-- 0xd4, 0x29, 0x2c, 0x75, 0xe2, 0x4c, 0x53, 0x9b, 0x3c, 0xca, 0x47, 0xfa,
-- 0xe7, 0xdc, 0x86, 0xbd, 0xc9, 0xe8, 0x13, 0x1e, 0xa2, 0x73, 0x27, 0xb8,
-- 0x71, 0xfb, 0xcd, 0x82, 0x38, 0xac, 0xa8, 0xa1, 0xbc, 0x87, 0x55, 0x95,
-- 0xdd, 0x90, 0xb2, 0x9f, 0xe2, 0x71, 0xe0, 0xa1, 0x59, 0xad, 0x5e, 0xb3,
-- 0xee, 0xd0, 0xb8, 0xb9, 0xa4, 0xe6, 0xeb, 0xfd, 0xd3, 0x40, 0xd1, 0x85,
-- 0x22, 0xe9, 0x8d, 0x7a, 0xfc, 0x1c, 0x2b, 0x3a, 0x28, 0x5a, 0x2d, 0xb6,
-- 0xbf, 0xfb, 0xbe, 0x57, 0x51, 0x6a, 0xf0, 0x49, 0x96, 0x8d, 0x10, 0x20,
-- 0x5f, 0xe8, 0x7d, 0x02, 0xfb, 0x13, 0x8a, 0x0d, 0x4c, 0x27, 0x29, 0x1c,
-- 0xa1, 0x7a, 0x0b, 0x41, 0xe6, 0x42, 0x5b, 0xb9, 0x46, 0x43, 0xd1, 0xde,
-- 0x7c, 0x4c, 0x34, 0x89, 0x43, 0xb3, 0x55, 0xb4, 0x1c, 0x08, 0x1e, 0xe3,
-- 0x04, 0xe5, 0x7b, 0x9b, 0x80, 0xf0, 0x67, 0x1a, 0x7c, 0x5a, 0xdd, 0x10,
-- 0x2b, 0x15, 0x07, 0x3e, 0xf5, 0x9e, 0xab, 0x0b, 0x9c, 0x8d, 0x3e, 0xb9,
-- 0x04, 0xd2, 0xb0, 0xf9, 0x09, 0x90, 0x48, 0x8d, 0x0d, 0x93, 0x2b, 0x88,
-- 0x35, 0xce, 0x69, 0x95, 0x09, 0x80, 0x61, 0x72, 0x71, 0x57, 0x88, 0x8a,
-- 0x51, 0x59, 0x78, 0xad, 0x84, 0xa2, 0x56, 0xcb, 0x5c, 0xa4, 0x48, 0xda,
-- 0x3c, 0xf0, 0x83, 0xa0, 0x66, 0x67, 0xcf, 0x59, 0xbe, 0x5e, 0x3b, 0xbf,
-- 0xe7, 0xf9, 0xeb, 0x6f, 0x13, 0x4e, 0xad, 0xe7, 0x3e, 0x0e, 0x18, 0x6e,
-- 0x9f, 0x43, 0x18, 0x66, 0xd0, 0xfe, 0xbe, 0x5e, 0xf2, 0x79, 0x3f, 0xb8,
-- 0x4e, 0x17, 0xac, 0x00, 0xed, 0x6c, 0xb3, 0xb9, 0xe4, 0x7b, 0x4b, 0xd2,
-- 0xe3, 0x83, 0x6a, 0x25, 0xc1, 0xab, 0x5e, 0x60, 0x49, 0x99, 0x70, 0x45,
-- 0x6f, 0xd6, 0x80, 0x9a, 0x46, 0x5a, 0xba, 0x3e, 0xab, 0x2d, 0x01, 0xd9,
-- 0xaf, 0x88, 0x34, 0xca, 0x6a, 0x72, 0xb3, 0x35, 0xa6, 0x1f, 0x4f, 0xb6,
-- 0xb7, 0x80, 0xa9, 0x59, 0xc3, 0xa6, 0xc9, 0x34, 0xb9, 0xbb, 0xfb, 0xec,
-- 0x59, 0x3f, 0xe9, 0xb1, 0x95, 0xd1, 0x3a, 0xe0, 0x23, 0x41, 0x27, 0xab,
-- 0xd7, 0x55, 0xbc, 0x74, 0xab, 0xbc, 0x1c, 0xf3, 0xff, 0xf8, 0x35, 0x2b,
-- 0x41, 0x78, 0xa1, 0x59, 0x37, 0x58, 0x87, 0x79, 0x08, 0x93, 0x23, 0x64,
-- 0xc5, 0xdf, 0x1d, 0x39, 0x3b, 0x12, 0x3b, 0x8d, 0x16, 0x59, 0xb1, 0x30,
-- 0xef, 0xf0, 0x4c, 0xcb, 0x77, 0xa0, 0xfb, 0xc0, 0xa5, 0x06, 0x7f, 0xbe,
-- 0x84, 0xc3, 0x29, 0x1e, 0x42, 0xb5, 0x1c, 0x0d, 0x34, 0x31, 0x58, 0xb4,
-- 0xca, 0x9c, 0x4e, 0x2e, 0xfd, 0x39, 0x35, 0x73, 0x7d, 0xc4, 0x91, 0xbf,
-- 0x4a, 0x7a, 0x4a, 0x5b, 0xfc, 0xcf, 0x10, 0xce, 0xdd, 0x6c, 0xcc, 0xd3,
-- 0x28, 0x5e, 0xe9, 0x1f, 0xff, 0xf6, 0x6f, 0xd4, 0xec, 0xbf, 0x71, 0x2b,
-- 0xaf, 0xfe, 0xb5, 0xaa, 0xaf, 0x83, 0x67, 0x7a, 0x4a, 0xf0, 0x47, 0xde,
-- 0xb5, 0x8d, 0x70, 0x35, 0x20, 0xce, 0x22, 0x7f, 0xed, 0xed, 0xb1, 0x72,
-- 0xe4, 0x7e, 0x30, 0xbf, 0x1c, 0x99, 0x85, 0x62, 0x24, 0x75, 0xd1, 0x22,
-- 0x5f, 0xb1, 0xdb, 0x39, 0xe3, 0x8c, 0x74, 0xba, 0x48, 0x00, 0x28, 0xb8,
-- 0x69, 0x22, 0xc6, 0xe1, 0xbb, 0xef, 0x8e, 0xce, 0x4e, 0xde, 0xbd, 0x3d,
-- 0x7c, 0x77, 0x91, 0x7c, 0xb7, 0x7f, 0x76, 0xb4, 0xff, 0xd5, 0xb1, 0x26,
-- 0xbe, 0xf3, 0x14, 0x38, 0xc8, 0x47, 0x64, 0xef, 0x16, 0x20, 0x6c, 0x90,
-- 0x88, 0xd4, 0x59, 0xda, 0xa3, 0x55, 0x83, 0xf6, 0x83, 0x22, 0x8c, 0x43,
-- 0x13, 0xf9, 0x80, 0x2a, 0x45, 0x7d, 0x16, 0x3e, 0x3f, 0x58, 0xc1, 0x22,
-- 0x56, 0x9e, 0xee, 0x83, 0x54, 0x6a, 0x8e, 0x3f, 0x62, 0x2a, 0x35, 0xfe,
-- 0xe4, 0x2b, 0xd7, 0xb9, 0xda, 0x17, 0x5f, 0x4b, 0x36, 0xbe, 0x15, 0x02,
-- 0xb1, 0x57, 0x35, 0x33, 0x0c, 0x76, 0x37, 0x37, 0x86, 0xfd, 0xe3, 0x63,
-- 0xdf, 0xd5, 0xc3, 0x35, 0x62, 0x14, 0x89, 0x49, 0x92, 0xb7, 0xd0, 0x28,
-- 0x3b, 0x06, 0xaf, 0x0a, 0x0f, 0x97, 0x3e, 0xbf, 0x0f, 0x91, 0xd1, 0xb9,
-- 0x33, 0xda, 0x8e, 0x0d, 0x81, 0xd0, 0x60, 0x2f, 0x31, 0x1d, 0xa0, 0xbc,
-- 0xba, 0xe9, 0x27, 0xeb, 0xff, 0xba, 0x2e, 0x49, 0x75, 0x19, 0x70, 0x83,
-- 0xa5, 0x02, 0xcd, 0xa6, 0x1f, 0xd4, 0xbb, 0x13, 0x3f, 0x26, 0x75, 0x7c,
-- 0xba, 0x01, 0xb8, 0x17, 0xbd, 0xdb, 0xba, 0x32, 0x79, 0x06, 0xf1, 0xa2,
-- 0xfe, 0x71, 0x2d, 0xd3, 0xe0, 0x90, 0x01, 0x94, 0x46, 0xd9, 0xb1, 0xd5,
-- 0xf9, 0x2e, 0xb4, 0xb6, 0x74, 0x1c, 0xc0, 0x43, 0x63, 0xae, 0x73, 0x36,
-- 0x75, 0xb8, 0xd2, 0x59, 0x66, 0x0d, 0xa4, 0xa5, 0x66, 0x9b, 0x9e, 0xba,
-- 0x13, 0x97, 0x95, 0x72, 0x50, 0x50, 0xd5, 0xc7, 0x2d, 0xab, 0x44, 0x03,
-- 0x1f, 0x23, 0xe7, 0x03, 0x94, 0xf9, 0x44, 0xe1, 0x06, 0x3b, 0xa9, 0x62,
-- 0x08, 0xd7, 0xd4, 0xd9, 0x01, 0xd0, 0xd9, 0xe7, 0x5c, 0x42, 0xd0, 0x57,
-- 0xba, 0x40, 0xec, 0x30, 0x71, 0x91, 0x92, 0x13, 0xf2, 0xe6, 0x2a, 0x84,
-- 0x20, 0x1e, 0x17, 0x32, 0x7a, 0x7a, 0x55, 0x98, 0xfc, 0x9d, 0x3a, 0xa7,
-- 0xb9, 0xab, 0x07, 0x16, 0xc8, 0xf4, 0x0e, 0x43, 0xcc, 0x99, 0x2c, 0xe1,
-- 0x5e, 0x37, 0x07, 0x01, 0x87, 0x97, 0xf1, 0x96, 0x5b, 0xb9, 0xde, 0x2a,
-- 0xc8, 0xd2, 0xf6, 0xd9, 0x0b, 0xcc, 0x4b, 0x24, 0x48, 0xdf, 0x40, 0xbd,
-- 0x00, 0xa4, 0x66, 0x59, 0xdd, 0x08, 0x74, 0xc4, 0xb0, 0xf8, 0x41, 0x34,
-- 0xa9, 0x31, 0xab, 0x68, 0xd2, 0x6c, 0xd7, 0x74, 0x7a, 0xa6, 0x9c, 0x40,
-- 0x66, 0x9c, 0x28, 0x4d, 0x46, 0xf9, 0x95, 0xa0, 0x03, 0x70, 0x2a, 0x3a,
-- 0x53, 0x09, 0xc0, 0xde, 0x48, 0xb1, 0xe7, 0xad, 0x02, 0x94, 0x1b, 0x64,
-- 0xf7, 0xeb, 0x62, 0x1a, 0xe2, 0x8d, 0xd9, 0x4c, 0x2a, 0xad, 0x74, 0x66,
-- 0xa6, 0x4f, 0xb8, 0x3e, 0x96, 0xbc, 0x8e, 0x16, 0x8d, 0xa6, 0x40, 0xe5,
-- 0x1a, 0x9b, 0xc7, 0x36, 0x75, 0xa0, 0x26, 0xce, 0x91, 0x09, 0x64, 0x59,
-- 0xd5, 0x58, 0x07, 0x8b, 0x5b, 0x66, 0x6e, 0x01, 0x3b, 0x1a, 0xd7, 0x2b,
-- 0xdc, 0x70, 0x48, 0xe3, 0xdc, 0xca, 0x58, 0xb0, 0x5a, 0x99, 0xe8, 0xc5,
-- 0xa3, 0xdc, 0x2c, 0xd7, 0xa3, 0x9b, 0xa5, 0x28, 0x5a, 0x44, 0x13, 0x3c,
-- 0x68, 0x5a, 0xa9, 0x8d, 0x80, 0xf1, 0xcc, 0x89, 0x44, 0xe4, 0x31, 0x51,
-- 0x20, 0xf5, 0xaf, 0x81, 0xab, 0x34, 0xa6, 0x7e, 0xe7, 0x4d, 0x1f, 0x77,
-- 0x20, 0x52, 0x00, 0x53, 0xeb, 0x58, 0x4b, 0x22, 0xc2, 0x43, 0xcf, 0x75,
-- 0x1b, 0x01, 0x0d, 0xd5, 0xb0, 0x3d, 0x26, 0x96, 0x6f, 0x33, 0x9d, 0x06,
-- 0x50, 0xe3, 0x62, 0x8e, 0x48, 0x23, 0xd9, 0x83, 0x9d, 0x43, 0x92, 0x86,
-- 0xaa, 0x91, 0x3f, 0x02, 0x4b, 0x1c, 0x4c, 0x44, 0x63, 0xca, 0x59, 0x3a,
-- 0x6b, 0x99, 0x34, 0x03, 0x86, 0x66, 0xde, 0xf1, 0xf0, 0x62, 0xd2, 0x6a,
-- 0x17, 0x79, 0x3a, 0x13, 0xd9, 0xd1, 0x53, 0xdf, 0xec, 0x5e, 0xa2, 0x0e,
-- 0xd7, 0xd6, 0x0e, 0xde, 0x9f, 0x5f, 0x9c, 0xbc, 0x4d, 0x4e, 0xde, 0x5f,
-- 0x9c, 0xbe, 0xbf, 0xd0, 0x9b, 0x6b, 0x24, 0x31, 0xdb, 0x12, 0xb9, 0x20,
-- 0x42, 0x80, 0x6d, 0xe6, 0x4c, 0xfd, 0xfb, 0x08, 0x31, 0x29, 0x00, 0x30,
-- 0x18, 0x60, 0x0b, 0xb9, 0x9c, 0x2c, 0xa0, 0x6e, 0x09, 0x72, 0x31, 0x96,
-- 0xfc, 0x8e, 0x96, 0x1c, 0xf9, 0xb4, 0x30, 0xe4, 0x59, 0x8a, 0x17, 0xd4,
-- 0x1e, 0x3b, 0x6b, 0xcd, 0x4a, 0x32, 0xad, 0x42, 0x98, 0x70, 0xce, 0x37,
-- 0xb1, 0x9c, 0x7c, 0x1c, 0x95, 0xd9, 0x76, 0xbc, 0xe9, 0x27, 0x0c, 0xe9,
-- 0x44, 0x30, 0xd3, 0xb8, 0x36, 0x03, 0xb4, 0x45, 0xd5, 0x22, 0xd4, 0xa8,
-- 0x99, 0x58, 0x18, 0xe6, 0x37, 0xd6, 0x05, 0xcd, 0xf0, 0xda, 0x45, 0xc4,
-- 0x73, 0x14, 0x11, 0x22, 0x01, 0x25, 0x80, 0x82, 0x43, 0xee, 0x44, 0x63,
-- 0x20, 0x3d, 0x90, 0x5d, 0x16, 0xd1, 0x2d, 0x7b, 0x97, 0xac, 0x7f, 0x9f,
-- 0x85, 0x0d, 0xfe, 0xe9, 0xdf, 0x39, 0x6d, 0xf3, 0x83, 0x7d, 0xf2, 0x9f,
-- 0xd2, 0xe5, 0xcf, 0xf3, 0x75, 0x04, 0xd0, 0x35, 0x3d, 0xe5, 0xdf, 0x1e,
-- 0x9e, 0x7d, 0x75, 0x78, 0x76, 0x72, 0x0e, 0x7e, 0x60, 0xe6, 0xae, 0x98,
-- 0xd6, 0x6f, 0xb2, 0x72, 0x94, 0x95, 0x85, 0x56, 0xb9, 0xb2, 0xbf, 0x9e,
-- 0x6d, 0x7d, 0x7d, 0x7e, 0xbe, 0x7f, 0x7a, 0xe4, 0xea, 0xc8, 0xb8, 0x04,
-- 0x32, 0x51, 0x91, 0xe6, 0x92, 0xe2, 0xc8, 0xf3, 0xb7, 0x57, 0x88, 0x2e,
-- 0xc6, 0x37, 0x12, 0x58, 0x1c, 0xf9, 0xa4, 0xcd, 0xae, 0xce, 0xce, 0x68,
-- 0xcd, 0x2b, 0xe4, 0x86, 0x0d, 0x13, 0x2a, 0xc4, 0x9d, 0x17, 0x80, 0x78,
-- 0xf6, 0x05, 0xf4, 0x5d, 0x04, 0xde, 0x4d, 0x39, 0x1a, 0x10, 0xb5, 0xdf,
-- 0x58, 0x95, 0x61, 0xc9, 0x83, 0x20, 0x56, 0x29, 0x01, 0xd2, 0xde, 0xd6,
-- 0x70, 0xc3, 0x05, 0xc7, 0xb7, 0x6e, 0xf8, 0x7c, 0x70, 0x8d, 0x93, 0xe9,
-- 0x50, 0xb8, 0xbb, 0x1c, 0x28, 0x8b, 0x7a, 0x65, 0x16, 0xfb, 0x10, 0x4e,
-- 0x05, 0xf5, 0xe6, 0x0a, 0x13, 0x8a, 0xbd, 0x8b, 0x3e, 0x79, 0xea, 0x00,
-- 0xbb, 0xc2, 0x5a, 0xd4, 0x97, 0x24, 0x80, 0x2f, 0xee, 0x26, 0x7a, 0x89,
-- 0x00, 0xaf, 0x7a, 0x2e, 0xee, 0x09, 0xe1, 0xe1, 0x6d, 0x07, 0x15, 0x17,
-- 0x4f, 0x44, 0xc2, 0x86, 0x86, 0xa3, 0x27, 0xa3, 0x69, 0x3a, 0xbf, 0xc1,
-- 0x6d, 0x86, 0xfb, 0x89, 0x55, 0x4e, 0x83, 0xa1, 0xe2, 0xa2, 0x96, 0xf0,
-- 0x47, 0x2a, 0x32, 0x04, 0x84, 0xc0, 0x29, 0x33, 0xb7, 0x7b, 0xb1, 0xe5,
-- 0x3b, 0xb4, 0xad, 0xc0, 0xf3, 0x86, 0xe3, 0xe4, 0x17, 0x81, 0x4d, 0x47,
-- 0x87, 0xc7, 0x74, 0x31, 0xb9, 0x24, 0x13, 0xa8, 0xe8, 0xd9, 0x94, 0x4d,
-- 0xc1, 0x16, 0x11, 0x24, 0x79, 0x95, 0x39, 0x18, 0x99, 0x70, 0x0f, 0x83,
-- 0x52, 0x87, 0xff, 0x08, 0xe4, 0x82, 0xf4, 0xd1, 0xca, 0x15, 0x1c, 0x51,
-- 0xce, 0x2d, 0x4c, 0x0c, 0x38, 0xa1, 0xbe, 0xfe, 0x48, 0x58, 0x9d, 0x46,
-- 0xc3, 0xed, 0x0e, 0x7c, 0x3c, 0x90, 0x2b, 0xd7, 0x25, 0x83, 0xf0, 0x62,
-- 0xa9, 0xf3, 0x30, 0x36, 0xb2, 0x5b, 0x56, 0x6e, 0x93, 0xbc, 0xde, 0x65,
-- 0x04, 0x10, 0x78, 0xb3, 0x89, 0xfa, 0x3b, 0x1c, 0x32, 0x90, 0x85, 0x2c,
-- 0x37, 0xc3, 0x84, 0x6d, 0xe0, 0x12, 0x0d, 0xc0, 0xc6, 0xdb, 0x69, 0x6d,
-- 0x4e, 0x43, 0x84, 0xb8, 0xea, 0x0d, 0x5c, 0x4f, 0xc0, 0x72, 0xca, 0x06,
-- 0x68, 0x6d, 0x18, 0x9d, 0x2b, 0xe0, 0x15, 0xb0, 0x0d, 0x4a, 0xbe, 0x06,
-- 0xb4, 0x18, 0x27, 0xdf, 0x0e, 0xde, 0xf1, 0x75, 0x51, 0x0c, 0x46, 0x4b,
-- 0xe8, 0x65, 0x41, 0x19, 0x2d, 0xc9, 0xe1, 0xe4, 0x7a, 0xf3, 0xc0, 0x55,
-- 0xc3, 0xf7, 0xec, 0x8f, 0x42, 0x76, 0xbc, 0xb8, 0xa8, 0x90, 0x2e, 0xd9,
-- 0xc4, 0xdc, 0x71, 0x48, 0x2b, 0x92, 0x83, 0x80, 0x58, 0x6c, 0x2b, 0xbc,
-- 0x26, 0x23, 0xd4, 0x4d, 0x76, 0xd1, 0x82, 0x73, 0xad, 0xbd, 0x0a, 0xcf,
-- 0x4a, 0x33, 0xe2, 0xba, 0x76, 0xd0, 0xf7, 0x17, 0x10, 0x13, 0x32, 0x05,
-- 0x84, 0xb7, 0x50, 0x6a, 0x4b, 0xdc, 0xb8, 0xad, 0xb9, 0xf0, 0x93, 0x80,
-- 0x44, 0xa4, 0x53, 0xa9, 0xd8, 0xb1, 0xf2, 0x2a, 0x91, 0xc3, 0x54, 0x5f,
-- 0x5c, 0xfc, 0x78, 0x7a, 0xf8, 0xca, 0xde, 0x7c, 0x68, 0xcf, 0x04, 0x3b,
-- 0x0d, 0x31, 0x33, 0x99, 0x62, 0x95, 0x06, 0x95, 0x9c, 0x89, 0xc8, 0x06,
-- 0xb5, 0xf9, 0xf2, 0xa5, 0x9b, 0x41, 0xf2, 0xc3, 0xeb, 0xa3, 0xf3, 0xd3,
-- 0xe3, 0x93, 0x83, 0x57, 0x2f, 0x7f, 0x30, 0x96, 0xfc, 0x05, 0xbb, 0x08,
-- 0x44, 0x4e, 0x73, 0x9f, 0x79, 0x6c, 0x07, 0x7d, 0xef, 0xdd, 0xe1, 0xf7,
-- 0x1f, 0x48, 0x3b, 0x78, 0xc5, 0x08, 0xef, 0xfd, 0xdb, 0x74, 0xaa, 0x2f,
-- 0xb1, 0x8a, 0xd5, 0x21, 0xdb, 0x0d, 0x9b, 0x60, 0x7c, 0xed, 0x85, 0x75,
-- 0xd5, 0x43, 0x7d, 0x9e, 0xc2, 0xbd, 0x85, 0xd1, 0x05, 0x85, 0xa2, 0xd2,
-- 0x46, 0x5a, 0x6d, 0x47, 0x89, 0x5f, 0x7f, 0xfd, 0xaf, 0xd7, 0x12, 0x53,
-- 0xc9, 0x21, 0x04, 0xa1, 0x67, 0x1e, 0x71, 0xab, 0xfa, 0x8d, 0x8f, 0xe7,
-- 0x55, 0x24, 0xe5, 0x92, 0x03, 0x58, 0x1c, 0x14, 0xa5, 0xd6, 0x59, 0x86,
-- 0xcf, 0x5b, 0xf1, 0x2a, 0x15, 0x84, 0x89, 0x43, 0x68, 0x2d, 0x9a, 0xde,
-- 0xf8, 0x98, 0x8a, 0x30, 0x6e, 0x2c, 0xa9, 0x95, 0xb2, 0x45, 0x6d, 0x9e,
-- 0xd3, 0xc3, 0xb3, 0xf3, 0xa3, 0xf3, 0x0b, 0x56, 0xa3, 0xb4, 0xae, 0xa2,
-- 0xda, 0xa0, 0xad, 0xe8, 0x25, 0x30, 0x1b, 0x9a, 0xd0, 0xa3, 0x61, 0xdd,
-- 0x90, 0xc6, 0x89, 0x76, 0x6c, 0xae, 0x99, 0xc4, 0xc9, 0x37, 0x80, 0x64,
-- 0x86, 0xb2, 0x20, 0x2a, 0x00, 0xba, 0xe9, 0xa5, 0x1d, 0xe0, 0x42, 0x49,
-- 0xa3, 0x55, 0x3e, 0x03, 0xa5, 0x6f, 0xb0, 0x3b, 0xd3, 0x7c, 0xe4, 0xad,
-- 0xe6, 0x2d, 0x17, 0x32, 0x47, 0x27, 0x28, 0x58, 0x47, 0x78, 0x84, 0xcc,
-- 0x1e, 0xee, 0x33, 0xa3, 0xb5, 0xd4, 0xae, 0x5e, 0x6b, 0x9a, 0xd5, 0x18,
-- 0xe6, 0xaf, 0x3a, 0x45, 0x15, 0xca, 0x89, 0xc9, 0x69, 0xee, 0xd3, 0x20,
-- 0x08, 0x55, 0xf1, 0x9f, 0x00, 0x5d, 0xab, 0x2c, 0x9b, 0x99, 0x72, 0x2e,
-- 0x99, 0x68, 0x6c, 0x68, 0x21, 0xa9, 0x05, 0x99, 0xf5, 0x88, 0x13, 0xd2,
-- 0x99, 0x45, 0x22, 0x88, 0x8a, 0x8e, 0x57, 0x9c, 0xc2, 0x06, 0x90, 0xad,
-- 0x09, 0xcb, 0x5b, 0xb0, 0xc0, 0x85, 0x9d, 0xd9, 0x75, 0xca, 0x2b, 0x38,
-- 0x5a, 0x86, 0x85, 0xda, 0xdc, 0xe8, 0xa5, 0x3e, 0x09, 0x16, 0x1e, 0x11,
-- 0x92, 0x69, 0x09, 0x14, 0xcb, 0x5a, 0x41, 0xe3, 0x4d, 0xf1, 0xd1, 0x70,
-- 0xc7, 0x61, 0x13, 0xcf, 0xc7, 0xe8, 0xd2, 0x8a, 0x89, 0x3e, 0xb4, 0xa2,
-- 0x41, 0x65, 0x47, 0x26, 0xdf, 0x32, 0xb3, 0xb8, 0x25, 0x31, 0x33, 0x54,
-- 0xec, 0x70, 0x98, 0x8f, 0xdd, 0x65, 0xcc, 0x49, 0x47, 0xec, 0x5f, 0x2c,
-- 0x15, 0x2b, 0x89, 0xd8, 0x1f, 0x5b, 0x96, 0x51, 0x0e, 0x12, 0x75, 0x92,
-- 0xd9, 0xeb, 0x66, 0x38, 0x7a, 0x3e, 0x8c, 0x5b, 0x96, 0x3b, 0x20, 0x2b,
-- 0x31, 0xaf, 0xdf, 0x6b, 0x87, 0x2e, 0x41, 0xde, 0x36, 0xab, 0x2f, 0xf9,
-- 0x56, 0x29, 0xd2, 0x7b, 0xcc, 0xae, 0x1b, 0xa4, 0x89, 0x56, 0x9a, 0x7c,
-- 0xeb, 0xdc, 0xd3, 0x60, 0x78, 0x8d, 0x9a, 0xb8, 0x3c, 0xbb, 0x86, 0x6b,
-- 0x90, 0xe4, 0xcb, 0x05, 0x8a, 0x29, 0x8d, 0x15, 0x4d, 0x1e, 0x41, 0xbb,
-- 0xae, 0x41, 0xbb, 0x44, 0xfc, 0x62, 0xd1, 0xaa, 0xbe, 0x7d, 0x7f, 0x7c,
-- 0x71, 0x74, 0x1a, 0xba, 0x1f, 0x93, 0xef, 0x8f, 0x2e, 0xbe, 0x21, 0xa9,
-- 0xfd, 0xfc, 0xe8, 0xdd, 0xd7, 0xc7, 0xec, 0xe3, 0x79, 0xfb, 0x76, 0xff,
-- 0x1d, 0xa3, 0x0b, 0xbc, 0x43, 0x64, 0xe3, 0x3e, 0x14, 0x07, 0x66, 0x47,
-- 0xb4, 0xc4, 0x4c, 0x3b, 0x9c, 0x77, 0xde, 0x8f, 0x5d, 0x0d, 0xad, 0xe3,
-- 0x27, 0x35, 0x8f, 0xe7, 0xcd, 0x45, 0xe2, 0x1d, 0x57, 0xcd, 0xe0, 0x9e,
-- 0x0d, 0x3b, 0x38, 0xb6, 0xac, 0x6c, 0xf1, 0x42, 0xb7, 0x61, 0xe4, 0x91,
-- 0xe3, 0x28, 0x12, 0x3a, 0xdc, 0xe8, 0x72, 0x77, 0x7b, 0xf7, 0x05, 0x76,
-- 0xd4, 0x81, 0xd0, 0x42, 0x8f, 0x21, 0x99, 0x69, 0xae, 0x7a, 0x8d, 0xdc,
-- 0x97, 0xcd, 0x9c, 0x03, 0xea, 0x11, 0x43, 0x42, 0x1c, 0x41, 0xe1, 0x2d,
-- 0x82, 0xac, 0x71, 0xb2, 0xd2, 0x7c, 0x76, 0x1c, 0x5e, 0xa8, 0xcd, 0x32,
-- 0xf4, 0x16, 0x1e, 0x78, 0x55, 0x64, 0xfe, 0xe4, 0x0e, 0x4e, 0xac, 0x19,
-- 0x33, 0xff, 0x42, 0x0d, 0x93, 0xcb, 0x65, 0xc0, 0x7c, 0x6d, 0x40, 0x5b,
-- 0xb2, 0xe9, 0x2a, 0x0e, 0xa9, 0xf9, 0x6c, 0x4f, 0xc4, 0x4a, 0x07, 0xb3,
-- 0x6c, 0xc5, 0xf3, 0xa8, 0x39, 0x6b, 0x59, 0x43, 0x51, 0x10, 0x8f, 0xad,
-- 0x69, 0x4d, 0x3a, 0x67, 0x70, 0x4b, 0x7b, 0xac, 0x91, 0x95, 0x2d, 0xf7,
-- 0xdd, 0x89, 0x99, 0xf6, 0x2c, 0xad, 0x0d, 0xc9, 0xac, 0x0c, 0xbf, 0xe3,
-- 0x3d, 0xa7, 0x28, 0xb2, 0x56, 0x14, 0xc3, 0xec, 0x63, 0xc6, 0x4e, 0x4e,
-- 0xfe, 0xf5, 0xaf, 0x8b, 0xab, 0x30, 0xe3, 0x4d, 0xca, 0x3e, 0x2f, 0xba,
-- 0x76, 0x56, 0x31, 0x9d, 0x45, 0x2c, 0xd2, 0x52, 0x73, 0x8d, 0x11, 0x68,
-- 0xfd, 0xb8, 0x9d, 0x55, 0x1d, 0xea, 0xf7, 0xbb, 0xf1, 0xf7, 0xbb, 0x62,
-- 0x76, 0x3c, 0x3a, 0xbd, 0x7d, 0xee, 0xb0, 0x50, 0x25, 0x8f, 0x3b, 0x14,
-- 0xdf, 0x4c, 0x28, 0x60, 0x0a, 0xe3, 0x47, 0xe5, 0xce, 0x49, 0x85, 0x27,
-- 0x8a, 0xed, 0x9f, 0x23, 0xc8, 0x96, 0x25, 0xf2, 0x53, 0xf1, 0x08, 0xcc,
-- 0xc4, 0x12, 0xf6, 0x8b, 0x20, 0x3b, 0xf0, 0x29, 0xbe, 0xae, 0xa8, 0x41,
-- 0xfa, 0xfe, 0xa9, 0x8b, 0xc5, 0xf7, 0x3c, 0x0d, 0xe5, 0xda, 0x34, 0x1b,
-- 0x6a, 0x90, 0x2f, 0x6e, 0xad, 0x06, 0x2f, 0xfd, 0xfa, 0xdc, 0x95, 0xea,
-- 0xa9, 0x1a, 0x3e, 0xaa, 0x06, 0xee, 0xb0, 0x31, 0x7f, 0x0c, 0x0e, 0x61,
-- 0x91, 0xcc, 0x19, 0xbc, 0x92, 0xd1, 0x1a, 0x57, 0xd6, 0x0c, 0xc8, 0x0e,
-- 0x8a, 0x88, 0xc2, 0xc0, 0x3c, 0x45, 0x66, 0x2c, 0xf8, 0x51, 0xc0, 0x5c,
-- 0x42, 0xcc, 0x7f, 0xdd, 0xf5, 0x9f, 0x76, 0xb7, 0xb7, 0x77, 0xf6, 0x76,
-- 0x3e, 0x7f, 0xb1, 0xbd, 0xb7, 0xb3, 0xb3, 0xb3, 0xbb, 0xb7, 0xb3, 0xb7,
-- 0xb7, 0xbb, 0xfd, 0xcb, 0x16, 0xdb, 0x8f, 0x6e, 0xf3, 0xec, 0xce, 0x1c,
-- 0x53, 0x92, 0x8b, 0x07, 0xb2, 0x96, 0x5a, 0xea, 0xaa, 0xc1, 0xab, 0x9e,
-- 0x6b, 0x92, 0x8f, 0x43, 0x95, 0x90, 0x90, 0x79, 0x01, 0x93, 0x5b, 0xf8,
-- 0x4c, 0x53, 0x9c, 0xc1, 0x00, 0xf0, 0x1a, 0xa3, 0xfa, 0xdb, 0x92, 0x67,
-- 0x3a, 0x62, 0x71, 0x00, 0x32, 0x4d, 0xe5, 0xf2, 0xfa, 0xae, 0xa6, 0xc5,
-- 0x68, 0x84, 0xcc, 0x05, 0x97, 0xda, 0x3a, 0x4c, 0x18, 0x55, 0xf5, 0x46,
-- 0x48, 0x42, 0x3d, 0x07, 0x08, 0x2a, 0x94, 0x83, 0xee, 0x57, 0x47, 0x04,
-- 0x2f, 0x0d, 0xa4, 0x1e, 0x17, 0x5c, 0x61, 0x60, 0xc2, 0x4c, 0x89, 0x16,
-- 0xa9, 0x74, 0x29, 0x2f, 0xc9, 0x65, 0xf6, 0xf9, 0xf6, 0xde, 0x1e, 0x17,
-- 0x01, 0xf9, 0xd3, 0x4e, 0x5f, 0xe3, 0x41, 0xc3, 0x20, 0xf7, 0xbe, 0xbb,
-- 0x9e, 0xa4, 0x0d, 0x56, 0x3f, 0xc2, 0x79, 0xce, 0x97, 0xb3, 0xac, 0x54,
-- 0x45, 0x04, 0x17, 0xa2, 0x80, 0xff, 0x30, 0x31, 0xda, 0x90, 0xdd, 0xb3,
-- 0x28, 0x6c, 0x03, 0xbb, 0xbc, 0xa4, 0xa6, 0xf8, 0xdb, 0x53, 0xcf, 0x39,
-- 0x8e, 0xca, 0x5c, 0xca, 0x87, 0xf2, 0xc3, 0x90, 0xc8, 0x81, 0x68, 0x52,
-- 0xdc, 0x84, 0xc2, 0xaa, 0xe6, 0xe3, 0xfc, 0x14, 0x0c, 0x7e, 0xf7, 0xd9,
-- 0xce, 0x2f, 0x12, 0x7e, 0xc8, 0x04, 0xee, 0x57, 0x41, 0x0b, 0xbd, 0x4d,
-- 0xc2, 0x8c, 0x0b, 0x23, 0x8c, 0x8d, 0x6c, 0x78, 0x35, 0x34, 0x29, 0x41,
-- 0xad, 0x87, 0xfd, 0x30, 0x08, 0x5c, 0x10, 0xc8, 0xa5, 0x2c, 0x30, 0xf4,
-- 0x2e, 0x33, 0x10, 0x99, 0x81, 0x57, 0x8c, 0x93, 0x8d, 0x8a, 0x3d, 0x74,
-- 0x63, 0x1c, 0x5e, 0xec, 0xd3, 0x65, 0xf0, 0x6d, 0xac, 0xb8, 0xbf, 0xcd,
-- 0x48, 0xcb, 0xe6, 0xcd, 0xdb, 0x00, 0x7d, 0xdf, 0x3a, 0xdc, 0x5f, 0x5e,
-- 0xbd, 0xa7, 0xc9, 0x06, 0xfb, 0x20, 0x9e, 0x7d, 0xfe, 0xec, 0xe9, 0xa6,
-- 0x14, 0x59, 0x90, 0xd7, 0x32, 0xce, 0xf7, 0x80, 0x95, 0x51, 0xc1, 0x66,
-- 0xd8, 0x3c, 0xec, 0x58, 0xcc, 0xfb, 0xb3, 0x23, 0x39, 0xa2, 0xd7, 0x82,
-- 0x09, 0x20, 0x4a, 0x6c, 0x1b, 0x27, 0x0e, 0xf7, 0x67, 0x20, 0x34, 0xcc,
-- 0x72, 0xc6, 0x30, 0x44, 0x2e, 0x35, 0x5f, 0x74, 0x2e, 0x97, 0x1f, 0x37,
-- 0x26, 0x1d, 0xb8, 0x02, 0xa5, 0x07, 0xb5, 0xa2, 0x13, 0x06, 0x03, 0xd0,
-- 0x43, 0xc6, 0x5c, 0x55, 0xba, 0x71, 0x1a, 0x15, 0xeb, 0x35, 0xc2, 0x5f,
-- 0x84, 0x9b, 0xb7, 0x70, 0xb6, 0x37, 0xc5, 0x83, 0x0f, 0x21, 0x8f, 0xc9,
-- 0x8a, 0x1e, 0xb4, 0x50, 0x50, 0x1e, 0x71, 0x23, 0xbb, 0xcc, 0x4b, 0x8f,
-- 0x01, 0x46, 0x93, 0xc1, 0xb3, 0x28, 0x6b, 0x71, 0x4b, 0x28, 0xee, 0xe9,
-- 0x1a, 0x96, 0xc2, 0xbc, 0x61, 0xc2, 0xd1, 0xdc, 0x78, 0xe4, 0xa8, 0x23,
-- 0x84, 0x78, 0x46, 0xd7, 0x4b, 0x79, 0xaf, 0x12, 0x33, 0xc4, 0x7e, 0x57,
-- 0x29, 0xad, 0xe5, 0xe0, 0x17, 0x14, 0x88, 0x30, 0x32, 0xde, 0x81, 0xa0,
-- 0x98, 0x12, 0xdc, 0x18, 0x40, 0x83, 0x8d, 0x0f, 0x66, 0xf6, 0x55, 0x10,
-- 0xff, 0x12, 0xa6, 0x8b, 0xd9, 0xef, 0xf6, 0x5c, 0x10, 0x1a, 0x99, 0xb6,
-- 0x27, 0xb6, 0x62, 0x68, 0x82, 0x95, 0x89, 0x70, 0x28, 0xa7, 0xcd, 0x6c,
-- 0x60, 0x24, 0x5b, 0x5b, 0x9b, 0x2b, 0x46, 0xa3, 0x5f, 0x77, 0xf5, 0x7e,
-- 0x0a, 0x8c, 0x91, 0x20, 0x43, 0x93, 0xf6, 0xbc, 0xd9, 0x38, 0x2f, 0x6d,
-- 0x5e, 0xf1, 0x4e, 0x4e, 0x34, 0xce, 0x55, 0xcc, 0xa2, 0xa6, 0x2e, 0xc9,
-- 0xe0, 0x8d, 0x19, 0x35, 0x27, 0xa1, 0xa1, 0x35, 0x86, 0xf9, 0x24, 0x35,
-- 0x9c, 0xc5, 0x5d, 0x39, 0x4c, 0xf6, 0x99, 0x1a, 0x1a, 0x1d, 0x07, 0x43,
-- 0x36, 0xfb, 0xac, 0x21, 0x9a, 0x9b, 0x50, 0xea, 0xcc, 0x73, 0xfd, 0xe0,
-- 0x4b, 0x13, 0xdb, 0x2c, 0xc5, 0xdf, 0x19, 0x6f, 0x47, 0x99, 0xc0, 0x99,
-- 0x38, 0x4e, 0x18, 0x20, 0x15, 0xe7, 0xf3, 0x46, 0x09, 0x50, 0x6d, 0x04,
-- 0x8e, 0x6b, 0x37, 0x09, 0x80, 0x20, 0x96, 0x06, 0xae, 0x1b, 0x96, 0x05,
-- 0x04, 0xa2, 0x80, 0x06, 0xa9, 0x8b, 0xa0, 0xec, 0x88, 0x58, 0xbc, 0xa7,
-- 0x23, 0x21, 0xaf, 0xc6, 0x7a, 0xf4, 0x85, 0xe2, 0x25, 0x28, 0x41, 0xe2,
-- 0x67, 0xe9, 0x90, 0x30, 0xc3, 0xd8, 0x3f, 0x3a, 0xe6, 0x28, 0xb7, 0x63,
-- 0x52, 0xd9, 0xce, 0x4d, 0xf4, 0x41, 0xd4, 0x27, 0xe2, 0xef, 0xe6, 0x39,
-- 0x8b, 0xdf, 0x7d, 0x57, 0x4a, 0xc4, 0x92, 0x9f, 0xa0, 0x87, 0xb0, 0xb3,
-- 0x4e, 0x54, 0x79, 0xc5, 0xfc, 0xa3, 0xdd, 0x22, 0xf9, 0xa7, 0x12, 0x23,
-- 0x2c, 0xa0, 0x75, 0x19, 0x74, 0x1e, 0x8e, 0x51, 0xa8, 0xc8, 0xc2, 0xa8,
-- 0x51, 0xc9, 0xa8, 0xcc, 0xa6, 0xd9, 0xad, 0x5a, 0x4b, 0x05, 0xa8, 0xf4,
-- 0x6b, 0xf5, 0x49, 0x4a, 0x29, 0xd3, 0xda, 0xbb, 0x56, 0x1b, 0x6e, 0x4f,
-- 0xee, 0x73, 0x4b, 0x30, 0x5e, 0x3c, 0x74, 0x07, 0x77, 0xef, 0xd1, 0xf5,
-- 0xcd, 0x05, 0xcc, 0xef, 0x0d, 0x58, 0x67, 0xd5, 0x50, 0xd5, 0xf7, 0x95,
-- 0xa2, 0x33, 0xb4, 0x63, 0xbf, 0xc5, 0xf6, 0x67, 0xc5, 0xf0, 0xc4, 0x98,
-- 0xde, 0x37, 0xfc, 0x63, 0xf1, 0x00, 0xb0, 0x9a, 0xd3, 0x67, 0xc3, 0xab,
-- 0x14, 0x5c, 0x27, 0x05, 0x8b, 0x2b, 0x5d, 0xf4, 0x25, 0x11, 0x14, 0xb4,
-- 0x51, 0x4c, 0xe9, 0x4f, 0x84, 0x47, 0x49, 0xc0, 0x24, 0x3d, 0xcb, 0xf8,
-- 0xad, 0x41, 0x84, 0x2a, 0xfd, 0x29, 0xc9, 0x0d, 0xfa, 0x17, 0x9a, 0x2a,
-- 0x97, 0x80, 0x09, 0xee, 0xcb, 0xe5, 0xc6, 0x4e, 0xc4, 0x7a, 0x3c, 0x74,
-- 0xa3, 0x57, 0x1f, 0xbe, 0x8c, 0xff, 0xb5, 0xb9, 0x98, 0x4d, 0xac, 0x28,
-- 0x4a, 0x5b, 0x5d, 0xd9, 0x85, 0x91, 0xd4, 0x2e, 0xfc, 0x6a, 0xc9, 0xce,
-- 0x2d, 0x57, 0x99, 0x87, 0x47, 0x31, 0xe3, 0xab, 0x28, 0x93, 0x32, 0xa1,
-- 0xae, 0x71, 0xd6, 0xd0, 0x96, 0xb4, 0xbb, 0xd2, 0xfa, 0x71, 0x71, 0xc7,
-- 0x35, 0x4e, 0x2f, 0x2f, 0xf3, 0x31, 0x17, 0xae, 0xf1, 0x70, 0xc0, 0xcc,
-- 0xe2, 0xe5, 0xc1, 0x99, 0x95, 0x55, 0xa2, 0xb9, 0x25, 0x8b, 0xe5, 0x68,
-- 0x4a, 0x77, 0xaf, 0x45, 0xa7, 0xd3, 0xa1, 0xc2, 0x2a, 0x91, 0xf2, 0x84,
-- 0xe6, 0xc4, 0x37, 0x0f, 0xfd, 0xb1, 0x15, 0x11, 0xad, 0xc5, 0xd8, 0x59,
-- 0xa2, 0x9e, 0xa1, 0xd8, 0x2b, 0x87, 0x0d, 0xcf, 0x8a, 0xb9, 0x25, 0xb7,
-- 0x2c, 0x2b, 0x01, 0x87, 0xb4, 0xca, 0xed, 0x6b, 0xe2, 0x69, 0xc8, 0xa7,
-- 0x8a, 0xc6, 0xae, 0x9a, 0x36, 0xde, 0x08, 0x27, 0x33, 0x19, 0x2c, 0xae,
-- 0x17, 0xb6, 0xd3, 0x26, 0xdf, 0x88, 0xf0, 0xa3, 0xe9, 0x14, 0x38, 0x79,
-- 0xa7, 0xdf, 0x9c, 0x0e, 0x93, 0x43, 0x6e, 0x49, 0xc6, 0xa4, 0x72, 0x2b,
-- 0x4c, 0x2e, 0xf4, 0x1d, 0x4d, 0xf6, 0x8a, 0xef, 0xaf, 0x93, 0x92, 0xff,
-- 0x42, 0x6b, 0xfa, 0xa5, 0x58, 0x59, 0xf1, 0x6d, 0xb3, 0x57, 0x6a, 0xc8,
-- 0x82, 0xa6, 0x4f, 0xf1, 0x3b, 0x1d, 0x15, 0x92, 0xa6, 0xdc, 0x36, 0xf9,
-- 0x1e, 0x8a, 0xb2, 0x01, 0xa5, 0x23, 0x6f, 0x26, 0x24, 0x64, 0x41, 0x54,
-- 0x5a, 0xdc, 0x63, 0xff, 0x02, 0xde, 0x28, 0xe2, 0xa4, 0x34, 0x10, 0x90,
-- 0x96, 0x92, 0x9f, 0x0b, 0xc7, 0x93, 0x73, 0x55, 0x0a, 0x88, 0x4c, 0x99,
-- 0x69, 0xf0, 0x62, 0xa1, 0x5e, 0x4f, 0x31, 0x50, 0x54, 0x59, 0xeb, 0xb8,
-- 0x06, 0xea, 0x98, 0x7d, 0xc1, 0x5a, 0x34, 0x8f, 0x85, 0x84, 0x16, 0xda,
-- 0x82, 0xe1, 0xda, 0xff, 0x0d, 0xe7, 0xf9, 0xe0, 0x85, 0x2c, 0x65, 0x02,
-- 0x00,
--};
--#define BUF_SIZE 0x10000
--static voidpf zalloc_func(voidpf opaque, unsigned int items, unsigned int size)
--{
-- (void) opaque;
-- /* not a typo, keep it calloc() */
-- return (voidpf) calloc(items, size);
--}
--static void zfree_func(voidpf opaque, voidpf ptr)
--{
-- (void) opaque;
-- free(ptr);
--}
--/* Decompress and send to stdout a gzip-compressed buffer */
--void hugehelp(void)
--{
-- unsigned char* buf;
-- int status,headerlen;
-- z_stream z;
--
-- /* Make sure no gzip options are set */
-- if (hugehelpgz[3] & 0xfe)
-- return;
--
-- headerlen = 10;
-- memset(&z, 0, sizeof(z_stream));
-- z.zalloc = (alloc_func)zalloc_func;
-- z.zfree = (free_func)zfree_func;
-- z.avail_in = (unsigned int)(sizeof(hugehelpgz) - headerlen);
-- z.next_in = (unsigned char *)hugehelpgz + headerlen;
--
-- if (inflateInit2(&z, -MAX_WBITS) != Z_OK)
-- return;
--
-- buf = malloc(BUF_SIZE);
-- if (buf) {
-- while(1) {
-- z.avail_out = BUF_SIZE;
-- z.next_out = buf;
-- status = inflate(&z, Z_SYNC_FLUSH);
-- if (status == Z_OK || status == Z_STREAM_END) {
-- fwrite(buf, BUF_SIZE - z.avail_out, 1, stdout);
-- if (status == Z_STREAM_END)
-- break;
-- }
-- else
-- break; /* Error */
-- }
-- free(buf);
-- }
-- inflateEnd(&z);
--}
--#endif /* USE_MANUAL */
--#endif /* HAVE_LIBZ */
diff --git a/meta/recipes-support/curl/curl_7.36.0.bb b/meta/recipes-support/curl/curl_7.40.0.bb
index 54ea6d407f..4cde9c6baa 100644
--- a/meta/recipes-support/curl/curl_7.36.0.bb
+++ b/meta/recipes-support/curl/curl_7.40.0.bb
@@ -5,50 +5,38 @@ SECTION = "console/network"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;beginline=7;md5=3a34942f4ae3fbf1a303160714e664ac"
-DEPENDS = "zlib gnutls"
-DEPENDS_class-native = "zlib-native openssl-native"
-DEPENDS_class-nativesdk = "nativesdk-zlib"
-
SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://pkgconfig_fix.patch \
- file://generate_code_for_disable_manual.patch \
- file://remove_inappropriate_file_from_rel.patch \
-"
+ "
# curl likes to set -g0 in CFLAGS, so we stop it
# from mucking around with debug options
#
SRC_URI += " file://configure_ac.patch"
-SRC_URI[md5sum] = "e6d1f9d1b59da5062109ffe14e0569a4"
-SRC_URI[sha256sum] = "1fbe82b89bcd6b7ccda8cb0ff076edc60e911595030e27689f4abd5ef7f3cfcd"
+SRC_URI[md5sum] = "8d30594212e65657a5c32030f0998fa9"
+SRC_URI[sha256sum] = "899109eb3900fa6b8a2f995df7f449964292776a04763e94fae640700f883fba"
inherit autotools pkgconfig binconfig multilib_header
-EXTRA_OECONF = "--with-zlib=${STAGING_LIBDIR}/../ \
- --without-libssh2 \
- --with-random=/dev/urandom \
- --without-libidn \
+PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)} gnutls zlib"
+PACKAGECONFIG_class-native = "ipv6 ssl zlib"
+PACKAGECONFIG_class-nativesdk = "ipv6 ssl zlib"
+
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+PACKAGECONFIG[ssl] = "--with-ssl --with-random=/dev/urandom,--without-ssl,openssl"
+PACKAGECONFIG[gnutls] = "--with-gnutls,--without-gnutls,gnutls"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_LIBDIR}/../,--without-zlib,zlib"
+PACKAGECONFIG[rtmpdump] = "--with-librtmp,--without-librtmp,rtmpdump"
+PACKAGECONFIG[libssh2] = "--with-libssh2,--without-libssh2,libssh2"
+PACKAGECONFIG[smb] = "--enable-smb,--disable-smb,"
+
+EXTRA_OECONF = "--without-libidn \
--enable-crypto-auth \
--disable-ldap \
--disable-ldaps \
--with-ca-bundle=${sysconfdir}/ssl/certs/ca-certificates.crt \
- ${CURLGNUTLS} \
- "
-
-CURLGNUTLS = " --with-gnutls=${STAGING_LIBDIR}/../ --without-ssl"
-CURLGNUTLS_class-native = "--without-gnutls --with-ssl"
-CURLGNUTLS_class-nativesdk = "--without-gnutls --without-ssl"
-
-PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "ipv6", "ipv6", "", d)}"
-PACKAGECONFIG_class-native = "ipv6"
-PACKAGECONFIG_class-nativesdk = "ipv6"
-
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-do_configure_prepend() {
- sed -i s:OPT_GNUTLS/bin:OPT_GNUTLS:g ${S}/configure.ac
-}
+"
do_install_append() {
oe_multilib_header curl/curlbuild.h
diff --git a/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch b/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
index 40b13dee79..34e8db84df 100644
--- a/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
+++ b/meta/recipes-support/db/db/arm-thumb-mutex_db5.patch
@@ -1,5 +1,15 @@
+Original patch submitted by jbowler@nslu2-linux.org on 2005-11-17:
+
+db: fix thumb uclibc operation in 4.3.29
+ - uclibc thumb builds were using libpthread to implement mutexes, the
+ - uclibc version seems to be a stub (at least on thumb). This commit
+ - fixes the ARM/gcc-assembly mutex implementation so that it has thumb
+ - support and the resultant db4 works (tested on LE Thumb uclibc)
+
Upstream-Status: Inappropriate [embedded specific]
+Author: jbowler@nslu2-linux.org
+
--- db-5.1.19/src/dbinc/mutex_int.h.orig 2011-01-05 19:21:42.181805366 -0600
+++ db-5.1.19/src/dbinc/mutex_int.h 2011-01-05 19:24:53.141853117 -0600
@@ -474,6 +474,25 @@
diff --git a/meta/recipes-support/db/db_5.3.21.bb b/meta/recipes-support/db/db_5.3.28.bb
index caf6890261..e8b814e06b 100644
--- a/meta/recipes-support/db/db_5.3.21.bb
+++ b/meta/recipes-support/db/db_5.3.28.bb
@@ -20,10 +20,10 @@ SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
file://fix-parallel-build.patch \
"
-SRC_URI[md5sum] = "3fda0b004acdaa6fa350bfc41a3b95ca"
-SRC_URI[sha256sum] = "ddd92a930317df92021054c03992392db9ea5cddba43bef8920d392a82114fb8"
+SRC_URI[md5sum] = "b99454564d5b4479750567031d66fe24"
+SRC_URI[sha256sum] = "e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=32aefa5a8e7318be1f657432cbe2e768"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=ed1158e31437f4f87cdd4ab2b8613955"
inherit autotools
@@ -42,6 +42,7 @@ PROVIDES += "${VIRTUAL_NAME}"
# persuades bitbake to go to the right place
S = "${WORKDIR}/db-${PV}/dist"
B = "${WORKDIR}/db-${PV}/build_unix"
+SPDX_S = "${WORKDIR}/db-${PV}"
# The executables go in a separate package - typically there
# is no need to install these unless doing real database
diff --git a/meta/recipes-support/db/db_6.0.30.bb b/meta/recipes-support/db/db_6.0.30.bb
new file mode 100644
index 0000000000..47fb296daa
--- /dev/null
+++ b/meta/recipes-support/db/db_6.0.30.bb
@@ -0,0 +1,115 @@
+# Version 6 of the Berkeley DB from Oracle (formerly Sleepycat)
+#
+# At present this package only installs the DB code
+# itself (shared libraries, .a in the dev package),
+# documentation and headers.
+#
+# The headers have the same names as those as v3
+# of the DB, only one version can be used *for dev*
+# at once - DB3 and DB6 can both be installed on the
+# same system at the same time if really necessary.
+SECTION = "libs"
+SUMMARY = "Berkeley Database v6"
+HOMEPAGE = "http://www.oracle.com/technology/products/berkeley-db/db/index.html"
+LICENSE = "AGPL-3.0"
+VIRTUAL_NAME ?= "virtual/db"
+RCONFLICTS_${PN} = "db3"
+
+SRC_URI = "http://download.oracle.com/berkeley-db/db-${PV}.tar.gz"
+SRC_URI += "file://arm-thumb-mutex_db5.patch;patchdir=.. \
+ file://fix-parallel-build.patch \
+ "
+
+SRC_URI[md5sum] = "ad28eb86ad3203b5422844db179c585b"
+SRC_URI[sha256sum] = "608e4b1cf390e9bf54c0ef00c5bd9ca76d36e2261b9f4d33d54516f3f6a20fd2"
+
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=1ec8b0b17cc31513fe35ab10716f8490"
+
+inherit autotools
+
+# Put virtual/db in any appropriate provider of a
+# relational database, use it as a dependency in
+# place of a specific db and use:
+#
+# PREFERRED_PROVIDER_virtual/db
+#
+# to select the correct db in the build (distro) .conf
+PROVIDES += "${VIRTUAL_NAME}"
+
+# bitbake isn't quite clever enough to deal with sleepycat,
+# the distribution sits in the expected directory, but all
+# the builds must occur from a sub-directory. The following
+# persuades bitbake to go to the right place
+S = "${WORKDIR}/db-${PV}/dist"
+B = "${WORKDIR}/db-${PV}/build_unix"
+SPDX_S = "${WORKDIR}/db-${PV}"
+
+# The executables go in a separate package - typically there
+# is no need to install these unless doing real database
+# management on the system.
+inherit lib_package
+
+PACKAGES =+ "${PN}-cxx"
+FILES_${PN}-cxx = "${libdir}/*cxx*so"
+
+
+# The dev package has the .so link (as in db3) and the .a's -
+# it is therefore incompatible (cannot be installed at the
+# same time) as the db3 package
+# sort out the .so since they do version prior to the .so
+SOLIBS = "-6*.so"
+FILES_SOLIBSDEV = "${libdir}/libdb.so ${libdir}/libdb_cxx.so"
+
+#configuration - set in local.conf to override
+# All the --disable-* options replace --enable-smallbuild, which breaks a bunch of stuff (eg. postfix)
+DB6_CONFIG ?= "--enable-o_direct --disable-cryptography --disable-queue --disable-replication --disable-verify --disable-compat185 --disable-sql"
+
+EXTRA_OECONF = "${DB6_CONFIG} --enable-shared --enable-cxx --with-sysroot"
+
+# Override the MUTEX setting here, the POSIX library is
+# the default - "POSIX/pthreads/library".
+# Don't ignore the nice SWP instruction on the ARM:
+# These enable the ARM assembler mutex code
+ARM_MUTEX = "--with-mutex=ARM/gcc-assembly"
+MUTEX = ""
+MUTEX_arm = "${ARM_MUTEX}"
+MUTEX_armeb = "${ARM_MUTEX}"
+EXTRA_OECONF += "${MUTEX}"
+
+# Cancel the site stuff - it's set for db3 and destroys the
+# configure.
+CONFIG_SITE = ""
+do_configure() {
+ gnu-configize --force ${S}
+ export STRIP="true"
+ oe_runconf
+}
+
+do_compile_prepend() {
+ sed -i -e 's|hardcode_into_libs=yes|hardcode_into_libs=no|' \
+ ${B}/libtool
+}
+
+do_install_append() {
+ mkdir -p ${D}/${includedir}/db60
+ mv ${D}/${includedir}/db.h ${D}/${includedir}/db60/.
+ mv ${D}/${includedir}/db_cxx.h ${D}/${includedir}/db60/.
+ ln -s db60/db.h ${D}/${includedir}/db.h
+ ln -s db60/db_cxx.h ${D}/${includedir}/db_cxx.h
+
+ # The docs end up in /usr/docs - not right.
+ if test -d "${D}/${prefix}/docs"
+ then
+ mkdir -p "${D}/${datadir}"
+ test ! -d "${D}/${docdir}" || rm -rf "${D}/${docdir}"
+ mv "${D}/${prefix}/docs" "${D}/${docdir}"
+ fi
+
+ chown -R root:root ${D}
+}
+
+INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP_${PN}-cxx = "dev-so"
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta/recipes-support/debianutils/debianutils_4.4.bb b/meta/recipes-support/debianutils/debianutils_4.4.bb
new file mode 100644
index 0000000000..346eaf16eb
--- /dev/null
+++ b/meta/recipes-support/debianutils/debianutils_4.4.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Miscellaneous utilities specific to Debian"
+SECTION = "base"
+LICENSE = "GPLv2 & SMAIL_GPL"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=f01a5203d50512fc4830b4332b696a9f"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.gz"
+SRC_URI[md5sum] = "c0cb076754d7f4eb1e3397d00916647f"
+SRC_URI[sha256sum] = "190850cdd6b5302e0a1ba1aaed1bc7074d67d3bd8d04c613f242f7145afa53a6"
+
+inherit autotools update-alternatives
+
+do_configure_prepend() {
+ sed -i -e 's:tempfile.1 which.1:which.1:g' ${S}/Makefile.am
+}
+
+do_install_append() {
+ if [ "${base_bindir}" != "${bindir}" ]; then
+ # Debian places some utils into ${base_bindir} as does busybox
+ install -d ${D}${base_bindir}
+ for app in run-parts tempfile; do
+ mv ${D}${bindir}/$app ${D}${base_bindir}/$app
+ done
+ fi
+}
+
+ALTERNATIVE_PRIORITY="100"
+ALTERNATIVE_${PN} = "add-shell installkernel remove-shell run-parts savelog tempfile which"
+
+ALTERNATIVE_LINK_NAME[add-shell]="${sbindir}/add-shell"
+ALTERNATIVE_LINK_NAME[installkernel]="${sbindir}/installkernel"
+ALTERNATIVE_LINK_NAME[remove-shell]="${sbindir}/remove-shell"
+ALTERNATIVE_LINK_NAME[run-parts]="${base_bindir}/run-parts"
+ALTERNATIVE_LINK_NAME[savelog]="${bindir}/savelog"
+ALTERNATIVE_LINK_NAME[tempfile]="${base_bindir}/tempfile"
+ALTERNATIVE_LINK_NAME[which]="${bindir}/which"
diff --git a/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch b/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch
new file mode 100644
index 0000000000..770d8f66b9
--- /dev/null
+++ b/meta/recipes-support/gdbm/gdbm-1.8.3/ldflags.patch
@@ -0,0 +1,22 @@
+Obey LDFLAGS
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Upstream-status: Inappropriate [old version]
+
+--- gdbm-1.8.3.orig/Makefile.in
++++ gdbm-1.8.3/Makefile.in
+@@ -156,12 +156,12 @@ install-compat:
+
+ libgdbm.la: $(LOBJS) gdbm.h
+ rm -f libgdbm.la
+- $(LIBTOOL) --mode=link $(CC) -o libgdbm.la -rpath $(libdir) \
++ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o libgdbm.la -rpath $(libdir) \
+ -version-info $(SHLIB_VER) $(LOBJS)
+
+ libgdbm_compat.la: $(C_LOBJS) gdbm.h
+ rm -f libgdbm_compat.la
+- $(LIBTOOL) --mode=link $(CC) -o libgdbm_compat.la -rpath $(libdir) \
++ $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o libgdbm_compat.la -rpath $(libdir) \
+ -version-info $(SHLIB_VER) $(C_LOBJS)
+
+ gdbm.h: gdbm.proto gdbmerrno.h gdbm.proto2
diff --git a/meta/recipes-support/gdbm/gdbm_1.8.3.bb b/meta/recipes-support/gdbm/gdbm_1.8.3.bb
index aecf47afb9..2331d1df3a 100644
--- a/meta/recipes-support/gdbm/gdbm_1.8.3.bb
+++ b/meta/recipes-support/gdbm/gdbm_1.8.3.bb
@@ -8,7 +8,8 @@ PR = "r4"
SRC_URI = "${GNU_MIRROR}/gdbm/gdbm-${PV}.tar.gz \
file://makefile.patch \
- file://libtool-mode.patch"
+ file://libtool-mode.patch \
+ file://ldflags.patch"
SRC_URI[md5sum] = "1d1b1d5c0245b1c00aff92da751e9aa1"
SRC_URI[sha256sum] = "cc340338a2e28b40058ab9eb5354a21d53f88a1582ea21ba0bb185c37a281dc9"
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/configure.patch b/meta/recipes-support/gmp/gmp-4.2.1/configure.patch
deleted file mode 100644
index 7597a935a2..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/configure.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-Upstream-Status: Pending
-
- acinclude.m4 | 26 ++++++++++++++------------
- configure.in | 24 +++++++++---------------
- 2 files changed, 23 insertions(+), 27 deletions(-)
-
-Index: gmp-5.0.3/acinclude.m4
-===================================================================
---- gmp-5.0.3.orig/acinclude.m4
-+++ gmp-5.0.3/acinclude.m4
-@@ -30,29 +30,29 @@ dnl a_out.exe - OpenVMS DEC C called
- dnl conftest.exe - various DOS compilers
-
-
--define(IA64_PATTERN,
-+define([IA64_PATTERN],
- [[ia64*-*-* | itanium-*-* | itanium2-*-*]])
-
- dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all
- dnl of which config.sub accepts. (Though none of which are likely to work
- dnl with GMP.)
- dnl
--define(M68K_PATTERN,
-+define([M68K_PATTERN],
- [[m68k-*-* | m68[0-9][0-9][0-9]-*-*]])
-
--define(POWERPC64_PATTERN,
-+define([POWERPC64_PATTERN],
- [[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]])
-
--define(S390_PATTERN,
-+define([S390_PATTERN],
- [[s390-*-* | z900esa-*-* | z990esa-*-* | z9esa-*-* | z10esa-*-* | z196esa-*-*]])
-
--define(S390X_PATTERN,
-+define([S390X_PATTERN],
- [[s390x-*-* | z900-*-* | z990-*-* | z9-*-* | z10-*-* | z196-*-*]])
-
--define(X86_PATTERN,
-+define([X86_PATTERN],
- [[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]])
-
--define(X86_64_PATTERN,
-+define([X86_64_PATTERN],
- [[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | bulldozer-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]])
-
- dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY)
-@@ -70,7 +70,7 @@ dnl x86 -> x86
- dnl x86/k6 -> k6
- dnl x86/k6/mmx -> k6_mmx
-
--define(GMP_FAT_SUFFIX,
-+define([GMP_FAT_SUFFIX],
- [[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]])
-
-
-@@ -79,7 +79,7 @@ dnl ----------------------------------
- dnl Emit code to remove any occurrence of ITEM from $LISTVAR. ITEM can be a
- dnl shell expression like $foo if desired.
-
--define(GMP_REMOVE_FROM_LIST,
-+define([GMP_REMOVE_FROM_LIST],
- [remove_from_list_tmp=
- for remove_from_list_i in $[][$1]; do
- if test $remove_from_list_i = [$2]; then :;
-@@ -95,12 +95,12 @@ dnl GMP_STRIP_PATH(subdir)
- dnl ----------------------
- dnl Strip entries */subdir from $path and $fat_path.
-
--define(GMP_STRIP_PATH,
-+define([GMP_STRIP_PATH],
- [GMP_STRIP_PATH_VAR(path, [$1])
- GMP_STRIP_PATH_VAR(fat_path, [$1])
- ])
-
--define(GMP_STRIP_PATH_VAR,
-+define([GMP_STRIP_PATH_VAR],
- [tmp_path=
- for i in $[][$1]; do
- case $i in
-@@ -121,7 +121,7 @@ dnl
- dnl Dummy value for GMP_LIMB_BITS is enough
- dnl for all current configure-time uses of gmp.h.
-
--define(GMP_INCLUDE_GMP_H,
-+define([GMP_INCLUDE_GMP_H],
- [[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */
- #define GMP_NAIL_BITS $GMP_NAIL_BITS
- #define GMP_LIMB_BITS 123
-@@ -136,7 +136,7 @@ dnl Expand at autoconf time to the valu
- dnl FILE. The regexps here aren't very rugged, but are enough for gmp.
- dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted.
-
--define(GMP_HEADER_GETVAL,
-+define([GMP_HEADER_GETVAL],
- [patsubst(patsubst(
- esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]),
- [^.*$1[ ]+],[]),
-@@ -150,7 +150,7 @@ dnl The gmp version number, extracted f
- dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits
- dnl like 3.0.1 if patchlevel > 0.
-
--define(GMP_VERSION,
-+define([GMP_VERSION],
- [GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl
- .GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl
- .GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)])
-@@ -1512,7 +1512,9 @@ esac
- echo ["define(<CONFIG_TOP_SRCDIR>,<\`$tmp'>)"] >>$gmp_tmpconfigm4
-
- # All CPUs use asm-defs.m4
--echo ["include][(CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4')"] >>$gmp_tmpconfigm4i
-+echo -n ["include("] >>$gmp_tmpconfigm4i
-+echo -n ["CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4'"] >>$gmp_tmpconfigm4i
-+echo [")"] >>$gmp_tmpconfigm4i
- ])
-
-
-Index: gmp-5.0.3/configure.in
-===================================================================
---- gmp-5.0.3.orig/configure.in
-+++ gmp-5.0.3/configure.in
-@@ -29,12 +29,6 @@ AC_REVISION($Revision$)
- AC_PREREQ(2.59)
- AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see http://gmplib.org/manual/Reporting-Bugs.html], gmp)
- AC_CONFIG_SRCDIR(gmp-impl.h)
--m4_pattern_forbid([^[ \t]*GMP_])
--m4_pattern_allow(GMP_LDFLAGS)
--m4_pattern_allow(GMP_LIMB_BITS)
--m4_pattern_allow(GMP_MPARAM_H_SUGGEST)
--m4_pattern_allow(GMP_NAIL_BITS)
--m4_pattern_allow(GMP_NUMB_BITS)
-
- # If --target is not used then $target_alias is empty, but if say
- # "./configure athlon-pc-freebsd3.5" is used, then all three of
-@@ -311,7 +305,7 @@ AH_VERBATIM([HAVE_HOST_CPU_1],
- # After GMP specific searches and tests, the standard autoconf AC_PROG_CC is
- # called. User selections of CC etc are respected.
- #
--# Care is taken not to use macros like AC_TRY_COMPILE during the GMP
-+# Care is taken not to use macros like AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) during the GMP
- # pre-testing, since they of course depend on AC_PROG_CC, and also some of
- # them cache their results, which is not wanted.
- #
-@@ -403,7 +397,7 @@ abilist="standard"
- # FIXME: We'd like to prefer an ANSI compiler, perhaps by preferring
- # c89 over cc here. But note that on HP-UX c89 provides a castrated
- # environment, and would want to be excluded somehow. Maybe
--# AC_PROG_CC_STDC already does enough to stick cc into ANSI mode and
-+# already does enough to stick cc into ANSI mode and
- # we don't need to worry.
- #
- cclist="gcc cc"
-@@ -1666,7 +1660,7 @@ esac
- CFLAGS_or_unset=${CFLAGS-'(unset)'}
- CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
-
--cat >&AC_FD_CC <<EOF
-+cat >&AS_MESSAGE_LOG_FD() <<EOF
- User:
- ABI=$ABI
- CC=$CC
-@@ -2073,7 +2067,6 @@ AC_SUBST(DEFN_LONG_LONG_LIMB)
-
- # The C compiler and preprocessor, put into ANSI mode if possible.
- AC_PROG_CC
--AC_PROG_CC_STDC
- AC_PROG_CPP
- GMP_H_ANSI
-
-@@ -2096,11 +2089,11 @@ AC_SUBST(CCAS)
-
- # The C++ compiler, if desired.
- want_cxx=no
-+AC_PROG_CXX
- if test $enable_cxx != no; then
- test_CXXFLAGS=${CXXFLAGS+set}
-- AC_PROG_CXX
-
-- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
-+ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
- cxxflags_ac_prog_cxx=$CXXFLAGS
- cxxflags_list=ac_prog_cxx
-
-@@ -2206,7 +2199,7 @@ case $host in
- esac
-
-
--cat >&AC_FD_CC <<EOF
-+cat >&AS_MESSAGE_LOG_FD() <<EOF
- Decided:
- ABI=$ABI
- CC=$CC
-@@ -3465,7 +3458,7 @@ GMP_FINISH
- # FIXME: Upcoming version of autoconf/automake may not like broken lines.
- # Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
-
--AC_OUTPUT(Makefile \
-+AC_CONFIG_FILES([Makefile \
- mpbsd/Makefile mpf/Makefile mpn/Makefile mpq/Makefile \
- mpz/Makefile printf/Makefile scanf/Makefile cxx/Makefile \
- tests/Makefile tests/devel/Makefile tests/mpbsd/Makefile \
-@@ -3474,4 +3467,5 @@ AC_OUTPUT(Makefile \
- tests/cxx/Makefile \
- doc/Makefile tune/Makefile \
- demos/Makefile demos/calc/Makefile demos/expr/Makefile \
-- gmp.h:gmp-h.in mp.h:mp-h.in)
-+ gmp.h:gmp-h.in mp.h:mp-h.in])
-+AC_OUTPUT
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch b/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch
deleted file mode 100644
index aaffaf14c5..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/disable-stdc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Pending
-
-# "extern inline" in traditional gcc means that the function should be
-# inlined wherever it's seen, while in C99, "extern inline" means that i
-# the function should only be inlined where the inline definition is
-# seen while in other places it's not inlined:
-# http://gcc.gnu.org/ml/gcc/2006-11/msg00006.html
-#
-# gmp checks "--std=gnu99" to use C99 convention however it internally
-# defines some "extern inline" functions in gmp.h, which is included
-# by mainly .c files and finally lead a flood of redefinition function
-# errors when linking objects together.
-#
-# So disable C99/ANSI detection to stick to tranditional gcc behavior
-#
-# by Kevin Tian <kevin.tian@intel.com>, 2010-08-13
-#
-# (this patch is licensed under GPLv2+)
-
-diff --git a/configure.in b/configure.in
-index 450cc92..aab0b59 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1869,9 +1869,7 @@ AC_SUBST(DEFN_LONG_LONG_LIMB)
-
- # The C compiler and preprocessor, put into ANSI mode if possible.
- AC_PROG_CC
--AC_PROG_CC_STDC
- AC_PROG_CPP
--GMP_H_ANSI
-
-
- # The C compiler on the build system, and associated tests.
diff --git a/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch b/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
deleted file mode 100644
index fbd8a39d01..0000000000
--- a/meta/recipes-support/gmp/gmp-4.2.1/gmp_fix_for_automake-1.12.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Upstream-Status: Pending
-
-automake 1.12 has depricated automatic de-ANSI-fication support
-
-this patch avoids these kinds of errors:
-
-| configure.in:2240: error: automatic de-ANSI-fication support has been removed
-| Makefile.am:28: error: automatic de-ANSI-fication support has been removed
-
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/05/02
-
-Index: gmp-4.2.1/configure.in
-===================================================================
---- gmp-4.2.1.orig/configure.in
-+++ gmp-4.2.1/configure.in
-@@ -67,7 +67,7 @@ dnl
- dnl Note that there's a copy of these options in the top-level Makefile.am,
- dnl so update there too if changing anything.
- dnl
--AM_INIT_AUTOMAKE([1.8 gnu no-dependencies $(top_builddir)/ansi2knr])
-+AM_INIT_AUTOMAKE([1.8 gnu no-dependencies])
- AM_CONFIG_HEADER(config.h:config.in)
- AM_MAINTAINER_MODE
-
-@@ -2022,9 +2022,6 @@ fi
- echo " MPN_PATH=\"$path\""
-
-
--# Automake ansi2knr support.
--AM_C_PROTOTYPES
--
- GMP_PROG_AR
- GMP_PROG_NM
-
-Index: gmp-4.2.1/Makefile.am
-===================================================================
---- gmp-4.2.1.orig/Makefile.am
-+++ gmp-4.2.1/Makefile.am
-@@ -27,7 +27,7 @@
- # Makefiles in subdirectories, but here we must omit it so automake gives
- # the actual ansi2knr build rule, not "cd $(top_builddir) && make ansi2knr".
- #
--AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies ansi2knr
-+AUTOMAKE_OPTIONS = 1.8 gnu no-dependencies
-
-
- # Libtool -version-info for libgmp.la and libmp.la. See "Versioning" in the
diff --git a/meta/recipes-support/gmp/gmp.inc b/meta/recipes-support/gmp/gmp.inc
index d025e07256..558ee06799 100644
--- a/meta/recipes-support/gmp/gmp.inc
+++ b/meta/recipes-support/gmp/gmp.inc
@@ -4,9 +4,9 @@ DESCRIPTION = "GMP is a free library for arbitrary precision arithmetic, operati
HOMEPAGE = "http://gmplib.org/"
LICENSE = "GPLv3 LGPLv3"
-REVISION = ""
+REVISION ?= ""
-SRC_URI = "ftp://ftp.gmplib.org/pub/gmp-${PV}/gmp-${PV}${REVISION}.tar.bz2 \
+SRC_URI = "https://gmplib.org/download/${BPN}/${BP}${REVISION}.tar.bz2 \
file://configure.patch \
file://amd64.patch "
@@ -18,6 +18,9 @@ acpaths = ""
BBCLASSEXTEND = "native nativesdk"
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[readline] = "--with-readline=yes,--with-readline=no,readline"
+
EXTRA_OECONF += " --enable-cxx=detect"
PACKAGES =+ "libgmpxx"
diff --git a/meta/recipes-support/gmp/gmp-5.1.1/append_user_provided_flags.patch b/meta/recipes-support/gmp/gmp/append_user_provided_flags.patch
index ae1386c4c1..ae1386c4c1 100644
--- a/meta/recipes-support/gmp/gmp-5.1.1/append_user_provided_flags.patch
+++ b/meta/recipes-support/gmp/gmp/append_user_provided_flags.patch
diff --git a/meta/recipes-support/gmp/gmp-5.1.1/configure.patch b/meta/recipes-support/gmp/gmp/configure.patch
index 591ea79051..349da3c6b0 100644
--- a/meta/recipes-support/gmp/gmp-5.1.1/configure.patch
+++ b/meta/recipes-support/gmp/gmp/configure.patch
@@ -4,17 +4,23 @@ Updated to apply to gmp-5.1.0
Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd gmp-5.1.0/acinclude.m4 gmp-5.1.0/acinclude.m4
---- gmp-5.1.0/acinclude.m4 2012-12-18 21:05:09.000000000 +0200
-+++ gmp-5.1.0/acinclude.m4 2013-01-02 05:19:26.977013073 +0200
-@@ -30,29 +30,29 @@
+---
+ acinclude.m4 | 32 +++++++++++++++++---------------
+ configure.ac | 26 +++++++++-----------------
+ 2 files changed, 26 insertions(+), 32 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index 227712a..199aa6f 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -40,29 +40,29 @@ dnl a_out.exe - OpenVMS DEC C called via GNV wrapper (gnv.sourceforge.net)
dnl conftest.exe - various DOS compilers
-
-
+
+
-define(IA64_PATTERN,
+define([IA64_PATTERN],
[[ia64*-*-* | itanium-*-* | itanium2-*-*]])
-
+
dnl Need to be careful not to match m6811, m6812, m68hc11 and m68hc12, all
dnl of which config.sub accepts. (Though none of which are likely to work
dnl with GMP.)
@@ -22,105 +28,106 @@ diff -Nurd gmp-5.1.0/acinclude.m4 gmp-5.1.0/acinclude.m4
-define(M68K_PATTERN,
+define([M68K_PATTERN],
[[m68k-*-* | m68[0-9][0-9][0-9]-*-*]])
-
+
-define(POWERPC64_PATTERN,
+define([POWERPC64_PATTERN],
[[powerpc64-*-* | powerpc64le-*-* | powerpc620-*-* | powerpc630-*-* | powerpc970-*-* | power[3-9]-*-*]])
-
+
-define(S390_PATTERN,
+define([S390_PATTERN],
[[s390-*-* | z900esa-*-* | z990esa-*-* | z9esa-*-* | z10esa-*-* | z196esa-*-*]])
-
+
-define(S390X_PATTERN,
+define([S390X_PATTERN],
[[s390x-*-* | z900-*-* | z990-*-* | z9-*-* | z10-*-* | z196-*-*]])
-
+
-define(X86_PATTERN,
+define([X86_PATTERN],
[[i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | geode*-*-* | atom-*-*]])
-
+
-define(X86_64_PATTERN,
+define([X86_64_PATTERN],
- [[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | bulldozer-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]])
-
+ [[athlon64-*-* | k8-*-* | k10-*-* | bobcat-*-* | jaguar-*-* | bulldozer-*-* | piledriver-*-* | steamroller-*-* | excavator-*-* | pentium4-*-* | atom-*-* | core2-*-* | corei*-*-* | x86_64-*-* | nano-*-*]])
+
dnl GMP_FAT_SUFFIX(DSTVAR, DIRECTORY)
-@@ -70,7 +70,7 @@
+@@ -80,7 +80,7 @@ dnl x86 -> x86
dnl x86/k6 -> k6
dnl x86/k6/mmx -> k6_mmx
-
+
-define(GMP_FAT_SUFFIX,
+define([GMP_FAT_SUFFIX],
[[$1=`echo $2 | sed -e '/\//s:^[^/]*/::' -e 's:[\\/]:_:g'`]])
-
-
-@@ -79,7 +79,7 @@
+
+
+@@ -89,7 +89,7 @@ dnl ----------------------------------
dnl Emit code to remove any occurrence of ITEM from $LISTVAR. ITEM can be a
dnl shell expression like $foo if desired.
-
+
-define(GMP_REMOVE_FROM_LIST,
+define([GMP_REMOVE_FROM_LIST],
[remove_from_list_tmp=
for remove_from_list_i in $[][$1]; do
if test $remove_from_list_i = [$2]; then :;
-@@ -95,12 +95,12 @@
+@@ -105,12 +105,12 @@ dnl GMP_STRIP_PATH(subdir)
dnl ----------------------
dnl Strip entries */subdir from $path and $fat_path.
-
+
-define(GMP_STRIP_PATH,
+define([GMP_STRIP_PATH],
[GMP_STRIP_PATH_VAR(path, [$1])
GMP_STRIP_PATH_VAR(fat_path, [$1])
])
-
+
-define(GMP_STRIP_PATH_VAR,
+define([GMP_STRIP_PATH_VAR],
[tmp_path=
for i in $[][$1]; do
case $i in
-@@ -121,7 +121,7 @@
+@@ -131,7 +131,7 @@ dnl
dnl Dummy value for GMP_LIMB_BITS is enough
dnl for all current configure-time uses of gmp.h.
-
+
-define(GMP_INCLUDE_GMP_H,
+define([GMP_INCLUDE_GMP_H],
[[#define __GMP_WITHIN_CONFIGURE 1 /* ignore template stuff */
#define GMP_NAIL_BITS $GMP_NAIL_BITS
#define GMP_LIMB_BITS 123
-@@ -136,7 +136,7 @@
+@@ -146,7 +146,7 @@ dnl Expand at autoconf time to the value of a "#define NAME" from the given
dnl FILE. The regexps here aren't very rugged, but are enough for gmp.
dnl /dev/null as a parameter prevents a hang if $2 is accidentally omitted.
-
+
-define(GMP_HEADER_GETVAL,
+define([GMP_HEADER_GETVAL],
[patsubst(patsubst(
esyscmd([grep "^#define $1 " $2 /dev/null 2>/dev/null]),
[^.*$1[ ]+],[]),
-@@ -150,7 +150,7 @@
+@@ -160,7 +160,7 @@ dnl The gmp version number, extracted from the #defines in gmp-h.in at
dnl autoconf time. Two digits like 3.0 if patchlevel <= 0, or three digits
dnl like 3.0.1 if patchlevel > 0.
-
+
-define(GMP_VERSION,
+define([GMP_VERSION],
[GMP_HEADER_GETVAL(__GNU_MP_VERSION,gmp-h.in)[]dnl
.GMP_HEADER_GETVAL(__GNU_MP_VERSION_MINOR,gmp-h.in)[]dnl
.GMP_HEADER_GETVAL(__GNU_MP_VERSION_PATCHLEVEL,gmp-h.in)])
-@@ -1512,7 +1512,9 @@
+@@ -1524,7 +1524,9 @@ esac
echo ["define(<CONFIG_TOP_SRCDIR>,<\`$tmp'>)"] >>$gmp_tmpconfigm4
-
+
# All CPUs use asm-defs.m4
-echo ["include][(CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4')"] >>$gmp_tmpconfigm4i
+echo -n ["include("] >>$gmp_tmpconfigm4i
+echo -n ["CONFIG_TOP_SRCDIR\`/mpn/asm-defs.m4'"] >>$gmp_tmpconfigm4i
+echo [")"] >>$gmp_tmpconfigm4i
])
-
-
-diff -Nurd gmp-5.1.0/configure.ac gmp-5.1.0/configure.ac
---- gmp-5.1.0/configure.ac 2012-12-18 21:05:09.000000000 +0200
-+++ gmp-5.1.0/configure.ac 2013-01-02 05:19:26.977013073 +0200
-@@ -29,13 +29,6 @@
+
+
+diff --git a/configure.ac b/configure.ac
+index 64b2c50..f07b821 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -39,14 +39,6 @@ AC_REVISION($Revision$)
AC_PREREQ(2.59)
- AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see http://gmplib.org/manual/Reporting-Bugs.html], gmp)
+ AC_INIT(GNU MP, GMP_VERSION, [gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html], gmp)
AC_CONFIG_SRCDIR(gmp-impl.h)
-m4_pattern_forbid([^[ \t]*GMP_])
-m4_pattern_allow(GMP_LDFLAGS)
@@ -129,10 +136,11 @@ diff -Nurd gmp-5.1.0/configure.ac gmp-5.1.0/configure.ac
-m4_pattern_allow(GMP_NAIL_BITS)
-m4_pattern_allow(GMP_NUMB_BITS)
-m4_pattern_allow(GMP_NONSTD_ABI)
-
+-m4_pattern_allow(GMP_CPU_TYPE)
+
# If --target is not used then $target_alias is empty, but if say
# "./configure athlon-pc-freebsd3.5" is used, then all three of
-@@ -314,7 +307,7 @@
+@@ -348,7 +340,7 @@ AH_VERBATIM([HAVE_HOST_CPU_1],
# After GMP specific searches and tests, the standard autoconf AC_PROG_CC is
# called. User selections of CC etc are respected.
#
@@ -141,7 +149,7 @@ diff -Nurd gmp-5.1.0/configure.ac gmp-5.1.0/configure.ac
# pre-testing, since they of course depend on AC_PROG_CC, and also some of
# them cache their results, which is not wanted.
#
-@@ -406,7 +399,7 @@
+@@ -440,7 +432,7 @@ abilist="standard"
# FIXME: We'd like to prefer an ANSI compiler, perhaps by preferring
# c89 over cc here. But note that on HP-UX c89 provides a castrated
# environment, and would want to be excluded somehow. Maybe
@@ -150,61 +158,65 @@ diff -Nurd gmp-5.1.0/configure.ac gmp-5.1.0/configure.ac
# we don't need to worry.
#
cclist="gcc cc"
-@@ -1727,7 +1720,7 @@
+@@ -1843,7 +1835,7 @@ esac
CFLAGS_or_unset=${CFLAGS-'(unset)'}
CPPFLAGS_or_unset=${CPPFLAGS-'(unset)'}
-
+
-cat >&AC_FD_CC <<EOF
+cat >&AS_MESSAGE_LOG_FD() <<EOF
User:
ABI=$ABI
CC=$CC
-@@ -2147,7 +2140,6 @@
-
+@@ -2264,7 +2256,6 @@ AC_SUBST(DEFN_LONG_LONG_LIMB)
+
# The C compiler and preprocessor, put into ANSI mode if possible.
AC_PROG_CC
-AC_PROG_CC_STDC
AC_PROG_CPP
-
-
-@@ -2169,11 +2161,11 @@
-
+
+
+@@ -2286,11 +2277,11 @@ AC_SUBST(CCAS)
+
# The C++ compiler, if desired.
want_cxx=no
+AC_PROG_CXX
if test $enable_cxx != no; then
test_CXXFLAGS=${CXXFLAGS+set}
- AC_PROG_CXX
-
+
- echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AC_FD_CC
+ echo "CXXFLAGS chosen by autoconf: $CXXFLAGS" >&AS_MESSAGE_LOG_FD()
cxxflags_ac_prog_cxx=$CXXFLAGS
cxxflags_list=ac_prog_cxx
-
-@@ -2289,7 +2281,7 @@
+
+@@ -2412,7 +2403,7 @@ if test "$enable_assembly" = "no"; then
fi
-
-
+
+
-cat >&AC_FD_CC <<EOF
+cat >&AS_MESSAGE_LOG_FD() <<EOF
Decided:
ABI=$ABI
CC=$CC
-@@ -3638,7 +3630,7 @@
+@@ -3781,7 +3772,7 @@ GMP_FINISH
# FIXME: Upcoming version of autoconf/automake may not like broken lines.
# Right now automake isn't accepting the new AC_CONFIG_FILES scheme.
-
+
-AC_OUTPUT(Makefile \
+AC_CONFIG_FILES([Makefile \
mpf/Makefile mpn/Makefile mpq/Makefile \
mpz/Makefile printf/Makefile scanf/Makefile rand/Makefile cxx/Makefile \
tests/Makefile tests/devel/Makefile \
-@@ -3647,7 +3639,8 @@
+@@ -3790,7 +3781,8 @@ AC_OUTPUT(Makefile \
tests/cxx/Makefile \
doc/Makefile tune/Makefile \
demos/Makefile demos/calc/Makefile demos/expr/Makefile \
- gmp.h:gmp-h.in)
+ gmp.h:gmp-h.in])
+AC_OUTPUT
-
+
AC_MSG_NOTICE([summary of build options:
+
+--
+1.9.1
+
diff --git a/meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch b/meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch
new file mode 100644
index 0000000000..1113b41ecd
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp/gmp-6.0.0-ppc64.patch
@@ -0,0 +1,26 @@
+
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+This patch with pulled from gmp.
+https://gmplib.org/repo/gmp/rev/4a6d258b467f
+Upstream-Status: Backport
+
+# HG changeset patch
+# User Torbjorn Granlund <tege@gmplib.org>
+# Date 1395835068 -3600
+# Node ID 4a6d258b467f661da0894cc60ecd060f2e3c67c7
+# Parent 301ce2788826a2d4d2725bd5cf01e998638db37a
+Provide default for BMOD_1_TO_MOD_1_THRESHOLD.
+
+diff -r 301ce2788826 -r 4a6d258b467f mpn/powerpc64/mode64/gcd_1.asm
+--- a/mpn/powerpc64/mode64/gcd_1.asm Tue Mar 25 15:34:52 2014 +0100
++++ b/mpn/powerpc64/mode64/gcd_1.asm Wed Mar 26 12:57:48 2014 +0100
+@@ -43,6 +43,9 @@
+ define(`n', `r4')
+ define(`v0', `r5')
+
++ifdef(`BMOD_1_TO_MOD_1_THRESHOLD',,
++ `define(`BMOD_1_TO_MOD_1_THRESHOLD',30)')
++
+ EXTERN_FUNC(mpn_mod_1)
+ EXTERN_FUNC(mpn_modexact_1c_odd)
diff --git a/meta/recipes-support/gmp/gmp_4.2.1.bb b/meta/recipes-support/gmp/gmp_4.2.1.bb
deleted file mode 100644
index 5c93925daa..0000000000
--- a/meta/recipes-support/gmp/gmp_4.2.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "GNU multiprecision arithmetic library"
-DESCRIPTION = "GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers"
-HOMEPAGE = "http://gmplib.org/"
-BUGTRACKER = "http://gmplib.org/mailman/listinfo/gmp-bugs"
-# demo is licensed under GPLv2+, which however we don't package at all
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a \
- file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24 \
- file://gmp-h.in;beginline=6;endline=21;md5=e056f74a12c3277d730dbcfb85d2ca34"
-PR = "r2"
-
-SRC_URI = "${GNU_MIRROR}/gmp/${BP}.tar.bz2 \
- file://disable-stdc.patch \
- file://gmp_fix_for_automake-1.12.patch \
- "
-
-SRC_URI[md5sum] = "091c56e0e1cca6b09b17b69d47ef18e3"
-SRC_URI[sha256sum] = "d07ffcb37eecec35c5ec72516d10b35fdf6e6fef1fcf1dcd37e30b8cbf8bf941"
-
-inherit autotools texinfo
diff --git a/meta/recipes-support/gmp/gmp_5.1.1.bb b/meta/recipes-support/gmp/gmp_5.1.1.bb
deleted file mode 100644
index 602061096a..0000000000
--- a/meta/recipes-support/gmp/gmp_5.1.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require gmp.inc
-LICENSE="LGPLv3&GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://version.c;endline=18;md5=d8c56b52b9092346b9f93b4da65ef790"
-
-SRC_URI_append = " file://use-includedir.patch \
- file://append_user_provided_flags.patch \
- "
-
-SRC_URI[md5sum] = "2fa018a7cd193c78494525f236d02dd6"
-SRC_URI[sha256sum] = "a0d4779f48b36519dfaceb5f987a7c76fcac223258bebea3bb2244310970afad"
diff --git a/meta/recipes-support/gmp/gmp_6.0.0.bb b/meta/recipes-support/gmp/gmp_6.0.0.bb
new file mode 100644
index 0000000000..6218491142
--- /dev/null
+++ b/meta/recipes-support/gmp/gmp_6.0.0.bb
@@ -0,0 +1,14 @@
+require gmp.inc
+LICENSE="GPLv2 | LGPLv3"
+REVISION="a"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSERv3;md5=6a6a8e020838b23406c81b19c1d46df6 \
+ file://COPYINGv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+"
+SRC_URI_append = " file://use-includedir.patch \
+ file://append_user_provided_flags.patch \
+ file://gmp-6.0.0-ppc64.patch \
+"
+
+SRC_URI[md5sum] = "b7ff2d88cae7f8085bd5006096eed470"
+SRC_URI[sha256sum] = "7f8e9a804b9c6d07164cf754207be838ece1219425d64e28cfa3e70d5c759aaf"
diff --git a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch
new file mode 100644
index 0000000000..840666f302
--- /dev/null
+++ b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing/0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch
@@ -0,0 +1,35 @@
+From b1de2c6290bc0651fe87a8c4fb52e7a0a5fe6322 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Oct 2014 16:01:49 -0700
+Subject: [PATCH] gsystem-subprocess.c: Enable GNU extensions in system C
+ library
+
+This should export O_CLOEXEC where it is only
+available when _GNU_SOURCE is defined .e.g. uclibc based systems
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Upstream-Status: Pending
+
+---
+ src/libgsystem/gsystem-subprocess.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/libgsystem/gsystem-subprocess.c b/src/libgsystem/gsystem-subprocess.c
+index a967896..a52a362 100644
+--- a/src/libgsystem/gsystem-subprocess.c
++++ b/src/libgsystem/gsystem-subprocess.c
+@@ -18,6 +18,10 @@
+
+ #include "config.h"
+
++#ifndef _GNU_SOURCE
++#define _GNU_SOURCE
++#endif
++
+ #define _GSYSTEM_NO_LOCAL_ALLOC
+ #include "libgsystem.h"
+
+--
+2.1.1
+
diff --git a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb
index 146a02ac7d..482de99d4d 100644
--- a/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb
+++ b/meta/recipes-support/gnome-desktop-testing/gnome-desktop-testing_2014.1.bb
@@ -2,7 +2,9 @@ SUMMARY = "Test runner for GNOME-style installed tests"
HOMEPAGE = "https://wiki.gnome.org/GnomeGoals/InstalledTests"
LICENSE = "LGPLv2+"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.xz"
+SRC_URI = "${GNOME_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.xz \
+ file://0001-gsystem-subprocess.c-Enable-GNU-extensions-in-system.patch \
+ "
SRC_URI[md5sum] = "a608ad72a77e23a1aecdfd8d07a94baf"
SRC_URI[sha256sum] = "1a3eed73678dd22d09d6a7ec4f899557df3e8b4a802affa76d0f163b31286539"
@@ -11,7 +13,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
DEPENDS = "glib-2.0"
-inherit autotools-brokensep pkgconfig
+inherit autotools pkgconfig
+
+PR = "r1"
PACKAGECONFIG ??= ""
PACKAGECONFIG[journald] = "--with-systemd-journal,--without-systemd-journal,systemd,systemd"
diff --git a/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch b/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch
new file mode 100644
index 0000000000..c9addca28e
--- /dev/null
+++ b/meta/recipes-support/gnupg/gnupg-1.4.7/CVE-2013-4242.patch
@@ -0,0 +1,62 @@
+From e2202ff2b704623efc6277fb5256e4e15bac5676 Mon Sep 17 00:00:00 2001
+From: Werner Koch <wk@gnupg.org>
+Date: Thu, 25 Jul 2013 11:17:52 +0200
+Subject: [PATCH] Mitigate a flush+reload cache attack on RSA secret
+ exponents.
+
+commit e2202ff2b704623efc6277fb5256e4e15bac5676 from
+git://git.gnupg.org/libgcrypt.git
+
+* mpi/mpi-pow.c (gcry_mpi_powm): Always perfrom the mpi_mul for
+exponents in secure memory.
+
+Upstream-Status: Backport
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+--
+
+The attack is published as http://eprint.iacr.org/2013/448 :
+
+Flush+Reload: a High Resolution, Low Noise, L3 Cache Side-Channel
+Attack by Yuval Yarom and Katrina Falkner. 18 July 2013.
+
+ Flush+Reload is a cache side-channel attack that monitors access to
+ data in shared pages. In this paper we demonstrate how to use the
+ attack to extract private encryption keys from GnuPG. The high
+ resolution and low noise of the Flush+Reload attack enables a spy
+ program to recover over 98% of the bits of the private key in a
+ single decryption or signing round. Unlike previous attacks, the
+ attack targets the last level L3 cache. Consequently, the spy
+ program and the victim do not need to share the execution core of
+ the CPU. The attack is not limited to a traditional OS and can be
+ used in a virtualised environment, where it can attack programs
+ executing in a different VM.
+
+Index: gnupg-1.4.7/mpi/mpi-pow.c
+===================================================================
+--- gnupg-1.4.7.orig/mpi/mpi-pow.c
++++ gnupg-1.4.7/mpi/mpi-pow.c
+@@ -212,7 +212,13 @@ mpi_powm( MPI res, MPI base, MPI exponen
+ tp = rp; rp = xp; xp = tp;
+ rsize = xsize;
+
+- if( (mpi_limb_signed_t)e < 0 ) {
++ /* To mitigate the Yarom/Falkner flush+reload cache
++ * side-channel attack on the RSA secret exponent, we do
++ * the multiplication regardless of the value of the
++ * high-bit of E. But to avoid this performance penalty
++ * we do it only if the exponent has been stored in secure
++ * memory and we can thus assume it is a secret exponent. */
++ if (esec || (mpi_limb_signed_t)e < 0) {
+ /*mpihelp_mul( xp, rp, rsize, bp, bsize );*/
+ if( bsize < KARATSUBA_THRESHOLD ) {
+ mpihelp_mul( xp, rp, rsize, bp, bsize );
+@@ -227,6 +233,8 @@ mpi_powm( MPI res, MPI base, MPI exponen
+ mpihelp_divrem(xp + msize, 0, xp, xsize, mp, msize);
+ xsize = msize;
+ }
++ }
++ if ( (mpi_limb_signed_t)e < 0 ) {
+
+ tp = rp; rp = xp; xp = tp;
+ rsize = xsize;
diff --git a/meta/recipes-support/gnupg/gnupg/dirmngr-uses-libgpg-error.patch b/meta/recipes-support/gnupg/gnupg/dirmngr-uses-libgpg-error.patch
new file mode 100644
index 0000000000..3dc506c2f2
--- /dev/null
+++ b/meta/recipes-support/gnupg/gnupg/dirmngr-uses-libgpg-error.patch
@@ -0,0 +1,16 @@
+Upstream-Status: Pending
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+Index: gnupg-2.1.0/dirmngr/Makefile.am
+===================================================================
+--- gnupg-2.1.0.orig/dirmngr/Makefile.am
++++ gnupg-2.1.0/dirmngr/Makefile.am
+@@ -71,7 +71,8 @@ endif
+ dirmngr_LDADD = $(libcommontlsnpth) $(libcommonpth) \
+ ../gl/libgnu.a $(DNSLIBS) $(LIBASSUAN_LIBS) \
+ $(LIBGCRYPT_LIBS) $(KSBA_LIBS) $(NPTH_LIBS) \
+- $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV)
++ $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) $(LIBINTL) $(LIBICONV) \
++ $(GPG_ERROR_LIBS)
+ if !USE_LDAPWRAPPER
+ dirmngr_LDADD += $(ldaplibs)
+ endif
diff --git a/meta/recipes-support/gnupg/gnupg/pkgconfig.patch b/meta/recipes-support/gnupg/gnupg/pkgconfig.patch
index ae92392dae..5e036bac90 100644
--- a/meta/recipes-support/gnupg/gnupg/pkgconfig.patch
+++ b/meta/recipes-support/gnupg/gnupg/pkgconfig.patch
@@ -5,11 +5,11 @@ Upstream-Status: Rejected
RP 2014/5/22
-Index: gnupg-2.0.22/m4/gnupg-pth.m4
+Index: gnupg-2.1.0/m4/gnupg-pth.m4
===================================================================
---- gnupg-2.0.22.orig/m4/gnupg-pth.m4 2013-10-04 12:32:53.000000000 +0000
-+++ gnupg-2.0.22/m4/gnupg-pth.m4 2014-05-13 21:33:21.000000000 +0000
-@@ -17,33 +17,9 @@
+--- gnupg-2.1.0.orig/m4/gnupg-pth.m4
++++ gnupg-2.1.0/m4/gnupg-pth.m4
+@@ -17,33 +17,9 @@ dnl implied warranty of MERCHANTABILITY
# Taken and modified from the m4 macros which come with Pth.
AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
[
@@ -44,7 +44,7 @@ Index: gnupg-2.0.22/m4/gnupg-pth.m4
if test $have_pth = yes; then
AC_MSG_RESULT(yes)
AC_MSG_CHECKING([whether PTH installation is sane])
-@@ -51,9 +29,9 @@
+@@ -51,9 +27,9 @@ AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
_gnupg_pth_save_cflags=$CFLAGS
_gnupg_pth_save_ldflags=$LDFLAGS
_gnupg_pth_save_libs=$LIBS
@@ -57,30 +57,34 @@ Index: gnupg-2.0.22/m4/gnupg-pth.m4
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pth.h>
],
[[ pth_init ();]])],
-@@ -81,23 +59,11 @@
+@@ -80,26 +56,13 @@ AC_DEFUN([GNUPG_PTH_VERSION_CHECK],
+ # PTH_CLFAGS and PTH_LIBS are AS_SUBST.
#
AC_DEFUN([GNUPG_PATH_PTH],
-+[
-[ AC_ARG_WITH(pth-prefix,
- AC_HELP_STRING([--with-pth-prefix=PFX],
-- [prefix where GNU Pth is installed]),
+- [prefix where GNU Pth is installed (optional)]),
- pth_config_prefix="$withval", pth_config_prefix="")
- if test x$pth_config_prefix != x ; then
- PTH_CONFIG="$pth_config_prefix/bin/pth-config"
- fi
- AC_PATH_PROG(PTH_CONFIG, pth-config, no)
++[
tmp=ifelse([$1], ,1.3.7,$1)
- if test "$PTH_CONFIG" != "no"; then
- GNUPG_PTH_VERSION_CHECK($tmp)
-- if test $have_pth = yes; then
+- if test $have_pth = yes; then
- PTH_CFLAGS=`$PTH_CONFIG --cflags`
- PTH_LIBS=`$PTH_CONFIG --ldflags`
- PTH_LIBS="$PTH_LIBS `$PTH_CONFIG --libs --all`"
+- AC_DEFINE(HAVE_PTH, 1,
+ GNUPG_PTH_VERSION_CHECK($tmp)
+ if test $have_pth = yes; then
- AC_DEFINE(HAVE_PTH, 1,
++ AC_DEFINE(HAVE_PTH, 1,
[Defined if the GNU Pth is available])
- fi
fi
AC_SUBST(PTH_CFLAGS)
AC_SUBST(PTH_LIBS)
+ ])
+-
diff --git a/meta/recipes-support/gnupg/gnupg/use-pkgconfig-instead-of-npth-config.patch b/meta/recipes-support/gnupg/gnupg/use-pkgconfig-instead-of-npth-config.patch
new file mode 100644
index 0000000000..c6dbf1b75a
--- /dev/null
+++ b/meta/recipes-support/gnupg/gnupg/use-pkgconfig-instead-of-npth-config.patch
@@ -0,0 +1,72 @@
+Upstream-Status: Inappropriate [openembedded specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+
+Index: gnupg-2.1.0/m4/npth.m4
+===================================================================
+--- gnupg-2.1.0.orig/m4/npth.m4
++++ gnupg-2.1.0/m4/npth.m4
+@@ -17,10 +17,10 @@ AC_DEFUN([_AM_PATH_NPTH_CONFIG],
+ if test "x$npth_config_prefix" != x ; then
+ NPTH_CONFIG="$npth_config_prefix/bin/npth-config"
+ fi
+- AC_PATH_PROG(NPTH_CONFIG, npth-config, no)
++ AC_PATH_PROG(PKGCONFIG, pkg-config, no)
+
+- if test "$NPTH_CONFIG" != "no" ; then
+- npth_version=`$NPTH_CONFIG --version`
++ if test "$PKGCONFIG" != "no" ; then
++ npth_version=`$PKGCONFIG --modversion npth`
+ fi
+ npth_version_major=`echo $npth_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+@@ -45,7 +45,7 @@ AC_DEFUN([AM_PATH_NPTH],
+
+ AC_MSG_CHECKING(for NPTH - version >= $min_npth_version)
+ ok=no
+- if test "$NPTH_CONFIG" != "no" ; then
++ if test "$PKGCONFIG" != "no" ; then
+ req_major=`echo $min_npth_version | \
+ sed 's/\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+ req_minor=`echo $min_npth_version | \
+@@ -66,28 +66,9 @@ AC_DEFUN([AM_PATH_NPTH],
+ fi
+ if test $ok = yes; then
+ AC_MSG_RESULT([yes ($npth_version)])
+- else
+- AC_MSG_RESULT(no)
+- fi
+- if test $ok = yes; then
+- # If we have a recent NPTH, we should also check that the
+- # API is compatible.
+- if test "$req_npth_api" -gt 0 ; then
+- tmp=`$NPTH_CONFIG --api-version 2>/dev/null || echo 0`
+- if test "$tmp" -gt 0 ; then
+- AC_MSG_CHECKING([NPTH API version])
+- if test "$req_npth_api" -eq "$tmp" ; then
+- AC_MSG_RESULT([okay])
+- else
+- ok=no
+- AC_MSG_RESULT([does not match. want=$req_npth_api got=$tmp])
+- fi
+- fi
+- fi
+- fi
+- if test $ok = yes; then
+- NPTH_CFLAGS=`$NPTH_CONFIG --cflags`
+- NPTH_LIBS=`$NPTH_CONFIG --libs`
++ NPTH_CFLAGS=`$PKGCONFIG --cflags npth`
++ NPTH_LIBS=`$PKGCONFIG --libs npth`
++ AC_MSG_WARN([[GOT HERE - $NPTH_LIBS ]])
+ ifelse([$2], , :, [$2])
+ npth_config_host=`$NPTH_CONFIG --host 2>/dev/null || echo none`
+ if test x"$npth_config_host" != xnone ; then
+@@ -103,6 +84,7 @@ AC_DEFUN([AM_PATH_NPTH],
+ fi
+ fi
+ else
++ AC_MSG_RESULT(no)
+ NPTH_CFLAGS=""
+ NPTH_LIBS=""
+ ifelse([$3], , :, [$3])
diff --git a/meta/recipes-support/gnupg/gnupg_1.4.7.bb b/meta/recipes-support/gnupg/gnupg_1.4.7.bb
index 031eaf3cab..aef515d534 100644
--- a/meta/recipes-support/gnupg/gnupg_1.4.7.bb
+++ b/meta/recipes-support/gnupg/gnupg_1.4.7.bb
@@ -17,6 +17,7 @@ SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-${PV}.tar.bz2 \
file://curl_typeof_fix_backport.patch \
file://CVE-2013-4351.patch \
file://CVE-2013-4576.patch \
+ file://CVE-2013-4242.patch \
"
SRC_URI[md5sum] = "b06a141cca5cd1a55bbdd25ab833303c"
@@ -95,3 +96,7 @@ FILES_gpgv = "${bindir}/gpgv"
# Exclude debug files from the main packages
FILES_${PN} = "${bindir}/* ${datadir}/${BPN} ${libexecdir}/${BPN}/*"
FILES_${PN}-dbg += "${libexecdir}/${BPN}/.debug"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[curl] = "--with-libcurl=${STAGING_LIBDIR},--without-libcurl,curl"
+PACKAGECONFIG[libusb] = "--with-libusb=${STAGING_LIBDIR},--without-libusb,libusb-compat"
diff --git a/meta/recipes-support/gnupg/gnupg_2.0.22.bb b/meta/recipes-support/gnupg/gnupg_2.1.1.bb
index 0b003624c2..a7c42545bd 100644
--- a/meta/recipes-support/gnupg/gnupg_2.0.22.bb
+++ b/meta/recipes-support/gnupg/gnupg_2.1.1.bb
@@ -4,25 +4,26 @@ LICENSE = "GPLv3 & LGPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6"
-DEPENDS = "${PTH} libassuan libksba zlib bzip2 readline libgcrypt"
-PTH = "pth"
-PTH_libc-uclibc = "npth"
+DEPENDS = "npth libassuan libksba zlib bzip2 readline libgcrypt"
inherit autotools gettext texinfo pkgconfig
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://pkgconfig.patch"
+ file://pkgconfig.patch \
+ file://use-pkgconfig-instead-of-npth-config.patch \
+ file://dirmngr-uses-libgpg-error.patch \
+ "
-SRC_URI[md5sum] = "ee22e7b4fdbfcb50229c2e6db6db291e"
-SRC_URI[sha256sum] = "437d0ab259854359fc48aa8795af80cff4975e559c111c92c03d0bc91408e251"
+SRC_URI[md5sum] = "9a314c3dcef0a091de90b6aa4d467db5"
+SRC_URI[sha256sum] = "70ecd01d2875db62624c911c2fd815742f50aef5492698eb3bfc09a08690ce49"
EXTRA_OECONF = "--disable-ldap \
--disable-ccid-driver \
- --without-libcurl \
--with-zlib=${STAGING_LIBDIR}/.. \
--with-bzip2=${STAGING_LIBDIR}/.. \
--with-readline=${STAGING_LIBDIR}/.. \
"
+RRECOMMENDS_${PN} = "pinentry"
do_configure_prepend () {
# Else these could be used in prefernce to those in aclocal-copy
@@ -36,3 +37,5 @@ do_install_append() {
ln -sf gpg2 ${D}${bindir}/gpg
ln -sf gpgv2 ${D}${bindir}/gpgv
}
+
+RDEPENDS_${PN} = "gnutls"
diff --git a/meta/recipes-support/gnutls/gnutls.inc b/meta/recipes-support/gnutls/gnutls.inc
index 8820b0ef39..45fb529fa1 100644
--- a/meta/recipes-support/gnutls/gnutls.inc
+++ b/meta/recipes-support/gnutls/gnutls.inc
@@ -17,7 +17,7 @@ SHRT_VER = "${@d.getVar('PV',1).split('.')[0]}.${@d.getVar('PV',1).split('.')[1]
SRC_URI = "ftp://ftp.gnutls.org/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz"
-inherit autotools-brokensep texinfo binconfig pkgconfig gettext lib_package
+inherit autotools texinfo binconfig pkgconfig gettext lib_package
EXTRA_OECONF="--disable-rpath \
--with-included-libtasn1 \
@@ -25,6 +25,7 @@ EXTRA_OECONF="--disable-rpath \
--with-libpthread-prefix=${STAGING_DIR_HOST}${prefix} \
--with-libz-prefix=${STAGING_DIR_HOST}${prefix} \
--disable-guile \
+ --disable-crywrap \
--without-p11-kit \
"
@@ -34,6 +35,9 @@ do_configure_prepend() {
done
}
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tpm] = "--with-tpm, --without-tpm, trousers"
+
PACKAGES =+ "${PN}-openssl ${PN}-xx"
FILES_${PN}-dev += "${bindir}/gnutls-cli-debug"
@@ -42,4 +46,4 @@ FILES_${PN}-xx = "${libdir}/libgnutlsxx.so.*"
LDFLAGS_append_libc-uclibc += " -pthread"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch b/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch
new file mode 100644
index 0000000000..44a9934b5d
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls/configure.ac-fix-sed-command.patch
@@ -0,0 +1,31 @@
+From eb93aa7b986c84da60a3db40afb29d1a70c50223 Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Sat, 17 Jan 2015 17:02:15 +0000
+Subject: [PATCH] configure.ac: fix sed command
+
+The "sed 's/.bak//g'" matchs "bitbake", which would cause strange errors
+when the S contains "bitbake", fix to "sed 's/\.bak$//'`"
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c6818a0..1c4582d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -466,7 +466,7 @@ if test "$NEED_LIBOPTS_DIR" = "true";then
+ dnl replace libopts-generated files with distributed backups, if present
+ missing_baks=
+ for i in ${srcdir}/src/*-args.c.bak ${srcdir}/src/*-args.h.bak; do
+- nam=`echo $i|sed 's/.bak//g'`
++ nam=`echo $i|sed 's/\.bak$//'`
+ if test -f $i;then
+ cp -f $i $nam
+ else
+--
+2.0.1
+
diff --git a/meta/recipes-support/gnutls/gnutls_3.2.15.bb b/meta/recipes-support/gnutls/gnutls_3.2.15.bb
deleted file mode 100644
index ce8bdfdb31..0000000000
--- a/meta/recipes-support/gnutls/gnutls_3.2.15.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require gnutls.inc
-
-SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
- "
-
-SRC_URI[md5sum] = "ec3b06f80e312137386c5d322183ca5a"
-SRC_URI[sha256sum] = "30bdc7b34b220258f714602cdf0afa1abf0883bf926f35f400c88b1c72ca77b9"
diff --git a/meta/recipes-support/gnutls/gnutls_3.3.12.bb b/meta/recipes-support/gnutls/gnutls_3.3.12.bb
new file mode 100644
index 0000000000..0d6ec756e6
--- /dev/null
+++ b/meta/recipes-support/gnutls/gnutls_3.3.12.bb
@@ -0,0 +1,7 @@
+require gnutls.inc
+
+SRC_URI += "file://correct_rpl_gettimeofday_signature.patch \
+ file://configure.ac-fix-sed-command.patch \
+ "
+SRC_URI[md5sum] = "a37b20b4352a5f542367ded904729c90"
+SRC_URI[sha256sum] = "67ab3e92c5d48f3323b897d7c1aa0bb2af6f3a84f5bd9931cda163a7ff32299b"
diff --git a/meta/recipes-support/gnutls/libtasn1_3.5.bb b/meta/recipes-support/gnutls/libtasn1_4.0.bb
index 0c0ebcd4c7..289833ec80 100644
--- a/meta/recipes-support/gnutls/libtasn1_3.5.bb
+++ b/meta/recipes-support/gnutls/libtasn1_4.0.bb
@@ -13,8 +13,8 @@ SRC_URI = "${GNU_MIRROR}/libtasn1/libtasn1-${PV}.tar.gz \
file://dont-depend-on-help2man.patch \
"
-SRC_URI[md5sum] = "62c76352d0e17df1c082fe1c38bad5cf"
-SRC_URI[sha256sum] = "d7fcffbc08b6413533b817d4ede5c2eadcb3dcb21c71cc91de6ece25191519ed"
+SRC_URI[md5sum] = "d3d2d9bce3b6668b9827a9df52635be1"
+SRC_URI[sha256sum] = "41d044f7644bdd1c4f8a5c15ac1885ca1fcbf32f5f6dd4760a19278b979857fe"
inherit autotools texinfo binconfig lib_package
diff --git a/meta/recipes-support/gpgme/gpgme-1.4.3/disable_gpgconf_check.patch b/meta/recipes-support/gpgme/gpgme-1.4.3/disable_gpgconf_check.patch
deleted file mode 100644
index df0953069c..0000000000
--- a/meta/recipes-support/gpgme/gpgme-1.4.3/disable_gpgconf_check.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1.2.0, gpgme will check if gpgconf & g13(from 1.3.0) exist, and cause
-configure failure if not founding them in cross-compile environment. We can
-add the gnupg-native to get them, but still have some issues:
-
-1. need add new package: libksba, update libassuan(not in sato), and extend
- native support in some other packages(libgcrypt, libgpg-error, pth...)
-2. Even we have gnupg, the g13 only exist in development branch, so that we
- still have the g13 check failure in configure.
-
-I have searched the compile log, and found gpgconf/g13 are not used. So use a
-simple method here, throw a warning mesg rather than an error here just like in
-non-cross-compile environment.
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Index: gpgme-1.3.0/configure.ac
-===================================================================
---- gpgme-1.3.0.orig/configure.ac 2010-07-21 09:38:09.000000000 +0800
-+++ gpgme-1.3.0/configure.ac 2010-07-21 09:39:19.000000000 +0800
-@@ -574,7 +574,7 @@
- *** Could not find gpgconf, install gpgconf or use --with-gpgconf=PATH to enable it
- ***])
- else
-- AC_MSG_ERROR([
-+ AC_MSG_WARN([
- ***
- *** Can not determine path to gpgconf when cross-compiling, use --with-gpgconf=PATH
- ***])
-@@ -670,7 +670,7 @@
- *** Could not find g13, install g13 or use --with-g13=PATH to enable it
- ***])
- else
-- AC_MSG_ERROR([
-+ AC_MSG_WARN([
- ***
- *** Can not determine path to g13 when cross-compiling, use --with-g13=PATH
- ***])
diff --git a/meta/recipes-support/gpgme/gpgme-1.4.3/gpgme.pc b/meta/recipes-support/gpgme/gpgme-1.4.3/gpgme.pc
new file mode 100644
index 0000000000..30a4d56d6e
--- /dev/null
+++ b/meta/recipes-support/gpgme/gpgme-1.4.3/gpgme.pc
@@ -0,0 +1,10 @@
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: gpgme
+Description: GNU Privacy Guard Made Easy
+Version: 1.4.3
+Requires:
+Libs: -L${libdir} -lgpgme -lassuan -lgpg-error
+Cflags: -I${includedir}
diff --git a/meta/recipes-support/gpgme/gpgme_1.4.3.bb b/meta/recipes-support/gpgme/gpgme_1.4.3.bb
index ef08d4f2f4..98fd68b837 100644
--- a/meta/recipes-support/gpgme/gpgme_1.4.3.bb
+++ b/meta/recipes-support/gpgme/gpgme_1.4.3.bb
@@ -10,16 +10,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://src/engine.h;endline=22;md5=4b6d8ba313d9b564cc4d4cfb1640af9d"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/gpgme/gpgme-${PV}.tar.bz2 \
- file://disable_gpgconf_check.patch"
+ file://gpgme.pc"
SRC_URI[md5sum] = "334e524cffa8af4e2f43ae8afe585672"
SRC_URI[sha256sum] = "2d1cc12411753752d9c5b9037e6fd3fd363517af720154768cc7b46b60120496"
DEPENDS = "libgpg-error libassuan"
-EXTRA_OECONF = "--with-gpg=${bindir}/gpg --without-gpgsm"
-
BINCONFIG = "${bindir}/gpgme-config"
+EXTRA_OECONF = "--with-gpg=${bindir}/gpg --without-gpgsm --with-gpgconf=no --with-g13=no"
inherit autotools texinfo binconfig-disabled pkgconfig
@@ -32,3 +31,8 @@ do_configure_prepend () {
rm -f ${S}/m4/gpg-error.m4
rm -f ${S}/m4/libassuan.m4
}
+
+do_install_append () {
+ install -d ${D}${libdir}/pkgconfig
+ install -m 0644 ${WORKDIR}/gpgme.pc ${D}${libdir}/pkgconfig/
+}
diff --git a/meta/recipes-support/icu/icu.inc b/meta/recipes-support/icu/icu.inc
index 77321076d5..f4254b5f5c 100644
--- a/meta/recipes-support/icu/icu.inc
+++ b/meta/recipes-support/icu/icu.inc
@@ -1,5 +1,8 @@
SUMMARY = "International Component for Unicode libraries"
-DESCRIPTION = "The International Component for Unicode (ICU) is a mature, portable set of C/C++ and Java libraries for Unicode support, software internationalization (I18N) and globalization (G11N), giving applications the same results on all platforms."
+DESCRIPTION = "The International Component for Unicode (ICU) is a mature, \
+portable set of C/C++ and Java libraries for Unicode support, software \
+internationalization (I18N) and globalization (G11N), giving applications the \
+same results on all platforms."
HOMEPAGE = "http://site.icu-project.org/"
LICENSE = "ICU"
@@ -7,9 +10,9 @@ DEPENDS = "icu-native"
DEPENDS_class-native = ""
S = "${WORKDIR}/icu/source"
+SPDX_S = "${WORKDIR}/icu"
STAGING_ICU_DIR_NATIVE = "${STAGING_DATADIR_NATIVE}/${BPN}/${PV}"
-PARALLEL_MAKE = ""
CPPFLAGS_append_libc-uclibc = " -DU_TIMEZONE=0"
BINCONFIG = "${bindir}/icu-config"
@@ -23,23 +26,13 @@ EXTRA_OECONF = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
EXTRA_OECONF_class-native = ""
EXTRA_OECONF_class-nativesdk = "--with-cross-build=${STAGING_ICU_DIR_NATIVE}"
-# ICU puts custom m4 autoconf functions in aclocal.m4.
-# However, this file is deleted in our build system.
-# To make it work, we copy aclocal.m4 to acinclude.m4.
-# This is a bug of ICU. See bug reference:
-# http://bugs.icu-project.org/trac/ticket/9790
-do_configure_prepend() {
- [ -f ${S}/acinclude.m4 ] || cp ${S}/aclocal.m4 ${S}/acinclude.m4
-}
-
do_install_append_class-native() {
mkdir -p ${D}/${STAGING_ICU_DIR_NATIVE}/config
cp -r ${B}/config/icucross.mk ${D}/${STAGING_ICU_DIR_NATIVE}/config
- cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config
+ cp -r ${B}/config/icucross.inc ${D}/${STAGING_ICU_DIR_NATIVE}/config
cp -r ${B}/lib ${D}/${STAGING_ICU_DIR_NATIVE}
cp -r ${B}/bin ${D}/${STAGING_ICU_DIR_NATIVE}
cp -r ${B}/tools ${D}/${STAGING_ICU_DIR_NATIVE}
-
}
PACKAGES =+ "libicudata libicuuc libicui18n libicule libiculx libicutu libicuio"
@@ -55,4 +48,3 @@ FILES_libicutu = "${libdir}/libicutu.so.*"
FILES_libicuio = "${libdir}/libicuio.so.*"
BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta/recipes-support/icu/icu_53.1.bb b/meta/recipes-support/icu/icu_54.1.bb
index d93af68438..45b5cb6001 100644
--- a/meta/recipes-support/icu/icu_53.1.bb
+++ b/meta/recipes-support/icu/icu_54.1.bb
@@ -1,6 +1,6 @@
require icu.inc
-LIC_FILES_CHKSUM = "file://../license.html;md5=8b139ac5b93769623bd343318048238c"
+LIC_FILES_CHKSUM = "file://../license.html;md5=9890f5ff4ed056a0c2fa84848b9b6066"
def icu_download_version(d):
pvsplit = d.getVar('PV', True).split('.')
@@ -16,6 +16,6 @@ SRC_URI = "${BASE_SRC_URI} \
SRC_URI_append_class-target = "\
file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
"
+SRC_URI[md5sum] = "e844caed8f2ca24c088505b0d6271bc0"
+SRC_URI[sha256sum] = "d42bc9a8ca6a91c55eb0925c279f49e5b508d51ef26ac9850d9be55de5bb8ab3"
-SRC_URI[md5sum] = "b73baa6fbdfef197608d1f69300919b9"
-SRC_URI[sha256sum] = "6fa74fb5aac070c23eaba1711a7178fe582c59867484c5ec07c49002787a9a28"
diff --git a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
index 4f968812c9..f130d85652 100644
--- a/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
+++ b/meta/recipes-support/libassuan/libassuan/libassuan-add-pkgconfig-support.patch
@@ -6,18 +6,18 @@ Upstream-Status: Rejected
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-Index: libassuan-2.1.1/Makefile.am
+Index: libassuan-2.1.2/Makefile.am
===================================================================
---- libassuan-2.1.1.orig/Makefile.am 2014-05-13 20:57:37.794398357 +0000
-+++ libassuan-2.1.1/Makefile.am 2014-05-13 20:57:37.790398357 +0000
-@@ -24,10 +24,13 @@
+--- libassuan-2.1.2.orig/Makefile.am
++++ libassuan-2.1.2/Makefile.am
+@@ -24,10 +24,13 @@ AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gz
# (A suitable gitlog-to-changelog script can be found in GnuPG master.)
GITLOG_TO_CHANGELOG=gitlog-to-changelog
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = libassuan.pc
+
- EXTRA_DIST = config.rpath autogen.sh README.GIT \
+ EXTRA_DIST = autogen.sh autogen.rc README.GIT \
ChangeLog-2011 doc/ChangeLog-2011 src/ChangeLog-2011 \
tests/ChangeLog-2011 contrib/ChangeLog-2011 \
- build-aux/git-log-footer build-aux/git-log-fix
@@ -25,10 +25,10 @@ Index: libassuan-2.1.1/Makefile.am
SUBDIRS = m4 src doc tests
-Index: libassuan-2.1.1/libassuan.pc.in
+Index: libassuan-2.1.2/libassuan.pc.in
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ libassuan-2.1.1/libassuan.pc.in 2014-05-13 20:57:37.790398357 +0000
+--- /dev/null
++++ libassuan-2.1.2/libassuan.pc.in
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
@@ -44,11 +44,11 @@ Index: libassuan-2.1.1/libassuan.pc.in
+Libs: -L${libdir} -lassuan
+Libs.private: -lgpg-error
+Cflags: -I${includedir}
-Index: libassuan-2.1.1/configure.ac
+Index: libassuan-2.1.2/configure.ac
===================================================================
---- libassuan-2.1.1.orig/configure.ac 2014-05-13 20:57:37.794398357 +0000
-+++ libassuan-2.1.1/configure.ac 2014-05-13 20:57:37.790398357 +0000
-@@ -434,7 +434,7 @@
+--- libassuan-2.1.2.orig/configure.ac
++++ libassuan-2.1.2/configure.ac
+@@ -439,7 +439,7 @@ AC_CONFIG_FILES([doc/Makefile])
AC_CONFIG_FILES([tests/Makefile])
AC_CONFIG_FILES([src/libassuan-config], [chmod +x src/libassuan-config])
AC_CONFIG_FILES([src/versioninfo.rc])
@@ -57,11 +57,11 @@ Index: libassuan-2.1.1/configure.ac
AC_OUTPUT
echo "
-Index: libassuan-2.1.1/src/libassuan.m4
+Index: libassuan-2.1.2/src/libassuan.m4
===================================================================
---- libassuan-2.1.1.orig/src/libassuan.m4 2011-04-06 15:37:26.000000000 +0000
-+++ libassuan-2.1.1/src/libassuan.m4 2014-05-13 21:06:53.402395537 +0000
-@@ -15,18 +15,6 @@
+--- libassuan-2.1.2.orig/src/libassuan.m4
++++ libassuan-2.1.2/src/libassuan.m4
+@@ -15,18 +15,6 @@ dnl Returns ok set to yes or no.
dnl
AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
[ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -80,7 +80,7 @@ Index: libassuan-2.1.1/src/libassuan.m4
tmp=ifelse([$1], ,1:0.9.2,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
-@@ -37,51 +25,12 @@
+@@ -37,51 +25,12 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
min_libassuan_version="$tmp"
fi
@@ -134,7 +134,7 @@ Index: libassuan-2.1.1/src/libassuan.m4
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBASSUAN API version])
if test "$req_libassuan_api" -eq "$tmp" ; then
-@@ -96,7 +45,7 @@
+@@ -96,7 +45,7 @@ AC_DEFUN([_AM_PATH_LIBASSUAN_COMMON],
if test $ok = yes; then
if test x"$host" != x ; then
@@ -143,7 +143,7 @@ Index: libassuan-2.1.1/src/libassuan.m4
if test x"$libassuan_config_host" != xnone ; then
if test x"$libassuan_config_host" != x"$host" ; then
AC_MSG_WARN([[
-@@ -137,12 +86,8 @@
+@@ -137,12 +86,8 @@ dnl
AC_DEFUN([AM_PATH_LIBASSUAN],
[ _AM_PATH_LIBASSUAN_COMMON($1)
if test $ok = yes; then
diff --git a/meta/recipes-support/libassuan/libassuan_2.1.1.bb b/meta/recipes-support/libassuan/libassuan_2.2.0.bb
index d66023320d..d3a61ccc26 100644
--- a/meta/recipes-support/libassuan/libassuan_2.1.1.bb
+++ b/meta/recipes-support/libassuan/libassuan_2.2.0.bb
@@ -13,8 +13,8 @@ DEPENDS = "libgpg-error"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libassuan/libassuan-${PV}.tar.bz2 \
file://libassuan-add-pkgconfig-support.patch"
-SRC_URI[md5sum] = "757243cc4a71b30ed8d8dbe784035d36"
-SRC_URI[sha256sum] = "23e2d67779b88e90d29fe1df6b157109f1c2a647d0f1b2a0f4295bb3c0b2039d"
+SRC_URI[md5sum] = "a104faed3e97b9c302c5d67cc22b1d60"
+SRC_URI[sha256sum] = "7df58ed70be4b694f77efd1f3b3f103c6311b6b71e04a370382f9fe8204f6ec6"
BINCONFIG = "${bindir}/libassuan-config"
@@ -22,5 +22,7 @@ inherit autotools texinfo binconfig-disabled pkgconfig
do_configure_prepend () {
# Else these could be used in prefernce to those in aclocal-copy
- rm ${S}/m4/*.m4
+ rm -f ${S}/m4/*.m4
}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/libbsd/libbsd_0.6.0.bb b/meta/recipes-support/libbsd/libbsd_0.7.0.bb
index 70926bf742..902666da7f 100644
--- a/meta/recipes-support/libbsd/libbsd_0.6.0.bb
+++ b/meta/recipes-support/libbsd/libbsd_0.7.0.bb
@@ -9,12 +9,13 @@ DESCRIPTION = "This library provides useful functions commonly found on BSD syst
HOMEPAGE = "http://libbsd.freedesktop.org/wiki/"
LICENSE = "BSD-4-Clause & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=98a015f07e71239b058398054f506f07"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1530ea92aeaa1c5e2547cfd43905d8c"
SECTION = "libs"
DEPENDS = ""
SRC_URI = "http://libbsd.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "f6c75f0a9818e323a589bcbd560a0eb4"
-SRC_URI[sha256sum] = "9e8f34ffa9c8579c87965a55a82d8ac37a1dc64858f717b7c49452ade277cc62"
+
+SRC_URI[md5sum] = "fcceb4e66fd448ca4ed42ba22a8babb0"
+SRC_URI[sha256sum] = "0f3b0e17e5c34c038126e0a04351b11e23c6101a7d0ce3beeab29bb6415c10bb"
inherit autotools pkgconfig
diff --git a/meta/recipes-support/libcap/libcap/fix-CAP_LAST_CAP.patch b/meta/recipes-support/libcap/libcap/fix-CAP_LAST_CAP.patch
deleted file mode 100644
index a5571883d3..0000000000
--- a/meta/recipes-support/libcap/libcap/fix-CAP_LAST_CAP.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-fix CAP_LAST_CAP
-
-Upstream-Status: pending
-
-Two new capability CAP_BLOCK_SUSPEND and CAP_WAKE_ALARM have been added into
-kernel, but libcap did not update them.
-Once libcap uses its capability.h (the default value of KERNEL_HEADERS), and
-application always use capability.h from kernel, that will make cap_get_flag
-return wrong value.
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- libcap/include/linux/capability.h | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/libcap/include/linux/capability.h b/libcap/include/linux/capability.h
-index 4924f2a..57026be 100644
---- a/libcap/include/linux/capability.h
-+++ b/libcap/include/linux/capability.h
-@@ -360,7 +360,15 @@ struct cpu_vfs_cap_data {
- CAP_SYS_ADMIN is not acceptable anymore. */
- #define CAP_SYSLOG 34
-
--#define CAP_LAST_CAP CAP_SYSLOG
-+/* Allow triggering something that will wake the system */
-+
-+#define CAP_WAKE_ALARM 35
-+
-+/* Allow preventing system suspends */
-+
-+#define CAP_BLOCK_SUSPEND 36
-+
-+#define CAP_LAST_CAP CAP_BLOCK_SUSPEND
-
- #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP)
-
---
-1.7.10.4
-
diff --git a/meta/recipes-support/libcap/libcap_2.22.bb b/meta/recipes-support/libcap/libcap_2.22.bb
deleted file mode 100644
index a989bb6a6b..0000000000
--- a/meta/recipes-support/libcap/libcap_2.22.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require libcap.inc
-
-PR = "r6"
-
-SRC_URI[md5sum] = "b4896816b626bea445f0b3849bdd4077"
-SRC_URI[sha256sum] = "e1cae65d8febf2579be37c255d2e058715785ead481a4e6a4357a06aff84721f"
diff --git a/meta/recipes-support/libcap/libcap.inc b/meta/recipes-support/libcap/libcap_2.24.bb
index 08f4cfedde..75cf5d415d 100644
--- a/meta/recipes-support/libcap/libcap.inc
+++ b/meta/recipes-support/libcap/libcap_2.24.bb
@@ -5,15 +5,12 @@ HOMEPAGE = "http://sites.google.com/site/fullycapable/"
LICENSE = "BSD | GPLv2"
LIC_FILES_CHKSUM = "file://License;md5=3f84fd6f29d453a56514cb7e4ead25f1"
-DEPENDS = "attr perl-native-runtime"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-# attr and pam are disabled by EXTRA_OEMAKE_class-native
-DEPENDS_class-native = "perl-native-runtime"
+DEPENDS = "perl-native-runtime"
-SRC_URI = "${DEBIAN_MIRROR}/main/libc/libcap2/${BPN}2_${PV}.orig.tar.gz \
- file://fix-CAP_LAST_CAP.patch"
+SRC_URI = "${KERNELORG_MIRROR}/linux/libs/security/linux-privs/${BPN}2/${BPN}-${PV}.tar.xz"
-PR = "r1"
+SRC_URI[md5sum] = "d43ab9f680435a7fff35b4ace8d45b80"
+SRC_URI[sha256sum] = "cee4568f78dc851d726fc93f25f4ed91cc223b1fe8259daa4a77158d174e6c65"
inherit lib_package
@@ -29,33 +26,40 @@ do_configure() {
sed -e '/shell gperf/cifeq (,yes)' -i libcap/Makefile
}
-EXTRA_OEMAKE = " \
- LIBATTR=yes \
- PAM_CAP=${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', 'no', d)} \
- INDENT= SYSTEM_HEADERS=${STAGING_INCDIR} RAISE_SETFCAP=no \
- lib=${@os.path.basename('${libdir}')} \
-"
-EXTRA_OEMAKE_class-native = " \
- LIBATTR=no \
- PAM_CAP=no \
- INDENT= \
+PACKAGECONFIG ??= "attr ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)}"
+PACKAGECONFIG_class-native ??= ""
+
+PACKAGECONFIG[attr] = "LIBATTR=yes,LIBATTR=no,attr"
+PACKAGECONFIG[pam] = "PAM_CAP=yes,PAM_CAP=no,libpam"
+
+EXTRA_OEMAKE += " \
+ INDENT= \
lib=${@os.path.basename('${libdir}')} \
+ RAISE_SETFCAP=no \
"
+EXTRA_OEMAKE_append_class-target = " SYSTEM_HEADERS=${STAGING_INCDIR}"
+
do_compile() {
- oe_runmake
+ oe_runmake ${EXTRA_OECONF}
}
do_install() {
- oe_runmake install DESTDIR="${D}" prefix="${prefix}" SBINDIR="${D}${sbindir}"
+ oe_runmake install \
+ ${EXTRA_OECONF} \
+ DESTDIR="${D}" \
+ prefix="${prefix}" \
+ SBINDIR="${D}${sbindir}"
}
do_install_append() {
# Move the library to base_libdir
install -d ${D}${base_libdir}
if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
- mv ${D}${libdir}/* ${D}${base_libdir}
- rmdir ${D}${libdir}
+ mv ${D}${libdir}/libcap* ${D}${base_libdir}
+ if [ -d ${D}${libdir}/security ]; then
+ mv ${D}${libdir}/security ${D}${base_libdir}
+ fi
fi
}
@@ -65,4 +69,4 @@ FILES_${PN}-dev += "${base_libdir}/*.so"
FILES_${PN} += "${base_libdir}/security/*.so"
FILES_${PN}-dbg += "${base_libdir}/security/.debug/*.so"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libcheck/libcheck_0.9.13.bb b/meta/recipes-support/libcheck/libcheck_0.9.14.bb
index 8c063d4696..2a69ff7733 100644
--- a/meta/recipes-support/libcheck/libcheck_0.9.13.bb
+++ b/meta/recipes-support/libcheck/libcheck_0.9.14.bb
@@ -8,8 +8,8 @@ LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=2d5025d4aa3495befef8f17206a5b0a1"
SRC_URI = "${SOURCEFORGE_MIRROR}/check/check-${PV}.tar.gz \
"
-SRC_URI[md5sum] = "95530868f81a9496b2518fd2b713008a"
-SRC_URI[sha256sum] = "ca6589c34f9c60ffd4c3e198ce581e944a9f040ca9352ed54068dd61bebb5cb7"
+SRC_URI[md5sum] = "38263d115d784c17aa3b959ce94be8b8"
+SRC_URI[sha256sum] = "c272624645b1b738cf57fd5d81a3e4d9b722b99d6133ee3f3c4007d4d279840a"
S = "${WORKDIR}/check-${PV}"
diff --git a/meta/recipes-support/libcroco/libcroco_0.6.8.bb b/meta/recipes-support/libcroco/libcroco_0.6.8.bb
index 7d042653b0..88696a4f47 100644
--- a/meta/recipes-support/libcroco/libcroco_0.6.8.bb
+++ b/meta/recipes-support/libcroco/libcroco_0.6.8.bb
@@ -11,9 +11,11 @@ SECTION = "x11/utils"
DEPENDS = "glib-2.0 libxml2 zlib"
BBCLASSEXTEND = "native"
EXTRA_OECONF += "--enable-Bsymbolic=auto"
-PR = "r1"
+PR = "r2"
-inherit autotools-brokensep pkgconfig gnomebase gtk-doc
+BINCONFIG = "${bindir}/croco-0.6-config"
+
+inherit autotools pkgconfig gnomebase gtk-doc binconfig-disabled
GNOME_COMPRESS_TYPE = "xz"
diff --git a/meta/recipes-support/libevdev/libevdev_1.3.bb b/meta/recipes-support/libevdev/libevdev_1.3.bb
new file mode 100644
index 0000000000..7206b307e0
--- /dev/null
+++ b/meta/recipes-support/libevdev/libevdev_1.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Wrapper library for evdev devices"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libevdev/"
+SECTION = "libs"
+
+LICENSE = "MIT-X"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75aae0d38feea6fda97ca381cb9132eb \
+ file://libevdev/libevdev.h;endline=21;md5=7ff4f0b5113252c2f1a828e0bbad98d1"
+
+SRC_URI = "http://www.freedesktop.org/software/libevdev/${BP}.tar.xz"
+SRC_URI[md5sum] = "ab67de8f949e84ae2abb48af09eda423"
+SRC_URI[sha256sum] = "265411ce79a592b3074e9d07fb97d462745d0c7ef178254a6f720245ed253446"
+
+inherit autotools pkgconfig
diff --git a/meta/recipes-support/libevent/libevent_2.0.21.bb b/meta/recipes-support/libevent/libevent_2.0.21.bb
index 5a1ff3b1b0..1230e92b2e 100644
--- a/meta/recipes-support/libevent/libevent_2.0.21.bb
+++ b/meta/recipes-support/libevent/libevent_2.0.21.bb
@@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=45c5316ff684bcfe2f9f86d8b1279559"
PR = "r1"
-SRC_URI = "http://github.com/downloads/libevent/libevent/${BPN}-${PV}-stable.tar.gz \
+SRC_URI = "${SOURCEFORGE_MIRROR}/levent/${BP}-stable.tar.gz \
file://obsolete_automake_macros.patch \
file://disable_tests.patch \
"
diff --git a/meta/recipes-support/libfm/libfm-1.1.2.2/fix-make-parallelism-issue.patch b/meta/recipes-support/libfm/libfm-1.1.2.2/fix-make-parallelism-issue.patch
deleted file mode 100644
index 5d39d1954d..0000000000
--- a/meta/recipes-support/libfm/libfm-1.1.2.2/fix-make-parallelism-issue.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix make parallelism issue
-
-- remove pkginclude_HEADERS ( LIBFM_INCLUDES and LIBFM_GTK_INCLUDES
-variables are empty)
-- if we don't remove it then we will have a race condition between the code
-that tries to symlink ${includedir}/libfm-1.0 to ${includedir}/libfm and the
-am autogenerated code from the pkginclude_HEADERS definition which
-tries to create pkgincludedir (${includedir}/libfm);
-- if pkgincludedir is created before the symlink the symlink will be created
-in the ${includedir}/libfm dir and it will have libfm-1.0 as name which is
-wrong (we need the ${includedir}/libfm symlink for pcmanfm)
-
-Upstream-Status: Pending
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
-Index: libfm-1.1.0/src/Makefile.am
-===================================================================
---- libfm-1.1.0.orig/src/Makefile.am
-+++ libfm-1.1.0/src/Makefile.am
-@@ -211,11 +211,6 @@ libfmgtkinclude_HEADERS = \
- gtk/fm-gtk-marshal.h \
- $(NULL)
-
--pkginclude_HEADERS = \
-- $(LIBFM_INCLUDES) \
-- $(LIBFM_GTK_INCLUDES) \
-- $(NULL)
--
- EXTRA_LTLIBRARIES = libfm-gtk.la libfm-gtk3.la
-
- lib_LTLIBRARIES = libfm.la @LIBFM_GTK_LTLIBRARIES@
diff --git a/meta/recipes-support/libfm/libfm-1.1.2.2/ignore_automake_warnings.patch b/meta/recipes-support/libfm/libfm-1.1.2.2/ignore_automake_warnings.patch
deleted file mode 100644
index 58a2f09d66..0000000000
--- a/meta/recipes-support/libfm/libfm-1.1.2.2/ignore_automake_warnings.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
-diff -Nurd libfm-1.1.2.2/configure.ac libfm-1.1.2.2/configure.ac
---- libfm-1.1.2.2/configure.ac 2013-08-22 23:16:09.000000000 +0300
-+++ libfm-1.1.2.2/configure.ac 2013-10-25 01:35:18.110323079 +0300
-@@ -3,7 +3,7 @@
-
- AC_PREREQ([2.63])
- AC_INIT([libfm], [1.1.2.2], [http://pcmanfm.sourceforge.net/])
--AM_INIT_AUTOMAKE([-Wall -Werror foreign])
-+AM_INIT_AUTOMAKE([-Wall foreign])
- AC_CONFIG_MACRO_DIR(m4)
- AC_CONFIG_HEADERS([config.h])
diff --git a/meta/recipes-support/libfm/libfm-extra_1.2.3.bb b/meta/recipes-support/libfm/libfm-extra_1.2.3.bb
new file mode 100644
index 0000000000..85bcc3c0c3
--- /dev/null
+++ b/meta/recipes-support/libfm/libfm-extra_1.2.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Library for file management"
+HOMEPAGE = "http://pcmanfm.sourceforge.net/"
+
+LICENSE = "LGPLv2+"
+LIC_FILES_CHKSUM = "file://src/fm-extra.h;beginline=8;endline=21;md5=ef1f84da64b3c01cca447212f7ef6007"
+
+SECTION = "x11/libs"
+DEPENDS = "glib-2.0 intltool-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "3ff38200701658f7e80e25ed395d92dd"
+SRC_URI[sha256sum] = "c692f1624a4cbc8d1dd55f3b3f3369fbf5d26f63a916e2c295230b2344e1fbf9"
+
+S = "${WORKDIR}/libfm-${PV}"
+
+EXTRA_OECONF = "--with-extra-only --with-gtk=no"
+
+PR = "r1"
+
+inherit autotools pkgconfig gtk-doc
+
+do_configure[dirs] =+ "${S}/m4"
diff --git a/meta/recipes-support/libfm/libfm_1.1.2.2.bb b/meta/recipes-support/libfm/libfm_1.1.2.2.bb
deleted file mode 100644
index 10f31d9911..0000000000
--- a/meta/recipes-support/libfm/libfm_1.1.2.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Library for file management"
-HOMEPAGE = "http://pcmanfm.sourceforge.net/"
-
-LICENSE = "GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://src/fm.h;endline=22;md5=e64555171770a551e3b51cc06fc62f1a \
- file://src/base/fm-config.h;endline=23;md5=ad0fc418c3cf041eea35ddb3daf37f17"
-
-SECTION = "x11/libs"
-DEPENDS = "glib-2.0 pango gtk+ menu-cache intltool-native libexif"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.gz \
- file://fix-make-parallelism-issue.patch \
- file://ignore_automake_warnings.patch \
- "
-
-SRC_URI[md5sum] = "ea3d09b23ef4c37cb84ae57ea16b8f08"
-SRC_URI[sha256sum] = "158e2b6974350d2dab15932b496bb4d448553e60bbf7cdfe4d6e9bd99d19d682"
-
-inherit autotools-brokensep pkgconfig gtk-doc
-
-do_configure[dirs] =+ "${S}/m4"
-
-PACKAGES += "${PN}-mime"
-FILES_${PN}-mime = "${datadir}/mime/"
diff --git a/meta/recipes-support/libfm/libfm_1.2.3.bb b/meta/recipes-support/libfm/libfm_1.2.3.bb
new file mode 100644
index 0000000000..629502f68f
--- /dev/null
+++ b/meta/recipes-support/libfm/libfm_1.2.3.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Library for file management"
+HOMEPAGE = "http://pcmanfm.sourceforge.net/"
+
+LICENSE = "GPLv2+ & LGPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://src/fm.h;beginline=8;endline=21;md5=ef1f84da64b3c01cca447212f7ef6007 \
+ file://src/base/fm-config.h;beginline=10;endline=23;md5=ef1f84da64b3c01cca447212f7ef6007 \
+ file://src/fm-gtk.h;beginline=6;endline=19;md5=646baa4955c04fe768f2ca27b92ac8dd"
+
+
+SECTION = "x11/libs"
+DEPENDS = "glib-2.0 pango gtk+ menu-cache intltool-native libexif libfm-extra"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/pcmanfm/libfm-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "3ff38200701658f7e80e25ed395d92dd"
+SRC_URI[sha256sum] = "c692f1624a4cbc8d1dd55f3b3f3369fbf5d26f63a916e2c295230b2344e1fbf9"
+
+PR = "r1"
+
+inherit autotools pkgconfig gtk-doc
+
+do_configure[dirs] =+ "${S}/m4"
+
+PACKAGES += "${PN}-mime"
+FILES_${PN}-mime = "${datadir}/mime/"
+FILES_${PN}-dbg += "${libdir}/libfm/modules/.debug"
+
+do_install_append () {
+ # remove files which are part of libfm-extra
+ rm -f ${D}${includedir}/libfm-1.0/fm-xml-file.h
+ rm -f ${D}${includedir}/libfm-1.0/fm-version.h
+ rm -f ${D}${includedir}/libfm-1.0/fm-extra.h
+ rm -f ${D}${libdir}/pkgconfig/libfm-extra.pc
+ rm -f ${D}${libdir}/libfm-extra.so*
+ rm -f ${D}${libdir}/libfm-extra.a
+ rm -f ${D}${libdir}/libfm-extra.la
+}
diff --git a/meta/recipes-support/libgcrypt/libgcrypt.inc b/meta/recipes-support/libgcrypt/libgcrypt.inc
index fa2bc38284..eea67aa58d 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt.inc
+++ b/meta/recipes-support/libgcrypt/libgcrypt.inc
@@ -18,13 +18,15 @@ SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \
BINCONFIG = "${bindir}/libgcrypt-config"
-inherit autotools-brokensep texinfo binconfig-disabled pkgconfig
+PR = "r1"
+
+inherit autotools texinfo binconfig-disabled pkgconfig
EXTRA_OECONF = "--disable-asm --with-capabilities"
do_configure_prepend () {
- # Else these could be used in prefernce to those in aclocal-copy
- rm -f ${S}/m4/*.m4
+ # Else this could be used in preference to the one in aclocal-copy
+ rm -f ${S}/m4/gpg-error.m4
}
# libgcrypt.pc is added locally and thus installed here
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb
deleted file mode 100644
index 1657ea4de4..0000000000
--- a/meta/recipes-support/libgcrypt/libgcrypt_1.6.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libgcrypt.inc
-
-SRC_URI[md5sum] = "d155aa1b06fa879175922ba28f6a6509"
-SRC_URI[sha256sum] = "7c1007197bef49c3b8740cf6af8b4eb4eb74c7a69796ebcf555d928c287255de"
diff --git a/meta/recipes-support/libgcrypt/libgcrypt_1.6.2.bb b/meta/recipes-support/libgcrypt/libgcrypt_1.6.2.bb
new file mode 100644
index 0000000000..c49c0e7c17
--- /dev/null
+++ b/meta/recipes-support/libgcrypt/libgcrypt_1.6.2.bb
@@ -0,0 +1,4 @@
+require libgcrypt.inc
+
+SRC_URI[md5sum] = "d19adc062edff0ebc7e887212733ef1f"
+SRC_URI[sha256sum] = "936921644b9c81e2395e18a554a9a5f9252aae3976f8afc3e4229ee9d785e627"
diff --git a/meta/recipes-support/libgpg-error/libgpg-error-1.12/pkgconfig.patch b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
index 2a2c1e9c21..96476badaa 100644
--- a/meta/recipes-support/libgpg-error/libgpg-error-1.12/pkgconfig.patch
+++ b/meta/recipes-support/libgpg-error/libgpg-error/pkgconfig.patch
@@ -5,11 +5,11 @@
Upstream-Status: Pending
-Index: libgpg-error-1.12/configure.ac
+Index: libgpg-error-1.17/configure.ac
===================================================================
---- libgpg-error-1.12.orig/configure.ac 2014-05-13 21:14:26.846393236 +0000
-+++ libgpg-error-1.12/configure.ac 2014-05-13 21:14:26.926393236 +0000
-@@ -217,6 +217,7 @@
+--- libgpg-error-1.17.orig/configure.ac
++++ libgpg-error-1.17/configure.ac
+@@ -521,6 +521,7 @@ AC_CONFIG_FILES([src/Makefile tests/Make
AC_CONFIG_FILES([lang/Makefile lang/cl/Makefile lang/cl/gpg-error.asd])
AC_CONFIG_FILES([src/versioninfo.rc])
AC_CONFIG_FILES([src/gpg-error-config], [chmod +x src/gpg-error-config])
@@ -17,11 +17,11 @@ Index: libgpg-error-1.12/configure.ac
AC_OUTPUT
-Index: libgpg-error-1.12/src/Makefile.am
+Index: libgpg-error-1.17/src/Makefile.am
===================================================================
---- libgpg-error-1.12.orig/src/Makefile.am 2014-05-13 21:14:26.846393236 +0000
-+++ libgpg-error-1.12/src/Makefile.am 2014-05-13 21:14:26.934393236 +0000
-@@ -37,13 +37,15 @@
+--- libgpg-error-1.17.orig/src/Makefile.am
++++ libgpg-error-1.17/src/Makefile.am
+@@ -74,13 +74,15 @@ nodist_include_HEADERS = gpg-error.h
bin_SCRIPTS = gpg-error-config
m4datadir = $(datadir)/aclocal
m4data_DATA = gpg-error.m4
@@ -31,17 +31,17 @@ Index: libgpg-error-1.12/src/Makefile.am
EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \
mkerrnos.awk errnos.in README \
mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \
- mkheader.awk gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
+ mkheader.c gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 \
-- gpg-error.def.in versioninfo.rc.in
-+ gpg-error.def.in versioninfo.rc.in gpg-error.pc.in
+- gpg-error.vers gpg-error.def.in versioninfo.rc.in \
++ gpg-error.vers gpg-error.def.in versioninfo.rc.in gpg-error.pc \
+ $(lock_obj_pub)
BUILT_SOURCES = err-sources.h err-codes.h code-to-errno.h code-from-errno.h \
- err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h \
-Index: libgpg-error-1.12/src/gpg-error.pc.in
+Index: libgpg-error-1.17/src/gpg-error.pc.in
===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ libgpg-error-1.12/src/gpg-error.pc.in 2014-05-13 21:48:20.266382916 +0000
+--- /dev/null
++++ libgpg-error-1.17/src/gpg-error.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
@@ -52,13 +52,13 @@ Index: libgpg-error-1.12/src/gpg-error.pc.in
+Name: gpg-error
+Description: a library that defines common error values for all GnuPG components
+Version: @VERSION@
-+Libs: -L{libdir} -lgpg-error
++Libs: -L${libdir} -lgpg-error
+Cflags: -I${includedir}
-Index: libgpg-error-1.12/src/gpg-error.m4
+Index: libgpg-error-1.17/src/gpg-error.m4
===================================================================
---- libgpg-error-1.12.orig/src/gpg-error.m4 2014-05-13 21:45:02.038383922 +0000
-+++ libgpg-error-1.12/src/gpg-error.m4 2014-05-13 21:47:08.362383281 +0000
-@@ -15,58 +15,14 @@
+--- libgpg-error-1.17.orig/src/gpg-error.m4
++++ libgpg-error-1.17/src/gpg-error.m4
+@@ -26,73 +26,13 @@ dnl is added to the gpg_config_script_wa
dnl
AC_DEFUN([AM_PATH_GPG_ERROR],
[ AC_REQUIRE([AC_CANONICAL_HOST])
@@ -70,7 +70,7 @@ Index: libgpg-error-1.12/src/gpg-error.m4
- AC_HELP_STRING([--with-libgpg-error-prefix=PFX],
- [prefix where GPG Error is installed (optional)]),
- [gpg_error_config_prefix="$withval"])
-
+-
- dnl Accept --with-gpg-error-prefix and make it work the same as
- dnl --with-libgpg-error-prefix above, for backwards compatibility,
- dnl but do not document this old, inconsistently-named option.
@@ -78,14 +78,27 @@ Index: libgpg-error-1.12/src/gpg-error.m4
- [gpg_error_config_prefix="$withval"])
+ min_gpg_error_version=ifelse([$1], ,0.0,$1)
-- if test x$gpg_error_config_prefix != x ; then
-- if test x${GPG_ERROR_CONFIG+set} != xset ; then
-- GPG_ERROR_CONFIG=$gpg_error_config_prefix/bin/gpg-error-config
+- if test x"${GPG_ERROR_CONFIG}" = x ; then
+- if test x"${gpg_error_config_prefix}" != x ; then
+- GPG_ERROR_CONFIG="${gpg_error_config_prefix}/bin/gpg-error-config"
+- else
+- case "${SYSROOT}" in
+- /*)
+- if test -x "${SYSROOT}/bin/gpg-error-config" ; then
+- GPG_ERROR_CONFIG="${SYSROOT}/bin/gpg-error-config"
+- fi
+- ;;
+- '')
+- ;;
+- *)
+- AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
+- ;;
+- esac
- fi
- fi
+ PKG_CHECK_MODULES(GPG_ERROR, [gpg-error >= $min_gpg_error_version], [ok=yes], [ok=no])
-- AC_PATH_TOOL(GPG_ERROR_CONFIG, gpg-error-config, no)
+- AC_PATH_PROG(GPG_ERROR_CONFIG, gpg-error-config, no)
- min_gpg_error_version=ifelse([$1], ,0.0,$1)
- AC_MSG_CHECKING(for GPG Error - version >= $min_gpg_error_version)
- ok=no
@@ -113,6 +126,8 @@ Index: libgpg-error-1.12/src/gpg-error.m4
if test $ok = yes; then
- GPG_ERROR_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --cflags`
- GPG_ERROR_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --libs`
+- GPG_ERROR_MT_CFLAGS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --cflags 2>/dev/null`
+- GPG_ERROR_MT_LIBS=`$GPG_ERROR_CONFIG $gpg_error_config_args --mt --libs 2>/dev/null`
- AC_MSG_RESULT([yes ($gpg_error_config_version)])
ifelse([$2], , :, [$2])
- gpg_error_config_host=`$GPG_ERROR_CONFIG $gpg_error_config_args --host 2>/dev/null || echo none`
@@ -120,12 +135,14 @@ Index: libgpg-error-1.12/src/gpg-error.m4
if test x"$gpg_error_config_host" != xnone ; then
if test x"$gpg_error_config_host" != x"$host" ; then
AC_MSG_WARN([[
-@@ -80,9 +36,6 @@
+@@ -107,11 +47,6 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
fi
fi
else
- GPG_ERROR_CFLAGS=""
- GPG_ERROR_LIBS=""
+- GPG_ERROR_MT_CFLAGS=""
+- GPG_ERROR_MT_LIBS=""
- AC_MSG_RESULT(no)
ifelse([$3], , :, [$3])
fi
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.12.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.12.bb
deleted file mode 100644
index af9574d8fd..0000000000
--- a/meta/recipes-support/libgpg-error/libgpg-error_1.12.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Small library that defines common error values for all GnuPG components"
-HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
-BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/gpg-error.h.in;endline=23;md5=6ac0378874589a44d53512b3786b4bc0 \
- file://src/init.c;endline=20;md5=b69742f2a8827d494c6f6a4b1768416c"
-
-
-SECTION = "libs"
-
-SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.bz2 \
- file://pkgconfig.patch"
-
-SRC_URI[md5sum] = "8f0eb41a344d19ac2aa9bd101dfb9ce6"
-SRC_URI[sha256sum] = "cafc9ed6a87c53a35175d5a1220a96ca386696eef2fa059cc0306211f246e55f"
-
-BINCONFIG = "${bindir}/gpg-error-config"
-
-inherit autotools binconfig-disabled pkgconfig gettext
-
-FILES_${PN}-dev += "${bindir}/gpg-error"
-
-do_install_append() {
- # we don't have common lisp in OE
- rm -rf "${D}${datadir}/common-lisp/"
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb b/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb
new file mode 100644
index 0000000000..6d11605e54
--- /dev/null
+++ b/meta/recipes-support/libgpg-error/libgpg-error_1.18.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Small library that defines common error values for all GnuPG components"
+HOMEPAGE = "http://www.gnupg.org/related_software/libgpg-error/"
+BUGTRACKER = "https://bugs.g10code.com/gnupg/index"
+
+LICENSE = "GPLv2+ & LGPLv2.1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ file://COPYING.LIB;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/gpg-error.h.in;endline=23;md5=8b204918f0ca707136394d8bb20c7ebc \
+ file://src/init.c;endline=20;md5=8f5a9b59634f4aebcd0ec9d3ebd53bfe"
+
+
+SECTION = "libs"
+
+SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-${PV}.tar.bz2 \
+ file://pkgconfig.patch"
+SRC_URI[md5sum] = "12312802d2065774b787cbfc22cc04e9"
+SRC_URI[sha256sum] = "9ff1d6e61d4cef7c1d0607ceef6d40dc33f3da7a3094170c3718c00153d80810"
+
+BINCONFIG = "${bindir}/gpg-error-config"
+
+inherit autotools binconfig-disabled pkgconfig gettext
+CPPFLAGS += "-P"
+do_compile_prepend() {
+ TARGET_FILE=linux-gnu
+ if [ ${TARGET_OS} != "linux" ]; then
+ TARGET_FILE=${TARGET_OS}
+ fi
+
+ case ${TARGET_ARCH} in
+ aarch64) TUPLE=aarch64-unknown-linux-gnu ;;
+ arm) TUPLE=arm-unknown-linux-gnueabi ;;
+ armeb) TUPLE=arm-unknown-linux-gnueabi ;;
+ i586) TUPLE=i486-pc-linux-gnu ;;
+ mipsel) TUPLE=mipsel-unknown-linux-gnu ;;
+ mips64el) TUPLE=mipsel-unknown-linux-gnu ;;
+ mips64) TUPLE=mips-unknown-linux-gnu ;;
+ mips) TUPLE=mips-unknown-linux-gnu ;;
+ powerpc64) TUPLE=powerpc64-unknown-linux-gnu ;;
+ powerpc) TUPLE=powerpc-unknown-linux-gnu ;;
+ sh4) TUPLE=sh4-unknown-linux-gnu ;;
+ x86_64) TUPLE=x86_64-pc-linux-gnu ;;
+ esac
+
+ cp ${S}/src/syscfg/lock-obj-pub.$TUPLE.h \
+ ${S}/src/syscfg/lock-obj-pub.$TARGET_FILE.h
+}
+
+do_install_append() {
+ # we don't have common lisp in OE
+ rm -rf "${D}${datadir}/common-lisp/"
+}
+
+FILES_${PN}-dev += "${bindir}/gpg-error"
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/libical/files/pthread-fix.patch b/meta/recipes-support/libical/files/pthread-fix.patch
deleted file mode 100644
index 877b808fc0..0000000000
--- a/meta/recipes-support/libical/files/pthread-fix.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-New added pthread feature leads to some deadlock with some unlock code missing.
-This patch fix it.
-
-Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
-
-Upstream-Status: Pending
-
-Index: libical-0.47/src/libical/icaltimezone.c
-===================================================================
---- libical-0.47.orig/src/libical/icaltimezone.c 2011-12-16 13:42:25.000000000 +0800
-+++ libical-0.47/src/libical/icaltimezone.c 2011-12-16 14:16:25.000000000 +0800
-@@ -1773,7 +1773,7 @@
- filename = (char*) malloc (filename_len);
- if (!filename) {
- icalerror_set_errno(ICAL_NEWFAILED_ERROR);
-- return;
-+ goto out;
- }
-
- snprintf (filename, filename_len, "%s/%s.ics", get_zone_directory(),
-@@ -1783,7 +1783,7 @@
- free (filename);
- if (!fp) {
- icalerror_set_errno(ICAL_FILE_ERROR);
-- return;
-+ goto out;
- }
-
-
-@@ -1807,7 +1807,7 @@
-
- if (!subcomp) {
- icalerror_set_errno(ICAL_PARSE_ERROR);
-- return;
-+ goto out;
- }
-
- icaltimezone_get_vtimezone_properties (zone, subcomp);
-@@ -1817,10 +1817,12 @@
- icalcomponent_free(comp);
- }
- #endif
--#ifdef HAVE_PTHREAD
-+
- out:
-+#ifdef HAVE_PTHREAD
- pthread_mutex_unlock(&builtin_mutex);
- #endif
-+ return;
- }
-
-
diff --git a/meta/recipes-support/libical/libical_0.48.bb b/meta/recipes-support/libical/libical_0.48.bb
deleted file mode 100644
index f464026f8c..0000000000
--- a/meta/recipes-support/libical/libical_0.48.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
-HOMEPAGE = "http://sourceforge.net/projects/freeassociation/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=16077&atid=116077"
-LICENSE = "LGPLv2.1 | MPL-1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4fc58309d8ed46587ac63bb449d82f8 \
- file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6"
-SECTION = "libs"
-
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/freeassociation/${BPN}/${P}/${BPN}-${PV}.tar.gz\
- file://pthread-fix.patch"
-
-SRC_URI[md5sum] = "e549f434d5fbf9cd156c60ed4943618f"
-SRC_URI[sha256sum] = "2ae78b0757f0dd13431acf42a9a8d038339fd4767fd5134e650bf60ee0b4dff0"
-
-inherit autotools
diff --git a/meta/recipes-support/libical/libical_1.0.0.bb b/meta/recipes-support/libical/libical_1.0.0.bb
new file mode 100644
index 0000000000..be6b635caf
--- /dev/null
+++ b/meta/recipes-support/libical/libical_1.0.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "iCal and scheduling (RFC 2445, 2446, 2447) library"
+HOMEPAGE = "https://github.com/libical/libical"
+BUGTRACKER = "https://github.com/libical/libical/issues"
+LICENSE = "LGPLv2.1 | MPL-1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4fc58309d8ed46587ac63bb449d82f8 \
+ file://LICENSE;md5=d1a0891cd3e582b3e2ec8fe63badbbb6"
+SECTION = "libs"
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz"
+SRC_URI[md5sum] = "f4b8e33ae5efb2f025eb43ce69682a36"
+SRC_URI[sha256sum] = "0072e83834092315772e6719b85fc8b11530b1ff53f4d108315fb38cddbce8c2"
+
+inherit autotools
diff --git a/meta/recipes-support/libiconv/libiconv_1.11.1.bb b/meta/recipes-support/libiconv/libiconv_1.11.1.bb
index c52564a42c..abf739bfa1 100644
--- a/meta/recipes-support/libiconv/libiconv_1.11.1.bb
+++ b/meta/recipes-support/libiconv/libiconv_1.11.1.bb
@@ -21,8 +21,8 @@ S = "${WORKDIR}/libiconv-${PV}"
inherit autotools pkgconfig gettext
python __anonymous() {
- if d.getVar("TCLIBC", True) == "eglibc":
- raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - eglibc already provides iconv")
+ if d.getVar("TCLIBC", True) == "glibc":
+ raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - glibc already provides iconv")
}
EXTRA_OECONF += "--enable-shared --enable-static --enable-relocatable"
diff --git a/meta/recipes-support/libiconv/libiconv_1.14.bb b/meta/recipes-support/libiconv/libiconv_1.14.bb
index d5f47b4e34..1b6fe09bb7 100644
--- a/meta/recipes-support/libiconv/libiconv_1.14.bb
+++ b/meta/recipes-support/libiconv/libiconv_1.14.bb
@@ -25,8 +25,8 @@ inherit autotools pkgconfig gettext
python __anonymous() {
if d.getVar("TARGET_OS", True) != "linux":
return
- if d.getVar("TCLIBC", True) == "eglibc":
- raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - eglibc already provides iconv")
+ if d.getVar("TCLIBC", True) == "glibc":
+ raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - glibc already provides iconv")
}
EXTRA_OECONF += "--enable-shared --enable-static --enable-relocatable"
diff --git a/meta/recipes-support/libksba/libksba_1.3.0.bb b/meta/recipes-support/libksba/libksba_1.3.2.bb
index 13ad437629..cce08c302c 100644
--- a/meta/recipes-support/libksba/libksba_1.3.0.bb
+++ b/meta/recipes-support/libksba/libksba_1.3.2.bb
@@ -6,7 +6,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fd541d83f75d038c4e0617b672ed8bda \
file://COPYING.GPLv3;md5=2f31b266d3440dd7ee50f92cf67d8e6c \
file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
"
-PR = "r1"
DEPENDS = "libgpg-error"
@@ -17,8 +16,8 @@ inherit autotools binconfig-disabled pkgconfig texinfo
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2 \
file://ksba-add-pkgconfig-support.patch"
-SRC_URI[md5sum] = "cd86fad9c9d360b2cf80449f8a4a4075"
-SRC_URI[sha256sum] = "5a61eed50550d4d0dcb47457ce7b6a90f8e719d42a3b25f7e79333e8cd721971"
+SRC_URI[md5sum] = "c3c9a66e22d87fe3ae59865250b8a09c"
+SRC_URI[sha256sum] = "eb95537955dfc2845690a4cc3836074fa6d0a2c2ca2cbf1759364d3bd9868406"
do_configure_prepend () {
# Else these could be used in preference to those in aclocal-copy
diff --git a/meta/recipes-support/libnl/libnl/fix-lib-cache_mngr.c-two-parentheses-bugs.patch b/meta/recipes-support/libnl/libnl/fix-lib-cache_mngr.c-two-parentheses-bugs.patch
deleted file mode 100644
index 22b0d88428..0000000000
--- a/meta/recipes-support/libnl/libnl/fix-lib-cache_mngr.c-two-parentheses-bugs.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 82fdf49c185fd5f3810781af9ef52aa6a52bf2df Mon Sep 17 00:00:00 2001
-From: "Song.Li" <Song.Li@windriver.com>
-Date: Thu, 28 Jun 2012 20:03:17 +0800
-Subject: [PATCH] fix lib/cache_mngr.c two parentheses bugs
-
-there are two parentheses bugs in libnl /lib/cache_mngr.c file.
-The parentheses doesn't make any sense,
-This will cause the variable err get a bool value,
-the correct value of variable err should be the return value
-of the function which can be any integer value.
-
----
- lib/cache_mngr.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Upstream-Status: Pending
-
-diff --git a/lib/cache_mngr.c b/lib/cache_mngr.c
-index dae8768..57cc1f9 100644
---- a/lib/cache_mngr.c
-+++ b/lib/cache_mngr.c
-@@ -150,10 +150,10 @@ int nl_cache_mngr_alloc(struct nl_sock *sk, int protocol, int flags,
- /* Required to receive async event notifications */
- nl_socket_disable_seq_check(mngr->cm_sock);
-
-- if ((err = nl_connect(mngr->cm_sock, protocol) < 0))
-+ if ((err = nl_connect(mngr->cm_sock, protocol)) < 0)
- goto errout;
-
-- if ((err = nl_socket_set_nonblocking(mngr->cm_sock) < 0))
-+ if ((err = nl_socket_set_nonblocking(mngr->cm_sock)) < 0)
- goto errout;
-
- NL_DBG(1, "Allocated cache manager %p, protocol %d, %d caches\n",
---
-1.7.9.5
-
diff --git a/meta/recipes-support/libnl/libnl/fix-pktloc_syntax_h-race.patch b/meta/recipes-support/libnl/libnl/fix-pktloc_syntax_h-race.patch
index b93d97b1b7..79aa0bdf11 100644
--- a/meta/recipes-support/libnl/libnl/fix-pktloc_syntax_h-race.patch
+++ b/meta/recipes-support/libnl/libnl/fix-pktloc_syntax_h-race.patch
@@ -6,24 +6,24 @@ newer version so we can assume this issue is fixed upstream
Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
-Index: libnl-3.2.14/lib/Makefile.am
+Index: libnl-3.2.25/lib/Makefile.am
===================================================================
---- libnl-3.2.14.orig/lib/Makefile.am
-+++ libnl-3.2.14/lib/Makefile.am
-@@ -39,9 +39,12 @@ CLEANFILES = \
+--- libnl-3.2.25.orig/lib/Makefile.am
++++ libnl-3.2.25/lib/Makefile.am
+@@ -46,9 +46,12 @@ CLEANFILES = \
# Hack to avoid using ylwrap. It does not function correctly in combination
# with --header-file=
+route/pktloc.lo: route/pktloc_syntax.h route/pktloc_grammar.h
+route/pktloc_grammar.h: route/pktloc_grammar.c
route/pktloc_grammar.c: route/pktloc_grammar.l
- $(AM_V_GEN) $(FLEX) --header-file=route/pktloc_grammar.h $(LFLAGS) -o $@ $^
+ $(AM_V_GEN) $(MKDIR_P) route; $(FLEX) --header-file=route/pktloc_grammar.h $(LFLAGS) -o $@ $^
+route/pktloc_syntax.h: route/pktloc_syntax.c
route/pktloc_syntax.c: route/pktloc_syntax.y
- $(AM_V_GEN) $(YACC) -d $(YFLAGS) -o $@ $^
+ $(AM_V_GEN) $(MKDIR_P) route; $(YACC) -d $(YFLAGS) -o $@ $^
-@@ -89,7 +92,9 @@ BUILT_SOURCES = \
+@@ -102,7 +105,9 @@ BUILT_SOURCES = \
route/cls/ematch_grammar.c \
route/cls/ematch_syntax.c \
route/pktloc_grammar.c \
diff --git a/meta/recipes-support/libnl/libnl_3.2.24.bb b/meta/recipes-support/libnl/libnl_3.2.25.bb
index d34ab74eac..97814fb134 100644
--- a/meta/recipes-support/libnl/libnl_3.2.24.bb
+++ b/meta/recipes-support/libnl/libnl_3.2.25.bb
@@ -3,6 +3,7 @@ HOMEPAGE = "http://www.infradead.org/~tgr/libnl/"
SECTION = "libs/network"
PE = "1"
+PR = "r1"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
@@ -12,12 +13,12 @@ DEPENDS = "flex-native bison-native"
SRC_URI = "http://www.infradead.org/~tgr/${BPN}/files/${BP}.tar.gz \
file://fix-pktloc_syntax_h-race.patch \
file://fix-pc-file.patch \
- file://fix-lib-cache_mngr.c-two-parentheses-bugs.patch \
"
-SRC_URI[md5sum] = "6e0e7bad0674749d930dd9f285343d55"
-SRC_URI[sha256sum] = "fb8d6e5dc8af5b85bc6d00a71582a68a01e6a3f7d1664d4a646e289a99dd6816"
-inherit autotools-brokensep pkgconfig
+SRC_URI[md5sum] = "03f74d0cd5037cadc8cdfa313bbd195c"
+SRC_URI[sha256sum] = "8beb7590674957b931de6b7f81c530b85dc7c1ad8fbda015398bc1e8d1ce8ec5"
+
+inherit autotools pkgconfig
FILES_${PN} = "${libdir}/libnl-3.so.* \
${libdir}/libnl.so.* \
diff --git a/meta/recipes-support/libpcre/libpcre/Makefile b/meta/recipes-support/libpcre/libpcre/Makefile
index 5419d71f7f..708d807d08 100644
--- a/meta/recipes-support/libpcre/libpcre/Makefile
+++ b/meta/recipes-support/libpcre/libpcre/Makefile
@@ -65,7 +65,7 @@ am__test_logs1 = $(TESTS:=.log)
am__test_logs2 = $(am__test_logs1:.log=.log)
TEST_LOGS = $(am__test_logs2:.test.log=.log)
MKDIR_P = /bin/mkdir -p
-PACKAGE_STRING = PCRE 8.34
+PACKAGE_STRING = PCRE 8.36
SHELL = /bin/sh
srcdir = .
top_srcdir = .
diff --git a/meta/recipes-support/libpcre/libpcre_8.35.bb b/meta/recipes-support/libpcre/libpcre_8.36.bb
index 92098c8c51..a4b7f6d985 100644
--- a/meta/recipes-support/libpcre/libpcre_8.35.bb
+++ b/meta/recipes-support/libpcre/libpcre_8.36.bb
@@ -14,8 +14,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/project/pcre/pcre/${PV}/pcre-${PV}.tar.bz2 \
file://Makefile \
"
-SRC_URI[md5sum] = "6aacb23986adccd9b3bc626c00979958"
-SRC_URI[sha256sum] = "a961c1c78befef263cc130756eeca7b674b4e73a81533293df44e4265236865b"
+SRC_URI[md5sum] = "b767bc9af0c20bc9c1fe403b0d41ad97"
+SRC_URI[sha256sum] = "ef833457de0c40e82f573e34528f43a751ff20257ad0e86d272ed5637eb845bb"
S = "${WORKDIR}/pcre-${PV}"
@@ -28,8 +28,6 @@ BINCONFIG = "${bindir}/pcre-config"
inherit autotools binconfig-disabled ptest
-PARALLEL_MAKE = ""
-
EXTRA_OECONF = "\
--enable-newline-is-lf \
--enable-rebuild-chartables \
diff --git a/meta/recipes-support/libproxy/libproxy_0.4.11.bb b/meta/recipes-support/libproxy/libproxy_0.4.11.bb
index a53a197615..3367c85156 100644
--- a/meta/recipes-support/libproxy/libproxy_0.4.11.bb
+++ b/meta/recipes-support/libproxy/libproxy_0.4.11.bb
@@ -29,7 +29,7 @@ do_configure_prepend() {
}
python() {
- if bb.utils.contains("INCOMPATIBLE_LICENSE", "GPLv3", "x", "", d) == "x" or bb.utils.contains("DISTRO_FEATURES", "x11", "x", "", d) == "":
+ if incompatible_license_contains("GPLv3", "x", "", d) == "x" or bb.utils.contains("DISTRO_FEATURES", "x11", "x", "", d) == "":
d.setVar("EXTRA_OECMAKE", d.getVar("EXTRA_OECMAKE").replace("-DWITH_GNOME=yes", "-DWITH_GNOME=no"))
d.setVar("DEPENDS", " ".join(i for i in d.getVar("DEPENDS").split() if i != "gconf"))
}
diff --git a/meta/recipes-support/libsoup/libsoup-2.4_2.46.0.bb b/meta/recipes-support/libsoup/libsoup-2.4_2.46.0.bb
index f062b2eefa..81da911926 100644
--- a/meta/recipes-support/libsoup/libsoup-2.4_2.46.0.bb
+++ b/meta/recipes-support/libsoup/libsoup-2.4_2.46.0.bb
@@ -23,7 +23,7 @@ SRC_URI[sha256sum] = "fa3d5574c1a2df521242e2ca624a2b3057121798cab9f8f40525aa186a
S = "${WORKDIR}/libsoup-${PV}"
-inherit autotools pkgconfig
+inherit autotools gettext pkgconfig
# glib-networking is needed for SSL, proxies, etc.
RRECOMMENDS_${PN} = "glib-networking"
diff --git a/meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch b/meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch
index a330c73412..d4489165bf 100644
--- a/meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch
+++ b/meta/recipes-support/libunistring/libunistring/iconv-m4-remove-the-test-to-convert-euc-jp.patch
@@ -16,11 +16,11 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
gnulib-m4/iconv.m4 | 11 -----------
1 files changed, 0 insertions(+), 11 deletions(-)
-diff --git a/gnulib-m4/iconv.m4 b/gnulib-m4/iconv.m4
-index f46ff14..de0a5e9 100644
---- a/gnulib-m4/iconv.m4
-+++ b/gnulib-m4/iconv.m4
-@@ -126,17 +126,6 @@ int main ()
+Index: libunistring-0.9.4/gnulib-m4/iconv.m4
+===================================================================
+--- libunistring-0.9.4.orig/gnulib-m4/iconv.m4 2014-11-03 17:41:29.755011917 +0000
++++ libunistring-0.9.4/gnulib-m4/iconv.m4 2014-11-03 17:43:03.795014480 +0000
+@@ -159,17 +159,6 @@
}
}
#endif
@@ -34,9 +34,7 @@ index f46ff14..de0a5e9 100644
- && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
- /* Try HP-UX names. */
- && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
-- return 1;
- return 0;
- }], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no],
- [case "$host_os" in
---
-1.7.4
+- result |= 16;
+ return result;
+ }]])],
+ [am_cv_func_iconv_works=yes],
diff --git a/meta/recipes-support/libunistring/libunistring/libunistring_fix_for_automake_1.12.patch b/meta/recipes-support/libunistring/libunistring/libunistring_fix_for_automake_1.12.patch
deleted file mode 100644
index 5d831d5491..0000000000
--- a/meta/recipes-support/libunistring/libunistring/libunistring_fix_for_automake_1.12.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-Upstream-Status: Pending
-
-automake 1.12 has deprecated use of mkdir_p, and it recommends
-use of MKDIR_P instead. Changed the code to avoid these kind
-of warning-errors.
-
-| make[2]: /build/tmp/work/x86_64-linux/libunistring-native-0.9.3-r2/image/srv/home/nitin/builds2/build0/tmp/sysroots/x86_64-linux/usr/share/doc/libunistring: Command not found
-| make[2]: *** [install-html-split] Error 127
-
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2012/07/10
-
-Index: libunistring-0.9.3/doc/Makefile.am
-===================================================================
---- libunistring-0.9.3.orig/doc/Makefile.am
-+++ libunistring-0.9.3/doc/Makefile.am
-@@ -87,7 +87,7 @@ TEXI2DVI = @TEXI2DVI@ $(TEXINCLUDES)
- # The install-dvi target is already defined by automake.
-
- installdirs-dvi:
-- $(mkdir_p) $(DESTDIR)$(dvidir)
-+ $(MKDIR_P) $(DESTDIR)$(dvidir)
-
- uninstall-dvi:
- $(RM) $(DESTDIR)$(dvidir)/libunistring.dvi
-@@ -105,7 +105,7 @@ libunistring.ps: libunistring.dvi
- # The install-ps target is already defined by automake.
-
- installdirs-ps:
-- $(mkdir_p) $(DESTDIR)$(psdir)
-+ $(MKDIR_P) $(DESTDIR)$(psdir)
-
- uninstall-ps:
- $(RM) $(DESTDIR)$(psdir)/libunistring.ps
-@@ -120,7 +120,7 @@ TEXI2PDF = @TEXI2DVI@ --pdf $(TEXINCLUDE
- # The install-pdf target is already defined by automake.
-
- installdirs-pdf:
-- $(mkdir_p) $(DESTDIR)$(pdfdir)
-+ $(MKDIR_P) $(DESTDIR)$(pdfdir)
-
- uninstall-pdf:
- $(RM) $(DESTDIR)$(pdfdir)/libunistring.pdf
-@@ -151,17 +151,17 @@ libunistring_toc.html: libunistring.texi
- }
-
- install-html-monolithic: libunistring.html
-- $(mkdir_p) $(DESTDIR)$(htmldir)
-+ $(MKDIR_P) $(DESTDIR)$(htmldir)
- $(INSTALL_DATA) `if test -f libunistring.html; then echo .; else echo $(srcdir); fi`/libunistring.html $(DESTDIR)$(htmldir)/libunistring.html
-
- install-html-split: libunistring_toc.html
-- $(mkdir_p) $(DESTDIR)$(htmldir)
-+ $(MKDIR_P) $(DESTDIR)$(htmldir)
- for file in `if test -f libunistring_toc.html; then echo .; else echo $(srcdir); fi`/libunistring_*.html; do \
- $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir)/`basename $$file`; \
- done
-
- installdirs-html:
-- $(mkdir_p) $(DESTDIR)$(htmldir)
-+ $(MKDIR_P) $(DESTDIR)$(htmldir)
-
- uninstall-html-monolithic:
- $(RM) $(DESTDIR)$(htmldir)/libunistring.html
-@@ -170,14 +170,14 @@ uninstall-html-split:
- $(RM) $(DESTDIR)$(htmldir)/libunistring_*.html
-
- dist-html-monolithic:
-- $(mkdir_p) $(distdir)/
-+ $(MKDIR_P) $(distdir)/
- file=libunistring.html; \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- cp -p $$d/$$file $(distdir)/$$file || exit 1
-
- # We would like to put libunistring_*.html into EXTRA_DIST, but it doesn't work.
- dist-html-split: libunistring_toc.html
-- $(mkdir_p) $(distdir)/
-+ $(MKDIR_P) $(distdir)/
- file=libunistring_toc.html; \
- if test -f $$file; then d=.; else d=$(srcdir); fi; \
- for file in `cd $$d && echo libunistring_*.html`; do \
diff --git a/meta/recipes-support/libunistring/libunistring/parallelmake.patch b/meta/recipes-support/libunistring/libunistring/parallelmake.patch
deleted file mode 100644
index 21025b8e9d..0000000000
--- a/meta/recipes-support/libunistring/libunistring/parallelmake.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Fix a parallel make race where cdefs.h uses the unused-parameter.h header file
-but has no dependency listed. This can result in an empty cdefs.h file which
-results in a build failure like:
-
-| In file included from striconveh.c:30:0:
-| unistr.h:193:48: error: expected ';', ',' or ')' before '_GL_UNUSED_PARAMETER'
-| In file included from striconveh.c:30:0:
-| unistr.h:263:54: error: expected ';', ',' or ')' before '_GL_UNUSED_PARAMETER'
-
-Upstream-Status: Pending
-
-RP 2012/4/12
-
-Index: libunistring-0.9.3/lib/Makefile.am
-===================================================================
---- libunistring-0.9.3.orig/lib/Makefile.am 2012-04-12 07:45:41.450059820 +0000
-+++ libunistring-0.9.3/lib/Makefile.am 2012-04-12 07:48:45.434055559 +0000
-@@ -157,7 +157,7 @@
-
- # unistring/cdefs.h is not public, but is included by other header files.
- nobase_nodist_include_HEADERS += unistring/cdefs.h
--unistring/cdefs.h : unistring/cdefs.in.h
-+unistring/cdefs.h : unistring/cdefs.in.h $(UNUSED_PARAMETER_H)
- @MKDIR_P@ unistring
- rm -f $@-t $@
- sed -e '/definition of _GL_UNUSED_PARAMETER/r $(UNUSED_PARAMETER_H)' \
diff --git a/meta/recipes-support/libunistring/libunistring_0.9.3.bb b/meta/recipes-support/libunistring/libunistring_0.9.4.bb
index db1651b2a6..89b1dc26f1 100644
--- a/meta/recipes-support/libunistring/libunistring_0.9.3.bb
+++ b/meta/recipes-support/libunistring/libunistring_0.9.4.bb
@@ -18,15 +18,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.LIB;md5=6a6a8e020838b23406c81b19c1d46df6"
SRC_URI = "${GNU_MIRROR}/libunistring/libunistring-${PV}.tar.gz \
- file://parallelmake.patch \
- file://libunistring_fix_for_automake_1.12.patch \
file://iconv-m4-remove-the-test-to-convert-euc-jp.patch \
"
-SRC_URI[md5sum] = "db8eca3b64163abadf8c40e5cecc261f"
-SRC_URI[sha256sum] = "610d3ec724fbdaa654afe3cff20b9f4d504be3fd296fded2e0f7f764041006a3"
-
-PR = "r3"
+SRC_URI[md5sum] = "c24a6a3838d9ad4a41a62549312c4226"
+SRC_URI[sha256sum] = "f5246d63286a42902dc096d6d44541fbe4204b6c02d6d5d28b457c9882ddd8a6"
inherit autotools texinfo
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch b/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch
new file mode 100644
index 0000000000..228ec322d5
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind-1.1/AArch64-port.patch
@@ -0,0 +1,2529 @@
+From ac6c0a6535975f1dc2da6e4e2766614baac2a14a Mon Sep 17 00:00:00 2001
+From: Yvan Roux <yvan.roux@linaro.org>
+Date: Sat, 11 May 2013 09:18:23 -0600
+Subject: [PATCH] AArch64 port.
+
+Upstream-Status: Backport
+
+---
+ Makefile.am | 6
+ README | 1
+ configure.ac | 6
+ include/libunwind-aarch64.h | 187 ++++++++++++++++++++++
+ include/libunwind.h.in | 4
+ include/tdep-aarch64/dwarf-config.h | 52 ++++++
+ include/tdep-aarch64/jmpbuf.h | 33 +++
+ include/tdep-aarch64/libunwind_i.h | 294 +++++++++++++++++++++++++++++++++++
+ include/tdep/dwarf-config.h | 4
+ include/tdep/jmpbuf.h | 2
+ include/tdep/libunwind_i.h.in | 4
+ src/Makefile.am | 39 ++++
+ src/aarch64/Gcreate_addr_space.c | 60 +++++++
+ src/aarch64/Gget_proc_info.c | 39 ++++
+ src/aarch64/Gget_save_loc.c | 100 +++++++++++
+ src/aarch64/Gglobal.c | 57 ++++++
+ src/aarch64/Ginit.c | 187 ++++++++++++++++++++++
+ src/aarch64/Ginit_local.c | 55 ++++++
+ src/aarch64/Ginit_remote.c | 45 +++++
+ src/aarch64/Gis_signal_frame.c | 64 +++++++
+ src/aarch64/Gregs.c | 113 +++++++++++++
+ src/aarch64/Gresume.c | 177 +++++++++++++++++++++
+ src/aarch64/Gstep.c | 129 +++++++++++++++
+ src/aarch64/Lcreate_addr_space.c | 5
+ src/aarch64/Lget_proc_info.c | 5
+ src/aarch64/Lget_save_loc.c | 5
+ src/aarch64/Lglobal.c | 5
+ src/aarch64/Linit.c | 5
+ src/aarch64/Linit_local.c | 5
+ src/aarch64/Linit_remote.c | 5
+ src/aarch64/Lis_signal_frame.c | 5
+ src/aarch64/Lregs.c | 5
+ src/aarch64/Lresume.c | 5
+ src/aarch64/Lstep.c | 5
+ src/aarch64/gen-offsets.c | 68 ++++++++
+ src/aarch64/init.h | 127 +++++++++++++++
+ src/aarch64/is_fpreg.c | 32 +++
+ src/aarch64/offsets.h | 49 +++++
+ src/aarch64/regname.c | 106 ++++++++++++
+ src/aarch64/siglongjmp.S | 12 +
+ src/aarch64/unwind_i.h | 43 +++++
+ src/coredump/_UCD_access_reg_linux.c | 5
+ src/ptrace/_UPT_reg_offset.c | 36 ++++
+ 43 files changed, 2184 insertions(+), 7 deletions(-)
+ create mode 100644 include/libunwind-aarch64.h
+ create mode 100644 include/tdep-aarch64/dwarf-config.h
+ create mode 100644 include/tdep-aarch64/jmpbuf.h
+ create mode 100644 include/tdep-aarch64/libunwind_i.h
+ create mode 100644 src/aarch64/Gcreate_addr_space.c
+ create mode 100644 src/aarch64/Gget_proc_info.c
+ create mode 100644 src/aarch64/Gget_save_loc.c
+ create mode 100644 src/aarch64/Gglobal.c
+ create mode 100644 src/aarch64/Ginit.c
+ create mode 100644 src/aarch64/Ginit_local.c
+ create mode 100644 src/aarch64/Ginit_remote.c
+ create mode 100644 src/aarch64/Gis_signal_frame.c
+ create mode 100644 src/aarch64/Gregs.c
+ create mode 100644 src/aarch64/Gresume.c
+ create mode 100644 src/aarch64/Gstep.c
+ create mode 100644 src/aarch64/Lcreate_addr_space.c
+ create mode 100644 src/aarch64/Lget_proc_info.c
+ create mode 100644 src/aarch64/Lget_save_loc.c
+ create mode 100644 src/aarch64/Lglobal.c
+ create mode 100644 src/aarch64/Linit.c
+ create mode 100644 src/aarch64/Linit_local.c
+ create mode 100644 src/aarch64/Linit_remote.c
+ create mode 100644 src/aarch64/Lis_signal_frame.c
+ create mode 100644 src/aarch64/Lregs.c
+ create mode 100644 src/aarch64/Lresume.c
+ create mode 100644 src/aarch64/Lstep.c
+ create mode 100644 src/aarch64/gen-offsets.c
+ create mode 100644 src/aarch64/init.h
+ create mode 100644 src/aarch64/is_fpreg.c
+ create mode 100644 src/aarch64/offsets.h
+ create mode 100644 src/aarch64/regname.c
+ create mode 100644 src/aarch64/siglongjmp.S
+ create mode 100644 src/aarch64/unwind_i.h
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,6 +2,9 @@ include_HEADERS = include/libunwind-dyna
+ include/libunwind-ptrace.h \
+ include/libunwind-coredump.h
+
++if ARCH_AARCH64
++include_HEADERS += include/libunwind-aarch64.h
++endif
+ if ARCH_ARM
+ include_HEADERS += include/libunwind-arm.h
+ endif
+@@ -41,6 +44,9 @@ SUBDIRS = src tests doc
+ noinst_HEADERS = include/dwarf.h include/dwarf_i.h include/dwarf-eh.h \
+ include/compiler.h include/libunwind_i.h include/mempool.h \
+ include/remote.h \
++ include/tdep-aarch64/dwarf-config.h \
++ include/tdep-aarch64/jmpbuf.h \
++ include/tdep-aarch64/libunwind_i.h \
+ include/tdep-arm/dwarf-config.h include/tdep-arm/ex_tables.h \
+ include/tdep-arm/jmpbuf.h include/tdep-arm/libunwind_i.h \
+ include/tdep-ia64/jmpbuf.h include/tdep-ia64/rse.h \
+--- a/README
++++ b/README
+@@ -9,6 +9,7 @@ several architecture/operating-system co
+ Linux/IA-64: Fully tested and supported.
+ Linux/PARISC: Works well, but C library missing unwind-info.
+ HP-UX/IA-64: Mostly works but known to have some serious limitations.
++ Linux/AArch64: Newly added.
+ Linux/PPC64: Newly added.
+ Linux/SuperH: Newly added.
+ FreeBSD/i386: Newly added.
+--- a/configure.ac
++++ b/configure.ac
+@@ -104,7 +104,7 @@ SET_ARCH([$target_cpu],[target_arch])
+
+ AC_ARG_ENABLE(coredump,
+ AS_HELP_STRING([--enable-coredump],[building libunwind-coredump library]),,
+- [AS_CASE([$host_arch], [arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
++ [AS_CASE([$host_arch], [aarch64*|arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
+ )
+
+ AC_MSG_CHECKING([if we should build libunwind-coredump])
+@@ -121,6 +121,7 @@ AC_MSG_RESULT([$target_os])
+
+ AM_CONDITIONAL(BUILD_COREDUMP, test x$enable_coredump = xyes)
+ AM_CONDITIONAL(REMOTE_ONLY, test x$target_arch != x$host_arch)
++AM_CONDITIONAL(ARCH_AARCH64, test x$target_arch = xaarch64)
+ AM_CONDITIONAL(ARCH_ARM, test x$target_arch = xarm)
+ AM_CONDITIONAL(ARCH_IA64, test x$target_arch = xia64)
+ AM_CONDITIONAL(ARCH_HPPA, test x$target_arch = xhppa)
+@@ -137,7 +138,7 @@ AM_CONDITIONAL(OS_FREEBSD, expr x$target
+ AC_MSG_CHECKING([for ELF helper width])
+ case "${target_arch}" in
+ (arm|hppa|ppc32|x86|sh) use_elf32=yes; AC_MSG_RESULT([32]);;
+-(ia64|ppc64|x86_64) use_elf64=yes; AC_MSG_RESULT([64]);;
++(aarch64|ia64|ppc64|x86_64) use_elf64=yes; AC_MSG_RESULT([64]);;
+ (mips) use_elfxx=yes; AC_MSG_RESULT([xx]);;
+ *) AC_MSG_ERROR([Unknown ELF target: ${target_arch}])
+ esac
+@@ -186,6 +187,7 @@ AS_HELP_STRING([--enable-cxx-exceptions]
+ # C++ exception handling doesn't work too well on x86
+ case $target_arch in
+ x86*) enable_cxx_exceptions=no;;
++ aarch64*) enable_cxx_exceptions=no;;
+ arm*) enable_cxx_exceptions=no;;
+ mips*) enable_cxx_exceptions=no;;
+ *) enable_cxx_exceptions=yes;;
+--- /dev/null
++++ b/include/libunwind-aarch64.h
+@@ -0,0 +1,187 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2001-2004 Hewlett-Packard Co
++ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#ifndef LIBUNWIND_H
++#define LIBUNWIND_H
++
++#if defined(__cplusplus) || defined(c_plusplus)
++extern "C" {
++#endif
++
++#include <inttypes.h>
++#include <stddef.h>
++#include <ucontext.h>
++
++#define UNW_TARGET aarch64
++#define UNW_TARGET_AARCH64 1
++
++#define _U_TDEP_QP_TRUE 0 /* see libunwind-dynamic.h */
++
++/* This needs to be big enough to accommodate "struct cursor", while
++ leaving some slack for future expansion. Changing this value will
++ require recompiling all users of this library. Stack allocation is
++ relatively cheap and unwind-state copying is relatively rare, so we
++ want to err on making it rather too big than too small. */
++
++#define UNW_TDEP_CURSOR_LEN 4096
++
++typedef uint64_t unw_word_t;
++typedef int64_t unw_sword_t;
++
++typedef long double unw_tdep_fpreg_t;
++
++typedef struct
++ {
++ /* no aarch64-specific auxiliary proc-info */
++ }
++unw_tdep_proc_info_t;
++
++typedef enum
++ {
++ /* 64-bit general registers. */
++ UNW_AARCH64_X0,
++ UNW_AARCH64_X1,
++ UNW_AARCH64_X2,
++ UNW_AARCH64_X3,
++ UNW_AARCH64_X4,
++ UNW_AARCH64_X5,
++ UNW_AARCH64_X6,
++ UNW_AARCH64_X7,
++ UNW_AARCH64_X8,
++
++ /* Temporary registers. */
++ UNW_AARCH64_X9,
++ UNW_AARCH64_X10,
++ UNW_AARCH64_X11,
++ UNW_AARCH64_X12,
++ UNW_AARCH64_X13,
++ UNW_AARCH64_X14,
++ UNW_AARCH64_X15,
++
++ /* Intra-procedure-call temporary registers. */
++ UNW_AARCH64_X16,
++ UNW_AARCH64_X17,
++
++ /* Callee-saved registers. */
++ UNW_AARCH64_X18,
++ UNW_AARCH64_X19,
++ UNW_AARCH64_X20,
++ UNW_AARCH64_X21,
++ UNW_AARCH64_X22,
++ UNW_AARCH64_X23,
++ UNW_AARCH64_X24,
++ UNW_AARCH64_X25,
++ UNW_AARCH64_X26,
++ UNW_AARCH64_X27,
++ UNW_AARCH64_X28,
++
++ /* 64-bit frame pointer. */
++ UNW_AARCH64_X29,
++
++ /* 64-bit link register. */
++ UNW_AARCH64_X30,
++
++ /* 64-bit stack pointer. */
++ UNW_AARCH64_SP = 31,
++ UNW_AARCH64_PC,
++ UNW_AARCH64_PSTATE,
++
++ /* 128-bit FP/Advanced SIMD registers. */
++ UNW_AARCH64_V0 = 64,
++ UNW_AARCH64_V1,
++ UNW_AARCH64_V2,
++ UNW_AARCH64_V3,
++ UNW_AARCH64_V4,
++ UNW_AARCH64_V5,
++ UNW_AARCH64_V6,
++ UNW_AARCH64_V7,
++ UNW_AARCH64_V8,
++ UNW_AARCH64_V9,
++ UNW_AARCH64_V10,
++ UNW_AARCH64_V11,
++ UNW_AARCH64_V12,
++ UNW_AARCH64_V13,
++ UNW_AARCH64_V14,
++ UNW_AARCH64_V15,
++ UNW_AARCH64_V16,
++ UNW_AARCH64_V17,
++ UNW_AARCH64_V18,
++ UNW_AARCH64_V19,
++ UNW_AARCH64_V20,
++ UNW_AARCH64_V21,
++ UNW_AARCH64_V22,
++ UNW_AARCH64_V23,
++ UNW_AARCH64_V24,
++ UNW_AARCH64_V25,
++ UNW_AARCH64_V26,
++ UNW_AARCH64_V27,
++ UNW_AARCH64_V28,
++ UNW_AARCH64_V29,
++ UNW_AARCH64_V30,
++ UNW_AARCH64_V31,
++
++ UNW_AARCH64_FPSR,
++ UNW_AARCH64_FPCR,
++
++ /* For AArch64, the CFA is the value of SP (x31) at the call site of the
++ previous frame. */
++ UNW_AARCH64_CFA = UNW_AARCH64_SP,
++
++ UNW_TDEP_LAST_REG = UNW_AARCH64_FPCR,
++
++ UNW_TDEP_IP = UNW_AARCH64_X30,
++ UNW_TDEP_SP = UNW_AARCH64_SP,
++ UNW_TDEP_EH = UNW_AARCH64_X0,
++
++ }
++aarch64_regnum_t;
++
++/* Use R0 through R3 to pass exception handling information. */
++#define UNW_TDEP_NUM_EH_REGS 4
++
++typedef struct unw_tdep_save_loc
++ {
++ /* Additional target-dependent info on a save location. */
++ }
++unw_tdep_save_loc_t;
++
++
++/* On AArch64, we can directly use ucontext_t as the unwind context. */
++typedef ucontext_t unw_tdep_context_t;
++
++#include "libunwind-common.h"
++#include "libunwind-dynamic.h"
++
++#define unw_tdep_getcontext(uc) (getcontext (uc), 0)
++#define unw_tdep_is_fpreg UNW_ARCH_OBJ(is_fpreg)
++
++extern int unw_tdep_is_fpreg (int);
++
++#if defined(__cplusplus) || defined(c_plusplus)
++}
++#endif
++
++#endif /* LIBUNWIND_H */
+--- a/include/libunwind.h.in
++++ b/include/libunwind.h.in
+@@ -3,7 +3,9 @@
+
+ #ifndef UNW_REMOTE_ONLY
+
+-#if defined __arm__
++#if defined __aarch64__
++#include "libunwind-aarch64.h"
++#elif defined __arm__
+ # include "libunwind-arm.h"
+ #elif defined __hppa__
+ # include "libunwind-hppa.h"
+--- /dev/null
++++ b/include/tdep-aarch64/dwarf-config.h
+@@ -0,0 +1,52 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#ifndef dwarf_config_h
++#define dwarf_config_h
++
++/* This matches the value udes by GCC (see
++ gcc/config/aarch64/aarch64.h:DWARF_FRAME_REGISTERS. */
++#define DWARF_NUM_PRESERVED_REGS 97
++
++/* Return TRUE if the ADDR_SPACE uses big-endian byte-order. */
++#define dwarf_is_big_endian(addr_space) 0
++
++#define dwarf_to_unw_regnum(reg) (((reg) <= UNW_AARCH64_V31) ? (reg) : 0)
++
++/* Convert a pointer to a dwarf_cursor structure to a pointer to
++ unw_cursor_t. */
++#define dwarf_to_cursor(c) ((unw_cursor_t *) (c))
++
++typedef struct dwarf_loc
++ {
++ unw_word_t val;
++#ifndef UNW_LOCAL_ONLY
++ unw_word_t type; /* see DWARF_LOC_TYPE_* macros. */
++#endif
++ }
++dwarf_loc_t;
++
++#endif /* dwarf_config_h */
+--- /dev/null
++++ b/include/tdep-aarch64/jmpbuf.h
+@@ -0,0 +1,33 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++/* Use glibc's jump-buffer indices; NPTL peeks at SP: */
++
++/* FIXME for AArch64 */
++
++#define JB_SP 13
++#define JB_RP 14
++#define JB_MASK_SAVED 15
++#define JB_MASK 16
+--- /dev/null
++++ b/include/tdep-aarch64/libunwind_i.h
+@@ -0,0 +1,294 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2001-2005 Hewlett-Packard Co
++ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#ifndef AARCH64_LIBUNWIND_I_H
++#define AARCH64_LIBUNWIND_I_H
++
++/* Target-dependent definitions that are internal to libunwind but need
++ to be shared with target-independent code. */
++
++#include <stdlib.h>
++#include <libunwind.h>
++
++#include "elf64.h"
++#include "mempool.h"
++#include "dwarf.h"
++
++typedef struct
++ {
++ /* no aarch64-specific fast trace */
++ }
++unw_tdep_frame_t;
++
++#ifdef UNW_LOCAL_ONLY
++
++typedef unw_word_t aarch64_loc_t;
++
++#else /* !UNW_LOCAL_ONLY */
++
++typedef struct aarch64_loc
++ {
++ unw_word_t w0, w1;
++ }
++aarch64_loc_t;
++
++#endif /* !UNW_LOCAL_ONLY */
++
++struct unw_addr_space
++ {
++ struct unw_accessors acc;
++ int big_endian;
++ unw_caching_policy_t caching_policy;
++#ifdef HAVE_ATOMIC_OPS_H
++ AO_t cache_generation;
++#else
++ uint32_t cache_generation;
++#endif
++ unw_word_t dyn_generation; /* see dyn-common.h */
++ unw_word_t dyn_info_list_addr; /* (cached) dyn_info_list_addr */
++ struct dwarf_rs_cache global_cache;
++ struct unw_debug_frame_list *debug_frames;
++ };
++
++struct cursor
++ {
++ struct dwarf_cursor dwarf; /* must be first */
++ enum
++ {
++ AARCH64_SCF_NONE,
++ AARCH64_SCF_LINUX_RT_SIGFRAME,
++ }
++ sigcontext_format;
++ unw_word_t sigcontext_addr;
++ unw_word_t sigcontext_sp;
++ unw_word_t sigcontext_pc;
++ };
++
++#define DWARF_GET_LOC(l) ((l).val)
++
++#ifdef UNW_LOCAL_ONLY
++# define DWARF_NULL_LOC DWARF_LOC (0, 0)
++# define DWARF_IS_NULL_LOC(l) (DWARF_GET_LOC (l) == 0)
++# define DWARF_LOC(r, t) ((dwarf_loc_t) { .val = (r) })
++# define DWARF_IS_REG_LOC(l) 0
++# define DWARF_REG_LOC(c,r) (DWARF_LOC((unw_word_t) \
++ tdep_uc_addr((c)->as_arg, (r)), 0))
++# define DWARF_MEM_LOC(c,m) DWARF_LOC ((m), 0)
++# define DWARF_FPREG_LOC(c,r) (DWARF_LOC((unw_word_t) \
++ tdep_uc_addr((c)->as_arg, (r)), 0))
++
++static inline int
++dwarf_getfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t *val)
++{
++ if (!DWARF_GET_LOC (loc))
++ return -1;
++ *val = *(unw_fpreg_t *) DWARF_GET_LOC (loc);
++ return 0;
++}
++
++static inline int
++dwarf_putfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t val)
++{
++ if (!DWARF_GET_LOC (loc))
++ return -1;
++ *(unw_fpreg_t *) DWARF_GET_LOC (loc) = val;
++ return 0;
++}
++
++static inline int
++dwarf_get (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t *val)
++{
++ if (!DWARF_GET_LOC (loc))
++ return -1;
++ *val = *(unw_word_t *) DWARF_GET_LOC (loc);
++ return 0;
++}
++
++static inline int
++dwarf_put (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t val)
++{
++ if (!DWARF_GET_LOC (loc))
++ return -1;
++ *(unw_word_t *) DWARF_GET_LOC (loc) = val;
++ return 0;
++}
++
++#else /* !UNW_LOCAL_ONLY */
++# define DWARF_LOC_TYPE_FP (1 << 0)
++# define DWARF_LOC_TYPE_REG (1 << 1)
++# define DWARF_NULL_LOC DWARF_LOC (0, 0)
++# define DWARF_IS_NULL_LOC(l) \
++ ({ dwarf_loc_t _l = (l); _l.val == 0 && _l.type == 0; })
++# define DWARF_LOC(r, t) ((dwarf_loc_t) { .val = (r), .type = (t) })
++# define DWARF_IS_REG_LOC(l) (((l).type & DWARF_LOC_TYPE_REG) != 0)
++# define DWARF_IS_FP_LOC(l) (((l).type & DWARF_LOC_TYPE_FP) != 0)
++# define DWARF_REG_LOC(c,r) DWARF_LOC((r), DWARF_LOC_TYPE_REG)
++# define DWARF_MEM_LOC(c,m) DWARF_LOC ((m), 0)
++# define DWARF_FPREG_LOC(c,r) DWARF_LOC((r), (DWARF_LOC_TYPE_REG \
++ | DWARF_LOC_TYPE_FP))
++
++static inline int
++dwarf_getfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t *val)
++{
++ char *valp = (char *) &val;
++ unw_word_t addr;
++ int ret;
++
++ if (DWARF_IS_NULL_LOC (loc))
++ return -UNW_EBADREG;
++
++ if (DWARF_IS_REG_LOC (loc))
++ return (*c->as->acc.access_fpreg) (c->as, DWARF_GET_LOC (loc),
++ val, 0, c->as_arg);
++
++ addr = DWARF_GET_LOC (loc);
++ if ((ret = (*c->as->acc.access_mem) (c->as, addr + 0, (unw_word_t *) valp,
++ 0, c->as_arg)) < 0)
++ return ret;
++
++ return (*c->as->acc.access_mem) (c->as, addr + 4, (unw_word_t *) valp + 1, 0,
++ c->as_arg);
++}
++
++static inline int
++dwarf_putfp (struct dwarf_cursor *c, dwarf_loc_t loc, unw_fpreg_t val)
++{
++ char *valp = (char *) &val;
++ unw_word_t addr;
++ int ret;
++
++ if (DWARF_IS_NULL_LOC (loc))
++ return -UNW_EBADREG;
++
++ if (DWARF_IS_REG_LOC (loc))
++ return (*c->as->acc.access_fpreg) (c->as, DWARF_GET_LOC (loc),
++ &val, 1, c->as_arg);
++
++ addr = DWARF_GET_LOC (loc);
++ if ((ret = (*c->as->acc.access_mem) (c->as, addr + 0, (unw_word_t *) valp,
++ 1, c->as_arg)) < 0)
++ return ret;
++
++ return (*c->as->acc.access_mem) (c->as, addr + 4, (unw_word_t *) valp + 1,
++ 1, c->as_arg);
++}
++
++static inline int
++dwarf_get (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t *val)
++{
++ if (DWARF_IS_NULL_LOC (loc))
++ return -UNW_EBADREG;
++
++ /* If a code-generator were to save a value of type unw_word_t in a
++ floating-point register, we would have to support this case. I
++ suppose it could happen with MMX registers, but does it really
++ happen? */
++ assert (!DWARF_IS_FP_LOC (loc));
++
++ if (DWARF_IS_REG_LOC (loc))
++ return (*c->as->acc.access_reg) (c->as, DWARF_GET_LOC (loc), val,
++ 0, c->as_arg);
++ else
++ return (*c->as->acc.access_mem) (c->as, DWARF_GET_LOC (loc), val,
++ 0, c->as_arg);
++}
++
++static inline int
++dwarf_put (struct dwarf_cursor *c, dwarf_loc_t loc, unw_word_t val)
++{
++ if (DWARF_IS_NULL_LOC (loc))
++ return -UNW_EBADREG;
++
++ /* If a code-generator were to save a value of type unw_word_t in a
++ floating-point register, we would have to support this case. I
++ suppose it could happen with MMX registers, but does it really
++ happen? */
++ assert (!DWARF_IS_FP_LOC (loc));
++
++ if (DWARF_IS_REG_LOC (loc))
++ return (*c->as->acc.access_reg) (c->as, DWARF_GET_LOC (loc), &val,
++ 1, c->as_arg);
++ else
++ return (*c->as->acc.access_mem) (c->as, DWARF_GET_LOC (loc), &val,
++ 1, c->as_arg);
++}
++
++#endif /* !UNW_LOCAL_ONLY */
++
++
++
++#define tdep_getcontext_trace unw_getcontext
++#define tdep_init_done UNW_OBJ(init_done)
++#define tdep_init UNW_OBJ(init)
++/* Platforms that support UNW_INFO_FORMAT_TABLE need to define
++ tdep_search_unwind_table. */
++#define tdep_search_unwind_table dwarf_search_unwind_table
++#define tdep_find_unwind_table dwarf_find_unwind_table
++#define tdep_uc_addr UNW_OBJ(uc_addr)
++#define tdep_get_elf_image UNW_ARCH_OBJ(get_elf_image)
++#define tdep_access_reg UNW_OBJ(access_reg)
++#define tdep_access_fpreg UNW_OBJ(access_fpreg)
++#define tdep_fetch_frame(c,ip,n) do {} while(0)
++#define tdep_cache_frame(c,rs) do {} while(0)
++#define tdep_reuse_frame(c,rs) do {} while(0)
++#define tdep_stash_frame(c,rs) do {} while(0)
++#define tdep_trace(cur,addr,n) (-UNW_ENOINFO)
++
++#ifdef UNW_LOCAL_ONLY
++# define tdep_find_proc_info(c,ip,n) \
++ dwarf_find_proc_info((c)->as, (ip), &(c)->pi, (n), \
++ (c)->as_arg)
++# define tdep_put_unwind_info(as,pi,arg) \
++ dwarf_put_unwind_info((as), (pi), (arg))
++#else
++# define tdep_find_proc_info(c,ip,n) \
++ (*(c)->as->acc.find_proc_info)((c)->as, (ip), &(c)->pi, (n), \
++ (c)->as_arg)
++# define tdep_put_unwind_info(as,pi,arg) \
++ (*(as)->acc.put_unwind_info)((as), (pi), (arg))
++#endif
++
++#define tdep_get_as(c) ((c)->dwarf.as)
++#define tdep_get_as_arg(c) ((c)->dwarf.as_arg)
++#define tdep_get_ip(c) ((c)->dwarf.ip)
++#define tdep_big_endian(as) ((as)->big_endian)
++
++extern int tdep_init_done;
++
++extern void tdep_init (void);
++extern int tdep_search_unwind_table (unw_addr_space_t as, unw_word_t ip,
++ unw_dyn_info_t *di, unw_proc_info_t *pi,
++ int need_unwind_info, void *arg);
++extern void *tdep_uc_addr (unw_tdep_context_t *uc, int reg);
++extern int tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
++ unsigned long *segbase, unsigned long *mapoff,
++ char *path, size_t pathlen);
++extern int tdep_access_reg (struct cursor *c, unw_regnum_t reg,
++ unw_word_t *valp, int write);
++extern int tdep_access_fpreg (struct cursor *c, unw_regnum_t reg,
++ unw_fpreg_t *valp, int write);
++
++#endif /* AARCH64_LIBUNWIND_I_H */
+--- a/include/tdep/dwarf-config.h
++++ b/include/tdep/dwarf-config.h
+@@ -1,7 +1,9 @@
+ /* Provide a real file - not a symlink - as it would cause multiarch conflicts
+ when multiple different arch releases are installed simultaneously. */
+
+-#if defined __arm__
++#if defined __aarch64__
++# include "tdep-aarch64/dwarf-config.h"
++#elif defined __arm__
+ # include "tdep-arm/dwarf-config.h"
+ #elif defined __hppa__
+ # include "tdep-hppa/dwarf-config.h"
+--- a/include/tdep/jmpbuf.h
++++ b/include/tdep/jmpbuf.h
+@@ -3,6 +3,8 @@
+
+ #ifndef UNW_REMOTE_ONLY
+
++#if defined __aarch64__
++# include "tdep-aarch64/jmpbuf.h"
+ #if defined __arm__
+ # include "tdep-arm/jmpbuf.h"
+ #elif defined __hppa__
+--- a/include/tdep/libunwind_i.h.in
++++ b/include/tdep/libunwind_i.h.in
+@@ -3,7 +3,9 @@
+
+ #ifndef UNW_REMOTE_ONLY
+
+-#if defined __arm__
++#if defined __aarch64__
++# include "tdep-aarch64/libunwind_i.h"
++#elif defined __arm__
+ # include "tdep-arm/libunwind_i.h"
+ #elif defined __hppa__
+ # include "tdep-hppa/libunwind_i.h"
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -170,6 +170,28 @@ libunwind_elfxx_la_SOURCES = elfxx.c
+ noinst_LTLIBRARIES += $(LIBUNWIND_ELF)
+ libunwind_la_LIBADD += $(LIBUNWIND_ELF)
+
++# The list of files that go into libunwind and libunwind-aarch64:
++noinst_HEADERS += aarch64/init.h aarch64/offsets.h aarch64/unwind_i.h
++libunwind_la_SOURCES_aarch64_common = $(libunwind_la_SOURCES_common) \
++ aarch64/is_fpreg.c aarch64/regname.c
++
++# The list of files that go into libunwind:
++libunwind_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
++ $(libunwind_la_SOURCES_local) \
++ aarch64/Lcreate_addr_space.c aarch64/Lget_proc_info.c \
++ aarch64/Lget_save_loc.c aarch64/Lglobal.c aarch64/Linit.c \
++ aarch64/Linit_local.c aarch64/Linit_remote.c \
++ aarch64/Lis_signal_frame.c aarch64/Lregs.c aarch64/Lresume.c \
++ aarch64/Lstep.c
++
++libunwind_aarch64_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
++ $(libunwind_la_SOURCES_generic) \
++ aarch64/Gcreate_addr_space.c aarch64/Gget_proc_info.c \
++ aarch64/Gget_save_loc.c aarch64/Gglobal.c aarch64/Ginit.c \
++ aarch64/Ginit_local.c aarch64/Ginit_remote.c \
++ aarch64/Gis_signal_frame.c aarch64/Gregs.c aarch64/Gresume.c \
++ aarch64/Gstep.c
++
+ # The list of files that go into libunwind and libunwind-arm:
+ noinst_HEADERS += arm/init.h arm/offsets.h arm/unwind_i.h
+ libunwind_la_SOURCES_arm_common = $(libunwind_la_SOURCES_common) \
+@@ -418,6 +440,18 @@ if OS_FREEBSD
+ libunwind_coredump_la_SOURCES += coredump/_UCD_access_reg_freebsd.c
+ endif
+
++if ARCH_AARCH64
++ lib_LTLIBRARIES += libunwind-aarch64.la
++ libunwind_la_SOURCES = $(libunwind_la_SOURCES_aarch64)
++ libunwind_aarch64_la_SOURCES = $(libunwind_aarch64_la_SOURCES_aarch64)
++ libunwind_aarch64_la_LDFLAGS = $(COMMON_SO_LDFLAGS) -version-info $(SOVERSION)
++ libunwind_aarch64_la_LIBADD = libunwind-dwarf-generic.la
++ libunwind_aarch64_la_LIBADD += libunwind-elf64.la
++if !REMOTE_ONLY
++ libunwind_aarch64_la_LIBADD += libunwind.la -lc
++endif
++ libunwind_setjmp_la_SOURCES += aarch64/siglongjmp.S
++else
+ if ARCH_ARM
+ lib_LTLIBRARIES += libunwind-arm.la
+ libunwind_la_SOURCES = $(libunwind_la_SOURCES_arm)
+@@ -545,6 +579,7 @@ endif # ARCH_MIPS
+ endif # ARCH_HPPA
+ endif # ARCH_IA64
+ endif # ARCH_ARM
++endif # ARCH_AARCH64
+
+ # libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
+ # at the end.
+@@ -567,7 +602,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I
+ AM_CCASFLAGS = $(AM_CPPFLAGS)
+ noinst_HEADERS += unwind/unwind-internal.h
+
+-EXTRA_DIST = $(libunwind_la_SOURCES_arm) \
++EXTRA_DIST = $(libunwind_la_SOURCES_aarch64) \
++ $(libunwind_la_SOURCES_arm) \
+ $(libunwind_la_SOURCES_hppa) \
+ $(libunwind_la_SOURCES_ia64) \
+ $(libunwind_la_SOURCES_mips) \
+@@ -579,6 +615,7 @@ EXTRA_DIST = $(libunwind_la_SOURCES_arm)
+ $(libunwind_la_SOURCES_common) \
+ $(libunwind_la_SOURCES_local) \
+ $(libunwind_la_SOURCES_generic) \
++ $(libunwind_aarch64_la_SOURCES_aarch64) \
+ $(libunwind_arm_la_SOURCES_arm) \
+ $(libunwind_hppa_la_SOURCES_hppa) \
+ $(libunwind_ia64_la_SOURCES_ia64) \
+--- /dev/null
++++ b/src/aarch64/Gcreate_addr_space.c
+@@ -0,0 +1,60 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include <string.h>
++#include <stdlib.h>
++
++#include "unwind_i.h"
++
++PROTECTED unw_addr_space_t
++unw_create_addr_space (unw_accessors_t *a, int byte_order)
++{
++#ifdef UNW_LOCAL_ONLY
++ return NULL;
++#else
++ unw_addr_space_t as;
++
++ /* AArch64 supports little-endian and big-endian. */
++ if (byte_order != 0 && byte_order != __LITTLE_ENDIAN
++ && byte_order != __BIG_ENDIAN)
++ return NULL;
++
++ as = malloc (sizeof (*as));
++ if (!as)
++ return NULL;
++
++ memset (as, 0, sizeof (*as));
++
++ as->acc = *a;
++
++ /* Default to little-endian for AArch64. */
++ if (byte_order == 0 || byte_order == __LITTLE_ENDIAN)
++ as->big_endian = 0;
++ else
++ as->big_endian = 1;
++
++ return as;
++#endif
++}
+--- /dev/null
++++ b/src/aarch64/Gget_proc_info.c
+@@ -0,0 +1,39 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++PROTECTED int
++unw_get_proc_info (unw_cursor_t *cursor, unw_proc_info_t *pi)
++{
++ struct cursor *c = (struct cursor *) cursor;
++ int ret;
++
++ ret = dwarf_make_proc_info (&c->dwarf);
++ if (ret < 0)
++ return ret;
++
++ *pi = c->dwarf.pi;
++ return 0;
++}
+--- /dev/null
++++ b/src/aarch64/Gget_save_loc.c
+@@ -0,0 +1,100 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++PROTECTED int
++unw_get_save_loc (unw_cursor_t *cursor, int reg, unw_save_loc_t *sloc)
++{
++ struct cursor *c = (struct cursor *) cursor;
++ dwarf_loc_t loc;
++
++ switch (reg)
++ {
++ case UNW_AARCH64_X0:
++ case UNW_AARCH64_X1:
++ case UNW_AARCH64_X2:
++ case UNW_AARCH64_X3:
++ case UNW_AARCH64_X4:
++ case UNW_AARCH64_X5:
++ case UNW_AARCH64_X6:
++ case UNW_AARCH64_X7:
++ case UNW_AARCH64_X8:
++ case UNW_AARCH64_X9:
++ case UNW_AARCH64_X10:
++ case UNW_AARCH64_X11:
++ case UNW_AARCH64_X12:
++ case UNW_AARCH64_X13:
++ case UNW_AARCH64_X14:
++ case UNW_AARCH64_X15:
++ case UNW_AARCH64_X16:
++ case UNW_AARCH64_X17:
++ case UNW_AARCH64_X18:
++ case UNW_AARCH64_X19:
++ case UNW_AARCH64_X20:
++ case UNW_AARCH64_X21:
++ case UNW_AARCH64_X22:
++ case UNW_AARCH64_X23:
++ case UNW_AARCH64_X24:
++ case UNW_AARCH64_X25:
++ case UNW_AARCH64_X26:
++ case UNW_AARCH64_X27:
++ case UNW_AARCH64_X28:
++ case UNW_AARCH64_X29:
++ case UNW_AARCH64_X30:
++ case UNW_AARCH64_SP:
++ case UNW_AARCH64_PC:
++ case UNW_AARCH64_PSTATE:
++ loc = c->dwarf.loc[reg];
++ break;
++
++ default:
++ loc = DWARF_NULL_LOC; /* default to "not saved" */
++ break;
++ }
++
++ memset (sloc, 0, sizeof (*sloc));
++
++ if (DWARF_IS_NULL_LOC (loc))
++ {
++ sloc->type = UNW_SLT_NONE;
++ return 0;
++ }
++
++#if !defined(UNW_LOCAL_ONLY)
++ if (DWARF_IS_REG_LOC (loc))
++ {
++ sloc->type = UNW_SLT_REG;
++ sloc->u.regnum = DWARF_GET_LOC (loc);
++ }
++ else
++#endif
++ {
++ sloc->type = UNW_SLT_MEMORY;
++ sloc->u.addr = DWARF_GET_LOC (loc);
++ }
++ return 0;
++}
+--- /dev/null
++++ b/src/aarch64/Gglobal.c
+@@ -0,0 +1,57 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++#include "dwarf_i.h"
++
++HIDDEN define_lock (aarch64_lock);
++HIDDEN int tdep_init_done;
++
++HIDDEN void
++tdep_init (void)
++{
++ intrmask_t saved_mask;
++
++ sigfillset (&unwi_full_mask);
++
++ lock_acquire (&aarch64_lock, saved_mask);
++ {
++ if (tdep_init_done)
++ /* another thread else beat us to it... */
++ goto out;
++
++ mi_init ();
++
++ dwarf_init ();
++
++#ifndef UNW_REMOTE_ONLY
++ aarch64_local_addr_space_init ();
++#endif
++ tdep_init_done = 1; /* signal that we're initialized... */
++ }
++ out:
++ lock_release (&aarch64_lock, saved_mask);
++}
+--- /dev/null
++++ b/src/aarch64/Ginit.c
+@@ -0,0 +1,187 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "unwind_i.h"
++
++#ifdef UNW_REMOTE_ONLY
++
++/* unw_local_addr_space is a NULL pointer in this case. */
++PROTECTED unw_addr_space_t unw_local_addr_space;
++
++#else /* !UNW_REMOTE_ONLY */
++
++static struct unw_addr_space local_addr_space;
++
++PROTECTED unw_addr_space_t unw_local_addr_space = &local_addr_space;
++
++static inline void *
++uc_addr (ucontext_t *uc, int reg)
++{
++ if (reg >= UNW_AARCH64_X0 && reg <= UNW_AARCH64_V31)
++ return &uc->uc_mcontext.regs[reg];
++ else
++ return NULL;
++}
++
++# ifdef UNW_LOCAL_ONLY
++
++HIDDEN void *
++tdep_uc_addr (ucontext_t *uc, int reg)
++{
++ return uc_addr (uc, reg);
++}
++
++# endif /* UNW_LOCAL_ONLY */
++
++HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
++
++/* XXX fix me: there is currently no way to locate the dyn-info list
++ by a remote unwinder. On ia64, this is done via a special
++ unwind-table entry. Perhaps something similar can be done with
++ DWARF2 unwind info. */
++
++static void
++put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
++{
++ /* it's a no-op */
++}
++
++static int
++get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
++ void *arg)
++{
++ *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++ return 0;
++}
++
++static int
++access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write,
++ void *arg)
++{
++ if (write)
++ {
++ Debug (16, "mem[%lx] <- %lx\n", addr, *val);
++ *(unw_word_t *) addr = *val;
++ }
++ else
++ {
++ *val = *(unw_word_t *) addr;
++ Debug (16, "mem[%lx] -> %lx\n", addr, *val);
++ }
++ return 0;
++}
++
++static int
++access_reg (unw_addr_space_t as, unw_regnum_t reg, unw_word_t *val, int write,
++ void *arg)
++{
++ unw_word_t *addr;
++ ucontext_t *uc = arg;
++
++ if (unw_is_fpreg (reg))
++ goto badreg;
++
++ if (!(addr = uc_addr (uc, reg)))
++ goto badreg;
++
++ if (write)
++ {
++ *(unw_word_t *) addr = *val;
++ Debug (12, "%s <- %lx\n", unw_regname (reg), *val);
++ }
++ else
++ {
++ *val = *(unw_word_t *) addr;
++ Debug (12, "%s -> %lx\n", unw_regname (reg), *val);
++ }
++ return 0;
++
++ badreg:
++ Debug (1, "bad register number %u\n", reg);
++ return -UNW_EBADREG;
++}
++
++static int
++access_fpreg (unw_addr_space_t as, unw_regnum_t reg, unw_fpreg_t *val,
++ int write, void *arg)
++{
++ ucontext_t *uc = arg;
++ unw_fpreg_t *addr;
++
++ if (!unw_is_fpreg (reg))
++ goto badreg;
++
++ if (!(addr = uc_addr (uc, reg)))
++ goto badreg;
++
++ if (write)
++ {
++ Debug (12, "%s <- %08lx.%08lx.%08lx\n", unw_regname (reg),
++ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
++ *(unw_fpreg_t *) addr = *val;
++ }
++ else
++ {
++ *val = *(unw_fpreg_t *) addr;
++ Debug (12, "%s -> %08lx.%08lx.%08lx\n", unw_regname (reg),
++ ((long *)val)[0], ((long *)val)[1], ((long *)val)[2]);
++ }
++ return 0;
++
++ badreg:
++ Debug (1, "bad register number %u\n", reg);
++ /* attempt to access a non-preserved register */
++ return -UNW_EBADREG;
++}
++
++static int
++get_static_proc_name (unw_addr_space_t as, unw_word_t ip,
++ char *buf, size_t buf_len, unw_word_t *offp,
++ void *arg)
++{
++ return _Uelf64_get_proc_name (as, getpid (), ip, buf, buf_len, offp);
++}
++
++HIDDEN void
++aarch64_local_addr_space_init (void)
++{
++ memset (&local_addr_space, 0, sizeof (local_addr_space));
++ local_addr_space.caching_policy = UNW_CACHE_GLOBAL;
++ local_addr_space.acc.find_proc_info = dwarf_find_proc_info;
++ local_addr_space.acc.put_unwind_info = put_unwind_info;
++ local_addr_space.acc.get_dyn_info_list_addr = get_dyn_info_list_addr;
++ local_addr_space.acc.access_mem = access_mem;
++ local_addr_space.acc.access_reg = access_reg;
++ local_addr_space.acc.access_fpreg = access_fpreg;
++ local_addr_space.acc.resume = aarch64_local_resume;
++ local_addr_space.acc.get_proc_name = get_static_proc_name;
++ unw_flush_cache (&local_addr_space, 0, 0);
++}
++
++#endif /* !UNW_REMOTE_ONLY */
+--- /dev/null
++++ b/src/aarch64/Ginit_local.c
+@@ -0,0 +1,55 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2011-2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++#include "init.h"
++
++#ifdef UNW_REMOTE_ONLY
++
++PROTECTED int
++unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
++{
++ return -UNW_EINVAL;
++}
++
++#else /* !UNW_REMOTE_ONLY */
++
++PROTECTED int
++unw_init_local (unw_cursor_t *cursor, unw_context_t *uc)
++{
++ struct cursor *c = (struct cursor *) cursor;
++
++ if (!tdep_init_done)
++ tdep_init ();
++
++ Debug (1, "(cursor=%p)\n", c);
++
++ c->dwarf.as = unw_local_addr_space;
++ c->dwarf.as_arg = uc;
++
++ return common_init (c, 1);
++}
++
++#endif /* !UNW_REMOTE_ONLY */
+--- /dev/null
++++ b/src/aarch64/Ginit_remote.c
+@@ -0,0 +1,45 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "init.h"
++#include "unwind_i.h"
++
++PROTECTED int
++unw_init_remote (unw_cursor_t *cursor, unw_addr_space_t as, void *as_arg)
++{
++#ifdef UNW_LOCAL_ONLY
++ return -UNW_EINVAL;
++#else /* !UNW_LOCAL_ONLY */
++ struct cursor *c = (struct cursor *) cursor;
++
++ if (!tdep_init_done)
++ tdep_init ();
++
++ Debug (1, "(cursor=%p)\n", c);
++
++ c->dwarf.as = as;
++ c->dwarf.as_arg = as_arg;
++ return common_init (c, 0);
++#endif /* !UNW_LOCAL_ONLY */
++}
+--- /dev/null
++++ b/src/aarch64/Gis_signal_frame.c
+@@ -0,0 +1,64 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++/* The restorer stub will always have the form:
++
++ d2801168 movz x8, #0x8b
++ d4000001 svc #0x0
++*/
++
++PROTECTED int
++unw_is_signal_frame (unw_cursor_t *cursor)
++{
++#ifdef __linux__
++ struct cursor *c = (struct cursor *) cursor;
++ unw_word_t w0, ip;
++ unw_addr_space_t as;
++ unw_accessors_t *a;
++ void *arg;
++ int ret;
++
++ as = c->dwarf.as;
++ a = unw_get_accessors (as);
++ arg = c->dwarf.as_arg;
++
++ ip = c->dwarf.ip;
++
++ ret = (*a->access_mem) (as, ip, &w0, 0, arg);
++ if (ret < 0)
++ return ret;
++
++ /* FIXME: distinguish 32bit insn vs 64bit registers. */
++ if (w0 != 0xd4000001d2801168)
++ return 0;
++
++ return 1;
++
++#else
++ return -UNW_ENOINFO;
++#endif
++}
+--- /dev/null
++++ b/src/aarch64/Gregs.c
+@@ -0,0 +1,113 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++HIDDEN int
++tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
++ int write)
++{
++ dwarf_loc_t loc = DWARF_NULL_LOC;
++ unsigned int mask;
++
++ switch (reg)
++ {
++ case UNW_AARCH64_X0:
++ case UNW_AARCH64_X1:
++ case UNW_AARCH64_X2:
++ case UNW_AARCH64_X3:
++ mask = 1 << reg;
++ if (write)
++ {
++ c->dwarf.eh_args[reg] = *valp;
++ c->dwarf.eh_valid_mask |= mask;
++ return 0;
++ }
++ else if ((c->dwarf.eh_valid_mask & mask) != 0)
++ {
++ *valp = c->dwarf.eh_args[reg];
++ return 0;
++ }
++ else
++ loc = c->dwarf.loc[reg];
++ break;
++
++ case UNW_AARCH64_X4:
++ case UNW_AARCH64_X5:
++ case UNW_AARCH64_X6:
++ case UNW_AARCH64_X7:
++ case UNW_AARCH64_X8:
++ case UNW_AARCH64_X9:
++ case UNW_AARCH64_X10:
++ case UNW_AARCH64_X11:
++ case UNW_AARCH64_X12:
++ case UNW_AARCH64_X13:
++ case UNW_AARCH64_X14:
++ case UNW_AARCH64_X15:
++ case UNW_AARCH64_X16:
++ case UNW_AARCH64_X17:
++ case UNW_AARCH64_X18:
++ case UNW_AARCH64_X19:
++ case UNW_AARCH64_X20:
++ case UNW_AARCH64_X21:
++ case UNW_AARCH64_X22:
++ case UNW_AARCH64_X23:
++ case UNW_AARCH64_X24:
++ case UNW_AARCH64_X25:
++ case UNW_AARCH64_X26:
++ case UNW_AARCH64_X27:
++ case UNW_AARCH64_X28:
++ case UNW_AARCH64_X29:
++ case UNW_AARCH64_X30:
++ case UNW_AARCH64_PC:
++ case UNW_AARCH64_PSTATE:
++ loc = c->dwarf.loc[reg];
++ break;
++
++ case UNW_AARCH64_SP:
++ if (write)
++ return -UNW_EREADONLYREG;
++ *valp = c->dwarf.cfa;
++ return 0;
++
++ default:
++ Debug (1, "bad register number %u\n", reg);
++ return -UNW_EBADREG;
++ }
++
++ if (write)
++ return dwarf_put (&c->dwarf, loc, *valp);
++ else
++ return dwarf_get (&c->dwarf, loc, valp);
++}
++
++HIDDEN int
++tdep_access_fpreg (struct cursor *c, unw_regnum_t reg, unw_fpreg_t *valp,
++ int write)
++{
++ Debug (1, "bad register number %u\n", reg);
++ return -UNW_EBADREG;
++}
+--- /dev/null
++++ b/src/aarch64/Gresume.c
+@@ -0,0 +1,177 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2011-2013 Linaro Limited
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++#include "offsets.h"
++
++#ifndef UNW_REMOTE_ONLY
++
++HIDDEN inline int
++aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
++{
++#ifdef __linux__
++ struct cursor *c = (struct cursor *) cursor;
++ unw_tdep_context_t *uc = c->dwarf.as_arg;
++
++ if (c->sigcontext_format == AARCH64_SCF_NONE)
++ {
++ /* Since there are no signals involved here we restore the non scratch
++ registers only. */
++ unsigned long regs[11];
++ regs[0] = uc->uc_mcontext.regs[19];
++ regs[1] = uc->uc_mcontext.regs[20];
++ regs[2] = uc->uc_mcontext.regs[21];
++ regs[3] = uc->uc_mcontext.regs[22];
++ regs[4] = uc->uc_mcontext.regs[23];
++ regs[5] = uc->uc_mcontext.regs[24];
++ regs[6] = uc->uc_mcontext.regs[25];
++ regs[7] = uc->uc_mcontext.regs[26];
++ regs[8] = uc->uc_mcontext.regs[27];
++ regs[9] = uc->uc_mcontext.regs[28];
++ regs[10] = uc->uc_mcontext.regs[30]; /* LR */
++ unsigned long sp = uc->uc_mcontext.sp;
++
++ struct regs_overlay {
++ char x[sizeof(regs)];
++ };
++
++ asm volatile (
++ "ldp x19, x20, [%0]\n"
++ "ldp x21, x22, [%0,16]\n"
++ "ldp x23, x24, [%0,32]\n"
++ "ldp x25, x26, [%0,48]\n"
++ "ldp x27, x28, [%0,64]\n"
++ "ldr x30, [%0,80]\n"
++ "mov sp, %1\n"
++ "ret \n"
++ :
++ : "r" (regs),
++ "r" (sp),
++ "m" (*(struct regs_overlay *)regs)
++ );
++ }
++ else
++ {
++ struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr;
++
++ if (c->dwarf.eh_valid_mask & 0x1) sc->regs[0] = c->dwarf.eh_args[0];
++ if (c->dwarf.eh_valid_mask & 0x2) sc->regs[1] = c->dwarf.eh_args[1];
++ if (c->dwarf.eh_valid_mask & 0x4) sc->regs[2] = c->dwarf.eh_args[2];
++ if (c->dwarf.eh_valid_mask & 0x8) sc->regs[3] = c->dwarf.eh_args[3];
++
++ sc->regs[4] = uc->uc_mcontext.regs[4];
++ sc->regs[5] = uc->uc_mcontext.regs[5];
++ sc->regs[6] = uc->uc_mcontext.regs[6];
++ sc->regs[7] = uc->uc_mcontext.regs[7];
++ sc->regs[8] = uc->uc_mcontext.regs[8];
++ sc->regs[9] = uc->uc_mcontext.regs[9];
++ sc->regs[10] = uc->uc_mcontext.regs[10];
++ sc->regs[11] = uc->uc_mcontext.regs[11];
++ sc->regs[12] = uc->uc_mcontext.regs[12];
++ sc->regs[13] = uc->uc_mcontext.regs[13];
++ sc->regs[14] = uc->uc_mcontext.regs[14];
++ sc->regs[15] = uc->uc_mcontext.regs[15];
++ sc->regs[16] = uc->uc_mcontext.regs[16];
++ sc->regs[17] = uc->uc_mcontext.regs[17];
++ sc->regs[18] = uc->uc_mcontext.regs[18];
++ sc->regs[19] = uc->uc_mcontext.regs[19];
++ sc->regs[20] = uc->uc_mcontext.regs[20];
++ sc->regs[21] = uc->uc_mcontext.regs[21];
++ sc->regs[22] = uc->uc_mcontext.regs[22];
++ sc->regs[23] = uc->uc_mcontext.regs[23];
++ sc->regs[24] = uc->uc_mcontext.regs[24];
++ sc->regs[25] = uc->uc_mcontext.regs[25];
++ sc->regs[26] = uc->uc_mcontext.regs[26];
++ sc->regs[27] = uc->uc_mcontext.regs[27];
++ sc->regs[28] = uc->uc_mcontext.regs[28];
++ sc->regs[29] = uc->uc_mcontext.regs[29];
++ sc->regs[30] = uc->uc_mcontext.regs[30];
++ sc->sp = uc->uc_mcontext.sp;
++ sc->pc = uc->uc_mcontext.pc;
++ sc->pstate = uc->uc_mcontext.pstate;
++
++ asm volatile (
++ "mov sp, %0\n"
++ "ret %1\n"
++ : : "r" (c->sigcontext_sp), "r" (c->sigcontext_pc)
++ );
++ }
++ unreachable();
++#else
++ printf ("%s: implement me\n", __FUNCTION__);
++#endif
++ return -UNW_EINVAL;
++}
++
++#endif /* !UNW_REMOTE_ONLY */
++
++static inline void
++establish_machine_state (struct cursor *c)
++{
++ unw_addr_space_t as = c->dwarf.as;
++ void *arg = c->dwarf.as_arg;
++ unw_fpreg_t fpval;
++ unw_word_t val;
++ int reg;
++
++ Debug (8, "copying out cursor state\n");
++
++ for (reg = 0; reg <= UNW_AARCH64_PSTATE; ++reg)
++ {
++ Debug (16, "copying %s %d\n", unw_regname (reg), reg);
++ if (unw_is_fpreg (reg))
++ {
++ if (tdep_access_fpreg (c, reg, &fpval, 0) >= 0)
++ as->acc.access_fpreg (as, reg, &fpval, 1, arg);
++ }
++ else
++ {
++ if (tdep_access_reg (c, reg, &val, 0) >= 0)
++ as->acc.access_reg (as, reg, &val, 1, arg);
++ }
++ }
++}
++
++PROTECTED int
++unw_resume (unw_cursor_t *cursor)
++{
++ struct cursor *c = (struct cursor *) cursor;
++
++ Debug (1, "(cursor=%p)\n", c);
++
++ if (!c->dwarf.ip)
++ {
++ /* This can happen easily when the frame-chain gets truncated
++ due to bad or missing unwind-info. */
++ Debug (1, "refusing to resume execution at address 0\n");
++ return -UNW_EINVAL;
++ }
++
++ establish_machine_state (c);
++
++ return (*c->dwarf.as->acc.resume) (c->dwarf.as, (unw_cursor_t *) c,
++ c->dwarf.as_arg);
++}
+--- /dev/null
++++ b/src/aarch64/Gstep.c
+@@ -0,0 +1,129 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2011-2013 Linaro Limited
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++#include "offsets.h"
++
++PROTECTED int
++unw_handle_signal_frame (unw_cursor_t *cursor)
++{
++ struct cursor *c = (struct cursor *) cursor;
++ int ret;
++ unw_word_t sc_addr, sp, sp_addr = c->dwarf.cfa;
++ struct dwarf_loc sp_loc = DWARF_LOC (sp_addr, 0);
++
++ if ((ret = dwarf_get (&c->dwarf, sp_loc, &sp)) < 0)
++ return -UNW_EUNSPEC;
++
++ ret = unw_is_signal_frame (cursor);
++ Debug(1, "unw_is_signal_frame()=%d\n", ret);
++
++ /* Save the SP and PC to be able to return execution at this point
++ later in time (unw_resume). */
++ c->sigcontext_sp = c->dwarf.cfa;
++ c->sigcontext_pc = c->dwarf.ip;
++
++ if (ret)
++ {
++ c->sigcontext_format = AARCH64_SCF_LINUX_RT_SIGFRAME;
++ sc_addr = sp_addr + sizeof (siginfo_t) + LINUX_UC_MCONTEXT_OFF;
++ }
++ else
++ return -UNW_EUNSPEC;
++
++ c->sigcontext_addr = sc_addr;
++
++ /* Update the dwarf cursor.
++ Set the location of the registers to the corresponding addresses of the
++ uc_mcontext / sigcontext structure contents. */
++ c->dwarf.loc[UNW_AARCH64_X0] = DWARF_LOC (sc_addr + LINUX_SC_X0_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X1] = DWARF_LOC (sc_addr + LINUX_SC_X1_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X2] = DWARF_LOC (sc_addr + LINUX_SC_X2_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X3] = DWARF_LOC (sc_addr + LINUX_SC_X3_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X4] = DWARF_LOC (sc_addr + LINUX_SC_X4_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X5] = DWARF_LOC (sc_addr + LINUX_SC_X5_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X6] = DWARF_LOC (sc_addr + LINUX_SC_X6_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X7] = DWARF_LOC (sc_addr + LINUX_SC_X7_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X8] = DWARF_LOC (sc_addr + LINUX_SC_X8_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X9] = DWARF_LOC (sc_addr + LINUX_SC_X9_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_LOC (sc_addr + LINUX_SC_X10_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_LOC (sc_addr + LINUX_SC_X11_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_LOC (sc_addr + LINUX_SC_X12_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_LOC (sc_addr + LINUX_SC_X13_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_LOC (sc_addr + LINUX_SC_X14_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_LOC (sc_addr + LINUX_SC_X15_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_LOC (sc_addr + LINUX_SC_X16_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_LOC (sc_addr + LINUX_SC_X17_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_LOC (sc_addr + LINUX_SC_X18_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_LOC (sc_addr + LINUX_SC_X19_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_LOC (sc_addr + LINUX_SC_X20_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_LOC (sc_addr + LINUX_SC_X21_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_LOC (sc_addr + LINUX_SC_X22_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_LOC (sc_addr + LINUX_SC_X23_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_LOC (sc_addr + LINUX_SC_X24_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_LOC (sc_addr + LINUX_SC_X25_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_LOC (sc_addr + LINUX_SC_X26_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_LOC (sc_addr + LINUX_SC_X27_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_LOC (sc_addr + LINUX_SC_X28_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_LOC (sc_addr + LINUX_SC_X29_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_LOC (sc_addr + LINUX_SC_X30_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_SP] = DWARF_LOC (sc_addr + LINUX_SC_SP_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_PC] = DWARF_LOC (sc_addr + LINUX_SC_PC_OFF, 0);
++ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_LOC (sc_addr + LINUX_SC_PSTATE_OFF, 0);
++
++ /* Set SP/CFA and PC/IP. */
++ dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_SP], &c->dwarf.cfa);
++ dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_PC], &c->dwarf.ip);
++
++ c->dwarf.pi_valid = 0;
++
++ return 1;
++}
++
++PROTECTED int
++unw_step (unw_cursor_t *cursor)
++{
++ struct cursor *c = (struct cursor *) cursor;
++ int ret;
++
++ Debug (1, "(cursor=%p, ip=0x%016lx, cfa=0x%016lx))\n",
++ c, c->dwarf.ip, c->dwarf.cfa);
++
++ /* Check if this is a signal frame. */
++ if (unw_is_signal_frame (cursor))
++ return unw_handle_signal_frame (cursor);
++
++ ret = dwarf_step (&c->dwarf);
++ Debug(1, "dwarf_step()=%d\n", ret);
++
++ if (unlikely (ret == -UNW_ESTOPUNWIND))
++ return ret;
++
++ if (unlikely (ret < 0))
++ return 0;
++
++ return (c->dwarf.ip == 0) ? 0 : 1;
++}
+--- /dev/null
++++ b/src/aarch64/Lcreate_addr_space.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gcreate_addr_space.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lget_proc_info.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gget_proc_info.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lget_save_loc.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gget_save_loc.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lglobal.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gglobal.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Linit.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Ginit.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Linit_local.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Ginit_local.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Linit_remote.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Ginit_remote.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lis_signal_frame.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gis_signal_frame.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lregs.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gregs.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lresume.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gresume.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/Lstep.c
+@@ -0,0 +1,5 @@
++#define UNW_LOCAL_ONLY
++#include <libunwind.h>
++#if defined(UNW_LOCAL_ONLY) && !defined(UNW_REMOTE_ONLY)
++#include "Gstep.c"
++#endif
+--- /dev/null
++++ b/src/aarch64/gen-offsets.c
+@@ -0,0 +1,68 @@
++#include <stdio.h>
++#include <stddef.h>
++#include <ucontext.h>
++#include <asm/sigcontext.h>
++
++#define UC(N,X) \
++ printf ("#define LINUX_UC_" N "_OFF\t0x%X\n", offsetof (ucontext_t, X))
++
++#define SC(N,X) \
++ printf ("#define LINUX_SC_" N "_OFF\t0x%X\n", offsetof (struct sigcontext, X))
++
++int
++main (void)
++{
++ printf (
++"/* Linux-specific definitions: */\n\n"
++
++"/* Define various structure offsets to simplify cross-compilation. */\n\n"
++
++"/* Offsets for AArch64 Linux \"ucontext_t\": */\n\n");
++
++ UC ("FLAGS", uc_flags);
++ UC ("LINK", uc_link);
++ UC ("STACK", uc_stack);
++ UC ("MCONTEXT", uc_mcontext);
++ UC ("SIGMASK", uc_sigmask);
++
++ printf ("\n/* Offsets for AArch64 Linux \"struct sigcontext\": */\n\n");
++
++ SC ("R0", regs[0]);
++ SC ("R1", regs[1]);
++ SC ("R2", regs[2]);
++ SC ("R3", regs[3]);
++ SC ("R4", regs[4]);
++ SC ("R5", regs[5]);
++ SC ("R6", regs[6]);
++ SC ("R7", regs[7]);
++ SC ("R8", regs[8]);
++ SC ("R9", regs[9]);
++ SC ("R10", regs[10]);
++ SC ("R11", regs[11]);
++ SC ("R12", regs[12]);
++ SC ("R13", regs[13]);
++ SC ("R14", regs[14]);
++ SC ("R15", regs[15]);
++ SC ("R16", regs[16]);
++ SC ("R17", regs[17]);
++ SC ("R18", regs[18]);
++ SC ("R19", regs[19]);
++ SC ("R20", regs[20]);
++ SC ("R21", regs[21]);
++ SC ("R22", regs[22]);
++ SC ("R23", regs[23]);
++ SC ("R24", regs[24]);
++ SC ("R25", regs[25]);
++ SC ("R26", regs[26]);
++ SC ("R27", regs[27]);
++ SC ("R28", regs[28]);
++ SC ("R29", regs[29]);
++ SC ("R30", regs[30]);
++ SC ("R31", regs[31]);
++
++ SC ("PC", pc);
++ SC ("SP", sp);
++ SC ("Fault", fault_address);
++ SC ("state", pstate);
++ return 0;
++}
+--- /dev/null
++++ b/src/aarch64/init.h
+@@ -0,0 +1,127 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++static inline int
++common_init (struct cursor *c, unsigned use_prev_instr)
++{
++ int ret, i;
++
++ c->dwarf.loc[UNW_AARCH64_X0] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X0);
++ c->dwarf.loc[UNW_AARCH64_X1] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X1);
++ c->dwarf.loc[UNW_AARCH64_X2] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X2);
++ c->dwarf.loc[UNW_AARCH64_X3] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X3);
++ c->dwarf.loc[UNW_AARCH64_X4] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X4);
++ c->dwarf.loc[UNW_AARCH64_X5] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X5);
++ c->dwarf.loc[UNW_AARCH64_X6] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X6);
++ c->dwarf.loc[UNW_AARCH64_X7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X7);
++ c->dwarf.loc[UNW_AARCH64_X8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X8);
++ c->dwarf.loc[UNW_AARCH64_X9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X9);
++ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X10);
++ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X11);
++ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X12);
++ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X13);
++ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X14);
++ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X15);
++ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X16);
++ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X17);
++ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X18);
++ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X19);
++ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X20);
++ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X21);
++ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X22);
++ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X23);
++ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X24);
++ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X25);
++ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X26);
++ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X27);
++ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X28);
++ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X29);
++ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X30);
++ c->dwarf.loc[UNW_AARCH64_SP] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_SP);
++ c->dwarf.loc[UNW_AARCH64_PC] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_PC);
++ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_REG_LOC (&c->dwarf,
++ UNW_AARCH64_PSTATE);
++ c->dwarf.loc[UNW_AARCH64_V0] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V0);
++ c->dwarf.loc[UNW_AARCH64_V1] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V1);
++ c->dwarf.loc[UNW_AARCH64_V2] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V2);
++ c->dwarf.loc[UNW_AARCH64_V3] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V3);
++ c->dwarf.loc[UNW_AARCH64_V4] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V4);
++ c->dwarf.loc[UNW_AARCH64_V5] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V5);
++ c->dwarf.loc[UNW_AARCH64_V6] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V6);
++ c->dwarf.loc[UNW_AARCH64_V7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V7);
++ c->dwarf.loc[UNW_AARCH64_V8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V8);
++ c->dwarf.loc[UNW_AARCH64_V9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V9);
++ c->dwarf.loc[UNW_AARCH64_V10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V10);
++ c->dwarf.loc[UNW_AARCH64_V11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V11);
++ c->dwarf.loc[UNW_AARCH64_V12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V12);
++ c->dwarf.loc[UNW_AARCH64_V13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V13);
++ c->dwarf.loc[UNW_AARCH64_V14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V14);
++ c->dwarf.loc[UNW_AARCH64_V15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V15);
++ c->dwarf.loc[UNW_AARCH64_V16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V16);
++ c->dwarf.loc[UNW_AARCH64_V17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V17);
++ c->dwarf.loc[UNW_AARCH64_V18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V18);
++ c->dwarf.loc[UNW_AARCH64_V19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V19);
++ c->dwarf.loc[UNW_AARCH64_V20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V20);
++ c->dwarf.loc[UNW_AARCH64_V21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V21);
++ c->dwarf.loc[UNW_AARCH64_V22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V22);
++ c->dwarf.loc[UNW_AARCH64_V23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V23);
++ c->dwarf.loc[UNW_AARCH64_V24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V24);
++ c->dwarf.loc[UNW_AARCH64_V25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V25);
++ c->dwarf.loc[UNW_AARCH64_V26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V26);
++ c->dwarf.loc[UNW_AARCH64_V27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V27);
++ c->dwarf.loc[UNW_AARCH64_V28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V28);
++ c->dwarf.loc[UNW_AARCH64_V29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V29);
++ c->dwarf.loc[UNW_AARCH64_V30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V30);
++ c->dwarf.loc[UNW_AARCH64_V31] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V31);
++
++ for (i = UNW_AARCH64_PSTATE + 1; i < UNW_AARCH64_V0; ++i)
++ c->dwarf.loc[i] = DWARF_NULL_LOC;
++
++ ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_PC], &c->dwarf.ip);
++ if (ret < 0)
++ return ret;
++
++ ret = dwarf_get (&c->dwarf, c->dwarf.loc[UNW_AARCH64_SP], &c->dwarf.cfa);
++ if (ret < 0)
++ return ret;
++
++ c->sigcontext_format = AARCH64_SCF_NONE;
++ c->sigcontext_addr = 0;
++ c->sigcontext_sp = 0;
++ c->sigcontext_pc = 0;
++
++ c->dwarf.args_size = 0;
++ c->dwarf.ret_addr_column = 0;
++ c->dwarf.stash_frames = 0;
++ c->dwarf.use_prev_instr = use_prev_instr;
++ c->dwarf.pi_valid = 0;
++ c->dwarf.pi_is_dynamic = 0;
++ c->dwarf.hint = 0;
++ c->dwarf.prev_rs = 0;
++
++ return 0;
++}
+--- /dev/null
++++ b/src/aarch64/is_fpreg.c
+@@ -0,0 +1,32 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "libunwind_i.h"
++
++PROTECTED int
++unw_is_fpreg (int regnum)
++{
++ return (regnum >= UNW_AARCH64_V0 && regnum <= UNW_AARCH64_V31);
++}
+--- /dev/null
++++ b/src/aarch64/offsets.h
+@@ -0,0 +1,49 @@
++/* Linux-specific definitions: */
++
++/* Define various structure offsets to simplify cross-compilation. */
++
++/* Offsets for AArch64 Linux "ucontext_t": */
++
++#define LINUX_UC_FLAGS_OFF 0x0
++#define LINUX_UC_LINK_OFF 0x8
++#define LINUX_UC_STACK_OFF 0x10
++#define LINUX_UC_SIGMASK_OFF 0x28
++#define LINUX_UC_MCONTEXT_OFF 0xb0
++
++/* Offsets for AArch64 Linux "struct sigcontext": */
++
++#define LINUX_SC_FAULTADDRESS_OFF 0x00
++#define LINUX_SC_X0_OFF 0x008
++#define LINUX_SC_X1_OFF 0x010
++#define LINUX_SC_X2_OFF 0x018
++#define LINUX_SC_X3_OFF 0x020
++#define LINUX_SC_X4_OFF 0x028
++#define LINUX_SC_X5_OFF 0x030
++#define LINUX_SC_X6_OFF 0x038
++#define LINUX_SC_X7_OFF 0x040
++#define LINUX_SC_X8_OFF 0x048
++#define LINUX_SC_X9_OFF 0x050
++#define LINUX_SC_X10_OFF 0x058
++#define LINUX_SC_X11_OFF 0x060
++#define LINUX_SC_X12_OFF 0x068
++#define LINUX_SC_X13_OFF 0x070
++#define LINUX_SC_X14_OFF 0x078
++#define LINUX_SC_X15_OFF 0x080
++#define LINUX_SC_X16_OFF 0x088
++#define LINUX_SC_X17_OFF 0x090
++#define LINUX_SC_X18_OFF 0x098
++#define LINUX_SC_X19_OFF 0x0a0
++#define LINUX_SC_X20_OFF 0x0a8
++#define LINUX_SC_X21_OFF 0x0b0
++#define LINUX_SC_X22_OFF 0x0b8
++#define LINUX_SC_X23_OFF 0x0c0
++#define LINUX_SC_X24_OFF 0x0c8
++#define LINUX_SC_X25_OFF 0x0d0
++#define LINUX_SC_X26_OFF 0x0d8
++#define LINUX_SC_X27_OFF 0x0e0
++#define LINUX_SC_X28_OFF 0x0e8
++#define LINUX_SC_X29_OFF 0x0f0
++#define LINUX_SC_X30_OFF 0x0f8
++#define LINUX_SC_SP_OFF 0x100
++#define LINUX_SC_PC_OFF 0x108
++#define LINUX_SC_PSTATE_OFF 0x110
+--- /dev/null
++++ b/src/aarch64/regname.c
+@@ -0,0 +1,106 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#include "unwind_i.h"
++
++static const char *const regname[] =
++ {
++ [UNW_AARCH64_X0] = "x0",
++ [UNW_AARCH64_X1] = "x1",
++ [UNW_AARCH64_X2] = "x2",
++ [UNW_AARCH64_X3] = "x3",
++ [UNW_AARCH64_X4] = "x4",
++ [UNW_AARCH64_X5] = "x5",
++ [UNW_AARCH64_X6] = "x6",
++ [UNW_AARCH64_X7] = "x7",
++ [UNW_AARCH64_X8] = "x8",
++ [UNW_AARCH64_X9] = "x9",
++ [UNW_AARCH64_X10] = "x10",
++ [UNW_AARCH64_X11] = "x11",
++ [UNW_AARCH64_X12] = "x12",
++ [UNW_AARCH64_X13] = "x13",
++ [UNW_AARCH64_X14] = "x14",
++ [UNW_AARCH64_X15] = "x15",
++ [UNW_AARCH64_X16] = "ip0",
++ [UNW_AARCH64_X17] = "ip1",
++ [UNW_AARCH64_X18] = "x18",
++ [UNW_AARCH64_X19] = "x19",
++ [UNW_AARCH64_X20] = "x20",
++ [UNW_AARCH64_X21] = "x21",
++ [UNW_AARCH64_X22] = "x22",
++ [UNW_AARCH64_X23] = "x23",
++ [UNW_AARCH64_X24] = "x24",
++ [UNW_AARCH64_X25] = "x25",
++ [UNW_AARCH64_X26] = "x26",
++ [UNW_AARCH64_X27] = "x27",
++ [UNW_AARCH64_X28] = "x28",
++ [UNW_AARCH64_X29] = "fp",
++ [UNW_AARCH64_X30] = "lr",
++ [UNW_AARCH64_SP] = "sp",
++ [UNW_AARCH64_PC] = "pc",
++ [UNW_AARCH64_V0] = "v0",
++ [UNW_AARCH64_V1] = "v1",
++ [UNW_AARCH64_V2] = "v2",
++ [UNW_AARCH64_V3] = "v3",
++ [UNW_AARCH64_V4] = "v4",
++ [UNW_AARCH64_V5] = "v5",
++ [UNW_AARCH64_V6] = "v6",
++ [UNW_AARCH64_V7] = "v7",
++ [UNW_AARCH64_V8] = "v8",
++ [UNW_AARCH64_V9] = "v9",
++ [UNW_AARCH64_V10] = "v10",
++ [UNW_AARCH64_V11] = "v11",
++ [UNW_AARCH64_V12] = "v12",
++ [UNW_AARCH64_V13] = "v13",
++ [UNW_AARCH64_V14] = "v14",
++ [UNW_AARCH64_V15] = "v15",
++ [UNW_AARCH64_V16] = "v16",
++ [UNW_AARCH64_V17] = "v17",
++ [UNW_AARCH64_V18] = "v18",
++ [UNW_AARCH64_V19] = "v19",
++ [UNW_AARCH64_V20] = "v20",
++ [UNW_AARCH64_V21] = "v21",
++ [UNW_AARCH64_V22] = "v22",
++ [UNW_AARCH64_V23] = "v23",
++ [UNW_AARCH64_V24] = "v24",
++ [UNW_AARCH64_V25] = "v25",
++ [UNW_AARCH64_V26] = "v26",
++ [UNW_AARCH64_V27] = "v27",
++ [UNW_AARCH64_V28] = "v28",
++ [UNW_AARCH64_V29] = "v29",
++ [UNW_AARCH64_V30] = "v30",
++ [UNW_AARCH64_V31] = "v31",
++ [UNW_AARCH64_FPSR] = "fpsr",
++ [UNW_AARCH64_FPCR] = "fpcr",
++ };
++
++PROTECTED const char *
++unw_regname (unw_regnum_t reg)
++{
++ if (reg < (unw_regnum_t) ARRAY_SIZE (regname) && regname[reg] != NULL)
++ return regname[reg];
++ else
++ return "???";
++}
+--- /dev/null
++++ b/src/aarch64/siglongjmp.S
+@@ -0,0 +1,12 @@
++ /* Dummy implementation for now. */
++
++ .global _UI_siglongjmp_cont
++ .global _UI_longjmp_cont
++
++_UI_siglongjmp_cont:
++_UI_longjmp_cont:
++ ret
++#ifdef __linux__
++ /* We do not need executable stack. */
++ .section .note.GNU-stack,"",%progbits
++#endif
+--- /dev/null
++++ b/src/aarch64/unwind_i.h
+@@ -0,0 +1,43 @@
++/* libunwind - a platform-independent unwind library
++ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
++
++This file is part of libunwind.
++
++Permission is hereby granted, free of charge, to any person obtaining
++a copy of this software and associated documentation files (the
++"Software"), to deal in the Software without restriction, including
++without limitation the rights to use, copy, modify, merge, publish,
++distribute, sublicense, and/or sell copies of the Software, and to
++permit persons to whom the Software is furnished to do so, subject to
++the following conditions:
++
++The above copyright notice and this permission notice shall be
++included in all copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
++
++#ifndef unwind_i_h
++#define unwind_i_h
++
++#include <stdint.h>
++
++#include <libunwind-aarch64.h>
++
++#include "libunwind_i.h"
++
++#define aarch64_lock UNW_OBJ(lock)
++#define aarch64_local_resume UNW_OBJ(local_resume)
++#define aarch64_local_addr_space_init UNW_OBJ(local_addr_space_init)
++
++extern void aarch64_local_addr_space_init (void);
++extern int aarch64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor,
++ void *arg);
++
++#endif /* unwind_i_h */
+--- a/src/coredump/_UCD_access_reg_linux.c
++++ b/src/coredump/_UCD_access_reg_linux.c
+@@ -39,7 +39,10 @@ _UCD_access_reg (unw_addr_space_t as,
+ return -UNW_EINVAL;
+ }
+
+-#if defined(UNW_TARGET_ARM)
++#if defined(UNW_TARGET_AARCH64)
++ if (regnum < 0 || regnum >= UNW_AARCH64_FPCR)
++ goto badreg;
++#elif defined(UNW_TARGET_ARM)
+ if (regnum < 0 || regnum >= 16)
+ goto badreg;
+ #elif defined(UNW_TARGET_SH)
+--- a/src/ptrace/_UPT_reg_offset.c
++++ b/src/ptrace/_UPT_reg_offset.c
+@@ -1,6 +1,7 @@
+ /* libunwind - a platform-independent unwind library
+ Copyright (C) 2003-2004 Hewlett-Packard Co
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
+
+ This file is part of libunwind.
+
+@@ -501,6 +502,41 @@ const int _UPT_reg_offset[UNW_REG_LAST +
+ [UNW_ARM_R15] = 0x3c,
+ #elif defined(UNW_TARGET_MIPS)
+ #elif defined(UNW_TARGET_SH)
++#elif defined(UNW_TARGET_AARCH64)
++ [UNW_AARCH64_X0] = 0x00,
++ [UNW_AARCH64_X1] = 0x08,
++ [UNW_AARCH64_X2] = 0x10,
++ [UNW_AARCH64_X3] = 0x18,
++ [UNW_AARCH64_X4] = 0x20,
++ [UNW_AARCH64_X5] = 0x28,
++ [UNW_AARCH64_X6] = 0x30,
++ [UNW_AARCH64_X7] = 0x38,
++ [UNW_AARCH64_X8] = 0x40,
++ [UNW_AARCH64_X9] = 0x48,
++ [UNW_AARCH64_X10] = 0x50,
++ [UNW_AARCH64_X11] = 0x58,
++ [UNW_AARCH64_X12] = 0x60,
++ [UNW_AARCH64_X13] = 0x68,
++ [UNW_AARCH64_X14] = 0x70,
++ [UNW_AARCH64_X15] = 0x78,
++ [UNW_AARCH64_X16] = 0x80,
++ [UNW_AARCH64_X17] = 0x88,
++ [UNW_AARCH64_X18] = 0x90,
++ [UNW_AARCH64_X19] = 0x98,
++ [UNW_AARCH64_X20] = 0xa0,
++ [UNW_AARCH64_X21] = 0xa8,
++ [UNW_AARCH64_X22] = 0xb0,
++ [UNW_AARCH64_X23] = 0xb8,
++ [UNW_AARCH64_X24] = 0xc0,
++ [UNW_AARCH64_X25] = 0xc8,
++ [UNW_AARCH64_X26] = 0xd0,
++ [UNW_AARCH64_X27] = 0xd8,
++ [UNW_AARCH64_X28] = 0xe0,
++ [UNW_AARCH64_X29] = 0xe8,
++ [UNW_AARCH64_X30] = 0xf0,
++ [UNW_AARCH64_SP] = 0xf8,
++ [UNW_AARCH64_PC] = 0x100,
++ [UNW_AARCH64_PSTATE] = 0x108
+ #else
+ # error Fix me.
+ #endif
diff --git a/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch b/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch
new file mode 100644
index 0000000000..dc0f5c1b47
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind-1.1/Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch
@@ -0,0 +1,28 @@
+Fix test case link failure on PowerPC systems with Altivec
+
+Upstream-Status:backport
+
+On systems where the system compiler supports Altivec by default,
+the libunwind Makefile will attempt to build an extra test case
+ppc64-test-altivec. Unfortunately, the link step will fail since
+the Makefile does not actually link against the libunwind library.
+
+Fixed by adding the appropriate LDADD macro.
+
+Signed-off-by: Ulrich Weigand <address@hidden>
+---
+ tests/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index 0e30536..9c76628 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -201,3 +201,4 @@ Lia64_test_rbs_LDADD = $(LIBUNWIND_local)
+ Lia64_test_readonly_LDADD = $(LIBUNWIND_local)
+ ia64_test_dyn1_LDADD = $(LIBUNWIND)
+ ia64_test_sig_LDADD = $(LIBUNWIND)
++ppc64_test_altivec_LDADD = $(LIBUNWIND)
+--
+1.8.5
+
diff --git a/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch b/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch
new file mode 100644
index 0000000000..0e55c91b80
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind-1.1/Link-libunwind-to-libgcc_s-rather-than-libgcc.patch
@@ -0,0 +1,42 @@
+From 508ca17a7be01d1cc960d9a07d0af4513948fb8d Mon Sep 17 00:00:00 2001
+From: Thierry Reding <treding@nvidia.com>
+Date: Fri, 27 Jun 2014 08:40:33 +0200
+Subject: [PATCH] Link libunwind to libgcc_s rather than libgcc
+
+For some architectures, -lgcc and -lgcc_s are not equivalent. On ARM for
+example, libgcc_s.so.1 contains some symbols needed by libunwind which
+are not present in libgcc.
+
+This causes the following link error when building the X.Org X server
+with libunwind support:
+
+ CCLD Xorg
+ /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr0'
+ /usr/lib/libunwind.so: undefined reference to `__aeabi_unwind_cpp_pr1'
+
+Linking against libgcc_s explicitly solves this problem.
+
+Upstream-Status: Backport
+
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index cffe19b..3beb5f2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -258,7 +258,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[#ifndef __INTEL_COMPILER
+
+ if test x$GCC = xyes -a x$intel_compiler != xyes; then
+ CFLAGS="${CFLAGS} -fexceptions -Wall -Wsign-compare"
+- LIBCRTS="-lgcc"
++ LIBCRTS="-lgcc_s"
+ fi
+ AC_MSG_RESULT([$intel_compiler])
+
+--
+2.3.2
+
diff --git a/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch b/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch
new file mode 100644
index 0000000000..268b702dcb
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind-1.1/Support-building-with-older-compilers.patch
@@ -0,0 +1,72 @@
+From 10b064ffe902d5af31bb49bd8e4f03c545f8d462 Mon Sep 17 00:00:00 2001
+From: Ladislav Michl <ladis@linux-mips.org>
+Date: Tue, 13 Nov 2012 11:19:47 +0100
+Subject: [PATCH] Support building with older compilers.
+
+Add a check for __builtin_unreachable.
+
+Upstream-Status: Pending
+---
+ configure.ac | 11 +++++++++++
+ include/libunwind_i.h | 6 ++++++
+ src/arm/Gresume.c | 2 +-
+ src/sh/Gresume.c | 2 +-
+ 4 files changed, 19 insertions(+), 2 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -285,6 +285,17 @@ if test x$have__builtin___clear_cache =
+ fi
+ AC_MSG_RESULT([$have__builtin___clear_cache])
+
++AC_MSG_CHECKING([for __builtin_unreachable])
++AC_LINK_IFELSE(
++ [AC_LANG_PROGRAM([[]], [[__builtin_unreachable()]])],
++ [have__builtin_unreachable=yes],
++ [have__builtin_unreachable=no])
++if test x$have__builtin_unreachable = xyes; then
++ AC_DEFINE([HAVE__BUILTIN_UNREACHABLE], [1],
++ [Defined if __builtin_unreachable() is available])
++fi
++AC_MSG_RESULT([$have__builtin_unreachable])
++
+ AC_MSG_CHECKING([for __sync atomics])
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[]], [[
+--- a/include/libunwind_i.h
++++ b/include/libunwind_i.h
+@@ -72,6 +72,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE
+ # endif
+ #endif
+
++#if defined(HAVE__BUILTIN_UNREACHABLE)
++# define unreachable() __builtin_unreachable()
++#else
++# define unreachable() do { } while (1)
++#endif
++
+ #ifdef DEBUG
+ # define UNW_DEBUG 1
+ #else
+--- a/src/arm/Gresume.c
++++ b/src/arm/Gresume.c
+@@ -96,7 +96,7 @@ arm_local_resume (unw_addr_space_t as, u
+ : : "r" (c->sigcontext_sp), "r" (c->sigcontext_pc)
+ );
+ }
+- __builtin_unreachable();
++ unreachable();
+ #else
+ printf ("%s: implement me\n", __FUNCTION__);
+ #endif
+--- a/src/sh/Gresume.c
++++ b/src/sh/Gresume.c
+@@ -109,7 +109,7 @@ sh_local_resume (unw_addr_space_t as, un
+ "r" (c->sigcontext_pc)
+ );
+ }
+- __builtin_unreachable();
++ unreachable();
+ #endif
+ return -UNW_EINVAL;
+ }
diff --git a/meta/recipes-support/libunwind/libunwind.inc b/meta/recipes-support/libunwind/libunwind.inc
new file mode 100644
index 0000000000..6743b21fcf
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind.inc
@@ -0,0 +1,31 @@
+DESCRIPTION = "a portable and efficient C programming interface (API) to determine the call-chain of a program"
+HOMEPAGE = "http://www.nongnu.org/libunwind"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3fced11d6df719b47505837a51c16ae5"
+
+SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+
+inherit autotools
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzma] = "--enable-minidebuginfo,--disable-minidebuginfo,lzma"
+
+EXTRA_OECONF_arm = "--enable-debug-frame"
+EXTRA_OECONF_aarch64 = "--enable-debug-frame"
+
+CFLAGS += "${ATOMICOPS}"
+ATOMICOPS_armv5 = "-DAO_USE_PTHREAD_DEFS=1"
+ATOMICOPS_armv4 = "-DAO_USE_PTHREAD_DEFS=1"
+ATOMICOPS ?= ""
+
+LDFLAGS += "${LIBATOMICS}"
+LIBATOMICS_armv5 = "-latomic_ops"
+LIBATOMICS_armv4 = "-latomic_ops"
+LIBATOMICS ?= ""
+
+DEPENDS += "${DEPLIBATOMICS}"
+DEPLIBATOMICS_armv5 = "libatomics-ops"
+DEPLIBATOMICS_armv4 = "libatomics-ops"
+DEPLIBATOMICS ?= ""
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/libunwind/libunwind_1.1.bb b/meta/recipes-support/libunwind/libunwind_1.1.bb
new file mode 100644
index 0000000000..ee6f522d68
--- /dev/null
+++ b/meta/recipes-support/libunwind/libunwind_1.1.bb
@@ -0,0 +1,11 @@
+require libunwind.inc
+
+SRC_URI += "\
+ file://Support-building-with-older-compilers.patch \
+ file://AArch64-port.patch \
+ file://Fix-test-case-link-failure-on-PowerPC-systems-with-Altivec.patch \
+ file://Link-libunwind-to-libgcc_s-rather-than-libgcc.patch \
+"
+
+SRC_URI[md5sum] = "fb4ea2f6fbbe45bf032cd36e586883ce"
+SRC_URI[sha256sum] = "9dfe0fcae2a866de9d3942c66995e4b460230446887dbdab302d41a8aee8d09a"
diff --git a/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch b/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch
new file mode 100644
index 0000000000..535a7384cb
--- /dev/null
+++ b/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch
@@ -0,0 +1,47 @@
+From 7b3df100346128d780f218b881d563d1fd12e310 Mon Sep 17 00:00:00 2001
+From: Jonathan Liu <net147@gmail.com>
+Date: Mon, 20 Oct 2014 13:46:10 +1100
+Subject: [PATCH] Revert "Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2"
+
+This reverts commit 4b79310aa3d408ba30fee02cc497a68072d38a99.
+OE-Core is using a patched GCC 4.8.2 which is able to compile liburcu
+properly.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Jonathan Liu <net147@gmail.com>
+---
+ urcu/compiler.h | 19 -------------------
+ 1 file changed, 19 deletions(-)
+
+diff --git a/urcu/compiler.h b/urcu/compiler.h
+index 1e30903..19534f0 100644
+--- a/urcu/compiler.h
++++ b/urcu/compiler.h
+@@ -108,23 +108,4 @@
+
+ #define CAA_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+-/*
+- * Don't allow compiling with buggy compiler.
+- */
+-
+-#ifdef __GNUC__
+-# define URCU_GCC_VERSION (__GNUC__ * 10000 \
+- + __GNUC_MINOR__ * 100 \
+- + __GNUC_PATCHLEVEL__)
+-
+-/*
+- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
+- */
+-# ifdef __ARMEL__
+-# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
+-# error Your gcc version produces clobbered frame accesses
+-# endif
+-# endif
+-#endif
+-
+ #endif /* _URCU_COMPILER_H */
+--
+2.1.2
+
diff --git a/meta/recipes-support/liburcu/liburcu/aarch64.patch b/meta/recipes-support/liburcu/liburcu/aarch64.patch
new file mode 100644
index 0000000000..c6cc8c2fd3
--- /dev/null
+++ b/meta/recipes-support/liburcu/liburcu/aarch64.patch
@@ -0,0 +1,19 @@
+libucru: recognize aarch64
+
+Make the same as "arm" internally.
+
+Upstream-Status: Pending
+
+Signed-off-by: joe.slater@windriver.com
+
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,6 +77,7 @@ AS_CASE([$host_cpu],
+ [alpha*], [ARCHTYPE="alpha"],
+ [ia64], [ARCHTYPE="gcc"],
+ [arm*], [ARCHTYPE="arm"],
++ [aarch64], [ARCHTYPE="arm"],
+ [mips*], [ARCHTYPE="mips"],
+ [tile*], [ARCHTYPE="gcc"],
+ [ARCHTYPE="unknown"]
diff --git a/meta/recipes-support/liburcu/liburcu/fixsepbuild.patch b/meta/recipes-support/liburcu/liburcu/fixsepbuild.patch
deleted file mode 100644
index 9cd0ab9e73..0000000000
--- a/meta/recipes-support/liburcu/liburcu/fixsepbuild.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Upstream-Status: Pending
-
-Fix out of tree build for doc examples
-
-Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
-
-Index: userspace-rcu-0.8.0/doc/examples/Makefile.am
-===================================================================
---- userspace-rcu-0.8.0.orig/doc/examples/Makefile.am 2013-08-30 21:25:20.000000000 +0300
-+++ userspace-rcu-0.8.0/doc/examples/Makefile.am 2013-10-21 17:52:34.774597179 +0300
-@@ -128,7 +128,7 @@
- cp -fR $(srcdir)/$$subdir $(builddir); \
- done; \
- fi
-- $(MAKE) -f dist-files/Makefile AM_CPPFLAGS="$(CPPFLAGS) -I../../../urcu/ -I../../../" AM_CFLAGS='$(CFLAGS)' AM_LDFLAGS='$(LDFLAGS) -L../../../.libs/ -Wl,-rpath="$(PWD)/../../.libs/"' $(AM_MAKEFLAGS) all
-+ $(MAKE) -f dist-files/Makefile AM_CPPFLAGS="$(CPPFLAGS) -I$(top_srcdir) -I../../../urcu/ -I../../../" AM_CFLAGS='$(CFLAGS)' AM_LDFLAGS='$(LDFLAGS) -L../../../.libs/ -Wl,-rpath="$(PWD)/../../.libs/"' $(AM_MAKEFLAGS) all
-
- clean-local:
- $(MAKE) -f dist-files/Makefile $(AM_MAKEFLAGS) clean
diff --git a/meta/recipes-support/liburcu/liburcu_0.8.1.bb b/meta/recipes-support/liburcu/liburcu_0.8.6.bb
index a9e7b2c899..263b77e995 100644
--- a/meta/recipes-support/liburcu/liburcu_0.8.1.bb
+++ b/meta/recipes-support/liburcu/liburcu_0.8.6.bb
@@ -8,10 +8,12 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=0f060c30a27922ce9c0d557a639b4fa3 \
file://urcu/uatomic/x86.h;beginline=4;endline=21;md5=220552f72c55b102f2ee35929734ef42"
SRC_URI = "http://lttng.org/files/urcu/userspace-rcu-${PV}.tar.bz2 \
- file://fixsepbuild.patch"
+ file://Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch \
+ file://aarch64.patch \
+ "
-SRC_URI[md5sum] = "c0c0613bcce3b6954a050faa6dec6f51"
-SRC_URI[sha256sum] = "8008f697b030d7d3043ebd3a72be63cefc9242ed2d50520d30211e3908a4e01e"
+SRC_URI[md5sum] = "834d91d939dd55108a05763be9879856"
+SRC_URI[sha256sum] = "b1a5d3bce014ba7a702759bc60b692c1cd46ff0e8a5b53f0d0a95e22db74ab21"
S = "${WORKDIR}/userspace-rcu-${PV}"
CFLAGS_append_libc-uclibc = " -D_GNU_SOURCE"
diff --git a/meta/recipes-support/libusb/libusb1_1.0.18.bb b/meta/recipes-support/libusb/libusb1_1.0.19.bb
index 395145af10..a20e1fcdb8 100644
--- a/meta/recipes-support/libusb/libusb1_1.0.18.bb
+++ b/meta/recipes-support/libusb/libusb1_1.0.19.bb
@@ -11,8 +11,8 @@ BBCLASSEXTEND = "native nativesdk"
SRC_URI = "${SOURCEFORGE_MIRROR}/libusb/libusb-${PV}.tar.bz2 \
"
-SRC_URI[md5sum] = "4a6d049923efc6496f1d383054dac1a6"
-SRC_URI[sha256sum] = "c73f5cec45a5de94418da4e151b7232958571926984acfb9bce02b9424e83720"
+SRC_URI[md5sum] = "f9e2bb5879968467e5ca756cb4e1fa7e"
+SRC_URI[sha256sum] = "6c502c816002f90d4f76050a6429c3a7e0d84204222cbff2dce95dd773ba6840"
S = "${WORKDIR}/libusb-${PV}"
diff --git a/meta/recipes-support/libxslt/libxslt_1.1.28.bb b/meta/recipes-support/libxslt/libxslt_1.1.28.bb
index 0b2526dbee..ded883e457 100644
--- a/meta/recipes-support/libxslt/libxslt_1.1.28.bb
+++ b/meta/recipes-support/libxslt/libxslt_1.1.28.bb
@@ -35,6 +35,11 @@ RPROVIDES_${PN}-bin += "${PN}-utils"
RCONFLICTS_${PN}-bin += "${PN}-utils"
RREPLACES_${PN}-bin += "${PN}-utils"
+
+do_install_append_class-native () {
+ create_wrapper ${D}/${bindir}/xsltproc XML_CATALOG_FILES=${sysconfdir}/xml/catalog.xml
+}
+
FILES_${PN} += "${libdir}/libxslt-plugins"
FILES_${PN}-dev += "${libdir}/xsltConf.sh"
diff --git a/meta/recipes-support/lz4/lz4_svn.bb b/meta/recipes-support/lz4/lz4_svn.bb
index 38e36d8256..363e439eea 100644
--- a/meta/recipes-support/lz4/lz4_svn.bb
+++ b/meta/recipes-support/lz4/lz4_svn.bb
@@ -2,10 +2,10 @@ SUMMARY = "Extremely Fast Compression algorithm"
DESCRIPTION = "LZ4 is a very fast lossless compression algorithm, providing compression speed at 400 MB/s per core, scalable with multi-cores CPU. It also features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems."
LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2008d2325e11691e17fcaa3a6046f850"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0b0d063f37a4477b54af2459477dcafd"
# Upstream names releases after SVN revs
-SRCREV = "112"
+SRCREV = "127"
PV = "r${SRCREV}"
SRC_URI = "svn://lz4.googlecode.com/svn/;module=trunk;protocol=http"
diff --git a/meta/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch b/meta/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch
new file mode 100644
index 0000000000..db3a70e803
--- /dev/null
+++ b/meta/recipes-support/lzo/lzo/0001-Use-memcpy-instead-of-reinventing-it.patch
@@ -0,0 +1,70 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Sun, 23 Nov 2014 22:50:33 +0000
+Subject: Use memcpy() instead of reinventing it
+
+gcc inlines memcpy() with results as fast as handwritten code (at
+least in my brief testing with lzop), and knows the alignment
+constraints for our architectures.
+
+Change suggested by Julian Taylor.
+
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=757037
+
+Upstream-Status: Pending
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+---
+ minilzo/minilzo.c | 14 ++++++++++++++
+ src/lzo_func.h | 14 ++++++++++++++
+ 2 files changed, 28 insertions(+)
+
+
+diff --git a/minilzo/minilzo.c b/minilzo/minilzo.c
+index ab2be5f..6913c2f 100644
+--- a/minilzo/minilzo.c
++++ b/minilzo/minilzo.c
+@@ -3523,6 +3523,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
+ if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \
+ LZO_BLOCK_END
+
++/* Debian-specific change: we know that our compiler inlines memcpy() with
++ * constant n to be as fast as handwritten code, and knows which architectures
++ * need things correctly aligned. */
++#undef LZO_MEMOPS_COPY1
++#undef LZO_MEMOPS_COPY2
++#undef LZO_MEMOPS_COPY4
++#undef LZO_MEMOPS_COPY8
++#undef LZO_MEMOPS_COPYN
++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1)
++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2)
++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4)
++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8)
++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn)
++
+ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss)
+ {
+ lzo_uint16_t v;
+diff --git a/src/lzo_func.h b/src/lzo_func.h
+index dfaa676..1cc1b53 100644
+--- a/src/lzo_func.h
++++ b/src/lzo_func.h
+@@ -333,6 +333,20 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(*(lzo_memops_TU8p)0)==8)
+ if ((void)0, n__n > 0) do { *d__n++ = *s__n++; } while (--n__n > 0); \
+ LZO_BLOCK_END
+
++/* Debian-specific change: we know that our compiler inlines memcpy() with
++ * constant n to be as fast as handwritten code, and knows which architectures
++ * need things correctly aligned. */
++#undef LZO_MEMOPS_COPY1
++#undef LZO_MEMOPS_COPY2
++#undef LZO_MEMOPS_COPY4
++#undef LZO_MEMOPS_COPY8
++#undef LZO_MEMOPS_COPYN
++#define LZO_MEMOPS_COPY1(dd,ss) memcpy(dd, ss, 1)
++#define LZO_MEMOPS_COPY2(dd,ss) memcpy(dd, ss, 2)
++#define LZO_MEMOPS_COPY4(dd,ss) memcpy(dd, ss, 4)
++#define LZO_MEMOPS_COPY8(dd,ss) memcpy(dd, ss, 8)
++#define LZO_MEMOPS_COPYN(dd,ss,nn) memcpy(dd, ss, nn)
++
+ __lzo_static_forceinline lzo_uint16_t lzo_memops_get_le16(const lzo_voidp ss)
+ {
+ lzo_uint16_t v;
diff --git a/meta/recipes-support/lzo/lzo-2.06/acinclude.m4 b/meta/recipes-support/lzo/lzo/acinclude.m4
index c4d2ccd5b5..c4d2ccd5b5 100644
--- a/meta/recipes-support/lzo/lzo-2.06/acinclude.m4
+++ b/meta/recipes-support/lzo/lzo/acinclude.m4
diff --git a/meta/recipes-support/lzo/lzo/run-ptest b/meta/recipes-support/lzo/lzo/run-ptest
new file mode 100644
index 0000000000..2ea7745f70
--- /dev/null
+++ b/meta/recipes-support/lzo/lzo/run-ptest
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+./lzotest -mavail -n10 -q /etc/services
+LZOTEST=./lzotest /bin/sh -e "./check.sh" "/etc"
+./align
+./chksum
+./simple
+./testmini
diff --git a/meta/recipes-support/lzo/lzo_2.06.bb b/meta/recipes-support/lzo/lzo_2.06.bb
deleted file mode 100644
index 23f54edd80..0000000000
--- a/meta/recipes-support/lzo/lzo_2.06.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Lossless data compression library"
-HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://src/lzo_init.c;beginline=23;endline=40;md5=924a0f71f5394f6d404be3b458474769"
-PR = "r1"
-
-SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \
- file://acinclude.m4 \
- "
-
-SRC_URI[md5sum] = "95380bd4081f85ef08c5209f4107e9f8"
-SRC_URI[sha256sum] = "ff79e6f836d62d3f86ef6ce893ed65d07e638ef4d3cb952963471b4234d43e73"
-
-inherit autotools
-
-EXTRA_OECONF = "--enable-shared"
-
-do_configure_prepend () {
- cp ${WORKDIR}/acinclude.m4 ${S}/
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/lzo/lzo_2.09.bb b/meta/recipes-support/lzo/lzo_2.09.bb
new file mode 100644
index 0000000000..2978617bbd
--- /dev/null
+++ b/meta/recipes-support/lzo/lzo_2.09.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Lossless data compression library"
+HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/"
+SECTION = "libs"
+LICENSE = "GPLv2+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://src/lzo_init.c;beginline=5;endline=25;md5=355023835a9b9eeb70ab895395e951ff"
+
+SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz \
+ file://0001-Use-memcpy-instead-of-reinventing-it.patch \
+ file://acinclude.m4 \
+ file://run-ptest \
+ "
+
+SRC_URI[md5sum] = "c7ffc9a103afe2d1bba0b015e7aa887f"
+SRC_URI[sha256sum] = "f294a7ced313063c057c504257f437c8335c41bfeed23531ee4e6a2b87bcb34c"
+
+inherit autotools ptest
+
+EXTRA_OECONF = "--enable-shared"
+
+do_configure_prepend () {
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+}
+
+do_install_ptest() {
+ t=${D}${PTEST_PATH}
+ cp ${S}/util/check.sh $t
+ cp ${B}/minilzo/testmini $t
+ for i in tests/align tests/chksum lzotest/lzotest examples/simple
+ do cp ${B}/`dirname $i`/.libs/`basename $i` $t; \
+ done
+}
+
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/neon/neon-0.30.0/pkgconfig.patch b/meta/recipes-support/neon/neon/pkgconfig.patch
index 1a2550c6fb..239dba8e25 100644
--- a/meta/recipes-support/neon/neon-0.30.0/pkgconfig.patch
+++ b/meta/recipes-support/neon/neon/pkgconfig.patch
@@ -4,15 +4,12 @@ Upstream-Status: Inappropriate [configuration]
neon.pc.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
---- neon-0.28.1.orig/neon.pc.in
-+++ neon-0.28.1/neon.pc.in
-@@ -4,8 +4,8 @@ libdir=@libdir@
- includedir=@includedir@
-
- Name: neon
+--- neon-0.30.1.orig/neon.pc.in
++++ neon-0.30.1/neon.pc.in
+@@ -7,5 +7,5 @@ Name: neon
Description: HTTP/WebDAV client library
Version: @NEON_VERSION@
+ Libs: -L${libdir} -lneon @NEON_PC_LIBS@
-Libs.private: @NEON_LIBS@
+Libs.private: -L${libdir} -lz -lgcrypt -lgpg-error -lexpat -lgnutls
- Libs: -L${libdir} -lneon @NEON_PC_LIBS@
Cflags: -I${includedir}/neon @NEON_CFLAGS@
diff --git a/meta/recipes-support/neon/neon_0.30.0.bb b/meta/recipes-support/neon/neon_0.30.1.bb
index 61bd7d9269..9245244eb8 100644
--- a/meta/recipes-support/neon/neon_0.30.0.bb
+++ b/meta/recipes-support/neon/neon_0.30.1.bb
@@ -11,8 +11,8 @@ BBCLASSEXTEND = "native"
SRC_URI = "http://www.webdav.org/${BPN}/${BPN}-${PV}.tar.gz \
file://pkgconfig.patch"
-SRC_URI[md5sum] = "fb60b3a124eeec441937a812c456fd94"
-SRC_URI[sha256sum] = "2962cfcb5d30f3272e3d2fa0e473434419770a3801afe3d46e5d1650787990c2"
+SRC_URI[md5sum] = "231adebe5c2f78fded3e3df6e958878e"
+SRC_URI[sha256sum] = "00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd"
BINCONFIG = "${bindir}/neon-config"
diff --git a/meta/recipes-support/nettle/nettle_2.7.1.bb b/meta/recipes-support/nettle/nettle_2.7.1.bb
index 8aa5351896..f53afcc5d4 100644
--- a/meta/recipes-support/nettle/nettle_2.7.1.bb
+++ b/meta/recipes-support/nettle/nettle_2.7.1.bb
@@ -23,4 +23,4 @@ do_configure_prepend() {
inherit autotools
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-support/npth/npth/pkgconfig.patch b/meta/recipes-support/npth/npth/pkgconfig.patch
new file mode 100644
index 0000000000..178ed54c22
--- /dev/null
+++ b/meta/recipes-support/npth/npth/pkgconfig.patch
@@ -0,0 +1,49 @@
+Added npth pkgconfig file
+
+Upstream-Status: Incompatible [oe-core specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: npth-1.1/src/npth.pc.in
+===================================================================
+--- /dev/null
++++ npth-1.1/src/npth.pc.in
+@@ -0,0 +1,10 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: npth
++Description: a new portable posix threading library
++Version: @VERSION@
++Libs: -L${libdir} -lnpth -lpthread
++Cflags: -I${includedir}
+Index: npth-1.1/src/Makefile.am
+===================================================================
+--- npth-1.1.orig/src/Makefile.am
++++ npth-1.1/src/Makefile.am
+@@ -27,8 +27,10 @@
+ # License along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+ ## Process this file with automake to produce Makefile.in
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = npth.pc
+
+-EXTRA_DIST = libnpth.vers
++EXTRA_DIST = libnpth.vers npth.pc
+ # versioninfo.rc.in
+ nodist_include_HEADERS = npth.h
+
+Index: npth-1.1/configure.ac
+===================================================================
+--- npth-1.1.orig/configure.ac
++++ npth-1.1/configure.ac
+@@ -337,6 +337,7 @@ src/Makefile
+ w32/Makefile
+ tests/Makefile])
+ AC_CONFIG_FILES(npth-config, chmod +x npth-config)
++AC_CONFIG_FILES([src/npth.pc])
+ AC_OUTPUT
+
+ echo "
diff --git a/meta/recipes-support/npth/npth_0.91.bb b/meta/recipes-support/npth/npth_1.1.bb
index 7105b94e3d..72a194e784 100644
--- a/meta/recipes-support/npth/npth_0.91.bb
+++ b/meta/recipes-support/npth/npth_1.1.bb
@@ -7,9 +7,11 @@ LIC_FILES_CHKSUM = "\
file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6\
"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/npth/npth-${PV}.tar.bz2 \
+ file://pkgconfig.patch \
"
-SRC_URI[md5sum] = "87712f0cee656c390b49773923e26e7f"
-SRC_URI[sha256sum] = "caef86ced4a331e162897818a5b924860c8d6003e52da5bdf76da00e8e0dfae1"
+
+SRC_URI[md5sum] = "aaffc8ef3e955ab50a1905809f268a23"
+SRC_URI[sha256sum] = "896c561eb2ec8da35f11828fb04a3fbff12d41ff657c799056d7dc4a66e5df7f"
BINCONFIG = "${bindir}/npth-config"
diff --git a/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
index a6fa1ea607..c2b7258e50 100644
--- a/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
+++ b/meta/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
@@ -11,23 +11,27 @@ Upstream-Status: Pending
configure.in | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
-diff --git a/configure.in b/configure.in
-index 39c96a3..99a03ac 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1778,24 +1778,24 @@ tools are selected during the Xcode/Developer Tools installation.])
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
PR_MD_ASFILES=os_Linux_ia64.s
;;
x86_64)
- if test -n "$USE_64"; then
- PR_MD_ASFILES=os_Linux_x86_64.s
-- else
-+ if test -n "$USE_N32"; then
- AC_DEFINE(i386)
- PR_MD_ASFILES=os_Linux_x86.s
- CC="$CC -m32"
- CXX="$CXX -m32"
-+ else
+- elif test -n "$USE_X32"; then
++ if test -n "$USE_X32"; then
++ AC_DEFINE(i386)
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ CC="$CC -mx32"
+ CXX="$CXX -mx32"
+ else
+- AC_DEFINE(i386)
+- PR_MD_ASFILES=os_Linux_x86.s
+- CC="$CC -m32"
+- CXX="$CXX -m32"
+ PR_MD_ASFILES=os_Linux_x86_64.s
fi
;;
@@ -46,6 +50,3 @@ index 39c96a3..99a03ac 100644
fi
;;
m68k)
---
-1.7.1
-
diff --git a/meta/recipes-support/nspr/nspr/nspr-CVE-2014-1545.patch b/meta/recipes-support/nspr/nspr/nspr-CVE-2014-1545.patch
new file mode 100644
index 0000000000..565ff168e0
--- /dev/null
+++ b/meta/recipes-support/nspr/nspr/nspr-CVE-2014-1545.patch
@@ -0,0 +1,67 @@
+Fix for CVE-2014-1545
+
+Upstream-Status: Backport
+
+Backported from nspr-4.10.6.tar.gz.
+---
+--- a/pr/src/io/prprf.c
++++ b/pr/src/io/prprf.c
+@@ -50,6 +50,10 @@
+ #include "prlog.h"
+ #include "prmem.h"
+
++#ifdef _MSC_VER
++#define snprintf _snprintf
++#endif
++
+ /*
+ ** WARNING: This code may *NOT* call PR_LOG (because PR_LOG calls it)
+ */
+@@ -330,7 +334,7 @@
+ ** Convert a double precision floating point number into its printable
+ ** form.
+ **
+-** XXX stop using sprintf to convert floating point
++** XXX stop using snprintf to convert floating point
+ */
+ static int cvt_f(SprintfState *ss, double d, const char *fmt0, const char *fmt1)
+ {
+@@ -338,15 +342,14 @@
+ char fout[300];
+ int amount = fmt1 - fmt0;
+
+- PR_ASSERT((amount > 0) && (amount < sizeof(fin)));
+- if (amount >= sizeof(fin)) {
+- /* Totally bogus % command to sprintf. Just ignore it */
++ if (amount <= 0 || amount >= sizeof(fin)) {
++ /* Totally bogus % command to snprintf. Just ignore it */
+ return 0;
+ }
+ memcpy(fin, fmt0, amount);
+ fin[amount] = 0;
+
+- /* Convert floating point using the native sprintf code */
++ /* Convert floating point using the native snprintf code */
+ #ifdef DEBUG
+ {
+ const char *p = fin;
+@@ -356,14 +359,11 @@
+ }
+ }
+ #endif
+- sprintf(fout, fin, d);
+-
+- /*
+- ** This assert will catch overflow's of fout, when building with
+- ** debugging on. At least this way we can track down the evil piece
+- ** of calling code and fix it!
+- */
+- PR_ASSERT(strlen(fout) < sizeof(fout));
++ memset(fout, 0, sizeof(fout));
++ snprintf(fout, sizeof(fout), fin, d);
++ /* Explicitly null-terminate fout because on Windows snprintf doesn't
++ * append a null-terminator if the buffer is too small. */
++ fout[sizeof(fout) - 1] = '\0';
+
+ return (*ss->stuff)(ss, fout, strlen(fout));
+ }
diff --git a/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch b/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
new file mode 100644
index 0000000000..bde715c5dc
--- /dev/null
+++ b/meta/recipes-support/nspr/nspr/remove-srcdir-from-configure-in.patch
@@ -0,0 +1,19 @@
+the $srcdir is not defined at the time of gnu-configurize.
+
+Upstream-Status: Inappropriate [OE-Core specific]
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -8,7 +8,7 @@ AC_PREREQ(2.61)
+ AC_INIT
+ AC_CONFIG_SRCDIR([pr/include/nspr.h])
+
+-AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
++AC_CONFIG_AUX_DIR(build/autoconf)
+ AC_CANONICAL_TARGET
+
+ dnl ========================================================
diff --git a/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch b/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch
deleted file mode 100644
index 8ca51e4d1f..0000000000
--- a/meta/recipes-support/nspr/nspr/trickly-fix-build-on-x86_64.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-trickily fix build failure on x86_64
-
-It seems that we can not run the 'autoreconf -f -i' for the nspr, I met
-several strange problems while trying to do that, and the previous
-author seemed had noticed this, so he wrote:
-
-do_configure() {
- oe_runconf
-}
-
-to avoid running the "autoreconf". But we must modify configure.in to
-fix the build failure on x86_64, so both modify configure and
-configure.in, once the "autoreconf" can work correctly, we can remove
-this patch.
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-
-Upstream-Status: Inappropriate [configuration]
----
- configure | 12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -4366,9 +4366,7 @@ EOF
- PR_MD_ASFILES=os_Linux_ia64.s
- ;;
- x86_64)
-- if test -n "$USE_64"; then
-- PR_MD_ASFILES=os_Linux_x86_64.s
-- else
-+ if test -n "$USE_N32"; then
- cat >> confdefs.h <<\EOF
- #define i386 1
- EOF
-@@ -4376,17 +4374,19 @@ EOF
- PR_MD_ASFILES=os_Linux_x86.s
- CC="$CC -m32"
- CXX="$CXX -m32"
-+ else
-+ PR_MD_ASFILES=os_Linux_x86_64.s
- fi
- ;;
- ppc|powerpc)
- PR_MD_ASFILES=os_Linux_ppc.s
- ;;
- powerpc64)
-- if test -n "$USE_64"; then
-+ if test -n "$USE_N32"; then
-+ PR_MD_ASFILES=os_Linux_ppc.s
-+ else
- CC="$CC -m64"
- CXX="$CXX -m64"
-- else
-- PR_MD_ASFILES=os_Linux_ppc.s
- fi
- ;;
- m68k)
---
-1.7.1
-
diff --git a/meta/recipes-support/nspr/nspr_4.10.3.bb b/meta/recipes-support/nspr/nspr_4.10.8.bb
index 0adfe3b3a3..944994e17f 100644
--- a/meta/recipes-support/nspr/nspr_4.10.3.bb
+++ b/meta/recipes-support/nspr/nspr_4.10.8.bb
@@ -8,21 +8,20 @@ SECTION = "libs/network"
SRC_URI = "ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${PV}/src/nspr-${PV}.tar.gz \
file://remove-rpath-from-tests.patch \
file://fix-build-on-x86_64.patch \
- file://trickly-fix-build-on-x86_64.patch \
+ file://remove-srcdir-from-configure-in.patch \
"
SRC_URI += "file://nspr.pc.in"
-SRC_URI[md5sum] = "bf298e874cf454a3c2f8fe7e671c5d2e"
-SRC_URI[sha256sum] = "f25779b1a665dab0090b9c977dc6c29a63320f442956ed78629b66b405cb01e5"
+SRC_URI[md5sum] = "8d7c5bd0a5b0a7d0e705be66479030a0"
+SRC_URI[sha256sum] = "507ea57c525c0c524dae4857a642b4ef5c9d795518754c7f83422d22fe544a15"
S = "${WORKDIR}/nspr-${PV}/nspr"
RDEPENDS_${PN}-dev += "perl"
TARGET_CC_ARCH += "${LDFLAGS}"
-TESTS = "runtests.pl \
- runtests.sh \
+TESTS = " \
accept \
acceptread \
acceptreademu \
@@ -138,13 +137,9 @@ TESTS = "runtests.pl \
xnotify \
zerolen"
-inherit autotools-brokensep
+PR = "r1"
-do_configure() {
- gnu-configize --force
- mv config.sub config.guess build/autoconf
- oe_runconf
-}
+inherit autotools
do_compile_prepend() {
oe_runmake CROSS_COMPILE=1 CFLAGS="-DXP_UNIX" LDFLAGS="" CC=gcc -C config export
@@ -160,8 +155,11 @@ do_install_append() {
sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nspr.pc
sed -i s:OEINCDIR:${includedir}:g ${D}${libdir}/pkgconfig/nspr.pc
sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nspr.pc
- cd ${S}/pr/tests
+
mkdir -p ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.pl ${D}${libdir}/nspr/tests
+ install -m 0755 ${S}/pr/tests/runtests.sh ${D}${libdir}/nspr/tests
+ cd ${B}/pr/tests
install -m 0755 ${TESTS} ${D}${libdir}/nspr/tests
# delete compile-et.pl and perr.properties from ${bindir} because these are
diff --git a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
index 540f22330a..bbce9e9af0 100644
--- a/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
+++ b/meta/recipes-support/nss-myhostname/nss-myhostname_0.3.bb
@@ -11,16 +11,19 @@ SRC_URI = "http://0pointer.de/lennart/projects/nss-myhostname/nss-myhostname-${P
SRC_URI[md5sum] = "d4ab9ac36c053ab8fb836db1cbd4a48f"
SRC_URI[sha256sum] = "2ba744ea8d578d1c57c85884e94a3042ee17843a5294434d3a7f6c4d67e7caf2"
-inherit autotools
+inherit autotools distro_features_check
+
+# The systemd has its own copy of nss-myhostname
+CONFLICT_DISTRO_FEATURES = "systemd"
pkg_postinst_${PN} () {
sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-e 's/\(^hosts:.*\)\(\<files\>\)\(.*\)\(\<dns\>\)\(.*\)/\1\2 myhostname \3\4\5/' \
- -i $D/etc/nsswitch.conf
+ -i $D${sysconfdir}/nsswitch.conf
}
pkg_prerm_${PN} () {
sed -e '/^hosts:/s/\s*\<myhostname\>//' \
-e '/^hosts:/s/\s*myhostname//' \
- -i $D/etc/nsswitch.conf
+ -i $D${sysconfdir}/nsswitch.conf
}
diff --git a/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-1741.patch b/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-1741.patch
deleted file mode 100644
index 21da0c03b5..0000000000
--- a/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-1741.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-Upstream-Status: backport
-yanjun.zhu <yanjun.zhu@windriver.com>
---- a/nss/lib/util/secport.c
-+++ b/nss/lib/util/secport.c
-@@ -69,13 +69,22 @@ PORTCharConversionFunc ucs4Utf8ConvertFu
- PORTCharConversionFunc ucs2Utf8ConvertFunc;
- PORTCharConversionWSwapFunc ucs2AsciiConvertFunc;
-
-+/* NSPR memory allocation functions (PR_Malloc, PR_Calloc, and PR_Realloc)
-+ * use the PRUint32 type for the size parameter. Before we pass a size_t or
-+ * unsigned long size to these functions, we need to ensure it is <= half of
-+ * the maximum PRUint32 value to avoid truncation and catch a negative size.
-+ */
-+#define MAX_SIZE (PR_UINT32_MAX >> 1)
-+
- void *
- PORT_Alloc(size_t bytes)
- {
-- void *rv;
-+ void *rv = NULL;
-
-- /* Always allocate a non-zero amount of bytes */
-- rv = (void *)PR_Malloc(bytes ? bytes : 1);
-+ if (bytes <= MAX_SIZE) {
-+ /* Always allocate a non-zero amount of bytes */
-+ rv = PR_Malloc(bytes ? bytes : 1);
-+ }
- if (!rv) {
- ++port_allocFailures;
- PORT_SetError(SEC_ERROR_NO_MEMORY);
-@@ -86,9 +95,11 @@ PORT_Alloc(size_t bytes)
- void *
- PORT_Realloc(void *oldptr, size_t bytes)
- {
-- void *rv;
-+ void *rv = NULL;
-
-- rv = (void *)PR_Realloc(oldptr, bytes);
-+ if (bytes <= MAX_SIZE) {
-+ rv = PR_Realloc(oldptr, bytes);
-+ }
- if (!rv) {
- ++port_allocFailures;
- PORT_SetError(SEC_ERROR_NO_MEMORY);
-@@ -99,10 +110,12 @@ PORT_Realloc(void *oldptr, size_t bytes)
- void *
- PORT_ZAlloc(size_t bytes)
- {
-- void *rv;
-+ void *rv = NULL;
-
-- /* Always allocate a non-zero amount of bytes */
-- rv = (void *)PR_Calloc(1, bytes ? bytes : 1);
-+ if (bytes <= MAX_SIZE) {
-+ /* Always allocate a non-zero amount of bytes */
-+ rv = PR_Calloc(1, bytes ? bytes : 1);
-+ }
- if (!rv) {
- ++port_allocFailures;
- PORT_SetError(SEC_ERROR_NO_MEMORY);
-@@ -209,6 +222,10 @@ PORT_NewArena(unsigned long chunksize)
- {
- PORTArenaPool *pool;
-
-+ if (chunksize > MAX_SIZE) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
- pool = PORT_ZNew(PORTArenaPool);
- if (!pool) {
- return NULL;
-@@ -224,8 +241,6 @@ PORT_NewArena(unsigned long chunksize)
- return(&pool->arena);
- }
-
--#define MAX_SIZE 0x7fffffffUL
--
- void *
- PORT_ArenaAlloc(PLArenaPool *arena, size_t size)
- {
-@@ -330,6 +345,11 @@ PORT_ArenaGrow(PLArenaPool *arena, void
- PORTArenaPool *pool = (PORTArenaPool *)arena;
- PORT_Assert(newsize >= oldsize);
-
-+ if (newsize > MAX_SIZE) {
-+ PORT_SetError(SEC_ERROR_NO_MEMORY);
-+ return NULL;
-+ }
-+
- if (ARENAPOOL_MAGIC == pool->magic ) {
- PZ_Lock(pool->lock);
- /* Do we do a THREADMARK check here? */
diff --git a/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-5605.patch b/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-5605.patch
deleted file mode 100644
index 7203d02c78..0000000000
--- a/meta/recipes-support/nss/files/nss-3.15.1-fix-CVE-2013-5605.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-signed-off-by: Ryan Sleevi <ryan.sleevi@gmail.com>
-Upstream-Status: Backport
-reference:https://hg.mozilla.org/projects/nss/rev/e79a09364b5e
-
---- a/nss/lib/ssl/ssl3con.c
-+++ b/nss/lib/ssl/ssl3con.c
-@@ -781,6 +781,11 @@ static SECStatus
- Null_Cipher(void *ctx, unsigned char *output, int *outputLen, int maxOutputLen,
- const unsigned char *input, int inputLen)
- {
-+ if (inputLen > maxOutputLen) {
-+ *outputLen = 0; /* Match PK11_CipherOp in setting outputLen */
-+ PORT_SetError(SEC_ERROR_OUTPUT_LEN);
-+ return SECFailure;
-+ }
- *outputLen = inputLen;
- if (input != output)
- PORT_Memcpy(output, input, inputLen);
diff --git a/meta/recipes-support/nss/files/nss-CVE-2013-1740.patch b/meta/recipes-support/nss/files/nss-CVE-2013-1740.patch
deleted file mode 100644
index db3d6f9103..0000000000
--- a/meta/recipes-support/nss/files/nss-CVE-2013-1740.patch
+++ /dev/null
@@ -1,916 +0,0 @@
-nss: CVE-2013-1740
-
-Upstream-Status: Backport
-
-the patch comes from:
-http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-1740
-https://bugzilla.mozilla.org/show_bug.cgi?id=919877
-https://bugzilla.mozilla.org/show_bug.cgi?id=713933
-
-changeset: 10946:f28426e944ae
-user: Wan-Teh Chang <wtc@google.com>
-date: Tue Nov 26 16:44:39 2013 -0800
-summary: Bug 713933: Handle the return value of both ssl3_HandleRecord calls
-
-changeset: 10945:774c7dec7565
-user: Wan-Teh Chang <wtc@google.com>
-date: Mon Nov 25 19:16:23 2013 -0800
-summary: Bug 713933: Declare the |falseStart| local variable in the smallest
-
-changeset: 10848:141fae8fb2e8
-user: Wan-Teh Chang <wtc@google.com>
-date: Mon Sep 23 11:25:41 2013 -0700
-summary: Bug 681839: Allow SSL_HandshakeNegotiatedExtension to be called before the handshake is finished, r=brian@briansmith.org
-
-changeset: 10898:1b9c43d28713
-user: Brian Smith <brian@briansmith.org>
-date: Thu Oct 31 15:40:42 2013 -0700
-summary: Bug 713933: Make SSL False Start work with asynchronous certificate validation, r=wtc
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
----
- nss/lib/ssl/ssl.def | 7 ++
- nss/lib/ssl/ssl.h | 54 +++++++++++---
- nss/lib/ssl/ssl3con.c | 188 +++++++++++++++++++++++++++++++++++------------
- nss/lib/ssl/ssl3gthr.c | 63 ++++++++++++----
- nss/lib/ssl/sslauth.c | 10 +--
- nss/lib/ssl/sslimpl.h | 22 +++++-
- nss/lib/ssl/sslinfo.c | 10 +--
- nss/lib/ssl/sslreveal.c | 9 +--
- nss/lib/ssl/sslsecur.c | 139 ++++++++++++++++++++++++++++-------
- nss/lib/ssl/sslsock.c | 12 ++-
- 10 files changed, 386 insertions(+), 128 deletions(-)
-
-diff --git a/nss/lib/ssl/ssl.def b/nss/lib/ssl/ssl.def
-index fbf7fc5..e937bd4 100644
---- a/nss/lib/ssl/ssl.def
-+++ b/nss/lib/ssl/ssl.def
-@@ -163,3 +163,10 @@ SSL_SetStapledOCSPResponses;
- ;+ local:
- ;+*;
- ;+};
-+;+NSS_3.15.3 { # NSS 3.15.3 release
-+;+ global:
-+SSL_RecommendedCanFalseStart;
-+SSL_SetCanFalseStartCallback;
-+;+ local:
-+;+*;
-+;+};
-diff --git a/nss/lib/ssl/ssl.h b/nss/lib/ssl/ssl.h
-index 6db0e34..ddeaaef 100644
---- a/nss/lib/ssl/ssl.h
-+++ b/nss/lib/ssl/ssl.h
-@@ -121,14 +121,17 @@ SSL_IMPORT PRFileDesc *DTLS_ImportFD(PRFileDesc *model, PRFileDesc *fd);
- #define SSL_ENABLE_FALSE_START 22 /* Enable SSL false start (off by */
- /* default, applies only to */
- /* clients). False start is a */
--/* mode where an SSL client will start sending application data before */
--/* verifying the server's Finished message. This means that we could end up */
--/* sending data to an imposter. However, the data will be encrypted and */
--/* only the true server can derive the session key. Thus, so long as the */
--/* cipher isn't broken this is safe. Because of this, False Start will only */
--/* occur on RSA or DH ciphersuites where the cipher's key length is >= 80 */
--/* bits. The advantage of False Start is that it saves a round trip for */
--/* client-speaks-first protocols when performing a full handshake. */
-+/* mode where an SSL client will start sending application data before
-+ * verifying the server's Finished message. This means that we could end up
-+ * sending data to an imposter. However, the data will be encrypted and
-+ * only the true server can derive the session key. Thus, so long as the
-+ * cipher isn't broken this is safe. The advantage of false start is that
-+ * it saves a round trip for client-speaks-first protocols when performing a
-+ * full handshake.
-+ *
-+ * In addition to enabling this option, the application must register a
-+ * callback using the SSL_SetCanFalseStartCallback function.
-+ */
-
- /* For SSL 3.0 and TLS 1.0, by default we prevent chosen plaintext attacks
- * on SSL CBC mode cipher suites (see RFC 4346 Section F.3) by splitting
-@@ -653,14 +656,45 @@ SSL_IMPORT SECStatus SSL_SetMaxServerCacheLocks(PRUint32 maxLocks);
- SSL_IMPORT SECStatus SSL_InheritMPServerSIDCache(const char * envString);
-
- /*
--** Set the callback on a particular socket that gets called when we finish
--** performing a handshake.
-+** Set the callback that gets called when a TLS handshake is complete. The
-+** handshake callback is called after verifying the peer's Finished message and
-+** before processing incoming application data.
-+**
-+** For the initial handshake: If the handshake false started (see
-+** SSL_ENABLE_FALSE_START), then application data may already have been sent
-+** before the handshake callback is called. If we did not false start then the
-+** callback will get called before any application data is sent.
- */
- typedef void (PR_CALLBACK *SSLHandshakeCallback)(PRFileDesc *fd,
- void *client_data);
- SSL_IMPORT SECStatus SSL_HandshakeCallback(PRFileDesc *fd,
- SSLHandshakeCallback cb, void *client_data);
-
-+/* Applications that wish to enable TLS false start must set this callback
-+** function. NSS will invoke the functon to determine if a particular
-+** connection should use false start or not. SECSuccess indicates that the
-+** callback completed successfully, and if so *canFalseStart indicates if false
-+** start can be used. If the callback does not return SECSuccess then the
-+** handshake will be canceled. NSS's recommended criteria can be evaluated by
-+** calling SSL_RecommendedCanFalseStart.
-+**
-+** If no false start callback is registered then false start will never be
-+** done, even if the SSL_ENABLE_FALSE_START option is enabled.
-+**/
-+typedef SECStatus (PR_CALLBACK *SSLCanFalseStartCallback)(
-+ PRFileDesc *fd, void *arg, PRBool *canFalseStart);
-+
-+SSL_IMPORT SECStatus SSL_SetCanFalseStartCallback(
-+ PRFileDesc *fd, SSLCanFalseStartCallback callback, void *arg);
-+
-+/* This function sets *canFalseStart according to the recommended criteria for
-+** false start. These criteria may change from release to release and may depend
-+** on which handshake features have been negotiated and/or properties of the
-+** certifciates/keys used on the connection.
-+*/
-+SSL_IMPORT SECStatus SSL_RecommendedCanFalseStart(PRFileDesc *fd,
-+ PRBool *canFalseStart);
-+
- /*
- ** For the server, request a new handshake. For the client, begin a new
- ** handshake. If flushCache is non-zero, the SSL3 cache entry will be
-diff --git a/nss/lib/ssl/ssl3con.c b/nss/lib/ssl/ssl3con.c
-index 61d24d9..f39ba09 100644
---- a/nss/lib/ssl/ssl3con.c
-+++ b/nss/lib/ssl/ssl3con.c
-@@ -2535,7 +2535,7 @@ ssl3_SendRecord( sslSocket * ss,
- SSL_TRC(3, ("%d: SSL3[%d] SendRecord type: %s nIn=%d",
- SSL_GETPID(), ss->fd, ssl3_DecodeContentType(type),
- nIn));
-- PRINT_BUF(3, (ss, "Send record (plain text)", pIn, nIn));
-+ PRINT_BUF(50, (ss, "Send record (plain text)", pIn, nIn));
-
- PORT_Assert( ss->opt.noLocks || ssl_HaveXmitBufLock(ss) );
-
-@@ -6674,36 +6674,73 @@ done:
- return rv;
- }
-
-+static SECStatus
-+ssl3_CheckFalseStart(sslSocket *ss)
-+{
-+ PORT_Assert( ss->opt.noLocks || ssl_HaveSSL3HandshakeLock(ss) );
-+ PORT_Assert( !ss->ssl3.hs.authCertificatePending );
-+ PORT_Assert( !ss->ssl3.hs.canFalseStart );
-+
-+ if (!ss->canFalseStartCallback) {
-+ SSL_TRC(3, ("%d: SSL[%d]: no false start callback so no false start",
-+ SSL_GETPID(), ss->fd));
-+ } else {
-+ PRBool maybeFalseStart;
-+ SECStatus rv;
-+
-+ /* An attacker can control the selected ciphersuite so we only wish to
-+ * do False Start in the case that the selected ciphersuite is
-+ * sufficiently strong that the attack can gain no advantage.
-+ * Therefore we always require an 80-bit cipher. */
-+ ssl_GetSpecReadLock(ss);
-+ maybeFalseStart = ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10;
-+ ssl_ReleaseSpecReadLock(ss);
-+
-+ if (!maybeFalseStart) {
-+ SSL_TRC(3, ("%d: SSL[%d]: no false start due to weak cipher",
-+ SSL_GETPID(), ss->fd));
-+ } else {
-+ rv = (ss->canFalseStartCallback)(ss->fd,
-+ ss->canFalseStartCallbackData,
-+ &ss->ssl3.hs.canFalseStart);
-+ if (rv == SECSuccess) {
-+ SSL_TRC(3, ("%d: SSL[%d]: false start callback returned %s",
-+ SSL_GETPID(), ss->fd,
-+ ss->ssl3.hs.canFalseStart ? "TRUE" : "FALSE"));
-+ } else {
-+ SSL_TRC(3, ("%d: SSL[%d]: false start callback failed (%s)",
-+ SSL_GETPID(), ss->fd,
-+ PR_ErrorToName(PR_GetError())));
-+ }
-+ return rv;
-+ }
-+ }
-+
-+ ss->ssl3.hs.canFalseStart = PR_FALSE;
-+ return SECSuccess;
-+}
-+
- PRBool
--ssl3_CanFalseStart(sslSocket *ss) {
-- PRBool rv;
-+ssl3_WaitingForStartOfServerSecondRound(sslSocket *ss)
-+{
-+ PRBool result = PR_FALSE;
-
- PORT_Assert( ss->opt.noLocks || ssl_HaveSSL3HandshakeLock(ss) );
-
-- /* XXX: does not take into account whether we are waiting for
-- * SSL_AuthCertificateComplete or SSL_RestartHandshakeAfterCertReq. If/when
-- * that is done, this function could return different results each time it
-- * would be called.
-- */
-+ switch (ss->ssl3.hs.ws) {
-+ case wait_new_session_ticket:
-+ result = PR_TRUE;
-+ break;
-+ case wait_change_cipher:
-+ result = !ssl3_ExtensionNegotiated(ss, ssl_session_ticket_xtn);
-+ break;
-+ case wait_finished:
-+ break;
-+ default:
-+ PR_NOT_REACHED("ssl3_WaitingForStartOfServerSecondRound");
-+ }
-
-- ssl_GetSpecReadLock(ss);
-- rv = ss->opt.enableFalseStart &&
-- !ss->sec.isServer &&
-- !ss->ssl3.hs.isResuming &&
-- ss->ssl3.cwSpec &&
--
-- /* An attacker can control the selected ciphersuite so we only wish to
-- * do False Start in the case that the selected ciphersuite is
-- * sufficiently strong that the attack can gain no advantage.
-- * Therefore we require an 80-bit cipher and a forward-secret key
-- * exchange. */
-- ss->ssl3.cwSpec->cipher_def->secret_key_size >= 10 &&
-- (ss->ssl3.hs.kea_def->kea == kea_dhe_dss ||
-- ss->ssl3.hs.kea_def->kea == kea_dhe_rsa ||
-- ss->ssl3.hs.kea_def->kea == kea_ecdhe_ecdsa ||
-- ss->ssl3.hs.kea_def->kea == kea_ecdhe_rsa);
-- ssl_ReleaseSpecReadLock(ss);
-- return rv;
-+ return result;
- }
-
- static SECStatus ssl3_SendClientSecondRound(sslSocket *ss);
-@@ -6785,6 +6822,9 @@ ssl3_SendClientSecondRound(sslSocket *ss)
- }
- if (ss->ssl3.hs.authCertificatePending &&
- (sendClientCert || ss->ssl3.sendEmptyCert || ss->firstHsDone)) {
-+ SSL_TRC(3, ("%d: SSL3[%p]: deferring ssl3_SendClientSecondRound because"
-+ " certificate authentication is still pending.",
-+ SSL_GETPID(), ss->fd));
- ss->ssl3.hs.restartTarget = ssl3_SendClientSecondRound;
- return SECWouldBlock;
- }
-@@ -6822,14 +6862,50 @@ ssl3_SendClientSecondRound(sslSocket *ss)
- goto loser; /* err code was set. */
- }
-
-- /* XXX: If the server's certificate hasn't been authenticated by this
-- * point, then we may be leaking this NPN message to an attacker.
-+ /* This must be done after we've set ss->ssl3.cwSpec in
-+ * ssl3_SendChangeCipherSpecs because SSL_GetChannelInfo uses information
-+ * from cwSpec. This must be done before we call ssl3_CheckFalseStart
-+ * because the false start callback (if any) may need the information from
-+ * the functions that depend on this being set.
- */
-+ ss->enoughFirstHsDone = PR_TRUE;
-+
- if (!ss->firstHsDone) {
-+ /* XXX: If the server's certificate hasn't been authenticated by this
-+ * point, then we may be leaking this NPN message to an attacker.
-+ */
- rv = ssl3_SendNextProto(ss);
- if (rv != SECSuccess) {
- goto loser; /* err code was set. */
- }
-+
-+ if (ss->opt.enableFalseStart) {
-+ if (!ss->ssl3.hs.authCertificatePending) {
-+ /* When we fix bug 589047, we will need to know whether we are
-+ * false starting before we try to flush the client second
-+ * round to the network. With that in mind, we purposefully
-+ * call ssl3_CheckFalseStart before calling ssl3_SendFinished,
-+ * which includes a call to ssl3_FlushHandshake, so that
-+ * no application develops a reliance on such flushing being
-+ * done before its false start callback is called.
-+ */
-+ ssl_ReleaseXmitBufLock(ss);
-+ rv = ssl3_CheckFalseStart(ss);
-+ ssl_GetXmitBufLock(ss);
-+ if (rv != SECSuccess) {
-+ goto loser;
-+ }
-+ } else {
-+ /* The certificate authentication and the server's Finished
-+ * message are racing each other. If the certificate
-+ * authentication wins, then we will try to false start in
-+ * ssl3_AuthCertificateComplete.
-+ */
-+ SSL_TRC(3, ("%d: SSL3[%p]: deferring false start check because"
-+ " certificate authentication is still pending.",
-+ SSL_GETPID(), ss->fd));
-+ }
-+ }
- }
-
- rv = ssl3_SendFinished(ss, 0);
-@@ -6844,10 +6920,7 @@ ssl3_SendClientSecondRound(sslSocket *ss)
- else
- ss->ssl3.hs.ws = wait_change_cipher;
-
-- /* Do the handshake callback for sslv3 here, if we can false start. */
-- if (ss->handshakeCallback != NULL && ssl3_CanFalseStart(ss)) {
-- (ss->handshakeCallback)(ss->fd, ss->handshakeCallbackData);
-- }
-+ PORT_Assert(ssl3_WaitingForStartOfServerSecondRound(ss));
-
- return SECSuccess;
-
-@@ -9421,13 +9494,6 @@ ssl3_AuthCertificate(sslSocket *ss)
-
- ss->ssl3.hs.authCertificatePending = PR_TRUE;
- rv = SECSuccess;
--
-- /* XXX: Async cert validation and False Start don't work together
-- * safely yet; if we leave False Start enabled, we may end up false
-- * starting (sending application data) before we
-- * SSL_AuthCertificateComplete has been called.
-- */
-- ss->opt.enableFalseStart = PR_FALSE;
- }
-
- if (rv != SECSuccess) {
-@@ -9551,6 +9617,12 @@ ssl3_AuthCertificateComplete(sslSocket *ss, PRErrorCode error)
- } else if (ss->ssl3.hs.restartTarget != NULL) {
- sslRestartTarget target = ss->ssl3.hs.restartTarget;
- ss->ssl3.hs.restartTarget = NULL;
-+
-+ if (target == ssl3_FinishHandshake) {
-+ SSL_TRC(3,("%d: SSL3[%p]: certificate authentication lost the race"
-+ " with peer's finished message", SSL_GETPID(), ss->fd));
-+ }
-+
- rv = target(ss);
- /* Even if we blocked here, we have accomplished enough to claim
- * success. Any remaining work will be taken care of by subsequent
-@@ -9560,7 +9632,29 @@ ssl3_AuthCertificateComplete(sslSocket *ss, PRErrorCode error)
- rv = SECSuccess;
- }
- } else {
-- rv = SECSuccess;
-+ SSL_TRC(3, ("%d: SSL3[%p]: certificate authentication won the race with"
-+ " peer's finished message", SSL_GETPID(), ss->fd));
-+
-+ PORT_Assert(!ss->firstHsDone);
-+ PORT_Assert(!ss->sec.isServer);
-+ PORT_Assert(!ss->ssl3.hs.isResuming);
-+ PORT_Assert(ss->ssl3.hs.ws == wait_new_session_ticket ||
-+ ss->ssl3.hs.ws == wait_change_cipher ||
-+ ss->ssl3.hs.ws == wait_finished);
-+
-+ /* ssl3_SendClientSecondRound deferred the false start check because
-+ * certificate authentication was pending, so we do it now if we still
-+ * haven't received any of the server's second round yet.
-+ */
-+ if (ss->opt.enableFalseStart &&
-+ !ss->firstHsDone &&
-+ !ss->sec.isServer &&
-+ !ss->ssl3.hs.isResuming &&
-+ ssl3_WaitingForStartOfServerSecondRound(ss)) {
-+ rv = ssl3_CheckFalseStart(ss);
-+ } else {
-+ rv = SECSuccess;
-+ }
- }
-
- done:
-@@ -10023,9 +10117,6 @@ xmit_loser:
- return rv;
- }
-
-- ss->gs.writeOffset = 0;
-- ss->gs.readOffset = 0;
--
- if (ss->ssl3.hs.kea_def->kea == kea_ecdhe_rsa) {
- effectiveExchKeyType = kt_rsa;
- } else {
-@@ -10090,6 +10181,9 @@ xmit_loser:
- return rv;
- }
-
-+/* The return type is SECStatus instead of void because this function needs
-+ * to have type sslRestartTarget.
-+ */
- SECStatus
- ssl3_FinishHandshake(sslSocket * ss)
- {
-@@ -10099,19 +10193,16 @@ ssl3_FinishHandshake(sslSocket * ss)
-
- /* The first handshake is now completed. */
- ss->handshake = NULL;
-- ss->firstHsDone = PR_TRUE;
-
- if (ss->ssl3.hs.cacheSID) {
- (*ss->sec.cache)(ss->sec.ci.sid);
- ss->ssl3.hs.cacheSID = PR_FALSE;
- }
-
-+ ss->ssl3.hs.canFalseStart = PR_FALSE; /* False Start phase is complete */
- ss->ssl3.hs.ws = idle_handshake;
-
-- /* Do the handshake callback for sslv3 here, if we cannot false start. */
-- if (ss->handshakeCallback != NULL && !ssl3_CanFalseStart(ss)) {
-- (ss->handshakeCallback)(ss->fd, ss->handshakeCallbackData);
-- }
-+ ssl_FinishHandshake(ss);
-
- return SECSuccess;
- }
-@@ -11045,7 +11136,6 @@ process_it:
-
- ssl_ReleaseSSL3HandshakeLock(ss);
- return rv;
--
- }
-
- /*
-diff --git a/nss/lib/ssl/ssl3gthr.c b/nss/lib/ssl/ssl3gthr.c
-index 6d62515..03e369d 100644
---- a/nss/lib/ssl/ssl3gthr.c
-+++ b/nss/lib/ssl/ssl3gthr.c
-@@ -275,11 +275,17 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
- {
- SSL3Ciphertext cText;
- int rv;
-- PRBool canFalseStart = PR_FALSE;
-+ PRBool keepGoing = PR_TRUE;
-
- SSL_TRC(30, ("ssl3_GatherCompleteHandshake"));
-
-+ /* ssl3_HandleRecord may end up eventually calling ssl_FinishHandshake,
-+ * which requires the 1stHandshakeLock, which must be acquired before the
-+ * RecvBufLock.
-+ */
-+ PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
- PORT_Assert( ss->opt.noLocks || ssl_HaveRecvBufLock(ss) );
-+
- do {
- PRBool handleRecordNow = PR_FALSE;
-
-@@ -368,20 +374,48 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
- if (rv < 0) {
- return ss->recvdCloseNotify ? 0 : rv;
- }
-+ if (rv == (int) SECSuccess && ss->gs.buf.len > 0) {
-+ /* We have application data to return to the application. This
-+ * prioritizes returning application data to the application over
-+ * completing any renegotiation handshake we may be doing.
-+ */
-+ PORT_Assert(ss->firstHsDone);
-+ PORT_Assert(cText.type == content_application_data);
-+ break;
-+ }
-
-- /* If we kicked off a false start in ssl3_HandleServerHelloDone, break
-- * out of this loop early without finishing the handshake.
-- */
-- if (ss->opt.enableFalseStart) {
-- ssl_GetSSL3HandshakeLock(ss);
-- canFalseStart = (ss->ssl3.hs.ws == wait_change_cipher ||
-- ss->ssl3.hs.ws == wait_new_session_ticket) &&
-- ssl3_CanFalseStart(ss);
-- ssl_ReleaseSSL3HandshakeLock(ss);
-+ PORT_Assert(keepGoing);
-+ ssl_GetSSL3HandshakeLock(ss);
-+ if (ss->ssl3.hs.ws == idle_handshake) {
-+ /* We are done with the current handshake so stop trying to
-+ * handshake. Note that it would be safe to test ss->firstHsDone
-+ * instead of ss->ssl3.hs.ws. By testing ss->ssl3.hs.ws instead,
-+ * we prioritize completing a renegotiation handshake over sending
-+ * application data.
-+ */
-+ PORT_Assert(ss->firstHsDone);
-+ PORT_Assert(!ss->ssl3.hs.canFalseStart);
-+ keepGoing = PR_FALSE;
-+ } else if (ss->ssl3.hs.canFalseStart) {
-+ /* Prioritize sending application data over trying to complete
-+ * the handshake if we're false starting.
-+ *
-+ * If we were to do this check at the beginning of the loop instead
-+ * of here, then this function would become be a no-op after
-+ * receiving the ServerHelloDone in the false start case, and we
-+ * would never complete the handshake.
-+ */
-+ PORT_Assert(!ss->firstHsDone);
-+
-+ if (ssl3_WaitingForStartOfServerSecondRound(ss)) {
-+ keepGoing = PR_FALSE;
-+ } else {
-+ ss->ssl3.hs.canFalseStart = PR_FALSE;
-+ }
- }
-- } while (ss->ssl3.hs.ws != idle_handshake &&
-- !canFalseStart &&
-- ss->gs.buf.len == 0);
-+ ssl_ReleaseSSL3HandshakeLock(ss);
-+ } while (keepGoing);
-+
-
- ss->gs.readOffset = 0;
- ss->gs.writeOffset = ss->gs.buf.len;
-@@ -404,7 +438,10 @@ ssl3_GatherAppDataRecord(sslSocket *ss, int flags)
- {
- int rv;
-
-+ /* ssl3_GatherCompleteHandshake requires both of these locks. */
-+ PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
- PORT_Assert( ss->opt.noLocks || ssl_HaveRecvBufLock(ss) );
-+
- do {
- rv = ssl3_GatherCompleteHandshake(ss, flags);
- } while (rv > 0 && ss->gs.buf.len == 0);
-diff --git a/nss/lib/ssl/sslauth.c b/nss/lib/ssl/sslauth.c
-index d2f57bf..cb956d4 100644
---- a/nss/lib/ssl/sslauth.c
-+++ b/nss/lib/ssl/sslauth.c
-@@ -60,7 +60,6 @@ SSL_SecurityStatus(PRFileDesc *fd, int *op, char **cp, int *kp0, int *kp1,
- sslSocket *ss;
- const char *cipherName;
- PRBool isDes = PR_FALSE;
-- PRBool enoughFirstHsDone = PR_FALSE;
-
- ss = ssl_FindSocket(fd);
- if (!ss) {
-@@ -78,14 +77,7 @@ SSL_SecurityStatus(PRFileDesc *fd, int *op, char **cp, int *kp0, int *kp1,
- *op = SSL_SECURITY_STATUS_OFF;
- }
-
-- if (ss->firstHsDone) {
-- enoughFirstHsDone = PR_TRUE;
-- } else if (ss->version >= SSL_LIBRARY_VERSION_3_0 &&
-- ssl3_CanFalseStart(ss)) {
-- enoughFirstHsDone = PR_TRUE;
-- }
--
-- if (ss->opt.useSecurity && enoughFirstHsDone) {
-+ if (ss->opt.useSecurity && ss->enoughFirstHsDone) {
- if (ss->version < SSL_LIBRARY_VERSION_3_0) {
- cipherName = ssl_cipherName[ss->sec.cipherType];
- } else {
-diff --git a/nss/lib/ssl/sslimpl.h b/nss/lib/ssl/sslimpl.h
-index 90e9567..bf0d67f 100644
---- a/nss/lib/ssl/sslimpl.h
-+++ b/nss/lib/ssl/sslimpl.h
-@@ -842,6 +842,8 @@ const ssl3CipherSuiteDef *suite_def;
- /* Shared state between ssl3_HandleFinished and ssl3_FinishHandshake */
- PRBool cacheSID;
-
-+ PRBool canFalseStart; /* Can/did we False Start */
-+
- /* clientSigAndHash contains the contents of the signature_algorithms
- * extension (if any) from the client. This is only valid for TLS 1.2
- * or later. */
-@@ -1116,6 +1118,10 @@ struct sslSocketStr {
- unsigned long clientAuthRequested;
- unsigned long delayDisabled; /* Nagle delay disabled */
- unsigned long firstHsDone; /* first handshake is complete. */
-+ unsigned long enoughFirstHsDone; /* enough of the first handshake is
-+ * done for callbacks to be able to
-+ * retrieve channel security
-+ * parameters from the SSL socket. */
- unsigned long handshakeBegun;
- unsigned long lastWriteBlocked;
- unsigned long recvdCloseNotify; /* received SSL EOF. */
-@@ -1156,6 +1162,8 @@ const unsigned char * preferredCipher;
- void *badCertArg;
- SSLHandshakeCallback handshakeCallback;
- void *handshakeCallbackData;
-+ SSLCanFalseStartCallback canFalseStartCallback;
-+ void *canFalseStartCallbackData;
- void *pkcs11PinArg;
- SSLNextProtoCallback nextProtoCallback;
- void *nextProtoArg;
-@@ -1358,7 +1366,19 @@ extern void ssl3_SetAlwaysBlock(sslSocket *ss);
-
- extern SECStatus ssl_EnableNagleDelay(sslSocket *ss, PRBool enabled);
-
--extern PRBool ssl3_CanFalseStart(sslSocket *ss);
-+extern void ssl_FinishHandshake(sslSocket *ss);
-+
-+/* Returns PR_TRUE if we are still waiting for the server to respond to our
-+ * client second round. Once we've received any part of the server's second
-+ * round then we don't bother trying to false start since it is almost always
-+ * the case that the NewSessionTicket, ChangeCipherSoec, and Finished messages
-+ * were sent in the same packet and we want to process them all at the same
-+ * time. If we were to try to false start in the middle of the server's second
-+ * round, then we would increase the number of I/O operations
-+ * (SSL_ForceHandshake/PR_Recv/PR_Send/etc.) needed to finish the handshake.
-+ */
-+extern PRBool ssl3_WaitingForStartOfServerSecondRound(sslSocket *ss);
-+
- extern SECStatus
- ssl3_CompressMACEncryptRecord(ssl3CipherSpec * cwSpec,
- PRBool isServer,
-diff --git a/nss/lib/ssl/sslinfo.c b/nss/lib/ssl/sslinfo.c
-index 9f2597e..d0c23b7 100644
---- a/nss/lib/ssl/sslinfo.c
-+++ b/nss/lib/ssl/sslinfo.c
-@@ -26,7 +26,6 @@ SSL_GetChannelInfo(PRFileDesc *fd, SSLChannelInfo *info, PRUintn len)
- sslSocket * ss;
- SSLChannelInfo inf;
- sslSessionID * sid;
-- PRBool enoughFirstHsDone = PR_FALSE;
-
- if (!info || len < sizeof inf.length) {
- PORT_SetError(SEC_ERROR_INVALID_ARGS);
-@@ -43,14 +42,7 @@ SSL_GetChannelInfo(PRFileDesc *fd, SSLChannelInfo *info, PRUintn len)
- memset(&inf, 0, sizeof inf);
- inf.length = PR_MIN(sizeof inf, len);
-
-- if (ss->firstHsDone) {
-- enoughFirstHsDone = PR_TRUE;
-- } else if (ss->version >= SSL_LIBRARY_VERSION_3_0 &&
-- ssl3_CanFalseStart(ss)) {
-- enoughFirstHsDone = PR_TRUE;
-- }
--
-- if (ss->opt.useSecurity && enoughFirstHsDone) {
-+ if (ss->opt.useSecurity && ss->enoughFirstHsDone) {
- sid = ss->sec.ci.sid;
- inf.protocolVersion = ss->version;
- inf.authKeyBits = ss->sec.authKeyBits;
-diff --git a/nss/lib/ssl/sslreveal.c b/nss/lib/ssl/sslreveal.c
-index dc14794..d972998 100644
---- a/nss/lib/ssl/sslreveal.c
-+++ b/nss/lib/ssl/sslreveal.c
-@@ -77,7 +77,6 @@ SSL_HandshakeNegotiatedExtension(PRFileDesc * socket,
- {
- /* some decisions derived from SSL_GetChannelInfo */
- sslSocket * sslsocket = NULL;
-- PRBool enoughFirstHsDone = PR_FALSE;
-
- if (!pYes) {
- PORT_SetError(SEC_ERROR_INVALID_ARGS);
-@@ -93,14 +92,8 @@ SSL_HandshakeNegotiatedExtension(PRFileDesc * socket,
-
- *pYes = PR_FALSE;
-
-- if (sslsocket->firstHsDone) {
-- enoughFirstHsDone = PR_TRUE;
-- } else if (sslsocket->ssl3.initialized && ssl3_CanFalseStart(sslsocket)) {
-- enoughFirstHsDone = PR_TRUE;
-- }
--
- /* according to public API SSL_GetChannelInfo, this doesn't need a lock */
-- if (sslsocket->opt.useSecurity && enoughFirstHsDone) {
-+ if (sslsocket->opt.useSecurity) {
- if (sslsocket->ssl3.initialized) { /* SSL3 and TLS */
- /* now we know this socket went through ssl3_InitState() and
- * ss->xtnData got initialized, which is the only member accessed by
-diff --git a/nss/lib/ssl/sslsecur.c b/nss/lib/ssl/sslsecur.c
-index 49bb42b..d0df442 100644
---- a/nss/lib/ssl/sslsecur.c
-+++ b/nss/lib/ssl/sslsecur.c
-@@ -97,23 +97,13 @@ ssl_Do1stHandshake(sslSocket *ss)
- ss->securityHandshake = 0;
- }
- if (ss->handshake == 0) {
-- ssl_GetRecvBufLock(ss);
-- ss->gs.recordLen = 0;
-- ssl_ReleaseRecvBufLock(ss);
--
-- SSL_TRC(3, ("%d: SSL[%d]: handshake is completed",
-- SSL_GETPID(), ss->fd));
-- /* call handshake callback for ssl v2 */
-- /* for v3 this is done in ssl3_HandleFinished() */
-- if ((ss->handshakeCallback != NULL) && /* has callback */
-- (!ss->firstHsDone) && /* only first time */
-- (ss->version < SSL_LIBRARY_VERSION_3_0)) { /* not ssl3 */
-- ss->firstHsDone = PR_TRUE;
-- (ss->handshakeCallback)(ss->fd, ss->handshakeCallbackData);
-+ /* for v3 this is done in ssl3_FinishHandshake */
-+ if (!ss->firstHsDone && ss->version < SSL_LIBRARY_VERSION_3_0) {
-+ ssl_GetRecvBufLock(ss);
-+ ss->gs.recordLen = 0;
-+ ssl_FinishHandshake(ss);
-+ ssl_ReleaseRecvBufLock(ss);
- }
-- ss->firstHsDone = PR_TRUE;
-- ss->gs.writeOffset = 0;
-- ss->gs.readOffset = 0;
- break;
- }
- rv = (*ss->handshake)(ss);
-@@ -134,6 +124,24 @@ ssl_Do1stHandshake(sslSocket *ss)
- return rv;
- }
-
-+void
-+ssl_FinishHandshake(sslSocket *ss)
-+{
-+ PORT_Assert( ss->opt.noLocks || ssl_Have1stHandshakeLock(ss) );
-+ PORT_Assert( ss->opt.noLocks || ssl_HaveRecvBufLock(ss) );
-+
-+ SSL_TRC(3, ("%d: SSL[%d]: handshake is completed", SSL_GETPID(), ss->fd));
-+
-+ ss->firstHsDone = PR_TRUE;
-+ ss->enoughFirstHsDone = PR_TRUE;
-+ ss->gs.writeOffset = 0;
-+ ss->gs.readOffset = 0;
-+
-+ if (ss->handshakeCallback) {
-+ (ss->handshakeCallback)(ss->fd, ss->handshakeCallbackData);
-+ }
-+}
-+
- /*
- * Handshake function that blocks. Used to force a
- * retry on a connection on the next read/write.
-@@ -206,6 +214,7 @@ SSL_ResetHandshake(PRFileDesc *s, PRBool asServer)
- ssl_Get1stHandshakeLock(ss);
-
- ss->firstHsDone = PR_FALSE;
-+ ss->enoughFirstHsDone = PR_FALSE;
- if ( asServer ) {
- ss->handshake = ssl2_BeginServerHandshake;
- ss->handshaking = sslHandshakingAsServer;
-@@ -221,6 +230,8 @@ SSL_ResetHandshake(PRFileDesc *s, PRBool asServer)
- ssl_ReleaseRecvBufLock(ss);
-
- ssl_GetSSL3HandshakeLock(ss);
-+ ss->ssl3.hs.canFalseStart = PR_FALSE;
-+ ss->ssl3.hs.restartTarget = NULL;
-
- /*
- ** Blow away old security state and get a fresh setup.
-@@ -331,6 +342,71 @@ SSL_HandshakeCallback(PRFileDesc *fd, SSLHandshakeCallback cb,
- return SECSuccess;
- }
-
-+/* Register an application callback to be called when false start may happen.
-+** Acquires and releases HandshakeLock.
-+*/
-+SECStatus
-+SSL_SetCanFalseStartCallback(PRFileDesc *fd, SSLCanFalseStartCallback cb,
-+ void *arg)
-+{
-+ sslSocket *ss;
-+
-+ ss = ssl_FindSocket(fd);
-+ if (!ss) {
-+ SSL_DBG(("%d: SSL[%d]: bad socket in SSL_SetCanFalseStartCallback",
-+ SSL_GETPID(), fd));
-+ return SECFailure;
-+ }
-+
-+ if (!ss->opt.useSecurity) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ ssl_Get1stHandshakeLock(ss);
-+ ssl_GetSSL3HandshakeLock(ss);
-+
-+ ss->canFalseStartCallback = cb;
-+ ss->canFalseStartCallbackData = arg;
-+
-+ ssl_ReleaseSSL3HandshakeLock(ss);
-+ ssl_Release1stHandshakeLock(ss);
-+
-+ return SECSuccess;
-+}
-+
-+SECStatus
-+SSL_RecommendedCanFalseStart(PRFileDesc *fd, PRBool *canFalseStart)
-+{
-+ sslSocket *ss;
-+
-+ *canFalseStart = PR_FALSE;
-+ ss = ssl_FindSocket(fd);
-+ if (!ss) {
-+ SSL_DBG(("%d: SSL[%d]: bad socket in SSL_RecommendedCanFalseStart",
-+ SSL_GETPID(), fd));
-+ return SECFailure;
-+ }
-+
-+ if (!ss->ssl3.initialized) {
-+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
-+ return SECFailure;
-+ }
-+
-+ if (ss->version < SSL_LIBRARY_VERSION_3_0) {
-+ PORT_SetError(SSL_ERROR_FEATURE_NOT_SUPPORTED_FOR_SSL2);
-+ return SECFailure;
-+ }
-+
-+ /* Require a forward-secret key exchange. */
-+ *canFalseStart = ss->ssl3.hs.kea_def->kea == kea_dhe_dss ||
-+ ss->ssl3.hs.kea_def->kea == kea_dhe_rsa ||
-+ ss->ssl3.hs.kea_def->kea == kea_ecdhe_ecdsa ||
-+ ss->ssl3.hs.kea_def->kea == kea_ecdhe_rsa;
-+
-+ return SECSuccess;
-+}
-+
- /* Try to make progress on an SSL handshake by attempting to read the
- ** next handshake from the peer, and sending any responses.
- ** For non-blocking sockets, returns PR_ERROR_WOULD_BLOCK if it cannot
-@@ -524,6 +600,9 @@ DoRecv(sslSocket *ss, unsigned char *out, int len, int flags)
- int amount;
- int available;
-
-+ /* ssl3_GatherAppDataRecord may call ssl_FinishHandshake, which needs the
-+ * 1stHandshakeLock. */
-+ ssl_Get1stHandshakeLock(ss);
- ssl_GetRecvBufLock(ss);
-
- available = ss->gs.writeOffset - ss->gs.readOffset;
-@@ -590,6 +669,7 @@ DoRecv(sslSocket *ss, unsigned char *out, int len, int flags)
-
- done:
- ssl_ReleaseRecvBufLock(ss);
-+ ssl_Release1stHandshakeLock(ss);
- return rv;
- }
-
-@@ -1156,7 +1236,7 @@ ssl_SecureRead(sslSocket *ss, unsigned char *buf, int len)
- int
- ssl_SecureSend(sslSocket *ss, const unsigned char *buf, int len, int flags)
- {
-- int rv = 0;
-+ int rv = 0;
-
- SSL_TRC(2, ("%d: SSL[%d]: SecureSend: sending %d bytes",
- SSL_GETPID(), ss->fd, len));
-@@ -1191,19 +1271,15 @@ ssl_SecureSend(sslSocket *ss, const unsigned char *buf, int len, int flags)
- ss->writerThread = PR_GetCurrentThread();
- /* If any of these is non-zero, the initial handshake is not done. */
- if (!ss->firstHsDone) {
-- PRBool canFalseStart = PR_FALSE;
-+ PRBool falseStart = PR_FALSE;
- ssl_Get1stHandshakeLock(ss);
-- if (ss->version >= SSL_LIBRARY_VERSION_3_0) {
-+ if (ss->opt.enableFalseStart &&
-+ ss->version >= SSL_LIBRARY_VERSION_3_0) {
- ssl_GetSSL3HandshakeLock(ss);
-- if ((ss->ssl3.hs.ws == wait_change_cipher ||
-- ss->ssl3.hs.ws == wait_finished ||
-- ss->ssl3.hs.ws == wait_new_session_ticket) &&
-- ssl3_CanFalseStart(ss)) {
-- canFalseStart = PR_TRUE;
-- }
-+ falseStart = ss->ssl3.hs.canFalseStart;
- ssl_ReleaseSSL3HandshakeLock(ss);
- }
-- if (!canFalseStart &&
-+ if (!falseStart &&
- (ss->handshake || ss->nextHandshake || ss->securityHandshake)) {
- rv = ssl_Do1stHandshake(ss);
- }
-@@ -1228,6 +1304,17 @@ ssl_SecureSend(sslSocket *ss, const unsigned char *buf, int len, int flags)
- goto done;
- }
-
-+ if (!ss->firstHsDone) {
-+ PORT_Assert(ss->version >= SSL_LIBRARY_VERSION_3_0);
-+#ifdef DEBUG
-+ ssl_GetSSL3HandshakeLock(ss);
-+ PORT_Assert(ss->ssl3.hs.canFalseStart);
-+ ssl_ReleaseSSL3HandshakeLock(ss);
-+#endif
-+ SSL_TRC(3, ("%d: SSL[%d]: SecureSend: sending data due to false start",
-+ SSL_GETPID(), ss->fd));
-+ }
-+
- /* Send out the data using one of these functions:
- * ssl2_SendClear, ssl2_SendStream, ssl2_SendBlock,
- * ssl3_SendApplicationData
-diff --git a/nss/lib/ssl/sslsock.c b/nss/lib/ssl/sslsock.c
-index cd4a7a7..73e069b 100644
---- a/nss/lib/ssl/sslsock.c
-+++ b/nss/lib/ssl/sslsock.c
-@@ -349,6 +349,8 @@ ssl_DupSocket(sslSocket *os)
- ss->badCertArg = os->badCertArg;
- ss->handshakeCallback = os->handshakeCallback;
- ss->handshakeCallbackData = os->handshakeCallbackData;
-+ ss->canFalseStartCallback = os->canFalseStartCallback;
-+ ss->canFalseStartCallbackData = os->canFalseStartCallbackData;
- ss->pkcs11PinArg = os->pkcs11PinArg;
-
- /* Create security data */
-@@ -2341,10 +2343,14 @@ ssl_Poll(PRFileDesc *fd, PRInt16 how_flags, PRInt16 *p_out_flags)
- } else if (new_flags & PR_POLL_WRITE) {
- /* The caller is trying to write, but the handshake is
- ** blocked waiting for data to read, and the first
-- ** handshake has been sent. so do NOT to poll on write.
-+ ** handshake has been sent. So do NOT to poll on write
-+ ** unless we did false start.
- */
-- new_flags ^= PR_POLL_WRITE; /* don't select on write. */
-- new_flags |= PR_POLL_READ; /* do select on read. */
-+ if (!(ss->version >= SSL_LIBRARY_VERSION_3_0 &&
-+ ss->ssl3.hs.canFalseStart)) {
-+ new_flags ^= PR_POLL_WRITE; /* don't select on write. */
-+ }
-+ new_flags |= PR_POLL_READ; /* do select on read. */
- }
- }
- } else if ((new_flags & PR_POLL_READ) && (SSL_DataPending(fd) > 0)) {
---
-1.7.9.5
-
diff --git a/meta/recipes-support/nss/files/nss-CVE-2014-1492.patch b/meta/recipes-support/nss/files/nss-CVE-2014-1492.patch
deleted file mode 100644
index 1be8a17870..0000000000
--- a/meta/recipes-support/nss/files/nss-CVE-2014-1492.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-nss: CVE-2014-1492
-
-Upstream-Status: Backport
-
-the patch comes from:
-http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-1492
-https://bugzilla.mozilla.org/show_bug.cgi?id=903885
-
-changeset: 11063:709d4e597979
-user: Kai Engert <kaie@kuix.de>
-date: Wed Mar 05 18:38:55 2014 +0100
-summary: Bug 903885, address requests to clarify comments from wtc
-
-changeset: 11046:2ffa40a3ff55
-tag: tip
-user: Wan-Teh Chang <wtc@google.com>
-date: Tue Feb 25 18:17:08 2014 +0100
-summary: Bug 903885, fix IDNA wildcard handling v4, r=kaie
-
-changeset: 11045:15ea62260c21
-user: Christian Heimes <sites@cheimes.de>
-date: Mon Feb 24 17:50:25 2014 +0100
-summary: Bug 903885, fix IDNA wildcard handling, r=kaie
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
----
- nss/lib/certdb/certdb.c | 15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/nss/lib/certdb/certdb.c b/nss/lib/certdb/certdb.c
-index b7d22bd..91877b7 100644
---- a/nss/lib/certdb/certdb.c
-+++ b/nss/lib/certdb/certdb.c
-@@ -1381,7 +1381,7 @@ cert_TestHostName(char * cn, const char * hn)
- return rv;
- }
- } else {
-- /* New approach conforms to RFC 2818. */
-+ /* New approach conforms to RFC 6125. */
- char *wildcard = PORT_Strchr(cn, '*');
- char *firstcndot = PORT_Strchr(cn, '.');
- char *secondcndot = firstcndot ? PORT_Strchr(firstcndot+1, '.') : NULL;
-@@ -1390,14 +1390,17 @@ cert_TestHostName(char * cn, const char * hn)
- /* For a cn pattern to be considered valid, the wildcard character...
- * - may occur only in a DNS name with at least 3 components, and
- * - may occur only as last character in the first component, and
-- * - may be preceded by additional characters
-+ * - may be preceded by additional characters, and
-+ * - must not be preceded by an IDNA ACE prefix (xn--)
- */
- if (wildcard && secondcndot && secondcndot[1] && firsthndot
-- && firstcndot - wildcard == 1
-- && secondcndot - firstcndot > 1
-- && PORT_Strrchr(cn, '*') == wildcard
-+ && firstcndot - wildcard == 1 /* wildcard is last char in first component */
-+ && secondcndot - firstcndot > 1 /* second component is non-empty */
-+ && PORT_Strrchr(cn, '*') == wildcard /* only one wildcard in cn */
- && !PORT_Strncasecmp(cn, hn, wildcard - cn)
-- && !PORT_Strcasecmp(firstcndot, firsthndot)) {
-+ && !PORT_Strcasecmp(firstcndot, firsthndot)
-+ /* If hn starts with xn--, then cn must start with wildcard */
-+ && (PORT_Strncasecmp(hn, "xn--", 4) || wildcard == cn)) {
- /* valid wildcard pattern match */
- return SECSuccess;
- }
---
-1.7.9.5
-
diff --git a/meta/recipes-support/nss/nss.inc b/meta/recipes-support/nss/nss.inc
index 5afd63914b..6330f4e0a1 100644
--- a/meta/recipes-support/nss/nss.inc
+++ b/meta/recipes-support/nss/nss.inc
@@ -8,7 +8,7 @@ v3 certificates, and other security standards."
HOMEPAGE = "http://www.mozilla.org/projects/security/pki/nss/"
SECTION = "libs"
-LICENSE = "MPL-1.1 GPL-2.0 LGPL-2.1"
+LICENSE = "MPL-2.0 | (MPL-2.0 & GPL-2.0+) | (MPL-2.0 & LGPL-2.1+)"
LIC_FILES_CHKSUM = "file://nss/lib/freebl/mpi/doc/LICENSE;md5=491f158d09d948466afce85d6f1fe18f \
file://nss/lib/freebl/mpi/doc/LICENSE-MPL;md5=6bf96825e3d7ce4de25621ae886cc859"
@@ -16,17 +16,14 @@ SRC_URI = "\
file://nss-fix-support-cross-compiling.patch \
file://nss-no-rpath-for-cross-compiling.patch \
file://nss-fix-incorrect-shebang-of-perl.patch \
- file://nss-3.15.1-fix-CVE-2013-1741.patch \
- file://nss-3.15.1-fix-CVE-2013-5605.patch \
- file://nss-CVE-2014-1492.patch \
- file://nss-CVE-2013-1740.patch \
+ file://nss-fix-nsinstall-build.patch \
"
-SRC_URI_append_class-target = "\
+SRC_URI_append = "\
file://nss.pc.in \
file://signlibs.sh \
"
inherit siteinfo
-PR = "r0"
+
DEPENDS = "sqlite3 nspr zlib nss-native"
DEPENDS_class-native = "sqlite3-native nspr-native zlib-native"
RDEPENDS_${PN} = "perl"
@@ -150,7 +147,7 @@ do_install() {
done
}
-do_install_append_class-target() {
+do_install_append() {
# Create empty .chk files for the NSS libraries at build time. They could
# be regenerated at target's boot time.
for file in libsoftokn3.chk libfreebl3.chk libnssdbm3.chk; do
@@ -165,12 +162,14 @@ do_install_append_class-target() {
sed -i s:OEEXECPREFIX:${exec_prefix}:g ${D}${libdir}/pkgconfig/nss.pc
sed -i s:OELIBDIR:${libdir}:g ${D}${libdir}/pkgconfig/nss.pc
sed -i s:OEINCDIR:${includedir}/nss3:g ${D}${libdir}/pkgconfig/nss.pc
+}
+do_install_append_class-target() {
# Create a blank certificate
- mkdir -p ${D}/etc/pki/nssdb/
+ mkdir -p ${D}${sysconfdir}/pki/nssdb/
touch ./empty_password
- certutil -N -d ${D}/etc/pki/nssdb/ -f ./empty_password
- chmod 644 ${D}/etc/pki/nssdb/*.db
+ certutil -N -d ${D}${sysconfdir}/pki/nssdb/ -f ./empty_password
+ chmod 644 ${D}${sysconfdir}/pki/nssdb/*.db
rm ./empty_password
}
diff --git a/meta/recipes-support/nss/files/nss-fix-incorrect-shebang-of-perl.patch b/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
index 547594d5b6..547594d5b6 100644
--- a/meta/recipes-support/nss/files/nss-fix-incorrect-shebang-of-perl.patch
+++ b/meta/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
diff --git a/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
new file mode 100644
index 0000000000..866de07ea8
--- /dev/null
+++ b/meta/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -0,0 +1,35 @@
+Fix nss multilib build on openSUSE 11.x 32bit
+
+While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
+fail with error:
+
+* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
+
+It caused by the '-m64' option which passed to host gcc.
+
+The nsinstall was built first while nss starting to build, it only runs
+on host to install built files, it doesn't need any cross-compling or
+multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
+error.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+===================================================
+diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile
+index 1850bcb..5aee84f 100644
+--- a/nss/coreconf/nsinstall/Makefile
++++ b/nss/coreconf/nsinstall/Makefile
+@@ -18,6 +18,12 @@ INTERNAL_TOOLS = 1
+
+ include $(DEPTH)/coreconf/config.mk
+
++# nsinstall is unfit for cross-compiling/multilib-build since it was
++# always run on local host to install built files. This change intends
++# to clean the '-m64' from ARCHFLAG and LDFLAGS.
++ARCHFLAG =
++LDFLAGS =
++
+ ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
+ PROGRAM =
+ else
diff --git a/meta/recipes-support/nss/files/nss-fix-support-cross-compiling.patch b/meta/recipes-support/nss/nss/nss-fix-support-cross-compiling.patch
index f0b3550bff..f0b3550bff 100644
--- a/meta/recipes-support/nss/files/nss-fix-support-cross-compiling.patch
+++ b/meta/recipes-support/nss/nss/nss-fix-support-cross-compiling.patch
diff --git a/meta/recipes-support/nss/files/nss-no-rpath-for-cross-compiling.patch b/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
index 7661dc93a0..7661dc93a0 100644
--- a/meta/recipes-support/nss/files/nss-no-rpath-for-cross-compiling.patch
+++ b/meta/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
diff --git a/meta/recipes-support/nss/files/nss.pc.in b/meta/recipes-support/nss/nss/nss.pc.in
index 200f635c65..200f635c65 100644
--- a/meta/recipes-support/nss/files/nss.pc.in
+++ b/meta/recipes-support/nss/nss/nss.pc.in
diff --git a/meta/recipes-support/nss/files/signlibs.sh b/meta/recipes-support/nss/nss/signlibs.sh
index 1ec79f4576..1ec79f4576 100644
--- a/meta/recipes-support/nss/files/signlibs.sh
+++ b/meta/recipes-support/nss/nss/signlibs.sh
diff --git a/meta/recipes-support/nss/nss_3.15.1.bb b/meta/recipes-support/nss/nss_3.15.1.bb
deleted file mode 100644
index 7b06f00cde..0000000000
--- a/meta/recipes-support/nss/nss_3.15.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require nss.inc
-
-SRC_URI += "\
- http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_15_1_RTM/src/${BPN}-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "fb68f4d210ac9397dd0d3c39c4f938eb"
-SRC_URI[sha256sum] = "f994106a33d1f3210f4151bbb3419a1c28fd1cb545caa7dc9afdebd6da626284"
-
diff --git a/meta/recipes-support/nss/nss_3.17.3.bb b/meta/recipes-support/nss/nss_3.17.3.bb
new file mode 100644
index 0000000000..e7d0780fb8
--- /dev/null
+++ b/meta/recipes-support/nss/nss_3.17.3.bb
@@ -0,0 +1,7 @@
+require nss.inc
+
+SRC_URI += "\
+ http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_17_3_RTM/src/${BP}.tar.gz \
+"
+SRC_URI[md5sum] = "fba7489e1b26f2a0bfe5527430fd61e1"
+SRC_URI[sha256sum] = "f4d5e9035a2f84f25f35c283de3b0ff60d72e918748de25eaf017ed201fa21d5"
diff --git a/meta/recipes-support/pinentry/pinentry_0.9.0.bb b/meta/recipes-support/pinentry/pinentry_0.9.0.bb
new file mode 100644
index 0000000000..10b329b15e
--- /dev/null
+++ b/meta/recipes-support/pinentry/pinentry_0.9.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Collection of simple PIN or passphrase entry dialogs"
+DESCRIPTION = "\
+ Pinentry is a collection of simple PIN or passphrase entry dialogs which \
+ utilize the Assuan protocol as described by the aegypten project; see \
+ http://www.gnupg.org/aegypten/ for details."
+
+HOMEPAGE = "http://www.gnupg.org/related_software/pinentry/index.en.html"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=cbbd794e2a0a289b9dfcc9f513d1996e"
+
+PR = "r1"
+
+inherit autotools
+
+SRC_URI = "ftp://ftp.gnupg.org/gcrypt/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "40a05856cb3accf6679987b7899b0f5a"
+SRC_URI[sha256sum] = "90045a07ab8e1a8e1ecf5d19b51691f195525e579fa5d71d7e92c120b05490ab"
+
+EXTRA_OECONF = "--disable-rpath \
+ --disable-dependency-tracking \
+ "
+
+PACKAGECONFIG ??= "ncurses libcap"
+
+PACKAGECONFIG[ncurses] = "--enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses"
+PACKAGECONFIG[libcap] = "--with-libcap, --without-libcap, libcap"
+PACKAGECONFIG[qt4] = "--enable-pinentry-qt4, --disable-pinentry-qt4, qt4-x11"
+PACKAGECONFIG[gtk2] = "--enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0"
diff --git a/meta/recipes-support/ptest-runner/files/ptest-runner b/meta/recipes-support/ptest-runner/files/ptest-runner
index 33424134c5..c618f1148d 100644
--- a/meta/recipes-support/ptest-runner/files/ptest-runner
+++ b/meta/recipes-support/ptest-runner/files/ptest-runner
@@ -1,5 +1,5 @@
#!/bin/sh
-
+ANYFAILED=no
echo "START: $0"
for libdir in /usr/lib*
@@ -15,9 +15,13 @@ do
date "+%Y-%m-%dT%H:%M"
echo "BEGIN: $x"
cd "$x"
- ./run-ptest
+ ./run-ptest || ANYFAILED=yes
echo "END: $x"
date "+%Y-%m-%dT%H:%M"
done
done
echo "STOP: $0"
+if [ "$ANYFAILED" = "yes" ]; then
+ exit 1
+fi
+exit 0
diff --git a/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb b/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
index 7443811d8c..bc1b0a4d46 100644
--- a/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
+++ b/meta/recipes-support/ptest-runner/ptest-runner_1.0.bb
@@ -11,6 +11,8 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d
INHIBIT_DEFAULT_DEPS = "1"
+S = "${WORKDIR}"
+
do_install () {
mkdir -p ${D}${bindir}
install -m 0755 ${WORKDIR}/ptest-runner ${D}${bindir}
diff --git a/meta/recipes-support/pth/files/pth-fix-parallel.patch b/meta/recipes-support/pth/files/pth-fix-parallel.patch
new file mode 100644
index 0000000000..08edaff157
--- /dev/null
+++ b/meta/recipes-support/pth/files/pth-fix-parallel.patch
@@ -0,0 +1,48 @@
+From df06b8170745eac347acb95f9f374f257621254f Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Thu, 29 Jan 2015 18:11:00 -0800
+Subject: [PATCH] Makefile.in: fix for parallel build
+
+Fixed:
+* do_compile
+ pth_uctx.c:31:19: fatal error: pth_p.h: No such file or directory
+ #include "pth_p.h"
+ ^
+compilation terminated.
+make: *** [pth_uctx.lo] Error 1
+
+* do_install:
+ cp: cannot create regular file `image/usr/lib/pkgconfig/#INST@15507#': No such file or directory
+
+Upstream-Status: Pending
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.in | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index de0390d..381a0ee 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -219,7 +219,8 @@ test_pthread: test_pthread.o test_common.o libpthread.la
+
+ # install the package
+ install: all-for-install
+- @$(MAKE) $(MKFLAGS) install-dirs install-pth @INSTALL_PTHREAD@ install-pkgconfigDATA
++ @$(MAKE) $(MKFLAGS) install-dirs
++ @$(MAKE) $(MKFLAGS) install-pth @INSTALL_PTHREAD@ install-pkgconfigDATA
+ @touch .done-install >/dev/null 2>&1 || $(TRUE)
+ @$(MAKE) $(MKFLAGS) what-next
+ install-dirs:
+@@ -432,7 +433,7 @@ TAGS:
+ ## (AUTOMATICALLY UPDATED - DO NOT EDIT)
+ ##
+
+-$(LOBJS): Makefile
++$(LOBJS): Makefile pth_p.h
+
+ # DO NOT REMOVE
+ pth_attr.lo: pth_attr.c pth_p.h pth_vers.c pth.h pth_acdef.h pth_acmac.h
+--
+1.7.9.5
+
diff --git a/meta/recipes-support/pth/pth_2.0.7.bb b/meta/recipes-support/pth/pth_2.0.7.bb
index 416e788e5d..9037769b79 100644
--- a/meta/recipes-support/pth/pth_2.0.7.bb
+++ b/meta/recipes-support/pth/pth_2.0.7.bb
@@ -13,13 +13,13 @@ python __anonymous () {
}
SRC_URI = "${GNU_MIRROR}/pth/pth-${PV}.tar.gz \
- file://pth-add-pkgconfig-support.patch"
+ file://pth-add-pkgconfig-support.patch \
+ file://pth-fix-parallel.patch \
+ "
SRC_URI[md5sum] = "9cb4a25331a4c4db866a31cbe507c793"
SRC_URI[sha256sum] = "72353660c5a2caafd601b20e12e75d865fd88f6cf1a088b306a3963f0bc77232"
-PARALLEL_MAKE=""
-
BINCONFIG = "${bindir}/pth-config"
inherit autotools binconfig-disabled pkgconfig
diff --git a/meta/recipes-support/serf/serf/env.patch b/meta/recipes-support/serf/serf/env.patch
new file mode 100644
index 0000000000..9d073e9abf
--- /dev/null
+++ b/meta/recipes-support/serf/serf/env.patch
@@ -0,0 +1,28 @@
+'scons' cleans the environment which breaks ccache builds because
+CCACHEDIR can point to an unexpected location:
+
+| ccache arm-linux-gnueabi-gcc ... context.c
+| ccache: failed to create .../serf/1.3.6-r0/.home/.ccache (No such file or directory)
+
+Issue is described in
+
+ http://www.scons.org/wiki/ImportingEnvironmentSettings
+
+and because 'bitbake' cleans environment we can pass it completely
+instead of trying to enumerate needed env.
+
+Upstream-Status: Inappropriate
+
+
+Index: serf-1.3.6/SConstruct
+===================================================================
+--- serf-1.3.6.orig/SConstruct
++++ serf-1.3.6/SConstruct
+@@ -149,6 +149,7 @@ if sys.platform == 'win32':
+ env = Environment(variables=opts,
+ tools=('default', 'textfile',),
+ CPPPATH=['.', ],
++ ENV = os.environ,
+ )
+
+ env.Append(BUILDERS = {
diff --git a/meta/recipes-support/serf/serf/norpath.patch b/meta/recipes-support/serf/serf/norpath.patch
new file mode 100644
index 0000000000..380f5d00d2
--- /dev/null
+++ b/meta/recipes-support/serf/serf/norpath.patch
@@ -0,0 +1,42 @@
+The RPATH handling in serf is all wrong for us and we don't need it
+anyway so hack around it by removing this for now.
+
+Upstream-Status: Inappropriate
+
+RP 2014/7/17
+
+Index: serf-1.3.6/SConstruct
+===================================================================
+--- serf-1.3.6.orig/SConstruct 2014-07-17 19:57:57.724389150 +0000
++++ serf-1.3.6/SConstruct 2014-07-17 20:04:21.784399616 +0000
+@@ -218,8 +218,7 @@
+ else:
+ LIBNAMESTATIC = 'serf-${MAJOR}'
+
+-env.Append(RPATH=libdir,
+- PDB='${TARGET.filebase}.pdb')
++env.Append(PDB='${TARGET.filebase}.pdb')
+
+ #for i in env:
+ # print(str(env[i]))
+@@ -371,12 +370,6 @@
+ if sys.platform == 'win32':
+ env.Append(CPPDEFINES=['SERF_HAVE_SSPI'])
+
+-# On some systems, the -R values that APR describes never make it into actual
+-# RPATH flags. We'll manually map all directories in LIBPATH into new
+-# flags to set RPATH values.
+-for d in env['LIBPATH']:
+- env.Append(RPATH=':'+d)
+-
+ # Set up the construction of serf-*.pc
+ pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,),
+ env.File('build/serf.pc.in'),
+@@ -446,7 +439,6 @@
+ ENV={'PATH' : os.environ['PATH']}))
+
+ # Find the (dynamic) library in this directory
+-tenv.Replace(RPATH=thisdir)
+ tenv.Prepend(LIBS=[LIBNAMESTATIC, ],
+ LIBPATH=[thisdir, ])
+
diff --git a/meta/recipes-support/serf/serf_1.3.8.bb b/meta/recipes-support/serf/serf_1.3.8.bb
new file mode 100644
index 0000000000..aa7918b5c3
--- /dev/null
+++ b/meta/recipes-support/serf/serf_1.3.8.bb
@@ -0,0 +1,26 @@
+
+SRC_URI = "http://serf.googlecode.com/svn/src_releases/serf-${PV}.tar.bz2 \
+ file://norpath.patch \
+ file://env.patch"
+
+SRC_URI[md5sum] = "2e4efe57ff28cb3202a112e90f0c2889"
+SRC_URI[sha256sum] = "e0500be065dbbce490449837bb2ab624e46d64fc0b090474d9acaa87c82b2590"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+DEPENDS = "python-scons-native openssl apr apr-util util-linux expat"
+
+do_compile() {
+ ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} PREFIX=${prefix} \
+ CC="${CC}" \
+ APR=`which apr-1-config` APU=`which apu-1-config` \
+ CFLAGS="${CFLAGS}" LINKFLAGS="${LDFLAGS}" \
+ OPENSSL="${STAGING_EXECPREFIXDIR}"
+}
+
+do_install() {
+ ${STAGING_BINDIR_NATIVE}/scons PREFIX=${D}${prefix} LIBDIR=${D}${libdir} install
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_1.2.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_1.2.bb
deleted file mode 100644
index 11fd6ded64..0000000000
--- a/meta/recipes-support/shared-mime-info/shared-mime-info_1.2.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require shared-mime-info.inc
-
-SRC_URI[md5sum] = "8f90f3f2b8478fa47e70678d34013f99"
-SRC_URI[sha256sum] = "a5516ae241b95a948a6749b1cbf65dc20c3bb563a73cc7bedb7065933788bb78"
-
-SRC_URI =+ "file://parallelmake.patch \
- file://install-data-hook.patch"
diff --git a/meta/recipes-support/shared-mime-info/shared-mime-info_1.3.bb b/meta/recipes-support/shared-mime-info/shared-mime-info_1.3.bb
new file mode 100644
index 0000000000..4bd81cd831
--- /dev/null
+++ b/meta/recipes-support/shared-mime-info/shared-mime-info_1.3.bb
@@ -0,0 +1,7 @@
+require shared-mime-info.inc
+
+SRC_URI[md5sum] = "743720bc4803dd69f55449013d350f31"
+SRC_URI[sha256sum] = "4fd49c8c7ca9ecb10c59845094a18dbb73b69c72b4bad3db5e864f2111cb323a"
+
+SRC_URI =+ "file://parallelmake.patch \
+ file://install-data-hook.patch"
diff --git a/meta/recipes-support/sqlite/sqlite3_3.8.4.3.bb b/meta/recipes-support/sqlite/sqlite3_3.8.7.4.bb
index 938829780a..4c73d304da 100644
--- a/meta/recipes-support/sqlite/sqlite3_3.8.4.3.bb
+++ b/meta/recipes-support/sqlite/sqlite3_3.8.7.4.bb
@@ -10,10 +10,10 @@ PE = "3"
SQLITE_PV = "${@sqlite_download_version(d)}"
SRC_URI = "http://www.sqlite.org/2014/sqlite-autoconf-${SQLITE_PV}.tar.gz"
-S = "${WORKDIR}/sqlite-autoconf-${SQLITE_PV}"
+SRC_URI[md5sum] = "33bb8db0038317ce1b0480ca1185c7ba"
+SRC_URI[sha256sum] = "86370f139405fdfe03334fd618171a74e50f589f17ccbe5933361ed1f58359ec"
-SRC_URI[md5sum] = "0f5459cde43cb269e5120ecd2c671ced"
-SRC_URI[sha256sum] = "e0e995e23a324a5d6ae95d8a836240382a4d7475d09707fc469c8cafcbd48d65"
+S = "${WORKDIR}/sqlite-autoconf-${SQLITE_PV}"
# Provide column meta-data API
BUILD_CFLAGS += "-DSQLITE_ENABLE_COLUMN_METADATA"
diff --git a/meta/recipes-support/taglib/taglib_1.9.1.bb b/meta/recipes-support/taglib/taglib_1.9.1.bb
index 55e345f1cc..1f278144e3 100644
--- a/meta/recipes-support/taglib/taglib_1.9.1.bb
+++ b/meta/recipes-support/taglib/taglib_1.9.1.bb
@@ -12,8 +12,6 @@ SRC_URI = "http://taglib.github.io/releases/${BP}.tar.gz"
SRC_URI[md5sum] = "0d35df96822bbd564c5504cb3c2e4d86"
SRC_URI[sha256sum] = "72d371cd1419a87ae200447a53bff2be219283071e80fd12337928cc967dc71a"
-S = "${WORKDIR}/${BP}"
-
BINCONFIG = "${bindir}/taglib-config"
inherit cmake pkgconfig binconfig-disabled
@@ -27,6 +25,6 @@ do_configure_prepend () {
rm -f ${S}/admin/ltmain.sh
rm -f ${S}/admin/libtool.m4.in
# Don't have a floating dependeny on boost
- sed -i -e "s/atomic.hpp/atomic-not-exist.hpp/" ${S}/ConfigureChecks.cmake
+ sed -i -e "s/atomic.hpp/atomic-not-exist.hpp/" ${S}/ConfigureChecks.cmake ${S}/taglib/toolkit/trefcounter.cpp
}