diff --git a/src/help.cpp b/src/help.cpp index ecc549c2..145b6f7a 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -196,7 +196,8 @@ void show_help(int x) con_fprintf(f, " --all-methods try all available compression methods\n" " --8-bit uses 8 bit size compression [default: 32 bit]\n" - " --console-run enables client/host transfer compatibility\n" + " --8mb-ram 8 megabyte memory limit [default: 2 mb]\n" + " --boot-only disables client/host transfer compatibility\n" " --no-align don't align to 2048 bytes [enables: --console-run]\n" "\n"); fg = con_fg(f,FG_YELLOW); diff --git a/src/main.cpp b/src/main.cpp index cc915a5b..437019e0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -760,6 +760,9 @@ static int do_option(int optc, const char *arg) case 672: opt->ps1_exe.do_8bit = true; break; + case 673: + opt->ps1_exe.do_8mb = false; + break; case '\0': return -1; @@ -894,6 +897,7 @@ static const struct mfx_option longopts[] = {"boot-only", 0x10, 0, 670}, {"no-align", 0x10, 0, 671}, {"8-bit", 0x10, 0, 672}, + {"8mb-ram", 0x10, 0, 673}, { NULL, 0, NULL, 0 } }; diff --git a/src/options.h b/src/options.h index ce67d4c4..396fbf46 100644 --- a/src/options.h +++ b/src/options.h @@ -139,6 +139,7 @@ struct options_t { bool boot_only; bool no_align; bool do_8bit; + bool do_8mb; } ps1_exe; struct { unsigned blocksize; diff --git a/src/p_ps1.cpp b/src/p_ps1.cpp index 3a693b88..c506e839 100644 --- a/src/p_ps1.cpp +++ b/src/p_ps1.cpp @@ -38,21 +38,26 @@ #include "linker.h" static const -#include "stub/mipsel.r3000-ps1-boot.h" -static const -#include "stub/mipsel.r3000-ps1-console.h" +#include "stub/mipsel.r3000-ps1.h" -#define MIPS_HI(a) ((a) >> 16) +#if 0 +// lui / ori +# define MIPS_HI(a) ((a) >> 16) +#else +// lui / addiu +# define MIPS_HI(a) (((a) >> 16) + (((a) & 0x8000) >> 15)) +#endif #define MIPS_LO(a) ((a) & 0xffff) #define MIPS_JP(a) ((0x08 << 24) | (((a) & 0x0fffffff) >> 2)) +#define MIPS_PC16(a) ((a) >> 2) #define TIL_ALIGNED(a,b) (((b) - ((a) & ((b) - 1))) & (b) - 1) #define CD_SEC 2048 #define PS_HDR_SIZE CD_SEC -#define PS_RAM_SIZE 0x200000 +#define PS_RAM_SIZE ram_size #define PS_MIN_SIZE (PS_HDR_SIZE*3) -#define PS_MAX_SIZE 0x1e8000 +#define PS_MAX_SIZE ((PS_RAM_SIZE*95) / 100) #define SZ_IH_BKUP (10 * sizeof(LE32)) #define HD_CODE_OFS (sizeof(ps1_exe_t)) @@ -85,12 +90,11 @@ PackPs1::PackPs1(InputFile *f) : COMPILE_TIME_ASSERT(PS_HDR_SIZE > sizeof(ps1_exe_t)); COMPILE_TIME_ASSERT(SZ_IH_BKUP == 40); #if 0 // 1 || defined(WITH_NRV) - COMPILE_TIME_ASSERT(sizeof(nrv_boot_loader) == 3935); - COMPILE_TIME_ASSERT(NRV_BOOT_LOADER_CRC32 == 0x0ac25782); - COMPILE_TIME_ASSERT(sizeof(nrv_con_loader) == 2829); - COMPILE_TIME_ASSERT(NRV_CON_LOADER_CRC32 == 0x923b55c4); + COMPILE_TIME_ASSERT(sizeof(nrv_loader) == 14812); + COMPILE_TIME_ASSERT(NRV_BOOT_LOADER_CRC32 == 0x0); #endif fdata_size = file_size - PS_HDR_SIZE; + ram_size = !opt->ps1_exe.do_8mb ? 0x200000 : 0x800000; } @@ -118,10 +122,15 @@ Linker* PackPs1::newLinker() const virtual void relocate1(Relocation *rel, upx_byte *location, unsigned value, const char *type) { - if (strcmp(type, "R_MIPS_LO16") == 0) - set_le16(location, get_le16(location) + value); - else if (strcmp(type, "R_MIPS_HI16") == 0) - set_le16(location, get_le16(location) + (value >> 16)); + if (strcmp(type, "R_MIPS_HI16") == 0) + set_le16(location, get_le16(location) + MIPS_HI(value)); + else if (strcmp(type, "R_MIPS_LO16") == 0) + set_le16(location, get_le16(location) + MIPS_LO(value)); + else if (strcmp(type, "R_MIPS_PC16") == 0) + { + value -= rel->section->offset + rel->offset; + set_le16(location, get_le16(location) + MIPS_PC16(value)); + } else if (strcmp(type, "R_MIPS_32") == 0) set_le32(location, get_le32(location) + value); else @@ -181,41 +190,6 @@ bool PackPs1::checkFileHeader() } -/************************************************************************* -// patch util -**************************************************************************/ - -void PackPs1::patch_mips_le(void *b, int blen, const void *old, unsigned new_) -{ - size_t patch_len = strlen((const char*)old); - - if (patch_len == 2) - { - unsigned char w[2]; - - set_le16(w, get_be16(old)); - patch_le16(b, blen, w, MIPS_LO(new_)); - } - else if (patch_len == 4) - { - unsigned char w[4]; - - set_le32(w, get_be32(old)); - int boff = find(b, blen, w, 4); - - if (boff == -1) - { - patch_le16(b, blen, &w[0], MIPS_LO(new_)); - patch_le16(b, blen, &w[2], MIPS_HI(new_)); - } - else - patch_le32((unsigned char *)b + boff, (blen-boff), &w, new_); - } - else - throwInternalError("bad marker length"); -} - - /************************************************************************* // **************************************************************************/ @@ -245,7 +219,7 @@ bool PackPs1::canPack() throwCantPack("unsupported header flags (try --force)"); if (!opt->force && file_size < PS_MIN_SIZE) throwCantPack("file is too small (try --force)"); - if (!opt->force && file_size > PS_MAX_SIZE) + if (!opt->force && file_size > (off_t) PS_MAX_SIZE) throwCantPack("file is too big (try --force)"); return true; } @@ -257,40 +231,52 @@ bool PackPs1::canPack() int PackPs1::buildLoader(const Filter *) { - if (isCon) - initLoader(nrv_con_loader,sizeof(nrv_con_loader)); - else - initLoader(nrv_boot_loader,sizeof(nrv_boot_loader)); + initLoader(nrv_loader,sizeof(nrv_loader)); - addLoader("PS1START", - isCon ? ph.c_len & 3 ? "PS1PADCD" : "" : "PS1ENTRY", - ih.tx_ptr & 0xffff ? "PS1CONHL" : "PS1CONHI", - isCon ? "PS1ENTRY" : "", - NULL); + if (isCon) + addLoader("ps1.con.start", ph.c_len & 3 ? "ps1.con.padcd" : "", + ih.tx_ptr & 0xffff ? "ps1.con.nrv.ptr" : "ps1.con.nrv.ptr.hi", + "ps1.con.entry", + NULL); + else + addLoader("ps1.cdb.start", "ps1.cdb.entry", + ih.tx_ptr & 0xffff ? "ps1.cdb.nrv.ptr" : "ps1.cdb.nrv.ptr.hi", + NULL); if (ph.method == M_NRV2B_8) - addLoader("PS1N2B08", NULL); + addLoader(isCon ? "ps1.small.nrv2b" : + "ps1.cdb.nrv2b.8bit", NULL); else if (ph.method == M_NRV2D_8) - addLoader("PS1N2D08", NULL); + addLoader(isCon ? "ps1.small.nrv2d" : + "ps1.cdb.nrv2d.8bit", NULL); else if (ph.method == M_NRV2E_8) - addLoader("PS1N2E08", NULL); + addLoader(isCon ? "ps1.small.nrv2e" : + "ps1.cdb.nrv2e.8bit", NULL); else if (ph.method == M_NRV2B_LE32) - addLoader("PS1N2B32", NULL); + addLoader(isCon ? "ps1.small.nrv2b" : + "ps1.cdb.nrv2b.32bit", NULL); else if (ph.method == M_NRV2D_LE32) - addLoader("PS1N2D32", NULL); + addLoader(isCon ? "ps1.small.nrv2d" : + "ps1.cdb.nrv2d.32bit", NULL); else if (ph.method == M_NRV2E_LE32) - addLoader("PS1N2E32", NULL); + addLoader(isCon ? "ps1.small.nrv2e" : + "ps1.cdb.nrv2e.32bit", NULL); else throwInternalError("unknown compression method"); + if (isCon) + addLoader(is32Bit ? "ps1.getbit.32bit.sub" : "ps1.getbit.8bit.sub", NULL); + if (sa_cnt) - addLoader(sa_cnt > (0x10000 << 2) ? "PS1MSETB" : "PS1MSETS", - ih.tx_len & 3 ? "PS1MSETU" : "PS1MSETA", + addLoader(sa_cnt > (0x10000 << 2) ? "ps1.mset.long" : "ps1.mset.short", + ih.tx_len & 3 ? "ps1.mset.unaligned" : "ps1.mset.aligned", NULL); - addLoader("PS1EXITC", "IDENTSTR", "UPX1HEAD", - isCon ? "PS1SREGS" : "", - NULL); + addLoader(isCon ? "ps1.con.exit" : "ps1.cdb.exit", "IDENTSTR", "UPX1HEAD", NULL); + + if (isCon) + addLoader("ps1.con.regs", + is32Bit ? "ps1.getbit.32bit.size" : "ps1.getbit.8bit.size", NULL); freezeLoader(); return getLoaderSize(); @@ -375,11 +361,11 @@ void PackPs1::pack(OutputFile *fo) if (isCon) { e_len = lsize - h_len; - d_len = e_len - getLoaderSectionStart("PS1ENTRY"); + d_len = e_len - getLoaderSectionStart("ps1.con.entry"); } else { - d_len = (lsize - h_len) - getLoaderSectionStart("PS1ENTRY"); + d_len = (lsize - h_len) - getLoaderSectionStart("ps1.cdb.entry"); e_len = (lsize - d_len) - h_len; } @@ -406,19 +392,26 @@ void PackPs1::pack(OutputFile *fo) if (isCon) { + const char *p = is32Bit ? "ps1.getbit.32bit.sub" : "ps1.getbit.8bit.sub"; + unsigned decomp_done = getLoaderSectionStart(p); + + p = is32Bit ? "ps1.getbit.32bit.size" : "ps1.getbit.8bit.size"; + decomp_done += get_le32(&loader[getLoaderSectionStart(p)]); + + linker->defineSymbol("PC", pad_code); linker->defineSymbol("DCRT", entry + (e_len - d_len)); linker->defineSymbol("LS", - d_len + get_le32(&loader[getLoaderSectionStart("PS1SREGS")])); - + d_len + get_le32(&loader[getLoaderSectionStart("ps1.con.regs")])); + linker->defineSymbol("decomp_done", decomp_done); linker->relocate(); memcpy(loader, getLoader(), lsize); - patchPackHeader(loader,lsize); + patchPackHeader(loader, lsize); // ps1_exe_t structure 188 bytes fo->write(&oh,sizeof(oh)); // id & upx header - fo->write(loader + e_len,h_len); + fo->write(loader + e_len, h_len); } else { @@ -532,4 +525,3 @@ void PackPs1::unpack(OutputFile *fo) /* vi:ts=4:et:nowrap */ - diff --git a/src/p_ps1.h b/src/p_ps1.h index 141b879d..684f5033 100644 --- a/src/p_ps1.h +++ b/src/p_ps1.h @@ -56,7 +56,6 @@ public: virtual int canUnpack(); protected: - virtual void patch_mips_le(void *b, int blen, const void *old, unsigned new_); virtual int buildLoader(const Filter *ft); virtual Linker* newLinker() const; @@ -100,6 +99,7 @@ protected: bool isCon; bool is32Bit; + unsigned ram_size; unsigned overlap; unsigned sa_cnt; diff --git a/src/stub/Makefile b/src/stub/Makefile index 61fbdfa0..e054fbdf 100644 --- a/src/stub/Makefile +++ b/src/stub/Makefile @@ -71,8 +71,7 @@ STUBS += m68k-atari.tos-nrv2d.h STUBS += m68k-atari.tos-nrv2d.small.h STUBS += m68k-atari.tos-nrv2e.h STUBS += m68k-atari.tos-nrv2e.small.h -STUBS += mipsel.r3000-ps1-boot.h -STUBS += mipsel.r3000-ps1-console.h +STUBS += mipsel.r3000-ps1.h STUBS += powerpc-darwin.macho-entry.h STUBS += powerpc-darwin.macho-fold.h STUBS += powerpc-linux.elf-entry.h @@ -636,16 +635,15 @@ m68k-atari.tos-nrv2%.small.h : IDENT_SUFFIX = _small # /*********************************************************************** -# // mipsel.r3000-ps1-boot -# // mipsel.r3000-ps1-console +# // mipsel.r3000-ps1.exe # ************************************************************************/ -mipsel.r3000-ps1-%.h : tc_list = mipsel.r3000-ps1 default +mipsel.r3000-ps1.h : tc_list = mipsel.r3000-ps1 default -tc.mipsel.r3000-ps1.as = mipsel-unknown-linux-gnu-as -O2 -mips2 -mno-pdr +tc.mipsel.r3000-ps1.as = mipsel-elf-as -O2 -mno-pdr tc.mipsel.r3000-ps1.pp-asm = gcc -E -nostdinc -x assembler-with-cpp -Wall -mipsel.r3000-ps1-%.h : $(srcdir)/src/mipsel.r3000-ps1.asm +mipsel.r3000-ps1.h : $(srcdir)/src/mipsel.r3000-ps1.asm # call gpp_inc to generate .d file $(call tc,gpp_inc) --mode=c --MMD=$@ --MF=tmp/$T.tmp1.d $< -o /dev/null $(call tc,pp-asm) $(PP_FLAGS) $< -o tmp/$T.tmp1 @@ -656,9 +654,8 @@ mipsel.r3000-ps1-%.h : $(srcdir)/src/mipsel.r3000-ps1.asm $(call tc,m-objdump) -b elf32-littlemips -trwh tmp/$T.bin >> tmp/$T.bin $(call tc,bin2h) --ident=$(IDENT_NAME) tmp/$T.bin $@ -mipsel.r3000-ps1-boot.h: PP_FLAGS += -DCDBOOT -mipsel.r3000-ps1-boot.h: IDENT_NAME = nrv_boot_loader -mipsel.r3000-ps1-console.h: IDENT_NAME = nrv_con_loader +mipsel.r3000-ps1.h: PP_FLAGS += -DPS1 +mipsel.r3000-ps1.h: IDENT_NAME = nrv_loader # /*********************************************************************** diff --git a/src/stub/mipsel.r3000-ps1-boot.h b/src/stub/mipsel.r3000-ps1-boot.h deleted file mode 100644 index 497006dc..00000000 --- a/src/stub/mipsel.r3000-ps1-boot.h +++ /dev/null @@ -1,616 +0,0 @@ -/* mipsel.r3000-ps1-boot.h -- created from mipsel.r3000-ps1-boot.bin, 9295 (0x244f) bytes - - This file is part of the UPX executable compressor. - - Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1996-2006 Laszlo Molnar - Copyright (C) 2000-2006 John F. Reiser - All Rights Reserved. - - UPX and the UCL library are free software; you can redistribute them - and/or modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Markus F.X.J. Oberhumer Laszlo Molnar - - */ - - -#define NRV_BOOT_LOADER_SIZE 9295 -#define NRV_BOOT_LOADER_ADLER32 0xbc701234 -#define NRV_BOOT_LOADER_CRC32 0x5129db35 - -unsigned char nrv_boot_loader[9295] = { -127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ - 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ - 24, 17, 0, 0, 0, 16, 0, 16, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ - 27, 0, 24, 0, 0, 0, 8, 60, 0, 0, 8, 37, 35, 64, 8, 2, /* 0x 30 */ - 8, 0, 0, 1, 0, 0, 0, 0,228,255,189, 39, 0, 0,164,175, /* 0x 40 */ - 4, 0,165,175, 8, 0,166,175, 12, 0,167,175, 16, 0,162,175, /* 0x 50 */ - 20, 0,163,175, 24, 0,191,175, 0, 0, 4, 60, 0, 0,132, 36, /* 0x 60 */ - 0, 0, 6, 60, 0, 0,198, 36, 0, 0, 6, 60, 33, 72, 0, 0, /* 0x 70 */ - 1, 0, 11, 36, 33, 64,128, 0,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 80 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 90 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x a0 */ - 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, /* 0x b0 */ - 1, 0, 8, 37,240,255, 0, 16, 0, 0,194,160, 1, 0,198, 36, /* 0x c0 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x d0 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x e0 */ - 2, 18, 9, 0, 1, 0, 66, 48, 64, 24, 3, 0, 33, 24, 98, 0, /* 0x f0 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 100 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 110 */ - 2, 18, 9, 0, 1, 0, 66, 48,234,255, 64, 16, 0, 0, 0, 0, /* 0x 120 */ -127, 0, 34, 49, 2, 0, 2, 36, 4, 0, 98, 20, 0, 0, 0, 0, /* 0x 130 */ - 11, 0, 0, 16,253,255, 99, 36, 33, 24, 96, 1, 0, 0, 2,145, /* 0x 140 */ - 1, 0, 8, 37, 0, 26, 3, 0, 33, 24, 98, 0,255,255, 2, 36, /* 0x 150 */ - 86, 0, 98, 16, 0, 0, 0, 0, 1, 0, 99, 36, 33, 88, 96, 0, /* 0x 160 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 170 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 180 */ - 2, 18, 9, 0, 1, 0, 66, 48, 33, 96, 64, 0, 64, 96, 12, 0, /* 0x 190 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 1a0 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 1b0 */ - 2, 18, 9, 0, 1, 0, 66, 48, 33, 96,130, 1, 30, 0,128, 21, /* 0x 1c0 */ - 0, 0, 0, 0, 1, 13, 98, 44, 1, 0, 12, 36,127, 0, 34, 49, /* 0x 1d0 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 1e0 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 1f0 */ - 1, 0, 66, 48, 64, 96, 12, 0, 33, 96,130, 1,127, 0, 34, 49, /* 0x 200 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 210 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 220 */ - 1, 0, 66, 48,234,255, 64, 16, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 230 */ - 2, 0,140, 37, 1, 13, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, /* 0x 240 */ - 4, 0, 98, 40, 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, /* 0x 250 */ - 35, 24,195, 0, 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, /* 0x 260 */ - 0, 0, 98,152, 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, /* 0x 270 */ - 3, 0,194,168,247,255,128, 21, 4, 0, 99, 36,127,255, 0, 16, /* 0x 280 */ - 4, 0,198, 36,127, 0, 34, 49, 35, 24,195, 0, 0, 0, 98,144, /* 0x 290 */ -255,255,140, 37, 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36, /* 0x 2a0 */ -118,255, 0, 16, 1, 0,198, 36,127, 0, 34, 49, 33, 72, 0, 0, /* 0x 2b0 */ - 1, 0, 11, 36, 33, 64,128, 0,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 2c0 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 2d0 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 2e0 */ - 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, /* 0x 2f0 */ - 1, 0, 8, 37,240,255, 0, 16, 0, 0,194,160, 1, 0,198, 36, /* 0x 300 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 310 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 320 */ - 2, 18, 9, 0, 1, 0, 66, 48, 64, 24, 3, 0, 33, 24, 98, 0, /* 0x 330 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 340 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 350 */ - 2, 18, 9, 0, 1, 0, 66, 48, 15, 0, 64, 20, 0, 0, 0, 0, /* 0x 360 */ -255,255, 98, 36, 64, 24, 2, 0,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 370 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 380 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0,220,255, 0, 16, /* 0x 390 */ - 1, 0, 66, 48, 33, 24, 98, 0, 2, 0, 2, 36, 15, 0, 98, 20, /* 0x 3a0 */ - 0, 0, 0, 0,253,255, 99, 36,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 3b0 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 3c0 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 3d0 */ - 14, 0, 0, 16, 33, 24, 96, 1, 1, 0, 76, 48, 0, 0, 2,145, /* 0x 3e0 */ - 1, 0, 8, 37, 0, 26, 3, 0, 33, 24, 98, 0,255,255, 2, 36, /* 0x 3f0 */ - 78, 0, 98, 16, 0, 0, 0, 0, 39, 16, 3, 0, 1, 0, 76, 48, /* 0x 400 */ - 66, 24, 3, 0, 1, 0, 99, 36, 33, 88, 96, 0,127, 0, 34, 49, /* 0x 410 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 420 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 430 */ - 1, 0, 66, 48, 64, 96, 12, 0, 33, 96,130, 1, 30, 0,128, 21, /* 0x 440 */ - 0, 0, 0, 0, 1, 5, 98, 44, 1, 0, 12, 36,127, 0, 34, 49, /* 0x 450 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 460 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 470 */ - 1, 0, 66, 48, 64, 96, 12, 0, 33, 96,130, 1,127, 0, 34, 49, /* 0x 480 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 490 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 4a0 */ - 1, 0, 66, 48,234,255, 64, 16, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 4b0 */ - 2, 0,140, 37, 1, 5, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, /* 0x 4c0 */ - 4, 0, 98, 40, 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, /* 0x 4d0 */ - 35, 24,195, 0, 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, /* 0x 4e0 */ - 0, 0, 98,152, 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, /* 0x 4f0 */ - 3, 0,194,168,247,255,128, 21, 4, 0, 99, 36,111,255, 0, 16, /* 0x 500 */ - 4, 0,198, 36,127, 0, 34, 49, 35, 24,195, 0, 0, 0, 98,144, /* 0x 510 */ -255,255,140, 37, 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36, /* 0x 520 */ -102,255, 0, 16, 1, 0,198, 36,127, 0, 34, 49, 33, 72, 0, 0, /* 0x 530 */ - 1, 0, 11, 36, 33, 64,128, 0,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 540 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 550 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 560 */ - 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, /* 0x 570 */ - 1, 0, 8, 37,240,255, 0, 16, 0, 0,194,160, 1, 0,198, 36, /* 0x 580 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 590 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 5a0 */ - 2, 18, 9, 0, 1, 0, 66, 48, 64, 24, 3, 0, 33, 24, 98, 0, /* 0x 5b0 */ -127, 0, 34, 49, 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, /* 0x 5c0 */ - 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, /* 0x 5d0 */ - 2, 18, 9, 0, 1, 0, 66, 48, 15, 0, 64, 20, 0, 0, 0, 0, /* 0x 5e0 */ -255,255, 98, 36, 64, 24, 2, 0,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 5f0 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 600 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0,220,255, 0, 16, /* 0x 610 */ - 1, 0, 66, 48, 33, 24, 98, 0, 2, 0, 2, 36, 15, 0, 98, 20, /* 0x 620 */ - 0, 0, 0, 0,253,255, 99, 36, 33, 24, 96, 1,127, 0, 34, 49, /* 0x 630 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 640 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 650 */ - 14, 0, 0, 16, 1, 0, 66, 48, 1, 0, 76, 48, 0, 0, 2,145, /* 0x 660 */ - 0, 26, 3, 0, 33, 24, 98, 0,255,255, 2, 36,103, 0, 98, 16, /* 0x 670 */ - 0, 0, 0, 0, 1, 0, 8, 37, 39, 16, 3, 0, 1, 0, 76, 48, /* 0x 680 */ - 66, 24, 3, 0, 1, 0, 99, 36, 33, 88, 96, 0, 15, 0,128, 17, /* 0x 690 */ - 0, 0, 0, 0,127, 0, 34, 49,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 6a0 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 6b0 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 53, 0, 0, 16, /* 0x 6c0 */ - 1, 0, 66, 48, 1, 0, 76, 36,127, 0, 34, 49, 6, 0, 64, 20, /* 0x 6d0 */ - 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 6e0 */ - 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 6f0 */ - 14, 0, 64, 16, 0, 0, 0, 0, 1, 0,140, 37,127, 0, 34, 49, /* 0x 700 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 710 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 720 */ - 28, 0, 0, 16, 1, 0, 66, 48, 3, 0, 76, 36,127, 0, 34, 49, /* 0x 730 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 740 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 750 */ - 1, 0, 66, 48, 64, 96, 12, 0, 33, 96,130, 1,127, 0, 34, 49, /* 0x 760 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 770 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 2, 18, 9, 0, /* 0x 780 */ - 1, 0, 66, 48,234,255, 64, 16, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 790 */ - 3, 0,140, 37, 1, 5, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, /* 0x 7a0 */ - 4, 0, 98, 40, 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, /* 0x 7b0 */ - 35, 24,195, 0, 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, /* 0x 7c0 */ - 0, 0, 98,152, 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, /* 0x 7d0 */ - 3, 0,194,168,247,255,128, 21, 4, 0, 99, 36, 87,255, 0, 16, /* 0x 7e0 */ - 4, 0,198, 36,127, 0, 34, 49, 35, 24,195, 0, 0, 0, 98,144, /* 0x 7f0 */ -255,255,140, 37, 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36, /* 0x 800 */ - 78,255, 0, 16, 1, 0,198, 36,127, 0, 34, 49, 33, 72, 0, 0, /* 0x 810 */ - 33,104, 32, 1, 1, 0, 11, 36, 33, 64,128, 0,255,255,173, 37, /* 0x 820 */ - 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, /* 0x 830 */ - 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, /* 0x 840 */ - 1, 0, 66, 48, 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, /* 0x 850 */ - 0, 0, 2,145, 1, 0, 8, 37,240,255, 0, 16, 0, 0,194,160, /* 0x 860 */ - 1, 0,198, 36,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x 870 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x 880 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 64, 24, 3, 0, /* 0x 890 */ - 33, 24, 98, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x 8a0 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x 8b0 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48,233,255, 64, 16, /* 0x 8c0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 36, 4, 0, 98, 20, /* 0x 8d0 */ - 0, 0, 0, 0, 11, 0, 0, 16,253,255, 99, 36, 33, 24, 96, 1, /* 0x 8e0 */ - 0, 0, 2,145, 1, 0, 8, 37, 0, 26, 3, 0, 33, 24, 98, 0, /* 0x 8f0 */ -255,255, 2, 36, 86, 0, 98, 16, 0, 0, 0, 0, 1, 0, 99, 36, /* 0x 900 */ - 33, 88, 96, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x 910 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x 920 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 33, 96, 64, 0, /* 0x 930 */ - 64, 96, 12, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x 940 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x 950 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 33, 96,130, 1, /* 0x 960 */ - 30, 0,128, 21, 0, 0, 0, 0, 1, 13, 98, 44, 1, 0, 12, 36, /* 0x 970 */ -255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, /* 0x 980 */ - 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, /* 0x 990 */ - 6, 16,169, 1, 1, 0, 66, 48, 64, 96, 12, 0, 33, 96,130, 1, /* 0x 9a0 */ -255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, /* 0x 9b0 */ - 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, /* 0x 9c0 */ - 6, 16,169, 1, 1, 0, 66, 48,233,255, 64, 16, 0, 0, 0, 0, /* 0x 9d0 */ - 0, 0, 0, 0, 2, 0,140, 37, 1, 13, 98, 44, 1, 0, 66, 56, /* 0x 9e0 */ - 33, 96,130, 1, 4, 0, 98, 40, 16, 0, 64, 20, 0, 0, 0, 0, /* 0x 9f0 */ - 1, 0,140, 37, 35, 24,195, 0, 4, 0,130, 41, 13, 0, 64, 20, /* 0x a00 */ - 0, 0, 0, 0, 0, 0, 98,152, 3, 0, 98,136,252,255,140, 37, /* 0x a10 */ - 0, 0,194,184, 3, 0,194,168,247,255,128, 21, 4, 0, 99, 36, /* 0x a20 */ -127,255, 0, 16, 4, 0,198, 36,255,255,173, 37, 35, 24,195, 0, /* 0x a30 */ - 0, 0, 98,144,255,255,140, 37, 0, 0,194,160,252,255,128, 21, /* 0x a40 */ - 1, 0, 99, 36,118,255, 0, 16, 1, 0,198, 36,255,255,173, 37, /* 0x a50 */ - 33, 72, 0, 0, 33,104, 32, 1, 1, 0, 11, 36, 33, 64,128, 0, /* 0x a60 */ -255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, /* 0x a70 */ - 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, /* 0x a80 */ - 6, 16,169, 1, 1, 0, 66, 48, 7, 0, 64, 16, 0, 0, 0, 0, /* 0x a90 */ - 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37,240,255, 0, 16, /* 0x aa0 */ - 0, 0,194,160, 1, 0,198, 36,255,255,173, 37, 7, 0,161, 5, /* 0x ab0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x ac0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x ad0 */ - 64, 24, 3, 0, 33, 24, 98, 0,255,255,173, 37, 7, 0,161, 5, /* 0x ae0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x af0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x b00 */ - 15, 0, 64, 20, 0, 0, 0, 0,255,255, 98, 36, 64, 24, 2, 0, /* 0x b10 */ -255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, /* 0x b20 */ - 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, /* 0x b30 */ - 6, 16,169, 1,220,255, 0, 16, 1, 0, 66, 48, 33, 24, 98, 0, /* 0x b40 */ - 2, 0, 2, 36, 15, 0, 98, 20, 0, 0, 0, 0,253,255, 99, 36, /* 0x b50 */ -255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, /* 0x b60 */ - 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, /* 0x b70 */ - 6, 16,169, 1, 1, 0, 66, 48, 14, 0, 0, 16, 33, 24, 96, 1, /* 0x b80 */ - 1, 0, 76, 48, 0, 0, 2,145, 1, 0, 8, 37, 0, 26, 3, 0, /* 0x b90 */ - 33, 24, 98, 0,255,255, 2, 36, 78, 0, 98, 16, 0, 0, 0, 0, /* 0x ba0 */ - 39, 16, 3, 0, 1, 0, 76, 48, 66, 24, 3, 0, 1, 0, 99, 36, /* 0x bb0 */ - 33, 88, 96, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x bc0 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x bd0 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 64, 96, 12, 0, /* 0x be0 */ - 33, 96,130, 1, 30, 0,128, 21, 0, 0, 0, 0, 1, 5, 98, 44, /* 0x bf0 */ - 1, 0, 12, 36,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x c00 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x c10 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 64, 96, 12, 0, /* 0x c20 */ - 33, 96,130, 1,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x c30 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x c40 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48,233,255, 64, 16, /* 0x c50 */ - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,140, 37, 1, 5, 98, 44, /* 0x c60 */ - 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, 16, 0, 64, 20, /* 0x c70 */ - 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, 4, 0,130, 41, /* 0x c80 */ - 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, 3, 0, 98,136, /* 0x c90 */ -252,255,140, 37, 0, 0,194,184, 3, 0,194,168,247,255,128, 21, /* 0x ca0 */ - 4, 0, 99, 36,111,255, 0, 16, 4, 0,198, 36,255,255,173, 37, /* 0x cb0 */ - 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, 0, 0,194,160, /* 0x cc0 */ -252,255,128, 21, 1, 0, 99, 36,102,255, 0, 16, 1, 0,198, 36, /* 0x cd0 */ -255,255,173, 37, 33, 72, 0, 0, 33,104, 32, 1, 1, 0, 11, 36, /* 0x ce0 */ - 33, 64,128, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x cf0 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x d00 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 7, 0, 64, 16, /* 0x d10 */ - 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37, /* 0x d20 */ -240,255, 0, 16, 0, 0,194,160, 1, 0,198, 36,255,255,173, 37, /* 0x d30 */ - 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, /* 0x d40 */ - 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, /* 0x d50 */ - 1, 0, 66, 48, 64, 24, 3, 0, 33, 24, 98, 0,255,255,173, 37, /* 0x d60 */ - 7, 0,161, 5, 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, /* 0x d70 */ - 0, 0, 9,153, 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, /* 0x d80 */ - 1, 0, 66, 48, 15, 0, 64, 20, 0, 0, 0, 0,255,255, 98, 36, /* 0x d90 */ - 64, 24, 2, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x da0 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x db0 */ - 4, 0, 8, 37, 6, 16,169, 1,220,255, 0, 16, 1, 0, 66, 48, /* 0x dc0 */ - 33, 24, 98, 0, 2, 0, 2, 36, 15, 0, 98, 20, 0, 0, 0, 0, /* 0x dd0 */ -253,255, 99, 36, 33, 24, 96, 1,255,255,173, 37, 7, 0,161, 5, /* 0x de0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x df0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 14, 0, 0, 16, /* 0x e00 */ - 1, 0, 66, 48, 1, 0, 76, 48, 0, 0, 2,145, 0, 26, 3, 0, /* 0x e10 */ - 33, 24, 98, 0,255,255, 2, 36,103, 0, 98, 16, 0, 0, 0, 0, /* 0x e20 */ - 1, 0, 8, 37, 39, 16, 3, 0, 1, 0, 76, 48, 66, 24, 3, 0, /* 0x e30 */ - 1, 0, 99, 36, 33, 88, 96, 0, 14, 0,128, 17, 0, 0, 0, 0, /* 0x e40 */ - 0, 0, 0, 0,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x e50 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x e60 */ - 4, 0, 8, 37, 6, 16,169, 1, 53, 0, 0, 16, 1, 0, 66, 48, /* 0x e70 */ - 1, 0, 76, 36,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x e80 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x e90 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 14, 0, 64, 16, /* 0x ea0 */ - 0, 0, 0, 0, 1, 0,140, 37,255,255,173, 37, 7, 0,161, 5, /* 0x eb0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x ec0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 28, 0, 0, 16, /* 0x ed0 */ - 1, 0, 66, 48, 3, 0, 76, 36,255,255,173, 37, 7, 0,161, 5, /* 0x ee0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x ef0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x f00 */ - 64, 96, 12, 0, 33, 96,130, 1,255,255,173, 37, 7, 0,161, 5, /* 0x f10 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x f20 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x f30 */ -233,255, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,140, 37, /* 0x f40 */ - 1, 5, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, /* 0x f50 */ - 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, /* 0x f60 */ - 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, /* 0x f70 */ - 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, 3, 0,194,168, /* 0x f80 */ -247,255,128, 21, 4, 0, 99, 36, 87,255, 0, 16, 4, 0,198, 36, /* 0x f90 */ -255,255,173, 37, 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, /* 0x fa0 */ - 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36, 78,255, 0, 16, /* 0x fb0 */ - 1, 0,198, 36,255,255,173, 37, 0, 0, 4, 52, 0, 0, 4, 52, /* 0x fc0 */ -192, 32, 4, 0, 0, 0,192,172,255,255,132, 36,253,255,128, 20, /* 0x fd0 */ - 0, 0, 0, 0, 4, 0,198, 36, 3, 0,192,168, 0, 0,192,184, /* 0x fe0 */ -255,255,132, 36,252,255,128, 20, 0, 0, 0, 0, 4, 0,198, 36, /* 0x ff0 */ -160, 0, 10, 36, 9,248, 64, 1, 0, 0, 0, 0, 68, 0, 9, 36, /* 0x1000 */ - 0, 0,164,143, 4, 0,165,143, 8, 0,166,143, 12, 0,167,143, /* 0x1010 */ - 16, 0,162,143, 20, 0,163,143, 0, 0, 0, 0, 24, 0,191,143, /* 0x1020 */ - 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1030 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, /* 0x1040 */ - 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, /* 0x1050 */ - 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 80, /* 0x1060 */ - 83, 49, 83, 84, 65, 82, 84, 0, 46,114,101,108, 80, 83, 49, 69, /* 0x1070 */ - 78, 84, 82, 89, 0, 46,114,101,108, 80, 83, 49, 67, 79, 78, 72, /* 0x1080 */ - 76, 0, 46,114,101,108, 80, 83, 49, 67, 79, 78, 72, 73, 0, 80, /* 0x1090 */ - 83, 49, 78, 50, 66, 48, 56, 0, 80, 83, 49, 78, 50, 68, 48, 56, /* 0x10a0 */ - 0, 80, 83, 49, 78, 50, 69, 48, 56, 0, 80, 83, 49, 78, 50, 66, /* 0x10b0 */ - 51, 50, 0, 80, 83, 49, 78, 50, 68, 51, 50, 0, 80, 83, 49, 78, /* 0x10c0 */ - 50, 69, 51, 50, 0, 46,114,101,108, 80, 83, 49, 77, 83, 69, 84, /* 0x10d0 */ - 83, 0, 46,114,101,108, 80, 83, 49, 77, 83, 69, 84, 66, 0, 80, /* 0x10e0 */ - 83, 49, 77, 83, 69, 84, 65, 0, 80, 83, 49, 77, 83, 69, 84, 85, /* 0x10f0 */ - 0, 46,114,101,108, 80, 83, 49, 69, 88, 73, 84, 67, 0, 85, 80, /* 0x1100 */ - 88, 49, 72, 69, 65, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1110 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1120 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1130 */ - 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1140 */ - 52, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1150 */ - 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, /* 0x1160 */ - 0, 0, 0, 0, 0, 0, 0, 0, 88, 23, 0, 0, 16, 0, 0, 0, /* 0x1170 */ - 25, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x1180 */ - 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1190 */ - 76, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11a0 */ - 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0, /* 0x11b0 */ - 0, 0, 0, 0, 0, 0, 0, 0,104, 23, 0, 0, 16, 0, 0, 0, /* 0x11c0 */ - 25, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x11d0 */ - 57, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11e0 */ -112, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11f0 */ - 1, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 9, 0, 0, 0, /* 0x1200 */ - 0, 0, 0, 0, 0, 0, 0, 0,120, 23, 0, 0, 16, 0, 0, 0, /* 0x1210 */ - 25, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x1220 */ - 70, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1230 */ -120, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1240 */ - 1, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 9, 0, 0, 0, /* 0x1250 */ - 0, 0, 0, 0, 0, 0, 0, 0,136, 23, 0, 0, 8, 0, 0, 0, /* 0x1260 */ - 25, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x1270 */ - 79, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1280 */ -124, 0, 0, 0, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1290 */ - 1, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 1, 0, 0, 0, /* 0x12a0 */ - 0, 0, 0, 0, 0, 0, 0, 0,188, 2, 0, 0,128, 2, 0, 0, /* 0x12b0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x12c0 */ - 97, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x12d0 */ - 60, 5, 0, 0,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x12e0 */ - 1, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, 1, 0, 0, 0, /* 0x12f0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 28, 8, 0, 0, 68, 2, 0, 0, /* 0x1300 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1310 */ -115, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1320 */ - 96, 10, 0, 0,132, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1330 */ - 1, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 1, 0, 0, 0, /* 0x1340 */ - 0, 0, 0, 0, 0, 0, 0, 0,228, 12, 0, 0,228, 2, 0, 0, /* 0x1350 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1360 */ -137, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1370 */ -200, 15, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1380 */ - 1, 0, 0, 0, 0, 0, 0, 0,133, 0, 0, 0, 9, 0, 0, 0, /* 0x1390 */ - 0, 0, 0, 0, 0, 0, 0, 0,144, 23, 0, 0, 8, 0, 0, 0, /* 0x13a0 */ - 25, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x13b0 */ -150, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x13c0 */ -204, 15, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x13d0 */ - 1, 0, 0, 0, 0, 0, 0, 0,146, 0, 0, 0, 9, 0, 0, 0, /* 0x13e0 */ - 0, 0, 0, 0, 0, 0, 0, 0,152, 23, 0, 0, 8, 0, 0, 0, /* 0x13f0 */ - 25, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x1400 */ -159, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1410 */ -212, 15, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1420 */ - 1, 0, 0, 0, 0, 0, 0, 0,168, 0, 0, 0, 1, 0, 0, 0, /* 0x1430 */ - 0, 0, 0, 0, 0, 0, 0, 0,232, 15, 0, 0, 24, 0, 0, 0, /* 0x1440 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1450 */ -181, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1460 */ - 0, 16, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1470 */ - 4, 0, 0, 0, 0, 0, 0, 0,177, 0, 0, 0, 9, 0, 0, 0, /* 0x1480 */ - 0, 0, 0, 0, 0, 0, 0, 0,160, 23, 0, 0, 8, 0, 0, 0, /* 0x1490 */ - 25, 0, 0, 0, 21, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, /* 0x14a0 */ -190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x14b0 */ - 48, 16, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x14c0 */ - 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, /* 0x14d0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 80, 16, 0, 0,199, 0, 0, 0, /* 0x14e0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x14f0 */ - 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1500 */ - 80, 21, 0, 0, 96, 1, 0, 0, 26, 0, 0, 0, 17, 0, 0, 0, /* 0x1510 */ - 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, /* 0x1520 */ - 0, 0, 0, 0, 0, 0, 0, 0,176, 22, 0, 0,168, 0, 0, 0, /* 0x1530 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1540 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1550 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, /* 0x1560 */ - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, /* 0x1570 */ - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 5, 0, /* 0x1580 */ - 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 7, 0, /* 0x1590 */ - 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 9, 0, /* 0x15a0 */ - 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 10, 0, /* 0x15b0 */ - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 11, 0, /* 0x15c0 */ - 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 12, 0, /* 0x15d0 */ - 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 13, 0, /* 0x15e0 */ - 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 14, 0, /* 0x15f0 */ - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 15, 0, /* 0x1600 */ -100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 17, 0, /* 0x1610 */ -109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 19, 0, /* 0x1620 */ -118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 20, 0, /* 0x1630 */ -127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 21, 0, /* 0x1640 */ -136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 23, 0, /* 0x1650 */ -145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x1660 */ -150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x1670 */ -155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x1680 */ -160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x1690 */ -163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x16a0 */ - 0, 80, 83, 49, 83, 84, 65, 82, 84, 0, 80, 83, 49, 69, 78, 84, /* 0x16b0 */ - 82, 89, 0, 80, 83, 49, 67, 79, 78, 72, 76, 0, 80, 83, 49, 67, /* 0x16c0 */ - 79, 78, 72, 73, 0, 80, 83, 49, 78, 50, 66, 48, 56, 0, 80, 83, /* 0x16d0 */ - 49, 78, 50, 68, 48, 56, 0, 80, 83, 49, 78, 50, 69, 48, 56, 0, /* 0x16e0 */ - 80, 83, 49, 78, 50, 66, 51, 50, 0, 80, 83, 49, 78, 50, 68, 51, /* 0x16f0 */ - 50, 0, 80, 83, 49, 78, 50, 69, 51, 50, 0, 80, 83, 49, 77, 83, /* 0x1700 */ - 69, 84, 83, 0, 80, 83, 49, 77, 83, 69, 84, 66, 0, 80, 83, 49, /* 0x1710 */ - 77, 83, 69, 84, 65, 0, 80, 83, 49, 77, 83, 69, 84, 85, 0, 80, /* 0x1720 */ - 83, 49, 69, 88, 73, 84, 67, 0, 85, 80, 88, 49, 72, 69, 65, 68, /* 0x1730 */ - 0, 80, 83, 86, 82, 0, 67, 80, 68, 79, 0, 68, 69, 67, 79, 0, /* 0x1740 */ - 83, 67, 0, 74, 80, 69, 80, 0, 0, 0, 0, 0, 5, 17, 0, 0, /* 0x1750 */ - 4, 0, 0, 0, 6, 17, 0, 0, 28, 0, 0, 0, 5, 18, 0, 0, /* 0x1760 */ - 32, 0, 0, 0, 6, 18, 0, 0, 0, 0, 0, 0, 5, 19, 0, 0, /* 0x1770 */ - 4, 0, 0, 0, 6, 19, 0, 0, 0, 0, 0, 0, 5, 19, 0, 0, /* 0x1780 */ - 0, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 20, 0, 0, /* 0x1790 */ - 40, 0, 0, 0, 2, 21, 0, 0, 10,116,109,112, 47,109,105,112, /* 0x17a0 */ -115,101,108, 46,114, 51, 48, 48, 48, 45,112,115, 49, 45, 98,111, /* 0x17b0 */ -111,116, 46, 98,105,110, 58, 32, 32, 32, 32, 32,102,105,108,101, /* 0x17c0 */ - 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,108,105, /* 0x17d0 */ -116,116,108,101,109,105,112,115, 10, 10, 83,101, 99,116,105,111, /* 0x17e0 */ -110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, /* 0x17f0 */ - 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, /* 0x1800 */ - 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, /* 0x1810 */ - 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108, /* 0x1820 */ -103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 80, 83, /* 0x1830 */ - 49, 83, 84, 65, 82, 84, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1840 */ - 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1850 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1860 */ - 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1870 */ - 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1880 */ - 78, 76, 89, 10, 32, 32, 49, 32, 80, 83, 49, 69, 78, 84, 82, 89, /* 0x1890 */ - 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, /* 0x18a0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x18b0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 99, 32, 32, 50, 42, /* 0x18c0 */ - 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x18d0 */ - 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x18e0 */ - 50, 32, 80, 83, 49, 67, 79, 78, 72, 76, 32, 32, 32, 32, 32, 32, /* 0x18f0 */ - 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1900 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1910 */ - 48, 48, 48, 48, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1920 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1930 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 80, 83, 49, 67, /* 0x1940 */ - 79, 78, 72, 73, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1950 */ - 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1960 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 56, /* 0x1970 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1980 */ - 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1990 */ - 89, 10, 32, 32, 52, 32, 80, 83, 49, 78, 50, 66, 48, 56, 32, 32, /* 0x19a0 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 52, 48, 32, 32, 48, 48, /* 0x19b0 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x19c0 */ - 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, 48, /* 0x19d0 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x19e0 */ - 79, 78, 76, 89, 10, 32, 32, 53, 32, 80, 83, 49, 78, 50, 68, 48, /* 0x19f0 */ - 56, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, 56, 48, 32, /* 0x1a00 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1a10 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 98, 99, 32, 32, 50, /* 0x1a20 */ - 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1a30 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 80, 83, 49, 78, /* 0x1a40 */ - 50, 69, 48, 56, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, /* 0x1a50 */ -101, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1a60 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 53, 51, 99, /* 0x1a70 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1a80 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 80, /* 0x1a90 */ - 83, 49, 78, 50, 66, 51, 50, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1aa0 */ - 48, 48, 50, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1ab0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1ac0 */ - 56, 49, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1ad0 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ae0 */ - 56, 32, 80, 83, 49, 78, 50, 68, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1af0 */ - 48, 48, 48, 48, 48, 50, 56, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1b00 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1b10 */ - 48, 48, 48, 97, 54, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1b20 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x1b30 */ - 10, 32, 32, 57, 32, 80, 83, 49, 78, 50, 69, 51, 50, 32, 32, 32, /* 0x1b40 */ - 32, 32, 32, 48, 48, 48, 48, 48, 50,101, 52, 32, 32, 48, 48, 48, /* 0x1b50 */ - 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1b60 */ - 32, 48, 48, 48, 48, 48, 99,101, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1b70 */ - 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x1b80 */ - 78, 76, 89, 10, 32, 49, 48, 32, 80, 83, 49, 77, 83, 69, 84, 83, /* 0x1b90 */ - 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, /* 0x1ba0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1bb0 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48,102, 99, 56, 32, 32, 50, 42, /* 0x1bc0 */ - 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1bd0 */ - 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x1be0 */ - 49, 32, 80, 83, 49, 77, 83, 69, 84, 66, 32, 32, 32, 32, 32, 32, /* 0x1bf0 */ - 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1c00 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1c10 */ - 48, 48, 48,102, 99, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1c20 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1c30 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 80, 83, 49, 77, /* 0x1c40 */ - 83, 69, 84, 65, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1c50 */ - 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1c60 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,102,100, 52, /* 0x1c70 */ - 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1c80 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 80, /* 0x1c90 */ - 83, 49, 77, 83, 69, 84, 85, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1ca0 */ - 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1cb0 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1cc0 */ -102,101, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1cd0 */ - 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x1ce0 */ - 52, 32, 80, 83, 49, 69, 88, 73, 84, 67, 32, 32, 32, 32, 32, 32, /* 0x1cf0 */ - 48, 48, 48, 48, 48, 48, 51, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d00 */ - 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d10 */ - 48, 48, 49, 48, 48, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, /* 0x1d20 */ - 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1d30 */ - 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 53, 32, 85, 80, 88, 49, /* 0x1d40 */ - 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1d50 */ - 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1d60 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 48, 51, 48, /* 0x1d70 */ - 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1d80 */ - 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, /* 0x1d90 */ - 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1da0 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 83, 84, 65, /* 0x1db0 */ - 82, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 83, /* 0x1dc0 */ - 84, 65, 82, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x1dd0 */ - 32, 32, 32,100, 32, 32, 80, 83, 49, 69, 78, 84, 82, 89, 9, 48, /* 0x1de0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 69, 78, 84, 82, 89, /* 0x1df0 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x1e00 */ - 32, 32, 80, 83, 49, 67, 79, 78, 72, 76, 9, 48, 48, 48, 48, 48, /* 0x1e10 */ - 48, 48, 48, 32, 80, 83, 49, 67, 79, 78, 72, 76, 10, 48, 48, 48, /* 0x1e20 */ - 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, /* 0x1e30 */ - 49, 67, 79, 78, 72, 73, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1e40 */ - 80, 83, 49, 67, 79, 78, 72, 73, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1e50 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 66, /* 0x1e60 */ - 48, 56, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, /* 0x1e70 */ - 50, 66, 48, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x1e80 */ - 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 68, 48, 56, 9, 48, /* 0x1e90 */ - 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 68, 48, 56, /* 0x1ea0 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x1eb0 */ - 32, 32, 80, 83, 49, 78, 50, 69, 48, 56, 9, 48, 48, 48, 48, 48, /* 0x1ec0 */ - 48, 48, 48, 32, 80, 83, 49, 78, 50, 69, 48, 56, 10, 48, 48, 48, /* 0x1ed0 */ - 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, /* 0x1ee0 */ - 49, 78, 50, 66, 51, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1ef0 */ - 80, 83, 49, 78, 50, 66, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1f00 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 68, /* 0x1f10 */ - 51, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, /* 0x1f20 */ - 50, 68, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x1f30 */ - 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 69, 51, 50, 9, 48, /* 0x1f40 */ - 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 69, 51, 50, /* 0x1f50 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x1f60 */ - 32, 32, 80, 83, 49, 77, 83, 69, 84, 83, 9, 48, 48, 48, 48, 48, /* 0x1f70 */ - 48, 48, 48, 32, 80, 83, 49, 77, 83, 69, 84, 83, 10, 48, 48, 48, /* 0x1f80 */ - 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, /* 0x1f90 */ - 49, 77, 83, 69, 84, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1fa0 */ - 80, 83, 49, 77, 83, 69, 84, 66, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */ - 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 77, 83, 69, /* 0x1fc0 */ - 84, 65, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 77, /* 0x1fd0 */ - 83, 69, 84, 65, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x1fe0 */ - 32, 32, 32,100, 32, 32, 80, 83, 49, 77, 83, 69, 84, 85, 9, 48, /* 0x1ff0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 77, 83, 69, 84, 85, /* 0x2000 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x2010 */ - 32, 32, 80, 83, 49, 69, 88, 73, 84, 67, 9, 48, 48, 48, 48, 48, /* 0x2020 */ - 48, 48, 48, 32, 80, 83, 49, 69, 88, 73, 84, 67, 10, 48, 48, 48, /* 0x2030 */ - 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, /* 0x2040 */ - 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2050 */ - 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2060 */ - 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x2070 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 86, 82, 10, 48, 48, /* 0x2080 */ - 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x2090 */ - 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 80, /* 0x20a0 */ - 68, 79, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x20b0 */ - 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x20c0 */ - 48, 48, 32, 68, 69, 67, 79, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x20d0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x20e0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 83, 67, 10, 48, 48, 48, 48, 48, /* 0x20f0 */ - 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2100 */ - 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 74, 80, 69, 80, 10, /* 0x2110 */ - 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x2120 */ - 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, 49, 83, 84, 65, /* 0x2130 */ - 82, 84, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2140 */ - 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2150 */ - 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2160 */ - 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, 32, /* 0x2170 */ - 32, 32, 80, 83, 86, 82, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2180 */ - 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, /* 0x2190 */ - 32, 32, 80, 83, 86, 82, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x21a0 */ - 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x21b0 */ - 91, 80, 83, 49, 69, 78, 84, 82, 89, 93, 58, 10, 79, 70, 70, 83, /* 0x21c0 */ - 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x21d0 */ - 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x21e0 */ - 48, 48, 48, 48, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, /* 0x21f0 */ - 49, 54, 32, 32, 32, 32, 32, 32, 32, 67, 80, 68, 79, 10, 48, 48, /* 0x2200 */ - 48, 48, 48, 48, 50, 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, /* 0x2210 */ - 49, 54, 32, 32, 32, 32, 32, 32, 32, 67, 80, 68, 79, 10, 10, 10, /* 0x2220 */ - 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x2230 */ - 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, 49, 67, 79, 78, 72, 76, /* 0x2240 */ - 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x2250 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2260 */ - 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, /* 0x2270 */ - 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x2280 */ - 68, 69, 67, 79, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, /* 0x2290 */ - 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x22a0 */ - 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x22b0 */ - 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, /* 0x22c0 */ - 83, 49, 67, 79, 78, 72, 73, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x22d0 */ - 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x22e0 */ - 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x22f0 */ - 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, /* 0x2300 */ - 32, 32, 32, 32, 32, 32, 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, /* 0x2310 */ - 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2320 */ - 32, 70, 79, 82, 32, 91, 80, 83, 49, 77, 83, 69, 84, 83, 93, 58, /* 0x2330 */ - 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2340 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2350 */ - 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, /* 0x2360 */ - 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, 83, 67, /* 0x2370 */ - 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2380 */ - 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, 49, 77, 83, /* 0x2390 */ - 69, 84, 66, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x23a0 */ - 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23b0 */ - 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x23c0 */ - 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, /* 0x23d0 */ - 32, 32, 32, 83, 67, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x23e0 */ - 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x23f0 */ - 80, 83, 49, 69, 88, 73, 84, 67, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2400 */ - 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2410 */ - 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, /* 0x2420 */ - 48, 48, 48, 50, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, /* 0x2430 */ - 32, 32, 32, 32, 32, 32, 32, 32, 74, 80, 69, 80, 10, 10, 10 /* 0x2440 */ -}; diff --git a/src/stub/mipsel.r3000-ps1-console.h b/src/stub/mipsel.r3000-ps1-console.h deleted file mode 100644 index 3ae76b66..00000000 --- a/src/stub/mipsel.r3000-ps1-console.h +++ /dev/null @@ -1,567 +0,0 @@ -/* mipsel.r3000-ps1-console.h -- created from mipsel.r3000-ps1-console.bin, 8501 (0x2135) bytes - - This file is part of the UPX executable compressor. - - Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1996-2006 Laszlo Molnar - Copyright (C) 2000-2006 John F. Reiser - All Rights Reserved. - - UPX and the UCL library are free software; you can redistribute them - and/or modify them under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, Inc., - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - Markus F.X.J. Oberhumer Laszlo Molnar - - */ - - -#define NRV_CON_LOADER_SIZE 8501 -#define NRV_CON_LOADER_ADLER32 0x788ce40a -#define NRV_CON_LOADER_CRC32 0xfb48e329 - -unsigned char nrv_con_loader[8501] = { -127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ - 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ - 76, 12, 0, 0, 0, 16, 0, 16, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ - 29, 0, 26, 0, 0, 0, 1, 36, 35,232,161, 3, 0, 0,161,175, /* 0x 30 */ - 4, 0,164,175, 8, 0,165,175, 12, 0,166,175, 16, 0,167,175, /* 0x 40 */ - 20, 0,162,175, 24, 0,163,175, 28, 0,191,175,224,255, 38, 36, /* 0x 50 */ - 32, 0,167, 39, 33, 40,224, 0, 0, 0, 4, 60, 0, 0,132, 36, /* 0x 60 */ - 0, 0,129,140,252,255,198, 36, 0, 0,161,172,252,255,192, 20, /* 0x 70 */ - 4, 0,132, 36, 4, 0,165, 36, 0, 0,132, 36, 0, 0, 6, 60, /* 0x 80 */ - 0, 0,198, 36, 8, 0,224, 0, 0, 0, 0, 0, 8, 0,224, 0, /* 0x 90 */ - 0, 0, 0, 0, 0, 0, 6, 60, 33, 72, 0, 0, 1, 0, 11, 36, /* 0x a0 */ - 33, 64,128, 0, 88, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, /* 0x b0 */ - 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, /* 0x c0 */ - 1, 0, 8, 37,247,255, 0, 16, 0, 0,194,160, 1, 0,198, 36, /* 0x d0 */ - 77, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, 64, 24, 3, 0, /* 0x e0 */ - 73, 0, 17, 4, 33, 24, 98, 0,127, 0, 34, 49,248,255, 64, 16, /* 0x f0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 36, 4, 0, 98, 20, /* 0x 100 */ - 0, 0, 0, 0, 11, 0, 0, 16,253,255, 99, 36, 33, 24, 96, 1, /* 0x 110 */ - 0, 0, 2,145, 1, 0, 8, 37, 0, 26, 3, 0, 33, 24, 98, 0, /* 0x 120 */ -255,255, 2, 36, 66, 0, 98, 16, 0, 0, 0, 0, 1, 0, 99, 36, /* 0x 130 */ - 33, 88, 96, 0, 52, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 140 */ - 33, 96, 64, 0, 48, 0, 17, 4, 64, 96, 12, 0,127, 0, 34, 49, /* 0x 150 */ - 33, 96,130, 1, 15, 0,128, 21, 0, 0, 0, 0, 1, 13, 98, 44, /* 0x 160 */ - 1, 0, 12, 36, 40, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 170 */ - 64, 96, 12, 0, 36, 0, 17, 4, 33, 96,130, 1,127, 0, 34, 49, /* 0x 180 */ -248,255, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0,140, 37, /* 0x 190 */ - 1, 13, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, /* 0x 1a0 */ - 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, /* 0x 1b0 */ - 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, /* 0x 1c0 */ - 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, 3, 0,194,168, /* 0x 1d0 */ -247,255,128, 21, 4, 0, 99, 36,178,255, 0, 16, 4, 0,198, 36, /* 0x 1e0 */ - 0, 0, 0, 0, 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, /* 0x 1f0 */ - 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36,169,255, 0, 16, /* 0x 200 */ - 1, 0,198, 36, 0, 0, 0, 0, 6, 0, 64, 20, 0, 0, 0, 0, /* 0x 210 */ - 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, /* 0x 220 */ - 1, 0, 73, 36, 8, 0,224, 3, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 230 */ - 33, 72, 0, 0, 1, 0, 11, 36, 33, 64,128, 0, 96, 0, 17, 4, /* 0x 240 */ - 0, 0, 0, 0,127, 0, 34, 49, 7, 0, 64, 16, 0, 0, 0, 0, /* 0x 250 */ - 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37,247,255, 0, 16, /* 0x 260 */ - 0, 0,194,160, 1, 0,198, 36, 85, 0, 17, 4, 0, 0, 0, 0, /* 0x 270 */ -127, 0, 34, 49, 64, 24, 3, 0, 81, 0, 17, 4, 33, 24, 98, 0, /* 0x 280 */ -127, 0, 34, 49, 7, 0, 64, 20, 0, 0, 0, 0,255,255, 98, 36, /* 0x 290 */ - 75, 0, 17, 4, 64, 24, 2, 0,243,255, 0, 16,127, 0, 34, 49, /* 0x 2a0 */ - 33, 24, 98, 0, 2, 0, 2, 36, 7, 0, 98, 20, 0, 0, 0, 0, /* 0x 2b0 */ - 67, 0, 17, 4,253,255, 99, 36,127, 0, 34, 49, 14, 0, 0, 16, /* 0x 2c0 */ - 33, 24, 96, 1, 1, 0, 76, 48, 0, 0, 2,145, 1, 0, 8, 37, /* 0x 2d0 */ - 0, 26, 3, 0, 33, 24, 98, 0,255,255, 2, 36, 66, 0, 98, 16, /* 0x 2e0 */ - 0, 0, 0, 0, 39, 16, 3, 0, 1, 0, 76, 48, 66, 24, 3, 0, /* 0x 2f0 */ - 1, 0, 99, 36, 33, 88, 96, 0, 49, 0, 17, 4, 0, 0, 0, 0, /* 0x 300 */ -127, 0, 34, 49, 64, 96, 12, 0, 33, 96,130, 1, 15, 0,128, 21, /* 0x 310 */ - 0, 0, 0, 0, 1, 5, 98, 44, 1, 0, 12, 36, 40, 0, 17, 4, /* 0x 320 */ - 0, 0, 0, 0,127, 0, 34, 49, 64, 96, 12, 0, 36, 0, 17, 4, /* 0x 330 */ - 33, 96,130, 1,127, 0, 34, 49,248,255, 64, 16, 0, 0, 0, 0, /* 0x 340 */ - 0, 0, 0, 0, 2, 0,140, 37, 1, 5, 98, 44, 1, 0, 66, 56, /* 0x 350 */ - 33, 96,130, 1, 4, 0, 98, 40, 16, 0, 64, 20, 0, 0, 0, 0, /* 0x 360 */ - 1, 0,140, 37, 35, 24,195, 0, 4, 0,130, 41, 13, 0, 64, 20, /* 0x 370 */ - 0, 0, 0, 0, 0, 0, 98,152, 3, 0, 98,136,252,255,140, 37, /* 0x 380 */ - 0, 0,194,184, 3, 0,194,168,247,255,128, 21, 4, 0, 99, 36, /* 0x 390 */ -170,255, 0, 16, 4, 0,198, 36, 0, 0, 0, 0, 35, 24,195, 0, /* 0x 3a0 */ - 0, 0, 98,144,255,255,140, 37, 0, 0,194,160,252,255,128, 21, /* 0x 3b0 */ - 1, 0, 99, 36,161,255, 0, 16, 1, 0,198, 36, 0, 0, 0, 0, /* 0x 3c0 */ - 6, 0, 64, 20, 0, 0, 0, 0, 64, 72, 9, 0, 0, 0, 2,145, /* 0x 3d0 */ - 1, 0, 8, 37, 64, 16, 2, 0, 1, 0, 73, 36, 8, 0,224, 3, /* 0x 3e0 */ - 2, 18, 9, 0, 1, 0, 66, 48, 33, 72, 0, 0, 1, 0, 11, 36, /* 0x 3f0 */ - 33, 64,128, 0,104, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 400 */ - 7, 0, 64, 16, 0, 0, 0, 0, 1, 0, 3, 36, 0, 0, 2,145, /* 0x 410 */ - 1, 0, 8, 37,247,255, 0, 16, 0, 0,194,160, 1, 0,198, 36, /* 0x 420 */ - 93, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, 64, 24, 3, 0, /* 0x 430 */ - 89, 0, 17, 4, 33, 24, 98, 0,127, 0, 34, 49, 7, 0, 64, 20, /* 0x 440 */ - 0, 0, 0, 0,255,255, 98, 36, 83, 0, 17, 4, 64, 24, 2, 0, /* 0x 450 */ -243,255, 0, 16,127, 0, 34, 49, 33, 24, 98, 0, 2, 0, 2, 36, /* 0x 460 */ - 7, 0, 98, 20, 0, 0, 0, 0,253,255, 99, 36, 74, 0, 17, 4, /* 0x 470 */ - 33, 24, 96, 1, 14, 0, 0, 16,127, 0, 34, 49, 1, 0, 76, 48, /* 0x 480 */ - 0, 0, 2,145, 0, 26, 3, 0, 33, 24, 98, 0,255,255, 2, 36, /* 0x 490 */ - 75, 0, 98, 16, 0, 0, 0, 0, 1, 0, 8, 37, 39, 16, 3, 0, /* 0x 4a0 */ - 1, 0, 76, 48, 66, 24, 3, 0, 1, 0, 99, 36, 33, 88, 96, 0, /* 0x 4b0 */ - 6, 0,128, 17, 0, 0, 0, 0, 55, 0, 17, 4, 0, 0, 0, 0, /* 0x 4c0 */ - 23, 0, 0, 16,127, 0, 34, 49, 1, 0, 76, 36, 50, 0, 17, 4, /* 0x 4d0 */ - 0, 0, 0, 0,127, 0, 34, 49, 6, 0, 64, 16, 0, 0, 0, 0, /* 0x 4e0 */ - 45, 0, 17, 4, 1, 0,140, 37, 13, 0, 0, 16,127, 0, 34, 49, /* 0x 4f0 */ - 3, 0, 76, 36, 40, 0, 17, 4, 0, 0, 0, 0,127, 0, 34, 49, /* 0x 500 */ - 64, 96, 12, 0, 36, 0, 17, 4, 33, 96,130, 1,127, 0, 34, 49, /* 0x 510 */ -248,255, 64, 16, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,140, 37, /* 0x 520 */ - 1, 5, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, /* 0x 530 */ - 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, /* 0x 540 */ - 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, /* 0x 550 */ - 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, 3, 0,194,168, /* 0x 560 */ -247,255,128, 21, 4, 0, 99, 36,162,255, 0, 16, 4, 0,198, 36, /* 0x 570 */ - 0, 0, 0, 0, 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, /* 0x 580 */ - 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36,153,255, 0, 16, /* 0x 590 */ - 1, 0,198, 36, 0, 0, 0, 0, 6, 0, 64, 20, 0, 0, 0, 0, /* 0x 5a0 */ - 64, 72, 9, 0, 0, 0, 2,145, 1, 0, 8, 37, 64, 16, 2, 0, /* 0x 5b0 */ - 1, 0, 73, 36, 8, 0,224, 3, 2, 18, 9, 0, 1, 0, 66, 48, /* 0x 5c0 */ - 33, 72, 0, 0, 33,104, 32, 1, 1, 0, 11, 36, 33, 64,128, 0, /* 0x 5d0 */ - 85, 0, 17, 4, 0, 0, 0, 0, 7, 0, 64, 16,255,255,173, 37, /* 0x 5e0 */ - 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37,248,255, 0, 16, /* 0x 5f0 */ - 0, 0,194,160, 1, 0,198, 36, 75, 0, 17, 4, 0, 0, 0, 0, /* 0x 600 */ -255,255,173, 37, 64, 24, 3, 0, 71, 0, 17, 4, 33, 24, 98, 0, /* 0x 610 */ -249,255, 64, 16,255,255,173, 37, 0, 0, 0, 0, 2, 0, 2, 36, /* 0x 620 */ - 4, 0, 98, 20, 0, 0, 0, 0, 11, 0, 0, 16,253,255, 99, 36, /* 0x 630 */ - 33, 24, 96, 1, 0, 0, 2,145, 1, 0, 8, 37, 0, 26, 3, 0, /* 0x 640 */ - 33, 24, 98, 0,255,255, 2, 36, 65, 0, 98, 16, 0, 0, 0, 0, /* 0x 650 */ - 1, 0, 99, 36, 33, 88, 96, 0, 51, 0, 17, 4, 0, 0, 0, 0, /* 0x 660 */ -255,255,173, 37, 33, 96, 64, 0, 47, 0, 17, 4, 64, 96, 12, 0, /* 0x 670 */ -255,255,173, 37, 33, 96,130, 1, 14, 0,128, 21, 0, 0, 0, 0, /* 0x 680 */ - 1, 13, 98, 44, 1, 0, 12, 36, 39, 0, 17, 4, 0, 0, 0, 0, /* 0x 690 */ -255,255,173, 37, 64, 96, 12, 0, 35, 0, 17, 4, 33, 96,130, 1, /* 0x 6a0 */ -249,255, 64, 16,255,255,173, 37, 0, 0, 0, 0, 2, 0,140, 37, /* 0x 6b0 */ - 1, 13, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, /* 0x 6c0 */ - 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, /* 0x 6d0 */ - 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, /* 0x 6e0 */ - 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, 3, 0,194,168, /* 0x 6f0 */ -247,255,128, 21, 4, 0, 99, 36,182,255, 0, 16, 4, 0,198, 36, /* 0x 700 */ -255,255,173, 37, 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, /* 0x 710 */ - 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36,173,255, 0, 16, /* 0x 720 */ - 1, 0,198, 36,255,255,173, 37,255,255,173, 37, 7, 0,161, 5, /* 0x 730 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x 740 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x 750 */ - 33, 72, 0, 0, 33,104, 32, 1, 1, 0, 11, 36, 33, 64,128, 0, /* 0x 760 */ - 93, 0, 17, 4, 0, 0, 0, 0, 7, 0, 64, 16,255,255,173, 37, /* 0x 770 */ - 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37,248,255, 0, 16, /* 0x 780 */ - 0, 0,194,160, 1, 0,198, 36, 83, 0, 17, 4, 0, 0, 0, 0, /* 0x 790 */ -255,255,173, 37, 64, 24, 3, 0, 79, 0, 17, 4, 33, 24, 98, 0, /* 0x 7a0 */ - 7, 0, 64, 20,255,255,173, 37,255,255, 98, 36, 74, 0, 17, 4, /* 0x 7b0 */ - 64, 24, 2, 0,244,255, 0, 16,255,255,173, 37, 33, 24, 98, 0, /* 0x 7c0 */ - 2, 0, 2, 36, 7, 0, 98, 20, 0, 0, 0, 0, 66, 0, 17, 4, /* 0x 7d0 */ -253,255, 99, 36,255,255,173, 37, 14, 0, 0, 16, 33, 24, 96, 1, /* 0x 7e0 */ - 1, 0, 76, 48, 0, 0, 2,145, 1, 0, 8, 37, 0, 26, 3, 0, /* 0x 7f0 */ - 33, 24, 98, 0,255,255, 2, 36, 65, 0, 98, 16, 0, 0, 0, 0, /* 0x 800 */ - 39, 16, 3, 0, 1, 0, 76, 48, 66, 24, 3, 0, 1, 0, 99, 36, /* 0x 810 */ - 33, 88, 96, 0, 48, 0, 17, 4, 0, 0, 0, 0,255,255,173, 37, /* 0x 820 */ - 64, 96, 12, 0, 33, 96,130, 1, 14, 0,128, 21, 0, 0, 0, 0, /* 0x 830 */ - 1, 5, 98, 44, 1, 0, 12, 36, 39, 0, 17, 4, 0, 0, 0, 0, /* 0x 840 */ -255,255,173, 37, 64, 96, 12, 0, 35, 0, 17, 4, 33, 96,130, 1, /* 0x 850 */ -249,255, 64, 16,255,255,173, 37, 0, 0, 0, 0, 2, 0,140, 37, /* 0x 860 */ - 1, 5, 98, 44, 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, /* 0x 870 */ - 16, 0, 64, 20, 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, /* 0x 880 */ - 4, 0,130, 41, 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, /* 0x 890 */ - 3, 0, 98,136,252,255,140, 37, 0, 0,194,184, 3, 0,194,168, /* 0x 8a0 */ -247,255,128, 21, 4, 0, 99, 36,174,255, 0, 16, 4, 0,198, 36, /* 0x 8b0 */ -255,255,173, 37, 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, /* 0x 8c0 */ - 0, 0,194,160,252,255,128, 21, 1, 0, 99, 36,165,255, 0, 16, /* 0x 8d0 */ - 1, 0,198, 36,255,255,173, 37,255,255,173, 37, 7, 0,161, 5, /* 0x 8e0 */ - 0, 0, 0, 0, 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, /* 0x 8f0 */ - 3, 0, 9,137, 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, /* 0x 900 */ - 33, 72, 0, 0, 33,104, 32, 1, 1, 0, 11, 36, 33, 64,128, 0, /* 0x 910 */ -100, 0, 17, 4, 0, 0, 0, 0, 7, 0, 64, 16,255,255,173, 37, /* 0x 920 */ - 1, 0, 3, 36, 0, 0, 2,145, 1, 0, 8, 37,248,255, 0, 16, /* 0x 930 */ - 0, 0,194,160, 1, 0,198, 36, 90, 0, 17, 4, 0, 0, 0, 0, /* 0x 940 */ -255,255,173, 37, 64, 24, 3, 0, 86, 0, 17, 4, 33, 24, 98, 0, /* 0x 950 */ - 7, 0, 64, 20,255,255,173, 37,255,255, 98, 36, 81, 0, 17, 4, /* 0x 960 */ - 64, 24, 2, 0,244,255, 0, 16,255,255,173, 37, 33, 24, 98, 0, /* 0x 970 */ - 2, 0, 2, 36, 7, 0, 98, 20, 0, 0, 0, 0,253,255, 99, 36, /* 0x 980 */ - 72, 0, 17, 4, 33, 24, 96, 1, 14, 0, 0, 16,255,255,173, 37, /* 0x 990 */ - 1, 0, 76, 48, 0, 0, 2,145, 0, 26, 3, 0, 33, 24, 98, 0, /* 0x 9a0 */ -255,255, 2, 36, 73, 0, 98, 16, 0, 0, 0, 0, 1, 0, 8, 37, /* 0x 9b0 */ - 39, 16, 3, 0, 1, 0, 76, 48, 66, 24, 3, 0, 1, 0, 99, 36, /* 0x 9c0 */ - 33, 88, 96, 0, 6, 0,128, 17, 0, 0, 0, 0, 53, 0, 17, 4, /* 0x 9d0 */ - 0, 0, 0, 0, 21, 0, 0, 16,255,255,173, 37, 1, 0, 76, 36, /* 0x 9e0 */ - 48, 0, 17, 4, 0, 0, 0, 0, 6, 0, 64, 16,255,255,173, 37, /* 0x 9f0 */ - 44, 0, 17, 4, 1, 0,140, 37, 12, 0, 0, 16,255,255,173, 37, /* 0x a00 */ - 3, 0, 76, 36, 39, 0, 17, 4, 0, 0, 0, 0,255,255,173, 37, /* 0x a10 */ - 64, 96, 12, 0, 35, 0, 17, 4, 33, 96,130, 1,249,255, 64, 16, /* 0x a20 */ -255,255,173, 37, 0, 0, 0, 0, 3, 0,140, 37, 1, 5, 98, 44, /* 0x a30 */ - 1, 0, 66, 56, 33, 96,130, 1, 4, 0, 98, 40, 16, 0, 64, 20, /* 0x a40 */ - 0, 0, 0, 0, 1, 0,140, 37, 35, 24,195, 0, 4, 0,130, 41, /* 0x a50 */ - 13, 0, 64, 20, 0, 0, 0, 0, 0, 0, 98,152, 3, 0, 98,136, /* 0x a60 */ -252,255,140, 37, 0, 0,194,184, 3, 0,194,168,247,255,128, 21, /* 0x a70 */ - 4, 0, 99, 36,167,255, 0, 16, 4, 0,198, 36,255,255,173, 37, /* 0x a80 */ - 35, 24,195, 0, 0, 0, 98,144,255,255,140, 37, 0, 0,194,160, /* 0x a90 */ -252,255,128, 21, 1, 0, 99, 36,158,255, 0, 16, 1, 0,198, 36, /* 0x aa0 */ -255,255,173, 37,255,255,173, 37, 7, 0,161, 5, 0, 0, 0, 0, /* 0x ab0 */ - 6, 16,169, 1, 31, 0, 13, 36, 0, 0, 9,153, 3, 0, 9,137, /* 0x ac0 */ - 4, 0, 8, 37, 6, 16,169, 1, 1, 0, 66, 48, 0, 0, 4, 52, /* 0x ad0 */ - 0, 0, 4, 52,192, 32, 4, 0, 0, 0,192,172,255,255,132, 36, /* 0x ae0 */ -253,255,128, 20, 0, 0, 0, 0, 4, 0,198, 36, 3, 0,192,168, /* 0x af0 */ - 0, 0,192,184,255,255,132, 36,252,255,128, 20, 0, 0, 0, 0, /* 0x b00 */ - 4, 0,198, 36,160, 0, 10, 36, 9,248, 64, 1, 0, 0, 0, 0, /* 0x b10 */ - 68, 0, 9, 36, 0, 0,161,143, 4, 0,164,143, 8, 0,165,143, /* 0x b20 */ - 12, 0,166,143, 16, 0,167,143, 20, 0,162,143, 24, 0,163,143, /* 0x b30 */ - 28, 0,191,143, 0, 0, 0, 0, 33,232,161, 3, 85, 80, 88, 33, /* 0x b40 */ -161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x b50 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 32, 0, 0, 0, /* 0x b60 */ - 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, /* 0x b70 */ - 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 80, /* 0x b80 */ - 83, 49, 83, 84, 65, 82, 84, 0, 46,114,101,108, 80, 83, 49, 80, /* 0x b90 */ - 65, 68, 67, 68, 0, 46,114,101,108, 80, 83, 49, 67, 79, 78, 72, /* 0x ba0 */ - 76, 0, 46,114,101,108, 80, 83, 49, 67, 79, 78, 72, 73, 0, 80, /* 0x bb0 */ - 83, 49, 69, 78, 84, 82, 89, 0, 80, 83, 49, 78, 50, 66, 48, 56, /* 0x bc0 */ - 0, 80, 83, 49, 78, 50, 68, 48, 56, 0, 80, 83, 49, 78, 50, 69, /* 0x bd0 */ - 48, 56, 0, 80, 83, 49, 78, 50, 66, 51, 50, 0, 80, 83, 49, 78, /* 0x be0 */ - 50, 68, 51, 50, 0, 80, 83, 49, 78, 50, 69, 51, 50, 0, 46,114, /* 0x bf0 */ -101,108, 80, 83, 49, 77, 83, 69, 84, 83, 0, 46,114,101,108, 80, /* 0x c00 */ - 83, 49, 77, 83, 69, 84, 66, 0, 80, 83, 49, 77, 83, 69, 84, 65, /* 0x c10 */ - 0, 80, 83, 49, 77, 83, 69, 84, 85, 0, 46,114,101,108, 80, 83, /* 0x c20 */ - 49, 69, 88, 73, 84, 67, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, /* 0x c30 */ - 80, 83, 49, 83, 82, 69, 71, 83, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c40 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c50 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c60 */ - 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x c70 */ - 0, 0, 0, 0, 52, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, /* 0x c80 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, /* 0x c90 */ - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 19, 0, 0, /* 0x ca0 */ - 24, 0, 0, 0, 27, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, /* 0x cb0 */ - 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x cc0 */ - 0, 0, 0, 0,136, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x cd0 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, /* 0x ce0 */ - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 19, 0, 0, /* 0x cf0 */ - 8, 0, 0, 0, 27, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, /* 0x d00 */ - 8, 0, 0, 0, 57, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x d10 */ - 0, 0, 0, 0,140, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, /* 0x d20 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, /* 0x d30 */ - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 19, 0, 0, /* 0x d40 */ - 16, 0, 0, 0, 27, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, /* 0x d50 */ - 8, 0, 0, 0, 70, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x d60 */ - 0, 0, 0, 0,156, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, /* 0x d70 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, /* 0x d80 */ - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 19, 0, 0, /* 0x d90 */ - 8, 0, 0, 0, 27, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, /* 0x da0 */ - 8, 0, 0, 0, 79, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x db0 */ - 0, 0, 0, 0,168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x dc0 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, /* 0x dd0 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 0, 0, 0, /* 0x de0 */ -152, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x df0 */ - 0, 0, 0, 0, 97, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x e00 */ - 0, 0, 0, 0, 64, 2, 0, 0,184, 1, 0, 0, 0, 0, 0, 0, /* 0x e10 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, /* 0x e20 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 3, 0, 0, /* 0x e30 */ -216, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x e40 */ - 0, 0, 0, 0,115, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x e50 */ - 0, 0, 0, 0,208, 5, 0, 0,144, 1, 0, 0, 0, 0, 0, 0, /* 0x e60 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, /* 0x e70 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 7, 0, 0, /* 0x e80 */ -176, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x e90 */ - 0, 0, 0, 0,133, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x ea0 */ - 0, 0, 0, 0, 16, 9, 0, 0,204, 1, 0, 0, 0, 0, 0, 0, /* 0x eb0 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,146, 0, 0, 0, /* 0x ec0 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 10, 0, 0, /* 0x ed0 */ - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x ee0 */ - 0, 0, 0, 0,142, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x ef0 */ - 0, 0, 0, 0, 88, 19, 0, 0, 8, 0, 0, 0, 27, 0, 0, 0, /* 0x f00 */ - 16, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,159, 0, 0, 0, /* 0x f10 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 10, 0, 0, /* 0x f20 */ - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x f30 */ - 0, 0, 0, 0,155, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x f40 */ - 0, 0, 0, 0, 96, 19, 0, 0, 8, 0, 0, 0, 27, 0, 0, 0, /* 0x f50 */ - 18, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,168, 0, 0, 0, /* 0x f60 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 10, 0, 0, /* 0x f70 */ - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x f80 */ - 0, 0, 0, 0,177, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x f90 */ - 0, 0, 0, 0,252, 10, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x fa0 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,190, 0, 0, 0, /* 0x fb0 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 11, 0, 0, /* 0x fc0 */ - 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x fd0 */ - 0, 0, 0, 0,186, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x fe0 */ - 0, 0, 0, 0,104, 19, 0, 0, 8, 0, 0, 0, 27, 0, 0, 0, /* 0x ff0 */ - 22, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,199, 0, 0, 0, /* 0x1000 */ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 11, 0, 0, /* 0x1010 */ - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x1020 */ - 0, 0, 0, 0,208, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1030 */ - 0, 0, 0, 0,108, 11, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x1040 */ - 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, /* 0x1050 */ - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 11, 0, 0, /* 0x1060 */ -217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x1070 */ - 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x1080 */ - 0, 0, 0, 0,212, 16, 0, 0,144, 1, 0, 0, 28, 0, 0, 0, /* 0x1090 */ - 19, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, /* 0x10a0 */ - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100, 18, 0, 0, /* 0x10b0 */ -187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x10c0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10d0 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10e0 */ - 3, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x10f0 */ - 3, 0, 3, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1100 */ - 3, 0, 5, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1110 */ - 3, 0, 7, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1120 */ - 3, 0, 9, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1130 */ - 3, 0, 10, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1140 */ - 3, 0, 11, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1150 */ - 3, 0, 12, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1160 */ - 3, 0, 13, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1170 */ - 3, 0, 14, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1180 */ - 3, 0, 15, 0,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1190 */ - 3, 0, 16, 0,109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11a0 */ - 3, 0, 18, 0,118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11b0 */ - 3, 0, 20, 0,127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11c0 */ - 3, 0, 21, 0,136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11d0 */ - 3, 0, 22, 0,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11e0 */ - 3, 0, 24, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x11f0 */ - 3, 0, 25, 0,163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1200 */ - 16, 0, 0, 0,166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1210 */ - 16, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1220 */ - 16, 0, 0, 0,174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1230 */ - 16, 0, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1240 */ - 16, 0, 0, 0,182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1250 */ - 16, 0, 0, 0, 0, 80, 83, 49, 83, 84, 65, 82, 84, 0, 80, 83, /* 0x1260 */ - 49, 80, 65, 68, 67, 68, 0, 80, 83, 49, 67, 79, 78, 72, 76, 0, /* 0x1270 */ - 80, 83, 49, 67, 79, 78, 72, 73, 0, 80, 83, 49, 69, 78, 84, 82, /* 0x1280 */ - 89, 0, 80, 83, 49, 78, 50, 66, 48, 56, 0, 80, 83, 49, 78, 50, /* 0x1290 */ - 68, 48, 56, 0, 80, 83, 49, 78, 50, 69, 48, 56, 0, 80, 83, 49, /* 0x12a0 */ - 78, 50, 66, 51, 50, 0, 80, 83, 49, 78, 50, 68, 51, 50, 0, 80, /* 0x12b0 */ - 83, 49, 78, 50, 69, 51, 50, 0, 80, 83, 49, 77, 83, 69, 84, 83, /* 0x12c0 */ - 0, 80, 83, 49, 77, 83, 69, 84, 66, 0, 80, 83, 49, 77, 83, 69, /* 0x12d0 */ - 84, 65, 0, 80, 83, 49, 77, 83, 69, 84, 85, 0, 80, 83, 49, 69, /* 0x12e0 */ - 88, 73, 84, 67, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, 80, 83, /* 0x12f0 */ - 49, 83, 82, 69, 71, 83, 0, 76, 83, 0, 68, 67, 82, 84, 0, 80, /* 0x1300 */ - 67, 0, 68, 69, 67, 79, 0, 83, 67, 0, 74, 80, 69, 80, 0, 0, /* 0x1310 */ - 0, 0, 0, 0, 6, 19, 0, 0, 52, 0, 0, 0, 5, 20, 0, 0, /* 0x1320 */ - 56, 0, 0, 0, 6, 20, 0, 0, 0, 0, 0, 0, 6, 21, 0, 0, /* 0x1330 */ - 0, 0, 0, 0, 5, 22, 0, 0, 4, 0, 0, 0, 6, 22, 0, 0, /* 0x1340 */ - 8, 0, 0, 0, 5, 22, 0, 0, 0, 0, 0, 0, 6, 23, 0, 0, /* 0x1350 */ - 0, 0, 0, 0, 6, 23, 0, 0, 48, 0, 0, 0, 2, 24, 0, 0, /* 0x1360 */ - 10,116,109,112, 47,109,105,112,115,101,108, 46,114, 51, 48, 48, /* 0x1370 */ - 48, 45,112,115, 49, 45, 99,111,110,115,111,108,101, 46, 98,105, /* 0x1380 */ -110, 58, 32, 32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, /* 0x1390 */ - 97,116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101,109, /* 0x13a0 */ -105,112,115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, /* 0x13b0 */ -100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x13c0 */ - 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, /* 0x13d0 */ - 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, /* 0x13e0 */ -105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, /* 0x13f0 */ -108, 97,103,115, 10, 32, 32, 48, 32, 80, 83, 49, 83, 84, 65, 82, /* 0x1400 */ - 84, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 53, 52, 32, /* 0x1410 */ - 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1420 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, /* 0x1430 */ - 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1440 */ - 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1450 */ - 32, 49, 32, 80, 83, 49, 80, 65, 68, 67, 68, 32, 32, 32, 32, 32, /* 0x1460 */ - 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x1470 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1480 */ - 48, 48, 48, 48, 48, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1490 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x14a0 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 80, 83, 49, /* 0x14b0 */ - 67, 79, 78, 72, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x14c0 */ - 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x14d0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 56, /* 0x14e0 */ - 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x14f0 */ - 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1500 */ - 76, 89, 10, 32, 32, 51, 32, 80, 83, 49, 67, 79, 78, 72, 73, 32, /* 0x1510 */ - 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 99, 32, 32, 48, /* 0x1520 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1530 */ - 48, 32, 32, 48, 48, 48, 48, 48, 48, 57, 99, 32, 32, 50, 42, 42, /* 0x1540 */ - 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x1550 */ - 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, /* 0x1560 */ - 32, 80, 83, 49, 69, 78, 84, 82, 89, 32, 32, 32, 32, 32, 32, 48, /* 0x1570 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1580 */ - 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1590 */ - 48, 48, 48, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x15a0 */ - 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x15b0 */ - 32, 32, 53, 32, 80, 83, 49, 78, 50, 66, 48, 56, 32, 32, 32, 32, /* 0x15c0 */ - 32, 32, 48, 48, 48, 48, 48, 49, 57, 56, 32, 32, 48, 48, 48, 48, /* 0x15d0 */ - 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x15e0 */ - 48, 48, 48, 48, 48, 48, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x15f0 */ - 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1600 */ - 76, 89, 10, 32, 32, 54, 32, 80, 83, 49, 78, 50, 68, 48, 56, 32, /* 0x1610 */ - 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 98, 56, 32, 32, 48, /* 0x1620 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1630 */ - 48, 32, 32, 48, 48, 48, 48, 48, 50, 52, 48, 32, 32, 50, 42, 42, /* 0x1640 */ - 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1650 */ - 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 80, 83, 49, 78, 50, 69, /* 0x1660 */ - 48, 56, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,100, 56, /* 0x1670 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1680 */ - 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,102, 56, 32, 32, /* 0x1690 */ - 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x16a0 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 80, 83, 49, /* 0x16b0 */ - 78, 50, 66, 51, 50, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x16c0 */ - 49, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x16d0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 53,100, /* 0x16e0 */ - 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x16f0 */ - 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, /* 0x1700 */ - 80, 83, 49, 78, 50, 68, 51, 50, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1710 */ - 48, 48, 48, 49, 98, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1720 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1730 */ - 48, 55, 54, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1740 */ - 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1750 */ - 49, 48, 32, 80, 83, 49, 78, 50, 69, 51, 50, 32, 32, 32, 32, 32, /* 0x1760 */ - 32, 48, 48, 48, 48, 48, 49, 99, 99, 32, 32, 48, 48, 48, 48, 48, /* 0x1770 */ - 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1780 */ - 48, 48, 48, 48, 57, 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1790 */ - 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x17a0 */ - 89, 10, 32, 49, 49, 32, 80, 83, 49, 77, 83, 69, 84, 83, 32, 32, /* 0x17b0 */ - 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, /* 0x17c0 */ - 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x17d0 */ - 32, 32, 48, 48, 48, 48, 48, 97,100, 99, 32, 32, 50, 42, 42, 48, /* 0x17e0 */ - 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x17f0 */ - 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, /* 0x1800 */ - 80, 83, 49, 77, 83, 69, 84, 66, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1810 */ - 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1820 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1830 */ - 48, 97,101, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1840 */ - 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1850 */ - 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 80, 83, 49, 77, 83, 69, /* 0x1860 */ - 84, 65, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 52, /* 0x1870 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1880 */ - 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 97,101, 56, 32, 32, /* 0x1890 */ - 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x18a0 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 52, 32, 80, 83, 49, /* 0x18b0 */ - 77, 83, 69, 84, 85, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x18c0 */ - 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x18d0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 97,102, /* 0x18e0 */ - 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x18f0 */ - 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 53, 32, /* 0x1900 */ - 80, 83, 49, 69, 88, 73, 84, 67, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1910 */ - 48, 48, 48, 48, 51, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1920 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1930 */ - 48, 98, 49, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, /* 0x1940 */ - 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1950 */ - 68, 79, 78, 76, 89, 10, 32, 49, 54, 32, 85, 80, 88, 49, 72, 69, /* 0x1960 */ - 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, /* 0x1970 */ - 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1980 */ - 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 98, 52, 99, 32, 32, /* 0x1990 */ - 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x19a0 */ - 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 55, 32, 80, 83, 49, /* 0x19b0 */ - 83, 82, 69, 71, 83, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x19c0 */ - 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x19d0 */ - 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 98, 54, /* 0x19e0 */ - 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x19f0 */ - 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, /* 0x1a00 */ - 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, /* 0x1a10 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 83, 84, /* 0x1a20 */ - 65, 82, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, /* 0x1a30 */ - 83, 84, 65, 82, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1a40 */ - 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 80, 65, 68, 67, 68, 9, /* 0x1a50 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 80, 65, 68, 67, /* 0x1a60 */ - 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1a70 */ -100, 32, 32, 80, 83, 49, 67, 79, 78, 72, 76, 9, 48, 48, 48, 48, /* 0x1a80 */ - 48, 48, 48, 48, 32, 80, 83, 49, 67, 79, 78, 72, 76, 10, 48, 48, /* 0x1a90 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, /* 0x1aa0 */ - 83, 49, 67, 79, 78, 72, 73, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ab0 */ - 32, 80, 83, 49, 67, 79, 78, 72, 73, 10, 48, 48, 48, 48, 48, 48, /* 0x1ac0 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 69, 78, /* 0x1ad0 */ - 84, 82, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, /* 0x1ae0 */ - 69, 78, 84, 82, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1af0 */ - 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 66, 48, 56, 9, /* 0x1b00 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 66, 48, /* 0x1b10 */ - 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1b20 */ -100, 32, 32, 80, 83, 49, 78, 50, 68, 48, 56, 9, 48, 48, 48, 48, /* 0x1b30 */ - 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 68, 48, 56, 10, 48, 48, /* 0x1b40 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, /* 0x1b50 */ - 83, 49, 78, 50, 69, 48, 56, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1b60 */ - 32, 80, 83, 49, 78, 50, 69, 48, 56, 10, 48, 48, 48, 48, 48, 48, /* 0x1b70 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, /* 0x1b80 */ - 66, 51, 50, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, /* 0x1b90 */ - 78, 50, 66, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1ba0 */ - 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 78, 50, 68, 51, 50, 9, /* 0x1bb0 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 68, 51, /* 0x1bc0 */ - 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1bd0 */ -100, 32, 32, 80, 83, 49, 78, 50, 69, 51, 50, 9, 48, 48, 48, 48, /* 0x1be0 */ - 48, 48, 48, 48, 32, 80, 83, 49, 78, 50, 69, 51, 50, 10, 48, 48, /* 0x1bf0 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, /* 0x1c00 */ - 83, 49, 77, 83, 69, 84, 83, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1c10 */ - 32, 80, 83, 49, 77, 83, 69, 84, 83, 10, 48, 48, 48, 48, 48, 48, /* 0x1c20 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 77, 83, /* 0x1c30 */ - 69, 84, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, /* 0x1c40 */ - 77, 83, 69, 84, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1c50 */ - 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 77, 83, 69, 84, 65, 9, /* 0x1c60 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 77, 83, 69, 84, /* 0x1c70 */ - 65, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x1c80 */ -100, 32, 32, 80, 83, 49, 77, 83, 69, 84, 85, 9, 48, 48, 48, 48, /* 0x1c90 */ - 48, 48, 48, 48, 32, 80, 83, 49, 77, 83, 69, 84, 85, 10, 48, 48, /* 0x1ca0 */ - 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 80, /* 0x1cb0 */ - 83, 49, 69, 88, 73, 84, 67, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1cc0 */ - 32, 80, 83, 49, 69, 88, 73, 84, 67, 10, 48, 48, 48, 48, 48, 48, /* 0x1cd0 */ - 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, /* 0x1ce0 */ - 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 85, 80, 88, /* 0x1cf0 */ - 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x1d00 */ - 32, 32, 32, 32,100, 32, 32, 80, 83, 49, 83, 82, 69, 71, 83, 9, /* 0x1d10 */ - 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 83, 49, 83, 82, 69, 71, /* 0x1d20 */ - 83, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x1d30 */ - 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1d40 */ - 48, 32, 76, 83, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x1d50 */ - 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x1d60 */ - 48, 48, 48, 48, 32, 68, 67, 82, 84, 10, 48, 48, 48, 48, 48, 48, /* 0x1d70 */ - 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x1d80 */ - 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 80, 67, 10, 48, 48, 48, /* 0x1d90 */ - 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x1da0 */ - 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 68, 69, 67, /* 0x1db0 */ - 79, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */ - 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x1dd0 */ - 48, 32, 83, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x1de0 */ - 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x1df0 */ - 48, 48, 48, 48, 32, 74, 80, 69, 80, 10, 10, 10, 82, 69, 76, 79, /* 0x1e00 */ - 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x1e10 */ - 79, 82, 32, 91, 80, 83, 49, 83, 84, 65, 82, 84, 93, 58, 10, 79, /* 0x1e20 */ - 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x1e30 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, /* 0x1e40 */ - 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, /* 0x1e50 */ - 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, 76, 83, 10, 48, /* 0x1e60 */ - 48, 48, 48, 48, 48, 51, 52, 32, 82, 95, 77, 73, 80, 83, 95, 72, /* 0x1e70 */ - 73, 49, 54, 32, 32, 32, 32, 32, 32, 32, 68, 67, 82, 84, 10, 48, /* 0x1e80 */ - 48, 48, 48, 48, 48, 51, 56, 32, 82, 95, 77, 73, 80, 83, 95, 76, /* 0x1e90 */ - 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, 68, 67, 82, 84, 10, 10, /* 0x1ea0 */ - 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x1eb0 */ - 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, 49, 80, 65, 68, 67, /* 0x1ec0 */ - 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x1ed0 */ - 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x1ee0 */ - 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, /* 0x1ef0 */ - 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x1f00 */ - 32, 80, 67, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x1f10 */ - 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, /* 0x1f20 */ - 49, 67, 79, 78, 72, 76, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x1f30 */ - 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1f40 */ - 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, /* 0x1f50 */ - 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, /* 0x1f60 */ - 32, 32, 32, 32, 32, 32, 68, 69, 67, 79, 10, 48, 48, 48, 48, 48, /* 0x1f70 */ - 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, /* 0x1f80 */ - 32, 32, 32, 32, 32, 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, /* 0x1f90 */ - 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x1fa0 */ - 70, 79, 82, 32, 91, 80, 83, 49, 67, 79, 78, 72, 73, 93, 58, 10, /* 0x1fb0 */ - 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x1fc0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x1fd0 */ - 32, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, /* 0x1fe0 */ - 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, 32, 32, 32, 68, 69, 67, /* 0x1ff0 */ - 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x2000 */ - 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 80, 83, 49, 77, /* 0x2010 */ - 83, 69, 84, 83, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2020 */ - 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2030 */ - 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2040 */ - 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, /* 0x2050 */ - 32, 32, 32, 32, 83, 67, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2060 */ - 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2070 */ - 91, 80, 83, 49, 77, 83, 69, 84, 66, 93, 58, 10, 79, 70, 70, 83, /* 0x2080 */ - 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2090 */ - 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x20a0 */ - 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, /* 0x20b0 */ - 49, 54, 32, 32, 32, 32, 32, 32, 32, 83, 67, 10, 10, 10, 82, 69, /* 0x20c0 */ - 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x20d0 */ - 32, 70, 79, 82, 32, 91, 80, 83, 49, 69, 88, 73, 84, 67, 93, 58, /* 0x20e0 */ - 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x20f0 */ - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2100 */ - 69, 32, 10, 48, 48, 48, 48, 48, 48, 51, 48, 32, 82, 95, 77, 73, /* 0x2110 */ - 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 80, /* 0x2120 */ - 69, 80, 10, 10, 10 /* 0x2130 */ -}; diff --git a/src/stub/mipsel.r3000-ps1.h b/src/stub/mipsel.r3000-ps1.h new file mode 100644 index 00000000..eb21703e --- /dev/null +++ b/src/stub/mipsel.r3000-ps1.h @@ -0,0 +1,962 @@ +/* mipsel.r3000-ps1.h -- created from mipsel.r3000-ps1.bin, 14824 (0x39e8) bytes + + This file is part of the UPX executable compressor. + + Copyright (C) 1996-2006 Markus Franz Xaver Johannes Oberhumer + Copyright (C) 1996-2006 Laszlo Molnar + Copyright (C) 2000-2006 John F. Reiser + All Rights Reserved. + + UPX and the UCL library are free software; you can redistribute them + and/or modify them under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of + the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; see the file COPYING. + If not, write to the Free Software Foundation, Inc., + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + Markus F.X.J. Oberhumer Laszlo Molnar + + */ + + +#define NRV_LOADER_SIZE 14824 +#define NRV_LOADER_ADLER32 0xf05c7e8a +#define NRV_LOADER_CRC32 0xc316674f + +unsigned char nrv_loader[14824] = { +127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 92, 18, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ + 49, 0, 46, 0, 0, 0, 8, 60, 0, 0, 8, 37, 35, 64, 8, 2, /* 0x 30 */ + 8, 0, 0, 1,240,255,189, 39, 0, 0,164,175, 4, 0,165,175, /* 0x 40 */ + 8, 0,166,175, 12, 0,191,175, 0, 0, 4, 60, 0, 0,132, 36, /* 0x 50 */ + 0, 0, 5, 60, 0, 0,165, 36, 0, 0, 5, 60,160, 0, 10, 36, /* 0x 60 */ + 9,248, 64, 1, 68, 0, 9, 36, 0, 0,164,143, 4, 0,165,143, /* 0x 70 */ + 8, 0,166,143, 12, 0,191,143, 0, 0, 0, 0, 16, 0,189, 39, /* 0x 80 */ + 0, 0, 1, 36, 35,232,161, 3, 0, 0,164,175, 4, 0,165,175, /* 0x 90 */ + 8, 0,166,175, 12, 0,191,175, 16, 0,161,175,236,255, 40, 36, /* 0x a0 */ + 20, 0,166, 39, 33, 40,192, 0, 0, 0, 4, 60, 0, 0,132, 36, /* 0x b0 */ + 0, 0,129,140,252,255, 8, 37, 0, 0,161,172, 4, 0,132, 36, /* 0x c0 */ +251,255, 0, 21, 4, 0,165, 36, 0, 0,132, 36, 0, 0, 5, 60, /* 0x d0 */ + 8, 0,192, 0, 0, 0,165, 36, 8, 0,192, 0, 0, 0, 5, 60, /* 0x e0 */ +160, 0, 10, 36, 9,248, 64, 1, 68, 0, 9, 36, 0, 0,164,143, /* 0x f0 */ + 4, 0,165,143, 8, 0,166,143, 12, 0,191,143, 16, 0,161,143, /* 0x 100 */ + 0, 0, 0, 0, 33,232,161, 3, 20, 0, 0, 0, 0, 0, 8, 36, /* 0x 110 */ + 0, 0, 8, 36,192, 64, 8, 0, 0, 0,160,172,255,255, 8, 37, /* 0x 120 */ +253,255, 0, 21, 4, 0,165, 36, 3, 0,160,168, 0, 0,160,184, /* 0x 130 */ +255,255, 8, 37,252,255, 0, 21, 4, 0,165, 36, 33, 96, 0, 0, /* 0x 140 */ + 1, 0, 10, 36, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 150 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 160 */ + 1, 0, 14, 36, 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, /* 0x 170 */ + 0, 0,173,160,243,255, 0, 16, 1, 0,165, 36, 4, 0,128, 29, /* 0x 180 */ +255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, /* 0x 190 */ + 6,104,136, 1, 1, 0,173, 49, 64,112, 14, 0, 33,112,205, 1, /* 0x 1a0 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 1b0 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49,239,255,160, 17, /* 0x 1c0 */ + 2, 0, 13, 36, 3, 0,205, 21,253,255,206, 37, 8, 0, 0, 16, /* 0x 1d0 */ + 33,112, 64, 1, 0, 0,141,144, 0,114, 14, 0, 33,112,205, 1, /* 0x 1e0 */ + 1, 0,206, 37, 65, 0,192, 17, 1, 0,132, 36, 33, 80,192, 1, /* 0x 1f0 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 200 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 33, 88,160, 1, /* 0x 210 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 220 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, /* 0x 230 */ + 33, 88,109, 1, 19, 0, 96, 21,254,255,107, 37, 1, 0, 11, 36, /* 0x 240 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 250 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, /* 0x 260 */ + 33, 88,109, 1, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 270 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 280 */ +239,255,160, 17, 1, 13,205, 45, 4, 0,107, 37, 35, 88,109, 1, /* 0x 290 */ + 4, 0,205, 41, 13, 0,160, 21, 35,112,174, 0, 4, 0,109, 41, /* 0x 2a0 */ + 11, 0,160, 21, 0, 0,205,153, 3, 0,205,137,252,255,107, 37, /* 0x 2b0 */ + 0, 0,173,184, 3, 0,173,168, 4, 0,206, 37,247,255, 96, 21, /* 0x 2c0 */ + 4, 0,165, 36,159,255, 0, 16, 0, 0, 0, 0, 0, 0,205,145, /* 0x 2d0 */ +255,255,107, 37, 0, 0,173,160, 1, 0,206, 37,251,255, 96, 21, /* 0x 2e0 */ + 1, 0,165, 36,151,255, 0, 16, 0, 0, 0, 0, 33, 96, 0, 0, /* 0x 2f0 */ + 1, 0, 10, 36, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 300 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 310 */ + 1, 0, 14, 36, 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, /* 0x 320 */ + 0, 0,173,160,243,255, 0, 16, 1, 0,165, 36, 4, 0,128, 29, /* 0x 330 */ +255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, /* 0x 340 */ + 6,104,136, 1, 1, 0,173, 49, 64,112, 14, 0, 33,112,205, 1, /* 0x 350 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 360 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 11, 0,160, 21, /* 0x 370 */ +254,255,205, 37, 33,112,174, 1, 4, 0,128, 29,255,255,140, 37, /* 0x 380 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 390 */ + 1, 0,173, 49,229,255, 0, 16, 33,112,205, 1, 11, 0,160, 21, /* 0x 3a0 */ +253,255,206, 37, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 3b0 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 3c0 */ + 33,112, 64, 1, 11, 0, 0, 16, 1, 0,171, 49, 0, 0,141,144, /* 0x 3d0 */ + 0,114, 14, 0, 33,112,205, 1, 1, 0,205, 37, 60, 0,160, 17, /* 0x 3e0 */ + 1, 0,132, 36, 66,112, 14, 0, 1, 0,206, 37, 33, 80,192, 1, /* 0x 3f0 */ + 1, 0,171, 49, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 400 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 410 */ + 64, 88, 11, 0, 33, 88,109, 1, 19, 0, 96, 21,254,255,107, 37, /* 0x 420 */ + 1, 0, 11, 36, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 430 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 440 */ + 64, 88, 11, 0, 33, 88,109, 1, 4, 0,128, 29,255,255,140, 37, /* 0x 450 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 460 */ + 1, 0,173, 49,239,255,160, 17, 1, 5,205, 45, 4, 0,107, 37, /* 0x 470 */ + 35, 88,109, 1, 4, 0,205, 41, 13, 0,160, 21, 35,112,174, 0, /* 0x 480 */ + 4, 0,109, 41, 11, 0,160, 21, 0, 0,205,153, 3, 0,205,137, /* 0x 490 */ +252,255,107, 37, 0, 0,173,184, 3, 0,173,168, 4, 0,206, 37, /* 0x 4a0 */ +247,255, 96, 21, 4, 0,165, 36,146,255, 0, 16, 0, 0, 0, 0, /* 0x 4b0 */ + 0, 0,205,145,255,255,107, 37, 0, 0,173,160, 1, 0,206, 37, /* 0x 4c0 */ +251,255, 96, 21, 1, 0,165, 36,138,255, 0, 16, 0, 0, 0, 0, /* 0x 4d0 */ + 33, 96, 0, 0, 1, 0, 10, 36, 4, 0,128, 29,255,255,140, 37, /* 0x 4e0 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 4f0 */ + 1, 0,173, 49, 1, 0, 14, 36, 5, 0,160, 17, 0, 0,141,144, /* 0x 500 */ + 1, 0,132, 36, 0, 0,173,160,243,255, 0, 16, 1, 0,165, 36, /* 0x 510 */ + 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, /* 0x 520 */ + 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 64,112, 14, 0, /* 0x 530 */ + 33,112,205, 1, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 540 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 550 */ + 11, 0,160, 21,254,255,205, 37, 33,112,205, 1, 4, 0,128, 29, /* 0x 560 */ +255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, /* 0x 570 */ + 6,104,136, 1, 1, 0,173, 49,229,255, 0, 16, 33,112,205, 1, /* 0x 580 */ + 11, 0,160, 21,253,255,206, 37, 4, 0,128, 29,255,255,140, 37, /* 0x 590 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 5a0 */ + 1, 0,173, 49, 33,112, 64, 1, 11, 0, 0, 16, 1, 0,171, 49, /* 0x 5b0 */ + 0, 0,141,144, 0,114, 14, 0, 33,112,205, 1, 1, 0,205, 37, /* 0x 5c0 */ + 68, 0,160, 17, 1, 0,132, 36, 66,112, 14, 0, 1, 0,206, 37, /* 0x 5d0 */ + 33, 80,192, 1, 1, 0,171, 49, 4, 0,128, 29,255,255,140, 37, /* 0x 5e0 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 5f0 */ + 1, 0,173, 49, 29, 0, 96, 21,254,255,171, 37, 10, 0,160, 17, /* 0x 600 */ + 1, 0, 11, 36, 4, 0,128, 29,255,255,140, 37, 7, 0, 12, 36, /* 0x 610 */ + 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 620 */ + 18, 0, 0, 16, 33, 88,160, 1, 4, 0,128, 29,255,255,140, 37, /* 0x 630 */ + 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, 6,104,136, 1, /* 0x 640 */ + 1, 0,173, 49, 64, 88, 11, 0, 33, 88,109, 1, 4, 0,128, 29, /* 0x 650 */ +255,255,140, 37, 7, 0, 12, 36, 0, 0,136,144, 1, 0,132, 36, /* 0x 660 */ + 6,104,136, 1, 1, 0,173, 49,239,255,160, 17, 1, 5,205, 45, /* 0x 670 */ + 5, 0,107, 37, 35, 88,109, 1, 4, 0,205, 41, 13, 0,160, 21, /* 0x 680 */ + 35,112,174, 0, 4, 0,109, 41, 11, 0,160, 21, 0, 0,205,153, /* 0x 690 */ + 3, 0,205,137,252,255,107, 37, 0, 0,173,184, 3, 0,173,168, /* 0x 6a0 */ + 4, 0,206, 37,247,255, 96, 21, 4, 0,165, 36,138,255, 0, 16, /* 0x 6b0 */ + 0, 0, 0, 0, 0, 0,205,145,255,255,107, 37, 0, 0,173,160, /* 0x 6c0 */ + 1, 0,206, 37,251,255, 96, 21, 1, 0,165, 36,130,255, 0, 16, /* 0x 6d0 */ + 0, 0, 0, 0, 33, 96, 0, 0, 1, 0, 10, 36, 5, 0,128, 29, /* 0x 6e0 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x 6f0 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 1, 0, 14, 36, /* 0x 700 */ + 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, 0, 0,173,160, /* 0x 710 */ +242,255, 0, 16, 1, 0,165, 36, 5, 0,128, 29,255,255,140, 37, /* 0x 720 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x 730 */ + 6,104,136, 1, 1, 0,173, 49, 64,112, 14, 0, 33,112,205, 1, /* 0x 740 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x 750 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x 760 */ +237,255,160, 17, 2, 0, 13, 36, 3, 0,205, 21,253,255,206, 37, /* 0x 770 */ + 8, 0, 0, 16, 33,112, 64, 1, 0, 0,141,144, 0,114, 14, 0, /* 0x 780 */ + 33,112,205, 1, 1, 0,206, 37, 69, 0,192, 17, 1, 0,132, 36, /* 0x 790 */ + 33, 80,192, 1, 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, /* 0x 7a0 */ + 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, /* 0x 7b0 */ + 1, 0,173, 49, 33, 88,160, 1, 5, 0,128, 29,255,255,140, 37, /* 0x 7c0 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x 7d0 */ + 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, 33, 88,109, 1, /* 0x 7e0 */ + 21, 0, 96, 21,254,255,107, 37, 1, 0, 11, 36, 5, 0,128, 29, /* 0x 7f0 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x 800 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, /* 0x 810 */ + 33, 88,109, 1, 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, /* 0x 820 */ + 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, /* 0x 830 */ + 1, 0,173, 49,237,255,160, 17, 1, 13,205, 45, 4, 0,107, 37, /* 0x 840 */ + 35, 88,109, 1, 4, 0,205, 41, 13, 0,160, 21, 35,112,174, 0, /* 0x 850 */ + 4, 0,109, 41, 11, 0,160, 21, 0, 0,205,153, 3, 0,205,137, /* 0x 860 */ +252,255,107, 37, 0, 0,173,184, 3, 0,173,168, 4, 0,206, 37, /* 0x 870 */ +247,255, 96, 21, 4, 0,165, 36,152,255, 0, 16, 0, 0, 0, 0, /* 0x 880 */ + 0, 0,205,145,255,255,107, 37, 0, 0,173,160, 1, 0,206, 37, /* 0x 890 */ +251,255, 96, 21, 1, 0,165, 36,144,255, 0, 16, 0, 0, 0, 0, /* 0x 8a0 */ + 33, 96, 0, 0, 1, 0, 10, 36, 5, 0,128, 29,255,255,140, 37, /* 0x 8b0 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x 8c0 */ + 6,104,136, 1, 1, 0,173, 49, 1, 0, 14, 36, 5, 0,160, 17, /* 0x 8d0 */ + 0, 0,141,144, 1, 0,132, 36, 0, 0,173,160,242,255, 0, 16, /* 0x 8e0 */ + 1, 0,165, 36, 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, /* 0x 8f0 */ + 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, /* 0x 900 */ + 1, 0,173, 49, 64,112, 14, 0, 33,112,205, 1, 5, 0,128, 29, /* 0x 910 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x 920 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 12, 0,160, 21, /* 0x 930 */ +254,255,205, 37, 33,112,174, 1, 5, 0,128, 29,255,255,140, 37, /* 0x 940 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x 950 */ + 6,104,136, 1, 1, 0,173, 49,226,255, 0, 16, 33,112,205, 1, /* 0x 960 */ + 12, 0,160, 21,253,255,206, 37, 5, 0,128, 29,255,255,140, 37, /* 0x 970 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x 980 */ + 6,104,136, 1, 1, 0,173, 49, 33,112, 64, 1, 11, 0, 0, 16, /* 0x 990 */ + 1, 0,171, 49, 0, 0,141,144, 0,114, 14, 0, 33,112,205, 1, /* 0x 9a0 */ + 1, 0,205, 37, 63, 0,160, 17, 1, 0,132, 36, 66,112, 14, 0, /* 0x 9b0 */ + 1, 0,206, 37, 33, 80,192, 1, 1, 0,171, 49, 5, 0,128, 29, /* 0x 9c0 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x 9d0 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, /* 0x 9e0 */ + 33, 88,109, 1, 21, 0, 96, 21,254,255,107, 37, 1, 0, 11, 36, /* 0x 9f0 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x a00 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x a10 */ + 64, 88, 11, 0, 33, 88,109, 1, 5, 0,128, 29,255,255,140, 37, /* 0x a20 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x a30 */ + 6,104,136, 1, 1, 0,173, 49,237,255,160, 17, 1, 5,205, 45, /* 0x a40 */ + 4, 0,107, 37, 35, 88,109, 1, 4, 0,205, 41, 13, 0,160, 21, /* 0x a50 */ + 35,112,174, 0, 4, 0,109, 41, 11, 0,160, 21, 0, 0,205,153, /* 0x a60 */ + 3, 0,205,137,252,255,107, 37, 0, 0,173,184, 3, 0,173,168, /* 0x a70 */ + 4, 0,206, 37,247,255, 96, 21, 4, 0,165, 36,138,255, 0, 16, /* 0x a80 */ + 0, 0, 0, 0, 0, 0,205,145,255,255,107, 37, 0, 0,173,160, /* 0x a90 */ + 1, 0,206, 37,251,255, 96, 21, 1, 0,165, 36,130,255, 0, 16, /* 0x aa0 */ + 0, 0, 0, 0, 33, 96, 0, 0, 1, 0, 10, 36, 5, 0,128, 29, /* 0x ab0 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x ac0 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 1, 0, 14, 36, /* 0x ad0 */ + 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, 0, 0,173,160, /* 0x ae0 */ +242,255, 0, 16, 1, 0,165, 36, 5, 0,128, 29,255,255,140, 37, /* 0x af0 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x b00 */ + 6,104,136, 1, 1, 0,173, 49, 64,112, 14, 0, 33,112,205, 1, /* 0x b10 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x b20 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x b30 */ + 12, 0,160, 21,254,255,205, 37, 33,112,205, 1, 5, 0,128, 29, /* 0x b40 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x b50 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49,226,255, 0, 16, /* 0x b60 */ + 33,112,205, 1, 12, 0,160, 21,253,255,206, 37, 5, 0,128, 29, /* 0x b70 */ +255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, /* 0x b80 */ + 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, 33,112, 64, 1, /* 0x b90 */ + 11, 0, 0, 16, 1, 0,171, 49, 0, 0,141,144, 0,114, 14, 0, /* 0x ba0 */ + 33,112,205, 1, 1, 0,205, 37, 72, 0,160, 17, 1, 0,132, 36, /* 0x bb0 */ + 66,112, 14, 0, 1, 0,206, 37, 33, 80,192, 1, 1, 0,171, 49, /* 0x bc0 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x bd0 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x be0 */ + 32, 0, 96, 21,254,255,171, 37, 11, 0,160, 17, 1, 0, 11, 36, /* 0x bf0 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x c00 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x c10 */ + 20, 0, 0, 16, 33, 88,160, 1, 5, 0,128, 29,255,255,140, 37, /* 0x c20 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x c30 */ + 6,104,136, 1, 1, 0,173, 49, 64, 88, 11, 0, 33, 88,109, 1, /* 0x c40 */ + 5, 0,128, 29,255,255,140, 37, 31, 0, 12, 36, 0, 0,136,152, /* 0x c50 */ + 3, 0,136,136, 4, 0,132, 36, 6,104,136, 1, 1, 0,173, 49, /* 0x c60 */ +237,255,160, 17, 1, 5,205, 45, 5, 0,107, 37, 35, 88,109, 1, /* 0x c70 */ + 4, 0,205, 41, 13, 0,160, 21, 35,112,174, 0, 4, 0,109, 41, /* 0x c80 */ + 11, 0,160, 21, 0, 0,205,153, 3, 0,205,137,252,255,107, 37, /* 0x c90 */ + 0, 0,173,184, 3, 0,173,168, 4, 0,206, 37,247,255, 96, 21, /* 0x ca0 */ + 4, 0,165, 36,129,255, 0, 16, 0, 0, 0, 0, 0, 0,205,145, /* 0x cb0 */ +255,255,107, 37, 0, 0,173,160, 1, 0,206, 37,251,255, 96, 21, /* 0x cc0 */ + 1, 0,165, 36,121,255, 0, 16, 0, 0, 0, 0,255,255,140, 37, /* 0x cd0 */ + 5, 0,129, 5, 6,104,136, 1, 7, 0, 12, 36, 0, 0,136,144, /* 0x ce0 */ + 1, 0,132, 36, 6,104,136, 1, 8, 0,224, 3, 1, 0,173, 49, /* 0x cf0 */ + 36, 0, 0, 0,255,255,140, 37, 6, 0,129, 5, 6,104,136, 1, /* 0x d00 */ + 31, 0, 12, 36, 0, 0,136,152, 3, 0,136,136, 4, 0,132, 36, /* 0x d10 */ + 6,104,136, 1, 8, 0,224, 3, 1, 0,173, 49, 40, 0, 0, 0, /* 0x d20 */ + 33, 96, 0, 0, 1, 0, 10, 36, 50, 0, 17, 4, 1, 0, 14, 36, /* 0x d30 */ + 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, 0, 0,173,160, /* 0x d40 */ +249,255, 0, 16, 1, 0,165, 36, 42, 0, 17, 4, 64,112, 14, 0, /* 0x d50 */ + 40, 0, 17, 4, 33,112,205, 1,251,255,160, 17, 2, 0, 13, 36, /* 0x d60 */ + 3, 0,205, 21,253,255,206, 37, 8, 0, 0, 16, 33,112, 64, 1, /* 0x d70 */ + 0, 0,141,144, 0,114, 14, 0, 33,112,205, 1, 1, 0,206, 37, /* 0x d80 */ +255,255,192, 17, 1, 0,132, 36, 33, 80,192, 1, 26, 0, 17, 4, /* 0x d90 */ +255,255,140, 37, 33, 88,160, 1, 22, 0, 17, 4, 64, 88, 11, 0, /* 0x da0 */ + 33, 88,109, 1, 7, 0, 96, 21,254,255,107, 37, 1, 0, 11, 36, /* 0x db0 */ + 16, 0, 17, 4, 64, 88, 11, 0, 14, 0, 17, 4, 33, 88,109, 1, /* 0x dc0 */ +251,255,160, 17, 1, 13,205, 45, 4, 0,107, 37, 35, 88,109, 1, /* 0x dd0 */ + 35,112,174, 0, 0, 0,205,145,255,255,107, 37, 0, 0,173,160, /* 0x de0 */ + 1, 0,206, 37,251,255, 96, 21, 1, 0,165, 36,206,255, 0, 16, /* 0x df0 */ + 0, 0, 0, 0, 33, 96, 0, 0, 1, 0, 10, 36, 56, 0, 17, 4, /* 0x e00 */ + 1, 0, 14, 36, 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, /* 0x e10 */ + 0, 0,173,160,249,255, 0, 16, 1, 0,165, 36, 48, 0, 17, 4, /* 0x e20 */ + 64,112, 14, 0, 46, 0, 17, 4, 33,112,205, 1, 5, 0,160, 21, /* 0x e30 */ +254,255,205, 37, 42, 0, 17, 4, 33,112,174, 1,247,255, 0, 16, /* 0x e40 */ + 33,112,205, 1, 5, 0,160, 21,253,255,206, 37, 36, 0, 17, 4, /* 0x e50 */ + 33,112, 64, 1, 11, 0, 0, 16, 1, 0,171, 49, 0, 0,141,144, /* 0x e60 */ + 0,114, 14, 0, 33,112,205, 1, 1, 0,205, 37,255,255,160, 17, /* 0x e70 */ + 1, 0,132, 36, 66,112, 14, 0, 1, 0,206, 37, 33, 80,192, 1, /* 0x e80 */ + 1, 0,171, 49, 22, 0, 17, 4, 64, 88, 11, 0, 33, 88,109, 1, /* 0x e90 */ + 7, 0, 96, 21,254,255,107, 37, 1, 0, 11, 36, 16, 0, 17, 4, /* 0x ea0 */ + 64, 88, 11, 0, 14, 0, 17, 4, 33, 88,109, 1,251,255,160, 17, /* 0x eb0 */ + 1, 5,205, 45, 4, 0,107, 37, 35, 88,109, 1, 35,112,174, 0, /* 0x ec0 */ + 0, 0,205,145,255,255,107, 37, 0, 0,173,160, 1, 0,206, 37, /* 0x ed0 */ +251,255, 96, 21, 1, 0,165, 36,200,255, 0, 16, 0, 0, 0, 0, /* 0x ee0 */ + 33, 96, 0, 0, 1, 0, 10, 36, 60, 0, 17, 4, 1, 0, 14, 36, /* 0x ef0 */ + 5, 0,160, 17, 0, 0,141,144, 1, 0,132, 36, 0, 0,173,160, /* 0x f00 */ +249,255, 0, 16, 1, 0,165, 36, 52, 0, 17, 4, 64,112, 14, 0, /* 0x f10 */ + 50, 0, 17, 4, 33,112,205, 1, 5, 0,160, 21,254,255,205, 37, /* 0x f20 */ + 46, 0, 17, 4, 33,112,205, 1,247,255, 0, 16, 33,112,205, 1, /* 0x f30 */ + 5, 0,160, 21,253,255,206, 37, 40, 0, 17, 4, 33,112, 64, 1, /* 0x f40 */ + 11, 0, 0, 16, 1, 0,171, 49, 0, 0,141,144, 0,114, 14, 0, /* 0x f50 */ + 33,112,205, 1, 1, 0,205, 37,255,255,160, 17, 1, 0,132, 36, /* 0x f60 */ + 66,112, 14, 0, 1, 0,206, 37, 33, 80,192, 1, 1, 0,171, 49, /* 0x f70 */ + 27, 0, 17, 4,255,255,140, 37, 12, 0, 96, 21,254,255,171, 37, /* 0x f80 */ + 5, 0,160, 17, 1, 0, 11, 36, 21, 0, 17, 4,255,255,140, 37, /* 0x f90 */ + 6, 0, 0, 16, 33, 88,160, 1, 16, 0, 17, 4, 64, 88, 11, 0, /* 0x fa0 */ + 14, 0, 17, 4, 33, 88,109, 1,251,255,160, 17, 1, 5,205, 45, /* 0x fb0 */ + 5, 0,107, 37, 35, 88,109, 1, 35,112,174, 0, 0, 0,205,145, /* 0x fc0 */ +255,255,107, 37, 0, 0,173,160, 1, 0,206, 37,251,255, 96, 21, /* 0x fd0 */ + 1, 0,165, 36,196,255, 0, 16, 0, 0, 0, 0, 85, 80, 88, 33, /* 0x fe0 */ +161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x ff0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 46,115,121, /* 0x1000 */ +109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104, /* 0x1010 */ +115,116,114,116, 97, 98, 0, 46,114,101,108,112,115, 49, 46, 99, /* 0x1020 */ +100, 98, 46,115,116, 97,114,116, 0, 46,114,101,108,112,115, 49, /* 0x1030 */ + 46, 99,100, 98, 46,101,110,116,114,121, 0, 46,114,101,108,112, /* 0x1040 */ +115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116,114, 0, 46, /* 0x1050 */ +114,101,108,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112, /* 0x1060 */ +116,114, 46,104,105, 0, 46,114,101,108,112,115, 49, 46, 99,100, /* 0x1070 */ + 98, 46,101,120,105,116, 0, 46,114,101,108,112,115, 49, 46, 99, /* 0x1080 */ +111,110, 46,115,116, 97,114,116, 0, 46,114,101,108,112,115, 49, /* 0x1090 */ + 46, 99,111,110, 46,112, 97,100, 99,100, 0, 46,114,101,108,112, /* 0x10a0 */ +115, 49, 46, 99,111,110, 46,110,114,118, 46,112,116,114, 0, 46, /* 0x10b0 */ +114,101,108,112,115, 49, 46, 99,111,110, 46,110,114,118, 46,112, /* 0x10c0 */ +116,114, 46,104,105, 0,112,115, 49, 46, 99,111,110, 46,101,110, /* 0x10d0 */ +116,114,121, 0, 46,114,101,108,112,115, 49, 46, 99,111,110, 46, /* 0x10e0 */ +101,120,105,116, 0,112,115, 49, 46, 99,111,110, 46,114,101,103, /* 0x10f0 */ +115, 0, 46,114,101,108,112,115, 49, 46,109,115,101,116, 46,115, /* 0x1100 */ +104,111,114,116, 0, 46,114,101,108,112,115, 49, 46,109,115,101, /* 0x1110 */ +116, 46,108,111,110,103, 0,112,115, 49, 46,109,115,101,116, 46, /* 0x1120 */ + 97,108,105,103,110,101,100, 0,112,115, 49, 46,109,115,101,116, /* 0x1130 */ + 46,117,110, 97,108,105,103,110,101,100, 0,112,115, 49, 46, 99, /* 0x1140 */ +100, 98, 46,110,114,118, 50, 98, 46, 56, 98,105,116, 0,112,115, /* 0x1150 */ + 49, 46, 99,100, 98, 46,110,114,118, 50,100, 46, 56, 98,105,116, /* 0x1160 */ + 0,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50,101, 46, 56, /* 0x1170 */ + 98,105,116, 0,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, /* 0x1180 */ + 98, 46, 51, 50, 98,105,116, 0,112,115, 49, 46, 99,100, 98, 46, /* 0x1190 */ +110,114,118, 50,100, 46, 51, 50, 98,105,116, 0,112,115, 49, 46, /* 0x11a0 */ + 99,100, 98, 46,110,114,118, 50,101, 46, 51, 50, 98,105,116, 0, /* 0x11b0 */ +112,115, 49, 46,103,101,116, 98,105,116, 46, 56, 98,105,116, 46, /* 0x11c0 */ +115,117, 98, 0,112,115, 49, 46,103,101,116, 98,105,116, 46, 56, /* 0x11d0 */ + 98,105,116, 46,115,105,122,101, 0,112,115, 49, 46,103,101,116, /* 0x11e0 */ + 98,105,116, 46, 51, 50, 98,105,116, 46,115,117, 98, 0,112,115, /* 0x11f0 */ + 49, 46,103,101,116, 98,105,116, 46, 51, 50, 98,105,116, 46,115, /* 0x1200 */ +105,122,101, 0, 46,114,101,108,112,115, 49, 46,115,109, 97,108, /* 0x1210 */ +108, 46,110,114,118, 50, 98, 0, 46,114,101,108,112,115, 49, 46, /* 0x1220 */ +115,109, 97,108,108, 46,110,114,118, 50,100, 0, 46,114,101,108, /* 0x1230 */ +112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50,101, 0, /* 0x1240 */ + 85, 80, 88, 49, 72, 69, 65, 68, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1250 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1260 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1270 */ + 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1280 */ + 0, 0, 0, 0, 52, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, /* 0x1290 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, /* 0x12a0 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, 30, 0, 0, /* 0x12b0 */ + 16, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, /* 0x12c0 */ + 8, 0, 0, 0, 49, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x12d0 */ + 0, 0, 0, 0, 72, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, /* 0x12e0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, /* 0x12f0 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,188, 30, 0, 0, /* 0x1300 */ + 16, 0, 0, 0, 47, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, /* 0x1310 */ + 8, 0, 0, 0, 67, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1320 */ + 0, 0, 0, 0, 96, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x1330 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, /* 0x1340 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204, 30, 0, 0, /* 0x1350 */ + 16, 0, 0, 0, 47, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, /* 0x1360 */ + 8, 0, 0, 0, 87, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1370 */ + 0, 0, 0, 0,104, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x1380 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, /* 0x1390 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,220, 30, 0, 0, /* 0x13a0 */ + 8, 0, 0, 0, 47, 0, 0, 0, 7, 0, 0, 0, 4, 0, 0, 0, /* 0x13b0 */ + 8, 0, 0, 0,110, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x13c0 */ + 0, 0, 0, 0,108, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, /* 0x13d0 */ + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,106, 0, 0, 0, /* 0x13e0 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 30, 0, 0, /* 0x13f0 */ + 8, 0, 0, 0, 47, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, /* 0x1400 */ + 8, 0, 0, 0,127, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1410 */ + 0, 0, 0, 0,144, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, /* 0x1420 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, /* 0x1430 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236, 30, 0, 0, /* 0x1440 */ + 24, 0, 0, 0, 47, 0, 0, 0, 11, 0, 0, 0, 4, 0, 0, 0, /* 0x1450 */ + 8, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1460 */ + 0, 0, 0, 0,216, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x1470 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,141, 0, 0, 0, /* 0x1480 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 31, 0, 0, /* 0x1490 */ + 8, 0, 0, 0, 47, 0, 0, 0, 13, 0, 0, 0, 4, 0, 0, 0, /* 0x14a0 */ + 8, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x14b0 */ + 0, 0, 0, 0,220, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, /* 0x14c0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, /* 0x14d0 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 31, 0, 0, /* 0x14e0 */ + 16, 0, 0, 0, 47, 0, 0, 0, 15, 0, 0, 0, 4, 0, 0, 0, /* 0x14f0 */ + 8, 0, 0, 0,183, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1500 */ + 0, 0, 0, 0,232, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x1510 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,179, 0, 0, 0, /* 0x1520 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 31, 0, 0, /* 0x1530 */ + 8, 0, 0, 0, 47, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, /* 0x1540 */ + 8, 0, 0, 0,202, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1550 */ + 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1560 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,220, 0, 0, 0, /* 0x1570 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0, /* 0x1580 */ + 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x1590 */ + 0, 0, 0, 0,216, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, /* 0x15a0 */ + 0, 0, 0, 0, 36, 31, 0, 0, 8, 0, 0, 0, 47, 0, 0, 0, /* 0x15b0 */ + 20, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,233, 0, 0, 0, /* 0x15c0 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 1, 0, 0, /* 0x15d0 */ + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x15e0 */ + 0, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x15f0 */ + 0, 0, 0, 0, 28, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, /* 0x1600 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,246, 0, 0, 0, /* 0x1610 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 31, 0, 0, /* 0x1620 */ + 8, 0, 0, 0, 47, 0, 0, 0, 23, 0, 0, 0, 4, 0, 0, 0, /* 0x1630 */ + 8, 0, 0, 0, 13, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1640 */ + 0, 0, 0, 0, 32, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, /* 0x1650 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 9, 1, 0, 0, /* 0x1660 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 31, 0, 0, /* 0x1670 */ + 8, 0, 0, 0, 47, 0, 0, 0, 25, 0, 0, 0, 4, 0, 0, 0, /* 0x1680 */ + 8, 0, 0, 0, 27, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1690 */ + 0, 0, 0, 0, 40, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, /* 0x16a0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 44, 1, 0, 0, /* 0x16b0 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 1, 0, 0, /* 0x16c0 */ + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x16d0 */ + 0, 0, 0, 0, 63, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x16e0 */ + 0, 0, 0, 0, 76, 1, 0, 0,176, 1, 0, 0, 0, 0, 0, 0, /* 0x16f0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 82, 1, 0, 0, /* 0x1700 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, 2, 0, 0, /* 0x1710 */ +228, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x1720 */ + 0, 0, 0, 0,101, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1730 */ + 0, 0, 0, 0,224, 4, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, /* 0x1740 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120, 1, 0, 0, /* 0x1750 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 6, 0, 0, /* 0x1760 */ +204, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x1770 */ + 0, 0, 0, 0,140, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1780 */ + 0, 0, 0, 0,176, 8, 0, 0, 4, 2, 0, 0, 0, 0, 0, 0, /* 0x1790 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160, 1, 0, 0, /* 0x17a0 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,180, 10, 0, 0, /* 0x17b0 */ + 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x17c0 */ + 0, 0, 0, 0,180, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x17d0 */ + 0, 0, 0, 0,220, 12, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, /* 0x17e0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200, 1, 0, 0, /* 0x17f0 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, /* 0x1800 */ + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x1810 */ + 0, 0, 0, 0,221, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1820 */ + 0, 0, 0, 0, 4, 13, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, /* 0x1830 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,242, 1, 0, 0, /* 0x1840 */ + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 13, 0, 0, /* 0x1850 */ + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, /* 0x1860 */ + 0, 0, 0, 0, 12, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1870 */ + 0, 0, 0, 0, 48, 13, 0, 0,212, 0, 0, 0, 0, 0, 0, 0, /* 0x1880 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 2, 0, 0, /* 0x1890 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 31, 0, 0, /* 0x18a0 */ + 8, 0, 0, 0, 47, 0, 0, 0, 39, 0, 0, 0, 4, 0, 0, 0, /* 0x18b0 */ + 8, 0, 0, 0, 32, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x18c0 */ + 0, 0, 0, 0, 4, 14, 0, 0,236, 0, 0, 0, 0, 0, 0, 0, /* 0x18d0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 28, 2, 0, 0, /* 0x18e0 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 31, 0, 0, /* 0x18f0 */ + 8, 0, 0, 0, 47, 0, 0, 0, 41, 0, 0, 0, 4, 0, 0, 0, /* 0x1900 */ + 8, 0, 0, 0, 52, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1910 */ + 0, 0, 0, 0,240, 14, 0, 0,252, 0, 0, 0, 0, 0, 0, 0, /* 0x1920 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48, 2, 0, 0, /* 0x1930 */ + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 31, 0, 0, /* 0x1940 */ + 8, 0, 0, 0, 47, 0, 0, 0, 43, 0, 0, 0, 4, 0, 0, 0, /* 0x1950 */ + 8, 0, 0, 0, 68, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 0x1960 */ + 0, 0, 0, 0,236, 15, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, /* 0x1970 */ + 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, /* 0x1980 */ + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 16, 0, 0, /* 0x1990 */ + 77, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x19a0 */ + 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x19b0 */ + 0, 0, 0, 0, 4, 26, 0, 0,128, 2, 0, 0, 48, 0, 0, 0, /* 0x19c0 */ + 31, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, /* 0x19d0 */ + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,132, 28, 0, 0, /* 0x19e0 */ + 37, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, /* 0x19f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a00 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a10 */ + 3, 0, 1, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a20 */ + 3, 0, 3, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a30 */ + 3, 0, 5, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a40 */ + 3, 0, 7, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a50 */ + 3, 0, 9, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a60 */ + 3, 0, 11, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a70 */ + 3, 0, 13, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a80 */ + 3, 0, 15, 0,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1a90 */ + 3, 0, 17, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1aa0 */ + 3, 0, 19, 0,154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ab0 */ + 3, 0, 20, 0,167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ac0 */ + 3, 0, 22, 0,180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ad0 */ + 3, 0, 23, 0,195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ae0 */ + 3, 0, 25, 0,209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1af0 */ + 3, 0, 27, 0,226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b00 */ + 3, 0, 28, 0,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b10 */ + 3, 0, 29, 0, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b20 */ + 3, 0, 30, 0, 27, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b30 */ + 3, 0, 31, 0, 46, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b40 */ + 3, 0, 32, 0, 66, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b50 */ + 3, 0, 33, 0, 86, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b60 */ + 3, 0, 34, 0,106, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b70 */ + 3, 0, 35, 0,126, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b80 */ + 3, 0, 36, 0,147, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1b90 */ + 3, 0, 37, 0,168, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ba0 */ + 3, 0, 38, 0,190, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1bb0 */ + 3, 0, 39, 0,206, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1bc0 */ + 3, 0, 41, 0,222, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1bd0 */ + 3, 0, 43, 0,238, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1be0 */ + 3, 0, 45, 0,247, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1bf0 */ + 16, 0, 0, 0,252, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c00 */ + 16, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c10 */ + 16, 0, 0, 0, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c20 */ + 16, 0, 0, 0, 11, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c30 */ + 16, 0, 0, 0, 14, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c40 */ + 16, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c50 */ + 16, 0, 0, 0, 22, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c60 */ + 16, 0, 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1c70 */ + 16, 0, 0, 0, 0,112,115, 49, 46, 99,100, 98, 46,115,116, 97, /* 0x1c80 */ +114,116, 0,112,115, 49, 46, 99,100, 98, 46,101,110,116,114,121, /* 0x1c90 */ + 0,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116,114, /* 0x1ca0 */ + 0,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116,114, /* 0x1cb0 */ + 46,104,105, 0,112,115, 49, 46, 99,100, 98, 46,101,120,105,116, /* 0x1cc0 */ + 0,112,115, 49, 46, 99,111,110, 46,115,116, 97,114,116, 0,112, /* 0x1cd0 */ +115, 49, 46, 99,111,110, 46,112, 97,100, 99,100, 0,112,115, 49, /* 0x1ce0 */ + 46, 99,111,110, 46,110,114,118, 46,112,116,114, 0,112,115, 49, /* 0x1cf0 */ + 46, 99,111,110, 46,110,114,118, 46,112,116,114, 46,104,105, 0, /* 0x1d00 */ +112,115, 49, 46, 99,111,110, 46,101,110,116,114,121, 0,112,115, /* 0x1d10 */ + 49, 46, 99,111,110, 46,101,120,105,116, 0,112,115, 49, 46, 99, /* 0x1d20 */ +111,110, 46,114,101,103,115, 0,112,115, 49, 46,109,115,101,116, /* 0x1d30 */ + 46,115,104,111,114,116, 0,112,115, 49, 46,109,115,101,116, 46, /* 0x1d40 */ +108,111,110,103, 0,112,115, 49, 46,109,115,101,116, 46, 97,108, /* 0x1d50 */ +105,103,110,101,100, 0,112,115, 49, 46,109,115,101,116, 46,117, /* 0x1d60 */ +110, 97,108,105,103,110,101,100, 0,112,115, 49, 46, 99,100, 98, /* 0x1d70 */ + 46,110,114,118, 50, 98, 46, 56, 98,105,116, 0,112,115, 49, 46, /* 0x1d80 */ + 99,100, 98, 46,110,114,118, 50,100, 46, 56, 98,105,116, 0,112, /* 0x1d90 */ +115, 49, 46, 99,100, 98, 46,110,114,118, 50,101, 46, 56, 98,105, /* 0x1da0 */ +116, 0,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, 98, 46, /* 0x1db0 */ + 51, 50, 98,105,116, 0,112,115, 49, 46, 99,100, 98, 46,110,114, /* 0x1dc0 */ +118, 50,100, 46, 51, 50, 98,105,116, 0,112,115, 49, 46, 99,100, /* 0x1dd0 */ + 98, 46,110,114,118, 50,101, 46, 51, 50, 98,105,116, 0,112,115, /* 0x1de0 */ + 49, 46,103,101,116, 98,105,116, 46, 56, 98,105,116, 46,115,117, /* 0x1df0 */ + 98, 0,112,115, 49, 46,103,101,116, 98,105,116, 46, 56, 98,105, /* 0x1e00 */ +116, 46,115,105,122,101, 0,112,115, 49, 46,103,101,116, 98,105, /* 0x1e10 */ +116, 46, 51, 50, 98,105,116, 46,115,117, 98, 0,112,115, 49, 46, /* 0x1e20 */ +103,101,116, 98,105,116, 46, 51, 50, 98,105,116, 46,115,105,122, /* 0x1e30 */ +101, 0,112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50, /* 0x1e40 */ + 98, 0,112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50, /* 0x1e50 */ +100, 0,112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50, /* 0x1e60 */ +101, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, 80, 83, 86, 82, 0, /* 0x1e70 */ + 67, 80, 68, 79, 0, 68, 69, 67, 79, 0, 74, 80, 69, 80, 0, 76, /* 0x1e80 */ + 83, 0, 68, 67, 82, 84, 0, 80, 67, 0, 83, 67, 0,100,101, 99, /* 0x1e90 */ +111,109,112, 95,100,111,110,101, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x1ea0 */ + 5, 31, 0, 0, 4, 0, 0, 0, 6, 31, 0, 0, 16, 0, 0, 0, /* 0x1eb0 */ + 5, 32, 0, 0, 20, 0, 0, 0, 6, 32, 0, 0, 0, 0, 0, 0, /* 0x1ec0 */ + 5, 33, 0, 0, 4, 0, 0, 0, 6, 33, 0, 0, 0, 0, 0, 0, /* 0x1ed0 */ + 5, 33, 0, 0, 28, 0, 0, 0, 2, 34, 0, 0, 0, 0, 0, 0, /* 0x1ee0 */ + 6, 35, 0, 0, 40, 0, 0, 0, 5, 36, 0, 0, 44, 0, 0, 0, /* 0x1ef0 */ + 6, 36, 0, 0, 0, 0, 0, 0, 6, 37, 0, 0, 0, 0, 0, 0, /* 0x1f00 */ + 5, 33, 0, 0, 8, 0, 0, 0, 6, 33, 0, 0, 4, 0, 0, 0, /* 0x1f10 */ + 5, 33, 0, 0, 32, 0, 0, 0, 2, 34, 0, 0, 0, 0, 0, 0, /* 0x1f20 */ + 6, 38, 0, 0, 0, 0, 0, 0, 6, 38, 0, 0, 96, 0, 0, 0, /* 0x1f30 */ + 10, 39, 0, 0,120, 0, 0, 0, 10, 39, 0, 0,120, 0, 0, 0, /* 0x1f40 */ + 10, 39, 0, 0, 10,116,109,112, 47,109,105,112,115,101,108, 46, /* 0x1f50 */ +114, 51, 48, 48, 48, 45,112,115, 49, 46, 98,105,110, 58, 32, 32, /* 0x1f60 */ + 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97,116, 32,101, /* 0x1f70 */ +108,102, 51, 50, 45,108,105,116,116,108,101,109,105,112,115, 10, /* 0x1f80 */ + 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1f90 */ + 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1fa0 */ +101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1fb0 */ + 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1fc0 */ +111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1fd0 */ + 10, 32, 32, 48, 32,112,115, 49, 46, 99,100, 98, 46,115,116, 97, /* 0x1fe0 */ +114,116, 32, 48, 48, 48, 48, 48, 48, 49, 52, 32, 32, 48, 48, 48, /* 0x1ff0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2000 */ + 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x2010 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x2020 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32,112, /* 0x2030 */ +115, 49, 46, 99,100, 98, 46,101,110,116,114,121, 32, 48, 48, 48, /* 0x2040 */ + 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2050 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2060 */ + 48, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2070 */ + 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x2080 */ + 79, 78, 76, 89, 10, 32, 32, 50, 32,112,115, 49, 46, 99,100, 98, /* 0x2090 */ + 46,110,114,118, 46,112,116,114, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x20a0 */ + 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x20b0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 54, 48, 32, /* 0x20c0 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x20d0 */ + 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x20e0 */ + 10, 32, 32, 51, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, /* 0x20f0 */ + 46,112,116,114, 46,104,105, 32, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x2100 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2110 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 54, 56, 32, 32, /* 0x2120 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x2130 */ + 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x2140 */ + 32, 32, 52, 32,112,115, 49, 46, 99,100, 98, 46,101,120,105,116, /* 0x2150 */ + 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, /* 0x2160 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2170 */ + 48, 48, 48, 48, 48, 48, 54, 99, 32, 32, 50, 42, 42, 50, 32, 32, /* 0x2180 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x2190 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,112,115, /* 0x21a0 */ + 49, 46, 99,111,110, 46,115,116, 97,114,116, 32, 48, 48, 48, 48, /* 0x21b0 */ + 48, 48, 52, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x21c0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x21d0 */ + 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x21e0 */ + 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x21f0 */ + 78, 76, 89, 10, 32, 32, 54, 32,112,115, 49, 46, 99,111,110, 46, /* 0x2200 */ +112, 97,100, 99,100, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, /* 0x2210 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2220 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,100, 56, 32, 32, 50, 42, /* 0x2230 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x2240 */ + 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x2250 */ + 55, 32,112,115, 49, 46, 99,111,110, 46,110,114,118, 46,112,116, /* 0x2260 */ +114, 32, 48, 48, 48, 48, 48, 48, 48, 99, 32, 32, 48, 48, 48, 48, /* 0x2270 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2280 */ + 48, 48, 48, 48, 48, 48,100, 99, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x2290 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x22a0 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32,112,115, /* 0x22b0 */ + 49, 46, 99,111,110, 46,110,114,118, 46,112,116,114, 46,104,105, /* 0x22c0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x22d0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x22e0 */ + 48, 48, 48, 48, 48,101, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x22f0 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x2300 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32,112,115, 49, /* 0x2310 */ + 46, 99,111,110, 46,101,110,116,114,121, 32, 48, 48, 48, 48, 48, /* 0x2320 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2330 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,102, /* 0x2340 */ + 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2350 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, /* 0x2360 */ +112,115, 49, 46, 99,111,110, 46,101,120,105,116, 32, 32, 48, 48, /* 0x2370 */ + 48, 48, 48, 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2380 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2390 */ + 48, 48,102, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, /* 0x23a0 */ + 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x23b0 */ + 68, 79, 78, 76, 89, 10, 32, 49, 49, 32,112,115, 49, 46, 99,111, /* 0x23c0 */ +110, 46,114,101,103,115, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x23d0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x23e0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 56, 32, 32, /* 0x23f0 */ + 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x2400 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32,112,115, 49, /* 0x2410 */ + 46,109,115,101,116, 46,115,104,111,114,116, 32, 48, 48, 48, 48, /* 0x2420 */ + 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2430 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x2440 */ + 49, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x2450 */ + 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x2460 */ + 78, 76, 89, 10, 32, 49, 51, 32,112,115, 49, 46,109,115,101,116, /* 0x2470 */ + 46,108,111,110,103, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, /* 0x2480 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2490 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 50, 48, 32, 32, 50, 42, /* 0x24a0 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x24b0 */ + 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x24c0 */ + 52, 32,112,115, 49, 46,109,115,101,116, 46, 97,108,105,103,110, /* 0x24d0 */ +101,100, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, /* 0x24e0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x24f0 */ + 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 50, 42, 42, 48, 32, /* 0x2500 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x2510 */ + 78, 76, 89, 10, 32, 49, 53, 32,112,115, 49, 46,109,115,101,116, /* 0x2520 */ + 46,117,110, 97,108,105,103,110,101,100, 32, 48, 48, 48, 48, 48, /* 0x2530 */ + 48, 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2540 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 51, /* 0x2550 */ + 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2560 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 54, 32, /* 0x2570 */ +112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, 98, 46, 56, 98, /* 0x2580 */ +105,116, 32, 48, 48, 48, 48, 48, 49, 98, 48, 32, 32, 48, 48, 48, /* 0x2590 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x25a0 */ + 32, 48, 48, 48, 48, 48, 49, 52, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x25b0 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x25c0 */ + 78, 76, 89, 10, 32, 49, 55, 32,112,115, 49, 46, 99,100, 98, 46, /* 0x25d0 */ +110,114,118, 50,100, 46, 56, 98,105,116, 32, 48, 48, 48, 48, 48, /* 0x25e0 */ + 49,101, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x25f0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,102, /* 0x2600 */ + 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2610 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 56, 32, /* 0x2620 */ +112,115, 49, 46, 99,100, 98, 46,110,114,118, 50,101, 46, 56, 98, /* 0x2630 */ +105,116, 32, 48, 48, 48, 48, 48, 50, 48, 52, 32, 32, 48, 48, 48, /* 0x2640 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2650 */ + 32, 48, 48, 48, 48, 48, 52,101, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x2660 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x2670 */ + 78, 76, 89, 10, 32, 49, 57, 32,112,115, 49, 46, 99,100, 98, 46, /* 0x2680 */ +110,114,118, 50, 98, 46, 51, 50, 98,105,116, 32, 48, 48, 48, 48, /* 0x2690 */ + 48, 49, 99, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x26a0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, /* 0x26b0 */ +101, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x26c0 */ + 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 48, /* 0x26d0 */ + 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50,100, 46, 51, /* 0x26e0 */ + 50, 98,105,116, 32, 48, 48, 48, 48, 48, 50, 48, 52, 32, 32, 48, /* 0x26f0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2700 */ + 48, 32, 32, 48, 48, 48, 48, 48, 56, 98, 48, 32, 32, 50, 42, 42, /* 0x2710 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x2720 */ + 68, 79, 78, 76, 89, 10, 32, 50, 49, 32,112,115, 49, 46, 99,100, /* 0x2730 */ + 98, 46,110,114,118, 50,101, 46, 51, 50, 98,105,116, 32, 48, 48, /* 0x2740 */ + 48, 48, 48, 50, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2750 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2760 */ + 48, 97, 98, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2770 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x2780 */ + 50, 50, 32,112,115, 49, 46,103,101,116, 98,105,116, 46, 56, 98, /* 0x2790 */ +105,116, 46,115,117, 98, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, /* 0x27a0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x27b0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 99,100, 99, 32, 32, 50, /* 0x27c0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x27d0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 51, 32,112,115, 49, 46, /* 0x27e0 */ +103,101,116, 98,105,116, 46, 56, 98,105,116, 46,115,105,122,101, /* 0x27f0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x2800 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2810 */ + 48, 48, 48, 48,100, 48, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, /* 0x2820 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x2830 */ + 89, 10, 32, 50, 52, 32,112,115, 49, 46,103,101,116, 98,105,116, /* 0x2840 */ + 46, 51, 50, 98,105,116, 46,115,117, 98, 32, 48, 48, 48, 48, 48, /* 0x2850 */ + 48, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2860 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 48, /* 0x2870 */ + 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2880 */ + 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 53, 32, /* 0x2890 */ +112,115, 49, 46,103,101,116, 98,105,116, 46, 51, 50, 98,105,116, /* 0x28a0 */ + 46,115,105,122,101, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, /* 0x28b0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x28c0 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 50, 99, 32, 32, 50, 42, /* 0x28d0 */ + 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x28e0 */ + 65, 68, 79, 78, 76, 89, 10, 32, 50, 54, 32,112,115, 49, 46,115, /* 0x28f0 */ +109, 97,108,108, 46,110,114,118, 50, 98, 32, 48, 48, 48, 48, 48, /* 0x2900 */ + 48,100, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2910 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 51, /* 0x2920 */ + 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2930 */ + 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x2940 */ + 76, 89, 10, 32, 50, 55, 32,112,115, 49, 46,115,109, 97,108,108, /* 0x2950 */ + 46,110,114,118, 50,100, 32, 48, 48, 48, 48, 48, 48,101, 99, 32, /* 0x2960 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2970 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,101, 48, 52, 32, 32, 50, /* 0x2980 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x2990 */ + 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x29a0 */ + 50, 56, 32,112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, /* 0x29b0 */ + 50,101, 32, 48, 48, 48, 48, 48, 48,102, 99, 32, 32, 48, 48, 48, /* 0x29c0 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x29d0 */ + 32, 48, 48, 48, 48, 48,101,102, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x29e0 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x29f0 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 50, 57, 32, 85, /* 0x2a00 */ + 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2a10 */ + 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2a20 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2a30 */ +102,101, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, /* 0x2a40 */ + 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, /* 0x2a50 */ + 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, /* 0x2a60 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, /* 0x2a70 */ + 46, 99,100, 98, 46,115,116, 97,114,116, 9, 48, 48, 48, 48, 48, /* 0x2a80 */ + 48, 48, 48, 32,112,115, 49, 46, 99,100, 98, 46,115,116, 97,114, /* 0x2a90 */ +116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2aa0 */ +100, 32, 32,112,115, 49, 46, 99,100, 98, 46,101,110,116,114,121, /* 0x2ab0 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46, 99,100, /* 0x2ac0 */ + 98, 46,101,110,116,114,121, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2ad0 */ + 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, /* 0x2ae0 */ + 46,110,114,118, 46,112,116,114, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2af0 */ + 48, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116, /* 0x2b00 */ +114, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2b10 */ +100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112, /* 0x2b20 */ +116,114, 46,104,105, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112, /* 0x2b30 */ +115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116,114, 46,104, /* 0x2b40 */ +105, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2b50 */ +100, 32, 32,112,115, 49, 46, 99,100, 98, 46,101,120,105,116, 9, /* 0x2b60 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46, 99,100, 98, /* 0x2b70 */ + 46,101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2b80 */ + 32, 32, 32, 32,100, 32, 32,112,115, 49, 46, 99,111,110, 46,115, /* 0x2b90 */ +116, 97,114,116, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, /* 0x2ba0 */ + 49, 46, 99,111,110, 46,115,116, 97,114,116, 10, 48, 48, 48, 48, /* 0x2bb0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, /* 0x2bc0 */ + 46, 99,111,110, 46,112, 97,100, 99,100, 9, 48, 48, 48, 48, 48, /* 0x2bd0 */ + 48, 48, 48, 32,112,115, 49, 46, 99,111,110, 46,112, 97,100, 99, /* 0x2be0 */ +100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2bf0 */ +100, 32, 32,112,115, 49, 46, 99,111,110, 46,110,114,118, 46,112, /* 0x2c00 */ +116,114, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46, /* 0x2c10 */ + 99,111,110, 46,110,114,118, 46,112,116,114, 10, 48, 48, 48, 48, /* 0x2c20 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, /* 0x2c30 */ + 46, 99,111,110, 46,110,114,118, 46,112,116,114, 46,104,105, 9, /* 0x2c40 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46, 99,111,110, /* 0x2c50 */ + 46,110,114,118, 46,112,116,114, 46,104,105, 10, 48, 48, 48, 48, /* 0x2c60 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, /* 0x2c70 */ + 46, 99,111,110, 46,101,110,116,114,121, 9, 48, 48, 48, 48, 48, /* 0x2c80 */ + 48, 48, 48, 32,112,115, 49, 46, 99,111,110, 46,101,110,116,114, /* 0x2c90 */ +121, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2ca0 */ +100, 32, 32,112,115, 49, 46, 99,111,110, 46,101,120,105,116, 9, /* 0x2cb0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46, 99,111,110, /* 0x2cc0 */ + 46,101,120,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2cd0 */ + 32, 32, 32, 32,100, 32, 32,112,115, 49, 46, 99,111,110, 46,114, /* 0x2ce0 */ +101,103,115, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, /* 0x2cf0 */ + 46, 99,111,110, 46,114,101,103,115, 10, 48, 48, 48, 48, 48, 48, /* 0x2d00 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46,109, /* 0x2d10 */ +115,101,116, 46,115,104,111,114,116, 9, 48, 48, 48, 48, 48, 48, /* 0x2d20 */ + 48, 48, 32,112,115, 49, 46,109,115,101,116, 46,115,104,111,114, /* 0x2d30 */ +116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2d40 */ +100, 32, 32,112,115, 49, 46,109,115,101,116, 46,108,111,110,103, /* 0x2d50 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46,109,115, /* 0x2d60 */ +101,116, 46,108,111,110,103, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2d70 */ + 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46,109,115,101, /* 0x2d80 */ +116, 46, 97,108,105,103,110,101,100, 9, 48, 48, 48, 48, 48, 48, /* 0x2d90 */ + 48, 48, 32,112,115, 49, 46,109,115,101,116, 46, 97,108,105,103, /* 0x2da0 */ +110,101,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2db0 */ + 32, 32,100, 32, 32,112,115, 49, 46,109,115,101,116, 46,117,110, /* 0x2dc0 */ + 97,108,105,103,110,101,100, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2dd0 */ + 32,112,115, 49, 46,109,115,101,116, 46,117,110, 97,108,105,103, /* 0x2de0 */ +110,101,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2df0 */ + 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, /* 0x2e00 */ + 50, 98, 46, 56, 98,105,116, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2e10 */ + 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, 98, 46, 56, /* 0x2e20 */ + 98,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2e30 */ + 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, /* 0x2e40 */ + 50,100, 46, 56, 98,105,116, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2e50 */ + 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50,100, 46, 56, /* 0x2e60 */ + 98,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2e70 */ + 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, /* 0x2e80 */ + 50,101, 46, 56, 98,105,116, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2e90 */ + 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50,101, 46, 56, /* 0x2ea0 */ + 98,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2eb0 */ + 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, /* 0x2ec0 */ + 50, 98, 46, 51, 50, 98,105,116, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2ed0 */ + 48, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, 98, 46, /* 0x2ee0 */ + 51, 50, 98,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2ef0 */ + 32, 32, 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, 46,110, /* 0x2f00 */ +114,118, 50,100, 46, 51, 50, 98,105,116, 9, 48, 48, 48, 48, 48, /* 0x2f10 */ + 48, 48, 48, 32,112,115, 49, 46, 99,100, 98, 46,110,114,118, 50, /* 0x2f20 */ +100, 46, 51, 50, 98,105,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2f30 */ + 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46, 99,100, 98, /* 0x2f40 */ + 46,110,114,118, 50,101, 46, 51, 50, 98,105,116, 9, 48, 48, 48, /* 0x2f50 */ + 48, 48, 48, 48, 48, 32,112,115, 49, 46, 99,100, 98, 46,110,114, /* 0x2f60 */ +118, 50,101, 46, 51, 50, 98,105,116, 10, 48, 48, 48, 48, 48, 48, /* 0x2f70 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46,103, /* 0x2f80 */ +101,116, 98,105,116, 46, 56, 98,105,116, 46,115,117, 98, 9, 48, /* 0x2f90 */ + 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46,103,101,116, 98, /* 0x2fa0 */ +105,116, 46, 56, 98,105,116, 46,115,117, 98, 10, 48, 48, 48, 48, /* 0x2fb0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, /* 0x2fc0 */ + 46,103,101,116, 98,105,116, 46, 56, 98,105,116, 46,115,105,122, /* 0x2fd0 */ +101, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46,103, /* 0x2fe0 */ +101,116, 98,105,116, 46, 56, 98,105,116, 46,115,105,122,101, 10, /* 0x2ff0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x3000 */ + 32,112,115, 49, 46,103,101,116, 98,105,116, 46, 51, 50, 98,105, /* 0x3010 */ +116, 46,115,117, 98, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112, /* 0x3020 */ +115, 49, 46,103,101,116, 98,105,116, 46, 51, 50, 98,105,116, 46, /* 0x3030 */ +115,117, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x3040 */ + 32, 32,100, 32, 32,112,115, 49, 46,103,101,116, 98,105,116, 46, /* 0x3050 */ + 51, 50, 98,105,116, 46,115,105,122,101, 9, 48, 48, 48, 48, 48, /* 0x3060 */ + 48, 48, 48, 32,112,115, 49, 46,103,101,116, 98,105,116, 46, 51, /* 0x3070 */ + 50, 98,105,116, 46,115,105,122,101, 10, 48, 48, 48, 48, 48, 48, /* 0x3080 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112,115, 49, 46,115, /* 0x3090 */ +109, 97,108,108, 46,110,114,118, 50, 98, 9, 48, 48, 48, 48, 48, /* 0x30a0 */ + 48, 48, 48, 32,112,115, 49, 46,115,109, 97,108,108, 46,110,114, /* 0x30b0 */ +118, 50, 98, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x30c0 */ + 32, 32,100, 32, 32,112,115, 49, 46,115,109, 97,108,108, 46,110, /* 0x30d0 */ +114,118, 50,100, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,112,115, /* 0x30e0 */ + 49, 46,115,109, 97,108,108, 46,110,114,118, 50,100, 10, 48, 48, /* 0x30f0 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,112, /* 0x3100 */ +115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50,101, 9, 48, /* 0x3110 */ + 48, 48, 48, 48, 48, 48, 48, 32,112,115, 49, 46,115,109, 97,108, /* 0x3120 */ +108, 46,110,114,118, 50,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3130 */ + 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, 69, 65, /* 0x3140 */ + 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 85, 80, 88, 49, 72, /* 0x3150 */ + 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x3160 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x3170 */ + 48, 48, 48, 32, 80, 83, 86, 82, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x3180 */ + 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x3190 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 80, 68, 79, 10, 48, 48, /* 0x31a0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x31b0 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 68, 69, /* 0x31c0 */ + 67, 79, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x31d0 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x31e0 */ + 48, 48, 32, 74, 80, 69, 80, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x31f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x3200 */ + 48, 48, 48, 48, 48, 48, 48, 32, 76, 83, 10, 48, 48, 48, 48, 48, /* 0x3210 */ + 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x3220 */ + 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 68, 67, 82, 84, 10, /* 0x3230 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3240 */ + 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x3250 */ + 80, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x3260 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x3270 */ + 48, 48, 32, 83, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x3280 */ + 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x3290 */ + 48, 48, 48, 48, 48, 32,100,101, 99,111,109,112, 95,100,111,110, /* 0x32a0 */ +101, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x32b0 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46, /* 0x32c0 */ + 99,100, 98, 46,115,116, 97,114,116, 93, 58, 10, 79, 70, 70, 83, /* 0x32d0 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x32e0 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x32f0 */ + 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, /* 0x3300 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 80, 83, 86, 82, 10, 48, 48, /* 0x3310 */ + 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, /* 0x3320 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 80, 83, 86, 82, 10, 10, 10, /* 0x3330 */ + 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x3340 */ + 68, 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46, 99,100, 98, 46, /* 0x3350 */ +101,110,116,114,121, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x3360 */ + 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3370 */ + 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, /* 0x3380 */ + 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, /* 0x3390 */ + 32, 32, 32, 32, 32, 67, 80, 68, 79, 10, 48, 48, 48, 48, 48, 48, /* 0x33a0 */ + 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, /* 0x33b0 */ + 32, 32, 32, 32, 32, 67, 80, 68, 79, 10, 10, 10, 82, 69, 76, 79, /* 0x33c0 */ + 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x33d0 */ + 79, 82, 32, 91,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46, /* 0x33e0 */ +112,116,114, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x33f0 */ + 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3400 */ + 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x3410 */ + 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, /* 0x3420 */ + 32, 32, 32, 68, 69, 67, 79, 10, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x3430 */ + 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, /* 0x3440 */ + 32, 32, 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x3450 */ + 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x3460 */ + 32, 91,112,115, 49, 46, 99,100, 98, 46,110,114,118, 46,112,116, /* 0x3470 */ +114, 46,104,105, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x3480 */ + 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3490 */ + 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x34a0 */ + 48, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, /* 0x34b0 */ + 32, 32, 32, 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, 79, 67, /* 0x34c0 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x34d0 */ + 82, 32, 91,112,115, 49, 46, 99,100, 98, 46,101,120,105,116, 93, /* 0x34e0 */ + 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x34f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x3500 */ + 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 77, /* 0x3510 */ + 73, 80, 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, /* 0x3520 */ + 80, 69, 80, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x3530 */ + 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,112,115, /* 0x3540 */ + 49, 46, 99,111,110, 46,115,116, 97,114,116, 93, 58, 10, 79, 70, /* 0x3550 */ + 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x3560 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, /* 0x3570 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x3580 */ + 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, 76, 83, 10, 48, 48, /* 0x3590 */ + 48, 48, 48, 48, 50, 56, 32, 82, 95, 77, 73, 80, 83, 95, 72, 73, /* 0x35a0 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 68, 67, 82, 84, 10, 48, 48, /* 0x35b0 */ + 48, 48, 48, 48, 50, 99, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, /* 0x35c0 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 68, 67, 82, 84, 10, 10, 10, /* 0x35d0 */ + 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x35e0 */ + 68, 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46, 99,111,110, 46, /* 0x35f0 */ +112, 97,100, 99,100, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x3600 */ + 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3610 */ + 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, /* 0x3620 */ + 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, /* 0x3630 */ + 32, 32, 32, 32, 32, 80, 67, 10, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x3640 */ + 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x3650 */ + 32, 91,112,115, 49, 46, 99,111,110, 46,110,114,118, 46,112,116, /* 0x3660 */ +114, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x3670 */ + 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x3680 */ + 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, /* 0x3690 */ + 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x36a0 */ + 32, 68, 69, 67, 79, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, /* 0x36b0 */ + 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x36c0 */ + 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x36d0 */ + 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x36e0 */ +112,115, 49, 46, 99,111,110, 46,110,114,118, 46,112,116,114, 46, /* 0x36f0 */ +104,105, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x3700 */ + 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3710 */ + 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x3720 */ + 82, 95, 77, 73, 80, 83, 95, 72, 73, 49, 54, 32, 32, 32, 32, 32, /* 0x3730 */ + 32, 32, 68, 69, 67, 79, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x3740 */ + 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x3750 */ + 91,112,115, 49, 46, 99,111,110, 46,101,120,105,116, 93, 58, 10, /* 0x3760 */ + 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x3770 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x3780 */ + 32, 10, 48, 48, 48, 48, 48, 48, 50, 48, 32, 82, 95, 77, 73, 80, /* 0x3790 */ + 83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 74, 80, 69, /* 0x37a0 */ + 80, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x37b0 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46, /* 0x37c0 */ +109,115,101,116, 46,115,104,111,114,116, 93, 58, 10, 79, 70, 70, /* 0x37d0 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x37e0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x37f0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, /* 0x3800 */ + 79, 49, 54, 32, 32, 32, 32, 32, 32, 32, 83, 67, 10, 10, 10, 82, /* 0x3810 */ + 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x3820 */ + 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46,109,115,101,116, 46, /* 0x3830 */ +108,111,110,103, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x3840 */ + 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3850 */ + 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x3860 */ + 48, 32, 82, 95, 77, 73, 80, 83, 95, 76, 79, 49, 54, 32, 32, 32, /* 0x3870 */ + 32, 32, 32, 32, 83, 67, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x3880 */ + 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x3890 */ + 91,112,115, 49, 46,115,109, 97,108,108, 46,110,114,118, 50, 98, /* 0x38a0 */ + 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x38b0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x38c0 */ + 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 54, 48, 32, 82, 95, /* 0x38d0 */ + 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x38e0 */ +100,101, 99,111,109,112, 95,100,111,110,101, 10, 10, 10, 82, 69, /* 0x38f0 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x3900 */ + 32, 70, 79, 82, 32, 91,112,115, 49, 46,115,109, 97,108,108, 46, /* 0x3910 */ +110,114,118, 50,100, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x3920 */ + 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x3930 */ + 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, /* 0x3940 */ + 55, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, /* 0x3950 */ + 32, 32, 32, 32, 32,100,101, 99,111,109,112, 95,100,111,110,101, /* 0x3960 */ + 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x3970 */ + 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,112,115, 49, 46,115, /* 0x3980 */ +109, 97,108,108, 46,110,114,118, 50,101, 93, 58, 10, 79, 70, 70, /* 0x3990 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x39a0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x39b0 */ + 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, /* 0x39c0 */ + 67, 49, 54, 32, 32, 32, 32, 32, 32, 32,100,101, 99,111,109,112, /* 0x39d0 */ + 95,100,111,110,101, 10, 10, 10 /* 0x39e0 */ +}; diff --git a/src/stub/src/arch/mips/mipsel.r3000/bits.ash b/src/stub/src/arch/mips/mipsel.r3000/bits.ash index 396a1b2e..ac2ebb7e 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/bits.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/bits.ash @@ -31,68 +31,218 @@ #define _MR3K_STD_CONF_ -////////////////////////////////////// -// register defines -////////////////////////////////////// +;////////////////////////////////////// +;// register defines +;////////////////////////////////////// + +#define tmp at #define src a0 -#define dst a2 +#define dst a1 -#define src_ilen t0 -#define bb t1 -#define ilen t2 -#define last_m_off t3 -#define m_len t4 -#define bc t5 +#define pc a2 +#define cnt t0 -#define var v0 -#define m_off v1 -#define m_pos v1 +#define src_ilen src +#define bb t0 +#define ilen t1 +#define last_m_off t2 +#define m_len t3 +#define bc t4 + +#define var t5 +#define m_off t6 +#define m_pos t6 -////////////////////////////////////// -// optimized branch macros -////////////////////////////////////// +;////////////////////////////////////// +;// init bitaccess +;////////////////////////////////////// + +.macro UCL_init bsz,opt,fmcpy + + UCL_NRV_BB = \bsz + UCL_SMALL = \opt + UCL_FAST = \fmcpy + + .if ((\bsz != 32) && (\bsz != 8)) + .error "UCL_NRV_BB must be 8 or 32 and not \bsz") + .else + PRINT ("\bsz bit, small = \opt, fast memcpy = \fmcpy") + .endif + .if (PS1) + PRINT ("R3000 code") + .else + PRINT ("R5900 code") + .endif -.macro beqz2gb reg,label,nrv_bb - IF (!small) && (\nrv_bb == 8) - beqz \reg,\label+4 - andi var,bb,0x007F - ELSE - beqz \reg,\label - nop - ENDIF .endm -.macro b2gb label,nrv_bb - IF (!small) - b \label+4 - IF (\nrv_bb == 8) - andi var,bb,0x007F - ELSE // ;(nrv_bb == 32) + +;////////////////////////////////////// +;// init decompressor +;////////////////////////////////////// + +.macro init + + move bc,zero + li last_m_off,1 + .if (src != src_ilen) + move src_ilen,src + .endif + +.endm + + +;////////////////////////////////////// +;// getbit macro +;////////////////////////////////////// + +.macro ADDBITS done + + .if (UCL_SMALL == 1) + addiu bc, -1 + bgez bc, \done + srlv var, bb, bc + .else + bgtz bc, \done + addiu bc, -1 + .endif + +.endm + +.macro ADDBITS_DONE done + + .if (UCL_SMALL == 1) + srlv var,bb,bc +\done: + jr ra + .else +\done: + srlv var,bb,bc + .endif + andi var,0x0001 + +.endm + +.macro FILLBYTES_8 + + li bc,7 + lbu bb,0(src_ilen) + addiu src_ilen,1 + +.endm + +.macro FILLBYTES_32 + + li bc,31 + lwr bb,0(src_ilen) + lwl bb,3(src_ilen) + addiu src_ilen,4 + +.endm + +.macro FILLBYTES + + .if (UCL_NRV_BB == 8) + FILLBYTES_8 + .else // (UCL_NRV_BB == 32) + FILLBYTES_32 + .endif + +.endm + +.macro GBIT + + local d + + ADDBITS d + FILLBYTES + ADDBITS_DONE d + +.endm + + +;////////////////////////////////////// +;// getbit call macro for SMALL version +;////////////////////////////////////// + +.macro GETBIT p1 + + .if (UCL_SMALL == 1) + .ifb p1 + bal 1f // gb_sub + .else + bal 1f+4 // gb_sub+4 addiu bc,-1 - ENDIF - ELSE - b \label - nop - ENDIF + .endif + .else + GBIT + .endif + .endm -////////////////////////////////////// -// ucl memcpy -////////////////////////////////////// +;////////////////////////////////////// +;// getbit call macro for SMALL version +;////////////////////////////////////// -.macro uclmcpy retoffset,nrv_bb - local wordchk, prepbytecpy, bytecopy -# ifdef FAST +.macro build option, type, label + + local done + +.ifc "\option", "full" +.ifnb label +\label: +.endif + \type done +.if (UCL_SMALL == 1) +1: + GBIT +.endif +done: +.else +.ifc "\option", "sub_only" + sub_size = . + GBIT + sub_size = . - sub_size +.else +.ifc "\option", "without_sub" + .if (UCL_SMALL == 1) + PRINT ("[WARNING] building \type with UCL_SMALL = 1 without subroutine") + .if (sub_size != 0) + \type decomp_done +1: + .else + .error "\"with_no_sub\" cannot build if \"build_sub\" must be used first" + .endif + .else + .error "\"without_sub\" cannot build if UCL_SMALL = 0" + .endif +.else + .error "use \"full\", \"sub\" or \"without_sub\" for build" +.endif +.endif +.endif +.endm + + +;////////////////////////////////////// +;// ucl memcpy +;////////////////////////////////////// + +.macro uclmcpy ret + + local wordchk, prepbcpy + local bcopy, skip + + .if (UCL_FAST == 1) slti var,m_off,4 - bnez var,prepbytecpy - addiu m_len,1 + bnez var,prepbcpy subu m_pos,dst,m_off wordchk: slti var,m_len,4 - bnez var,bytecopy+4 + bnez var,skip lwr var,0(m_pos) lwl var,3(m_pos) addiu m_len,-4 @@ -101,95 +251,23 @@ wordchk: addiu m_pos,4 bnez m_len,wordchk addiu dst,4 - b2gb \retoffset,\nrv_bb -prepbytecpy: -# else - addiu m_len,1 -# endif + b \ret + nop +prepbcpy: + .else subu m_pos,dst,m_off -bytecopy: + .endif +bcopy: lbu var,0(m_pos) +skip: addiu m_len,-1 sb var,0(dst) addiu m_pos,1 - bnez m_len,bytecopy + bnez m_len,bcopy addiu dst,1 - b2gb \retoffset,\nrv_bb + b \ret + nop + .endm - -////////////////////////////////////// -// init decompressor -////////////////////////////////////// - -.macro init nrv_bb - move bb,zero - IF (\nrv_bb == 32) - move bc,bb - ENDIF - li last_m_off,1 - move src_ilen,src -.endm - -////////////////////////////////////// -// 32bit getbit macro -////////////////////////////////////// - -.macro gbit_le32 -local .L1 - IF (!small) - addiu bc,-1 - ENDIF - bgez bc,.L1 - srlv var,bb,bc - li bc,31 - lwr bb,0(src_ilen) - lwl bb,3(src_ilen) - addiu src_ilen,4 - srlv var,bb,bc -.L1: - IF (small) - jr ra - ENDIF - andi var,0x0001 -.endm - - -////////////////////////////////////// -// 8bit getbit macro -////////////////////////////////////// - -.macro gbit_8 -local .L2 - IF (!small) - andi var,bb,0x007F - ENDIF - bnez var,.L2 - sll bb,1 - lbu var,0(src_ilen) - addiu src_ilen,1 - sll var,1 - addiu bb,var,1 -.L2: - srl var,bb,8 - IF (small) - jr ra - ENDIF - andi var,0x0001 -.endm - -////////////////////////////////////// -// getbit call macro for small version -////////////////////////////////////// - -.macro gbit_call subroutine,nrv_bb - bal \subroutine - IF (\nrv_bb == 8) - andi var,bb,0x007F - ELSE - addiu bc,-1 - ENDIF -.endm - - #endif //_MR3K_STD_CONF_ diff --git a/src/stub/src/arch/mips/mipsel.r3000/macros.ash b/src/stub/src/arch/mips/mipsel.r3000/macros.ash index 400c29b9..3858e738 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/macros.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/macros.ash @@ -21,19 +21,16 @@ ; If not, write to the Free Software Foundation, Inc., ; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ; -; Markus F.X.J. Oberhumer Jens Medoch -; +; Markus F.X.J. Oberhumer Jens Medoch +; ; http://www.oberhumer.com/opensource/ucl/ ; */ .macro section name - .section \name + .section \name .endm -.set noat -.altmacro - #define zero $0 #define at $1 #define v0 $2 @@ -58,14 +55,21 @@ #define ELSE .else #define ENDIF .endif -#define DW .long -#define DB .byte +#define DW .word +#define DB .byte .macro subiu reg, p1, p2 - .ifnb p2 + + .ifnb p2 addiu \reg, p1, -p2 - .else + .else addiu \reg, -p1 - .endif + .endif + .endm +#ifndef DEBUG +# define PRINT(str) +#else +# define PRINT(str) .print str +#endif diff --git a/src/stub/src/arch/mips/mipsel.r3000/nrv2b_d.ash b/src/stub/src/arch/mips/mipsel.r3000/nrv2b_d.ash index 6174f1ed..dd22d8d0 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/nrv2b_d.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/nrv2b_d.ash @@ -1,5 +1,5 @@ /* -; n2b_d.ash -- NRV2B decompressor in Mips R3000 assembly +; nrv2b_d.ash -- NRV2B decompressor in Mips R3000 assembly ; ; This file is part of the UCL data compression library. ; @@ -27,112 +27,77 @@ ; */ -small = 0 -#if (NRV_BB==8) -# ifdef SMALL - IF (!small) - small = 1 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2b_decompress_8_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else -# define UCL_DECOMPRESSOR ucl_nrv2b_decompress_8 -# define GETBIT gbit_8 -# endif -#elif (NRV_BB==32) -# ifdef SMALL -# define UCL_DECOMPRESSOR ucl_nrv2b_decompress_32_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else - IF (small) - small = 0 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2b_decompress_32 -# define GETBIT gbit_le32 -# endif -#else -# error "define NRV_BB first!" -#endif - - -#include "bits.ash" /* ; ------------- DECOMPRESSION ------------- -; On entry: -; a0 src pointer -; a2 dest pointer +; On entry: (regs are defined) +; src compressed data pointer +; dst store uncompressed data pointer */ -.macro UCL_DECOMPRESSOR - local n2b_18, n2b_78, n2b_FC, n2b_120, - local n2b_190, n2b_208, gbit_sub, n2b_decomp_done - init NRV_BB -n2b_18: - GETBIT - beqz var,n2b_78 - li m_off,1 - lbu var,0(src_ilen) - addiu src_ilen,1 - sb var,0(dst) - b n2b_18 - addiu dst,1 -n2b_78: - GETBIT - sll m_off,1 - addu m_off,var - GETBIT - beqz2gb var,n2b_78,NRV_BB - li var,2 - bne m_off,var,n2b_FC - addiu m_off,-3 - b n2b_120 - move m_off,last_m_off -n2b_FC: - lbu var,0(src_ilen) - addiu src_ilen,1 - sll m_off,8 // *256 - addu m_off,var // +scr[ilen++] - li var,-1 - beq m_off,var,n2b_decomp_done - addiu m_off,1 - move last_m_off,m_off -n2b_120: - GETBIT - move m_len,var - sll m_len,1 - GETBIT - addu m_len,var - bnez m_len,n2b_208 - sltiu var,m_off,0x0D01 - li m_len,1 -n2b_190: - GETBIT - sll m_len,1 - addu m_len,var - GETBIT - beqz2gb var,n2b_190,NRV_BB - addiu m_len,2 - sltiu var,m_off,0x0D01 -n2b_208: - xori var,0x0001 - addu m_len,var - uclmcpy n2b_18,NRV_BB +.macro nrv2b done -#ifdef SMALL -gbit_sub: -# if (NRV_BB == 8) - gbit_8 -# elif (NRV_BB == 32) - gbit_le32 -# else -# error "define NRV_BB first!" -# endif -#endif + local n2b_1, n2b_2, n2b_3, + local n2b_4, n2b_5, n2b_6 + + init +n2b_1: + GETBIT + li m_off,1 + beqz var,n2b_2 + lbu var,0(src_ilen) + addiu src_ilen,1 + sb var,0(dst) + b n2b_1 + addiu dst,1 +n2b_2: + GETBIT + sll m_off,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_off,var + .else + addu m_off,var + GETBIT + .endif + beqz var,n2b_2 + li var,2 + bne m_off,var,n2b_3 + addiu m_off,-3 + b n2b_4 + move m_off,last_m_off +n2b_3: + lbu var,0(src_ilen) + sll m_off,8 + addu m_off,var + addiu m_off,1 + beqz m_off,\done + addiu src_ilen,1 + move last_m_off,m_off +n2b_4: + GETBIT 1 + move m_len,var + GETBIT + sll m_len,1 + addu m_len,var + bnez m_len,n2b_6 + addiu m_len,2-4 + li m_len,1 +n2b_5: + GETBIT + sll m_len,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_len,var + .else + addu m_len,var + GETBIT + .endif + beqz var,n2b_5 +n2b_6: + sltiu var,m_off,0x0D01 + addiu m_len,4 + subu m_len,var + uclmcpy n2b_1 -n2b_decomp_done: .endm - UCL_DECOMPRESSOR - -#undef UCL_DECOMPRESSOR -#undef GETBIT diff --git a/src/stub/src/arch/mips/mipsel.r3000/nrv2d_d.ash b/src/stub/src/arch/mips/mipsel.r3000/nrv2d_d.ash index 0b627b31..cd2cdd62 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/nrv2d_d.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/nrv2d_d.ash @@ -1,5 +1,5 @@ /* -; n2d_d.ash -- NRV2D decompressor in Mips R3000 assembly +; nrv2d_d.ash -- NRV2D decompressor in Mips R3000 assembly ; ; This file is part of the UCL data compression library. ; @@ -27,122 +27,90 @@ ; */ -small = 0 -#if (NRV_BB==8) -# ifdef SMALL - IF (!small) - small = 1 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2d_decompress_8_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else -# define UCL_DECOMPRESSOR ucl_nrv2d_decompress_8 -# define GETBIT gbit_8 -# endif -#elif (NRV_BB==32) -# ifdef SMALL -# define UCL_DECOMPRESSOR ucl_nrv2d_decompress_32_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else - IF (small) - small = 0 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2d_decompress_32 -# define GETBIT gbit_le32 -# endif -#else -# error "define NRV_BB first!" -#endif - - -#include "bits.ash" /* ; ------------- DECOMPRESSION ------------- -; On entry: -; a0 src pointer -; a2 dest pointer +; On entry: (regs are defined) +; src compressed data pointer +; dst store uncompressed data pointer */ +.macro nrv2d done -.macro UCL_DECOMPRESSOR - local n2d_18, n2d_74, n2d_124, n2d_168, n2d_198 - local n2d_1E4, n2d_25C, gbit_sub, n2d_decomp_done - init NRV_BB -n2d_18: - GETBIT - beqz var,n2d_74 - li m_off,1 - lbu var,0(src_ilen) - addiu src_ilen,1 - sb var,0(dst) - b n2d_18 - addiu dst,1 -n2d_74: - GETBIT - sll m_off,1 - addu m_off,var - GETBIT - bnez var,n2d_124 - addiu var,m_off,-1 - sll m_off,var,1 - GETBIT - b n2d_74 - addu m_off,var -n2d_124: - li var,2 - bne m_off,var,n2d_168 - addiu m_off,-3 - GETBIT - move m_off,last_m_off - b n2d_198 - andi m_len,var,0x0001 -n2d_168: - lbu var,0(src_ilen) - addiu src_ilen,1 - sll m_off,8 - addu m_off,var - li var,-1 - beq m_off,var,n2d_decomp_done - nor var,zero,m_off - andi m_len,var,0x0001 - srl m_off,1 - addiu m_off,1 - move last_m_off,m_off -n2d_198: - GETBIT - sll m_len,1 - addu m_len,var - bnez m_len,n2d_25C - sltiu var,m_off,0x0501 - li m_len,1 -n2d_1E4: - GETBIT - sll m_len,1 - addu m_len,var - GETBIT - beqz2gb var,n2d_1E4,NRV_BB - addiu m_len,2 - sltiu var,m_off,0x0501 -n2d_25C: - xori var,0x0001 - addu m_len,var - uclmcpy n2d_18,NRV_BB + local n2d_1, n2d_2, n2d_3, n2d_4, + local n2d_5, n2d_6, n2d_7 -#ifdef SMALL -gbit_sub: -# if (NRV_BB == 8) - gbit_8 -# elif (NRV_BB == 32) - gbit_le32 -# else -# error "define NRV_BB first!" -# endif -#endif + init +n2d_1: + GETBIT + li m_off,1 + beqz var,n2d_2 + lbu var,0(src_ilen) + addiu src_ilen,1 + sb var,0(dst) + b n2d_1 + addiu dst,1 +n2d_2: + GETBIT + sll m_off,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_off,var + .else + addu m_off,var + GETBIT + .endif + bnez var,n2d_3 + addiu var,m_off,-2 + .if (UCL_SMALL == 1) + GETBIT + addu m_off,var,m_off + .else + addu m_off,var,m_off + GETBIT + .endif + b n2d_2 + addu m_off,var +n2d_3: + bnez var,n2d_4 + addiu m_off,-3 + GETBIT + move m_off,last_m_off + b n2d_5 + andi m_len,var,0x0001 +n2d_4: + lbu var,0(src_ilen) + sll m_off,8 + addu m_off,var + addiu var,m_off,1 + beqz var,\done + addiu src_ilen,1 + srl m_off,1 + addiu m_off,1 + move last_m_off,m_off + andi m_len,var,0x0001 +n2d_5: + GETBIT + sll m_len,1 + addu m_len,var + bnez m_len,n2d_7 + addiu m_len,2-4 + li m_len,1 +n2d_6: + GETBIT + sll m_len,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_len,var + .else + addu m_len,var + GETBIT + .endif + beqz var,n2d_6 +n2d_7: + sltiu var,m_off,0x0501 + addiu m_len,4 + subu m_len,var + uclmcpy n2d_1 -n2d_decomp_done: .endm - UCL_DECOMPRESSOR - -#undef UCL_DECOMPRESSOR -#undef GETBIT diff --git a/src/stub/src/arch/mips/mipsel.r3000/nrv2e_d.ash b/src/stub/src/arch/mips/mipsel.r3000/nrv2e_d.ash index db6cc617..4f05f505 100644 --- a/src/stub/src/arch/mips/mipsel.r3000/nrv2e_d.ash +++ b/src/stub/src/arch/mips/mipsel.r3000/nrv2e_d.ash @@ -1,5 +1,5 @@ /* -; n2e_d.ash -- NRV2E decompressor in Mips R3000 assembly +; nrv2e_d.ash -- NRV2E decompressor in Mips R3000 assembly ; ; This file is part of the UCL data compression library. ; @@ -23,130 +23,96 @@ ; ; Markus F.X.J. Oberhumer Jens Medoch ; -; http://www.oberhumer.com/opensource/ucl/ +; http$://www.oberhumer.com/opensource/ucl/ ; */ -small = 0 -#if (NRV_BB==8) -# ifdef SMALL - IF (!small) - small = 1 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2e_decompress_8_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else -# define UCL_DECOMPRESSOR ucl_nrv2e_decompress_8 -# define GETBIT gbit_8 -# endif -#elif (NRV_BB==32) -# ifdef SMALL -# define UCL_DECOMPRESSOR ucl_nrv2e_decompress_32_small -# define GETBIT gbit_call gbit_sub,NRV_BB -# else - IF (small) - small = 0 - ENDIF -# define UCL_DECOMPRESSOR ucl_nrv2e_decompress_32 -# define GETBIT gbit_le32 -# endif -#else -# error "define NRV_BB first!" -#endif - -#include "bits.ash" /* ; ------------- DECOMPRESSION ------------- -; On entry: -; a0 src pointer -; a2 dest pointer +; On entry$: (regs are defined) +; src compressed data pointer +; dst store uncompressed data pointer */ +.macro nrv2e done -.macro UCL_DECOMPRESSOR - local n2e_18, n2e_4C, n2e_E4, n2e_124, n2e_150, n2e_184 - local n2e_1E0, n2e_244, gbit_sub, n2e_decomp_done - init NRV_BB -n2e_18: - GETBIT - beqz var, n2e_4C - li m_off,1 - lbu var,0(src_ilen) - addiu src_ilen,1 - sb var,0(dst) - b n2e_18 - addiu dst,1 -n2e_4C: - GETBIT - sll m_off,1 - addu m_off,var - GETBIT - bnez var,n2e_E4 - addiu var,m_off,-1 - sll m_off,var,1 - GETBIT - b n2e_4C - addu m_off,var -n2e_E4: - li var,2 - bne m_off,var,n2e_124 - addiu m_off,-3 - move m_off,last_m_off - GETBIT - b n2e_150 - andi m_len,var,0x0001 -n2e_124: - lbu var,0(src_ilen) - sll m_off,8 - addu m_off,var - li var,-1 - beq m_off,var,n2e_decomp_done - addiu src_ilen,1 - nor var,zero,m_off - andi m_len,var,0x0001 - srl m_off,1 - addiu m_off,1 - move last_m_off,m_off -n2e_150: - beqz2gb m_len,n2e_184,NRV_BB - GETBIT - b n2e_244 - addiu m_len,var,1 -n2e_184: - GETBIT - beqz var,n2e_1E0 - addiu m_len,1 - GETBIT - b n2e_244 - addiu m_len,var,3 -n2e_1E0: - GETBIT - sll m_len,1 - addu m_len,var - GETBIT - beqz2gb var,n2e_1E0,NRV_BB - addiu m_len,3 -n2e_244: - sltiu var,m_off,0x0501 - xori var,0x0001 - addu m_len,var - uclmcpy n2e_18,NRV_BB + local n2e_1, n2e_2, n2e_3, n2e_4, + local n2e_5, n2e_6, n2e_7 -#ifdef SMALL -gbit_sub: -# if (NRV_BB == 8) - gbit_8 -# elif (NRV_BB == 32) - gbit_le32 -# else -# error "define NRV_BB first!" -# endif -#endif + init +n2e_1: + GETBIT + li m_off,1 + beqz var,n2e_2 + lbu var,0(src_ilen) + addiu src_ilen,1 + sb var,0(dst) + b n2e_1 + addiu dst,1 +n2e_2: + GETBIT + sll m_off,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_off,var + .else + addu m_off,var + GETBIT + .endif + bnez var,n2e_3 + addiu var,m_off,-2 + .if (UCL_SMALL == 1) + GETBIT + addu m_off,var + .else + addu m_off,var + GETBIT + .endif + b n2e_2 + addu m_off,var +n2e_3: + bnez var,n2e_4 + addiu m_off,-3 + GETBIT + move m_off,last_m_off + b n2e_5 + andi m_len,var,0x0001 +n2e_4: + lbu var,0(src_ilen) + sll m_off,8 + addu m_off,var + addiu var,m_off,1 + beqz var,\done + addiu src_ilen,1 + srl m_off,1 + addiu m_off,1 + move last_m_off,m_off + andi m_len,var,0x0001 +n2e_5: + GETBIT 0 + bnez m_len,n2e_7 + addiu m_len,var,3-5 + beqz var,n2e_6 + li m_len,1 + GETBIT 0 + b n2e_7 + move m_len,var +n2e_6: + GETBIT + sll m_len,1 + .if (UCL_SMALL == 1) + GETBIT + addu m_len,var + .else + addu m_len,var + GETBIT + .endif + beqz var,n2e_6 +n2e_7: + sltiu var,m_off,0x0501 + addiu m_len,5 + subu m_len,var + uclmcpy n2e_1 -n2e_decomp_done: .endm - UCL_DECOMPRESSOR - -#undef UCL_DECOMPRESSOR -#undef GETBIT diff --git a/src/stub/src/mipsel.r3000-ps1.asm b/src/stub/src/mipsel.r3000-ps1.asm index 005c5715..865ad0ec 100644 --- a/src/stub/src/mipsel.r3000-ps1.asm +++ b/src/stub/src/mipsel.r3000-ps1.asm @@ -31,182 +31,241 @@ ; */ + .set mips1 + .altmacro + .set noreorder + .set noat + + #include "arch/mips/mipsel.r3000/macros.ash" +#include "arch/mips/mipsel.r3000/bits.ash" -#define SZ_REG 4 +/* +============= +============= none +============= +*/ + +.macro SysFlushCache + + .if (PS1) + PRINT ("SYSCALL PS1") + li t2,160 + jalr ra,t2 + li t1,68 + .else + PRINT ("SYSCALL PS2") + move a0, zero + li v1, 100 + syscall + .endif -#if CDBOOT -.macro regs _w, marker - \_w a0,SZ_REG*0(sp) - \_w a1,SZ_REG*1(sp) - \_w a2,SZ_REG*2(sp) - \_w a3,SZ_REG*3(sp) - \_w v0,SZ_REG*4(sp) - \_w v1,SZ_REG*5(sp) -IF (\marker != 0) - DW \marker -ENDIF - \_w ra,SZ_REG*6(sp) .endm -#define REG_SZ (7*SZ_REG) +.macro regs _w, marker -#else //console +.if (PS1) + SZ_REG = 4 +.else + SZ_REG = 8 +.endif + +.if (CDBOOT == 1) + REG_SZ = (4*SZ_REG) +.else + REG_SZ = (5*SZ_REG) +.endif + + \_w src,SZ_REG*0(sp) + \_w dst,SZ_REG*1(sp) + \_w pc,SZ_REG*2(sp) + \_w ra,SZ_REG*3(sp) + .if (CDBOOT == 0) + \_w tmp,SZ_REG*4(sp) + .endif + .if (\marker != 0) + DW \marker + .if (CDBOOT == 0) + addu sp,tmp + .else + addiu sp,REG_SZ + .endif + .endif -.macro regs _w, marker - \_w at,SZ_REG*0(sp) - \_w a0,SZ_REG*1(sp) - \_w a1,SZ_REG*2(sp) - \_w a2,SZ_REG*3(sp) - \_w a3,SZ_REG*4(sp) - \_w v0,SZ_REG*5(sp) - \_w v1,SZ_REG*6(sp) - \_w ra,SZ_REG*7(sp) -IF (\marker != 0) - DW \marker - addu sp,at -ENDIF .endm -#define REG_SZ (8*SZ_REG) +.macro push jmp -#endif //CDBOOT + .if (PS1) + regs sw,\jmp + .else + regs sd,\jmp + .endif -#if CDBOOT -// ============= -// ============= ENTRY POINT -// ============= -// for cd-boot only +.endm -section PS1START - la t0, PSVR // prepare to compute value - subu t0,s0,t0 // get stored header offset in mem - jr t0 - subiu sp, REG_SZ // adjust stack -section PS1ENTRY - regs sw,0 // push used regs - la a0, CPDO // load COMPDATA offset -// li a1,'CDSZ' // compressed data size - disabled! -section PS1CONHL - la a2, DECO -section PS1CONHI - lui a2, %hi(DECO) +.macro pop jmp + + .if (PS1) + regs lw,\jmp + .else + regs ld,\jmp + .endif + +.endm -#else //CONSOLE -// ============= -// ============= ENTRY POINT -// ============= -// for console- / cd-boot +/* +============= +============= ENTRY POINT cd-boot +============= +*/ + CDBOOT = 1 -section PS1START - addiu at,zero, LS // size of decomp. routine - subu sp,at // adjust the stack with this size - regs sw,0 // push used regs - subiu a2,at,REG_SZ // a2 = counter copyloop - addiu a3,sp,REG_SZ // get offset for decomp. routine - move a1,a3 - la a0, DCRT // load decompression routine's offset -copyloop: - lw at,0(a0) // memcpy *a0 -> at -> *a1 - addiu a2,-4 - sw at,0(a1) - addiu a0,4 - bnez a2,copyloop - addiu a1,4 +section ps1.cdb.start + la t0,PSVR // prepare to compute value + subu t0,s0,t0 // get stored header offset in mem + jr t0 + subiu sp,REG_SZ // prep to adjust stack + +section ps1.cdb.entry + push 0 // push used regs + la src,CPDO // load compressed data offset + +section ps1.cdb.nrv.ptr + la dst,DECO // load decompressed data offset + +section ps1.cdb.nrv.ptr.hi + lui dst,%hi(DECO) + +section ps1.cdb.exit + SysFlushCache + pop JPEP // pop used regs with marker for entry + + +/* +============= +============= ENTRY POINT console +============= +*/ + + CDBOOT = 0 + +section ps1.con.start + li tmp,%lo(LS) // size of decomp. routine + subu sp,tmp // adjust the stack with this size + push 0 // push used regs + subiu cnt,tmp,REG_SZ // cnt = counter copyloop + addiu pc,sp,REG_SZ // get offset for decomp. routine + move dst,pc + la src,DCRT // load decompression routine's offset +1: + lw tmp,0(src) // memcpy *a0 -> tmp -> *a1 + subiu cnt,4 + sw tmp,0(dst) + addiu src,4 + bnez cnt,1b + addiu dst,4 + +section ps1.con.padcd + addiu src,PC // a0 = pointer compressed data + +section ps1.con.nrv.ptr + lui dst,%hi(DECO) // load DECOMPDATA HI offset + jr pc + addiu dst,%lo(DECO) // load DECOMPDATA LO offset + +section ps1.con.nrv.ptr.hi + jr pc + lui dst,%hi(DECO) // same for HI only !(offset&0xffff) + +section ps1.con.entry + +section ps1.con.exit + SysFlushCache + pop JPEP // pop used regs with marker for entry + +section ps1.con.regs + DW REG_SZ -section PS1PADCD - addiu a0, PC // a0 = pointer compressed data -section PS1CONHL - la a2, DECO // load DECOMPDATA HI offset - jr a3 -section PS1CONHI - jr a3 - lui a2, %hi(DECO) // same for HI only !(offset&0xffff) -section PS1ENTRY -#endif //CDBOOT -// ============= -// ============= DECOMPRESSION // ============= -#ifndef FAST -# define FAST -#endif +section ps1.mset.short + li cnt,%lo(SC) // amount of removed zero's at eof -#if CDBOOT -# ifdef SMALL -# undef SMALL -# endif -#else //CONSOLE -# ifndef SMALL -# define SMALL -# endif -#endif //CDBOOT +section ps1.mset.long + li cnt,%lo(SC) // amount of removed zero's at eof + sll cnt,3 // (cd mode 2 data sector alignment) -#ifdef NRV_BB -# undef NRV_BB -#endif -#define NRV_BB 8 +section ps1.mset.aligned +1: + sw zero,0(dst) + subiu cnt,1 + bnez cnt,1b + addiu dst,4 + +section ps1.mset.unaligned +1: + swl zero,3(dst) + swr zero,0(dst) + subiu cnt,1 + bnez cnt,1b + addiu dst,4 + + +/* +============= +============= DECOMPRESSION +============= +*/ -section PS1N2B08 #include "arch/mips/mipsel.r3000/nrv2b_d.ash" -section PS1N2D08 #include "arch/mips/mipsel.r3000/nrv2d_d.ash" -section PS1N2E08 -#include "arch/mips/mipsel.r3000/nrv2e_d.ash" - -#ifdef NRV_BB -# undef NRV_BB -#endif -#define NRV_BB 32 - -section PS1N2B32 -#include "arch/mips/mipsel.r3000/nrv2b_d.ash" -section PS1N2D32 -#include "arch/mips/mipsel.r3000/nrv2d_d.ash" -section PS1N2E32 #include "arch/mips/mipsel.r3000/nrv2e_d.ash" -// ============= +// ========== cd-boot -section PS1MSETS - ori a0,zero, SC // amount of removed zeros at eof -section PS1MSETB - ori a0,zero, SC // amount of removed zeros at eof - sll a0,3 // (cd mode 2 data sector alignment) -section PS1MSETA -memset_aligned: - sw zero,0(a2) - addiu a0,-1 - bnez a0,memset_aligned - addiu a2,4 -section PS1MSETU -memset_unaligned: - swl zero,3(a2) - swr zero,0(a2) - addiu a0,-1 - bnez a0,memset_unaligned - addiu a2,4 + UCL_init 8,0,1 +section ps1.cdb.nrv2b.8bit + build full, nrv2b +section ps1.cdb.nrv2d.8bit + build full, nrv2d +section ps1.cdb.nrv2e.8bit + build full, nrv2e -// ============= + UCL_init 32,0,1 +section ps1.cdb.nrv2b.32bit + build full, nrv2b +section ps1.cdb.nrv2d.32bit + build full, nrv2d +section ps1.cdb.nrv2e.32bit + build full, nrv2e -section PS1EXITC - li t2,160 // flushes - jalr ra,t2 // instruction - li t1,68 // cache - regs lw, JPEP // marker for the entry jump +// ========== console-run -// ============= + UCL_init 8,1,0 +section ps1.getbit.8bit.sub + build sub_only +section ps1.getbit.8bit.size + DW sub_size -#include "include/header2.ash" + UCL_init 32,1,0 +section ps1.getbit.32bit.sub + build sub_only +section ps1.getbit.32bit.size + DW sub_size -// ============= +section ps1.small.nrv2b + build without_sub, nrv2b +section ps1.small.nrv2d + build without_sub, nrv2d +section ps1.small.nrv2e + build without_sub, nrv2e + + +#include "include/header2.ash" -#if !CDBOOT -section PS1SREGS - DW REG_SZ -#endif //CDBOOT // vi:ts=8:et:nowrap