From f74c2af65c4af4f58bfdc5fcef40b8a08e83aad3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Moln=C3=A1r?= Date: Fri, 7 Jul 2006 17:49:30 +0200 Subject: [PATCH] conversion of atari/tos to ElfLinker finished --- src/p_tos.cpp | 73 ++--- src/stub/m68k-atari.tos-nrv2b.h | 376 +++++++++++++++++++++---- src/stub/m68k-atari.tos-nrv2b.small.h | 357 +++++++++++++++++++++--- src/stub/m68k-atari.tos-nrv2d.h | 378 +++++++++++++++++++++---- src/stub/m68k-atari.tos-nrv2d.small.h | 359 +++++++++++++++++++++--- src/stub/m68k-atari.tos-nrv2e.h | 380 ++++++++++++++++++++++---- src/stub/m68k-atari.tos-nrv2e.small.h | 360 +++++++++++++++++++++--- src/stub/src/arch/m68k/bits.ash | 6 +- src/stub/src/arch/m68k/nrv2b_d.ash | 139 +++++----- src/stub/src/arch/m68k/nrv2d_d.ash | 139 +++++----- src/stub/src/arch/m68k/nrv2e_d.ash | 50 ++-- src/stub/src/m68k-atari.tos.asm | 78 +++--- 12 files changed, 2198 insertions(+), 497 deletions(-) diff --git a/src/p_tos.cpp b/src/p_tos.cpp index f0a7bce7..155a1a81 100644 --- a/src/p_tos.cpp +++ b/src/p_tos.cpp @@ -96,7 +96,7 @@ Linker* PackTos::newLinker() const } if (strcmp(type, "8") == 0) *location += value; - if (strcmp(type, "16") == 0) + else if (strcmp(type, "16") == 0) set_be16(location, get_be16(location) + value); else if (strcmp(type, "32") == 0) set_be32(location, get_be32(location) + value); @@ -135,7 +135,7 @@ int PackTos::buildLoader(const Filter *ft) "s_bneloop0", true ? "subql_1d6" : "subqw_1d6", "s_bneloop3", - "IDENTSTR,+40,UP1HEAD", + "IDENTSTR,+40,UPX1HEAD", "CUTPOINT", true ? "reloc" : "", "jmpastack", @@ -236,6 +236,7 @@ bool PackTos::checkFileHeader() // some 68000 opcodes for patching **************************************************************************/ +#if 0 enum m68k_reg_t { REG_D0, REG_D1, REG_D2, REG_D3, REG_D4, REG_D5, REG_D6, REG_D7, REG_A0, REG_A1, REG_A2, REG_A3, REG_A4, REG_A5, REG_A6, REG_A7 @@ -285,7 +286,6 @@ static unsigned OP_SUBQ_W(int value, int d_reg) return 0x5140 | ((value & 7) << 9) | (d_reg & 7); } - /************************************************************************* // **************************************************************************/ @@ -347,7 +347,7 @@ unsigned PackTos::patch_d_loop(void *b, int blen, set_be32(p, d_value); return d_value; } - +#endif /************************************************************************* // relocs @@ -532,10 +532,10 @@ void PackTos::pack(OutputFile *fo) // get loader const unsigned lsize = getLoaderSize(); - const unsigned e_len = get_be16(getLoader()+lsize-6); - const unsigned d_len = get_be16(getLoader()+lsize-4); - const unsigned decomp_offset = get_be16(getLoader()+lsize-2); - assert(e_len + d_len == lsize - 6); + const unsigned e_len = getLoaderSectionStart("CUTPOINT"); + const unsigned d_len = lsize - e_len; + const unsigned decomp_offset = linker->getSymbolOffset("decompr_start") - e_len; + assert(decomp_offset != 0xdeaddead); assert((e_len & 3) == 0 && (d_len & 1) == 0); // The decompressed data will now get placed at this offset: @@ -556,7 +556,6 @@ void PackTos::pack(OutputFile *fo) // append decompressor (part 2 of loader) const unsigned d_off = o_data; - memcpy(obuf+d_off, getLoader()+e_len, d_len); o_data += d_len; // dword align the len of the final data segment @@ -588,22 +587,12 @@ void PackTos::pack(OutputFile *fo) while (o_bss & 3) o_bss++; - // prepare loader - MemBuffer loader(o_text); - memcpy(loader, getLoader(), o_text); - - // patch loader - int tmp = patchPackHeader(loader, o_text); - assert(tmp + 32 == (int)o_text); UNUSED(tmp); - patchVersionYear(loader, o_text); - if (!opt->small) - patchVersion(loader, o_text); // patch "subq.l #1,d6" or "subq.w #1,d6" - see "up41" below - const unsigned dirty_bss_d6 = - patch_d_subq(loader, o_text, REG_D6, dirty_bss / dirty_bss_align, "u4"); - patch_be32(loader, o_text, "up31", d_off + offset + decomp_offset); + const unsigned dirty_bss_d6 = dirty_bss / dirty_bss_align; + // FIXME patch_d_subq(loader, o_text, REG_D6, dirty_bss / dirty_bss_align, "u4"); + linker->defineSymbol("up31", d_off + offset + decomp_offset); if (opt->small) - patch_d_loop(loader, o_text, REG_D0, o_data/4, "up22", "u1"); + ; // patch_d_loop(loader, o_text, REG_D0, o_data/4, "up22", "u1"); else { if (o_data <= 160) @@ -615,19 +604,26 @@ void PackTos::pack(OutputFile *fo) loop1--; loop2 = 160; } - patch_be16(loader, o_text, "u2", OP_MOVEQ(loop2/4-1, REG_D0)); // moveq.l #X,d0 - patch_d_loop(loader, o_text, REG_D0, loop1, "up22", "u1"); + linker->defineSymbol("copy_remain", loop2 / 4 - 1); + //patch_be16(loader, o_text, "u2", OP_MOVEQ(loop2/4-1, REG_D0)); // moveq.l #X,d0 + //patch_d_loop(loader, o_text, REG_D0, loop1, "up22", "u1"); } - patch_be32(loader,o_text,"up21",o_data + offset); - patch_be32(loader,o_text,"up13",i_bss); // p_blen - patch_be32(loader,o_text,"up12",i_data); // p_dlen - patch_be32(loader,o_text,"up11",i_text); // p_tlen + linker->defineSymbol("up22", opt->small ? o_data / 4 : (o_data - 1) / 160); + linker->defineSymbol("up21", o_data + offset); + linker->defineSymbol("up13", i_bss); // p_blen + linker->defineSymbol("up12", i_data); // p_dlen + linker->defineSymbol("up11", i_text); // p_tlen + + const unsigned clear_size = linker->getSymbolOffset("clear_bss_end") - + linker->getSymbolOffset("clear_bss"); + linker->defineSymbol("copy_to_stack_len", clear_size / 2 - 1); + linker->defineSymbol("clear_bss_size_p4", clear_size + 4); // patch decompressor - upx_byte *p = obuf + d_off; + //upx_byte *p = obuf + d_off; // patch "moveq.l #1,d5" or "jmp (ASTACK)" - patch_be16(p, d_len, "u3", (nrelocs > 0) ? OP_MOVEQ(1, REG_D5) : OP_JMP(REG_A7)); - patch_be32(p, d_len, "up41", dirty_bss_d6); + //patch_be16(p, d_len, "u3", (nrelocs > 0) ? OP_MOVEQ(1, REG_D5) : OP_JMP(REG_A7)); + linker->defineSymbol("up41", dirty_bss_d6); // set new file_hdr memcpy(&oh, &ih, FH_SIZE); @@ -657,6 +653,19 @@ void PackTos::pack(OutputFile *fo) o_text, o_data, o_bss, dirty_bss, (int)oh.fh_flag); #endif + linker->relocate(); + // prepare loader + MemBuffer loader(o_text); + memcpy(loader, getLoader(), o_text); + memcpy(obuf+d_off, getLoader() + e_len, d_len); + + patchPackHeader(loader, o_text); +#if 0 + patchVersionYear(loader, o_text); + if (!opt->small) + patchVersion(loader, o_text); +#endif + // write new file header, loader and compressed file fo->write(&oh, FH_SIZE); fo->write(loader, o_text); // entry diff --git a/src/stub/m68k-atari.tos-nrv2b.h b/src/stub/m68k-atari.tos-nrv2b.h index 7bf5af70..d05b9404 100644 --- a/src/stub/m68k-atari.tos-nrv2b.h +++ b/src/stub/m68k-atari.tos-nrv2b.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2b.h -- created from m68k-atari.tos-nrv2b.bin, 668 (0x29c) bytes +/* m68k-atari.tos-nrv2b.h -- created from m68k-atari.tos-nrv2b.bin, 5174 (0x1436) bytes This file is part of the UPX executable compressor. @@ -27,51 +27,333 @@ */ -#define NRV2B_LOADER_SIZE 668 -#define NRV2B_LOADER_ADLER32 0x36bbef0f -#define NRV2B_LOADER_CRC32 0x4f682ad4 +#define NRV2B_LOADER_SIZE 5174 +#define NRV2B_LOADER_ADLER32 0xb9e7dbe9 +#define NRV2B_LOADER_CRC32 0x78cf8053 -unsigned char nrv2b_loader[668] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 73,236,255, 96, 76,236, 39,238, 0,120, 72,227, /* 0x 40 */ -119,228, 76,236, 39,238, 0, 80, 72,227,119,228, 76,236, 39,238, /* 0x 50 */ - 0, 40, 72,227,119,228, 76,212, 39,238, 72,227,119,228,117, 49, /* 0x 60 */ -102,210,117, 50, 39, 36, 81,200,255,252, 69,250, 0,188, 47, 4, /* 0x 70 */ -122, 73, 63, 34, 83,133,100,250, 63,124, 78,113, 0,130, 97, 32, /* 0x 80 */ - 40, 68,112,128,126,255,124,152,235, 78, 36, 68,213,252,117,112, /* 0x 90 */ - 51, 49, 78,210, 44,195, 44,195, 44,195, 44,195,117, 52,102,244, /* 0x a0 */ - 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, 79,239, /* 0x b0 */ - 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, 78, 78, /* 0x c0 */ - 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, 0, 44, /* 0x d0 */ - 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, 33,200, /* 0x e0 */ - 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, 96, 22, /* 0x f0 */ - 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, 78,123, /* 0x 100 */ - 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, 33,223, /* 0x 110 */ - 0, 16, 78,113, 78,117, 78,117, 79,239, 0,152, 76,223,127,254, /* 0x 120 */ - 32, 8,103, 2,159,207, 78,249, 10, 0, 36, 73,110,102,111, 58, /* 0x 130 */ - 32, 84,104,105,115, 32,102,105,108,101, 32,105,115, 32,112, 97, /* 0x 140 */ - 99,107,101,100, 32,119,105,116,104, 32,116,104,101, 32, 85, 80, /* 0x 150 */ - 88, 32,101,120,101, 99,117,116, 97, 98,108,101, 32,112, 97, 99, /* 0x 160 */ -107,101,114, 32,104,116,116,112, 58, 47, 47,117,112,120, 46,115, /* 0x 170 */ -102, 46,110,101,116, 32, 36, 10, 0, 36, 73,100, 58, 32, 85, 80, /* 0x 180 */ - 88, 32, 85, 80, 88, 86, 32, 67,111,112,121,114,105,103,104,116, /* 0x 190 */ - 32, 40, 67, 41, 32, 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116, /* 0x 1a0 */ -104,101, 32, 85, 80, 88, 32, 84,101, 97,109, 46, 32, 65,108,108, /* 0x 1b0 */ - 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, /* 0x 1c0 */ - 46, 32, 36, 10, 0, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, /* 0x 1d0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 1e0 */ - 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,100, 8,102,248, /* 0x 1f0 */ - 16, 27,209, 0,101,242,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 200 */ -209, 0,211,129,208, 0,100,242,102, 6, 16, 27,209, 0,100,234, /* 0x 210 */ - 87,129,101, 10,225,137, 18, 27, 70,129,103, 72, 42, 1,208, 0, /* 0x 220 */ -102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27,209, 0, /* 0x 230 */ -215, 67, 74, 67,102, 26, 82, 67,208, 0,102, 4, 16, 27,209, 0, /* 0x 240 */ -215, 67,208, 0,100,242,102, 6, 16, 27,209, 0,100,234, 84, 67, /* 0x 250 */ - 69,244, 88, 0, 34, 5,146,134,215, 71, 24,218, 24,218, 81,203, /* 0x 260 */ -255,252, 96,134, 44, 60,117,112, 52, 49,117, 51, 32, 78, 34, 68, /* 0x 270 */ -211,216,211,195,217,145, 22, 24,103, 10,182, 5,102,244, 67,233, /* 0x 280 */ - 0,254, 96,242, 78,215, 1,248, 0,158, 0, 2 /* 0x 290 */ +unsigned char nrv2b_loader[5174] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,196, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 73,236,255, 96, 76,236, 39,238, /* 0x 70 */ + 0,120, 72,227,119,228, 76,236, 39,238, 0, 80, 72,227,119,228, /* 0x 80 */ + 76,236, 39,238, 0, 40, 72,227,119,228, 76,212, 39,238, 72,227, /* 0x 90 */ +119,228, 83,128, 83, 64,102, 0,112, 0, 39, 36, 81,200,255,252, /* 0x a0 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x b0 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126,255,124,152,235, 78, /* 0x c0 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 44,195, 44,195, /* 0x d0 */ + 44,195, 83,134, 83, 70,102, 0, 72,120,255,255, 66,167, 47, 60, /* 0x e0 */ + 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, 72,122, /* 0x f0 */ + 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, 78,208, /* 0x 100 */ + 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, 65,250, /* 0x 110 */ +255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, 78,113, /* 0x 120 */ + 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, 0, 2, /* 0x 130 */ + 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, 33,223, /* 0x 140 */ + 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, 78,117, /* 0x 150 */ + 79,239, 0, 0, 76,223,127,254, 32, 8,103, 2,159,207, 78,249, /* 0x 160 */ + 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 170 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, /* 0x 180 */ + 24,219,208, 0,100, 8,102,248, 16, 27,209, 0,101,242,114, 1, /* 0x 190 */ +118, 0,208, 0,102, 4, 16, 27,209, 0,211,129,208, 0,100,242, /* 0x 1a0 */ +102, 6, 16, 27,209, 0,100,234, 87,129,101, 10,225,137, 18, 27, /* 0x 1b0 */ + 70,129,103, 72, 42, 1,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 1c0 */ +208, 0,102, 4, 16, 27,209, 0,215, 67, 74, 67,102, 26, 82, 67, /* 0x 1d0 */ +208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,100,242,102, 6, /* 0x 1e0 */ + 16, 27,209, 0,100,234, 84, 67, 69,244, 88, 0, 34, 5,146,134, /* 0x 1f0 */ +215, 71, 24,218, 24,218, 81,203,255,252, 96,134, 44, 60, 0, 0, /* 0x 200 */ + 0, 0,122, 1, 32, 78, 34, 68,211,216,211,195,217,145, 22, 24, /* 0x 210 */ +103, 10,182, 5,102,244, 67,233, 0,254, 96,242, 78,215, 0, 46, /* 0x 220 */ +115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46, /* 0x 230 */ +115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 97,116,111, /* 0x 240 */ +115, 48, 0,115,117, 98,113,108, 95, 49,100, 48, 0,115,117, 98, /* 0x 250 */ +113,119, 95, 49,100, 48, 0, 46,114,101,108, 97,115, 95, 98,110, /* 0x 260 */ +101,108,111,111,112, 48, 0,115,117, 98,113,108, 95, 49,100, 54, /* 0x 270 */ + 0,115,117, 98,113,119, 95, 49,100, 54, 0, 46,114,101,108, 97, /* 0x 280 */ +115, 95, 98,110,101,108,111,111,112, 51, 0, 85, 80, 88, 49, 72, /* 0x 290 */ + 69, 65, 68, 0, 46,114,101,108, 97, 67, 85, 84, 80, 79, 73, 78, /* 0x 2a0 */ + 84, 0,114,101,108,111, 99, 0,106,109,112, 97,115,116, 97, 99, /* 0x 2b0 */ +107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, /* 0x 2e0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, /* 0x 2f0 */ + 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 300 */ + 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 310 */ + 0, 0, 0, 0, 0, 0, 7,200, 0, 0, 0, 60, 0, 0, 0, 17, /* 0x 320 */ + 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 37, /* 0x 330 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, /* 0x 340 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 350 */ + 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 360 */ + 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 370 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, /* 0x 380 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, /* 0x 390 */ + 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 3a0 */ + 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 3b0 */ + 0, 0, 0, 0, 0, 0, 8, 4, 0, 0, 0, 84, 0, 0, 0, 17, /* 0x 3c0 */ + 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 73, /* 0x 3d0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, /* 0x 3e0 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 3f0 */ + 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 400 */ + 0, 0, 0, 0, 0, 0, 0,228, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 410 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 98, /* 0x 420 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, /* 0x 430 */ + 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 440 */ + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 450 */ + 0, 0, 0, 0, 0, 0, 8, 88, 0, 0, 0, 24, 0, 0, 0, 17, /* 0x 460 */ + 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,109, /* 0x 470 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,112, /* 0x 480 */ + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 490 */ + 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4a0 */ + 0, 0, 0, 0, 0, 0, 1,144, 0, 0, 0,130, 0, 0, 0, 0, /* 0x 4b0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,118, /* 0x 4c0 */ + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,112, /* 0x 4d0 */ + 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0, 4, /* 0x 4e0 */ + 0, 0, 0, 12, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4f0 */ + 0, 0, 0, 0, 0, 0, 2, 18, 0, 0, 0, 26, 0, 0, 0, 0, /* 0x 500 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,138, /* 0x 510 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 44, /* 0x 520 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 530 */ + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, /* 0x 540 */ + 0, 0, 0, 0, 0, 0, 2, 46, 0, 0, 0,148, 0, 0, 0, 0, /* 0x 550 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 560 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,188, /* 0x 570 */ + 0, 0, 1,144, 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 4, /* 0x 580 */ + 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, /* 0x 590 */ + 0, 0, 0, 0, 0, 0, 7, 76, 0, 0, 0,122, 0, 0, 0, 0, /* 0x 5a0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, /* 0x 5d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 5, 0, 0, 0, 0, /* 0x 5e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 9, 0, 0, 0, 0, /* 0x 5f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, /* 0x 600 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 0, /* 0x 610 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 7, 0, 0, 0, 0, /* 0x 620 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, 0, 0, 0, 0, /* 0x 630 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, 0, 0, 0, 0, /* 0x 640 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0, 0, 0, 0, /* 0x 650 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 14, 0, 0, 0, 0, /* 0x 660 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, 0, 0, 0, 1, /* 0x 670 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 6, /* 0x 680 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 11, /* 0x 690 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, /* 0x 6a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 21, /* 0x 6b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 26, /* 0x 6c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 38, /* 0x 6d0 */ + 0, 0, 0,138, 0, 0, 0, 0, 16, 0, 0, 9, 0, 0, 0, 52, /* 0x 6e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 70, /* 0x 6f0 */ + 0, 0, 0, 52, 0, 0, 0, 0, 16, 0, 0, 5, 0, 0, 0, 80, /* 0x 700 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 85, /* 0x 710 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,103, /* 0x 720 */ + 0, 0, 0, 2, 0, 0, 0, 0, 16, 0, 0, 12, 0, 0, 0,117, /* 0x 730 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,117,112, 49, /* 0x 740 */ + 49, 0,117,112, 49, 50, 0,117,112, 49, 51, 0,117,112, 50, 49, /* 0x 750 */ + 0,117,112, 50, 50, 0, 99,111,112,121, 95,114,101,109, 97,105, /* 0x 760 */ +110, 0, 99,108,101, 97,114, 95, 98,115,115, 95,101,110,100, 0, /* 0x 770 */ + 99,111,112,121, 95,116,111, 95,115,116, 97, 99,107, 95,108,101, /* 0x 780 */ +110, 0, 99,108,101, 97,114, 95, 98,115,115, 0,117,112, 51, 49, /* 0x 790 */ + 0, 99,108,101, 97,114, 95, 98,115,115, 95,115,105,122,101, 95, /* 0x 7a0 */ +112, 52, 0,100,101, 99,111,109,112,114, 95,115,116, 97,114,116, /* 0x 7b0 */ + 0,117,112, 52, 49, 0, 0, 0, 0, 0, 0, 28, 0, 0, 12, 1, /* 0x 7c0 */ + 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 13, 1, 0, 0, 0, 0, /* 0x 7d0 */ + 0, 0, 0, 50, 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 58, /* 0x 7e0 */ + 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 16, 1, /* 0x 7f0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 6, 0, 0, 0, 67, /* 0x 800 */ + 0, 0, 0, 3, 0, 0, 17, 3, 0, 0, 0, 0, 0, 0, 0, 12, /* 0x 810 */ + 0, 0, 18, 5, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 19, 3, /* 0x 820 */ + 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 3, 5, 0, 0, 0, 96, /* 0x 830 */ + 0, 0, 0, 31, 0, 0, 3, 6, 0, 0, 0, 1, 0, 0, 0, 46, /* 0x 840 */ + 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 6, /* 0x 850 */ + 0, 0, 0, 51, 0, 0, 0,124, 0, 0, 22, 2, 0, 0, 0, 0, /* 0x 860 */ + 0, 0, 0,126, 0, 0, 24, 1, 0, 0, 0, 0, 10,116,109,112, /* 0x 870 */ + 47,109, 54, 56,107, 45, 97,116, 97,114,105, 46,116,111,115, 45, /* 0x 880 */ +110,114,118, 50, 98, 46, 98,105,110, 58, 32, 32, 32, 32, 32,102, /* 0x 890 */ +105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, /* 0x 8a0 */ + 45,109, 54, 56,107, 10, 10, 83,101, 99,116,105,111,110,115, 58, /* 0x 8b0 */ + 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, /* 0x 8c0 */ + 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, /* 0x 8d0 */ + 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x 8e0 */ + 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, /* 0x 8f0 */ + 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,116,111,115, 48, 32, /* 0x 900 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, /* 0x 910 */ +101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x 920 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, /* 0x 930 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x 940 */ + 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x 950 */ + 10, 32, 32, 49, 32,115,117, 98,113,108, 95, 49,100, 48, 32, 32, /* 0x 960 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, /* 0x 970 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x 980 */ + 32, 48, 48, 48, 48, 48, 48, 97, 50, 32, 32, 50, 42, 42, 48, 32, /* 0x 990 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x 9a0 */ + 78, 76, 89, 10, 32, 32, 50, 32,115,117, 98,113,119, 95, 49,100, /* 0x 9b0 */ + 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, /* 0x 9c0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x 9d0 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 52, 32, 32, 50, 42, /* 0x 9e0 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x 9f0 */ + 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,115, 95, 98,110,101, /* 0x a00 */ +108,111,111,112, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, /* 0x a10 */ + 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x a20 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 54, 32, /* 0x a30 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x a40 */ + 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x a50 */ + 10, 32, 32, 52, 32,115,117, 98,113,108, 95, 49,100, 54, 32, 32, /* 0x a60 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, /* 0x a70 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x a80 */ + 32, 48, 48, 48, 48, 48, 48,101, 50, 32, 32, 50, 42, 42, 48, 32, /* 0x a90 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x aa0 */ + 78, 76, 89, 10, 32, 32, 53, 32,115,117, 98,113,119, 95, 49,100, /* 0x ab0 */ + 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, /* 0x ac0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x ad0 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 52, 32, 32, 50, 42, /* 0x ae0 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x af0 */ + 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32,115, 95, 98,110,101, /* 0x b00 */ +108,111,111,112, 51, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, /* 0x b10 */ + 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x b20 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 54, 32, /* 0x b30 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x b40 */ + 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x b50 */ + 10, 32, 32, 55, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, /* 0x b60 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, /* 0x b70 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x b80 */ + 32, 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, 42, 42, 48, 32, /* 0x b90 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x ba0 */ + 78, 76, 89, 10, 32, 32, 56, 32, 67, 85, 84, 80, 79, 73, 78, 84, /* 0x bb0 */ + 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 50, 32, 32, /* 0x bc0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x bd0 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 48, 32, 32, 50, 42, /* 0x be0 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x bf0 */ + 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x c00 */ + 57, 32,114,101,108,111, 99, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x c10 */ + 48, 48, 48, 48, 48, 48, 49, 97, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x c20 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x c30 */ + 48, 48, 48, 50, 49, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x c40 */ + 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x c50 */ + 10, 32, 49, 48, 32,106,109,112, 97,115,116, 97, 99,107, 32, 32, /* 0x c60 */ + 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, /* 0x c70 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x c80 */ + 32, 48, 48, 48, 48, 48, 50, 50, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x c90 */ + 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x ca0 */ + 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, /* 0x cb0 */ + 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x cc0 */ +100, 32, 32,116,111,115, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x cd0 */ + 32,116,111,115, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x ce0 */ + 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101,108,111,111,112, /* 0x cf0 */ + 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101, /* 0x d00 */ +108,111,111,112, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x d10 */ + 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101,108,111,111,112, /* 0x d20 */ + 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101, /* 0x d30 */ +108,111,111,112, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x d40 */ + 32, 32, 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49,100, 48, /* 0x d50 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, /* 0x d60 */ + 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x d70 */ + 32, 32,100, 32, 32,115,117, 98,113,119, 95, 49,100, 48, 9, 48, /* 0x d80 */ + 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, /* 0x d90 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x da0 */ +100, 32, 32,115,117, 98,113,108, 95, 49,100, 54, 9, 48, 48, 48, /* 0x db0 */ + 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, 49,100, 54, 10, /* 0x dc0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x dd0 */ + 32,115,117, 98,113,119, 95, 49,100, 54, 9, 48, 48, 48, 48, 48, /* 0x de0 */ + 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, 54, 10, 48, 48, /* 0x df0 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, /* 0x e00 */ + 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x e10 */ + 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, /* 0x e20 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 85, 84, 80, 79, /* 0x e30 */ + 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 85, 84, /* 0x e40 */ + 80, 79, 73, 78, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x e50 */ + 32, 32, 32, 32,100, 32, 32,114,101,108,111, 99, 9, 48, 48, 48, /* 0x e60 */ + 48, 48, 48, 48, 48, 32,114,101,108,111, 99, 10, 48, 48, 48, 48, /* 0x e70 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,106,109,112, /* 0x e80 */ + 97,115,116, 97, 99,107, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x e90 */ +106,109,112, 97,115,116, 97, 99,107, 10, 48, 48, 48, 48, 48, 48, /* 0x ea0 */ + 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x eb0 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 49, 10, 48, /* 0x ec0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x ed0 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117, /* 0x ee0 */ +112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x ef0 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x f00 */ + 48, 48, 48, 32,117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x f10 */ + 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x f20 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 50, 49, 10, 48, 48, /* 0x f30 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x f40 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, /* 0x f50 */ + 50, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x f60 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x f70 */ + 48, 48, 32, 99,111,112,121, 95,114,101,109, 97,105,110, 10, 48, /* 0x f80 */ + 48, 48, 48, 48, 48, 56, 97, 32,103, 32, 32, 32, 32, 32, 32, 32, /* 0x f90 */ +115, 95, 98,110,101,108,111,111,112, 51, 9, 48, 48, 48, 48, 48, /* 0x fa0 */ + 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115,115, 95,101,110, /* 0x fb0 */ +100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x fc0 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x fd0 */ + 48, 32, 99,111,112,121, 95,116,111, 95,115,116, 97, 99,107, 95, /* 0x fe0 */ +108,101,110, 10, 48, 48, 48, 48, 48, 48, 51, 52, 32,103, 32, 32, /* 0x ff0 */ + 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 48, 9, /* 0x1000 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, 98, /* 0x1010 */ +115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x1020 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x1030 */ + 48, 48, 32,117,112, 51, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1040 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x1050 */ + 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115, /* 0x1060 */ +115, 95,115,105,122,101, 95,112, 52, 10, 48, 48, 48, 48, 48, 48, /* 0x1070 */ + 48, 50, 32,103, 32, 32, 32, 32, 32, 32, 32, 67, 85, 84, 80, 79, /* 0x1080 */ + 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,100,101, 99, /* 0x1090 */ +111,109,112,114, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, /* 0x10a0 */ + 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x10b0 */ + 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 52, 49, 10, /* 0x10c0 */ + 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x10d0 */ + 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,116,111,115, 48, 93, 58, /* 0x10e0 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x10f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x1100 */ + 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 54, 56, /* 0x1110 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x1120 */ + 49, 49, 10, 48, 48, 48, 48, 48, 48, 50, 54, 32, 82, 95, 54, 56, /* 0x1130 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x1140 */ + 49, 50, 10, 48, 48, 48, 48, 48, 48, 51, 50, 32, 82, 95, 54, 56, /* 0x1150 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x1160 */ + 49, 51, 10, 48, 48, 48, 48, 48, 48, 51, 97, 32, 82, 95, 54, 56, /* 0x1170 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x1180 */ + 50, 49, 10, 48, 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, 54, 56, /* 0x1190 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x11a0 */ + 50, 50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x11b0 */ + 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,115, 95, 98, /* 0x11c0 */ +110,101,108,111,111,112, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x11d0 */ + 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11e0 */ + 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, /* 0x11f0 */ + 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, /* 0x1200 */ + 32, 32, 32, 32, 32, 32, 32,116,111,115, 48, 43, 48,120, 48, 48, /* 0x1210 */ + 48, 48, 48, 48, 52, 51, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32, /* 0x1220 */ + 82, 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1230 */ + 32, 32, 99,111,112,121, 95,114,101,109, 97,105,110, 10, 48, 48, /* 0x1240 */ + 48, 48, 48, 48, 48, 99, 32, 82, 95, 54, 56, 75, 95, 80, 67, 49, /* 0x1250 */ + 54, 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, 98, /* 0x1260 */ +115,115, 95,101,110,100, 10, 48, 48, 48, 48, 48, 48, 49, 49, 32, /* 0x1270 */ + 82, 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1280 */ + 32, 32, 99,111,112,121, 95,116,111, 95,115,116, 97, 99,107, 95, /* 0x1290 */ +108,101,110, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 54, /* 0x12a0 */ + 56, 75, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32,115, /* 0x12b0 */ + 95, 98,110,101,108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, /* 0x12c0 */ + 48, 48, 54, 48, 10, 48, 48, 48, 48, 48, 48, 49,102, 32, 82, 95, /* 0x12d0 */ + 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x12e0 */ +115, 95, 98,110,101,108,111,111,112, 51, 43, 48,120, 48, 48, 48, /* 0x12f0 */ + 48, 48, 48, 48, 49, 10, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, /* 0x1300 */ + 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1310 */ + 32,117,112, 51, 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x1320 */ + 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x1330 */ +115, 95, 98,110,101,108,111,111,112, 51, 93, 58, 10, 79, 70, 70, /* 0x1340 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1350 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x1360 */ + 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, /* 0x1370 */ + 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108, /* 0x1380 */ +111,111,112, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 51, 51, 10, /* 0x1390 */ + 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 54, 56, 75, 95, 49, /* 0x13a0 */ + 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, /* 0x13b0 */ + 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 10, 10, 10, 82, /* 0x13c0 */ + 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x13d0 */ + 83, 32, 70, 79, 82, 32, 91, 67, 85, 84, 80, 79, 73, 78, 84, 93, /* 0x13e0 */ + 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, /* 0x13f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, /* 0x1400 */ + 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 55,101, 32, 82, 95, 54, /* 0x1410 */ + 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117, /* 0x1420 */ +112, 52, 49, 10, 10, 10 /* 0x1430 */ }; diff --git a/src/stub/m68k-atari.tos-nrv2b.small.h b/src/stub/m68k-atari.tos-nrv2b.small.h index 2c072dfa..954d26f6 100644 --- a/src/stub/m68k-atari.tos-nrv2b.small.h +++ b/src/stub/m68k-atari.tos-nrv2b.small.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2b.small.h -- created from m68k-atari.tos-nrv2b.small.bin, 530 (0x212) bytes +/* m68k-atari.tos-nrv2b.small.h -- created from m68k-atari.tos-nrv2b.small.bin, 4997 (0x1385) bytes This file is part of the UPX executable compressor. @@ -27,43 +27,322 @@ */ -#define NRV2B_LOADER_SMALL_SIZE 530 -#define NRV2B_LOADER_SMALL_ADLER32 0x6843b39e -#define NRV2B_LOADER_SMALL_CRC32 0x68e5d2d4 +#define NRV2B_LOADER_SMALL_SIZE 4997 +#define NRV2B_LOADER_SMALL_ADLER32 0xd6cca474 +#define NRV2B_LOADER_SMALL_CRC32 0xab851031 -unsigned char nrv2b_loader_small[530] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 39, 36,117, 49,102,250, 69,250, 0,182, 47, 4, /* 0x 40 */ -122, 70, 63, 34, 83,133,100,250, 63,124, 78,113, 0,124, 97, 26, /* 0x 50 */ - 40, 68,112,128,126,255,124,152,235, 78, 36, 68,213,252,117,112, /* 0x 60 */ - 51, 49, 78,210, 44,195,117, 52,102,250, 72,120,255,255, 66,167, /* 0x 70 */ - 47, 60, 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, /* 0x 80 */ - 72,122, 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, /* 0x 90 */ - 78,208, 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, /* 0x a0 */ - 65,250,255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, /* 0x b0 */ - 78,113, 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, /* 0x c0 */ - 0, 2, 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, /* 0x d0 */ - 33,223, 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, /* 0x e0 */ - 78,117, 79,239, 0,146, 76,223,127,254, 32, 8,103, 2,159,207, /* 0x f0 */ - 78,249, 10, 36, 73,100, 58, 32, 85, 80, 88, 32, 40, 67, 41, 32, /* 0x 100 */ - 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116,104,101, 32, 85, 80, /* 0x 110 */ - 88, 32, 84,101, 97,109, 46, 32, 65,108,108, 32, 82,105,103,104, /* 0x 120 */ -116,115, 32, 82,101,115,101,114,118,101,100, 46, 32,104,116,116, /* 0x 130 */ -112, 58, 47, 47,117,112,120, 46,115,102, 46,110,101,116, 32, 36, /* 0x 140 */ - 10, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, /* 0x 150 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 160 */ - 0, 0, 0, 45, 24,219,208, 0,102, 4, 16, 27,209, 0,101,244, /* 0x 170 */ -114, 1,118, 0,208, 0,102, 4, 16, 27,209, 0,211,129,208, 0, /* 0x 180 */ -102, 4, 16, 27,209, 0,100,236, 87,129,101, 10,225,137, 18, 27, /* 0x 190 */ - 70,129,103, 70, 42, 1,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 1a0 */ -208, 0,102, 4, 16, 27,209, 0,215, 67, 74, 67,102, 24, 82, 67, /* 0x 1b0 */ -208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27, /* 0x 1c0 */ -209, 0,100,236, 84, 67, 69,244, 88, 0, 34, 5,146,134,215, 71, /* 0x 1d0 */ - 24,218, 24,218, 81,203,255,252, 96,140, 44, 60,117,112, 52, 49, /* 0x 1e0 */ -117, 51, 32, 78, 34, 68,211,216,211,195,217,145, 22, 24,103, 10, /* 0x 1f0 */ -182, 5,102,244, 67,233, 0,254, 96,242, 78,215, 1,116, 0,152, /* 0x 200 */ - 0, 2 /* 0x 210 */ +unsigned char nrv2b_loader_small[4997] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,136, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 39, 36, 83,128, 83, 64,102, 0, /* 0x 70 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x 80 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126,255,124,152,235, 78, /* 0x 90 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 83,134, 83, 70, /* 0x a0 */ +102, 0, 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, /* 0x b0 */ + 79,239, 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, /* 0x c0 */ + 78, 78, 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, /* 0x d0 */ + 0, 44, 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, /* 0x e0 */ + 33,200, 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, /* 0x f0 */ + 96, 22, 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, /* 0x 100 */ + 78,123, 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, /* 0x 110 */ + 33,223, 0, 16, 78,113, 78,117, 78,117, 79,239, 0, 0, 76,223, /* 0x 120 */ +127,254, 32, 8,103, 2,159,207, 78,249, 85, 80, 88, 33,161,216, /* 0x 130 */ +208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 140 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,102, 4, /* 0x 150 */ + 16, 27,209, 0,101,244,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 160 */ +209, 0,211,129,208, 0,102, 4, 16, 27,209, 0,100,236, 87,129, /* 0x 170 */ +101, 10,225,137, 18, 27, 70,129,103, 70, 42, 1,208, 0,102, 4, /* 0x 180 */ + 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 190 */ + 74, 67,102, 24, 82, 67,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 1a0 */ +208, 0,102, 4, 16, 27,209, 0,100,236, 84, 67, 69,244, 88, 0, /* 0x 1b0 */ + 34, 5,146,134,215, 71, 24,218, 24,218, 81,203,255,252, 96,140, /* 0x 1c0 */ + 44, 60, 0, 0, 0, 0,122, 1, 32, 78, 34, 68,211,216,211,195, /* 0x 1d0 */ +217,145, 22, 24,103, 10,182, 5,102,244, 67,233, 0,254, 96,242, /* 0x 1e0 */ + 78,215, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, /* 0x 1f0 */ + 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101, /* 0x 200 */ +108, 97,116,111,115, 48, 0,115,117, 98,113,108, 95, 49,100, 48, /* 0x 210 */ + 0,115,117, 98,113,119, 95, 49,100, 48, 0, 46,114,101,108, 97, /* 0x 220 */ +115, 95, 98,110,101,108,111,111,112, 48, 0,115,117, 98,113,108, /* 0x 230 */ + 95, 49,100, 54, 0,115,117, 98,113,119, 95, 49,100, 54, 0, 46, /* 0x 240 */ +114,101,108, 97,115, 95, 98,110,101,108,111,111,112, 51, 0, 85, /* 0x 250 */ + 80, 88, 49, 72, 69, 65, 68, 0, 46,114,101,108, 97, 67, 85, 84, /* 0x 260 */ + 80, 79, 73, 78, 84, 0,114,101,108,111, 99, 0,106,109,112, 97, /* 0x 270 */ +115,116, 97, 99,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 280 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 290 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2a0 */ + 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2b0 */ + 0, 0, 0, 52, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2c0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, /* 0x 2d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,112, 0, 0, 0, 60, /* 0x 2e0 */ + 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 2f0 */ + 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 300 */ + 0, 0, 0,122, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 310 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 1, /* 0x 320 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 2, /* 0x 330 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 340 */ + 0, 0, 0, 62, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 350 */ + 0, 0, 0,126, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 360 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 4, /* 0x 370 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,172, 0, 0, 0, 72, /* 0x 380 */ + 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 390 */ + 0, 0, 0, 73, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3a0 */ + 0, 0, 0,172, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3b0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, /* 0x 3c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, 2, /* 0x 3d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 3e0 */ + 0, 0, 0, 98, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3f0 */ + 0, 0, 0,176, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 400 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 4, /* 0x 410 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,244, 0, 0, 0, 24, /* 0x 420 */ + 0, 0, 0, 17, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 430 */ + 0, 0, 0,109, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 440 */ + 0, 0, 1, 58, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 450 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 1, /* 0x 460 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 90, 0, 0, 0,124, /* 0x 470 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 480 */ + 0, 0, 0,118, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 490 */ + 0, 0, 8, 12, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 12, /* 0x 4a0 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,132, 0, 0, 0, 1, /* 0x 4b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,214, 0, 0, 0, 26, /* 0x 4c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4d0 */ + 0, 0, 0,138, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4e0 */ + 0, 0, 1,240, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4f0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, /* 0x 500 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,242, 0, 0, 0,148, /* 0x 510 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 520 */ + 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 530 */ + 0, 0, 5,128, 0, 0, 1,128, 0, 0, 0, 18, 0, 0, 0, 12, /* 0x 540 */ + 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, /* 0x 550 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0,110, /* 0x 560 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 570 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 580 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, /* 0x 590 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 5, /* 0x 5a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 9, /* 0x 5b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, /* 0x 5c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, /* 0x 5d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 7, /* 0x 5e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, /* 0x 5f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, /* 0x 600 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, /* 0x 610 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 14, /* 0x 620 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, /* 0x 630 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 640 */ + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 650 */ + 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 660 */ + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 670 */ + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 680 */ + 0, 0, 0, 26, 0, 0, 0,138, 0, 0, 0, 0, 16, 0, 0, 9, /* 0x 690 */ + 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6a0 */ + 0, 0, 0, 58, 0, 0, 0, 44, 0, 0, 0, 0, 16, 0, 0, 5, /* 0x 6b0 */ + 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6c0 */ + 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6d0 */ + 0, 0, 0, 91, 0, 0, 0, 2, 0, 0, 0, 0, 16, 0, 0, 12, /* 0x 6e0 */ + 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6f0 */ + 0,117,112, 49, 49, 0,117,112, 49, 50, 0,117,112, 49, 51, 0, /* 0x 700 */ +117,112, 50, 49, 0,117,112, 50, 50, 0, 99,108,101, 97,114, 95, /* 0x 710 */ + 98,115,115, 95,101,110,100, 0, 99,111,112,121, 95,116,111, 95, /* 0x 720 */ +115,116, 97, 99,107, 95,108,101,110, 0, 99,108,101, 97,114, 95, /* 0x 730 */ + 98,115,115, 0,117,112, 51, 49, 0, 99,108,101, 97,114, 95, 98, /* 0x 740 */ +115,115, 95,115,105,122,101, 95,112, 52, 0,100,101, 99,111,109, /* 0x 750 */ +112,114, 95,115,116, 97,114,116, 0,117,112, 52, 49, 0, 0, 0, /* 0x 760 */ + 0, 0, 0, 28, 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 38, /* 0x 770 */ + 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 14, 1, /* 0x 780 */ + 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 15, 1, 0, 0, 0, 0, /* 0x 790 */ + 0, 0, 0, 64, 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 7a0 */ + 0, 0, 1, 6, 0, 0, 0, 67, 0, 0, 0, 4, 0, 0, 17, 5, /* 0x 7b0 */ + 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 18, 3, 0, 0, 0, 0, /* 0x 7c0 */ + 0, 0, 0, 20, 0, 0, 3, 5, 0, 0, 0, 96, 0, 0, 0, 23, /* 0x 7d0 */ + 0, 0, 3, 6, 0, 0, 0, 1, 0, 0, 0, 38, 0, 0, 20, 1, /* 0x 7e0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 6, 0, 0, 0, 43, /* 0x 7f0 */ + 0, 0, 0,124, 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0,120, /* 0x 800 */ + 0, 0, 23, 1, 0, 0, 0, 0, 10,116,109,112, 47,109, 54, 56, /* 0x 810 */ +107, 45, 97,116, 97,114,105, 46,116,111,115, 45,110,114,118, 50, /* 0x 820 */ + 98, 46,115,109, 97,108,108, 46, 98,105,110, 58, 32, 32, 32, 32, /* 0x 830 */ + 32,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, /* 0x 840 */ + 51, 50, 45,109, 54, 56,107, 10, 10, 83,101, 99,116,105,111,110, /* 0x 850 */ +115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, /* 0x 860 */ + 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, /* 0x 870 */ + 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, /* 0x 880 */ + 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103, /* 0x 890 */ +110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,116,111,115, /* 0x 8a0 */ + 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x 8b0 */ + 48, 52, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x 8c0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, /* 0x 8d0 */ + 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x 8e0 */ + 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x 8f0 */ + 76, 89, 10, 32, 32, 49, 32,115,117, 98,113,108, 95, 49,100, 48, /* 0x 900 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, /* 0x 910 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 920 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 97, 32, 32, 50, 42, 42, /* 0x 930 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x 940 */ + 68, 79, 78, 76, 89, 10, 32, 32, 50, 32,115,117, 98,113,119, 95, /* 0x 950 */ + 49,100, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, /* 0x 960 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x 970 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, /* 0x 980 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x 990 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,115, 95, 98, /* 0x 9a0 */ +110,101,108,111,111,112, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x 9b0 */ + 48, 50,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x 9c0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, /* 0x 9d0 */ +101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x 9e0 */ + 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x 9f0 */ + 76, 89, 10, 32, 32, 52, 32,115,117, 98,113,108, 95, 49,100, 54, /* 0x a00 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, /* 0x a10 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x a20 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 99, 32, 32, 50, 42, 42, /* 0x a30 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x a40 */ + 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,115,117, 98,113,119, 95, /* 0x a50 */ + 49,100, 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, /* 0x a60 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x a70 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97,101, 32, 32, /* 0x a80 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x a90 */ + 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32,115, 95, 98, /* 0x aa0 */ +110,101,108,111,111,112, 51, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x ab0 */ + 48, 56, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x ac0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, /* 0x ad0 */ + 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x ae0 */ + 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x af0 */ + 76, 89, 10, 32, 32, 55, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, /* 0x b00 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, /* 0x b10 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x b20 */ + 48, 32, 32, 48, 48, 48, 48, 48, 49, 51, 97, 32, 32, 50, 42, 42, /* 0x b30 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x b40 */ + 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 67, 85, 84, 80, 79, 73, /* 0x b50 */ + 78, 84, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, /* 0x b60 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x b70 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 53, 97, 32, 32, /* 0x b80 */ + 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x b90 */ + 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x ba0 */ + 32, 32, 57, 32,114,101,108,111, 99, 32, 32, 32, 32, 32, 32, 32, /* 0x bb0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 49, 97, 32, 32, 48, 48, 48, 48, /* 0x bc0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x bd0 */ + 48, 48, 48, 48, 48, 49,100, 54, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x be0 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x bf0 */ + 76, 89, 10, 32, 49, 48, 32,106,109,112, 97,115,116, 97, 99,107, /* 0x c00 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, /* 0x c10 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x c20 */ + 48, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, 32, 32, 50, 42, 42, /* 0x c30 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x c40 */ + 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, /* 0x c50 */ + 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x c60 */ + 32, 32,100, 32, 32,116,111,115, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x c70 */ + 48, 48, 32,116,111,115, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x c80 */ + 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101,108,111, /* 0x c90 */ +111,112, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98, /* 0x ca0 */ +110,101,108,111,111,112, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x cb0 */ + 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101,108,111, /* 0x cc0 */ +111,112, 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98, /* 0x cd0 */ +110,101,108,111,111,112, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x ce0 */ + 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49, /* 0x cf0 */ +100, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113, /* 0x d00 */ +108, 95, 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x d10 */ + 32, 32, 32, 32,100, 32, 32,115,117, 98,113,119, 95, 49,100, 48, /* 0x d20 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, /* 0x d30 */ + 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x d40 */ + 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49,100, 54, 9, 48, /* 0x d50 */ + 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, 49,100, /* 0x d60 */ + 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x d70 */ +100, 32, 32,115,117, 98,113,119, 95, 49,100, 54, 9, 48, 48, 48, /* 0x d80 */ + 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, 54, 10, /* 0x d90 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x da0 */ + 32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, /* 0x db0 */ + 48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, /* 0x dc0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 85, 84, /* 0x dd0 */ + 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x de0 */ + 85, 84, 80, 79, 73, 78, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x df0 */ + 32,108, 32, 32, 32, 32,100, 32, 32,114,101,108,111, 99, 9, 48, /* 0x e00 */ + 48, 48, 48, 48, 48, 48, 48, 32,114,101,108,111, 99, 10, 48, 48, /* 0x e10 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,106, /* 0x e20 */ +109,112, 97,115,116, 97, 99,107, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x e30 */ + 48, 32,106,109,112, 97,115,116, 97, 99,107, 10, 48, 48, 48, 48, /* 0x e40 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x e50 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 49, /* 0x e60 */ + 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x e70 */ + 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x e80 */ + 32,117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x e90 */ + 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x ea0 */ + 48, 48, 48, 48, 48, 32,117,112, 49, 51, 10, 48, 48, 48, 48, 48, /* 0x eb0 */ + 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x ec0 */ + 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 50, 49, 10, /* 0x ed0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x ee0 */ + 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x ef0 */ +117,112, 50, 50, 10, 48, 48, 48, 48, 48, 48, 56, 97, 32,103, 32, /* 0x f00 */ + 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, /* 0x f10 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, /* 0x f20 */ + 98,115,115, 95,101,110,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x f30 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x f40 */ + 48, 48, 48, 48, 48, 48, 48, 32, 99,111,112,121, 95,116,111, 95, /* 0x f50 */ +115,116, 97, 99,107, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, /* 0x f60 */ + 50, 99, 32,103, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101, /* 0x f70 */ +108,111,111,112, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x f80 */ +108,101, 97,114, 95, 98,115,115, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x f90 */ + 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x fa0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 51, 49, 10, 48, 48, /* 0x fb0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x fc0 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108, /* 0x fd0 */ +101, 97,114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 10, /* 0x fe0 */ + 48, 48, 48, 48, 48, 48, 48, 50, 32,103, 32, 32, 32, 32, 32, 32, /* 0x ff0 */ + 32, 67, 85, 84, 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, /* 0x1000 */ + 48, 48, 32,100,101, 99,111,109,112,114, 95,115,116, 97,114,116, /* 0x1010 */ + 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x1020 */ + 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1030 */ + 32,117,112, 52, 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x1040 */ + 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x1050 */ +116,111,115, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x1060 */ + 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1070 */ + 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x1080 */ + 99, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1090 */ + 32, 32, 32, 32,117,112, 49, 49, 10, 48, 48, 48, 48, 48, 48, 50, /* 0x10a0 */ + 54, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x10b0 */ + 32, 32, 32, 32,117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 51, /* 0x10c0 */ + 50, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x10d0 */ + 32, 32, 32, 32,117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 51, /* 0x10e0 */ + 97, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x10f0 */ + 32, 32, 32, 32,117,112, 50, 49, 10, 48, 48, 48, 48, 48, 48, 52, /* 0x1100 */ + 48, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1110 */ + 32, 32, 32, 32,117,112, 50, 50, 10, 10, 10, 82, 69, 76, 79, 67, /* 0x1120 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x1130 */ + 82, 32, 91,115, 95, 98,110,101,108,111,111,112, 48, 93, 58, 10, /* 0x1140 */ + 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x1150 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x1160 */ + 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, /* 0x1170 */ + 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,111,115, /* 0x1180 */ + 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 52, 51, 10, 48, 48, 48, /* 0x1190 */ + 48, 48, 48, 48, 52, 32, 82, 95, 54, 56, 75, 95, 80, 67, 49, 54, /* 0x11a0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, 98,115, /* 0x11b0 */ +115, 95,101,110,100, 10, 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, /* 0x11c0 */ + 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11d0 */ + 32, 99,111,112,121, 95,116,111, 95,115,116, 97, 99,107, 95,108, /* 0x11e0 */ +101,110, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 54, 56, /* 0x11f0 */ + 75, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, /* 0x1200 */ + 98,110,101,108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, 48, /* 0x1210 */ + 48, 54, 48, 10, 48, 48, 48, 48, 48, 48, 49, 55, 32, 82, 95, 54, /* 0x1220 */ + 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, /* 0x1230 */ + 95, 98,110,101,108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, /* 0x1240 */ + 48, 48, 48, 49, 10, 48, 48, 48, 48, 48, 48, 50, 54, 32, 82, 95, /* 0x1250 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1260 */ +117,112, 51, 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x1270 */ + 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,115, /* 0x1280 */ + 95, 98,110,101,108,111,111,112, 51, 93, 58, 10, 79, 70, 70, 83, /* 0x1290 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x12a0 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x12b0 */ + 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, /* 0x12c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111, /* 0x12d0 */ +111,112, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 50, 98, 10, 48, /* 0x12e0 */ + 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 54, 56, 75, 95, 49, 54, /* 0x12f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, /* 0x1300 */ + 98,115,115, 95,115,105,122,101, 95,112, 52, 10, 10, 10, 82, 69, /* 0x1310 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x1320 */ + 32, 70, 79, 82, 32, 91, 67, 85, 84, 80, 79, 73, 78, 84, 93, 58, /* 0x1330 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x1340 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x1350 */ + 69, 32, 10, 48, 48, 48, 48, 48, 48, 55, 56, 32, 82, 95, 54, 56, /* 0x1360 */ + 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, /* 0x1370 */ + 52, 49, 10, 10, 10 /* 0x1380 */ }; diff --git a/src/stub/m68k-atari.tos-nrv2d.h b/src/stub/m68k-atari.tos-nrv2d.h index 3696a968..9b9489ab 100644 --- a/src/stub/m68k-atari.tos-nrv2d.h +++ b/src/stub/m68k-atari.tos-nrv2d.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2d.h -- created from m68k-atari.tos-nrv2d.bin, 688 (0x2b0) bytes +/* m68k-atari.tos-nrv2d.h -- created from m68k-atari.tos-nrv2d.bin, 5194 (0x144a) bytes This file is part of the UPX executable compressor. @@ -27,52 +27,334 @@ */ -#define NRV2D_LOADER_SIZE 688 -#define NRV2D_LOADER_ADLER32 0x1785f4ed -#define NRV2D_LOADER_CRC32 0xecd288cc +#define NRV2D_LOADER_SIZE 5194 +#define NRV2D_LOADER_ADLER32 0xdb2fe24d +#define NRV2D_LOADER_CRC32 0x562452fc -unsigned char nrv2d_loader[688] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 73,236,255, 96, 76,236, 39,238, 0,120, 72,227, /* 0x 40 */ -119,228, 76,236, 39,238, 0, 80, 72,227,119,228, 76,236, 39,238, /* 0x 50 */ - 0, 40, 72,227,119,228, 76,212, 39,238, 72,227,119,228,117, 49, /* 0x 60 */ -102,210,117, 50, 39, 36, 81,200,255,252, 69,250, 0,188, 47, 4, /* 0x 70 */ -122, 73, 63, 34, 83,133,100,250, 63,124, 78,113, 0,130, 97, 32, /* 0x 80 */ - 40, 68,112,128,126,255,124,176,233, 78, 36, 68,213,252,117,112, /* 0x 90 */ - 51, 49, 78,210, 44,195, 44,195, 44,195, 44,195,117, 52,102,244, /* 0x a0 */ - 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, 79,239, /* 0x b0 */ - 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, 78, 78, /* 0x c0 */ - 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, 0, 44, /* 0x d0 */ - 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, 33,200, /* 0x e0 */ - 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, 96, 22, /* 0x f0 */ - 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, 78,123, /* 0x 100 */ - 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, 33,223, /* 0x 110 */ - 0, 16, 78,113, 78,117, 78,117, 79,239, 0,152, 76,223,127,254, /* 0x 120 */ - 32, 8,103, 2,159,207, 78,249, 10, 0, 36, 73,110,102,111, 58, /* 0x 130 */ - 32, 84,104,105,115, 32,102,105,108,101, 32,105,115, 32,112, 97, /* 0x 140 */ - 99,107,101,100, 32,119,105,116,104, 32,116,104,101, 32, 85, 80, /* 0x 150 */ - 88, 32,101,120,101, 99,117,116, 97, 98,108,101, 32,112, 97, 99, /* 0x 160 */ -107,101,114, 32,104,116,116,112, 58, 47, 47,117,112,120, 46,115, /* 0x 170 */ -102, 46,110,101,116, 32, 36, 10, 0, 36, 73,100, 58, 32, 85, 80, /* 0x 180 */ - 88, 32, 85, 80, 88, 86, 32, 67,111,112,121,114,105,103,104,116, /* 0x 190 */ - 32, 40, 67, 41, 32, 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116, /* 0x 1a0 */ -104,101, 32, 85, 80, 88, 32, 84,101, 97,109, 46, 32, 65,108,108, /* 0x 1b0 */ - 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, /* 0x 1c0 */ - 46, 32, 36, 10, 0, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, /* 0x 1d0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 1e0 */ - 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,100, 8,102,248, /* 0x 1f0 */ - 16, 27,209, 0,101,242,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 200 */ -209, 0,211, 65,208, 0,100, 8,102, 22, 16, 27,209, 0,101, 16, /* 0x 210 */ - 83, 65,208, 0,102, 4, 16, 27,209, 0,211, 65,106,220, 96, 88, /* 0x 220 */ - 87, 65,101, 12,225,137, 18, 27, 70,129,226,129, 42, 1, 96, 8, /* 0x 230 */ -208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27, /* 0x 240 */ -209, 0,215, 67, 74, 67,102, 26, 82, 67,208, 0,102, 4, 16, 27, /* 0x 250 */ -209, 0,215, 67,208, 0,100,242,102, 6, 16, 27,209, 0,100,234, /* 0x 260 */ - 84, 67, 69,244, 88, 0, 34, 5,146,134,215, 71, 24,218, 24,218, /* 0x 270 */ - 81,203,255,252, 96, 0,255,116, 44, 60,117,112, 52, 49,117, 51, /* 0x 280 */ - 32, 78, 34, 68,211,216,211,195,217,145, 22, 24,103, 10,182, 5, /* 0x 290 */ -102,244, 67,233, 0,254, 96,242, 78,215, 1,248, 0,178, 0, 2 /* 0x 2a0 */ +unsigned char nrv2d_loader[5194] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,216, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 73,236,255, 96, 76,236, 39,238, /* 0x 70 */ + 0,120, 72,227,119,228, 76,236, 39,238, 0, 80, 72,227,119,228, /* 0x 80 */ + 76,236, 39,238, 0, 40, 72,227,119,228, 76,212, 39,238, 72,227, /* 0x 90 */ +119,228, 83,128, 83, 64,102, 0,112, 0, 39, 36, 81,200,255,252, /* 0x a0 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x b0 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126,255,124,176,233, 78, /* 0x c0 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 44,195, 44,195, /* 0x d0 */ + 44,195, 83,134, 83, 70,102, 0, 72,120,255,255, 66,167, 47, 60, /* 0x e0 */ + 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, 72,122, /* 0x f0 */ + 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, 78,208, /* 0x 100 */ + 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, 65,250, /* 0x 110 */ +255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, 78,113, /* 0x 120 */ + 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, 0, 2, /* 0x 130 */ + 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, 33,223, /* 0x 140 */ + 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, 78,117, /* 0x 150 */ + 79,239, 0, 0, 76,223,127,254, 32, 8,103, 2,159,207, 78,249, /* 0x 160 */ + 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 170 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, /* 0x 180 */ + 24,219,208, 0,100, 8,102,248, 16, 27,209, 0,101,242,114, 1, /* 0x 190 */ +118, 0,208, 0,102, 4, 16, 27,209, 0,211, 65,208, 0,100, 8, /* 0x 1a0 */ +102, 22, 16, 27,209, 0,101, 16, 83, 65,208, 0,102, 4, 16, 27, /* 0x 1b0 */ +209, 0,211, 65,106,220, 96, 88, 87, 65,101, 12,225,137, 18, 27, /* 0x 1c0 */ + 70,129,226,129, 42, 1, 96, 8,208, 0,102, 4, 16, 27,209, 0, /* 0x 1d0 */ +215, 67,208, 0,102, 4, 16, 27,209, 0,215, 67, 74, 67,102, 26, /* 0x 1e0 */ + 82, 67,208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,100,242, /* 0x 1f0 */ +102, 6, 16, 27,209, 0,100,234, 84, 67, 69,244, 88, 0, 34, 5, /* 0x 200 */ +146,134,215, 71, 24,218, 24,218, 81,203,255,252, 96, 0,255,116, /* 0x 210 */ + 44, 60, 0, 0, 0, 0,122, 1, 32, 78, 34, 68,211,216,211,195, /* 0x 220 */ +217,145, 22, 24,103, 10,182, 5,102,244, 67,233, 0,254, 96,242, /* 0x 230 */ + 78,215, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, /* 0x 240 */ + 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101, /* 0x 250 */ +108, 97,116,111,115, 48, 0,115,117, 98,113,108, 95, 49,100, 48, /* 0x 260 */ + 0,115,117, 98,113,119, 95, 49,100, 48, 0, 46,114,101,108, 97, /* 0x 270 */ +115, 95, 98,110,101,108,111,111,112, 48, 0,115,117, 98,113,108, /* 0x 280 */ + 95, 49,100, 54, 0,115,117, 98,113,119, 95, 49,100, 54, 0, 46, /* 0x 290 */ +114,101,108, 97,115, 95, 98,110,101,108,111,111,112, 51, 0, 85, /* 0x 2a0 */ + 80, 88, 49, 72, 69, 65, 68, 0, 46,114,101,108, 97, 67, 85, 84, /* 0x 2b0 */ + 80, 79, 73, 78, 84, 0,114,101,108,111, 99, 0,106,109,112, 97, /* 0x 2c0 */ +115,116, 97, 99,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2f0 */ + 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 300 */ + 0, 0, 0, 52, 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 310 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, /* 0x 320 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,220, 0, 0, 0, 60, /* 0x 330 */ + 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 340 */ + 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 350 */ + 0, 0, 0,162, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 360 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 1, /* 0x 370 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 0, 0, 0, 2, /* 0x 380 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 390 */ + 0, 0, 0, 62, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3a0 */ + 0, 0, 0,166, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3b0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 4, /* 0x 3c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 24, 0, 0, 0, 84, /* 0x 3d0 */ + 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 3e0 */ + 0, 0, 0, 73, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3f0 */ + 0, 0, 0,226, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 400 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, /* 0x 410 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,228, 0, 0, 0, 2, /* 0x 420 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 430 */ + 0, 0, 0, 98, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 440 */ + 0, 0, 0,230, 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 450 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 4, /* 0x 460 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,108, 0, 0, 0, 24, /* 0x 470 */ + 0, 0, 0, 17, 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 480 */ + 0, 0, 0,109, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 490 */ + 0, 0, 1,112, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4a0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 1, /* 0x 4b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,144, 0, 0, 0,150, /* 0x 4c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4d0 */ + 0, 0, 0,118, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4e0 */ + 0, 0, 8,132, 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 12, /* 0x 4f0 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,132, 0, 0, 0, 1, /* 0x 500 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 38, 0, 0, 0, 26, /* 0x 510 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 520 */ + 0, 0, 0,138, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 530 */ + 0, 0, 2, 64, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 540 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, /* 0x 550 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 66, 0, 0, 0,148, /* 0x 560 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 570 */ + 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 580 */ + 0, 0, 5,208, 0, 0, 1,144, 0, 0, 0, 18, 0, 0, 0, 12, /* 0x 590 */ + 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, /* 0x 5a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 96, 0, 0, 0,122, /* 0x 5b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 5c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, /* 0x 5e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 5, /* 0x 5f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 9, /* 0x 600 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, /* 0x 610 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, /* 0x 620 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 7, /* 0x 630 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, /* 0x 640 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, /* 0x 650 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, /* 0x 660 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 14, /* 0x 670 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, /* 0x 680 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 690 */ + 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6a0 */ + 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6b0 */ + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6c0 */ + 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6d0 */ + 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 6e0 */ + 0, 0, 0, 38, 0, 0, 0,138, 0, 0, 0, 0, 16, 0, 0, 9, /* 0x 6f0 */ + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 700 */ + 0, 0, 0, 70, 0, 0, 0, 52, 0, 0, 0, 0, 16, 0, 0, 5, /* 0x 710 */ + 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 720 */ + 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 730 */ + 0, 0, 0,103, 0, 0, 0, 2, 0, 0, 0, 0, 16, 0, 0, 12, /* 0x 740 */ + 0, 0, 0,117, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, /* 0x 750 */ + 0,117,112, 49, 49, 0,117,112, 49, 50, 0,117,112, 49, 51, 0, /* 0x 760 */ +117,112, 50, 49, 0,117,112, 50, 50, 0, 99,111,112,121, 95,114, /* 0x 770 */ +101,109, 97,105,110, 0, 99,108,101, 97,114, 95, 98,115,115, 95, /* 0x 780 */ +101,110,100, 0, 99,111,112,121, 95,116,111, 95,115,116, 97, 99, /* 0x 790 */ +107, 95,108,101,110, 0, 99,108,101, 97,114, 95, 98,115,115, 0, /* 0x 7a0 */ +117,112, 51, 49, 0, 99,108,101, 97,114, 95, 98,115,115, 95,115, /* 0x 7b0 */ +105,122,101, 95,112, 52, 0,100,101, 99,111,109,112,114, 95,115, /* 0x 7c0 */ +116, 97,114,116, 0,117,112, 52, 49, 0, 0, 0, 0, 0, 0, 28, /* 0x 7d0 */ + 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 13, 1, /* 0x 7e0 */ + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 14, 1, 0, 0, 0, 0, /* 0x 7f0 */ + 0, 0, 0, 58, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 64, /* 0x 800 */ + 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 6, /* 0x 810 */ + 0, 0, 0, 67, 0, 0, 0, 3, 0, 0, 17, 3, 0, 0, 0, 0, /* 0x 820 */ + 0, 0, 0, 12, 0, 0, 18, 5, 0, 0, 0, 0, 0, 0, 0, 17, /* 0x 830 */ + 0, 0, 19, 3, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 3, 5, /* 0x 840 */ + 0, 0, 0, 96, 0, 0, 0, 31, 0, 0, 3, 6, 0, 0, 0, 1, /* 0x 850 */ + 0, 0, 0, 46, 0, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 860 */ + 0, 0, 2, 6, 0, 0, 0, 51, 0, 0, 0,124, 0, 0, 22, 2, /* 0x 870 */ + 0, 0, 0, 0, 0, 0, 0,146, 0, 0, 24, 1, 0, 0, 0, 0, /* 0x 880 */ + 10,116,109,112, 47,109, 54, 56,107, 45, 97,116, 97,114,105, 46, /* 0x 890 */ +116,111,115, 45,110,114,118, 50,100, 46, 98,105,110, 58, 32, 32, /* 0x 8a0 */ + 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97,116, 32,101, /* 0x 8b0 */ +108,102, 51, 50, 45,109, 54, 56,107, 10, 10, 83,101, 99,116,105, /* 0x 8c0 */ +111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, /* 0x 8d0 */ + 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, /* 0x 8e0 */ + 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, /* 0x 8f0 */ + 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65, /* 0x 900 */ +108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32,116, /* 0x 910 */ +111,115, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x 920 */ + 48, 48, 48, 54,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x 930 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x 940 */ + 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x 950 */ + 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x 960 */ + 79, 78, 76, 89, 10, 32, 32, 49, 32,115,117, 98,113,108, 95, 49, /* 0x 970 */ +100, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, /* 0x 980 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x 990 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 50, 32, 32, 50, /* 0x 9a0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x 9b0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32,115,117, 98,113, /* 0x 9c0 */ +119, 95, 49,100, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x 9d0 */ + 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x 9e0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 52, /* 0x 9f0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x a00 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32,115, /* 0x a10 */ + 95, 98,110,101,108,111,111,112, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x a20 */ + 48, 48, 48, 51, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x a30 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x a40 */ + 48, 97, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x a50 */ + 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x a60 */ + 79, 78, 76, 89, 10, 32, 32, 52, 32,115,117, 98,113,108, 95, 49, /* 0x a70 */ +100, 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, /* 0x a80 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x a90 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 50, 32, 32, 50, /* 0x aa0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x ab0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,115,117, 98,113, /* 0x ac0 */ +119, 95, 49,100, 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x ad0 */ + 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x ae0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 52, /* 0x af0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x b00 */ + 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32,115, /* 0x b10 */ + 95, 98,110,101,108,111,111,112, 51, 32, 32, 32, 32, 48, 48, 48, /* 0x b20 */ + 48, 48, 48, 56, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x b30 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x b40 */ + 48,101, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x b50 */ + 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x b60 */ + 79, 78, 76, 89, 10, 32, 32, 55, 32, 85, 80, 88, 49, 72, 69, 65, /* 0x b70 */ + 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, /* 0x b80 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x b90 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 48, 32, 32, 50, /* 0x ba0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x bb0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 67, 85, 84, 80, /* 0x bc0 */ + 79, 73, 78, 84, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x bd0 */ + 57, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x be0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 57, 48, /* 0x bf0 */ + 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x c00 */ + 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x c10 */ + 89, 10, 32, 32, 57, 32,114,101,108,111, 99, 32, 32, 32, 32, 32, /* 0x c20 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 97, 32, 32, 48, 48, /* 0x c30 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x c40 */ + 32, 32, 48, 48, 48, 48, 48, 50, 50, 54, 32, 32, 50, 42, 42, 48, /* 0x c50 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x c60 */ + 79, 78, 76, 89, 10, 32, 49, 48, 32,106,109,112, 97,115,116, 97, /* 0x c70 */ + 99,107, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, /* 0x c80 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x c90 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 52, 48, 32, 32, 50, /* 0x ca0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x cb0 */ + 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, /* 0x cc0 */ + 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x cd0 */ + 32, 32, 32, 32,100, 32, 32,116,111,115, 48, 9, 48, 48, 48, 48, /* 0x ce0 */ + 48, 48, 48, 48, 32,116,111,115, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x cf0 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101, /* 0x d00 */ +108,111,111,112, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, /* 0x d10 */ + 95, 98,110,101,108,111,111,112, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x d20 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98,110,101, /* 0x d30 */ +108,111,111,112, 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115, /* 0x d40 */ + 95, 98,110,101,108,111,111,112, 51, 10, 48, 48, 48, 48, 48, 48, /* 0x d50 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98,113,108, /* 0x d60 */ + 95, 49,100, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, /* 0x d70 */ + 98,113,108, 95, 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x d80 */ + 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98,113,119, 95, 49, /* 0x d90 */ +100, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113, /* 0x da0 */ +119, 95, 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x db0 */ + 32, 32, 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49,100, 54, /* 0x dc0 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, /* 0x dd0 */ + 49,100, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x de0 */ + 32, 32,100, 32, 32,115,117, 98,113,119, 95, 49,100, 54, 9, 48, /* 0x df0 */ + 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, /* 0x e00 */ + 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x e10 */ +100, 32, 32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, /* 0x e20 */ + 48, 48, 48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, /* 0x e30 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, /* 0x e40 */ + 85, 84, 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x e50 */ + 32, 67, 85, 84, 80, 79, 73, 78, 84, 10, 48, 48, 48, 48, 48, 48, /* 0x e60 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,114,101,108,111, 99, /* 0x e70 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,114,101,108,111, 99, 10, /* 0x e80 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x e90 */ + 32,106,109,112, 97,115,116, 97, 99,107, 9, 48, 48, 48, 48, 48, /* 0x ea0 */ + 48, 48, 48, 32,106,109,112, 97,115,116, 97, 99,107, 10, 48, 48, /* 0x eb0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x ec0 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, /* 0x ed0 */ + 49, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x ee0 */ + 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x ef0 */ + 48, 48, 32,117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x f00 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x f10 */ + 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 51, 10, 48, 48, 48, /* 0x f20 */ + 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x f30 */ + 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 50, /* 0x f40 */ + 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x f50 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x f60 */ + 48, 32,117,112, 50, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x f70 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x f80 */ + 48, 48, 48, 48, 48, 48, 32, 99,111,112,121, 95,114,101,109, 97, /* 0x f90 */ +105,110, 10, 48, 48, 48, 48, 48, 48, 56, 97, 32,103, 32, 32, 32, /* 0x fa0 */ + 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 9, 48, /* 0x fb0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115, /* 0x fc0 */ +115, 95,101,110,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x fd0 */ + 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x fe0 */ + 48, 48, 48, 48, 48, 32, 99,111,112,121, 95,116,111, 95,115,116, /* 0x ff0 */ + 97, 99,107, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 51, 52, /* 0x1000 */ + 32,103, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111, /* 0x1010 */ +111,112, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, /* 0x1020 */ + 97,114, 95, 98,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1030 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x1040 */ + 48, 48, 48, 48, 48, 48, 32,117,112, 51, 49, 10, 48, 48, 48, 48, /* 0x1050 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x1060 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97, /* 0x1070 */ +114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 10, 48, 48, /* 0x1080 */ + 48, 48, 48, 48, 48, 50, 32,103, 32, 32, 32, 32, 32, 32, 32, 67, /* 0x1090 */ + 85, 84, 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x10a0 */ + 32,100,101, 99,111,109,112,114, 95,115,116, 97,114,116, 10, 48, /* 0x10b0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x10c0 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117, /* 0x10d0 */ +112, 52, 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x10e0 */ + 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,116,111, /* 0x10f0 */ +115, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x1100 */ + 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1110 */ + 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, /* 0x1120 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1130 */ + 32, 32,117,112, 49, 49, 10, 48, 48, 48, 48, 48, 48, 50, 54, 32, /* 0x1140 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1150 */ + 32, 32,117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 51, 50, 32, /* 0x1160 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1170 */ + 32, 32,117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 51, 97, 32, /* 0x1180 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1190 */ + 32, 32,117,112, 50, 49, 10, 48, 48, 48, 48, 48, 48, 52, 48, 32, /* 0x11a0 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x11b0 */ + 32, 32,117,112, 50, 50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x11c0 */ + 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x11d0 */ + 91,115, 95, 98,110,101,108,111,111,112, 48, 93, 58, 10, 79, 70, /* 0x11e0 */ + 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x11f0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, /* 0x1200 */ + 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, /* 0x1210 */ + 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,116,111,115, 48, 43, /* 0x1220 */ + 48,120, 48, 48, 48, 48, 48, 48, 52, 51, 10, 48, 48, 48, 48, 48, /* 0x1230 */ + 48, 48, 51, 32, 82, 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, /* 0x1240 */ + 32, 32, 32, 32, 32, 32, 99,111,112,121, 95,114,101,109, 97,105, /* 0x1250 */ +110, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 54, 56, 75, /* 0x1260 */ + 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, /* 0x1270 */ + 97,114, 95, 98,115,115, 95,101,110,100, 10, 48, 48, 48, 48, 48, /* 0x1280 */ + 48, 49, 49, 32, 82, 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, /* 0x1290 */ + 32, 32, 32, 32, 32, 32, 99,111,112,121, 95,116,111, 95,115,116, /* 0x12a0 */ + 97, 99,107, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 49, 99, /* 0x12b0 */ + 32, 82, 95, 54, 56, 75, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x12c0 */ + 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 43, 48,120, /* 0x12d0 */ + 48, 48, 48, 48, 48, 48, 54, 48, 10, 48, 48, 48, 48, 48, 48, 49, /* 0x12e0 */ +102, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, /* 0x12f0 */ + 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 43, 48, /* 0x1300 */ +120, 48, 48, 48, 48, 48, 48, 48, 49, 10, 48, 48, 48, 48, 48, 48, /* 0x1310 */ + 50,101, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, /* 0x1320 */ + 32, 32, 32, 32, 32,117,112, 51, 49, 10, 10, 10, 82, 69, 76, 79, /* 0x1330 */ + 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x1340 */ + 79, 82, 32, 91,115, 95, 98,110,101,108,111,111,112, 51, 93, 58, /* 0x1350 */ + 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x1360 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x1370 */ + 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, /* 0x1380 */ + 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, /* 0x1390 */ + 98,110,101,108,111,111,112, 48, 43, 48,120, 48, 48, 48, 48, 48, /* 0x13a0 */ + 48, 51, 51, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 54, /* 0x13b0 */ + 56, 75, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, /* 0x13c0 */ +108,101, 97,114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, /* 0x13d0 */ + 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x13e0 */ + 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 85, 84, 80, 79, /* 0x13f0 */ + 73, 78, 84, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x1400 */ + 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1410 */ + 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 57, 50, /* 0x1420 */ + 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, /* 0x1430 */ + 32, 32, 32,117,112, 52, 49, 10, 10, 10 /* 0x1440 */ }; diff --git a/src/stub/m68k-atari.tos-nrv2d.small.h b/src/stub/m68k-atari.tos-nrv2d.small.h index 81ed2fde..f8026927 100644 --- a/src/stub/m68k-atari.tos-nrv2d.small.h +++ b/src/stub/m68k-atari.tos-nrv2d.small.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2d.small.h -- created from m68k-atari.tos-nrv2d.small.bin, 550 (0x226) bytes +/* m68k-atari.tos-nrv2d.small.h -- created from m68k-atari.tos-nrv2d.small.bin, 5017 (0x1399) bytes This file is part of the UPX executable compressor. @@ -27,44 +27,323 @@ */ -#define NRV2D_LOADER_SMALL_SIZE 550 -#define NRV2D_LOADER_SMALL_ADLER32 0x3655ba56 -#define NRV2D_LOADER_SMALL_CRC32 0x7bba64b7 +#define NRV2D_LOADER_SMALL_SIZE 5017 +#define NRV2D_LOADER_SMALL_ADLER32 0x2841a903 +#define NRV2D_LOADER_SMALL_CRC32 0x5d4db102 -unsigned char nrv2d_loader_small[550] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 39, 36,117, 49,102,250, 69,250, 0,182, 47, 4, /* 0x 40 */ -122, 70, 63, 34, 83,133,100,250, 63,124, 78,113, 0,124, 97, 26, /* 0x 50 */ - 40, 68,112,128,126,255,124,176,233, 78, 36, 68,213,252,117,112, /* 0x 60 */ - 51, 49, 78,210, 44,195,117, 52,102,250, 72,120,255,255, 66,167, /* 0x 70 */ - 47, 60, 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, /* 0x 80 */ - 72,122, 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, /* 0x 90 */ - 78,208, 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, /* 0x a0 */ - 65,250,255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, /* 0x b0 */ - 78,113, 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, /* 0x c0 */ - 0, 2, 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, /* 0x d0 */ - 33,223, 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, /* 0x e0 */ - 78,117, 79,239, 0,146, 76,223,127,254, 32, 8,103, 2,159,207, /* 0x f0 */ - 78,249, 10, 36, 73,100, 58, 32, 85, 80, 88, 32, 40, 67, 41, 32, /* 0x 100 */ - 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116,104,101, 32, 85, 80, /* 0x 110 */ - 88, 32, 84,101, 97,109, 46, 32, 65,108,108, 32, 82,105,103,104, /* 0x 120 */ -116,115, 32, 82,101,115,101,114,118,101,100, 46, 32,104,116,116, /* 0x 130 */ -112, 58, 47, 47,117,112,120, 46,115,102, 46,110,101,116, 32, 36, /* 0x 140 */ - 10, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, /* 0x 150 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 160 */ - 0, 0, 0, 45, 24,219,208, 0,102, 4, 16, 27,209, 0,101,244, /* 0x 170 */ -114, 1,118, 0,208, 0,102, 4, 16, 27,209, 0,211, 65,208, 0, /* 0x 180 */ -102, 4, 16, 27,209, 0,101, 16, 83, 65,208, 0,102, 4, 16, 27, /* 0x 190 */ -209, 0,211, 65,106,222, 96, 86, 87, 65,101, 12,225,137, 18, 27, /* 0x 1a0 */ - 70,129,226,129, 42, 1, 96, 8,208, 0,102, 4, 16, 27,209, 0, /* 0x 1b0 */ -215, 67,208, 0,102, 4, 16, 27,209, 0,215, 67, 74, 67,102, 24, /* 0x 1c0 */ - 82, 67,208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, /* 0x 1d0 */ - 16, 27,209, 0,100,236, 84, 67, 69,244, 88, 0, 34, 5,146,134, /* 0x 1e0 */ -215, 71, 24,218, 24,218, 81,203,255,252, 96, 0,255,122, 44, 60, /* 0x 1f0 */ -117,112, 52, 49,117, 51, 32, 78, 34, 68,211,216,211,195,217,145, /* 0x 200 */ - 22, 24,103, 10,182, 5,102,244, 67,233, 0,254, 96,242, 78,215, /* 0x 210 */ - 1,116, 0,172, 0, 2 /* 0x 220 */ +unsigned char nrv2d_loader_small[5017] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,156, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 39, 36, 83,128, 83, 64,102, 0, /* 0x 70 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x 80 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126,255,124,176,233, 78, /* 0x 90 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 83,134, 83, 70, /* 0x a0 */ +102, 0, 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, /* 0x b0 */ + 79,239, 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, /* 0x c0 */ + 78, 78, 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, /* 0x d0 */ + 0, 44, 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, /* 0x e0 */ + 33,200, 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, /* 0x f0 */ + 96, 22, 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, /* 0x 100 */ + 78,123, 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, /* 0x 110 */ + 33,223, 0, 16, 78,113, 78,117, 78,117, 79,239, 0, 0, 76,223, /* 0x 120 */ +127,254, 32, 8,103, 2,159,207, 78,249, 85, 80, 88, 33,161,216, /* 0x 130 */ +208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 140 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,102, 4, /* 0x 150 */ + 16, 27,209, 0,101,244,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 160 */ +209, 0,211, 65,208, 0,102, 4, 16, 27,209, 0,101, 16, 83, 65, /* 0x 170 */ +208, 0,102, 4, 16, 27,209, 0,211, 65,106,222, 96, 86, 87, 65, /* 0x 180 */ +101, 12,225,137, 18, 27, 70,129,226,129, 42, 1, 96, 8,208, 0, /* 0x 190 */ +102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27,209, 0, /* 0x 1a0 */ +215, 67, 74, 67,102, 24, 82, 67,208, 0,102, 4, 16, 27,209, 0, /* 0x 1b0 */ +215, 67,208, 0,102, 4, 16, 27,209, 0,100,236, 84, 67, 69,244, /* 0x 1c0 */ + 88, 0, 34, 5,146,134,215, 71, 24,218, 24,218, 81,203,255,252, /* 0x 1d0 */ + 96, 0,255,122, 44, 60, 0, 0, 0, 0,122, 1, 32, 78, 34, 68, /* 0x 1e0 */ +211,216,211,195,217,145, 22, 24,103, 10,182, 5,102,244, 67,233, /* 0x 1f0 */ + 0,254, 96,242, 78,215, 0, 46,115,121,109,116, 97, 98, 0, 46, /* 0x 200 */ +115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, /* 0x 210 */ + 0, 46,114,101,108, 97,116,111,115, 48, 0,115,117, 98,113,108, /* 0x 220 */ + 95, 49,100, 48, 0,115,117, 98,113,119, 95, 49,100, 48, 0, 46, /* 0x 230 */ +114,101,108, 97,115, 95, 98,110,101,108,111,111,112, 48, 0,115, /* 0x 240 */ +117, 98,113,108, 95, 49,100, 54, 0,115,117, 98,113,119, 95, 49, /* 0x 250 */ +100, 54, 0, 46,114,101,108, 97,115, 95, 98,110,101,108,111,111, /* 0x 260 */ +112, 51, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, 46,114,101,108, /* 0x 270 */ + 97, 67, 85, 84, 80, 79, 73, 78, 84, 0,114,101,108,111, 99, 0, /* 0x 280 */ +106,109,112, 97,115,116, 97, 99,107, 0, 0, 0, 0, 0, 0, 0, /* 0x 290 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2b0 */ + 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 2c0 */ + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 70, 0, 0, 0, 0, /* 0x 2d0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 27, /* 0x 2e0 */ + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,132, /* 0x 2f0 */ + 0, 0, 0, 60, 0, 0, 0, 17, 0, 0, 0, 1, 0, 0, 0, 4, /* 0x 300 */ + 0, 0, 0, 12, 0, 0, 0, 37, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 310 */ + 0, 0, 0, 0, 0, 0, 0,122, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 320 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 47, /* 0x 330 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, /* 0x 340 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 350 */ + 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 360 */ + 0, 0, 0, 0, 0, 0, 0,126, 0, 0, 0, 46, 0, 0, 0, 0, /* 0x 370 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 57, /* 0x 380 */ + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,192, /* 0x 390 */ + 0, 0, 0, 72, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 4, /* 0x 3a0 */ + 0, 0, 0, 12, 0, 0, 0, 73, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 3b0 */ + 0, 0, 0, 0, 0, 0, 0,172, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 3c0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 83, /* 0x 3d0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,174, /* 0x 3e0 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 3f0 */ + 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 400 */ + 0, 0, 0, 0, 0, 0, 0,176, 0, 0, 0,138, 0, 0, 0, 0, /* 0x 410 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 93, /* 0x 420 */ + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, /* 0x 430 */ + 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 0, 9, 0, 0, 0, 4, /* 0x 440 */ + 0, 0, 0, 12, 0, 0, 0,109, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 450 */ + 0, 0, 0, 0, 0, 0, 1, 58, 0, 0, 0, 32, 0, 0, 0, 0, /* 0x 460 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,123, /* 0x 470 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 90, /* 0x 480 */ + 0, 0, 0,144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 490 */ + 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 4a0 */ + 0, 0, 0, 0, 0, 0, 8, 32, 0, 0, 0, 12, 0, 0, 0, 17, /* 0x 4b0 */ + 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,132, /* 0x 4c0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,234, /* 0x 4d0 */ + 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 4e0 */ + 0, 0, 0, 0, 0, 0, 0,138, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4f0 */ + 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 500 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, /* 0x 510 */ + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, /* 0x 520 */ + 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 530 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 540 */ + 0, 0, 0, 0, 0, 0, 5,148, 0, 0, 1,128, 0, 0, 0, 18, /* 0x 550 */ + 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, /* 0x 560 */ + 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 20, /* 0x 570 */ + 0, 0, 0,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 580 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 590 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5a0 */ + 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5b0 */ + 3, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5c0 */ + 3, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5d0 */ + 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5e0 */ + 3, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5f0 */ + 3, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 600 */ + 3, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 610 */ + 3, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 620 */ + 3, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 630 */ + 3, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 640 */ + 3, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 650 */ + 16, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 660 */ + 16, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 670 */ + 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 680 */ + 16, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 690 */ + 16, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0,138, 0, 0, 0, 0, /* 0x 6a0 */ + 16, 0, 0, 9, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 6b0 */ + 16, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 44, 0, 0, 0, 0, /* 0x 6c0 */ + 16, 0, 0, 5, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 6d0 */ + 16, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 6e0 */ + 16, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 6f0 */ + 16, 0, 0, 12, 0, 0, 0,105, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 700 */ + 16, 0, 0, 0, 0,117,112, 49, 49, 0,117,112, 49, 50, 0,117, /* 0x 710 */ +112, 49, 51, 0,117,112, 50, 49, 0,117,112, 50, 50, 0, 99,108, /* 0x 720 */ +101, 97,114, 95, 98,115,115, 95,101,110,100, 0, 99,111,112,121, /* 0x 730 */ + 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 0, 99,108, /* 0x 740 */ +101, 97,114, 95, 98,115,115, 0,117,112, 51, 49, 0, 99,108,101, /* 0x 750 */ + 97,114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 0,100, /* 0x 760 */ +101, 99,111,109,112,114, 95,115,116, 97,114,116, 0,117,112, 52, /* 0x 770 */ + 49, 0, 0, 0, 0, 0, 0, 28, 0, 0, 12, 1, 0, 0, 0, 0, /* 0x 780 */ + 0, 0, 0, 38, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 50, /* 0x 790 */ + 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 15, 1, /* 0x 7a0 */ + 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 16, 1, 0, 0, 0, 0, /* 0x 7b0 */ + 0, 0, 0, 1, 0, 0, 1, 6, 0, 0, 0, 67, 0, 0, 0, 4, /* 0x 7c0 */ + 0, 0, 17, 5, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 18, 3, /* 0x 7d0 */ + 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 3, 5, 0, 0, 0, 96, /* 0x 7e0 */ + 0, 0, 0, 23, 0, 0, 3, 6, 0, 0, 0, 1, 0, 0, 0, 38, /* 0x 7f0 */ + 0, 0, 20, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 6, /* 0x 800 */ + 0, 0, 0, 43, 0, 0, 0,124, 0, 0, 21, 2, 0, 0, 0, 0, /* 0x 810 */ + 0, 0, 0,140, 0, 0, 23, 1, 0, 0, 0, 0, 10,116,109,112, /* 0x 820 */ + 47,109, 54, 56,107, 45, 97,116, 97,114,105, 46,116,111,115, 45, /* 0x 830 */ +110,114,118, 50,100, 46,115,109, 97,108,108, 46, 98,105,110, 58, /* 0x 840 */ + 32, 32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97,116, /* 0x 850 */ + 32,101,108,102, 51, 50, 45,109, 54, 56,107, 10, 10, 83,101, 99, /* 0x 860 */ +116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, /* 0x 870 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, /* 0x 880 */ + 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, /* 0x 890 */ + 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, /* 0x 8a0 */ + 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, /* 0x 8b0 */ + 32,116,111,115, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, /* 0x 8c0 */ + 48, 48, 48, 48, 48, 52, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 8d0 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x 8e0 */ + 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x 8f0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x 900 */ + 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32,115,117, 98,113,108, /* 0x 910 */ + 95, 49,100, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 920 */ + 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x 930 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 97, 32, /* 0x 940 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x 950 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32,115,117, /* 0x 960 */ + 98,113,119, 95, 49,100, 48, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x 970 */ + 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x 980 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x 990 */ + 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x 9a0 */ + 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, /* 0x 9b0 */ + 32,115, 95, 98,110,101,108,111,111,112, 48, 32, 32, 32, 32, 48, /* 0x 9c0 */ + 48, 48, 48, 48, 48, 50,101, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 9d0 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x 9e0 */ + 48, 48, 48, 55,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x 9f0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x a00 */ + 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32,115,117, 98,113,108, /* 0x a10 */ + 95, 49,100, 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x a20 */ + 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x a30 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 99, 32, /* 0x a40 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x a50 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32,115,117, /* 0x a60 */ + 98,113,119, 95, 49,100, 54, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x a70 */ + 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x a80 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x a90 */ + 97,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x aa0 */ + 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, /* 0x ab0 */ + 32,115, 95, 98,110,101,108,111,111,112, 51, 32, 32, 32, 32, 48, /* 0x ac0 */ + 48, 48, 48, 48, 48, 56, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x ad0 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x ae0 */ + 48, 48, 48, 98, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x af0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x b00 */ + 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 85, 80, 88, 49, 72, /* 0x b10 */ + 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, /* 0x b20 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x b30 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 51, 97, 32, /* 0x b40 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x b50 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 67, 85, /* 0x b60 */ + 84, 80, 79, 73, 78, 84, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x b70 */ + 48, 48, 57, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x b80 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x b90 */ + 53, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x ba0 */ + 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x bb0 */ + 78, 76, 89, 10, 32, 32, 57, 32,114,101,108,111, 99, 32, 32, 32, /* 0x bc0 */ + 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 97, 32, 32, /* 0x bd0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x be0 */ + 48, 48, 32, 32, 48, 48, 48, 48, 48, 49,101, 97, 32, 32, 50, 42, /* 0x bf0 */ + 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x c00 */ + 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32,106,109,112, 97,115, /* 0x c10 */ +116, 97, 99,107, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x c20 */ + 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x c30 */ + 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 48, 52, 32, /* 0x c40 */ + 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x c50 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, /* 0x c60 */ + 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x c70 */ + 32,108, 32, 32, 32, 32,100, 32, 32,116,111,115, 48, 9, 48, 48, /* 0x c80 */ + 48, 48, 48, 48, 48, 48, 32,116,111,115, 48, 10, 48, 48, 48, 48, /* 0x c90 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98, /* 0x ca0 */ +110,101,108,111,111,112, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x cb0 */ + 32,115, 95, 98,110,101,108,111,111,112, 48, 10, 48, 48, 48, 48, /* 0x cc0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, 95, 98, /* 0x cd0 */ +110,101,108,111,111,112, 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x ce0 */ + 32,115, 95, 98,110,101,108,111,111,112, 51, 10, 48, 48, 48, 48, /* 0x cf0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98, /* 0x d00 */ +113,108, 95, 49,100, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x d10 */ +115,117, 98,113,108, 95, 49,100, 48, 10, 48, 48, 48, 48, 48, 48, /* 0x d20 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98,113,119, /* 0x d30 */ + 95, 49,100, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, /* 0x d40 */ + 98,113,119, 95, 49,100, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x d50 */ + 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49, /* 0x d60 */ +100, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113, /* 0x d70 */ +108, 95, 49,100, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x d80 */ + 32, 32, 32, 32,100, 32, 32,115,117, 98,113,119, 95, 49,100, 54, /* 0x d90 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, /* 0x da0 */ + 49,100, 54, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x db0 */ + 32, 32,100, 32, 32, 85, 80, 88, 49, 72, 69, 65, 68, 9, 48, 48, /* 0x dc0 */ + 48, 48, 48, 48, 48, 48, 32, 85, 80, 88, 49, 72, 69, 65, 68, 10, /* 0x dd0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x de0 */ + 32, 67, 85, 84, 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, /* 0x df0 */ + 48, 48, 32, 67, 85, 84, 80, 79, 73, 78, 84, 10, 48, 48, 48, 48, /* 0x e00 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,114,101,108, /* 0x e10 */ +111, 99, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,114,101,108,111, /* 0x e20 */ + 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x e30 */ +100, 32, 32,106,109,112, 97,115,116, 97, 99,107, 9, 48, 48, 48, /* 0x e40 */ + 48, 48, 48, 48, 48, 32,106,109,112, 97,115,116, 97, 99,107, 10, /* 0x e50 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x e60 */ + 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x e70 */ +117,112, 49, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x e80 */ + 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x e90 */ + 48, 48, 48, 48, 32,117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, /* 0x ea0 */ + 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x eb0 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 51, 10, 48, /* 0x ec0 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x ed0 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117, /* 0x ee0 */ +112, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x ef0 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x f00 */ + 48, 48, 48, 32,117,112, 50, 50, 10, 48, 48, 48, 48, 48, 48, 56, /* 0x f10 */ + 97, 32,103, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108, /* 0x f20 */ +111,111,112, 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108, /* 0x f30 */ +101, 97,114, 95, 98,115,115, 95,101,110,100, 10, 48, 48, 48, 48, /* 0x f40 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x f50 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,111,112,121, /* 0x f60 */ + 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 10, 48, 48, /* 0x f70 */ + 48, 48, 48, 48, 50, 99, 32,103, 32, 32, 32, 32, 32, 32, 32,115, /* 0x f80 */ + 95, 98,110,101,108,111,111,112, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x f90 */ + 48, 48, 32, 99,108,101, 97,114, 95, 98,115,115, 10, 48, 48, 48, /* 0x fa0 */ + 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x fb0 */ + 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 51, /* 0x fc0 */ + 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x fd0 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x fe0 */ + 48, 32, 99,108,101, 97,114, 95, 98,115,115, 95,115,105,122,101, /* 0x ff0 */ + 95,112, 52, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32,103, 32, 32, /* 0x1000 */ + 32, 32, 32, 32, 32, 67, 85, 84, 80, 79, 73, 78, 84, 9, 48, 48, /* 0x1010 */ + 48, 48, 48, 48, 48, 48, 32,100,101, 99,111,109,112,114, 95,115, /* 0x1020 */ +116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x1030 */ + 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x1040 */ + 48, 48, 48, 48, 32,117,112, 52, 49, 10, 10, 10, 82, 69, 76, 79, /* 0x1050 */ + 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x1060 */ + 79, 82, 32, 91,116,111,115, 48, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x1070 */ + 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1080 */ + 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, /* 0x1090 */ + 48, 48, 48, 49, 99, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, /* 0x10a0 */ + 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 49, 10, 48, 48, 48, /* 0x10b0 */ + 48, 48, 48, 50, 54, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, /* 0x10c0 */ + 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 50, 10, 48, 48, 48, /* 0x10d0 */ + 48, 48, 48, 51, 50, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, /* 0x10e0 */ + 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 51, 10, 48, 48, 48, /* 0x10f0 */ + 48, 48, 48, 51, 97, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, /* 0x1100 */ + 32, 32, 32, 32, 32, 32, 32, 32,117,112, 50, 49, 10, 48, 48, 48, /* 0x1110 */ + 48, 48, 48, 52, 48, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, /* 0x1120 */ + 32, 32, 32, 32, 32, 32, 32, 32,117,112, 50, 50, 10, 10, 10, 82, /* 0x1130 */ + 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x1140 */ + 83, 32, 70, 79, 82, 32, 91,115, 95, 98,110,101,108,111,111,112, /* 0x1150 */ + 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x1160 */ + 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x1170 */ + 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, /* 0x1180 */ + 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1190 */ + 32,116,111,115, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 52, 51, /* 0x11a0 */ + 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 54, 56, 75, 95, /* 0x11b0 */ + 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97, /* 0x11c0 */ +114, 95, 98,115,115, 95,101,110,100, 10, 48, 48, 48, 48, 48, 48, /* 0x11d0 */ + 48, 57, 32, 82, 95, 54, 56, 75, 95, 56, 32, 32, 32, 32, 32, 32, /* 0x11e0 */ + 32, 32, 32, 32, 32, 99,111,112,121, 95,116,111, 95,115,116, 97, /* 0x11f0 */ + 99,107, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, /* 0x1200 */ + 82, 95, 54, 56, 75, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x1210 */ + 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 43, 48,120, 48, /* 0x1220 */ + 48, 48, 48, 48, 48, 54, 48, 10, 48, 48, 48, 48, 48, 48, 49, 55, /* 0x1230 */ + 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, /* 0x1240 */ + 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 43, 48,120, /* 0x1250 */ + 48, 48, 48, 48, 48, 48, 48, 49, 10, 48, 48, 48, 48, 48, 48, 50, /* 0x1260 */ + 54, 32, 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, /* 0x1270 */ + 32, 32, 32, 32,117,112, 51, 49, 10, 10, 10, 82, 69, 76, 79, 67, /* 0x1280 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x1290 */ + 82, 32, 91,115, 95, 98,110,101,108,111,111,112, 51, 93, 58, 10, /* 0x12a0 */ + 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x12b0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x12c0 */ + 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, /* 0x12d0 */ + 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98, /* 0x12e0 */ +110,101,108,111,111,112, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, /* 0x12f0 */ + 50, 98, 10, 48, 48, 48, 48, 48, 48, 55, 99, 32, 82, 95, 54, 56, /* 0x1300 */ + 75, 95, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,108, /* 0x1310 */ +101, 97,114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 10, /* 0x1320 */ + 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x1330 */ + 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 67, 85, 84, 80, 79, 73, /* 0x1340 */ + 78, 84, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x1350 */ + 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1360 */ + 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 56, 99, 32, /* 0x1370 */ + 82, 95, 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1380 */ + 32, 32,117,112, 52, 49, 10, 10, 10 /* 0x1390 */ }; diff --git a/src/stub/m68k-atari.tos-nrv2e.h b/src/stub/m68k-atari.tos-nrv2e.h index af2fd8a9..fcb5d401 100644 --- a/src/stub/m68k-atari.tos-nrv2e.h +++ b/src/stub/m68k-atari.tos-nrv2e.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2e.h -- created from m68k-atari.tos-nrv2e.bin, 696 (0x2b8) bytes +/* m68k-atari.tos-nrv2e.h -- created from m68k-atari.tos-nrv2e.bin, 5202 (0x1452) bytes This file is part of the UPX executable compressor. @@ -27,53 +27,335 @@ */ -#define NRV2E_LOADER_SIZE 696 -#define NRV2E_LOADER_ADLER32 0xa0e6f701 -#define NRV2E_LOADER_CRC32 0x1d26a023 +#define NRV2E_LOADER_SIZE 5202 +#define NRV2E_LOADER_ADLER32 0x39c1e54f +#define NRV2E_LOADER_CRC32 0xb4a7e04a -unsigned char nrv2e_loader[696] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 73,236,255, 96, 76,236, 39,238, 0,120, 72,227, /* 0x 40 */ -119,228, 76,236, 39,238, 0, 80, 72,227,119,228, 76,236, 39,238, /* 0x 50 */ - 0, 40, 72,227,119,228, 76,212, 39,238, 72,227,119,228,117, 49, /* 0x 60 */ -102,210,117, 50, 39, 36, 81,200,255,252, 69,250, 0,188, 47, 4, /* 0x 70 */ -122, 73, 63, 34, 83,133,100,250, 63,124, 78,113, 0,130, 97, 32, /* 0x 80 */ - 40, 68,112,128,126, 0,124,176,233, 78, 36, 68,213,252,117,112, /* 0x 90 */ - 51, 49, 78,210, 44,195, 44,195, 44,195, 44,195,117, 52,102,244, /* 0x a0 */ - 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, 79,239, /* 0x b0 */ - 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, 78, 78, /* 0x c0 */ - 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, 0, 44, /* 0x d0 */ - 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, 33,200, /* 0x e0 */ - 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, 96, 22, /* 0x f0 */ - 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, 78,123, /* 0x 100 */ - 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, 33,223, /* 0x 110 */ - 0, 16, 78,113, 78,117, 78,117, 79,239, 0,152, 76,223,127,254, /* 0x 120 */ - 32, 8,103, 2,159,207, 78,249, 10, 0, 36, 73,110,102,111, 58, /* 0x 130 */ - 32, 84,104,105,115, 32,102,105,108,101, 32,105,115, 32,112, 97, /* 0x 140 */ - 99,107,101,100, 32,119,105,116,104, 32,116,104,101, 32, 85, 80, /* 0x 150 */ - 88, 32,101,120,101, 99,117,116, 97, 98,108,101, 32,112, 97, 99, /* 0x 160 */ -107,101,114, 32,104,116,116,112, 58, 47, 47,117,112,120, 46,115, /* 0x 170 */ -102, 46,110,101,116, 32, 36, 10, 0, 36, 73,100, 58, 32, 85, 80, /* 0x 180 */ - 88, 32, 85, 80, 88, 86, 32, 67,111,112,121,114,105,103,104,116, /* 0x 190 */ - 32, 40, 67, 41, 32, 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116, /* 0x 1a0 */ -104,101, 32, 85, 80, 88, 32, 84,101, 97,109, 46, 32, 65,108,108, /* 0x 1b0 */ - 32, 82,105,103,104,116,115, 32, 82,101,115,101,114,118,101,100, /* 0x 1c0 */ - 46, 32, 36, 10, 0, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, /* 0x 1d0 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 1e0 */ - 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,100, 8,102,248, /* 0x 1f0 */ - 16, 27,209, 0,101,242,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 200 */ -209, 0,211, 65,208, 0,100, 8,102, 22, 16, 27,209, 0,101, 16, /* 0x 210 */ - 83, 65,208, 0,102, 4, 16, 27,209, 0,211, 65,106,220, 96, 96, /* 0x 220 */ - 87, 65,101, 22,225,137, 18, 27, 70,129,226,129,100, 24,208, 0, /* 0x 230 */ -102, 4, 16, 27,209, 0,215, 67, 96, 48, 34, 5,208, 0,102, 4, /* 0x 240 */ - 16, 27,209, 0,101,232, 82, 67,208, 0,102, 4, 16, 27,209, 0, /* 0x 250 */ -101,220,208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,100,242, /* 0x 260 */ -102, 6, 16, 27,209, 0,100,234, 84, 67, 42, 1, 69,244, 24, 0, /* 0x 270 */ -146,134,215, 71, 24,218, 24,218, 81,203,255,252, 96, 0,255,108, /* 0x 280 */ - 44, 60,117,112, 52, 49,117, 51, 32, 78, 34, 68,211,216,211,195, /* 0x 290 */ -217,145, 22, 24,103, 10,182, 5,102,244, 67,233, 0,254, 96,242, /* 0x 2a0 */ - 78,215, 1,248, 0,186, 0, 2 /* 0x 2b0 */ +unsigned char nrv2e_loader[5202] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,224, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 73,236,255, 96, 76,236, 39,238, /* 0x 70 */ + 0,120, 72,227,119,228, 76,236, 39,238, 0, 80, 72,227,119,228, /* 0x 80 */ + 76,236, 39,238, 0, 40, 72,227,119,228, 76,212, 39,238, 72,227, /* 0x 90 */ +119,228, 83,128, 83, 64,102, 0,112, 0, 39, 36, 81,200,255,252, /* 0x a0 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x b0 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126, 0,124,176,233, 78, /* 0x c0 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 44,195, 44,195, /* 0x d0 */ + 44,195, 83,134, 83, 70,102, 0, 72,120,255,255, 66,167, 47, 60, /* 0x e0 */ + 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, 72,122, /* 0x f0 */ + 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, 78,208, /* 0x 100 */ + 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, 65,250, /* 0x 110 */ +255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, 78,113, /* 0x 120 */ + 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, 0, 2, /* 0x 130 */ + 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, 33,223, /* 0x 140 */ + 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, 78,117, /* 0x 150 */ + 79,239, 0, 0, 76,223,127,254, 32, 8,103, 2,159,207, 78,249, /* 0x 160 */ + 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 170 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, /* 0x 180 */ + 24,219,208, 0,100, 8,102,248, 16, 27,209, 0,101,242,114, 1, /* 0x 190 */ +118, 0,208, 0,102, 4, 16, 27,209, 0,211, 65,208, 0,100, 8, /* 0x 1a0 */ +102, 22, 16, 27,209, 0,101, 16, 83, 65,208, 0,102, 4, 16, 27, /* 0x 1b0 */ +209, 0,211, 65,106,220, 96, 96, 87, 65,101, 22,225,137, 18, 27, /* 0x 1c0 */ + 70,129,226,129,100, 24,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 1d0 */ + 96, 48, 34, 5,208, 0,102, 4, 16, 27,209, 0,101,232, 82, 67, /* 0x 1e0 */ +208, 0,102, 4, 16, 27,209, 0,101,220,208, 0,102, 4, 16, 27, /* 0x 1f0 */ +209, 0,215, 67,208, 0,100,242,102, 6, 16, 27,209, 0,100,234, /* 0x 200 */ + 84, 67, 42, 1, 69,244, 24, 0,146,134,215, 71, 24,218, 24,218, /* 0x 210 */ + 81,203,255,252, 96, 0,255,108, 44, 60, 0, 0, 0, 0,122, 1, /* 0x 220 */ + 32, 78, 34, 68,211,216,211,195,217,145, 22, 24,103, 10,182, 5, /* 0x 230 */ +102,244, 67,233, 0,254, 96,242, 78,215, 0, 46,115,121,109,116, /* 0x 240 */ + 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116, /* 0x 250 */ +114,116, 97, 98, 0, 46,114,101,108, 97,116,111,115, 48, 0,115, /* 0x 260 */ +117, 98,113,108, 95, 49,100, 48, 0,115,117, 98,113,119, 95, 49, /* 0x 270 */ +100, 48, 0, 46,114,101,108, 97,115, 95, 98,110,101,108,111,111, /* 0x 280 */ +112, 48, 0,115,117, 98,113,108, 95, 49,100, 54, 0,115,117, 98, /* 0x 290 */ +113,119, 95, 49,100, 54, 0, 46,114,101,108, 97,115, 95, 98,110, /* 0x 2a0 */ +101,108,111,111,112, 51, 0, 85, 80, 88, 49, 72, 69, 65, 68, 0, /* 0x 2b0 */ + 46,114,101,108, 97, 67, 85, 84, 80, 79, 73, 78, 84, 0,114,101, /* 0x 2c0 */ +108,111, 99, 0,106,109,112, 97,115,116, 97, 99,107, 0, 0, 0, /* 0x 2d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 1, /* 0x 300 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,110, /* 0x 310 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 320 */ + 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 330 */ + 0, 0, 7,228, 0, 0, 0, 60, 0, 0, 0, 17, 0, 0, 0, 1, /* 0x 340 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 37, 0, 0, 0, 1, /* 0x 350 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 2, /* 0x 360 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 370 */ + 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 380 */ + 0, 0, 0,164, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 390 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 1, /* 0x 3a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 0, 0, 0, 60, /* 0x 3b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 3c0 */ + 0, 0, 0, 57, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 3d0 */ + 0, 0, 8, 32, 0, 0, 0, 84, 0, 0, 0, 17, 0, 0, 0, 5, /* 0x 3e0 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 73, 0, 0, 0, 1, /* 0x 3f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, 0, 0, 0, 2, /* 0x 400 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 410 */ + 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 420 */ + 0, 0, 0,228, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 430 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 1, /* 0x 440 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,230, 0, 0, 0,138, /* 0x 450 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 460 */ + 0, 0, 0, 93, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 470 */ + 0, 0, 8,116, 0, 0, 0, 24, 0, 0, 0, 17, 0, 0, 0, 9, /* 0x 480 */ + 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,109, 0, 0, 0, 1, /* 0x 490 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,112, 0, 0, 0, 32, /* 0x 4a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4b0 */ + 0, 0, 0,123, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4c0 */ + 0, 0, 1,144, 0, 0, 0,158, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 4d0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,118, 0, 0, 0, 4, /* 0x 4e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,140, 0, 0, 0, 12, /* 0x 4f0 */ + 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 12, /* 0x 500 */ + 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 510 */ + 0, 0, 2, 46, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 520 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,138, 0, 0, 0, 1, /* 0x 530 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 72, 0, 0, 0, 2, /* 0x 540 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 550 */ + 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 560 */ + 0, 0, 2, 74, 0, 0, 0,148, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 570 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, /* 0x 580 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,216, 0, 0, 1,144, /* 0x 590 */ + 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 4, 0, 0, 0, 16, /* 0x 5a0 */ + 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5b0 */ + 0, 0, 7,104, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5c0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5e0 */ + 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5f0 */ + 0, 0, 0, 0, 3, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 600 */ + 0, 0, 0, 0, 3, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 610 */ + 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 620 */ + 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 630 */ + 0, 0, 0, 0, 3, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 640 */ + 0, 0, 0, 0, 3, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 650 */ + 0, 0, 0, 0, 3, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 660 */ + 0, 0, 0, 0, 3, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 670 */ + 0, 0, 0, 0, 3, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 680 */ + 0, 0, 0, 0, 3, 0, 0, 15, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 690 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, /* 0x 6a0 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, /* 0x 6b0 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, /* 0x 6c0 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, /* 0x 6d0 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, /* 0x 6e0 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,138, /* 0x 6f0 */ + 0, 0, 0, 0, 16, 0, 0, 9, 0, 0, 0, 52, 0, 0, 0, 0, /* 0x 700 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 52, /* 0x 710 */ + 0, 0, 0, 0, 16, 0, 0, 5, 0, 0, 0, 80, 0, 0, 0, 0, /* 0x 720 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, /* 0x 730 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,103, 0, 0, 0, 2, /* 0x 740 */ + 0, 0, 0, 0, 16, 0, 0, 12, 0, 0, 0,117, 0, 0, 0, 0, /* 0x 750 */ + 0, 0, 0, 0, 16, 0, 0, 0, 0,117,112, 49, 49, 0,117,112, /* 0x 760 */ + 49, 50, 0,117,112, 49, 51, 0,117,112, 50, 49, 0,117,112, 50, /* 0x 770 */ + 50, 0, 99,111,112,121, 95,114,101,109, 97,105,110, 0, 99,108, /* 0x 780 */ +101, 97,114, 95, 98,115,115, 95,101,110,100, 0, 99,111,112,121, /* 0x 790 */ + 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 0, 99,108, /* 0x 7a0 */ +101, 97,114, 95, 98,115,115, 0,117,112, 51, 49, 0, 99,108,101, /* 0x 7b0 */ + 97,114, 95, 98,115,115, 95,115,105,122,101, 95,112, 52, 0,100, /* 0x 7c0 */ +101, 99,111,109,112,114, 95,115,116, 97,114,116, 0,117,112, 52, /* 0x 7d0 */ + 49, 0, 0, 0, 0, 0, 0, 28, 0, 0, 12, 1, 0, 0, 0, 0, /* 0x 7e0 */ + 0, 0, 0, 38, 0, 0, 13, 1, 0, 0, 0, 0, 0, 0, 0, 50, /* 0x 7f0 */ + 0, 0, 14, 1, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 15, 1, /* 0x 800 */ + 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 16, 1, 0, 0, 0, 0, /* 0x 810 */ + 0, 0, 0, 1, 0, 0, 1, 6, 0, 0, 0, 67, 0, 0, 0, 3, /* 0x 820 */ + 0, 0, 17, 3, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 18, 5, /* 0x 830 */ + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 19, 3, 0, 0, 0, 0, /* 0x 840 */ + 0, 0, 0, 28, 0, 0, 3, 5, 0, 0, 0, 96, 0, 0, 0, 31, /* 0x 850 */ + 0, 0, 3, 6, 0, 0, 0, 1, 0, 0, 0, 46, 0, 0, 21, 1, /* 0x 860 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 2, 6, 0, 0, 0, 51, /* 0x 870 */ + 0, 0, 0,124, 0, 0, 22, 2, 0, 0, 0, 0, 0, 0, 0,154, /* 0x 880 */ + 0, 0, 24, 1, 0, 0, 0, 0, 10,116,109,112, 47,109, 54, 56, /* 0x 890 */ +107, 45, 97,116, 97,114,105, 46,116,111,115, 45,110,114,118, 50, /* 0x 8a0 */ +101, 46, 98,105,110, 58, 32, 32, 32, 32, 32,102,105,108,101, 32, /* 0x 8b0 */ +102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,109, 54, 56, /* 0x 8c0 */ +107, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, /* 0x 8d0 */ + 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83, /* 0x 8e0 */ +105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, /* 0x 8f0 */ + 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108, /* 0x 900 */ +101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97, /* 0x 910 */ +103,115, 10, 32, 32, 48, 32,116,111,115, 48, 32, 32, 32, 32, 32, /* 0x 920 */ + 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54,101, 32, 32, 48, /* 0x 930 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 940 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, /* 0x 950 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x 960 */ + 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, /* 0x 970 */ + 32,115,117, 98,113,108, 95, 49,100, 48, 32, 32, 32, 32, 32, 48, /* 0x 980 */ + 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x 990 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x 9a0 */ + 48, 48, 48, 97, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x 9b0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x 9c0 */ + 32, 32, 50, 32,115,117, 98,113,119, 95, 49,100, 48, 32, 32, 32, /* 0x 9d0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, /* 0x 9e0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x 9f0 */ + 48, 48, 48, 48, 48, 48, 97, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x a00 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x a10 */ + 76, 89, 10, 32, 32, 51, 32,115, 95, 98,110,101,108,111,111,112, /* 0x a20 */ + 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 99, 32, 32, 48, /* 0x a30 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x a40 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 97, 54, 32, 32, 50, 42, 42, /* 0x a50 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x a60 */ + 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, /* 0x a70 */ + 32,115,117, 98,113,108, 95, 49,100, 54, 32, 32, 32, 32, 32, 48, /* 0x a80 */ + 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x a90 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x aa0 */ + 48, 48, 48,101, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x ab0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x ac0 */ + 32, 32, 53, 32,115,117, 98,113,119, 95, 49,100, 54, 32, 32, 32, /* 0x ad0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, /* 0x ae0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x af0 */ + 48, 48, 48, 48, 48, 48,101, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x b00 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x b10 */ + 76, 89, 10, 32, 32, 54, 32,115, 95, 98,110,101,108,111,111,112, /* 0x b20 */ + 51, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 97, 32, 32, 48, /* 0x b30 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x b40 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48,101, 54, 32, 32, 50, 42, 42, /* 0x b50 */ + 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x b60 */ + 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, /* 0x b70 */ + 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, /* 0x b80 */ + 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x b90 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x ba0 */ + 48, 48, 49, 55, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x bb0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x bc0 */ + 32, 32, 56, 32, 67, 85, 84, 80, 79, 73, 78, 84, 32, 32, 32, 32, /* 0x bd0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 57,101, 32, 32, 48, 48, 48, 48, /* 0x be0 */ + 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x bf0 */ + 48, 48, 48, 48, 48, 49, 57, 48, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x c00 */ + 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x c10 */ + 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32,114,101, /* 0x c20 */ +108,111, 99, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x c30 */ + 48, 48, 49, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x c40 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, /* 0x c50 */ + 50,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x c60 */ + 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, /* 0x c70 */ + 32,106,109,112, 97,115,116, 97, 99,107, 32, 32, 32, 32, 32, 48, /* 0x c80 */ + 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x c90 */ + 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x ca0 */ + 48, 48, 50, 52, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x cb0 */ + 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x cc0 */ + 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, /* 0x cd0 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,116, /* 0x ce0 */ +111,115, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,116,111,115, /* 0x cf0 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x d00 */ +100, 32, 32,115, 95, 98,110,101,108,111,111,112, 48, 9, 48, 48, /* 0x d10 */ + 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101,108,111,111,112, /* 0x d20 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x d30 */ +100, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 9, 48, 48, /* 0x d40 */ + 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101,108,111,111,112, /* 0x d50 */ + 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x d60 */ +100, 32, 32,115,117, 98,113,108, 95, 49,100, 48, 9, 48, 48, 48, /* 0x d70 */ + 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, 49,100, 48, 10, /* 0x d80 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x d90 */ + 32,115,117, 98,113,119, 95, 49,100, 48, 9, 48, 48, 48, 48, 48, /* 0x da0 */ + 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, 48, 10, 48, 48, /* 0x db0 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, /* 0x dc0 */ +117, 98,113,108, 95, 49,100, 54, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x dd0 */ + 48, 32,115,117, 98,113,108, 95, 49,100, 54, 10, 48, 48, 48, 48, /* 0x de0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115,117, 98, /* 0x df0 */ +113,119, 95, 49,100, 54, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x e00 */ +115,117, 98,113,119, 95, 49,100, 54, 10, 48, 48, 48, 48, 48, 48, /* 0x e10 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, 49, 72, /* 0x e20 */ + 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 85, 80, 88, /* 0x e30 */ + 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x e40 */ + 32, 32, 32, 32,100, 32, 32, 67, 85, 84, 80, 79, 73, 78, 84, 9, /* 0x e50 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 85, 84, 80, 79, 73, 78, /* 0x e60 */ + 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x e70 */ +100, 32, 32,114,101,108,111, 99, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x e80 */ + 48, 32,114,101,108,111, 99, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x e90 */ + 32,108, 32, 32, 32, 32,100, 32, 32,106,109,112, 97,115,116, 97, /* 0x ea0 */ + 99,107, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,106,109,112, 97, /* 0x eb0 */ +115,116, 97, 99,107, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x ec0 */ + 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x ed0 */ + 48, 48, 48, 48, 48, 32,117,112, 49, 49, 10, 48, 48, 48, 48, 48, /* 0x ee0 */ + 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x ef0 */ + 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 50, 10, /* 0x f00 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x f10 */ + 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x f20 */ +117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x f30 */ + 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x f40 */ + 48, 48, 48, 48, 32,117,112, 50, 49, 10, 48, 48, 48, 48, 48, 48, /* 0x f50 */ + 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x f60 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 50, 50, 10, 48, /* 0x f70 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x f80 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99, /* 0x f90 */ +111,112,121, 95,114,101,109, 97,105,110, 10, 48, 48, 48, 48, 48, /* 0x fa0 */ + 48, 56, 97, 32,103, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110, /* 0x fb0 */ +101,108,111,111,112, 51, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x fc0 */ + 99,108,101, 97,114, 95, 98,115,115, 95,101,110,100, 10, 48, 48, /* 0x fd0 */ + 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x fe0 */ + 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,111, /* 0x ff0 */ +112,121, 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 10, /* 0x1000 */ + 48, 48, 48, 48, 48, 48, 51, 52, 32,103, 32, 32, 32, 32, 32, 32, /* 0x1010 */ + 32,115, 95, 98,110,101,108,111,111,112, 48, 9, 48, 48, 48, 48, /* 0x1020 */ + 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115,115, 10, 48, /* 0x1030 */ + 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1040 */ + 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117, /* 0x1050 */ +112, 51, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x1060 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x1070 */ + 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115,115, 95,115,105, /* 0x1080 */ +122,101, 95,112, 52, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32,103, /* 0x1090 */ + 32, 32, 32, 32, 32, 32, 32, 67, 85, 84, 80, 79, 73, 78, 84, 9, /* 0x10a0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,100,101, 99,111,109,112,114, /* 0x10b0 */ + 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x10c0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x10d0 */ + 48, 48, 48, 48, 48, 48, 32,117,112, 52, 49, 10, 10, 10, 82, 69, /* 0x10e0 */ + 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x10f0 */ + 32, 70, 79, 82, 32, 91,116,111,115, 48, 93, 58, 10, 79, 70, 70, /* 0x1100 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1110 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x1120 */ + 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x1130 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 49, 10, 48, /* 0x1140 */ + 48, 48, 48, 48, 48, 50, 54, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x1150 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 50, 10, 48, /* 0x1160 */ + 48, 48, 48, 48, 48, 51, 50, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x1170 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 49, 51, 10, 48, /* 0x1180 */ + 48, 48, 48, 48, 48, 51, 97, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x1190 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 50, 49, 10, 48, /* 0x11a0 */ + 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x11b0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 50, 50, 10, 10, /* 0x11c0 */ + 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x11d0 */ + 82, 68, 83, 32, 70, 79, 82, 32, 91,115, 95, 98,110,101,108,111, /* 0x11e0 */ +111,112, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x11f0 */ + 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1200 */ + 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 48, 49, /* 0x1210 */ + 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, 32, 32, /* 0x1220 */ + 32, 32, 32,116,111,115, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, /* 0x1230 */ + 52, 51, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32, 82, 95, 54, 56, /* 0x1240 */ + 75, 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,111, /* 0x1250 */ +112,121, 95,114,101,109, 97,105,110, 10, 48, 48, 48, 48, 48, 48, /* 0x1260 */ + 48, 99, 32, 82, 95, 54, 56, 75, 95, 80, 67, 49, 54, 32, 32, 32, /* 0x1270 */ + 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, 98,115,115, 95,101, /* 0x1280 */ +110,100, 10, 48, 48, 48, 48, 48, 48, 49, 49, 32, 82, 95, 54, 56, /* 0x1290 */ + 75, 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,111, /* 0x12a0 */ +112,121, 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 10, /* 0x12b0 */ + 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, 54, 56, 75, 95, 80, /* 0x12c0 */ + 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101, /* 0x12d0 */ +108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, 48, 48, 54, 48, /* 0x12e0 */ + 10, 48, 48, 48, 48, 48, 48, 49,102, 32, 82, 95, 54, 56, 75, 95, /* 0x12f0 */ + 80, 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110, /* 0x1300 */ +101,108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, /* 0x1310 */ + 49, 10, 48, 48, 48, 48, 48, 48, 50,101, 32, 82, 95, 54, 56, 75, /* 0x1320 */ + 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 51, /* 0x1330 */ + 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x1340 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,115, 95, 98,110, /* 0x1350 */ +101,108,111,111,112, 51, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x1360 */ + 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1370 */ + 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, /* 0x1380 */ + 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, /* 0x1390 */ + 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 48, /* 0x13a0 */ + 43, 48,120, 48, 48, 48, 48, 48, 48, 51, 51, 10, 48, 48, 48, 48, /* 0x13b0 */ + 48, 48, 55, 99, 32, 82, 95, 54, 56, 75, 95, 49, 54, 32, 32, 32, /* 0x13c0 */ + 32, 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, 98,115,115, /* 0x13d0 */ + 95,115,105,122,101, 95,112, 52, 10, 10, 10, 82, 69, 76, 79, 67, /* 0x13e0 */ + 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x13f0 */ + 82, 32, 91, 67, 85, 84, 80, 79, 73, 78, 84, 93, 58, 10, 79, 70, /* 0x1400 */ + 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x1410 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, /* 0x1420 */ + 48, 48, 48, 48, 48, 48, 57, 97, 32, 82, 95, 54, 56, 75, 95, 51, /* 0x1430 */ + 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 52, 49, 10, /* 0x1440 */ + 10, 10 /* 0x1450 */ }; diff --git a/src/stub/m68k-atari.tos-nrv2e.small.h b/src/stub/m68k-atari.tos-nrv2e.small.h index fc3b0693..feec38ee 100644 --- a/src/stub/m68k-atari.tos-nrv2e.small.h +++ b/src/stub/m68k-atari.tos-nrv2e.small.h @@ -1,4 +1,4 @@ -/* m68k-atari.tos-nrv2e.small.h -- created from m68k-atari.tos-nrv2e.small.bin, 558 (0x22e) bytes +/* m68k-atari.tos-nrv2e.small.h -- created from m68k-atari.tos-nrv2e.small.bin, 5025 (0x13a1) bytes This file is part of the UPX executable compressor. @@ -27,44 +27,324 @@ */ -#define NRV2E_LOADER_SMALL_SIZE 558 -#define NRV2E_LOADER_SMALL_ADLER32 0x4cabbc6a -#define NRV2E_LOADER_SMALL_CRC32 0xda3e6739 +#define NRV2E_LOADER_SMALL_SIZE 5025 +#define NRV2E_LOADER_SMALL_ADLER32 0x6820ab4b +#define NRV2E_LOADER_SMALL_CRC32 0x36466ab5 -unsigned char nrv2e_loader_small[558] = { - 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, 0, 4, 72,231, /* 0x 0 */ -127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188,117,112, 49, 49, /* 0x 10 */ -221,218, 36,206, 36,188,117,112, 49, 50,221,218, 40, 82, 36,206, /* 0x 20 */ - 36,188,117,112, 49, 51, 38, 68,215,252,117,112, 50, 49, 32, 60, /* 0x 30 */ -117,112, 50, 50, 39, 36,117, 49,102,250, 69,250, 0,182, 47, 4, /* 0x 40 */ -122, 70, 63, 34, 83,133,100,250, 63,124, 78,113, 0,124, 97, 26, /* 0x 50 */ - 40, 68,112,128,126, 0,124,176,233, 78, 36, 68,213,252,117,112, /* 0x 60 */ - 51, 49, 78,210, 44,195,117, 52,102,250, 72,120,255,255, 66,167, /* 0x 70 */ - 47, 60, 1, 84, 0, 22, 78, 65, 79,239, 0, 12, 74,128,103, 96, /* 0x 80 */ - 72,122, 0, 16, 63, 60, 0, 38, 78, 78, 92,143, 96, 82, 46, 73, /* 0x 90 */ - 78,208, 47, 56, 0, 16, 47, 56, 0, 44, 47, 56, 0,244, 34, 79, /* 0x a0 */ - 65,250,255,236, 33,200, 0, 16, 33,200, 0, 44, 33,200, 0,244, /* 0x b0 */ - 78,113, 65,250, 0, 6,244,248, 96, 22, 65,250, 0, 20, 78,122, /* 0x c0 */ - 0, 2, 34, 0, 0, 65, 8, 8, 78,123, 16, 2, 78,123, 0, 2, /* 0x d0 */ - 33,223, 0,244, 33,223, 0, 44, 33,223, 0, 16, 78,113, 78,117, /* 0x e0 */ - 78,117, 79,239, 0,146, 76,223,127,254, 32, 8,103, 2,159,207, /* 0x f0 */ - 78,249, 10, 36, 73,100, 58, 32, 85, 80, 88, 32, 40, 67, 41, 32, /* 0x 100 */ - 49, 57, 57, 54, 45, 85, 80, 88, 89, 32,116,104,101, 32, 85, 80, /* 0x 110 */ - 88, 32, 84,101, 97,109, 46, 32, 65,108,108, 32, 82,105,103,104, /* 0x 120 */ -116,115, 32, 82,101,115,101,114,118,101,100, 46, 32,104,116,116, /* 0x 130 */ -112, 58, 47, 47,117,112,120, 46,115,102, 46,110,101,116, 32, 36, /* 0x 140 */ - 10, 0, 0, 0, 85, 80, 88, 33,161,216,208,213, 0, 0, 0, 0, /* 0x 150 */ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 160 */ - 0, 0, 0, 45, 24,219,208, 0,102, 4, 16, 27,209, 0,101,244, /* 0x 170 */ -114, 1,118, 0,208, 0,102, 4, 16, 27,209, 0,211, 65,208, 0, /* 0x 180 */ -102, 4, 16, 27,209, 0,101, 16, 83, 65,208, 0,102, 4, 16, 27, /* 0x 190 */ -209, 0,211, 65,106,222, 96, 94, 87, 65,101, 22,225,137, 18, 27, /* 0x 1a0 */ - 70,129,226,129,100, 24,208, 0,102, 4, 16, 27,209, 0,215, 67, /* 0x 1b0 */ - 96, 46, 34, 5,208, 0,102, 4, 16, 27,209, 0,101,232, 82, 67, /* 0x 1c0 */ -208, 0,102, 4, 16, 27,209, 0,101,220,208, 0,102, 4, 16, 27, /* 0x 1d0 */ -209, 0,215, 67,208, 0,102, 4, 16, 27,209, 0,100,236, 84, 67, /* 0x 1e0 */ - 42, 1, 69,244, 24, 0,146,134,215, 71, 24,218, 24,218, 81,203, /* 0x 1f0 */ -255,252, 96, 0,255,114, 44, 60,117,112, 52, 49,117, 51, 32, 78, /* 0x 200 */ - 34, 68,211,216,211,195,217,145, 22, 24,103, 10,182, 5,102,244, /* 0x 210 */ - 67,233, 0,254, 96,242, 78,215, 1,116, 0,180, 0, 2 /* 0x 220 */ +unsigned char nrv2e_loader_small[5025] = { +127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ + 0, 1, 0, 4, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ + 0, 0, 2,164, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ + 0, 19, 0, 16, 32, 8,103, 6, 46,104, 0, 4, 96, 4, 32, 47, /* 0x 30 */ + 0, 4, 72,231,127,254, 36, 64, 80,138, 44, 90, 40, 14, 36,188, /* 0x 40 */ + 0, 0, 0, 0,221,218, 36,206, 36,188, 0, 0, 0, 0,221,218, /* 0x 50 */ + 40, 82, 36,206, 36,188, 0, 0, 0, 0, 38, 68,215,252, 0, 0, /* 0x 60 */ + 0, 0, 32, 60, 0, 0, 0, 0, 39, 36, 83,128, 83, 64,102, 0, /* 0x 70 */ + 69,250, 0, 0, 47, 4,122, 0, 63, 34, 83,133,100,250, 63,124, /* 0x 80 */ + 78,113, 0, 0, 97, 0, 40, 68,112,128,126, 0,124,176,233, 78, /* 0x 90 */ + 36, 68,213,252, 0, 0, 0, 0, 78,210, 44,195, 83,134, 83, 70, /* 0x a0 */ +102, 0, 72,120,255,255, 66,167, 47, 60, 1, 84, 0, 22, 78, 65, /* 0x b0 */ + 79,239, 0, 12, 74,128,103, 96, 72,122, 0, 16, 63, 60, 0, 38, /* 0x c0 */ + 78, 78, 92,143, 96, 82, 46, 73, 78,208, 47, 56, 0, 16, 47, 56, /* 0x d0 */ + 0, 44, 47, 56, 0,244, 34, 79, 65,250,255,236, 33,200, 0, 16, /* 0x e0 */ + 33,200, 0, 44, 33,200, 0,244, 78,113, 65,250, 0, 6,244,248, /* 0x f0 */ + 96, 22, 65,250, 0, 20, 78,122, 0, 2, 34, 0, 0, 65, 8, 8, /* 0x 100 */ + 78,123, 16, 2, 78,123, 0, 2, 33,223, 0,244, 33,223, 0, 44, /* 0x 110 */ + 33,223, 0, 16, 78,113, 78,117, 78,117, 79,239, 0, 0, 76,223, /* 0x 120 */ +127,254, 32, 8,103, 2,159,207, 78,249, 85, 80, 88, 33,161,216, /* 0x 130 */ +208,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 140 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 24,219,208, 0,102, 4, /* 0x 150 */ + 16, 27,209, 0,101,244,114, 1,118, 0,208, 0,102, 4, 16, 27, /* 0x 160 */ +209, 0,211, 65,208, 0,102, 4, 16, 27,209, 0,101, 16, 83, 65, /* 0x 170 */ +208, 0,102, 4, 16, 27,209, 0,211, 65,106,222, 96, 94, 87, 65, /* 0x 180 */ +101, 22,225,137, 18, 27, 70,129,226,129,100, 24,208, 0,102, 4, /* 0x 190 */ + 16, 27,209, 0,215, 67, 96, 46, 34, 5,208, 0,102, 4, 16, 27, /* 0x 1a0 */ +209, 0,101,232, 82, 67,208, 0,102, 4, 16, 27,209, 0,101,220, /* 0x 1b0 */ +208, 0,102, 4, 16, 27,209, 0,215, 67,208, 0,102, 4, 16, 27, /* 0x 1c0 */ +209, 0,100,236, 84, 67, 42, 1, 69,244, 24, 0,146,134,215, 71, /* 0x 1d0 */ + 24,218, 24,218, 81,203,255,252, 96, 0,255,114, 44, 60, 0, 0, /* 0x 1e0 */ + 0, 0,122, 1, 32, 78, 34, 68,211,216,211,195,217,145, 22, 24, /* 0x 1f0 */ +103, 10,182, 5,102,244, 67,233, 0,254, 96,242, 78,215, 0, 46, /* 0x 200 */ +115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46, /* 0x 210 */ +115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 97,116,111, /* 0x 220 */ +115, 48, 0,115,117, 98,113,108, 95, 49,100, 48, 0,115,117, 98, /* 0x 230 */ +113,119, 95, 49,100, 48, 0, 46,114,101,108, 97,115, 95, 98,110, /* 0x 240 */ +101,108,111,111,112, 48, 0,115,117, 98,113,108, 95, 49,100, 54, /* 0x 250 */ + 0,115,117, 98,113,119, 95, 49,100, 54, 0, 46,114,101,108, 97, /* 0x 260 */ +115, 95, 98,110,101,108,111,111,112, 51, 0, 85, 80, 88, 49, 72, /* 0x 270 */ + 69, 65, 68, 0, 46,114,101,108, 97, 67, 85, 84, 80, 79, 73, 78, /* 0x 280 */ + 84, 0,114,101,108,111, 99, 0,106,109,112, 97,115,116, 97, 99, /* 0x 290 */ +107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 2b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, /* 0x 2c0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, /* 0x 2d0 */ + 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 2e0 */ + 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 2f0 */ + 0, 0, 0, 0, 0, 0, 7,140, 0, 0, 0, 60, 0, 0, 0, 17, /* 0x 300 */ + 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 37, /* 0x 310 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, /* 0x 320 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 330 */ + 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 340 */ + 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 350 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 62, /* 0x 360 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, /* 0x 370 */ + 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 380 */ + 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 390 */ + 0, 0, 0, 0, 0, 0, 7,200, 0, 0, 0, 72, 0, 0, 0, 17, /* 0x 3a0 */ + 0, 0, 0, 5, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0, 73, /* 0x 3b0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,172, /* 0x 3c0 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 3d0 */ + 0, 0, 0, 0, 0, 0, 0, 83, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 3e0 */ + 0, 0, 0, 0, 0, 0, 0,174, 0, 0, 0, 2, 0, 0, 0, 0, /* 0x 3f0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 98, /* 0x 400 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,176, /* 0x 410 */ + 0, 0, 0,138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 420 */ + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 4, 0, 0, 0, 0, /* 0x 430 */ + 0, 0, 0, 0, 0, 0, 8, 16, 0, 0, 0, 24, 0, 0, 0, 17, /* 0x 440 */ + 0, 0, 0, 9, 0, 0, 0, 4, 0, 0, 0, 12, 0, 0, 0,109, /* 0x 450 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 58, /* 0x 460 */ + 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 470 */ + 0, 0, 0, 0, 0, 0, 0,123, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 480 */ + 0, 0, 0, 0, 0, 0, 1, 90, 0, 0, 0,152, 0, 0, 0, 0, /* 0x 490 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,118, /* 0x 4a0 */ + 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 40, /* 0x 4b0 */ + 0, 0, 0, 12, 0, 0, 0, 17, 0, 0, 0, 12, 0, 0, 0, 4, /* 0x 4c0 */ + 0, 0, 0, 12, 0, 0, 0,132, 0, 0, 0, 1, 0, 0, 0, 0, /* 0x 4d0 */ + 0, 0, 0, 0, 0, 0, 1,242, 0, 0, 0, 26, 0, 0, 0, 0, /* 0x 4e0 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,138, /* 0x 4f0 */ + 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12, /* 0x 500 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 510 */ + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, /* 0x 520 */ + 0, 0, 0, 0, 0, 0, 2, 14, 0, 0, 0,148, 0, 0, 0, 0, /* 0x 530 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, /* 0x 540 */ + 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,156, /* 0x 550 */ + 0, 0, 1,128, 0, 0, 0, 18, 0, 0, 0, 12, 0, 0, 0, 4, /* 0x 560 */ + 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, /* 0x 570 */ + 0, 0, 0, 0, 0, 0, 7, 28, 0, 0, 0,110, 0, 0, 0, 0, /* 0x 580 */ + 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 590 */ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 5a0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 1, 0, 0, 0, 0, /* 0x 5b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 5, 0, 0, 0, 0, /* 0x 5c0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 9, 0, 0, 0, 0, /* 0x 5d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 3, 0, 0, 0, 0, /* 0x 5e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 4, 0, 0, 0, 0, /* 0x 5f0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 7, 0, 0, 0, 0, /* 0x 600 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 8, 0, 0, 0, 0, /* 0x 610 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 11, 0, 0, 0, 0, /* 0x 620 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 12, 0, 0, 0, 0, /* 0x 630 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 14, 0, 0, 0, 0, /* 0x 640 */ + 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 15, 0, 0, 0, 1, /* 0x 650 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 6, /* 0x 660 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 11, /* 0x 670 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, /* 0x 680 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 21, /* 0x 690 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 26, /* 0x 6a0 */ + 0, 0, 0,138, 0, 0, 0, 0, 16, 0, 0, 9, 0, 0, 0, 40, /* 0x 6b0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 58, /* 0x 6c0 */ + 0, 0, 0, 44, 0, 0, 0, 0, 16, 0, 0, 5, 0, 0, 0, 68, /* 0x 6d0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 73, /* 0x 6e0 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 91, /* 0x 6f0 */ + 0, 0, 0, 2, 0, 0, 0, 0, 16, 0, 0, 12, 0, 0, 0,105, /* 0x 700 */ + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,117,112, 49, /* 0x 710 */ + 49, 0,117,112, 49, 50, 0,117,112, 49, 51, 0,117,112, 50, 49, /* 0x 720 */ + 0,117,112, 50, 50, 0, 99,108,101, 97,114, 95, 98,115,115, 95, /* 0x 730 */ +101,110,100, 0, 99,111,112,121, 95,116,111, 95,115,116, 97, 99, /* 0x 740 */ +107, 95,108,101,110, 0, 99,108,101, 97,114, 95, 98,115,115, 0, /* 0x 750 */ +117,112, 51, 49, 0, 99,108,101, 97,114, 95, 98,115,115, 95,115, /* 0x 760 */ +105,122,101, 95,112, 52, 0,100,101, 99,111,109,112,114, 95,115, /* 0x 770 */ +116, 97,114,116, 0,117,112, 52, 49, 0, 0, 0, 0, 0, 0, 28, /* 0x 780 */ + 0, 0, 12, 1, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 13, 1, /* 0x 790 */ + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 14, 1, 0, 0, 0, 0, /* 0x 7a0 */ + 0, 0, 0, 58, 0, 0, 15, 1, 0, 0, 0, 0, 0, 0, 0, 64, /* 0x 7b0 */ + 0, 0, 16, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 6, /* 0x 7c0 */ + 0, 0, 0, 67, 0, 0, 0, 4, 0, 0, 17, 5, 0, 0, 0, 0, /* 0x 7d0 */ + 0, 0, 0, 9, 0, 0, 18, 3, 0, 0, 0, 0, 0, 0, 0, 20, /* 0x 7e0 */ + 0, 0, 3, 5, 0, 0, 0, 96, 0, 0, 0, 23, 0, 0, 3, 6, /* 0x 7f0 */ + 0, 0, 0, 1, 0, 0, 0, 38, 0, 0, 20, 1, 0, 0, 0, 0, /* 0x 800 */ + 0, 0, 0, 1, 0, 0, 2, 6, 0, 0, 0, 43, 0, 0, 0,124, /* 0x 810 */ + 0, 0, 21, 2, 0, 0, 0, 0, 0, 0, 0,148, 0, 0, 23, 1, /* 0x 820 */ + 0, 0, 0, 0, 10,116,109,112, 47,109, 54, 56,107, 45, 97,116, /* 0x 830 */ + 97,114,105, 46,116,111,115, 45,110,114,118, 50,101, 46,115,109, /* 0x 840 */ + 97,108,108, 46, 98,105,110, 58, 32, 32, 32, 32, 32,102,105,108, /* 0x 850 */ +101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,109, /* 0x 860 */ + 54, 56,107, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, /* 0x 870 */ +100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x 880 */ + 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, /* 0x 890 */ + 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, /* 0x 8a0 */ +105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, /* 0x 8b0 */ +108, 97,103,115, 10, 32, 32, 48, 32,116,111,115, 48, 32, 32, 32, /* 0x 8c0 */ + 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 54, 32, /* 0x 8d0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x 8e0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, /* 0x 8f0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x 900 */ + 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x 910 */ + 32, 49, 32,115,117, 98,113,108, 95, 49,100, 48, 32, 32, 32, 32, /* 0x 920 */ + 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, /* 0x 930 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x 940 */ + 48, 48, 48, 48, 48, 55, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x 950 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x 960 */ + 89, 10, 32, 32, 50, 32,115,117, 98,113,119, 95, 49,100, 48, 32, /* 0x 970 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, /* 0x 980 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x 990 */ + 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50, 42, 42, 48, /* 0x 9a0 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x 9b0 */ + 79, 78, 76, 89, 10, 32, 32, 51, 32,115, 95, 98,110,101,108,111, /* 0x 9c0 */ +111,112, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50,101, 32, /* 0x 9d0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x 9e0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55,101, 32, 32, 50, /* 0x 9f0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x a00 */ + 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x a10 */ + 32, 52, 32,115,117, 98,113,108, 95, 49,100, 54, 32, 32, 32, 32, /* 0x a20 */ + 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, /* 0x a30 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x a40 */ + 48, 48, 48, 48, 48, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x a50 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x a60 */ + 89, 10, 32, 32, 53, 32,115,117, 98,113,119, 95, 49,100, 54, 32, /* 0x a70 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, /* 0x a80 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x a90 */ + 32, 32, 48, 48, 48, 48, 48, 48, 97,101, 32, 32, 50, 42, 42, 48, /* 0x aa0 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x ab0 */ + 79, 78, 76, 89, 10, 32, 32, 54, 32,115, 95, 98,110,101,108,111, /* 0x ac0 */ +111,112, 51, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 97, 32, /* 0x ad0 */ + 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x ae0 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 98, 48, 32, 32, 50, /* 0x af0 */ + 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x b00 */ + 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x b10 */ + 32, 55, 32, 85, 80, 88, 49, 72, 69, 65, 68, 32, 32, 32, 32, 32, /* 0x b20 */ + 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x b30 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x b40 */ + 48, 48, 48, 48, 49, 51, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x b50 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x b60 */ + 89, 10, 32, 32, 56, 32, 67, 85, 84, 80, 79, 73, 78, 84, 32, 32, /* 0x b70 */ + 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 56, 32, 32, 48, 48, /* 0x b80 */ + 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x b90 */ + 32, 32, 48, 48, 48, 48, 48, 49, 53, 97, 32, 32, 50, 42, 42, 48, /* 0x ba0 */ + 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x bb0 */ + 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, /* 0x bc0 */ +114,101,108,111, 99, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x bd0 */ + 48, 48, 48, 48, 49, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x be0 */ + 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x bf0 */ + 48, 49,102, 50, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x c00 */ + 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x c10 */ + 49, 48, 32,106,109,112, 97,115,116, 97, 99,107, 32, 32, 32, 32, /* 0x c20 */ + 32, 48, 48, 48, 48, 48, 48, 48, 50, 32, 32, 48, 48, 48, 48, 48, /* 0x c30 */ + 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x c40 */ + 48, 48, 48, 48, 50, 48, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x c50 */ + 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x c60 */ + 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, /* 0x c70 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x c80 */ + 32,116,111,115, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,116, /* 0x c90 */ +111,115, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x ca0 */ + 32, 32,100, 32, 32,115, 95, 98,110,101,108,111,111,112, 48, 9, /* 0x cb0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101,108,111, /* 0x cc0 */ +111,112, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x cd0 */ + 32, 32,100, 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 9, /* 0x ce0 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,115, 95, 98,110,101,108,111, /* 0x cf0 */ +111,112, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x d00 */ + 32, 32,100, 32, 32,115,117, 98,113,108, 95, 49,100, 48, 9, 48, /* 0x d10 */ + 48, 48, 48, 48, 48, 48, 48, 32,115,117, 98,113,108, 95, 49,100, /* 0x d20 */ + 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x d30 */ +100, 32, 32,115,117, 98,113,119, 95, 49,100, 48, 9, 48, 48, 48, /* 0x d40 */ + 48, 48, 48, 48, 48, 32,115,117, 98,113,119, 95, 49,100, 48, 10, /* 0x d50 */ + 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x d60 */ + 32,115,117, 98,113,108, 95, 49,100, 54, 9, 48, 48, 48, 48, 48, /* 0x d70 */ + 48, 48, 48, 32,115,117, 98,113,108, 95, 49,100, 54, 10, 48, 48, /* 0x d80 */ + 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,115, /* 0x d90 */ +117, 98,113,119, 95, 49,100, 54, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x da0 */ + 48, 32,115,117, 98,113,119, 95, 49,100, 54, 10, 48, 48, 48, 48, /* 0x db0 */ + 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 85, 80, 88, /* 0x dc0 */ + 49, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 85, /* 0x dd0 */ + 80, 88, 49, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x de0 */ + 32,108, 32, 32, 32, 32,100, 32, 32, 67, 85, 84, 80, 79, 73, 78, /* 0x df0 */ + 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 85, 84, 80, 79, /* 0x e00 */ + 73, 78, 84, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x e10 */ + 32, 32,100, 32, 32,114,101,108,111, 99, 9, 48, 48, 48, 48, 48, /* 0x e20 */ + 48, 48, 48, 32,114,101,108,111, 99, 10, 48, 48, 48, 48, 48, 48, /* 0x e30 */ + 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,106,109,112, 97,115, /* 0x e40 */ +116, 97, 99,107, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,106,109, /* 0x e50 */ +112, 97,115,116, 97, 99,107, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x e60 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x e70 */ + 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, 49, 10, 48, 48, 48, /* 0x e80 */ + 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x e90 */ + 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 49, /* 0x ea0 */ + 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x eb0 */ + 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x ec0 */ + 48, 32,117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x ed0 */ + 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x ee0 */ + 48, 48, 48, 48, 48, 48, 32,117,112, 50, 49, 10, 48, 48, 48, 48, /* 0x ef0 */ + 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x f00 */ + 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 50, 50, /* 0x f10 */ + 10, 48, 48, 48, 48, 48, 48, 56, 97, 32,103, 32, 32, 32, 32, 32, /* 0x f20 */ + 32, 32,115, 95, 98,110,101,108,111,111,112, 51, 9, 48, 48, 48, /* 0x f30 */ + 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, 98,115,115, 95, /* 0x f40 */ +101,110,100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x f50 */ + 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x f60 */ + 48, 48, 48, 32, 99,111,112,121, 95,116,111, 95,115,116, 97, 99, /* 0x f70 */ +107, 95,108,101,110, 10, 48, 48, 48, 48, 48, 48, 50, 99, 32,103, /* 0x f80 */ + 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, /* 0x f90 */ + 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, /* 0x fa0 */ + 95, 98,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x fb0 */ + 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x fc0 */ + 48, 48, 48, 48, 32,117,112, 51, 49, 10, 48, 48, 48, 48, 48, 48, /* 0x fd0 */ + 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x fe0 */ + 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,108,101, 97,114, 95, /* 0x ff0 */ + 98,115,115, 95,115,105,122,101, 95,112, 52, 10, 48, 48, 48, 48, /* 0x1000 */ + 48, 48, 48, 50, 32,103, 32, 32, 32, 32, 32, 32, 32, 67, 85, 84, /* 0x1010 */ + 80, 79, 73, 78, 84, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,100, /* 0x1020 */ +101, 99,111,109,112,114, 95,115,116, 97,114,116, 10, 48, 48, 48, /* 0x1030 */ + 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x1040 */ + 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32,117,112, 52, /* 0x1050 */ + 49, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x1060 */ + 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,116,111,115, 48, /* 0x1070 */ + 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x1080 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x1090 */ + 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, 49, 99, 32, 82, 95, /* 0x10a0 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x10b0 */ +117,112, 49, 49, 10, 48, 48, 48, 48, 48, 48, 50, 54, 32, 82, 95, /* 0x10c0 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x10d0 */ +117,112, 49, 50, 10, 48, 48, 48, 48, 48, 48, 51, 50, 32, 82, 95, /* 0x10e0 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x10f0 */ +117,112, 49, 51, 10, 48, 48, 48, 48, 48, 48, 51, 97, 32, 82, 95, /* 0x1100 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1110 */ +117,112, 50, 49, 10, 48, 48, 48, 48, 48, 48, 52, 48, 32, 82, 95, /* 0x1120 */ + 54, 56, 75, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1130 */ +117,112, 50, 50, 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x1140 */ + 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,115, /* 0x1150 */ + 95, 98,110,101,108,111,111,112, 48, 93, 58, 10, 79, 70, 70, 83, /* 0x1160 */ + 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x1170 */ + 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, /* 0x1180 */ + 48, 48, 48, 48, 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, /* 0x1190 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32,116,111,115, 48, 43, 48,120, /* 0x11a0 */ + 48, 48, 48, 48, 48, 48, 52, 51, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x11b0 */ + 52, 32, 82, 95, 54, 56, 75, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x11c0 */ + 32, 32, 32, 32, 99,108,101, 97,114, 95, 98,115,115, 95,101,110, /* 0x11d0 */ +100, 10, 48, 48, 48, 48, 48, 48, 48, 57, 32, 82, 95, 54, 56, 75, /* 0x11e0 */ + 95, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99,111,112, /* 0x11f0 */ +121, 95,116,111, 95,115,116, 97, 99,107, 95,108,101,110, 10, 48, /* 0x1200 */ + 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 54, 56, 75, 95, 80, 67, /* 0x1210 */ + 49, 54, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101,108, /* 0x1220 */ +111,111,112, 51, 43, 48,120, 48, 48, 48, 48, 48, 48, 54, 48, 10, /* 0x1230 */ + 48, 48, 48, 48, 48, 48, 49, 55, 32, 82, 95, 54, 56, 75, 95, 80, /* 0x1240 */ + 67, 56, 32, 32, 32, 32, 32, 32, 32, 32, 32,115, 95, 98,110,101, /* 0x1250 */ +108,111,111,112, 51, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 49, /* 0x1260 */ + 10, 48, 48, 48, 48, 48, 48, 50, 54, 32, 82, 95, 54, 56, 75, 95, /* 0x1270 */ + 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 51, 49, /* 0x1280 */ + 10, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x1290 */ + 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,115, 95, 98,110,101, /* 0x12a0 */ +108,111,111,112, 51, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x12b0 */ + 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x12c0 */ + 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, 48, 48, 48, 48, 48, /* 0x12d0 */ + 48, 49, 32, 82, 95, 54, 56, 75, 95, 80, 67, 56, 32, 32, 32, 32, /* 0x12e0 */ + 32, 32, 32, 32, 32,115, 95, 98,110,101,108,111,111,112, 48, 43, /* 0x12f0 */ + 48,120, 48, 48, 48, 48, 48, 48, 50, 98, 10, 48, 48, 48, 48, 48, /* 0x1300 */ + 48, 55, 99, 32, 82, 95, 54, 56, 75, 95, 49, 54, 32, 32, 32, 32, /* 0x1310 */ + 32, 32, 32, 32, 32, 32, 99,108,101, 97,114, 95, 98,115,115, 95, /* 0x1320 */ +115,105,122,101, 95,112, 52, 10, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x1330 */ + 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x1340 */ + 32, 91, 67, 85, 84, 80, 79, 73, 78, 84, 93, 58, 10, 79, 70, 70, /* 0x1350 */ + 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x1360 */ + 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 32, 10, 48, /* 0x1370 */ + 48, 48, 48, 48, 48, 57, 52, 32, 82, 95, 54, 56, 75, 95, 51, 50, /* 0x1380 */ + 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,117,112, 52, 49, 10, 10, /* 0x1390 */ + 10 /* 0x13a0 */ }; diff --git a/src/stub/src/arch/m68k/bits.ash b/src/stub/src/arch/m68k/bits.ash index a6ef1d27..e9f15a5d 100644 --- a/src/stub/src/arch/m68k/bits.ash +++ b/src/stub/src/arch/m68k/bits.ash @@ -143,18 +143,18 @@ macro(FILLBITS) macro(GETBIT) #if defined(__A68K__) ADDBITS // 4 / 6 - bne \@ // 10 (if jump) + bnes \@ // 10 (if jump) FILLBITS \@: #elif defined(__ASL__) ADDBITS // 4 / 6 - bne done // 10 (if jump) + bnes done // 10 (if jump) FILLBITS done: #else LOCAL done ADDBITS // 4 / 6 - bne done // 10 (if jump) + bnes done // 10 (if jump) FILLBITS done: #endif diff --git a/src/stub/src/arch/m68k/nrv2b_d.ash b/src/stub/src/arch/m68k/nrv2b_d.ash index 003b2013..533b0a32 100644 --- a/src/stub/src/arch/m68k/nrv2b_d.ash +++ b/src/stub/src/arch/m68k/nrv2b_d.ash @@ -1,3 +1,4 @@ +/* ; n2b_d.ash -- NRV2B decompression in 68000 assembly ; ; This file is part of the UCL data compression library. @@ -58,24 +59,25 @@ ; ------------- constants & macros ------------- +*/ #if !defined(NRV_NO_INIT) - ;;move.l #-$d00,d6 ; 0xfffff300 - moveq.l #-$68,d6 ; 0xffffff98 - lsl.w #5,d6 ; << 5 + //move.l #-$d00,d6 // 0xfffff300 + moveq.l #-$68,d6 // 0xffffff98 + lsl.w #5,d6 // << 5 moveq.l #-1,d7 - moveq.l #-1,d5 ; last_off = -1 + moveq.l #-1,d5 // last_off = -1 - ; init d0 with high bit set + // init d0 with high bit set #if (NRV_BB == 8) - ;;move.b #$80,d0 ; init d0.b for FILLBYTES - moveq.l #-128,d0 ; d0.b = $80 + //move.b #$80,d0 // init d0.b for FILLBYTES + moveq.l #-128,d0 // d0.b = $80 #elif (NRV_BB == 32) - ;;move.l #$80000000,d0 ; init d0.l for FILLBYTES + //move.l #$80000000,d0 // init d0.l for FILLBYTES moveq.l #1,d0 - ror.l #1,d0 ; d0.l = $80000000 + ror.l #1,d0 // d0.l = $80000000 #endif bra decompr_start @@ -87,35 +89,36 @@ #if defined(FILLBYTES_SR) fillbytes_sr: FILLBYTES_SR - rts ; 16 + rts // 16 #endif -; ------------- DECOMPRESSION ------------- +// ------------- DECOMPRESSION ------------- decompr_literal: move.b (a0)+,(a1)+ +.globl decompr_start decompr_start: decompr_loop: #ifdef SMALL - ; cost literal: 4 + 10 + 10 - ; cost match: 4 + 10 + 8 - ; cost fillbits: 4 + 8 + // cost literal: 4 + 10 + 10 + // cost match: 4 + 10 + 8 + // cost fillbits: 4 + 8 GETBIT - bcs decompr_literal + bcss decompr_literal #else - ; optimization: carry is clear -> we know that bits are available - ; cost literal: 4 + 8 + 10 - ; cost match: 4 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost literal: 4 + 8 + 10 + // cost match: 4 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_match - bne decompr_literal + bccs decompr_match + bnes decompr_literal FILLBITS - bcs decompr_literal + bcss decompr_literal #endif @@ -127,29 +130,29 @@ decompr_l1: GETBIT addx.l d1,d1 #ifdef SMALL - ; cost loop continue: 4 + 10 + 10 - ; cost loop break: 4 + 10 + 8 - ; cost fillbits: 4 + 8 + // cost loop continue: 4 + 10 + 10 + // cost loop break: 4 + 10 + 8 + // cost fillbits: 4 + 8 GETBIT - bcc decompr_l1 + bccs decompr_l1 #else - ; optimization: carry is clear -> we know that bits are available - ; cost loop continue: 4 + 10 - ; cost loop break: 4 + 8 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost loop continue: 4 + 10 + // cost loop break: 4 + 8 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_l1 - bne L(break) + bccs decompr_l1 + bnes L(break) FILLBITS - bcc decompr_l1 + bccs decompr_l1 L(break): #endif subq.l #3,d1 - bcs decompr_get_mlen ; last m_off + bcss decompr_get_mlen // last m_off lsl.l #8,d1 move.b (a0)+,d1 not.l d1 - beq decompr_end + beqs decompr_end move.l d1,d5 @@ -159,29 +162,29 @@ decompr_get_mlen: addx.w d2,d2 GETBIT addx.w d2,d2 - tst.w d2 ; addx doesn't set the Z flag... - bne decompr_got_mlen + tst.w d2 // addx doesn't set the Z flag... + bnes decompr_got_mlen addq.w #1,d2 decompr_l2: GETBIT addx.w d2,d2 #ifdef SMALL - ; cost loop continue: 4 + 10 + 10 - ; cost loop break: 4 + 10 + 8 - ; cost fillbits: 4 + 8 + // cost loop continue: 4 + 10 + 10 + // cost loop break: 4 + 10 + 8 + // cost fillbits: 4 + 8 GETBIT - bcc decompr_l2 + bccs decompr_l2 #else - ; optimization: carry is clear -> we know that bits are available - ; cost loop continue: 4 + 10 - ; cost loop break: 4 + 8 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost loop continue: 4 + 10 + // cost loop break: 4 + 8 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_l2 - bne L(break) + bccs decompr_l2 + bnes L(break2) FILLBITS - bcc decompr_l2 -L(break): + bccs decompr_l2 +L(break2): #endif addq.w #2,d2 @@ -190,38 +193,38 @@ L(break): decompr_got_mlen: lea 0(a1,d5.l),a3 - ; must use sub as cmp doesn't affect the X flag + // must use sub as cmp doesn't affect the X flag move.l d5,d1 sub.l d6,d1 addx.w d7,d2 -; TODO: partly unroll this loop; could use some magic with d7 for address -; computations, then compute a nice `jmp yyy(pc,dx.w)' +// TODO: partly unroll this loop// could use some magic with d7 for address +// computations, then compute a nice `jmp yyy(pc,dx.w)' #if 1 - ; cost for any m_len: 12 + 22 * (m_len - 1) + 4 - ; 38, 60, 82, 104, 126, 148, 170, 192, 214, 236 - move.b (a3)+,(a1)+ ; 12 -L(copy): move.b (a3)+,(a1)+ ; 12 - dbra d2,L(copy) ; 10 / 14 + // cost for any m_len: 12 + 22 * (m_len - 1) + 4 + // 38, 60, 82, 104, 126, 148, 170, 192, 214, 236 + move.b (a3)+,(a1)+ // 12 +L(copy): move.b (a3)+,(a1)+ // 12 + dbra d2,L(copy) // 10 / 14 #else - ; cost for even m_len: 18 + 34 * (m_len / 2) + 4 - ; cost for odd m_len: 28 + 34 * (m_len / 2) + 4 - ; 56, 66, 90, 100, 124, 134, 158, 168, 192, 202 - lsr.w #1,d2 ; 8 - bcc L(copy) ; 10 / 8 - move.b (a3)+,(a1)+ ; 12 -L(copy): move.b (a3)+,(a1)+ ; 12 - move.b (a3)+,(a1)+ ; 12 - dbra d2,L(copy) ; 10 / 14 + // cost for even m_len: 18 + 34 * (m_len / 2) + 4 + // cost for odd m_len: 28 + 34 * (m_len / 2) + 4 + // 56, 66, 90, 100, 124, 134, 158, 168, 192, 202 + lsr.w #1,d2 // 8 + bccs L(copy) // 10 / 8 + move.b (a3)+,(a1)+ // 12 +L(copy): move.b (a3)+,(a1)+ // 12 + move.b (a3)+,(a1)+ // 12 + dbra d2,L(copy) // 10 / 14 #endif - bra decompr_loop + bras decompr_loop decompr_end: -; vi:ts=8:et +// vi:ts=8:et diff --git a/src/stub/src/arch/m68k/nrv2d_d.ash b/src/stub/src/arch/m68k/nrv2d_d.ash index 88531773..d9bea080 100644 --- a/src/stub/src/arch/m68k/nrv2d_d.ash +++ b/src/stub/src/arch/m68k/nrv2d_d.ash @@ -1,3 +1,4 @@ +/* ; n2d_d.ash -- NRV2D decompression in 68000 assembly ; ; This file is part of the UCL data compression library. @@ -59,24 +60,25 @@ ; ------------- constants & macros ------------- +*/ #if !defined(NRV_NO_INIT) - ;;move.l #-$500,d6 ; 0xfffffb00 - moveq.l #-$50,d6 ; 0xffffffb0 - lsl.w #4,d6 ; << 4 + //move.l #-$500,d6 // 0xfffffb00 + moveq.l #-$50,d6 // 0xffffffb0 + lsl.w #4,d6 // << 4 moveq.l #-1,d7 - moveq.l #-1,d5 ; last_off = -1 + moveq.l #-1,d5 // last_off = -1 - ; init d0 with high bit set + // init d0 with high bit set #if (NRV_BB == 8) - ;;move.b #$80,d0 ; init d0.b for FILLBYTES - moveq.l #-128,d0 ; d0.b = $80 + //move.b #$80,d0 // init d0.b for FILLBYTES + moveq.l #-128,d0 // d0.b = $80 #elif (NRV_BB == 32) - ;;move.l #$80000000,d0 ; init d0.l for FILLBYTES + //move.l #$80000000,d0 // init d0.l for FILLBYTES moveq.l #1,d0 - ror.l #1,d0 ; d0.l = $80000000 + ror.l #1,d0 // d0.l = $80000000 #endif bra decompr_start @@ -88,35 +90,36 @@ #if defined(FILLBYTES_SR) fillbytes_sr: FILLBYTES_SR - rts ; 16 + rts // 16 #endif -; ------------- DECOMPRESSION ------------- +// ------------- DECOMPRESSION ------------- decompr_literal: move.b (a0)+,(a1)+ +.globl decompr_start decompr_start: decompr_loop: #ifdef SMALL - ; cost literal: 4 + 10 + 10 - ; cost match: 4 + 10 + 8 - ; cost fillbits: 4 + 8 + // cost literal: 4 + 10 + 10 + // cost match: 4 + 10 + 8 + // cost fillbits: 4 + 8 GETBIT - bcs decompr_literal + bcss decompr_literal #else - ; optimization: carry is clear -> we know that bits are available - ; cost literal: 4 + 8 + 10 - ; cost match: 4 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost literal: 4 + 8 + 10 + // cost match: 4 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_match - bne decompr_literal + bccs decompr_match + bnes decompr_literal FILLBITS - bcs decompr_literal + bcss decompr_literal #endif @@ -128,37 +131,37 @@ decompr_l1: GETBIT addx.w d1,d1 #ifdef SMALL - ; cost loop continue: 4 + 10 + 8 - ; cost loop break: 4 + 10 + 10 - ; cost fillbits: 4 + 8 + // cost loop continue: 4 + 10 + 8 + // cost loop break: 4 + 10 + 10 + // cost fillbits: 4 + 8 GETBIT - bcs decompr_break1 + bcss decompr_break1 #else - ; optimization: carry is clear -> we know that bits are available - ; cost loop continue: 4 + 10 - ; cost loop break: 4 + 8 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost loop continue: 4 + 10 + // cost loop break: 4 + 8 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc L(continue) - bne decompr_break1 + bccs L(continue) + bnes decompr_break1 FILLBITS - bcs decompr_break1 + bcss decompr_break1 L(continue): #endif subq.w #1,d1 GETBIT addx.w d1,d1 - bpl decompr_l1 - bra decompr_end + bpls decompr_l1 + bras decompr_end decompr_break1: subq.w #3,d1 - bcs decompr_prev_dist ; last m_off + bcss decompr_prev_dist // last m_off lsl.l #8,d1 move.b (a0)+,d1 not.l d1 asr.l #1,d1 move.l d1,d5 - bra decompr_get_mlen + bras decompr_get_mlen decompr_prev_dist: @@ -167,28 +170,28 @@ decompr_get_mlen: addx.w d2,d2 GETBIT addx.w d2,d2 - tst.w d2 ; addx doesn't set the Z flag... - bne decompr_got_mlen + tst.w d2 // addx doesn't set the Z flag... + bnes decompr_got_mlen addq.w #1,d2 decompr_l2: GETBIT addx.w d2,d2 #ifdef SMALL - ; cost loop continue: 4 + 10 + 10 - ; cost loop break: 4 + 10 + 8 - ; cost fillbits: 4 + 8 + // cost loop continue: 4 + 10 + 10 + // cost loop break: 4 + 10 + 8 + // cost fillbits: 4 + 8 GETBIT - bcc decompr_l2 + bccs decompr_l2 #else - ; optimization: carry is clear -> we know that bits are available - ; cost loop continue: 4 + 10 - ; cost loop break: 4 + 8 + 10 - ; cost fillbits: 4 + 8 + 8 + // optimization: carry is clear -> we know that bits are available + // cost loop continue: 4 + 10 + // cost loop break: 4 + 8 + 10 + // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_l2 - bne L(break) + bccs decompr_l2 + bnes L(break) FILLBITS - bcc decompr_l2 + bccs decompr_l2 L(break): #endif addq.w #2,d2 @@ -198,30 +201,30 @@ L(break): decompr_got_mlen: lea 0(a1,d5.l),a3 - ; must use sub as cmp doesn't affect the X flag + // must use sub as cmp doesn't affect the X flag move.l d5,d1 sub.l d6,d1 addx.w d7,d2 -; TODO: partly unroll this loop; could use some magic with d7 for address -; computations, then compute a nice `jmp yyy(pc,dx.w)' +// TODO: partly unroll this loop// could use some magic with d7 for address +// computations, then compute a nice `jmp yyy(pc,dx.w)' #if 1 - ; cost for any m_len: 12 + 22 * (m_len - 1) + 4 - ; 38, 60, 82, 104, 126, 148, 170, 192, 214, 236 - move.b (a3)+,(a1)+ ; 12 -L(copy): move.b (a3)+,(a1)+ ; 12 - dbra d2,L(copy) ; 10 / 14 + // cost for any m_len: 12 + 22 * (m_len - 1) + 4 + // 38, 60, 82, 104, 126, 148, 170, 192, 214, 236 + move.b (a3)+,(a1)+ // 12 +L(copy): move.b (a3)+,(a1)+ // 12 + dbra d2,L(copy) // 10 / 14 #else - ; cost for even m_len: 18 + 34 * (m_len / 2) + 4 - ; cost for odd m_len: 28 + 34 * (m_len / 2) + 4 - ; 56, 66, 90, 100, 124, 134, 158, 168, 192, 202 - lsr.w #1,d2 ; 8 - bcc L(copy) ; 10 / 8 - move.b (a3)+,(a1)+ ; 12 -L(copy): move.b (a3)+,(a1)+ ; 12 - move.b (a3)+,(a1)+ ; 12 - dbra d2,L(copy) ; 10 / 14 + // cost for even m_len: 18 + 34 * (m_len / 2) + 4 + // cost for odd m_len: 28 + 34 * (m_len / 2) + 4 + // 56, 66, 90, 100, 124, 134, 158, 168, 192, 202 + lsr.w #1,d2 // 8 + bccs L(copy) // 10 / 8 + move.b (a3)+,(a1)+ // 12 +L(copy): move.b (a3)+,(a1)+ // 12 + move.b (a3)+,(a1)+ // 12 + dbra d2,L(copy) // 10 / 14 #endif bra decompr_loop @@ -231,5 +234,5 @@ L(copy): move.b (a3)+,(a1)+ ; 12 decompr_end: -; vi:ts=8:et +// vi:ts=8:et diff --git a/src/stub/src/arch/m68k/nrv2e_d.ash b/src/stub/src/arch/m68k/nrv2e_d.ash index 1e189f49..86c913aa 100644 --- a/src/stub/src/arch/m68k/nrv2e_d.ash +++ b/src/stub/src/arch/m68k/nrv2e_d.ash @@ -63,8 +63,8 @@ #if !defined(NRV_NO_INIT) - ////move.l #-0x500,d6 // 0xfffffb00 - moveq.l #-0x50,d6 // 0xffffffb0 + //move.l #-0x500,d6 // 0xfffffb00 + moveq.l #-0x50,d6 // 0xffffffb0 lsl.w #4,d6 // << 4 moveq.l #0,d7 @@ -72,10 +72,10 @@ // init d0 with high bit set #if (NRV_BB == 8) - ////move.b #0x80,d0 // init d0.b for FILLBYTES + //move.b #0x80,d0 // init d0.b for FILLBYTES moveq.l #-128,d0 // d0.b = 0x80 #elif (NRV_BB == 32) - ////move.l #0x80000000,d0 // init d0.l for FILLBYTES + //move.l #0x80000000,d0 // init d0.l for FILLBYTES moveq.l #1,d0 ror.l #1,d0 // d0.l = 0x80000000 #endif @@ -93,13 +93,13 @@ fillbytes_sr: FILLBYTES_SR #endif - // ------------- DECOMPRESSION ------------- decompr_literal: move.b (a0)+,(a1)+ +.globl decompr_start decompr_start: decompr_loop: #ifdef SMALL @@ -107,17 +107,17 @@ decompr_loop: // cost match: 4 + 10 + 8 // cost fillbits: 4 + 8 GETBIT - bcs decompr_literal + bcss decompr_literal #else // optimization: carry is clear -> we know that bits are available // cost literal: 4 + 8 + 10 // cost match: 4 + 10 // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_match - bne decompr_literal + bccs decompr_match + bnes decompr_literal FILLBITS - bcs decompr_literal + bcss decompr_literal #endif @@ -133,45 +133,45 @@ decompr_l1: // cost loop break: 4 + 10 + 10 // cost fillbits: 4 + 8 GETBIT - bcs decompr_break1 + bcss decompr_break1 #else // optimization: carry is clear -> we know that bits are available // cost loop continue: 4 + 10 // cost loop break: 4 + 8 + 10 // cost fillbits: 4 + 8 + 8 ADDBITS - bcc L(continue) - bne decompr_break1 + bccs L(continue) + bnes decompr_break1 FILLBITS - bcs decompr_break1 + bcss decompr_break1 L(continue): #endif subq.w #1,d1 GETBIT addx.w d1,d1 - bpl decompr_l1 - bra decompr_end + bpls decompr_l1 + bras decompr_end decompr_break1: subq.w #3,d1 - bcs decompr_prev_dist // last m_off + bcss decompr_prev_dist // last m_off lsl.l #8,d1 move.b (a0)+,d1 not.l d1 asr.l #1,d1 - bcc decompr_get_mlen2 + bccs decompr_get_mlen2 decompr_get_mlen1: GETBIT addx.w d2,d2 - bra decompr_got_mlen + bras decompr_got_mlen decompr_prev_dist: move.l d5,d1 GETBIT - bcs decompr_get_mlen1 + bcss decompr_get_mlen1 decompr_get_mlen2: addq.w #1,d2 GETBIT - bcs decompr_get_mlen1 + bcss decompr_get_mlen1 decompr_l2: GETBIT addx.w d2,d2 @@ -180,17 +180,17 @@ decompr_l2: GETBIT // cost loop break: 4 + 10 + 8 // cost fillbits: 4 + 8 GETBIT - bcc decompr_l2 + bccs decompr_l2 #else // optimization: carry is clear -> we know that bits are available // cost loop continue: 4 + 10 // cost loop break: 4 + 8 + 10 // cost fillbits: 4 + 8 + 8 ADDBITS - bcc decompr_l2 - bne L(break) + bccs decompr_l2 + bnes L(break) FILLBITS - bcc decompr_l2 + bccs decompr_l2 L(break): #endif addq.w #2,d2 @@ -219,7 +219,7 @@ L(copy): move.b (a3)+,(a1)+ // 12 // cost for odd m_len: 28 + 34 * (m_len / 2) + 4 // 56, 66, 90, 100, 124, 134, 158, 168, 192, 202 lsr.w #1,d2 // 8 - bcc L(copy) // 10 / 8 + bccs L(copy) // 10 / 8 move.b (a3)+,(a1)+ // 12 L(copy): move.b (a3)+,(a1)+ // 12 move.b (a3)+,(a1)+ // 12 diff --git a/src/stub/src/m68k-atari.tos.asm b/src/stub/src/m68k-atari.tos.asm index 7e87c4da..9b305793 100644 --- a/src/stub/src/m68k-atari.tos.asm +++ b/src/stub/src/m68k-atari.tos.asm @@ -124,7 +124,7 @@ macro(SUPEXEC_FLUSH_CACHE) move.w #0x0026,-(sp) // Supexec (38) trap #14 // XBIOS addq.l #6,sp - bra done + bras done // exception handler @@ -145,19 +145,19 @@ super: move.l (0x10),-(sp) nop // flush write pipeline // try 68040 / 68060 - lea 1(pc),a0 + lea fc1(pc),a0 dc.w 0xf4f8 // cpusha bc - bra ret -1: + bras ret +fc1: // try 68030 - lea 2(pc),a0 + lea fc2(pc),a0 movec.l cacr,d0 move.l d0,d1 or.w #0x0808,d1 movec.l d1,cacr movec.l d0,cacr //;; bra \@ret -2: +fc2: ret: move.l (sp)+,(0xf4) move.l (sp)+,(0x2c) @@ -173,7 +173,7 @@ done: macro(BOTH_FLUSH_CACHE) MINT_FLUSH_CACHE tst.l d0 - beq done2 + beqs done2 SUPEXEC_FLUSH_CACHE done2: endm @@ -210,9 +210,9 @@ section tos0 start: move.l a0,d0 // a0 is basepage if accessory - beq L(l_app) + beqs L(l_app) move.l 4(a0),sp // accessory - get stack - bra L(start) + bras L(start) L(l_app): move.l 4(sp),d0 // application - get basepage L(start): movem.l d1-d7/a0-a6,-(sp) @@ -226,14 +226,14 @@ L(start): movem.l d1-d7/a0-a6,-(sp) addq.l #p_tbase,a2 move.l (a2)+,a6 move.l a6,d4 // d4 = p_tbase - move.l up11,(a2) // p_tlen + move.l #up11,(a2) // p_tlen add.l (a2)+,a6 move.l a6,(a2)+ // p_dbase - move.l up12,(a2) // p_dlen + move.l #up12,(a2) // p_dlen add.l (a2)+,a6 // a6 = decompressed p_bbase move.l (a2),a4 // a4 = compressed p_bbase move.l a6,(a2)+ // p_bbase - move.l up13,(a2) // p_blen + move.l #up13,(a2) // p_blen // ------------- copy data segment (from a4 to a3, downwards) @@ -241,24 +241,24 @@ L(start): movem.l d1-d7/a0-a6,-(sp) // a4 (top of compressed data) already initialized above move.l d4,a3 - add.l up21,a3 // top of data segment + offset + add.l #up21,a3 // top of data segment + offset #if defined(SMALL) - move.l up22,d0 // (len / 4) + move.l #up22,d0 // (len / 4) // copy 4 bytes per loop L(loop): move.l -(a4),-(a3) section subql_1d0 - subq.l #1,d0 + subq.l #1,d0 section subqw_1d0 - subq.w #1,d0 + subq.w #1,d0 section s_bneloop0 - bne L(loop) + bnes L(loop) #else - move.l up22,d0 // (len / 160) + move.l #up22,d0 // (len / 160) // loop1 - use 10 registers to copy 4*10*4 = 160 bytes per loop L(loop1): @@ -272,11 +272,11 @@ L(loop1): movem.l (a4),d1-d3/d5-d7/a0-a2/a5 movem.l d1-d3/d5-d7/a0-a2/a5,-(a3) section subql_1d0 - subq.l #1,d0 + subq.l #1,d0 section subqw_1d0 - subq.w #1,d0 + subq.w #1,d0 section s_bneloop0 - bne L(loop1) + bnes L(loop1) // loop2 - copy the remaining 4..160 bytes //;moveq.l #xx,d0 ; ((len % 160) / 4) - 1 @@ -301,18 +301,18 @@ L(loop2): move.l -(a4),-(a3) copy_to_stack: - lea.l clear_bss_end(pc),a2 + lea.l clear_bss_end:b(pc),a2 move.l d4,-(ASTACK) // entry point for final jmp // moveq.l #((clear_bss_end-clear_bss)/2-1),d5 moveq.l #copy_to_stack_len,d5 L(loop6): move.w -(a2),-(ASTACK) subq.l #1,d5 - bcc L(loop6) + bccs L(loop6) #ifdef FLUSH_CACHE // patch code: on the stack, the `rts' becomes a `nop' - move.w #0x4e71,flush_cache_rts-clear_bss(ASTACK) + move.w #0x4e71,flush_cache_rts-clear_bss:b(ASTACK) #endif // note: d5.l is now -1 (needed for decompressor) @@ -321,7 +321,7 @@ L(loop6): move.w -(a2),-(ASTACK) // ------------- #ifdef FLUSH_CACHE - bsr flush_cache + bsrs flush_cache #endif @@ -364,6 +364,7 @@ L(loop6): move.w -(a2),-(ASTACK) // ------------- clear dirty bss +.globl clear_bss clear_bss: // on entry: @@ -376,11 +377,11 @@ clear_bss: #if defined(SMALL) L(loop3): move.l d3,(a6)+ section subql_1d6 - subq.l #1,d6 + subq.l #1,d6 section subqw_1d6 - subq.w #1,d6 + subq.w #1,d6 section s_bneloop3 - bne L(loop3) + bnes L(loop3) #else // the dirty bss is usually not too large, so we don't // bother making movem optimizations here @@ -389,11 +390,11 @@ L(loop3): move.l d3,(a6)+ move.l d3,(a6)+ move.l d3,(a6)+ section subql_1d6 - subq.l #1,d6 + subq.l #1,d6 section subqw_1d6 - subq.w #1,d6 + subq.w #1,d6 section s_bneloop3 - bne L(loop3) + bnes L(loop3) #endif @@ -415,7 +416,7 @@ flush_cache_rts: // ------------- restore ASTACK - lea clear_bss_size+4(ASTACK),sp + lea clear_bss_size_p4:b(ASTACK),sp //; assert sp == clear_bss_end(pc)+4 @@ -442,10 +443,11 @@ L(loop): move.l d3,-(a0) movem.l (sp)+,d1-d7/a0-a6 move.l a0,d0 - beq L(l_app1) + beqs L(l_app1) sub.l sp,sp // accessory: no stack L(l_app1): dc.w 0x4ef9 // jmp $xxxxxxxx - jmp to text segment +.globl clear_bss_end clear_bss_end: @@ -485,9 +487,9 @@ section CUTPOINT #define d2 D3 #if defined(NRV2B) -//# include "arch/m68k/nrv2b_d.ash" +# include "arch/m68k/nrv2b_d.ash" #elif defined(NRV2D) -//# include "arch/m68k/nrv2d_d.ash" +# include "arch/m68k/nrv2d_d.ash" #elif defined(NRV2E) # include "arch/m68k/nrv2e_d.ash" #else @@ -528,11 +530,11 @@ section reloc L(loopx1): add.l d3,a1 // increase fixup add.l d4,(a1) // reloc one address L(loopx2): move.b (a0)+,d3 - beq reloc_end + beqs reloc_end cmp.b d5,d3 // note: d5.b is #1 from above - bne L(loopx1) + bnes L(loopx1) lea 254(a1),a1 // d3 == 1 -> add 254, don't reloc - bra L(loopx2) + bras L(loopx2) reloc_end: