diff --git a/.hgtags b/.hgtags index 4faa12f2..4b4ea1ae 100644 --- a/.hgtags +++ b/.hgtags @@ -14,6 +14,7 @@ a935d577fc7dd9c2c87761c9c702805da6ce1e51 RELEASE_193 b0353253b0b3d062eb5adb50d4b665a96620da45 RELEASE_195 b82ef51896199484afe5b0553af7d1e59b7ce428 BRANCHPOINT_FOR_upx2.hg c2e0cd4d621b047f254f2def42132a03683ff52c RELEASE_192 +c9a983b7da9d4a2311f74366478348412cac2986 RELEASE_305 d276aa09033c24d0981bc3f4fee5628aecc988ad RELEASE_290 eb1ce56dce7dd1835964362470610925963b9043 RELEASE_110 ed96891ef795bceec6b7ff3ca1ca7764431bfb39 RELEASE_191 diff --git a/Makefile b/Makefile index 459d6f6d..8165c3aa 100644 --- a/Makefile +++ b/Makefile @@ -38,13 +38,5 @@ endif $(MAKE) -C doc $@ -ifneq ($(wildcard .hg/.),) -# automatically generate ChangeLog from local Mercurial repo -ChangeLog: - hg log --style=changelog > $@ -.PHONY: ChangeLog -endif - - .PHONY: default all mostlyclean clean distclean maintainer-clean diff --git a/NEWS b/NEWS index b42ebe91..a1ee9a37 100644 --- a/NEWS +++ b/NEWS @@ -2,13 +2,15 @@ User visible changes for UPX ================================================================== +Changes in 3.06 (XX XXX XXXX): + Changes in 3.05 (27 Apr 2010): - * Withdraw support for shared libraries on Darwin (Apple Mac OS X) - because upx does not understand enough about .dylib. * i386-linux and amd64-linux support shared libraries (DT_INIT must exist, all info needed by runtime loader must be first in .text, etc.) * Linux /proc/self/exe now is preserved by default, by leaving behind one page. New compress-time option --unmap-all-pages is available. + * Withdraw support for shared libraries on Darwin (Apple Mac OS X) + because upx does not understand enough about .dylib. * bug fixes Changes in 3.04 (27 Sep 2009): diff --git a/README.SRC b/README.SRC index 792c3d7a..f241791f 100644 --- a/README.SRC +++ b/README.SRC @@ -98,7 +98,7 @@ If you want to modify the stub sources you'll also need - A number of cross-assemblers and cross-compilers - precompiled binaries for i386-linux hosts are available from - http://sourceforge.net/project/showfiles.php?group_id=2331 + http://sourceforge.net/projects/upx/files/upx-tools/20060823/ Misc. notes diff --git a/src/compress_lzma.cpp b/src/compress_lzma.cpp index 2cc80072..21782527 100644 --- a/src/compress_lzma.cpp +++ b/src/compress_lzma.cpp @@ -546,7 +546,7 @@ int upx_lzma_compress ( const upx_bytep src, unsigned src_len, } error: - *dst_len = os.b_pos; + *dst_len = (unsigned) os.b_pos; //printf("\nlzma_compress: %d: %u %u %u %u %u, %u - > %u\n", r, res->pos_bits, res->lit_pos_bits, res->lit_context_bits, res->dict_size, res->num_probs, src_len, *dst_len); //printf("%u %u %u\n", is.__m_RefCount, os.__m_RefCount, progress.__m_RefCount); return r; diff --git a/src/conf.h b/src/conf.h index f956a217..30294cfe 100644 --- a/src/conf.h +++ b/src/conf.h @@ -36,6 +36,21 @@ // ACC **************************************************************************/ +#if (defined(_WIN32) || defined(_WIN64)) && defined(_MSC_VER) +#ifndef _CRT_NONSTDC_NO_DEPRECATE +#define _CRT_NONSTDC_NO_DEPRECATE 1 +#endif +#ifndef _CRT_NONSTDC_NO_WARNINGS +#define _CRT_NONSTDC_NO_WARNINGS 1 +#endif +#ifndef _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_DEPRECATE 1 +#endif +#ifndef _CRT_SECURE_NO_WARNINGS +#define _CRT_SECURE_NO_WARNINGS 1 +#endif +#endif + #include "miniacc.h" #if ((ACC_OS_WIN32 || ACC_OS_WIN64) && ACC_CC_MWERKS) && defined(__MSL__) # undef HAVE_UTIME_H /* this pulls in */ diff --git a/src/help.cpp b/src/help.cpp index 879af804..95fd8eca 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -51,8 +51,9 @@ void show_head(void) fg = con_fg(f,FG_GREEN); con_fprintf(f, " Ultimate Packer for eXecutables\n" - " Copyright (C) 1996 - 2009\n" + " Copyright (C) 1996 - %s\n" "UPX %-10s Markus Oberhumer, Laszlo Molnar & John Reiser %14s\n\n", + UPX_VERSION_YEAR, #if (ACC_OS_DOS16 || ACC_OS_DOS32) V("d"), #elif (ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64) @@ -113,6 +114,7 @@ struct PackerNames { PackerNames *self = (PackerNames *) user; self->add(p); + delete p; p = NULL; return NULL; } static int __acc_cdecl_qsort cmp_fname(const void *a, const void *b) { diff --git a/src/linker.cpp b/src/linker.cpp index fe5439cc..40398ec5 100644 --- a/src/linker.cpp +++ b/src/linker.cpp @@ -469,7 +469,7 @@ int ElfLinker::getSection(const char *sname, int *slen) const const Section *section = findSection(sname); if (slen) *slen = section->size; - return section->output - output; + return (int) (section->output - output); } int ElfLinker::getSectionSize(const char *sname) const diff --git a/src/main.cpp b/src/main.cpp index bf56418c..66959030 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1351,27 +1351,40 @@ void upx_sanity_check(void) assert(TestBELE::test()); assert(TestBELE::test()); { - static const unsigned char dd[32] = { 0, 0, 0, 0, 0, 0, 0, - 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, - 0, 0, 0, 0, - 0x7f, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78, + static const unsigned char dd[32] +#if 1 && (ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE) && defined(__ELF__) + __attribute__((__aligned__(16))) +#endif + = { 0, 0, 0, 0, 0, 0, 0, + 0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8, + 0, 0, 0, 0, + 0x7f, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78, 0, 0, 0, 0, 0 }; const unsigned char *d; + const N_BELE_RTP::AbstractPolicy *bele; d = dd + 7; assert(upx_adler32(d, 4) == 0x09f003f7); assert(upx_adler32(d, 4, 0) == 0x09ec03f6); assert(upx_adler32(d, 4, 1) == 0x09f003f7); + bele = &N_BELE_RTP::be_policy; assert(get_be16(d) == 0xfffe); + assert(bele->get16(d) == 0xfffe); assert(get_be16_signed(d) == -2); assert(get_be24(d) == 0xfffefd); + assert(bele->get24(d) == 0xfffefd); assert(get_be24_signed(d) == -259); assert(get_be32(d) == 0xfffefdfc); + assert(bele->get32(d) == 0xfffefdfc); assert(get_be32_signed(d) == -66052); + bele = &N_BELE_RTP::le_policy; assert(get_le16(d) == 0xfeff); + assert(bele->get16(d) == 0xfeff); assert(get_le16_signed(d) == -257); assert(get_le24(d) == 0xfdfeff); + assert(bele->get24(d) == 0xfdfeff); assert(get_le24_signed(d) == -131329); assert(get_le32(d) == 0xfcfdfeff); + assert(bele->get32(d) == 0xfcfdfeff); assert(get_le32_signed(d) == -50462977); assert(get_le64_signed(d) == ACC_INT64_C(-506097522914230529)); assert(find_be16(d, 2, 0xfffe) == 0); diff --git a/src/miniacc.h b/src/miniacc.h index 961cca11..1d53268a 100644 --- a/src/miniacc.h +++ b/src/miniacc.h @@ -41,7 +41,7 @@ #ifndef __ACC_H_INCLUDED #define __ACC_H_INCLUDED 1 -#define ACC_VERSION 20100205L +#define ACC_VERSION 20100419L #if defined(__CYGWIN32__) && !defined(__CYGWIN__) # define __CYGWIN__ __CYGWIN32__ #endif @@ -758,6 +758,9 @@ #elif (UINT_MAX <= ACC_0xffffL) && defined(__AVR__) # define ACC_ARCH_AVR 1 # define ACC_INFO_ARCH "avr" +#elif defined(__avr32__) || defined(__AVR32__) +# define ACC_ARCH_AVR32 1 +# define ACC_INFO_ARCH "avr32" #elif defined(__bfin__) # define ACC_ARCH_BLACKFIN 1 # define ACC_INFO_ARCH "blackfin" @@ -1316,9 +1319,11 @@ extern "C" { #elif !defined(ACC_ABI_BIG_ENDIAN) && !defined(ACC_ABI_LITTLE_ENDIAN) #if (ACC_ARCH_ALPHA) && (ACC_ARCH_CRAY_MPP) # define ACC_ABI_BIG_ENDIAN 1 +#elif (ACC_ARCH_IA64) && (ACC_OS_POSIX_LINUX || ACC_OS_WIN64) +# define ACC_ABI_LITTLE_ENDIAN 1 #elif (ACC_ARCH_ALPHA || ACC_ARCH_AMD64 || ACC_ARCH_BLACKFIN || ACC_ARCH_CRIS || ACC_ARCH_I086 || ACC_ARCH_I386 || ACC_ARCH_MSP430) # define ACC_ABI_LITTLE_ENDIAN 1 -#elif (ACC_ARCH_M68K || ACC_ARCH_S390) +#elif (ACC_ARCH_AVR32 || ACC_ARCH_M68K || ACC_ARCH_S390) # define ACC_ABI_BIG_ENDIAN 1 #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) # if (__LITTLE_ENDIAN__ == 1) @@ -1669,7 +1674,7 @@ extern "C" { # endif #endif #if !defined(ACC_UNCONST_CAST) -# if 1 && defined(__cplusplus) +# if 0 && defined(__cplusplus) # define ACC_UNCONST_CAST(t,e) (const_cast (e)) # elif (ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE) # define ACC_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((acc_uintptr_t) ((const void *) (e)))))) @@ -2312,8 +2317,12 @@ extern "C" { # undef HAVE_SNPRINTF # undef HAVE_VSNPRINTF #elif (ACC_CC_INTELC) +# ifndef snprintf # define snprintf _snprintf +# endif +# ifndef vsnprintf # define vsnprintf _vsnprintf +# endif #elif (ACC_CC_LCCWIN32) # define utime _utime #elif (ACC_CC_MSC) @@ -2324,8 +2333,16 @@ extern "C" { # undef HAVE_SNPRINTF # undef HAVE_VSNPRINTF # elif (_MSC_VER < 1500) +# ifndef snprintf # define snprintf _snprintf +# endif +# ifndef vsnprintf # define vsnprintf _vsnprintf +# endif +# else +# ifndef snprintf +# define snprintf _snprintf +# endif # endif # if ((_MSC_VER < 800) && ACC_OS_WIN16) # undef HAVE_ALLOCA diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index 8a542649..8e432d78 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -167,7 +167,7 @@ PackLinuxElf::PackLinuxElf(InputFile *f) PackLinuxElf::~PackLinuxElf() { - delete[] file_image; + delete[] file_image; file_image = NULL; } void PackLinuxElf::pack3(OutputFile *fo, Filter &ft) @@ -400,6 +400,7 @@ PackLinuxElf32::PackLinuxElf32(InputFile *f) shstrtab(NULL), n_elf_shnum(0), sec_strndx(NULL), sec_dynsym(NULL), sec_dynstr(NULL) { + memset(&ehdri, 0, sizeof(ehdri)); if (f) { f->seek(0, SEEK_SET); f->readx(&ehdri, sizeof(ehdri)); @@ -408,7 +409,7 @@ PackLinuxElf32::PackLinuxElf32(InputFile *f) PackLinuxElf32::~PackLinuxElf32() { - delete[] phdri; + delete[] phdri; phdri = NULL; } PackLinuxElf64::PackLinuxElf64(InputFile *f) @@ -417,6 +418,7 @@ PackLinuxElf64::PackLinuxElf64(InputFile *f) shstrtab(NULL), n_elf_shnum(0), sec_strndx(NULL), sec_dynsym(NULL), sec_dynstr(NULL) { + memset(&ehdri, 0, sizeof(ehdri)); if (f) { f->seek(0, SEEK_SET); f->readx(&ehdri, sizeof(ehdri)); @@ -425,7 +427,7 @@ PackLinuxElf64::PackLinuxElf64(InputFile *f) PackLinuxElf64::~PackLinuxElf64() { - delete[] phdri; + delete[] phdri; phdri = NULL; } Linker* PackLinuxElf64amd::newLinker() const @@ -2033,9 +2035,6 @@ void PackLinuxElf64::pack2(OutputFile *fo, Filter &ft) throwEOFException(); } -#include "bele.h" -using namespace N_BELE_CTP; - // Filter 0x50, 0x51 assume HostPolicy::isLE static const int * ARM_getFilters(bool const isBE) diff --git a/src/p_mach.cpp b/src/p_mach.cpp index e3e5903f..c8c7c83e 100644 --- a/src/p_mach.cpp +++ b/src/p_mach.cpp @@ -861,6 +861,8 @@ unsigned PackMachBase::find_SEGMENT_gap( } unsigned const hi = msegcmd[k].fileoff + msegcmd[k].filesize; unsigned lo = ph.u_file_size; + if (lo < hi) + throwCantPack("bad input: LC_SEGMENT beyond end-of-file"); unsigned j = k; for (;;) { // circular search, optimize for adjacent ascending ++j; diff --git a/src/p_vmlinx.cpp b/src/p_vmlinx.cpp index 52a14836..d154bf3d 100644 --- a/src/p_vmlinx.cpp +++ b/src/p_vmlinx.cpp @@ -986,11 +986,14 @@ void PackVmlinuxPPC32::buildLoader(const Filter *ft) addFilter32(ft->id); } addLoader("LINUX030", NULL); - if (ph.method == M_NRV2E_LE32) addLoader("NRV2E", NULL); - else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B", NULL); - else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D", NULL); + if (ph.method == M_NRV2E_LE32) addLoader("NRV2E,NRV_TAIL", NULL); + else if (ph.method == M_NRV2B_LE32) addLoader("NRV2B,NRV_TAIL", NULL); + else if (ph.method == M_NRV2D_LE32) addLoader("NRV2D,NRV_TAIL", NULL); else if (M_IS_LZMA(ph.method)) addLoader("LZMA_ELF00,LZMA_DEC10,LZMA_DEC30", NULL); else throwBadLoader(); + if (hasLoaderSection("CFLUSH")) + addLoader("CFLUSH"); + addLoader("IDENTSTR,UPX1HEAD", NULL); } diff --git a/src/packmast.cpp b/src/packmast.cpp index a1142830..7855733f 100644 --- a/src/packmast.cpp +++ b/src/packmast.cpp @@ -162,54 +162,72 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio { if ((p = func(new PackDjgpp2(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackTmt(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackWcle(f), user)) != NULL) return p; + delete p; p = NULL; #if 0 if ((p = func(new PackVxd(f), user)) != NULL) return p; + delete p; p = NULL; #endif #if 0 if ((p = func(new PackW16Ne(f), user)) != NULL) return p; + delete p; p = NULL; #endif if ((p = func(new PackW32Pe(f), user)) != NULL) return p; + delete p; p = NULL; } if ((p = func(new PackArmPe(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackExe(f), user)) != NULL) return p; + delete p; p = NULL; // // atari // if ((p = func(new PackTos(f), user)) != NULL) return p; + delete p; p = NULL; // // linux kernel // if ((p = func(new PackVmlinuxARMEL(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuxARMEB(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuxPPC32(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuxAMD64(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuxI386(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuzI386(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackBvmlinuzI386(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackVmlinuzARMEL(f), user)) != NULL) return p; + delete p; p = NULL; #if 0 if ((p = func(new PackElks8086(f), user)) != NULL) return p; + delete p; p = NULL; #endif // @@ -222,75 +240,101 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio { if ((p = func(new PackLinuxI386sep(f), user)) != NULL) return p; + delete p; p = NULL; } #endif if (o->o_unix.use_ptinterp) { if ((p = func(new PackLinuxElf32x86interp(f), user)) != NULL) return p; + delete p; p = NULL; } if ((p = func(new PackFreeBSDElf32x86(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackNetBSDElf32x86(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackOpenBSDElf32x86(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32x86(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf64amd(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32armLe(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32armBe(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32ppc(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32mipsel(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxElf32mipseb(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackLinuxI386sh(f), user)) != NULL) return p; + delete p; p = NULL; } if ((p = func(new PackBSDI386(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackMachFat(f), user)) != NULL) // cafebabe conflict return p; + delete p; p = NULL; if ((p = func(new PackLinuxI386(f), user)) != NULL) // cafebabe conflict return p; + delete p; p = NULL; // // psone // if ((p = func(new PackPs1(f), user)) != NULL) return p; + delete p; p = NULL; // // .sys and .com // if ((p = func(new PackSys(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackCom(f), user)) != NULL) return p; + delete p; p = NULL; // Mach (MacOS X PowerPC) if ((p = func(new PackMachPPC32(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackMachI386(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackMachAMD64(f), user)) != NULL) return p; + delete p; p = NULL; if ((p = func(new PackMachARMEL(f), user)) != NULL) return p; + delete p; p = NULL; // 2010-03-12 omit these because PackMachBase::pack4dylib (p_mach.cpp) // does not understand what the Darwin (Apple Mac OS X) dynamic loader // assumes about .dylib file structure. //if ((p = func(new PackDylibI386(f), user)) != NULL) // return p; + //delete p; p = NULL; //if ((p = func(new PackDylibPPC32(f), user)) != NULL) // return p; + //delete p; p = NULL; //if ((p = func(new PackDylibAMD64(f), user)) != NULL) // return p; + //delete p; p = NULL; return NULL; } diff --git a/src/pefile.h b/src/pefile.h index 3330a636..22baaa19 100644 --- a/src/pefile.h +++ b/src/pefile.h @@ -214,7 +214,7 @@ protected: DLL_FLAG = 0x2000, FBIG_ENDIAN = 0x8000 }; - + //NEW: DLL characteristics definition for ASLR, ... - Stefan Widmann enum { IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE = 0x0040, diff --git a/src/stub/powerpc-linux.kernel.vmlinux.h b/src/stub/powerpc-linux.kernel.vmlinux.h index cbfcfb09..c1218700 100644 --- a/src/stub/powerpc-linux.kernel.vmlinux.h +++ b/src/stub/powerpc-linux.kernel.vmlinux.h @@ -1,5 +1,5 @@ /* powerpc-linux.kernel.vmlinux.h - created from powerpc-linux.kernel.vmlinux.bin, 8805 (0x2265) bytes + created from powerpc-linux.kernel.vmlinux.bin, 9082 (0x237a) bytes This file is part of the UPX executable compressor. @@ -31,15 +31,15 @@ */ -#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_SIZE 8805 -#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_ADLER32 0x2f3be19d -#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_CRC32 0xef9b7f53 +#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_SIZE 9082 +#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_ADLER32 0x1b691f11 +#define STUB_POWERPC_LINUX_KERNEL_VMLINUX_CRC32 0x99104672 -unsigned char stub_powerpc_linux_kernel_vmlinux[8805] = { +unsigned char stub_powerpc_linux_kernel_vmlinux[9082] = { /* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 0, 1, 0, 20, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 24,188, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, -/* 0x0030 */ 0, 23, 0, 20, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 25, 12, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, +/* 0x0030 */ 0, 25, 0, 22, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 0, 40, 6, 0,208, 76,130, 0, 32, 84,132,240,191, /* 0x0050 */ 77,130, 0, 32, 60, 0, 0, 16,124, 4, 0, 64, 65,128, 0, 8, /* 0x0060 */ 124, 4, 3,120, 56,165, 1, 32,124,103, 27,120, 56, 99,255,252, @@ -100,491 +100,508 @@ unsigned char stub_powerpc_linux_kernel_vmlinux[8805] = { /* 0x03d0 */ 125, 41, 72, 21, 65,162,255, 33,125, 8, 65, 20, 32,234,250,255, /* 0x03e0 */ 57, 8, 0, 2,125, 8, 1,148,124,234, 42, 20,125, 9, 3,166, /* 0x03f0 */ 141, 7, 0, 1,157, 5, 0, 1, 66, 0,255,248, 56,224, 1, 0, -/* 0x0400 */ 124, 7, 41,236,124, 7, 26, 44, 75,255,255, 16, 40, 7, 0, 14, -/* 0x0410 */ 64,130, 0, 32,124, 8, 2,166,124,201, 51,120,129, 6, 0, 0, -/* 0x0420 */ 124,167, 43,120, 56,164,255,254, 56,131, 0, 2,144, 1, 0, 8, -/* 0x0430 */ 136, 3, 0, 0, 84, 11,232,254, 84, 2, 7,126, 56, 96,250, 0, -/* 0x0440 */ 124, 99, 88, 48, 56, 99,241,124,124, 38, 11,120,124, 33, 26, 20, -/* 0x0450 */ 84, 33, 0, 52, 56, 0, 0, 0,124,195, 51,120,144, 9, 0, 0, -/* 0x0460 */ 148, 3,255,252,124, 1, 24, 64, 65,128,255,248,144,193, 0, 0, -/* 0x0470 */ 136, 4,255,255,144,225, 0, 8, 56,193, 0, 16,145, 33, 0, 12, -/* 0x0480 */ 56, 97, 0, 20, 84, 11,225, 62, 84, 0, 7, 62,152, 67, 0, 2, -/* 0x0490 */ 153, 99, 0, 1,152, 3, 0, 0,124, 8, 2,166,148, 33,255,160, -/* 0x04a0 */ 189,193, 0, 24,144, 1, 0,100, 59, 32, 0, 0,137, 67, 0, 2, -/* 0x04b0 */ 137, 99, 0, 1,138, 67, 0, 0,147, 38, 0, 0,147, 41, 0, 0, -/* 0x04c0 */ 136, 3, 0, 1,125, 40, 3,166,124, 18, 2, 20, 57, 32, 3, 0, -/* 0x04d0 */ 125, 41, 0, 48, 56, 9, 7, 54,127,153, 0, 64, 57, 32, 0, 1, -/* 0x04e0 */ 125, 43, 88, 48,125, 41, 80, 48, 57, 41,255,255, 57,107,255,255, -/* 0x04f0 */ 145, 33, 0, 8,124,206, 51,120,124,147, 35,120,124,245, 59,120, -/* 0x0500 */ 125, 20, 67,120,145, 97, 0, 12, 59, 3, 0, 4, 59,224, 0, 0, -/* 0x0510 */ 58,224, 0, 0, 59, 64, 0, 1, 58, 32, 0, 1, 58, 0, 0, 1, -/* 0x0520 */ 57,224, 0, 1, 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166, -/* 0x0530 */ 57, 96, 4, 0, 85, 32, 8, 60,125,120, 3, 46, 57, 41, 0, 1, -/* 0x0540 */ 66, 0,255,244,127,179, 42, 20,126,108,155,120, 56,160, 0, 0, -/* 0x0550 */ 57, 0,255,255, 57, 96, 0, 0,127,140,232, 0, 57,107, 0, 1, -/* 0x0560 */ 47, 11, 0, 4, 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0, -/* 0x0570 */ 57,140, 0, 1,125, 37, 3,120, 64,153,255,224,127,153,160, 64, -/* 0x0580 */ 64,156, 8,100, 62,192, 0,255, 98,214,255,255,128, 1, 0, 8, -/* 0x0590 */ 127,136,176, 64,127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20, -/* 0x05a0 */ 84, 6, 8, 60, 65,157, 0, 32,127,140,232, 0, 65,158, 8, 88, -/* 0x05b0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, -/* 0x05c0 */ 57,140, 0, 1,124,230,194, 46, 85, 0,170,254,125, 64, 57,214, -/* 0x05d0 */ 127,133, 80, 64, 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6, -/* 0x05e0 */ 127, 41, 0, 56, 32, 18, 0, 8,127,224, 6, 48,125, 41,144, 48, -/* 0x05f0 */ 125, 41, 2, 20, 29, 41, 6, 0, 32, 7, 8, 0,124, 0, 46,112, -/* 0x0600 */ 124, 7, 2, 20,125, 56, 74, 20,124, 6,195, 46,125, 72, 83,120, -/* 0x0610 */ 56,201, 14,108, 56, 96, 0, 1, 64,157, 0,180,124, 26,200, 80, -/* 0x0620 */ 63, 96, 0,255,127,245, 0,174, 99,123,255,255, 87,255, 8, 60, -/* 0x0630 */ 87,252, 5,238,127,136,216, 64, 87,128, 8, 60, 84,100, 8, 60, -/* 0x0640 */ 124, 6, 2, 20,127, 12,232, 0, 84,169, 64, 46,124,224, 34, 20, -/* 0x0650 */ 65,157, 0, 24, 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46, -/* 0x0660 */ 57,140, 0, 1,125, 37, 3,120,161,103, 2, 0, 85, 0,170,254, -/* 0x0670 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, -/* 0x0680 */ 85,105,217,126,124, 11, 2, 20, 47, 28, 0, 0,125,105, 88, 80, -/* 0x0690 */ 124,131, 35,120,125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0, -/* 0x06a0 */ 125, 72, 83,120, 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0, -/* 0x06b0 */ 124,170, 40, 80, 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255, -/* 0x06c0 */ 64,157,255,108, 47,131, 0,255, 65,157, 0,132, 63,224, 0,255, -/* 0x06d0 */ 99,255,255,255,127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, -/* 0x06e0 */ 84,169, 64, 46,124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24, -/* 0x06f0 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120, -/* 0x0700 */ 125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, -/* 0x0710 */ 127,133, 80, 64,124, 0, 46,112, 85,105,217,126,124, 11, 2, 20, -/* 0x0720 */ 125, 10, 64, 80,125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120, -/* 0x0730 */ 124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46, -/* 0x0740 */ 56,103, 0, 1, 47,131, 0,255, 64,157,255,140, 47,151, 0, 3, -/* 0x0750 */ 84,127, 6, 62,127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12, -/* 0x0760 */ 58,224, 0, 0, 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12, -/* 0x0770 */ 58,247,255,253, 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96, -/* 0x0780 */ 125, 10, 64, 80,127,136,176, 64, 84,224,217,126,124, 0, 56, 80, -/* 0x0790 */ 86,233, 8, 60,124, 6,195, 46,124,170, 40, 80,124,248, 74, 20, -/* 0x07a0 */ 65,157, 0, 32,127,140,232, 0, 65,158, 6, 92,137, 44, 0, 0, -/* 0x07b0 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x07c0 */ 161,103, 1,128, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, -/* 0x07d0 */ 64,156, 0, 64, 32, 11, 8, 0, 47,151, 0, 6,124, 0, 46,112, -/* 0x07e0 */ 124, 11, 2, 20,176, 7, 1,128,126, 15,131,120,125, 72, 83,120, -/* 0x07f0 */ 126, 48,139,120, 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8, -/* 0x0800 */ 56, 0, 0, 3,124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24, -/* 0x0810 */ 125, 10, 64, 80,127,136,176, 64, 85, 96,217,126,124, 0, 88, 80, -/* 0x0820 */ 124,170, 40, 80,176, 7, 1,128, 65,157, 0, 32,127,140,232, 0, -/* 0x0830 */ 65,158, 5,212,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, -/* 0x0840 */ 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,152, 85, 0,170,254, -/* 0x0850 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0,188, 32, 11, 8, 0, -/* 0x0860 */ 127,138,176, 64,124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20, -/* 0x0870 */ 125, 56, 74, 20, 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120, -/* 0x0880 */ 124,233, 90, 20, 65,157, 0, 32,127,140,232, 0, 65,158, 5,120, -/* 0x0890 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 72, 64, 46, -/* 0x08a0 */ 57,140, 0, 1,161,103, 1,224, 85, 0,170,254,125, 64, 89,214, -/* 0x08b0 */ 127,133, 80, 64, 64,156, 0, 72, 32, 11, 8, 0, 47,153, 0, 0, -/* 0x08c0 */ 124, 0, 46,112,124, 11, 2, 20,176, 7, 1,224,125, 72, 83,120, -/* 0x08d0 */ 65,158, 5, 52, 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8, -/* 0x08e0 */ 57, 32, 0, 11,124, 26,200, 80,127,245, 0,174,125, 55, 75,120, -/* 0x08f0 */ 127,249,169,174, 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126, -/* 0x0900 */ 124, 0, 88, 80,124,170, 40, 80,125, 10, 64, 80,176, 7, 1,224, -/* 0x0910 */ 72, 0, 0,252,125, 10, 64, 80,127,136,176, 64, 85, 96,217,126, -/* 0x0920 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32, -/* 0x0930 */ 127,140,232, 0, 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46, -/* 0x0940 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,176, -/* 0x0950 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, -/* 0x0960 */ 32, 11, 8, 0,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, -/* 0x0970 */ 126, 41,139,120,176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80, -/* 0x0980 */ 127,136,176, 64, 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80, -/* 0x0990 */ 176, 7, 1,176, 65,157, 0, 32,127,140,232, 0, 65,158, 4,104, -/* 0x09a0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, -/* 0x09b0 */ 57,140, 0, 1,161,103, 1,200, 85, 0,170,254,125, 64, 89,214, -/* 0x09c0 */ 127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,124, 0, 46,112, -/* 0x09d0 */ 124, 11, 2, 20,125, 72, 83,120,126, 9,131,120,176, 7, 1,200, -/* 0x09e0 */ 72, 0, 0, 32, 85, 96,217,126,124, 0, 88, 80,125,233,123,120, -/* 0x09f0 */ 176, 7, 1,200,124,170, 40, 80,125, 10, 64, 80,126, 15,131,120, -/* 0x0a00 */ 126, 48,139,120,127, 81,211,120,125, 58, 75,120, 47,151, 0, 6, -/* 0x0a10 */ 56, 0, 0, 8, 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120, -/* 0x0a20 */ 56,216, 10,104,127,136,176, 64, 65,157, 0, 32,127,140,232, 0, -/* 0x0a30 */ 65,158, 3,212,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, -/* 0x0a40 */ 85, 8, 64, 46, 57,140, 0, 1,161,102, 0, 0, 85, 0,170,254, -/* 0x0a50 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, 32, 11, 8, 0, -/* 0x0a60 */ 84,105, 32, 54,125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20, -/* 0x0a70 */ 125, 72, 83,120, 56,137, 0, 4, 59,128, 0, 0, 59, 96, 0, 3, -/* 0x0a80 */ 176, 6, 0, 0, 72, 0, 0,156,125, 10, 64, 80,127,136,176, 64, -/* 0x0a90 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0, -/* 0x0aa0 */ 65,157, 0, 32,127,140,232, 0, 65,158, 3, 92,137, 44, 0, 0, -/* 0x0ab0 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x0ac0 */ 161,102, 0, 2, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, -/* 0x0ad0 */ 64,156, 0, 48, 32, 11, 8, 0, 84,105, 32, 54,125, 38, 74, 20, -/* 0x0ae0 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4, -/* 0x0af0 */ 59,128, 0, 8, 59, 96, 0, 3,176, 6, 0, 2, 72, 0, 0, 36, -/* 0x0b00 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 2, -/* 0x0b10 */ 125, 10, 64, 80, 56,134, 2, 4, 59,128, 0, 16, 59, 96, 0, 8, -/* 0x0b20 */ 127,105, 3,166, 63,224, 0,255, 99,255,255,255, 56, 96, 0, 1, -/* 0x0b30 */ 127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46, -/* 0x0b40 */ 124,227, 59,120, 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0, -/* 0x0b50 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46, -/* 0x0b60 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, -/* 0x0b70 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, -/* 0x0b80 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46, -/* 0x0b90 */ 72, 0, 0, 16,124,170, 40, 80, 56,103, 0, 1,125,100, 59, 46, -/* 0x0ba0 */ 66, 0,255,144, 56, 0, 0, 1, 47,151, 0, 3,124, 0,216, 48, -/* 0x0bb0 */ 124, 96, 24, 80,124, 99,226, 20, 65,157, 1,232, 47,131, 0, 3, -/* 0x0bc0 */ 58,247, 0, 7,124,105, 27,120, 64,157, 0, 8, 57, 32, 0, 3, -/* 0x0bd0 */ 85, 41, 56, 48,125, 56, 74, 20, 56,201, 3, 96, 57, 32, 0, 6, -/* 0x0be0 */ 125, 41, 3,166, 63,224, 0,255, 99,255,255,255, 56,128, 0, 1, -/* 0x0bf0 */ 127,136,248, 64, 84,135, 8, 60,127, 12,232, 0, 84,169, 64, 46, -/* 0x0c00 */ 124,228, 59,120, 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0, -/* 0x0c10 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, -/* 0x0c20 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, -/* 0x0c30 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, -/* 0x0c40 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, -/* 0x0c50 */ 72, 0, 0, 16,124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46, -/* 0x0c60 */ 66, 0,255,144, 56,132,255,192, 47,132, 0, 3,124,154, 35,120, -/* 0x0c70 */ 64,157, 1, 40, 47,132, 0, 13,124,137, 14,112, 84,128, 7,254, -/* 0x0c80 */ 57,105,255,255, 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32, -/* 0x0c90 */ 127, 90, 88, 48, 87, 73, 8, 60,125, 56, 74, 20, 84,128, 8, 60, -/* 0x0ca0 */ 125, 32, 72, 80, 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251, -/* 0x0cb0 */ 125, 41, 3,166, 61, 96, 0,255, 97,107,255,255,127,136, 88, 64, -/* 0x0cc0 */ 127, 12,232, 0, 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24, -/* 0x0cd0 */ 65,154, 1, 52,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x0ce0 */ 125, 37, 3,120, 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12, -/* 0x0cf0 */ 124,168, 40, 80, 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4, -/* 0x0d00 */ 124, 9, 3,166, 87, 90, 32, 54, 56,216, 6, 68, 60,128, 0,255, -/* 0x0d10 */ 96,132,255,255, 59,128, 0, 1, 59,224, 0, 1,127,136, 32, 64, -/* 0x0d20 */ 87,231, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,255, 59,120, -/* 0x0d30 */ 65,157, 0, 24, 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46, -/* 0x0d40 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254, -/* 0x0d50 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, -/* 0x0d60 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, -/* 0x0d70 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20, -/* 0x0d80 */ 124,170, 40, 80, 59,231, 0, 1,125,102, 59, 46,127, 90,227,120, -/* 0x0d90 */ 87,156, 8, 60, 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72, -/* 0x0da0 */ 127,154,200, 64, 56, 99, 0, 2, 65,157, 0, 92,124, 26,200, 80, -/* 0x0db0 */ 127,245, 0,174, 56, 99,255,255,127,249,169,174, 59, 57, 0, 1, -/* 0x0dc0 */ 49, 99,255,255,125, 43, 25, 16,124, 20,200, 16,124, 0, 1, 16, -/* 0x0dd0 */ 124, 0, 0,208,125, 43, 0, 57, 64,130,255,212,127,153,160, 64, -/* 0x0de0 */ 65,156,247,172, 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64, -/* 0x0df0 */ 65,157, 0, 32,127,140,232, 0, 56, 96, 0, 1, 65,158, 0, 40, -/* 0x0e00 */ 72, 0, 0, 12, 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1, -/* 0x0e10 */ 125, 40, 2,166,124, 19, 96, 80,144, 14, 0, 0, 56, 96, 0, 0, -/* 0x0e20 */ 147, 41, 0, 0,128, 1, 0,100,185,193, 0, 24,124, 8, 3,166, -/* 0x0e30 */ 56, 33, 0, 96,124, 8, 2,166,148, 33,255,160,189,193, 0, 24, -/* 0x0e40 */ 144, 1, 0,100, 59, 32, 0, 0,137, 67, 0, 2,137, 99, 0, 1, -/* 0x0e50 */ 138, 67, 0, 0,147, 38, 0, 0,147, 41, 0, 0,136, 3, 0, 1, -/* 0x0e60 */ 125, 40, 3,166,124, 18, 2, 20, 57, 32, 3, 0,125, 41, 0, 48, -/* 0x0e70 */ 56, 9, 7, 54,127,153, 0, 64, 57, 32, 0, 1,125, 43, 88, 48, -/* 0x0e80 */ 125, 41, 80, 48, 57, 41,255,255, 57,107,255,255,145, 33, 0, 8, -/* 0x0e90 */ 124,206, 51,120,124,147, 35,120,124,245, 59,120,125, 20, 67,120, -/* 0x0ea0 */ 145, 97, 0, 12, 59, 3, 0, 4, 59,224, 0, 0, 58,224, 0, 0, -/* 0x0eb0 */ 59, 64, 0, 1, 58, 32, 0, 1, 58, 0, 0, 1, 57,224, 0, 1, -/* 0x0ec0 */ 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166, 57, 96, 4, 0, -/* 0x0ed0 */ 85, 32, 8, 60,125,120, 3, 46, 57, 41, 0, 1, 66, 0,255,244, -/* 0x0ee0 */ 127,179, 42, 20,126,108,155,120, 56,160, 0, 0, 57, 0,255,255, -/* 0x0ef0 */ 57, 96, 0, 0,127,140,232, 0, 57,107, 0, 1, 47, 11, 0, 4, -/* 0x0f00 */ 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0, 57,140, 0, 1, -/* 0x0f10 */ 125, 37, 3,120, 64,153,255,224,127,153,160, 64, 64,156, 8,100, -/* 0x0f20 */ 62,192, 0,255, 98,214,255,255,128, 1, 0, 8,127,136,176, 64, -/* 0x0f30 */ 127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20, 84, 6, 8, 60, -/* 0x0f40 */ 65,157, 0, 32,127,140,232, 0, 65,158, 8, 88,137, 44, 0, 0, -/* 0x0f50 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x0f60 */ 124,230,194, 46, 85, 0,170,254,125, 64, 57,214,127,133, 80, 64, -/* 0x0f70 */ 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6,127, 41, 0, 56, -/* 0x0f80 */ 32, 18, 0, 8,127,224, 6, 48,125, 41,144, 48,125, 41, 2, 20, -/* 0x0f90 */ 29, 41, 6, 0, 32, 7, 8, 0,124, 0, 46,112,124, 7, 2, 20, -/* 0x0fa0 */ 125, 56, 74, 20,124, 6,195, 46,125, 72, 83,120, 56,201, 14,108, -/* 0x0fb0 */ 56, 96, 0, 1, 64,157, 0,180,124, 26,200, 80, 63, 96, 0,255, -/* 0x0fc0 */ 127,245, 0,174, 99,123,255,255, 87,255, 8, 60, 87,252, 5,238, -/* 0x0fd0 */ 127,136,216, 64, 87,128, 8, 60, 84,100, 8, 60,124, 6, 2, 20, -/* 0x0fe0 */ 127, 12,232, 0, 84,169, 64, 46,124,224, 34, 20, 65,157, 0, 24, -/* 0x0ff0 */ 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x1000 */ 125, 37, 3,120,161,103, 2, 0, 85, 0,170,254,125, 64, 89,214, -/* 0x1010 */ 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, 85,105,217,126, -/* 0x1020 */ 124, 11, 2, 20, 47, 28, 0, 0,125,105, 88, 80,124,131, 35,120, -/* 0x1030 */ 125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0,125, 72, 83,120, -/* 0x1040 */ 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0,124,170, 40, 80, -/* 0x1050 */ 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255, 64,157,255,108, -/* 0x1060 */ 47,131, 0,255, 65,157, 0,132, 63,224, 0,255, 99,255,255,255, -/* 0x1070 */ 127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46, -/* 0x1080 */ 124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24,136, 12, 0, 0, -/* 0x1090 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, -/* 0x10a0 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, -/* 0x10b0 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, -/* 0x10c0 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, -/* 0x10d0 */ 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46, 56,103, 0, 1, -/* 0x10e0 */ 47,131, 0,255, 64,157,255,140, 47,151, 0, 3, 84,127, 6, 62, -/* 0x10f0 */ 127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12, 58,224, 0, 0, -/* 0x1100 */ 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12, 58,247,255,253, -/* 0x1110 */ 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96,125, 10, 64, 80, -/* 0x1120 */ 127,136,176, 64, 84,224,217,126,124, 0, 56, 80, 86,233, 8, 60, -/* 0x1130 */ 124, 6,195, 46,124,170, 40, 80,124,248, 74, 20, 65,157, 0, 32, -/* 0x1140 */ 127,140,232, 0, 65,158, 6, 92,137, 44, 0, 0, 84,160, 64, 46, -/* 0x1150 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,128, -/* 0x1160 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 64, -/* 0x1170 */ 32, 11, 8, 0, 47,151, 0, 6,124, 0, 46,112,124, 11, 2, 20, -/* 0x1180 */ 176, 7, 1,128,126, 15,131,120,125, 72, 83,120,126, 48,139,120, -/* 0x1190 */ 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8, 56, 0, 0, 3, -/* 0x11a0 */ 124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24,125, 10, 64, 80, -/* 0x11b0 */ 127,136,176, 64, 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80, -/* 0x11c0 */ 176, 7, 1,128, 65,157, 0, 32,127,140,232, 0, 65,158, 5,212, -/* 0x11d0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, -/* 0x11e0 */ 57,140, 0, 1,161,103, 1,152, 85, 0,170,254,125, 64, 89,214, -/* 0x11f0 */ 127,133, 80, 64, 64,156, 0,188, 32, 11, 8, 0,127,138,176, 64, -/* 0x1200 */ 124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20,125, 56, 74, 20, -/* 0x1210 */ 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120,124,233, 90, 20, -/* 0x1220 */ 65,157, 0, 32,127,140,232, 0, 65,158, 5,120,137, 44, 0, 0, -/* 0x1230 */ 84,160, 64, 46,124, 5, 75,120, 85, 72, 64, 46, 57,140, 0, 1, -/* 0x1240 */ 161,103, 1,224, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, -/* 0x1250 */ 64,156, 0, 72, 32, 11, 8, 0, 47,153, 0, 0,124, 0, 46,112, -/* 0x1260 */ 124, 11, 2, 20,176, 7, 1,224,125, 72, 83,120, 65,158, 5, 52, -/* 0x1270 */ 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8, 57, 32, 0, 11, -/* 0x1280 */ 124, 26,200, 80,127,245, 0,174,125, 55, 75,120,127,249,169,174, -/* 0x1290 */ 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126,124, 0, 88, 80, -/* 0x12a0 */ 124,170, 40, 80,125, 10, 64, 80,176, 7, 1,224, 72, 0, 0,252, -/* 0x12b0 */ 125, 10, 64, 80,127,136,176, 64, 85, 96,217,126,124, 0, 88, 80, -/* 0x12c0 */ 124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32,127,140,232, 0, -/* 0x12d0 */ 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, -/* 0x12e0 */ 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,176, 85, 0,170,254, -/* 0x12f0 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0, -/* 0x1300 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120,126, 41,139,120, -/* 0x1310 */ 176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80,127,136,176, 64, -/* 0x1320 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 7, 1,176, -/* 0x1330 */ 65,157, 0, 32,127,140,232, 0, 65,158, 4,104,137, 44, 0, 0, -/* 0x1340 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x1350 */ 161,103, 1,200, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, -/* 0x1360 */ 64,156, 0, 32, 32, 11, 8, 0,124, 0, 46,112,124, 11, 2, 20, -/* 0x1370 */ 125, 72, 83,120,126, 9,131,120,176, 7, 1,200, 72, 0, 0, 32, -/* 0x1380 */ 85, 96,217,126,124, 0, 88, 80,125,233,123,120,176, 7, 1,200, -/* 0x1390 */ 124,170, 40, 80,125, 10, 64, 80,126, 15,131,120,126, 48,139,120, -/* 0x13a0 */ 127, 81,211,120,125, 58, 75,120, 47,151, 0, 6, 56, 0, 0, 8, -/* 0x13b0 */ 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120, 56,216, 10,104, -/* 0x13c0 */ 127,136,176, 64, 65,157, 0, 32,127,140,232, 0, 65,158, 3,212, -/* 0x13d0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, -/* 0x13e0 */ 57,140, 0, 1,161,102, 0, 0, 85, 0,170,254,125, 64, 89,214, -/* 0x13f0 */ 127,133, 80, 64, 64,156, 0, 48, 32, 11, 8, 0, 84,105, 32, 54, -/* 0x1400 */ 125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, -/* 0x1410 */ 56,137, 0, 4, 59,128, 0, 0, 59, 96, 0, 3,176, 6, 0, 0, -/* 0x1420 */ 72, 0, 0,156,125, 10, 64, 80,127,136,176, 64, 85, 96,217,126, -/* 0x1430 */ 124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0, 65,157, 0, 32, -/* 0x1440 */ 127,140,232, 0, 65,158, 3, 92,137, 44, 0, 0, 84,160, 64, 46, -/* 0x1450 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,102, 0, 2, -/* 0x1460 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, -/* 0x1470 */ 32, 11, 8, 0, 84,105, 32, 54,125, 38, 74, 20,124, 0, 46,112, -/* 0x1480 */ 124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4, 59,128, 0, 8, -/* 0x1490 */ 59, 96, 0, 3,176, 6, 0, 2, 72, 0, 0, 36, 85, 96,217,126, -/* 0x14a0 */ 124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 2,125, 10, 64, 80, -/* 0x14b0 */ 56,134, 2, 4, 59,128, 0, 16, 59, 96, 0, 8,127,105, 3,166, -/* 0x14c0 */ 63,224, 0,255, 99,255,255,255, 56, 96, 0, 1,127,136,248, 64, -/* 0x14d0 */ 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,227, 59,120, -/* 0x14e0 */ 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0, 85, 8, 64, 46, -/* 0x14f0 */ 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46, 85, 0,170,254, -/* 0x1500 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, -/* 0x1510 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, -/* 0x1520 */ 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46, 72, 0, 0, 16, -/* 0x1530 */ 124,170, 40, 80, 56,103, 0, 1,125,100, 59, 46, 66, 0,255,144, -/* 0x1540 */ 56, 0, 0, 1, 47,151, 0, 3,124, 0,216, 48,124, 96, 24, 80, -/* 0x1550 */ 124, 99,226, 20, 65,157, 1,232, 47,131, 0, 3, 58,247, 0, 7, -/* 0x1560 */ 124,105, 27,120, 64,157, 0, 8, 57, 32, 0, 3, 85, 41, 56, 48, -/* 0x1570 */ 125, 56, 74, 20, 56,201, 3, 96, 57, 32, 0, 6,125, 41, 3,166, -/* 0x1580 */ 63,224, 0,255, 99,255,255,255, 56,128, 0, 1,127,136,248, 64, -/* 0x1590 */ 84,135, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,228, 59,120, -/* 0x15a0 */ 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0, 85, 8, 64, 46, -/* 0x15b0 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254, -/* 0x15c0 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, -/* 0x15d0 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, -/* 0x15e0 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 16, -/* 0x15f0 */ 124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46, 66, 0,255,144, -/* 0x1600 */ 56,132,255,192, 47,132, 0, 3,124,154, 35,120, 64,157, 1, 40, -/* 0x1610 */ 47,132, 0, 13,124,137, 14,112, 84,128, 7,254, 57,105,255,255, -/* 0x1620 */ 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32,127, 90, 88, 48, -/* 0x1630 */ 87, 73, 8, 60,125, 56, 74, 20, 84,128, 8, 60,125, 32, 72, 80, -/* 0x1640 */ 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251,125, 41, 3,166, -/* 0x1650 */ 61, 96, 0,255, 97,107,255,255,127,136, 88, 64,127, 12,232, 0, -/* 0x1660 */ 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24, 65,154, 1, 52, -/* 0x1670 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120, -/* 0x1680 */ 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12,124,168, 40, 80, -/* 0x1690 */ 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4,124, 9, 3,166, -/* 0x16a0 */ 87, 90, 32, 54, 56,216, 6, 68, 60,128, 0,255, 96,132,255,255, -/* 0x16b0 */ 59,128, 0, 1, 59,224, 0, 1,127,136, 32, 64, 87,231, 8, 60, -/* 0x16c0 */ 127, 12,232, 0, 84,169, 64, 46,124,255, 59,120, 65,157, 0, 24, -/* 0x16d0 */ 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, -/* 0x16e0 */ 125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, -/* 0x16f0 */ 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, 85,105,217,126, -/* 0x1700 */ 124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, 64,156, 0, 16, -/* 0x1710 */ 125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20,124,170, 40, 80, -/* 0x1720 */ 59,231, 0, 1,125,102, 59, 46,127, 90,227,120, 87,156, 8, 60, -/* 0x1730 */ 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72,127,154,200, 64, -/* 0x1740 */ 56, 99, 0, 2, 65,157, 0, 92,124, 26,200, 80,127,245, 0,174, -/* 0x1750 */ 56, 99,255,255,127,249,169,174, 59, 57, 0, 1, 49, 99,255,255, -/* 0x1760 */ 125, 43, 25, 16,124, 20,200, 16,124, 0, 1, 16,124, 0, 0,208, -/* 0x1770 */ 125, 43, 0, 57, 64,130,255,212,127,153,160, 64, 65,156,247,172, -/* 0x1780 */ 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64, 65,157, 0, 32, -/* 0x1790 */ 127,140,232, 0, 56, 96, 0, 1, 65,158, 0, 40, 72, 0, 0, 12, -/* 0x17a0 */ 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1,125, 40, 2,166, -/* 0x17b0 */ 124, 19, 96, 80,144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0, -/* 0x17c0 */ 128, 1, 0,100,185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, -/* 0x17d0 */ 128,161, 0, 12,128,225, 0, 8,128,165, 0, 0,128, 33, 0, 0, -/* 0x17e0 */ 124,165, 58, 20,128, 1, 0, 8, 56,165,255,255,124, 8, 3,166, -/* 0x17f0 */ 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x1800 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, -/* 0x1810 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, -/* 0x1820 */ 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105, -/* 0x1830 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, -/* 0x1840 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, -/* 0x1850 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, -/* 0x1860 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, -/* 0x1870 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 76, -/* 0x1880 */ 73, 78, 85, 88, 48, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1890 */ 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x18a0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x18b0 */ 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x18c0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x18d0 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 76, 73, 78, 85, 88, 48, 49, -/* 0x18e0 */ 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, -/* 0x18f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1900 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 99, 32, 32, 50, -/* 0x1910 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1920 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1930 */ 32, 50, 32, 76, 73, 78, 85, 88, 48, 50, 48, 32, 32, 32, 32, 32, -/* 0x1940 */ 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, -/* 0x1950 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1960 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1970 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1980 */ 89, 10, 32, 32, 51, 32, 76, 73, 78, 85, 88, 48, 51, 48, 32, 32, -/* 0x1990 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x19b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 97, 56, 32, 32, 50, 42, 42, 48, -/* 0x19c0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x19d0 */ 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, -/* 0x19e0 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, -/* 0x19f0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1a00 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 56, 32, 32, 50, -/* 0x1a10 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1a20 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, -/* 0x1a30 */ 32, 53, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1a40 */ 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, 48, 48, 48, 48, 48, -/* 0x1a50 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1a60 */ 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, -/* 0x1a70 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, -/* 0x1a80 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 78, 82, 86, -/* 0x1a90 */ 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1aa0 */ 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 99, -/* 0x1ac0 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x1ad0 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x1ae0 */ 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 32, 32, 32, 32, 32, -/* 0x1af0 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b10 */ 48, 32, 32, 48, 48, 48, 48, 48, 52, 48, 99, 32, 32, 50, 42, 42, -/* 0x1b20 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x1b30 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 69, -/* 0x1b40 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 99, -/* 0x1b50 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1b60 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 48, 99, 32, 32, -/* 0x1b70 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1b80 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, -/* 0x1b90 */ 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, -/* 0x1ba0 */ 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, 48, 48, 48, -/* 0x1bb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1bc0 */ 48, 48, 48, 48, 48, 52, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1bd0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, -/* 0x1be0 */ 76, 89, 10, 32, 49, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, -/* 0x1bf0 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, 32, 32, 48, -/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c10 */ 48, 32, 32, 48, 48, 48, 48, 48,101, 51, 52, 32, 32, 50, 42, 42, -/* 0x1c20 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, -/* 0x1c30 */ 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, -/* 0x1c40 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, -/* 0x1c50 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1c60 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,100, 48, 32, 32, -/* 0x1c70 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, -/* 0x1c80 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 85, 80, 88, -/* 0x1c90 */ 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, -/* 0x1ca0 */ 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1cb0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55,102, -/* 0x1cc0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, -/* 0x1cd0 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, -/* 0x1ce0 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, -/* 0x1cf0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 73, 78, 85, 88, -/* 0x1d00 */ 48, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 73, 78, -/* 0x1d10 */ 85, 88, 48, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1d20 */ 32, 32, 32, 32,100, 32, 32, 76, 73, 78, 85, 88, 48, 51, 48, 9, -/* 0x1d30 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 73, 78, 85, 88, 48, 51, -/* 0x1d40 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x1d50 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, -/* 0x1d60 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, -/* 0x1d70 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, -/* 0x1d80 */ 100, 32, 32, 76, 73, 78, 85, 88, 48, 48, 48, 9, 48, 48, 48, 48, -/* 0x1d90 */ 48, 48, 48, 48, 32, 76, 73, 78, 85, 88, 48, 48, 48, 10, 48, 48, -/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, -/* 0x1db0 */ 73, 78, 85, 88, 48, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1dc0 */ 32, 76, 73, 78, 85, 88, 48, 49, 48, 10, 48, 48, 48, 48, 48, 48, -/* 0x1dd0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, -/* 0x1de0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, -/* 0x1df0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1e00 */ 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1e10 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, -/* 0x1e20 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, -/* 0x1e30 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, -/* 0x1e40 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, -/* 0x1e50 */ 65, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 10, -/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1e70 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, -/* 0x1e80 */ 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, -/* 0x1e90 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1ea0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, -/* 0x1eb0 */ 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, -/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1ed0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, -/* 0x1ee0 */ 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, -/* 0x1ef0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, -/* 0x1f00 */ 32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, -/* 0x1f10 */ 48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, -/* 0x1f20 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, -/* 0x1f30 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,102,105,108,116, -/* 0x1f40 */ 101,114, 95,108,101,110,103,116,104, 10, 48, 48, 48, 48, 48, 48, -/* 0x1f50 */ 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, -/* 0x1f60 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,102,105,108,116,101,114, -/* 0x1f70 */ 95, 99,116,111, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, -/* 0x1f80 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, -/* 0x1f90 */ 48, 48, 48, 48, 32,101,111,102, 95,110,114,118, 10, 10, 82, 69, -/* 0x1fa0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x1fb0 */ 32, 70, 79, 82, 32, 91, 76, 73, 78, 85, 88, 48, 48, 48, 93, 58, -/* 0x1fc0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, -/* 0x1fd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, -/* 0x1fe0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, -/* 0x1ff0 */ 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 76, 73, 78, -/* 0x2000 */ 85, 88, 48, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, -/* 0x2010 */ 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 32, -/* 0x2020 */ 32, 76, 73, 78, 85, 88, 48, 50, 48, 10, 10, 82, 69, 76, 79, 67, -/* 0x2030 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, -/* 0x2040 */ 82, 32, 91, 76, 73, 78, 85, 88, 48, 49, 48, 93, 58, 10, 79, 70, -/* 0x2050 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x2060 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, 65, 68, -/* 0x2080 */ 68, 82, 51, 50, 32, 32, 32, 32, 32, 32,102,105,108,116,101,114, -/* 0x2090 */ 95,108,101,110,103,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 52, -/* 0x20a0 */ 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, 82, 51, 50, 32, 32, 32, -/* 0x20b0 */ 32, 32, 32,102,105,108,116,101,114, 95, 99,116,111, 10, 10, 82, -/* 0x20c0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, -/* 0x20d0 */ 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, -/* 0x20e0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x20f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x2100 */ 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, 95, 82, -/* 0x2110 */ 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32,101,111,102, 95,110, -/* 0x2120 */ 114,118, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x2130 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, -/* 0x2140 */ 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, -/* 0x2150 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, -/* 0x2160 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, -/* 0x2170 */ 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, -/* 0x2180 */ 101,111,102, 95,110,114,118, 10, 10, 82, 69, 76, 79, 67, 65, 84, -/* 0x2190 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, -/* 0x21a0 */ 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x21b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x21c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, -/* 0x21d0 */ 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, -/* 0x21e0 */ 32, 32, 32, 32, 32,101,111,102, 95,110,114,118, 10, 10, 82, 69, -/* 0x21f0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2200 */ 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, -/* 0x2210 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, -/* 0x2220 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x2230 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 80, -/* 0x2240 */ 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 76, -/* 0x2250 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, -/* 0x2260 */ 48, 48, 50, 48, 10 +/* 0x0400 */ 124, 7, 41,236,124, 7, 26, 44, 75,255,255, 16,128,230, 0, 0, +/* 0x0410 */ 125,168, 3,166,124,100, 24, 80,124,135, 40, 80, 56, 99, 0, 1, +/* 0x0420 */ 56,132, 0, 1,144,134, 0, 0, 96,231, 0, 31,124, 0, 56,108, +/* 0x0430 */ 124, 7, 40, 64,124, 0, 63,172, 56,231, 0, 32, 65,128,255,240, +/* 0x0440 */ 124, 0, 4,172, 76, 0, 1, 44, 78,128, 0, 32, 40, 7, 0, 14, +/* 0x0450 */ 64,130, 0, 32,124, 8, 2,166,124,201, 51,120,129, 6, 0, 0, +/* 0x0460 */ 124,167, 43,120, 56,164,255,254, 56,131, 0, 2,144, 1, 0, 8, +/* 0x0470 */ 136, 3, 0, 0, 84, 11,232,254, 84, 2, 7,126, 56, 96,250, 0, +/* 0x0480 */ 124, 99, 88, 48, 56, 99,241,124,124, 38, 11,120,124, 33, 26, 20, +/* 0x0490 */ 84, 33, 0, 52, 56, 0, 0, 0,124,195, 51,120,144, 9, 0, 0, +/* 0x04a0 */ 148, 3,255,252,124, 1, 24, 64, 65,128,255,248,144,193, 0, 0, +/* 0x04b0 */ 136, 4,255,255,144,225, 0, 8, 56,193, 0, 16,145, 33, 0, 12, +/* 0x04c0 */ 56, 97, 0, 20, 84, 11,225, 62, 84, 0, 7, 62,152, 67, 0, 2, +/* 0x04d0 */ 153, 99, 0, 1,152, 3, 0, 0,124, 8, 2,166,148, 33,255,160, +/* 0x04e0 */ 189,193, 0, 24,144, 1, 0,100, 59, 32, 0, 0,137, 67, 0, 2, +/* 0x04f0 */ 137, 99, 0, 1,138, 67, 0, 0,147, 38, 0, 0,147, 41, 0, 0, +/* 0x0500 */ 136, 3, 0, 1,125, 40, 3,166,124, 18, 2, 20, 57, 32, 3, 0, +/* 0x0510 */ 125, 41, 0, 48, 56, 9, 7, 54,127,153, 0, 64, 57, 32, 0, 1, +/* 0x0520 */ 125, 43, 88, 48,125, 41, 80, 48, 57, 41,255,255, 57,107,255,255, +/* 0x0530 */ 145, 33, 0, 8,124,206, 51,120,124,147, 35,120,124,245, 59,120, +/* 0x0540 */ 125, 20, 67,120,145, 97, 0, 12, 59, 3, 0, 4, 59,224, 0, 0, +/* 0x0550 */ 58,224, 0, 0, 59, 64, 0, 1, 58, 32, 0, 1, 58, 0, 0, 1, +/* 0x0560 */ 57,224, 0, 1, 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166, +/* 0x0570 */ 57, 96, 4, 0, 85, 32, 8, 60,125,120, 3, 46, 57, 41, 0, 1, +/* 0x0580 */ 66, 0,255,244,127,179, 42, 20,126,108,155,120, 56,160, 0, 0, +/* 0x0590 */ 57, 0,255,255, 57, 96, 0, 0,127,140,232, 0, 57,107, 0, 1, +/* 0x05a0 */ 47, 11, 0, 4, 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0, +/* 0x05b0 */ 57,140, 0, 1,125, 37, 3,120, 64,153,255,224,127,153,160, 64, +/* 0x05c0 */ 64,156, 8,100, 62,192, 0,255, 98,214,255,255,128, 1, 0, 8, +/* 0x05d0 */ 127,136,176, 64,127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20, +/* 0x05e0 */ 84, 6, 8, 60, 65,157, 0, 32,127,140,232, 0, 65,158, 8, 88, +/* 0x05f0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, +/* 0x0600 */ 57,140, 0, 1,124,230,194, 46, 85, 0,170,254,125, 64, 57,214, +/* 0x0610 */ 127,133, 80, 64, 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6, +/* 0x0620 */ 127, 41, 0, 56, 32, 18, 0, 8,127,224, 6, 48,125, 41,144, 48, +/* 0x0630 */ 125, 41, 2, 20, 29, 41, 6, 0, 32, 7, 8, 0,124, 0, 46,112, +/* 0x0640 */ 124, 7, 2, 20,125, 56, 74, 20,124, 6,195, 46,125, 72, 83,120, +/* 0x0650 */ 56,201, 14,108, 56, 96, 0, 1, 64,157, 0,180,124, 26,200, 80, +/* 0x0660 */ 63, 96, 0,255,127,245, 0,174, 99,123,255,255, 87,255, 8, 60, +/* 0x0670 */ 87,252, 5,238,127,136,216, 64, 87,128, 8, 60, 84,100, 8, 60, +/* 0x0680 */ 124, 6, 2, 20,127, 12,232, 0, 84,169, 64, 46,124,224, 34, 20, +/* 0x0690 */ 65,157, 0, 24, 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46, +/* 0x06a0 */ 57,140, 0, 1,125, 37, 3,120,161,103, 2, 0, 85, 0,170,254, +/* 0x06b0 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, +/* 0x06c0 */ 85,105,217,126,124, 11, 2, 20, 47, 28, 0, 0,125,105, 88, 80, +/* 0x06d0 */ 124,131, 35,120,125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0, +/* 0x06e0 */ 125, 72, 83,120, 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0, +/* 0x06f0 */ 124,170, 40, 80, 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255, +/* 0x0700 */ 64,157,255,108, 47,131, 0,255, 65,157, 0,132, 63,224, 0,255, +/* 0x0710 */ 99,255,255,255,127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, +/* 0x0720 */ 84,169, 64, 46,124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24, +/* 0x0730 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120, +/* 0x0740 */ 125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0, +/* 0x0750 */ 127,133, 80, 64,124, 0, 46,112, 85,105,217,126,124, 11, 2, 20, +/* 0x0760 */ 125, 10, 64, 80,125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120, +/* 0x0770 */ 124, 6, 59, 46, 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46, +/* 0x0780 */ 56,103, 0, 1, 47,131, 0,255, 64,157,255,140, 47,151, 0, 3, +/* 0x0790 */ 84,127, 6, 62,127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12, +/* 0x07a0 */ 58,224, 0, 0, 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12, +/* 0x07b0 */ 58,247,255,253, 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96, +/* 0x07c0 */ 125, 10, 64, 80,127,136,176, 64, 84,224,217,126,124, 0, 56, 80, +/* 0x07d0 */ 86,233, 8, 60,124, 6,195, 46,124,170, 40, 80,124,248, 74, 20, +/* 0x07e0 */ 65,157, 0, 32,127,140,232, 0, 65,158, 6, 92,137, 44, 0, 0, +/* 0x07f0 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x0800 */ 161,103, 1,128, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, +/* 0x0810 */ 64,156, 0, 64, 32, 11, 8, 0, 47,151, 0, 6,124, 0, 46,112, +/* 0x0820 */ 124, 11, 2, 20,176, 7, 1,128,126, 15,131,120,125, 72, 83,120, +/* 0x0830 */ 126, 48,139,120, 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8, +/* 0x0840 */ 56, 0, 0, 3,124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24, +/* 0x0850 */ 125, 10, 64, 80,127,136,176, 64, 85, 96,217,126,124, 0, 88, 80, +/* 0x0860 */ 124,170, 40, 80,176, 7, 1,128, 65,157, 0, 32,127,140,232, 0, +/* 0x0870 */ 65,158, 5,212,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, +/* 0x0880 */ 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,152, 85, 0,170,254, +/* 0x0890 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0,188, 32, 11, 8, 0, +/* 0x08a0 */ 127,138,176, 64,124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20, +/* 0x08b0 */ 125, 56, 74, 20, 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120, +/* 0x08c0 */ 124,233, 90, 20, 65,157, 0, 32,127,140,232, 0, 65,158, 5,120, +/* 0x08d0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 72, 64, 46, +/* 0x08e0 */ 57,140, 0, 1,161,103, 1,224, 85, 0,170,254,125, 64, 89,214, +/* 0x08f0 */ 127,133, 80, 64, 64,156, 0, 72, 32, 11, 8, 0, 47,153, 0, 0, +/* 0x0900 */ 124, 0, 46,112,124, 11, 2, 20,176, 7, 1,224,125, 72, 83,120, +/* 0x0910 */ 65,158, 5, 52, 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8, +/* 0x0920 */ 57, 32, 0, 11,124, 26,200, 80,127,245, 0,174,125, 55, 75,120, +/* 0x0930 */ 127,249,169,174, 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126, +/* 0x0940 */ 124, 0, 88, 80,124,170, 40, 80,125, 10, 64, 80,176, 7, 1,224, +/* 0x0950 */ 72, 0, 0,252,125, 10, 64, 80,127,136,176, 64, 85, 96,217,126, +/* 0x0960 */ 124, 0, 88, 80,124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32, +/* 0x0970 */ 127,140,232, 0, 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46, +/* 0x0980 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,176, +/* 0x0990 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, +/* 0x09a0 */ 32, 11, 8, 0,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, +/* 0x09b0 */ 126, 41,139,120,176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80, +/* 0x09c0 */ 127,136,176, 64, 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80, +/* 0x09d0 */ 176, 7, 1,176, 65,157, 0, 32,127,140,232, 0, 65,158, 4,104, +/* 0x09e0 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, +/* 0x09f0 */ 57,140, 0, 1,161,103, 1,200, 85, 0,170,254,125, 64, 89,214, +/* 0x0a00 */ 127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0,124, 0, 46,112, +/* 0x0a10 */ 124, 11, 2, 20,125, 72, 83,120,126, 9,131,120,176, 7, 1,200, +/* 0x0a20 */ 72, 0, 0, 32, 85, 96,217,126,124, 0, 88, 80,125,233,123,120, +/* 0x0a30 */ 176, 7, 1,200,124,170, 40, 80,125, 10, 64, 80,126, 15,131,120, +/* 0x0a40 */ 126, 48,139,120,127, 81,211,120,125, 58, 75,120, 47,151, 0, 6, +/* 0x0a50 */ 56, 0, 0, 8, 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120, +/* 0x0a60 */ 56,216, 10,104,127,136,176, 64, 65,157, 0, 32,127,140,232, 0, +/* 0x0a70 */ 65,158, 3,212,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, +/* 0x0a80 */ 85, 8, 64, 46, 57,140, 0, 1,161,102, 0, 0, 85, 0,170,254, +/* 0x0a90 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, 32, 11, 8, 0, +/* 0x0aa0 */ 84,105, 32, 54,125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20, +/* 0x0ab0 */ 125, 72, 83,120, 56,137, 0, 4, 59,128, 0, 0, 59, 96, 0, 3, +/* 0x0ac0 */ 176, 6, 0, 0, 72, 0, 0,156,125, 10, 64, 80,127,136,176, 64, +/* 0x0ad0 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0, +/* 0x0ae0 */ 65,157, 0, 32,127,140,232, 0, 65,158, 3, 92,137, 44, 0, 0, +/* 0x0af0 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x0b00 */ 161,102, 0, 2, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, +/* 0x0b10 */ 64,156, 0, 48, 32, 11, 8, 0, 84,105, 32, 54,125, 38, 74, 20, +/* 0x0b20 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4, +/* 0x0b30 */ 59,128, 0, 8, 59, 96, 0, 3,176, 6, 0, 2, 72, 0, 0, 36, +/* 0x0b40 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 2, +/* 0x0b50 */ 125, 10, 64, 80, 56,134, 2, 4, 59,128, 0, 16, 59, 96, 0, 8, +/* 0x0b60 */ 127,105, 3,166, 63,224, 0,255, 99,255,255,255, 56, 96, 0, 1, +/* 0x0b70 */ 127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46, +/* 0x0b80 */ 124,227, 59,120, 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0, +/* 0x0b90 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46, +/* 0x0ba0 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, +/* 0x0bb0 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, +/* 0x0bc0 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46, +/* 0x0bd0 */ 72, 0, 0, 16,124,170, 40, 80, 56,103, 0, 1,125,100, 59, 46, +/* 0x0be0 */ 66, 0,255,144, 56, 0, 0, 1, 47,151, 0, 3,124, 0,216, 48, +/* 0x0bf0 */ 124, 96, 24, 80,124, 99,226, 20, 65,157, 1,232, 47,131, 0, 3, +/* 0x0c00 */ 58,247, 0, 7,124,105, 27,120, 64,157, 0, 8, 57, 32, 0, 3, +/* 0x0c10 */ 85, 41, 56, 48,125, 56, 74, 20, 56,201, 3, 96, 57, 32, 0, 6, +/* 0x0c20 */ 125, 41, 3,166, 63,224, 0,255, 99,255,255,255, 56,128, 0, 1, +/* 0x0c30 */ 127,136,248, 64, 84,135, 8, 60,127, 12,232, 0, 84,169, 64, 46, +/* 0x0c40 */ 124,228, 59,120, 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0, +/* 0x0c50 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, +/* 0x0c60 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, +/* 0x0c70 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, +/* 0x0c80 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, +/* 0x0c90 */ 72, 0, 0, 16,124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46, +/* 0x0ca0 */ 66, 0,255,144, 56,132,255,192, 47,132, 0, 3,124,154, 35,120, +/* 0x0cb0 */ 64,157, 1, 40, 47,132, 0, 13,124,137, 14,112, 84,128, 7,254, +/* 0x0cc0 */ 57,105,255,255, 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32, +/* 0x0cd0 */ 127, 90, 88, 48, 87, 73, 8, 60,125, 56, 74, 20, 84,128, 8, 60, +/* 0x0ce0 */ 125, 32, 72, 80, 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251, +/* 0x0cf0 */ 125, 41, 3,166, 61, 96, 0,255, 97,107,255,255,127,136, 88, 64, +/* 0x0d00 */ 127, 12,232, 0, 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24, +/* 0x0d10 */ 65,154, 1, 52,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x0d20 */ 125, 37, 3,120, 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12, +/* 0x0d30 */ 124,168, 40, 80, 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4, +/* 0x0d40 */ 124, 9, 3,166, 87, 90, 32, 54, 56,216, 6, 68, 60,128, 0,255, +/* 0x0d50 */ 96,132,255,255, 59,128, 0, 1, 59,224, 0, 1,127,136, 32, 64, +/* 0x0d60 */ 87,231, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,255, 59,120, +/* 0x0d70 */ 65,157, 0, 24, 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46, +/* 0x0d80 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254, +/* 0x0d90 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, +/* 0x0da0 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, +/* 0x0db0 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20, +/* 0x0dc0 */ 124,170, 40, 80, 59,231, 0, 1,125,102, 59, 46,127, 90,227,120, +/* 0x0dd0 */ 87,156, 8, 60, 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72, +/* 0x0de0 */ 127,154,200, 64, 56, 99, 0, 2, 65,157, 0, 92,124, 26,200, 80, +/* 0x0df0 */ 127,245, 0,174, 56, 99,255,255,127,249,169,174, 59, 57, 0, 1, +/* 0x0e00 */ 49, 99,255,255,125, 43, 25, 16,124, 20,200, 16,124, 0, 1, 16, +/* 0x0e10 */ 124, 0, 0,208,125, 43, 0, 57, 64,130,255,212,127,153,160, 64, +/* 0x0e20 */ 65,156,247,172, 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64, +/* 0x0e30 */ 65,157, 0, 32,127,140,232, 0, 56, 96, 0, 1, 65,158, 0, 40, +/* 0x0e40 */ 72, 0, 0, 12, 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1, +/* 0x0e50 */ 125, 40, 2,166,124, 19, 96, 80,144, 14, 0, 0, 56, 96, 0, 0, +/* 0x0e60 */ 147, 41, 0, 0,128, 1, 0,100,185,193, 0, 24,124, 8, 3,166, +/* 0x0e70 */ 56, 33, 0, 96,124, 8, 2,166,148, 33,255,160,189,193, 0, 24, +/* 0x0e80 */ 144, 1, 0,100, 59, 32, 0, 0,137, 67, 0, 2,137, 99, 0, 1, +/* 0x0e90 */ 138, 67, 0, 0,147, 38, 0, 0,147, 41, 0, 0,136, 3, 0, 1, +/* 0x0ea0 */ 125, 40, 3,166,124, 18, 2, 20, 57, 32, 3, 0,125, 41, 0, 48, +/* 0x0eb0 */ 56, 9, 7, 54,127,153, 0, 64, 57, 32, 0, 1,125, 43, 88, 48, +/* 0x0ec0 */ 125, 41, 80, 48, 57, 41,255,255, 57,107,255,255,145, 33, 0, 8, +/* 0x0ed0 */ 124,206, 51,120,124,147, 35,120,124,245, 59,120,125, 20, 67,120, +/* 0x0ee0 */ 145, 97, 0, 12, 59, 3, 0, 4, 59,224, 0, 0, 58,224, 0, 0, +/* 0x0ef0 */ 59, 64, 0, 1, 58, 32, 0, 1, 58, 0, 0, 1, 57,224, 0, 1, +/* 0x0f00 */ 57, 32, 0, 0, 64,156, 0, 28,124, 9, 3,166, 57, 96, 4, 0, +/* 0x0f10 */ 85, 32, 8, 60,125,120, 3, 46, 57, 41, 0, 1, 66, 0,255,244, +/* 0x0f20 */ 127,179, 42, 20,126,108,155,120, 56,160, 0, 0, 57, 0,255,255, +/* 0x0f30 */ 57, 96, 0, 0,127,140,232, 0, 57,107, 0, 1, 47, 11, 0, 4, +/* 0x0f40 */ 84,169, 64, 46, 65,158, 8,156,136, 12, 0, 0, 57,140, 0, 1, +/* 0x0f50 */ 125, 37, 3,120, 64,153,255,224,127,153,160, 64, 64,156, 8,100, +/* 0x0f60 */ 62,192, 0,255, 98,214,255,255,128, 1, 0, 8,127,136,176, 64, +/* 0x0f70 */ 127, 35, 0, 56, 86,224, 32, 54,124, 0, 26, 20, 84, 6, 8, 60, +/* 0x0f80 */ 65,157, 0, 32,127,140,232, 0, 65,158, 8, 88,137, 44, 0, 0, +/* 0x0f90 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x0fa0 */ 124,230,194, 46, 85, 0,170,254,125, 64, 57,214,127,133, 80, 64, +/* 0x0fb0 */ 64,156, 1,172,128, 1, 0, 12, 47,151, 0, 6,127, 41, 0, 56, +/* 0x0fc0 */ 32, 18, 0, 8,127,224, 6, 48,125, 41,144, 48,125, 41, 2, 20, +/* 0x0fd0 */ 29, 41, 6, 0, 32, 7, 8, 0,124, 0, 46,112,124, 7, 2, 20, +/* 0x0fe0 */ 125, 56, 74, 20,124, 6,195, 46,125, 72, 83,120, 56,201, 14,108, +/* 0x0ff0 */ 56, 96, 0, 1, 64,157, 0,180,124, 26,200, 80, 63, 96, 0,255, +/* 0x1000 */ 127,245, 0,174, 99,123,255,255, 87,255, 8, 60, 87,252, 5,238, +/* 0x1010 */ 127,136,216, 64, 87,128, 8, 60, 84,100, 8, 60,124, 6, 2, 20, +/* 0x1020 */ 127, 12,232, 0, 84,169, 64, 46,124,224, 34, 20, 65,157, 0, 24, +/* 0x1030 */ 65,154, 7,176,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x1040 */ 125, 37, 3,120,161,103, 2, 0, 85, 0,170,254,125, 64, 89,214, +/* 0x1050 */ 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, 85,105,217,126, +/* 0x1060 */ 124, 11, 2, 20, 47, 28, 0, 0,125,105, 88, 80,124,131, 35,120, +/* 0x1070 */ 125, 10, 64, 80, 64,156, 0, 20,176, 7, 2, 0,125, 72, 83,120, +/* 0x1080 */ 65,186, 0, 24, 72, 0, 0, 28,177,103, 2, 0,124,170, 40, 80, +/* 0x1090 */ 56,100, 0, 1, 65,154, 0, 12, 47,131, 0,255, 64,157,255,108, +/* 0x10a0 */ 47,131, 0,255, 65,157, 0,132, 63,224, 0,255, 99,255,255,255, +/* 0x10b0 */ 127,136,248, 64, 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46, +/* 0x10c0 */ 124,227, 59,120, 65,157, 0, 24, 65,154, 7, 24,136, 12, 0, 0, +/* 0x10d0 */ 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, +/* 0x10e0 */ 85, 0,170,254,125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64, +/* 0x10f0 */ 124, 0, 46,112, 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80, +/* 0x1100 */ 125,105, 88, 80, 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, +/* 0x1110 */ 72, 0, 0, 16,124,170, 40, 80,125,102, 59, 46, 56,103, 0, 1, +/* 0x1120 */ 47,131, 0,255, 64,157,255,140, 47,151, 0, 3, 84,127, 6, 62, +/* 0x1130 */ 127,249,169,174, 59, 57, 0, 1, 65,157, 0, 12, 58,224, 0, 0, +/* 0x1140 */ 72, 0, 6,120, 47,151, 0, 9, 65,157, 0, 12, 58,247,255,253, +/* 0x1150 */ 72, 0, 6,104, 58,247,255,250, 72, 0, 6, 96,125, 10, 64, 80, +/* 0x1160 */ 127,136,176, 64, 84,224,217,126,124, 0, 56, 80, 86,233, 8, 60, +/* 0x1170 */ 124, 6,195, 46,124,170, 40, 80,124,248, 74, 20, 65,157, 0, 32, +/* 0x1180 */ 127,140,232, 0, 65,158, 6, 92,137, 44, 0, 0, 84,160, 64, 46, +/* 0x1190 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,128, +/* 0x11a0 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 64, +/* 0x11b0 */ 32, 11, 8, 0, 47,151, 0, 6,124, 0, 46,112,124, 11, 2, 20, +/* 0x11c0 */ 176, 7, 1,128,126, 15,131,120,125, 72, 83,120,126, 48,139,120, +/* 0x11d0 */ 56, 0, 0, 0,127, 81,211,120, 64,157, 0, 8, 56, 0, 0, 3, +/* 0x11e0 */ 124, 23, 3,120, 56,216, 6,100, 72, 0, 2, 24,125, 10, 64, 80, +/* 0x11f0 */ 127,136,176, 64, 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80, +/* 0x1200 */ 176, 7, 1,128, 65,157, 0, 32,127,140,232, 0, 65,158, 5,212, +/* 0x1210 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, +/* 0x1220 */ 57,140, 0, 1,161,103, 1,152, 85, 0,170,254,125, 64, 89,214, +/* 0x1230 */ 127,133, 80, 64, 64,156, 0,188, 32, 11, 8, 0,127,138,176, 64, +/* 0x1240 */ 124, 0, 46,112, 86,233, 40, 52,124, 11, 2, 20,125, 56, 74, 20, +/* 0x1250 */ 84,107, 8, 60,176, 7, 1,152,125, 72, 83,120,124,233, 90, 20, +/* 0x1260 */ 65,157, 0, 32,127,140,232, 0, 65,158, 5,120,137, 44, 0, 0, +/* 0x1270 */ 84,160, 64, 46,124, 5, 75,120, 85, 72, 64, 46, 57,140, 0, 1, +/* 0x1280 */ 161,103, 1,224, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, +/* 0x1290 */ 64,156, 0, 72, 32, 11, 8, 0, 47,153, 0, 0,124, 0, 46,112, +/* 0x12a0 */ 124, 11, 2, 20,176, 7, 1,224,125, 72, 83,120, 65,158, 5, 52, +/* 0x12b0 */ 47,151, 0, 6, 57, 32, 0, 9, 64,157, 0, 8, 57, 32, 0, 11, +/* 0x12c0 */ 124, 26,200, 80,127,245, 0,174,125, 55, 75,120,127,249,169,174, +/* 0x12d0 */ 59, 57, 0, 1, 72, 0, 4,228, 85, 96,217,126,124, 0, 88, 80, +/* 0x12e0 */ 124,170, 40, 80,125, 10, 64, 80,176, 7, 1,224, 72, 0, 0,252, +/* 0x12f0 */ 125, 10, 64, 80,127,136,176, 64, 85, 96,217,126,124, 0, 88, 80, +/* 0x1300 */ 124,170, 40, 80,176, 7, 1,152, 65,157, 0, 32,127,140,232, 0, +/* 0x1310 */ 65,158, 4,208,137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, +/* 0x1320 */ 85, 8, 64, 46, 57,140, 0, 1,161,103, 1,176, 85, 0,170,254, +/* 0x1330 */ 125, 64, 89,214,127,133, 80, 64, 64,156, 0, 32, 32, 11, 8, 0, +/* 0x1340 */ 124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120,126, 41,139,120, +/* 0x1350 */ 176, 7, 1,176, 72, 0, 0,140,125, 10, 64, 80,127,136,176, 64, +/* 0x1360 */ 85, 96,217,126,124, 0, 88, 80,124,170, 40, 80,176, 7, 1,176, +/* 0x1370 */ 65,157, 0, 32,127,140,232, 0, 65,158, 4,104,137, 44, 0, 0, +/* 0x1380 */ 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x1390 */ 161,103, 1,200, 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, +/* 0x13a0 */ 64,156, 0, 32, 32, 11, 8, 0,124, 0, 46,112,124, 11, 2, 20, +/* 0x13b0 */ 125, 72, 83,120,126, 9,131,120,176, 7, 1,200, 72, 0, 0, 32, +/* 0x13c0 */ 85, 96,217,126,124, 0, 88, 80,125,233,123,120,176, 7, 1,200, +/* 0x13d0 */ 124,170, 40, 80,125, 10, 64, 80,126, 15,131,120,126, 48,139,120, +/* 0x13e0 */ 127, 81,211,120,125, 58, 75,120, 47,151, 0, 6, 56, 0, 0, 8, +/* 0x13f0 */ 64,157, 0, 8, 56, 0, 0, 11,124, 23, 3,120, 56,216, 10,104, +/* 0x1400 */ 127,136,176, 64, 65,157, 0, 32,127,140,232, 0, 65,158, 3,212, +/* 0x1410 */ 137, 44, 0, 0, 84,160, 64, 46,124, 5, 75,120, 85, 8, 64, 46, +/* 0x1420 */ 57,140, 0, 1,161,102, 0, 0, 85, 0,170,254,125, 64, 89,214, +/* 0x1430 */ 127,133, 80, 64, 64,156, 0, 48, 32, 11, 8, 0, 84,105, 32, 54, +/* 0x1440 */ 125, 38, 74, 20,124, 0, 46,112,124, 11, 2, 20,125, 72, 83,120, +/* 0x1450 */ 56,137, 0, 4, 59,128, 0, 0, 59, 96, 0, 3,176, 6, 0, 0, +/* 0x1460 */ 72, 0, 0,156,125, 10, 64, 80,127,136,176, 64, 85, 96,217,126, +/* 0x1470 */ 124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 0, 65,157, 0, 32, +/* 0x1480 */ 127,140,232, 0, 65,158, 3, 92,137, 44, 0, 0, 84,160, 64, 46, +/* 0x1490 */ 124, 5, 75,120, 85, 8, 64, 46, 57,140, 0, 1,161,102, 0, 2, +/* 0x14a0 */ 85, 0,170,254,125, 64, 89,214,127,133, 80, 64, 64,156, 0, 48, +/* 0x14b0 */ 32, 11, 8, 0, 84,105, 32, 54,125, 38, 74, 20,124, 0, 46,112, +/* 0x14c0 */ 124, 11, 2, 20,125, 72, 83,120, 56,137, 1, 4, 59,128, 0, 8, +/* 0x14d0 */ 59, 96, 0, 3,176, 6, 0, 2, 72, 0, 0, 36, 85, 96,217,126, +/* 0x14e0 */ 124, 0, 88, 80,124,170, 40, 80,176, 6, 0, 2,125, 10, 64, 80, +/* 0x14f0 */ 56,134, 2, 4, 59,128, 0, 16, 59, 96, 0, 8,127,105, 3,166, +/* 0x1500 */ 63,224, 0,255, 99,255,255,255, 56, 96, 0, 1,127,136,248, 64, +/* 0x1510 */ 84,103, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,227, 59,120, +/* 0x1520 */ 65,157, 0, 24, 65,154, 2,188,136, 12, 0, 0, 85, 8, 64, 46, +/* 0x1530 */ 57,140, 0, 1,125, 37, 3,120,125,100, 58, 46, 85, 0,170,254, +/* 0x1540 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, +/* 0x1550 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, +/* 0x1560 */ 64,156, 0, 16,125, 72, 83,120,124, 4, 59, 46, 72, 0, 0, 16, +/* 0x1570 */ 124,170, 40, 80, 56,103, 0, 1,125,100, 59, 46, 66, 0,255,144, +/* 0x1580 */ 56, 0, 0, 1, 47,151, 0, 3,124, 0,216, 48,124, 96, 24, 80, +/* 0x1590 */ 124, 99,226, 20, 65,157, 1,232, 47,131, 0, 3, 58,247, 0, 7, +/* 0x15a0 */ 124,105, 27,120, 64,157, 0, 8, 57, 32, 0, 3, 85, 41, 56, 48, +/* 0x15b0 */ 125, 56, 74, 20, 56,201, 3, 96, 57, 32, 0, 6,125, 41, 3,166, +/* 0x15c0 */ 63,224, 0,255, 99,255,255,255, 56,128, 0, 1,127,136,248, 64, +/* 0x15d0 */ 84,135, 8, 60,127, 12,232, 0, 84,169, 64, 46,124,228, 59,120, +/* 0x15e0 */ 65,157, 0, 24, 65,154, 1,252,136, 12, 0, 0, 85, 8, 64, 46, +/* 0x15f0 */ 57,140, 0, 1,125, 37, 3,120,125,102, 58, 46, 85, 0,170,254, +/* 0x1600 */ 125, 64, 89,214, 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, +/* 0x1610 */ 85,105,217,126,124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, +/* 0x1620 */ 64,156, 0, 16,125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 16, +/* 0x1630 */ 124,170, 40, 80, 56,135, 0, 1,125,102, 59, 46, 66, 0,255,144, +/* 0x1640 */ 56,132,255,192, 47,132, 0, 3,124,154, 35,120, 64,157, 1, 40, +/* 0x1650 */ 47,132, 0, 13,124,137, 14,112, 84,128, 7,254, 57,105,255,255, +/* 0x1660 */ 96, 26, 0, 2,125,105, 3,166, 65,157, 0, 32,127, 90, 88, 48, +/* 0x1670 */ 87, 73, 8, 60,125, 56, 74, 20, 84,128, 8, 60,125, 32, 72, 80, +/* 0x1680 */ 56,201, 5, 94, 72, 0, 0,100, 57, 41,255,251,125, 41, 3,166, +/* 0x1690 */ 61, 96, 0,255, 97,107,255,255,127,136, 88, 64,127, 12,232, 0, +/* 0x16a0 */ 84,169, 64, 46, 87, 90, 8, 60, 65,157, 0, 24, 65,154, 1, 52, +/* 0x16b0 */ 136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1,125, 37, 3,120, +/* 0x16c0 */ 85, 8,248,126,127,133, 64, 64, 65,156, 0, 12,124,168, 40, 80, +/* 0x16d0 */ 99, 90, 0, 1, 66, 0,255,196, 56, 0, 0, 4,124, 9, 3,166, +/* 0x16e0 */ 87, 90, 32, 54, 56,216, 6, 68, 60,128, 0,255, 96,132,255,255, +/* 0x16f0 */ 59,128, 0, 1, 59,224, 0, 1,127,136, 32, 64, 87,231, 8, 60, +/* 0x1700 */ 127, 12,232, 0, 84,169, 64, 46,124,255, 59,120, 65,157, 0, 24, +/* 0x1710 */ 65,154, 0,208,136, 12, 0, 0, 85, 8, 64, 46, 57,140, 0, 1, +/* 0x1720 */ 125, 37, 3,120,125,102, 58, 46, 85, 0,170,254,125, 64, 89,214, +/* 0x1730 */ 32, 11, 8, 0,127,133, 80, 64,124, 0, 46,112, 85,105,217,126, +/* 0x1740 */ 124, 11, 2, 20,125, 10, 64, 80,125,105, 88, 80, 64,156, 0, 16, +/* 0x1750 */ 125, 72, 83,120,124, 6, 59, 46, 72, 0, 0, 20,124,170, 40, 80, +/* 0x1760 */ 59,231, 0, 1,125,102, 59, 46,127, 90,227,120, 87,156, 8, 60, +/* 0x1770 */ 66, 0,255,136, 55, 90, 0, 1, 65,130, 0, 72,127,154,200, 64, +/* 0x1780 */ 56, 99, 0, 2, 65,157, 0, 92,124, 26,200, 80,127,245, 0,174, +/* 0x1790 */ 56, 99,255,255,127,249,169,174, 59, 57, 0, 1, 49, 99,255,255, +/* 0x17a0 */ 125, 43, 25, 16,124, 20,200, 16,124, 0, 1, 16,124, 0, 0,208, +/* 0x17b0 */ 125, 43, 0, 57, 64,130,255,212,127,153,160, 64, 65,156,247,172, +/* 0x17c0 */ 60, 0, 0,255, 96, 0,255,255,127,136, 0, 64, 65,157, 0, 32, +/* 0x17d0 */ 127,140,232, 0, 56, 96, 0, 1, 65,158, 0, 40, 72, 0, 0, 12, +/* 0x17e0 */ 56, 96, 0, 1, 72, 0, 0, 28, 57,140, 0, 1,125, 40, 2,166, +/* 0x17f0 */ 124, 19, 96, 80,144, 14, 0, 0, 56, 96, 0, 0,147, 41, 0, 0, +/* 0x1800 */ 128, 1, 0,100,185,193, 0, 24,124, 8, 3,166, 56, 33, 0, 96, +/* 0x1810 */ 128,161, 0, 12,128,225, 0, 8,128,165, 0, 0,128, 33, 0, 0, +/* 0x1820 */ 124,165, 58, 20,128, 1, 0, 8, 56,165,255,255,124, 8, 3,166, +/* 0x1830 */ 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x1840 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, +/* 0x1850 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, +/* 0x1860 */ 50, 45,112,111,119,101,114,112, 99, 10, 10, 83,101, 99,116,105, +/* 0x1870 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, +/* 0x1880 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, +/* 0x1890 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, +/* 0x18a0 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, +/* 0x18b0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 76, +/* 0x18c0 */ 73, 78, 85, 88, 48, 48, 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x18d0 */ 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x18e0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x18f0 */ 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1900 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1910 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 76, 73, 78, 85, 88, 48, 49, +/* 0x1920 */ 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, +/* 0x1930 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1940 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 99, 32, 32, 50, +/* 0x1950 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1960 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, +/* 0x1970 */ 32, 50, 32, 76, 73, 78, 85, 88, 48, 50, 48, 32, 32, 32, 32, 32, +/* 0x1980 */ 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, +/* 0x1990 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x19a0 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x19b0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, +/* 0x19c0 */ 89, 10, 32, 32, 51, 32, 76, 73, 78, 85, 88, 48, 51, 48, 32, 32, +/* 0x19d0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19f0 */ 32, 32, 48, 48, 48, 48, 48, 48, 97, 56, 32, 32, 50, 42, 42, 48, +/* 0x1a00 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, +/* 0x1a10 */ 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, +/* 0x1a20 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, +/* 0x1a30 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1a40 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 56, 32, 32, 50, +/* 0x1a50 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1a60 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, +/* 0x1a70 */ 32, 53, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1a80 */ 32, 48, 48, 48, 48, 48, 49, 50, 99, 32, 32, 48, 48, 48, 48, 48, +/* 0x1a90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1aa0 */ 48, 48, 48, 48, 49, 57, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x1ab0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, +/* 0x1ac0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 78, 82, 86, +/* 0x1ad0 */ 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x1ae0 */ 49, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 99, +/* 0x1b00 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1b10 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1b20 */ 76, 89, 10, 32, 32, 55, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, +/* 0x1b30 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 99, 32, 32, 48, +/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b50 */ 48, 32, 32, 48, 48, 48, 48, 48, 52, 48, 99, 32, 32, 50, 42, 42, +/* 0x1b60 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, +/* 0x1b70 */ 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 67, 70, 76, 85, 83, 72, +/* 0x1b80 */ 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, +/* 0x1b90 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1ba0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 50, 56, 32, 32, +/* 0x1bb0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x1bc0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, +/* 0x1bd0 */ 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 52, +/* 0x1c00 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1c10 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, +/* 0x1c20 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, +/* 0x1c30 */ 48, 48, 48, 48, 56, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c40 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1c50 */ 48, 52, 52, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1c60 */ 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, +/* 0x1c70 */ 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, +/* 0x1c80 */ 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 57, 99, +/* 0x1c90 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1ca0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52,100, 56, 32, 32, +/* 0x1cb0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, +/* 0x1cc0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 76, 90, 77, +/* 0x1cd0 */ 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x1ce0 */ 57, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1cf0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,101, 55, +/* 0x1d00 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1d10 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, +/* 0x1d20 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, +/* 0x1d30 */ 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1d50 */ 49, 56, 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1d60 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, +/* 0x1d70 */ 49, 52, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, +/* 0x1d80 */ 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1d90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1da0 */ 48, 48, 48, 49, 56, 51, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x1db0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, +/* 0x1dc0 */ 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, +/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1de0 */ 32, 76, 73, 78, 85, 88, 48, 50, 48, 9, 48, 48, 48, 48, 48, 48, +/* 0x1df0 */ 48, 48, 32, 76, 73, 78, 85, 88, 48, 50, 48, 10, 48, 48, 48, 48, +/* 0x1e00 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 73, 78, +/* 0x1e10 */ 85, 88, 48, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1e20 */ 73, 78, 85, 88, 48, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e30 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, +/* 0x1e40 */ 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, +/* 0x1e50 */ 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1e60 */ 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, +/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1e80 */ 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1e90 */ 32, 32,100, 32, 32, 76, 73, 78, 85, 88, 48, 48, 48, 9, 48, 48, +/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 32, 76, 73, 78, 85, 88, 48, 48, 48, 10, +/* 0x1eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1ec0 */ 32, 76, 73, 78, 85, 88, 48, 49, 48, 9, 48, 48, 48, 48, 48, 48, +/* 0x1ed0 */ 48, 48, 32, 76, 73, 78, 85, 88, 48, 49, 48, 10, 48, 48, 48, 48, +/* 0x1ee0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, +/* 0x1ef0 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, +/* 0x1f00 */ 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, +/* 0x1f10 */ 100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f20 */ 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f30 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, +/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, +/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, +/* 0x1f60 */ 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, +/* 0x1f70 */ 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x1f80 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 9, 48, 48, 48, 48, +/* 0x1f90 */ 48, 48, 48, 48, 32, 76, 90, 77, 65, 10, 48, 48, 48, 48, 48, 48, +/* 0x1fa0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x1fb0 */ 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1fc0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x1fd0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x1fe0 */ 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x1ff0 */ 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x2000 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, +/* 0x2010 */ 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, +/* 0x2020 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, +/* 0x2030 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, +/* 0x2040 */ 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 85, 80, 88, +/* 0x2050 */ 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x2060 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, +/* 0x2070 */ 48, 48, 48, 48, 48, 32,102,105,108,116,101,114, 95,108,101,110, +/* 0x2080 */ 103,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, +/* 0x2090 */ 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, +/* 0x20a0 */ 48, 48, 48, 32,102,105,108,116,101,114, 95, 99,116,111, 10, 10, +/* 0x20b0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, +/* 0x20c0 */ 68, 83, 32, 70, 79, 82, 32, 91, 76, 73, 78, 85, 88, 48, 48, 48, +/* 0x20d0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, +/* 0x20e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, +/* 0x20f0 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, +/* 0x2100 */ 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, 32, 32, 32, 76, +/* 0x2110 */ 73, 78, 85, 88, 48, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 52, +/* 0x2120 */ 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 50, 52, 32, 32, 32, 32, +/* 0x2130 */ 32, 32, 32, 76, 73, 78, 85, 88, 48, 50, 48, 10, 10, 82, 69, 76, +/* 0x2140 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x2150 */ 70, 79, 82, 32, 91, 76, 73, 78, 85, 88, 48, 49, 48, 93, 58, 10, +/* 0x2160 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x2170 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x2180 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 80, 80, 67, 95, +/* 0x2190 */ 65, 68, 68, 82, 51, 50, 32, 32, 32, 32, 32, 32,102,105,108,116, +/* 0x21a0 */ 101,114, 95,108,101,110,103,116,104, 10, 48, 48, 48, 48, 48, 48, +/* 0x21b0 */ 48, 52, 32, 82, 95, 80, 80, 67, 95, 65, 68, 68, 82, 51, 50, 32, +/* 0x21c0 */ 32, 32, 32, 32, 32,102,105,108,116,101,114, 95, 99,116,111, 10, +/* 0x21d0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x21e0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, +/* 0x21f0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x2200 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x2210 */ 69, 10, 48, 48, 48, 48, 48, 48, 57, 48, 32, 82, 95, 80, 80, 67, +/* 0x2220 */ 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x2230 */ 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, +/* 0x2240 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, +/* 0x2250 */ 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, +/* 0x2260 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2270 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, +/* 0x2280 */ 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, 32, +/* 0x2290 */ 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, +/* 0x22a0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, +/* 0x22b0 */ 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, 70, +/* 0x22c0 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, +/* 0x22d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, +/* 0x22e0 */ 48, 48, 48, 48, 98, 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, +/* 0x22f0 */ 49, 52, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, +/* 0x2300 */ 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, +/* 0x2310 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, +/* 0x2320 */ 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x2330 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2340 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2350 */ 52, 32, 82, 95, 80, 80, 67, 95, 82, 69, 76, 49, 52, 32, 32, 32, +/* 0x2360 */ 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 43, 48, +/* 0x2370 */ 120, 48, 48, 48, 48, 48, 48, 50, 48, 10 }; diff --git a/src/stub/src/powerpc-linux.kernel.vmlinux.S b/src/stub/src/powerpc-linux.kernel.vmlinux.S index 09c6cfe9..a3c1dadd 100644 --- a/src/stub/src/powerpc-linux.kernel.vmlinux.S +++ b/src/stub/src/powerpc-linux.kernel.vmlinux.S @@ -90,6 +90,42 @@ section NRV2D section NRV2E #include "arch/powerpc/32/nrv2e_d.S" + section NRV_TAIL +eof_nrv: +#define dst0 a4 +#define tmp a1 + lwz dst0,0(ldst) // original dst + mtlr t3 // return address + subf a0,lsrc,src + subf tmp,dst0,dst // -1+ dst length + addi a0,a0,1 // return 0: good; else: bad [+1: correct for lbzu] + addi tmp,tmp,1 // dst length + stw tmp,0(ldst) +#undef tmp + +// CACHELINE=32 is the observed minimum line size of any cache. +// Some caches may have larger lines, but it is cumbersome to lookup +// {AT_DCACHEBSIZE, AT_ICACHEBSIZE, AT_UCACHEBSIZE: /usr/include/elf.h}, +// then save the correct size in a variable {where to put it?}, or to modify +// the two instructions here. If a cache has larger lines, then we expect +// that the second dcbst (or icbi) on a the same line will be fast. +// If not, then too bad. + + section CFLUSH // In: a2=dst= &highest stored byte; a4=dst0= &lowest stored byte +CACHELINE=32 + ori dst0,dst0,-1+ CACHELINE // highest addr on cache line +cfl_nrv: + dcbst 0,dst0 // initiate store (modified) cacheline to memory + cmpl cr0,dst0,dst // did we cover the highest-addressed byte? + icbi 0,dst0 // discard instructions from cacheline + addi dst0,dst0,CACHELINE // highest addr on next line + blt cr0,cfl_nrv // not done yet +#undef dst0 + sync // wait for all memory operations to finish + isync // discard prefetched instructions (if any) +cfl_ret: + ret + #undef hibit #undef src diff --git a/src/stub/tmp/amd64-darwin.dylib-entry.bin.dump b/src/stub/tmp/amd64-darwin.dylib-entry.bin.dump new file mode 100644 index 00000000..48f2b4d9 --- /dev/null +++ b/src/stub/tmp/amd64-darwin.dylib-entry.bin.dump @@ -0,0 +1,61 @@ +file format elf64-x86-64 + +Sections: +Idx Name Size VMA LMA File off Algn Flags + 0 MACHMAINX 00000015 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY + 1 NRV_HEAD 00000066 0000000000000000 0000000000000000 00000055 2**0 CONTENTS, READONLY + 2 NRV2E 000000b7 0000000000000000 0000000000000000 000000bb 2**0 CONTENTS, RELOC, READONLY + 3 NRV2D 0000009e 0000000000000000 0000000000000000 00000172 2**0 CONTENTS, RELOC, READONLY + 4 NRV2B 00000090 0000000000000000 0000000000000000 00000210 2**0 CONTENTS, RELOC, READONLY + 5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 000002a0 2**0 CONTENTS, RELOC, READONLY + 6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000304 2**0 CONTENTS, READONLY + 7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000cfb 2**0 CONTENTS, READONLY + 8 LZMA_DEC30 00000014 0000000000000000 0000000000000000 000016f2 2**0 CONTENTS, READONLY + 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001706 2**0 CONTENTS, READONLY + 10 MACHMAINY 00000011 0000000000000000 0000000000000000 00001706 2**0 CONTENTS, READONLY + 11 MACHMAINZ 00000135 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, RELOC, READONLY +SYMBOL TABLE: +0000000000000000 l d MACHMAINX 0000000000000000 MACHMAINX +0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD +0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 +0000000000000000 l d MACHMAINY 0000000000000000 MACHMAINY +0000000000000000 l d MACHMAINZ 0000000000000000 MACHMAINZ +0000000000000000 l d NRV2E 0000000000000000 NRV2E +0000000000000000 l d NRV2D 0000000000000000 NRV2D +0000000000000000 l d NRV2B 0000000000000000 NRV2B +0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00 +0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10 +0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20 +0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL +0000000000000000 g MACHMAINX 0000000000000000 _start +0000000000000011 g MACHMAINY 0000000000000000 end_decompress + +RELOCATION RECORDS FOR [MACHMAINX]: +OFFSET TYPE VALUE +0000000000000009 R_X86_64_PC32 MACHMAINZ+0xffffffffffffffff + +RELOCATION RECORDS FOR [NRV2E]: +OFFSET TYPE VALUE +00000000000000ae R_X86_64_PC32 NRV_HEAD+0x0000000000000021 +000000000000005b R_X86_64_PC32 MACHMAINY+0xfffffffffffffffc + +RELOCATION RECORDS FOR [NRV2D]: +OFFSET TYPE VALUE +0000000000000095 R_X86_64_PC32 NRV_HEAD+0x0000000000000021 +000000000000005b R_X86_64_PC32 MACHMAINY+0xfffffffffffffffc + +RELOCATION RECORDS FOR [NRV2B]: +OFFSET TYPE VALUE +000000000000008a R_X86_64_PC32 NRV_HEAD+0x0000000000000021 +0000000000000052 R_X86_64_PC32 MACHMAINY+0xfffffffffffffffc + +RELOCATION RECORDS FOR [LZMA_ELF00]: +OFFSET TYPE VALUE +0000000000000006 R_X86_64_PC32 LZMA_DEC30+0x0000000000000010 + +RELOCATION RECORDS FOR [MACHMAINZ]: +OFFSET TYPE VALUE +000000000000000f R_X86_64_32 MACHMAINZ+0x0000000000000135 +0000000000000014 R_X86_64_32 MACHMAINX+0x000000000000000d +0000000000000048 R_X86_64_32 MACHMAINZ+0x0000000000000135 +000000000000004e R_X86_64_32 MACHMAINX+0x000000000000000d diff --git a/src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump b/src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump index 8a8120ae..4fc3d3f4 100644 --- a/src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump +++ b/src/stub/tmp/powerpc-linux.kernel.vmlinux.bin.dump @@ -9,21 +9,25 @@ Idx Name Size VMA LMA File off Algn Flags 4 NRV2B 000000f0 00000000 00000000 000000a8 2**0 CONTENTS, RELOC, READONLY 5 NRV2D 0000012c 00000000 00000000 00000198 2**0 CONTENTS, RELOC, READONLY 6 NRV2E 00000148 00000000 00000000 000002c4 2**0 CONTENTS, RELOC, READONLY - 7 LZMA 00000000 00000000 00000000 0000040c 2**0 CONTENTS, READONLY - 8 LZMA_ELF00 0000008c 00000000 00000000 0000040c 2**0 CONTENTS, RELOC, READONLY - 9 LZMA_DEC10 0000099c 00000000 00000000 00000498 2**0 CONTENTS, READONLY - 10 LZMA_DEC20 0000099c 00000000 00000000 00000e34 2**0 CONTENTS, READONLY - 11 LZMA_DEC30 00000020 00000000 00000000 000017d0 2**0 CONTENTS, READONLY - 12 UPX1HEAD 00000020 00000000 00000000 000017f0 2**0 CONTENTS, READONLY + 7 NRV_TAIL 0000001c 00000000 00000000 0000040c 2**0 CONTENTS, READONLY + 8 CFLUSH 00000024 00000000 00000000 00000428 2**0 CONTENTS, READONLY + 9 LZMA 00000000 00000000 00000000 0000044c 2**0 CONTENTS, READONLY + 10 LZMA_ELF00 0000008c 00000000 00000000 0000044c 2**0 CONTENTS, RELOC, READONLY + 11 LZMA_DEC10 0000099c 00000000 00000000 000004d8 2**0 CONTENTS, READONLY + 12 LZMA_DEC20 0000099c 00000000 00000000 00000e74 2**0 CONTENTS, READONLY + 13 LZMA_DEC30 00000020 00000000 00000000 00001810 2**0 CONTENTS, READONLY + 14 UPX1HEAD 00000020 00000000 00000000 00001830 2**0 CONTENTS, READONLY SYMBOL TABLE: 00000000 l d LINUX020 00000000 LINUX020 00000000 l d LINUX030 00000000 LINUX030 +00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d LZMA_DEC30 00000000 LZMA_DEC30 00000000 l d LINUX000 00000000 LINUX000 00000000 l d LINUX010 00000000 LINUX010 00000000 l d NRV2B 00000000 NRV2B 00000000 l d NRV2D 00000000 NRV2D 00000000 l d NRV2E 00000000 NRV2E +00000000 l d CFLUSH 00000000 CFLUSH 00000000 l d LZMA 00000000 LZMA 00000000 l d LZMA_ELF00 00000000 LZMA_ELF00 00000000 l d LZMA_DEC10 00000000 LZMA_DEC10 @@ -31,7 +35,6 @@ SYMBOL TABLE: 00000000 l d UPX1HEAD 00000000 UPX1HEAD 00000000 *UND* 00000000 filter_length 00000000 *UND* 00000000 filter_cto -00000000 *UND* 00000000 eof_nrv RELOCATION RECORDS FOR [LINUX000]: OFFSET TYPE VALUE @@ -45,15 +48,15 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [NRV2B]: OFFSET TYPE VALUE -00000090 R_PPC_REL14 eof_nrv +00000090 R_PPC_REL14 NRV_TAIL RELOCATION RECORDS FOR [NRV2D]: OFFSET TYPE VALUE -000000b4 R_PPC_REL14 eof_nrv +000000b4 R_PPC_REL14 NRV_TAIL RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE -000000b4 R_PPC_REL14 eof_nrv +000000b4 R_PPC_REL14 NRV_TAIL RELOCATION RECORDS FOR [LZMA_ELF00]: OFFSET TYPE VALUE diff --git a/src/version.h b/src/version.h index 5350b8be..8c684744 100644 --- a/src/version.h +++ b/src/version.h @@ -1,6 +1,6 @@ -#define UPX_VERSION_HEX 0x030500 /* 03.05.00 */ -#define UPX_VERSION_STRING "3.05" -#define UPX_VERSION_STRING4 "3.05" -#define UPX_VERSION_DATE "Apr 27th 2010" -#define UPX_VERSION_DATE_ISO "2010-04-27" +#define UPX_VERSION_HEX 0x030600 /* 03.06.00 */ +#define UPX_VERSION_STRING "3.06" +#define UPX_VERSION_STRING4 "3.06" +#define UPX_VERSION_DATE "Apr 28th 2010" +#define UPX_VERSION_DATE_ISO "2010-04-28" #define UPX_VERSION_YEAR "2010"