mipsel.r3000-linux: flush cache for NRV, fix stub copying when big

This commit is contained in:
John Reiser 2007-06-09 17:13:50 -07:00
parent 881c32a3df
commit e66823d017
6 changed files with 217 additions and 206 deletions

View File

@ -574,7 +574,7 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // upper bound; avoid circularity
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
acc_uint64l_t lo_va_stub = get_native64(&elfout.phdr[0].p_vaddr);
acc_uint64l_t adrc;
acc_uint64l_t adrm;
@ -1571,8 +1571,8 @@ void PackLinuxElf32mipsel::defineSymbols(Filter const * /*ft*/)
}
}
}
lsize = /*getLoaderSize()*/ 64 * 1024; // upper bound; avoid circularity
unsigned lo_va_stub = get_native64(&elfout.phdr[0].p_vaddr);
lsize = /*getLoaderSize()*/ 64 * 1024; // XXX: upper bound; avoid circularity
unsigned lo_va_stub = get_native32(&elfout.phdr[0].p_vaddr);
unsigned adrc;
unsigned adrm;
unsigned adru;

View File

@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-entry.h
created from mipsel.r3000-linux.elf-entry.bin, 10193 (0x27d1) bytes
created from mipsel.r3000-linux.elf-entry.bin, 10221 (0x27ed) bytes
This file is part of the UPX executable compressor.
@ -28,16 +28,16 @@
*/
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10193
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xe6a17f81
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x989673fc
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10221
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x9a8b8343
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0xc53813db
unsigned char stub_mipsel_r3000_linux_elf_entry[10193] = {
unsigned char stub_mipsel_r3000_linux_elf_entry[10221] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
228, 29, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
0, 30, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
21, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 17, 4, /* 0x 40 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 17, 4, /* 0x 40 */
0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 50 */
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 60 */
3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */
@ -486,189 +486,190 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[10193] = {
1, 0, 2, 36, 52, 0,183,143, 48, 0,182,143, 44, 0,181,143, /* 0x1c20 */
40, 0,180,143, 36, 0,179,143, 32, 0,178,143, 28, 0,177,143, /* 0x1c30 */
24, 0,176,143, 8, 0,224, 3, 56, 0,189, 39, 13, 0, 0, 0, /* 0x1c40 */
32, 40,164, 0, 0, 0,230,172, 0, 0,227,140, 34, 16,133, 0, /* 0x1c50 */
34, 24,195, 0, 8, 0,224, 3, 0, 0,227,172, 30, 0, 6, 36, /* 0x1c60 */
255,255, 17, 4, 33, 40,224, 3, 80, 82, 79, 84, 95, 69, 88, 69, /* 0x1c70 */
67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105, /* 0x1c80 */
108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, 2, 36, 12, 0, /* 0x1c90 */
0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, 0, 0,224,255, /* 0x1ca0 */
189, 39,224,255,228,142, 7, 0, 6, 36,228,255,229,142, 18, 8, /* 0x1cb0 */
7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 25, 0, /* 0x1cc0 */
224, 20, 33, 32, 64, 0,236,255,229,142,232,255,243,142,240,255, /* 0x1cd0 */
242,142,244,255,241,142, 11, 0,133, 16, 35, 64,133, 0, 33,184, /* 0x1ce0 */
232, 2, 33, 48,160, 2, 0, 0,168,140, 8, 0,132, 36, 4, 0, /* 0x1cf0 */
169,140,248,255,198, 36,248,255,136,172, 8, 0,165, 36,249,255, /* 0x1d00 */
192, 28,252,255,137,172, 0, 0,200,142, 33, 56,160, 3, 0, 0, /* 0x1d10 */
168,175, 33, 48, 64, 0, 4, 0,197,142, 12, 0,196, 38, 8, 0, /* 0x1d20 */
224, 2, 33,248,192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255, /* 0x1d30 */
245,142,218,255, 17, 4, 33,176,224, 3,116,109,112, 47,109,105, /* 0x1d40 */
112,115,101,108, 46,114, 51, 48, 48, 48, 45,108,105,110,117,120, /* 0x1d50 */
46,101,108,102, 45,101,110,116,114,121, 46, 98,105,110, 58, 32, /* 0x1d60 */
32, 32, 32, 32,102,105,108,101, 32,102,111,114,109, 97,116, 32, /* 0x1d70 */
101,108,102, 51, 50, 45,108,105,116,116,108,101,109,105,112,115, /* 0x1d80 */
10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, /* 0x1d90 */
78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105, /* 0x1da0 */
122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, /* 0x1db0 */
32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, /* 0x1dc0 */
32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103, /* 0x1dd0 */
115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, /* 0x1de0 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, /* 0x1df0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e00 */
32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, /* 0x1e10 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1e20 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, /* 0x1e30 */
78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1e40 */
48, 48, 48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e50 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e60 */
48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1e70 */
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1e80 */
68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, /* 0x1e90 */
32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, /* 0x1ea0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1eb0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, 32, 32, /* 0x1ec0 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1ed0 */
82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1ee0 */
32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, /* 0x1ef0 */
32, 32, 48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, /* 0x1f00 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1f10 */
48, 48, 48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1f20 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1f30 */
32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, /* 0x1f40 */
77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1f50 */
48, 48, 56, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1f60 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, /* 0x1f70 */
49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1f80 */
84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, /* 0x1f90 */
32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, /* 0x1fa0 */
48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */
48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1fc0 */
48, 48, 54, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1fd0 */
84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1fe0 */
32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, /* 0x1ff0 */
32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, /* 0x2000 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2010 */
48, 48, 48, 48, 49, 49, 55, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x2020 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x2030 */
76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2040 */
48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, /* 0x2050 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x2060 */
48, 32, 32, 48, 48, 48, 48, 49, 99, 52, 99, 32, 32, 50, 42, 42, /* 0x2070 */
48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x2080 */
68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, /* 0x2090 */
65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, /* 0x20a0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x20b0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, 48, 32, 32, /* 0x20c0 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x20d0 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, /* 0x20e0 */
95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x20f0 */
48, 49, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2100 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, /* 0x2110 */
56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x2120 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, /* 0x2130 */
69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x2140 */
48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2150 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2160 */
49, 99, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2170 */
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x2180 */
68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, /* 0x2190 */
78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 52, /* 0x21a0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x21b0 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 57, 54, 32, 32, /* 0x21c0 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x21d0 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, /* 0x21e0 */
84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x21f0 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x2200 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, /* 0x2210 */
73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2220 */
32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, /* 0x2230 */
48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, /* 0x2240 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2250 */
69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2260 */
48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, /* 0x2270 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, /* 0x2280 */
69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, /* 0x2290 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x22a0 */
32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x22b0 */
32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x22c0 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, /* 0x22d0 */
48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, /* 0x22e0 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x22f0 */
77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2300 */
48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, /* 0x2310 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2320 */
77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2330 */
48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, /* 0x2340 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2350 */
77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2360 */
48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, /* 0x2370 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, /* 0x2380 */
77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2390 */
48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, /* 0x23a0 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x23b0 */
86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x23c0 */
78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x23d0 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x23e0 */
78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, /* 0x23f0 */
65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x2400 */
32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x2410 */
48, 48, 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, /* 0x2420 */
48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x2430 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, /* 0x2440 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2450 */
42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, /* 0x2460 */
68, 82, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x2470 */
32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x2480 */
48, 48, 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2490 */
48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x24a0 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, /* 0x24b0 */
48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x24c0 */
85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x24d0 */
82, 88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, /* 0x24e0 */
32, 32, 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, /* 0x24f0 */
48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, /* 0x2500 */
76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, /* 0x2510 */
32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, /* 0x2520 */
10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x2530 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x2540 */
69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, /* 0x2550 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x2560 */
77, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, /* 0x2570 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, /* 0x2580 */
77, 10, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, /* 0x2590 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x25a0 */
85, 10, 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, /* 0x25b0 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x25c0 */
67, 10, 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, /* 0x25d0 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, /* 0x25e0 */
85, 10, 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, /* 0x25f0 */
83, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, /* 0x2600 */
88, 10, 48, 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, /* 0x2610 */
83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, /* 0x2620 */
77, 65, 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2630 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x2640 */
82, 86, 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2650 */
84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2660 */
32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, /* 0x2670 */
32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x2680 */
32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, /* 0x2690 */
79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x26a0 */
70, 79, 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, /* 0x26b0 */
83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x26c0 */
32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x26d0 */
48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, /* 0x26e0 */
49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x26f0 */
76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2700 */
67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, /* 0x2710 */
93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x2720 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2730 */
76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 77, /* 0x2740 */
73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x2750 */
82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x2760 */
73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x2770 */
91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, /* 0x2780 */
69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x2790 */
32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x27a0 */
48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, /* 0x27b0 */
54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x27c0 */
10 /* 0x27d0 */
32, 40,164, 0, 0, 0,230,172, 0, 0,227,140, 35,192,133, 0, /* 0x1c50 */
33, 32, 96, 0, 35, 40,195, 0, 0, 0,229,172, 3, 0, 6, 36, /* 0x1c60 */
51, 16, 2, 36, 12, 0, 0, 0, 8, 0,224, 3, 33, 16, 0, 3, /* 0x1c70 */
30, 0, 6, 36,255,255, 17, 4, 33, 40,224, 3, 80, 82, 79, 84, /* 0x1c80 */
95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69, /* 0x1c90 */
32,102, 97,105,108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, /* 0x1ca0 */
2, 36, 12, 0, 0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, /* 0x1cb0 */
0, 0,224,255,189, 39,224,255,228,142, 7, 0, 6, 36,228,255, /* 0x1cc0 */
229,142, 18, 8, 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, /* 0x1cd0 */
0, 0, 27, 0,224, 20, 33, 32, 64, 0,236,255,229,142,232,255, /* 0x1ce0 */
243,142,240,255,242,142,244,255,241,142, 13, 0,133, 16, 35, 64, /* 0x1cf0 */
133, 0, 35, 48,215, 2, 33, 48,213, 0, 33,184,232, 2, 0, 0, /* 0x1d00 */
168,140, 8, 0,132, 36, 4, 0,169,140,248,255,198, 36,248,255, /* 0x1d10 */
136,172, 8, 0,165, 36,249,255,192, 28,252,255,137,172, 33, 16, /* 0x1d20 */
128, 0, 0, 0,200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, /* 0x1d30 */
64, 0, 4, 0,197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248, /* 0x1d40 */
192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255,245,142,216,255, /* 0x1d50 */
17, 4, 33,176,224, 3,116,109,112, 47,109,105,112,115,101,108, /* 0x1d60 */
46,114, 51, 48, 48, 48, 45,108,105,110,117,120, 46,101,108,102, /* 0x1d70 */
45,101,110,116,114,121, 46, 98,105,110, 58, 32, 32, 32, 32, 32, /* 0x1d80 */
102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51, /* 0x1d90 */
50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, 83,101, /* 0x1da0 */
99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, /* 0x1db0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, /* 0x1dc0 */
32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, /* 0x1dd0 */
65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, /* 0x1de0 */
32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, /* 0x1df0 */
48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, /* 0x1e00 */
48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e10 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e20 */
48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1e30 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1e40 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 50, /* 0x1e50 */
69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 50, /* 0x1e60 */
49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e70 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 52, /* 0x1e80 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1e90 */
44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1ea0 */
89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, /* 0x1eb0 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, 32, 32, 48, 48, /* 0x1ec0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1ed0 */
32, 32, 48, 48, 48, 48, 48, 50, 54, 99, 32, 32, 50, 42, 42, 48, /* 0x1ee0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1ef0 */
67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, /* 0x1f00 */
78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1f10 */
48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f20 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f30 */
48, 52, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1f40 */
69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, /* 0x1f50 */
68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, 95, 69, /* 0x1f60 */
76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 56, 99, /* 0x1f70 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f80 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 49, 48, 32, 32, /* 0x1f90 */
50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1fa0 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, /* 0x1fb0 */
65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1fc0 */
97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1fd0 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 57, /* 0x1fe0 */
99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ff0 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, /* 0x2000 */
76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, /* 0x2010 */
48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2030 */
49, 49, 55, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2040 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x2050 */
32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, /* 0x2060 */
32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x2070 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x2080 */
48, 48, 48, 49, 99, 52, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x2090 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x20a0 */
89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, /* 0x20b0 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, 48, 48, /* 0x20c0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x20d0 */
32, 32, 48, 48, 48, 48, 49, 99, 53, 48, 32, 32, 50, 42, 42, 48, /* 0x20e0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x20f0 */
79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x2100 */
76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 56, 32, /* 0x2110 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2120 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, 56, 32, 32, 50, /* 0x2130 */
42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x2140 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 69, 76, 70, 77, /* 0x2150 */
65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2160 */
50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2170 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 56, 48, /* 0x2180 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x2190 */
44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x21a0 */
89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, /* 0x21b0 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, 99, 32, 32, 48, 48, /* 0x21c0 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x21d0 */
32, 32, 48, 48, 48, 48, 49, 99, 97, 97, 32, 32, 50, 42, 42, 48, /* 0x21e0 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x21f0 */
79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, /* 0x2200 */
69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2210 */
32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, /* 0x2220 */
48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, /* 0x2230 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2240 */
69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2250 */
48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, /* 0x2260 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, /* 0x2270 */
65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, /* 0x2280 */
70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2290 */
108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, /* 0x22a0 */
48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, /* 0x22b0 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x22c0 */
86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x22d0 */
50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x22e0 */
32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, /* 0x22f0 */
48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2300 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, /* 0x2310 */
76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, /* 0x2320 */
77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2330 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x2340 */
69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, /* 0x2350 */
77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2360 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x2370 */
69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, /* 0x2380 */
77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2390 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, /* 0x23a0 */
69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, /* 0x23b0 */
77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x23c0 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, /* 0x23d0 */
65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, /* 0x23e0 */
72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x23f0 */
32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, /* 0x2400 */
48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2410 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2420 */
32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2430 */
32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2440 */
32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x2450 */
48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, /* 0x2460 */
48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2470 */
42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, /* 0x2480 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2490 */
32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x24a0 */
65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, /* 0x24b0 */
32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, /* 0x24c0 */
48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, /* 0x24d0 */
48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, /* 0x24e0 */
9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, /* 0x24f0 */
48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, /* 0x2500 */
69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2510 */
48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2520 */
84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2530 */
32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, /* 0x2540 */
83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x2550 */
32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x2560 */
48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x2570 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, /* 0x2580 */
48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x2590 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, /* 0x25a0 */
48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x25b0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, /* 0x25c0 */
48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x25d0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, /* 0x25e0 */
48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x25f0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, /* 0x2600 */
48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, /* 0x2610 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, /* 0x2620 */
48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, /* 0x2630 */
49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2640 */
90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x2650 */
67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, /* 0x2660 */
93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, /* 0x2670 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, /* 0x2680 */
76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, /* 0x2690 */
73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, /* 0x26a0 */
82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, /* 0x26b0 */
73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, /* 0x26c0 */
91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x26d0 */
32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x26e0 */
32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, /* 0x26f0 */
49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, /* 0x2700 */
32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, /* 0x2710 */
69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, /* 0x2720 */
83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, /* 0x2730 */
70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x2740 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, /* 0x2750 */
48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2760 */
80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, /* 0x2770 */
65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x2780 */
82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, /* 0x2790 */
77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, /* 0x27a0 */
32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x27b0 */
32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x27c0 */
52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, /* 0x27d0 */
32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x27e0 */
};

View File

@ -29,8 +29,8 @@
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2560
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x47892e4c
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xf8bf56d3
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x62582e6c
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0xbf4a45c4
unsigned char stub_mipsel_r3000_linux_elf_fold[2560] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
@ -51,7 +51,7 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[2560] = {
2, 0, 97,160, 61, 0, 1, 36, 3, 0, 97,160,255, 15, 6, 36, /* 0x f0 */
4, 0,101, 36, 5, 0, 17, 4, 33, 32,224, 3, 47,112,114,111, /* 0x 100 */
99, 47,115,101,108,102, 47,101,120,101, 0, 0,245, 15, 2, 36, /* 0x 110 */
12, 0, 0, 0, 2, 0,224, 4, 33, 8,130, 0, 0, 0, 32,160, /* 0x 120 */
12, 0, 0, 0, 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160, /* 0x 120 */
0,254,189, 39, 33, 72, 0, 0, 33, 64,224, 2, 33, 56,128, 2, /* 0x 130 */
33, 48,160, 3,116,255,165, 38, 1, 0, 16, 4, 80, 1, 2, 36, /* 0x 140 */
35, 16,226, 3, 84, 8, 66, 36, 9,248, 64, 0, 33, 32, 32, 2, /* 0x 150 */

View File

@ -210,10 +210,18 @@ lzma_decode:
section NRV_TAIL
eof:
lw v1,(lxdstlen) // original lxdst
sub v0,lxsrc,lxsrclen // new_src - src_EOF; // return 0: good; else: bad
sub v1,lxdst,v1 // actual length generated
subu t8,lxsrc,lxsrclen // new_src - src_EOF; // return 0: good; else: bad
move a0,v1 // original lxdst
subu a1,lxdst,v1 // actual length generated
sw a1,(lxdstlen)
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall
jr ra
sw v1,(lxdstlen)
move v0,t8 # return value from decompression
section ELFMAINY
msg_SELinux:
@ -273,14 +281,16 @@ unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2
beq a0,a1,L80 // no copy
subu t0,a0,a1 // (ADRM - ADRC) == relocation amount
subu a2,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress)
addu a2,a2,s5 // + sz_pack2; length to copy
addu s7,s7,t0 // update &decompress
move a2,s5 // length
move_up: // memcpy(dst=a0, src=a1, len=round_up(a2, 8))
lw t0, 0(a1); addiu a0,a0, 8
lw t1, 4(a1); addiu a2,a2,-8
sw t0,-8(a0); addiu a1,a1, 8
bgtz a2,move_up
sw t1,-4(a0)
move v0,a0 // unfolded stub follows copied decompressor
L80:
// Decompress the folded part of this stub, then execute it.
lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len

View File

@ -120,7 +120,7 @@ L30: # copy auxv
li v0,__NR_readlink
syscall
bltz a3,0f
addu tmp,a0,v0
addu tmp,a1,v0
sb $0,(tmp) # null terminate the path
0:
addiu sp,-MAX_ELF_HDR # alloca

View File

@ -11,9 +11,9 @@ Idx Name Size VMA LMA File off Algn Flags
6 LZMA_DEC10 00000ad8 00000000 00000000 00001174 2**0 CONTENTS, READONLY
7 LZMA_DEC30 00000004 00000000 00000000 00001c4c 2**0 CONTENTS, READONLY
8 NRV_HEAD 00000008 00000000 00000000 00001c50 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000014 00000000 00000000 00001c58 2**0 CONTENTS, READONLY
10 ELFMAINY 0000002a 00000000 00000000 00001c6c 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000b4 00000000 00000000 00001c96 2**0 CONTENTS, READONLY
9 NRV_TAIL 00000028 00000000 00000000 00001c58 2**0 CONTENTS, READONLY
10 ELFMAINY 0000002a 00000000 00000000 00001c80 2**0 CONTENTS, RELOC, READONLY
11 ELFMAINZ 000000bc 00000000 00000000 00001caa 2**0 CONTENTS, READONLY
SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ