diff options
Diffstat (limited to 'project/src')
122 files changed, 5497 insertions, 3243 deletions
diff --git a/project/src/analyze.c b/project/src/analyze.c index 4cb3fcd..b8766aa 100644 --- a/project/src/analyze.c +++ b/project/src/analyze.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/blue-40.inc b/project/src/blue-40.inc index 6ec5f14..3f9feac 100644 --- a/project/src/blue-40.inc +++ b/project/src/blue-40.inc @@ -1,1550 +1,1546 @@ static const u8 blue_40_bin_bz2[] = // blue-40.bin { - // decompressed size: 0x4d7b8 = 317368 bytes - 0x00,0x04,0xd7,0xb8, + // decompressed size: 0x4bdb8 = 310712 bytes + 0x00,0x04,0xbd,0xb8, // bzipped data - 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xb8,0x1f, 0x18,0x90,0x00,0x13, - 0x8c,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff, 0xfc,0x7d,0xef,0xff, 0xef,0xf7,0xef,0xfd, 0xf4,0x37,0xbf,0xf9, - 0x4e,0xdd,0xc9,0xe0, 0x84,0xbf,0x79,0xca, 0x4a,0x03,0x55,0x40, 0x0b,0x63,0xa0,0x00, - 0x00,0x01,0xf6,0xbb, 0x1d,0xcf,0x71,0x76, 0xc8,0x58,0x05,0x01, 0x40,0x1e,0xcc,0x03, - 0xba,0x5d,0x9c,0xd3, 0xd9,0xb3,0xdd,0xd4, 0xfb,0xef,0x64,0x6e, 0x37,0xbd,0xf5,0xbd, - 0xe0,0x5f,0x40,0x32, 0xfb,0xb8,0xf1,0xd3, 0xdd,0xb6,0xf6,0xee, 0xe9,0x9c,0x5d,0x76, - 0xd7,0xae,0xef,0x64, 0x7b,0xb8,0xe9,0x29, 0x20,0x51,0x2e,0x0e, 0xf9,0xf6,0xef,0x7d, - 0xd8,0x5c,0xbd,0xf7, 0xdd,0xaa,0xeb,0xe3, 0x3d,0xf5,0xd4,0xa2, 0x11,0x54,0x51,0x20, - 0x90,0x00,0x91,0x24, 0x44,0x8a,0x00,0x00, 0x00,0x45,0x40,0x90, 0x55,0x50,0x05,0x2a, - 0x80,0x4b,0x3c,0xd7, 0x6e,0xef,0x6c,0xf8, 0xfb,0xef,0x7d,0xbb, 0xe7,0xb8,0x01,0x56, - 0xee,0xb6,0xef,0x7b, 0x92,0xf7,0xbe,0xdc, 0x5f,0x2f,0xb7,0xbe, 0x3e,0x3d,0x4f,0xbe, - 0x77,0x0c,0xf3,0x3b, 0x5e,0x76,0xf6,0x8e, 0x4b,0xc4,0x72,0xed, 0xee,0xdb,0xb3,0x5e, - 0x70,0xe5,0xee,0xc0, 0x1e,0xae,0x8f,0x76, 0xca,0x77,0x0e,0xe7, 0x5d,0xd7,0x90,0x1b, - 0xde,0xec,0xec,0x00, 0x3b,0x35,0x6b,0x35, 0xdc,0x4d,0xdb,0x70, 0x0e,0xd6,0x76,0xee, - 0x0a,0xe3,0x62,0xb5, 0x3a,0xc1,0xce,0x37, 0x1c,0xc6,0xeb,0x74, 0x1d,0x36,0xee,0x06, - 0xd8,0x7d,0xf1,0x83, 0xa5,0x7a,0x56,0x9a, 0x6b,0x4d,0xf6,0x35, 0x76,0x06,0xd8,0xd1, - 0x9f,0x7d,0xf7,0x81, 0x47,0xc9,0x5f,0x6a, 0xc3,0xa1,0x88,0x9c, 0x4c,0x1d,0x74,0x3b, - 0x63,0x9d,0x23,0x82, 0xe9,0x8a,0x0a,0x76, 0x7a,0xef,0x44,0xba, 0xc3,0xaf,0x4d,0xd2, - 0xee,0xee,0xb2,0xeb, 0x4b,0xb6,0x50,0xda, 0xb3,0xdd,0xdc,0x3d, 0x6a,0x85,0x49,0xe8, - 0x79,0xc4,0x8a,0x8e, 0xd1,0x6d,0xdb,0xa5, 0x55,0xda,0x1c,0xe5, 0xb7,0x12,0x7b,0x34, - 0x94,0x2b,0x80,0xd3, 0x22,0x01,0x00,0x40, 0x41,0x34,0x84,0xa7, 0xa8,0xf2,0x9e,0x49, - 0x98,0x94,0xf6,0xa9, 0x99,0xa2,0x69,0xa6, 0x8d,0x4f,0x48,0xd0, 0x1a,0x06,0x80,0xd0, - 0xd0,0xd0,0x68,0x00, 0x34,0x00,0x1a,0x00, 0x00,0x00,0x00,0x00, 0x34,0x00,0x00,0x00, - 0x1a,0x00,0x00,0x06, 0x9e,0x88,0x51,0x08, 0x26,0x53,0x48,0x30, 0x08,0x49,0xea,0x3c, - 0xa6,0x8d,0x19,0x3f, 0x4a,0x1e,0xa0,0x69, 0xa0,0xd0,0xd3,0xd4, 0x66,0x90,0x03,0x20, - 0x0d,0x34,0x00,0x32, 0x68,0xd0,0xd0,0x00, 0x0d,0x00,0x0d,0x00, 0x00,0x01,0xa0,0x00, - 0x00,0x00,0x00,0x00, 0x00,0xd3,0x44,0x9a, 0x99,0x02,0x9b,0xc9, 0x4d,0x4f,0x53,0xf4, - 0xa6,0x9e,0x9a,0x47, 0xa9,0xe9,0x8d,0x50, 0x79,0x34,0xd4,0xf5, 0x03,0xd4,0x6f,0x54, - 0xf5,0x1e,0x90,0xd0, 0x1a,0x6d,0x34,0x9e, 0xa6,0x80,0x31,0x19, 0x03,0x46,0x83,0x46, - 0x10,0x06,0x8d,0x0d, 0x03,0x20,0x18,0x9e, 0x93,0x20,0x1a,0x01, 0x89,0xa0,0x7a,0x8f, - 0x53,0x6d,0x42,0x68, 0x1a,0x7a,0x9a,0x68, 0x7a,0x8d,0x00,0x49, 0xa4,0x48,0x8a,0x62, - 0x99,0x25,0x3f,0x69, 0xaa,0x9e,0xc4,0x93, 0x6a,0x47,0x94,0xc6, 0xa3,0xde,0xaa,0x69, - 0xe9,0xa8,0x00,0x3d, 0x40,0x18,0x8c,0x46, 0x40,0x34,0x0d,0x03, 0x41,0x90,0x00,0x00, - 0x00,0x00,0x00,0x03, 0x40,0x0c,0x80,0x68, 0x00,0x00,0xc8,0x00, 0x00,0x34,0xd0,0x08, - 0x92,0x44,0x65,0x34, 0x68,0x99,0x34,0x4d, 0x4f,0xd0,0xd5,0x3d, 0x32,0x9e,0xa6,0xd4, - 0xf1,0x46,0x46,0x8d, 0xa8,0xda,0x99,0x3d, 0x26,0x40,0x34,0x00, 0xd3,0x40,0x1a,0x34, - 0xd1,0xa1,0x90,0x0d, 0x03,0x20,0x00,0x00, 0x64,0x19,0x00,0x00, 0x1a,0x06,0x4f,0x50, - 0x68,0x34,0x00,0x00, 0x00,0x34,0x34,0xd0, 0x49,0xa4,0x94,0x68, 0x26,0x40,0x40,0x29, - 0xb4,0x4d,0x53,0xf5, 0x34,0x27,0x94,0xd1, 0xb5,0x3d,0x4f,0x50, 0xc8,0x03,0x4d,0x0d, - 0x0d,0x07,0xa8,0x69, 0xa6,0x9a,0x00,0xd0, 0x01,0xa0,0x01,0xa0, 0x00,0xd0,0xc8,0x00, - 0x00,0x00,0x00,0x00, 0x00,0x1a,0x00,0x0d, 0x1a,0x00,0x06,0x9f, 0x5e,0x9e,0xbb,0x21, - 0x3d,0x7c,0xe4,0x55, 0x93,0x1a,0x7b,0xd7, 0x07,0xe2,0xdf,0x8b, 0x87,0xe7,0x9a,0x61, - 0xbd,0xae,0x4a,0x93, 0x23,0x16,0x63,0xc7, 0x18,0xb1,0x8c,0x4b, 0x95,0x34,0x49,0xa2, - 0xe5,0xb2,0xb0,0x49, 0x4f,0xdb,0x5b,0xbc, 0xbc,0x89,0xa9,0x52, 0xa5,0x8d,0x62,0x91, - 0xb4,0x67,0x1c,0x30, 0xb5,0xe3,0x09,0x8a, 0xa0,0x62,0xfb,0x6e, 0xb4,0xd4,0xb5,0x2b, - 0x6e,0x29,0x88,0x4c, 0x32,0xcd,0xc6,0xc4, 0x64,0xdd,0x4a,0x64, 0x4d,0x54,0x40,0x63, - 0x48,0x7f,0x2b,0x6d, 0x40,0xbf,0x94,0xaf, 0x8c,0xc0,0xce,0x39, 0xc9,0x96,0xd3,0x38, - 0xd4,0x94,0xdb,0xcd, 0x9a,0xe6,0x1d,0xec, 0xd8,0xc7,0x5d,0x98, 0x59,0x05,0x7c,0x5e, - 0xef,0x7c,0xde,0x1d, 0x5c,0xed,0xec,0xd9, 0xe1,0x3a,0xa0,0x5a, 0xe6,0x5f,0x18,0x99, - 0x8d,0x65,0xf1,0x15, 0xf2,0x5e,0xad,0xc5, 0x0f,0xa4,0x78,0x8e, 0x56,0xaa,0xcb,0x6d, - 0x74,0x12,0x8b,0x2f, 0x30,0xfc,0x94,0xa5, 0xa0,0x14,0xb3,0x07, 0x53,0x53,0x2d,0x1d, - 0x65,0xd7,0x0b,0xc1, 0xa4,0xa0,0x84,0x47, 0xbb,0x74,0xef,0x47, 0xd0,0xba,0xce,0x58, - 0xf8,0xea,0x13,0x59, 0x21,0x16,0x04,0x9d, 0x5b,0x24,0x50,0x39, 0xce,0x64,0x3c,0x3e, - 0x89,0x5d,0xd3,0xad, 0x1e,0xfa,0xe7,0x3a, 0x9c,0x62,0xc0,0xe5, 0xaa,0x10,0x2b,0x25, - 0x2a,0x92,0x82,0xe5, 0xf0,0xc9,0x8e,0x76, 0xb5,0x82,0x63,0x04, 0xaf,0x77,0x99,0x7d, - 0x16,0x6f,0x25,0x2e, 0x45,0x86,0xde,0xfa, 0xdf,0x1d,0xb7,0xcf, 0x49,0xe5,0x4a,0xf7, - 0x84,0x2b,0x31,0x25, 0x41,0x16,0x89,0x45, 0x80,0x26,0x52,0xc6, 0x4c,0xb4,0x6b,0x42, - 0x14,0xa1,0x60,0x54, 0xb4,0xcc,0x31,0x22, 0x60,0x23,0x48,0xdb, 0x0a,0x30,0x21,0x94, - 0xb8,0x2d,0x99,0x51, 0x58,0x15,0xc4,0xb6, 0xac,0xcb,0x0b,0x94, 0xa5,0x8d,0x08,0xb2, - 0xa2,0x25,0x89,0x14, 0x5c,0xc6,0x61,0x5c, 0xb6,0x82,0x5c,0xb0, 0xa5,0x12,0xc0,0x16, - 0x02,0xcc,0x61,0x50, 0x96,0xa9,0x6a,0xb5, 0xb6,0xd4,0xac,0xb9, 0x99,0x0c,0x68,0x86, - 0xd9,0x5d,0xd3,0x3f, 0x47,0x40,0xd4,0x09, 0x8b,0x6d,0x87,0x18, 0x7f,0xfb,0xef,0xba, - 0x20,0x8c,0x51,0x58, 0x27,0x18,0x50,0xb6, 0x0a,0x58,0xa0,0xb1, 0x04,0xe6,0xd0,0xce, - 0x18,0x64,0x56,0x0c, 0x41,0x44,0xc1,0xa2, 0x65,0xa8,0xaa,0x2c, 0x71,0xac,0x46,0xb5, - 0x51,0x19,0x52,0x58, 0xc5,0x08,0x96,0x95, 0x8c,0x48,0x89,0x98, 0x5e,0x9b,0x77,0x01, - 0xf6,0x08,0x10,0x37, 0x94,0x26,0xc0,0x6f, 0xda,0xac,0x6d,0x81, 0x2a,0x5b,0x56,0xaa, - 0xd2,0x85,0x51,0x8a, 0x24,0x11,0x29,0x62, 0x85,0xb6,0xc9,0x65, 0x59,0x5a,0xcf,0x08, - 0x7d,0x7b,0xae,0x45, 0x85,0x62,0x86,0xe6, 0xc4,0xb1,0x36,0x6c, 0xcc,0xc9,0x0b,0x10, - 0x14,0x10,0x71,0x94, 0xb6,0x4a,0x2c,0x14, 0x10,0x6b,0x4a,0x95, 0x2a,0xc5,0x43,0x1c, - 0x0c,0x5c,0x72,0x28, 0x82,0x0e,0x4a,0x45, 0x52,0x15,0x95,0x02, 0xd5,0x83,0x85,0xcc, - 0xa4,0x1b,0x4a,0x2d, 0xa8,0xb1,0x85,0x4a, 0x85,0xb9,0x98,0xe4, 0x18,0xd2,0x66,0x35, - 0x95,0x33,0x13,0x18, 0x82,0x36,0xd3,0x12, 0xe5,0xb5,0xad,0xb4, 0x4c,0x98,0x52,0xda, - 0xd4,0x4b,0x4b,0xd6, 0x68,0x0a,0xa8,0x84, 0x11,0x45,0x83,0x1d, 0x12,0x91,0x50,0x05, - 0x81,0x58,0x01,0xa8, 0x4c,0x56,0x04,0x32, 0xc5,0xac,0x14,0x89, 0x88,0x5b,0x4d,0xcb, - 0xba,0xe6,0x22,0x48, 0x58,0xc8,0xb6,0x65, 0xb0,0x41,0x82,0xa8, 0xe2,0x55,0x69,0xb9, - 0x91,0x16,0x45,0x8b, 0x03,0x12,0x58,0x95, 0x31,0x90,0xc6,0x42, 0x29,0x14,0x62,0xe2, - 0xaa,0x45,0xdc,0xc7, 0x10,0x54,0x52,0xa5, 0xb6,0x28,0xab,0x44, 0xa8,0x22,0x5a,0x98, - 0xc3,0x10,0x58,0x31, 0x52,0x63,0x6b,0x45, 0x59,0x6d,0x44,0xdb, 0x3e,0x0e,0xeb,0xfb, - 0xa7,0x66,0x0a,0x29, 0x34,0x92,0x26,0xa9, 0x51,0x2e,0xd4,0xaf, 0x3e,0x40,0xde,0x2f, - 0x77,0x69,0xf8,0x5f, 0xeb,0xff,0xbf,0x99, 0xfd,0x8b,0x1f,0x37, 0xe7,0xe7,0x3e,0x7e, - 0x39,0xb1,0x71,0xd7, 0xa7,0x68,0xab,0xeb, 0xa6,0x45,0xa9,0xaf, 0x1a,0x3c,0xb7,0x8e, - 0xd8,0xca,0xb7,0xc7, 0x94,0xb0,0x24,0x10, 0xdd,0xbe,0xb8,0x6e, 0x5b,0x60,0xb9,0xa0, - 0xda,0x65,0xa8,0x62, 0x55,0x15,0x9f,0x4e, 0xe6,0x54,0x6d,0x92, 0x55,0x36,0xe2,0x62, - 0x08,0x92,0x36,0x92, 0xb2,0xb9,0x72,0xdc, 0x33,0x1a,0x50,0xb9, 0x31,0xad,0xb8,0x47, - 0x10,0xa3,0x6c,0xb4, 0x44,0x65,0x41,0x11, 0xc3,0x03,0x05,0x2e, 0xf2,0xd2,0x0c,0xbf, - 0x62,0x35,0xeb,0xe9, 0xa4,0x6d,0x81,0x49, 0x2e,0x8e,0xc9,0x86, 0x65,0x97,0x50,0x51, - 0x2d,0x90,0x2c,0x11, 0x24,0x31,0x20,0xa8, 0x8d,0x34,0xb3,0xf3, 0xd0,0x20,0x65,0xdb, - 0x4a,0x82,0x2d,0xf7, 0xe4,0x9c,0xcd,0xc5, 0xb5,0xb0,0x36,0x96, 0xb2,0xa7,0x49,0xa8, - 0x6c,0x36,0xe7,0x05, 0x71,0x04,0x5e,0x5a, 0x86,0xf0,0xf7,0xcf, 0x7c,0xa5,0xc3,0xee, - 0x7b,0xf3,0x9d,0x73, 0xbd,0xb5,0x3f,0xc0, 0x7b,0xfb,0x37,0xd3, 0x63,0xd9,0x40,0x2a, - 0x62,0x4c,0x06,0xad, 0xb2,0x41,0xa3,0x41, 0x96,0xc1,0x62,0xcb, 0x89,0x92,0x94,0xc7, - 0x25,0xc9,0x45,0x86, 0x4a,0xc5,0x16,0x36, 0xc1,0x65,0x47,0x26, 0x22,0xb1,0x63,0x94, - 0x16,0x59,0x18,0x88, 0xc2,0xb5,0x97,0xd3, 0xeb,0x84,0x24,0x1d, 0xdd,0xb4,0x34,0x91, - 0x04,0x1a,0x83,0xac, 0xb3,0x6d,0x24,0x92, 0xad,0x02,0x8b,0x0c, 0xb8,0x61,0x45,0x46, - 0x08,0x8c,0x8d,0x79, 0x8b,0x26,0x39,0x68, 0x19,0x2e,0x19,0x5a, 0x23,0x46,0xc5,0x92, - 0xaa,0x36,0xaf,0xad, 0x2c,0x30,0x6a,0x8b, 0x06,0xd2,0x8d,0xb2, 0xa2,0xc9,0x0e,0x32, - 0xa1,0x44,0x8a,0x57, 0x33,0x31,0x68,0x33, 0x10,0x5c,0x60,0x9d, 0x04,0x02,0xc0,0xa8, - 0x2a,0x98,0xd6,0x74, 0xd5,0x5c,0xad,0x34, 0x92,0x18,0x55,0x52, 0x33,0x12,0xc5,0x24, - 0x55,0x8a,0x31,0x82, 0x4e,0x35,0x14,0x23, 0x96,0x56,0x09,0x10, 0xac,0xa2,0x5b,0x72, - 0xdc,0xc3,0x0c,0x8b, 0x2a,0x0c,0x18,0x5e, 0x53,0x84,0x80,0x9a, 0x21,0x42,0x00,0x94, - 0x4e,0x35,0x44,0xe1, 0x6c,0x50,0xa2,0x53, 0x2e,0x39,0x6c,0x6c, 0xb9,0x8d,0x86,0x90, - 0x71,0xca,0x5a,0xd1, 0xad,0x62,0x26,0x48, 0x11,0x85,0x65,0x99, 0x71,0xaa,0x92,0xb3, - 0x94,0xaf,0x01,0xeb, 0x0e,0x32,0x62,0xa1, 0x4d,0x2a,0x35,0x2c, 0x1c,0xa5,0x53,0x2c, - 0xe8,0x99,0x18,0x04, 0x90,0xdc,0xb9,0x0b, 0x92,0xf5,0x94,0x14, 0x0a,0xc3,0x0d,0x81, - 0x75,0xc1,0xe5,0xb1, 0x4d,0x80,0x44,0xad, 0x4a,0xc5,0x50,0x36, 0x34,0x14,0xb4,0x47, - 0x59,0xcc,0xbb,0x4b, 0x50,0xd7,0x23,0xc8, 0x40,0x63,0x09,0x02, 0x2c,0x90,0x83,0xb4, - 0x85,0x10,0xce,0xb4, 0xd1,0x40,0xc6,0x71, 0xa3,0x30,0x62,0x28, 0x93,0xad,0x70,0x98, - 0x65,0xa5,0x43,0x48, 0xe2,0x5a,0x51,0xcb, 0x83,0x30,0x60,0xdb, 0x10,0x7a,0xb4,0x88, - 0xd3,0x0b,0x8c,0x5d, 0xc9,0x4a,0xd8,0x83, 0x0c,0xca,0xb9,0x6c, 0x27,0x13,0x35,0xac, - 0x9b,0x4b,0x83,0xd3, 0x2a,0x1d,0x16,0xa9, 0x6d,0x55,0x88,0xc5, 0xa3,0x2b,0x44,0x2c, - 0x4d,0xfb,0xdd,0x57, 0x0b,0x6d,0xa5,0xac, 0xd1,0x62,0x88,0xb1, 0x73,0x17,0x20,0xed, - 0x26,0xa0,0xa1,0xda, 0x1c,0x43,0x50,0x41, 0x80,0xa4,0x41,0x11, 0x18,0xc2,0x2b,0x06, - 0x44,0x8a,0x21,0x18, 0xac,0xd1,0x2a,0x11, 0x23,0x1a,0x50,0x50, 0x50,0xac,0x97,0x2c, - 0x0c,0x64,0x30,0x62, 0xc7,0x94,0xc7,0x22, 0x65,0xa2,0x2a,0x2a, 0x8a,0x83,0x19,0x96, - 0x6b,0x30,0x11,0x8b, 0x14,0xcb,0x99,0x66, 0x35,0x88,0x82,0xc4, 0xc6,0x8a,0x28,0xb9, - 0x97,0x22,0x4c,0x2d, 0x02,0xa8,0xa9,0x11, 0x2d,0x0a,0x9a,0xd6, 0x5a,0x14,0x4a,0xa2, - 0x88,0x22,0x1c,0xe2, 0x08,0x65,0x41,0x50, 0x1e,0x0e,0xef,0x89, 0xcb,0x71,0x28,0xba, - 0xab,0x60,0xe5,0xef, 0xe2,0xdd,0xc5,0xe2, 0xdb,0xf4,0xd4,0xfc, 0x04,0xfe,0x0b,0xbf, - 0xe5,0x45,0xe9,0xda, 0x56,0xca,0xbf,0x97, 0x95,0xa3,0xf0,0x7e, 0x7d,0x2d,0xce,0x5a, - 0x7e,0x5f,0xe4,0xfe, 0x9f,0x41,0xaf,0x0f, 0xf9,0x71,0xd0,0x81, 0x2d,0xd6,0x6b,0xdf, - 0xaf,0x7c,0x9b,0x15, 0xb8,0x55,0x13,0x72, 0xee,0xa3,0xb5,0x97, 0xc5,0x81,0x24,0x20, - 0x72,0x33,0x92,0x9b, 0xee,0x01,0x7e,0x86, 0x34,0x5f,0x26,0x24, 0x77,0xf1,0xbb,0xf0, - 0xed,0xc7,0x16,0xbe, 0xc5,0xcc,0xc7,0x8b, 0x63,0xad,0xee,0x98, 0xd7,0xc5,0x7c,0x15, - 0xb8,0xb0,0x89,0xab, 0x6d,0x77,0x4f,0xb0, 0x13,0x92,0x24,0x17, 0x4d,0x55,0x07,0xf1, - 0x3f,0xfd,0x9b,0x7d, 0xc1,0x45,0xfb,0xa5, 0x29,0xf6,0x62,0x47, 0x98,0xc4,0x7d,0xd3, - 0xd0,0xe7,0x44,0x11, 0xe2,0x54,0x71,0x09, 0x5e,0x7f,0x85,0x6e, 0x65,0x0e,0x67,0x30, - 0xca,0x9f,0x6e,0xdd, 0x69,0x59,0x92,0x0b, 0x12,0xd0,0xee,0xec, 0x61,0x20,0x71,0x0f, - 0x37,0xe0,0xda,0xb9, 0xdb,0xee,0x6f,0x5b, 0x60,0x9c,0xb2,0xed, 0x9e,0xef,0xf8,0x66, - 0x83,0x4c,0xf5,0xd3, 0x03,0x7f,0xdb,0xca, 0x43,0x3d,0xb9,0xd4, 0x8c,0xfb,0xe9,0xb1, - 0x0e,0x7e,0xf6,0x63, 0x31,0x93,0xe4,0xf2, 0x74,0x8a,0x4f,0x8d, 0xa2,0xc1,0x60,0x2c, - 0x55,0x27,0xce,0xe3, 0x20,0x73,0x97,0x7d, 0x5a,0x6d,0x31,0x80, 0x07,0x26,0x82,0x10, - 0x05,0x17,0x98,0x41, 0x08,0xa0,0x03,0xca, 0x84,0x51,0x14,0xee, 0xa8,0x21,0x15,0x14, - 0x00,0xc6,0x08,0x20, 0x21,0x61,0x05,0x90, 0xc2,0xa4,0x87,0x85, 0xbc,0xda,0x41,0x12, - 0x27,0x1b,0x88,0x78, 0x0f,0xa5,0xed,0xdf, 0x64,0xf8,0x54,0x36, 0xc0,0xff,0xf1,0x85, - 0x08,0xfa,0xc4,0x17, 0x60,0x1c,0x86,0xb9, 0x65,0x00,0x9f,0x1d, 0xa3,0xf1,0x92,0xe7, - 0xbe,0xfb,0x3c,0x06, 0x60,0x2c,0xc5,0xbb, 0x9c,0x9f,0xb0,0xcf, 0x37,0x2c,0xe5,0xc8, - 0xcb,0x0b,0x35,0x64, 0x9e,0xc9,0x16,0x2d, 0xcd,0x32,0x70,0x94, 0xad,0x6e,0x65,0x9d, - 0xbe,0x2f,0xe5,0xf3, 0xb8,0x03,0x2a,0xee, 0x1c,0x33,0x6b,0x08, 0x6a,0xae,0xb3,0xd0, - 0x5f,0xa2,0x3c,0xbd, 0xc3,0x5b,0x84,0x13, 0x30,0x38,0xaa,0xdf, 0x5c,0xb4,0xe2,0x75, - 0xe7,0x91,0x91,0xb8, 0x97,0xb3,0xa6,0xd2, 0xf0,0xb0,0x3a,0x22, 0xc5,0xb4,0xf0,0xc3, - 0x8d,0x33,0x2a,0xb3, 0x8e,0x58,0x07,0xe9, 0xd9,0x08,0x48,0x56, 0x6b,0x21,0x58,0x2a, - 0x8a,0x1e,0x58,0x17, 0xee,0x1b,0xec,0x33, 0xe2,0xa9,0xcf,0x22, 0x07,0x48,0xf1,0x78, - 0x75,0x53,0xa6,0xaf, 0x3e,0x6a,0x18,0x0b, 0xd4,0x40,0x05,0x20, 0x09,0x1e,0xa6,0xf6, - 0xe6,0xd1,0xd8,0x7b, 0x70,0xa7,0x2c,0x74, 0x23,0x6e,0xea,0x10, 0x9c,0x9e,0x8f,0x1e, - 0x94,0xc1,0x50,0x1d, 0xfb,0xbc,0x75,0xf3, 0x7c,0x39,0x1c,0xb4, 0x4e,0xc6,0x6c,0x2a, - 0x02,0xe8,0xf8,0x6f, 0x61,0x9e,0xff,0x9a, 0xff,0x65,0x84,0xd9, 0x02,0x00,0xaa,0x78, - 0x6e,0xa0,0x75,0xf3, 0xe5,0xef,0x7d,0x3c, 0x77,0x84,0xe0,0x94, 0xee,0x7b,0x2e,0xff, - 0x56,0x07,0x34,0x36, 0x4b,0x94,0xc2,0x37, 0x28,0x01,0xa1,0x60, 0x32,0x20,0xb0,0x20, - 0x90,0x1b,0xb6,0xa4, 0xe5,0xdd,0x0e,0xb7, 0xdf,0x15,0x60,0x05, 0x8e,0x37,0xcb,0x83, - 0x78,0x19,0x2a,0xd7, 0x8e,0x22,0x00,0xdc, 0x61,0x02,0x05,0x3a, 0x6a,0xed,0x83,0x70, - 0x0b,0x63,0xd7,0xcb, 0xc8,0xb0,0x8c,0x0b, 0x8e,0x99,0x2e,0x25, 0x36,0x24,0x50,0xf1, - 0x55,0xff,0xf1,0x66, 0x00,0x01,0x22,0x28, 0x0b,0x41,0x01,0x9b, 0x22,0x4b,0x1e,0xa5, - 0x50,0xb4,0xdc,0x8b, 0xbb,0x09,0xb8,0xa7, 0xd5,0x00,0x38,0xe7, 0x37,0x00,0x54,0x9c, - 0x93,0x06,0x90,0xe6, 0xae,0x64,0x4e,0xaf, 0x27,0x12,0x1c,0xf7, 0x52,0x7b,0xcc,0x20, - 0x1c,0x45,0x19,0x8b, 0x37,0xd2,0x1d,0x52, 0x69,0x8c,0xad,0xf0, 0x87,0x8e,0x33,0xa3, - 0x24,0x09,0x38,0x81, 0x01,0x7d,0xca,0xc3, 0x87,0x0e,0xb6,0x9a, 0x8a,0x10,0xe9,0xe3, - 0x00,0x14,0xc6,0xad, 0xb2,0x20,0x0c,0x8c, 0x20,0x2c,0x51,0x62, 0xc5,0x51,0x60,0xc8, - 0xc5,0x58,0x31,0x90, 0x06,0x7a,0x75,0x9b, 0xce,0x39,0x7a,0x4f, 0xca,0x27,0xa7,0x55, - 0x4b,0x82,0x5e,0x28, 0xb2,0x4d,0x2e,0x23, 0x94,0xca,0x14,0x0f, 0x2c,0x28,0x7b,0x98, - 0x64,0xec,0x31,0x70, 0x87,0xe0,0x30,0x93, 0x56,0x24,0x46,0x00, 0x22,0xaa,0xa4,0x54, - 0x9b,0xb6,0x43,0x02, 0x2c,0x6d,0xa3,0x1c, 0xb4,0x89,0x03,0xeb, 0x42,0x42,0xa4,0x9b, - 0x65,0x16,0x5b,0x51, 0x17,0x6d,0x14,0x05, 0x84,0x16,0x02,0x22, 0x91,0x45,0x46,0x41, - 0x64,0x1c,0xb6,0x20, 0xb5,0x92,0xd6,0x84, 0x63,0x08,0xb1,0x45, 0x8a,0xa2,0x92,0x0b, - 0x04,0x64,0x99,0x6e, 0x25,0x06,0x0a,0xd6, 0xc1,0x49,0x11,0x48, 0xb1,0x72,0x99,0x9e, - 0xac,0x25,0x83,0x22, 0x8c,0x73,0x6c,0xc6, 0x08,0xc1,0x61,0x18, 0x84,0x05,0x08,0x8b, - 0x1a,0xcc,0xb9,0x82, 0x0a,0x98,0xca,0xd4, 0xa5,0x6d,0x10,0xaa, 0x08,0x30,0xb9,0x85, - 0x6c,0x4d,0x76,0x62, 0x3b,0x72,0xd2,0x54, 0x4f,0xc9,0x36,0x0e, 0x23,0x4d,0x12,0x62, - 0x30,0x20,0x7b,0xd8, 0x01,0xe1,0x26,0x0c, 0x92,0x72,0xd2,0x40, 0x41,0x08,0x80,0x97, - 0x83,0x92,0x02,0x9e, 0x36,0x16,0x39,0x37, 0x22,0xc2,0xa1,0x90, 0x8d,0x12,0x63,0x1a, - 0x94,0x0a,0x99,0xdb, 0x62,0xcc,0x62,0xcd, 0x64,0xc4,0xcc,0xb0, 0xbe,0x2e,0x30,0x32, - 0xba,0x47,0x30,0x6d, 0x6a,0xca,0x95,0xd6, 0x62,0x65,0xa2,0x85, 0x5d,0x80,0xd6,0x43, - 0x12,0x6d,0xa4,0x8e, 0x15,0xcb,0x4c,0xc4, 0xc5,0xcb,0x6a,0x2a, 0x22,0x8a,0x82,0xfa, - 0x6e,0xb5,0x74,0x97, 0x12,0xa6,0x5a,0xd6, 0x28,0xb1,0x4a,0x52, 0xf2,0x4f,0x2c,0xe7, - 0x04,0xd9,0x28,0x85, 0x64,0xaa,0xc0,0x16, 0x40,0x51,0x64,0x02, 0xb0,0x90,0xaf,0x10, - 0x0a,0xc8,0x28,0x45, 0x20,0xb0,0x0c,0xca, 0x11,0x72,0x24,0xb6, 0x54,0x59,0x96,0xbb, - 0x09,0xe5,0x93,0xcb, 0x20,0x79,0x40,0x24, 0x87,0x84,0x80,0x04, 0xd4,0xd6,0x06,0xed, - 0x81,0x03,0x77,0x77, 0x33,0x33,0x33,0x33, 0x34,0xd6,0x04,0x80, 0x6b,0x20,0x48,0x6a, - 0x48,0x4d,0x48,0x10, 0x9a,0x84,0x93,0x52, 0x6e,0xee,0xee,0xbb, 0xbb,0xb9,0xb2,0x12, - 0x13,0x58,0x6e,0xee, 0xe6,0x66,0x66,0x66, 0x66,0xc8,0x43,0x58, 0x49,0xa9,0x0d,0x64, - 0x26,0xb3,0x52,0x49, 0xae,0xb2,0x1a,0x90, 0x09,0xbb,0x40,0x92, 0x4e,0x07,0x81,0x3b, - 0x29,0x6d,0x2a,0xc0, 0xb6,0xc8,0x51,0xc6, 0xa6,0x20,0x91,0x5a, 0xd5,0x08,0xaa,0x82, - 0x22,0x41,0x90,0xf0, 0x95,0xf2,0xea,0x0b, 0x30,0x51,0xa9,0x48, 0x89,0xac,0xaa,0x64, - 0x56,0xaa,0x52,0xc6, 0x22,0x30,0x74,0xc6, 0xa8,0xbf,0x6e,0xf7, 0x1f,0xaf,0xbe,0x7e, - 0x1e,0x44,0xf6,0x6f, 0x8f,0x3d,0xf2,0x04, 0xac,0x4b,0xa6,0x34, 0x54,0x9c,0xaf,0x04, - 0xd2,0xd6,0xb5,0x11, 0x2c,0xa9,0x14,0x5b, 0x6c,0xab,0x19,0x82, 0xe5,0x98,0xc0,0x39, - 0x64,0xb0,0xc6,0x1a, 0x61,0x88,0x17,0x29, 0x96,0xe5,0xa6,0x65, 0xc0,0x99,0x6b,0x52, - 0xaa,0xc1,0x2d,0x53, 0xd5,0xdd,0xd7,0x07, 0x73,0x31,0x25,0x68, 0xc1,0x45,0xa3,0x47, - 0x4a,0x0a,0x14,0x13, 0x28,0x25,0xa2,0x2e, 0x5b,0x99,0x4c,0x19, 0x8c,0xc3,0x2d,0xaa, - 0xb0,0xa6,0x0d,0x56, 0x19,0x6c,0x1c,0x1a, 0xe5,0x2b,0x91,0x56, 0x8a,0x5c,0xb2,0xe1, - 0x89,0x54,0x30,0xb6, 0x8b,0x1b,0x5a,0x52, 0xb5,0x46,0xba,0xd1, 0x15,0x53,0x2e,0x5f, - 0x6b,0x4c,0x36,0xf5, 0x99,0x94,0x59,0x41, 0xb0,0x52,0x31,0x6b, 0x50,0x52,0xa5,0xad, - 0x14,0x18,0xa2,0x32, 0xd6,0xa8,0x58,0xa0, 0xb2,0x2c,0x46,0xc1, 0x84,0x16,0x0b,0x16, - 0xa2,0x8a,0x55,0x8a, 0xcd,0x65,0x70,0xa9, 0x05,0x09,0x52,0x45, 0x9d,0x31,0xee,0xc8, - 0x63,0x03,0x10,0x9a, 0xe1,0x2b,0x00,0xcc, 0x91,0xf4,0xe5,0x93, 0x76,0xbf,0xb0,0xfd, - 0x3f,0x1e,0x68,0x1c, 0x6a,0x06,0x4d,0x96, 0x0d,0xec,0x4c,0x29, 0xa0,0x11,0x69,0x80, - 0x48,0x38,0xa2,0xcb, 0x59,0x07,0x04,0x12, 0xf0,0xb0,0x60,0x7b, 0x14,0xb8,0xb7,0x04, - 0xc6,0x20,0xbe,0x8e, 0xa7,0x1e,0xff,0xae, 0x60,0x8c,0xac,0x2a, 0x47,0xd1,0xb0,0xaf, - 0x59,0xf3,0x8c,0xb4, 0x82,0xcc,0x6f,0xc1, 0x94,0x5d,0x34,0xed, 0xee,0xa5,0xe5,0x22, - 0x2f,0xee,0x85,0x0e, 0x6b,0xc3,0xb6,0x84, 0x13,0x9e,0xf2,0x7e, 0x08,0xd7,0x59,0x19, - 0x18,0xa0,0xc1,0x4c, 0x72,0xb4,0xc7,0x22, 0x93,0x67,0xbc,0xd1, 0x70,0x37,0xc4,0x09, - 0x19,0xa0,0x46,0x26, 0x20,0xb9,0x6b,0x96, 0xbc,0x73,0xd3,0x79, 0xd4,0xb2,0x35,0xd6, - 0x2b,0x89,0x3b,0xbb, 0xba,0x4e,0xeb,0x32, 0xd4,0x12,0x58,0xba, 0x5a,0x13,0xcb,0x59, - 0x5a,0xe8,0xe0,0x68, 0x47,0xb2,0xf3,0x66, 0x6d,0xbb,0x0e,0x3a, 0xbd,0xe9,0x97,0xbe, - 0x9a,0xd0,0x1c,0xab, 0x65,0x60,0x5c,0x02, 0x61,0x87,0x76,0xb7, 0x45,0x20,0xc7,0x98, - 0x7e,0x4d,0x41,0x03, 0x4e,0x28,0x20,0x11, 0xb2,0x93,0x2d,0x54, 0x08,0x25,0x04,0xe8, - 0x65,0x19,0x20,0x58, 0x16,0x77,0x80,0x80, 0x44,0x44,0x56,0x63, 0xbc,0xa2,0xb3,0xd2, - 0x63,0x6b,0x51,0xc8, 0x99,0x60,0x98,0x10, 0x3a,0x0d,0x12,0xd2, 0x5e,0xbe,0xbb,0xb0, - 0xe1,0xcb,0xf0,0xf8, 0xfc,0xb3,0xca,0x1d, 0x71,0x2c,0xef,0xe1, 0x64,0xcf,0x0d,0x8c, - 0x43,0xa6,0x7d,0x29, 0x8c,0x24,0x18,0xa4, 0x63,0x18,0x41,0x7a, 0xe4,0x3b,0xcb,0x91, - 0xf6,0xae,0x64,0x11, 0x98,0x89,0x17,0x2e, 0x38,0x2a,0x65,0x2a, 0xc5,0x12,0xa4,0xad, - 0x65,0x6b,0xd1,0x95, 0x32,0xd6,0xda,0x34, 0x5f,0x7d,0xac,0x50, 0x45,0x10,0xc8,0xee, - 0x4a,0x29,0x1c,0xb5, 0x54,0x41,0x8c,0x2a, 0xaa,0x88,0x46,0x33, 0x2c,0xa1,0x94,0x69, - 0x2a,0x08,0x85,0x49, 0x0b,0xe8,0x08,0xaa, 0x89,0xdd,0x88,0x82, 0x08,0x46,0x02,0x89, - 0x22,0x20,0x49,0x03, 0xe8,0x90,0xa2,0x31, 0x82,0x0a,0x11,0x90, 0x18,0x08,0x09,0x10, - 0x21,0x0f,0x01,0x45, 0x3d,0xcb,0x45,0xc0, 0xb2,0x04,0x10,0x49, 0x20,0xc6,0x48,0xc6, - 0x42,0x22,0x48,0x82, 0x45,0x01,0x18,0xb0, 0x44,0x05,0x08,0xa0, 0x04,0x8a,0x12,0x12, - 0x11,0x3b,0xc2,0x08, 0x41,0x15,0x0e,0xef, 0xa1,0xea,0x2c,0x78, 0xbd,0x1e,0x6e,0xfa, - 0xb9,0x05,0x38,0x30, 0x50,0x42,0x8c,0xbb, 0x16,0x54,0x55,0x38, 0xd0,0x40,0x00,0xe6, - 0xbb,0x97,0x7c,0xb5, 0x11,0xaa,0xa6,0xa9, 0xd4,0xf7,0xdd,0x66, 0x5d,0x1e,0x2e,0x5e, - 0x76,0x1e,0x33,0xbd, 0x74,0x5c,0xd6,0x8a, 0xf5,0x68,0xdf,0xcb, 0xf8,0x92,0x56,0x27, - 0x5f,0xa1,0x17,0xd6, 0xdb,0x5e,0xb7,0x35, 0xc1,0x57,0xca,0xff, 0xae,0xc5,0xf3,0xff, - 0x2a,0x4c,0x54,0x34, 0x9a,0x67,0x3f,0x0f, 0x2d,0xdc,0xdf,0xcd, 0xa5,0xfc,0x8b,0xc3, - 0xa7,0x12,0x57,0xa6, 0x53,0x11,0x77,0xd5, 0xd1,0xa0,0x4c,0xd4, 0x34,0x8d,0x2e,0x02, - 0x60,0xa9,0x81,0x6b, 0x0d,0xb7,0x12,0xb5, 0x15,0x57,0x72,0x8d, 0x4b,0x1c,0x64,0x60, - 0xd4,0x2b,0x79,0x37, 0x1a,0x8a,0x45,0x4b, 0x54,0xb1,0x4c,0xb0, 0x92,0xb2,0xd0,0xa8, - 0x88,0xc3,0x96,0xc5, 0x8b,0x05,0x00,0x51, 0x55,0x4e,0xf9,0x30, 0xc2,0xd9,0x51,0x18, - 0x2c,0x95,0x1b,0x61, 0x45,0xe3,0x46,0x19, 0xd3,0x82,0x88,0xa2, 0x30,0x14,0x31,0x0a, - 0x49,0x24,0xb2,0x73, 0x5b,0x39,0xb9,0xb2, 0xe1,0xaa,0xef,0x61, 0xa7,0x16,0xb0,0xbc, - 0x19,0xe7,0x16,0x3d, 0x56,0xe5,0xc3,0x2b, 0xa7,0x90,0x42,0x5c, 0x68,0x12,0xa2,0xed, - 0x00,0xa1,0xfb,0x39, 0x08,0x78,0xfa,0x35, 0x8a,0x77,0x98,0x71, 0x31,0x20,0xee,0x27, - 0xfa,0xfe,0x90,0x2c, 0x32,0x0e,0xd6,0x53, 0x95,0x41,0x71,0x92, 0xed,0x7d,0x25,0xfc, - 0x49,0xbf,0xc2,0x38, 0xf7,0x7f,0x0f,0x9d, 0x91,0x7e,0x2f,0xbc, 0xab,0xf0,0x6a,0x1e, - 0xca,0xc9,0x2b,0x27, 0x89,0x15,0xbe,0x0f, 0x93,0xbf,0x41,0xa3, 0xb4,0xe3,0x24,0x80, - 0xcb,0x88,0x85,0x06, 0x29,0x81,0xdd,0x5c, 0x6b,0x07,0x3a,0x76, 0xb5,0x71,0x35,0x91, - 0x9d,0x49,0x50,0x44, 0x8f,0x3c,0x19,0x13, 0xa8,0x08,0x05,0xfe, 0x93,0x07,0x5c,0xce, - 0x7d,0x17,0xc3,0x3f, 0x23,0x24,0xa4,0x2e, 0x99,0xdd,0xbb,0x57, 0xd8,0x68,0x58,0x08, - 0x13,0x76,0xb7,0x53, 0xeb,0x78,0x4a,0xf8, 0x12,0x30,0xc8,0xb3, 0xf3,0x0a,0x25,0x38, - 0x6c,0xeb,0x63,0xe2, 0x1f,0x82,0xec,0x71, 0xf5,0x8e,0xba,0xf8, 0xbb,0x8d,0x02,0xd4, - 0x12,0x29,0x76,0x3f, 0xb0,0xdf,0x84,0xc9, 0x5d,0x5a,0x53,0x81, 0x8a,0xca,0xb7,0xc0, - 0xa2,0xb8,0xfe,0xf6, 0x2c,0x16,0x0f,0x6b, 0xa9,0x2c,0xad,0x31, 0xc4,0x9a,0x8d,0x1f, - 0x3a,0x73,0x16,0x2b, 0x72,0x9a,0xbe,0x08, 0x95,0x95,0x92,0x28, 0x34,0xb5,0xb1,0xbb, - 0x08,0x0a,0xc5,0x17, 0x03,0x5f,0xaa,0xfb, 0x1f,0xc2,0xf5,0xd6, 0xed,0x48,0xfa,0xe9, - 0x62,0xa9,0x9c,0x0a, 0x47,0x08,0x33,0x96, 0x22,0xb8,0x27,0x67, 0x86,0x74,0x3f,0x9c, - 0x21,0x11,0x99,0x03, 0x43,0xb5,0x65,0x88, 0x8e,0xd0,0xb8,0x96, 0x23,0xff,0x93,0xfe, - 0xf6,0xf6,0x73,0xcf, 0xec,0xcf,0x5b,0x61, 0x51,0x0d,0x45,0xe3, 0xa3,0x3f,0x2a,0x1c, - 0xc9,0x5c,0xa5,0xbc, 0xa5,0xb9,0xb9,0x9a, 0xb8,0xa3,0x13,0x18, 0xe5,0x2a,0xb2,0x62, - 0x7d,0x14,0x97,0x2d, 0x2a,0xac,0x8e,0xd1, 0x0f,0xa7,0x4c,0x37, 0x6d,0x41,0x1e,0xb5, - 0x31,0xc2,0xe7,0x76, 0x44,0x62,0x32,0x56, 0x7d,0x1d,0xfc,0x8e, 0x37,0x81,0x71,0x1b, - 0xc5,0x07,0x52,0xfd, 0x0b,0xf4,0xdf,0xf2, 0xdf,0xf1,0x7c,0xcf, 0xc9,0xe8,0xaf,0x97, - 0xe9,0x29,0x76,0x97, 0x4a,0xa2,0x29,0x0c, 0x8f,0x5a,0x45,0x92, 0xa3,0x96,0x45,0x51, - 0x46,0x23,0xa4,0x41, 0x72,0xe3,0x11,0x32, 0x01,0xe9,0x01,0x0e, 0x55,0x1c,0x81,0x59, - 0x5a,0xcd,0x36,0x85, 0x9c,0x60,0x5b,0xd3, 0x11,0x64,0x20,0x25, 0xa8,0x20,0x38,0x89, - 0x2f,0x28,0x3b,0x2f, 0x25,0x47,0x61,0x3d, 0xec,0x2d,0x13,0x52, 0x01,0xa1,0x2a,0x35, - 0x34,0xae,0xab,0x8e, 0xe5,0xee,0x74,0xf8, 0xda,0xe6,0x49,0x3d, 0xdc,0xe1,0x7d,0x8c, - 0x46,0xf3,0xcc,0x0e, 0x5b,0x92,0x69,0x58, 0xbd,0xb6,0x69,0xdc, 0x53,0xd5,0xf1,0x63, - 0x32,0xd3,0xea,0xb8, 0xe3,0x75,0x0c,0x30, 0x8b,0xfa,0x12,0x73, 0xef,0x7d,0xcc,0x6b, - 0xc6,0xc4,0xa8,0x38, 0x61,0xc4,0xa9,0xb5, 0x0a,0x21,0xee,0x23, 0x16,0x1e,0x74,0xf0, - 0x67,0xcc,0xf8,0x58, 0xca,0xcb,0x37,0x28, 0x88,0xaa,0x71,0xd1, 0x72,0x2c,0x37,0x72, - 0x60,0x3e,0xd6,0x8a, 0x89,0xf8,0xad,0x07, 0x2d,0x89,0xb7,0xac, 0xaf,0x1a,0xa8,0xef, - 0x33,0x14,0x36,0xd1, 0xba,0xd4,0xd3,0x1b, 0x04,0xf6,0xe0,0x62, 0xb7,0x16,0xdb,0xbf, - 0x9c,0x79,0x99,0x13, 0x08,0xe1,0xc5,0xba, 0xb1,0x68,0x9a,0x03, 0x05,0x82,0x8f,0x89, - 0x82,0xbd,0x6a,0xdc, 0x81,0x85,0x04,0x2a, 0x3c,0x13,0x53,0x6e, 0x5e,0x3d,0x8f,0x35, - 0x6d,0xbb,0xb2,0xe2, 0x72,0x3b,0x56,0xc0, 0x8d,0xd0,0x51,0xae, 0x0a,0x5b,0xa6,0x09, - 0x15,0x26,0xc4,0xaf, 0x3e,0x8c,0xde,0x19, 0xc6,0xad,0x52,0xee, 0x2b,0xc3,0x14,0x4d, - 0x61,0xc3,0x70,0xa4, 0x64,0x44,0x68,0xa5, 0x02,0xde,0xed,0xc9, 0xa3,0x41,0xa1,0x78, - 0xa0,0x3c,0xcb,0x25, 0x5d,0x16,0xd4,0x22, 0x40,0x69,0x57,0x1d, 0x5e,0xa1,0x38,0xda, - 0x2e,0x49,0x1a,0x64, 0x15,0x89,0xb2,0xc2, 0x34,0x11,0x31,0x95, 0xfb,0xaf,0xf8,0x2c, - 0xe8,0xf1,0xcc,0xa9, 0xee,0x4a,0x83,0x9f, 0xd0,0x69,0xa0,0x5d, 0xa6,0xa6,0xd0,0x5d, - 0x3b,0x58,0xb2,0x2c, 0x52,0x45,0x10,0x8a, 0x57,0xda,0xac,0xff, 0x7a,0x4b,0xf3,0x90, - 0xfc,0x3f,0xdb,0x43, 0x4c,0xc7,0x4c,0x25, 0x3c,0x2e,0x9a,0x69, 0xaf,0xe7,0x52,0xce, - 0xc5,0xd2,0x85,0x3d, 0x59,0xed,0xfd,0x0f, 0xa6,0x71,0x3a,0x4e, 0x66,0x77,0x66,0x9d, - 0xb6,0x31,0x7e,0xdb, 0xd2,0x62,0x31,0x91, 0xfc,0x8b,0x25,0xee, 0x85,0x4a,0x32,0xdb, - 0x54,0x15,0x92,0xb5, 0x2a,0x5a,0x83,0xb8, 0x13,0x10,0x51,0xca, 0x0b,0x46,0x2c,0x60, - 0xca,0xca,0xb7,0x2d, 0xcb,0x8c,0x0a,0x65, 0x29,0x52,0x85,0xb2, 0x51,0x95,0x0b,0x29, - 0x61,0x4b,0x42,0x94, 0xc3,0x24,0xf4,0xc2, 0x93,0x47,0x59,0x52, 0x23,0x14,0x25,0x49, - 0x41,0x82,0x20,0xe5, 0x59,0x0a,0x25,0xa8, 0xaa,0xcb,0x11,0x05, 0x1c,0x40,0xaa,0xc4, - 0x65,0x49,0x30,0x18, 0xaa,0xb1,0x98,0xc9, 0x9b,0x1f,0x58,0x78, 0x5b,0xd1,0x28,0xf1, - 0x03,0x33,0x87,0x38, 0x69,0xcb,0x54,0x5d, 0xd7,0x6e,0xd1,0x62, 0x8b,0xba,0x9d,0x1d, - 0x3b,0xe4,0xda,0x19, 0x1f,0x6a,0x14,0xee, 0xee,0x66,0x51,0xbb, 0x10,0x52,0x50,0x8e, - 0x9a,0x3f,0x6e,0x53, 0x54,0xb8,0x2b,0x62, 0x5c,0xb7,0xad,0xaf, 0x7c,0xf2,0xf7,0x26, - 0x5c,0x56,0x53,0x43, 0xeb,0x25,0x5e,0x27, 0x28,0x4c,0x82,0x82, 0x85,0x53,0x04,0x0d, - 0xe8,0xdc,0x58,0x2e, 0xa7,0x7d,0x78,0xe2, 0x76,0x5d,0xdc,0xe5, 0x93,0x59,0xa7,0x2e, - 0xcc,0x96,0xce,0xe6, 0xea,0xce,0xb8,0x8b, 0x20,0x71,0xb0,0xd9, 0x8f,0x82,0x95,0x0d, - 0x0b,0x9a,0xc2,0x8a, 0xb4,0x10,0xc9,0x47, 0x83,0x9d,0xf2,0x37, 0x97,0xaf,0x34,0x40, - 0x28,0xec,0xbb,0x0a, 0x36,0x99,0xdc,0x3f, 0xd3,0x6a,0x8b,0x18, 0xf8,0xf6,0x70,0xe4, - 0x77,0x21,0x7d,0x0b, 0x68,0x40,0x62,0x4d, 0x97,0x49,0x3e,0x65, 0x11,0xd4,0x1e,0xb5, - 0x09,0x86,0x3f,0x05, 0xfd,0xdb,0xec,0x91, 0xc9,0xbc,0x34,0xb8, 0x97,0xed,0x5a,0xad, - 0x29,0x6a,0x30,0x41, 0x4d,0xb4,0x02,0xeb, 0x24,0x47,0x73,0x58, 0xae,0x24,0x8c,0x84, - 0x5c,0xd2,0xd3,0xb9, 0xbb,0xe7,0xbb,0x40, 0x4b,0x28,0x62,0x41, 0xc2,0x8b,0xa4,0x86, - 0xd7,0x0d,0x6a,0x16, 0xb8,0x9d,0x12,0xf9, 0xb5,0x38,0x4c,0x3f, 0x95,0xae,0x97,0xfc, - 0xcf,0x8c,0x52,0xfd, 0x89,0x49,0x59,0x55, 0x81,0x89,0x31,0x07, 0x7a,0x50,0xa8,0x06, - 0xd1,0xe4,0x55,0x16, 0x69,0xae,0x2b,0x5e, 0x37,0xee,0xff,0x7a, 0xf1,0xfa,0x7f,0x8c, - 0x7d,0x5b,0xf4,0xff, 0x47,0xfb,0xde,0x3c, 0xc7,0xc5,0x94,0x11, 0x05,0x8d,0xb5,0x01, - 0x62,0x89,0xdb,0xd4, 0xed,0x4f,0x2c,0xa1, 0x07,0x2c,0xa9,0x31, 0xac,0xf3,0x89,0xcd, - 0xef,0x56,0x40,0xd6, 0xe7,0x65,0xdb,0x46, 0x2b,0xfb,0xe7,0xe5, 0x3f,0x0d,0x6e,0x97, - 0xce,0xd9,0x03,0x89, 0x06,0xe8,0x17,0x45, 0xe7,0x62,0x61,0x3e, 0xbc,0x0f,0xe1,0x0c, - 0x90,0x5e,0xc7,0xa1, 0xa0,0xfa,0x67,0xdf, 0xad,0x0d,0xfd,0x51, 0x64,0x37,0x65,0x0f, - 0x46,0xfb,0xc1,0xac, 0xfd,0xca,0x63,0x2a, 0x4f,0xf3,0x7d,0x0f, 0xca,0xcd,0x23,0xdf, - 0xb6,0xda,0xf9,0x3d, 0x3f,0xa5,0xef,0xf4, 0xed,0x6a,0x7a,0xf2, 0xae,0xc2,0xbf,0x35, - 0x64,0x85,0x8f,0x2b, 0xf6,0x2f,0x9a,0xfc, 0x7f,0xfa,0x75,0xbf, 0x2c,0x5b,0xd5,0xa8, - 0x23,0x25,0x65,0x88, 0x42,0xb2,0x56,0x7e, 0x55,0xa8,0x22,0x7d, 0xf4,0xbc,0xb5,0x07, - 0x9f,0x6d,0x98,0x0a, 0x2c,0x70,0x7a,0xfd, 0xd1,0x4f,0x13,0xc4, 0x95,0xf6,0xee,0x1f, - 0x75,0xb0,0x58,0x52, 0xe0,0x4a,0x50,0x08, 0x00,0x6d,0x7c,0x38, 0xd3,0xcc,0xb5,0x18, - 0x27,0xc3,0xf8,0x33, 0x7e,0xee,0xe7,0x67, 0x52,0x1d,0x07,0x81, 0xc6,0xc0,0x2b,0x9a, - 0xfe,0xe6,0xb5,0x22, 0xe7,0xc4,0xe3,0xa3, 0x83,0x37,0xc5,0xec, 0x5f,0x71,0x98,0x60, - 0x88,0x8c,0xd6,0x4b, 0x11,0x15,0x06,0x9e, 0x4e,0xd0,0x6f,0xa5, 0xd8,0x81,0x7d,0x77, - 0xd3,0x71,0xcd,0x20, 0x54,0x08,0x33,0x3a, 0x74,0x85,0xb6,0x65, 0xf5,0x52,0x97,0x4f, - 0x9f,0xf9,0x8e,0x52, 0x1f,0x9b,0x24,0xc0, 0x54,0xb0,0xb9,0x43, 0x41,0xca,0x69,0x60, - 0x6a,0x5a,0x8f,0x37, 0x6e,0xdf,0x97,0x57, 0x90,0x13,0xea,0x86, 0xa5,0xa9,0x44,0x25, - 0xa5,0x5b,0xf2,0xdd, 0xf7,0x3c,0x9c,0x14, 0x0f,0x5f,0x5c,0x97, 0x1b,0x40,0x4b,0x42, - 0xb7,0xf4,0x99,0xc3, 0x8f,0xe8,0xba,0xd3, 0x0e,0xc0,0xdc,0x9b, 0x70,0x10,0x31,0x23, - 0xe3,0xb6,0x41,0x97, 0x64,0xc1,0xeb,0x61, 0xa3,0x5d,0xfa,0xcc, 0x58,0xd0,0x22,0xdb, - 0x11,0x40,0x21,0x14, 0xd8,0x93,0xfd,0xec, 0xdf,0x0c,0xd3,0xa2, 0xc5,0xc0,0x7d,0xff, - 0xe3,0x7d,0x3d,0xab, 0xe9,0xfd,0xff,0x5b, 0xfa,0x0f,0x7d,0x95, 0x37,0x27,0xf3,0x7f, - 0x79,0x9c,0xa4,0x52, 0x04,0x72,0xe8,0x0f, 0x2e,0xc6,0xbb,0x27, 0x13,0x06,0xd9,0xd1, - 0xfb,0xd4,0x48,0xbc, 0x45,0x24,0x96,0x9c, 0x20,0x1d,0x33,0x1b, 0xfb,0xd0,0x9c,0xe1, - 0xa9,0xfa,0xd1,0x53, 0x5b,0xc6,0x25,0xd8, 0xf6,0x39,0xdf,0x8f, 0xee,0x45,0xc9,0x7c, - 0x7d,0x7b,0x68,0x42, 0xa2,0xd7,0x87,0xd6, 0xc5,0xb8,0xbe,0x9b, 0xee,0xef,0xf9,0x18, - 0xcc,0x5e,0x28,0xcf, 0x61,0xf8,0x97,0xe8, 0x05,0xab,0xbb,0xb9, 0x47,0x5e,0x93,0x23, - 0xa4,0xd3,0x6a,0x51, 0x5f,0x26,0xc6,0x7d, 0xef,0x87,0x00,0xcf, 0x63,0x0f,0x95,0xe3, - 0x4d,0x6e,0x4a,0x8a, 0x54,0x2e,0xd6,0x07, 0xdb,0x99,0x25,0x1c, 0x6b,0xa0,0xe8,0x21, - 0xcf,0x5b,0x8e,0xed, 0x6f,0x3a,0x57,0x67, 0xe5,0x7f,0x0b,0x6d, 0x8e,0x08,0x72,0xcc, - 0xf0,0x77,0x81,0xe5, 0x64,0xfd,0xe9,0x9f, 0xed,0x2a,0x4c,0xfc, 0xbf,0x93,0xbd,0x34, - 0xc0,0xd4,0xcd,0xdf, 0x5b,0xe5,0x94,0xf3, 0xbb,0x46,0x97,0x8d, 0x2c,0xea,0xd0,0xea, - 0xd2,0x1c,0xeb,0x9c, 0x4f,0xc2,0xfb,0xb6, 0x76,0x23,0xf6,0xb9, 0xf7,0xf7,0x3e,0x74, - 0xb3,0xf3,0xbf,0x66, 0x1e,0xa7,0xba,0xbe, 0xb9,0x7d,0xbd,0xaa, 0x7c,0xdd,0x49,0x35, - 0x9d,0x44,0xe9,0x45, 0x5f,0x3c,0xfd,0x06, 0x7d,0xac,0x9c,0x18, 0x8c,0x3d,0x89,0xda, - 0xfe,0x5f,0xd5,0x49, 0xf4,0x6c,0x3a,0xb0, 0x79,0x81,0x5e,0xde, 0x5c,0x8c,0x4d,0xff, - 0x88,0xf9,0x7c,0x36, 0x49,0xda,0xde,0x37, 0x0b,0x7f,0x7f,0x1e, 0x84,0x00,0xf6,0x12, - 0xbf,0xef,0xbf,0x7a, 0x4d,0x22,0x3a,0x1e, 0x08,0xeb,0x91,0x20, 0x44,0x09,0x23,0x28, - 0x36,0x51,0x37,0xff, 0x0f,0x0c,0xc6,0x8d, 0x6e,0xdb,0xce,0xc9, 0xec,0x7e,0x67,0xcd, - 0x6a,0x79,0x30,0xec, 0xe5,0x64,0xff,0x0f, 0xd2,0x66,0x08,0x22, 0xe9,0xea,0x57,0xea, - 0x7d,0x7d,0xb9,0xa3, 0xc7,0xc7,0x84,0xa5, 0xd0,0x84,0x2e,0x58, 0xae,0xaf,0x1a,0x41, - 0x1b,0x59,0x71,0x4f, 0x23,0xd1,0xce,0xa3, 0x9c,0xd9,0x60,0x78, 0x05,0x7b,0xd6,0x41, - 0x19,0x12,0xd3,0x9a, 0xeb,0x4b,0xb8,0xf6, 0x3f,0x32,0x32,0xb0, 0x6e,0x4d,0x32,0xab, - 0x30,0x70,0x67,0xff, 0x51,0x40,0x23,0xf5, 0x28,0x6f,0xe1,0xbf, 0x38,0x32,0x7a,0x7b, - 0xa8,0x6e,0x67,0x01, 0x36,0x61,0x59,0x5e, 0xbd,0xd4,0xf8,0xe8, 0x54,0xdc,0x94,0xba, - 0x1f,0x8e,0x44,0x18, 0x92,0x15,0x2d,0x06, 0x3a,0xa1,0x10,0x9b, 0x51,0x7c,0x33,0x73, - 0x3c,0x48,0x7d,0xb2, 0x3e,0xad,0x13,0x47, 0xea,0xd4,0xce,0x19, 0x8e,0x64,0x64,0xcc, - 0x5f,0x6b,0xd2,0xed, 0x2d,0xb6,0x25,0xc5, 0xd2,0x48,0x1b,0xba, 0xc6,0xc1,0xca,0xc1, - 0xfa,0xb0,0xf1,0xd0, 0x36,0x67,0x2d,0x3e, 0x73,0xb4,0xb4,0xd6, 0x26,0x24,0x09,0x0d, - 0x9f,0xda,0xe5,0xe1, 0xd3,0x41,0x67,0x40, 0xa6,0x44,0xc9,0xad, 0x68,0x45,0xea,0x2c, - 0x26,0x2d,0x68,0x9b, 0x84,0x57,0x2f,0x9c, 0xc8,0x87,0xe4,0x29, 0x29,0x05,0x30,0xf8, - 0x9d,0x7e,0x34,0x97, 0x93,0xf3,0xa4,0x17, 0xcd,0x1e,0xb7,0x4d, 0x18,0x25,0x49,0xd6, - 0x89,0xca,0x7b,0xee, 0x86,0x72,0xb2,0x51, 0xf9,0xf4,0x0e,0x1c, 0xeb,0xf1,0x29,0xb8, - 0x7e,0x59,0xbd,0xdf, 0xfc,0xfe,0x58,0xfb, 0x6e,0x93,0x88,0x0c, 0xf0,0x9f,0x79,0x8f, - 0x58,0x7c,0x74,0xed, 0x87,0x43,0xcb,0x3e, 0x9f,0x86,0x90,0xec, 0x55,0x01,0x16,0xf8, - 0xf3,0x74,0x5a,0x4e, 0x9a,0x4d,0x12,0x57, 0x98,0x5e,0xbe,0x35, 0x5a,0x89,0x97,0x82, - 0x93,0x1d,0xda,0x0f, 0x16,0xf0,0xa6,0x8e, 0x76,0x2e,0x2b,0x96, 0xb9,0x50,0x6b,0x50, - 0x98,0xc8,0x57,0x2d, 0xe3,0x4c,0xa4,0x4d, 0x67,0x2b,0x4c,0x17, 0x69,0x55,0x44,0x4c, - 0xa8,0x9e,0x8d,0x83, 0x9b,0x4b,0x7b,0xc3, 0x3a,0xf3,0xd1,0xa1, 0xa8,0xb5,0xe8,0xe5, - 0x33,0x68,0xc4,0xa2, 0x2a,0x5a,0x58,0x8a, 0x8b,0x6d,0x6d,0xaf, 0xe3,0xb6,0x60,0x9d, - 0xf3,0x26,0x9b,0x7e, 0x9b,0x93,0xef,0xa1, 0x61,0xe8,0xf6,0x9f, 0xb4,0x69,0x4e,0xdf, - 0x6c,0xac,0x59,0x08, 0x46,0x10,0x64,0x0c, 0x36,0xd9,0xfc,0xde, 0x4e,0x0c,0x23,0xdf, - 0xb7,0xe6,0x79,0x88, 0x06,0xea,0xfc,0x2d, 0xc4,0x8a,0x3b,0x98, 0x1d,0xa7,0x5b,0x0d, - 0xa1,0x4e,0x70,0xc9, 0x09,0x60,0x29,0xe5, 0x6c,0x32,0x3d,0xd9, 0xe3,0xe6,0xde,0xcb, - 0x1d,0xcb,0xbc,0xa3, 0x4b,0x7d,0x31,0x44, 0x71,0xab,0x69,0x8d, 0x3b,0x49,0x69,0x49, - 0xa1,0x7a,0x71,0x49, 0x88,0x68,0xe4,0xad, 0xd1,0x31,0x4c,0x99, 0x95,0x7c,0xda,0xaa, - 0xd2,0x8a,0x44,0x18, 0x86,0x84,0xf4,0x71, 0xac,0xc7,0x75,0xc3, 0x2b,0x72,0xcc,0x7a, - 0x3c,0x91,0x05,0x68, 0x01,0x8d,0x94,0x2a, 0xdb,0x6f,0x15,0xa2, 0x3d,0xc7,0x12,0x12, - 0x18,0x3b,0x4c,0xc6, 0xf4,0xe4,0x62,0x56, 0x91,0x42,0x23,0x13, 0xcd,0x02,0xa7,0x69, - 0xd4,0xe6,0xa5,0xa0, 0x25,0x6d,0x83,0x4d, 0xb1,0x70,0xdd,0xb1, 0xb0,0x02,0xd0,0x40, - 0x5b,0x97,0x9a,0xf7, 0x79,0x49,0x66,0x1b, 0xae,0x95,0xa3,0x84, 0x46,0xe0,0x84,0x4c, - 0x38,0xe1,0xde,0xd4, 0x90,0x57,0x77,0x16, 0x73,0x79,0x8f,0x41, 0xd8,0xc3,0xb6,0x75, - 0x6c,0x1d,0x60,0xa7, 0x56,0x83,0x8b,0x2f, 0x43,0x8e,0x08,0x31, 0xba,0xee,0x2e,0xcc, - 0xa4,0xac,0xef,0x3c, 0x65,0x75,0x05,0x81, 0xcb,0x98,0xa3,0x69, 0x50,0x7b,0x36,0xa2, - 0xd5,0xeb,0xb9,0x6b, 0x5c,0x51,0x09,0x2c, 0x2a,0xf8,0xbb,0x37, 0x0e,0x56,0x40,0x78, - 0x99,0x29,0x00,0x25, 0xd4,0x3a,0x18,0xaf, 0x67,0x6e,0x1c,0x48, 0x2c,0xe1,0xe1,0xef, - 0x38,0xce,0xde,0xe2, 0x5d,0xee,0x75,0xe2, 0xd2,0xab,0xde,0xf5, 0xc8,0x74,0x4c,0xee, - 0x8e,0x8e,0xb7,0x0a, 0x66,0x89,0xdf,0x6a, 0xd4,0xad,0x6e,0x62, 0x12,0x28,0x41,0x75, - 0x90,0x7c,0xf2,0x4c, 0xba,0x78,0xa5,0x1a, 0x8e,0x21,0xcd,0xb4, 0x72,0xb8,0xe1,0x6d, - 0x98,0xf1,0x6f,0x19, 0xae,0x93,0x29,0x02, 0x29,0xd0,0xb9,0xbc, 0xcc,0x5c,0xea,0x50, - 0x47,0x1c,0xa3,0x6a, 0x34,0x48,0xd6,0xa6, 0xb4,0x3c,0x32,0x8d, 0x19,0xce,0x3b,0x4c, - 0xab,0x11,0x38,0x96, 0x33,0x66,0xba,0x78, 0xb9,0x1d,0x90,0xe2, 0xb1,0x4e,0x9a,0x22, - 0x41,0x0d,0xa6,0xce, 0xb0,0xd3,0x62,0xc1, 0x91,0x80,0xae,0x16, 0x89,0x14,0x58,0x9b, - 0x89,0x98,0x45,0x96, 0xd2,0x57,0x23,0x4b, 0x66,0xb5,0xde,0x66, 0x4c,0x79,0x8c,0xc4, - 0xc9,0x46,0x28,0x45, 0x20,0x5c,0x8d,0x35, 0x25,0xe2,0x1b,0x98, 0x5e,0xb7,0x4e,0x92, - 0x0b,0x01,0x4b,0xce, 0x17,0xc6,0x84,0x2c, 0x14,0xdd,0xb6,0xe4, 0x09,0x85,0xcb,0x71, - 0xa7,0x33,0xb3,0x34, 0x56,0x0c,0x54,0x1e, 0x76,0xf3,0x35,0x26, 0x3c,0xbb,0x9b,0x13, - 0x19,0x45,0x16,0x39, 0xce,0x6d,0xa6,0x2e, 0x0e,0x0d,0x1b,0xa7, 0x40,0x48,0xb8,0x15, - 0x87,0x19,0x27,0x10, 0x45,0xdb,0xe1,0xd4, 0x38,0x2a,0x31,0x59, 0xaf,0x5c,0xdc,0x19, - 0x5b,0x52,0xb8,0x22, 0xc2,0x98,0x61,0x9c, 0x75,0x82,0xa2,0xaa, 0x18,0xf8,0xcb,0xcb, - 0x40,0xe2,0x54,0x3c, 0x3b,0x96,0x47,0xac, 0xcd,0x61,0xc4,0xe2, 0x8c,0xb6,0xa6,0xa2, - 0x24,0x2a,0x45,0x37, 0x6e,0x5b,0x44,0xe9, 0xe9,0x26,0xb3,0x55, 0x47,0x1d,0x26,0x2d, - 0x05,0x32,0xf5,0x4b, 0xe0,0xd2,0x0d,0x21, 0x14,0x00,0x62,0x29, 0xb4,0xd8,0xb0,0x81, - 0x56,0xdc,0x95,0x17, 0x1a,0xad,0x2d,0xc9, 0x16,0xb0,0xe2,0x39, 0x08,0x86,0xc1,0x30, - 0x12,0x12,0xd6,0xb2, 0x28,0x08,0x30,0xee, 0xf7,0xe3,0x96,0xf8, 0xe6,0x01,0x5b,0x99, - 0x0a,0x1e,0x1a,0xd7, 0xc7,0x58,0x38,0x11, 0x84,0x91,0x70,0x01, 0x44,0xc6,0x2b,0xeb, - 0x3d,0x70,0x09,0x01, 0x88,0x00,0x53,0x10, 0x80,0x30,0x41,0x08, 0x0c,0x15,0x82,0xa1, - 0x11,0x45,0x10,0x90, 0x3f,0x3f,0x59,0x48, 0x85,0xa2,0xc8,0x4d, 0x1f,0x99,0x67,0xd7, - 0xfb,0xaf,0xc7,0x61, 0x03,0x24,0x10,0x24, 0x59,0x04,0x04,0x78, 0xfe,0xfa,0x81,0x2d, - 0x21,0x01,0xfa,0x90, 0xfc,0x9f,0x67,0xa9, 0xb0,0x0d,0xe4,0xec, 0xff,0xcf,0xe2,0x3c, - 0x3f,0x69,0x78,0x19, 0x08,0x42,0x42,0x49, 0x3f,0x4d,0x17,0xc4, 0x0b,0x49,0x14,0x07, - 0xc4,0xff,0xea,0x6d, 0x1f,0xe9,0x00,0xa9, 0x20,0x09,0x23,0xd3, 0x57,0x56,0x75,0x7b, - 0x1f,0x83,0x67,0xf9, 0x1f,0xcd,0xbf,0x90, 0xfe,0xaf,0x03,0xf4, 0x0c,0xe2,0x82,0x24, - 0x15,0x88,0xa0,0x28, 0xc5,0x8a,0xa8,0xb1, 0x09,0x40,0x40,0x25, 0x10,0x90,0x09,0x40, - 0x55,0x40,0x52,0x85, 0x54,0x12,0x22,0xc3, 0x72,0xe0,0xbb,0x6e, 0x74,0xf8,0x35,0x38, - 0xbf,0x0f,0x61,0x04, 0xba,0x96,0x53,0xe8, 0x4f,0x83,0xa5,0x33, 0x83,0x20,0x1c,0x11, - 0x08,0xa7,0x0d,0xca, 0x89,0xb2,0x22,0xa1, 0x89,0xa5,0xb4,0x52, 0x68,0xb0,0x1c,0x95, - 0xb6,0x73,0x15,0xaf, 0xcc,0x65,0xb5,0xc3, 0xfe,0xb7,0xff,0x05, 0xfe,0x7b,0xc7,0xf8, - 0xe4,0x47,0xa5,0x17, 0xa4,0x7e,0xae,0xb4, 0xfa,0xce,0xe2,0x9a, 0x2f,0x1f,0xe4,0x1a, - 0xce,0x49,0x3c,0xbe, 0xb7,0xd5,0xbd,0x2d, 0xed,0xa3,0x92,0x58, 0xf7,0xbf,0xdb,0x71, - 0xe5,0x7b,0x1b,0x92, 0xda,0x1c,0x9c,0x40, 0xe0,0x85,0x6a,0x4a, 0x80,0xd6,0x8b,0xa4, - 0x7a,0xbb,0x5d,0x6f, 0x97,0x7e,0xee,0xf0, 0xb9,0x4a,0xe8,0x65, 0x58,0x01,0xe9,0x20, - 0x75,0xf9,0xf9,0xbe, 0x62,0xe5,0x0c,0x61, 0x98,0xa9,0x51,0x27, 0x94,0xa0,0x8f,0x94, - 0xc6,0x3b,0xfa,0xb7, 0x94,0xe1,0x95,0xe1, 0xc6,0x1f,0xe3,0xa7, 0x0e,0xaf,0x2b,0x6d, - 0x65,0x84,0xb9,0x74, 0x85,0x01,0x97,0x44, 0xa4,0xe2,0x2a,0x6b, 0x53,0xfa,0xde,0x4d, - 0x6f,0x28,0xc1,0x70, 0x9f,0xd7,0xfe,0x8b, 0xe6,0xa6,0x21,0x0d, 0x7f,0xc3,0x0c,0x27, - 0x73,0x46,0x3f,0x55, 0xc4,0xa6,0x0c,0x54, 0x48,0x82,0x02,0x08, 0x28,0xa8,0xa2,0xa8, - 0xad,0x6a,0x2d,0x56, 0x15,0x15,0x15,0x51, 0x41,0x88,0x88,0x96, 0x95,0x03,0xeb,0xfb, - 0x3d,0x90,0x6d,0x95, 0x16,0x8a,0xae,0xea, 0xf1,0xad,0x6a,0xaa, 0x90,0xf7,0xe7,0xcc, - 0x53,0x05,0xc6,0xa2, 0x20,0xb1,0xf7,0xe6, 0x71,0x09,0x6d,0x53, 0x5e,0xbc,0x77,0xcd, - 0x19,0xd3,0xef,0xc2, 0xb0,0xa3,0xf9,0x7f, 0xcd,0xe6,0x48,0x1a, 0xab,0x17,0x97,0xc0, - 0x78,0xe6,0x70,0x45, 0x20,0x02,0x93,0x88, 0xc8,0xa1,0xe1,0xbf, 0xb3,0x66,0xad,0x37, - 0x4b,0xc3,0x6f,0xe0, 0xf0,0x09,0x58,0x2a, 0x92,0x4f,0xad,0x64, 0x32,0x46,0xcd,0x2e, - 0x10,0x38,0x1b,0xee, 0x9b,0x36,0x67,0x21, 0x5b,0xea,0xac,0x30, 0x01,0xe7,0xb2,0x17, - 0x97,0x94,0x92,0x0c, 0x2a,0x9b,0xef,0xa9, 0xad,0x9b,0xee,0xc5, 0x52,0xce,0x5a,0x4e, - 0x4e,0x17,0x44,0xeb, 0xe5,0xf9,0x6f,0xb0, 0x97,0x44,0x0c,0x35, 0xa8,0x03,0xe9,0x42, - 0x62,0xab,0x0f,0x42, 0x4e,0x39,0x67,0x1d, 0xf4,0xb3,0x89,0x4f, 0xc2,0x5b,0x05,0xec, - 0xed,0xbf,0x17,0x85, 0x0e,0x8f,0x44,0xf0, 0x58,0x41,0x19,0xa4, 0x11,0xff,0x7d,0xc2, - 0x72,0x34,0xae,0x25, 0x1d,0xd2,0x99,0x63, 0xc2,0x1f,0x91,0xfc, 0xd2,0x1c,0x10,0x3f, - 0xaf,0x3e,0x28,0x3f, 0x6c,0xed,0xd6,0x6a, 0x81,0x91,0x9a,0xaf, 0x28,0xb0,0x2e,0x75, - 0xf0,0xbc,0x38,0x90, 0x0a,0x6a,0x69,0xad, 0xdb,0x94,0x19,0xca, 0x14,0x12,0x41,0x35, - 0x0a,0xcc,0xd7,0x73, 0xd3,0xd3,0xf0,0x1e, 0x8b,0xfa,0x7e,0x1c, 0xda,0x5b,0x9e,0x75, - 0xf2,0xee,0xa5,0x15, 0x41,0x8f,0xe2,0xc7, 0xfd,0x17,0xf0,0xcb, 0x15,0x85,0x2c,0x3f, - 0x89,0x29,0xf2,0xfa, 0xcf,0xc0,0xeb,0xe1, 0xeb,0x73,0x3c,0x75, 0xf2,0x1d,0x07,0x16, - 0x7b,0xc9,0x84,0x58, 0x79,0xd8,0x51,0x05, 0x9b,0x6e,0xb3,0xe0, 0x74,0xb3,0xa2,0x67, - 0x90,0x0e,0xaf,0x11, 0x84,0x58,0xf5,0x40, 0x31,0xd3,0xb2,0xb7, 0x8e,0x71,0x01,0xf7, - 0x8a,0x9f,0x56,0xeb, 0x2c,0xc9,0x2d,0xbe, 0xb6,0x08,0x33,0x26, 0x32,0x89,0x23,0x13, - 0xcb,0xdb,0x86,0x48, 0xa1,0xe7,0x2c,0xf2, 0xfa,0xea,0x07,0xeb, 0xb2,0xc3,0x62,0xd3, - 0xd4,0xe7,0xb7,0x86, 0xed,0x4f,0xf5,0x33, 0xc3,0x79,0xcf,0x30, 0x1d,0xf4,0xcb,0x89, - 0xaf,0x4a,0xf4,0x30, 0xb0,0x15,0x44,0x28, 0x28,0x98,0x59,0x4b, 0x2b,0x37,0x08,0x6d, - 0x94,0x6c,0xa1,0x12, 0x58,0x07,0x28,0x28, 0xfa,0xc5,0xe6,0xcb, 0xb5,0xac,0xac,0x06, - 0x48,0x98,0x8b,0x7f, 0xf7,0x4f,0x7a,0xd0, 0xdb,0xbf,0xcf,0xef, 0xea,0x1f,0xb5,0x43, - 0xb1,0xe2,0xd6,0x72, 0xed,0x3e,0x34,0xa2, 0x3a,0x2f,0xc5,0x38, 0x89,0x6b,0xf8,0xb2, - 0x1f,0xa2,0x3f,0x77, 0x27,0x71,0x83,0x53, 0xfb,0x7d,0xca,0x61, 0x00,0xde,0x40,0x94, - 0x58,0x86,0x47,0x92, 0x1f,0x98,0x7e,0x5f, 0x3d,0xe4,0xdc,0x45, 0x8f,0x3f,0xac,0xa5, - 0x64,0xf1,0xf6,0x59, 0xde,0xf6,0x7c,0x6f, 0x82,0xf5,0xe5,0xba, 0x1a,0xca,0x28,0x71, - 0x17,0xe0,0x72,0xc1, 0x44,0x14,0x56,0x96, 0x23,0x51,0xf5,0xca, 0x05,0x32,0x83,0x6d, - 0x40,0xad,0x60,0xdc, 0x2e,0x0b,0x16,0x54, 0xac,0x62,0x02,0x2a, 0xa9,0x85,0xab,0x05, - 0x22,0xa0,0xa2,0xc4, 0x56,0x54,0x94,0x49, 0x15,0x31,0x4d,0xb1, 0x9f,0x58,0x24,0xdd, - 0x40,0xf6,0xff,0xb9, 0x01,0x42,0x41,0xfd, 0x39,0x64,0xd5,0xfe, 0xfa,0x9f,0x73,0xf2, - 0x05,0xf4,0xfb,0xa7, 0x83,0x13,0xfa,0x27, 0x7c,0x1c,0x26,0x70, 0xe9,0x31,0x41,0xcf, - 0xc9,0x3b,0xe6,0x82, 0x62,0xc4,0x99,0x16, 0xfb,0xee,0x27,0xfe, 0x6d,0x1c,0xff,0x19, - 0xf8,0x5f,0x4d,0xb7, 0xd5,0x34,0xcd,0x08, 0x1d,0x88,0x23,0x29, 0x3e,0xa4,0x2b,0xcc, - 0x56,0xd3,0x29,0x7b, 0xc2,0x5e,0x37,0x66, 0x15,0x5a,0xaf,0x28, 0xe5,0x7f,0x86,0xf8, - 0x27,0xaf,0xf7,0x1f, 0x6e,0xf1,0x72,0x9a, 0x5f,0x23,0xa6,0x16, 0x78,0xd9,0xf2,0xd9, - 0x09,0x01,0x41,0xda, 0xc1,0x05,0xf3,0xd0, 0xf4,0x51,0x64,0x22, 0xfa,0x6f,0x89,0xd7, - 0x75,0xcf,0x5a,0xcf, 0x4b,0xd6,0x6e,0x47, 0x6a,0x69,0xa6,0xda, 0x0a,0x23,0x5a,0xdd, - 0xc5,0x15,0xe6,0x2d, 0x70,0x5a,0x27,0x9a, 0x2b,0x8a,0xce,0x6e, 0x88,0x6e,0x3d,0x5b, - 0x52,0x37,0x75,0xc3, 0x71,0x37,0x25,0xd1, 0xcb,0x71,0x4b,0x99, 0x35,0xd0,0x51,0x61, - 0xc4,0x4f,0x6e,0x70, 0x49,0x7c,0x46,0xa3, 0xc2,0xa0,0xda,0x29, 0xa6,0x31,0x58,0x88, - 0xea,0x94,0x8a,0x6e, 0x5c,0x5c,0xb1,0x30, 0xb6,0x36,0x40,0x35, 0x84,0xdd,0x77,0x2e, - 0x8c,0xe5,0x36,0x6a, 0x5a,0x70,0xce,0xe6, 0x26,0xbd,0x67,0x44, 0x26,0x31,0x48,0xf2, - 0x6d,0xc1,0x51,0x75, 0xeb,0x5d,0x09,0x64, 0x75,0x9b,0xaf,0x16, 0x0a,0xab,0x71,0xd5, - 0x4a,0xba,0x50,0xc0, 0x18,0x5e,0xd0,0xaa, 0x08,0x11,0x99,0xae, 0xc7,0x77,0x07,0x0c, - 0xca,0x63,0x0b,0x2d, 0xc4,0xcb,0x2b,0xb9, 0x41,0xc2,0xc2,0x60, 0xe4,0xc1,0xe6,0x43, - 0x1c,0x1d,0x83,0xbb, 0xb9,0xa9,0x92,0xd9, 0xc6,0xe4,0x76,0xe2, 0x55,0x4b,0xb7,0x15, - 0x03,0x11,0xc6,0xc8, 0x11,0x48,0x4a,0xc2, 0x6f,0x57,0x76,0xcd, 0x32,0x84,0x9c,0x1b, - 0xcb,0xc2,0x4c,0x12, 0xb7,0x52,0xec,0x8e, 0x32,0xca,0x2c,0x16, 0x01,0x96,0xcb,0x63, - 0x2e,0x25,0x2a,0xc5, 0x6b,0x18,0x92,0x83, 0x53,0x2b,0x25,0x28, 0xc7,0xa5,0x54,0x2b, - 0x2b,0x44,0x19,0x2c, 0x05,0x04,0xdc,0x73, 0x29,0x3d,0x4d,0xca, 0x58,0xb1,0xb8,0x96, - 0x23,0x1a,0x6c,0xdb, 0xcd,0x42,0x76,0xae, 0x54,0x14,0xa4,0xb1, 0x52,0xd2,0x8d,0xcc, - 0x30,0xfa,0xa9,0x53, 0x13,0x18,0x90,0x9b, 0xd1,0x82,0xa7,0x16, 0xca,0x37,0x8b,0xdb, - 0x15,0x35,0x38,0x96, 0xee,0x1c,0xc6,0x9a, 0xb9,0x2d,0x12,0xa2, 0x8d,0xa2,0x80,0x3b, - 0x64,0xa9,0x1b,0x86, 0x61,0x6d,0xb4,0xd5, 0x55,0xcc,0x1c,0xa6, 0xd0,0xcc,0xb4,0x4d, - 0x4d,0x75,0x36,0xd5, 0xd6,0x15,0xc4,0x2b, 0x23,0x8e,0x65,0xd2, 0x94,0x10,0x35,0x00, - 0x6d,0x42,0xb0,0xb1, 0x71,0xd3,0x2f,0x35, 0xea,0xbe,0x10,0xa1, 0x7c,0xa3,0x98,0xf3, - 0x85,0xb7,0x6a,0x5c, 0x71,0xcd,0x0b,0xa6, 0x14,0x50,0x45,0x4a, 0x5d,0xdb,0xb6,0x55, - 0x0b,0xb9,0x71,0xbc, 0xa8,0xaf,0x7d,0x73, 0x8a,0x9c,0x79,0x33, 0x53,0x88,0xcc,0x33, - 0x1c,0x09,0x18,0x31, 0xa4,0x6b,0xa6,0x31, 0x84,0x24,0xb9,0x57, 0x6a,0xd3,0xcd,0x0c, - 0xb8,0xd9,0x31,0x90, 0x96,0xaa,0x18,0x65, 0x57,0x16,0xe6,0x54, 0x14,0xc9,0x03,0x58, - 0x49,0x14,0x90,0x01, 0x65,0x97,0x9d,0x6c, 0xc9,0x6a,0xa8,0x2c, 0x66,0xb5,0x16,0x22, - 0x26,0xb6,0x2e,0xa6, 0xf2,0xeb,0x97,0x43, 0x0c,0x4c,0x71,0xcb, 0xbb,0x98,0x35,0xcd, - 0x33,0x49,0xa3,0x75, 0x2b,0x0b,0x89,0xe3, 0x71,0x0b,0x65,0xa2, 0xdd,0xec,0x1b,0x29, - 0xa1,0x02,0x15,0x8a, 0x38,0x37,0x11,0xcc, 0x28,0x8d,0xc2,0xed, 0xa6,0x95,0x31,0xd2, - 0x97,0x6d,0x2c,0xda, 0xe5,0x36,0x9c,0xa5, 0x8e,0x6e,0x50,0xbc, 0xcd,0xae,0x45,0x5a, - 0xb1,0x1d,0x2d,0x96, 0xd0,0xb0,0x38,0xcd, 0xe3,0x59,0x1d,0xe1, 0x8e,0x49,0x8b,0x46, - 0xa5,0x2a,0x16,0xcb, 0x1a,0x95,0x4b,0x56, 0xb3,0x6c,0x94,0x95, 0x3d,0xc7,0x6a,0xf2, - 0xe5,0xdd,0xa8,0x83, 0x20,0x53,0x69,0xa2, 0xde,0x32,0x2c,0x56, 0x8b,0xb3,0x16,0x64, - 0x56,0xae,0x26,0xca, 0x23,0x75,0x14,0x69, 0x80,0x86,0xf4,0x64, 0x84,0x14,0x1b,0xad, - 0x9c,0x5c,0x2c,0x53, 0x2e,0x44,0xc4,0x8c, 0x63,0x76,0x36,0xa0, 0x62,0xcb,0x42,0xb1, - 0x15,0x48,0xc4,0x42, 0x74,0xc8,0xaa,0x8a, 0x2a,0x56,0x55,0x55, 0x52,0xe2,0x98,0x96, - 0xe2,0x53,0x28,0x25, 0x85,0xcd,0x33,0x31, 0x36,0x9a,0xe2,0x82, 0xa8,0xed,0x2d,0xb0, - 0xba,0x96,0x29,0x96, 0x82,0x65,0xd4,0x69, 0x9b,0xb5,0x08,0xa9, 0x77,0x26,0x45,0x52, - 0xed,0x35,0x6b,0x4d, 0x8b,0x16,0x15,0xa3, 0x10,0x43,0x67,0x36, 0x9c,0x99,0xb8,0x70, - 0xe6,0xe7,0x23,0xc0, 0x58,0x66,0x4b,0x58, 0x31,0x64,0x1f,0x47, 0x93,0x15,0x8e,0xdb, - 0xc8,0xd6,0x96,0xcd, 0x98,0x0e,0x71,0xbb, 0xba,0x25,0x9a,0xd3, 0x23,0x6b,0x01,0xb2, - 0x35,0x82,0xb8,0x88, 0xc9,0x4a,0xc4,0x21, 0xc2,0xa9,0xc9,0x99, 0x80,0xa2,0xb1,0x12, - 0xda,0x02,0xac,0x51, 0x83,0x16,0x0c,0xb6, 0x6f,0x9d,0x31,0xdb, 0x28,0x8d,0xdc,0x86, - 0x0b,0x0e,0x84,0xb2, 0x08,0xb0,0x16,0x0a, 0x8c,0x3a,0x5d,0x97, 0x01,0x58,0xd4,0xa8, - 0xa4,0x61,0xc4,0xa8, 0x0b,0x17,0x37,0x4d, 0x44,0x2b,0x54,0x76, 0xe2,0x64,0xba,0x56, - 0xa5,0x72,0xd9,0x30, 0xb9,0xcc,0x98,0x70, 0xcc,0xbc,0x36,0x35, 0xa8,0xe3,0x9c,0x1a, - 0x98,0xd6,0x0b,0x22, 0xc7,0x52,0x92,0x1a, 0xe2,0x60,0xc8,0x61, 0x65,0x01,0x56,0x4e, - 0x66,0x71,0x95,0xce, 0x51,0xd3,0x70,0x78, 0x5d,0x6a,0x65,0xac, 0x44,0x58,0xb2,0x77, - 0xcc,0xc8,0x2c,0x55, 0x22,0xc7,0x68,0x71, 0xa9,0x0f,0x28,0x5c, 0x29,0x35,0x84,0x72, - 0xc7,0x07,0x29,0x6b, 0x81,0xc4,0xc3,0x69, 0x58,0x02,0x9a,0x61, 0x29,0x21,0x5c,0x15, - 0x6b,0x2a,0x2a,0x20, 0x85,0xa2,0x08,0x2c, 0xc0,0x5d,0x41,0x4c, 0x45,0x14,0x31,0x28, - 0xc9,0x89,0x8a,0x39, 0x77,0x25,0xea,0xeb, 0xa9,0x6e,0xf3,0x2e, 0x66,0x16,0x49,0x85, - 0x68,0x5b,0x61,0x15, 0x1b,0x4b,0x6e,0x27, 0x37,0xb3,0xac,0xc7, 0x2e,0xb0,0x46,0x2c, - 0x7a,0x45,0xb0,0x12, 0xaf,0x25,0x70,0x72, 0xe2,0x5d,0xa6,0x0c, 0x84,0x67,0x19,0x8e, - 0x6d,0x2f,0x4d,0x87, 0x5b,0xc3,0x51,0x2c, 0x04,0x80,0x10,0x2a, 0x97,0xb1,0x59,0x48, - 0x05,0x58,0x6e,0xa6, 0x25,0x34,0xd1,0x3d, 0xac,0x16,0x02,0xc6, 0xa5,0x4c,0x7b,0xb9, - 0xb9,0xb7,0x42,0xab, 0x14,0x74,0xb6,0x09, 0xa2,0x81,0x08,0x49, 0x8d,0xd1,0x65,0x1b, - 0x22,0x80,0xba,0x74, 0xaa,0xd3,0x8b,0x57, 0x0c,0xe7,0x36,0x73, 0x2d,0x86,0x66,0xe9, - 0x75,0x26,0xe3,0x54, 0x36,0x71,0x37,0xae, 0xb5,0x33,0xa4,0xea, 0x4a,0xa8,0x29,0xd5, - 0x2b,0x37,0x25,0x35, 0xd2,0x64,0xdb,0x61, 0x76,0xaf,0x2c,0xad, 0x57,0x05,0xc7,0x9c, - 0x25,0xdd,0x35,0xc3, 0x2c,0x16,0xaa,0x97, 0x8c,0x5a,0x40,0x41, 0xa9,0xeb,0xb2,0x2c, - 0xd5,0x97,0x6b,0x40, 0xa2,0x98,0x1a,0x24, 0x39,0x2c,0xa6,0x55, 0x95,0x2e,0xe5,0x14, - 0x9b,0x45,0x96,0xac, 0xdd,0x6e,0x66,0xa7, 0xd0,0x48,0x6b,0x73, 0x1d,0x0d,0x24,0x2f, - 0x4e,0x97,0x35,0x29, 0x9d,0xf7,0xb9,0x61, 0xd3,0xd3,0x0e,0xb8, 0x34,0x95,0x51,0x66, - 0xdb,0x15,0x7a,0xa5, 0x04,0x50,0xb1,0x3a, 0xb4,0x90,0x72,0xf4, 0xee,0xd9,0x03,0x99, - 0x61,0xc6,0xca,0xd1, 0x8a,0x09,0x20,0x46, 0x64,0x56,0xda,0xac, 0x8a,0x33,0x1b,0x0c, - 0xc5,0x35,0xbc,0xcd, 0xb5,0xa2,0x83,0x6e, 0x25,0x71,0xc5,0x1a, 0x13,0x55,0x8d,0x4b, - 0x93,0x26,0x19,0x8b, 0x0e,0x31,0x35,0x16, 0x42,0x45,0xa5,0x4d, 0xbc,0x93,0x1e,0xad, - 0xb3,0x32,0x6a,0xcc, 0x0b,0x77,0x78,0xb3, 0x6e,0xcc,0xdc,0xd0, 0x45,0x2e,0x00,0x41, - 0xa2,0x80,0x99,0x4e, 0xfc,0x6c,0xc8,0x82, 0xf7,0x4d,0x4c,0x3c, 0x35,0x16,0x45,0x83, - 0x6c,0xa8,0xc4,0x50, 0x51,0xea,0x96,0x0a, 0x35,0xb9,0x7a,0xdd, 0xeb,0x73,0x25,0xcb, - 0x6b,0x55,0x91,0x11, 0xe3,0xd2,0x6a,0xae, 0x36,0x6c,0xb7,0x69, 0xce,0x1a,0xe9,0xbe, - 0x3a,0xc6,0x64,0xe0, 0xa0,0x63,0xba,0x6e, 0x22,0x82,0xd3,0xb9, 0x6a,0xb4,0xc0,0x0d, - 0x16,0xa8,0x60,0xf3, 0x1b,0x44,0x57,0xb1, 0xa6,0x26,0x50,0xae, 0x28,0xd4,0x59,0x95, - 0xa1,0x99,0x9a,0xda, 0x75,0x6d,0xd6,0x69, 0xb9,0x93,0x9b,0xb8, 0xf7,0x9d,0x77,0xd6, - 0x71,0xef,0x0c,0x4e, 0xd5,0x8a,0x45,0x58, 0x34,0xa5,0x0e,0x5a, 0xac,0x53,0x16,0x95, - 0x96,0xf1,0xc1,0x82, 0xbd,0xdd,0x70,0x14, 0x4c,0xa5,0x4a,0xe1, 0x95,0x42,0xe2,0x59, - 0x33,0x6e,0x0e,0x0b, 0x4a,0x54,0xc3,0x33, 0x2b,0x2c,0x5a,0x6b, 0x9a,0x61,0x9b,0x97, - 0x1d,0xd4,0x4b,0x50, 0x58,0x38,0xdb,0x48, 0x78,0x9c,0x81,0x29, 0xc2,0x81,0x45,0xc4, - 0xd9,0x65,0x66,0xb2, 0x9b,0x65,0xce,0x66, 0x1b,0xc7,0x19,0xa9, 0x41,0x13,0x52,0xa6, - 0x19,0x98,0xaa,0xbc, 0xe1,0x66,0x6a,0x4d, 0x76,0x30,0x66,0xa6, 0x6f,0x2e,0x66,0x9c, - 0x15,0xd3,0x8c,0xda, 0x69,0x26,0xb0,0xdd, 0xa3,0x99,0xc9,0x93, 0x86,0x26,0x72,0xcc, - 0xdd,0x3b,0xc5,0x17, 0x89,0x88,0xc2,0xc6, 0x8c,0xe2,0x15,0x5c, 0xef,0x0c,0x51,0x35, - 0x11,0x88,0x96,0xd5, 0x60,0xdb,0xd0,0xe5, 0xce,0x71,0x31,0x27, 0x28,0xb5,0x65,0xb5, - 0x46,0x94,0xef,0x2a, 0x98,0x87,0x19,0x0d, 0x61,0xac,0xeb,0x53, 0x19,0xc6,0x55,0xd2, - 0xe3,0xa6,0xe5,0xa5, 0x99,0x1b,0x68,0xd1, 0xdd,0xb8,0x5d,0xcb, 0xb8,0x5c,0x56,0x2a, - 0x09,0x10,0x50,0x50, 0xb6,0xd1,0xdb,0x41, 0x9b,0x85,0x5c,0x65, 0x55,0x70,0xa2,0xd6, - 0x6d,0xa0,0xa6,0x36, 0xee,0xa9,0x9b,0x96, 0x4b,0xac,0xc9,0xa5, 0xdc,0x5a,0x86,0x32, - 0xd1,0xca,0xce,0xd7, 0x0c,0x98,0x81,0xa3, 0x11,0x48,0xb1,0x5b, 0x53,0x0a,0xd2,0xc2, - 0xd1,0xe5,0xaa,0x18, 0x5a,0x82,0xaa,0xaa, 0xdb,0x98,0x4d,0xdd, 0xc9,0x62,0x2b,0x6a, - 0xd1,0x90,0x80,0x18, 0xd5,0xb6,0xa9,0x6d, 0xe5,0x8d,0xef,0xad, 0xeb,0x7b,0xcc,0x66, - 0xb3,0x7b,0x11,0x82, 0xaa,0x82,0x2b,0x4a, 0x54,0xa2,0x89,0x5a, 0x8c,0xd5,0x63,0x69, - 0x46,0x5b,0x2c,0x2a, 0xaa,0x65,0x2c,0x92, 0x13,0x19,0x21,0x0a, 0x22,0xc9,0x21,0x10, - 0x49,0x23,0x32,0x17, 0x32,0xa6,0x52,0xdb, 0x47,0x97,0xad,0xdc, 0x44,0x68,0x15,0x06, - 0x0a,0xa9,0x5a,0x8c, 0x82,0xcb,0x04,0x14, 0x15,0x15,0x25,0xb2, 0x00,0xa1,0x52,0x4a, - 0x85,0x65,0xa7,0x30, 0x2a,0x8a,0x2b,0x14, 0x83,0x32,0xd7,0x33, 0x33,0x97,0x9d,0x6e, - 0x1c,0x04,0x44,0x0a, 0x2c,0x82,0xd1,0xa2, 0xc4,0x52,0x5b,0x2c, 0x94,0xb0,0x11,0x16, - 0xb5,0x04,0x44,0x2d, 0x0a,0x0b,0x05,0x41, 0x25,0x21,0x54,0xa8, 0x58,0x82,0x16,0xc9, - 0x44,0x0a,0x8a,0x46, 0x36,0xd6,0x03,0x51, 0x4a,0xc1,0xb2,0xa3, 0x02,0xa6,0xe5,0x8a, - 0x22,0x2c,0xc8,0xa3, 0x5a,0x82,0x82,0xaa, 0xa4,0x11,0x91,0x12, 0x74,0xd5,0x0e,0xd9, - 0x58,0x8e,0xd9,0x62, 0x0a,0x8c,0x11,0x48, 0x00,0x8f,0x5c,0xb9, 0xce,0x53,0x00,0x85, - 0x18,0x10,0xa2,0x20, 0xba,0xce,0x72,0xea, 0x2c,0x45,0x15,0x11, 0x15,0xb6,0xd9,0x37, - 0x38,0x86,0xa5,0x6b, 0x09,0xdf,0x45,0x92, 0x18,0xc5,0x51,0x41, 0xef,0x30,0x7b,0x79, - 0xd7,0x7c,0x03,0xb5, 0x51,0x00,0x51,0x64, 0x97,0x2f,0x1d,0x40, 0x35,0x85,0x61,0x07, - 0x38,0x38,0x8e,0xe9, 0x41,0x48,0x0b,0x05, 0x20,0xa8,0xc8,0x29, 0x03,0xbd,0xce,0xa6, - 0xc0,0x9d,0x21,0x33, 0x06,0xee,0x53,0xb1, 0x24,0xe6,0x9d,0xf3, 0x57,0x7a,0xaa,0xb0, - 0x14,0x26,0xea,0xe6, 0x42,0xf3,0x72,0xf1, 0xcc,0xd7,0x29,0x16, 0xec,0x4a,0x25,0x56, - 0x50,0xd4,0x2f,0x24, 0x2d,0x0d,0x65,0x27, 0x0e,0x79,0xcb,0xd5, 0x8d,0x45,0xcc,0xe1, - 0x44,0xac,0x4f,0x39, 0x48,0x31,0x17,0x06, 0xae,0x45,0x68,0x98, 0xe0,0x12,0x35,0x84, - 0xb4,0x17,0x62,0xb0, 0xab,0x91,0xae,0x1a, 0xb4,0x4b,0xd8,0x9b, 0x85,0xac,0x25,0xd2, - 0x5b,0xad,0x2a,0xd3, 0x2a,0x1a,0xb7,0x38, 0xeb,0xc0,0x7a,0xcb, 0x9c,0xc5,0xd1,0x88, - 0x19,0x96,0x83,0xce, 0x4e,0x43,0x3b,0xb9, 0x24,0x93,0x5a,0x58, 0x41,0xe3,0x11,0x1d, - 0xcb,0x22,0xb8,0xd0, 0xae,0x5c,0x96,0x95, 0xab,0x1b,0x69,0x8c, 0x8a,0x4c,0xa0,0xe6, - 0x63,0x95,0xb1,0xaa, 0xe5,0xa8,0xa0,0x98, 0xa9,0x54,0x2d,0x06, 0xd4,0x4b,0x68,0x82, - 0xc9,0x18,0xa0,0xeb, 0x0e,0x26,0x31,0x55, 0x4c,0x65,0x61,0x52, 0x62,0x0e,0xcc,0x9d, - 0x3c,0x8f,0x45,0x9d, 0x1d,0x3d,0x1c,0x2a, 0x50,0xe3,0xc9,0x35, 0x81,0x8c,0x50,0xb1, - 0x19,0x14,0x03,0x8f, 0x69,0x31,0x21,0xd6, 0x59,0xd2,0x2e,0xf4, 0x53,0x39,0x45,0x73, - 0x30,0xcb,0x60,0xb7, 0x4a,0x54,0x8b,0x35, 0x02,0xa7,0x3b,0x30, 0x2b,0x55,0x35,0x99, - 0x97,0x19,0x58,0x8a, 0x8a,0x53,0xa1,0x14, 0xd7,0x5d,0x6d,0xba, 0x66,0xf0,0x9a,0xf1, - 0xb7,0x62,0x0a,0x1c, 0x48,0x9c,0x93,0x54, 0x94,0x0b,0x6d,0xc2, 0x10,0x2d,0xb2,0x95, - 0xd4,0x69,0x8a,0x88, 0xd2,0x63,0x2e,0x3a, 0x84,0x14,0x2a,0x64, 0x94,0xe1,0x1b,0xc2, - 0xe0,0xb0,0xc5,0xae, 0xb0,0x94,0x2b,0x8b, 0x0a,0xa6,0x16,0xe0, 0xd1,0x06,0xb6,0xb2, - 0xa7,0x03,0x08,0xf2, 0xf3,0x69,0x9a,0x1d, 0x0b,0x35,0x99,0xd6, 0x49,0x59,0xd3,0xd2, - 0x65,0x9a,0xa6,0x12, 0x74,0x73,0x99,0xa9, 0xd3,0x2a,0x74,0x3a, 0x3a,0xdd,0xd9,0x2a, - 0x89,0x16,0xb1,0x4a, 0x34,0x1a,0xda,0x32, 0xb5,0xbc,0xcf,0x16, 0xba,0x6f,0x72,0xce, - 0xb3,0x0c,0xb8,0x64, 0x18,0x9c,0x71,0x1d, 0xeb,0x70,0x8a,0x31, 0x60,0xc4,0x62,0x99, - 0x46,0xca,0x97,0xab, 0x8c,0x72,0x35,0x40, 0xb0,0xe9,0x8b,0x22, 0xaa,0x1d,0x21,0x7b, - 0xa5,0x5b,0x4b,0xb6, 0x81,0x68,0xcc,0x77, 0x97,0xb9,0x99,0x81, 0x71,0x26,0x61,0x4c, - 0x6d,0xa6,0xe8,0x42, 0xb1,0x89,0x41,0x42, 0x5d,0x4a,0x81,0xc3, 0x99,0xcd,0x6b,0x29, - 0x28,0xef,0x40,0xdb, 0x9c,0xba,0x99,0x77, 0x01,0xce,0x2b,0x50, 0x71,0xb7,0x84,0x00, - 0x14,0xc5,0x00,0x12, 0x60,0x03,0x0a,0xe9, 0x44,0x8b,0x53,0x5b, 0x73,0xac,0x2f,0x0a, - 0xdd,0xd9,0xa7,0x33, 0x53,0x39,0xad,0x79, 0x6a,0x72,0xe8,0x86, 0x08,0x66,0x52,0xee, - 0xa8,0xa6,0x3c,0x6f, 0x2d,0x3a,0x58,0x06, 0x31,0x89,0xb9,0x13, 0xa8,0x30,0x45,0x26, - 0x42,0x40,0x95,0x60, 0xb9,0x97,0x31,0xb0, 0xcc,0x0c,0x6f,0x7c, 0xc3,0x80,0xb3,0x58, - 0x63,0x32,0xcb,0x08, 0x4a,0xa7,0x2c,0x08, 0x14,0x10,0x77,0x46, 0xe5,0xcb,0x89,0xb4, - 0xcc,0x92,0x13,0x10, 0x38,0xc2,0x06,0xcc, 0x60,0xd1,0x2c,0xb1, 0xe0,0x99,0x77,0x64, - 0x26,0xa6,0x1c,0xeb, 0x0e,0x99,0x38,0xd6, 0x4b,0x10,0x22,0xd6, 0x85,0xb2,0x4b,0xb7, - 0x72,0xa3,0x13,0x51, 0x41,0x4d,0xd1,0x17, 0x57,0x13,0x7a,0xb2, 0x1b,0xa1,0x5e,0xac, - 0x95,0x05,0x1e,0x31, 0x65,0x56,0x65,0xd9, 0x5d,0xad,0xe3,0x37, 0x83,0x07,0xa4,0xe8, - 0x6a,0x05,0x34,0xa1, 0x5d,0x3a,0x6b,0x02, 0xd0,0xa9,0x5a,0x95, 0x46,0x05,0xb6,0x0a, - 0xd2,0xac,0x34,0x4e, 0x37,0x28,0xf2,0x95, 0xaa,0xa6,0x52,0xc1, 0x9b,0x66,0x35,0xbb, - 0xa4,0xcb,0x43,0x74, 0xb7,0xad,0x4c,0xa1, 0xc2,0x9c,0x42,0x11, 0x49,0x26,0x29,0xd2, - 0x88,0x83,0x52,0xd7, 0x4d,0x33,0x4d,0xbb, 0x4c,0x0d,0x65,0x45, 0x41,0x71,0x1b,0x74, - 0x08,0x2d,0x06,0x8e, 0xc4,0xea,0x2b,0x64, 0xab,0x71,0x04,0x21, 0x0a,0xc5,0x10,0x49, - 0x77,0x6c,0xd4,0xea, 0x97,0x96,0x9d,0x53, 0x07,0x18,0x5b,0x8c, 0x5e,0xb6,0xdb,0x64, - 0xd6,0x28,0x49,0x99, 0x64,0x91,0x14,0x40, 0xe9,0x0d,0x48,0xb2, 0x18,0x87,0x18,0x54, - 0x80,0x20,0xa2,0x84, 0x32,0xa9,0x94,0xf2, 0x29,0x8e,0x9a,0xc7, 0x41,0x4c,0xdd,0x58, - 0x19,0x82,0xd1,0x5a, 0x71,0x5c,0x59,0xbb, 0x96,0xe5,0xdb,0xd6, 0x08,0xba,0xaa,0x3a, - 0x95,0x22,0x2e,0x4a, 0x95,0x10,0xb3,0x6c, 0x89,0xaa,0x1b,0x54, 0x80,0xbb,0x24,0x18, - 0xcc,0x91,0x47,0x71, 0x47,0x03,0x2e,0xe2, 0xc8,0x42,0x0b,0x97, 0x9b,0xa6,0x02,0xf2, - 0xcc,0x25,0x9c,0xc0, 0x50,0xe3,0x11,0x69, 0x6f,0x1a,0x27,0x47, 0x0c,0xe1,0xd0,0xe4, - 0xa4,0xe1,0x69,0x83, 0x9a,0x5b,0x48,0x9d, 0x59,0x76,0xc9,0x88, 0x70,0x6e,0x1a,0x19, - 0x68,0x9b,0x33,0x85, 0x89,0x8b,0x31,0x9a, 0x15,0x16,0x18,0x26, 0xee,0x59,0x46,0x55, - 0x11,0x68,0x34,0xbb, 0xa1,0x99,0x63,0xb3, 0x17,0x2d,0x64,0x51, 0x2d,0xcb,0x1c,0xcc, - 0x34,0xb5,0x0e,0x5c, 0xc9,0xa3,0x16,0x67, 0x0a,0xe5,0x8b,0x04, 0x48,0x29,0x05,0x6d, - 0x95,0x50,0x9b,0x68, 0x8c,0x16,0x41,0xf1, 0x4a,0x21,0xbd,0x59, 0x8c,0x4e,0x16,0x56, - 0x0b,0x21,0xdd,0x3b, 0x72,0x08,0x20,0x4e, 0x36,0x32,0x11,0x60, 0x45,0x01,0x12,0x1d, - 0x47,0xad,0xba,0xa2, 0xa0,0x4b,0xb4,0xc1, 0x09,0x2d,0x8a,0x10, 0xb2,0x02,0x90,0x55, - 0x03,0x31,0x34,0xc6, 0xdc,0x98,0x19,0x94, 0x96,0x35,0x78,0x84, 0x8d,0x1c,0x00,0xc1, - 0xdd,0xcc,0xbc,0x12, 0x24,0x95,0xb8,0xc4, 0x06,0x5c,0x98,0x24, 0xee,0xe9,0x32,0x18, - 0x32,0xb3,0x29,0x89, 0x4c,0xca,0xa9,0x86, 0x28,0x10,0x11,0xbc, 0xdc,0xc5,0x12,0xb6, - 0x2c,0x14,0x8b,0x00, 0x28,0x30,0x88,0xc8, 0x57,0x19,0x75,0xaf, 0xab,0xaf,0xb9,0x22, - 0x5e,0x42,0x23,0x82, 0x06,0x11,0x57,0x98, 0x40,0x88,0x45,0x45, 0x60,0x11,0x54,0x50, - 0x0c,0xf1,0x41,0x05, 0x14,0x28,0x75,0x87, 0x6f,0xd1,0xeb,0x7e, 0xbc,0x9d,0x57,0xe9, - 0xe7,0xfa,0x2d,0xd8, 0x68,0x27,0x0d,0x7c, 0xbd,0x98,0x88,0xc6, 0x23,0x14,0x58,0x2a, - 0x09,0x1d,0x1f,0x48, 0x87,0xd9,0xf7,0xdf, 0xa6,0x4e,0xd7,0xe0, 0x43,0x87,0xc9,0x78, - 0xe1,0xf3,0xdb,0xec, 0x3c,0x5f,0x88,0x7c, 0x4b,0xf6,0x3f,0x9a, 0x86,0xfc,0x1f,0xc1, - 0xa7,0x16,0x0f,0x2d, 0x0a,0x7c,0x17,0x20, 0xe0,0x6d,0xc9,0x9f, 0xcd,0x5c,0x15,0x21, - 0xfb,0x5d,0x2b,0xaf, 0x3f,0x0e,0x89,0xb6, 0x2e,0x4b,0xb4,0x2b, 0x96,0x64,0xb7,0xc3, - 0xf1,0x7f,0x6b,0xd1, 0xa7,0x72,0x4a,0x82, 0x03,0x20,0x88,0x2a, 0x8a,0x0f,0x67,0x6f, - 0x75,0x10,0xcd,0x74, 0x46,0xfb,0x00,0x41, 0xf6,0x67,0xe0,0x22, 0x58,0x2a,0x30,0x65, - 0x14,0x09,0x94,0xcd, 0x6c,0x10,0x87,0x23, 0x85,0x57,0xa9,0x6c, 0x73,0xf1,0xee,0x7e, - 0x37,0x8b,0x82,0xc4, 0x53,0xd2,0xd4,0x3b, 0xa5,0x89,0xdd,0x31, 0x8c,0x0c,0x2e,0xe7, - 0x2c,0x1e,0x1b,0x8d, 0x4e,0x30,0xbe,0x33, 0xc8,0x53,0x68,0x6b, 0x72,0xb4,0x6e,0xb6, - 0x0b,0xcb,0x68,0xca, 0x9d,0xe2,0x3b,0x12, 0x8a,0xd3,0xb7,0xd1, 0x3d,0xef,0xc3,0x4d, - 0xa2,0x3c,0x2f,0xa3, 0x3c,0xbe,0x47,0xd0, 0x7b,0xbb,0xfb,0x77, 0xd5,0x48,0x83,0xe2, - 0x56,0xde,0x8c,0xa9, 0xf6,0x9b,0x4e,0x41, 0x30,0x3f,0x69,0x7e, 0x7b,0xa1,0x41,0x7f, - 0xd6,0x50,0x43,0x4b, 0xbb,0x8f,0xd7,0xbc, 0x3a,0x41,0x02,0x07, 0xe5,0x1c,0xd2,0x0d, - 0x1a,0xa4,0xd5,0xfc, 0xc7,0xe9,0x27,0x3b, 0xcf,0x14,0x77,0xfc, 0xf5,0xc3,0xc7,0x84, - 0x6e,0xb7,0xd7,0xea, 0x46,0x6e,0xe9,0xc8, 0x5b,0x1b,0x21,0xb3, 0xc6,0xd5,0xf0,0xd7, - 0x5d,0x07,0x26,0xde, 0x99,0x86,0xd8,0xb1, 0x8c,0xe2,0xcd,0x0c, 0x19,0xca,0x87,0xaf, - 0x6b,0x34,0x1f,0x3e, 0xd9,0xe9,0x61,0xf7, 0x2c,0x5a,0x70,0xed, 0xf7,0xf3,0x40,0x9f, - 0x43,0xcf,0x58,0x76, 0x5e,0x72,0xd6,0x15, 0x8a,0x22,0x82,0xc4, 0xb6,0xa0,0xad,0x18, - 0x57,0xdd,0x45,0x0a, 0x42,0x14,0x20,0xa1, 0x24,0x29,0x05,0x91, 0x48,0x62,0x5c,0x88, - 0x9b,0xc2,0x88,0x97, 0xda,0x0a,0x3d,0x36, 0x6e,0xfa,0xf6,0xe3, 0x7b,0xb7,0xac,0xb1, - 0xa7,0xef,0xd2,0xcf, 0x62,0xf9,0x92,0x6d, 0x75,0xf4,0xba,0x4d, 0xce,0x93,0x71,0x61, - 0x73,0x92,0x96,0x33, 0x3d,0x56,0xb5,0xd5, 0xd2,0xe1,0x94,0x7a, 0x95,0x1c,0x29,0x87, - 0xf7,0xc4,0xab,0x77, 0xbd,0x0d,0x63,0x4d, 0x9e,0xc8,0x41,0x61, 0x90,0x5b,0xaa,0xf7, - 0x31,0x80,0x80,0x96, 0x78,0x9a,0x05,0xa4, 0x2d,0x01,0x00,0x82, 0x88,0x05,0x24,0x4c, - 0x73,0xa9,0xc0,0xeb, 0x42,0x8f,0xb8,0x5e, 0xb4,0xca,0xb2,0xb6, 0x60,0x1d,0xf5,0x5d, - 0x29,0xe2,0x5c,0xc4, 0x45,0x22,0xf9,0x85, 0x7f,0x20,0x55,0x11, 0x5e,0xee,0xf0,0x4e, - 0x22,0x71,0xc8,0xa6, 0x33,0xd4,0xb8,0xcc, 0xda,0xb2,0x15,0x63, 0x0f,0x3f,0x8c,0xee, - 0xed,0xf0,0xdb,0xe0, 0xc1,0xfc,0xdf,0x0e, 0x6b,0x6a,0xd2,0x2b, 0x81,0x1e,0x96,0xc5, - 0x5c,0x12,0x77,0x7c, 0xb4,0x6b,0x77,0xda, 0x0c,0x90,0xef,0xb3, 0x97,0xc3,0x60,0xbf, - 0x99,0xbd,0xc7,0x3d, 0x68,0x9c,0x7b,0x73, 0x77,0x37,0xc3,0x4c, 0xa2,0x6f,0x6f,0xd3, - 0x44,0x18,0x3c,0x0f, 0xcf,0x8a,0x47,0xd9, 0x33,0x10,0x07,0xa9, 0x1f,0xb5,0x2c,0x3f, - 0x51,0x44,0x2d,0xed, 0xe2,0xbf,0xc6,0xd2, 0x6d,0x3f,0xd5,0x69, 0x33,0x1f,0xbb,0xbc, - 0x45,0x27,0xab,0x78, 0x7b,0x22,0xfa,0xb2, 0x7c,0x15,0x30,0x6a, 0x65,0x96,0x62,0x54, - 0x72,0x55,0x38,0xea, 0x50,0x77,0x39,0xbe, 0x78,0xa5,0xeb,0xa8, 0xfe,0x4b,0xd4,0x66, - 0x64,0x02,0xe4,0x4a, 0x08,0x0a,0x02,0x14, 0xb8,0xc5,0x30,0x77, 0x6b,0x1c,0xe1,0xec, - 0xc9,0xf4,0x1a,0xb3, 0x37,0x5d,0x93,0xd9, 0x6e,0x59,0xed,0x43, 0xe8,0x99,0xda,0xfb, - 0xa9,0xe2,0x9c,0x90, 0xda,0xaf,0x56,0x55, 0x05,0x50,0x78,0xe8, 0x81,0xd7,0x37,0x0a, - 0x6a,0xe6,0xbe,0x5b, 0xc7,0x6d,0xef,0x7e, 0x5b,0x64,0x0c,0x20, 0xa9,0x7c,0x40,0x0e, - 0x8a,0x27,0x03,0xf9, 0x21,0xfc,0x7c,0xf5, 0x25,0x45,0x91,0xcf, 0x5b,0xe8,0x24,0x2e, - 0x06,0x55,0xf3,0x42, 0x7e,0xec,0x92,0xf1, 0xb0,0xbc,0xeb,0x31, 0xe8,0xbd,0x40,0x52, - 0x18,0x1c,0x8e,0x61, 0x23,0xcb,0x30,0x33, 0x94,0xbb,0xe3,0x9d, 0x1a,0xc3,0x8c,0x2f, - 0x56,0x44,0xc2,0x19, 0x19,0x99,0x5c,0x3f, 0x2d,0xa7,0x10,0x39, 0x35,0xce,0x83,0x6c, - 0xd1,0xa6,0x69,0x48, 0x89,0xa8,0x00,0xa0, 0xa1,0xe3,0x85,0x02, 0x09,0xb4,0x82,0x93, - 0xc6,0x53,0x10,0x81, 0x59,0x04,0x81,0x53, 0x0c,0x02,0xc9,0x01, 0x07,0x9e,0x2e,0x28, - 0x3c,0x60,0x56,0x03, 0x06,0xd2,0x6a,0x11, 0x49,0x3c,0x30,0x76, 0xac,0xe3,0x20,0xa1, - 0xc7,0x1e,0x3c,0x66, 0x88,0x56,0xa4,0x98, 0x3a,0x93,0x59,0x2e, 0x6b,0x81,0x62,0x4b, - 0x31,0xc1,0x8b,0x8a, 0xd9,0xa6,0x18,0x85, 0x56,0x45,0x35,0x81, 0x50,0x58,0x0a,0x40, - 0x35,0x24,0xac,0x82, 0xc2,0x11,0x40,0x35, 0x85,0x19,0x00,0x38, 0x85,0x43,0x40,0x45, - 0x58,0x71,0x84,0x26, 0x36,0x32,0x51,0x16, 0x06,0x24,0x2c,0xbd, 0x53,0x04,0x04,0x3a, - 0x33,0xaf,0x07,0x5c, 0x00,0xce,0xba,0x30, 0x0d,0x61,0xc1,0xff, 0x15,0x24,0x3c,0x32, - 0x01,0x92,0x2b,0x84, 0x11,0x32,0x41,0x07, 0x08,0x61,0x78,0xa1, 0x48,0xdd,0x00,0x6d, - 0x11,0x6d,0x08,0x28, 0x2c,0x04,0x15,0x82, 0xb1,0x19,0x05,0x92, 0x40,0x55,0x91,0x60, - 0x48,0xa0,0xb0,0x82, 0x48,0x08,0x45,0x84, 0x62,0xe0,0x3c,0x28, 0x3b,0xd8,0x1c,0x08, - 0xf7,0x0e,0x17,0x03, 0x8e,0x82,0x1a,0xf2, 0xef,0xec,0xbe,0x5e, 0x69,0xaf,0x4b,0xbc, - 0x12,0x29,0xa6,0x76, 0xbb,0xc4,0xd1,0xaa, 0x26,0xfd,0x51,0x82, 0x2d,0xc1,0xb1,0x89, - 0xca,0x74,0xbe,0x09, 0x4c,0x5f,0x0a,0xbd, 0xaf,0x84,0x6e,0x73, 0x46,0xb6,0xb9,0x8c, - 0xa1,0x5b,0x4e,0x8d, 0xd5,0x86,0xcd,0x52, 0xba,0xfd,0x68,0xec, 0xa8,0xaa,0x18,0x62, - 0xdc,0x40,0xc6,0x4f, 0xcc,0x24,0xc7,0xbe, 0xb8,0xe5,0x5c,0x13, 0x41,0x49,0x89,0x9c, - 0xa1,0x59,0x5e,0xd1, 0xb3,0xef,0x9f,0x4f, 0x7b,0x54,0x07,0xbf, 0x2e,0x2f,0x74,0x5d, - 0x6f,0xd8,0x9c,0x34, 0x5f,0xb3,0x37,0xea, 0xe9,0xf3,0x0f,0x9d, 0x84,0xed,0xe3,0x67, - 0x0f,0xbf,0xd3,0xde, 0x4e,0x29,0x2a,0x58, 0x9b,0x9e,0x09,0x36, 0x36,0xd1,0x54,0xf8, - 0x7d,0x38,0x66,0x32, 0xdb,0x06,0x9c,0x0f, 0xed,0x50,0xce,0xbf, 0x3c,0xde,0x1f,0xbe, - 0xe1,0x67,0x67,0x5c, 0x95,0x06,0x41,0x1d, 0x6a,0xb8,0xc6,0xb2, 0x1f,0xde,0x79,0xb8, - 0x97,0xc0,0xe0,0xf5, 0x1a,0x16,0x92,0xed, 0xcd,0x3b,0x38,0xfa, 0xb9,0xa4,0x1a,0x37, - 0xa6,0xfe,0x63,0x14, 0x48,0x81,0xd4,0xf1, 0x74,0x2a,0x5b,0x04, 0x91,0x4f,0xd7,0x3c, - 0xbf,0x33,0xf6,0x3f, 0xd6,0xf7,0x97,0xd6, 0x16,0x61,0x70,0x4b, 0x16,0x19,0xeb,0x26, - 0x0e,0xd1,0x90,0xb3, 0x31,0x56,0x5d,0x82, 0x82,0x01,0x27,0x4c, 0x58,0xdb,0x07,0x71, - 0x9f,0x11,0xe1,0x0d, 0xdd,0xb4,0xad,0x03, 0x80,0x31,0x6d,0x6a, 0x8b,0x39,0x4f,0x96, - 0x04,0x0a,0x82,0x1a, 0xca,0xfd,0x5f,0x7f, 0xba,0x7b,0xcf,0x33, 0xa5,0xeb,0xbc,0x2b, - 0xe8,0xe3,0xa1,0xa4, 0x31,0x88,0xd6,0x76, 0xe6,0x52,0xab,0x44, 0xa8,0x0d,0x22,0xe4, - 0x8f,0x86,0xe9,0x28, 0xda,0x1b,0x4c,0xec, 0xad,0xae,0x79,0xc5, 0x15,0x68,0xb0,0xe6, - 0xd8,0x2d,0xe1,0xd4, 0x42,0xd1,0x4d,0x4d, 0x2b,0x6e,0x10,0x1c, 0xe5,0xe9,0x2f,0x1b, - 0xa4,0xc5,0xf3,0x7c, 0x45,0x79,0x94,0x06, 0x76,0xd0,0xfc,0x4d, 0xa1,0x89,0xd1,0x6c, - 0xac,0x9f,0xc7,0xf8, 0x3e,0x9e,0x68,0xb2, 0x0b,0xf8,0xf7,0xb7, 0x22,0xf7,0x9e,0xe7, - 0x5a,0x01,0x8c,0x58, 0x6d,0xf3,0xbf,0x9f, 0xeb,0xdd,0xd7,0xde, 0x7e,0x9b,0x85,0x8a, - 0x0a,0x9c,0x4b,0x4d, 0xb9,0xd1,0x71,0xe3, 0xe3,0x85,0x9d,0x18, 0x5d,0x7d,0x4e,0x58, - 0xe5,0xf2,0x5a,0x18, 0xd1,0x5c,0xe5,0xad, 0x67,0x21,0x28,0x20, 0xf2,0x1d,0x05,0x3b, - 0x79,0xcf,0xc7,0xa0, 0x89,0xc6,0xe3,0x63, 0x2d,0xc5,0x56,0xee, 0xda,0xed,0xad,0x48, - 0x17,0x04,0x0b,0x8a, 0xa5,0x40,0x63,0x21, 0x6d,0xcc,0xe2,0x95, 0x50,0x28,0x80,0x92, - 0x26,0xd7,0x2a,0x12, 0x03,0x4f,0xa5,0xf9, 0x9f,0x77,0x7f,0x7e, 0xd6,0xc5,0x01,0x62, - 0x5b,0x11,0x29,0xec, 0xc2,0xa0,0x4c,0x63, 0x55,0xa2,0xa2,0xd5, 0xda,0xfe,0x1e,0x05, - 0x73,0x48,0x2e,0xc6, 0x33,0x94,0xab,0x8b, 0x6e,0xe7,0x2f,0x9b, 0x3e,0x84,0xe9,0x22, - 0xea,0xcb,0xb9,0x0c, 0x78,0x86,0xa1,0xef, 0xa1,0x7d,0x13,0x87, 0xe3,0x50,0xf3,0xc3, - 0x45,0x70,0x0b,0x25, 0xef,0x69,0x5d,0x4a, 0xcc,0x73,0xc5,0x98, 0xae,0x70,0xcc,0xd6, - 0x72,0x0c,0xc6,0xb0, 0xbe,0xeb,0x46,0x4c, 0x9a,0x28,0xb3,0xdc, 0x65,0x1a,0xe0,0xaa, - 0x82,0xac,0x66,0xf4, 0x6e,0x61,0x7c,0x92, 0x82,0x1c,0xa1,0x00, 0x54,0x85,0x23,0xfc, - 0xb1,0xa7,0xb4,0x85, 0x20,0x2b,0xf5,0x7b, 0x91,0x00,0x03,0x41, 0xca,0x1a,0x43,0x55, - 0x04,0x7f,0x18,0x8f, 0xe0,0xa8,0x34,0x3f, 0x62,0x61,0x0f,0xd4, 0x98,0x3f,0x32,0x88, - 0x81,0x7a,0xa0,0x5c, 0x8d,0xf2,0x8e,0x9f, 0x44,0xa6,0x18,0x7e, 0x94,0x8e,0xce,0xae, - 0x3b,0x8e,0x63,0x3c, 0xec,0x3c,0x98,0x2d, 0x5c,0xb7,0x2d,0xcb, 0x46,0x96,0xf3,0x3e, - 0xf9,0xd3,0xdb,0xbb, 0x6d,0xe8,0xa7,0xc5, 0x32,0xba,0x02,0xe4, 0x5d,0x04,0x14,0x2d, - 0x75,0xba,0xfa,0xeb, 0xbc,0x74,0x71,0x14, 0xcd,0x56,0x8b,0x43, 0x2b,0x3b,0x2e,0x51, - 0x79,0xc9,0xe0,0x0d, 0x2c,0x98,0xd4,0xd6, 0x9e,0xb9,0x78,0x71, 0xfc,0xef,0xd3,0xa6, - 0x59,0xe9,0x9a,0xcd, 0x89,0x29,0xa1,0x57, 0xf6,0x64,0x0f,0xd4, 0x38,0xfc,0xa7,0x03, - 0xc5,0x23,0xb7,0x28, 0x3a,0x33,0x34,0x8b, 0x9d,0x82,0x45,0xee, 0xef,0xff,0xca,0x78, - 0x16,0x9e,0xa5,0x7e, 0xa3,0xbe,0xdd,0x76, 0xba,0x39,0x98,0x19, 0x4c,0x28,0xc5,0x0f, - 0xb0,0xa8,0x08,0x97, 0xc5,0x02,0x05,0x13, 0xb1,0x80,0x09,0xf3, 0xd0,0x50,0x3a,0xb9, - 0xb9,0x88,0x92,0x01, 0x7c,0x90,0xea,0x60, 0x28,0xa1,0x68,0x7a, 0x78,0x86,0xda,0x0a, - 0xa9,0x22,0x0b,0x08, 0x00,0x08,0x48,0xa2, 0xa5,0xe9,0x00,0xe3, 0xc1,0x11,0x6d,0x10, - 0x12,0x41,0x51,0x6c, 0x03,0xe2,0xc8,0x6e, 0x22,0x08,0x50,0x10, 0x3f,0x03,0xf1,0x62, - 0xc1,0x9f,0x84,0x53, 0xf0,0xff,0x0a,0x68, 0x75,0xbc,0x8a,0x2c, 0xda,0x58,0xf2,0x72, - 0x9b,0xb3,0x7f,0x11, 0xdc,0x88,0x95,0xfd, 0xca,0xe4,0xc6,0x7d, 0xb2,0xd2,0x8c,0x26, - 0x7e,0x26,0x38,0x54, 0xf0,0x87,0x91,0x13, 0xed,0x77,0xf7,0xe6, 0x87,0xe4,0x5b,0x38, - 0xbe,0x57,0xf1,0x6d, 0xf6,0x3d,0x2e,0x70, 0x90,0xf7,0x7e,0x83, 0x03,0x9d,0x2c,0xf5, - 0x1b,0xe2,0xf8,0xe7, 0x67,0x86,0x8d,0x3f, 0xb3,0xe7,0xd1,0x7d, 0x5f,0xe6,0xf2,0xb8, - 0x49,0x72,0x2e,0xae, 0x35,0x28,0x87,0x0b, 0xab,0xcb,0x32,0xaa, 0x61,0x5d,0xb6,0x2b, - 0xec,0xb6,0x8f,0x64, 0x4b,0x88,0x78,0xe5, 0xf0,0x61,0xdb,0xa7, 0x7a,0x67,0x2d,0x11, - 0x13,0x78,0x99,0xd6, 0x96,0x2c,0x48,0xd3, 0x1b,0xe4,0xb4,0x5d, 0xba,0x16,0x3a,0x5c, - 0xd2,0xe7,0x56,0xf3, 0xf4,0x3b,0x62,0x0c, 0x12,0x6e,0xb1,0xc1, 0x36,0x25,0xad,0x9d, - 0xf7,0x4f,0xa0,0x17, 0xcb,0xfa,0xbe,0x5e, 0x8a,0xbd,0x3f,0x6c, 0xf9,0xeb,0x56,0x1f, - 0x44,0xb5,0xfc,0x8b, 0xef,0x12,0xee,0x02, 0xb1,0xd0,0xc3,0xe7, 0x51,0xe1,0x4e,0x9f, - 0x39,0xc7,0x37,0xa4, 0xe2,0xa8,0x7d,0xcd, 0x27,0x6b,0xe2,0x9c, 0x53,0x77,0x32,0xc3, - 0xe7,0x93,0x45,0x9b, 0xf5,0x34,0x4c,0x33, 0x31,0x4c,0xbf,0x61, 0x12,0x9a,0x91,0xe8, - 0xe1,0x12,0xdd,0x8f, 0x5f,0xd5,0x7e,0x75, 0x66,0x25,0x50,0xc8, 0x11,0xfb,0x54,0x9d, - 0x7e,0xb0,0x84,0x7a, 0xf4,0x44,0x8f,0xa0, 0xfc,0xf4,0xee,0xf4, 0x06,0xf7,0x44,0x61, - 0x72,0x6e,0x7f,0x7f, 0x20,0x7a,0xcf,0xf6, 0x47,0xf7,0xe8,0x9b, 0x31,0x23,0x00,0xea, - 0x7e,0xca,0x7b,0x65, 0x6d,0x31,0xf8,0xd2, 0xd3,0x46,0xe3,0x82, 0x69,0x38,0xde,0x1f, - 0x5c,0x9d,0x27,0x39, 0xdf,0xc3,0x27,0x7d, 0x8b,0x7e,0x07,0x15, 0xcf,0x46,0x8c,0x24, - 0xa8,0xf7,0xa3,0x82, 0x67,0x09,0xf3,0x82, 0xda,0xe2,0x69,0xa9, 0x21,0xa1,0xd5,0x06, - 0xf6,0x5c,0x3f,0x6c, 0x05,0xd1,0x72,0x84, 0x52,0xe4,0x1b,0xec, 0xd5,0xc5,0xd6,0xdd, - 0x8b,0x1a,0xe6,0x36, 0xda,0x6f,0x08,0x08, 0x40,0x90,0x05,0xb4, 0xba,0xfd,0xe5,0xe2, - 0xc4,0x56,0x76,0xdf, 0x75,0xbb,0x55,0x88, 0x4b,0x7e,0x5c,0xfa, 0x0b,0x7d,0x7b,0xa2, - 0x50,0x35,0xfc,0xb3, 0xbf,0x29,0x35,0xbf, 0xb3,0x70,0x89,0xaf, 0x31,0x56,0x70,0xfd, - 0xac,0x5f,0x43,0x15, 0x7e,0x5a,0x26,0xbb, 0x7d,0x2b,0x83,0x39, 0x3c,0x1d,0x89,0x1b, - 0x87,0x49,0x23,0x77, 0xeb,0xa7,0xca,0xac, 0x04,0xe4,0x37,0x94, 0xe9,0x21,0x69,0xc4, - 0x90,0xb1,0x98,0x99, 0xbb,0xbd,0x27,0x25, 0xa3,0x8f,0x3f,0x44, 0x54,0x65,0xf0,0x6c, - 0x7f,0x33,0x3f,0x48, 0x10,0x29,0x95,0x5d, 0xbf,0xa4,0x21,0xb8, 0x21,0xbf,0xcc,0x20, - 0x0f,0xb7,0xdd,0x06, 0x1f,0xe3,0x44,0xf1, 0x91,0x7a,0xe9,0x9f, 0x99,0xa4,0xf5,0x70, - 0x38,0xf3,0xa5,0x45, 0x84,0x64,0x03,0xdb, 0xc1,0x45,0x7d,0x64, 0x54,0x0e,0x4e,0x22, - 0x5c,0x10,0x4f,0x27, 0x01,0x55,0x28,0xd9, 0x8f,0xbd,0x9c,0x58, 0xf4,0xfb,0x3b,0xc8, - 0x69,0xe7,0xab,0xcd, 0xc1,0x4d,0x05,0x16, 0xbe,0x0d,0xfb,0xc7, 0xc3,0xf6,0x78,0xe9, - 0x17,0x3c,0xdb,0x79, 0x08,0xef,0x9c,0x8b, 0xd9,0xa0,0x30,0xe4, 0x55,0x04,0xcc,0x0f, - 0x26,0x94,0x13,0x8c, 0x2b,0xe6,0x44,0xc4, 0xb5,0x5c,0xfa,0x5b, 0x5c,0x65,0x27,0xc7, - 0x47,0xdb,0xb4,0xb3, 0x73,0x57,0xed,0x44, 0xea,0x97,0x6c,0x9b, 0xc3,0x02,0x41,0x64, - 0xf6,0x43,0xda,0x7f, 0x17,0xd0,0x62,0x63, 0x6d,0x83,0x18,0xc8, 0xa2,0x25,0x63,0x46, - 0xf7,0x83,0x5a,0x51, 0xec,0xf3,0x55,0xe6, 0x6c,0x14,0xe8,0x3d, 0xa1,0x76,0x68,0x8e, - 0xbe,0x6b,0x4e,0x7e, 0x8c,0x51,0x09,0x11, 0xe2,0x40,0xf2,0xc0, 0x98,0x27,0xce,0x53, - 0xde,0x87,0xb3,0x39, 0x79,0xa5,0xdd,0x34, 0x33,0x0d,0x28,0x14, 0xad,0xa9,0xe3,0xb9, - 0x3a,0x89,0x48,0x6f, 0x49,0x26,0x35,0x20, 0xda,0x15,0x80,0xa4, 0x11,0x81,0x2f,0x85, - 0xc4,0xd8,0x86,0x92, 0xc0,0xa9,0x09,0x09, 0xa6,0x70,0x81,0xbd, 0x9c,0x35,0xf1,0x7d, - 0x1c,0x4f,0x8e,0xcf, 0x43,0xe6,0xe5,0xcc, 0xf6,0x9f,0x4c,0xab, 0x8a,0xed,0x3b,0xed, - 0x82,0x2f,0xb2,0xee, 0x8d,0xb0,0x5a,0xae, 0x5a,0x04,0xe2,0x62, 0xf0,0xbf,0x04,0xed, - 0xd1,0xde,0xb2,0x81, 0x45,0xbd,0x08,0xa4, 0x5b,0x99,0xc3,0x0c, 0xb8,0x50,0xd3,0xaf, - 0x41,0xf3,0x7c,0x8e, 0x31,0x71,0x22,0x1d, 0x8d,0x2c,0xa2,0xb2, 0x70,0x49,0x40,0x09, - 0x56,0x20,0x91,0xe6, 0xd4,0xfa,0xf2,0xa1, 0x9d,0xac,0xef,0x62, 0xee,0xd6,0x26,0xd4, - 0x87,0xc7,0x90,0xe6, 0x0a,0x32,0x2b,0xb4, 0x28,0x81,0x63,0x6a, 0xcc,0x3b,0xf8,0xb4, - 0x65,0xb9,0x6e,0xa8, 0x42,0x66,0x90,0x48, 0x96,0x6f,0xbc,0x1b, 0x05,0x47,0xde,0xe4, - 0x56,0x00,0xa5,0x66, 0xe7,0x4c,0xff,0x2b, 0xf0,0xc7,0xe0,0xfc, 0xc1,0x46,0x9a,0xfb, - 0xee,0x1c,0xd4,0x5a, 0xe9,0xf2,0xe1,0xc4, 0x11,0x05,0x8e,0xdd, 0xdc,0x78,0x23,0xca, - 0x93,0x34,0xe2,0xc2, 0x21,0xf7,0x21,0x74, 0x2c,0x80,0xf0,0x70, 0x46,0x62,0x2c,0xe1, - 0x10,0x48,0x25,0x9a, 0x49,0x00,0xa5,0xe6, 0x24,0x08,0xc4,0xc5, 0x5d,0x28,0x21,0x0a, - 0xa5,0xdb,0xab,0x87, 0x4f,0x91,0xbb,0x19, 0x0d,0xad,0x79,0x5c, 0x66,0x33,0xd0,0xd7, - 0x99,0x69,0xde,0x84, 0xa7,0x7d,0xec,0xc2, 0x9a,0x4a,0xa3,0x3d, 0x4e,0x44,0xea,0xdb, - 0x64,0xcc,0xf9,0x1f, 0x53,0xcf,0x0d,0x8e, 0x0f,0x5e,0x15,0xd4, 0x58,0x0e,0xff,0x7b, - 0x0f,0x71,0x9e,0xd3, 0xe4,0xd4,0x9a,0x7c, 0xc4,0xff,0x89,0x5f, 0xc4,0x1b,0x1d,0x55, - 0x67,0x7b,0xaa,0x5e, 0x02,0x6d,0xa5,0xee, 0x43,0x57,0xfb,0x15, 0x4e,0x15,0x7f,0xf2, - 0xd7,0x1a,0x69,0xa7, 0xe7,0x7f,0x0b,0xfb, 0x8c,0x18,0x12,0xd2, 0x8e,0x50,0xbe,0x5f, - 0x6b,0xff,0x39,0xe9, 0x24,0x59,0x98,0x36, 0x64,0x30,0x1a,0xf3, 0x27,0x06,0xea,0x0b, - 0x33,0x30,0x19,0xd1, 0x22,0x47,0x54,0x9f, 0x5c,0xf0,0xc6,0xc5, 0x8f,0xab,0xcd,0x99, - 0x89,0x62,0x7a,0x7e, 0x23,0x4c,0x50,0xd5, 0x30,0xcf,0xb8,0xe6, 0x6f,0x73,0x4b,0xdb, - 0xad,0x25,0x48,0x6b, 0xc7,0x30,0xea,0xe9, 0x4a,0x7b,0xdd,0xb5, 0xfb,0xd1,0x97,0x0d, - 0x7f,0x65,0xe0,0x26, 0x39,0x84,0x67,0xa2, 0xa4,0x5a,0xcb,0x59, 0x64,0x87,0x8a,0x86, - 0xa6,0x99,0xa9,0xdf, 0xae,0xad,0x2e,0xa2, 0xff,0x33,0xbc,0xef, 0x7e,0x03,0x47,0x73, - 0xd3,0xe8,0x29,0xc9, 0x40,0x74,0xa6,0x87, 0x02,0x53,0x94,0x52, 0x26,0x74,0x84,0x83, - 0x6a,0x00,0x5e,0xf3, 0x31,0x86,0x58,0x1b, 0x88,0x36,0xf0,0x54, 0xb9,0x23,0x08,0xea, - 0xc5,0xc6,0x3b,0x1d, 0x27,0x33,0x7e,0xa6, 0xe4,0x9e,0xc6,0x63, 0x8f,0xa4,0xf8,0x9f, - 0x1b,0x21,0xb9,0x3e, 0x1a,0x1c,0x05,0x87, 0xda,0x93,0x4a,0xce, 0x06,0xa8,0x30,0xc4, - 0x3b,0x59,0xc5,0xf8, 0x13,0xa2,0x71,0x77, 0xa6,0xe6,0x54,0x4e, 0x5c,0x0f,0x27,0x1d, - 0x4a,0xf0,0x4f,0x7f, 0x6a,0xf7,0x53,0x83, 0x39,0xa1,0xb7,0xff, 0x78,0xd7,0x25,0x89, - 0x4a,0xbd,0x1c,0x4d, 0xa6,0x0d,0x4f,0x8e, 0x3d,0x0f,0x93,0x8e, 0xed,0xc6,0x36,0xcf, - 0xb4,0x0b,0x49,0x95, 0xef,0x63,0xf9,0xc6, 0x99,0x5b,0xad,0x63, 0x8a,0x52,0xa5,0x82, - 0xa4,0xaa,0xcc,0xad, 0x39,0x0a,0xbd,0xb8, 0x19,0x2b,0x85,0x1b, 0xaa,0x89,0x7b,0xcd, - 0x74,0x29,0x6a,0xad, 0x10,0x21,0x06,0xa4, 0x2e,0xad,0xd4,0x22, 0x2c,0xb6,0xeb,0x2a, - 0xa2,0x6e,0x6e,0x8a, 0x57,0x83,0xb8,0x34, 0x7e,0xaf,0x8c,0xff, 0xe7,0xcf,0xfd,0xb3, - 0x39,0xce,0x5c,0xfe, 0x71,0x3b,0xa3,0xf2, 0x4b,0x4e,0x34,0x3a, 0x07,0x88,0xd9,0x1b, - 0x36,0x81,0x02,0x0e, 0x45,0xe7,0x32,0xf4, 0x1b,0xbe,0xd3,0x8f, 0xed,0xad,0x52,0x76, - 0xfd,0x74,0x9a,0x0a, 0xd5,0xdd,0xe1,0x22, 0xe8,0xf2,0x3f,0x1f, 0x1e,0x37,0x21,0x0a, - 0x5a,0xac,0x35,0x4f, 0x09,0x2e,0x85,0xef, 0xa6,0xdd,0xeb,0xbb, 0x2d,0x41,0xc9,0x82, - 0xe1,0xcf,0x9a,0x9b, 0xc9,0xcf,0x75,0xd3, 0x7c,0x99,0x77,0x61, 0x7c,0x1e,0xd4,0xe6, - 0xd4,0xda,0xd9,0x58, 0x54,0xa8,0xaa,0xf2, 0xa1,0x8a,0x60,0x55, 0x0a,0xa3,0xca,0xd7, - 0x1b,0xbb,0x25,0xc8, 0x36,0x26,0xfa,0x0c, 0x83,0xa3,0xaa,0xe7, 0xe6,0xd6,0x66,0x1c, - 0x3f,0x9d,0xcf,0xb8, 0x53,0xc5,0x7d,0x5a, 0x68,0xec,0xd8,0x08, 0x11,0xdd,0x95,0x41, - 0x18,0x24,0x45,0x18, 0x54,0x35,0xcb,0xe2, 0x79,0xf9,0x70,0xe0, 0xb0,0x47,0x7e,0xdf, - 0xd8,0x7f,0x3d,0xe7, 0x39,0xb6,0xb4,0xad, 0xf6,0xe5,0xc4,0xe8, 0xcf,0xa0,0x8a,0x77, - 0x9a,0x2e,0x48,0x33, 0x52,0x24,0x17,0x4c, 0x91,0x04,0xa6,0x28, 0x62,0xf8,0xdc,0x5a, - 0x9e,0x81,0x45,0xe6, 0xd2,0xb0,0xd7,0x62, 0xa8,0x52,0xa6,0x36, 0xc1,0xf9,0xf4,0x64, - 0xef,0x90,0x53,0xb4, 0xe3,0x76,0xf6,0xfc, 0xf7,0xd7,0xdb,0x51, 0x71,0x25,0x72,0x59, - 0xc1,0xf5,0x5e,0x2a, 0xe2,0xb2,0x93,0xa0, 0x48,0xa0,0x54,0xb0, 0x2f,0x33,0xe5,0x99, - 0x93,0x47,0x28,0x15, 0x58,0xa2,0x86,0x33, 0xe6,0x4d,0x4c,0x45, 0xb3,0x6b,0x9e,0xd7, - 0x4a,0xee,0xaf,0xb8, 0xed,0xbf,0x3d,0xc2, 0xd1,0x52,0x04,0xb0, 0x05,0xc7,0x88,0xa7, - 0x77,0x39,0x52,0x7e, 0xc8,0xaf,0x78,0x5f, 0xab,0x1f,0x6d,0x3f, 0x9f,0x81,0xa3,0x8d, - 0x0f,0xcf,0xfe,0x90, 0x42,0x98,0x27,0x51, 0x05,0x55,0xdd,0x41, 0x4b,0x42,0x43,0xb7, - 0x44,0x50,0x0e,0x42, 0xcf,0xa1,0x51,0x24, 0x11,0x51,0xe7,0xa0, 0x14,0x41,0x14,0x88, - 0x6e,0x04,0xdc,0x45, 0x1d,0x48,0xe9,0xf6, 0x23,0xe8,0x30,0x04, 0x7d,0x17,0xac,0x97, - 0xb2,0x53,0xf1,0x58, 0x16,0x2a,0x64,0x79, 0x9c,0xde,0x64,0x89, 0x33,0xbd,0x5a,0xb5, - 0xfc,0x7a,0x4a,0x9e, 0xd3,0xac,0xec,0x14, 0xe8,0x68,0xd5,0x9d, 0xff,0xa5,0x78,0x33, - 0x55,0xae,0x92,0x58, 0x4d,0x7a,0x0f,0xd0, 0x5b,0xe5,0xd5,0xf0, 0x2b,0x69,0xd7,0x51, - 0xa9,0x8b,0xe7,0x1b, 0xc6,0x9f,0x54,0xab, 0x7d,0x62,0x94,0x13, 0x0e,0xf4,0x80,0x26, - 0x51,0x16,0xbc,0xa1, 0x88,0x41,0x08,0x28, 0x50,0x97,0x7b,0x65, 0x6a,0x40,0x91,0xa7, - 0xda,0xca,0xc0,0x98, 0x14,0x74,0x4b,0x3d, 0x82,0xa3,0x19,0x10, 0x48,0x4b,0xec,0x4a, - 0xd2,0x40,0xc0,0x4d, 0x6a,0x40,0xa1,0x8f, 0xef,0x74,0xbc,0xa5, 0x7a,0x04,0x8b,0x66, - 0x7e,0xc4,0x86,0x4d, 0x4f,0x64,0x72,0xa2, 0x1c,0x4a,0xc1,0x61, 0x3b,0x60,0x66,0x42, - 0xa2,0x82,0xb1,0x47, 0x8d,0x07,0x97,0xe2, 0xf0,0xf4,0xf8,0x9e, 0x34,0xc4,0x9d,0x34, - 0xab,0xd3,0x61,0xc7, 0x1d,0x3a,0xc6,0x62, 0xb9,0xac,0xd1,0x0f, 0x8c,0x81,0x39,0x6e, - 0x19,0x90,0x66,0x67, 0x70,0x51,0x2c,0xca, 0x42,0x73,0x42,0xa0, 0xb1,0x56,0x0a,0x45, - 0x93,0x29,0x57,0xa3, 0x98,0x1c,0x5e,0x5c, 0xb6,0xe2,0xdc,0x9c, 0x3e,0x15,0x18,0x62, - 0x85,0x40,0x21,0x19, 0x0a,0xe0,0xe9,0x69, 0x6e,0x8b,0xe9,0x2f, 0x95,0x85,0x3b,0x70, - 0xee,0x32,0x8d,0x7a, 0x49,0x5b,0x8b,0x07, 0x72,0xe3,0xed,0x52, 0x59,0xcf,0xa9,0x2f, - 0xd6,0x90,0x37,0xe3, 0xa4,0xe1,0x4a,0xfd, 0xb2,0xe3,0x1b,0x35, 0xf1,0x88,0xba,0x74, - 0x9f,0x96,0x49,0x60, 0x60,0xb0,0xd6,0x5c, 0x75,0xa0,0x50,0xad, 0xd7,0x06,0xa6,0x97, - 0x61,0x52,0xc0,0x0c, 0x95,0x32,0x71,0x04, 0x15,0x09,0xea,0xad, 0x2a,0xd2,0x50,0x90, - 0x58,0x92,0x05,0x5b, 0x83,0x99,0xc8,0x01, 0x99,0xa1,0xd0,0xd6, 0xb4,0x9e,0x13,0x8a, - 0x67,0xb8,0xf2,0x99, 0x12,0x06,0xbb,0x94, 0xdd,0x14,0xdc,0x4b, 0xaa,0xf1,0x3a,0x12, - 0x0d,0x0a,0x2d,0x19, 0xe3,0xb0,0x40,0x8f, 0x13,0xf4,0xc8,0x6b, 0xe0,0xc7,0x7b,0xdb, - 0xa9,0x5e,0x95,0xfb, 0x72,0x5d,0xb5,0xeb, 0x6f,0x27,0x25,0x88, 0x14,0x25,0x54,0x11, - 0x7f,0x75,0xb8,0x9e, 0xa8,0x54,0x5a,0x22, 0xaa,0xf4,0xf7,0xa6, 0x3a,0x45,0x17,0xb0, - 0xed,0x5c,0x78,0x90, 0x44,0x67,0x1b,0xc0, 0xac,0xad,0x99,0xc3, 0x7a,0xa1,0xec,0x67, - 0x24,0xbf,0x5b,0xcf, 0x9e,0x9e,0x73,0x1a, 0xb1,0xe7,0xfa,0x73, 0xd3,0x7e,0x1f,0x2c, - 0xfe,0x46,0x5a,0x8f, 0x32,0xcd,0xfd,0x07, 0xc8,0xb7,0xb7,0xb0, 0xb5,0xb0,0x29,0x91, - 0x17,0x85,0x5f,0x25, 0x81,0xf2,0x82,0x46, 0xf7,0x05,0xa5,0x79, 0xd9,0xea,0x0b,0x47, - 0x9b,0xdf,0x11,0x6f, 0xbd,0x92,0x6c,0xad, 0x71,0x78,0xcb,0x2a, 0x63,0x7a,0xd3,0x00, - 0x44,0xf2,0x94,0x69, 0x6c,0x0b,0x4a,0xa1, 0x1a,0x54,0xc5,0xe0, 0x29,0x3e,0x97,0xf6, - 0x98,0x94,0x65,0x9e, 0x29,0x29,0xe5,0xa1, 0xbf,0xa6,0x99,0xe2, 0x9f,0x3a,0x65,0x60, - 0x51,0xca,0x83,0x5a, 0x0c,0x65,0x29,0x62, 0x50,0xb1,0x3d,0xd9, 0x3d,0x60,0x9c,0x2e, - 0x99,0xc6,0xa4,0x60, 0xfd,0xb2,0xbc,0x66, 0x43,0x8e,0x2e,0x3e, 0xcb,0xb8,0xd9,0xda, - 0x4c,0x17,0x85,0x6a, 0x1e,0x59,0xa5,0x45, 0x95,0xe7,0x23,0x69, 0x0c,0xb0,0x20,0x42, - 0x9b,0xca,0x21,0x04, 0x66,0x62,0xf3,0xbc, 0x40,0x37,0x35,0x72, 0x92,0x65,0x5d,0xc8, - 0x6a,0xc6,0x45,0xd7, 0xa7,0xb9,0x32,0xa4, 0x14,0x50,0x48,0xb4, 0x53,0xaa,0xa5,0xc3, - 0xbb,0xdc,0xe9,0x57, 0x73,0x87,0xa1,0x3c, 0x07,0x64,0x37,0x31, 0x64,0x14,0xbd,0x7c, - 0xe1,0xe6,0x93,0x83, 0x60,0xb0,0x75,0xeb, 0xef,0xd9,0x43,0x91, 0x05,0x33,0xdb,0x63, - 0x4b,0xba,0xee,0xdc, 0xb2,0xd7,0x7d,0xdf, 0x88,0xde,0xb9,0xbd, 0x83,0x89,0x60,0x31, - 0x89,0x8a,0x82,0xfa, 0xbf,0x2c,0xe9,0x8e, 0xd9,0x5b,0x14,0x4d, 0x6f,0x39,0x5e,0x5a, - 0xf0,0x05,0xc1,0xc7, 0x8b,0xb1,0x61,0x27, 0x13,0xb0,0xb5,0x1b, 0xd5,0xe9,0x51,0xbe, - 0x85,0x32,0x09,0xa1, 0x95,0xda,0x3d,0x63, 0x4b,0xeb,0x24,0x2a, 0x74,0x6b,0xac,0x14, - 0xcd,0xc7,0x0d,0x61, 0x53,0x3d,0x73,0x0f, 0xb5,0x11,0xe3,0x0c, 0xa3,0x99,0x82,0x27, - 0x2b,0x50,0x39,0x6e, 0xfc,0xeb,0x36,0x76, 0xa8,0xa0,0x41,0x55, 0x03,0x10,0x3a,0x44, - 0x76,0x86,0x0e,0x58, 0x34,0x86,0x25,0x14, 0x32,0x2e,0x24,0xf9, 0x6e,0xc0,0xcf,0x44, - 0x50,0xef,0x79,0x29, 0x89,0x20,0xe6,0x2a, 0x71,0x01,0x5a,0xfc, 0x93,0x8a,0x09,0x59, - 0x02,0xd6,0x25,0xb1, 0xc6,0x79,0x3b,0xeb, 0x0e,0x27,0x19,0x0e, 0x93,0x1f,0x2e,0x39, - 0xf4,0x52,0x99,0x4b, 0xef,0xbd,0x19,0x60, 0xf7,0x9f,0x0d,0x93, 0x7d,0xdb,0x38,0x85, - 0x75,0x40,0xd5,0x17, 0xba,0xb3,0x0f,0x72, 0xde,0x60,0xe8,0x15, 0x2c,0x2b,0x3c,0x7b, - 0x45,0x66,0x34,0xeb, 0x7d,0xae,0xec,0xeb, 0x94,0xeb,0x4e,0x82, 0x89,0xc7,0x55,0x5c, - 0x92,0x27,0x03,0xc7, 0x24,0xc1,0xd4,0xd1, 0x15,0x86,0x5b,0x37, 0xd7,0x0c,0x9b,0x6c, - 0x8b,0x36,0xdf,0x99, 0xa3,0xae,0xe5,0x90, 0x03,0xe7,0xda,0x13, 0xdf,0xa1,0x48,0xc1, - 0x48,0x30,0x54,0x83, 0x21,0x3c,0x36,0x6d, 0xac,0x16,0x02,0x5b, 0xe3,0x4b,0x82,0x1c, - 0x8d,0x6d,0xb8,0xd1, 0xd7,0xd7,0xbf,0xd2, 0x3a,0xdc,0x3b,0xdd, 0xbc,0x59,0xa3,0x21, - 0x2c,0x86,0x84,0x69, 0x54,0xae,0x61,0xfd, 0x24,0x1f,0xcf,0x84, 0x3c,0xde,0x9f,0x1f, - 0x1f,0x3b,0x52,0x94, 0xcc,0xb3,0xd8,0xd3, 0x93,0x1f,0x46,0x3c, 0x44,0x73,0xb7,0x2e, - 0x22,0x79,0x28,0xbe, 0xd8,0xaf,0x00,0xa1, 0xaa,0x4f,0x69,0xed, 0x77,0x8c,0x9a,0xb2, - 0x79,0x9d,0xb3,0x20, 0x16,0x6b,0x16,0x08, 0x80,0x90,0x44,0x00, 0x8a,0x34,0x4c,0xe4, - 0x92,0xa9,0xef,0xee, 0x7e,0x9d,0x3a,0xd4, 0x5e,0xcf,0x07,0xe8, 0xd7,0x5d,0xef,0xe9, - 0x0b,0x2b,0xce,0xfd, 0x35,0x88,0x97,0xa6, 0xf2,0x1e,0x6d,0x2e, 0xa7,0x7c,0x75,0x7a, - 0x1b,0x4a,0x5e,0xca, 0x46,0x0e,0x5a,0xcd, 0xf2,0xc2,0x44,0x3a, 0x41,0x38,0x77,0x2e, - 0x80,0x00,0xa3,0x5c, 0x70,0x9c,0xf7,0xd7, 0xb9,0x9b,0xe3,0xec, 0x48,0x8a,0x58,0x84, - 0xc4,0x53,0xf0,0xe2, 0xee,0x76,0x98,0x5a, 0xf6,0x72,0x07,0x99, 0x26,0xb4,0x15,0x28, - 0x68,0x43,0xb4,0xc4, 0xd7,0x73,0xce,0xd4, 0x67,0xdb,0xcb,0xca, 0x4d,0xf4,0xdd,0xd3, - 0x6c,0xef,0x29,0x8d, 0x05,0x02,0x64,0xba, 0x26,0x42,0xde,0xf0, 0xdc,0xac,0xf5,0xa3, - 0x7d,0xd9,0xbf,0x0a, 0x6d,0x90,0xeb,0x9a, 0x12,0x3e,0xed,0xb1, 0x3a,0xb5,0x22,0x6e, - 0x65,0xab,0x44,0xe2, 0xe6,0x1b,0x35,0x4f, 0x56,0x9a,0xdb,0xf1, 0xe1,0x8e,0xdc,0xbe, - 0x53,0x13,0x6b,0x65, 0x2b,0x51,0x4e,0xd9, 0x9d,0x26,0x8e,0x99, 0x22,0x0b,0x30,0x0e, - 0xe2,0x6e,0xcd,0x21, 0xed,0xeb,0x45,0xf2, 0x93,0x37,0xb7,0xa7, 0xb7,0x1c,0xde,0x60, - 0x8b,0x10,0x91,0x39, 0x7e,0x6f,0x40,0xbf, 0xdd,0x7c,0x6f,0xaa, 0xb8,0x4e,0xc4,0x79, - 0x0a,0x45,0xdd,0xef, 0xd6,0xd8,0x99,0x48, 0x01,0x77,0x6f,0x5c, 0xc3,0xd8,0x7a,0x2a, - 0x3d,0xd4,0xd1,0x30, 0x2e,0xe0,0x4c,0xe0, 0x1e,0x92,0xd5,0xe5, 0x68,0xa2,0x40,0x10, - 0x58,0xb6,0x65,0xab, 0xd2,0xa5,0xe1,0xa7, 0x72,0x7c,0xde,0x44, 0x9b,0xa9,0x50,0xce, - 0xfb,0xf8,0x3c,0x3c, 0xb7,0x06,0x38,0xf8, 0x8c,0x81,0x7f,0x47, 0x43,0xe3,0x60,0x1f, - 0x0e,0x27,0x85,0x89, 0xd8,0xc7,0xac,0x87, 0xed,0x86,0xff,0xe2, 0xd3,0xd4,0x75,0xa1, - 0x41,0x00,0x3d,0xcc, 0x54,0x68,0x35,0xeb, 0x94,0x80,0x5b,0xaa, 0x9a,0x80,0x9b,0x1b, - 0x96,0x99,0x00,0xea, 0x47,0xe2,0x7d,0x1f, 0x4c,0xff,0x0b,0xf4, 0x3f,0xa2,0x3f,0xa4, - 0xbd,0x80,0x26,0xf6, 0x09,0xc6,0x18,0xa5, 0xf6,0x88,0x6f,0xaf, 0x2c,0x07,0x01,0x7d, - 0x64,0x83,0xde,0x1e, 0x1d,0x1a,0x7c,0x2d, 0x7f,0x46,0x69,0x5d, 0x65,0xa8,0x16,0x1b, - 0x27,0x00,0xb6,0xd3, 0x5f,0x5b,0x21,0xf8, 0x97,0xc1,0xfb,0x0f, 0x3b,0xe0,0x33,0x15, - 0x8a,0xeb,0xd8,0xb3, 0x6c,0x4d,0xf4,0x7a, 0x10,0xfa,0xe5,0x29, 0x40,0x21,0xbf,0x42, - 0x78,0x31,0x4e,0x8e, 0x46,0x38,0xbf,0x89, 0x23,0xa6,0xd8,0x9a, 0x95,0xc3,0xdf,0x5c, - 0x2d,0xe4,0x34,0x22, 0xe7,0x32,0xd2,0xb9, 0xc8,0xde,0x88,0x15, 0xf6,0x3e,0xb9,0xd1, - 0xf1,0x36,0xad,0xaa, 0x78,0xea,0xff,0x62, 0xf9,0xf4,0xa6,0x83, 0x5d,0x6b,0xe7,0xe2, - 0x55,0x97,0x8c,0x72, 0xeb,0x39,0xbe,0x8f, 0xf7,0x73,0xf1,0x49, 0xfe,0x26,0x2f,0xcc, - 0x28,0xd1,0xa0,0x71, 0x44,0x09,0x12,0xf1, 0x1c,0x4a,0xf6,0x9d, 0x67,0x98,0xe1,0xd3, - 0xd2,0xed,0x90,0xbd, 0xc5,0xa2,0xa4,0x6a, 0xa6,0x0d,0x5b,0x04, 0x5e,0x8d,0x07,0xa0, - 0x9f,0x5e,0x23,0xee, 0xf6,0xfb,0x98,0xa5, 0xed,0x44,0xf9,0x27, 0xd4,0x81,0x3e,0x57, - 0x69,0x0c,0xb1,0x15, 0xb2,0xa0,0xd1,0x09, 0xc2,0x32,0x82,0xe1, 0x02,0xe5,0xb8,0x84, - 0x26,0xb9,0x92,0x26, 0x69,0x67,0x43,0xb4, 0xc9,0xec,0x75,0xb8, 0x57,0x19,0x21,0x4d, - 0xb0,0xf0,0xf1,0x56, 0xad,0x74,0x4d,0x73, 0x29,0x69,0x54,0x13, 0xb4,0x61,0xd9,0xa2, - 0xa0,0xfc,0xdb,0x44, 0x1e,0x0e,0xe6,0x6f, 0xb4,0x04,0xe5,0xba, 0x64,0x31,0xed,0xcb, - 0x04,0x8f,0x24,0x27, 0xcc,0xc3,0x07,0xec, 0xb3,0xa6,0x62,0xc1, 0x96,0xc9,0x3f,0x22, - 0xd2,0x64,0x50,0x41, 0x10,0xe2,0x9a,0x98, 0xee,0xde,0x3d,0xa7, 0xc1,0xf4,0xa1,0xf1, - 0x03,0xe4,0x5c,0x49, 0x74,0xa9,0xea,0x6d, 0x1d,0xdf,0xe1,0xe4, 0x41,0x9a,0xd3,0xe2, - 0x2a,0x0c,0x2f,0x1e, 0x79,0x9d,0xdc,0xfb, 0x89,0xde,0x93,0xeb, 0x7d,0xb3,0x26,0x43, - 0xa3,0x2a,0xd6,0xb5, 0xa2,0xca,0x2b,0x7d, 0xce,0x97,0x48,0x8f, 0x36,0x56,0x5b,0x45, - 0x57,0x75,0x45,0x48, 0x96,0xb4,0xac,0x7e, 0x1e,0xe9,0xda,0x64, 0xf1,0xef,0xca,0x6b, - 0xaf,0xb7,0x9d,0x38, 0x44,0x4d,0x74,0x42, 0x2a,0x36,0x50,0xfd, 0x12,0x08,0xeb,0xdf, - 0xed,0x5e,0x98,0x26, 0x17,0xeb,0x0b,0xc8, 0xb1,0x01,0xd0,0x8f, 0x1a,0x6a,0x1f,0xb2, - 0x4c,0xfd,0x9d,0xe8, 0x9f,0xe3,0x7a,0xc0, 0xb5,0x4d,0xcf,0x2f, 0x14,0x41,0x0a,0x91, - 0xa5,0xce,0x81,0x04, 0x50,0x23,0xdf,0xee, 0xeb,0x31,0xa5,0xf3, 0xce,0x32,0x00,0xa5, - 0x07,0xc9,0xcc,0x48, 0xd2,0x7b,0x41,0x2b, 0x6a,0x65,0xd2,0x59, 0x51,0xc8,0xcb,0x03, - 0xa3,0xef,0xb2,0x04, 0x24,0xcd,0xec,0x0d, 0x4b,0x72,0x35,0xa8, 0x9d,0x31,0x28,0x26, - 0xc9,0x89,0x47,0x5e, 0xc9,0xce,0xf4,0x6f, 0x17,0xa4,0xed,0xa5, 0x5c,0xdc,0xee,0xe9, - 0x8c,0x11,0xea,0x74, 0x02,0x08,0x1f,0x8a, 0x7b,0x70,0x10,0x1f, 0x52,0x69,0x38,0xca, - 0x83,0x11,0x1d,0x25, 0x20,0x71,0x27,0x04, 0x4c,0xa4,0x0a,0x3a, 0x7a,0xef,0xe7,0xb7, - 0x49,0xd8,0x81,0xc6, 0x33,0x1f,0x49,0x03, 0x22,0xd2,0xe8,0x5f, 0xb0,0x9b,0xb9,0x24, - 0x8c,0xbb,0xe7,0x3c, 0x48,0x4c,0x8f,0xa2, 0xbd,0xbc,0x2a,0xf3, 0xef,0xa2,0x35,0x7e, - 0xaf,0xe7,0xb5,0x7e, 0x54,0xad,0x47,0x1b, 0x7c,0xee,0x24,0xf4, 0xd7,0x97,0xe7,0x8c, - 0x11,0x41,0x86,0x55, 0x26,0x56,0xd8,0x92, 0xd3,0x90,0xd1,0xeb, 0x08,0x9c,0x47,0x36, - 0x90,0xe0,0xd7,0x60, 0x49,0xaf,0xd2,0x47, 0xa4,0xf5,0x97,0xa1, 0x1a,0x3e,0x5c,0xde, - 0x4e,0x90,0xd7,0x32, 0x17,0x8b,0x25,0x9d, 0xf3,0x1a,0x56,0xb3, 0xcf,0x6e,0xfa,0x4b, - 0x1a,0x7c,0x75,0xe9, 0xc5,0xa6,0x44,0xcd, 0xf5,0xce,0x3d,0xef, 0x81,0xef,0xc6,0x43, - 0x81,0xf1,0xdf,0xb6, 0xbd,0x2c,0xbb,0x51, 0x76,0x5d,0x88,0xc1, 0xc1,0x61,0xdc,0xb7, - 0x6a,0x5f,0x7c,0xfc, 0xbe,0x47,0xe3,0xe3, 0xdf,0x6f,0x4c,0x6d, 0x50,0xbe,0x39,0x5d, - 0x33,0xf6,0xaf,0xa7, 0xad,0xb8,0xb5,0x3a, 0xf5,0x1a,0xe9,0x8e, 0x55,0xb4,0xe4,0xdf, - 0x3b,0xe3,0xd9,0x4e, 0x93,0xed,0x7b,0x79, 0x76,0xad,0xf6,0x95, 0x6e,0x6c,0xe2,0x44, - 0xca,0x30,0x2a,0x06, 0x5c,0xdd,0xe8,0x5a, 0x72,0xac,0x6a,0x05, 0x8f,0x04,0xd6,0x62, - 0x4a,0x7d,0x9e,0x9f, 0x39,0x0b,0xb9,0x9f, 0xc1,0xef,0x75,0xd2, 0xda,0x5a,0x52,0xc1, - 0x1a,0x11,0xe3,0xb4, 0xa7,0x57,0x94,0x03, 0x90,0x25,0x8c,0x8c, 0x9c,0xe6,0x59,0xfd, - 0x10,0x1b,0xc5,0x7c, 0x4f,0xc5,0xd2,0xf8, 0x08,0x35,0xf9,0x3e, 0x12,0xb0,0x5f,0x28, - 0x9d,0x6a,0x9d,0xe6, 0x79,0xb3,0xae,0x8f, 0x29,0x8d,0x31,0x30, 0xc0,0xf5,0xbd,0xc6, - 0x0a,0xeb,0x39,0xbb, 0x82,0xb5,0xcc,0x69, 0x00,0x51,0x42,0x89, 0xe7,0xae,0xef,0xc7, - 0x18,0x7b,0x02,0x6b, 0xd2,0xd2,0xf4,0x0b, 0x9e,0x32,0x26,0x0b, 0xab,0x3b,0x87,0x65, - 0x5a,0xf4,0x69,0x79, 0x78,0x24,0x21,0xce, 0xf2,0x66,0x7b,0x82, 0xf5,0xdc,0x28,0x20, - 0x11,0x20,0x46,0x0b, 0x3e,0xc9,0x31,0xd7, 0xe7,0x94,0xb7,0xd0, 0xd0,0x50,0x9b,0xad, - 0x02,0x41,0xb5,0x2c, 0x26,0x44,0x0b,0x0f, 0x11,0x28,0x45,0xdf, 0x22,0x52,0x7a,0xbe, - 0xa7,0x75,0xe2,0x5d, 0x78,0x6a,0x0a,0xe4, 0xb7,0x7c,0x5a,0xf5, 0xe5,0x31,0x66,0x21, - 0xc4,0x2e,0x87,0xbc, 0xa0,0x39,0x2c,0xc4, 0xc9,0x9d,0x07,0x45, 0x0d,0x55,0x9f,0x99, - 0x69,0x21,0x12,0x62, 0x12,0xbc,0xa0,0x41, 0x9b,0xf7,0x1d,0x0d, 0xdc,0x96,0xd7,0x3e, - 0x96,0x6b,0xba,0x7d, 0x09,0x44,0xf5,0xda, 0x3f,0x0b,0xd6,0x14, 0xe4,0xf6,0x6a,0x92, - 0x01,0x26,0x70,0xe6, 0xf3,0x2e,0xdb,0x10, 0xee,0x14,0x4c,0x78, 0x4c,0xa5,0x0d,0xd6, - 0x7b,0x44,0x9a,0x91, 0x78,0x80,0xda,0xfc, 0xd5,0xaf,0xac,0x4c, 0x68,0x50,0x44,0x3d, - 0xbe,0x6f,0x16,0x3a, 0x4b,0x29,0xcb,0x42, 0x2d,0x4b,0x63,0x72, 0x59,0x15,0x20,0x41, - 0xee,0x18,0x66,0x31, 0x63,0x40,0x58,0xfb, 0x7a,0xd8,0x96,0xe2, 0x75,0x88,0x18,0xb4, - 0x60,0xc6,0x5a,0x5f, 0x6c,0xb0,0xde,0x33, 0x1c,0xe2,0xac,0xc1, 0x4b,0x28,0x52,0x95, - 0x58,0xc5,0x57,0x96, 0x4c,0xf1,0xd4,0xbd, 0x9d,0x6b,0x0d,0x17, 0xa3,0x97,0xea,0x79, - 0x3e,0x38,0x68,0x63, 0x62,0x62,0x1d,0x14, 0x2a,0xe0,0xa6,0x55, 0xbe,0x5c,0xf7,0x1c, - 0x98,0x68,0x57,0xdd, 0x78,0xf0,0x35,0x91, 0x5a,0x9e,0x86,0xc5, 0x91,0x0f,0x4f,0x75, - 0x86,0x28,0x92,0x5a, 0x44,0x86,0x40,0xa1, 0xe6,0x63,0x69,0x0c, 0xc1,0x2c,0x27,0x36, - 0xdb,0x56,0xf1,0x9d, 0x24,0x2c,0x3d,0xcd, 0xe7,0x4a,0x67,0xdc, 0x84,0x3a,0x8f,0x2c, - 0x3d,0x3a,0xad,0x8b, 0x4e,0x09,0x0a,0x6f, 0x20,0xf0,0x3b,0xa6, 0x21,0x26,0xb1,0x42, - 0x68,0x4f,0xc2,0x53, 0xab,0x85,0x29,0x84, 0x40,0x32,0x73,0x00, 0x69,0xe2,0x73,0x69, - 0x9f,0x94,0xee,0x0f, 0xcd,0x6f,0xdf,0xee, 0xd3,0xb7,0x02,0x05, 0xd6,0x8d,0xe2,0xf1, - 0xd6,0xfd,0x87,0x7b, 0x1e,0xf1,0x27,0x8a, 0xe9,0xa2,0x8b,0x89, 0x70,0xcc,0x85,0x5c, - 0x5a,0xb5,0x54,0x6d, 0xb0,0x6d,0x16,0x57, 0xa6,0xb5,0x82,0xea, 0xd5,0x5a,0x56,0xd1, - 0x27,0xa8,0xdc,0x5e, 0x07,0x8f,0x7f,0xb7, 0xb3,0x5b,0x8e,0x27, 0x1a,0x08,0x55,0xef, - 0xfa,0x96,0xae,0xd8, 0x98,0x51,0x6a,0x4f, 0x6f,0xdc,0xf3,0xce, 0xfd,0x39,0xad,0xf3, - 0x76,0x2b,0xbe,0x45, 0xb2,0xd2,0x18,0xa7, 0xd8,0xfb,0x72,0x6b, 0xcf,0x9f,0xc7,0x46, - 0x1a,0x2f,0xab,0x21, 0x41,0x9b,0xf8,0x36, 0x45,0x30,0x3b,0x68, 0xb1,0x04,0x42,0x7b, - 0x9e,0xe6,0xb6,0xd4, 0xf1,0xce,0x21,0x81, 0x02,0xb1,0x4e,0x9b, 0x7a,0xfc,0x77,0x78, - 0xee,0xdb,0x64,0x48, 0x4d,0x09,0x5c,0x4f, 0xb2,0xb7,0x91,0x75, 0x40,0x57,0xc0,0x33, - 0x13,0x54,0xde,0xd3, 0x4e,0x02,0x6a,0x47, 0xe0,0xd4,0xa8,0xc8, 0x94,0x42,0x20,0x40, - 0x96,0x31,0x6f,0x5c, 0xb3,0xbb,0x0b,0x81, 0x76,0x04,0x92,0xb2, 0xab,0xe3,0xc7,0x11, - 0x29,0x49,0xfa,0xbb, 0x7a,0x1a,0x4e,0xb6, 0x55,0x73,0x25,0x08, 0x61,0xe7,0x21,0xf0, - 0x77,0x20,0x76,0x23, 0x41,0xcd,0xb7,0x7c, 0x0b,0xa2,0x98,0xc6, 0xb9,0x55,0xe2,0xcf, - 0xcd,0xaa,0xe3,0xd3, 0x0d,0x95,0x9a,0xd9, 0x52,0x52,0xf8,0xab, 0x0b,0xca,0x54,0xbe, - 0xbb,0x8f,0x3c,0xfc, 0xbb,0xe9,0xcf,0xa3, 0xe9,0xcd,0x7d,0x9a, 0x83,0xce,0x54,0xcf, - 0x32,0x7c,0x8e,0xcb, 0xe3,0x5f,0x4d,0xb6, 0xc8,0xe3,0x9d,0xfb, 0xd2,0x3b,0x0f,0x3e, - 0x67,0xd5,0xe5,0x38, 0xb1,0x52,0x34,0x3a, 0x6d,0x68,0xa8,0x90, 0xc1,0x3d,0x32,0x1e, - 0x35,0xe9,0x5a,0x9a, 0xe5,0xda,0x33,0x36, 0x28,0x66,0x99,0x65, 0x4c,0x5b,0x59,0x46, - 0x84,0xc6,0x1d,0x67, 0xa4,0xf1,0x52,0x3a, 0x75,0x80,0xa9,0x2f, 0x9c,0x56,0x17,0xac, - 0xb6,0xeb,0xd3,0x4b, 0x8a,0xe8,0x2c,0xb3, 0xcf,0x8b,0xce,0x62, 0x11,0x20,0x62,0x69, - 0xcd,0x90,0x9b,0x9a, 0xa0,0xe6,0x23,0x27, 0x6e,0xa4,0x07,0x3b, 0x15,0x3f,0x47,0x99, - 0xf8,0x85,0x23,0xcf, 0xcb,0x67,0x68,0x1c, 0x2d,0x5f,0xb1,0x9e, 0x92,0x62,0x47,0x11, - 0x78,0x86,0x16,0x28, 0x11,0xb4,0x07,0x79, 0x27,0x0e,0x1f,0xb0, 0x87,0x15,0xd0,0x2e, - 0x3e,0xa9,0x57,0x33, 0x6d,0xe2,0x6b,0xb7, 0xb5,0xa9,0xa5,0x1d, 0x9c,0x24,0x30,0x80, - 0x71,0x9a,0x8f,0x9c, 0xc0,0xd3,0x9e,0xb4, 0xdd,0x38,0x88,0x30, 0xaa,0xde,0xae,0x3e, - 0xdc,0xf9,0x9e,0xd3, 0xbe,0x41,0x03,0x46, 0x09,0x8c,0x46,0xf9, 0xe2,0x82,0x4c,0xaa, - 0xc8,0xb2,0x9b,0x4e, 0x97,0x9b,0xf0,0xeb, 0x69,0x4c,0x4c,0xae, 0xa1,0xe1,0xc6,0x57, - 0x1c,0x34,0xca,0x8d, 0x9c,0xa4,0xcc,0x0c, 0xad,0xcc,0x2c,0xac, 0xd5,0x05,0x1e,0x8e, - 0x10,0x26,0x48,0x4a, 0x4e,0x9d,0xe1,0xfb, 0x4c,0x7b,0x7b,0xf7, 0xcb,0x96,0xf0,0x40, - 0xd7,0xac,0x5e,0x06, 0xa4,0xb4,0x88,0x20, 0x04,0x40,0x0c,0x09, 0x02,0x3c,0xec,0xf1, - 0xdb,0xde,0x79,0x83, 0xf0,0x23,0x6e,0x9b, 0xf6,0xea,0x06,0xa4, 0x02,0xdd,0x5b,0xef, - 0xff,0x9d,0x01,0x83, 0x80,0x62,0x88,0x57, 0xd3,0x4a,0xf6,0x72, 0xf1,0xc0,0xd1,0xe1, - 0x66,0xd8,0xd8,0x5d, 0x9a,0x18,0xc1,0x7d, 0xbb,0xfc,0x4b,0xbd, 0xae,0xbf,0x79,0xaf, - 0xbb,0x4e,0x0c,0x15, 0x54,0x62,0xe4,0x65, 0x16,0x22,0xca,0x76, 0x3f,0x56,0x95,0xd1, - 0xaa,0x8f,0x91,0x71, 0x8d,0x44,0x55,0xf1, 0xb2,0xb0,0xc4,0xfc, 0xe2,0x57,0xe6,0xf1, - 0xce,0x9c,0x71,0x9a, 0xa7,0x7e,0xe9,0x5d, 0x27,0x22,0xd3,0xa2, 0x4c,0x68,0xb7,0x94, - 0x50,0xf3,0x68,0x6e, 0xb1,0x41,0xe8,0xa9, 0x3f,0xa1,0x3e,0x26, 0x6c,0xde,0x97,0x81, - 0xae,0x75,0xee,0x3d, 0x3c,0x1a,0x62,0x69, 0x05,0x6a,0x33,0xbb, 0xc7,0x32,0x08,0x6b, - 0x1a,0xb9,0xd7,0x81, 0x2c,0xfd,0xad,0xd7, 0x17,0xc7,0x5e,0x9f, 0x02,0x7a,0xe0,0x6b, - 0x62,0xe5,0x44,0xbb, 0x6d,0x7e,0xbd,0xdf, 0x7e,0xad,0xb1,0x1d, 0x4c,0x9c,0x4f,0xe5, - 0x5e,0x08,0x58,0xee, 0x61,0x47,0x4c,0xbb, 0xca,0x7f,0x5b,0xde, 0x63,0xcc,0x4f,0x3a, - 0x0d,0x0b,0xf8,0xfa, 0x65,0xf1,0x8d,0xf9, 0x2d,0xa2,0x93,0xa2, 0x4b,0x2d,0x85,0xe0, - 0x40,0x31,0x22,0xee, 0xfd,0x5d,0xb8,0x78, 0xd2,0x1d,0xe6,0x5d, 0x82,0x3b,0x10,0x88, - 0x68,0xb2,0xb7,0xb5, 0x1e,0x42,0x6b,0xb7, 0xbc,0x9f,0xc1,0xf4, 0xd2,0x99,0x4c,0x4a, - 0xc5,0x16,0xd9,0x05, 0x22,0x4b,0x43,0xc8, 0x8f,0x63,0x60,0xac, 0xe5,0xb0,0x8b,0x54, - 0x8c,0xf4,0xbf,0x56, 0x53,0x2b,0xb6,0xf4, 0x01,0x28,0x80,0xe1, 0x33,0x2b,0xb8,0x89, - 0xcb,0x2b,0x6b,0xec, 0x1e,0x01,0x9a,0x44, 0x4d,0xd0,0x72,0x06, 0xd5,0x61,0x52,0x74, - 0x5c,0x11,0x91,0x69, 0x82,0xc0,0xd0,0xb5, 0x97,0x8e,0x53,0x16, 0x7b,0x37,0x43,0x59, - 0xad,0x7c,0x2e,0x9c, 0xfa,0x79,0x6a,0x61, 0xd9,0x90,0x59,0x3a, 0xc4,0x51,0x41,0x78, - 0xe6,0xfc,0x9a,0x45, 0x87,0x4c,0x7c,0x1e, 0x06,0x36,0xef,0xe3, 0xf6,0x8e,0x79,0xd3, - 0x9a,0x81,0xd1,0x16, 0x5a,0xd0,0xaf,0x61, 0xcb,0xb3,0xc3,0xd5, 0xb8,0xdb,0x6b,0x2a, - 0x55,0x4b,0x15,0x0d, 0x86,0x37,0xba,0xe9, 0xf8,0x4f,0xb5,0x0b, 0x79,0x39,0x91,0x93, - 0x3a,0xb5,0xa2,0xab, 0x45,0x70,0x58,0xbc, 0x38,0x4d,0x25,0xd0, 0x57,0xbe,0x92,0x44, - 0x26,0x7a,0x8d,0x86, 0x31,0x49,0x42,0x0e, 0x7a,0x94,0xe0,0xb3, 0x1d,0x28,0xde,0xd6, - 0x42,0x5d,0xc8,0xb7, 0xaa,0x11,0x54,0x7a, 0x5a,0x1b,0xd2,0x24, 0x37,0x10,0xd5,0x89, - 0x47,0x03,0xbe,0xce, 0x77,0x3a,0xf5,0x7c, 0x5b,0x22,0xbb,0xe5, 0x1d,0xa6,0xaf,0x90, - 0x7d,0x32,0xac,0xfb, 0x4b,0x2c,0x5a,0x97, 0x2e,0xe2,0xc7,0xad, 0x3b,0x00,0x9f,0xd7, - 0xd6,0xf9,0x76,0x9e, 0x3e,0x5a,0xd9,0xe4, 0x7c,0xb6,0xc7,0xea, 0x8e,0x3d,0x84,0x7b, - 0xd7,0x1d,0xe7,0xc7, 0xaf,0x6d,0xad,0x5d, 0x07,0x61,0xd7,0xd3, 0x7d,0x72,0x9b,0xb1, - 0x1a,0xb8,0x55,0xc8, 0xc5,0xce,0x7a,0x63, 0x42,0xf8,0x38,0xb8, 0x67,0x16,0x14,0x76, - 0x1a,0x11,0xa7,0x98, 0xb0,0x50,0xb0,0x20, 0xae,0xe8,0xed,0x67, 0x73,0xe4,0xe5,0xef, - 0x58,0x8b,0x4c,0xa1, 0xda,0xa0,0x26,0x0e, 0x3c,0xa0,0x86,0x69, 0x91,0xa8,0x90,0x4e, - 0x28,0x81,0x65,0xa3, 0x69,0x55,0x03,0x9f, 0xd5,0x78,0xeb,0x5b, 0x84,0xa8,0x36,0x81, - 0xcf,0x62,0x68,0xcb, 0x53,0xbb,0x90,0xb9, 0x23,0xc6,0xc8,0x5a, 0xa9,0x85,0x53,0x0e, - 0xa2,0xd8,0x34,0x03, 0xc9,0x60,0xc6,0x49, 0x84,0x69,0xef,0xc3, 0xf6,0x5a,0x53,0x04, - 0x96,0xfe,0x7f,0xdc, 0xa7,0xba,0x90,0xd3, 0x14,0x20,0x00,0xa3, 0xd3,0x63,0xdd,0xe4, - 0xfa,0xf7,0x6f,0x3d, 0x68,0x78,0xe2,0xde, 0xe6,0x60,0xe2,0x79, 0x9f,0x2f,0x0e,0xb2, - 0xc0,0xdd,0xa3,0x33, 0x6c,0xcc,0x11,0x62, 0x88,0x07,0x70,0x85, 0x1c,0x65,0xd5,0xa7, - 0xbf,0x6e,0x21,0xf7, 0xef,0x68,0x4c,0x09, 0x2d,0x2c,0x64,0x11, 0x7a,0xb5,0x20,0x0b, - 0x16,0x46,0x24,0x41, 0x16,0x42,0x15,0x80, 0x12,0x59,0x59,0x4c, 0x4f,0x46,0xa8,0x0a, - 0x73,0x60,0x22,0x68, 0xc9,0x02,0x4b,0x06, 0x60,0x26,0x01,0x60, 0x59,0x65,0x9f,0xc3, - 0xf0,0x66,0x62,0x05, 0x07,0xc4,0x09,0xe3, 0x08,0x55,0xee,0xf1, 0x00,0x96,0xea,0x40, - 0x9c,0x20,0x62,0x40, 0x15,0x0f,0x31,0x21, 0x11,0xac,0x67,0x25, 0x21,0x3f,0x9e,0xf9, - 0xcf,0x5e,0x98,0x01, 0xea,0x35,0xdb,0x1c, 0xd9,0xb6,0x75,0x05, 0xf2,0x06,0x1a,0x64, - 0x56,0x81,0x11,0x48, 0x03,0xa6,0xc2,0x98, 0xa8,0x27,0x22,0x17, 0x9d,0x7d,0xb2,0xde, - 0xc2,0xa1,0x04,0xba, 0xaf,0x8b,0xf4,0x95, 0xaa,0x72,0x97,0x6e, 0x07,0xd6,0xe9,0xd3, - 0xc5,0xba,0x79,0xcd, 0x74,0xa6,0xf7,0xa6, 0x43,0xc0,0xc0,0x3a, 0x2b,0x1e,0xf4,0xad, - 0x62,0x54,0xc2,0x2f, 0x16,0xa3,0xf5,0x7f, 0x17,0x28,0x4e,0xa1, 0x11,0x6b,0x6b,0x6c, - 0xc8,0x52,0xa7,0xac, 0x23,0x05,0xae,0x42, 0x28,0xd3,0xe1,0x2b, 0xa3,0xbb,0x1e,0x07, - 0x5c,0x7d,0xba,0x93, 0xd1,0xad,0x47,0xb5, 0x16,0x0a,0x1b,0x7d, 0x26,0x6f,0xaa,0xdf, - 0x63,0x78,0xbd,0xb0, 0x8a,0x25,0xd2,0x3d, 0x43,0xec,0xf8,0x2f, 0x54,0x6e,0x33,0x31, - 0x48,0x1e,0x8e,0x1d, 0x69,0x56,0xf9,0x7e, 0x89,0xd7,0x15,0x81, 0xe7,0xd7,0x9b,0xbb, - 0x6c,0x5e,0xe2,0x54, 0xfb,0xe9,0x5d,0x06, 0xb5,0x81,0xc4,0x8a, 0x0b,0x20,0xab,0xf3, - 0xe7,0xc4,0x64,0x59, 0x9a,0xd9,0x19,0xc6, 0xf8,0x36,0xe1,0xac, 0x21,0x16,0x43,0x12, - 0x01,0x50,0x3e,0xc7, 0xec,0xf6,0xf3,0x80, 0x4e,0x24,0x0f,0xc1, 0x4a,0x9d,0x70,0x9e, - 0x05,0x27,0xd7,0xc2, 0xf1,0x92,0x03,0x06, 0x0e,0x83,0x30,0x44, 0x33,0x33,0xd8,0x22, - 0x43,0x09,0x10,0x48, 0xa9,0x5a,0x7b,0xf9, 0x96,0x44,0xf9,0xcb, 0x12,0xdf,0xbe,0xc8, - 0x65,0x24,0x18,0x8c, 0x11,0x8c,0x91,0x05, 0x1c,0x98,0x9b,0x9c, 0x4c,0x4d,0x07,0x46, - 0x48,0x1d,0x59,0x08, 0x28,0x11,0x48,0x8c, 0x55,0x90,0x8b,0x0e, 0xbd,0x83,0xcb,0xa7, - 0x66,0xee,0x1b,0x52, 0x70,0x12,0xa7,0x9e, 0xd7,0x99,0x74,0x73, 0xf6,0x4c,0x0d,0x7b, - 0x8c,0x41,0x58,0x76, 0x06,0x34,0x53,0x0b, 0x4f,0x7f,0xc7,0x0d, 0x69,0x29,0xae,0x9a, - 0xfc,0x4b,0xf7,0x2d, 0xca,0x0a,0xd4,0x82, 0xbb,0xa3,0x8d,0x0b, 0x88,0x81,0x48,0x1c, - 0x11,0xbf,0x60,0xc5, 0xde,0x17,0x26,0x1b, 0xcd,0x66,0x0b,0x2d, 0x30,0xf4,0x96,0xa1, - 0x4c,0x4d,0x03,0x76, 0xfd,0x45,0xe5,0x9e, 0xa6,0xef,0xab,0x74, 0xdd,0x2b,0x37,0xf5, - 0xc4,0x64,0xfc,0xe9, 0xa4,0x69,0x6f,0x89, 0xaa,0xcb,0x31,0x14, 0xcc,0x57,0x03,0x2a, - 0xe7,0x2d,0x4c,0xa9, 0xb6,0x78,0xca,0xfa, 0xd7,0x23,0x6c,0xfa, 0x0d,0xa3,0x9f,0x7d, - 0x6a,0x5e,0xae,0xa9, 0xbe,0x5a,0x2c,0xba, 0xca,0x54,0xee,0xd9, 0x8e,0x9d,0xd3,0x8d, - 0xc3,0xb8,0x39,0x82, 0x58,0x23,0xec,0x46, 0x0b,0xb7,0xd9,0xce, 0x04,0x03,0x51,0x3f, - 0xaa,0x05,0x0b,0xd5, 0x5c,0xb7,0xd5,0x5c, 0x0a,0x40,0x0b,0x34, 0xc8,0xd7,0xd1,0x41, - 0x04,0x8e,0x4a,0x1b, 0x6f,0xc5,0xc4,0x85, 0xf3,0x21,0x66,0x32, 0x2c,0xf3,0xf3,0xb0, - 0x31,0x8e,0xbd,0xaa, 0x21,0x72,0xc8,0x5f, 0x66,0x19,0xea,0xcd, 0x72,0xda,0x18,0xc9, - 0x27,0x7b,0x7c,0x7c, 0xfd,0x1b,0x43,0xd7, 0xeb,0x4c,0xea,0x49, 0xe1,0x9e,0x74,0x87, - 0x6e,0x5d,0xb6,0xa0, 0x6c,0x9a,0x18,0x56, 0x1b,0xa6,0xee,0x6f, 0x16,0xaf,0x96,0xed, - 0x95,0x56,0x5f,0x7f, 0x8f,0x67,0x91,0xbb, 0xc5,0x80,0x7f,0x61, 0xf7,0xfd,0xc3,0x81, - 0xa9,0x66,0x04,0x81, 0xb9,0x47,0xe1,0xf3, 0x7b,0x68,0x9d,0xc6, 0x8f,0x97,0xb2,0x95, - 0xd0,0x4c,0x48,0xec, 0xfc,0xbb,0x00,0x28, 0x69,0x34,0x3a,0xed, 0x13,0x52,0x9d,0x1d, - 0x65,0x77,0x15,0x15, 0xf1,0x3c,0xee,0xef, 0xdb,0x96,0x16,0xb3, 0x34,0x97,0x49,0xce, - 0xc5,0x18,0x67,0x7a, 0x3f,0x59,0x8e,0xfe, 0xd7,0x98,0xa2,0x94, 0xed,0x04,0xa4,0x3b, - 0x1b,0xde,0x66,0xf1, 0x99,0xad,0xe7,0xc6, 0xb3,0xdf,0x6f,0x79, 0xfc,0xa8,0xb8,0xdd, - 0xe5,0x3d,0xb6,0x8b, 0xcb,0x9d,0xb8,0xc8, 0x41,0xc8,0x52,0x83, 0x08,0xf0,0x73,0x1c, - 0x0c,0xba,0xa9,0x21, 0xf5,0x8c,0x9b,0x23, 0x27,0xed,0x5b,0x83, 0x12,0x47,0xd8,0xa7, - 0x2d,0x97,0x69,0xb9, 0x30,0x42,0x04,0x9c, 0x8b,0x4c,0x8e,0xb1, 0xcc,0xf2,0xc2,0xf4, - 0x32,0xa3,0x06,0x81, 0xab,0x26,0x00,0x80, 0xf1,0xa7,0xb2,0x72, 0xcd,0x43,0xd4,0x8a, - 0x67,0xa5,0x84,0x0c, 0xb5,0x99,0xc1,0x2a, 0x18,0x8d,0x0a,0x11, 0x9f,0x10,0xc0,0x0a, - 0x93,0x19,0xb8,0xd9, 0x04,0x41,0x02,0xc6, 0xba,0x4a,0xf0,0x07, 0x7a,0x04,0x66,0x3c, - 0x1d,0x08,0x0e,0x59, 0xcf,0x7c,0xf4,0xc0, 0xd5,0x12,0xb1,0x69, 0x78,0x53,0x26,0x0c, - 0x11,0x89,0x33,0xdf, 0x66,0x46,0x2f,0x3b, 0x53,0x30,0x55,0x3c, 0xd5,0xc1,0x31,0x49, - 0x21,0x43,0x41,0x55, 0xb5,0x22,0x4e,0x94, 0x35,0x12,0x0b,0x94, 0x8b,0x8a,0x20,0x95, - 0x37,0x36,0x9e,0xf6, 0xe7,0x03,0x8c,0xc5, 0xe4,0x05,0x49,0x97, 0x67,0x89,0x74,0x23, - 0xba,0xce,0x90,0x35, 0xe9,0xd1,0x0f,0x1d, 0x9c,0x8c,0x04,0x42, 0x8b,0x99,0x8b,0x3b, - 0xd4,0x69,0xee,0x32, 0x66,0x27,0x7e,0x46, 0x3c,0x9e,0x31,0xcb, 0x4e,0xa3,0x18,0x15, - 0xd0,0x53,0xd1,0xda, 0xe2,0xc9,0xaa,0x31, 0x49,0xc4,0xa0,0x8b, 0x87,0x13,0xdf,0x94, - 0xe9,0x85,0x8d,0x69, 0x0e,0x2b,0x11,0x4e, 0x7d,0x53,0x5a,0x93, 0x4a,0x8a,0xe1,0x98, - 0x87,0x06,0x70,0xdd, 0x4d,0x33,0x8a,0x4f, 0x4f,0x3e,0x06,0xf8, 0x40,0x90,0xe2,0xf9, - 0x62,0x45,0x3d,0x69, 0x61,0x33,0xfc,0xbf, 0x46,0x42,0x0f,0xd3, 0xdf,0x6a,0xc0,0x89, - 0x32,0x62,0x08,0x20, 0x16,0x25,0x24,0x49, 0x35,0x5b,0x3e,0xe5, 0xcc,0x76,0xd1,0x9a, - 0x31,0xd6,0x51,0xda, 0x1d,0x81,0x62,0x03, 0x90,0x10,0x2d,0xc2, 0xbd,0x94,0x77,0x2c, - 0x2d,0x35,0x40,0x5a, 0x80,0xb3,0x0a,0xc9, 0x72,0x5a,0xa5,0x8e, 0x45,0x31,0x84,0x19, - 0x31,0x62,0x6a,0x95, 0x25,0x7e,0x60,0x4c, 0x72,0x23,0x83,0xc0, 0xb6,0x86,0x8a,0x89, - 0x41,0x3e,0x73,0xcc, 0xc5,0x67,0x23,0x39, 0x4d,0x8c,0xf9,0x94, 0x0d,0x64,0xce,0x38, - 0xdf,0x4e,0x67,0xad, 0x7c,0x62,0x97,0x05, 0x9a,0x67,0xe4,0xfe, 0x5d,0x80,0xcb,0xed, - 0xbb,0x04,0xdb,0x98, 0x49,0x70,0xee,0x38, 0xd7,0x8c,0x51,0xbd, 0x8d,0x0e,0xf4,0x42, - 0x0f,0x5f,0x42,0xb4, 0xe9,0xd7,0xbf,0xd5, 0x8b,0x67,0xe4,0x39, 0xdb,0xa8,0x8c,0x8e, - 0x97,0x9e,0x73,0x7a, 0xf6,0x92,0x67,0x35, 0x2a,0xd8,0x2f,0x23, 0xdc,0xbf,0x36,0xc3, - 0x9b,0x6d,0x0b,0xc5, 0x8a,0x2a,0x8c,0x51, 0x53,0xdd,0xf5,0x37, 0xe3,0xce,0x18,0x20, - 0x8c,0x51,0x60,0xa9, 0x15,0x96,0x19,0x85, 0x30,0x5b,0x4a,0x84, 0xb9,0x4d,0x93,0x07, - 0x1c,0xf5,0x78,0x74, 0xde,0x95,0x20,0x80, 0x45,0x06,0x5e,0x7a, 0x73,0x2c,0xea,0xfa, - 0x6d,0x8c,0x0a,0x16, 0x2c,0x4e,0x02,0x1d, 0xb5,0x73,0x28,0x91, 0x3d,0xb8,0x70,0xfe, - 0x94,0x66,0x47,0x22, 0xcb,0xbf,0x40,0xe5, 0xfa,0xd5,0x3c,0x55, 0x4c,0x87,0xda,0xb3, - 0xc7,0x5a,0x8b,0x2d, 0xf5,0x79,0xe9,0x31, 0x77,0x08,0x90,0x54, 0x14,0x1c,0x02,0x70, - 0x9e,0x3d,0x91,0x23, 0xb1,0x99,0x1a,0xc9, 0x3f,0xec,0xb7,0x5d, 0x4b,0x0b,0x6e,0x84, - 0x7d,0x34,0x67,0x2c, 0x1e,0xb3,0x0e,0x20, 0xea,0x2a,0x6b,0xc6, 0xdb,0x53,0x3e,0x2d, - 0x8c,0x49,0x1d,0xc3, 0xb2,0x82,0x60,0x8d, 0xc8,0x73,0xc5,0x10, 0x0f,0x34,0x0d,0x71, - 0xac,0xe2,0xcb,0x32, 0xaf,0x93,0x90,0x5a, 0xf0,0xf9,0xaf,0x93, 0x45,0xfc,0x74,0x16, - 0x3f,0x0f,0xfb,0x9e, 0xb1,0xf6,0x3f,0xeb, 0x7c,0x3f,0xee,0xb2, 0xdf,0x71,0x8d,0x4f, - 0xd4,0xa7,0xb3,0x84, 0x88,0x89,0x88,0x40, 0x60,0x42,0x20,0xc0, 0x88,0x21,0xcc,0xc0, - 0x79,0x08,0x0a,0x16, 0x40,0xed,0xbb,0xc9, 0xc8,0xd9,0x37,0xd1, 0xe6,0x20,0xa9,0x84, - 0x03,0x08,0x16,0x83, 0xb5,0xe4,0x7b,0x99, 0x34,0x25,0x70,0x78, 0x7c,0x3e,0x4b,0x04, - 0xd7,0x0a,0xe4,0xaa, 0x76,0xea,0x2e,0x0f, 0x6a,0x02,0x03,0xa7, 0x05,0xa8,0xc8,0x2a, - 0x0e,0x60,0xe5,0x2f, 0xee,0x66,0x9d,0x76, 0xf2,0x4d,0xac,0xc2, 0xce,0x8e,0xd0,0xee, - 0x3a,0xb2,0xaf,0xc4, 0xee,0x9c,0xac,0x95, 0xfb,0x9c,0x6a,0xc2, 0xe6,0x08,0xfc,0x73, - 0xce,0x3c,0xf5,0xda, 0x1a,0x42,0x9a,0x10, 0x48,0x8d,0x13,0x04, 0x7f,0x1b,0xc7,0xe9, - 0x76,0xae,0xb3,0x23, 0xa7,0x6d,0xf3,0xfc, 0x53,0x8a,0xb6,0xda, 0xb0,0x66,0x56,0xbe, - 0x46,0xf5,0xd1,0xe7, 0x94,0x9c,0x57,0x77, 0x79,0xc5,0x5c,0x33, 0xec,0xbb,0x8e,0xc2, - 0x0d,0xe1,0xf2,0x18, 0xc8,0x2c,0x05,0xc0, 0xa0,0xa0,0x24,0xe4, 0x07,0xb1,0x01,0x87, - 0xb1,0x0c,0xd3,0x83, 0x55,0x8a,0x36,0x0b, 0x6c,0x51,0x07,0xcd, 0x66,0xe3,0x8d,0x4f, - 0x0e,0xfb,0xeb,0xbb, 0x68,0x09,0x3f,0x95, 0xd5,0xfa,0xe1,0x03, 0x63,0x80,0x46,0x85, - 0xb5,0x5b,0x76,0x8a, 0x7e,0xe0,0x9a,0x47, 0x29,0xb8,0x6d,0xc8, 0xd4,0xb5,0x86,0x17, - 0x74,0x24,0x08,0x73, 0x9e,0x29,0xa7,0x15, 0xf5,0xc0,0x95,0xa6, 0x74,0x05,0x88,0x47, - 0x41,0xf2,0xd6,0x58, 0x22,0x00,0x20,0xbd, 0x0a,0x52,0x6f,0xa7, 0x50,0xf6,0xa0,0x6b, - 0xdd,0xed,0xdc,0x10, 0x0f,0x4d,0xf1,0xf6, 0xe5,0xe7,0xaf,0x98, 0xf9,0xde,0x3e,0x4c, - 0xe6,0x20,0x21,0x89, 0x2c,0xc0,0x96,0x0d, 0x79,0xa7,0x67,0xd3, 0x58,0xe9,0xf1,0xe0, - 0x67,0xea,0x47,0x9b, 0x43,0xf9,0xcb,0xcf, 0xb5,0xde,0x5e,0x92, 0xca,0x4e,0x36,0x81, - 0x53,0x17,0x9c,0xbd, 0x1f,0xaf,0xc7,0x89, 0x8f,0x1e,0xa6,0x87, 0xef,0xc4,0xbd,0x3d, - 0xa3,0xd7,0x39,0x4a, 0x10,0xa6,0x2b,0x25, 0xe7,0x36,0xec,0x58, 0x36,0xdd,0x10,0x84, - 0x76,0x37,0xe6,0x19, 0x16,0x15,0x14,0x60, 0xc2,0x7a,0x79,0xe6, 0x22,0xac,0x63,0x0f, - 0x47,0x8f,0x98,0xe3, 0x94,0x83,0x30,0x99, 0x05,0xa9,0x96,0x30, 0x24,0x01,0xdd,0x33, - 0xd0,0xf9,0x0f,0xbc, 0xfa,0x3e,0xb8,0x6f, 0x42,0xc0,0xb3,0xa6, 0xf0,0x59,0x9c,0xe9, - 0xa0,0xc6,0x23,0x58, 0x7a,0xb3,0x0c,0xf4, 0xf4,0xc8,0x68,0x1a, 0x95,0xaf,0x6e,0xb9, - 0xd1,0x49,0xf7,0x66, 0x83,0xce,0x06,0xc6, 0x41,0xe8,0xf4,0xa2, 0xe7,0xe4,0xac,0x0f, - 0x7f,0xc1,0xaf,0x7d, 0x79,0xce,0xbc,0x57, 0x7d,0x1f,0xc8,0xaf, 0x7d,0x07,0xb5,0xfa, - 0xf8,0xf2,0x65,0x22, 0x30,0x6d,0xed,0xe7, 0xf4,0xfe,0xe4,0x2f, 0x1a,0x67,0x44,0xfe, - 0x7a,0x75,0xe2,0x74, 0x98,0x9f,0xbc,0xf1, 0x11,0x2f,0x18,0xd3, 0x42,0xa5,0x30,0x75, - 0x87,0x6a,0x47,0x7f, 0x8f,0x47,0x38,0xfd, 0x32,0xa2,0xa8,0xf3, 0x29,0x8c,0xda,0x19, - 0x26,0x7d,0x56,0x1a, 0xc3,0xe7,0x7e,0x5f, 0x2b,0x0b,0xf5,0x65, 0x04,0x65,0x1a,0x45, - 0xc9,0x32,0x07,0xd4, 0x37,0xa5,0xad,0xac, 0x85,0x01,0x20,0x9e, 0x32,0x1c,0x78,0x5c, - 0xfa,0xd2,0x86,0x72, 0x2c,0x87,0x6a,0xaf, 0x67,0x69,0xdb,0xe6, 0xb5,0x11,0x06,0x08, - 0xa2,0xf3,0x4a,0xc5, 0xc4,0xef,0xf1,0x36, 0x77,0x7a,0x37,0x1a, 0x3c,0xdd,0x37,0xeb, - 0x7f,0x6b,0x76,0xf5, 0x34,0x1c,0x47,0x67, 0x1d,0xfd,0x17,0xbf, 0x73,0x9d,0xb9,0x95, - 0x61,0xa9,0xcc,0xfb, 0x78,0xe9,0xe3,0x5b, 0x56,0xa9,0x72,0x38, 0xcf,0x70,0x60,0x78, - 0xf9,0x4f,0xdd,0xfa, 0x78,0x95,0x53,0xca, 0x2a,0x79,0xaf,0xcf, 0xaf,0x9b,0x79,0xa9, - 0x43,0x23,0x1f,0x93, 0x69,0x58,0x78,0x7a, 0x3a,0xc5,0x5b,0xe5, 0xd0,0x04,0x49,0xe0, - 0x95,0xea,0x4a,0x85, 0x65,0xb6,0xbe,0x0f, 0x5a,0x6e,0x6d,0x8b, 0x9e,0x72,0x63,0x27, - 0xb9,0xf7,0xf0,0x9f, 0x67,0x2c,0x50,0x3a, 0xe1,0x08,0x26,0x0c, 0xdc,0x22,0x16,0xaa, - 0x60,0x97,0x7b,0xbc, 0x8f,0x26,0x65,0xc8, 0x92,0x95,0x2c,0x67, 0xe3,0xc6,0x9d,0xb8, - 0x90,0x7a,0xf9,0xda, 0x75,0xf8,0xae,0x0f, 0x16,0xef,0x5c,0x43, 0x33,0x47,0x2f,0xb7, - 0x24,0x86,0x29,0x11, 0xe5,0x20,0x5b,0x70, 0x5b,0x9f,0x74,0x14, 0x4a,0x9a,0x66,0xfc, - 0xa1,0xf0,0xbc,0xfb, 0xf3,0x50,0xf3,0x93, 0xe9,0x60,0x40,0x64, 0xe7,0xaf,0x56,0xff, - 0x4f,0x5e,0x1c,0xfb, 0x2a,0xac,0x58,0xe9, 0x52,0x07,0x72,0xfb, 0x44,0xfd,0x7a,0x4b, - 0xa8,0xf4,0xe8,0xf8, 0xa8,0xd8,0x81,0x24, 0xcc,0x98,0xb8,0x06, 0x69,0x07,0x62,0x5a, - 0x5d,0x51,0xf5,0x21, 0x34,0x62,0x7c,0x2c, 0xe9,0xe9,0x2e,0xd5, 0x31,0x95,0xac,0x02, - 0xfc,0xd4,0xe7,0xe0, 0xef,0xd3,0xba,0xf9, 0xa8,0xf9,0xb4,0xa9, 0x12,0xb9,0x41,0x12, - 0x09,0x06,0x42,0xee, 0xe4,0xb6,0x7f,0x29, 0x45,0x7c,0x3d,0x28, 0x90,0x90,0xb3,0xf7, - 0x78,0xf9,0xee,0xf8, 0xaf,0xbe,0x3e,0x9d, 0x04,0x3c,0xe4,0x39, 0x87,0xeb,0xe9,0xe9, - 0x5e,0xfe,0x02,0x98, 0xed,0xe7,0x73,0x18, 0xb8,0xbc,0x4b,0xcd, 0x85,0xe7,0x0d,0x27, - 0x1d,0x8a,0xb9,0xb6, 0xdb,0xf3,0xcb,0x7f, 0x3a,0x9a,0x04,0x67, 0x99,0x62,0x8c,0x9b, - 0x09,0xe3,0xa2,0xe4, 0x43,0x4b,0x05,0x11, 0x14,0xe2,0x54,0xa1, 0xed,0x4f,0x29,0x5e, - 0x0b,0x74,0x95,0x82, 0x50,0x5e,0xa6,0xb5, 0x05,0xe5,0xad,0xac, 0x93,0xc1,0xb5,0x20, - 0x90,0x69,0x21,0x4c, 0xda,0x73,0x82,0x08, 0xea,0x44,0x8e,0x9c, 0x7b,0x99,0x42,0x0b, - 0xd7,0x0c,0x09,0x18, 0x92,0x0c,0xe4,0x0d, 0xc8,0xb8,0x84,0x88, 0x60,0x2e,0x93,0x48, - 0x11,0xa1,0x6f,0x25, 0x54,0x28,0x3c,0x56, 0x89,0x94,0xaf,0xde, 0x6f,0x25,0x5e,0x9d, - 0xab,0x6f,0x45,0x9e, 0xe7,0x6e,0x21,0x05, 0x53,0x06,0x52,0x75, 0x00,0xf5,0xb4,0x3c, - 0x76,0xcf,0x4b,0xec, 0xfa,0x8c,0x01,0xa1, 0xb9,0x00,0x9d,0x4b, 0x38,0x4d,0x1e,0x64, - 0x25,0x66,0xe4,0xae, 0x9a,0x8a,0x5b,0xd3, 0xd3,0xa9,0xb3,0xc2, 0xd0,0xf5,0xed,0xb6, - 0x79,0x7c,0x0f,0xc0, 0xfe,0x8c,0x1a,0xbb, 0x5e,0x81,0xed,0x60, 0xc4,0x00,0x41,0x04, - 0x92,0x43,0x12,0xdf, 0x58,0xfc,0xe4,0x76, 0xdb,0xaa,0x8d,0x7e, 0x7f,0x91,0xd1,0xb3, - 0x61,0x2e,0xe4,0xa4, 0x8f,0x34,0xbe,0xf3, 0x61,0xe0,0xa8,0x29, 0x02,0x8e,0x98,0x63, - 0x07,0xb5,0xaa,0x42, 0xd5,0x2c,0x8a,0x52, 0xfc,0x5c,0x22,0x6a, 0x50,0x11,0x59,0x15, - 0x4a,0xf2,0xde,0xd2, 0x49,0x51,0x05,0x84, 0x10,0x37,0x41,0x70, 0xe1,0x0f,0x48,0x88, - 0x8b,0x96,0x57,0x1f, 0x29,0xdf,0x9f,0x9c, 0x81,0x99,0x4a,0xde, 0x6c,0xe6,0x0d,0x77, - 0xbe,0x27,0x3d,0x13, 0x53,0xe1,0x41,0x87, 0xc6,0x3a,0xd5,0xeb, 0x31,0x7a,0xcb,0x1d, - 0x66,0xe7,0xeb,0xd7, 0xe0,0xf5,0xc9,0x62, 0x9b,0xe7,0x81,0x7f, 0xa2,0xa5,0xc5,0x6b, - 0x19,0xdf,0x2c,0x53, 0xc1,0x1a,0xa4,0xcc, 0x03,0xd1,0x8a,0xc3, 0x13,0x81,0x9b,0xb3, - 0x34,0x88,0x96,0x53, 0xe0,0x02,0x18,0x12, 0x06,0x64,0x01,0xd8, 0x8f,0x24,0x35,0x05, - 0x48,0x18,0x21,0xac, 0xf5,0x96,0x59,0x4d, 0xda,0xa4,0x04,0x32, 0x20,0x55,0xd0,0xc8, - 0x2b,0x27,0x60,0x11, 0x0b,0x49,0x3b,0x0f, 0x05,0x56,0x97,0x22, 0x08,0x39,0x74,0x10, - 0x5e,0x95,0x53,0xef, 0xcc,0x8b,0xf3,0xda, 0xd4,0x03,0x52,0x2d, 0x95,0x03,0x88,0xcd, - 0x10,0xfa,0xb8,0x1e, 0x4b,0x65,0x8e,0x95, 0xcc,0x7d,0x7e,0x8d, 0x7f,0x8b,0x7d,0x1a, - 0xfa,0xfa,0xf4,0xf5, 0x98,0xa9,0x1a,0x43, 0xdc,0x8c,0xb5,0x57, 0xad,0xf3,0xed,0xcf, - 0x38,0xbe,0x5d,0xf3, 0xce,0xb1,0x46,0x15, 0x88,0x8e,0x8b,0xc5, 0xdb,0x52,0x9b,0x92, - 0x20,0xc4,0x6a,0x54, 0x0b,0xf6,0x6f,0x5d, 0x9e,0xf5,0x3d,0xa8, 0xa6,0xb1,0x65,0x64, - 0xf7,0x33,0xc2,0x9e, 0x6c,0xf0,0xcc,0x0e, 0x99,0x91,0x3a,0x24, 0x70,0x42,0xba,0x1e, - 0x4c,0xcb,0x0d,0x08, 0x7e,0xc8,0x64,0xfd, 0xdd,0x43,0x75,0x9c, 0x50,0x1b,0x10,0x12, - 0x25,0x0d,0x8b,0x0b, 0xd0,0xfe,0x4d,0xe3, 0x14,0x44,0x1c,0x4d, 0x9b,0x5c,0x26,0xa1, - 0x63,0x6f,0x27,0xa5, 0x76,0xbe,0x84,0x97, 0x29,0x3b,0xc7,0x68, 0xd6,0x01,0x1d,0x10, - 0x1c,0x87,0x4c,0xc4, 0x37,0x29,0x48,0xd3, 0xc5,0x1c,0xeb,0x35, 0x3d,0x7d,0x95,0xb8, - 0x4e,0x43,0x12,0x34, 0x55,0xc6,0x58,0x0f, 0x66,0xac,0xc3,0x95, 0xaa,0x0e,0x0d,0x8f, - 0xaa,0x98,0xf0,0x7d, 0x7b,0xec,0x03,0x9b, 0xba,0xd0,0x50,0x19, 0x90,0xc1,0xcc,0x16, - 0x10,0xce,0x0a,0x0c, 0xd6,0x21,0x75,0x02, 0x6e,0xfe,0x24,0x1f, 0xad,0x68,0x48,0xcf, - 0x59,0xcf,0x81,0x20, 0xfd,0x4d,0x0d,0x88, 0x9f,0x45,0x37,0x56, 0x2f,0x9d,0x5d,0x9e, - 0x4c,0x8a,0x21,0x04, 0x24,0x37,0x88,0xf6, 0x87,0x1a,0x8e,0x65, 0x94,0x0d,0xdb,0x49, - 0xf0,0x94,0x4d,0x5b, 0x4f,0x75,0xa1,0xca, 0x43,0x3d,0x05,0xb6, 0x30,0x3b,0xfa,0xa7, - 0xe6,0xdb,0x30,0xdf, 0x85,0xcb,0x0d,0x8a, 0x08,0x8c,0x9d,0x99, 0xeb,0x7d,0x7d,0xbb, - 0x3b,0xeb,0xbd,0xf9, 0xb7,0x86,0x8c,0x93, 0xc6,0x43,0x3c,0x0a, 0x3e,0x0b,0x4b,0x41, - 0x16,0x3e,0x46,0x4e, 0xb8,0xd0,0x16,0x07, 0x7e,0x4b,0xdb,0x26, 0xfc,0xfe,0x5c,0x4f, - 0x63,0x3b,0xe1,0xc5, 0xf9,0x7d,0x1d,0x19, 0x3b,0x44,0x8c,0xcc, 0x90,0x96,0x28,0xd4, - 0x5a,0x8b,0x90,0x44, 0x50,0x82,0x48,0x18, 0xfa,0x36,0x04,0x6a, 0x7a,0x2d,0xe6,0xf7, - 0xf2,0xee,0xab,0xb3, 0x91,0xe9,0xaa,0x78, 0x54,0x9b,0xed,0xd7, 0xeb,0x7a,0x6e,0xd3, - 0x54,0xde,0x21,0xb6, 0xde,0x6f,0xde,0x1d, 0xc5,0xdb,0xda,0x95, 0x5b,0x19,0x26,0x52, - 0xe6,0xa0,0x5f,0xad, 0x4b,0x71,0x0d,0xf5, 0xfb,0xeb,0xae,0x49, 0x15,0xd6,0x3a,0xa9, - 0x59,0xae,0x24,0xa6, 0x3a,0x82,0x5a,0x55, 0x57,0xc5,0x20,0xac, 0x4b,0x3b,0x48,0x97, - 0xc4,0xf8,0xed,0x4c, 0x25,0x7e,0x80,0x7d, 0x5f,0x61,0xfe,0xb9, 0xf5,0x21,0x51,0x1f, - 0xd1,0xda,0xb3,0x3f, 0x62,0x8f,0xb2,0xfd, 0x25,0x7e,0xcd,0xb4, 0xd7,0xb7,0xd9,0x06, - 0x9a,0x39,0xe5,0x7d, 0x97,0x7f,0xc3,0x50, 0x40,0xc8,0xf4,0xd3, 0xc1,0xc7,0x91,0x05, - 0x83,0xc7,0x80,0xfb, 0x51,0x50,0x89,0x91, 0x9d,0xd0,0x04,0x8c, 0xfe,0xd4,0xa8,0xdf, - 0x70,0xe4,0x29,0x51, 0xe7,0x49,0x0e,0xc4, 0x96,0x61,0x82,0x77, 0xcd,0xf6,0xc9,0x02, - 0x6f,0xf8,0x5e,0x6a, 0x20,0x45,0x60,0xf8, 0x86,0x91,0x32,0x50, 0x58,0x27,0x44,0xb5, - 0x4d,0xb7,0xa7,0xb5, 0x25,0x9d,0x76,0xcd, 0x97,0x0e,0x11,0x04, 0xa4,0x11,0x20,0x11, - 0x26,0xcb,0xa3,0x60, 0x44,0xa4,0x98,0xd2, 0x8e,0xe0,0xd2,0xf1, 0x4a,0x29,0x93,0x3d, - 0x23,0x1b,0xe2,0x6d, 0xed,0xe8,0x50,0xf6, 0x28,0x97,0x4c,0x10, 0xb2,0x0f,0xcf,0x57, - 0x0c,0x04,0x81,0x86, 0xbb,0x87,0x62,0x0b, 0x94,0xd6,0xa6,0xef, 0x01,0x8c,0x93,0x32, - 0x3b,0x91,0xe7,0x7a, 0xc4,0x33,0x4a,0xc8, 0x12,0xd4,0xb1,0x0f, 0x15,0x69,0xdc,0x90, - 0xa5,0xa8,0xa9,0x6d, 0x8b,0xd3,0x77,0x9a, 0x60,0x24,0x1e,0x5e, 0x6e,0xab,0x9c,0x6a, - 0x8e,0x1a,0x5e,0x7d, 0x20,0x72,0x61,0xb3, 0x04,0x65,0xaa,0x01, 0xc4,0xd1,0x20,0x14, - 0x36,0x7f,0x58,0x54, 0x20,0x7b,0x3f,0x35, 0x93,0xe5,0xbb,0xf3, 0x06,0x4b,0xc1,0x3c, - 0xbb,0x9b,0xac,0xf2, 0xc9,0xe5,0x21,0x6c, 0xed,0x9d,0xa7,0x23, 0x41,0x2b,0xd5,0xd9, - 0xf2,0xfb,0x71,0x3b, 0xd2,0x97,0x80,0x92, 0x95,0x34,0x39,0xd5, 0xc0,0xa8,0xcc,0xc9, - 0x48,0x4c,0xce,0x63, 0x32,0xd0,0x29,0xea, 0xff,0x86,0x7d,0x31, 0x3f,0x4f,0x3e,0xae, - 0x26,0x31,0x35,0xa5, 0x65,0xdf,0x41,0x19, 0xdf,0xb7,0xb7,0x59, 0xaa,0xbd,0x0c,0xc9, - 0x8a,0x36,0xd4,0x2c, 0xe9,0xbd,0xed,0xe5, 0xe9,0x4d,0xdc,0x23, 0x36,0x53,0x81,0xcb, - 0xd7,0x71,0x82,0x28, 0x6a,0xf6,0xe4,0xdb, 0xd8,0x6e,0x97,0x9a, 0xb3,0x3b,0xec,0xf6, - 0x78,0x5f,0x52,0xa1, 0xeb,0x60,0x73,0x1e, 0x2e,0x75,0xe7,0xa8, 0x12,0x74,0x3a,0x97, - 0x06,0x78,0x9d,0xa0, 0x96,0xa1,0x66,0x7d, 0xb4,0xf0,0x7c,0xc8, 0x96,0x99,0xa0,0xd8, - 0xf6,0x88,0xfc,0x07, 0x5b,0xf7,0x71,0xd6, 0xb7,0x76,0xe8,0xf9, 0x17,0x65,0x00,0xbb, - 0x3b,0x0d,0xc6,0xa9, 0x97,0x74,0x2c,0x40, 0x8c,0x7a,0x3e,0x5b, 0x76,0x61,0xf2,0x66, - 0x60,0x09,0x65,0x20, 0x04,0x22,0x92,0x49, 0x09,0xae,0xc8,0x87, 0x91,0xc7,0xc2,0xdb, - 0x69,0x41,0x8c,0xe8, 0x82,0x86,0x64,0xe6, 0x1b,0x02,0xe1,0xdc, 0x5d,0xc3,0x81,0xb6, - 0x5e,0x8e,0x2b,0x6e, 0x15,0x2d,0x7b,0xe5, 0xac,0x0e,0xbd,0x79, 0x0b,0xcd,0x6a,0x5a, - 0x71,0xbf,0x46,0x7d, 0x11,0x0f,0x1e,0x39, 0xdf,0xc7,0x92,0x07, 0x42,0xa3,0x10,0x62, - 0x2a,0xa2,0xc0,0x59, 0x3e,0x56,0x05,0x05, 0x04,0x00,0x46,0x22, 0xac,0x89,0x0a,0xcb, - 0x4b,0x2b,0xdc,0x9e, 0x64,0xf6,0x74,0xb2, 0x42,0x74,0xf4,0xa2, 0x5a,0x50,0x58,0xda, - 0x95,0xe1,0x90,0xc7, 0x2d,0x93,0x23,0x51, 0x4f,0x8e,0x92,0x05, 0x62,0xc3,0x2d,0x0e, - 0xf4,0x2e,0x2d,0x3c, 0xa9,0x67,0x23,0xa5, 0x26,0xe3,0x76,0xef, 0x1e,0x39,0x9b,0x80, - 0xc8,0xa8,0x5c,0xd9, 0x33,0x08,0x2d,0x15, 0x74,0xeb,0xa2,0x08, 0xbd,0x42,0x69,0x3c, - 0x3a,0x2d,0xc0,0x22, 0x45,0xb8,0x22,0x7e, 0xb6,0x76,0xa0,0x92, 0x0c,0x3c,0x59,0x0c, - 0x13,0x4d,0x1e,0xa7, 0xaa,0x41,0xb5,0xc9, 0x51,0x89,0xf6,0x90, 0xd9,0xd5,0xe5,0x68, - 0x4f,0x24,0x2d,0x1d, 0x1c,0x5e,0xbf,0x12, 0x13,0x7d,0x4b,0xeb, 0x44,0x08,0x57,0x17, - 0x81,0x29,0x51,0xfb, 0xbf,0xa1,0x94,0x04, 0x90,0x25,0x19,0x9a, 0x98,0xac,0xa5,0x01, - 0xf2,0x9a,0x67,0xde, 0xf5,0x78,0xc5,0x93, 0x59,0x98,0x04,0x33, 0x1b,0x03,0xcf,0x9a, - 0x81,0x63,0x92,0x41, 0x82,0x2c,0xb1,0xd3, 0x3e,0x01,0x40,0xb9, 0xc7,0x4a,0xd7,0x91, - 0x61,0x12,0x23,0xa4, 0xac,0xef,0x45,0x62, 0x11,0xbb,0x17,0x63, 0xc0,0x38,0x91,0xce, - 0xfd,0x26,0xd1,0xc9, 0xbb,0x81,0xbb,0x8c, 0xb6,0xc8,0x49,0xa9, 0xde,0x52,0x91,0xbe, - 0x80,0x6e,0x1e,0x3a, 0xfc,0x43,0xc3,0x7a, 0xa9,0xbd,0x4d,0xc7, 0x09,0x85,0xcf,0xac, - 0xdc,0x12,0x5b,0x40, 0xf7,0x48,0x19,0x38, 0x41,0x7d,0xc4,0x07, 0x8a,0xde,0xb3,0xbd, - 0x7c,0xe0,0x67,0xdf, 0x2f,0x57,0x9d,0x6d, 0xd6,0xfd,0x41,0x83, 0x7d,0x9c,0x6e,0x3b, - 0x90,0xc1,0x06,0x24, 0x70,0x54,0x48,0x43, 0x0b,0x02,0x01,0x22, 0xf0,0x13,0x00,0x57, - 0x4d,0x6f,0x2e,0xdd, 0xd0,0x03,0xd0,0x83, 0x9e,0x4e,0x2e,0x73, 0xc9,0x34,0xcc,0xcb, - 0x08,0xcd,0x37,0x2e, 0x83,0x4c,0xf8,0x2c, 0x07,0x62,0x69,0x9c, 0x19,0x3c,0x93,0x8a, - 0xa1,0x39,0xb0,0xdc, 0x9e,0x64,0x9c,0xfb, 0xf3,0xb7,0xc4,0x43, 0x9d,0xa7,0xa9,0xd6, - 0xd2,0xc1,0x87,0x19, 0xc6,0xd7,0xa3,0xc5, 0xd3,0xe9,0xb7,0x67, 0xc9,0x92,0xf0,0x92, - 0x71,0x63,0x6c,0x30, 0x8d,0xc3,0x7f,0x0d, 0xc1,0xb8,0x66,0xd6, 0xce,0x76,0x80,0x9c, - 0xe9,0xa4,0x0e,0x75, 0x19,0x75,0x92,0x70, 0xc3,0x59,0x7d,0x16, 0xf0,0x78,0x7b,0xb6, - 0x9c,0x78,0xac,0x55, 0xea,0xec,0x05,0xe7, 0xb6,0xdd,0x5d,0xc1, 0x0c,0x89,0xeb,0xa3, - 0xca,0x03,0xa4,0xf2, 0x25,0x84,0x22,0x91, 0x72,0xce,0x40,0x26, 0x83,0x69,0xb0,0xf1, - 0x51,0x8f,0x3d,0xb5, 0xb6,0x54,0x17,0x5a, 0x71,0x50,0xf3,0x21, 0xe5,0x29,0x69,0x3c, - 0x3f,0xbc,0x73,0x21, 0xa1,0xeb,0x7a,0x54, 0x5a,0xf4,0xe2,0xe1, 0xfa,0xa4,0x0a,0x35, - 0x46,0xf2,0x89,0xb4, 0xb3,0x42,0x82,0x69, 0x31,0xd9,0x30,0xb6, 0xf5,0x71,0xee,0x7c, - 0x24,0x09,0xe8,0xe7, 0x86,0x7a,0xa9,0x55, 0x37,0x61,0x64,0x8b, 0xcd,0x9a,0x88,0x1d, - 0xac,0x28,0xea,0xd2, 0x2a,0xc4,0x2c,0xdf, 0x4b,0x81,0x15,0xed, 0xa2,0x87,0x4f,0x3d, - 0x92,0x1a,0x4e,0xed, 0xf9,0x84,0x58,0xa3, 0x68,0x75,0xe7,0xeb, 0xf5,0xf7,0x72,0x49, - 0xd0,0x87,0x69,0x4f, 0x1e,0xa6,0x43,0x36, 0x99,0x87,0xbd,0xc2, 0x1f,0x77,0x6c,0x80, - 0x86,0x64,0xcc,0x10, 0x25,0x73,0xeb,0x13, 0x4e,0x9a,0xec,0x9c, 0x12,0x5d,0x7d,0x2e, - 0xe8,0x7d,0x49,0x25, 0x39,0x4f,0x09,0x31, 0x3d,0x3b,0xb0,0xce, 0xe9,0xe1,0x98,0x88, - 0xc3,0xca,0xf8,0xe6, 0x4b,0xd5,0x0a,0x84, 0x70,0xa2,0xc8,0xf7, 0xd3,0x13,0xab,0xd9, - 0xc3,0x7e,0x49,0x37, 0x1c,0xef,0x86,0xb5, 0x9d,0xac,0x2a,0x1c, 0x19,0xda,0x86,0x0c, - 0xe2,0x81,0xe7,0x4f, 0x4b,0x34,0xc3,0xb9, 0xec,0x7b,0x74,0x6a, 0xe6,0xc8,0x43,0x4c, - 0x50,0xe7,0xbe,0x14, 0xde,0xce,0xd4,0x39, 0x36,0x23,0xb9,0x69, 0x96,0xd8,0xf0,0x63, - 0x9e,0xfe,0x86,0xf4, 0x23,0xb3,0xb2,0x15, 0x25,0xd0,0xc7,0x59, 0xbf,0xbf,0x87,0x35, - 0x6f,0x3e,0xde,0xdd, 0x27,0x5f,0x68,0x1b, 0x31,0x63,0x58,0x1a, 0xe3,0xd1,0xfc,0xeb, - 0x44,0x77,0x86,0xc4, 0x9e,0xc1,0xe1,0x04, 0x58,0x8d,0x4e,0xeb, 0x9f,0x59,0xc4,0xb5, - 0x42,0xc6,0x64,0x03, 0x45,0x8c,0xd7,0x17, 0x5e,0xf1,0x2a,0x74, 0x99,0xe1,0xc0,0xf5, - 0xd8,0xe9,0x94,0x77, 0x43,0x8c,0xba,0x29, 0x0d,0x8f,0x40,0x5a, 0x83,0x11,0xde,0x6b, - 0xd7,0xae,0x5d,0xa3, 0x38,0xa4,0x1e,0x37, 0xa4,0x74,0xb9,0x0e, 0x1d,0xbd,0xaa,0x11, - 0xa4,0xef,0x20,0x8f, 0x68,0x35,0x53,0x54, 0x02,0xbe,0x99,0x27, 0x04,0x99,0x35,0xd0, - 0x4d,0x9e,0xfe,0xb3, 0xce,0x42,0x6e,0x17, 0x60,0x8a,0x8e,0x4c, 0xdd,0xa4,0x39,0x41, - 0x13,0x44,0x15,0x57, 0x35,0xc5,0x05,0x84, 0x5d,0xd1,0xb8,0xfc, 0xbc,0x9f,0xa3,0xde, - 0xca,0xe2,0xec,0xaa, 0x38,0xbf,0x0f,0x0c, 0xdc,0xce,0xdc,0x65, 0x4f,0x53,0x62,0x72, - 0xd3,0x5f,0xc7,0x59, 0xb3,0x78,0x04,0x11, 0x4c,0x4b,0x58,0x9c, 0xc0,0x6c,0x88,0x1e, - 0xe7,0x42,0x06,0xc4, 0x50,0x85,0x14,0x76, 0x08,0xe0,0xb7,0xb3, 0x31,0x82,0x8f,0x8b, - 0x3a,0xf9,0xbc,0x0f, 0x5f,0x1e,0x48,0x76, 0xcb,0xd5,0xd6,0x4f, 0xb1,0x2b,0x3b,0xf8, - 0x58,0x78,0x4e,0x16, 0x73,0xd4,0xb7,0x82, 0x1b,0xb9,0x00,0x9b, 0x96,0xb1,0x30,0xac, - 0x41,0xe9,0x57,0x18, 0x50,0xf5,0x14,0x41, 0xc8,0xc1,0x13,0xde, 0x6e,0xde,0xa9,0x08, - 0xac,0xf1,0x29,0x30, 0xcc,0xb0,0x45,0x80, 0x23,0x24,0x05,0x88, 0xbe,0x48,0x48,0x41, - 0x40,0x1b,0xa0,0xd6, 0x72,0x99,0x80,0xc9, 0x1e,0xb2,0x80,0x8b, 0x0a,0x7a,0x21,0x3b, - 0x03,0x51,0xad,0xa3, 0x39,0x93,0x1d,0x33, 0x89,0x4a,0x94,0x93, 0xb7,0x6f,0x9b,0xbc, - 0x18,0x20,0x0a,0x9b, 0x1d,0x3a,0xd9,0x9f, 0xdc,0xea,0x27,0x7c, 0xa3,0x6f,0x48,0xc6, - 0xad,0xd2,0x33,0xa3, 0x6f,0xe5,0x01,0x3f, 0x86,0x60,0x99,0x80, 0xd1,0xc9,0x3c,0x15, - 0x7d,0xa9,0xeb,0x53, 0x2d,0x44,0xb3,0xcb, 0x33,0x0a,0x1d,0x8a, 0x66,0x42,0x45,0x24, - 0x0c,0x4c,0x60,0xe5, 0x81,0x9d,0x65,0xc9, 0xa8,0x5a,0x25,0xbb, 0x92,0xb8,0xaa,0xe1, - 0xdc,0x21,0xf0,0xe5, 0x4f,0xcf,0x43,0xd3, 0xc7,0x4b,0x1e,0x34, 0xe2,0x44,0x92,0xef, - 0x21,0xe3,0x5f,0x0f, 0x5b,0x52,0xc6,0x07, 0x16,0x53,0x1d,0x5e, 0x51,0x29,0x65,0xd7, - 0x9a,0x49,0x9b,0x42, 0xd1,0xb8,0x0c,0x1c, 0xb2,0x21,0x89,0x66, 0x1c,0xf2,0xee,0xce, - 0xe8,0x2d,0x16,0x78, 0x5b,0x74,0xae,0x80, 0xce,0x67,0x4d,0x43, 0xe3,0x0a,0x74,0x52, - 0x2e,0x0e,0xcb,0xa5, 0x1a,0x97,0xc8,0x07, 0x92,0x3a,0x4b,0x02, 0x50,0x43,0x8a,0x99, - 0x96,0xd8,0x9b,0x07, 0x70,0x3b,0x5c,0x4b, 0x6f,0xe1,0x1a,0x6e, 0x24,0xbb,0xe5,0x37, - 0xe9,0xb9,0x7d,0x5a, 0xaa,0xe6,0x31,0x55, 0xe2,0xe3,0x24,0xc9, 0x1d,0x3c,0xa4,0xd2, - 0x04,0x81,0x70,0x57, 0x42,0xa9,0x78,0xe2, 0xc9,0xa1,0xdb,0x9e, 0x5f,0x2f,0xae,0xc6, - 0xe9,0x2f,0x72,0x65, 0xda,0xae,0x52,0xdb, 0xe7,0x71,0x90,0xc0, 0x7b,0xe9,0x40,0xe8, - 0xf3,0xe1,0xac,0x9b, 0xd0,0x52,0x10,0xec, 0x76,0xdd,0x4d,0x3d, 0x37,0x22,0xb7,0xb9, - 0x6e,0xde,0x0a,0x14, 0x90,0xdf,0xa0,0xe6, 0xda,0x4a,0xd3,0x74, 0xbd,0x4e,0x37,0xc3, - 0x31,0x2a,0xd1,0x2a, 0xa3,0xd5,0x72,0x38, 0x25,0xd6,0x49,0x69, 0x11,0x09,0x2e,0x44, - 0xba,0x72,0x73,0x16, 0x75,0x6b,0xb4,0x84, 0xf3,0x12,0xde,0xca, 0x05,0xe1,0x4e,0x5c, - 0x2c,0xd9,0xdf,0xc2, 0x92,0x4d,0xcc,0x50, 0x2a,0x49,0x34,0xc8, 0xbe,0x4c,0x09,0xd5, - 0x8f,0x67,0x1c,0xe0, 0xa9,0xc1,0x0e,0x1e, 0x17,0x8e,0x6b,0x26, 0x22,0xc2,0xa1,0x2a, - 0x49,0x50,0x3a,0xd6, 0x8a,0x01,0xcf,0xbe, 0x81,0xd3,0x9d,0x0a, 0xf7,0x24,0x59,0x38, - 0x77,0x5e,0xc4,0x79, 0xd0,0x34,0x32,0x2c, 0x92,0x73,0x49,0xe5, 0x25,0x64,0xef,0x6b, - 0x8d,0x38,0x92,0xb2, 0x0a,0x04,0xf0,0xc0, 0xdb,0xf3,0xe4,0xcf, 0x4e,0xf0,0x3a,0xd9, - 0x49,0x03,0x7d,0x3c, 0xf3,0x51,0x08,0x7c, 0xa7,0xd8,0x96,0x28, 0x28,0xdb,0x58,0x2a, - 0xc1,0x96,0xc9,0x28, 0xc8,0x28,0xc5,0x89, 0x23,0x06,0x09,0x0a, 0xc8,0x0a,0x05,0x40, - 0x06,0x52,0xc5,0x50, 0x24,0x54,0x4e,0xdc, 0xb6,0x8c,0x09,0x89, 0x01,0x60,0x33,0xf2, - 0x9c,0xd0,0x24,0xd1, 0x55,0x14,0x45,0x86, 0x59,0xab,0xf7,0x82, 0xc4,0x4d,0x88,0xb0, - 0x08,0x65,0x2a,0xb1, 0x1b,0xdc,0x98,0x19, 0xe3,0x43,0x76,0xd6, 0x10,0xec,0xb4,0x14, - 0x24,0x93,0xb9,0x02, 0x1b,0xe8,0x91,0x44, 0xa4,0x02,0xf5,0x4c, 0x8f,0x04,0x08,0x2f, - 0x0a,0x08,0x63,0x7f, 0x2e,0x0f,0x0b,0x04, 0x30,0xeb,0xae,0x4e, 0xc3,0x26,0x15,0xe3, - 0x4d,0x64,0x20,0x76, 0x26,0xcc,0xec,0x41, 0x65,0xb7,0xb1,0x07, 0xd7,0x79,0xbc,0x19, - 0x05,0x24,0x36,0x77, 0x8b,0xb5,0xac,0x33, 0x27,0x0a,0x61,0xdd, 0xa0,0xc3,0x09,0x8c, - 0x37,0x4b,0x74,0x9d, 0x76,0xa4,0xf2,0x78, 0x30,0xae,0x4c,0x6c, 0x92,0x76,0xab,0x10, - 0xb4,0xe9,0x9e,0x2d, 0xd9,0x23,0x4b,0x5a, 0xdb,0x61,0x67,0x1a, 0x2c,0x58,0x07,0x19, - 0x00,0xa9,0xad,0x3d, 0x29,0x53,0x9e,0xd6, 0x43,0x13,0x8f,0xc1, 0x0e,0xd0,0x16,0x23, - 0xaf,0x86,0x0d,0xb5, 0x05,0x25,0x65,0x60, 0x0d,0xa1,0xcb,0x62, 0x28,0xc3,0x18,0x4d, - 0x90,0x2e,0x51,0xa9, 0x55,0x62,0x2c,0x54, 0x05,0x03,0x93,0x08, 0x14,0x46,0x28,0xc3, - 0x04,0xb3,0xf0,0x19, 0x48,0x9d,0x5b,0x3d, 0x50,0xc3,0xad,0x81, 0x89,0x0f,0x08,0x49, - 0x45,0x41,0x47,0x4b, 0x38,0xc0,0x0a,0xc1, 0x32,0xc1,0xeb,0x3e, 0xc7,0x36,0x43,0xe5, - 0xee,0xb0,0x3c,0x24, 0xd7,0xc3,0x2c,0xe9, 0xe5,0x30,0x93,0x1b, 0x54,0xae,0x5c,0xcf, - 0x6c,0xb6,0x92,0x56, 0xa1,0x52,0x1d,0xf7, 0x61,0x21,0xed,0x6b, 0xa5,0x05,0x83,0xd5, - 0x6f,0xb7,0x9c,0xdd, 0x19,0x22,0xbe,0x3e, 0xee,0x40,0x26,0xbe, 0xe7,0x8c,0x10,0x7a, - 0xb1,0x65,0x88,0x8a, 0x11,0x45,0x89,0x53, 0x44,0x33,0x2d,0xa6, 0x38,0x17,0x2b,0x8e, - 0x4a,0xdc,0xa9,0x60, 0x06,0x53,0x1c,0xe0, 0xc2,0xb3,0xa2,0x18, 0x9e,0x66,0x00,0x07, - 0xab,0x26,0x24,0xe2, 0x08,0x9d,0xa5,0x1a, 0x8b,0xdb,0x73,0x2e, 0x12,0x1d,0xe1,0x4d, - 0x60,0x23,0xb7,0xef, 0x7d,0x3e,0xb7,0xae, 0xa0,0x70,0x60,0x43, 0xc2,0x40,0x9e,0x94, - 0xb2,0x38,0x50,0xf9, 0xda,0xf3,0x7b,0x3a, 0x66,0x2c,0x82,0x8f, 0x04,0xa1,0x2c,0x58, - 0xe0,0xc5,0x55,0x68, 0x55,0xdc,0x43,0xda, 0x2c,0x58,0x57,0xa4, 0x53,0xb9,0x92,0x54, - 0x09,0xeb,0x61,0x39, 0xf2,0x28,0xbb,0x35, 0x59,0x25,0x1d,0xad, 0xe7,0xad,0x5d,0x57, - 0x43,0xf0,0xad,0x62, 0xc0,0xdd,0x6f,0x76, 0x77,0xa6,0xbb,0xb7, 0x13,0x11,0x41,0x40, - 0x5e,0xa9,0xea,0x4e, 0xfd,0x5e,0x09,0x49, 0xb1,0x9a,0x95,0xcf, 0x00,0x35,0xe2,0xa3, - 0x8e,0xa5,0x3a,0xf1, 0xb4,0x17,0x08,0x4d, 0x2a,0x02,0x82,0x01, 0x85,0x96,0x4b,0x08, - 0xd6,0xcc,0xb8,0x82, 0xc3,0x08,0xb8,0xda, 0x53,0xba,0x97,0x95, 0xc4,0x70,0xa8,0x40, - 0x1b,0xcf,0x76,0x6f, 0xd1,0xd9,0x8c,0xcb, 0x79,0x86,0x62,0x56, 0xa5,0x84,0x0b,0x60, - 0xdb,0x9d,0x64,0x2d, 0xea,0x9a,0x44,0x37, 0x69,0x69,0x14,0xeb, 0x36,0x61,0xe3,0xca, - 0x91,0x0b,0x6a,0x3d, 0x0e,0x45,0x99,0xd7, 0xbf,0x1c,0xbc,0x81, 0x9a,0x66,0xb7,0x28, - 0x84,0xf9,0x35,0x01, 0x60,0x00,0x7c,0x98, 0x40,0xac,0x8a,0x40, 0x51,0x19,0x3a,0x07, - 0xa6,0xb0,0x87,0xde, 0xf8,0x5d,0x15,0x36, 0x2a,0xa7,0x8c,0xb8, 0xe0,0xab,0x55,0xa5, - 0x11,0xea,0x84,0x98, 0xe4,0xa9,0x62,0x34, 0x64,0x94,0x4d,0xce, 0x6d,0xd5,0x97,0xd7, - 0xe3,0xe9,0xe3,0xc7, 0x47,0x49,0x03,0xb7, 0x3c,0x11,0xdb,0xde, 0x04,0xc8,0x66,0x31, - 0x79,0x17,0x73,0x08, 0xd3,0xaa,0x8e,0xea, 0x77,0x41,0x9a,0x60, 0xb0,0x97,0x68,0x70, - 0x2b,0x08,0x07,0x2f, 0x42,0xee,0xbd,0x53, 0x2e,0x31,0x97,0x14, 0x9b,0x4c,0x8b,0x78, - 0xdf,0x48,0xa1,0x61, 0x2c,0xce,0xf6,0x1a, 0xc8,0x35,0xe4,0x83, 0x6e,0x9d,0xd7,0x48, - 0x66,0x1f,0x93,0xdd, 0x00,0x58,0x0b,0x09, 0x8e,0xa2,0xa4,0x7a, 0x54,0x87,0x8b,0x41, - 0x09,0x21,0x11,0x57, 0x08,0x35,0x10,0x91, 0x54,0xd0,0xd7,0xbe, 0xeb,0x92,0x42,0xd1, - 0x6a,0x2a,0x28,0x02, 0x9e,0x8c,0x34,0x61, 0x88,0x7a,0xbc,0x4d, 0x40,0xed,0x21,0xc1, - 0x90,0xf7,0x88,0x1c, 0x2c,0xb8,0x41,0x99, 0x5b,0x92,0xf6,0xdd, 0xcc,0xe0,0x73,0xed, - 0xd0,0x48,0x4e,0x73, 0x60,0x28,0xad,0x16, 0x93,0x0c,0x78,0x78, 0xb4,0xab,0x24,0x3c, - 0xea,0x98,0x02,0x60, 0x21,0x08,0x3f,0xaa, 0x7f,0x7c,0xa7,0xb5, 0xdb,0xd0,0xf6,0x90, - 0x6c,0xcb,0x33,0x12, 0x30,0x44,0x10,0xc3, 0xc8,0xe5,0xdc,0x70, 0x4a,0x07,0x1c,0x50, - 0x0f,0x6d,0x50,0x6e, 0xa4,0xe9,0xad,0xc7, 0x3d,0xa7,0x86,0xe2, 0x8b,0x2d,0x55,0xe7, - 0x32,0x03,0x37,0x53, 0x52,0x20,0xe1,0xcf, 0x4c,0xde,0x73,0x9d, 0x11,0x83,0x0e,0xe3, - 0x35,0x13,0xd6,0xe3, 0x88,0xe9,0xa7,0x12, 0xc4,0x56,0x43,0x52, 0xcd,0x22,0xc4,0x83, - 0xf2,0xee,0xd6,0xed, 0xdb,0x90,0x75,0xc4, 0xe3,0x99,0xdb,0x59, 0x88,0x01,0xd1,0x8a, - 0x76,0xb7,0xaf,0x86, 0x43,0xb5,0x93,0x5d, 0xb1,0x1d,0xb8,0x58, 0x2d,0x82,0xca,0xe1, - 0xdc,0x64,0xad,0x58, 0xcf,0x29,0x45,0x28, 0x75,0x4d,0xc6,0x6c, 0x06,0xa5,0x80,0x24, - 0x4e,0x64,0x2b,0xb5, 0x34,0x53,0x6d,0x34, 0xe0,0x13,0xaf,0x77, 0x31,0x69,0x42,0x04, - 0x58,0x93,0xbd,0xea, 0xad,0x71,0xbd,0xdd, 0xd7,0xc9,0x84,0x11, 0x95,0x35,0x7d,0xb2, - 0xd1,0xd0,0x71,0x3a, 0xa8,0x40,0x0a,0x92, 0x76,0x27,0x25,0x42, 0xcc,0x30,0x0b,0x7b, - 0xa0,0x53,0x52,0x2a, 0x39,0xd2,0xed,0xac, 0xd1,0xd8,0x87,0xa8, 0x02,0x0b,0x12,0x00, - 0xd4,0xb6,0xc5,0xb0, 0x58,0x49,0xd6,0xa5, 0xbb,0xcf,0x78,0x17, 0x69,0x04,0xe2,0x82, - 0xc9,0xcb,0x8f,0x5e, 0xa5,0xd1,0xab,0xac, 0x9e,0xe2,0x49,0xeb, 0xf5,0x5a,0x90,0x8d, - 0x92,0x29,0x2c,0x20, 0x0a,0x7d,0x6c,0x0a, 0x2e,0x09,0x21,0x50, 0x95,0x81,0x64,0x85, - 0xb8,0xb9,0x89,0xac, 0xd2,0x1c,0x50,0x9b, 0x90,0x3c,0x7d,0x16, 0x69,0x87,0xab,0x8f, - 0x34,0xe9,0xd1,0xef, 0x77,0xc8,0x40,0xea, 0xc0,0x81,0xd9,0x3a, 0xd0,0xe8,0x86,0x7a, - 0x3d,0x3a,0xcd,0x04, 0x39,0x1b,0x70,0xe3, 0xa3,0xa2,0x79,0x08, 0x55,0x4e,0xd4,0x5e, - 0xac,0xd9,0x8b,0x2b, 0x3c,0xfb,0x2b,0x54, 0x8a,0xa4,0x0e,0x9d, 0x4a,0x72,0x91,0xb4, - 0xd4,0xf4,0xb6,0xda, 0x0f,0x40,0xe9,0x52, 0xec,0x2a,0xac,0x47, 0x07,0x32,0xe2,0x82, - 0xd1,0x57,0x0f,0xc8, 0x3c,0xbc,0x3c,0x22, 0xbd,0xde,0xd1,0x49, 0x3a,0xa7,0x26,0x3d, - 0xea,0xf1,0xf7,0xe4, 0xec,0xcd,0xa8,0x2c, 0x00,0x83,0xa6,0x13, 0x2d,0x12,0xd3,0xae, - 0xd2,0x90,0x1e,0x33, 0xc3,0x86,0xb9,0x6b, 0x96,0xf0,0xee,0xf1, 0x72,0x07,0x67,0x2b, - 0xd1,0x0e,0xc4,0x17, 0x92,0x0b,0xde,0x82, 0x34,0xbe,0x09,0x81, 0xd8,0xd1,0x93,0x58, - 0xed,0x00,0xd1,0xf3, 0xb4,0x83,0x46,0x55, 0x24,0x9d,0xb2,0x7b, 0xd9,0x83,0x13,0xb6, - 0xeb,0x30,0x7d,0xbc, 0x3c,0x77,0xe9,0x10, 0x03,0xb7,0x95,0x16, 0xbc,0x9d,0x46,0x6f, - 0x4b,0xc1,0xb0,0x26, 0xf8,0xd4,0x77,0x79, 0xfa,0xb8,0x8b,0x7d, 0xfe,0x8e,0xc0,0x0c, - 0x6f,0x77,0x61,0x95, 0x47,0x1d,0x39,0x38, 0xf3,0x3d,0x6f,0x61, 0x60,0x5a,0xfc,0x85, - 0x68,0x17,0x74,0x0e, 0xe5,0xbc,0x96,0x72, 0x03,0x01,0x42,0xc7, 0xa7,0x50,0x5c,0x39, - 0x6d,0x97,0x9e,0xf1, 0x8a,0xa2,0x49,0xfa, 0x8e,0xdd,0x3d,0xfd, 0x0a,0xd6,0x86,0x69, - 0x0f,0x89,0xd0,0xef, 0xdc,0x4f,0x7b,0xcd, 0x49,0xde,0x84,0x3b, 0xdf,0x04,0x87,0x2e, - 0x57,0x95,0x69,0x29, 0xd6,0xe4,0x70,0xba, 0xc1,0x20,0xaf,0x7c, 0x8c,0x6b,0xc8,0x71, - 0x9e,0x38,0x9f,0x14, 0x50,0xba,0x3e,0x63, 0x05,0xef,0xcc,0x21, 0xd4,0x7a,0xd3,0xd6, - 0x42,0x07,0x6a,0x1e, 0x84,0x93,0xa2,0x40, 0xde,0x35,0x21,0x55, 0x8c,0xf3,0x50,0xc7, - 0x79,0xb1,0x61,0xc7, 0x34,0xc8,0x1d,0x1d, 0x20,0x9d,0xc9,0x80, 0x49,0x06,0x48,0x79, - 0xe8,0x2d,0x02,0x24, 0x46,0x5c,0x9c,0x44, 0x0b,0x17,0x19,0x20, 0x4f,0x26,0x4a,0x92, - 0x02,0xc9,0xb2,0x4a, 0x87,0x68,0xab,0xc1, 0xa0,0x77,0x70,0x3a, 0xcc,0x87,0x46,0xe4, - 0x2e,0xbd,0xfe,0x98, 0xf4,0x9d,0x30,0xe6, 0xe3,0x3c,0x58,0x4c, 0x64,0x86,0x92,0x37, - 0xd5,0x92,0x1c,0x5e, 0x4d,0x79,0x3e,0x1c, 0x8b,0xba,0x09,0x26, 0x49,0x9a,0x7a,0x07, - 0x7a,0x4c,0xca,0x23, 0xd6,0xc2,0x9e,0x9b, 0xca,0x37,0xd3,0x2b, 0x4b,0x48,0x56,0x31, - 0x0a,0x1d,0x39,0x4e, 0x72,0x87,0xd0,0xc3, 0x50,0xe3,0x24,0x59, 0x20,0x7c,0x52,0xb2, - 0x33,0xdd,0x4b,0xe3, 0x30,0x93,0xb4,0xe8, 0xaf,0x59,0x80,0x82, 0x04,0x44,0x58,0x76, - 0xa5,0x77,0x6b,0x47, 0x6f,0x71,0xbb,0xbf, 0x6b,0xc0,0xdb,0x30, 0xb2,0xc2,0x94,0x50, - 0x43,0x51,0x00,0x13, 0x19,0x02,0x40,0x9a, 0x66,0x8c,0xb6,0x1d, 0x7b,0xf5,0x8f,0x48, - 0x59,0xd6,0xaf,0x57, 0xbb,0x66,0x8c,0x9d, 0xf2,0x20,0xa4,0x46, 0x49,0x1d,0x36,0xc6, - 0xf3,0x79,0x09,0x3c, 0xf8,0x22,0x4a,0x47, 0xea,0x71,0x26,0x8a, 0x74,0x4c,0x35,0xac, - 0x84,0xf0,0xf2,0x0b, 0xee,0x20,0x5d,0x50, 0x2a,0x18,0x86,0x84, 0x3b,0xbb,0xfc,0x76, - 0x35,0xcb,0x9d,0x21, 0x3a,0x24,0x21,0x2b, 0x03,0x08,0x2c,0x4b, 0x3c,0x3a,0x70,0x18, - 0x6a,0x46,0xbd,0x46, 0x79,0x45,0x08,0x14, 0xf3,0xda,0x50,0x79, 0xa3,0x96,0x88,0xe9, - 0x0c,0x3d,0x0b,0x58, 0x8a,0x16,0x14,0xcb, 0xe7,0xe9,0xe3,0x99, 0xc8,0xf4,0x84,0xd5, - 0xc8,0x67,0x78,0x72, 0x08,0x24,0x86,0xc5, 0x66,0xf7,0xc0,0x40, 0x76,0x9d,0x43,0x84, - 0x01,0x1b,0xa5,0xb9, 0x1c,0xfa,0x2e,0x96, 0x2b,0x29,0xd9,0x9d, 0xad,0xdc,0x40,0x13, - 0x16,0x9c,0xc8,0x2c, 0x25,0xdb,0x02,0x90, 0x24,0xe4,0x64,0x1c, 0x78,0x78,0x70,0x09, - 0xb5,0xad,0x29,0x02, 0x24,0x48,0x5d,0x97, 0x10,0x83,0x19,0x26, 0x40,0xb0,0xb9,0x0a, - 0x5b,0x90,0x3e,0xe2, 0x5b,0xb7,0x20,0x60, 0xce,0x93,0x3d,0x2c, 0x9b,0xb4,0x0f,0x92, - 0x74,0xc9,0x24,0x9e, 0x50,0xf6,0x89,0x21, 0xcb,0x28,0x49,0x59, 0x52,0x4e,0xa8,0x1e, - 0x1d,0x35,0x90,0xf2, 0x6c,0x41,0x64,0x59, 0x03,0x7b,0x03,0xb1, 0x21,0x1b,0x48,0xa7, - 0x36,0xc9,0x35,0x21, 0x0a,0xd6,0x06,0x30, 0xc6,0x1f,0x53,0x00, 0xdc,0xc1,0x7c,0x98, - 0x63,0xde,0xc2,0x47, 0x7d,0x03,0x7a,0x7a, 0xbd,0x36,0x01,0xa4, 0x9a,0x54,0xdc,0x72, - 0x71,0x3a,0x57,0xc5, 0x05,0x4d,0xc8,0x18, 0xc6,0x59,0x83,0x97, 0x69,0xc7,0x6f,0x99, - 0x96,0x55,0xca,0x08, 0xaa,0xa8,0x03,0x21, 0x84,0x6f,0x6c,0x58, 0x38,0xcb,0x8d,0x1c, - 0x63,0x71,0xe7,0x44, 0xff,0x4f,0xce,0xba, 0x00,0x35,0x61,0xa7, 0xb5,0x37,0x53,0xc1, - 0xeb,0x97,0x7b,0xb0, 0x91,0x24,0x30,0x13, 0x04,0x0a,0x52,0x3a, 0x11,0x14,0x21,0x11, - 0x24,0x11,0xaa,0xd6, 0x35,0x75,0x31,0xcc, 0x12,0x63,0x86,0x9e, 0x35,0x15,0xbb,0x1c, - 0xc7,0xeb,0x29,0x0b, 0x20,0xc3,0x50,0x8a, 0x7a,0xa7,0x7b,0x64, 0xf6,0x64,0x8a,0x18, - 0xe3,0xb4,0xcc,0xd6, 0xea,0xdb,0x25,0x60, 0x18,0x6a,0x4e,0xc4, 0x38,0x22,0x82,0xb3, - 0xcb,0x3a,0x3e,0x8e, 0xbd,0xdd,0xf7,0x99, 0x77,0xbc,0x73,0x7c, 0x9a,0x5e,0xdb,0xbc, - 0xf4,0x5e,0x9e,0x10, 0x7e,0x64,0xc1,0xb2, 0x2c,0x37,0x17,0xde, 0xb8,0xc9,0x2b,0xd0, - 0x1e,0xdb,0x4b,0x38, 0x90,0x17,0x20,0x12, 0x3c,0x5d,0x33,0x3f, 0x39,0x04,0x99,0x40, - 0x8c,0xe7,0xc4,0xdc, 0xbc,0xab,0xb7,0xa2, 0x77,0xeb,0x60,0x05, 0x0e,0x01,0x0c,0x2c, - 0xe9,0xc1,0x38,0x72, 0xb7,0x1a,0x09,0x11, 0xd3,0x49,0x6a,0x34, 0x99,0xd9,0xe2,0x35, - 0x2b,0x22,0xdb,0xc0, 0x8c,0xe1,0x31,0x12, 0x35,0xda,0x18,0x72, 0x74,0x92,0x60,0xb2, - 0x4e,0x72,0x31,0xbc, 0x3d,0xab,0x80,0xe1, 0xaa,0x5b,0x04,0x4c, 0x0e,0x05,0xb5,0xce, - 0x4c,0xcd,0x69,0x89, 0x09,0x9e,0x52,0xef, 0x95,0xe4,0x25,0x62, 0x4f,0x85,0xda,0x2d, - 0x2b,0xcb,0xae,0x61, 0xdc,0x24,0x1d,0xe5, 0x52,0x7d,0x9f,0x9c, 0x60,0x49,0x8e,0xbc, - 0x4f,0x6e,0x37,0xca, 0x9a,0x73,0x47,0xcb, 0x27,0x16,0x10,0x83, 0x90,0x8b,0xb8,0x50, - 0x86,0x4e,0x67,0x67, 0x8a,0xce,0xaf,0x0c, 0xe0,0xba,0x94,0x70, 0xe9,0xe3,0x8e,0xde, - 0x5b,0x4e,0x4f,0x0b, 0x4e,0x1b,0x53,0x5c, 0x0c,0xc2,0x2c,0x1c, 0x5b,0x50,0x4d,0x6e, - 0x18,0x8b,0xfa,0x6d, 0x96,0xff,0x4e,0xd7, 0xad,0xb6,0x9e,0x50, 0x00,0xc8,0x86,0x44, - 0x4c,0x82,0x48,0x26, 0x70,0xfa,0xf8,0x99, 0xd6,0xfa,0xda,0xb7, 0xb6,0xfd,0x5d,0xfd, - 0xde,0xaf,0x47,0x9b, 0x6e,0xcd,0x88,0x96, 0x85,0x5b,0xac,0x81, 0x8f,0x5b,0x45,0xe6, - 0xc8,0x12,0xb0,0x58, 0xd2,0xba,0x72,0x49, 0x2c,0x08,0x2c,0x5c, 0x3b,0xc2,0x25,0x24, - 0x5a,0x3b,0xa8,0xae, 0x84,0x75,0xed,0xf2, 0xf4,0xe9,0xc7,0x1d, 0xb5,0xdb,0x3e,0x4e, - 0xd5,0xd2,0xd2,0x7a, 0xc7,0x1b,0x35,0x48, 0xa1,0x1c,0x10,0xd0, 0x8e,0x03,0xc9,0x04, - 0xcc,0x06,0x46,0x0b, 0x0c,0x16,0x62,0x60, 0x22,0x11,0x18,0x7d, 0xe5,0x49,0x8f,0x20, - 0x89,0x73,0x91,0xa6, 0x66,0x69,0xb1,0x4d, 0x32,0xce,0xe2,0x01, 0x37,0xf4,0x91,0x19, - 0x40,0x96,0x5d,0x9c, 0x4c,0x86,0x10,0x58, 0x22,0x4b,0x04,0x4e, 0x67,0x57,0x27,0x78, - 0xeb,0xe7,0x29,0x61, 0x21,0x6d,0xdd,0xce, 0xf4,0xdb,0xbe,0x5c, 0xe7,0xba,0xbf,0x67, - 0x33,0x73,0x2b,0x0c, 0x5d,0xcb,0x49,0x3b, 0x50,0xf1,0x64,0xea, 0xc5,0x09,0x8c,0x46, - 0xb5,0xbb,0xe6,0x3f, 0xb3,0xf1,0x17,0x14, 0x77,0xa1,0xe5,0xe3, 0x4c,0xeb,0x71,0x2e, - 0x73,0x7d,0xfc,0x11, 0x6e,0x68,0x28,0x37, 0x6a,0x0d,0x00,0x22, 0xc4,0x30,0x67,0xdd, - 0xae,0xdd,0x43,0xc1, 0x90,0xee,0x66,0x20, 0x57,0x59,0x71,0xf0, 0x66,0x92,0x48,0x54, - 0x92,0xb0,0x9e,0xe2, 0x1a,0x12,0x38,0xc4, 0x36,0xe5,0xdb,0xbb, 0x1d,0xdb,0x89,0x6a, - 0xd8,0x36,0x15,0xe5, 0x53,0xcf,0x98,0xe4, 0xf3,0x78,0xf8,0x71, 0x27,0x3a,0xa4,0x0a, - 0x4d,0xce,0xf4,0x54, 0xe9,0x68,0xbc,0x29, 0xfc,0xf2,0xcf,0x7c, 0x4b,0x57,0xd3,0x7e, - 0x39,0xcf,0x7e,0x2f, 0x6c,0x04,0x06,0x45, 0xb4,0xd7,0x8d,0x4e, 0xe2,0x29,0x19,0x5d, - 0x0d,0x6e,0x72,0xc0, 0x19,0xa4,0xc0,0x12, 0xde,0x4e,0x45,0x80, 0x91,0x91,0xbd,0x13, - 0x0b,0x17,0x2c,0xd5, 0x9b,0x7b,0xeb,0x52, 0x23,0xb2,0x46,0x6f, 0x65,0x2a,0x9b,0x11, - 0x40,0xcd,0x32,0xc4, 0x73,0x44,0x43,0x34, 0x13,0x18,0x18,0x0b, 0x96,0x69,0x96,0xbe, - 0x5e,0x9c,0x6d,0xda, 0xf8,0xa8,0x6c,0x70, 0xa2,0x20,0x6e,0xe2, 0x20,0xcf,0xb6,0x6f, - 0x6b,0xe0,0xca,0x62, 0xcf,0x7f,0x5b,0x09, 0xba,0xb7,0x5c,0xb2, 0x95,0xc3,0x89,0x6b, - 0x2d,0x1e,0x4a,0x75, 0x1b,0x4e,0xf4,0x61, 0x6c,0xe1,0x5a,0xf2, 0xa3,0xa0,0xd6,0x2c, - 0xdd,0xb7,0x39,0xa5, 0xab,0xad,0xc2,0x8c, 0x87,0x7f,0x89,0xf8, 0x19,0xe9,0x39,0xf3, - 0xa4,0x6d,0x34,0x1c, 0xc5,0xd4,0xb5,0x29, 0x02,0x09,0x28,0xf1, 0xc9,0x0c,0xe5,0x9b, - 0x59,0xaa,0x91,0xc6, 0xdc,0xbb,0xb7,0x21, 0x0c,0x3b,0xb3,0x38, 0x28,0xdf,0x0e,0xce, - 0x00,0x24,0x0b,0x96, 0x02,0x9a,0xe5,0x80, 0x73,0x3c,0x1f,0x3b, 0x9b,0x24,0x1f,0x75, - 0x02,0x15,0x81,0x8c, 0x93,0xa4,0x8a,0x04, 0xc5,0x4f,0x3c,0xb8, 0x92,0x71,0xbb,0x64, - 0x24,0xc4,0x93,0x2d, 0x24,0xe2,0x1f,0x53, 0x00,0xf9,0x3f,0x93, 0x44,0x64,0x87,0x44, - 0x85,0x43,0x8b,0x27, 0x7b,0x26,0x27,0x6f, 0x22,0xf3,0x7d,0x29, 0x03,0xb3,0x54,0x0f, - 0x63,0x36,0x74,0x81, 0xc7,0xc3,0x59,0x38, 0xf2,0xb0,0x98,0xa8, 0x70,0xdf,0xcb,0x3c, - 0x10,0xdd,0x1c,0x60, 0x54,0x50,0x39,0xa7, 0x8e,0x4b,0xd8,0xf1, 0xdf,0x4d,0x26,0x3e, - 0x09,0xd1,0xe7,0xba, 0x9b,0x2b,0x23,0x1e, 0x6c,0xd7,0x75,0xd9, 0x21,0xb9,0x9c,0x53, - 0x7f,0x1b,0xda,0x99, 0xc9,0xb3,0xcb,0x9c, 0xf1,0xe9,0xb3,0x59, 0xe5,0x8c,0x12,0x48, - 0xa4,0x52,0x2a,0x90, 0x4f,0x85,0x0f,0x8f, 0x8a,0x42,0xbd,0xa4, 0xd6,0x01,0xc4,0x2a, - 0x4c,0x49,0xc6,0x7a, 0x20,0x1c,0x49,0x3d, 0x7c,0xde,0x33,0xcf, 0xa3,0x56,0x07,0x17, - 0x64,0x52,0x0a,0x51, 0x0f,0x84,0xc8,0x77, 0xb0,0x9b,0xb8,0x58, 0xf4,0xf5,0x6e,0xcd, - 0x73,0x43,0x92,0x79, 0x3a,0xe9,0xc0,0xbd, 0x5d,0x72,0x6a,0xb3, 0xcb,0xb4,0xe6,0xe1, - 0x09,0xb9,0x3b,0x52, 0x00,0x8a,0x81,0xcd, 0x21,0xda,0x85,0xe1, 0x38,0xa6,0x54,0x03, - 0xb9,0x21,0x83,0x03, 0x5c,0xf3,0x08,0xb0, 0x0e,0x2c,0x80,0x6d, 0xdd,0x60,0x56,0x49, - 0x3c,0xa1,0x16,0x47, 0x29,0x57,0x2c,0x95, 0x1c,0x68,0x15,0x26, 0x22,0xc8,0x8c,0x05, - 0x98,0x30,0xa8,0xee, 0xee,0xc0,0xea,0xc0, 0xe6,0x9d,0x10,0x87, 0x14,0x90,0x93,0xa3, - 0x24,0x0e,0xd9,0x21, 0x0f,0x7f,0xae,0x04, 0x5f,0x2d,0xd8,0x43, 0x9e,0x3a,0xe7,0x5d, - 0x4e,0xb0,0xf1,0x73, 0x3c,0x64,0x80,0xa4, 0x16,0x02,0x92,0x5e, 0xe8,0x01,0xd3,0x00, - 0xed,0x09,0xc6,0x41, 0x64,0x33,0xe9,0xa4, 0x9f,0x3a,0x43,0xd1, 0x21,0x03,0xf0,0x39, - 0x64,0x93,0xca,0x1a, 0x81,0x31,0x0e,0x99, 0xf0,0x43,0xc2,0x04, 0xe9,0x02,0xa2,0x06, - 0xad,0xd4,0xe7,0x8a, 0x81,0x51,0x73,0xc0, 0x4c,0xd1,0x1d,0x3d, 0x6c,0x2c,0xe8,0xc4, - 0x2a,0x2a,0x1a,0xa9, 0x21,0xcd,0x81,0x03, 0xb0,0x40,0xef,0x40, 0xeb,0xb5,0x81,0x0e, - 0x89,0x21,0x38,0x20, 0x02,0xc0,0x6d,0x10, 0x2a,0x08,0x21,0x50, 0x41,0xa8,0xa2,0x68, - 0xc5,0x0c,0xf7,0x50, 0xa2,0x67,0xbe,0x84, 0x49,0x10,0x5c,0x62, 0x19,0x22,0xa1,0xb1, - 0x03,0x3c,0x00,0x0d, 0x58,0x21,0x92,0x0c, 0x8a,0xa6,0x78,0x6d, 0x62,0xa5,0xf1,0x35, - 0x20,0xe6,0x88,0x1a, 0x51,0x57,0x2c,0x17, 0x34,0x43,0x46,0x29, 0x68,0x90,0x58,0x45, - 0x14,0x3c,0x51,0xd6, 0xfc,0x37,0xa0,0x54, 0x31,0x20,0x68,0x64, 0xac,0x90,0x9d,0x5e, - 0x90,0x05,0x84,0x08, 0x29,0x08,0x41,0x61, 0x21,0x88,0x4f,0x2c, 0x3e,0xe2,0x79,0x4e, - 0x31,0x75,0x34,0xe8, 0x5d,0x09,0x74,0x00, 0x73,0xc1,0x5d,0x18, 0xa2,0xda,0x22,0x81, - 0x20,0x06,0x68,0x34, 0x40,0x61,0x94,0x26, 0x61,0xb6,0xdc,0x37, 0x83,0xbf,0x3c,0xeb, - 0xea,0xf1,0xbf,0x9d, 0x74,0x32,0xb6,0x20, 0xe9,0xbf,0x9a,0xca, 0x20,0x76,0x57,0x31, - 0xc2,0x57,0xdf,0xf1, 0xe4,0xf6,0x7d,0x5e, 0xfa,0x60,0x2c,0x3c, 0xbf,0x92,0x7c,0xae, - 0x59,0x35,0x34,0x4a, 0xe7,0x30,0xc1,0x76, 0x97,0x73,0x7a,0x3a, 0x8b,0x26,0x24,0x84, - 0x94,0x4f,0x3e,0x36, 0x1e,0x09,0x09,0x55, 0x93,0x2d,0x90,0xf3, 0x7a,0x4c,0x2b,0x80, - 0x0a,0x4a,0xc0,0x3e, 0x5b,0x66,0xa4,0x16, 0x4f,0x72,0x43,0x58, 0x7d,0x49,0x27,0x5c, - 0x95,0x0b,0xd1,0x84, 0x31,0x88,0x2e,0x25, 0x0c,0xca,0x79,0xda, 0x6d,0xb2,0x29,0x82, - 0x2c,0x0e,0x9e,0x82, 0x93,0x51,0x01,0x89, 0x39,0x30,0x2b,0xe0, 0x9b,0x65,0x03,0x64, - 0x93,0x18,0x67,0x0a, 0x42,0x6f,0x64,0x38, 0xa8,0x29,0x0f,0x54, 0x0e,0x24,0x87,0x48, - 0x1d,0x61,0x83,0x93, 0xd5,0x31,0x87,0x56, 0xf1,0x90,0xc6,0x04, 0x9e,0x74,0x27,0x92, - 0x07,0xa5,0x87,0x7b, 0x20,0x71,0x48,0xa1, 0x76,0xc3,0x99,0xc6, 0x9c,0x7b,0x3e,0x1e, - 0x0d,0x47,0x8d,0x87, 0x56,0xaf,0x49,0x50, 0x43,0xba,0x50,0xb4, 0x81,0x37,0x6c,0x84, - 0x25,0x65,0x54,0x59, 0x02,0x29,0x21,0xb5, 0xb3,0xb1,0xd2,0x42, 0x62,0x54,0x02,0xf1, - 0xa4,0x21,0xe5,0x01, 0x0c,0x90,0x16,0xed, 0x5a,0x15,0x2d,0x14, 0x5b,0x41,0x42,0xe8, - 0x81,0x92,0x09,0xb5, 0xcb,0x42,0x07,0x84, 0x0e,0xd8,0x1c,0x43, 0x10,0x02,0xa4,0x21, - 0x0e,0xd2,0x4a,0xc8, 0x07,0xbd,0x24,0x5a, 0x80,0xa6,0x10,0x16, 0xe8,0xa8,0x19,0x62, - 0x19,0x2d,0x4b,0xad, 0x11,0xc2,0x08,0x36, 0x8a,0x68,0x41,0xd6, 0x8a,0x92,0x38,0xc5, - 0x2e,0xbe,0xaa,0x6d, 0xa2,0x09,0x68,0xa2, 0xb6,0x88,0x06,0x30, 0x00,0x0d,0x28,0x3a, - 0xf0,0x07,0x3c,0x11, 0x0b,0xe0,0x8e,0x68, 0x8b,0x8c,0x40,0x33, 0x40,0x0a,0x8e,0x94, - 0x45,0x6f,0x8a,0x9a, 0xe6,0x5c,0xda,0xd3, 0x2e,0x8e,0x5c,0xd7, 0x6a,0x58,0xbe,0xfb, - 0x18,0x8a,0x25,0xa2, 0x32,0x6b,0xc6,0xed, 0x4c,0xf5,0x80,0xd5, 0x2d,0x42,0xdd,0xe7, - 0x27,0x12,0x20,0x12, 0x35,0xd7,0xab,0xb4, 0x4d,0x9e,0x71,0x05, 0xad,0x08,0x30,0x15, - 0xc7,0x47,0x61,0xd0, 0x81,0x48,0x9b,0x56, 0x72,0x6b,0x9c,0x9d, 0x36,0xde,0x73,0x76, - 0x67,0x2c,0xc8,0xb5, 0xc8,0x07,0x0c,0xc2, 0x09,0x1a,0xa0,0x11, 0x3d,0xbd,0xfd,0x76, - 0x0e,0x4f,0x36,0x1c, 0x5b,0x66,0xc6,0x13, 0xa2,0x23,0xdc,0xc8, 0x56,0x40,0xa9,0x39, - 0xa4,0xe0,0xc2,0x4d, 0x99,0x36,0x41,0x4a, 0x21,0x26,0xf5,0xf4, 0xd9,0x7b,0x7a,0x64, - 0x3a,0xf3,0xb3,0x83, 0x38,0x32,0x66,0x59, 0x9c,0xa0,0xcc,0xcd, 0xd8,0xf9,0x3d,0x5c, - 0x20,0x05,0x7d,0x95, 0x4b,0x6d,0x19,0x6a, 0x42,0x3e,0x70,0x9e, 0x6c,0xdb,0xc6,0x35, - 0xef,0x0b,0x6b,0x76, 0xf3,0x88,0x80,0xda, 0x02,0x06,0x31,0x06, 0x45,0xda,0x44,0x77, - 0x11,0x13,0x52,0x3b, 0xb8,0xa3,0xab,0x05, 0x0f,0x2d,0x59,0xe3, 0x79,0x67,0x8b,0x0c, - 0x42,0x1b,0xad,0x93, 0xad,0xa1,0x24,0xe7, 0x6c,0x08,0x07,0x6b, 0x02,0x1c,0xca,0x41, - 0xdd,0xc8,0x4d,0x42, 0x6b,0xdb,0x00,0xe9, 0x9a,0x90,0x22,0x9a, 0x99,0xd5,0x95,0xc4, - 0x35,0x00,0x2b,0x00, 0x50,0x0a,0xcf,0x29, 0x8b,0xb4,0xeb,0xbb, 0x22,0x87,0x56,0x84, - 0x09,0x0e,0x30,0x83, 0x85,0x85,0x40,0x90, 0xb6,0x87,0xbe,0xfd, 0x98,0x43,0xee,0x33, - 0x3d,0x6c,0x53,0x58, 0x78,0x64,0x9e,0xa4, 0x34,0x80,0xa0,0x6e, 0xf4,0xd0,0xbe,0x6b, - 0x46,0x48,0xa1,0x5e, 0xb8,0x58,0x0a,0x07, 0x36,0xbd,0xfb,0xa7, 0x9b,0x85,0x39,0x6e, - 0x97,0xa3,0x29,0x38, 0x24,0x16,0x76,0xdb, 0x01,0x67,0x16,0x2c, 0x14,0xef,0x7c,0xe5, - 0x01,0xee,0xf3,0xbb, 0x20,0x1e,0xf7,0xe6, 0x7a,0x60,0x1a,0x78, 0xf4,0xf3,0x83,0xc4, - 0xb2,0x28,0x18,0x35, 0x3d,0x3c,0x53,0xb5, 0x61,0xb5,0x94,0x2c, 0xb0,0xa0,0x76,0xfa, - 0x33,0x7d,0xd4,0xe9, 0x2a,0x74,0x6d,0x12, 0x6c,0x88,0x63,0x11, 0xdc,0x75,0xf0,0x76, - 0xa3,0x49,0xeb,0xf5, 0x27,0x6e,0x19,0xb8, 0xb8,0xf3,0xc9,0xcb, 0x74,0xc0,0x1b,0x05, - 0x50,0xf3,0x78,0xd0, 0xef,0x60,0x6f,0x61, 0xc1,0x3b,0x52,0x15, 0x82,0xf6,0x70,0x7a, - 0x9a,0xd1,0xa1,0x90, 0x58,0x56,0x49,0x72, 0xfa,0x1f,0x0e,0xb6, 0x6f,0x77,0xbc,0x13, - 0xa3,0x08,0xbc,0x58, 0x1a,0xf1,0xb3,0xc5, 0x90,0xd9,0xe8,0x93, 0x90,0x43,0x1a,0x92, - 0x76,0xe2,0x1d,0x37, 0x68,0x7c,0x3d,0xfe, 0xee,0x1b,0x8f,0x18, 0x10,0xf2,0x87,0xcf, - 0xb6,0x07,0x72,0x48, 0x1c,0xf6,0xa0,0xbc, 0x2d,0x03,0x72,0x05, 0x61,0x0f,0x06,0x07, - 0x62,0x42,0x0b,0x09, 0x39,0x20,0xb0,0x0d, 0x3b,0x24,0x2e,0xfb, 0x24,0xa8,0xa3,0xe3, - 0x48,0x4e,0xbc,0x6c, 0xdc,0xc8,0x07,0x06, 0x1d,0x08,0x0a,0x7b, 0x98,0x63,0x07,0x2c, - 0x9e,0xe4,0x90,0xeb, 0x6c,0x9a,0x8f,0xae, 0x75,0xeb,0xc8,0x2c, 0x92,0x7d,0xc4,0x98, - 0xf6,0x90,0xf6,0x64, 0x92,0x5e,0x58,0x78, 0x7b,0x49,0xac,0x58, 0x12,0x62,0x10,0xa8, - 0x43,0x12,0x06,0x09, 0x03,0x48,0x07,0x24, 0x81,0xc1,0x36,0xe9, 0x49,0xe7,0xdd,0xae, - 0xde,0xc3,0x70,0x72, 0x64,0x9e,0xe4,0x0e, 0x84,0x80,0x18,0xc0, 0x3a,0x48,0x1a,0xc2, - 0xb0,0x9b,0x94,0x26, 0x3e,0x88,0x13,0x8c, 0x9a,0xc9,0x59,0x0a, 0x92,0x74,0xcc,0x78, - 0xc1,0x18,0x10,0xdb, 0x49,0x0c,0x40,0xce, 0x52,0x06,0x30,0x35, 0x0d,0x64,0x50,0x05, - 0x84,0x3e,0xeb,0x0c, 0x64,0xc4,0x0a,0x84, 0x14,0x14,0x08,0xa1, 0xec,0xc2,0x7a,0x24, - 0x90,0x0e,0xd9,0x14, 0x9c,0x42,0x0a,0x04, 0x2a,0x48,0x5e,0xca, 0x01,0x50,0xe0,0xc8, - 0x54,0x24,0xd3,0x0c, 0x49,0x8c,0x0e,0xf4, 0xb1,0x98,0xc9,0x31, 0x80,0x07,0x13,0x8c, - 0x80,0x78,0x42,0x13, 0xa6,0x01,0xdb,0xf0, 0x49,0x09,0xc6,0x6b, 0x20,0x6e,0xec,0x3b, - 0xa4,0xd9,0x87,0x6c, 0x89,0xc2,0x8d,0xd6, 0xaf,0xfa,0xa5,0xf4, 0x3d,0x98,0xa0,0xa4, - 0x80,0x2a,0x04,0xba, 0x06,0x48,0x64,0x80, 0xc8,0x5a,0x76,0xa5, 0x46,0xe8,0xa8,0x75, - 0xfe,0x43,0xa1,0xe9, 0x7f,0xe7,0x47,0xd9, 0x7f,0xee,0xb7,0x5f, 0xb5,0xf6,0x9f,0x5b, - 0x67,0xf8,0xf0,0xfd, 0xde,0xd3,0x58,0x54, 0x53,0x7a,0x22,0x8a, 0x19,0x81,0x18,0x84, - 0x01,0x58,0x88,0x10, 0x11,0x55,0x18,0xa0, 0xa0,0x6d,0xa2,0x2a, 0xa9,0xff,0xc5,0xdc, - 0x91,0x4e,0x14,0x24, 0x2e,0x07,0xc6,0x24, 0x00, - // 0x6029 = 24617 data bytes ( 8%) + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xd7,0xcb, 0xd0,0x13,0x00,0x13, + 0x7f,0x7f,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff, 0xff,0x7f,0xfd,0xff, 0xfb,0xfb,0xff,0xff, 0xa4,0x63,0x2f,0xf9, + 0x6e,0xdd,0xc9,0xe0, 0x84,0x9f,0x79,0xd4, 0x4c,0x81,0x45,0x00, 0x1d,0xda,0xd9,0xa0, + 0xe8,0x00,0x00,0x7b, 0xcf,0x47,0xbe,0x58, 0x8a,0x8a,0xfb,0x5e, 0xd8,0x25,0x15,0x3d, + 0x19,0x7b,0x60,0x1b, 0x4f,0x5b,0x6d,0xc1, 0xea,0x3c,0xdd,0x3e, 0xf9,0x5e,0x5e,0xde, + 0xb6,0xf3,0xdd,0xe0, 0x1b,0xc0,0xc2,0xfb, 0xb9,0xde,0x3d,0xed, 0xd5,0x65,0xb0,0xd6, + 0xb4,0x7a,0xd1,0xb2, 0x73,0x7a,0xdc,0x94, 0x95,0xac,0x24,0xac, 0xe1,0xaf,0xbe,0xef, + 0x7d,0xdd,0xd2,0xfa, 0xb9,0xab,0x6b,0x69, 0xd7,0xbb,0xcc,0xf2, 0xa9,0x42,0xa4,0x51, + 0x10,0x90,0x00,0x45, 0x12,0x5e,0xc3,0x20, 0x85,0x28,0x00,0x10, 0xa8,0x22,0x15,0x08, + 0x00,0x24,0x04,0x9c, 0x5d,0xd7,0xae,0xcd, 0xef,0xaf,0x77,0x90, 0xee,0x00,0xb6,0xd9, + 0xbe,0xf6,0xf3,0xb2, 0x70,0xf3,0x93,0x2b, 0xef,0x8f,0x1f,0x0b, 0xcd,0x7d,0xb1,0xe5, + 0xde,0xeb,0x3b,0xd4, 0xb1,0x2b,0xcc,0x77, 0x9e,0x70,0xb5,0x9e, 0x63,0xdd,0xee,0xc8, + 0x00,0x5c,0x1d,0xb5, 0xae,0x0e,0x6e,0xdd, 0xd7,0x90,0x1d,0xcd, 0x10,0x00,0xda,0xd3, + 0x4b,0xd3,0xba,0xca, 0x20,0x16,0xee,0x73, 0xb0,0xb1,0xa4,0x6c, 0xd3,0x8c,0x0d,0xbd, + 0x83,0xde,0x31,0x7a, 0x19,0x3b,0xb9,0xc1, 0xb6,0x1f,0x7c,0xc0, 0xa7,0x12,0xa9,0x44, + 0x91,0x23,0xd8,0xd2, 0x45,0x1f,0x5f,0x7b, 0xdc,0x00,0x12,0xb4, 0xc2,0x88,0x45,0xaa, + 0x30,0x11,0x22,0x27, 0xa3,0xa2,0x42,0x40, 0xaa,0xd0,0xbb,0x0b, 0x9b,0x01,0x01,0x2d, + 0x64,0x52,0x92,0x44, 0xd6,0x44,0x2b,0xa6, 0x82,0x49,0x27,0x40, 0xd0,0x0f,0x8a,0x6c, + 0x07,0x5c,0x97,0x31, 0x6d,0xc8,0x05,0x19, 0x8d,0x60,0x34,0xc8, 0x80,0x40,0x20,0x10, + 0x41,0x20,0x03,0x43, 0x53,0x01,0x53,0x7a, 0x29,0xf8,0x42,0x9a, 0x7e,0xa8,0x78,0xa3, + 0xca,0x1e,0xa7,0xa7, 0xa8,0x8c,0xd1,0x1e, 0xa6,0x80,0x06,0x43, 0x4d,0x06,0xd2,0x03, + 0x4f,0x50,0x34,0x06, 0x80,0x7a,0x80,0x00, 0xc8,0x06,0xd4,0x00, 0x00,0x0d,0x06,0x9a, + 0x00,0x00,0xd3,0xd0, 0x92,0x28,0x22,0x65, 0x3d,0x53,0x68,0x6a, 0x4f,0xca,0x83,0xd4, + 0x0d,0x1e,0xa1,0xa7, 0xa2,0x18,0x80,0x68, 0x00,0x3d,0x46,0x20, 0x0c,0x9a,0x00,0x00, + 0xd0,0x00,0xd0,0x00, 0x00,0x00,0x00,0x64, 0xc8,0x68,0x1a,0x03, 0x46,0x81,0xa0,0x00, + 0x00,0x01,0xa6,0x9a, 0x00,0xd1,0x08,0x44, 0x23,0xd4,0xf5,0x3d, 0xa5,0x18,0x9b,0x51, + 0xa0,0x64,0xc9,0xa3, 0x41,0x93,0x35,0x1b, 0x29,0xe9,0x06,0x86, 0x9a,0x00,0xd0,0xc8, + 0xd1,0xa3,0x20,0x34, 0x06,0x80,0x68,0x00, 0x01,0xa3,0x40,0x64, 0x00,0x62,0x01,0x90, + 0x00,0x06,0x80,0x00, 0xd1,0xa3,0x41,0xa0, 0xc8,0x1a,0x09,0x34, 0x88,0xa4,0x53,0x53, + 0x7a,0x45,0x23,0xd4, 0xf4,0x9e,0xa7,0x93, 0x24,0xfd,0x51,0xe4, 0x86,0xd4,0xf2,0x9a, + 0x00,0xf6,0xa9,0xea, 0x00,0xd0,0x3d,0x40, 0x00,0x00,0x00,0x00, 0x1a,0x03,0x40,0x00, + 0x3d,0x40,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x02,0x25,0x08,0xa7, + 0xa1,0x04,0x64,0xa7, 0x9a,0x46,0x08,0xc0, 0x53,0x6a,0x7a,0x99, 0x82,0x9a,0x68,0xf5, + 0x1e,0xa6,0x4c,0x26, 0x86,0x80,0x1e,0xa6, 0x9a,0x0d,0x06,0x9a, 0x69,0xea,0x1a,0x03, + 0x41,0xa0,0xd3,0x26, 0x4d,0x07,0xa8,0x32, 0x64,0x69,0xa0,0x0d, 0x34,0x68,0xf5,0x3d, + 0x10,0x19,0x32,0x69, 0x93,0x40,0x00,0xd3, 0x4d,0x00,0xd0,0xcd, 0x20,0x93,0x49,0x20, + 0x82,0x04,0xc8,0x04, 0x24,0xca,0x9e,0x29, 0xe1,0x35,0x03,0x4d, 0x1e,0xa3,0xd4,0x7a, + 0x27,0xa8,0x00,0x0d, 0xa8,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x01,0xa6,0x80,0x00, + 0x00,0x00,0x00,0x06, 0x80,0x00,0x00,0x00, 0x1a,0x7e,0xa5,0x3e, 0x96,0x10,0xfa,0x76, + 0x91,0x60,0x63,0x4f, 0xc2,0xb9,0x3f,0x22, 0xfe,0x4e,0x66,0x07, 0xf3,0x2e,0x60,0x9b, + 0xdb,0x92,0x89,0x32, 0x31,0x66,0x3c,0xca, 0x65,0x2c,0x62,0x56, 0x98,0xe4,0xd8,0xc3, + 0x4c,0x5b,0x65,0x12, 0x25,0x41,0x3d,0xdb, 0xbc,0xbc,0x8c,0xe3, 0x52,0xb2,0xc4,0xa8, + 0x28,0x25,0x0a,0x86, 0xf2,0xee,0xa1,0xd1, 0x25,0x04,0x81,0x24, 0x0c,0xfb,0x6f,0x1a, + 0xbc,0xb2,0x0a,0x42, 0x70,0xd4,0x68,0x85, 0xce,0x0b,0x9c,0xb2, 0xde,0xf7,0xa2,0x27, + 0x30,0xa0,0x62,0xf0, 0x6a,0x70,0x4a,0xb9, 0xf2,0xcf,0x1c,0xf1, 0xd9,0xd1,0x7b,0xb5, + 0xde,0x9e,0x75,0xc4, 0x95,0x5c,0xbb,0xf3, 0x9a,0xb4,0xb5,0x77, 0x72,0xe1,0x85,0x2a, + 0x8d,0x24,0x02,0xf8, 0xc0,0xfb,0x7d,0xee, 0xae,0x1c,0x9d,0x1d, 0x2d,0x5e,0x02,0xe0, + 0x25,0xc7,0x36,0xdc, 0x0a,0x9a,0xbd,0x75, 0x2e,0xf6,0xf6,0x2e, 0x6e,0x78,0x5d,0xed, + 0x71,0x66,0x90,0x4c, 0x15,0xf0,0x93,0x2e, 0x3d,0x86,0xdf,0xcb, 0xea,0x5a,0x09,0x5e, + 0x0d,0x4d,0x65,0xf6, 0x36,0x78,0x3d,0x28, 0x71,0xea,0x0a,0xb3, 0xb7,0xc6,0x97,0x7b, + 0xce,0x0f,0xa8,0xbc, 0x44,0xe7,0x7b,0x09, 0xa8,0x10,0x50,0x90, 0xed,0xa1,0x16,0x1c, + 0xe7,0x32,0x1e,0xa6, 0x53,0x9e,0x6f,0x8e, 0x77,0xc3,0xe2,0x4e, 0x20,0x72,0xd8,0x12, + 0xb0,0xac,0x93,0xab, 0xcf,0x3d,0x1c,0xde, 0xf6,0xc3,0x66,0xb5, 0x66,0x71,0xb7,0x5c, + 0xd7,0x53,0x6d,0xf9, 0x43,0x94,0xd9,0xdf, 0x8c,0x73,0x93,0x3a, 0x8f,0x4a,0x95,0xdb, + 0x20,0x63,0x8c,0xad, 0x62,0x55,0x4b,0x11, 0x08,0xac,0xca,0x53, 0x12,0xc9,0x6d,0x1a, + 0xd2,0x42,0x95,0x4b, 0x02,0xb6,0xcc,0xc3, 0x10,0x4c,0x04,0x69, 0x2b,0x55,0x92,0x43, + 0x2a,0xd3,0x16,0x86, 0x54,0x56,0x42,0xb8, 0x20,0xa5,0x4c,0xc0, 0xae,0x25,0xad,0x52, + 0x0b,0x2a,0x23,0x8e, 0x02,0x45,0x5c,0xc3, 0x0a,0xcc,0x2d,0xb3, 0x2c,0x30,0xa3,0x28, + 0x41,0x41,0x64,0x8b, 0x2e,0x52,0x63,0x00, 0x6a,0x50,0xa9,0x6d, 0xad,0x4a,0xcb,0x96, + 0x15,0x98,0x20,0x8a, 0xb9,0x99,0x8f,0xde, 0xf0,0x86,0x30,0xc6, 0x48,0xad,0xb4,0x0e, + 0xa5,0x43,0xff,0xbe, 0xb2,0xe0,0x8a,0xc6, 0x08,0x8a,0x82,0x71, 0x0b,0x2d,0x46,0x16, + 0x2c,0x59,0x12,0x27, 0x44,0xb9,0xce,0x18, 0x0c,0x11,0x8a,0x26, 0x34,0x54,0x44,0x45, + 0x8b,0x6d,0x41,0x1a, 0x96,0x35,0xa3,0x05, 0x63,0x14,0x22,0x5b, 0x5a,0xcb,0x12,0x22, + 0x66,0x5f,0x4f,0x1e, 0xd1,0x3d,0xc8,0x10, 0x3b,0x2c,0x0f,0x12, 0x77,0xc5,0x50,0x6d, + 0x92,0x0d,0xa5,0xb5, 0x6a,0xad,0x28,0x54, 0x44,0x51,0x50,0x16, 0x52,0xc5,0x8d,0x6d, + 0x25,0x95,0x42,0xd2, 0xf2,0xcf,0xd4,0xeb, 0xa9,0x84,0xa8,0x1b, 0x59,0x4a,0x0c,0x4a, + 0xd0,0x2c,0x48,0x08, 0x35,0x94,0xb4,0x94, 0x58,0x20,0xda,0x28, 0xb6,0x96,0x78,0x72, + 0x62,0xe5,0xb8,0x0c, 0x6d,0xa8,0xc2,0x83, 0x05,0x52,0x15,0x95, 0x02,0xd5,0x26,0x0e, + 0x65,0x20,0x96,0x94, 0x5a,0x55,0x60,0x85, 0x6d,0xa0,0xdc,0xcb, 0x94,0xb1,0x0a,0x4c, + 0xad,0x45,0x99,0x53, 0x18,0x82,0x0d,0xb4, 0xc6,0x99,0x5b,0x59, 0x6d,0x2d,0x30,0xa5, + 0x6b,0x56,0x94,0x45, 0xb4,0xbd,0xcd,0x01, 0x46,0x30,0x82,0x22, 0xa0,0xc7,0x44,0xa0, + 0xc8,0x2c,0x0a,0x81, 0x0d,0x64,0x0c,0x15, 0x08,0x18,0xc8,0x59, 0x16,0x5b,0x62,0x91, + 0xc4,0x2d,0xa5,0x73, 0x13,0x37,0x68,0x92, 0x18,0xa3,0x22,0xd9, 0xb6,0x91,0x88,0x2a, + 0x8e,0x0d,0x5a,0x6d, 0x30,0x50,0x45,0x80, 0xa4,0x31,0x85,0x04, 0xa9,0x8c,0x0c,0x61, + 0x0c,0x60,0x51,0x20, 0xa3,0x16,0xaa,0x45, 0xdc,0xc7,0x04,0x15, 0x52,0xa5,0xb6,0x0a, + 0xb5,0x2b,0x16,0xa9, 0x88,0x55,0x45,0x04, 0x56,0x18,0x8d,0xa2, 0xac,0xb6,0xb1,0xdd, + 0xdd,0x07,0x5f,0xb1, 0xf4,0xc8,0xa4,0xd4, 0x91,0xda,0x54,0x4b, 0xcb,0x8c,0xc7,0xca, + 0x5d,0x54,0xe6,0x3f, 0x94,0x38,0xa8,0xfd, 0x4f,0xf6,0x7f,0x80, 0x20,0xff,0x02,0x3a, + 0xfe,0xe2,0xf3,0x1a, 0xc7,0x59,0xc0,0xbd, 0xe8,0x98,0x7f,0x86, 0xf0,0xe2,0x42,0xef, + 0xb0,0x3c,0x53,0xbf, 0x82,0x6a,0x0c,0xaf, 0xbf,0x64,0xa0,0x48, 0x20,0x75,0xfa,0x2b, + 0xad,0xa0,0x95,0x21, 0xa6,0x88,0x26,0x06, 0x35,0x15,0x10,0xf7, 0xdb,0x99,0x11,0x81, + 0x50,0x15,0x53,0x6e, 0x65,0x25,0xca,0x13, 0x23,0xcc,0x08,0xe1, 0x31,0xc2,0x49,0x92, + 0x64,0x18,0xdc,0x48, 0x04,0x10,0xc6,0x81, 0xb7,0x92,0x07,0x62, 0xc4,0x07,0x04,0x10, + 0xee,0xce,0xcb,0x94, 0xb5,0x82,0x5f,0xbf, 0x2f,0xd0,0x1b,0x2f, 0x3d,0x63,0xf4,0xe4, + 0xf8,0xc8,0x99,0xae, 0xd9,0x43,0x3a,0x93, 0xd1,0x2f,0xcd,0xa5, 0x59,0xe8,0x5b,0x22, + 0x30,0xad,0x61,0x46, 0x9a,0x50,0xfb,0x7c, 0x08,0x18,0x5d,0x45, 0x04,0x6f,0xae,0xc9, + 0xcc,0xba,0xda,0xd2, 0x1d,0xe1,0x99,0x52, 0xa6,0x3a,0x91,0xd9, 0xb2,0xdd,0x01,0x51, + 0x08,0x10,0x09,0x55, 0xab,0xd5,0x9d,0xe3, 0x4c,0x8b,0xd9,0xf0, 0x2e,0xf3,0x62,0xe9, + 0xaf,0x68,0xeb,0xdd, 0xdf,0x63,0x67,0x81, 0x80,0x54,0xc4,0x99, 0x0b,0x5b,0x49,0x04, + 0xb5,0x61,0x65,0xb1, 0x56,0x2c,0xb9,0x95, 0x1a,0x38,0xe4,0xb8, 0x53,0x2d,0x85,0x95, + 0x16,0x46,0xd8,0x2c, 0xa8,0xb9,0x31,0x58, 0x8b,0x15,0xb4,0x14, 0xbe,0xa4,0x96,0x22, + 0x24,0x71,0xa5,0xcf, 0x83,0x02,0x48,0x6e, 0xed,0xb0,0xc0,0x04, 0x10,0x6a,0x0a,0xc4, + 0x53,0x2d,0x84,0x92, 0xad,0x25,0x14,0x36, 0xe1,0x94,0x54,0x60, 0x88,0x91,0x39,0x56, + 0x18,0xe5,0xa1,0x53, 0x0c,0x30,0x32,0xa5, 0x46,0x8d,0x15,0x40, 0xa8,0xda,0xbd,0xe9, + 0x45,0x98,0x35,0x11, 0x10,0x44,0x44,0xad, 0x81,0x59,0x03,0x89, 0x88,0x51,0x82,0x25, + 0x73,0x2c,0x60,0xca, 0x8a,0xb9,0x12,0x27, 0x64,0x80,0x58,0x17, 0x2c,0xa5,0xb5,0x2b, + 0x59,0xd4,0xaa,0x8e, 0x56,0x9b,0x24,0x86, 0x15,0x58,0x87,0x2d, 0x18,0x22,0x92,0x2a, + 0xc5,0x45,0x8c,0x19, 0xc4,0x31,0xc6,0x2c, 0x05,0x8f,0x29,0x52, 0x22,0xa1,0x68,0x51, + 0x15,0xa9,0x54,0xb8, 0x66,0x44,0x55,0x95, 0x04,0x06,0x0e,0x6e, 0x4d,0xe4,0x20,0x53, + 0x8c,0xa0,0x01,0x50, 0xb9,0x94,0xe2,0x51, 0xc8,0x94,0x42,0x89, 0x4c,0xa6,0x26,0x66, + 0x60,0xe1,0x73,0x29, 0x53,0x64,0x71,0xcb, 0x77,0x2e,0x65,0xaa, 0xc4,0x4d,0x90,0x23, + 0x0a,0xcb,0xb7,0x19, 0x58,0xb0,0x38,0xf2, 0x5d,0xee,0xca,0xcd, 0x4a,0xc7,0x86,0x18, + 0x31,0xa9,0x41,0xb6, 0xae,0x36,0x74,0x94, 0x64,0x90,0x81,0x8d, 0x26,0x1d,0xb2,0x1a, + 0x98,0xa9,0xb0,0x1b, 0x85,0xe2,0x54,0xd9, 0x08,0x36,0xd2,0xc1, 0x88,0xc9,0xb1,0xb0, + 0x4a,0x87,0x1b,0x95, 0xa5,0xad,0x45,0x9b, 0x02,0x0c,0x64,0x90, 0x23,0x18,0x48,0x44, + 0x64,0x14,0x2f,0x33, 0xbc,0xab,0x26,0xb3, 0x5a,0xcc,0x15,0xca, 0x52,0x77,0x1c,0x31, + 0x4c,0x43,0x49,0x96, 0x25,0x44,0xa5,0x48, 0xa3,0x6c,0x60,0x82, 0xc4,0x7a,0x38,0xe2, + 0x2e,0xe4,0xb1,0x8c, 0x61,0x97,0x30,0x5b, 0x6c,0x27,0x13,0x35, 0xa8,0x1b,0x4b,0xcd, + 0x97,0xac,0xa8,0x61, 0x7e,0x73,0x0c,0x4c, 0x44,0x63,0xe3,0x33, 0x11,0x16,0x85,0x0a, + 0xc7,0x5f,0x1e,0x1d, 0xb6,0xda,0x5a,0x98, 0x22,0xa0,0xc5,0x0c, 0xc5,0xc8,0xa0,0x63, + 0x16,0x06,0x30,0xbb, 0x62,0x46,0x02,0xc8, 0x82,0x31,0x11,0x08, 0x8a,0x30,0x48,0xa2, + 0x18,0x81,0x4c,0x4b, 0x44,0x2a,0x45,0x06, 0x0c,0x1b,0x65,0x49, 0x50,0x2b,0x28,0x90, + 0xa9,0x0a,0xc8,0xed, 0xc7,0x22,0x65,0xa2, 0x2b,0x14,0xc6,0x51, 0x54,0x65,0x6a,0x0c, + 0x11,0x16,0x29,0x76, 0xe1,0x16,0x2a,0xc1, 0x51,0x51,0x45,0x06, 0x5c,0xb3,0x14,0x59, + 0x4b,0x43,0x10,0xc3, 0x11,0xbb,0x96,0x22, 0x65,0x0a,0x91,0xda, 0x58,0x90,0x10,0x12, + 0x44,0x01,0x00,0xb9, 0x02,0x00,0x10,0x05, 0x13,0x14,0xee,0x3d, 0xda,0x23,0x5d,0x21, + 0x65,0x21,0x2e,0xe4, 0x18,0x4b,0xc7,0x8f, 0x10,0xf9,0xab,0xe7, 0xcd,0x1a,0x48,0xc3, + 0xd3,0xbc,0xac,0x23, 0xee,0xe2,0x99,0x7d, 0xbf,0xe2,0xe9,0xe7, 0xf6,0xbb,0x5f,0xf1, + 0x2d,0xb7,0xe1,0xf0, 0x25,0xf7,0xbe,0xf7, 0x55,0x1d,0x88,0x1c, 0xb8,0xfb,0x7b,0x2d, + 0xad,0xdb,0xeb,0xfa, 0xb0,0x60,0xcc,0x3d, 0xe3,0xde,0x40,0xf8, 0x08,0x62,0x08,0x24, + 0x1f,0x95,0xf4,0x17, 0xcc,0xf8,0x44,0xb5, 0xaa,0x12,0x26,0xa0, 0xaf,0xa2,0xf9,0xfb, + 0xa7,0x38,0x1f,0x41, 0x48,0xef,0x5c,0x56, 0x3c,0xe2,0xf3,0x9b, 0xc2,0x0c,0x5b,0x53, + 0xad,0xa6,0xab,0x4d, 0x79,0x4f,0xb1,0x1c, 0xf8,0x9c,0xc8,0x85, 0x5e,0x55,0x4b,0xff, + 0xdf,0x88,0xcf,0xec, 0x35,0x17,0xe4,0xcd, 0x07,0x3c,0x57,0x02, 0x07,0xd8,0x23,0x13, + 0x41,0x72,0xde,0x54, 0x90,0x84,0xa7,0xf4, 0xea,0xff,0x50,0xc3, 0x99,0x60,0x32,0xbd, + 0xfe,0x9e,0x07,0xd8, 0xeb,0x6c,0x62,0xc4, 0x83,0x99,0x01,0x52, 0x49,0xd8,0xfd,0x9a, + 0x3b,0xe0,0xac,0x2c, 0x2e,0x47,0x3b,0xd6, 0xb8,0x59,0xef,0x6b, 0xe3,0x83,0xad,0xb5, + 0xe7,0xd7,0x6e,0x71, 0x30,0x6d,0xb6,0x77, 0xd7,0x7d,0x9f,0x9f, 0xd9,0x94,0xbb,0xed, + 0x59,0xec,0x73,0xef, 0xa6,0xc4,0x39,0x9f, 0x5c,0xc7,0x18,0xcd, 0xec,0x76,0x39,0x45, + 0x27,0xc6,0xd9,0x16, 0x02,0xc4,0x49,0xf2, 0xf5,0xba,0x48,0x1b, 0xef,0x75,0xdb,0x2e, + 0x1e,0xb7,0x25,0x04, 0x0d,0xd2,0x08,0x45, 0x54,0x5d,0x92,0x08, 0x44,0x10,0x1e,0x46, + 0x02,0xaa,0x6f,0x50, 0x42,0x20,0x8a,0xae, 0x10,0x40,0x41,0x0a, 0xa0,0x84,0x86,0x51, + 0x49,0x21,0x26,0x3b, 0x2b,0x05,0x01,0x39, 0xb8,0x87,0xaa,0x7d, 0x53,0xc9,0x81,0xe5, + 0xc1,0xc3,0x90,0xff, 0xfa,0xd8,0x79,0x6a, 0xc9,0x9f,0x63,0xbb, 0x00,0xe4,0x37,0x62, + 0x9c,0x13,0xe3,0xb4, 0x7e,0xa9,0x2e,0x7d, 0xf8,0xdf,0xc4,0x48, 0x30,0x61,0x70,0x43, + 0x77,0xcd,0xf4,0x1a, 0x68,0xe5,0x9c,0xb9, 0xcf,0x25,0xa2,0xaa, 0x4e,0x2c,0xa6,0xe8, + 0x02,0xd3,0xe7,0x19, 0xc0,0x9d,0xa7,0xcf, 0x2d,0x4d,0x74,0xc7, 0x8c,0xb6,0x7d,0x72, + 0x66,0xce,0xbb,0x87, 0x0c,0xdb,0xc2,0x6d, 0xd5,0xd6,0xbb,0x60, 0xe3,0x9a,0x3c,0x9f, + 0x01,0xaf,0xb2,0x08, 0x06,0x39,0x59,0x71, 0x7c,0xb4,0xe5,0x3a, 0xf2,0xe5,0x4d,0x56, + 0x6f,0x63,0x8f,0xaf, 0x8f,0x42,0xbd,0x58, 0x1e,0x2c,0x16,0x2a, 0x33,0x9f,0x71,0x5c, + 0xfb,0x70,0xeb,0x94, 0x03,0xfa,0x34,0x84, 0x24,0x3f,0xd9,0x43, 0x74,0x26,0x90,0x51, + 0x56,0x1d,0xb2,0x81, 0x9e,0x06,0x79,0x9d, 0xa9,0xbd,0xb3,0xe2, 0xf0,0x77,0x18,0x1c, + 0xb8,0x6d,0x94,0xb9, 0xee,0xe3,0x07,0x8f, 0x7e,0xd0,0x0e,0x1e, 0x8f,0x26,0xc0,0xe5, + 0x8a,0x74,0xfb,0x6e, 0xe7,0xb7,0xbe,0xf1, 0xdc,0x7b,0x39,0xac, 0xba,0x91,0x2c,0x66, + 0xec,0x18,0x36,0x01, 0x6c,0xc8,0x70,0xe9, 0x10,0xc4,0x48,0x39, 0xef,0x13,0xc0,0xec, + 0x6d,0x10,0x9c,0x0a, 0x91,0xe7,0x47,0xc7, 0x57,0xb9,0xc6,0x7d, 0xff,0x7d,0x20,0x72, + 0x92,0x10,0x3c,0x12, 0xab,0x1f,0x3d,0xb0, 0x03,0x41,0x23,0x4c, 0xab,0x20,0xcd,0xcf, + 0xa1,0x3c,0xcf,0x4f, 0xb5,0x8e,0x28,0x6a, 0x93,0xd9,0xda,0x6f, 0xb1,0x76,0xff,0xf8, + 0xb6,0x85,0x80,0xd8, 0x90,0x09,0x04,0x33, 0x6b,0xc8,0xe6,0x7a, 0x9e,0xb9,0x71,0x95, + 0x40,0x02,0xc7,0x21, 0xc0,0xcb,0x91,0xbc, 0x0c,0x95,0x6b,0xcb, 0x68,0x86,0x1c,0x01, + 0x84,0x0b,0x56,0xbc, 0xf5,0x86,0x17,0x00, 0x81,0x9f,0x5d,0xf1, 0x01,0xad,0x9b,0xb6, + 0x07,0x3c,0xd7,0x13, 0xa3,0x12,0x07,0x14, 0x41,0x99,0x99,0xb1, 0x17,0x69,0x69,0x89, + 0x27,0xdc,0xc2,0x78, 0x2a,0x03,0xec,0x5f, 0x6e,0x68,0x6b,0x8e, 0x9d,0xbd,0x70,0xef, + 0xbc,0x3b,0x61,0x97, 0xc0,0xa0,0x31,0x1a, 0x14,0x1a,0xfd,0x10, 0x6e,0x85,0x84,0x0e, + 0x95,0x77,0x01,0x21, 0x9b,0xdd,0xd1,0x60, 0x31,0x20,0xac,0x59, 0xa0,0x08,0xa3,0x2a, + 0xce,0x52,0x1e,0xd3, 0x03,0x4a,0xd9,0x3a, 0xed,0x0e,0x19,0x24, 0x20,0x64,0xc3,0x8f, + 0xb7,0xd3,0xbe,0x8d, 0xd1,0x41,0x10,0x93, 0x87,0x84,0x02,0x2c, 0x32,0xd4,0x5f,0xbb, + 0x32,0x02,0x48,0x92, 0x30,0x22,0x88,0x8a, 0x22,0x22,0xae,0x36, 0x0c,0x8c,0x55,0x04, + 0x01,0x19,0x8b,0x0c, 0xf5,0xf8,0x4a,0xb9, 0xce,0x63,0xf3,0xd9, 0xd8,0xb4,0x4a,0xbe, + 0x40,0x52,0x21,0x3e, 0x71,0x88,0x09,0x36, 0xab,0xa4,0x5c,0x4c, 0xa5,0x81,0xd9,0x0b, + 0x50,0x13,0x83,0xba, 0xe0,0x7d,0xa9,0x24, 0xd4,0x48,0xb0,0x22, 0x2a,0x2c,0x8a,0x86, + 0xed,0x09,0x90,0x14, 0x44,0x62,0x0e,0x5a, 0x44,0x87,0xc1,0x60, 0x12,0xa4,0x8c,0x45, + 0x0d,0xa1,0x41,0x76, 0x96,0x28,0x02,0x84, 0x58,0x0a,0x28,0x28, 0xa0,0x0e,0x58,0x15, + 0xb6,0x50,0x51,0x61, 0x11,0x06,0x30,0x8a, 0xb1,0x41,0x45,0x51, 0x54,0x08,0xa0,0xaa, + 0x01,0x97,0x32,0x58, 0xc2,0xda,0x0b,0x14, 0x22,0x29,0x16,0x29, 0x69,0x52,0x20,0xc5, + 0x14,0x11,0x2e,0x59, 0x88,0x83,0x3e,0x8c, 0xa8,0x02,0x0c,0x08, 0x28,0x45,0x90,0x51, + 0x16,0x21,0xad,0x66, 0x44,0x11,0x72,0xd8, 0xfc,0xed,0x71,0xab, 0x5b,0x44,0x2a,0xc1, + 0x2b,0x61,0x74,0xe4, 0xa2,0x6e,0xd6,0x1a, 0x97,0x70,0xb8,0xda, 0x15,0x88,0xc1,0xab, + 0x4c,0x49,0x82,0x32, 0x04,0xf8,0xa0,0x43, 0x94,0x86,0x08,0x48, 0xb0,0x20,0xc5,0x10, + 0x39,0x61,0x40,0x4d, 0xf7,0x1c,0x90,0x2a, 0x56,0x60,0x20,0xd3, 0x32,0x28,0x56,0x60, + 0x1c,0xa5,0x30,0x61, 0xa6,0x5b,0x64,0x2b, 0x82,0x0b,0x0a,0xc1, 0x66,0x32,0x5b,0x42, + 0xf3,0x98,0x4c,0xba, 0x93,0x94,0xc7,0x5b, 0x31,0x1a,0x23,0x8c, 0xc4,0xc1,0x95,0xe5, + 0xa2,0x93,0x1d,0x02, 0x92,0x6b,0x09,0xba, 0x54,0xcb,0x73,0x2d, 0xc5,0xb6,0xd5,0x58, + 0x8a,0x0c,0x17,0xd6, 0xe2,0xe5,0xba,0x4b, 0x94,0x4a,0x0a,0xb1, 0x4b,0x4b,0xc0,0x3c, + 0xd3,0x9c,0x13,0x49, 0x55,0xac,0x95,0x52, 0x0b,0x24,0x51,0x64, 0x92,0xa4,0x02,0xbc, + 0x49,0x2b,0x08,0xa4, 0x14,0x24,0xb5,0x4a, 0x16,0xca,0x44,0xad, 0x2c,0x01,0x8a,0x03, + 0x8a,0x01,0x8a,0x0a, 0xaa,0xe1,0x14,0x15, 0xb4,0x42,0xd6,0xa2, 0x10,0x37,0x77,0x73, + 0x33,0x33,0x33,0x33, 0x66,0xb0,0x81,0x0d, 0x64,0x02,0x6a,0x12, 0x48,0x6a,0x48,0x4d, + 0x61,0x02,0x4d,0x42, 0x49,0xac,0x9b,0xbb, 0xb9,0xa6,0xee,0xee, 0x68,0x12,0x13,0x76, + 0xcd,0xdd,0xdc,0xcc, 0xcc,0xcc,0xcd,0x09, 0x0d,0x49,0x35,0x80, 0x6b,0x20,0x1a,0x86, + 0xb2,0x49,0xbb,0x48, 0x6a,0x04,0x34,0xc0, 0x92,0x06,0xd3,0x95, 0x67,0x31,0x69,0x6b, + 0x51,0x56,0x29,0x29, 0x6c,0x85,0x31,0x29, 0x8c,0x40,0x46,0x41, 0x55,0x82,0x2a,0xc0, + 0x48,0x72,0xd7,0xa3, 0xa5,0x62,0x8e,0x15, 0x1a,0x94,0x11,0x35, 0x95,0x71,0x55,0x95, + 0x52,0xa1,0x56,0xeb, 0x4b,0x86,0x29,0x1f, 0x57,0xde,0x33,0x5a, 0x98,0xf5,0x52,0xde, + 0x5b,0x1a,0x26,0x91, 0x02,0xd3,0x40,0x22, 0xc3,0x25,0x62,0x20, 0x12,0x9a,0xd6,0x5a, + 0x91,0x45,0xb6,0x85, 0x55,0x66,0x44,0x72, 0x98,0x80,0x75,0xc9, 0x64,0xc4,0xd6,0x18, + 0xc9,0x89,0x6d,0x46, 0x5c,0xb9,0x09,0x96, 0xab,0x52,0x88,0xac, 0x11,0xa2,0xb3,0xde, + 0x6e,0xeb,0xa3,0xb9, 0x70,0x2d,0x94,0x18, 0xca,0xad,0x1d,0x33, 0x16,0x19,0x1b,0x41, + 0x2c,0xa8,0x65,0xb9, 0x86,0x4c,0x14,0xc6, 0xae,0x2a,0x15,0x70, 0xa5,0x86,0x16,0xc1, + 0xca,0x34,0xc7,0x31, 0x6c,0x5b,0x94,0xb9, 0x2e,0x66,0x4c,0xb1, 0x2d,0xa2,0xc5,0xad, + 0x12,0xb2,0xb5,0x5d, 0x4a,0x22,0x2a,0xe5, 0x73,0x29,0x96,0xd8, 0xa5,0x1b,0x05,0x23, + 0x14,0xac,0x15,0x4a, 0x56,0xc5,0x51,0x11, 0x04,0x54,0x2d,0x6c, 0x94,0x55,0x53,0x2d, + 0x91,0x46,0x38,0x44, 0x90,0x46,0x0a,0x8c, 0xa8,0xa5,0x51,0x45, 0x65,0x6a,0x52,0xa4, + 0x16,0x05,0x6b,0x09, 0x59,0x37,0xb6,0x06, 0x21,0x04,0x08,0xc0, 0x73,0xd5,0xb4,0x8f, + 0x08,0xfc,0x6e,0xdc, 0xfc,0x4e,0x40,0x96, 0x69,0x94,0x58,0x0b, 0x10,0x1d,0x11,0x96, + 0x45,0xee,0x4e,0x72, 0x7a,0x29,0x90,0x25, 0xe6,0xab,0x23,0xe3, 0xb5,0xf4,0xe9,0xb6, + 0x08,0xb9,0xa2,0x99, 0x13,0x6f,0x0c,0xc2, 0x22,0x2f,0x46,0x5d, 0xfb,0xf6,0xdb,0x64, + 0x76,0x92,0x2c,0xee, 0x85,0x52,0x0c,0x7c, 0x42,0x34,0x86,0x0f, 0x98,0xdf,0x89,0xc1, + 0x12,0xee,0x5f,0xba, 0x08,0x8b,0x11,0x23, 0x8d,0x3a,0xb8,0x13, 0x23,0x7d,0xd4,0x8b, + 0x65,0xb3,0x9b,0x18, 0x13,0x17,0x29,0x8e, 0x72,0xe0,0x4f,0x29, 0x81,0x7c,0x4c,0xb8, + 0x1a,0xe5,0x0d,0x14, 0x98,0x2b,0xcf,0xa5, 0xa4,0x33,0xc8,0xe7, 0x96,0xa9,0xbd,0x34, + 0xa4,0x6b,0xca,0x59, 0x84,0x95,0xca,0xb1, 0x95,0x73,0x62,0x4b, 0x45,0x5c,0x8f,0x0f, + 0x12,0x22,0x62,0x41, 0x33,0xa4,0xcb,0x3b, 0xbb,0x4a,0x26,0xef, 0x68,0x76,0xe0,0x87, + 0x5b,0xa1,0x10,0x00, 0x92,0x4b,0x14,0xa9, 0x0a,0x60,0x52,0x76, 0xcc,0x9c,0xfb,0x6f, + 0x9b,0x91,0xf5,0xdb, 0x3d,0x44,0xd8,0x61, 0xee,0xf5,0xce,0x3d, 0x6e,0xa7,0x3d,0x36, + 0xc4,0xc1,0xa6,0x2f, 0x39,0xe6,0xd0,0x91, 0x93,0x26,0xa6,0x93, 0x32,0xf7,0xc5,0xeb, + 0xab,0xbd,0xf4,0xed, 0x3b,0xd5,0x7a,0xef, 0x2a,0x96,0x68,0x62, 0xd5,0x69,0xe4,0x91, + 0x74,0x01,0x16,0xf3, 0x40,0x4c,0x18,0xe2, 0xfd,0xa3,0xae,0x10, 0x14,0x99,0x6b,0x38, + 0xeb,0xee,0xc2,0x6b, 0x4d,0x8c,0x49,0xbf, 0x14,0x31,0x09,0x06, 0x2c,0x8c,0x62,0x00, + 0xa0,0xbd,0xe4,0x9e, 0x30,0xb8,0xa3,0xe9, 0xec,0xe6,0xec,0x13, 0x2c,0x30,0x52,0x23, + 0x6e,0x38,0x28,0xcc, 0xa5,0x15,0x2b,0x25, 0x4a,0xca,0x95,0xa9, 0x1b,0x56,0xb5,0xa8, + 0xa2,0x30,0x55,0x95, 0x5a,0x2b,0x0a,0x95, 0x46,0x0c,0x64,0xa8, 0xa8,0x84,0x62,0x6d, + 0x2c,0x32,0xd6,0xd8, 0x54,0x16,0x4a,0x6d, 0x6c,0x89,0x00,0xf9, 0x4c,0x02,0x00,0xa4, + 0x20,0xb0,0x44,0x08, 0x45,0x00,0x08,0x2c, 0x24,0x91,0x49,0x21, 0x22,0xac,0x82,0x28, + 0x89,0x12,0x2c,0x82, 0x45,0x08,0x30,0x18, 0x90,0x41,0x4c,0xf4, 0xd5,0x4a,0x4a,0xa5, + 0x10,0x51,0x04,0x81, 0x11,0x80,0x31,0x84, 0x88,0xc9,0x10,0x40, 0x50,0x11,0x82,0x23, + 0x21,0x20,0x0c,0x8a, 0x02,0xc8,0x28,0x20, 0xa7,0x28,0x82,0x11, 0x55,0x43,0x7d,0xef, + 0xb1,0xd4,0xe6,0xf2, 0x72,0xf7,0xd2,0xca, 0x89,0xb5,0x81,0x22, 0x02,0x05,0x0a,0xf1, + 0x75,0x50,0x40,0x69, 0x14,0x00,0x79,0x58, 0xa0,0x06,0xe3,0x90, 0xa5,0x08,0x52,0x94, + 0x4a,0x51,0xce,0xcc, 0xf9,0x7f,0x3b,0xa9, 0xe6,0x34,0x9c,0x97, 0x4f,0xcd,0x64,0x39, + 0xce,0x63,0xd6,0x72, 0x79,0xc6,0x8b,0x34, 0xbf,0x9d,0x7d,0xe6, 0xb4,0xbf,0x56,0x2f, + 0xdb,0x56,0x1f,0x58, 0xef,0x3a,0x32,0xf6, 0x96,0x9f,0xe6,0x73, 0xef,0x3f,0x31,0x26, + 0xac,0x1b,0x10,0x98, 0xbc,0xbd,0xbb,0xe3, 0xef,0xff,0x43,0x22, 0xe7,0x9f,0xe7,0xcf, + 0x47,0x8d,0x49,0x7e, 0x52,0xbc,0x82,0x0e, 0x98,0x6d,0x48,0x52, 0xe2,0xa2,0x73,0x1e, + 0x46,0xd5,0xc0,0xaa, 0x63,0x8c,0xdb,0x75, 0xad,0x45,0x05,0xdc, 0xaa,0xb1,0xc6,0x44, + 0x15,0xa2,0x56,0x54, 0x15,0xb5,0x65,0x14, 0xec,0xd2,0x48,0xa5, 0xb0,0xaa,0x23,0x0d, + 0xae,0xe4,0xac,0x46, 0x0a,0x48,0xa2,0xaa, 0x23,0xf8,0xdc,0x94, 0xcb,0x65,0x54,0x58, + 0xa4,0x2d,0xa4,0xa3, 0xe6,0xd8,0x78,0xd3, 0x06,0x28,0xa2,0x24, 0x5c,0x4a,0xaa,0xe5, + 0x67,0xe0,0xdf,0xb4, 0xbd,0x39,0x97,0x49, 0x14,0x1a,0xf6,0xad, 0x68,0x4d,0x68,0x56, + 0xc9,0x02,0xb4,0xd9, 0x73,0xed,0xbf,0x28, 0x60,0x1c,0x06,0x86, 0x93,0xb2,0x04,0x07, + 0xf2,0x50,0x40,0x9d, 0x8c,0x5d,0x75,0x96, 0x5d,0xb3,0xc3,0xcf, 0xb5,0x28,0x26,0x24, + 0x28,0x1d,0xc7,0xeb, 0x7d,0x7f,0x79,0x02, 0x83,0x2e,0xa0,0x5d, 0x7c,0xb9,0x5c,0x11, + 0xfa,0x30,0x87,0xe6, 0xd3,0xab,0xc7,0xf9, 0x47,0xe4,0xeb,0xfa, 0xd9,0x66,0x0e,0x39, + 0x2d,0xcb,0x40,0x9a, 0x73,0x1e,0xf2,0xee, 0xcb,0x63,0x9b,0x84, 0x3e,0xa5,0x7f,0xa6, + 0x97,0xec,0x66,0x8e, 0x08,0x52,0x2a,0x95, 0x97,0xe8,0x49,0x0b, 0x61,0xcf,0xb8,0xe1, + 0x64,0xdb,0xe2,0xd0, 0x09,0x90,0xb2,0x11, 0x2f,0x39,0x02,0xa5, 0x06,0x5b,0x32,0x14, + 0x79,0x7f,0x2a,0x10, 0x95,0x2e,0x8b,0x05, 0xb9,0xba,0x4d,0x4c, 0x27,0x7d,0x3a,0x82, + 0x83,0x12,0x3f,0xf5, 0x3f,0x6f,0xb9,0x8e, 0xef,0xac,0x87,0xa0, 0x76,0x56,0xfe,0x41, + 0x0a,0x40,0xfd,0xef, 0xd0,0xfc,0x3f,0x8d, 0x30,0x30,0x69,0x44, 0xd6,0x6d,0x13,0xc2, + 0x82,0xe8,0x27,0xb4, 0xaa,0xbb,0x84,0x27, 0xd8,0x7d,0x33,0xab, 0x9b,0xc9,0x94,0x0a, + 0xf0,0xa1,0x6c,0xae, 0x0d,0x7d,0xfc,0xcd, 0x16,0xf7,0x9e,0x04, 0x4a,0x19,0xd7,0x4f, + 0x92,0xa4,0xd4,0x68, 0xf8,0x66,0xca,0x6a, 0xd7,0x53,0x5b,0xd1, 0x16,0x53,0x35,0xdc, + 0x39,0x42,0x69,0x02, 0x82,0x82,0x43,0x88, 0x22,0x84,0x7c,0xef, 0xd2,0xf7,0x57,0xc0, + 0x9c,0xf5,0xbc,0xff, 0x19,0x2a,0x55,0x33, 0x86,0xac,0x7a,0x52, 0x63,0x04,0xec,0x75, + 0x57,0xcf,0x35,0x32, 0x9f,0x96,0x98,0xf7, 0x61,0xbe,0xd5,0x47, 0xc6,0xcb,0x8c,0xb1, + 0x3f,0xe2,0xe6,0xab, 0xcf,0x8a,0x6d,0x78, 0x98,0x8c,0xca,0x6f, 0xad,0xea,0x17,0xbc, + 0x97,0x26,0x32,0x35, 0xc9,0x6a,0x9e,0xcd, 0xb7,0x6d,0xbc,0xc0, 0x44,0x31,0x51,0xca, + 0x55,0x45,0x0c,0x67, 0x69,0x31,0xca,0xab, 0x07,0x5a,0x33,0xa2, 0xa8,0x8b,0x23,0x12, + 0x11,0xcc,0x60,0x34, 0xee,0xb9,0x11,0xab, 0x62,0x5b,0xf3,0x1b, 0xf1,0x7a,0xe7,0x49, + 0xc6,0x5b,0xb1,0x8d, 0x98,0x6b,0xc4,0xfc, 0xcf,0xfc,0x77,0xfc, 0x7f,0xcb,0xe4,0xc6, + 0x7e,0x8d,0x0a,0xf5, 0xe9,0x98,0xcf,0x26, 0x8a,0x43,0x58,0xdf, 0x4b,0x03,0x44,0xc6, + 0x36,0x91,0x11,0x88, 0x8b,0xc6,0x23,0xb7, 0xe0,0x40,0xf8,0x67, 0x67,0x10,0xd4,0xba, + 0x47,0x78,0xd1,0x3d, 0xa0,0x42,0xea,0x23, 0x76,0x6d,0x0d,0x24, 0x61,0xb9,0xa4,0xc8, + 0xa2,0x43,0x15,0x49, 0x20,0xc4,0xaa,0x19, 0x6e,0x82,0x5c,0xeb, 0xb2,0x08,0x14,0x26, + 0x44,0xdc,0xc0,0x23, 0x30,0x16,0x52,0x02, 0x44,0x5c,0x83,0x90, 0xa3,0x34,0x67,0xd6, + 0x04,0xa3,0xbd,0xbc, 0x8c,0x4f,0xe1,0x7c, 0x1a,0x61,0xcd,0xf9, 0xf5,0xcf,0x79,0x08, + 0x23,0xd7,0x13,0xd0, 0x1d,0x7f,0x53,0xf1, 0x65,0x1f,0x85,0xa2, 0xf8,0xaa,0x98,0x7b, + 0x47,0xb9,0x25,0xf3, 0xde,0xa0,0x80,0xdf, 0x03,0x12,0xc3,0x91, 0x1b,0x1f,0xa2,0x47, + 0xca,0xe1,0x06,0x54, 0xbb,0xaa,0xc4,0x45, 0x9d,0xb4,0x66,0x20, 0xa1,0x96,0x50,0x79, + 0xb4,0xd9,0xa0,0x88, 0xbe,0xc6,0x34,0x8a, 0xf1,0xe0,0xb4,0x7c, 0x69,0xeb,0x4c,0x04, + 0x5d,0x90,0x4c,0x78, 0x4e,0x72,0x2e,0x6f, 0x1c,0x51,0x8a,0x72, 0xc0,0xd5,0x5c,0x5c, + 0x19,0x3a,0x72,0xb0, 0x1b,0x5d,0x18,0xc5, 0xce,0x45,0x00,0x8f, 0xed,0xda,0xd5,0x7d, + 0xce,0x0a,0xf4,0xd1, 0x64,0x0d,0xea,0x44, 0xb8,0x70,0x53,0x79, 0x74,0xbc,0x8d,0x42, + 0xb7,0xc4,0xac,0x73, 0x6c,0x51,0x48,0xef, 0x36,0x08,0x03,0x10, 0xec,0x54,0xca,0x90, + 0xa4,0x69,0x5f,0x8d, 0x57,0x22,0x37,0x78, 0x8a,0xa4,0x53,0x1e, 0xed,0x0a,0xb4,0xe8, + 0xcd,0x32,0xb5,0x60, 0x25,0x04,0x71,0x5a, 0x5c,0xe6,0xbd,0x7a, 0x55,0x41,0xee,0xd2, + 0x25,0x56,0xeb,0x56, 0xb1,0x20,0x38,0x65, 0x8f,0x2e,0xa1,0x42, 0x16,0x48,0x20,0x62, + 0xa6,0x35,0x48,0xe4, 0x12,0x10,0xa0,0x93, 0xf7,0x1a,0x0d,0x5d, 0x58,0xcf,0x11,0x88, + 0x27,0xcb,0x95,0x4c, 0xc9,0x5f,0x35,0xad, 0xee,0x38,0xb6,0x34, 0x9f,0x5d,0xf2,0xe6, + 0x88,0x63,0xf4,0x98, 0xc8,0xaf,0xb5,0x1c, 0xfb,0x3e,0x93,0xbf, 0xdd,0xa2,0x3f,0x09, + 0xff,0x58,0xca,0x0a, 0xc7,0x4d,0x1d,0x53, 0x35,0x28,0x86,0x83, 0xf3,0x0a,0x14,0x05, + 0x8c,0x04,0xc8,0x3d, 0x3c,0xee,0x26,0xbb, 0x99,0xcb,0x34,0x55, 0xc4,0xab,0xbf,0x51, + 0xa7,0x32,0x9a,0x88, 0x80,0xfc,0x9a,0x15, 0x14,0x17,0xa8,0xda, 0xc1,0x22,0x35,0x6a, + 0xd6,0x5d,0xc3,0x15, 0x80,0xa0,0xb1,0x32, 0xc5,0xa8,0xb1,0x22, 0x15,0x85,0x2e,0x55, + 0xc4,0x04,0xc2,0x96, 0xb2,0xcb,0x60,0x54, 0x50,0xa8,0x55,0x94, 0xa4,0xa5,0xb0,0xaa, + 0x53,0x0c,0x27,0x9e, 0x16,0x1a,0xd7,0x59, 0x8c,0x88,0xc5,0x09, 0x50,0x29,0x18,0x23, + 0x16,0xe5,0x21,0x91, 0x95,0x4a,0x8a,0xc9, 0x62,0x31,0x4c,0xa4, 0xa8,0x8c,0xac,0x26, + 0x18,0x96,0x22,0xab, 0x15,0x28,0x92,0x97, 0x0f,0x14,0xbd,0x41, 0xc2,0x35,0x8d,0x1a, + 0x2c,0x91,0x6a,0xdd, 0xd3,0x53,0x6c,0x32, 0xd2,0xe5,0x30,0x11, 0x5c,0x6b,0x8b,0x85, + 0xed,0x56,0xa6,0x1e, 0x6d,0x27,0x9d,0x32, 0xc6,0x41,0x56,0x00, 0x90,0x63,0x23,0x06, + 0x80,0x46,0x2c,0xaf, 0x17,0x4d,0x58,0x36, 0xbd,0x6f,0x6f,0x7a, 0xa4,0xde,0x55,0xa6, + 0x57,0xe0,0xe6,0x2d, 0xe4,0x51,0xf4,0xe9, 0x90,0x48,0x15,0xc1, 0x8c,0x6d,0x68,0xbc, + 0x2f,0x74,0x5a,0xf6, 0xc6,0xf3,0x22,0x79, 0x0f,0x36,0x19,0x0c, 0xb2,0xbe,0x4b,0x34, + 0xc5,0x39,0xc3,0xa2, 0x80,0x75,0xa9,0xf3, 0x8c,0xfa,0x26,0xa6, 0x3b,0x34,0x98,0xa5, + 0x6a,0x01,0x7d,0x0e, 0x5a,0x79,0x28,0xdc, 0x5c,0x87,0x24,0x52, 0x80,0x42,0x4e,0xa3, + 0xc0,0xee,0x6a,0x66, 0xe3,0x2f,0xc2,0x0a, 0x99,0x7a,0x9f,0x37, 0x44,0x75,0x21,0x73, + 0xf7,0x27,0xda,0xa8, 0x0c,0x43,0x4e,0x8b, 0x05,0x1f,0x67,0x56, 0x5d,0x6a,0x10,0x13, + 0x55,0xd0,0x7f,0xc3, 0xe7,0x4c,0xe7,0x89, 0xd7,0x6f,0x36,0xdf, 0x76,0x5c,0xc3,0x8f, + 0x17,0x11,0x8a,0x6b, 0x4a,0x09,0xaf,0x82, 0xe0,0xbc,0x68,0x71, 0xe2,0xbb,0x08,0xb8, + 0x97,0x0f,0x40,0xef, 0x9e,0x99,0x91,0x0c, 0xc4,0x1c,0x51,0x77, 0x21,0xaa,0x1c,0x8b, + 0x88,0x5d,0xb8,0x51, 0xc6,0xde,0x15,0xed, 0xdf,0x15,0x3f,0x8f, 0x99,0x0f,0xf9,0x30, + 0xf9,0x8c,0x98,0xa9, 0x35,0x30,0x64,0xcf, 0xd4,0x50,0xa7,0x34, 0x16,0x41,0x67,0x4e, + 0xb4,0x68,0x5a,0x51, 0x61,0xa4,0xae,0x2b, 0x5e,0x97,0xfa,0xff, 0xd3,0xff,0x13,0xfa, + 0x03,0xfa,0xaf,0x4b, 0xf9,0xff,0xdc,0x75, 0xe9,0xea,0x9d,0xc4, 0xc8,0x8c,0x55,0x88, + 0xac,0x50,0x58,0xa2, 0x78,0x60,0xa7,0xaa, 0x48,0x56,0x79,0x32, 0x2c,0x3a,0xd5,0xf2, + 0xc3,0xb3,0x52,0x43, 0x37,0x6f,0x16,0x9c, 0x5a,0xbf,0xdc,0xfe, 0xdb,0xf8,0x55,0x0b, + 0x41,0xde,0x41,0xa4, 0x0b,0xe0,0x1c,0xbc, 0x4e,0xdb,0x79,0x44, 0xe4,0xe1,0x7c,0x53, + 0x36,0x21,0xf6,0xce, 0xee,0x98,0xb6,0x34, 0x85,0x83,0x23,0xff, 0xba,0x43,0xe1,0xed, + 0x4f,0x8f,0x17,0x2e, 0x47,0xf7,0x24,0x39, 0x64,0x59,0xbf,0xe8, 0xfd,0x5f,0xf8,0xee, + 0x04,0x72,0xa5,0x23, 0x4f,0xc1,0xf3,0xf4, 0xd8,0xa2,0x3e,0xb8, 0x5d,0xed,0xa2,0xbf, + 0xa0,0xa5,0x42,0x0c, 0x7a,0x5f,0x2f,0xca, 0xbf,0xf5,0x3f,0x98, 0x8b,0xba,0xa8,0x22, + 0x07,0x82,0x16,0x32, 0x48,0xa0,0xc7,0xd8, 0xfa,0x55,0x5c,0xe5, 0x2a,0x3c,0xf8,0xd6, + 0x64,0x16,0x7c,0x6a, 0x53,0xdc,0xbf,0x3a, 0x9e,0x7a,0xeb,0x81, 0xf9,0x9d,0xbc,0x36, + 0x34,0x89,0xb7,0xe7, 0x52,0x18,0x2a,0xb1, 0x39,0xa7,0xe1,0xe5, 0x7c,0x2d,0xb4,0xa4, + 0x4f,0x81,0x4e,0x6f, 0xb6,0xf5,0xd9,0x0f, 0x64,0x7c,0x1e,0x74, 0x02,0xbf,0xa2,0xde, + 0x6e,0x91,0x7e,0x5f, 0xcf,0x7b,0x1a,0x3c, 0x4e,0x1e,0x77,0xc2, 0xfe,0x31,0x4a,0x28, + 0x88,0xb2,0x31,0x14, 0x58,0x3a,0x3a,0x9c, 0x0b,0xb7,0xc6,0xe9, 0x17,0x97,0x7e,0x18, + 0x12,0xcc,0x49,0x2a, 0xb5,0x99,0x84,0x8f, 0xeb,0xa7,0x2a,0x08, 0x61,0x5f,0xef,0x17, + 0xc9,0xb3,0x22,0xd6, 0xf7,0x7e,0x34,0x40, 0x61,0x70,0x40,0xc9, 0x68,0x3a,0x26,0x96, + 0x6a,0x49,0x9e,0x4a, 0x64,0x78,0xa4,0xe6, 0x34,0x2c,0xba,0xa0, 0xe5,0xa5,0xf5,0x94, + 0xa1,0x02,0x57,0x88, 0x8e,0x46,0x4d,0xb2, 0x82,0xc3,0xaf,0x7c, 0x29,0x94,0x48,0x96, + 0x85,0xbf,0xa6,0xd8, 0xd9,0xdb,0x63,0xb9, 0x34,0x9b,0xf0,0x20, 0x19,0xed,0x77,0x24, + 0x4a,0x75,0x9e,0xbd, 0xac,0xdd,0xf6,0xfd, 0x77,0x18,0x91,0xdb, 0x51,0x88,0xa1,0x6b, + 0x38,0x8f,0xef,0x56, 0x9c,0xe2,0x87,0x02, 0x8d,0x52,0x7f,0x8e, 0xfd,0x37,0x0f,0x6f, + 0xb2,0xbf,0x79,0xfb, 0xd8,0xb6,0xeb,0x8a, 0x93,0xf7,0xbf,0x5d, 0x3f,0xe7,0x20,0x4d, + 0xd0,0x23,0xa1,0x72, 0xde,0x4e,0x2c,0xb6, 0x21,0xc4,0xc1,0xb8, 0xce,0x8e,0xf4,0x04, + 0xa0,0xfd,0xe9,0x20, 0xd4,0xa2,0x40,0xa0, 0x11,0x92,0xfe,0x61, 0xd3,0xd0,0x20,0xff, + 0xa4,0x58,0x21,0x38, 0x03,0x1e,0x3f,0x9b, 0xa8,0x9f,0x6f,0xa1, 0xef,0x8b,0x19,0x57, + 0xfd,0x04,0x81,0x05, 0x81,0x81,0xb7,0xe5, 0x7e,0x84,0x52,0x63, 0xe2,0xfb,0xeb,0xfc, + 0x99,0x09,0x36,0xe0, 0xcb,0xda,0xb8,0x8e, 0x99,0x24,0x28,0x33, 0x80,0xea,0x64,0x76, + 0x30,0x0c,0x88,0x91, 0x48,0x84,0x49,0x3d, 0x92,0x67,0x87,0xfc, 0x8e,0x70,0x32,0x1f, + 0xb8,0xfa,0xd9,0x86, 0x9a,0xaf,0xb3,0x88, 0x67,0x0d,0x09,0xdd, 0x03,0xf3,0x90,0xd0, + 0xf7,0xd9,0x3c,0xd1, 0x99,0x04,0x16,0xca, 0x24,0x37,0x89,0x8a, 0x22,0x3f,0x2f,0xe7, + 0x4e,0x60,0xd1,0x01, 0x77,0x7f,0xd9,0xd4, 0x56,0x1a,0xcc,0xdf, 0x4c,0xb7,0xef,0xd5, + 0x26,0x79,0x9d,0xc3, 0x0c,0x0f,0x9f,0x73, 0x2b,0xe9,0xc3,0xd8, 0x4a,0x79,0xee,0xd1, + 0xa5,0xeb,0x68,0xb3, 0x88,0x11,0x0c,0x22, 0x53,0x91,0x03,0xe6, 0x79,0x26,0x14,0x05, + 0xbf,0x09,0xfe,0x44, 0x40,0x3c,0x16,0x4d, 0xeb,0xfc,0xb2,0x76, 0xc8,0x5c,0x64,0x73, + 0xce,0x4e,0x8b,0x24, 0xd4,0x4d,0x85,0x57, 0x37,0xbe,0x3f,0x85, 0x76,0x22,0x7e,0xfd, + 0x40,0xfb,0x19,0xe4, 0xff,0x19,0xf5,0xb0, 0x3b,0xb0,0xf0,0xee, 0x39,0xca,0xe5,0x86, + 0x99,0x38,0x0e,0x47, 0xd6,0xef,0xf3,0x1d, 0xae,0x58,0x6e,0xae, 0xee,0x5b,0xfc,0x08, + 0x0c,0x15,0x62,0xdf, 0x9b,0x29,0x68,0x66, 0x46,0x84,0x5b,0x40, 0x40,0x7d,0xe4,0x81, + 0x94,0x18,0xbb,0xca, 0x6f,0x5f,0xbe,0x68, 0x47,0xeb,0x0b,0x32, 0x9c,0xc5,0x2d,0xd0, + 0x86,0xf2,0xf9,0xb9, 0xba,0x21,0x1a,0x9d, 0xc8,0x57,0x4c,0x3f, 0xe0,0xfc,0xef,0x89, + 0xe0,0x82,0x01,0x06, 0x43,0x61,0xa2,0x5f, 0xb9,0xf2,0x9c,0xa2, 0x47,0x6d,0xa4,0xc2, + 0x20,0xb1,0x62,0x8e, 0xd8,0xae,0x68,0x93, 0x76,0x29,0x1a,0x9b, 0x21,0xec,0x6b,0xd7, + 0xab,0xbe,0xf7,0x91, 0x38,0x9b,0x29,0xee, 0xf7,0x10,0x93,0x4e, 0x6a,0x3a,0xde,0xa6, + 0x3f,0x38,0xfb,0xc8, 0x7c,0xae,0x1b,0x91, 0xa4,0xad,0x36,0x0d, 0x04,0x3f,0xfd,0xe5, + 0x00,0x48,0xfd,0xc9, 0x02,0x75,0x9e,0x72, 0xee,0xc9,0xf2,0xf3, 0xb0,0xdd,0x34,0x27, + 0x0c,0x95,0x0a,0xf8, 0xf9,0xeb,0x0f,0x57, 0x37,0xba,0x4e,0x1f, 0xd2,0x33,0x1c,0x92, + 0x6a,0x96,0x83,0x1d, 0x10,0x88,0x43,0x5e, 0x47,0x17,0x60,0xf3, 0xd2,0x4d,0xf4,0x08, + 0xfd,0x66,0x89,0xa3, 0xef,0xa9,0xe1,0x95, 0xb0,0xc2,0x65,0x99, 0x1c,0x09,0xbc,0xd8, + 0x46,0x7d,0x50,0xa4, 0x32,0x24,0x90,0x0f, 0xe2,0x59,0xc0,0xf9, 0x59,0x26,0x6f,0xb0, + 0x7f,0x01,0x61,0xed, 0x3f,0xf2,0x72,0x1a, 0x62,0x35,0xda,0x32, 0x93,0x12,0x1b,0x4e, + 0x5f,0x35,0xe1,0xd3, 0x41,0x62,0x49,0x32, 0x6b,0x1b,0x43,0x9a, 0xf5,0x95,0xe2,0x05, + 0x10,0x06,0x82,0x1d, 0xca,0x5b,0x7e,0xcb, 0x2c,0x1f,0xc7,0x19, 0x14,0x48,0x31,0x87, + 0xd8,0x3c,0xfd,0x92, 0x57,0xa2,0x61,0xe4, 0x26,0x85,0xe5,0x5a, 0x8d,0xee,0x66,0x73, + 0xe0,0xc3,0x04,0x53, 0x9a,0x4b,0x10,0x34, 0xbf,0x8d,0x66,0x1f, 0x82,0xdd,0xff,0xf7, + 0xfc,0x53,0xf2,0xae, 0x89,0x36,0x0e,0x58, 0x7d,0x3f,0x33,0x8f, 0x5d,0x1c,0xa1,0xc0, + 0xa7,0xb7,0x8e,0x74, 0x60,0x28,0x28,0x9a, 0xbb,0xa5,0xf3,0xd1, 0x82,0x78,0xd1,0x66, + 0x3f,0x53,0x07,0x79, 0x7a,0x2a,0xa9,0xee, 0xe0,0x59,0xae,0xd4, 0x1e,0xb6,0xcd,0x69, + 0xa3,0xbe,0x46,0x75, 0xc1,0x77,0x17,0x6a, 0x35,0xd2,0x23,0x6e, 0x35,0x76,0x41,0x07, + 0x98,0x93,0xcd,0xe3, 0xc1,0x46,0x25,0xed, 0x94,0x58,0x89,0xb4, 0x53,0x99,0x70,0x1a, + 0x6d,0x2d,0xf2,0xc3, 0x3b,0xe7,0xd3,0x48, 0xed,0xa9,0x7b,0xcc, 0xc5,0x04,0xd1,0x15, + 0x96,0x97,0xed,0x0f, 0xc5,0x72,0x2a,0x6a, 0x55,0x2d,0xaf,0xd6, 0x5a,0x7f,0x55,0xd6, + 0x53,0x8c,0x98,0x61, 0x7e,0x17,0x08,0xc3, 0xc3,0xbd,0xcf,0xcc, 0xfd,0x9a,0xe4,0x3c, + 0xed,0x62,0xa8,0xaa, 0x2c,0x60,0x48,0x49, 0x26,0x5e,0x93,0xbe, 0xbb,0x6d,0x08,0xf3, + 0xbb,0x33,0x53,0x30, 0x57,0x57,0x76,0x15, 0xf1,0xf0,0x47,0x59, 0x0d,0x2c,0x73,0x8c, + 0xda,0x2f,0x30,0xa7, 0x78,0x61,0x09,0x48, 0x29,0xf1,0xb6,0x64, 0x4f,0x97,0xb6,0xae, + 0x6d,0x67,0xbc,0xca, 0xee,0x56,0xcd,0x6e, 0x7b,0xdd,0xd1,0xf1, 0xe0,0xf0,0x55,0x69, + 0x74,0x91,0x13,0x0a, 0x66,0x23,0x63,0xe1, 0x9e,0x3d,0xea,0x54, 0xce,0x73,0x7b,0x8d, + 0x5e,0xaf,0x58,0xb3, 0xa3,0x0c,0x45,0x12, 0x69,0xa1,0xf0,0x71, 0xae,0x6b,0x75,0x33, + 0x8c,0xc9,0x79,0xbc, 0x14,0xd9,0x30,0x33, 0x88,0x0e,0x34,0x9e, 0x67,0x2b,0x7a,0xa8, + 0x43,0x9a,0xe2,0x42, 0x42,0x16,0x1b,0x4c, 0xc6,0xf5,0xc1,0x18, 0x30,0x55,0x84,0x44, + 0x7c,0xec,0x2b,0x0e, 0x4d,0xc8,0x71,0x50, 0xdb,0x5f,0x14,0xc1, 0x53,0xc5,0xa6,0xd2, + 0xaa,0x25,0x0e,0x56, 0xa6,0xe6,0xbb,0xe5, 0x0c,0x41,0xe7,0x4f, 0x44,0xa5,0x4d,0xa2, + 0x37,0x04,0x28,0xa9, 0xa7,0x5c,0x4f,0x82, 0xb6,0xc5,0xbd,0xee, 0xeb,0xe2,0x5d,0x16, + 0x93,0xc0,0xf5,0x0b, 0x88,0x1c,0xa5,0x0e, 0x9b,0x89,0x98,0x5a, 0x22,0x0c,0x57,0x33, + 0xcb,0x99,0x9a,0x2f, 0x26,0x58,0x54,0xbe, 0x4f,0x72,0xba,0x82, 0x81,0xcb,0x98,0xa3, + 0x69,0x44,0x7c,0x1a, 0xd1,0x6f,0x1d,0xea, 0xee,0x11,0x31,0x25, 0xa6,0x75,0xb6,0x9c, + 0xec,0x15,0xe0,0xd8, 0xb5,0x32,0x62,0x13, 0xe6,0xb4,0x9a,0x12, 0x03,0xa5,0xd1,0x16, + 0x90,0xcc,0x4f,0x7b, 0x22,0xda,0xd7,0x11, 0xcc,0x1a,0xea,0xae, 0x76,0x95,0xf1,0xbd, + 0xe1,0x3c,0x78,0xac, 0x2b,0x8d,0xa6,0x52, 0xdc,0x32,0xe9,0x97, 0xc7,0x85,0x62,0xd7, + 0x68,0xc3,0x01,0x1a, 0x96,0xb9,0x3b,0x5d, 0xec,0xd1,0x3d,0x8b, 0x9d,0x29,0xc9,0x51, + 0xde,0xb5,0x7a,0xeb, 0x9b,0xa6,0xe7,0x3a, 0xdd,0xe8,0x54,0x16, 0x28,0x96,0x33,0x9d, + 0xf6,0xdf,0x7d,0xce, 0x78,0x0c,0x55,0xdf, 0x92,0xdd,0xcb,0x47, 0x32,0xaa,0x2a,0x3c, + 0xc0,0x3b,0x4f,0x16, 0xe6,0x95,0xe4,0x78, 0x0b,0x47,0x86,0x58, 0x22,0x8b,0xbb,0x32, + 0xb2,0x4e,0x22,0x27, 0x69,0x62,0x41,0x14, 0xda,0x3a,0x76,0xcd, 0x35,0x63,0x22,0x11, + 0x5c,0x2d,0x64,0x58, 0xcd,0xc6,0xc3,0x15, 0x2b,0x05,0xc6,0x85, 0xa6,0x6d,0xc4,0xe5, + 0xb3,0x5b,0xc9,0x88, 0xe4,0x51,0x18,0x4e, 0x5a,0x10,0xc3,0x41, 0xa7,0x12,0x5e,0x30, + 0xda,0x37,0x38,0x84, 0x59,0x16,0x5d,0x7c, 0xb0,0x21,0x64,0xce, 0x5b,0x70,0x09,0x85, + 0xca,0x5c,0x6a,0xf3, 0x3a,0x6c,0xd0,0x42, 0x0c,0x17,0x5c,0xe7, 0x37,0x73,0x28,0x49, + 0x0c,0x14,0x31,0xe2, 0xdb,0x57,0x7d,0xc5, 0xdf,0x49,0x8b,0xb1, 0x70,0x47,0x66,0x0f, + 0x1a,0x93,0xb1,0x50, 0xef,0x67,0x49,0x88, 0x84,0x49,0x54,0x00, 0x80,0x64,0x37,0x28, + 0xed,0x46,0xa5,0x70, 0x40,0xa6,0x61,0x87, 0x87,0x50,0x54,0x55, 0x61,0x9e,0x57,0x13, + 0x96,0x93,0x89,0x59, 0xe4,0xea,0x06,0x5b, 0x9c,0xa1,0xc4,0xe2, 0x8c,0xb6,0x71,0x16, + 0x06,0x0c,0x05,0xb5, 0xc6,0xd3,0x42,0xd3, 0x86,0x25,0x4c,0xa0, 0x3e,0x58,0x93,0x20, + 0x98,0x4d,0x1f,0x45, 0x32,0x85,0x62,0xab, 0xc1,0x96,0x94,0xae, 0x3e,0x2e,0xe3,0x4b, + 0x96,0x53,0xc7,0x4c, 0xd3,0xb7,0x30,0x78, 0xb7,0x8c,0x70,0x6d, 0x5a,0xac,0x62,0xdd, + 0xee,0x24,0x44,0x04, 0x10,0x38,0xcc,0xe6, 0x6d,0x94,0xe6,0x80, 0xd6,0x1b,0x72,0xdd, + 0xe9,0xcf,0x1c,0xcd, 0x0c,0x45,0x56,0x4e, 0x42,0x04,0x87,0x29, 0x0f,0xe8,0x55,0x7a, + 0x44,0x22,0x82,0x51, 0x8b,0x04,0x20,0x00, 0xc6,0x28,0x41,0x46, 0x00,0x80,0x8c,0x9f, + 0xbb,0xae,0xa0,0x8d, 0x62,0x4e,0xc2,0x87, 0x4d,0xfa,0xa8,0x83, 0x68,0x29,0x20,0x80, + 0x87,0xe0,0xeb,0x28, 0x2d,0x64,0x80,0x7e, 0xbe,0xd7,0x83,0x54, 0x0b,0x78,0x5f,0x98, + 0xf0,0xec,0x96,0x24, 0x64,0x85,0x60,0x34, 0x82,0x01,0xc4,0x85, 0x20,0x92,0x00,0x92, + 0x3d,0x95,0x0e,0xa8, 0xea,0xbb,0x9d,0x47, 0xd8,0x9f,0x57,0x87, 0xf8,0xb2,0xbd,0xd4, + 0x5c,0x08,0xc2,0x24, 0x90,0x8c,0x80,0x2b, 0x05,0x18,0xaa,0x22, 0x30,0x64,0x52,0x28, + 0x2c,0x1b,0x42,0xa9, 0x68,0x48,0x71,0x5d, 0xe5,0xa9,0xd9,0xcd, 0x1b,0x5d,0xd1,0xce, + 0x8f,0xb7,0xfc,0xfb, 0x3e,0x97,0xaf,0xbb, 0x2f,0xbc,0xe3,0x33, 0xb8,0x53,0x3a,0xee, + 0x6e,0x66,0x15,0x03, 0x46,0x2d,0x27,0x43, 0x12,0xe3,0x0b,0x31, 0x47,0xe4,0x53,0x54, + 0xbf,0x26,0x06,0x6f, 0x7e,0x92,0x84,0x86, 0x37,0xf3,0x4c,0xa9, 0x86,0xcd,0x51,0x26, + 0xde,0xb2,0x9d,0x34, 0x8b,0x85,0xd8,0x65, 0x02,0x09,0x4e,0xe9, 0x58,0x09,0x87,0x55, + 0xc5,0xb5,0x59,0xd4, 0xca,0x28,0x9e,0x51, 0x3e,0xd8,0x1f,0xd2, 0x42,0x25,0x87,0xb7, + 0xfe,0xd4,0x2b,0x17, 0x29,0xd9,0x16,0x04, 0xb0,0x15,0x20,0x7f, 0x26,0xfb,0xfc,0x85, + 0x4d,0x64,0xb6,0x8b, 0xc6,0x1f,0xb9,0xcd, 0xcf,0xde,0xf2,0xf7, 0x92,0x58,0x89,0x16, + 0xfe,0xb2,0xe4,0x02, 0x7f,0x1a,0x9f,0x6f, 0x97,0xea,0xdf,0x9b, 0xfa,0x3d,0xa1,0x0e, + 0xac,0xee,0x2a,0xc1, 0x3b,0x25,0x82,0x3d, 0x53,0x11,0xf1,0xd8, 0xda,0x9a,0xa2,0x66, + 0xe6,0x98,0xb7,0xf8, 0x8f,0x99,0x18,0xf9, 0x27,0x06,0x28,0xe6, 0x01,0x46,0xc2,0xa5, + 0x12,0x82,0x40,0xb3, 0xc2,0x0f,0xfb,0xee, 0x9c,0x3b,0xd8,0x56, 0x64,0x7f,0x8d,0x67, + 0xf8,0x8c,0x00,0x5b, 0xfc,0xef,0xe0,0xbb, 0x86,0xe0,0xa0,0x4f, 0xee,0x88,0xb1,0x0e, + 0x20,0xa8,0x22,0xc1, 0x8c,0x88,0x20,0xac, 0x55,0x14,0x55,0x6a, 0xd2,0x8b,0x58,0x15, + 0x51,0x11,0x56,0x2a, 0x28,0xa5,0xa5,0x60, 0x3e,0x1e,0x07,0xd4, 0x14,0x51,0x1b,0x6d, + 0x57,0xd3,0x9c,0x57, 0xa2,0xda,0xa2,0x43, 0xd6,0xe6,0x98,0x60, 0x63,0x2a,0x0a,0x36, + 0xeb,0x20,0xc5,0x4c, 0x4f,0x1c,0xdc,0x83, 0xcf,0x66,0xb9,0x2a, 0x15,0xf9,0x1f,0x64, + 0xb0,0x86,0xa8,0xa2, 0x3b,0x5e,0x93,0x9e, 0x36,0x34,0xb2,0x00, 0x28,0x74,0x51,0x88, + 0x82,0x87,0xbb,0x7e, 0xdc,0x35,0x46,0xe0, 0xa1,0x86,0x57,0x7f, 0x80,0x34,0x89,0x18, + 0x48,0x2b,0xdf,0xc5, 0x2f,0x21,0xbe,0xc5, 0x73,0x60,0xeb,0x22, 0xed,0x76,0x3d,0x15, + 0xfd,0xe3,0xe0,0x3f, 0x89,0x6f,0x4e,0x64, 0x85,0xfc,0xfd,0xcd, 0x8c,0x2c,0x14,0x8d, + 0xb3,0x6d,0x8f,0xaf, 0x87,0xfa,0xac,0x02, 0x61,0xc5,0x0d,0xcc, 0x2d,0x13,0x87,0x75, + 0xb4,0xd6,0x12,0xd1, 0x43,0x08,0x01,0xf5, 0xe2,0x52,0x46,0x06, 0xa6,0x2d,0x30,0x94, + 0x30,0xec,0x91,0x05, 0xb2,0x4d,0xf8,0x12, 0x60,0x41,0xcf,0x6f, 0x9f,0x58,0x03,0x42, + 0xcc,0x8f,0xee,0xf2, 0x77,0x08,0xfe,0xa1, 0x70,0x5c,0x8c,0xe9, 0x79,0x47,0x9a,0x53, + 0x2c,0x79,0x2f,0x91, 0xfb,0x64,0x37,0x35, 0x20,0x78,0xa7,0xf9, 0xee,0x39,0x7d,0xf4, + 0xc3,0xe6,0x9c,0x8c, 0xc9,0x2d,0xe9,0x6b, 0x43,0x41,0x2d,0xdd, 0x15,0xfc,0x8a,0x50, + 0xee,0x95,0x44,0x7f, 0x50,0xf4,0xfd,0x96, 0xfb,0xbb,0x7e,0xc7, 0xc6,0xbf,0xe1,0xb7, + 0xfd,0x06,0xcf,0xdd, 0xd3,0x8c,0x3d,0x43, 0x29,0xe3,0x43,0x2c, 0x1f,0x96,0xec,0x17, + 0xd1,0x5c,0xbe,0x32, 0x91,0x12,0x24,0x09, 0xf9,0x7e,0x9c,0x08, 0xea,0x3f,0xdc,0xfc, + 0xb5,0x91,0x80,0x5b, 0xac,0xfd,0x0c,0x01, 0x72,0x0e,0xa9,0x9f, 0xf1,0xb0,0xac,0x3e, + 0x68,0x55,0x62,0xed, 0xfb,0x25,0xe9,0x94, 0x34,0xbe,0x39,0xd4, 0xd1,0x3f,0xb2,0xff, + 0xca,0xce,0x8f,0xb9, 0x13,0x96,0xe5,0x68, 0x96,0x81,0xdc,0x5d, 0xb2,0xab,0x4f,0xd1, + 0xdc,0xd5,0x0f,0xe9, 0x33,0x60,0x19,0xd1, 0x86,0x76,0xaa,0xa5, 0x25,0x42,0x46,0x40, + 0x39,0xa1,0xfc,0x22, 0x00,0xe4,0x5b,0xa9, 0x98,0x7f,0x9e,0xe3, 0xb9,0x8f,0x5b,0x4e, + 0x1b,0xde,0x5b,0xef, 0x99,0xe5,0xf9,0x4f, 0xfb,0xfb,0xd9,0xff, 0x8d,0x21,0x7a,0xa6, + 0x1a,0x98,0x62,0x9b, 0x78,0xec,0xe1,0xc7, 0xed,0x36,0xb2,0x54, 0xc5,0xbd,0xa1,0xf5, + 0xb4,0x28,0xcd,0x81, 0xdf,0x56,0xa4,0x6f, 0xe2,0xa9,0xbf,0x95, 0xad,0x0d,0x3e,0x75, + 0x16,0xc0,0x09,0xba, 0x2f,0xff,0x49,0xf8, 0x76,0xc3,0x7f,0x75, 0x95,0xfd,0x3f,0x5a, + 0x1d,0x1e,0x89,0x59, 0xd3,0xc8,0xd1,0x99, 0xf7,0xac,0xf8,0x7f, 0x61,0x12,0xd3,0xf6, + 0xb3,0x1e,0xe3,0x74, 0x87,0x1f,0x45,0x0e, 0x4e,0x53,0x07,0x07, 0x16,0xb8,0x72,0x59, + 0x91,0xe4,0x41,0xf9, 0x67,0xe5,0x38,0xf7, 0x64,0x84,0xe0,0xb3, 0xfd,0xda,0x63,0x27, + 0xd1,0x0e,0xdf,0x92, 0xde,0xdc,0x52,0x7e, 0x1e,0x51,0x67,0x03, 0xe4,0x6d,0x91,0x58, + 0xb8,0xd5,0xc3,0xad, 0xc9,0x82,0x5c,0xcb, 0x25,0x32,0xc1,0xad, 0x81,0x5a,0xc3,0x0b, + 0x45,0x05,0x05,0x11, 0x91,0x15,0x57,0x0a, 0x52,0x2c,0x88,0x28, 0x31,0x14,0x2a,0x16, + 0x24,0x8a,0x98,0xa6, 0xac,0x4f,0x80,0x20, 0x66,0xa7,0xd5,0x9b, 0xa8,0xfe,0xc2,0x94, + 0x52,0xf1,0xfa,0x5d, 0xff,0x58,0xfc,0x07, 0x4f,0x03,0xcd,0x13, 0x6f,0x82,0xf1,0x87, + 0x84,0x6a,0xe2,0x6d, 0xe0,0xd4,0xf9,0x51, 0xc4,0x60,0x80,0xa6, 0x7c,0xac,0x5b,0xfd, + 0x7e,0x43,0xfb,0xbf, 0x27,0xd9,0xe5,0x7d, 0x74,0x42,0x95,0x64, 0x1b,0x5f,0x91,0xa4, + 0xfe,0x36,0xd3,0x61, 0x3a,0x09,0x88,0x48, 0x16,0x1f,0x4c,0xb7, 0x37,0x80,0x4b,0x23, + 0x35,0x0c,0xc6,0x77, 0x76,0xbe,0x57,0x61, 0xb9,0xd6,0x5a,0xe0, 0xc1,0xc5,0xc0,0xb0, + 0x63,0xc5,0x47,0x9d, 0xdf,0xe9,0x31,0x58, 0x09,0x11,0x01,0xd1, 0x88,0x8b,0x8a,0x01, + 0xd0,0xc2,0x25,0xd1, 0xf6,0x9d,0xa7,0x68, 0xf0,0x99,0xec,0xfa, 0xb2,0xeb,0x89,0x62, + 0xb5,0x9f,0x4e,0x97, 0x4a,0xd8,0x91,0x97, 0xd0,0xb2,0x6d,0x58, 0x11,0x6d,0xe7,0x23, + 0x39,0x5d,0xde,0x60, 0xd4,0xe4,0xe0,0x95, 0xc8,0x46,0xf8,0x62, 0x1a,0x8a,0x95,0x32, + 0x8a,0xbc,0xaa,0x46, 0x9c,0xc1,0x8a,0x93, 0x2e,0x9d,0x44,0xf8, 0xef,0x4e,0x4b,0xd4, + 0x6a,0x3e,0x33,0x53, 0x53,0x28,0xcb,0x14, 0xc4,0x50,0x31,0x91, 0x66,0xe6,0x62,0xb8, + 0xd1,0xa6,0x18,0x51, 0xb0,0x09,0xa9,0x03, 0x76,0xdb,0xbb,0x83, 0x6c,0xe6,0x18,0x67, + 0x25,0xcb,0xaf,0x87, 0xa1,0xcc,0xc5,0x0a, 0x6c,0x64,0xc4,0xb1, 0x98,0x83,0x0a,0xb8, + 0xe2,0x12,0x0a,0x4e, 0x05,0x44,0xab,0x4d, 0x66,0x1c,0x61,0x39, 0xd2,0xc9,0x93,0x4e, + 0x33,0x5a,0xad,0x5d, 0xe8,0xc9,0x8a,0x8e, 0x61,0x91,0xb9,0x13, 0x92,0x35,0x0c,0x6c, + 0x64,0xc1,0xb0,0xb1, 0xa4,0x4c,0x78,0xb2, 0x22,0x64,0xd9,0x89, 0x88,0x85,0xd0,0x77, + 0x77,0x25,0x9b,0x67, 0x13,0x0d,0x6a,0x55, 0x61,0x2e,0x36,0x00, 0x0a,0x42,0x54,0x21, + 0xd4,0xc6,0x70,0xb4, 0x09,0x50,0xe0,0xe6, 0xd2,0xdd,0x4e,0x66, 0x60,0x96,0xed,0xcc, + 0xb5,0x14,0xc3,0x2a, 0xd4,0x6e,0xec,0xcd, 0x7b,0x30,0x1e,0x28, 0xab,0x33,0x34,0x68, + 0x9b,0x9b,0x72,0x26, 0x82,0xf4,0x4e,0xb0, 0xd6,0x74,0x31,0x15, 0xe6,0x6b,0xa8,0x89, + 0x6e,0x53,0x38,0x1d, 0x1c,0x30,0x3a,0x9d, 0x3a,0xdd,0x0e,0xbd, 0xa5,0xb6,0xee,0xf0, + 0x4b,0x83,0xdb,0x86, 0x25,0x81,0xd0,0x3a, 0xac,0xef,0x38,0xf1, 0xef,0xb7,0xb3,0x7c, + 0x4a,0xd4,0x4b,0x7c, 0x35,0x49,0x70,0xa7, 0x8f,0x14,0xb5,0xf1, 0xbd,0xc6,0x50,0xe2, + 0x70,0xbb,0x9c,0x43, 0x57,0x42,0xd1,0x2a, 0x28,0xa5,0x40,0x1d, 0xb2,0x54,0x1b,0x52, + 0x8a,0xb5,0x60,0x3c, 0x8d,0xb0,0x00,0x06, 0xa4,0x6a,0xc8,0xa5, 0x85,0xb9,0x04,0xa8, + 0x01,0x52,0x17,0x6d, 0xcb,0x74,0xb4,0x10, 0x36,0xd0,0x0b,0x6b, 0x2b,0x1d,0x73,0x73, + 0x30,0xac,0xe2,0x47, 0x51,0xf1,0x6c,0x8a, 0x74,0xa3,0x8f,0x94, 0xb4,0x53,0x14,0x0c, + 0xae,0x91,0x54,0xd4, 0xaa,0x99,0x03,0x1a, 0xb1,0xc1,0xeb,0x05, 0xd4,0xe6,0xb0,0xad, + 0x6b,0x66,0x4e,0x48, 0x1a,0x5d,0x46,0x8f, 0x89,0x1c,0x85,0xe5, 0xac,0x46,0xa5,0xc7, + 0x36,0xcc,0xc3,0x4b, 0xa1,0x66,0xa4,0x91, 0xa2,0x18,0xb9,0x53, 0x29,0x99,0x0a,0x98, + 0x01,0xa9,0x02,0x05, 0x64,0x19,0x4b,0x10, 0xe9,0x62,0xc5,0x8b, 0x19,0x8d,0x41,0x14, + 0x55,0x51,0x2e,0xdc, 0x72,0xe8,0x60,0xdb, 0x45,0xdd,0xa8,0xae, 0x57,0x0c,0xa6,0x02, + 0x6d,0x4c,0xe1,0xd6, 0xda,0x5e,0x37,0x73, 0xa9,0x48,0xe9,0xd4, 0x81,0x8d,0x20,0xdb, + 0x29,0xa9,0x8d,0xc6, 0xe2,0xe1,0x51,0xa3, 0xa5,0xa6,0x54,0xc7, 0x6e,0xe2,0x5a,0x58, + 0xe9,0x94,0xd2,0xf1, 0xa2,0x2e,0xed,0x67, 0x34,0x72,0xd3,0x2e, 0x83,0x69,0x80,0xb4, + 0xb4,0x2d,0x29,0x60, 0x72,0xd1,0x77,0x8d, 0x48,0xe7,0x0c,0xc0, 0x31,0x70,0xb4,0xa5, + 0x10,0x44,0x0c,0x4c, 0x6c,0x4c,0x12,0xb2, 0x4c,0xcc,0x04,0x97, 0x04,0xe4,0xd7,0x15, + 0xdb,0x2d,0xaa,0x6c, 0xc6,0xd8,0x15,0xec, 0x86,0xa9,0xbb,0x93, 0x6d,0x5b,0xb5,0x52, + 0xa7,0x83,0x6d,0x28, 0xa3,0x4d,0xb6,0x0d, 0xeb,0xe1,0x2c,0x14, 0x32,0x0d,0xe3,0xa3, + 0xd4,0x63,0x41,0x92, 0x32,0xd8,0x62,0x30, 0x48,0x98,0x19,0x73, 0x19,0x31,0x19,0x6a, + 0xd1,0xa9,0x55,0x12, 0x31,0x48,0x75,0x16, 0x0a,0xc5,0x89,0x59, 0x45,0x4d,0x6a,0x26, + 0x6a,0xe0,0xdb,0x89, 0x55,0x0c,0xa1,0x73, 0x4c,0xcc,0x4d,0xba, 0xae,0x28,0x28,0xa3, + 0xb4,0xa9,0x59,0x75, 0xa2,0xe5,0xa0,0x8e, 0xa3,0xa6,0xe6,0xdb, 0x88,0x4c,0x14,0xdb, + 0x2c,0x63,0x72,0x9a, 0xb5,0x29,0xa2,0xc5, 0x16,0x5b,0x1a,0x12, 0x31,0x55,0xb5,0xad, + 0x40,0x4a,0xf7,0x6c, 0x5a,0x8d,0x42,0xd3, 0x74,0x25,0x5a,0x31, 0x5d,0x75,0xbe,0xdf, + 0x27,0x32,0x0f,0x9c, 0x55,0xc4,0x54,0xd5, 0xdb,0xd7,0x35,0x2e, 0x08,0x38,0xda,0xda, + 0xc9,0x54,0x82,0x63, 0xab,0x90,0xd6,0x25, 0xc4,0x2e,0x39,0x99, 0x80,0xa2,0x23,0x2d, + 0x29,0x52,0x56,0x28, 0x91,0x58,0xca,0xd3, 0x6f,0xb0,0xe2,0xc5, 0x1d,0xbb,0x6c,0x30, + 0x50,0xf0,0x32,0x90, 0x45,0x91,0x62,0xa3, 0x0e,0xaf,0x26,0x18, 0x82,0x2c,0x6a,0x54, + 0x52,0x32,0x2c,0x05, 0x05,0xb9,0x9c,0x06, 0x2d,0x69,0x69,0x55, 0x5b,0x85,0x6a,0x5c, + 0x6c,0x32,0xe5,0xe2, 0x57,0x0e,0x1b,0x9c, 0x0d,0x1d,0x6a,0x26, 0x26,0x72,0x35,0x8a, + 0x15,0x2b,0x05,0x1d, 0x65,0x84,0x32,0x94, 0xc6,0x5c,0xb2,0x0b, 0x63,0x22,0xc9,0xca, + 0x71,0x9a,0x39,0xca, 0x69,0xa5,0xe3,0x69, 0x75,0xaa,0x2c,0x44, 0x50,0x52,0x78,0xe6, + 0x64,0x50,0x55,0x82, 0xc7,0x9d,0xc9,0xd4, 0xc4,0x87,0x9b,0x2e, 0x14,0x9c,0x61,0x1c, + 0xb1,0xc3,0x12,0xd4, 0xc9,0xd4,0xc3,0x69, 0x52,0x15,0x21,0x5d, 0x30,0x94,0x90,0xae, + 0x02,0x95,0x2a,0x2a, 0x31,0x0b,0x44,0x51, 0x05,0x30,0x1d,0xb0, 0x53,0x15,0x14,0x31, + 0x0a,0x20,0x62,0x66, 0xda,0xed,0xcc,0x2d, 0xf0,0xee,0xd4,0x37, 0x32,0xf1,0xb7,0x2c, + 0x31,0x80,0xd6,0x92, 0xda,0x41,0x51,0x96, 0x8b,0x8f,0x37,0xc1, 0xdc,0xc7,0x2c,0xd1, + 0x05,0x11,0x7a,0xd8, 0x09,0x57,0x92,0xb8, 0xb7,0x2d,0x4b,0xb4, 0xc1,0x81,0x19,0xc4, + 0xc6,0x67,0x69,0x6b, 0x49,0xde,0xf3,0x76, 0x94,0xe6,0x55,0x50, 0x55,0x17,0x16,0xe9, + 0xc9,0x94,0xc4,0x06, 0x67,0x0e,0x73,0x1d, 0x79,0x78,0x70,0x4e, 0xac,0xba,0xde,0x83, + 0xc9,0x93,0x5f,0x39, 0xbc,0xde,0x54,0x85, 0x95,0x0a,0x1c,0x73, 0x14,0x14,0x41,0x1b, + 0x00,0x4a,0x0d,0xb0, 0x4d,0x0d,0x24,0x18, 0x90,0x5e,0x00,0x0d, 0x6a,0x61,0x37,0x66, + 0x58,0xde,0x29,0x36, 0xba,0x62,0xb0,0x4a, 0xa8,0x6c,0xbc,0xbd, 0xee,0x3d,0x5e,0x27, + 0x64,0xa2,0x0a,0x0b, 0x68,0x74,0x6e,0x43, 0x26,0xdb,0x8a,0x11, 0xb0,0x30,0xbb,0x02, + 0xb6,0xed,0xd0,0xc5, 0x62,0x85,0x83,0xc6, 0xb9,0x8a,0x56,0xf5, 0x4c,0x37,0x38,0x35, + 0x2e,0xab,0x68,0x20, 0x34,0x4f,0x21,0x81, 0x0c,0x1c,0x9c,0x42, 0x64,0x28,0x9c,0x62, + 0x4d,0xab,0x63,0xcd, 0xe0,0xd9,0xcd,0xe2, 0x7e,0x02,0x47,0x39, 0xa1,0x33,0x56,0x62, + 0x9c,0x44,0xb2,0xc4, 0xb9,0xd5,0x9c,0x78, 0xc3,0x77,0x85,0xc0, 0x2a,0x0a,0x1c,0xb6, + 0x28,0xf8,0x68,0xb1, 0x25,0x19,0x20,0xa5, 0x7a,0xf5,0x20,0x6a, 0x73,0x2c,0x39,0xb6, + 0x75,0xa3,0x8a,0x80, 0xac,0xdb,0x23,0x6b, 0x2c,0x51,0x95,0xb3, 0x75,0x70,0x9b,0xbc, + 0xab,0x8d,0xa8,0x46, 0xe2,0x66,0x03,0xad, 0x09,0xac,0xd6,0xab, 0x4f,0x66,0x86,0xee, + 0x9d,0x44,0xd4,0x4f, 0x64,0x5c,0x32,0xde, 0x6c,0x93,0x5f,0x39, 0x4d,0xd8,0x73,0x9c, + 0xb9,0x70,0xdd,0xe1, 0x68,0xf3,0x9a,0xb1, 0x0f,0x0c,0x63,0x45, 0x01,0x32,0x9e,0x58, + 0x51,0x58,0xec,0xce, 0x59,0x87,0x08,0x54, 0x8a,0x4a,0xd1,0x18, 0xc8,0xa2,0x6f,0x4a, + 0x62,0x54,0x61,0x09, 0xca,0xd7,0x1b,0xca, 0xa3,0x6d,0xb4,0x19, 0x80,0x08,0x5c,0x14, + 0x03,0x86,0x5c,0xb5, 0x47,0x66,0xb4,0xa8, 0xaa,0xbd,0xf2,0x19, 0xb5,0x00,0x01,0xb7, + 0x24,0x42,0x0b,0x09, 0x52,0x0c,0xbc,0x74, 0x03,0x85,0xda,0x31, 0xe8,0x23,0x92,0xa7, + 0x1a,0x40,0x84,0xdd, 0x5c,0xa6,0xe7,0x00, 0xde,0x70,0x38,0x9e, 0x6b,0x79,0xbd,0x9c, + 0xdd,0xb2,0x57,0x7a, 0xb3,0xa7,0x73,0x6b, 0xe5,0x4a,0x10,0xa0, 0x60,0x62,0x04,0x48, + 0xe5,0x28,0x72,0xd5, 0x41,0x71,0x69,0x50, 0xb6,0xa8,0xc1,0x56, 0xb4,0x15,0xf1,0x4a, + 0x95,0xc4,0xc5,0x42, 0xe5,0xa2,0x62,0x03, 0xcc,0x33,0x16,0xad, 0xa3,0x30,0xc9,0x30, + 0x56,0x31,0x3b,0x46, 0xa5,0x8d,0x58,0x20, 0x8b,0x4a,0x61,0x31, 0x9b,0x1c,0x08,0xc5, + 0x1a,0x0c,0x83,0x7d, 0x37,0xc3,0x9a,0xf3, 0x93,0x10,0xda,0x9b, 0xb3,0x8b,0x8b,0x94, + 0xa2,0xd1,0x3c,0x45, 0x4d,0x31,0x45,0x24, 0x40,0x18,0x22,0x98, 0xe5,0x6b,0x38,0x6a, + 0x10,0x21,0x6e,0xb5, 0xac,0xd9,0x37,0x70, 0x40,0x55,0xa2,0x05, 0x5a,0xb9,0x8a,0xa3, + 0x15,0x85,0x85,0x9a, 0x95,0xab,0x55,0x14, 0x13,0x95,0x75,0x01, 0x06,0x8a,0x09,0xbe, + 0x6b,0x88,0xc3,0x0a, 0x8c,0xe0,0xcc,0x41, 0x3a,0x90,0x30,0x2b, 0x6b,0x62,0xcb,0x4a, + 0x8b,0x06,0xde,0x0b, 0x78,0x71,0x31,0x03, 0x6a,0xd4,0x65,0xb5, 0x16,0x96,0x56,0x57, + 0xae,0x3c,0x49,0x0e, 0x98,0x33,0x8c,0xaa, 0xb7,0x2b,0x86,0xcc, 0xdb,0x4a,0x60,0x36, + 0xd1,0xa3,0xba,0x66, 0x5d,0x5b,0xe3,0x30, 0xca,0xaa,0x2b,0x15, 0x22,0x0a,0x0b,0x2b, + 0x5a,0x6f,0x32,0xe5, 0x04,0x33,0x29,0x8c, 0xa0,0xcc,0x96,0x8e, 0xda,0x0a,0x3b,0x81, + 0x21,0x1e,0x63,0xa6, 0x4c,0xaa,0xa8,0x28, 0x09,0x98,0xa0,0x81, 0xb2,0x26,0x41,0x69, + 0xb7,0x33,0x59,0xc6, 0x22,0x91,0x41,0xda, 0x98,0x55,0xa3,0x0b, 0x44,0xda,0x55,0x59, + 0x96,0xa2,0x22,0x88, 0xb4,0xcc,0x03,0x73, 0x70,0xb1,0x58,0xda, 0x51,0x84,0x81,0x31, + 0x05,0x2c,0x8f,0x0e, 0x37,0x5f,0x06,0x89, 0xd7,0x57,0xae,0xa7, 0x56,0x99,0x0c,0xea, + 0x3e,0xa2,0x12,0x01, 0x18,0x02,0x2d,0x2a, 0x51,0x46,0x09,0x88, 0xa3,0x69,0x50,0xad, + 0x56,0x0d,0xa2,0xa8, 0x8c,0x95,0x02,0x40, 0x59,0x24,0x0c,0x40, 0x98,0x31,0x60,0x42, + 0x22,0xa0,0xb2,0x03, 0x2c,0x2e,0x65,0x66, 0x34,0xad,0x3c,0x78, 0xb7,0x77,0x12,0xdb, + 0x48,0x58,0x2a,0xa5, 0x65,0x92,0x52,0x20, 0xb0,0x45,0x42,0xd0, 0x90,0x50,0xa9,0x25, + 0x48,0xd9,0xcc,0x0a, 0xa2,0x8c,0x44,0x83, 0x05,0xcb,0x5c,0xbc, 0x77,0x97,0xb8,0x55, + 0x11,0x22,0xce,0x88, 0x84,0x69,0x6a,0x88, 0xb2,0x20,0x85,0xb0, 0x15,0x45,0xa8,0x54, + 0x51,0x15,0x62,0x20, 0xa8,0xaa,0x0c,0x1a, 0x48,0xad,0x42,0x8c, 0x45,0x96,0xc9,0x44, + 0x0b,0x11,0xed,0x95, 0xcb,0x50,0x2d,0x85, 0x49,0x41,0x55,0x92, 0xb3,0x99,0x62,0xaa, + 0xac,0xc8,0xa3,0x5a, 0x82,0xc5,0x8a,0xac, 0x05,0x91,0x8c,0x9a, 0xd5,0x9e,0x19,0x51, + 0x1d,0xb2,0x8c,0x11, 0x63,0x04,0x50,0x00, 0x45,0xef,0x33,0x39, 0xcc,0xc1,0x21,0x0a, + 0x30,0x21,0x62,0x31, 0x5c,0xdc,0xe3,0xa8, 0x2c,0x54,0x45,0x44, 0x55,0xd6,0xd9,0x37, + 0x38,0xcd,0x6b,0x09, 0xe3,0xa7,0x30,0x90, 0xe3,0x05,0x55,0x07, 0x2f,0x1b,0xdb,0x9c, + 0xa0,0x71,0x15,0x64, 0x14,0x8a,0x10,0xb7, 0x30,0xe3,0x9b,0x40, 0x95,0x08,0x39,0xd1, + 0xc5,0xdd,0xc7,0x21, 0x05,0x05,0x02,0xb6, 0x32,0x0a,0x0a,0x40, 0xf1,0x99,0xdd,0x44, + 0x80,0x5b,0x5b,0x4c, 0xca,0x78,0x46,0x66, 0x74,0x55,0xd6,0xc2, 0xf1,0xc1,0x36,0x23, + 0x10,0x24,0x95,0x8d, 0xb9,0x31,0x3d,0xba, 0xf6,0x6e,0x93,0x11, 0x6f,0x55,0x2b,0x98, + 0xb5,0xb4,0xf9,0x16, 0xd7,0xca,0xee,0xa1, 0xee,0x06,0x38,0x2e, 0xfa,0xd5,0xd6,0xf4, + 0xb8,0xd5,0xee,0x76, 0xa2,0x47,0x32,0x22, 0x70,0x6a,0xc8,0xa9, 0x39,0x14,0x66,0x95, + 0xee,0xa9,0x5e,0xe8, 0xa0,0x2b,0x1b,0x5d, 0x58,0x89,0xc6,0x32, 0x2b,0x16,0xd1,0x25, + 0xce,0x34,0xb2,0x23, 0x89,0x43,0x8b,0x8a, 0x77,0x7b,0x9d,0x83, 0xcd,0xb9,0xb8,0x68, + 0x88,0x15,0xc3,0x88, 0x5e,0x4e,0x4f,0x0d, 0x92,0x49,0xc6,0x15, 0x0d,0x9b,0x04,0x27, + 0x63,0x96,0x2a,0xda, 0x13,0x06,0x94,0x18, 0x31,0x80,0xca,0x44, 0x87,0x98,0xe4,0x41, + 0x2e,0x35,0x11,0x83, 0x31,0x0a,0xb1,0x82, 0xbc,0x69,0x96,0x8c, 0x14,0x91,0x05,0x06, + 0x02,0xc4,0x56,0x0a, 0x4e,0x20,0x68,0x83, 0xdd,0xe4,0xe4,0xc7, 0x09,0xc3,0x8f,0x0d, + 0x2a,0x77,0x09,0xc9, 0x35,0x91,0x66,0x31, 0x65,0x11,0x20,0x88, 0x07,0x1f,0x0c,0x98, + 0x9a,0x81,0x9c,0xa2, 0x8b,0x92,0xd7,0xa5, 0x5c,0xb9,0x85,0xb4, 0x16,0x9c,0x2d,0x62, + 0x9e,0x12,0xb0,0x14, 0xee,0x18,0xb2,0x22, 0xf6,0x8a,0x62,0x54, 0x31,0x15,0x45,0xa7, + 0x10,0x90,0x2a,0x51, 0x15,0xd5,0xb7,0x5a, 0xca,0x68,0xdd,0xc1, 0x20,0xc6,0x68,0x98, + 0x38,0x49,0xca,0x4c, 0x62,0x8d,0xf0,0x1c, 0x95,0xbc,0x53,0x23, 0xc6,0x2c,0x8c,0x78, + 0x98,0x99,0x62,0x79, 0x0c,0x4c,0xc6,0xb6, 0x45,0x4b,0x6b,0x6a, 0x31,0x4c,0xe3,0xca, + 0x4c,0x16,0xcc,0x48, 0xd7,0x10,0xdb,0x69, 0x12,0x8d,0x14,0xe4, 0xc5,0x83,0xcb,0xc6, + 0xe7,0x19,0xbd,0x0e, 0xb3,0x9c,0xc0,0x9b, 0xdd,0xc6,0x86,0xcc, 0x80,0x74,0xcd,0xcd, + 0x4e,0xa5,0x32,0xe9, 0x4b,0xb7,0x35,0x9a, 0xc3,0x16,0x33,0x12, 0xd2,0x8a,0x55,0xa5, + 0x1a,0x32,0xb5,0xbd, 0xf2,0xd1,0xba,0x6f, 0x80,0xb2,0xd5,0x1e, 0x96,0x0c,0x4e,0xe5, + 0x52,0xd8,0xac,0x58, 0x8a,0x2c,0xdb,0x62, 0x85,0xe5,0xc5,0xc1, 0xab,0x25,0x87,0x0c, + 0x05,0x80,0x06,0x62, 0x3a,0x4d,0xc7,0x65, 0x8e,0x89,0xf1,0x1b, 0xad,0xf2,0x4d,0xe0, + 0x59,0x89,0x9c,0x4a, 0x2b,0x6d,0x2d,0x8e, 0xda,0xac,0xc7,0x06, 0x5d,0x4a,0x24,0xe1, + 0x6e,0xad,0x6b,0x47, 0x98,0xd2,0x39,0x94, 0x9c,0x70,0x51,0xd9, 0x84,0xd0,0x69,0xb1, + 0xb7,0xa2,0x82,0x9b, 0x90,0x12,0x68,0x1b, 0x33,0xc1,0x0f,0x39, 0x97,0x26,0x6b,0x4e, + 0xb4,0xe7,0x10,0xa6, 0xca,0x29,0xb4,0x4c, 0xd6,0xcd,0x75,0x0b, 0x22,0x32,0x46,0x9d, + 0xaa,0x29,0xad,0x68, 0xcd,0xdd,0xc9,0xa6, 0x28,0x0c,0x6d,0xb6, 0xdc,0x89,0xe4,0x13, + 0x0c,0x31,0x38,0xe4, 0x08,0x9e,0x60,0x48, 0xe4,0x1a,0x93,0x11, 0xd6,0xc5,0x52,0x09, + 0xa9,0x32,0x24,0x24, 0xc5,0x9c,0xb0,0x00, 0xa0,0x86,0xdd,0x2d, 0xcb,0x96,0x6b,0xb1, + 0x02,0x4a,0x90,0xe2, 0x62,0x40,0x19,0x8c, 0x6c,0x4a,0x14,0x78, 0x26,0x77,0x9c,0x38, + 0x84,0x38,0x8d,0x37, 0xba,0x75,0x05,0x9c, 0x60,0x31,0x24,0x16, 0xb6,0x5b,0x09,0x8e, + 0xee,0x65,0x18,0x9a, 0x8a,0x4d,0x35,0x4d, 0x76,0x8e,0xf7,0x08, 0x58,0x76,0xc2,0xa0, + 0xa0,0xeb,0x16,0x55, 0x66,0x5e,0x54,0xda, 0xe6,0x71,0x9c,0x32, 0x09,0xd4,0xed,0xa0, + 0x5d,0x96,0x1b,0xd6, 0x42,0xd6,0x08,0xd4, 0xab,0x18,0x16,0xd8, 0x2b,0x4a,0xb0,0xc1, + 0xd6,0x5c,0xa3,0x94, 0xa9,0x51,0x53,0x2c, 0xab,0x19,0xca,0x56, 0xb8,0xe9,0xb0,0xb5, + 0xb0,0xdd,0x29,0x7b, 0xc4,0x71,0x9c,0xa7, 0x18,0x42,0x2c,0x31, 0x02,0x2a,0x75,0x12, + 0x2c,0x6a,0x34,0x4e, 0x73,0x32,0xe9,0x99, 0x94,0xc0,0xe3,0x0a, 0xaa,0x0e,0x52,0xdb, + 0x14,0x76,0xbd,0xa5, 0x29,0x99,0x36,0xe8, 0xb8,0xf3,0x6e,0x88, 0x61,0x82,0xe1,0x9b, + 0xa3,0x35,0x11,0xcb, 0x79,0x66,0x09,0x8c, 0x2d,0x35,0x9a,0xf3, 0x96,0xda,0xf2,0x91, + 0x62,0xc2,0x4c,0xca, 0x49,0x18,0xb1,0x09, 0x8c,0x16,0x42,0x89, 0x05,0x20,0x0c,0x63, + 0xb6,0x41,0xdc,0x31, 0x15,0x36,0xc5,0x94, 0x7b,0xce,0xaf,0x38, 0xaf,0x53,0x5b,0x86, + 0xee,0xe2,0xdb,0x74, 0xee,0x08,0xb8,0xa3, 0x05,0x82,0xb6,0x0a, 0x21,0x66,0x2d,0xc8, + 0x9e,0x60,0xde,0x24, 0x06,0xd2,0x41,0x9a, 0x38,0x9b,0xb1,0x47, 0x03,0x6a,0xb1,0x6c, + 0x21,0x10,0x46,0xe6, 0xb9,0x88,0x35,0xb0, 0x15,0x59,0x16,0xcc, 0x0c,0xcd,0x4d,0xa7, + 0xa3,0x47,0x29,0xaa, 0x5d,0x3a,0x6e,0xa5, 0x82,0x56,0xcc,0x99, 0x57,0x46,0xd2,0x2b, + 0xdb,0x35,0x86,0x26, 0x21,0xcc,0xb9,0xa6, 0x06,0x5a,0xcd,0x72, 0xc7,0x92,0x89,0x8b, + 0x88,0xb3,0x42,0xa2, 0x93,0x0c,0xbb,0x72, 0xca,0xca,0x8a,0xa2, 0xd0,0xa6,0xdd,0x26, + 0x35,0x1d,0x0c,0x5c, 0xb5,0x05,0x8b,0x66, 0x66,0x61,0xa5,0x95, 0x9c,0xb9,0x93,0x44, + 0x11,0x33,0x94,0x72, 0xc5,0x04,0x40,0x52, 0x0a,0x36,0x9b,0x95, 0x49,0x2b,0x51,0x60, + 0xa4,0x11,0xf2,0x4b, 0x19,0xbd,0xcc,0x05, 0x8c,0x62,0x80,0x78, 0xa7,0x8c,0x85,0x82, + 0x42,0x6f,0x39,0xa6, 0xc9,0x22,0xc9,0x05, 0x91,0x18,0x18,0x3e, 0x39,0x75,0x62,0xb2, + 0x42,0xa5,0x56,0x49, 0x36,0x92,0x14,0x80, 0xa1,0x15,0x49,0x8b, 0x05,0x61,0x5c,0x8b, + 0x8b,0x75,0x62,0xd6, 0xb9,0xbc,0x4d,0xe3, 0x63,0x50,0x03,0x44, 0xed,0xe5,0xab,0x44, + 0x3e,0x44,0xae,0xb1, 0x01,0x6a,0x92,0xd7, 0x93,0x77,0x14,0x20, 0xcd,0x15,0x10,0x81, + 0x4b,0x54,0xbc,0xde, 0x4d,0x5c,0x55,0x29, 0xbb,0x98,0xa2,0x56, 0x8b,0x04,0x48,0xa1, + 0x02,0x8c,0x22,0x32, 0x06,0x5b,0x37,0xbc, 0xee,0x77,0xba,0x75, 0x2c,0xaa,0x23,0x21, + 0xe5,0x20,0x4f,0xc7, 0xfb,0xb2,0x4a,0x30, 0x01,0x42,0x29,0x14, 0x41,0x51,0x12,0x0e, + 0x99,0x34,0x34,0x7d, 0x5d,0x3f,0x4d,0xfb, 0xae,0x0f,0x03,0xd0, 0xf0,0xb5,0x0e,0x49, + 0x03,0xf6,0x6b,0xf2, 0x15,0x84,0x23,0x08, 0x46,0x49,0x09,0x18, 0x11,0x25,0x8e,0x72, + 0x1c,0x9f,0x8d,0xc5, 0xcf,0x72,0x37,0x1a, 0x10,0xd9,0xc0,0xc7, 0xb2,0xa5,0x32,0x53, + 0x94,0x88,0x71,0x9b, 0x53,0x7b,0x5a,0xf9, 0xdb,0x6e,0x93,0x25, 0xc1,0x10,0xc3,0x15, + 0x64,0x36,0x74,0xaa, 0x4a,0x84,0xb2,0xa5, 0x15,0x90,0xf7,0x68, 0x57,0x1e,0x7c,0xf5, + 0x89,0xb4,0x5c,0x95, 0xb7,0x72,0x18,0xe1, 0x86,0x59,0xe9,0xfc, 0x26,0x18,0xc8,0xa0, + 0x80,0x82,0x87,0x29, 0x46,0x0a,0xb1,0x41, 0xe9,0xd7,0xbd,0x13, 0x2f,0x87,0x13,0x5e, + 0x07,0x88,0xa3,0xa0, 0xe2,0xcc,0xd1,0xb6, 0x61,0xf1,0x1c,0x8c, 0xeb,0x64,0x0c,0x96, + 0x61,0x13,0x57,0x78, 0x97,0xf5,0x7f,0xd8, 0x2e,0x7e,0x8a,0xcb, 0xde,0x94,0x53,0xb5, + 0x0e,0xe9,0xce,0xa8, 0x27,0x4a,0x63,0x16, 0x67,0x57,0xef,0x38, 0x1f,0x93,0xf7,0x13, + 0x68,0x44,0x8b,0x1f, 0xcd,0x4c,0xff,0x8e, 0xb9,0xf7,0x43,0xd3, 0xcc,0x29,0x91,0x9f, + 0xcb,0x43,0xeb,0x10, 0x08,0xf3,0xcb,0x78, 0x6f,0x7a,0x5c,0x8a, 0x3e,0xf6,0xfc,0x1f, + 0x2f,0xb3,0x46,0x1e, 0x2d,0x41,0x8f,0x42, 0xb6,0xf2,0xca,0x9f, 0x97,0x69,0xeb,0xd4, + 0xc2,0x3f,0xa1,0xb3, 0xe8,0x72,0x9e,0x55, 0xf5,0x7b,0x9e,0x5b, 0xc1,0xb8,0xdc,0x14, + 0xa2,0x1f,0x29,0x52, 0x7c,0x24,0xd9,0xc7, 0xec,0x1f,0x6b,0xdf, 0xbc,0x8c,0xf8,0x6e, + 0xbe,0x5d,0x3e,0x57, 0x78,0xf7,0x91,0xa1, 0x07,0xc4,0x17,0x99, 0x04,0x59,0x33,0x7c, + 0x62,0x3d,0x7e,0xd1, 0x1f,0x90,0xfd,0x1d, 0x06,0xbf,0x44,0xc2, 0xdf,0x9c,0x10,0x5e, + 0x49,0xbe,0xf1,0x67, 0x62,0x01,0x6c,0xd0, 0x6f,0x3a,0xa6,0x81, 0x22,0x9b,0xd0,0x81, + 0x6f,0xb9,0x1e,0xc3, 0x1b,0xf2,0xe1,0xe0, 0x11,0xf7,0xf3,0xd6, 0x1d,0x2d,0xef,0x93, + 0x10,0xaa,0x8b,0x18, 0x88,0x28,0x96,0xd1, 0x82,0xb4,0x6a,0xae, 0x6c,0x12,0x8c,0x20, + 0x49,0x29,0x09,0x29, 0x59,0x64,0x0e,0xba, 0x00,0x70,0x79,0xce, 0xc7,0xa0,0xd5,0x6f, + 0xb3,0xf9,0xdf,0x51, 0xba,0xe7,0xed,0xb2, 0xd3,0xeb,0x5e,0xd1, 0x52,0x45,0x65,0xb4, + 0x35,0xb8,0x6a,0x0b, 0x2c,0xc3,0xd9,0x6f, 0x03,0x4a,0x8b,0x1d, 0x63,0x4b,0xc4,0xf5, + 0x14,0x73,0x55,0x98, 0xc7,0xa2,0xa4,0xec, 0x27,0x5b,0x56,0xcc, 0xe7,0x41,0xab,0xe8, + 0x0c,0x4a,0x07,0xba, 0x21,0x1a,0xc8,0x05, 0xba,0x36,0xde,0x4d, 0x97,0xd4,0xbe,0xf8, + 0x2e,0xe7,0xbd,0xf6, 0x14,0xdd,0xbb,0xa6, 0x10,0x80,0xc8,0x86, 0xec,0x24,0x38,0x16, + 0xe6,0x6b,0xb9,0x85, 0xc5,0xaf,0xde,0xfc, 0x9e,0x0b,0xea,0x81, 0xa7,0xbb,0x9d,0x87, + 0x8b,0xb2,0xd7,0x32, 0x7d,0x40,0xcb,0xf2, 0x29,0x2b,0xe1,0xfa, 0x7f,0x8b,0xe3,0x6c, + 0xae,0x72,0xfb,0xb2, 0x86,0x84,0x50,0x35, 0x18,0x75,0xea,0xeb, 0x17,0x9e,0x72,0xd2, + 0xbf,0xa5,0xe3,0x1d, 0xab,0x4b,0x64,0x5d, 0xc8,0xa9,0x1a,0xc0, 0x43,0xed,0x4d,0x91, + 0xa9,0x1f,0x3f,0xf2, 0x90,0xfe,0x7c,0xca, 0x89,0xbe,0x23,0xf7, 0x23,0xcc,0x4b,0xf1, + 0xe4,0xdb,0x1c,0xff, 0xd5,0x5b,0x1d,0x35, 0x5b,0x17,0x27,0x17, 0x93,0xc4,0x19,0x8f, + 0xcb,0x81,0x48,0xf9, 0xe6,0x62,0x1b,0xf1, 0xc1,0xfe,0xac,0x86, 0xef,0x44,0xd6,0xf2, + 0xed,0x58,0xfd,0x13, 0x43,0xf9,0x14,0x96, 0x8a,0x3f,0x21,0x95, 0x14,0x0e,0xed,0xf0, + 0xdc,0x55,0x05,0x0f, 0x36,0x54,0x5a,0xdf, 0x0b,0x90,0x4c,0x6a, 0x39,0x2a,0x5c,0xa1, + 0x91,0x1e,0xf7,0x73, 0xff,0x3f,0x6c,0x37, 0x78,0x6c,0xe3,0x3f, 0x49,0x78,0xd3,0x4d, + 0x2b,0x6e,0x60,0x54, 0x44,0x97,0xed,0x73, 0x48,0xa6,0xa3,0x95, 0xbd,0x7e,0xcc,0x0f, + 0xcf,0xd5,0x3e,0xed, 0xef,0x09,0xf6,0xb6, 0x07,0x9b,0xfb,0x7b, 0x3d,0x93,0x9e,0xf6, + 0x1c,0xe2,0xf8,0xdb, 0x15,0x05,0x50,0x79, 0xd4,0x21,0xe3,0x9b, 0x1a,0xb4,0xdb,0x5b, + 0x7e,0xa9,0xed,0xc1, 0xb7,0xa6,0x15,0xbd, 0xda,0x40,0x06,0xe8, 0x28,0x1b,0xd8,0xbf, + 0xcd,0x1f,0xe5,0x06, 0x45,0x90,0x33,0x69, 0xaf,0x82,0x46,0x95, 0x99,0x4f,0x4a,0x13, + 0xe8,0x99,0x2f,0x1b, 0x0d,0xce,0x7e,0x5b, 0x71,0xd5,0xe8,0x18, 0xc8,0x60,0x70,0x68, + 0x4c,0xe5,0x33,0x11, 0x78,0x97,0x7c,0x1d, 0x93,0x50,0xd3,0xb6, 0x07,0x4d,0x81,0xa3, + 0x2a,0xdb,0x83,0xb4, 0x0b,0x83,0xc8,0x66, 0xcd,0x8d,0x33,0x69, 0x11,0x35,0x90,0x05, + 0x05,0x9e,0x38,0x50, 0x21,0xb5,0xb0,0x2b, 0x03,0xc2,0x5c,0xa0, 0x12,0xc8,0x15,0xc3, + 0x0a,0x83,0x09,0x05, 0x63,0xcf,0x19,0x8c, 0x1e,0x20,0x71,0x93, 0x05,0x07,0x29,0x38, + 0x84,0x50,0xe3,0x27, 0xdc,0x12,0x3c,0xaa, 0x48,0x71,0x0c,0x65, 0xd6,0xc1,0x49,0x39, + 0x12,0x6a,0x07,0x17, 0x35,0xc0,0xa2,0x16, 0x66,0x15,0x45,0x32, 0xda,0xd3,0x4c,0xc6, + 0x15,0x01,0x13,0x52, 0x56,0x2c,0x82,0xc0, 0x0d,0x42,0x56,0x11, 0x60,0x11,0x64,0x0d, + 0x42,0x88,0x00,0x73, 0x73,0x02,0xc5,0x82, 0xa2,0x93,0x8c,0x98, 0x95,0x81,0x0a,0xad, + 0x8c,0x0a,0x22,0x90, 0xc6,0x4b,0x2f,0x69, 0x91,0x58,0x12,0xf2, 0xb7,0xe1,0x70,0x25, + 0x2e,0xba,0xaa,0xd8, 0x9b,0x78,0x09,0x84, 0x10,0x2e,0x82,0xe5, 0x44,0x13,0x94,0x81, + 0x1e,0x69,0xce,0xc4, 0x81,0x61,0x34,0x90, 0xc4,0x22,0xc8,0x4c, 0x41,0x14,0x91,0x8a, + 0xc1,0x58,0xaa,0x11, 0x4f,0x34,0x81,0xa9, 0x09,0x30,0x64,0x52, 0x12,0x28,0x2c,0x20, + 0x32,0x22,0x11,0x24, 0x84,0x60,0xe2,0x5e, 0x3b,0x4d,0x40,0x36, 0x10,0x38,0xb8,0x1c, + 0x76,0xde,0x86,0xd3, 0xbc,0x81,0x02,0xfb, 0xfc,0x1f,0x81,0x7e, 0x69,0xa5,0x06,0x0a, + 0x7c,0x1f,0x24,0xdc, 0x4d,0x1a,0xb8,0xd2, 0xa2,0x08,0xbb,0xb9, 0x69,0x6d,0xb8,0x16, + 0x1f,0x44,0x2a,0x7e, 0x09,0xe5,0xf7,0xdd, 0xf6,0xe6,0x3b,0xd2, 0x8b,0x54,0x4c,0xa5, + 0x1e,0x70,0xf2,0x36, 0x6c,0xbb,0x7e,0x98, 0x8e,0xca,0xc5,0x50, 0x70,0xc3,0x0c,0x60, + 0x1f,0x0d,0x23,0x3a, 0xe7,0x1c,0xca,0x02, 0x05,0x04,0x0c,0x5d, 0xa1,0x53,0x3d,0xed, + 0xe5,0xfc,0x3f,0xe5, 0xb9,0xd6,0x67,0xc2, 0x6c,0xf8,0x06,0xf5, 0x7e,0x7f,0xc0,0xa5, + 0xea,0xb1,0x82,0x17, 0xd7,0x21,0x7e,0x92, 0x1f,0x2c,0xe6,0x40, 0x6d,0xac,0x9a,0xbf, + 0x81,0x37,0xbc,0x8b, 0x16,0x08,0x84,0xc4, 0x48,0xd5,0x27,0x83, 0xc6,0xd5,0x3d,0x3d, + 0xf6,0x60,0x39,0x6b, 0x58,0x37,0x93,0xf5, 0x48,0x67,0x4f,0x96, 0xde,0x4a,0xc3,0xb3, + 0x9a,0xd2,0x0c,0x08, 0x8b,0xa1,0x42,0xd8, 0x5f,0xfe,0xe6,0xda, 0x0d,0xa0,0x73,0xdd, + 0x36,0x3a,0xcb,0x6a, 0xaa,0x1a,0xdc,0x7f, 0x0e,0x66,0x06,0x5d, 0xc9,0xb2,0x98,0xa2, + 0x39,0xb0,0x34,0x98, 0xe8,0x65,0x44,0xc9, 0x24,0x2f,0xa5,0xb9, 0x5f,0x5b,0xcf,0xe9, + 0xae,0xd7,0x98,0x38, 0x88,0x42,0x26,0x6e, 0x6d,0xc9,0x29,0x9e, 0x4d,0x6e,0xee,0x2d, + 0xb4,0x14,0x10,0x0c, 0xc1,0x34,0x2d,0x6d, 0x9f,0x0d,0xc8,0x23, 0x76,0x72,0x1b,0x0c, + 0x49,0xb2,0x31,0xad, 0xa8,0xa8,0xed,0xf4, 0xcd,0x40,0x0c,0x62, 0x15,0xa8,0xbe,0xfb, + 0xe1,0xbe,0xbf,0x39, 0xc5,0xe7,0x70,0xad, 0xc0,0xb8,0x43,0x18, 0x99,0x42,0xda,0x54, + 0xa6,0xd2,0xe5,0x05, 0xe7,0x93,0x51,0x46, 0xf8,0xda,0x4a,0x36, 0x86,0xd3,0x3c,0x91, + 0xce,0x55,0x33,0x34, 0x5c,0xf2,0xb0,0x17, 0x3a,0x70,0x42,0x17, 0x05,0x05,0x90,0x63, + 0x07,0xcc,0xed,0xf0, 0x8b,0x51,0xab,0x3e, 0x19,0xd5,0xcb,0xb7, 0x0e,0x9a,0xad,0x22, + 0xdf,0x32,0x10,0x0e, 0x44,0xd2,0x64,0x97, 0xd5,0x2c,0x3f,0x3e, 0xc3,0xa4,0xa0,0x0f, + 0x05,0x80,0x47,0xea, 0x2b,0x17,0x04,0x8b, 0x65,0x11,0x0d,0x42, 0x19,0x0c,0x82,0x69, + 0x97,0x20,0x5b,0xf6, 0x0f,0xfb,0x8d,0xb8, 0xaf,0xec,0x4f,0xec, 0xac,0x83,0x12,0x45, + 0xd5,0x5d,0x11,0x5c, 0xd0,0x26,0x15,0xde, 0x40,0x81,0x99,0x10, 0x4f,0xd7,0xe2,0x4e, + 0x68,0x82,0x1f,0xc4, 0x3b,0xbb,0x4c,0x14, 0xc7,0xb9,0x61,0xe0, 0x8e,0xc7,0xf6,0xc4, + 0x6b,0xf2,0x50,0x1f, 0x86,0x6d,0x74,0x92, 0x29,0x7d,0xb3,0xf0, 0xfd,0x09,0xbf,0xcf, + 0x2c,0x3e,0xd9,0x03, 0xe2,0x3f,0x9e,0x40, 0xe3,0x80,0xbe,0x91, 0x1f,0x70,0xb7,0x06, + 0x45,0xa4,0xa9,0xe3, 0xf4,0xb1,0x43,0x3f, 0x81,0xf4,0xeb,0xf7, 0x70,0x60,0xb1,0x60, + 0xdb,0x58,0xf1,0x44, 0x4a,0x7e,0x2d,0xc8, 0x11,0x43,0x2a,0x25, 0x54,0x5b,0xaa,0xd8, + 0x53,0x05,0x82,0xc1, 0x4f,0x94,0x63,0x05, 0x5b,0x6e,0x66,0xdf, 0x3b,0x3d,0xb4,0xbd, + 0xb0,0x5d,0x96,0xe2, 0x4c,0x78,0xc5,0xd1, 0x23,0x07,0xd8,0x4d, 0x10,0xf1,0xa6,0x45, + 0x72,0x4b,0x0a,0x89, 0x9c,0xb5,0x9a,0xd6, 0x5e,0xd9,0x8a,0xe7, 0x27,0x37,0x4b,0x12, + 0xda,0x4b,0xcd,0x95, 0x93,0x36,0xdf,0x04, 0x6a,0x7d,0x5c,0x89, 0xa5,0x45,0x16,0x22, + 0xa8,0xb3,0x85,0xba, 0xc2,0xfa,0xa5,0x4c, 0xa6,0xbf,0x02,0x71, 0x9b,0x3f,0xcc,0x3c, + 0xfd,0x9b,0xcd,0xb4, 0x5f,0x7d,0xe8,0x99, 0x0f,0x04,0xe0,0x70, 0xee,0xd4,0x41,0x1f, + 0xaa,0x44,0x89,0xc1, 0xf9,0x46,0x40,0xfd, 0xd2,0x3d,0xa7,0xf6, 0x93,0x42,0x43,0x15, + 0x40,0xb9,0x1b,0xa9, 0x65,0xe5,0xef,0x86, 0x61,0xf6,0x2c,0xa6, 0x7e,0xb5,0x93,0x8d, + 0x98,0x75,0x20,0x76, 0x21,0x92,0x2a,0x8e, 0x9d,0x24,0xe4,0x24, 0x10,0x59,0x89,0xfe, + 0xc3,0xdb,0x2a,0x6f, 0x69,0xf9,0x08,0xd9, 0xd0,0xe9,0xd2,0x95, 0x50,0x77,0xb0,0xdf, + 0x7b,0xd3,0x7a,0x70, 0x86,0xf7,0x73,0x36, 0xdc,0xd0,0xe8,0x24, 0xd2,0xb8,0xa8,0x77, + 0x10,0x40,0xce,0xc9, 0x8d,0x0d,0x2b,0xe9, 0xdd,0x6e,0x79,0x7c, 0x1a,0x68,0x33,0xd3, + 0x3c,0xc0,0x72,0x50, 0x26,0xb2,0xc9,0x5f, 0x12,0x24,0x57,0x0f, 0x52,0x05,0x29,0xe9, + 0x0c,0x87,0x3c,0xca, 0x3a,0x90,0xa0,0xa9, 0x70,0x5c,0x87,0x5d, 0xff,0xac,0xdf,0xc3, + 0xb1,0x31,0xd6,0x9f, 0x63,0xed,0xfd,0x94, 0x9c,0x6e,0x29,0xd9, 0x40,0x04,0x02,0x49, + 0xde,0xd1,0x14,0x34, 0x00,0x05,0xd1,0x88, 0x92,0x21,0x69,0x21, 0xd6,0xc4,0x04,0x42, + 0xb3,0xde,0xc4,0x3e, 0xcc,0x40,0x06,0x45, 0x46,0x10,0x50,0xed, 0xe0,0x22,0xa1,0x48, + 0x00,0xa5,0xe9,0x10, 0xfb,0x50,0x54,0x5a, 0xc5,0x50,0x90,0x01, 0x5a,0xae,0xce,0x28, + 0x73,0x31,0x04,0x35, 0xf0,0x20,0x67,0xc7, 0x9e,0xe5,0xa0,0xc7, 0xe2,0x1f,0x16,0x8e, + 0xcd,0x0e,0xed,0xe4, 0xaa,0xac,0xdb,0x54, 0xe4,0xa6,0x64,0xcf, 0x8d,0x75,0x11,0x31, + 0xfb,0x0d,0xb9,0x16, 0x7c,0x81,0x11,0xbf, 0x3f,0x64,0xdd,0xcc, 0x85,0x4f,0x26,0x1e, + 0x68,0xcf,0x91,0x6e, 0x9f,0x32,0x87,0xd8, 0xb2,0xcd,0x5f,0x35, 0xf8,0xf6,0xfb,0x3e, + 0xab,0x9c,0x09,0xf4, 0x0c,0x87,0xab,0x00, 0xe7,0x56,0x7b,0xc0, 0x7d,0xbe,0xf7,0x8b, + 0xa1,0xaf,0xd4,0xc9, 0xe1,0xce,0xff,0x49, 0x7a,0xcc,0xec,0x4a, 0xb8,0xd4,0x48,0x86, + 0xaf,0x07,0xb4,0xdc, 0x48,0x9a,0x67,0x8b, 0x77,0xc3,0x35,0x2f, 0x24,0x60,0x81,0xa8, + 0x25,0xd7,0x1a,0xe2, 0x8c,0xee,0xae,0xb5, 0x6a,0x34,0x01,0x5d, 0x42,0x71,0x18,0x18, + 0xda,0x1f,0x67,0x3a, 0xdd,0x75,0x42,0x67, 0x1b,0x33,0x3b,0xcd, 0xde,0xec,0x8d,0x33, + 0xa3,0x1b,0x01,0xa1, 0x10,0x30,0xd4,0xdf, 0x8c,0xaa,0x7d,0xe0, 0x5b,0xd3,0xfc,0x5f, + 0x6f,0x86,0x26,0x2f, 0x7d,0xf2,0xdf,0x70, 0xda,0x7c,0x63,0xed, 0x99,0x9f,0x58,0x7d, + 0x96,0x7a,0xbd,0x75, 0xe5,0x39,0xcc,0x30, 0x3e,0x57,0xbb,0x45, 0x3d,0x7f,0x27,0x99, + 0x27,0x55,0x0f,0xa1, 0x49,0xef,0x59,0xe8, 0x45,0xcc,0xbf,0x8c, 0xfd,0x7b,0x81,0x22, + 0x00,0xfc,0x62,0x35, 0x37,0x39,0xca,0xb9, 0x69,0xf9,0xf5,0xa5, 0x15,0x5d,0x7e,0x2f, + 0x84,0xcf,0xfc,0x22, 0x17,0x9a,0xf2,0xfd, 0x5c,0x00,0xf5,0x43, 0x31,0xf4,0x94,0x03, + 0xf9,0x24,0x23,0xda, 0x69,0xbe,0x31,0xf8, 0x3f,0x37,0x4f,0x74, 0x54,0x11,0x4c,0x22, + 0x0d,0x4b,0x90,0xcf, 0xfc,0xd1,0x46,0xae, 0xf0,0x48,0x10,0x2e, 0x91,0xe2,0x7b,0xae, + 0xc6,0xd8,0xf3,0xd5, 0x53,0x1d,0x43,0x52, 0x0a,0xe6,0xc6,0xcd, 0x6f,0x46,0x02,0x64, + 0x40,0xa0,0xc9,0x34, 0xaa,0xd2,0xed,0xc5, 0x9a,0xe5,0xae,0xa6, 0x5d,0xcb,0x3a,0x34, + 0x8b,0xc0,0x82,0x2a, 0x1e,0xd3,0x4e,0x26, 0xdb,0x13,0x45,0x1a, 0x45,0xdb,0xb9,0xbf, + 0xee,0x66,0x72,0x74, 0x88,0xc3,0x95,0xb6, 0xd3,0x32,0x74,0x71, 0xd3,0x5d,0x44,0xdb, + 0x91,0x49,0x48,0x06, 0x02,0x40,0xc7,0x9e, 0x1f,0x7b,0x75,0x54, 0x2f,0x1d,0xfa,0xf3, + 0xfa,0xec,0xb9,0xe0, 0x29,0x82,0xd4,0xf6, 0x94,0xe4,0xdf,0x0e, 0xce,0x41,0x85,0xf2, + 0x35,0x90,0x0f,0x59, 0xff,0x7c,0xe2,0x01, 0xe0,0xa1,0xc8,0xb0, 0x73,0x6a,0xdd,0xbf, + 0x22,0x03,0x7e,0xd0, 0xbf,0x64,0x3f,0x93, 0x2e,0x5b,0x22,0x5b, 0x3d,0xae,0xeb,0x81, + 0x09,0x24,0x57,0x5d, 0x6f,0x56,0x02,0x52, 0x6d,0xe5,0x38,0xa9, 0x93,0x97,0x35,0xb0, + 0x90,0x37,0x85,0x2a, 0x24,0x9b,0xe6,0x7a, 0xbc,0xc7,0x9e,0x56, 0x23,0xf1,0x72,0xf2, + 0x81,0x03,0x15,0xab, 0xb7,0xf6,0x07,0xe8, 0xfe,0x7a,0x61,0xc8, 0xb3,0xd9,0xc1,0xdf, + 0xc0,0x38,0x71,0x3d, 0x14,0x1f,0xbf,0x00, 0xea,0x22,0x76,0xb3, 0x1f,0xca,0x40,0x28, + 0x40,0x90,0x0e,0xae, 0x0a,0x2b,0xd4,0xc4, 0x57,0x90,0x82,0x16, 0x64,0x80,0x6f,0x22, + 0x20,0x0e,0xb2,0xaf, 0xf5,0x86,0x8c,0x3a, 0x4d,0x6e,0xb4,0xb6, 0x8a,0x43,0xcb,0xc8, + 0x3b,0x38,0x20,0xc8, 0x3f,0xd7,0x3e,0xf9, 0xfa,0x59,0xc5,0x29, 0x55,0x30,0x54,0x7a, + 0x51,0xd8,0x82,0x4c, 0x1a,0x96,0x67,0x6a, 0x69,0x7c,0xe8,0x54, 0xb6,0xac,0x3f,0x29, + 0x2a,0x1b,0xad,0xfd, 0x6b,0x38,0xd4,0x29, 0xc7,0x4e,0x99,0xdb, 0x33,0x4e,0xfc,0xe9, + 0xfb,0xa6,0xc0,0xf0, 0xc9,0xb7,0x82,0x12, 0x45,0x09,0xec,0xa1, 0xaf,0xb3,0xf3,0x30, + 0x31,0x8e,0x58,0xfd, 0x05,0x0a,0x12,0x04, 0x90,0x85,0x71,0xd0, 0xdb,0x4c,0xc8,0xf8, + 0x39,0x29,0xb1,0x32, 0xf0,0x10,0xf4,0xdf, 0x1c,0xb6,0x48,0x8e, 0x9f,0x25,0x67,0xa9, + 0xa1,0x88,0x24,0x16, 0x10,0xfa,0xda,0x1e, 0x6c,0x09,0x82,0x7c, 0xd5,0x27,0xbc,0x66, + 0xdb,0xbe,0xbc,0x33, 0x4d,0x0c,0xc3,0x65, 0x02,0x8a,0xd4,0xf6, 0xd9,0x3c,0x46,0x84, + 0xdd,0x81,0x16,0x18, 0x94,0x19,0x15,0x50, 0x40,0x59,0x11,0x02, 0x5f,0x5b,0x38,0x09, + 0x8c,0xa0,0x49,0x0c, 0x79,0x9c,0x26,0xcc, 0x38,0x4e,0x77,0xfc, 0x9e,0xd7,0x03,0xf5, + 0x44,0x77,0x3d,0x32, 0xc7,0xb1,0x5a,0x4c, 0x21,0xdd,0xd1,0xc0, 0xc8,0x11,0x9c,0xe5, + 0x3c,0xc4,0xe1,0x24, 0x41,0x81,0x01,0xe0, 0x1d,0x2a,0x9a,0xf0, 0xf4,0x9b,0x5d,0x47, + 0x15,0x8d,0x63,0x40, 0x99,0xc4,0xf3,0x01, 0xe4,0x9b,0x14,0x6e, 0x89,0x68,0x9e,0x01, + 0xb2,0xb3,0x8c,0x5c, 0x5a,0x68,0x40,0x22, 0xb0,0xa9,0x2a,0x87, 0x31,0x30,0xe5,0xd8, + 0x4c,0x4d,0xe0,0x8f, 0x73,0xc1,0xde,0xfe, 0x2f,0x2f,0x87,0x83, 0x82,0x9c,0x90,0x4a, + 0x15,0xa8,0xbe,0x25, 0x81,0xd4,0x14,0x64, 0x56,0xa1,0x4c,0xd6, 0xe9,0xa7,0xa2,0x2e, + 0xa6,0xa9,0x63,0xe8, 0x4f,0x32,0x83,0x60, 0x92,0xfb,0x4a,0xcf, 0x1a,0xe3,0xfb,0x47, + 0x53,0x38,0x5f,0x3f, 0x47,0xd6,0xf8,0x9b, 0xfb,0x2f,0xbc,0x28, 0xd3,0x5f,0x65,0xc3, + 0x9a,0x8d,0x2e,0x9f, 0xbf,0x11,0x0d,0x04, 0x6d,0x24,0xdd,0xc8, 0xf0,0x54,0x99,0x1f, + 0x06,0x9c,0xe2,0xe3, 0x7d,0xb3,0xdc,0x97, 0x64,0xbb,0xbf,0x24, 0xc7,0xc2,0xd1,0x62, + 0xc5,0x26,0x5a,0x17, 0xc3,0xe7,0xad,0xd3, 0xbe,0xe7,0x39,0x4d, 0x65,0x39,0x7e,0x19, + 0x2b,0xdf,0xf2,0xf3, 0x3a,0xd8,0x4e,0x32, 0xbd,0x72,0xe0,0x2c, 0xf8,0xb5,0xec,0x5a, + 0x7a,0x21,0x29,0xe7, 0x4e,0xf8,0x58,0x22, 0x8c,0xd7,0xce,0xd0, 0x67,0x3e,0x37,0x2d, + 0x26,0xb3,0xf4,0x4f, 0xf8,0x5e,0x5c,0x61, 0xc9,0xd1,0xe4,0xc0, 0x20,0xb1,0x2c,0x0c, + 0xfd,0xce,0x3d,0x48, 0xf7,0x7b,0x47,0xd7, 0xc1,0x35,0xf7,0x8a, 0x7e,0x67,0xec,0x9e, + 0xe4,0xd2,0xb3,0xad, 0xc3,0xfa,0x90,0xd3, 0xfe,0x0a,0x91,0xfc, 0xec,0xaf,0x7f,0xe7, + 0xb9,0xfd,0x87,0x11, 0x7c,0xdc,0xa1,0x9b, 0xdd,0x22,0x18,0x30, 0xb1,0x0c,0xda,0x42, + 0x06,0x6b,0x22,0xc1, 0x99,0xa6,0x6e,0x58, 0x75,0x43,0xff,0x07, 0x9c,0x65,0x1f,0x7f, + 0xc7,0x33,0x19,0x44, 0xf7,0x8d,0x93,0x2d, 0xc0,0x7f,0x3b,0x31, 0xda,0xf5,0x76,0x9a, + 0x70,0x89,0x1b,0x10, 0x2e,0xc3,0x53,0xa9, 0x97,0x7d,0x22,0x72, 0x62,0xbf,0x67,0x29, + 0x4b,0x8f,0xbd,0xfc, 0x50,0x58,0xbd,0x3f, 0xb1,0xfd,0x1c,0x2b, 0x7a,0x7c,0x7d,0x00, + 0x0c,0x57,0x0f,0x73, 0x55,0x12,0xa6,0x3a, 0x16,0x92,0x3b,0xf8, 0xe9,0xb4,0x29,0x34, + 0xc7,0x95,0x9e,0xf2, 0xbe,0xbb,0x5d,0xcb, 0x69,0xf2,0x6f,0x03, 0x63,0xae,0xe7,0xb2, + 0x2b,0xb3,0x80,0x19, 0x93,0x2f,0x69,0x43, 0x3b,0x18,0xa5,0x12, 0x83,0x09,0x04,0xb5, + 0x01,0x47,0xc9,0x62, 0xa6,0xb2,0x32,0x25, 0x39,0xaa,0x01,0xb0, 0x90,0xe1,0x17,0xf8, + 0x5e,0x4d,0x64,0x34, 0xc0,0xfb,0x98,0x60, 0xe3,0xf2,0x1f,0xc1, 0xe7,0x61,0xb2,0x7e, + 0x1b,0x0e,0x56,0x1f, 0xaf,0xa6,0x95,0x9c, 0x9a,0xa6,0x58,0x2c, 0xf0,0x67,0x47,0xf1, + 0x53,0xf1,0x19,0xb3, 0xa6,0x15,0x13,0x73, 0xd5,0xae,0x05,0x77, 0x7f,0x03,0xf6,0x7e, + 0xdd,0x7c,0x50,0xed, 0xd6,0x83,0xcf,0x45, 0xc0,0xb1,0xb2,0xaf, 0x76,0x8f,0x33,0x05, + 0xfc,0xb3,0x40,0xbd, 0xa5,0xf2,0x70,0x94, 0xd6,0xab,0x6c,0xf8, 0xa2,0xb3,0x57,0xc9, + 0xad,0xf9,0x21,0x2d, 0x14,0xe4,0x53,0x16, 0x2a,0xc0,0x27,0x1e, 0x17,0xbe,0x55,0x0e, + 0xe5,0xe6,0x4f,0x06, 0x16,0x82,0x86,0x07, 0xc4,0xb3,0xcd,0x0e, 0x81,0xd5,0x57,0xa5, + 0x14,0xaa,0x0a,0x31, 0x4b,0x72,0xe2,0x28, 0xcd,0x6e,0xdb,0xe4, 0x72,0x69,0xf8,0x2a, + 0xb7,0xff,0x5f,0x8b, 0xf8,0x6f,0xae,0xc4, 0x0b,0xe4,0xdf,0x88, 0xed,0x27,0xc8,0xbe, + 0x60,0x97,0xd7,0x63, 0x56,0x3a,0x08,0x47, 0x35,0x39,0x5a,0x49, 0x44,0x4d,0xf5,0x94, + 0x40,0xfc,0xc4,0xc8, 0xbe,0x31,0x93,0xd2, 0x42,0x6e,0xb8,0xa1, 0xa4,0xe2,0x52,0x2c, + 0xd7,0xa0,0x91,0x3f, 0xbb,0x98,0x94,0xa2, 0x50,0x58,0x8f,0x7e, 0x63,0xb5,0xbc,0xa6, + 0xd0,0xc0,0xc8,0xd1, 0xef,0x6a,0xe8,0x2c, 0xbd,0x0c,0xb9,0xd9, 0x85,0xe1,0x35,0x95, + 0xc2,0xb6,0x56,0x15, 0x2a,0x2a,0xbd,0x28, 0x62,0x38,0x4b,0x0a, 0xaf,0x4b,0x72,0xdd, + 0xb0,0x2e,0x05,0x96, 0xbd,0x1a,0xe1,0x4a, 0xbd,0x0c,0xfc,0xdf, 0xcd,0x79,0xcd,0xcd, + 0xc7,0x9b,0xd3,0xf4, 0x9c,0x73,0x37,0x36, 0x13,0x96,0x8e,0xf6, 0xab,0x16,0x1c,0x52, + 0xac,0x51,0x46,0x0a, 0xa8,0xa8,0x5b,0x66, 0x85,0x6d,0xe5,0xb6, 0xed,0x29,0x02,0x40, + 0x20,0xfd,0x0f,0xe7, 0x7b,0x62,0x00,0xd2, 0xd4,0x71,0x6d,0x79, 0x45,0x06,0x61,0x53, + 0xad,0x53,0xa2,0x48, 0x22,0x4a,0x45,0x1c, 0xb0,0xb5,0x5b,0x11, 0xa9,0xf1,0x6e,0x67, + 0xad,0x2f,0x91,0xf3, 0x59,0x3d,0x5b,0x75, 0x14,0x0a,0xfe,0x69, 0x83,0x39,0x0f,0xc5, + 0x56,0x34,0x28,0x4b, 0x37,0x93,0xce,0x72, 0x33,0xe2,0x9e,0x70, 0x2a,0x1c,0x51,0xd3, + 0x8a,0x94,0x47,0xed, 0x77,0x77,0x66,0x2c, 0x8c,0x41,0x60,0xb2, 0x3a,0xf8,0xfe,0x15, + 0xc9,0xa1,0x7b,0x24, 0xaa,0x82,0x85,0x4c, 0x43,0xd1,0x31,0x86, 0x22,0xd8,0xe8,0xe9, + 0xdf,0x26,0x26,0xa8, 0x6b,0xc1,0xef,0xe7, 0xc7,0xe7,0x73,0xc3, 0x01,0x79,0x4e,0x37, + 0xa6,0x4c,0xcc,0xc2, 0xc1,0x5a,0xf5,0xb1, 0x37,0x70,0xe0,0xeb, 0xa9,0xf1,0xba,0x8a, + 0x79,0x9f,0x3f,0xfe, 0x2a,0x70,0x3c,0x01, 0x40,0xa3,0x04,0xe8, 0xe2,0x00,0x07,0x19, + 0x00,0x6b,0x15,0x40, 0x23,0xdd,0x0a,0x92, 0x12,0x09,0x22,0x82, 0x8c,0x23,0x22,0xa1, + 0x81,0x03,0xcf,0xc0, 0x61,0xe0,0x86,0x04, 0xb7,0x2f,0x9a,0xfc, 0xfb,0x21,0x21,0xc4, + 0xfe,0x35,0x6d,0xf4, 0x29,0xe8,0x62,0xc8, 0x60,0x91,0x0e,0xde, 0x30,0x32,0x76,0x94, + 0x83,0xbd,0x85,0x6b, 0xf6,0xa8,0xd2,0xa7, 0xa5,0x65,0x65,0x29, 0x9a,0x50,0x39,0xf8, + 0xcf,0x4a,0xe2,0x22, 0x44,0xd7,0xd5,0xd4, 0xd0,0xb5,0x87,0xc9, 0xf9,0x1d,0x10,0xb0, + 0xad,0xe9,0xa8,0xd4, 0xc5,0xb1,0x1c,0x46, 0x63,0xe4,0x6f,0x6d, 0x5e,0x73,0x90,0x77, + 0x9c,0x30,0xa9,0x4e, 0x50,0xbb,0xbb,0x14, 0x0b,0x91,0x45,0x2b, 0x99,0xcd,0xa5,0xee, + 0x79,0xed,0x50,0x5d, 0x1e,0x3d,0x20,0x69, 0x80,0xa9,0x3a,0x51, 0x4d,0xd3,0x56,0x97, + 0x37,0xfc,0x7c,0xd2, 0x0e,0xc7,0xe3,0xfe, 0x1f,0x6e,0x9c,0xee, 0x54,0x38,0x14,0x5c, + 0x12,0x29,0x44,0xe2, 0x0c,0xc4,0xf4,0x5f, 0x97,0xb8,0x88,0x44, 0x49,0x3a,0x87,0xb0, + 0xe0,0xaa,0x45,0x83, 0x14,0x56,0x04,0x49, 0x74,0x35,0xe8,0x73, 0x42,0xaf,0x22,0x22, + 0xfc,0xf6,0x1c,0x71, 0xd1,0xf2,0x18,0x38, 0xab,0xa1,0x6b,0xe4, 0xc4,0xb6,0xcc,0xc0, + 0x80,0x0f,0xc8,0xce, 0x20,0x98,0x02,0x81, 0x3b,0x30,0xac,0x58, 0x2a,0xe3,0x58,0x2c, + 0x2d,0x95,0x7c,0x1b, 0x1c,0xa7,0x6e,0xdd, 0xb8,0xd4,0x3f,0xbb, 0xef,0xf9,0x5d,0x20, + 0x69,0x22,0x30,0x5c, 0xee,0x7d,0x4c,0xb0, 0xec,0x71,0x7e,0x20, 0xf2,0x23,0x99,0x05, + 0xf5,0x0f,0x62,0x87, 0xeb,0xe9,0x1a,0xe7, 0xad,0x79,0xc9,0x2f, 0x3b,0x38,0xe7,0x59, + 0xba,0x8b,0xf5,0xcb, 0xa5,0xf7,0x19,0x1e, 0x59,0x65,0x2c,0x27, 0x41,0x3c,0x04,0x96, + 0x06,0x0b,0x07,0xd6, 0x5c,0x74,0xca,0xd3, 0x11,0x35,0x7e,0x99, 0x9b,0xda,0x32,0x61, + 0x52,0xc0,0x0c,0xd3, 0xdd,0xe0,0x82,0xa1, 0x07,0xb4,0x56,0x76, 0x84,0x10,0xc9,0xc8, + 0x32,0x56,0xab,0xf0, 0xfa,0x1c,0x80,0x19, 0xd1,0x31,0x87,0xc2, 0x76,0xb6,0x5b,0x82, + 0xc4,0x96,0xc6,0xc5, 0x0e,0x4a,0x4e,0xdf, 0x08,0x94,0x8b,0x90, 0x14,0x8a,0x62,0x1f, + 0x4b,0x73,0x08,0x11, 0xdb,0x5a,0x78,0xa6, 0x34,0xea,0x65,0xce, 0x57,0x3f,0x93,0x4f, + 0x4b,0xae,0x7a,0xf2, 0xb7,0x53,0x90,0x58, 0x81,0x42,0x85,0x41, 0x17,0xf6,0x0d,0xdc, + 0xb4,0x88,0xaa,0x16, 0x89,0x7b,0x2c,0x39, 0xc5,0xd7,0x81,0xd6, 0xb7,0x1d,0xa4,0x8e, + 0xd0,0xe2,0x91,0x5c, 0x85,0xd9,0x0f,0x07, 0xbc,0xe4,0xeb,0xf2, 0xb7,0xf1,0x97,0x82, + 0x39,0x1e,0x7e,0x5f, 0xba,0x5c,0xf7,0xe3, 0x2c,0xe8,0x63,0x41, 0xde,0x4b,0xdb,0xe4, + 0x3c,0xcd,0x31,0x22, 0x6f,0x64,0xf5,0x77, 0x9f,0x62,0xc0,0x90, 0x7b,0x1b,0x79,0x8b, + 0x51,0xda,0x97,0xac, 0x9d,0x49,0x34,0x77, 0xbd,0xf1,0x16,0xfa, 0x19,0x26,0xc9,0xad, + 0x6f,0x3c,0xb3,0xa6, 0x37,0x9e,0x1b,0x4b, 0x29,0x53,0x38,0x8a, 0xeb,0x7c,0xb7,0xbe, + 0x55,0xaa,0x7c,0x5f, 0x06,0x78,0x80,0xa6, 0xfb,0x69,0x21,0x0f, 0xa6,0xb7,0xc4,0xa7, + 0xa6,0x86,0xfe,0x5a, 0x67,0x8a,0x48,0x7b, 0xa9,0x95,0x82,0x5a, 0xd4,0xd0,0x50,0xe3, + 0x39,0x62,0x22,0x41, 0x49,0x21,0xe0,0xa5, 0x30,0x9e,0x45,0x88, 0x3e,0x78,0x43,0x58, + 0x93,0x95,0x3c,0x93, 0xac,0x85,0x26,0xcf, 0x94,0x3c,0x8b,0x61, 0x78,0xb5,0x84,0xa7, + 0x9a,0x42,0xaa,0xf2, 0x10,0xe4,0x8c,0x8e, 0x21,0xa4,0xe1,0xf1, 0xcd,0xe9,0x3b,0xd2, + 0xf2,0x81,0x92,0x27, 0x04,0x5e,0x0a,0x65, 0x45,0x7a,0x4c,0x4a, 0x0c,0xa5,0x4a,0x4a, + 0x49,0x08,0xaf,0xac, 0xfd,0xd2,0xa0,0x4e, 0x1d,0x9e,0x60,0x84, 0x19,0x85,0x94,0x73, + 0xa3,0x9b,0x54,0x2f, 0xb1,0x74,0xcd,0x92, 0x06,0xdb,0xeb,0xd7, 0xa8,0x78,0xc0,0x60, + 0xed,0x61,0xaf,0xaf, 0x9f,0x26,0x3d,0x04, 0x18,0xfd,0xe3,0xb7, 0x12,0xf3,0xdd,0xae, + 0x52,0xa9,0x3d,0x28, 0x35,0xad,0xf1,0x6d, 0xf2,0x71,0xb6,0x31, 0x89,0x8b,0x02,0xf4, + 0xd1,0xea,0xda,0x0a, 0xe3,0x06,0xb5,0x75, 0x60,0xbd,0x5a,0xf4, 0x05,0xea,0x37,0xd4, + 0xe8,0xb4,0x8e,0x75, 0x73,0x51,0xdd,0x60, 0xb5,0xb3,0xb6,0xa4, 0x6c,0x5e,0x31,0x38, + 0x64,0x8f,0x89,0x8f, 0x17,0xe9,0x64,0x14, 0xed,0xae,0x2f,0x1a, 0x99,0x97,0x61,0x10, + 0x3d,0x79,0x0c,0x8d, 0xfd,0x70,0x40,0xa8, 0x94,0x64,0x39,0x68, 0x2d,0x1b,0x6f,0x0f, + 0x2f,0x5c,0xf7,0xdc, 0xe6,0x44,0xba,0xe9, 0xae,0xc2,0xcc,0xf6, 0x5b,0x12,0x62,0xcc, + 0xa8,0x3d,0xab,0x78, 0x69,0x0e,0x53,0xc5, 0xb8,0x6f,0x3d,0x74, 0xd7,0xde,0x5b,0x14, + 0x3a,0xc2,0xf8,0xb8, 0x47,0x05,0x43,0xb7, 0xda,0x2e,0x66,0xd2, 0x4b,0x0a,0x5b,0x1c, + 0x67,0x37,0x8d,0xf4, 0x6c,0x9a,0x64,0x37, 0x66,0x3c,0x38,0xfa, 0xba,0x33,0xa6,0x63, + 0xb8,0x31,0x23,0xbe, 0xef,0xb5,0xb9,0x9b, 0xe3,0x56,0x98,0xeb, 0x16,0x2a,0x60,0x80, + 0xed,0xb5,0x17,0x5e, 0x2d,0xcc,0xe4,0x62, 0xc2,0x6c,0x9b,0xf8, 0x1c,0x66,0xb6,0xad, + 0xaa,0x79,0xf1,0xe1, 0xed,0xe3,0xc7,0x77, 0x81,0x9c,0xf6,0x2e, 0x05,0xcb,0x09,0x69, + 0x48,0x79,0x68,0x1a, 0x86,0x08,0x93,0x6d, 0x9b,0xed,0xe6,0x06, 0x8c,0x86,0xe7,0xaf, + 0xb7,0x4e,0x27,0x32, 0xc0,0x03,0xd1,0x00, 0xbd,0x90,0xa4,0x60, 0xb0,0x18,0x21,0x10, + 0x93,0x76,0x9b,0xda, 0xc1,0x88,0xa3,0xbf, 0x08,0x41,0x76,0x1a, 0x08,0xac,0x41,0x22, + 0x23,0xc2,0xea,0x24, 0x24,0x4c,0xcc,0xfb, 0x1b,0x70,0xa7,0x26, 0x08,0x68,0x6b,0x39, + 0xfc,0x0a,0x5e,0x52, 0x65,0xe6,0x47,0x93, 0x9a,0xfb,0xb1,0xef, 0x9c,0x9d,0x97,0xa0, + 0x3e,0xfe,0x64,0x46, 0x7d,0xdd,0xf9,0x6b, 0xca,0xd4,0x94,0xef, 0xf0,0x29,0xe2,0x31, + 0x6e,0x30,0x92,0x4e, 0x36,0x4a,0x36,0xa6, 0xb5,0x9c,0x4a,0xad, 0x59,0xbd,0x0c,0x72, + 0xcc,0x80,0x59,0xae, 0x58,0x24,0x80,0x29, 0x98,0x14,0x88,0x44, 0x92,0xf4,0xf3,0x9f, + 0xb1,0x6b,0xcf,0xa5, 0xa7,0x67,0x83,0xef, 0xdb,0x5d,0xef,0xe5, 0x0b,0x2b,0xce,0xfd, + 0x75,0x88,0xd2,0x7a, 0x6d,0x31,0xde,0xf2, 0xe7,0x3c,0x73,0x8a, 0x1f,0x29,0x4b,0xd1, + 0x48,0xc2,0xcf,0x69, 0xcb,0x2c,0x20,0x88, 0x72,0x88,0x4e,0x1d, 0x02,0xe4,0xa2,0x09, + 0x2d,0x1a,0xeb,0x07, 0xed,0xf7,0xcb,0xcf, 0x53,0x6b,0xa6,0x95, 0x46,0x40,0xc7,0xe8, + 0xb6,0xcf,0x19,0xa5, 0x5e,0xec,0xc4,0xb9, 0x99,0x94,0x4d,0x20, 0x15,0x88,0x05,0x89, + 0x76,0x28,0x2a,0x2b, 0xdc,0xa2,0x17,0xd9, 0xb5,0xeb,0x59,0xe3, 0xf0,0xad,0xab,0x94, + 0x39,0x4a,0xe4,0x14, 0x09,0x93,0x46,0x62, 0xc2,0xdd,0x73,0xa9, 0xb1,0xaa,0x87,0x7d, + 0xdb,0x99,0x4a,0x77, 0x09,0xe9,0xba,0x8c, 0x3e,0x13,0x62,0x7c, 0x26,0xa4,0x4e,0x3d, + 0x4c,0xc6,0xd5,0x5f, 0x27,0x30,0xda,0x55, 0x79,0x8d,0x53,0xea, 0xbe,0x0f,0x16,0xd6, + 0x38,0xfc,0x45,0x0a, 0xc4,0xf1,0x86,0x36, 0xc1,0x76,0x64,0xe8, 0x55,0x44,0x99,0x22, + 0x08,0x60,0x1d,0xc4, 0xdc,0x01,0x21,0xeb, 0xeb,0x4f,0x69,0x90, 0x1e,0x9e,0xcd,0xf9, + 0x47,0x4b,0x8a,0x10, 0x5c,0xe5,0xfc,0x4f, 0x30,0xf4,0x97,0x1b, 0x94,0x35,0xe4,0x99, + 0x87,0x6f,0x4d,0xfe, 0x23,0xb2,0x56,0x45, 0x3b,0xf1,0xd7,0x5b, 0x3f,0x6b,0xbb,0x27, + 0xdf,0x66,0x8d,0xe2, 0xe1,0xf2,0x22,0x85, 0x1e,0x5a,0xa8,0xb5, 0x28,0x82,0x62,0x0b, + 0x10,0x34,0x2d,0x5e, 0x2a,0x5e,0x72,0x06, 0xe4,0xf8,0xbc,0x81, 0xf5,0x4a,0x19,0xab, + 0xd7,0xc1,0xbc,0xab, 0x86,0x1e,0x4e,0xe0, 0xbb,0xa0,0xa0,0x7a, 0x38,0x3d,0x86,0xd2, + 0x81,0xcd,0xee,0x37, 0x15,0x7b,0xa8,0x9d, 0x04,0x3b,0x18,0x76, 0x31,0xec,0xb8,0x61, + 0x40,0x8a,0xfc,0x88, 0x8e,0xda,0x28,0x95, 0xd4,0x51,0x0a,0x1d, 0x66,0x5d,0x33,0xd4, + 0x35,0x5a,0xb1,0xa0, 0xea,0x23,0xf8,0x5f, 0x1e,0x5f,0x47,0xe5, 0xfb,0x87,0xd2,0xf8, + 0xbe,0x36,0x2e,0xc0, 0xe0,0xfc,0xa0,0xe9, 0xb3,0x60,0x52,0xf8, 0x48,0x1e,0xf2,0x3e, + 0x54,0xf4,0x0e,0xc8, 0x9c,0x64,0xf9,0xc0, 0x94,0xa5,0xf4,0xa2, 0x70,0x8d,0xf7,0xf8, + 0x4d,0x2b,0xbc,0xee, 0x05,0x5b,0x87,0x67, 0x6e,0x27,0xf2,0xb0, 0x33,0xc6,0x3e,0x6b, + 0xd6,0xf8,0x01,0xa0, 0xa7,0x18,0xaf,0xc1, 0xcb,0x60,0x07,0x07, 0x1a,0xaa,0x91,0xb6, + 0x4f,0x27,0x41,0xbe, 0x61,0xe4,0x69,0xa5, 0xdc,0x8c,0xb8,0xf2, 0x89,0xd9,0x6b,0x55, + 0xb5,0x1e,0x53,0x0e, 0x34,0x1b,0x61,0x34, 0x0b,0x1c,0x10,0x1e, 0xa6,0xe6,0xba,0x21, + 0xb2,0x7f,0x97,0xf3, 0x77,0x7e,0x54,0x6b, 0x5e,0xf9,0x28,0xe9, 0xdf,0xc6,0x35,0xfb, + 0xdd,0xab,0x7d,0x7b, 0x6f,0xec,0x8a,0xcb, 0xc7,0x4d,0x5e,0x24, 0xb5,0xb7,0xd5,0xc4, + 0xf5,0x9f,0xd3,0x7b, 0xde,0x14,0x6e,0x20, 0x46,0xf4,0x70,0x70, 0x85,0x3c,0x75,0x9f, + 0x3a,0x63,0x4b,0xd7, 0x18,0xe1,0x2b,0x57, 0x21,0x59,0x5b,0xbb, 0xda,0x52,0xba,0x53, + 0x10,0xaa,0xc2,0xd5, 0x81,0x04,0x75,0x13, 0xed,0xca,0x3e,0xaf, 0x6f,0xa9,0x9d,0x31, + 0x32,0xb0,0x9f,0x77, 0x4d,0xcf,0xb3,0xf2, 0xcb,0x13,0x80,0x66, 0x2b,0xaf,0xa4,0x50, + 0xe7,0x49,0x17,0xc8, 0xb8,0x2d,0xcc,0x8b, 0x1c,0x48,0x6f,0x44, 0x41,0x6e,0x9b,0xe6, + 0x7a,0xae,0xaf,0x3f, 0x28,0x91,0x37,0x11, 0x13,0x05,0xcf,0x35, 0x6e,0x46,0xbd,0x1b, + 0x52,0x05,0xf2,0x42, 0x4c,0xbe,0x89,0x4f, 0x1d,0x4a,0x82,0x23, 0x1e,0x5d,0x33,0x6b, + 0x64,0x4f,0xb3,0xae, 0xe6,0x89,0xa4,0xf4, 0xca,0x44,0x8f,0x66, 0x43,0xcd,0x26,0x7d, + 0xaa,0xc2,0xac,0x11, 0xdd,0x08,0x58,0xa5, 0x54,0xaa,0xc6,0x69, 0x5f,0x87,0x21,0x77, + 0x6f,0x1c,0xa7,0xc1, 0xf2,0x1e,0x1c,0x7b, 0x0c,0xfa,0x76,0x35, 0x87,0xf1,0x1e,0xd8, + 0x82,0x66,0xb3,0xe7, 0x15,0x06,0x35,0xd3, 0xb7,0x83,0xb3,0x46, 0xec,0xde,0xac,0x9f, + 0xf0,0x7d,0xb3,0x26, 0x43,0xc1,0x94,0x6a, 0x56,0x22,0x51,0x5b, 0xf6,0xf7,0xfb,0xf8, + 0x6c,0x8c,0x7a,0xb2, 0xa5,0xb5,0x55,0xde, 0xb1,0x50,0x6d,0x6d, 0x63,0xab,0xb4,0xf0, + 0xd4,0xf8,0x7a,0x7a, 0x57,0x6f,0x1f,0x1e, 0xbc,0x0d,0x28,0x74, 0x8a,0x65,0xa3,0x1b, + 0xe5,0x4c,0x53,0x2f, 0xdb,0xce,0x68,0xd3, 0x3c,0x33,0xc8,0x9e, 0xce,0x99,0x3c,0x53, + 0xe3,0xe1,0xe2,0x67, 0x44,0x83,0xf4,0x77, 0x31,0x4e,0xbc,0x56, 0x42,0xd7,0x3a,0x62, + 0x05,0x13,0x21,0x82, 0x2d,0xa6,0x61,0x04, 0x50,0x3e,0x7f,0x52, 0x43,0x3b,0x64,0x32, + 0x8c,0x00,0x8c,0x67, 0xdd,0xf3,0x13,0x35, 0x7a,0x6d,0x23,0xef, 0x2a,0xb9,0x73,0x7e, + 0x24,0xd9,0xd6,0xc3, 0xb4,0x71,0xba,0x20, 0xb0,0xf3,0x06,0xa5, 0xb9,0x8a,0x6a,0x55, + 0x29,0x87,0x82,0x6c, 0x98,0xa4,0x4d,0xfb, 0x27,0x07,0x7a,0x0b, 0x4e,0x55,0xce,0x8e, + 0x6c,0x5f,0x88,0x70, 0xeb,0xdc,0x73,0x10, 0x40,0xfa,0xc7,0x63, 0x91,0x03,0x99,0x76, + 0x92,0x03,0x2a,0x0c, 0x47,0x11,0x02,0x4a, 0xaf,0x22,0x44,0xc9, 0x19,0x38,0x97,0x92, + 0x9f,0x7e,0x63,0x88, 0xd8,0x8b,0x93,0x53, 0x81,0xef,0x2c,0x8c, 0x70,0x93,0xf3,0x09, + 0x12,0x48,0xc7,0x48, 0x8b,0x48,0x22,0x3d, 0xd7,0xe6,0x5f,0x7f, 0x4c,0x22,0xfc,0x90, + 0xeb,0xda,0x9e,0xb3, 0xa0,0xa8,0xdb,0x4f, 0x6d,0xe4,0xf4,0xcf, 0x77,0xd6,0xe4,0x4e, + 0x77,0x64,0xee,0x4e, 0xf6,0x1d,0x2c,0x91, 0x69,0x89,0xe8,0xef, 0x64,0x31,0xc5,0xe9, + 0x29,0xfb,0x0b,0x8d, 0x89,0x35,0xf7,0x9f, 0x29,0xed,0x2f,0x04, 0x74,0xd7,0x61,0x2d, + 0xb9,0xe5,0x47,0x4b, 0x5d,0x75,0x3e,0x54, 0xca,0x6f,0xb0,0xdb, 0x96,0x88,0x5b,0x2d, + 0xb9,0x63,0x2f,0x66, 0xf7,0xb6,0xf4,0xc6, 0x88,0x5f,0xd7,0x21, 0x17,0xc7,0xae,0x9a, + 0xe6,0x33,0x1e,0xce, 0xdd,0x2f,0xca,0xeb, 0x9d,0x15,0xd5,0xee, 0xc9,0x87,0x63,0xce, + 0x7a,0xe5,0xe2,0xf9, 0x13,0xbf,0xb3,0x5a, 0xf8,0xdb,0xb6,0x5e, 0x86,0xe0,0xfb,0x2a, + 0xb9,0xe9,0xe5,0x5f, 0x2f,0x19,0x8e,0x5d, 0x0f,0x41,0xb6,0xb6, 0xe7,0x9b,0xec,0xb9, + 0x83,0xb6,0x6f,0x6d, 0x7a,0x79,0x69,0x2b, 0x57,0x4b,0x97,0xf1, 0x87,0x15,0x96,0xe6, + 0x76,0xab,0x8a,0x13, 0x29,0x60,0x55,0x86, 0x76,0x9b,0xb4,0x94, 0x45,0x1f,0x66,0xa9, + 0xe0,0x4a,0x74,0x34, 0xed,0x49,0x0b,0x23, 0x1e,0xa7,0xb5,0x97, 0x3c,0xbb,0x5a,0xf2, + 0x19,0x11,0xdf,0xa5, 0xa7,0x08,0x1c,0x81, 0x1a,0xa6,0x87,0xbb, 0xb1,0x1a,0x19,0x11, + 0x00,0x92,0x15,0x3b, 0x74,0x91,0x79,0xda, 0x23,0xd7,0xa3,0xb5, 0x0a,0x35,0x21,0x11, + 0x9e,0x06,0x13,0x87, 0x52,0x76,0xd7,0x38, 0xbc,0x3e,0x3d,0xd2, 0x2a,0x45,0x12,0xf3, + 0xbd,0x78,0xf2,0x2d, 0x0c,0xe4,0x8c,0x51, 0x74,0xca,0x0a,0xb1, 0x3a,0xb4,0xd1,0x73, + 0xe5,0x75,0xe5,0xb5, 0x7b,0x52,0x9e,0xbd, 0xb3,0x74,0x5e,0x51, 0xbb,0x65,0x55,0xe2, + 0xbc,0xfd,0x1e,0xd4, 0xde,0x19,0xcc,0xf8, 0xf5,0x2c,0xa2,0x42, 0x1c,0x4e,0x97,0xde, + 0x33,0xdc,0xae,0x89, 0x1a,0x02,0xe0,0x1e, 0xa9,0x01,0xaf,0xb3, 0x29,0x6e,0x4c,0x84, + 0xc9,0xb2,0xa8,0x48, 0x30,0xc8,0x88,0x23, 0x3f,0x15,0x7a,0x02, 0xda,0x96,0x08,0xcc, + 0x7a,0x24,0xc5,0x25, 0xf6,0xfc,0xee,0xe7, 0x17,0x93,0x8d,0xdb, 0x6d,0xe8,0x99,0xee, + 0x3c,0x57,0x7d,0x7b, 0x73,0xe0,0xf5,0x20, 0x62,0xe8,0x66,0xae, 0x35,0x18,0xd7,0xb4, + 0xf9,0x2f,0x95,0x53, 0x75,0xed,0x9c,0xf0, 0xb7,0x52,0xf5,0x44, 0xe7,0x30,0x6c,0x9b, + 0xf0,0x1a,0xd7,0x6d, 0x83,0xdc,0xde,0xe6, 0xb1,0xf8,0xdd,0x6f, 0xac,0x32,0x75,0x68, + 0xa2,0x31,0xca,0xeb, 0xa2,0xe1,0xe2,0x98, 0xe0,0x5d,0x4d,0xe3, 0x74,0xcf,0x56,0xfa, + 0x2e,0xa5,0xf0,0xaf, 0x87,0x5b,0xab,0x1f, 0x70,0x98,0xc7,0x84, 0x00,0x86,0xd5,0x2e, + 0x25,0x53,0x25,0x55, 0x5a,0xd3,0x24,0xdd, 0x77,0x10,0x62,0x04, 0x1e,0xf0,0xb9,0xcd, + 0x50,0x5a,0xd0,0x3a, 0xbc,0xfc,0xb6,0x0d, 0xa3,0xca,0x6c,0x29, 0x88,0xae,0xf5,0xb5, + 0x54,0x6d,0x2f,0x56, 0x63,0xae,0x50,0xc7, 0x38,0xe3,0x45,0x94, 0x52,0xca,0x14,0xb5, + 0x88,0xaa,0x3c,0xb9, 0x9c,0xe7,0xb2,0x87, 0x13,0x5d,0x93,0xbf, 0x1e,0x5e,0x1c,0x71, + 0xb8,0xd6,0xd6,0x88, 0xd8,0x82,0x70,0xd6, 0x56,0xbf,0x4c,0xcc, 0x2b,0x7d,0x3b,0x6e, + 0x7d,0xf1,0x86,0x9f, 0xb5,0xeb,0xc1,0xac, 0x89,0x59,0xf6,0x7c, 0x6e,0x45,0x91,0x59, + 0xf6,0xfc,0xa8,0x62, 0xaa,0x9b,0x89,0x00, 0x64,0xe1,0x38,0xa0, 0xde,0x04,0x99,0xa5, + 0x21,0xbe,0x36,0x6c, 0x76,0x7a,0xcc,0x5d, 0xaf,0x2a,0x4f,0x1d, 0xc8,0xef,0xe1,0x40, + 0xf0,0x21,0x97,0xbb, 0xef,0xda,0x5b,0x01, 0x3f,0xac,0xc5,0x4e, 0x5d,0xf7,0x1e,0x33, + 0x3c,0x5b,0x15,0x6b, 0x49,0xbe,0xc8,0x9c, 0xd1,0x33,0x09,0x23, 0x00,0x77,0xf1,0x29, + 0x19,0xc9,0x6d,0xd5, 0xee,0x3d,0xb1,0xee, 0xf5,0xfa,0x95,0xe4, 0x03,0x8b,0x89,0xbe, + 0x8d,0xde,0xd2,0xef, 0xdb,0xb8,0x56,0x3e, 0x38,0x0a,0x1a,0x7d, 0x91,0xad,0x8b,0x31, + 0x2e,0x19,0x80,0x53, 0x16,0x95,0x55,0xb6, 0xc5,0x2a,0x57,0xc1, 0xc4,0x47,0x1a,0x94, + 0xaf,0xbf,0x31,0x93, 0xea,0x6c,0x5e,0x87, 0xbf,0xd7,0xbe,0x6a, 0x74,0x5e,0x4a,0x89, + 0x39,0xe9,0x02,0x0c, 0x04,0x48,0x86,0x75, 0xee,0xf7,0xef,0x2c, 0x84,0xea,0xd3,0xdd, + 0x07,0x31,0x59,0x12, 0xd3,0x30,0xc2,0x08, 0xf5,0xf7,0xc0,0x83, 0x2f,0x77,0x3c,0x19, + 0x34,0x2f,0x76,0x12, 0xc1,0x0d,0x7d,0xfb, 0x21,0x81,0xc3,0x56, 0x31,0x12,0x28,0x7d, + 0xef,0xbb,0x8c,0x3d, 0x77,0xe9,0x32,0x00, 0x56,0x29,0xe1,0xc7, 0xd7,0xd7,0x6f,0x5d, + 0xb8,0xe7,0x9a,0x30, 0x26,0xc8,0x6d,0x85, 0xec,0x3a,0x77,0x30, 0xea,0xaa,0x9f,0x27, + 0x6d,0xa5,0x92,0xb6, 0xef,0x12,0xe6,0x60, 0xe4,0x4b,0x2a,0x94, 0x68,0x86,0x0d,0x25, + 0x8a,0xfa,0x65,0x95, 0xc0,0xbb,0x5d,0x81, 0x21,0x61,0x79,0x71, 0x78,0x8c,0xc7,0x44, + 0xde,0x0d,0x25,0x5b, 0x2a,0x4a,0x12,0x50, 0x9b,0x0f,0x39,0x0f, 0x79,0x61,0x90,0xa6, + 0xd5,0xd6,0x22,0xa8, 0xa6,0x39,0xde,0x61, 0xfa,0xdb,0x7b,0x2e, 0x5e,0x5c,0xdb,0x3b, + 0x0b,0x67,0x9c,0x7b, 0xec,0xd8,0x89,0xd7, 0x96,0x5d,0xf8,0xe6, 0x3c,0x76,0xf6,0xf0, + 0x36,0xe9,0xab,0x9e, 0x74,0xf4,0x69,0xdf, 0x5a,0x63,0x33,0xe0, 0x75,0x5e,0xed,0xb5, + 0xf2,0xdb,0x8c,0xe5, 0x9d,0xf9,0x71,0xdb, 0xc5,0xf9,0xf6,0xf1, 0x6a,0x44,0xde,0x71, + 0x72,0xa4,0x69,0x65, 0xb5,0xa2,0xa2,0x00, 0x97,0x4c,0x39,0x3d, 0xf6,0xe9,0x5a,0x99, + 0x4f,0x1d,0xa4,0x32, 0x32,0x91,0x4e,0x36, 0xca,0x2b,0xac,0x9f, 0x42,0x73,0xc3,0xcf, + 0x3e,0xb4,0xda,0xd8, 0x1d,0x65,0xe5,0x31, 0xad,0xbd,0xce,0x8c, 0x52,0xb3,0xe9,0x7c, + 0xf1,0x6c,0xc5,0xd5, 0xab,0x7c,0xb7,0xa4, 0xa8,0x21,0xd8,0x6b, 0x9c,0x9e,0x01,0xc2, + 0x56,0x26,0xe8,0x2b, 0xa0,0x3a,0x11,0x20, 0x60,0xf4,0x2a,0x91, 0xe2,0x07,0xb4,0xb9, + 0x91,0xf6,0x6c,0x83, 0x83,0x9a,0xea,0xf2, 0xb2,0x62,0x46,0xf5, 0xbc,0x43,0x0b,0x10, + 0x81,0x6d,0x24,0x1d, 0xd2,0x2c,0x86,0x9b, 0x43,0x8b,0x40,0x5b, 0x7c,0x7a,0x4c,0xe8, + 0x70,0x74,0x9b,0xf5, 0x35,0x96,0x75,0x70, 0xe0,0xa3,0x74,0xc1, 0xc3,0xc1,0x6a,0xba, + 0x02,0x25,0x84,0x1e, 0x24,0x82,0xc4,0x10, 0xaa,0xdd,0xee,0x27, 0x7d,0xbc,0x1e,0x13, + 0x8d,0xa0,0x9b,0xad, 0xad,0xb5,0x45,0x1d, 0xfe,0x3b,0x0c,0x4c, 0x4b,0x60,0x6e,0x36, + 0x9a,0x5e,0xdb,0xf4, 0x78,0xd4,0xa6,0xb4, 0x2e,0x62,0xec,0x86, 0x32,0x16,0xa1,0xc5, + 0x8d,0x9c,0xb2,0x2e, 0x60,0x65,0x72,0x98, 0x4d,0x59,0x32,0xb4, 0x53,0x68,0xee,0xdb, + 0x53,0xcf,0xc0,0xf4, 0xe8,0xf8,0x1b,0x37, 0x52,0x06,0x9c,0xa2, 0xf0,0xda,0x12,0x1a, + 0x40,0x04,0x59,0x83, 0x02,0x5a,0x25,0xdb, 0x38,0x12,0xe7,0xe9, 0x4a,0xe7,0xdc,0x9f, + 0x6c,0x31,0x13,0xd3, 0x9e,0xfd,0x46,0xbc, 0xc0,0xdc,0x82,0xdc, 0xc2,0xfd,0xf2,0x41, + 0x87,0x04,0x22,0x58, 0xc2,0x04,0x04,0x1f, 0x8d,0xaf,0x5f,0x3b, 0x0c,0xde,0xcb,0xbd, + 0x59,0x45,0x42,0xb2, 0xb3,0xeb,0xb7,0xb1, 0x79,0x6b,0xa7,0xea, 0x94,0x7d,0x35,0xb4, + 0xca,0x15,0x8a,0xc4, 0x7e,0x18,0x6b,0x26, 0x83,0xe6,0xd1,0x4d, 0x1d,0x47,0x5a,0x2a, + 0x24,0xb7,0xc1,0x18, 0x83,0x34,0x97,0x93, 0x29,0xa9,0xb4,0xdb, 0xca,0x7b,0xea,0x6d, + 0xe9,0xef,0x38,0xd4, 0xd5,0xe8,0xe3,0x5e, 0x67,0x84,0x85,0x1a, 0xa6,0xa0,0xd5,0x6f, + 0x28,0xa1,0xf6,0x75, 0x9c,0x87,0x79,0x38, 0x3e,0xea,0x2b,0xc1, 0xf2,0xab,0x56,0x07, + 0x7c,0xb1,0xdc,0x7b, 0x3b,0xf8,0x35,0xdf, 0x3d,0x08,0xb2,0x09, 0x67,0x2e,0xbc,0xe7, + 0xc1,0xce,0x46,0x68, 0xf1,0x6d,0x67,0xeb, 0xdf,0xcf,0xb4,0xab, 0xde,0x34,0x99,0x8b, + 0x2c,0xb2,0xd4,0xb7, 0xa9,0x54,0xaa,0xf1, 0xbe,0xbd,0xf5,0xe9, 0x1c,0xfb,0x36,0x85, + 0xa2,0x4e,0x3d,0xd4, 0xde,0xc1,0xf2,0xf0, 0x60,0x47,0x4c,0xbb, 0xc4,0xbe,0x37,0xb6, + 0x63,0x11,0xef,0xa0, 0xce,0xa3,0x52,0xfd, 0xe2,0xe6,0xa0,0x63, 0x77,0x74,0x49,0x65, + 0xa5,0x60,0x41,0x97, 0xb5,0xd7,0x43,0x9b, 0xd4,0x8d,0xe2,0x1d, 0x45,0x1c,0x32,0x3a, + 0x90,0x8e,0x2b,0xe3, 0xe3,0xef,0x75,0xba, 0x1c,0x6b,0xdf,0xdf, 0x6e,0x7b,0x9b,0x57, + 0x15,0x4c,0x48,0x8f, 0x08,0xd3,0x13,0x99, 0xee,0x90,0x16,0x2a, 0xb4,0xd1,0x71,0xab, + 0xeb,0x4a,0x9c,0x6d, 0xdd,0x59,0x82,0xa6, 0xf5,0xda,0x79,0xb8, 0x2e,0x09,0x5e,0x9d, + 0xfe,0xa6,0x7d,0xe7, 0x61,0xdf,0x8b,0x31, 0x3c,0x7a,0x13,0xa2, 0x06,0x09,0xa6,0xd6, + 0x6e,0xbb,0xe5,0xfa, 0xea,0x8f,0xd7,0x78, 0x6c,0xeb,0x36,0xed, 0xcf,0x6c,0x96,0x7a, + 0x7b,0x92,0x2c,0x3b, 0x8a,0x8a,0x0b,0xdb, 0x37,0xcd,0x0a,0xc5, 0x51,0xab,0x9d,0xcd, + 0x42,0x77,0x33,0xb1, 0xfb,0x19,0x2d,0x30, 0x09,0x62,0x58,0x39, 0x62,0x42,0x20,0x23, + 0x86,0xbe,0x38,0xed, 0x21,0x4a,0x58,0x54, 0x28,0x95,0x45,0x43, 0x81,0x31,0x2e,0x79, + 0xd8,0x1f,0x5f,0xbb, 0xab,0x98,0x20,0x6b, 0xad,0xe7,0x9b,0x0d, 0xa2,0x1a,0x4f,0x0e, + 0x0b,0x26,0xc9,0xad, 0xbd,0x9c,0xc2,0x85, 0x35,0x57,0xaf,0xbb, 0x50,0x36,0x7c,0x3d, + 0x5b,0x81,0x6d,0x28, 0xd6,0x21,0xc7,0x96, 0x48,0x5b,0xc9,0x09, 0x6d,0x67,0x3c,0xaf, + 0x26,0x78,0x1b,0x0a, 0xba,0xdd,0x1e,0x9b, 0xc1,0x6f,0x6f,0x3e, 0x62,0xde,0x2d,0x93, + 0x3f,0x6c,0x9f,0x5a, 0x2c,0x66,0x1f,0x4c, 0xeb,0x3e,0xaf,0x29, 0x5d,0xec,0x6c,0x38, + 0x92,0xeb,0x48,0x10, 0xf1,0xe5,0xb5,0x3a, 0x76,0x9f,0xb3,0x5a, 0xce,0x77,0xa3,0x68, + 0x7d,0xd1,0xbf,0x98, 0xf4,0xb6,0x5d,0xa5, 0xbf,0x97,0x2e,0x99, 0x75,0xd3,0xa8,0xcf, + 0x6e,0xfc,0x4b,0x24, 0x81,0x1b,0x3b,0xf7, 0x51,0xbc,0x93,0x9b, 0x4d,0x0e,0xa5,0xa3, + 0xa3,0x57,0x21,0x3a, 0x4d,0xa7,0xe6,0x34, 0x1c,0x3d,0x82,0xd1, 0x42,0x81,0x04,0xcf, + 0x5f,0xa7,0xc2,0xd8, 0x79,0x7d,0x9c,0x6d, 0xb6,0xdc,0xe3,0x4f, 0x87,0x21,0x61,0x83, + 0xf2,0x4b,0xde,0xca, 0xf2,0x6c,0x5c,0xe2, 0x85,0x85,0xb1,0x69, 0x68,0xa2,0x8b,0x0e, + 0xd6,0x98,0x92,0xa1, 0xfd,0x62,0x75,0xde, 0x1f,0x07,0x69,0xab, 0xe0,0xf9,0x76,0x2f, + 0xb9,0xf9,0x6d,0x4e, 0xd4,0x40,0x55,0x12, 0x1b,0xad,0x84,0xc0, 0xf0,0x43,0x34,0x10, + 0x3b,0x40,0xeb,0xb5, 0x3d,0x39,0xcf,0xb6, 0xcf,0xec,0xc6,0xba, 0x26,0xff,0x17,0xd4, + 0x04,0xde,0xd6,0x06, 0x98,0xb2,0x10,0x22, 0xbe,0x7c,0x9f,0x7b, 0xbb,0xdf,0xec,0xe2, + 0x7d,0xa9,0xdd,0x89, 0xcd,0x96,0x74,0xa7, 0x5f,0x1b,0xef,0xf7, 0x5f,0x15,0xc2,0x7b, + 0x3c,0x68,0xd6,0x74, 0xcc,0xc0,0x45,0x8a, 0x30,0x9f,0x11,0x0a, 0x19,0x7d,0xd9,0xb6, + 0x59,0xd7,0x6b,0x8c, 0x3c,0x7c,0xee,0x56, 0x01,0x84,0x80,0xa1, 0x5a,0xc4,0x80,0x87, + 0x6d,0x89,0x00,0x54, 0x15,0x05,0x88,0x22, 0x91,0x40,0x0a,0x84, 0x24,0x29,0x46,0x5e, + 0x3a,0x9e,0xff,0x96, 0x45,0x33,0xd9,0xb2, 0x67,0x06,0xaa,0x84, 0x81,0xd0,0x60,0x97, + 0xd3,0xd7,0xf0,0xf3, 0xd1,0xe8,0x9b,0xa7, 0x8e,0x68,0x36,0xba, 0x14,0x7b,0x52,0x25, + 0x24,0x5b,0x72,0x26, 0x45,0x21,0x1a,0x30, 0x9a,0x80,0xf2,0x12, 0x11,0x1a,0xce,0x59, + 0x4d,0x4c,0x53,0x5d, 0xb1,0x7d,0x33,0xe5, 0x95,0xa4,0xd8,0x87, 0x1c,0xa7,0xb6,0x7c, + 0xb0,0x37,0x41,0x41, 0x7d,0x11,0x42,0x42, 0x66,0xf4,0x08,0x8a, 0x43,0x6b,0xb8,0xa6, + 0x75,0x1a,0xe8,0x83, 0xf6,0xdf,0xd7,0x3c, 0x5c,0x57,0x03,0xd1, 0xfa,0x1f,0x2c,0xba, + 0xd3,0x01,0xe9,0xc0, 0xbf,0x2e,0xd9,0xe9, 0x1f,0x07,0x8c,0x9f, 0x8a,0xed,0x7b,0x64, + 0x39,0x0e,0xa0,0xf4, 0x56,0xc2,0xeb,0x5b, 0x3c,0xa9,0x92,0x74, 0x6e,0xd7,0xa3,0xae, + 0xf6,0x2b,0x63,0x3a, 0x84,0x45,0x62,0x8c, 0x5e,0x5e,0x70,0x8c, 0x42,0x15,0x3a,0x42, + 0x73,0x4f,0x6a,0x86, 0x23,0x89,0x21,0x9e, 0x1a,0x56,0x50,0xe1, 0x28,0x67,0x10,0x59, + 0xcd,0x62,0xaf,0x29, 0xf4,0x4b,0x06,0x74, 0xf3,0x95,0x24,0x4c, 0x33,0xb7,0x23,0x40, + 0x7c,0xa4,0xab,0xda, 0x81,0x4e,0x37,0x53, 0xd6,0x65,0xe4,0x4f, 0x2b,0xa0,0x26,0x44, + 0x0e,0x5c,0x78,0xf3, 0xb6,0xc8,0x6f,0x4f, 0x34,0x73,0x13,0x15, 0xf1,0xee,0x97,0x13, + 0xef,0xa7,0xcb,0x72, 0x5d,0x35,0x03,0xaa, 0x45,0x8b,0x24,0x55, 0xd3,0x08,0xb2,0xe5, + 0x25,0x9a,0xdf,0x2d, 0xc3,0x59,0x24,0x05, 0x92,0x54,0x41,0xa4, 0x53,0x34,0x9a,0xac, + 0xda,0x02,0xda,0x08, 0xeb,0xa5,0x08,0x68, 0x59,0x71,0x12,0x01, 0xaa,0xb9,0xa0,0x26, + 0xcc,0x08,0x30,0x86, 0x52,0x42,0xb2,0x49, 0x9d,0x0a,0xb0,0xc4, 0x9b,0x3d,0x1b,0xf3, + 0xce,0xaf,0xd3,0x3a, 0xf1,0x7e,0x5e,0x6f, 0x8d,0x3a,0x9b,0x20, 0xc4,0x48,0x8c,0x64, + 0x8f,0x74,0x0a,0x2e, 0xa6,0x93,0x77,0x1e, 0xee,0x92,0xed,0x05, 0x09,0x03,0x74,0x08, + 0xa4,0x44,0x51,0x49, 0x05,0x0e,0xfd,0xb6, 0x6f,0x5f,0x8f,0x7d, 0xf8,0x49,0xca,0x56, + 0x3e,0xe6,0xbd,0x8b, 0xa1,0xbd,0xbe,0x26, 0x4c,0xfb,0x51,0x82, 0x88,0x76,0x0c,0x4a, + 0x4c,0x0f,0x4c,0x3e, 0xf7,0xe0,0xba,0xd9, 0x42,0x9d,0x78,0xbe, 0x4e,0xb8,0xd5,0xc2, + 0x3b,0xc9,0xde,0xdc, 0x96,0x33,0x8c,0x14, 0xcc,0x13,0xa2,0xd9, 0xee,0xdb,0xe8,0xed, + 0xbd,0xb3,0x87,0x5c, 0x5b,0xa2,0xdf,0x4e, 0xc0,0xf8,0xe1,0x6c, 0x30,0x4d,0xeb,0xf6, + 0x2e,0x7b,0xed,0xdf, 0x14,0x0d,0x49,0x1e, 0x45,0x3f,0x8c,0x46, 0x4f,0xcb,0x4d,0x23, + 0x4b,0x7b,0x66,0xa3, 0x30,0xf3,0xcc,0x53, 0x18,0x39,0x67,0x28, 0x31,0x5a,0xe1,0x5e, + 0xb3,0xb1,0xa5,0x36, 0xc7,0x21,0xa4,0xfd, 0x79,0xf2,0xb9,0x57, 0x7a,0x0d,0x73,0xd5, + 0x71,0xd2,0x52,0x98, 0xcb,0xb3,0x1e,0x7d, 0xbd,0xaf,0x03,0x9b, 0x41,0x75,0x98,0x29, + 0x00,0x41,0xf5,0x39, 0x70,0xb7,0x90,0xd6, 0x42,0x1d,0x58,0x53, 0xe0,0x90,0x91,0x7b, + 0x2c,0x8b,0x7c,0x15, 0x59,0x51,0x32,0xd5, 0x32,0x35,0x2f,0x8b, 0x58,0x9b,0xed,0x8b, + 0x27,0x4d,0x50,0xcf, 0x04,0x2c,0xc6,0x43, 0xe3,0xda,0xc9,0x8a, 0x8e,0xbe,0xe5,0x8c, + 0x92,0xfd,0x34,0x67, 0x76,0x69,0xcb,0x69, 0x31,0x24,0x0e,0x1e, 0x79,0xed,0xba,0xf1, + 0x4f,0xaf,0xcd,0x38, 0xd3,0x00,0xeb,0x86, 0x32,0x6e,0xea,0xef, 0xbd,0x93,0x67,0x42, + 0x4a,0xc3,0x69,0xb4, 0xe7,0xdd,0x7a,0x1b, 0x70,0xac,0x4f,0x6e, 0xde,0xbe,0x1a,0xf2, + 0x48,0x7e,0x9b,0xd0, 0x20,0x34,0x21,0x81, 0x20,0x5a,0x69,0xc9, 0xf5,0x4e,0x40,0x8c, + 0x49,0xed,0x8c,0x39, 0xf2,0x4f,0x44,0x08, 0xba,0x43,0x47,0x5e, 0xd2,0x55,0x57,0xcd, + 0x2e,0x4a,0x34,0x2c, 0x4b,0x2b,0xec,0x61, 0xa9,0xba,0x3d,0xcf, 0x5e,0xef,0xc1,0xb8, + 0xb8,0x22,0x59,0xcb, 0x79,0xce,0xd6,0x55, 0x33,0x63,0x24,0xf3, 0x1e,0x48,0x72,0x97, + 0x3c,0x56,0x8f,0x0e, 0x76,0x58,0x22,0x4a, 0x97,0x73,0xd6,0x59, 0x57,0x13,0xdb,0x94, + 0xb6,0xf3,0x97,0xa4, 0xd7,0x1b,0xbe,0xd3, 0xbb,0xeb,0xb6,0x25, 0xcb,0x6e,0x33,0x11, + 0x85,0x98,0xa3,0x3d, 0xeb,0xc6,0x9c,0x36, 0x44,0x3f,0x41,0x1f, 0x03,0xbb,0xf7,0x32, + 0x25,0xec,0x53,0x87, 0xf2,0x9b,0xbc,0x11, 0x91,0xeb,0x9a,0x04, 0xb1,0x04,0x90,0x24, + 0x5b,0xaf,0x2a,0x3f, 0x1d,0x33,0x8a,0x99, 0x33,0x34,0x0c,0x32, 0x66,0x2c,0x22,0x06, + 0x7e,0x4e,0xe1,0xb7, 0x22,0x5b,0xe8,0x9e, 0xba,0xd8,0x94,0xec, 0x46,0x85,0x08,0xc7, + 0x3e,0x52,0x69,0x39, 0xdb,0xbe,0x0a,0x88, 0x74,0x4e,0x7d,0x28, 0x68,0x5c,0x9d,0xbe, + 0x1d,0x30,0xae,0x84, 0xbb,0xef,0xd3,0x51, 0x74,0x44,0xa8,0xb4, 0xd8,0xf2,0xa6,0x4d, + 0x30,0x46,0x30,0xd1, 0xe3,0x66,0x03,0x17, 0x7f,0x4b,0xd5,0xe3, 0x6b,0xf2,0xc1,0x4e, + 0x2e,0xe2,0x65,0xea, 0x87,0x2a,0x44,0x9d, 0xdd,0xe0,0x50,0x24, 0xbc,0x5d,0xc4,0x0a, + 0xa6,0x55,0xae,0xe6, 0xf6,0xd2,0x9a,0x50, 0x6d,0xab,0x63,0x4b, 0x13,0x2e,0xce,0xa5, + 0xcc,0x8e,0x4b,0x48, 0x81,0x8e,0x9d,0x10, 0xef,0xd5,0xc8,0xbb, 0x18,0x87,0x94,0x84, + 0xb2,0x0e,0x10,0x53, 0x12,0x64,0xe7,0x39, 0xe9,0x2f,0x3d,0x67, 0x4f,0x93,0x92,0x91, + 0xa3,0x1a,0x05,0xe0, 0x39,0xea,0x3c,0x84, 0xae,0x2d,0x40,0x84, 0x2a,0xc5,0x27,0x12, + 0x88,0xb9,0xc7,0xda, 0xcd,0xc3,0xac,0x99, 0x00,0xc6,0x23,0xb7, 0xde,0x7a,0x33,0x9c, + 0x26,0xa3,0x13,0x26, 0x18,0xce,0x50,0xe7, 0x6a,0x69,0x9d,0x52, 0x75,0xe0,0xaa,0x89, + 0x4e,0xbd,0x8e,0xba, 0xf3,0xb9,0xdf,0xbf, 0x4e,0xbd,0x99,0xcb, 0xfc,0xaf,0xad,0x9a, + 0x7f,0x0b,0x9e,0x33, 0x4e,0xac,0xa2,0x22, 0x08,0xb6,0xd5,0x14, 0xe3,0x33,0x98,0x44, + 0x13,0x1c,0xf0,0xcd, 0x16,0xe7,0x28,0xce, 0x1c,0x02,0xc4,0x07, 0x20,0x20,0x5b,0x65, + 0x6b,0x47,0x42,0xc2, 0xd3,0x54,0x05,0xa6, 0x59,0x85,0x64,0xb7, 0xaa,0x16,0x2c,0x79, + 0x14,0x01,0x92,0xa9, 0x60,0xe0,0xb1,0x36, 0x36,0x9e,0x9b,0xc0, 0x90,0xe0,0x5f,0xaf, + 0x02,0xe2,0x79,0x51, 0x6b,0x21,0x74,0xbb, 0x6b,0x43,0x02,0x70, 0x6d,0x39,0x4c,0x19, + 0x9a,0x4e,0x1b,0x68, 0x0f,0xb1,0x39,0xae, 0x25,0x7d,0xeb,0xdb, 0x16,0xb8,0x2c,0xd4, + 0x3e,0xd7,0x5c,0xfb, 0xa0,0xc3,0x2f,0x9a, 0xec,0x10,0x1c,0xcc, 0x24,0xb9,0x3f,0x2d, + 0xed,0x89,0xb7,0x1e, 0x68,0x4c,0x85,0xd7, 0xd0,0xe3,0xc5,0xba, 0xdb,0xdf,0x5f,0x2f, + 0x1d,0xc6,0xc6,0xfd, 0x63,0x2d,0x6f,0x3d, 0x55,0x5c,0x85,0x27, 0x71,0x51,0x82,0x9c, + 0xef,0x75,0xdc,0xc4, 0xb9,0x3b,0xbb,0x27, 0x6a,0x8a,0xb1,0x15, 0x4f,0x61,0xa7,0x36, + 0x99,0x11,0x88,0xaa, 0x2a,0xac,0x54,0x11, 0x42,0x86,0xee,0xb4, 0x5d,0x0b,0x6c,0xac, + 0x3e,0xef,0x1f,0x9e, 0x40,0xdd,0x9b,0xa5, 0x78,0xf4,0xf0,0xf4, 0xdf,0xaa,0x10,0x08, + 0x9a,0x2d,0x9d,0x2d, 0x96,0xe6,0xab,0xbe, 0xd8,0xd3,0x2c,0x98, 0xb1,0x39,0x04,0x39, + 0xe4,0xe6,0x71,0x22, 0x77,0x48,0x95,0xe6, 0x26,0x09,0x60,0xe7, 0x22,0x15,0x96,0xed, + 0x9f,0x2a,0xce,0x25, 0x6c,0x56,0x04,0x6b, 0xd7,0x19,0xf9,0xd8, 0x61,0x67,0xab,0xe7, + 0x59,0x84,0x09,0x20, 0x87,0xba,0x0e,0x06, 0x13,0xc7,0xaa,0x25, 0xba,0x19,0x91,0xb4, + 0xad,0x1f,0xcc,0xf0, 0x87,0x82,0xc2,0xfb, 0xa8,0xf7,0xdc,0x00, 0xad,0x37,0x12,0x3b, + 0x73,0xde,0xf7,0x19, 0x5b,0x7b,0x69,0xc6, 0x1e,0x59,0x20,0x38, 0x08,0x40,0x78,0x4d, + 0xc1,0x61,0x95,0x13, 0x4a,0x68,0x1c,0xd3, 0xd9,0x23,0x87,0x2f, 0x5b,0x81,0x17,0x71, + 0xc8,0xd4,0x4d,0x7f, 0xa7,0xee,0xf4,0xd5, 0x50,0xb1,0x13,0x5e, 0x79,0x76,0x26,0x7b, + 0x58,0x59,0x47,0x1f, 0x33,0x2e,0xac,0x97, 0x8c,0x80,0x02,0xa4, 0xc0,0x50,0x32,0x00, + 0x80,0x63,0x00,0x04, 0x83,0xbe,0x88,0x6a, 0xf8,0xcd,0xbe,0xbe, 0xc8,0xec,0x62,0x9a, + 0xb8,0xae,0x38,0x18, 0x40,0x64,0x43,0x8d, 0xe4,0x37,0x3b,0x2a, 0xee,0xc9,0x97,0x29, + 0x99,0xe2,0xb0,0xc9, 0x03,0x2e,0xc1,0x86, 0xd2,0x90,0x85,0x83, 0x33,0xbd,0x41,0x41, + 0xa4,0x64,0x50,0xc0, 0x35,0xc0,0xf6,0x4b, 0xea,0x36,0x8b,0xe1, 0x04,0xf0,0x6a,0xed, + 0x8f,0xa7,0xb1,0xde, 0x56,0x0f,0xbf,0xd6, 0xfa,0xa4,0xdb,0xe2, 0xe3,0x60,0xd8,0x30, + 0x47,0xc5,0xf6,0x8e, 0x7d,0x36,0x71,0x22, 0x67,0xa9,0x04,0xb4, 0x16,0x07,0xb7,0xd7, + 0xdf,0x4a,0x67,0x43, 0xcb,0xa6,0x3e,0xac, 0x2b,0xfd,0x4a,0xb6, 0x61,0x80,0xf3,0x20, + 0x09,0xdf,0x33,0x7b, 0x53,0xee,0xea,0xb3, 0x98,0xde,0x88,0x4a, 0xf6,0x76,0x1b,0xc6, + 0xef,0xe0,0x45,0x65, 0xdf,0x13,0xbe,0x83, 0x21,0xa2,0x70,0xb6, 0x13,0x13,0x60,0x74, + 0x60,0x18,0x42,0x33, 0x55,0x90,0x95,0x93, 0x60,0xac,0x25,0xe0, 0xca,0x88,0x71,0xa1, + 0xa3,0xbe,0xb9,0xea, 0xda,0x02,0x4f,0xdd, 0xec,0xfd,0x30,0x89, 0x38,0x07,0x42,0xc7, + 0x53,0xb7,0x58,0x9f, 0xd6,0x40,0x23,0x23, 0x87,0x70,0xdb,0x96, 0xd0,0xb2,0xb0,0xd9, + 0xfa,0x21,0x04,0x90, 0xe4,0x67,0x4a,0x69, 0xc5,0x74,0x6f,0x29, 0x5a,0x67,0x40,0x41, + 0x64,0x46,0x83,0xec, 0x6b,0x27,0xc2,0x40, 0x16,0x24,0x82,0x46, 0x8c,0x3d,0xb1,0x0a, + 0xeb,0xb3,0x6e,0x10, 0x0d,0x1d,0x09,0x30, 0xb6,0xfb,0x4b,0xbd, 0xc5,0x48,0xe3,0x20, + 0x41,0x92,0x29,0x31, 0x50,0x4b,0xe2,0x92, 0x70,0x4b,0xf3,0x7e, 0x3d,0xdd,0x86,0x5e, + 0x44,0x77,0xac,0x3c, 0xef,0xdb,0xcd,0x47, 0x78,0xc2,0x99,0x1a, 0x40,0xf0,0x7c,0x61, + 0x42,0xe7,0xe9,0xd7, 0xdd,0x83,0xe4,0x6c, 0x47,0xf0,0xd1,0x2f, 0x1e,0x91,0xe5,0xb4, + 0xa4,0x0f,0xa1,0xae, 0x56,0x92,0xf1,0xa0, 0x1d,0x8b,0x33,0x74, 0xe1,0x22,0x18,0x35, + 0x04,0xdc,0x20,0xb3, 0x11,0x46,0x08,0x4f, 0x57,0xe7,0xe5,0xac, 0x45,0x58,0xc6,0x1f, + 0x2f,0x7f,0xc3,0xaf, 0x86,0xc4,0x86,0xe8, 0x87,0x81,0xdf,0xb9, 0xa8,0x28,0x5f,0x32, + 0xfa,0x6b,0xdf,0x87, 0x8f,0x33,0xe8,0x82, 0x8c,0x7e,0x4c,0x0b, 0x10,0x44,0x11,0xdd, + 0x25,0x2f,0x6e,0xb8, 0x4d,0x02,0x9a,0x68, 0x95,0xe1,0x2f,0x62, 0xc3,0xe7,0xb5,0x33, + 0x0f,0x8e,0xa7,0x96, 0x72,0x45,0x28,0xb9, 0xfb,0x15,0x81,0xef, 0x9f,0x8f,0xb7,0xe2, + 0x7a,0x6b,0xca,0xbb, 0xe8,0xf6,0x17,0xeb, 0x98,0xf4,0xb7,0x3e, 0xdd,0xcf,0x94,0xe6, + 0x46,0x46,0xf1,0xe3, 0xdd,0xea,0x42,0xed, 0xa7,0x3a,0x27,0xef, 0xce,0x47,0x8d,0xe5, + 0x2c,0xfd,0x69,0x94, 0x4f,0xb5,0x06,0xa3, 0x39,0x38,0x36,0x33, 0x97,0x49,0x07,0x94, + 0x9f,0xb7,0x58,0x0f, 0x20,0x77,0x94,0x54, 0x76,0xcb,0x8c,0x74, 0x95,0x98,0x4f,0x96, + 0x52,0x69,0x0f,0x27, 0xe3,0xf1,0xa4,0x76, 0x29,0xdb,0x8f,0x7f, 0x79,0x5c,0xcc,0xf8, + 0xf3,0xf7,0x96,0xf3, 0xcb,0x2b,0x52,0xc4, 0x82,0x49,0x07,0x3e, 0x3c,0x2e,0x5e,0xb2, + 0x99,0x9c,0x88,0x08, 0x2e,0xdd,0x5f,0xd3, 0x4d,0xcf,0x5b,0x45, 0x41,0x05,0x47,0xa7, + 0x6c,0x31,0x8b,0xa4, 0xf5,0xf7,0x86,0xb9, 0xd0,0x9f,0x2e,0xfb, 0x6b,0xcf,0xed,0xe7, + 0xe3,0xf5,0x78,0x33, 0x8e,0x95,0x8e,0xbe, 0x8b,0xd8,0x7a,0xac, 0xef,0x1c,0x13,0x68, + 0x6a,0x71,0x3c,0xa3, 0x9f,0x6e,0x3b,0x4b, 0xce,0xd6,0xba,0xd8, 0x6f,0xcb,0x45,0x0d, + 0x97,0xb6,0x7e,0xce, 0x7d,0xa5,0x2a,0x3c, 0x4a,0x2b,0xca,0xbe, 0x5e,0xf9,0x75,0xda, + 0xf5,0x97,0x87,0x19, 0x99,0x7d,0xbc,0x4b, 0x02,0x64,0x5e,0x83, 0x93,0x02,0x46,0xe5, + 0x94,0x00,0x0a,0x15, 0x0b,0x69,0xf1,0x4b, 0x72,0xc5,0xcd,0xf0, 0x31,0x27,0x96,0x89, + 0xf5,0xd1,0x45,0x0f, 0xbc,0x98,0xe5,0x42, 0x44,0x1e,0xba,0x3a, 0x04,0xbc,0xad,0xce, + 0x82,0x42,0x65,0x11, 0xd6,0x46,0x77,0x33, 0xf1,0xcb,0xb7,0x10, 0x1e,0xbd,0x79,0x4e, + 0x9e,0xea,0xdc,0xf1, 0x6d,0xeb,0x88,0x03, 0x72,0xcc,0x25,0xc4, 0x4e,0x44,0x80,0x53, + 0x97,0x23,0x54,0x81, 0x6d,0x41,0x6f,0x5d, 0xd7,0x99,0x0a,0x40, 0x22,0x24,0x5a,0xae, + 0x98,0x7a,0x74,0x79, 0xc2,0x03,0xa3,0x7e, 0x06,0x01,0x80,0x2c, 0xdf,0x24,0xc7,0x89, + 0xd7,0x1a,0xd9,0xb1, 0x92,0x24,0x96,0x24, 0x23,0xce,0x17,0xcf, 0x6f,0xb3,0x3d,0xa7, + 0xd2,0xf0,0x78,0x20, 0xe2,0x4b,0x1e,0x80, 0xed,0x69,0x80,0xda, 0x6d,0xed,0x4f,0xa3, + 0x21,0xb3,0x17,0xc5, 0xae,0xec,0xeb,0x6e, 0x27,0x0c,0xad,0x60, 0x0d,0xef,0x93,0x7c, + 0x3c,0x6e,0x28,0xfc, 0x73,0xef,0xbc,0x5c, 0xa0,0x89,0x04,0x82, 0x4d,0x85,0x9d,0xc9, + 0x6e,0xbe,0xdf,0x49, 0xca,0xc6,0x94,0xac, 0x9e,0x1a,0xcf,0xe2, 0xf1,0xb9,0x55,0xf4, + 0xbf,0xc1,0x81,0x05, 0xe7,0x21,0xcb,0xde, 0xf9,0x77,0xef,0xea, 0xba,0x2d,0xfa,0x8c, + 0xaa,0x3b,0x78,0x91, 0x8c,0xbc,0x0b,0xc4, 0xaa,0x2d,0x2b,0x40, 0x94,0xa4,0x3d,0x0b, + 0xdf,0xb6,0xdb,0x99, 0xef,0xdf,0xbd,0x1d, 0x02,0x33,0xe1,0x11, 0x18,0x3c,0x52,0xe5, + 0xc8,0x86,0x2c,0x14, 0x45,0x94,0xc8,0x4d, 0x33,0x76,0x1f,0x76, 0xbd,0xb0,0x3c,0x4f, + 0x87,0x3d,0x1d,0x06, 0xe8,0x62,0x7b,0xed, 0xf2,0xda,0xd9,0xac, 0xcf,0x1b,0x47,0x61, + 0xa4,0xe9,0xbe,0x1c, 0x76,0xe3,0x0e,0x15, 0x46,0x1a,0x7c,0x3d, 0x3e,0xe7,0xe4,0x8e, + 0xbe,0xce,0xf0,0x50, 0xac,0xa0,0x80,0x2a, 0x1d,0x06,0x61,0x52, 0xe6,0x0c,0x25,0x91, + 0x6e,0xa5,0x66,0x14, 0x2d,0x66,0x0b,0x1e, 0x2e,0x3b,0xd2,0x73, 0x55,0xe7,0x5c,0x79, + 0xac,0xf6,0x3d,0xb6, 0xed,0x24,0x39,0x58, 0xce,0x28,0x68,0xa4, 0x0f,0x57,0x93,0xc6, + 0x7a,0x5b,0x6f,0x82, 0x36,0x18,0x03,0xa8, 0xba,0x62,0x43,0xef, 0x4f,0x45,0x66,0x1b, + 0x30,0x95,0xc6,0xa2, 0xdb,0xe1,0xf3,0xd1, 0xbb,0xc9,0x6c,0xe9, 0xc7,0x19,0xef,0x3f, + 0x9d,0x84,0xdf,0xc7, 0x9d,0x8c,0x3b,0xf1, 0x39,0x48,0x80,0x88, 0xa2,0xa4,0x59,0xf6, + 0xae,0xcf,0xcf,0xc7, 0x7f,0x75,0xdb,0xf3, 0x7a,0xef,0xe9,0x28, 0x6b,0xd7,0xb5,0xc9, + 0x23,0xd9,0x2f,0xc1, 0xa1,0xe6,0x8b,0x15, 0x48,0x14,0xeb,0x49, 0x8c,0x11,0x46,0x03, + 0xd5,0x42,0xc1,0x65, 0xa5,0x22,0x75,0x28, 0x19,0x6a,0xac,0x8a, 0x65,0xa7,0x31,0xf1, + 0x92,0x33,0x39,0x0c, 0x34,0x80,0xb5,0x76, 0x4d,0xd5,0xee,0xed, 0xe7,0x2b,0xd2,0xdb, + 0xb8,0x94,0x8a,0x55, 0x3d,0x2a,0x8c,0x1a, 0xbf,0xb7,0xcf,0x0f, 0x3c,0xd0,0xa7,0xa2, + 0x8c,0xd4,0xa3,0x2c, 0xb9,0xd9,0xed,0x13, 0xc5,0x67,0x94,0xf7, 0x75,0xf2,0x2d,0xe8, + 0x79,0xe1,0x4f,0x8c, 0xef,0xe2,0x77,0x32, 0xf5,0xd6,0x76,0x52, 0xd3,0x19,0xe5,0x14, + 0xef,0x92,0xd9,0x26, 0x0c,0x20,0x49,0x66, 0xdd,0xf4,0x94,0x33, 0x31,0x22,0x4b,0x3e, + 0x80,0x50,0x30,0x25, 0x86,0x85,0x98,0x78, 0x49,0xc4,0xdd,0x93, 0x76,0x71,0x9c,0x6d, + 0xdb,0xae,0xfb,0xe8, 0xe5,0x0c,0x3a,0xa1, 0xac,0xa7,0x42,0xf4, 0xb9,0x02,0xb3,0x4b, + 0x0f,0x33,0x49,0x8b, 0x10,0xe4,0xe5,0xd0, 0x41,0x7c,0xf6,0x42, 0x7d,0x79,0x85,0xcb, + 0x16,0x98,0x83,0xa9, 0x15,0xca,0x03,0x88, 0xcd,0x10,0xfa,0x4e, 0x1b,0x8f,0x6d,0x9c, + 0x0c,0x0d,0x31,0xeb, 0xa6,0x67,0xe4,0x74, 0x11,0x5f,0x6a,0xcf, 0xcb,0xca,0x43,0x70, + 0x45,0xb3,0xc7,0x39, 0x60,0x8e,0x73,0x93, 0x9f,0x45,0x57,0xcb, 0xcf,0xec,0x58,0x85, + 0x41,0x11,0xd1,0x78, 0x7b,0x68,0xb3,0x66, 0x08,0x31,0x8b,0x69, 0x59,0x2e,0x6d,0xbc, + 0xf0,0x4f,0xb7,0xbd, 0xd9,0x8b,0x2a,0x13, 0x85,0x39,0xb3,0x66, 0x61,0x96,0x4a,0x78, + 0x5a,0xc1,0xe4,0xbf, 0x43,0x22,0x1b,0x32, 0x1f,0xb2,0x17,0x7e, 0xee,0xa0,0x49,0xe6, + 0x0d,0x48,0x08,0x20, 0xb3,0x2d,0x61,0xf5, 0x6c,0xf7,0x9a,0x04, 0xde,0x6c,0x3c,0xce, + 0xf8,0x43,0x9d,0x90, 0x39,0xf7,0x74,0x79, 0xdf,0xa6,0x5b,0xba, 0xdc,0x92,0x81,0x5a, + 0xbc,0x43,0xe2,0x37, 0x1c,0xe4,0xc9,0x92, 0x61,0xc8,0x3a,0x60, 0x0b,0x37,0x44,0x14, + 0x8e,0x3b,0xf0,0xf5, 0x91,0xe0,0x8f,0x6b, 0xd6,0xdd,0x1d,0xba, 0x10,0x24,0x5b,0x64, + 0x8c,0x24,0x08,0x07, 0xc3,0x54,0xc8,0x75, 0xb5,0x60,0xe0,0xb4, 0xf9,0xb5,0xf5,0x42, + 0x1d,0x53,0x2d,0x0d, 0x9d,0x30,0x98,0x67, 0x24,0x04,0x84,0x14, 0xc0,0x0a,0x90,0x8e, + 0xed,0x45,0x2e,0xf3, 0xed,0xc5,0x85,0x46, 0x9b,0x3d,0xb9,0x09, 0x0e,0xd6,0x12,0x37, + 0xc2,0xa6,0x89,0x70, 0xb0,0x6d,0x3b,0x38, 0x79,0x80,0x92,0x08, 0x21,0x21,0xbc,0x47, + 0xac,0x38,0xda,0xd2, 0xca,0x26,0x70,0x3d, 0x94,0xcf,0x9f,0xae, 0xd0,0x29,0x75,0x68, + 0xd5,0x13,0xae,0x86, 0x43,0x54,0x2a,0x1c, 0xf9,0x6f,0xec,0x88, 0xe4,0x77,0x61,0xc7, + 0x25,0x46,0xf2,0x74, 0xe1,0xd2,0x0e,0xc6, 0x42,0xfb,0x3c,0xf8, 0xb6,0xf2,0xfa,0x2e, + 0xaa,0x25,0xa6,0x25, 0xe8,0xb8,0xaf,0x61, 0x87,0x6d,0xa6,0xf0, 0x04,0x78,0x23,0x32, + 0xcd,0x06,0x24,0x01, 0x5e,0xf6,0xac,0x06, 0x97,0x1c,0xf0,0xa0, 0x8d,0x10,0x2f,0x69, + 0x88,0x3e,0x5d,0x26, 0x22,0x74,0x4e,0x90, 0x72,0x9d,0x04,0x88, 0x34,0xc0,0xa8,0x06, + 0x86,0x46,0x66,0x60, 0x41,0x88,0x73,0x2d, 0x84,0xbd,0x76,0xb5, 0x6c,0xcc,0x9d,0x35, + 0x7e,0x6f,0xe9,0x57, 0x5f,0xb5,0x8f,0xa3, 0x8d,0x96,0x8a,0x70, 0x04,0x33,0x9b,0x58, + 0x11,0xfa,0x6e,0x1f, 0x1f,0x67,0xb8,0xbc, 0xbe,0xff,0xaf,0x83, 0x42,0xa7,0x3e,0x35, + 0x35,0x89,0xf0,0x2f, 0x32,0xc2,0xbf,0x10, 0xe5,0x0d,0x44,0x34, 0x96,0x4b,0xab,0x31, + 0x0f,0xc6,0x7f,0x11, 0x00,0xcf,0xc9,0xa5, 0x49,0xbf,0x85,0x95, 0xfc,0x4f,0x2b,0xd3, + 0xf0,0x6d,0x5c,0x3e, 0x78,0xf9,0xdf,0x25, 0xfe,0x51,0x0b,0xe6, 0x6c,0xf5,0xf8,0x71, + 0x6a,0x9f,0x9f,0x67, 0xe6,0xaf,0xf3,0xab, 0x7d,0x76,0xef,0xf3, 0x81,0x84,0x79,0xae, + 0xd2,0x7f,0xa5,0x29, 0x10,0x31,0x1c,0xf3, 0xf0,0x6a,0x3c,0x84, 0x16,0x78,0xf0,0xfa, + 0xd9,0x34,0x8e,0xc4, 0x0c,0x16,0xcf,0xca, 0x53,0x03,0xe9,0x90, 0x30,0x29,0x7b,0x0f, + 0x2d,0x66,0x3a,0x12, 0x43,0x0c,0x89,0xdb, 0x67,0xd8,0xe6,0x41, 0x38,0xfa,0x3d,0xde, + 0xa5,0xaa,0xeb,0xb1, 0x0d,0x06,0x66,0x45, 0x91,0x73,0x6b,0x21, 0xc7,0x94,0xdf,0x14, + 0xdd,0x32,0xe4,0x5c, 0x12,0x09,0x49,0x91, 0x2c,0x0c,0x30,0xbf, 0x0d,0x68,0x94,0x93, + 0x11,0x4a,0x27,0xbd, 0x6f,0x2a,0xd5,0x50, 0x9a,0x67,0x18,0xdf, 0x29,0xfa,0x13,0xe6, + 0x51,0xf4,0x48,0x97, 0x09,0x82,0x04,0x05, 0x2e,0x3a,0x40,0x0d, 0x22,0xd2,0x16,0x70, + 0xec,0x41,0x0e,0x50, 0x9e,0x3a,0x44,0x10, 0x0c,0xa6,0xec,0x1c, 0x81,0xe3,0x6a,0xf2, + 0x86,0x02,0x53,0xa3, 0xa2,0x05,0x9c,0x3c, 0x34,0x05,0x0e,0xef, 0x09,0xa6,0x40,0x91, + 0x91,0x1d,0xcf,0x49, 0x4a,0x94,0x34,0x9b, 0x04,0x47,0x1c,0x93, 0x34,0x10,0xd2,0xa2, + 0x1c,0x88,0xeb,0x03, 0x5d,0x14,0x04,0x42, 0xcb,0xab,0x88,0x13, 0x44,0x80,0x50,0xdd, + 0xfd,0x3d,0x24,0xf5, 0x20,0x73,0x7b,0xc2, 0xcb,0x77,0xe7,0x04, 0xc8,0xf8,0x24,0xf2, + 0x0e,0x8d,0x96,0x78, 0xbe,0x51,0x31,0x3b, 0xe6,0xb3,0xb4,0xa4, 0x66,0x2f,0x82,0x29, + 0x10,0x37,0x94,0x69, 0xf5,0x14,0xf1,0x5c, 0x3d,0x92,0x95,0x24, 0x74,0xa6,0x8d,0x03, + 0x43,0x21,0x21,0x13, 0x53,0x77,0x3f,0x85, 0xaa,0x67,0xea,0x87, 0x9e,0x23,0xbf,0x34, + 0xd2,0x16,0xce,0x6f, 0x95,0x67,0xd7,0x31, 0x1a,0x63,0xaf,0xb2, 0x20,0xf9,0x89,0x78, + 0x88,0x04,0x97,0x48, 0x80,0x82,0xd6,0x86, 0xed,0xe9,0xe4,0x84, 0xec,0xc5,0xaa,0x48, + 0xa8,0x27,0x17,0x4e, 0x59,0x89,0x20,0x40, 0x5a,0xbb,0x79,0x88, 0xc0,0xb0,0x0f,0xc2, + 0x6f,0x1e,0x5c,0x9d, 0xc1,0x01,0xae,0xc6, 0xa7,0xcf,0x45,0x88, 0x42,0x44,0x77,0x28, + 0x19,0xe2,0x56,0x82, 0x43,0x0a,0x3e,0xfe, 0x35,0xf2,0x98,0x13, 0x34,0x1b,0x1e,0xb1, + 0x1f,0x98,0x46,0xbd, 0x93,0x4c,0x55,0x37, 0x27,0xaa,0x75,0xd0, 0xdc,0x19,0x3c,0xcf, + 0x1b,0x0a,0x9c,0x26, 0x3c,0xfc,0xef,0x97, 0x8f,0xd9,0xef,0x0f, 0xba,0x12,0x0a,0x29, + 0x20,0x10,0x8a,0x10, 0x84,0xf8,0x30,0x02, 0x4d,0xe7,0x80,0x33, 0xd8,0xf7,0x77,0x6d, + 0xb7,0xbe,0x18,0x0c, 0x40,0xd0,0x80,0x4b, 0x00,0x14,0x11,0x26, 0x96,0x41,0xc3,0xb6, + 0x5e,0x71,0x00,0x2e, 0x35,0x4f,0x22,0x2b, 0x63,0xb9,0xb2,0x96, 0x5b,0xc1,0xef,0xf7, + 0xef,0x3e,0x5e,0x5c, 0xb3,0xe3,0xbe,0x8e, 0x3d,0x84,0x38,0xcd, 0xfe,0x1a,0x24,0x36, + 0x18,0x88,0x22,0x28, 0xaa,0xc8,0xa4,0xf1, 0x40,0xa0,0xa0,0xc9, 0x23,0x10,0x55,0x64, + 0x48,0x54,0x2d,0x28, 0x56,0x7a,0xbf,0x6f, 0x5b,0x02,0x4d,0x9d, 0x84,0xb4,0xb0,0x58, + 0xda,0x95,0xd8,0xb8, 0x45,0xcb,0x61,0x59, 0x8e,0x31,0x4f,0xd0, 0xa0,0x05,0x62,0x86, + 0x56,0x87,0xbd,0x93, 0x31,0x5a,0x7b,0xb0, 0xa1,0xd0,0x40,0x40, 0x88,0xde,0xae,0xf2, + 0x03,0x82,0xca,0x8b, 0x84,0xac,0x58,0x08, 0x2d,0x65,0x57,0x5e, 0x68,0x22,0xf6,0x09, + 0xa4,0x5c,0x81,0xea, 0x43,0x56,0xdc,0x9e, 0x53,0xf1,0x38,0x6f, 0x74,0x84,0xdd,0x98, + 0x78,0xc2,0x16,0x2a, 0xbd,0x1e,0xcb,0xaa, 0x70,0xdb,0xe8,0xaa, 0xc4,0xc6,0xe9,0x3d, + 0x1d,0x5a,0x4a,0xb1, 0xcd,0xc5,0xab,0xee, 0x90,0x99,0x7d,0x0a, 0xd2,0x88,0xc3,0xdc, + 0x5e,0x4d,0x37,0x9d, 0x3b,0x2f,0x23,0x33, 0x35,0x52,0x8b,0x82, 0x1c,0xbd,0x22,0xb0, + 0x13,0xe5,0x74,0x22, 0xf4,0x4f,0x13,0x4d, 0x40,0xc0,0x21,0x97, 0xb3,0x50,0xb9,0xf9, + 0x58,0x0b,0xee,0x74, 0x2e,0x42,0xbe,0x09, 0x9c,0x59,0x7e,0x67, 0xd3,0x02,0xa7,0x7e, + 0xd6,0x1b,0x7a,0xd2, 0xeb,0xa6,0x4b,0xab, 0x03,0x1e,0x88,0x6c, 0x10,0x68,0x86,0x87, + 0xa0,0xa8,0x96,0xd5, 0xc8,0xe7,0x40,0x26, 0x6e,0x40,0xe1,0xc4, 0xb3,0xc0,0x93,0x53, + 0xc4,0xa5,0x2b,0x67, 0xa9,0x67,0x9e,0xe1, 0x7b,0xbd,0xde,0xaf, 0x8b,0xb5,0xb1,0xc9, + 0xe0,0x3f,0x27,0x03, 0x7d,0x28,0xfa,0x38, 0x24,0xec,0x34,0x32, 0x06,0x4e,0xbc,0x3f, + 0xd3,0x78,0x33,0x23, 0x8f,0x18,0xca,0xa2, 0x74,0xc0,0xdb,0xd5, 0xc6,0x9a,0xf4,0x06, + 0xb4,0xd9,0x0e,0x3a, 0x90,0x8b,0x0c,0x10, 0x89,0x04,0x81,0xb1, 0x94,0xc4,0xa1,0x8a, + 0x22,0xb3,0xae,0x8a, 0x41,0xa7,0xbf,0xdb, 0xae,0xc1,0xec,0xc3, 0xe8,0xbd,0xfb,0xe7, + 0x44,0xef,0xda,0xc3, 0x7d,0xf7,0xc2,0x77, 0x43,0xea,0xc9,0xba, 0x7c,0x99,0xba,0x1d, + 0x99,0xd1,0x3a,0x20, 0x7c,0x53,0x64,0x93, 0xaa,0x1b,0x33,0xd9, 0x87,0xb5,0xf8,0xfb, + 0x7c,0xda,0x1d,0xad, 0xc6,0x6b,0x70,0xa6, 0xd4,0x39,0x88,0xbd, 0xf8,0xf6,0xc3,0x8f, + 0x97,0x6e,0x34,0x7b, 0xd2,0x75,0x00,0xec, 0x8f,0x05,0x26,0x03, 0x70,0xe3,0xae,0xd3, + 0x61,0x39,0xb6,0x7c, 0xbb,0xd0,0x30,0xef, 0xb1,0x84,0xed,0x5e, 0x99,0x4c,0x9b,0x50, + 0xd1,0x03,0xbc,0xa1, 0xc5,0x88,0xf3,0xd1, 0x53,0x96,0xd6,0x8a, 0xbd,0x5d,0x80,0xbc, + 0xfa,0x75,0x28,0x32, 0x27,0xae,0x6f,0x90, 0x94,0x84,0x3a,0x88, 0x25,0x9a,0x11,0x48, + 0x87,0x2c,0x1c,0xa2, 0x1a,0x82,0x37,0xd6, 0x8d,0xe2,0xc8,0xe5, 0xc7,0x5d,0xb1,0x41, + 0x8c,0x6b,0x5e,0x56, 0x8a,0x19,0xbe,0x90, 0x31,0x28,0x11,0xca, 0x59,0x9e,0x76,0x9d, + 0x6d,0x3e,0x2c,0x1f, 0x62,0xc9,0x1a,0x23, 0x69,0x44,0xc0,0x96, 0x28,0xe0,0x89,0xa4, + 0x13,0xcd,0xf2,0xc0, 0xf2,0xf2,0xe9,0x9f, 0x6a,0x7c,0x50,0xa7, 0xc1,0x2f,0xc9,0x2b, + 0x35,0x85,0x90,0x17, 0xb2,0x1a,0x88,0x1e, 0xb4,0x28,0xa3,0x05, 0x58,0xec,0xe2,0x53, + 0x1b,0x60,0x2b,0xb4, 0x59,0xea,0x7d,0xea, 0x04,0xd2,0x79,0xef, 0x86,0x1f,0x14,0xa8, + 0x28,0xdc,0xdf,0x53, 0x8f,0xa7,0x6c,0x92, 0x6c,0x80,0x9c,0xf5, 0x32,0x1e,0x1e,0xee, + 0xdb,0xe8,0xe1,0x65, 0x27,0xab,0x2c,0x01, 0x99,0x93,0x30,0x64, 0x25,0x7d,0xfe,0x9a, + 0x71,0xba,0x07,0x19, 0x30,0xdc,0xc2,0x7c, 0xd0,0x0a,0x6a,0x9e, 0x8f,0x83,0x0d,0x6d, + 0x7c,0xd8,0x67,0x14, 0xe5,0x98,0x8b,0xcb, 0x3a,0x2d,0x36,0xc2, 0xef,0x42,0xa7,0xc5, + 0x26,0x93,0x2d,0x16, 0x47,0xdd,0x4c,0x4e, 0xa9,0xe3,0xd3,0x5b, 0xe8,0x92,0xce,0xfe, + 0x3a,0xcd,0x0f,0x9d, 0x0a,0x81,0xe4,0x9d, 0xd3,0x0e,0x6c,0x87, 0x77,0xee,0x43,0x48, + 0x7a,0x3b,0x3e,0x5a, 0xae,0xac,0xf0,0x42, 0x70,0xb0,0x10,0x5b, 0x14,0x0c,0xa6,0x45, + 0x8b,0x0b,0x95,0x74, 0x3b,0x91,0x32,0xc3, 0x5d,0xb8,0x79,0x73, 0xed,0xd2,0x6a,0xe1, + 0xca,0x02,0x89,0xcf, 0x34,0xbd,0x57,0x8a, 0x1a,0x37,0x8f,0x4f, 0x2e,0x73,0xf3,0x7d, + 0x01,0x34,0xc6,0x6b, 0xd3,0x7d,0x3c,0xa7, 0xdf,0xad,0x91,0x0e, 0x32,0x85,0x7b,0x88, + 0xf0,0xa0,0x10,0xe5, 0x8e,0xe0,0xf0,0xb9, 0x74,0xf3,0x79,0x48, 0xf0,0x86,0x26,0x98, + 0xc9,0x67,0xaa,0xe9, 0x65,0xeb,0x12,0xa6, 0x26,0x79,0xbb,0x7a, 0x6e,0x96,0x99,0x79, + 0xf9,0x2e,0x79,0x9a, 0x0d,0x8f,0x40,0x45, 0xa8,0x31,0x39,0xf4, 0xe9,0x97,0x48,0xca, + 0x3c,0x87,0x1b,0xd2, 0x39,0xdc,0xb8,0xb3, 0x76,0x90,0x46,0x73, 0xa1,0x96,0x44,0xf5, + 0x11,0x3b,0x5a,0xcc, 0x7c,0xf2,0x93,0xc3, 0x14,0xdd,0x34,0x70, 0xed,0xcb,0xa4,0xf4, + 0x80,0xa8,0x49,0x29, 0xf9,0x99,0x56,0x1b, 0x91,0x54,0x46,0xc8, 0x2b,0x6b,0x69,0x09, + 0x11,0x23,0x88,0x62, 0xe9,0x3a,0x1b,0x6c, 0xb5,0xfb,0x12,0xa9, 0x15,0x94,0x8b,0x12, + 0xc5,0xf4,0x78,0xb4, 0x5e,0x72,0x01,0xf8, 0x99,0x50,0xcd,0xdb, 0x9f,0x4a,0x12,0x07, + 0x50,0x41,0x06,0x98, 0x9e,0x52,0x95,0x0b, 0x01,0xea,0x73,0x2c, 0x3a,0x16,0xf4,0x4e, + 0x19,0xb7,0x16,0x15, 0xf4,0x67,0x8a,0x18, 0x91,0x5e,0x69,0xc7, 0x97,0x23,0xbf,0xae, + 0xc4,0x9c,0x21,0x77, 0xba,0x61,0xf6,0x32, 0xb3,0x87,0xd1,0x87, 0x29,0xb3,0x31,0xf8, + 0x27,0x93,0xf2,0x40, 0xf5,0x40,0xec,0x9d, 0x57,0x5d,0x70,0x7d, 0xba,0x61,0xde,0xde, + 0x43,0x8b,0xad,0xe9, 0xdd,0x3b,0x75,0xf7, 0x18,0x72,0x99,0x6e, 0x99,0xe0,0x86,0x20, + 0x27,0x7a,0x1b,0xa5, 0x72,0x4c,0x24,0x20, 0xa6,0x37,0x4c,0xd7, 0x72,0x99,0x80,0xc6, + 0xa7,0x9c,0xe0,0x22, 0xcd,0x5f,0x44,0xd4, 0xb8,0x06,0xc3,0x19, 0xde,0x5a,0x52,0xe9, + 0x73,0xa3,0xca,0x2b, 0x49,0x38,0xe9,0xf0, 0x3b,0xc1,0x82,0x26, 0x40,0xa9,0xb9,0xd3, + 0xa5,0xd9,0xe3,0xd5, 0x0d,0x86,0x2c,0xe3, 0x4f,0x11,0xdb,0xca, 0x6d,0xdd,0x36,0x7c, + 0xfe,0x14,0x36,0xfb, 0xd2,0x14,0x03,0x41, 0xe8,0xa2,0x87,0xb3, 0x12,0xdf,0x8b,0x30, + 0x32,0x3e,0xb9,0x72, 0x50,0xd2,0x8e,0x64, 0x84,0x16,0x04,0x2b, 0x22,0x90,0x58,0x62, + 0x03,0x94,0x26,0x78, 0x66,0x66,0xac,0x46, 0x16,0x8d,0x56,0xea, 0xca,0x38,0xaa,0x3b, + 0xc8,0x1e,0x9e,0xea, 0x6d,0xf7,0x7a,0x87, 0x97,0x6e,0x58,0x3c, 0x69,0xbc,0x89,0x26, + 0x43,0xb6,0xbd,0x9e, 0xb6,0xf7,0x56,0xf2, 0xf6,0x99,0x8e,0xb9, 0x62,0x73,0x12,0xcf, + 0xaf,0x3a,0x48,0x0b, 0x10,0x04,0x70,0x03, 0x02,0x40,0x04,0xb3, 0x0e,0x7c,0xdd,0xd1, + 0x03,0x5e,0x34,0x39, 0x47,0x1d,0x2b,0x39, 0x1d,0xf5,0xd8,0x63, 0x29,0xd3,0x49,0x38, + 0x7e,0x93,0xc8,0x1c, 0x26,0x0a,0x11,0xce, 0xd0,0x6e,0x21,0xc3, 0x82,0x70,0x44,0xc8, + 0x1b,0x0b,0x3b,0xc8, 0xc3,0xb0,0x70,0xfc, 0xb7,0xf8,0xf4,0x8e, 0x38,0x27,0x97,0x9e, + 0x8b,0x8f,0xb7,0xa6, 0x1a,0x42,0x76,0xa5, 0x49,0xa3,0x4e,0x6b, 0x2f,0x86,0x6d,0x0c, + 0x80,0xbb,0xb3,0x96, 0x13,0x97,0x61,0x33, 0x56,0xef,0x56,0x4f, 0x0d,0x66,0x43,0x86, + 0xdd,0xf3,0xe0,0xe9, 0x81,0x89,0xa7,0xdd, 0x4b,0x29,0x8b,0xcc, 0xf2,0x5e,0x3b,0x31, + 0x2e,0x84,0x96,0x67, 0x2b,0x87,0x96,0xec, 0x55,0xf7,0xb6,0xeb, 0x54,0xcc,0x66,0x01, + 0xeb,0xe7,0x24,0xc1, 0x87,0xb7,0x1b,0x71, 0xc6,0xc4,0x9b,0xa1, 0x25,0xbe,0xfc,0xcc, + 0xb8,0x86,0x3d,0x35, 0xac,0x35,0x07,0x23, 0x27,0x28,0x74,0x3c, 0x2f,0x29,0xdb,0x72, + 0x9e,0xbb,0xd8,0xa0, 0x73,0xce,0x76,0xd1, 0xc3,0xb7,0x36,0x49, 0x2a,0x2c,0x33,0x29, + 0xd9,0x90,0x9d,0x18, 0x0f,0xbe,0x90,0x17, 0x7c,0xa1,0xe2,0xc1, 0xe6,0xf8,0xab,0x0f, + 0x47,0x6e,0x96,0x54, 0x58,0x78,0x48,0x54, 0x09,0xeb,0xc6,0x8f, 0xa5,0x35,0x84,0xf6, + 0xd2,0x7a,0x7a,0xe8, 0x54,0xf1,0xe9,0x7a, 0x95,0x02,0xf9,0xde, 0xe9,0x97,0xb6,0x40, + 0xc1,0x05,0x00,0x37, 0x49,0xd1,0x3d,0x13, 0x19,0x59,0xce,0xd5, 0xd3,0x48,0x0a,0x04, + 0xe8,0x93,0x2e,0xd8, 0x67,0xa6,0xf8,0x1b, 0x9a,0xb0,0x21,0xdb, 0x9d,0x62,0x32,0x0b, + 0x0f,0x8c,0x11,0x48, 0xaf,0xd9,0x6b,0x15, 0x60,0xb0,0x82,0x90, 0x15,0x8b,0x12,0x46, + 0x0c,0x19,0x2b,0x20, 0x54,0x80,0xa1,0x19, 0x6a,0xac,0x24,0x15, 0x4e,0xb9,0x6d,0x10, + 0x0c,0x49,0x16,0x03, 0x3e,0x17,0x34,0x24, 0x34,0x55,0x54,0x61, 0x96,0x6b,0xf0,0x63, + 0x36,0xd9,0x62,0x01, 0x0c,0xa5,0x51,0x11, 0x6f,0xa3,0x66,0x21, 0xbb,0x09,0xe2,0xc0, + 0xec,0xcc,0x7d,0x69, 0x40,0x20,0x79,0xb0, 0x21,0xbf,0x14,0x5a, 0xc3,0xae,0x51,0x1f, + 0x44,0x34,0x39,0xf5, 0xb0,0xed,0xf4,0xa3, 0xeb,0x7c,0x59,0x0e, 0xfe,0x1e,0x18,0x1e, + 0x09,0x2b,0xde,0x9e, 0x59,0x08,0x1e,0x0c, 0x9e,0x08,0x28,0x2f, 0x82,0x0f,0xce,0x9d, + 0xde,0x10,0x03,0x77, 0x78,0xac,0x7b,0x9c, 0xdd,0x68,0xf2,0xd8, 0x30,0xc9,0x31,0x05, + 0xc4,0xdd,0x81,0xba, 0x79,0xa7,0xb3,0xaa, 0xed,0xa0,0x07,0x92, 0xac,0x42,0xd3,0xac, + 0xf2,0xb7,0x64,0x94, 0x6b,0x5a,0x5b,0x0b, 0x38,0xd1,0x62,0x90, 0x38,0xc0,0x86,0xb9, + 0x3d,0x56,0xa7,0x12, 0x15,0x35,0xf4,0x43, 0xa8,0x1e,0xca,0x54, 0x44,0x36,0x79,0x60, + 0xdb,0x50,0x58,0xb2, 0xa5,0x43,0xb3,0x09, 0x50,0xc4,0x11,0x47, 0xc9,0x90,0x33,0x28, + 0xd4,0xaa,0xb1,0x14, 0x45,0x91,0x55,0x43, 0xd1,0x90,0x0b,0x16, 0x22,0x93,0x06,0x53, + 0xee,0xb6,0x20,0x9d, 0x6d,0x85,0x5d,0xb0, 0x0c,0x48,0x72,0x84, 0x95,0x3b,0xb4,0x5d, + 0xac,0xe8,0xc9,0x3e, 0xc6,0x10,0xc6,0x0e, 0xac,0x1e,0x73,0x58, 0x68,0x27,0x97,0x8d, + 0x21,0xd1,0x26,0x9e, 0x59,0x57,0x87,0x66, 0xe4,0x25,0x6d,0xe9, 0x6e,0x0b,0x6d,0xca, + 0xd9,0x25,0x60,0xfc, 0xe9,0x0e,0x79,0xb2, 0x10,0xf5,0xb5,0xd8, 0xa0,0xf1,0xf5,0xc9, + 0x45,0xc3,0xd3,0xb6, 0x6b,0x43,0xd9,0x00, 0xce,0xd5,0x64,0x21, 0x8e,0xa0,0xc1,0xe5, + 0x16,0x58,0x8f,0x1a, 0x84,0x51,0x62,0x63, 0x82,0x66,0x56,0xe5, 0x99,0xd5,0x99,0xab, + 0xaa,0x64,0xb9,0x72, 0xc4,0x00,0xca,0x63, 0x9d,0x10,0xf1,0x71, 0x2a,0x19,0xb5,0xee, + 0x90,0x80,0x62,0x4e, 0x20,0xc6,0x6a,0x52, 0xd9,0x5a,0xf5,0xb8, 0x96,0x48,0x67,0x52, + 0x9a,0xc8,0x31,0x7e, 0xdf,0x87,0x6d,0xf3, 0x7d,0xc8,0x7d,0x9c, 0x14,0x08,0x74,0x48, + 0x43,0xbd,0x2c,0x3a, 0xa5,0x43,0x4e,0xfd, 0x35,0xb6,0xea,0x7a, 0xa6,0xcc,0x84,0xa2, + 0xd7,0x04,0xc4,0x92, 0xa6,0x67,0x97,0x4e, 0xf3,0x5c,0xe0,0x97, 0xb6,0x62,0xf4,0x8a, + 0x05,0x61,0xc2,0x10, 0xfa,0x20,0x1c,0xa2, 0xaa,0xef,0x6c,0x27, 0x2e,0x5b,0xd7,0x46, + 0xb3,0x55,0xaa,0xa2, 0x84,0xc6,0xf8,0x67, 0x92,0x66,0x89,0x59, 0xbb,0x0a,0x81,0xe1, + 0x6f,0x77,0xde,0xcc, 0xe6,0x87,0x44,0x03, 0xab,0x00,0xf7,0x32, 0x12,0x71,0xe1,0x61, + 0xd1,0x31,0x20,0x73, 0xda,0xc0,0xa5,0x4b, 0x03,0x9c,0x59,0x2c, 0x23,0x5a,0x65,0xc4, + 0x16,0x18,0x45,0xc4, 0xb6,0xce,0xd4,0xb7, 0xe9,0x95,0x70,0xa9, 0x20,0x03,0xdd,0x95, + 0x7a,0xa2,0x86,0x41, 0x94,0x8a,0x02,0x23, 0x82,0x99,0x99,0x8d, 0xe2,0x64,0x69,0x2e, + 0xe7,0xb8,0xe2,0x45, 0xc8,0x03,0x91,0xab, 0xc3,0xd1,0xd0,0x61, 0xd7,0xc2,0x72,0x16, + 0x7b,0x3c,0xf8,0x55, 0x2c,0xda,0xaf,0x7e, 0xfc,0xe9,0x31,0x24, 0x80,0x76,0x48,0x4f, + 0xb3,0x9b,0x05,0x90, 0x00,0xe8,0x90,0x9e, 0xc9,0xf5,0x49,0xa6, 0x40,0xe9,0x68,0xb0, + 0xe9,0x04,0x79,0xa0, 0x4f,0xb5,0xf4,0x7b, 0x6c,0xd5,0xa0,0xa9, 0x5a,0xec,0x22,0xa5, + 0xa8,0x8e,0xf6,0x75, 0x60,0x4d,0x3a,0x04, 0x16,0x88,0x05,0x8e, 0xc6,0x6f,0xab,0xa5, + 0x97,0xc7,0xa7,0x3c, 0x6c,0x01,0xbb,0x7e, 0x69,0xf0,0xef,0xa3, 0xa2,0x00,0xe8,0xe9, + 0xb3,0x98,0xe9,0xb7, 0x8f,0x6b,0xa3,0xe1, 0x77,0xcb,0xd5,0x00, 0xdc,0x61,0x99,0x41, + 0x47,0x40,0x3e,0x51, 0x22,0xe7,0xb5,0xe6, 0x37,0x59,0x6b,0x0d, 0x32,0x3b,0x71,0x9b, + 0xc8,0xb0,0xcf,0xc1, 0xe3,0x3b,0x19,0x30, 0x50,0x99,0x9e,0xe7, 0xa5,0xd0,0x97,0xe6, + 0xec,0x03,0x19,0x50, 0x86,0x3a,0xc4,0x13, 0x8a,0x90,0xf1,0x6c, 0x80,0x2c,0x20,0x4f, + 0x08,0x48,0xa1,0x50, 0x16,0x40,0x9e,0x6b, 0xef,0x79,0xbb,0x14, 0x22,0xc2,0x0a,0x48, + 0xbd,0x52,0x60,0x86, 0x33,0xb3,0xb3,0xa4, 0x87,0x09,0x0d,0x92, 0x4f,0x11,0x81,0xb3, + 0x7d,0xc5,0x06,0x56, 0x5e,0xb6,0xda,0x0c, 0xe4,0x3d,0xbc,0x08, 0x12,0x94,0x98,0x34, + 0xfa,0x41,0x76,0x18, 0x7a,0x3c,0xbc,0x2f, 0x2d,0x53,0x00,0x4c, 0x04,0x21,0x07,0xf3, + 0x4f,0x9e,0x27,0xac, 0x4a,0xed,0xe5,0xa2, 0xeb,0x56,0x1a,0x90, 0x03,0x12,0x32,0x30, + 0x59,0x9b,0xb6,0xee, 0xed,0x44,0x0e,0x67, 0x83,0x46,0xee,0x43, 0x73,0xd7,0x6b,0x41, + 0x9e,0xa7,0x97,0x49, 0x38,0xe0,0xe5,0xaa, 0x18,0x85,0x20,0xcc, 0xe4,0x33,0x74,0x34, + 0x20,0x1c,0x73,0xc3, 0xce,0x66,0x75,0x10, 0x54,0x44,0x03,0x15, 0xd4,0x8e,0x1f,0x9e, + 0x7c,0x62,0xee,0x34, 0x2c,0xd5,0x2c,0x48, 0x3a,0x69,0x13,0x94, 0x88,0x06,0x56,0x23, + 0x46,0xb1,0x60,0x00, 0xcc,0xb3,0x91,0xa1, 0xd3,0x54,0xdb,0x11, 0xb1,0x61,0x43,0xa8, + 0x5c,0x25,0x2e,0x1c, 0x0c,0xcb,0x63,0x01, 0xdc,0x66,0xae,0xfa, 0x4e,0x27,0x33,0xb2, + 0x08,0x1d,0xdf,0x30, 0x06,0xc4,0x0b,0x10, 0x11,0x19,0xd0,0x85, 0x01,0x91,0x24,0x24, + 0x90,0x77,0x25,0x3d, 0xea,0x98,0x38,0x24, 0x17,0x2c,0x15,0xe7, 0xb4,0x52,0x6e,0xf3, + 0x30,0x41,0xb6,0x36, 0x7d,0xf1,0x37,0x40, 0x61,0xbf,0x17,0x54, 0x0d,0x95,0xf3,0x57, + 0x74,0x0e,0x91,0xfa, 0xa5,0xb6,0x6e,0x70, 0x7a,0xfa,0x74,0x9e, 0x3b,0x56,0xf4,0xa5, + 0xbc,0x10,0xd2,0x07, 0x83,0x3a,0x6f,0x7b, 0xa1,0xc6,0xdd,0x35, 0xa7,0x2f,0xa6,0x17, + 0x6f,0x32,0x84,0xe8, 0x91,0x49,0x9d,0xda, 0x74,0xed,0x4f,0xa3, 0x09,0xf2,0xf8,0xda, + 0xc9,0x02,0xc9,0x2a, 0x4a,0x04,0x8a,0x7c, 0xd0,0x28,0xb8,0x24, 0x85,0x42,0x56,0x05, + 0x92,0x16,0xe1,0x97, 0x2c,0xd2,0x62,0x1d, 0x18,0x4d,0x98,0x1e, 0x8c,0x9f,0x1e,0x67, + 0x7e,0xef,0xcd,0xd8, 0x0e,0x50,0x24,0x3c, 0x18,0x00,0x78,0x30, 0x3b,0x1e,0x0d,0x05, + 0x07,0xdb,0xe3,0x70, 0x21,0xd8,0xe3,0xa7, 0xa6,0x8e,0xa9,0xee, 0x18,0x54,0xf9,0x33, + 0xba,0x1c,0x23,0x6c, 0x75,0x67,0x4e,0xea, 0xca,0xb2,0x2a,0xc0, 0x38,0x43,0x48,0x6e, + 0x83,0x69,0xa5,0x7d, 0x10,0xdf,0x15,0xa0, 0x1e,0x4c,0x3c,0xd9, 0x24,0xc1,0x17,0x47, + 0x37,0x01,0x11,0x42, 0xc2,0xab,0x82,0x78, 0xdb,0x67,0x11,0x39, 0xe4,0xe1,0xdd,0xef, + 0x23,0x04,0xf9,0xd5, 0x3f,0xd9,0xab,0xb9, 0x0c,0xdb,0x02,0x18, 0x04,0x77,0xc2,0x03, + 0x42,0x1f,0x4e,0x17, 0x06,0x52,0x03,0xbe, 0x7b,0xb8,0x17,0x20, 0x5c,0x8e,0x9c,0x74, + 0x2e,0x07,0x64,0xf0, 0x7b,0xa7,0xa2,0x1a, 0x41,0x7c,0xd8,0xa7, 0xaa,0x23,0x4b,0xea, + 0xe1,0x3b,0xb6,0x33, 0x96,0x71,0x54,0xe5, 0x09,0xe7,0x94,0x82, 0x51,0x2a,0xc0,0x9e, + 0x6c,0x9e,0xda,0x18, 0xcf,0x14,0xb6,0xd9, 0xae,0x0f,0xd9,0xc7, 0x6d,0xf4,0xb2,0x49, + 0xe3,0xda,0xc5,0xe7, 0x3a,0xe6,0xcf,0x0c, 0xbd,0x1b,0x38,0x60, 0x44,0x6a,0x3b,0x7b, + 0xf6,0x71,0x17,0xf5, 0xe4,0xe0,0x30,0xc6, 0xb7,0x70,0x32,0xaa, 0x3b,0xf2,0xe6,0x71, + 0xe7,0xad,0xeb,0x56, 0x20,0x5f,0x5e,0x41, 0xec,0x65,0x72,0xcb, 0x72,0xde,0x3a,0xa1, + 0x04,0x06,0x02,0xc5, 0x81,0xea,0x0a,0x6d, 0xd7,0x89,0xc5,0xe8, 0x81,0x23,0x8e,0x5e, + 0x9e,0x12,0x39,0xc8, 0x99,0x94,0x17,0xb8, 0xce,0xfe,0x56,0x1f, 0x77,0xb5,0x27,0xcd, + 0x80,0x7a,0x30,0x3a, 0x74,0xaf,0x4a,0x4a, 0x2d,0x96,0x97,0x30, 0x86,0x27,0xc3,0xc5, + 0xf2,0x56,0xe5,0x7c, 0x77,0x2e,0xf1,0x89, 0xee,0xbc,0xe7,0x18, 0x7c,0x5d,0xdd,0x23, + 0xbd,0x2a,0x04,0x0f, 0x24,0x3e,0x28,0x07, 0x82,0x40,0xd8,0x4a, 0xc0,0xaa,0x8a,0x97, + 0xd8,0xc0,0xaf,0x5e, 0x25,0x87,0x29,0xd5, 0x64,0x73,0x74,0x83, 0xa2,0x0c,0x48,0x84, + 0x48,0x40,0x8e,0x43, 0xc5,0xa0,0x5e,0x93, 0x61,0x6c,0x87,0x23, 0x78,0x91,0xc9,0xe8, + 0x1e,0x43,0xd9,0x81, 0x50,0x01,0x48,0x28, 0x7b,0x84,0xe2,0xd8, 0x1e,0x7c,0x9d,0x4c, + 0x27,0x8f,0x7b,0x9a, 0x87,0x8e,0x6f,0xf7, 0xf7,0xc7,0xbd,0x47, 0xc1,0xee,0x9e,0xa8, + 0x05,0x60,0x0a,0x77, 0x64,0xd2,0x1f,0x24, 0x93,0xb3,0xdd,0xa8, 0xc5,0xc5,0xdd,0x24, + 0x99,0x20,0xd2,0x87, 0xd0,0xeb,0x2a,0x70, 0x68,0xf2,0x3e,0x2f, 0x5d,0xfc,0x72,0x9f, + 0x39,0xf9,0xed,0xb6, 0x26,0x38,0x83,0x87, 0x8c,0xb6,0xd2,0xbb, 0x63,0x43,0xde,0xc3, + 0x49,0x21,0xa4,0x90, 0x3e,0x08,0x54,0x0e, 0x28,0x76,0xbf,0x4d, 0x1a,0xe9,0x40,0x3a, + 0x27,0x25,0x4f,0x49, 0x90,0x41,0x02,0x3e, 0xe6,0x8b,0x2a,0x5b, 0x4a,0xe6,0x7b,0xbd, + 0xb6,0xdb,0xaa,0x54, 0x14,0x77,0x09,0x93, 0x0a,0x51,0x08,0x04, 0x35,0x02,0x00,0x26, + 0x32,0x25,0x84,0xd0, 0x03,0x4e,0x3d,0x9e, 0x5d,0x23,0x5e,0x81, 0x69,0x95,0x6d,0x81, + 0xa2,0x30,0xef,0x99, 0x29,0xb3,0x74,0x79, 0xf2,0xe3,0x2e,0x73, 0xa5,0x24,0x44,0x73, + 0xa4,0xa6,0xe4,0x48, 0x4d,0xd8,0x88,0x53, 0x7f,0x96,0xc1,0xe2, 0xf1,0xb4,0xb5,0x1b, + 0x7a,0xa0,0x67,0x16, 0x43,0x12,0x76,0x4f, 0x2f,0x76,0xc6,0x74, 0xeb,0x40,0x9d,0x90, + 0x9d,0xd8,0x49,0x0c, 0x60,0x1b,0x30,0xd5, 0xa5,0x42,0x1e,0x0e, 0xde,0xf3,0xae,0x43, + 0x6f,0x97,0xc3,0x47, 0xa7,0x95,0x98,0x44, 0xb4,0x3f,0x12,0x90, 0x03,0x04,0x22,0xc3, + 0x1e,0xcf,0x1d,0x3a, 0xca,0x44,0x72,0x84, 0x28,0xd7,0xc6,0x50, 0xe4,0x12,0x92,0x66, + 0xc5,0x66,0xf7,0xc0, 0x42,0xe7,0xa5,0x2c, 0x1c,0x26,0x07,0x52, 0x39,0x78,0x55,0xe4, + 0xb2,0x9d,0x59,0xdb, 0x97,0x50,0xba,0x48, 0x0a,0x05,0x7c,0xaa, 0x26,0x1a,0x92,0x19, + 0x0a,0x88,0x46,0x48, 0xcc,0x38,0xec,0xf0, 0xe0,0x13,0x6b,0x43, 0x39,0x22,0x39,0x2e, + 0x50,0x98,0x1c,0x26, 0x51,0x27,0x54,0xbe, 0xf7,0x58,0x43,0xd8, 0x4b,0x5b,0x14,0x95, + 0x9b,0xa6,0x3d,0xd9, 0x34,0x6a,0x81,0xf0, 0x4d,0xd2,0x00,0x1d, 0x50,0xf1,0x15,0x08, + 0x75,0xcb,0x21,0x2a, 0x15,0x84,0xf2,0x64, 0xa9,0xed,0xe3,0x71, 0x53,0xd1,0xa2,0x1e, + 0x1f,0x08,0x18,0x80, 0x54,0x0c,0x18,0x11, 0xb4,0x8a,0x73,0x6c, 0x81,0xa6,0x42,0xb0, + 0x91,0x4a,0x81,0x89, 0x31,0x3e,0x48,0x06, 0xcc,0x9e,0xcc,0x9f, 0x66,0xbd,0xd8,0x12, + 0x3c,0x20,0xc2,0x84, 0x78,0xf0,0x80,0x02, 0x08,0x68,0x22,0x43, 0xa9,0xce,0x74,0xaf, + 0x7a,0x36,0x0b,0x0b, 0x8c,0xf5,0x37,0xc4, 0xa3,0xcb,0xbc,0xa9, 0x67,0x22,0x9a,0x55, + 0x98,0x8d,0xa9,0x7a, 0x8b,0x8c,0x72,0xd1, 0xc7,0x03,0xc8,0x66, 0xa4,0x34,0xcc,0x01, + 0x98,0x6c,0xb4,0xf4, 0x32,0x56,0xa7,0x2b, 0xf5,0xb9,0x36,0x42, 0x1b,0x8c,0x94,0x80, + 0x87,0x54,0x92,0x44, 0x61,0x05,0x21,0x2d, 0xf4,0x8f,0x87,0x3d, 0x41,0xdf,0x71,0x79, + 0x54,0x21,0xad,0xf5, 0x8f,0xd0,0xb0,0x0a, 0x40,0x61,0xa4,0x22, 0x9d,0x53,0x7d,0x59, + 0x3b,0x32,0x45,0xf9, 0x33,0x4e,0x94,0xb7, 0x75,0x36,0xb2,0x56, 0x01,0x83,0xa9,0x3b, + 0x24,0xe8,0xc1,0x56, 0xe4,0xfc,0x8e,0x7a, 0xad,0x9e,0xe1,0x48, 0xd5,0xf7,0xbb,0x48, + 0x79,0xfb,0x5e,0x67, 0x5e,0xc8,0x79,0x6d, 0x26,0x66,0x1b,0x5b, 0x67,0xa5,0xfa,0x25, + 0x68,0x39,0x6f,0x2c, 0xa2,0x4d,0x72,0x01, 0x3d,0xae,0x80,0x0e, 0x38,0xc8,0x87,0x77, + 0x87,0x27,0x8e,0x29, 0x47,0x2a,0xa3,0x5d, 0x92,0x35,0x5c,0xac, 0xcd,0x43,0x80,0x59, + 0x85,0x8a,0x04,0xe2, 0x0e,0xe3,0x41,0xac, 0xd0,0xe4,0xa9,0x9e, 0xc0,0xde,0x16,0x75, + 0x94,0xe4,0x26,0x85, 0x4e,0xfa,0xcb,0x38, 0x40,0x10,0x2f,0x77, 0x10,0x40,0xe8,0x73, + 0x9a,0x61,0xc1,0x19, 0x95,0x9e,0xfc,0xa7, 0xae,0x29,0x99,0x61, 0x52,0x32,0x33,0x03, + 0x1e,0x19,0x09,0xc6, 0x8d,0x4e,0x9e,0xb6, 0x79,0xa1,0x88,0x5d, 0xce,0x98,0x6c,0xcf, + 0x0e,0x8e,0xdb,0x3d, 0xde,0xcc,0x5e,0xec, 0xac,0x04,0x9c,0x24, 0x49,0x2b,0x89,0x85, + 0x6d,0xe7,0xbf,0x18, 0x13,0xd2,0x4a,0xa8, 0x64,0x1d,0x0b,0x90, 0x8b,0xb8,0x58,0x41, + 0xe5,0x16,0xf5,0xdd, 0x9d,0xcd,0xee,0xee, 0x44,0x41,0x18,0xd1, 0x17,0x9f,0xae,0x76, + 0xfa,0xe9,0x78,0x0b, 0xb1,0x8b,0xbe,0x9a, 0xbd,0xc4,0xec,0x04, 0x21,0x04,0xba,0x20, + 0x17,0x90,0xbd,0xe7, 0xa2,0xd3,0x0f,0xef, 0xcc,0x5b,0x14,0x96, 0x1d,0x80,0xc1,0x0c, + 0x24,0x41,0x24,0x25, 0xd4,0x41,0xc5,0x67, 0x3a,0x43,0xd2,0x59, 0xf6,0xe9,0xc5,0x31, + 0x40,0xc4,0x24,0x02, 0x26,0x1d,0xd8,0x07, 0x24,0x82,0x6e,0x44, 0x09,0x58,0x22,0x4c, + 0xe9,0x70,0x56,0x08, 0xc4,0xc1,0xcc,0xd5, 0x5b,0x6b,0x31,0xeb, 0xae,0x3b,0xf7,0x5b, + 0xf1,0xf0,0x79,0xcf, 0xbd,0xb7,0xe5,0xaf, 0x4d,0x39,0x1d,0xb5, 0x7b,0x0a,0x3f,0x1b, + 0xb6,0x2a,0x99,0xc8, 0xe0,0xb3,0x15,0x86, 0x73,0x05,0x00,0xc1, 0xcb,0x0b,0x90,0xc4, + 0x17,0x08,0xb1,0xe2, 0x04,0x0e,0xdd,0x94, 0x9c,0x4b,0x1c,0x82, 0x5b,0x4e,0xd8,0xa8, + 0x71,0x64,0xab,0x9c, 0xfb,0x8c,0xe4,0x27, 0x97,0x0e,0xd3,0xb2, 0x61,0xea,0x44,0xcb, + 0x08,0x2c,0x41,0x60, 0x81,0xd1,0x2e,0x0f, 0x28,0xeb,0xe9,0xe5, 0xaf,0x21,0x4d,0x5d, + 0x13,0x82,0x8c,0x53, 0x4e,0xa3,0xc6,0x7b, 0xf5,0xe4,0x79,0x67, 0x81,0xb9,0x64,0x43, + 0x38,0x90,0x29,0x83, 0x0e,0xa6,0x3b,0x26, 0x72,0xc3,0x62,0x19, 0xb9,0xb1,0x45,0x15, + 0x20,0xef,0xe8,0xe3, 0x58,0xc0,0xa3,0xbd, 0x0e,0x55,0x87,0x96, 0xba,0x4a,0xc6,0xd4, + 0xe9,0x9c,0x70,0xdd, 0x8d,0xf9,0xd0,0x51, 0xb8,0x9c,0x1e,0x50, 0x67,0x46,0x04,0xdb, + 0x5a,0xeb,0xa2,0x7a, 0xb2,0x4a,0x93,0xc9, 0x75,0x99,0x8f,0xaa, 0x1a,0x61,0x0f,0x56, + 0x40,0xc6,0x49,0x8c, 0x27,0xc5,0x86,0xca, 0xc8,0xb9,0x62,0x74, 0xed,0xe6,0x5d,0xb6, + 0xda,0x4b,0x4a,0x46, 0x8c,0x8e,0x11,0x1d, 0xdd,0xdd,0xb7,0xeb, 0xcd,0x5a,0x53,0xaf, + 0x87,0x7e,0xd0,0x80, 0xeb,0xce,0xbd,0xb0, 0xb1,0xeb,0xa7,0x3b, 0x57,0x77,0xcf,0x97, + 0x4e,0xbc,0xb6,0xe5, 0x7e,0x65,0xa8,0x40, 0xd7,0x8c,0xc8,0xdd, 0xa7,0x9e,0x2d,0x31, + 0x98,0xd4,0xe5,0x81, 0x99,0x44,0x30,0x24, 0x73,0x23,0x22,0xc0, 0x48,0xc8,0xd7,0xb7, + 0x39,0x0a,0x93,0x97, 0xdb,0xee,0xbe,0x89, 0xd1,0x90,0xc1,0x8f, 0xe0,0xb0,0x09,0xf2, + 0x64,0x87,0xd5,0x09, 0xc3,0x09,0xdd,0x84, 0x0e,0xec,0x27,0x74, 0x87,0x64,0x05,0x93, + 0xab,0x3b,0x7d,0x7c, 0x5f,0x5f,0x4d,0x3e, 0xaf,0x5e,0xc7,0x33, 0xb0,0xe5,0x37,0x41, + 0xc4,0xfa,0x52,0xd7, 0x78,0x14,0x8a,0xeb, 0x9c,0xcb,0x9b,0x5e, 0xb6,0xee,0xf9,0x52, + 0x4e,0x26,0x33,0x97, 0x47,0x92,0x98,0xda, 0x58,0x9b,0x22,0x2b, 0xa3,0xaa,0xdb,0xa5, + 0x5e,0x8c,0x2c,0x46, 0x64,0x37,0x5e,0x01, 0xd1,0x24,0x78,0x09, 0xf3,0xf4,0xc6,0x59, + 0xc7,0x7e,0x5a,0x46, 0xd3,0x4d,0x16,0x17, 0x43,0xe4,0x2a,0xdf, 0x2f,0x73,0x3d,0x10, + 0xc6,0x4f,0x24,0xac, 0x73,0xd3,0xcf,0xdd, 0xb6,0x83,0x45,0xb6, 0x56,0x57,0x8e,0x70, + 0x30,0x07,0x5c,0xdc, 0x0a,0x85,0x66,0xfe, 0x5d,0x30,0x0b,0xbf, 0xbb,0x7d,0x10,0x8f, + 0x6a,0x04,0x2a,0x28, 0x6b,0x24,0xeb,0x22, 0x90,0x9e,0x7c,0xbc, 0x61,0x0e,0x37,0x69, + 0x24,0x31,0x09,0x96, 0x92,0x71,0x0f,0xa3, 0x00,0xf8,0xfc,0xea, 0x88,0xc2,0x4f,0x04, + 0x85,0x61,0xd1,0x03, 0xcd,0xe8,0x86,0x91, 0x10,0xf2,0x7b,0x3f, 0x26,0x40,0xef,0xbd, + 0x87,0xa3,0x27,0x0e, 0x92,0x1f,0x5e,0xb7, 0x4c,0xe9,0xd6,0x84, 0xc4,0x39,0xdb,0xae, + 0x1e,0xe6,0x6c,0xe3, 0x21,0x59,0x3b,0x71, 0x7b,0x6a,0x5e,0xa9, 0xba,0x63,0x8e,0xcf, + 0xa3,0xdd,0x9d,0xb7, 0xae,0xf5,0x60,0xce, 0xd6,0x6b,0xca,0xce, 0x1e,0x8c,0x0d,0xd0, + 0xdf,0xa5,0xf1,0x4c, 0xea,0xd9,0xd1,0xcd, 0xb9,0xed,0xa9,0xa6, 0x1c,0xc1,0x92,0x0b, + 0x22,0xc8,0xa0,0x09, 0xe5,0x43,0xdf,0xcd, 0x90,0xaf,0x09,0x34, 0xc8,0x1b,0x32,0xa1, + 0x8c,0x36,0x61,0xd9, 0x24,0xd9,0x92,0x77, 0xe9,0x61,0xd3,0xb5, 0xa2,0x43,0xa2,0x6e, + 0x8b,0x09,0x46,0x7d, 0x88,0x4f,0x46,0x13, 0x86,0x1c,0xfc,0xa1, 0xeb,0x2b,0x90,0x2e, + 0x47,0x24,0xa5,0x95, 0x82,0xd0,0xc2,0x2b, 0x44,0x8b,0x76,0x7c, 0x38,0x60,0xd8,0x2d, + 0xa9,0x60,0xcd,0xe2, 0x95,0x81,0xd9,0x09, 0xe4,0x87,0x40,0xea, 0x94,0x9d,0x18,0x1e, + 0x69,0xa4,0x0d,0x0c, 0x0d,0xfb,0xe6,0x11, 0x64,0x9b,0xa4,0x81, 0xc7,0x4b,0x02,0xa4, + 0x93,0xa3,0x20,0xb0, 0x51,0xcb,0x2b,0x22, 0x8b,0x58,0x0a,0x01, 0xf1,0x74,0x30,0xd2, + 0x4a,0xd1,0x25,0x47, 0x7f,0x4c,0x0f,0x26, 0x07,0x8a,0x10,0xe8, 0xc5,0x84,0x27,0x8b, + 0x09,0x0a,0xc8,0x54, 0x90,0x37,0x64,0x90, 0x3c,0xfb,0xe0,0x45, 0xe5,0xba,0x08,0x6d, + 0xe3,0xbe,0xdb,0xef, 0x37,0x30,0x39,0x42, 0xe5,0xe7,0x02,0x0b, 0x20,0xb0,0x82,0xc2, + 0xf1,0x64,0x03,0x74, 0x24,0xd2,0x1c,0xa4, 0xb9,0x40,0xf8,0xa1, 0xee,0x48,0x6e,0x90, + 0xec,0x90,0x81,0xce, 0xf4,0x80,0x63,0x09, 0x37,0x48,0x70,0x90, 0x9b,0x20,0x54,0x20, + 0x79,0xb3,0xa2,0x10, 0x0a,0x90,0xec,0xc9, 0x26,0xef,0x86,0xf6, 0x72,0xc9,0x50,0x81, + 0x50,0xf3,0x64,0x87, 0x44,0x24,0x0d,0xdd, 0x90,0x3c,0x19,0x3b, 0x71,0x55,0x12,0xd1, + 0x12,0x41,0x64,0x50, 0x52,0x91,0x03,0x2e, 0x0b,0x7c,0x01,0xb4, 0x11,0x31,0xc5,0x73, + 0xef,0xa2,0x22,0x65, 0xdd,0x40,0x40,0xcf, 0x88,0x86,0x54,0x43, 0x2a,0x2a,0x99,0x91, + 0x15,0xc5,0x14,0x6f, 0x80,0xa6,0x64,0x72, 0xa2,0xa5,0xd8,0xa8, 0x9a,0x10,0x69,0x00, + 0x33,0xa0,0xae,0x54, 0x10,0xc3,0x1d,0x21, 0xd9,0x21,0xa6,0x48, 0x1e,0x8c,0x59,0xba, + 0x07,0x0e,0xe9,0x03, 0x43,0x02,0xa6,0x30, 0x07,0x32,0x5f,0x00, 0x24,0x10,0x12,0x45, + 0x91,0x55,0x09,0x04, 0x5c,0x71,0xd2,0xc4, 0xac,0x44,0xe2,0xa2, 0x05,0xf5,0xa0,0x69, + 0x22,0x29,0x9d,0x11, 0x72,0x40,0x52,0x44, 0x54,0x2d,0x14,0x31, 0x41,0x80,0xb9,0x61, + 0x04,0x06,0xef,0xbe, 0xbc,0x99,0xca,0xdf, 0x97,0x2c,0xfb,0xf9, 0x44,0x9f,0x3e,0x66, + 0xb6,0x7c,0xf7,0xf1, 0xe5,0x59,0x4a,0x43, 0x7e,0xdc,0xa1,0xe4, 0xe7,0x7f,0x3f,0x0e, + 0x38,0x7c,0x32,0xf8, 0x3c,0x6d,0x01,0x61, 0xd5,0xf5,0x4e,0xd9, 0x40,0xd2,0x68,0x4d, + 0xb0,0xab,0x94,0x6e, 0xce,0x72,0xe8,0x14, 0x98,0xc9,0x21,0x28, 0x9f,0x1c,0x69,0x00, + 0x5f,0x7d,0xb2,0x65, 0xa2,0xc9,0x9f,0x23, 0x03,0x02,0x0b,0x0c, 0x60,0x1f,0x1d,0x50, + 0x9a,0x49,0xd1,0x03, 0x49,0x3e,0x6c,0x26, 0xfb,0x48,0xee,0x60, 0x4c,0x44,0x16,0x21, + 0x6e,0x67,0x38,0x53, 0x56,0x91,0x4c,0x62, 0x30,0x3b,0xed,0xf1, 0xc2,0x6d,0x18,0x0c, + 0x49,0xd5,0x81,0xe8, 0xc3,0x9d,0x5a,0xc9, 0xca,0x01,0xba,0x06, 0xb8,0xa4,0x27,0x0c, + 0x86,0xca,0xc8,0xa4, 0x0d,0x24,0x0d,0xd8, 0x1b,0x5c,0x13,0x3c, 0x53,0xbb,0x8c,0x50, + 0xde,0xef,0x84,0x31, 0x82,0xc5,0x00,0x9e, 0x8c,0x21,0xf2,0x61, 0xe6,0xc2,0x74,0x41, + 0x60,0xa1,0xb6,0xf9, 0x3a,0xf3,0x4d,0x3d, 0xfd,0x7e,0x0c,0x51, 0xe5,0xb0,0xed,0xa2, + 0xf5,0x2b,0x06,0x1e, 0x2d,0x89,0x58,0x04, 0xdd,0xa1,0x02,0x56, 0x51,0x05,0x84,0x22, + 0x92,0x1c,0x5b,0x3b, 0x30,0x25,0x66,0x90, 0x0e,0x8c,0x81,0x26, 0x41,0x06,0xe8,0xa8, + 0xd2,0x02,0x1a,0x98, 0x21,0x74,0x53,0x3e, 0xfa,0x03,0x95,0x14, 0x72,0xa2,0x97,0x40, + 0xac,0x55,0xa4,0x14, 0x13,0x2a,0x0b,0x68, 0x56,0x08,0x19,0x90, 0x45,0xa4,0x15,0x30, + 0x89,0x03,0x66,0x48, 0x07,0x0c,0x0e,0x32, 0xc9,0xe8,0xc2,0x72, 0x80,0x4c,0x42,0x7b, + 0x9d,0xd8,0x7b,0x90, 0x82,0x9a,0xe9,0x64, 0x2e,0xf6,0xa7,0xc1, 0x90,0x86,0x24,0xd2, + 0x12,0x13,0x48,0x40, 0xdd,0x24,0x92,0x78, 0x41,0xcf,0x80,0x39, 0xb1,0x51,0x2e,0x88, + 0x8d,0xf0,0x57,0x1c, 0x14,0xcc,0x88,0xa5, 0xa2,0x81,0xc8,0x4f, 0xa6,0x39,0x83,0x6c, + 0xab,0x82,0x1d,0xf7, 0x17,0x00,0x06,0x0e, 0x40,0x62,0x7c,0x16, 0x8d,0xb4,0x70,0x05, + 0x0b,0x4c,0xb7,0x79, 0x0d,0x9c,0x48,0x80, 0x41,0x1b,0x6d,0xd5, 0xc0,0x9b,0x24,0x05, + 0x90,0x4c,0xc0,0x57, 0xa2,0x61,0xd0,0x86, 0xb6,0x75,0xa0,0xc5, 0x26,0x3a,0xbd,0xf2, + 0xcf,0x2e,0x2c,0x22, 0xce,0x8c,0x1e,0xa1, 0x35,0x3c,0x6c,0xa9, 0xdb,0xc9,0xde,0x72, + 0x9d,0x12,0x72,0xdb, 0x37,0x9f,0x1d,0x43, 0xba,0x23,0xe4,0xc2, 0x54,0x3d,0x5e,0xc8, + 0x06,0xee,0xc9,0x3b, 0xb2,0x76,0x60,0x4e, 0x89,0x3a,0xb2,0x54, 0x16,0x51,0x92,0x0a, + 0x79,0x1d,0x7a,0xe7, 0x96,0x36,0x17,0xcb, 0xb6,0x4e,0x52,0x16, 0xd0,0x00,0xf8,0x11, + 0xc2,0x08,0x34,0x19, 0x1e,0xf3,0x87,0x02, 0x05,0x72,0x4b,0xb7, 0x44,0xf2,0x66,0xd6, + 0x31,0xbf,0x48,0xd5, 0xf1,0x7f,0x6f,0x7b, 0xb3,0x00,0x1b,0x4d, 0x14,0x53,0x24,0x44, + 0xce,0x9a,0x30,0x4c, 0x22,0x06,0xae,0x02, 0xe7,0xc4,0x43,0x4f, 0x7d,0x02,0x62,0xa6, + 0x84,0x98,0x84,0x35, 0x6c,0x9e,0x16,0x90, 0x93,0xad,0xa4,0x80, 0x1e,0x49,0x25,0x61, + 0x26,0xd6,0x90,0x72, 0xc9,0x31,0x90,0xe3, 0xaf,0x86,0x01,0xa9, 0xac,0xad,0x42,0x13, + 0x5a,0x95,0xad,0x42, 0x02,0xc8,0x0a,0x40, 0xf2,0x65,0xca,0x73, 0xb4,0x9a,0xc3,0xb9, + 0x61,0x00,0x98,0xc0, 0x08,0x28,0x41,0x98, 0x58,0x56,0x01,0x0b, 0x6c,0x3a,0xdf,0xae, + 0x48,0x7b,0x93,0x3c, 0x77,0xc9,0x59,0xb2, 0x1c,0xab,0x09,0xf4, 0xdf,0x7c,0x9b,0xb2, + 0x2c,0x0c,0xf7,0x52, 0x5f,0x6b,0x55,0x84, 0x58,0x56,0xf8,0xa5, 0x21,0xe8,0x93,0xcd, + 0xe5,0x75,0x75,0xb9, 0xed,0xd2,0x9d,0xb6, 0x97,0xc5,0x94,0x9c, 0xa1,0x16,0x79,0xda, + 0x13,0xa2,0x2c,0x14, 0xea,0xf4,0xca,0x03, 0xc5,0xdb,0x8a,0x10, 0x3c,0x9f,0x17,0x76, + 0x01,0xae,0x7b,0x74, 0xc1,0x76,0xa5,0x84, 0x52,0x60,0xde,0xdc, 0xe7,0x08,0x6a,0xb1, + 0x8c,0x28,0x1c,0x3d, 0x99,0xae,0xb7,0x76, 0xb3,0x71,0xd1,0x8e, 0xf9,0x63,0x5a,0x8f, + 0x77,0xaf,0x8d,0xd1, 0x99,0x81,0x9b,0xdf, 0x9e,0x76,0xe2,0xba, 0x37,0xcb,0xbb,0x52, + 0xa3,0x6c,0x51,0x43, 0xdb,0xdd,0x74,0xcd, 0x79,0xd2,0x1e,0xac, 0xec,0xcf,0x26,0x42, + 0xb0,0x7b,0xee,0xf8, 0x99,0xa3,0x43,0x08, 0xa1,0x59,0x3d,0xcc, 0x99,0xab,0xf1,0x7d, + 0x7c,0xac,0xe1,0xdd, 0xe8,0x9d,0xd8,0x07, 0x56,0x06,0xba,0xd3, 0xd5,0x93,0x64,0xe1, + 0x3c,0x18,0x6f,0x06, 0x18,0xd4,0x93,0x58, 0x6b,0xde,0x73,0x25, 0x7d,0xaf,0x33,0x0c, + 0xf5,0xbc,0x66,0xb0, 0x81,0xe6,0x87,0xb7, 0xca,0x07,0xb4,0x81, 0x0e,0xa8,0x72,0xf1, + 0x68,0x1b,0x20,0x56, 0x40,0xf7,0x24,0x3b, 0xb0,0x20,0xb2,0x49, 0xd5,0x8a,0x40,0xd3, + 0xc2,0x42,0xef,0x49, 0x2a,0x2b,0xeb,0x64, 0x27,0x2c,0xd3,0x02, 0x1a,0x19,0x3e,0x89, + 0x53,0xab,0x3a,0x24, 0x9d,0x50,0x34,0xc9, 0x31,0x2b,0x16,0x3d, 0xf3,0x6e,0xfb,0x41, + 0x48,0x07,0xab,0x0c, 0x7a,0xa2,0x66,0x40, 0x5b,0xe2,0x81,0x85, 0xb2,0xaa,0x35,0x8b, + 0x58,0xc8,0xa2,0xd2, 0x28,0x52,0x22,0x5a, 0x20,0x56,0x02,0x5a, 0x2b,0x92,0x1a,0x8b, + 0xa8,0xae,0x28,0x61, 0x9b,0x45,0xba,0xfb, 0x57,0x3b,0x2c,0xa3, 0x84,0x17,0x1c,0x5f, + 0x26,0x78,0x18,0x00, 0x6a,0x49,0xe1,0x90, 0x38,0x85,0x65,0x64, 0x36,0xd2,0x18,0x90, + 0x9a,0xc3,0x19,0x2d, 0xb0,0x27,0x59,0x8e, 0xa4,0x44,0x09,0xea, 0x49,0x39,0x94,0x90, + 0xd6,0x4c,0xdb,0x00, 0xc4,0x0d,0x61,0xa9, 0x14,0x01,0x40,0x95, 0x92,0x28,0x41,0x60, + 0xb2,0x41,0x61,0xdd, 0x84,0xe5,0x84,0x20, 0x6e,0xc9,0xb2,0x10, 0x52,0x10,0xac,0x90, + 0xbd,0xa8,0x15,0x91, 0x61,0xe1,0x21,0x58, 0x49,0xac,0x31,0x26, 0x20,0x7b,0x49,0x62, + 0x18,0x92,0x62,0x40, 0x0e,0x25,0xd1,0x40, 0xc2,0x02,0x37,0xc5, 0x0d,0x2c,0x70,0x8a, + 0x0d,0xd1,0xb4,0x50, 0xae,0xac,0x4d,0x84, 0xe4,0x77,0x14,0x02, 0x78,0x2a,0x50,0xb4, + 0xb7,0x70,0x02,0x29, 0x48,0x28,0xa0,0x44, 0x2e,0x8d,0xa3,0x68, 0x15,0x86,0xa4,0x55, + 0x30,0xf4,0xbc,0x2e, 0x27,0x6d,0xd1,0x79, 0xbe,0x3f,0x27,0x4b, 0xff,0x78,0x9e,0x17, + 0x90,0xe2,0x78,0x7c, 0x3e,0x9f,0x40,0x50, 0x53,0xc4,0x71,0xa2, 0x28,0xa1,0xf7,0x40, + 0x48,0x84,0x05,0x08, 0xa2,0x10,0x10,0x45, 0x08,0x22,0x20,0x9f, 0xfc,0x5d,0xc9,0x14, + 0xe1,0x42,0x43,0x5f, 0x2f,0x40,0x4c, + // 0x5fe7 = 24551 data bytes ( 8%) }; static BZ2Manager_t blue_40_bin_mgr diff --git a/project/src/crypt.h b/project/src/crypt.h index a3862ed..390dbc7 100644 --- a/project/src/crypt.h +++ b/project/src/crypt.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/crypto/ssl-asm.S b/project/src/crypto/ssl-asm.S index 8bc103c..d125204 100644 --- a/project/src/crypto/ssl-asm.S +++ b/project/src/crypto/ssl-asm.S @@ -16,7 +16,7 @@ * This file is part of the WIT project. * * Visit http://wit.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/crypto/ssl-asm.h b/project/src/crypto/ssl-asm.h index 5259338..8641eab 100644 --- a/project/src/crypto/ssl-asm.h +++ b/project/src/crypto/ssl-asm.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/db-ctcode.c b/project/src/db-ctcode.c index 983603c..7499587 100644 --- a/project/src/db-ctcode.c +++ b/project/src/db-ctcode.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/db-ctcode.h b/project/src/db-ctcode.h index f9e03bc..e1dcc16 100644 --- a/project/src/db-ctcode.h +++ b/project/src/db-ctcode.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/le-menu.inc b/project/src/le-menu.inc new file mode 100644 index 0000000..4bfc760 --- /dev/null +++ b/project/src/le-menu.inc @@ -0,0 +1,250 @@ + +static const u8 back_brctr_bz2[] = // Back.brctr +{ + // decompressed size: 0x345 = 837 bytes + 0x00,0x00,0x03,0x45, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x38,0x0b, 0x72,0x0b,0x00,0x00, + 0xdd,0xff,0xff,0xf7, 0xe4,0x16,0x84,0x08, 0x51,0x70,0x64,0xb9, 0x6e,0xdc,0x30,0xbb, + 0xef,0xde,0xc0,0x44, 0xc0,0x06,0x00,0x40, 0x40,0x00,0x0a,0x0c, 0x00,0x20,0x20,0x01, + 0x01,0x00,0x20,0xb0, 0x01,0x61,0x80,0x1a, 0x69,0x0a,0x9a,0x7a, 0x86,0xd4,0x3d,0x46, + 0x9e,0xa6,0x9b,0x51, 0xea,0x36,0xa3,0x41, 0xe8,0x86,0x98,0x23, 0x40,0xda,0x83,0x69, + 0x3c,0xa3,0xd1,0x0e, 0x32,0x64,0xd0,0xc4, 0x62,0x68,0xc0,0x23, 0x01,0x30,0x80,0x30, + 0x13,0x4d,0x1a,0x64, 0x68,0x06,0x12,0x48, 0x8d,0x53,0xc8,0x65, 0x31,0x32,0x34,0x1a, + 0x06,0x80,0x00,0x00, 0x0d,0x19,0x00,0xd1, 0xe2,0x43,0x44,0x18, 0xb4,0x5d,0x9a,0xb5, + 0x3a,0x83,0xcc,0x40, 0xde,0x05,0x09,0x1b, 0x37,0xd8,0x81,0x40, 0x28,0x40,0x9d,0x40, + 0x0a,0x0d,0xe2,0x99, 0x2f,0x2d,0x34,0x4a, 0x4d,0x61,0x70,0x07, 0x26,0x20,0x18,0x15, + 0xf3,0x86,0x15,0x00, 0x4d,0x14,0x73,0xf1, 0xba,0x37,0x94,0x5b, 0x3a,0x0d,0xc2,0xd3, + 0x26,0xd7,0x44,0x85, 0xa8,0x80,0x4d,0x99, 0x45,0x96,0x67,0x6a, 0x8a,0x36,0x35,0x98, + 0x04,0x5f,0x72,0x66, 0x9d,0xc1,0x7b,0xdd, 0x7c,0x8a,0x9e,0x7f, 0x5f,0x2b,0xd0,0x38, + 0xd3,0x7d,0xf6,0xa2, 0x55,0xa7,0x54,0x0d, 0x09,0x09,0x8c,0x69, 0xc6,0xc9,0x6b,0xad, + 0xb1,0x65,0x65,0x28, 0x89,0x8d,0xca,0x9b, 0x20,0x82,0x50,0x91, 0x0f,0x11,0x88,0xac, + 0x29,0x50,0x41,0x9c, 0x2f,0x01,0x0b,0x28, 0x4b,0x2a,0x41,0xa4, 0x32,0x29,0x6c,0x44, + 0xb6,0xc7,0x90,0x18, 0x99,0x94,0x18,0x2f, 0xc0,0x99,0xf0,0x78, 0xb0,0x88,0xa2,0x49, + 0x22,0x71,0x98,0xe1, 0x3b,0x04,0x78,0x1f, 0x06,0x89,0xee,0x08, 0xe1,0x30,0x89,0xc3, + 0x1e,0x46,0x64,0x18, 0x50,0x5d,0xb8,0x22, 0xce,0x24,0x0e,0xdf, 0x3a,0xc5,0x5d,0x85, + 0x18,0x87,0x08,0x91, 0x92,0xa2,0x51,0x1d, 0x49,0x64,0x2a,0x4c, 0x98,0xc9,0x69,0x2b, + 0x08,0xac,0x33,0x67, 0x8a,0x85,0xc8,0x2a, 0xe5,0x71,0x3c,0xbc, 0xc9,0x10,0xb0,0x82, + 0x61,0x12,0xa5,0x18, 0x8a,0x84,0x59,0x02, 0x36,0xfd,0x88,0x14, 0x29,0x27,0x24,0xac, + 0x21,0xc4,0xa2,0x28, 0xb0,0xf2,0x46,0x1a, 0x9b,0xae,0x14,0x8d, 0x15,0x25,0x43,0x31, + 0xa0,0x82,0x68,0x2b, 0x4c,0xa6,0x02,0xd8, 0x9b,0x28,0x9a,0x58, 0xe3,0x19,0x81,0xc5, + 0xe2,0xf1,0x1d,0xc9, 0xcb,0xf3,0x1a,0x7a, 0x85,0x61,0x13,0x8a, 0xa4,0x04,0xd8,0x13, + 0x26,0xca,0x38,0x70, 0xc8,0xe8,0x66,0x76, 0x31,0xe3,0x86,0x3f, 0xc5,0xdc,0x91,0x4e, + 0x14,0x24,0x0e,0x02, 0xdc,0x82,0xc0, + // 0x1a7 = 423 data bytes (51%) +}; + +static BZ2Manager_t back_brctr_mgr + = { back_brctr_bz2, sizeof(back_brctr_bz2), 0, 0 }; + +//----------------------------------------------------------------------------------- + +static const u8 courseselectcup_brctr_bz2[] = // CourseSelectCup.brctr +{ + // decompressed size: 0x4f4 = 1268 bytes + 0x00,0x00,0x04,0xf4, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xc7,0x72, 0x96,0x23,0x00,0x01, + 0x70,0x7f,0xff,0xf7, 0x5c,0x25,0x04,0x44, 0x45,0x7f,0x84,0xff, 0x2e,0xc8,0x00,0xbb, + 0xef,0xde,0xf0,0xc0, 0x40,0x00,0x10,0x44, 0xd0,0x06,0x40,0x18, 0x00,0x40,0x14,0x08, + 0x04,0x06,0x10,0xc0, 0x01,0xe0,0xea,0x55, 0x21,0x22,0x9a,0x4a, 0x79,0x29,0xfa,0x4f, + 0x54,0x0f,0x53,0xd4, 0x1e,0x28,0x69,0xb5, 0x34,0x34,0xf2,0x80, 0x00,0x69,0xa6,0x9e, + 0xa3,0xd4,0xd1,0x90, 0xd3,0x7a,0x05,0x0e, 0x61,0x34,0x64,0x68, 0x68,0x64,0x30,0x8d, + 0x0c,0x86,0x9a,0x34, 0x00,0x62,0x32,0x64, 0x03,0x08,0x06,0x03, 0x98,0x4d,0x19,0x1a, + 0x1a,0x19,0x0c,0x23, 0x43,0x21,0xa6,0x8d, 0x00,0x18,0x8c,0x99, 0x00,0xc2,0x01,0x80, + 0x48,0x94,0x69,0x44, 0xf4,0x6d,0x22,0x6c, 0x89,0x89,0x80,0x00, 0x02,0x60,0x26,0x00, + 0x00,0x00,0x36,0xa1, 0xdb,0x8b,0x37,0x3e, 0x4e,0x8e,0x6f,0xbd, 0x42,0xb9,0x9c,0x2e, + 0x82,0x99,0x34,0x4d, 0x29,0x23,0x19,0x8a, 0x04,0x97,0x23,0x9b, 0x4a,0x6a,0x43,0x64, + 0x90,0x34,0x31,0x69, 0x62,0x14,0x80,0x6a, 0xd6,0x1a,0x20,0x2a, 0x0c,0x21,0xca,0x11, + 0x43,0x75,0x35,0x01, 0x04,0x42,0x0d,0x80, 0xd8,0x71,0x5f,0x83, 0x53,0x30,0x35,0xf8, + 0xc3,0x86,0x01,0x29, 0x6d,0xe4,0x83,0x99, 0xf7,0x5f,0x7d,0xd1, 0xbb,0x83,0xb3,0x76, + 0xcd,0xe2,0x94,0x01, 0x9f,0xc5,0x87,0x7f, 0xc7,0x93,0x2f,0x92, 0xa1,0x54,0x71,0xb5, + 0x4d,0xed,0x1f,0x59, 0xe6,0x39,0x36,0xea, 0x9b,0xe5,0xbf,0x9e, 0x6a,0x74,0xcb,0x8f, + 0x86,0x56,0x7f,0x5f, 0x36,0xcf,0x6c,0x01, 0x6b,0xca,0xf7,0x27, 0xef,0xf8,0x62,0xc1, + 0xf4,0xe0,0xbd,0x70, 0x11,0x5b,0xdc,0xf8, 0xcb,0x81,0x9c,0x52, 0xc7,0x16,0x9a,0x65, + 0xec,0xcb,0x5c,0x24, 0x6d,0x21,0xa0,0x1f, 0xd4,0x2e,0x82,0xd8, 0xdb,0x6d,0xb7,0x08, + 0x24,0xdd,0x11,0x44, 0xd0,0x43,0x75,0x75, 0x8e,0x26,0xe8,0x06, 0x45,0x07,0x78,0xde, + 0xe7,0x72,0xc6,0x78, 0x77,0x7f,0x9a,0x84, 0x34,0x6f,0x88,0xae, 0x7e,0x74,0x26,0xd3, + 0x2e,0xf9,0x49,0x1a, 0xe9,0xb2,0x28,0xa5, 0x83,0x42,0x99,0x84, 0x02,0x61,0xc4,0x30, + 0x65,0xe8,0x42,0x37, 0xe7,0x84,0x03,0x94, 0x5e,0x7a,0x10,0x13, 0x33,0x52,0x74,0xbf, + 0x5a,0xb9,0x96,0x04, 0x59,0x93,0x57,0xce, 0x05,0x6a,0x8b,0x63, 0x2c,0xc4,0x2d,0xaa, + 0x27,0x88,0x0a,0xc6, 0x03,0x11,0xc6,0x82, 0x6a,0x72,0x50,0x5f, 0xf4,0x81,0x64,0xa6, + 0x22,0xb8,0x15,0xb3, 0x44,0xda,0x21,0x69, 0xb8,0x2e,0x15,0xad, 0x68,0x1e,0x8b,0xc9, + 0x74,0x8e,0x83,0x5d, 0x54,0x4a,0xb4,0xdb, 0x1b,0x75,0xc5,0x6d, 0x07,0xfc,0x55,0xc0, + 0x9e,0xb8,0xae,0x25, 0x71,0x5d,0x05,0x22, 0xa1,0x29,0x24,0x54, 0x91,0x51,0x0d,0x50, + 0xc2,0x5a,0x9a,0x11, 0xb5,0x62,0xa4,0x57, 0x12,0x2a,0x94,0x01, 0x12,0x20,0x46,0xba, + 0xe8,0x29,0x6d,0xde, 0x90,0x98,0x8a,0x26, 0xbc,0x56,0x50,0x56, 0xa6,0x43,0x65,0xd2, + 0x2c,0x09,0xe5,0x8a, 0xe6,0x52,0x1b,0x44, 0x01,0x68,0xb4,0x51, 0x7b,0x76,0x07,0xf2, + 0xaa,0x52,0x92,0x46, 0x98,0x15,0x84,0x63, 0x58,0x16,0x45,0x26, 0x80,0x80,0xa8,0x23, + 0x52,0xe4,0x63,0x1c, 0x96,0x6c,0xea,0x2a, 0xcf,0x9a,0x6c,0x1b, 0x6c,0xd8,0x0d,0x50, + 0x8f,0xd0,0x49,0x07, 0xfc,0x5d,0xc9,0x14, 0xe1,0x42,0x43,0x1d, 0xca,0x58,0x8c, + // 0x21f = 543 data bytes (43%) +}; + +static BZ2Manager_t courseselectcup_brctr_mgr + = { courseselectcup_brctr_bz2, sizeof(courseselectcup_brctr_bz2), 0, 0 }; + +//----------------------------------------------------------------------------------- + +static const u8 cupselectcup_brctr_bz2[] = // CupSelectCup.brctr +{ + // decompressed size: 0x4d6 = 1238 bytes + 0x00,0x00,0x04,0xd6, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x24,0xe3, 0xf5,0x46,0x00,0x01, + 0x67,0xff,0xff,0xf7, 0xfc,0x35,0x14,0x52, 0x55,0x7f,0x80,0xf9, 0x2e,0x8c,0x01,0xbb, + 0xef,0xde,0xc8,0x40, 0x40,0x12,0x0c,0x48, 0x40,0x00,0x40,0x18, 0x12,0x20,0x00,0x00, + 0x14,0x06,0x90,0xc0, 0x01,0xf7,0x63,0x65, 0x99,0xb0,0x92,0x53, 0x42,0x32,0x65,0x3d, + 0x40,0xd0,0x34,0x06, 0x80,0x06,0x80,0x68, 0xd1,0xa3,0x40,0x0d, 0x00,0x1a,0x63,0x48, + 0x25,0x34,0x8a,0x7a, 0x44,0x00,0x34,0x03, 0x43,0x26,0x80,0x00, 0x06,0x8d,0x00,0x00, + 0x00,0xd0,0x6d,0x41, 0xcd,0x1a,0x34,0x34, 0xc2,0x01,0xa6,0x04, 0xd3,0x40,0x19,0x0d, + 0x0c,0x40,0x1a,0x31, 0x1a,0x18,0x23,0x20, 0x02,0x45,0x21,0x4f, 0x26,0xa7,0xa2,0x64, + 0x06,0x80,0x00,0x03, 0x40,0x00,0x00,0x06, 0x80,0x00,0x64,0x2b, 0x55,0xbb,0x6d,0x71, + 0x3c,0xa4,0x37,0x78, 0x52,0x06,0x89,0x06, 0x22,0xc3,0xb1,0xa0, 0x55,0x80,0xcc,0xde, + 0x6a,0x29,0x88,0xb3, 0xb2,0x4e,0x81,0x87, 0xe4,0x00,0x08,0x00, 0xf8,0x9a,0xf0,0xde, + 0x87,0xd4,0x81,0x38, 0x64,0x07,0xa8,0x45, 0x23,0x73,0xb0,0x88, 0x22,0x1c,0xe0,0x30, + 0x03,0x30,0x77,0xd3, 0x71,0x79,0x91,0x6f, 0x33,0x2d,0xc9,0x0a, 0xa4,0xba,0xee,0x3e, + 0x9b,0x49,0xb6,0x5a, 0x0d,0x6d,0x4a,0x95, 0x66,0xdb,0x28,0x20, 0x0f,0x3a,0xda,0x1b, + 0xdb,0xfc,0x1c,0x3c, 0x54,0x45,0xe1,0x11, 0xe8,0xc2,0xaf,0x73, 0xcb,0xdd,0xf1,0xe9, + 0x61,0x95,0xbe,0x2e, 0x64,0xc8,0xfe,0xd4, 0x7d,0x94,0xa7,0x87, 0x71,0xae,0x58,0x78, + 0x0a,0x2d,0x7f,0x05, 0x4b,0x1d,0x16,0x7a, 0xb1,0xed,0x63,0x46, 0x08,0xaa,0xd6,0x8d, + 0x17,0xab,0xc8,0xf5, 0xd2,0xf3,0xdc,0xd5, 0xa3,0x72,0x85,0x80, 0x61,0x32,0x03,0x35, + 0x37,0x59,0x6c,0x49, 0x24,0x92,0x71,0x88, 0xc9,0xc7,0x42,0x91, 0x3f,0x70,0xa1,0x08, + 0xf4,0x84,0x1c,0xab, 0x5d,0x7d,0x27,0xcd, 0x6a,0xde,0xd6,0x84, 0x34,0x67,0x88,0x9a, + 0x3d,0x54,0x26,0xe7, 0x64,0x28,0x7a,0x83, 0x2d,0xcd,0x09,0x65, 0x06,0x80,0x60,0x98, + 0x72,0x8c,0x19,0x54, 0x20,0x8b,0x31,0xc0, 0x41,0x69,0xd4,0xf7, 0x20,0x11,0x30,0xb1, + 0x19,0x5a,0xa1,0x01, 0x5c,0xd9,0xdb,0xac, 0x22,0xf6,0x7b,0x87, 0x28,0xa7,0x1a,0x9e, + 0x15,0x1a,0xf4,0x26, 0x51,0x83,0x84,0xa6, 0xb8,0x18,0xb6,0xc1, 0x1b,0xcf,0x46,0x0a, + 0x7b,0x64,0xcf,0x11, 0x8b,0xa8,0x0c,0x7e, 0x3e,0x0f,0xb0,0x9c, 0x95,0xf8,0x84,0x77, + 0x25,0xfc,0x4e,0x99, 0x31,0x76,0x64,0xa2, 0x51,0x21,0x9a,0x90, 0xa7,0x56,0x45,0x95, + 0x21,0x04,0x82,0xa7, 0x0c,0xa8,0x30,0x84, 0x40,0x94,0x70,0x24, 0x5b,0x48,0x9c,0x79, + 0x85,0x0b,0x5e,0x72, 0x41,0x42,0x72,0x62, 0x28,0xd2,0x22,0x70, 0x10,0x80,0x8b,0x74, + 0x46,0x4c,0xc7,0x7c, 0xc4,0xc4,0x4b,0x15, 0xb3,0x8c,0x6c,0xc0, 0x41,0x44,0x8a,0xab, + 0x54,0x01,0x58,0x4f, 0x38,0x4e,0x94,0x92, 0x0d,0x84,0x00,0xae, 0x57,0x24,0xbc,0xa6, + 0x06,0x1d,0x32,0x34, 0x8b,0x00,0x52,0x11, 0x93,0x50,0x54,0x2d, 0x24,0x01,0x38,0x63, + 0xb4,0x33,0xf5,0xe9, 0x08,0x42,0x8c,0x49, 0xf4,0x9e,0x48,0x12, 0x48,0xfe,0x0a,0x03, + 0xa4,0x8f,0x20,0x77, 0x40,0x7f,0x8b,0xb9, 0x22,0x9c,0x28,0x48, 0x12,0x71,0xfa,0xa3, + 0x00, + // 0x211 = 529 data bytes (43%) +}; + +static BZ2Manager_t cupselectcup_brctr_mgr + = { cupselectcup_brctr_bz2, sizeof(cupselectcup_brctr_bz2), 0, 0 }; + +//----------------------------------------------------------------------------------- + +static const u8 course_name_brlyt_bz2[] = // course_name.brlyt +{ + // decompressed size: 0x2d4 = 724 bytes + 0x00,0x00,0x02,0xd4, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x57,0x6d, 0x2d,0xe6,0x00,0x00, + 0x9f,0x7f,0xff,0xf6, 0xf7,0x44,0x64,0x44, 0x01,0x60,0x40,0xbc, 0xc4,0x54,0x20,0xbf, + 0xcf,0xde,0xe0,0x40, 0x40,0x04,0x00,0x04, 0x02,0x02,0x40,0xc8, 0x47,0x04,0x00,0x04, + 0x08,0x44,0x05,0xb0, 0x01,0x38,0x24,0x1a, 0x49,0xa4,0xc3,0x51, 0xa6,0x8d,0x34,0x1a, + 0x00,0x00,0x00,0x00, 0x1a,0x0d,0x06,0x4d, 0x00,0xe1,0xa6,0x99, 0x18,0x8c,0x26,0x98, + 0x08,0x60,0x13,0x4c, 0x23,0x04,0xc4,0xc8, 0x69,0x91,0xa1,0xa0, 0x12,0x9a,0x49,0xa5, + 0x31,0x1e,0xa1,0x93, 0x40,0x64,0x34,0x00, 0xd3,0x46,0x9a,0x00, 0xd0,0x06,0x98,0x34, + 0x9e,0x92,0x6c,0x26, 0x91,0x4e,0x32,0xd2, 0x34,0x3b,0x6d,0xdf, 0x3c,0xdd,0x5e,0x78, + 0xb3,0x16,0x01,0x30, 0x90,0x92,0x8b,0x94, 0xe0,0x4d,0x06,0xac, 0x41,0xa3,0x00,0xad, + 0x2b,0x80,0x40,0x40, 0x98,0xe2,0x27,0x73, 0x64,0x91,0xd0,0x65, 0xc4,0xef,0x65,0xe0, + 0x86,0xb5,0x33,0x9f, 0x29,0x98,0xcf,0xba, 0xe1,0x3d,0x41,0xd9, 0x86,0x91,0x24,0x97, + 0xba,0x07,0x40,0x63, 0x67,0x01,0xe9,0x2b, 0x9f,0x83,0x8d,0x21, 0x58,0xb4,0xa0,0x45, + 0x3a,0x1a,0xd8,0xa2, 0x21,0xa0,0x8b,0x82, 0x69,0x17,0x7e,0x62, 0x83,0x20,0x8c,0x64, + 0xe4,0xa6,0x53,0x29, 0xc0,0x62,0x2b,0xf2, 0x71,0xfe,0x90,0x6a, 0x41,0xd9,0x74,0xbd, + 0x00,0xba,0x2f,0xb1, 0x30,0x4b,0xe4,0x39, 0x7e,0x16,0x29,0xc8, 0x7b,0x59,0xc3,0x29, + 0x55,0xb4,0xd6,0x8c, 0x30,0x15,0x48,0xb1, 0x83,0xdc,0xbb,0x9c, 0x78,0x79,0xd6,0x49, + 0x8e,0xc2,0x20,0x42, 0x41,0xc2,0x3f,0xc0, 0xa3,0xeb,0xbe,0x28, 0xba,0xb0,0x4c,0xe8, + 0x6a,0x0e,0x08,0x60, 0x12,0xa4,0x64,0x08, 0xe7,0x11,0x81,0xe8, 0x04,0xc1,0xe0,0x29, + 0x61,0x07,0x65,0x00, 0xc6,0x0b,0xdd,0x6d, 0x27,0xdc,0x58,0xa3, 0x92,0xe4,0xb4,0x0d, + 0x43,0x08,0x52,0x40, 0x55,0xb5,0x02,0xc1, 0x9c,0x04,0x25,0x1a, 0x26,0xc6,0x69,0xf2, + 0x74,0x38,0xc5,0x46, 0x27,0x01,0x41,0x0e, 0x14,0x14,0x14,0x13, 0x74,0x91,0x20,0xc8, + 0x2b,0xe7,0xea,0x0c, 0xf5,0x19,0xaf,0x83, 0x55,0x1c,0xff,0x17, 0x72,0x45,0x38,0x50, + 0x90,0x57,0x6d,0x2d, 0xe6, + // 0x165 = 357 data bytes (50%) +}; + +static BZ2Manager_t course_name_brlyt_mgr + = { course_name_brlyt_bz2, sizeof(course_name_brlyt_bz2), 0, 0 }; + +//----------------------------------------------------------------------------------- + +static const u8 cup_icon_64x64_common_brlyt_bz2[] = // cup_icon_64x64_common.brlyt +{ + // decompressed size: 0xdc4 = 3524 bytes + 0x00,0x00,0x0d,0xc4, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xfb,0x25, 0x44,0xac,0x00,0x02, + 0xe7,0xff,0xff,0xff, 0xff,0xf4,0x4d,0x44, 0x01,0x7f,0xe1,0xfc, 0xc5,0x54,0x20,0xbf, + 0xef,0xde,0xe4,0xd8, 0x04,0x40,0x1c,0x40, 0x00,0x4c,0x04,0x1c, 0x02,0x00,0x40,0x04, + 0x84,0x40,0x41,0xc0, 0x02,0xae,0x00,0x00, 0x05,0x6a,0x9a,0x7a, 0x80,0x34,0x00,0xd0, + 0x36,0x90,0x00,0x00, 0x06,0x86,0x80,0x00, 0xd0,0x00,0x00,0x00, 0x38,0x34,0x68,0xd0, + 0x34,0x1a,0x03,0x26, 0x20,0x32,0x34,0x32, 0x00,0x03,0x4d,0x32, 0x00,0x00,0x18,0x20, + 0x01,0xc1,0xa3,0x46, 0x81,0xa0,0xd0,0x19, 0x31,0x01,0x91,0xa1, 0x90,0x00,0x1a,0x69, + 0x90,0x00,0x00,0xc1, 0x00,0x04,0x49,0x22, 0x68,0x99,0x53,0xf5, 0x3d,0x08,0x4d,0x0f, + 0x4c,0x89,0xe9,0x36, 0x84,0x0f,0x49,0xea, 0x64,0x30,0x8d,0x0d, 0xa8,0x62,0x34,0xd0, + 0xcd,0x4c,0xd1,0xa9, 0xb4,0x6d,0x49,0xad, 0x70,0xbc,0x8c,0xc7, 0xb3,0x6b,0xe7,0xb3, + 0xab,0x6f,0x1e,0xea, 0xc0,0x41,0x89,0x1d, 0x80,0x20,0xb6,0x52, 0x29,0x0a,0x01,0xe5, + 0x2c,0x69,0x48,0x63, 0x77,0x0e,0x5d,0x1a, 0x43,0x98,0x10,0xe5, 0xa5,0xe8,0x9a,0xb5, + 0x53,0x6e,0x5c,0x6a, 0xdd,0xe6,0x4e,0x58, 0x79,0xf8,0x7e,0x6f, 0x17,0x8b,0xa6,0x28, + 0xfd,0x44,0x01,0x21, 0x35,0x6b,0xc7,0x6a, 0x47,0xbb,0xe8,0xe6, 0x66,0x47,0xaa,0x8e, + 0x2e,0x49,0xe0,0xc7, 0x4b,0xe9,0xc3,0x73, 0xd7,0xa2,0xf0,0xe1, 0x9c,0x7f,0x3e,0x4b, + 0x20,0x06,0xd4,0x50, 0xce,0xaa,0x1d,0x92, 0x53,0x3d,0x90,0x1a, 0xae,0x2d,0xfe,0x4f, + 0xe2,0xf1,0x6e,0xab, 0x6c,0x6c,0x5f,0x8d, 0x19,0xf1,0xeb,0xd2, 0xad,0x55,0x09,0x55, + 0x40,0x55,0x53,0x55, 0x4a,0xd5,0x52,0x85, 0x55,0x35,0x54,0x95, 0x53,0xdd,0x56,0x16, + 0xd5,0x43,0x55,0x4e, 0x9f,0x6d,0x23,0xcc, 0x89,0xdc,0x82,0x89, 0x86,0xc8,0x90,0xef, + 0x49,0x24,0x92,0x49, 0x24,0x92,0x49,0x24, 0x94,0x5a,0x12,0xa0, 0xb4,0x92,0x40,0x1b, + 0x0a,0x84,0x46,0x23, 0xd0,0xc9,0x6a,0xeb, 0x6e,0xee,0xee,0xee, 0xee,0xfd,0x3b,0xbb, + 0x1d,0x7c,0xbf,0x86, 0x5a,0x17,0xfa,0xf7, 0xd1,0xa4,0x6c,0x49, 0x24,0x84,0x11,0xce, + 0x8c,0x60,0xb0,0x54, 0x34,0x5a,0x03,0x43, 0x11,0x82,0xd9,0x18, 0x3e,0x42,0xab,0x94, + 0x8f,0x93,0x56,0xdb, 0x7e,0xad,0xef,0xd5, 0x69,0x3b,0x04,0xa2, 0x44,0x38,0x11,0x7a, + 0x85,0x1b,0xd7,0x71, 0x76,0xb0,0xf4,0x23, 0xb3,0x76,0x41,0xc6, 0x64,0x21,0x08,0x68, + 0xd1,0xe3,0xb1,0x21, 0xc7,0x8a,0x80,0xd3, 0xd0,0x47,0x59,0x1d, 0x84,0x3a,0x31,0xe8, + 0xa3,0xe0,0x0f,0x08, 0x78,0x53,0xf7,0xc0, 0x04,0xe5,0x62,0xe9, 0x58,0x47,0xe4,0xb4, + 0xb5,0x83,0x5f,0x49, 0x5c,0x38,0x5d,0x8b, 0xc7,0x7d,0xde,0x9e, 0x9f,0x7f,0x7f,0xf4, + 0x26,0xcd,0xaa,0x50, 0x8d,0x70,0x15,0xcf, 0x33,0x3f,0x01,0x6a, 0xb1,0x5f,0xd9,0xc0, + 0x5d,0xd2,0x76,0xe8, 0x0f,0x29,0xb8,0x79, 0x8c,0x0c,0x7b,0x67, 0x01,0x98,0xef,0xdc, + 0x68,0x95,0x2a,0x55, 0x56,0x5d,0xc7,0xd4, 0xfa,0xcb,0x4b,0x9b, 0x1c,0xee,0x2d,0x0e, + 0x2e,0x3d,0x47,0x13, 0xd5,0x03,0x8d,0x18, 0xc1,0x43,0x18,0x15, 0x90,0x39,0xd9,0x9d, + 0x47,0x8f,0xdb,0x24, 0xde,0xc1,0x36,0xb0, 0x7a,0x55,0xd9,0xda, 0x6f,0x72,0x19,0xb5, + 0x51,0x9a,0x60,0x0d, 0xc0,0xde,0xf2,0xcb, 0x1a,0xef,0x23,0x79, 0x78,0x40,0xc1,0x13, + 0xaf,0xe5,0x75,0x1c, 0xee,0xb3,0x63,0xb7, 0x97,0x1b,0x93,0x17, 0x32,0xaa,0xaa,0x51, + 0x42,0xb3,0xa3,0x24, 0x91,0xcc,0xcb,0x37, 0x04,0x03,0x38,0x73, 0x5e,0xc3,0x02,0xcd, + 0x0a,0xd8,0xc9,0x40, 0x66,0x7a,0xc6,0xc3, 0x88,0xcc,0x56,0x06, 0x18,0x8c,0xb7,0x4b, + 0x3c,0xd8,0x0e,0x84, 0x4c,0xf9,0x26,0x78, 0x55,0x12,0xb1,0x38, 0x3c,0x9f,0x6e,0x87, + 0x40,0x18,0xf5,0x1c, 0xe6,0x9b,0x65,0x3e, 0xe7,0xde,0x35,0x80, 0xa3,0x0b,0xdc,0x0b, + 0xdf,0x62,0x25,0xc5, 0xcc,0xc0,0x9d,0x06, 0xb1,0xc4,0xdc,0xc3, 0x5f,0xb7,0xb3,0xed, + 0x47,0x20,0x45,0x50, 0xd2,0x8c,0x16,0x23, 0x48,0xf7,0x0b,0xfe, 0xb4,0xee,0xe1,0x6b, + 0xf4,0x96,0xb6,0x05, 0x7d,0x9f,0x7e,0x24, 0xae,0x7c,0xb4,0xe9, 0xf9,0xf1,0x9d,0x42, + 0x65,0xcc,0x64,0xff, 0x7d,0xd7,0x0b,0xde, 0xc6,0x6f,0x87,0xe5, 0x25,0x5a,0xd8,0x0a, + 0x87,0x7c,0x54,0x20, 0x8f,0xfe,0x2e,0xe4, 0x8a,0x70,0xa1,0x21, 0xf6,0x4a,0x89,0x58, + // 0x2c0 = 704 data bytes (20%) +}; + +static BZ2Manager_t cup_icon_64x64_common_brlyt_mgr + = { cup_icon_64x64_common_brlyt_bz2, sizeof(cup_icon_64x64_common_brlyt_bz2), 0, 0 }; + +//----------------------------------------------------------------------------------- + +static const u8 tt_hatena_64x64_tpl_bz2[] = // tt_hatena_64x64.tpl +{ + // decompressed size: 0x2040 = 8256 bytes + 0x00,0x00,0x20,0x40, + + // bzipped data + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x63,0x6c, 0x74,0x77,0x00,0x00, + 0x3e,0x7c,0x10,0xe2, 0x84,0x04,0x00,0x40, 0x04,0x40,0x00,0x40, 0x00,0x00,0x00,0x80, + 0x08,0x20,0x00,0x50, 0x81,0xa0,0x68,0x05, 0x54,0xf5,0x26,0xd4, 0xd3,0x35,0x2b,0x96, + 0x0d,0x3b,0x5a,0x9e, 0x7d,0x9d,0xc0,0xc3, 0xb1,0x53,0x01,0xc8, 0x2e,0x37,0x79,0x07, + 0xe2,0xee,0x48,0xa7, 0x0a,0x12,0x0c,0x6d, 0x8e,0x8e,0xe0, + // 0x4b = 75 data bytes ( 1%) +}; + +static BZ2Manager_t tt_hatena_64x64_tpl_mgr + = { tt_hatena_64x64_tpl_bz2, sizeof(tt_hatena_64x64_tpl_bz2), 0, 0 }; + diff --git a/project/src/lib-analyze.c b/project/src/lib-analyze.c index 18788e8..3f2049e 100644 --- a/project/src/lib-analyze.c +++ b/project/src/lib-analyze.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-analyze.h b/project/src/lib-analyze.h index ae89804..ae4de95 100644 --- a/project/src/lib-analyze.h +++ b/project/src/lib-analyze.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-breff.c b/project/src/lib-breff.c index 6f0c409..41da20d 100644 --- a/project/src/lib-breff.c +++ b/project/src/lib-breff.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-breff.h b/project/src/lib-breff.h index 50807d1..d5183d1 100644 --- a/project/src/lib-breff.h +++ b/project/src/lib-breff.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-brres.c b/project/src/lib-brres.c index f89ae29..002d393 100644 --- a/project/src/lib-brres.c +++ b/project/src/lib-brres.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -827,11 +827,7 @@ static int iterate_brres_group const brres_entry_t * entry_end = entry + n_entries; int stat = 0; - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->index = 0; it->fst_item = 0; @@ -973,11 +969,7 @@ int IterateFilesBRRES //----- cut files? - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->index = 0; it->fst_item = 0; @@ -1351,11 +1343,7 @@ int IterateStringsBRSUB it2.size = it->file_size; it2.endian = it->endian; //it2.clean_path = ; - #if USE_ITERATOR_PARAM // [[itpar]] copy itpar it2.itpar.cut_files = true; - #else - it2.cut_files = true; - #endif CutFilesBRSUB( &it2, brsub_string_func, it, 0, 0 ); return count + it2.index; } diff --git a/project/src/lib-brres.h b/project/src/lib-brres.h index d021a82..8e409f5 100644 --- a/project/src/lib-brres.h +++ b/project/src/lib-brres.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-bzip2.c b/project/src/lib-bzip2.c index 25a3668..9459c38 100644 --- a/project/src/lib-bzip2.c +++ b/project/src/lib-bzip2.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-bzip2.h b/project/src/lib-bzip2.h index 290a0cb..bc6a27f 100644 --- a/project/src/lib-bzip2.h +++ b/project/src/lib-bzip2.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-checksum.c b/project/src/lib-checksum.c index 0355e0b..6d89653 100644 --- a/project/src/lib-checksum.c +++ b/project/src/lib-checksum.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -236,10 +236,12 @@ int IsSSChecksum ( sha1_size_t *res, ccp source, int slen ) ccp szs_cache_dir = 0; ParamField_t szs_cache = {0}; +ParamField_t szs_cache_append = {0}; static bool szs_cache_loaded = false; static bool szs_cache_dirty = false; static u64 szs_cache_last_scan = 0; +//static u64 szs_cache_last_append = 0; /////////////////////////////////////////////////////////////////////////////// @@ -299,7 +301,7 @@ void ScanSZSCache ( ccp dir_name, bool purge ) /////////////////////////////////////////////////////////////////////////////// -enumError LoadSZSCache() +enumError LoadSZSCache(void) { if ( szs_cache_loaded || !szs_cache_dir ) return ERR_OK; @@ -315,6 +317,9 @@ enumError LoadSZSCache() if (err) return err; + const typeof(parallel_count) saved_parallel_count = parallel_count; + parallel_count = 0; + while (fgets(buf,sizeof(buf)-1,F.f)) { char *ptr = buf; @@ -351,6 +356,8 @@ enumError LoadSZSCache() *name = 0; if (!strcmp(name_buf,"LAST-CACHE-SCAN")) szs_cache_last_scan = strtoul(ptr,0,10); + // else if (!strcmp(name_buf,"APPEND")) + // szs_cache_last_append = strtoul(ptr,0,10); } continue; } @@ -373,6 +380,8 @@ enumError LoadSZSCache() } CloseFile(&F,0); + parallel_count = saved_parallel_count; + return ERR_OK; } @@ -393,6 +402,9 @@ static int cmp_szs_cache ( const void * va, const void * vb ) enumError SaveSZSCache() { + if ( parallel_count > 0 ) + return AppendSZSCache(); + if ( !szs_cache_dir || !szs_cache_dirty ) return ERR_NOTHING_TO_DO; szs_cache_dirty = false; @@ -453,6 +465,41 @@ enumError SaveSZSCache() return ERR_OK; } +//----------------------------------------------------------------------------- + +enumError AppendSZSCache() +{ + if ( !szs_cache_dir || !szs_cache_append.used) + return ERR_NOTHING_TO_DO; + + char path_buf[PATH_MAX]; + ccp path = PathCatPP(path_buf,sizeof(path_buf),szs_cache_dir,SZS_CACHE_FNAME); + PRINT("SaveSZSCache() N=%u, %s\n",szs_cache.used,path); + + File_t F; + enumError err = CreateFile(&F,true,path,FM_APPEND); + if (err) + return err; + + time_t tim = time(0); + if ( tim >= F.st.st_mtime + 10 ) + { + char tbuf[50]; + struct tm *tm = localtime(&tim); + strftime(tbuf,sizeof(tbuf),"%F %T %z",tm); + fprintf(F.f,"\n@APPEND = %s\n",tbuf); + } + + for ( int i = 0; i < szs_cache_append.used; i++ ) + { + const ParamFieldItem_t *it = szs_cache_append.field+i; + fprintf(F.f,"%s %s\n",it->key,(ccp)it->data); + } + + CloseFile(&F,0); + return ERR_OK; +} + /////////////////////////////////////////////////////////////////////////////// // only basename(fname) is used. // if checksum==0: load file and calc checksum! @@ -513,7 +560,8 @@ ParamFieldItem_t * StoreSZSCache } bool found; - ParamFieldItem_t *it = FindInsertParamField(&szs_cache,checksum,false,0,&found); + ParamField_t *the_cache = parallel_count > 0 ? &szs_cache_append : &szs_cache; + ParamFieldItem_t *it = FindInsertParamField(the_cache,checksum,false,0,&found); if (found) { DASSERT(it); @@ -526,7 +574,7 @@ ParamFieldItem_t * StoreSZSCache if (r_exists) *r_exists = true; - if ( !rename_file || !fname || !strcmp(fname,(ccp)it->data) ) + if ( parallel_count > 0 || !rename_file || !fname || !strcmp(fname,(ccp)it->data) ) return it; if (!path) diff --git a/project/src/lib-checksum.h b/project/src/lib-checksum.h index f8312f5..0fc7650 100644 --- a/project/src/lib-checksum.h +++ b/project/src/lib-checksum.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -99,8 +99,9 @@ static inline bool IsSZSCacheEnabled() void SetupSZSCache ( ccp dir_name, bool use_dirname ); void ScanSZSCache ( ccp dir_name, bool purge ); -enumError LoadSZSCache(); -enumError SaveSZSCache(); +enumError LoadSZSCache(void); +enumError SaveSZSCache(void); +enumError AppendSZSCache(void); ParamFieldItem_t * StoreSZSCache ( diff --git a/project/src/lib-common.c b/project/src/lib-common.c index 36d2ee2..d878cd2 100644 --- a/project/src/lib-common.c +++ b/project/src/lib-common.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-common.h b/project/src/lib-common.h index 4137ab0..b42cb4a 100644 --- a/project/src/lib-common.h +++ b/project/src/lib-common.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-ctcode.c b/project/src/lib-ctcode.c index 173dc8b..3de612f 100644 --- a/project/src/lib-ctcode.c +++ b/project/src/lib-ctcode.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -4344,7 +4344,7 @@ if (use_dynamic) { if ( !err && ctcode->cup ) err = WriteMemFileAt( &mf, off + off_cup, ctcode->cup, ctcode->cup_size ); -PRINT("space behind cup: %x\n",off_crs-off_cup-ctcode->cup_size); + PRINT("space behind cup: %x\n",off_crs-off_cup-ctcode->cup_size); if ( !err && ctcode->crs ) err = WriteMemFileAt( &mf, off + off_crs, ctcode->crs, ctcode->crs_size ); diff --git a/project/src/lib-ctcode.h b/project/src/lib-ctcode.h index 5e97766..a24f471 100644 --- a/project/src/lib-ctcode.h +++ b/project/src/lib-ctcode.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-ctdata.c b/project/src/lib-ctdata.c index 1517773..ed97394 100644 --- a/project/src/lib-ctdata.c +++ b/project/src/lib-ctdata.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-file.c b/project/src/lib-file.c index d257230..5189f85 100644 --- a/project/src/lib-file.c +++ b/project/src/lib-file.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -83,6 +83,19 @@ } } + void NormalizeFilenameParamList ( ParamList_t *param ) + { + for ( ; param; param = param->next ) + { + if (*param->arg) + { + char *res = AllocNormalizedFilenameCygwin(param->arg,false); + FREE(param->arg); + param->arg = res; + } + } + } + #endif // __CYGWIN__ /////////////////////////////////////////////////////////////////////////////// @@ -227,6 +240,7 @@ FileMode_t GetFileModeByOpt if ( opt_number ) fmode |= FM_NUMBER; if ( opt_remove_dest ) fmode |= FM_REMOVE; if ( opt_update ) fmode |= FM_UPDATE; + if ( opt_append ) fmode |= FM_APPEND; if ( opt_overwrite || fname1 && *fname1 && fname2 && !strcmp(fname1,fname2) ) fmode |= FM_OVERWRITE; @@ -254,6 +268,41 @@ enumError CreateFileOpt } /////////////////////////////////////////////////////////////////////////////// + +enumError CreateFileOptAppend +( + File_t * f, // file structure + bool initialize, // true: initialize 'f' + ccp fname, // file to open + bool testmode, // true: don't open + ccp srcfile // NULL or src file name + // if fname == srcfile: overwrite enabled +) +{ + DASSERT(f); + DASSERT(fname); + + FileMode_t fmode = FM_TOUCH; + if ( fname && *fname == '+' ) + { + fname++; + fmode |= FM_APPEND; + } + + static StringField_t list = {0}; + bool found = FindStringField(&list,fname) != 0; + if (found) + fmode |= FM_APPEND; + + fmode |= GetFileModeByOpt(testmode,fname,srcfile); + const enumError err = CreateFile(f,initialize,fname,fmode); + + if ( !err && !found ) + InsertStringField(&list,fname,false); + return err; +} + +/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// enumError AppendFILE @@ -4598,6 +4647,7 @@ void ScanSha1Ref ( struct ScanText_t *st ) IDX_TRACK, IDX_FAMILY, IDX_CLAN, + IDX_CLASS, IDX__N }; @@ -4618,11 +4668,13 @@ void ScanSha1Ref ( struct ScanText_t *st ) if ( n <= IDX__N ) continue; - PRINT0("LINE: %.*s | %.*s | %.*s | %.*s |\n", + PRINT_IF0(!(s1ref_used%1000),"LINE[%u]: %.*s | %.*s | %.*s | %.*s | %.*s |\n", + s1ref_used, src[IDX_SHA1].len, src[IDX_SHA1].ptr, src[IDX_TRACK].len, src[IDX_TRACK].ptr, src[IDX_FAMILY].len, src[IDX_FAMILY].ptr, - src[IDX_CLAN].len, src[IDX_CLAN].ptr ); + src[IDX_CLAN].len, src[IDX_CLAN].ptr, + src[IDX_CLASS].len, src[IDX_CLASS].ptr ); if ( src[IDX_SHA1].len != 40 ) continue; @@ -4650,6 +4702,8 @@ void ScanSha1Ref ( struct ScanText_t *st ) p->clan = strtoul(src[IDX_CLAN].ptr,0,10); if ( s1ref_max1_clan < p->clan ) s1ref_max1_clan = p->clan; + + p->tclass = ScanTrackClass(src[IDX_CLASS].ptr,src[IDX_CLASS].len); } s1ref_max1_track++; diff --git a/project/src/lib-geohit.c b/project/src/lib-geohit.c index 3d42bf7..805cfd1 100644 --- a/project/src/lib-geohit.c +++ b/project/src/lib-geohit.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-image.h b/project/src/lib-image.h index e7fc84b..98c50c3 100644 --- a/project/src/lib-image.h +++ b/project/src/lib-image.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -380,10 +380,31 @@ enumError SaveIMG ); /////////////////////////////////////////////////////////////////////////////// +// [[tpl_raw_t]] + +typedef struct tpl_raw_t +{ + bool valid; // 'data' is valid + mem_t data; // raw data, alloced + int n_image; // number of images including mainn image + struct mipmap_info_t *mmi; // 'n_images' info recored, alloced + const endian_func_t *endian; // endian functions +} +tpl_raw_t; + +void ResetRawTPL ( tpl_raw_t *raw ); + +enumError CreateRawTPL +( + tpl_raw_t * raw, // results with alloced data + Image_t * src_img // pointer to valid source img +); + +//----------------------------------------------------------------------------- enumError SaveTPL ( - Image_t * src_img, // pointer to valid source img + Image_t *src_img, // pointer to valid source img FILE *f, // output file, if NULL then use fname+overwrite ccp fname, // filename of source bool overwrite // true: force overwriting diff --git a/project/src/lib-image1.c b/project/src/lib-image1.c index 571df55..ad4d661 100644 --- a/project/src/lib-image1.c +++ b/project/src/lib-image1.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -721,7 +721,7 @@ static enumError CalcImageBlock if ( calc_only || xwidth > 0 && xheight > 0 && size <= img->data_size ) return ERR_OK; - PRINT("h=%u,%u,%u v=%u,%u,%u, size=%u/%u <= %x/%x\n", + PRINT1("h=%u,%u,%u v=%u,%u,%u, size=%u/%u <= %x/%x\n", img->width, block_width, xwidth, img->height, block_height, xheight, size, img->data_size, size, img->data_size ); diff --git a/project/src/lib-image2.c b/project/src/lib-image2.c index 09da759..9745660 100644 --- a/project/src/lib-image2.c +++ b/project/src/lib-image2.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -1200,18 +1200,29 @@ enumError SaveIMG /////////////////////////////////////////////////////////////////////////////// -enumError SaveTPL +void ResetRawTPL ( tpl_raw_t *raw ) +{ + if (raw) + { + for ( int i = 0; i < raw->n_image; i++ ) + ResetMMI(raw->mmi+i); + FREE(raw->mmi); + FreeString(raw->data.ptr); + memset(raw,0,sizeof(*raw)); + } +} + +//----------------------------------------------------------------------------- + +enumError CreateRawTPL ( - Image_t * src_img, // pointer to valid source img - FILE *f, // output file, if NULL then use fname+overwrite - ccp fname, // filename of source - bool overwrite // true: force overwriting + tpl_raw_t * raw, // results with alloced data + Image_t * src_img // pointer to valid source img ) { DASSERT(src_img); - DASSERT(fname); - - PRINT("SaveTPL(o=%d) %s\n", overwrite, fname ); + DASSERT(raw); + memset(raw,0,sizeof(*raw)); //--- special handling for cup icons @@ -1223,16 +1234,18 @@ enumError SaveTPL //--- setup images u8 *data = 0; - const int n_image = CountMipmapsIMG(src_img) + 1; - mipmap_info_t *mmi = CALLOC(n_image,sizeof(*mmi)); - enumError err = ERR_OK; + const int n_image = CountMipmapsIMG(src_img) + 1; + mipmap_info_t *mmi = CALLOC(n_image,sizeof(*mmi)); + raw->n_image = n_image; + raw->mmi = mmi; + enumError err = ERR_OK; const uint align = 0x20; const uint tab_off = sizeof(tpl_header_t); uint data_off = tab_off + n_image * sizeof(tpl_imgtab_t); - mipmap_info_t *m = mmi; - const Image_t *img = src_img; + mipmap_info_t *m = mmi; + const Image_t *img = src_img; //--- first loop: setup header offsets @@ -1243,7 +1256,7 @@ enumError SaveTPL DASSERT(img); err = PrepareImages1(m,img); if (err) - goto abort; + return err; m->pal_head_off = 0; m->img_head_off = data_off; @@ -1278,7 +1291,10 @@ enumError SaveTPL //--- alloc data & setup file header data = CALLOC(1,data_off); + raw->data.ptr = (ccp)data; + raw->data.len = data_off; const endian_func_t * endian = src_img->endian; + raw->endian = endian; tpl_header_t * tpl = (tpl_header_t*)data; endian->wr32(tpl->magic,TPL_MAGIC_NUM); @@ -1314,19 +1330,33 @@ enumError SaveTPL err = WriteImageData( m, data + m->img_data_off ); if (err) - goto abort; + return err; } + raw->valid = true; + return ERR_OK; +} - //--- save to file & clean +//----------------------------------------------------------------------------- + +enumError SaveTPL +( + Image_t *src_img, // pointer to valid source img + FILE *f, // output file, if NULL then use fname+overwrite + ccp fname, // filename of source + bool overwrite // true: force overwriting +) +{ + DASSERT(src_img); + DASSERT(fname); - err = SaveFILE2(f,fname,0,overwrite,data,data_off,0); + PRINT("SaveTPL(o=%d) %s\n", overwrite, fname ); - abort: - for ( i = 0; i < n_image; i++ ) - ResetMMI(mmi+i); - FREE(mmi); - FREE(data); + tpl_raw_t raw; + enumError err = CreateRawTPL(&raw,src_img); + if (raw.valid) + err = SaveFILE2(f,fname,0,overwrite,raw.data.ptr,raw.data.len,0); + ResetRawTPL(&raw); return err; } diff --git a/project/src/lib-image3.c b/project/src/lib-image3.c index 09540f5..3abbdc3 100644 --- a/project/src/lib-image3.c +++ b/project/src/lib-image3.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-itemslot.c b/project/src/lib-itemslot.c index 2ec467c..c4a18b7 100644 --- a/project/src/lib-itemslot.c +++ b/project/src/lib-itemslot.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kcl-image.c b/project/src/lib-kcl-image.c index 66dfede..c385fc7 100644 --- a/project/src/lib-kcl-image.c +++ b/project/src/lib-kcl-image.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kcl.c b/project/src/lib-kcl.c index 74056d4..86f4b9f 100644 --- a/project/src/lib-kcl.c +++ b/project/src/lib-kcl.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kcl.h b/project/src/lib-kcl.h index e4a1e1c..027b32b 100644 --- a/project/src/lib-kcl.h +++ b/project/src/lib-kcl.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp-diff.c b/project/src/lib-kmp-diff.c index 4a0c86d..82118a0 100644 --- a/project/src/lib-kmp-diff.c +++ b/project/src/lib-kmp-diff.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp-draw.c b/project/src/lib-kmp-draw.c index b7a8106..34cb120 100644 --- a/project/src/lib-kmp-draw.c +++ b/project/src/lib-kmp-draw.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp-pflags.c b/project/src/lib-kmp-pflags.c index 3f827a3..273cd23 100644 --- a/project/src/lib-kmp-pflags.c +++ b/project/src/lib-kmp-pflags.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp-text.c b/project/src/lib-kmp-text.c index 2cc48cf..366069e 100644 --- a/project/src/lib-kmp-text.c +++ b/project/src/lib-kmp-text.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp.c b/project/src/lib-kmp.c index 31a2b69..75292b3 100644 --- a/project/src/lib-kmp.c +++ b/project/src/lib-kmp.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-kmp.h b/project/src/lib-kmp.h index 1ec34ed..c1c42cb 100644 --- a/project/src/lib-kmp.h +++ b/project/src/lib-kmp.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-lecode.c b/project/src/lib-lecode.c index f33017c..672aca5 100644 --- a/project/src/lib-lecode.c +++ b/project/src/lib-lecode.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -1312,6 +1312,7 @@ static void NormalizeLPAR ( le_lpar_t * lp, int build ) lp->bt_textures &= LE_M_TEXTURE; lp->vs_textures &= LE_M_TEXTURE; lp->block_textures = lp->block_textures > 0; + lp->staticr_points = lp->staticr_points > 0; if ( build >= 37 ) { @@ -1414,6 +1415,8 @@ static void CopyLPAR2Data ( le_analyze_t * ana ) h->vs_textures = lp->vs_textures; if ( offsetof(le_binpar_v1_t,block_textures) < ana->param_size ) h->block_textures = lp->block_textures; + if ( offsetof(le_binpar_v1_t,staticr_points) < ana->param_size ) + h->staticr_points = lp->staticr_points; // [[new-lpar]] } @@ -1570,6 +1573,7 @@ enumError WriteSectionLPAR ,lpar_std_flags( lpar->bt_textures & LE_M_TEXTURE ) ,lpar_std_flags( lpar->vs_textures & LE_M_TEXTURE ) ,lpar->block_textures + ,lpar->staticr_points ); } else @@ -1595,6 +1599,7 @@ enumError WriteSectionLPAR "BT-TEXTURES = %s\r\n" "VS-TEXTURES = %s\r\n" "BLOCK-TEXTURES = %u\r\n" + "STATICR-POINTS = %u\r\n" ,GetLparModeName(CalcCurrentLparMode(lpar,true),export_count>0) ,lpar->cheat_mode ,lpar->engine[0],lpar->engine[1],lpar->engine[2] @@ -1613,6 +1618,7 @@ enumError WriteSectionLPAR ,lpar_std_flags( lpar->bt_textures & LE_M_TEXTURE ) ,lpar_std_flags( lpar->vs_textures & LE_M_TEXTURE ) ,lpar->block_textures + ,lpar->staticr_points ); } @@ -1954,15 +1960,21 @@ enumError AnalyzeLEBinary && !memcmp(data+off_param,LE_PARAM_MAGIC,4) ) { le_binary_param_t *param = (le_binary_param_t*)(data+off_param); - const uint param_size = ntohl(param->size); + uint param_size = ntohl(param->size); if ( off_param + param_size <= data_size && off_param + param_size <= ana->data_size ) { + if ( ntohl(head->v3.build_number) < 37 && param_size >= sizeof(le_binpar_v1_269_t) ) + { + param_size = sizeof(le_binpar_v1_269_t); + param->size = htonl(param_size); + } + + ana->param_size = param_size; ana->valid |= LE_PARAM_FOUND; ana->param = param; ana->param_offset = off_param; ana->param_vers = ntohl(param->version); - ana->param_size = param_size; const uint max_off = ana->data_size - off_param; @@ -2062,9 +2074,9 @@ enumError AnalyzeLEBinary // ana->lpar.thcloud_frames = 300; // } - if ( param_size >= sizeof(le_binpar_v1_26c_t) ) + if ( param_size >= sizeof(le_binpar_v1_269_t) ) { - le_binpar_v1_26c_t *p = (le_binpar_v1_26c_t*)(data+off_param); + le_binpar_v1_269_t *p = (le_binpar_v1_269_t*)(data+off_param); ana->lpar.bt_worldwide = p->bt_worldwide; ana->lpar.vs_worldwide = p->vs_worldwide; ana->lpar.bt_textures = p->bt_textures; @@ -2072,6 +2084,12 @@ enumError AnalyzeLEBinary ana->lpar.block_textures = p->block_textures; } + if ( param_size >= sizeof(le_binpar_v1_26a_t) ) + { + le_binpar_v1_26a_t *p = (le_binpar_v1_26a_t*)(data+off_param); + ana->lpar.staticr_points = p->staticr_points; + } + // [[new-lpar]] break; @@ -3208,7 +3226,7 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana ) ); } - if ( ana->param_size >= sizeof(le_binpar_v1_26c_t) ) + if ( ana->param_size >= sizeof(le_binpar_v1_269_t) ) { fprintf(f, "%*s" "Worldwide: battle=%s, versus=%s\n" @@ -3224,6 +3242,14 @@ void DumpLEAnalyse ( FILE *f, uint indent, const le_analyze_t *ana ) ); } + if ( ana->param_size >= sizeof(le_binpar_v1_26a_t) ) + { + fprintf(f, + "%*s" "Points by StaticR: %u\n" + ,indent,"", h->staticr_points + ); + } + // [[new-lpar]] #if 0 // for later use @@ -3932,6 +3958,7 @@ static enumError ScanTextLPAR_PARAM { "BT-TEXTURES", SPM_U8, &lpar->bt_textures }, { "VS-TEXTURES", SPM_U8, &lpar->vs_textures }, { "BLOCK-TEXTURES", SPM_U8, &lpar->block_textures }, + { "STATICR-POINTS", SPM_U8, &lpar->staticr_points }, // [[new-lpar]] {0} diff --git a/project/src/lib-lecode.h b/project/src/lib-lecode.h index 9f4cfad..0793d6c 100644 --- a/project/src/lib-lecode.h +++ b/project/src/lib-lecode.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -330,6 +330,7 @@ typedef struct le_lpar_t u8 bt_textures; // &1: enable texture hacks for battles, &2:alternable u8 vs_textures; // &1: enable texture hacks for versus, &2:alternable u8 block_textures; // >0: enable blocking of recent texture hacks + u8 staticr_points; // >0: use points definied by StaticR.rel u8 debug_mode; // debug mode u8 debug_predef[LEDEB__N_CONFIG]; @@ -828,9 +829,9 @@ __attribute__ ((packed)) le_binpar_v1_264_t; _Static_assert(sizeof(le_binpar_v1_264_t)==0x264,"le_binpar_v1_264_t"); //----------------------------------------------------------------------------- -// [[le_binpar_v1_26c_t]] +// [[le_binpar_v1_269_t]] -typedef struct le_binpar_v1_26c_t +typedef struct le_binpar_v1_269_t { /*000*/ char magic[8]; // LE_PARAM_MAGIC /*008*/ u32 version; // always 1 for v1 @@ -873,21 +874,71 @@ typedef struct le_binpar_v1_26c_t /*267*/ u8 vs_textures; // &1: enable texture hacks for versus, &2:alternable /*268*/ u8 block_textures; // >0: enable blocking of recent texture hacks - /*269*/ u8 padding_269; - /*26a*/ u8 padding_26a; - /*26b*/ u8 padding_26b; + /*269*/ - /*268*/ +} +__attribute__ ((packed)) le_binpar_v1_269_t; + +_Static_assert(sizeof(le_binpar_v1_269_t)==0x269,"le_binpar_v1_269_t"); + +//----------------------------------------------------------------------------- +// [[le_binpar_v1_26a_t]] + +typedef struct le_binpar_v1_26a_t +{ + /*000*/ char magic[8]; // LE_PARAM_MAGIC + /*008*/ u32 version; // always 1 for v1 + /*00c*/ u32 size; // size (and minor version) + /*010*/ u32 off_eod; // offset of end-of-data + + /*014*/ u32 off_cup_par; // offset to cup param + /*018*/ u32 off_cup_track; // offset of cup-track list + /*01c*/ u32 off_cup_arena; // offset of cup-arena list + /*020*/ u32 off_course_par; // offset of course param + /*024*/ u32 off_property; // offset of property list + /*028*/ u32 off_music; // offset of music list + /*02c*/ u32 off_flags; // offset of flags + + /*030*/ u8 engine[3]; // 100cc, 150cc, mirror (sum always 100) + /*033*/ u8 enable_200cc; // TRUE: 200C enabled => 150cc, 200cc, mirror + /*034*/ u8 enable_perfmon; // >0: performance monitor enabled; >1: for dolphin too + /*035*/ u8 enable_custom_tt; // TRUE: time trial for cusotm tracks enabled + /*036*/ u8 enable_xpflags; // TRUE: extended presence flags enabled + /*037*/ u8 block_track; // block used track for 0.. tracks + /*038*/ u16 chat_mode_1[BMG_N_CHAT]; // mode for each chat message + /*0f8*/ u16 chat_mode_2[BMG_N_CHAT]; // mode for each chat message + /*1b8*/ u8 enable_speedo; // speedometer selection (0..2), see SPEEDO_* + /*1b9*/ u8 no_speedo_if_debug; // if bit is set: suppress speedometer + /*1ba*/ u8 debug_mode; // debug mode (0..), see DEBUGMD_* + /*1bb*/ u8 item_cheat; // 0:disabled, 1:enabled + + /*1bc*/ u8 debug_predef[LEDEB__N_CONFIG]; + // information about used predefined mode + /*1c0*/ u32 debug[LEDEB__N_CONFIG][LEDEB__N_LINE]; + // debug line settings, see LEDEB_* + + /*260*/ u8 cheat_mode; // 0:off, 1:debug only, 2:allow all + /*261*/ u8 drag_blue_shell; // >0: allow dragging of blue shell + /*262*/ u16 thcloud_frames; // number of frames a player is small after thundercloud hit + + /*264*/ u8 bt_worldwide; // >0: enable worldwide battles + /*265*/ u8 vs_worldwide; // >0: enable worldwide versus races + /*266*/ u8 bt_textures; // &1: enable texture hacks for battles, &2:alternable + /*267*/ u8 vs_textures; // &1: enable texture hacks for versus, &2:alternable + /*268*/ u8 block_textures; // >0: enable blocking of recent texture hacks + /*269*/ u8 staticr_points; // >0: use points definied by StaticR.rel + + /*26a*/ } -__attribute__ ((packed)) le_binpar_v1_26c_t; +__attribute__ ((packed)) le_binpar_v1_26a_t; -_Static_assert(sizeof(le_binpar_v1_26c_t)==0x26c,"le_binpar_v1_26c_t"); +_Static_assert(sizeof(le_binpar_v1_26a_t)==0x26a,"le_binpar_v1_26a_t"); //----------------------------------------------------------------------------- // [[le_binpar_v1_t]] [[new-lpar]] -typedef struct le_binpar_v1_26c_t le_binpar_v1_t; +typedef struct le_binpar_v1_26a_t le_binpar_v1_t; // /////////////////////////////////////////////////////////////////////////////// @@ -943,7 +994,7 @@ typedef struct le_analyze_t uint param_offset; // not NULL: offset of LPAR uint param_vers; // not NULL: version number of LPAR - uint param_size; // not NULL: size told by LPAR + uint param_size; // not NULL: (max usable) param size //--- working data diff --git a/project/src/lib-ledis.c b/project/src/lib-ledis.c index 42d4f33..7d7433a 100644 --- a/project/src/lib-ledis.c +++ b/project/src/lib-ledis.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -109,6 +109,38 @@ static const le_cup_ref_t mkwfun_random_ref[MKW_N_LE_RANDOM] = static inline void DumpCupSlots ( le_distrib_t const *ld, ccp info ) {} #endif +/////////////////////////////////////////////////////////////////////////////// + +static int scan_source_opt +( + // return : -1:error + abort, 0:ignored, 1 processed + next_arg + KeyListParam_t *par, // parameters and current result + ccp name, // name of option as written + uint name_len, // length of 'name' + const KeywordTab_t *key_tab // valid pointer to command table +) +{ + ASSERT(par); + ASSERT(par->user_param); + ASSERT(name); + ASSERT(key_tab); // not needed here + + le_strpar_t *lepar = (le_strpar_t*)par->user_param; + if ( !lepar || name_len < 1 || *name != '@' && *name != '[' ) + return 0; + + enumError err; + ccp res = ScanLSP(lepar,name,name_len,&err); + if ( !err && res == name + name_len ) + return 1; + + par->valid = false; + par->result = ~0; + + ERROR0(err,"Invalid string selector: %.*s\n",name_len,name); + return -1; +} + // /////////////////////////////////////////////////////////////////////////////// /////////////// enum le_track_type_t /////////////// @@ -496,7 +528,7 @@ void ResetLSP ( le_strpar_t *par ) /////////////////////////////////////////////////////////////////////////////// -char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ) +char * ScanLSP ( le_strpar_t *par, ccp arg, int arg_len, enumError *ret_err ) { static const KeywordTab_t keytab[] = { @@ -523,13 +555,14 @@ char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ) if ( !par || !arg ) return (char*)arg; + ccp arg_end = arg + ( arg_len < 0 ? strlen(arg) : arg_len ); ccp src = arg; - while ( *src > 0 && *src <= ' ' ) + while ( src < arg_end && (uchar)*src <= ' ' ) src++; if ( *src == '@' ) { src++; - while ( *src > 0 && *src <= ' ' ) + while ( src < arg_end && (uchar)*src <= ' ' ) src++; } @@ -557,7 +590,7 @@ char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ) *nptr = 0; int abbrev_count; - const KeywordTab_t *cmd = ScanKeyword(&abbrev_count,name,keytab); + const KeywordTab_t *cmd = ScanKeywordEx(&abbrev_count,name,nptr-name,LOUP_UPPER,keytab); if (!cmd) err = ERR_SEMANTIC; @@ -572,7 +605,7 @@ char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ) if ( err == ERR_OK ) { - while ( *src > 0 && *src <= ' ' ) + while ( src < arg_end && (uchar)*src <= ' ' ) src++; arg = src; } @@ -583,7 +616,7 @@ char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ) /////////////////////////////////////////////////////////////////////////////// char * ScanOptionalLSP - ( le_strpar_t *par, ccp arg, le_track_text_t fallback, enumError *ret_err ) + ( le_strpar_t *par, ccp arg, int arg_len, le_track_text_t fallback, enumError *ret_err ) { if (ret_err) *ret_err = ERR_NOT_EXISTS; @@ -592,15 +625,16 @@ char * ScanOptionalLSP if ( !par || !arg ) return (char*)arg; + ccp arg_end = arg + ( arg_len < 0 ? strlen(arg) : arg_len ); ccp src = arg; - while ( *src > 0 && (uchar)*src <= ' ' ) + while ( src < arg_end && (uchar)*src <= ' ' ) src++; if ( *src != '[' && *src != '@' ) return (char*)src; - src = ScanLSP(par,arg,ret_err); - while ( *src > 0 && ( *src <= ' ' || *src == ',' )) + src = ScanLSP(par,arg,arg_len,ret_err); + while ( src < arg_end && ( *src <= ' ' || *src == ',' )) src++; return (char*)src; } @@ -652,7 +686,7 @@ enumError ScanOptionsLSP ( le_strpar_t *par, ccp arg, ccp err_info ) if ( *arg == '[' ) { enumError err; - arg = ScanLSP(par,arg,&err); + arg = ScanLSP(par,arg,-1,&err); if (err) return err; } @@ -2603,7 +2637,7 @@ void ScanStrSTLD continue; #endif else - ScanLSP(&spar,src[IDX_NAME].ptr,0); + ScanLSP(&spar,src[IDX_NAME].ptr,src[IDX_NAME].len,0); char buf[LE_TRACK_STRING_MAX+1]; StringCopySM(buf,sizeof(buf),src[IDX_STRING].ptr,src[IDX_STRING].len); @@ -4683,8 +4717,8 @@ static enumError search_func return ERR_JOB_IGNORED; struct search_t *s = (struct search_t*)param; - ASSERT(s); - ASSERT(s->ld); + DASSERT(s); + DASSERT(s->ld); raw_data_t raw; enumError err = LoadRawData(&raw,true,path.ptr,0,opt_ignore>0,0); @@ -6034,18 +6068,17 @@ enumError CreateBmgLD ( FILE *f, le_distrib_t *ld, bool bmg_text ) /////////////////////////////////////////////////////////////////////////////// -enumError CreateCupIconsLD - ( FILE *f, le_distrib_t *ld, ccp fname, const le_strpar_t *src, - mem_t mem_opt, bool print_info ) +enumError CreateCupIconsLD ( ld_out_param_t *lop, mem_t mem_opt, bool print_info ) { - if ( !f || !ld ) + if (!lop) return ERR_MISSING_PARAM; + //--- setup buffer char namebuf[50], *nameend = namebuf + sizeof(namebuf) - 3; - const uint bufsize = ld->cup_versus.used * 21 + 200; + const uint bufsize = lop->ld->cup_versus.used * 21 + 200; char *buf = MALLOC(bufsize), *dest = buf, *bufend = buf + bufsize - 1; dest = StringCopyE(dest,bufend,":cup-icon="); @@ -6111,11 +6144,23 @@ enumError CreateCupIconsLD {0,0,0,0} }; - StringUpper(mem_opt.ptr); - PRINT0("CreateCupIconsLD(%s,%d), opt=%.*s|\n",GetNameLSP(src),print_info,mem_opt.len,mem_opt.ptr); - int opt = ScanKeywordList(mem_opt.ptr,keytab,0,true,0,O__DEFAULT,"CUP-ICONS",ERR_SYNTAX); - if ( opt < 0 ) - opt = 0; + le_strpar_t lepar = { .opt = LTT_NAME }; + KeyListParam_t keypar; + InitializeKeyListParam(&keypar); + keypar.func_arg = scan_source_opt; + keypar.user_param = &lepar; + + uint opt = 0; + if (mem_opt.len) + { + s64 res = ScanKeywordListP(&keypar,mem_opt.ptr,mem_opt.len,O__DEFAULT,keytab); + if ( res < 0 ) + return ERR_SYNTAX; + if ( res >= 0 ) + opt = res; + } + if (!opt) + opt = O__DEFAULT; int cup_index = 0; if ( opt & O_SWAPPED ) @@ -6131,7 +6176,7 @@ enumError CreateCupIconsLD const int wiimm1 = opt & O_1WIIMM ? 0 : -1; const int wiimm9 = opt & O_9WIIMM ? 8 : -1; - const int wiimmx = opt & O_XWIIMM ? ld->cup_versus.used - 1 : -1; + const int wiimmx = opt & O_XWIIMM ? lop->ld->cup_versus.used - 1 : -1; const bool use_plus_prefix = (opt & (O_PLUS|O_XPLUS)) != 0; const bool use_game_prefix = (opt & (O_GAME|O_XGAME)) != 0; @@ -6144,7 +6189,7 @@ enumError CreateCupIconsLD //--- add cup names - for ( ; cup_index < ld->cup_versus.used; cup_index++ ) + for ( ; cup_index < lop->ld->cup_versus.used; cup_index++ ) { if ( cup_index == wiimm1 || cup_index == wiimm9 || cup_index == wiimmx ) { @@ -6154,11 +6199,11 @@ enumError CreateCupIconsLD dest = snprintfE(dest,bufend,"%u-",cup_index+1); - le_cup_ref_t *ref = GetLECUP(&ld->cup_versus,cup_index); + le_cup_ref_t *ref = GetLECUP(&lop->ld->cup_versus,cup_index); if (ref) { - le_track_t *lt = GetTrackLD(ld,*ref); - ccp text = GetTextLT(lt,src,0); + le_track_t *lt = GetTrackLD(lop->ld,*ref); + ccp text = GetTextLT(lt,&lepar,0); if ( text && *text ) { split_filename_t spf; @@ -6199,7 +6244,7 @@ enumError CreateCupIconsLD *dest = 0; if (print_info) - fwrite(cuplist,dest-cuplist,1,f); + fwrite(cuplist,dest-cuplist,1,lop->f); else { GenericImgParam_t genpar; @@ -6209,8 +6254,8 @@ enumError CreateCupIconsLD err = CreateGenericIMG(&genpar,&img,true); if (!err) { - const file_format_t fform = GetImageFFByFName(fname,FF_TPL,true); - err = SaveIMG(&img,fform,0,f,fname,false); + const file_format_t fform = GetImageFFByFName(lop->fname,FF_TPL,true); + err = SaveIMG(&img,fform,0,lop->f,lop->fname,false); } } } @@ -6551,6 +6596,20 @@ static void report_duplicates /////////////////////////////////////////////////////////////////////////////// +static TrackClassIndex_t get_track_class_index ( const le_track_t *lt ) +{ + ccp sha1 = GetSha1LT(lt,false,0); + if (sha1) + { + const sha1_reference_t *ref = FindSha1RefHex(sha1,0); + if (ref) + return GetTrackClassIndex(ref->tclass); + } + return -1; +} + +/////////////////////////////////////////////////////////////////////////////// + enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) { if (!lop) @@ -6559,41 +6618,73 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) enum { O_COUNTERS = 0x0001, - O_NAMES = 0x0002, - O_TRACKS = 0x0004, - O_FAMILIES = 0x0008, - O_CLANS = 0x0010, + O_CLASSES = 0x0002, + O_XCLASSES = 0x0004, + O_NAMES = 0x0008, + O_TRACKS = 0x0010, + O_FAMILIES = 0x0020, + O_CLANS = 0x0040, - O_ALL = 0x001f, + O_ALL = 0x007f, O_M_DUPLICATES = O_NAMES | O_TRACKS | O_FAMILIES | O_CLANS, - O_DEFAULT = O_COUNTERS | O_M_DUPLICATES, + O_NEED_SHA1_REF = O_CLASSES | O_XCLASSES | O_TRACKS | O_FAMILIES | O_CLANS, + O_DEFAULT = O_ALL & ~O_XCLASSES, }; static const KeywordTab_t keytab[] = { { O_COUNTERS, "COUNTERS", 0, 0 }, + { O_CLASSES, "CLASSES", 0, 0 }, + { O_XCLASSES, "XCLASSES", 0, 0 }, { O_NAMES, "NAMES", 0, 0 }, { O_TRACKS, "TRACKS", 0, 0 }, { O_FAMILIES, "FAMILIES", "FAMILY", 0 }, { O_CLANS, "CLANS", 0, 0 }, { O_M_DUPLICATES, "DUPLICATES", 0, O_M_DUPLICATES }, + { O_DEFAULT, "DEFAULT", 0, O_DEFAULT }, { O_ALL, "ALL", 0, O_ALL }, {0,0,0,0} }; + le_strpar_t lepar = { .opt = LTT_NAME }; + KeyListParam_t keypar; + InitializeKeyListParam(&keypar); + keypar.func_arg = scan_source_opt; + keypar.user_param = &lepar; + u32 opt = 0; - if ( mem_opt.len) + if (mem_opt.len) { const s64 def = *mem_opt.ptr == '-' ? O_ALL : 0; - s64 res = ScanKeywordListP(0,mem_opt.ptr,mem_opt.len,def,keytab); + s64 res = ScanKeywordListP(&keypar,mem_opt.ptr,mem_opt.len,def,keytab); + if ( res < 0 ) + return ERR_SYNTAX; if ( res >= 0 ) opt = res; } if (!opt) opt = O_DEFAULT; + PRINT0("SOURCE: %s\n",GetNameLSP(&lepar)); UpdateCupsLD(lop->ld); + const int n_tracks = lop->ld->tlist_used; + + + //--- check need of sha1 reference + + if ( opt & O_NEED_SHA1_REF && !s1ref_used ) + { + static char msg[] = "\r\n" + "{warn|Without a SHA1 reference file" + " (see https://ct.wiimm.de/export/sha1ref/view)" + " the analysis of classes and a search for duplicate tracks," + " families or clans is not possible.}"; + PutColoredLines(lop->f,lop->colset,0,GetTermWidth(80,40)-1,0,0,msg); + + opt &= ~O_NEED_SHA1_REF; + } + //--- counters @@ -6604,7 +6695,7 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) report_counter_t versus = {0}, battle = {0}; le_track_t *lt = lop->ld->tlist; - for ( int slot = 0; slot < lop->ld->tlist_used; slot++, lt++ ) + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) { if ( lt->track_status < LTS_ACTIVE ) continue; @@ -6648,6 +6739,56 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) } + //--- find classes + + if ( opt & (O_CLASSES|O_XCLASSES) ) + { + uint *counter = CALLOC(G_TCLSI__N,sizeof(*counter)); + TrackClassIndex_t *list = CALLOC(n_tracks,sizeof(*list)); + + le_track_t *lt = lop->ld->tlist; + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) + { + if (IsTitleLT(lt)) + continue; + + const TrackClassIndex_t tidx = get_track_class_index(lt); + list[slot] = tidx; + if ( tidx >= 0 ) + counter[tidx]++; + } + if ( !(opt&O_XCLASSES) ) + { + counter[G_TCLSI_NINTENDO] = 0; + counter[G_TCLSI_SELECT] = 0; + } + + for ( int ci = 0; ci < G_TCLSI__N; ci++ ) + { + const uint n = counter[ci]; + if (!n) + continue; + + fprintf(lop->f,"\r\n\r\n%s%u track%s of class %s%s\r\n\r\n", + lop->colset->caption, + n, n == 1 ? "" : "s", GetTrackClassName(ci,0), + lop->colset->reset ); + + le_track_t *lt = lop->ld->tlist; + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) + { + if ( !IsTitleLT(lt) && get_track_class_index(lt) == ci ) + fprintf(lop->f," %s %4u %s %s\r\n", + PrintLEFL16(lt->flags,true), + lt->track_slot, GetCupAlignLT(lt), GetXName2LT(lt,"-") ); + } + } + + FREE(list); + FREE(counter); + } + + //--- find duplicate names if ( opt & O_NAMES ) @@ -6661,18 +6802,18 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) // collect data uint n = 0; le_track_t *lt = lop->ld->tlist; - for ( int slot = 0; slot < lop->ld->tlist_used; slot++, lt++ ) + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) { if (IsTitleLT(lt)) continue; - ccp name = GetNameLT(lt,0); - if (name) + ccp text = GetTextLT(lt,&lepar,0); + if (text) { ccp sha1 = GetSha1LT(lt,false,0); if ( sha1 && !InsertStringField(&sha1_list,sha1,false) ) continue; - ParamFieldItem_t *it = FindInsertParamField(&pf,name,false,0,0); + ParamFieldItem_t *it = FindInsertParamField(&pf,text,false,0,0); if ( ++it->num == 2 ) n++; } @@ -6695,7 +6836,7 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) fputs("\r\n",lop->f); le_track_t *lt = lop->ld->tlist; - for ( int slot = 0; slot < lop->ld->tlist_used; slot++, lt++ ) + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) { if (IsTitleLT(lt)) continue; @@ -6717,17 +6858,6 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) //--- find duplicate tracks, families and clans - if ( opt & O_M_DUPLICATES && !s1ref_used ) - { - static char msg[] = "\r\n" - "{warn|Without a SHA1 reference file" - " (see https://ct.wiimm.de/export/sha1ref/view)" - " a search for duplicate tracks, families or clans is not possible.}"; - PutColoredLines(lop->f,lop->colset,0,GetTermWidth(80,40)-1,0,0,msg); - - opt &= ~O_M_DUPLICATES; - } - if ( opt & O_M_DUPLICATES ) { //-- search duplicates @@ -6740,7 +6870,7 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) int have_dup_clan = 0; le_track_t *lt = lop->ld->tlist; - for ( int slot = 0; slot < lop->ld->tlist_used; slot++, lt++ ) + for ( int slot = 0; slot < n_tracks; slot++, lt++ ) { if ( IsTitleLT(lt) ) continue; @@ -6751,7 +6881,6 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) const sha1_reference_t *ref = FindSha1RefBin((void*)sha1); if (ref) { - #if 1 if ( track_count[ref->track]++ ) { if ( track_count[ref->track] == 2 ) @@ -6767,19 +6896,6 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) if ( clan_count[ref->clan] == 2 ) have_dup_clan++; } - #else - track_count[ref->track]++; - if ( track_count[ref->track] == 2 ) - have_dup_track++; - - family_count[ref->family]++; - if ( family_count[ref->family] == 2 ) - have_dup_family++; - - clan_count[ref->clan]++; - if ( clan_count[ref->clan] == 2 ) - have_dup_clan++; - #endif } } } @@ -6815,6 +6931,138 @@ enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ) // /////////////////////////////////////////////////////////////////////////////// +/////////////// le_distrib_t: patch szs files /////////////// +/////////////////////////////////////////////////////////////////////////////// +#if LE_DIS_PATCH_ENABLED + +int patch_ld +( + szs_iterator_t *it, // iterator struct with all infos + bool term // true: termination hint +) +{ + if (!term) + { + ccp path = it->path; + if ( path[0] == '.' && path[1] == '/' ) + path += 2; + printf(" >> %s\n",path); + } + return 0; +} + +/////////////////////////////////////////////////////////////////////////////// + +enumError PatchLD ( le_distrib_t *ld, mem_t mem_opt, StringField_t *filelist ) +{ + if ( !ld || !filelist ) + return ERR_MISSING_PARAM; + + enum + { + O_MENU = 0x0001, + + O_ALL = 0x0001, + O_DEFAULT = O_ALL, + + O_F_TESTMODE = 0x0002, + }; + + static const KeywordTab_t keytab[] = + { + { O_MENU, "MENUS", 0, 0 }, + { O_DEFAULT, "DEFAULT", 0, O_DEFAULT }, + { O_ALL, "ALL", 0, O_ALL }, + + { O_F_TESTMODE, "TESTMODE", 0, 0 }, + + {0,0,0,0} + }; + + le_strpar_t lepar = { .opt = LTT_NAME }; + KeyListParam_t keypar; + InitializeKeyListParam(&keypar); + keypar.func_arg = scan_source_opt; + keypar.user_param = &lepar; + + u32 opt = 0; + if (mem_opt.len) + { + const s64 def = *mem_opt.ptr == '-' ? O_ALL : 0; + s64 res = ScanKeywordListP(&keypar,mem_opt.ptr,mem_opt.len,def,keytab); + if ( res < 0 ) + return ERR_SYNTAX; + if ( res >= 0 ) + opt = res; + } + if (!opt) + opt = O_DEFAULT; + + PRINT0("SOURCE: %s\n",GetNameLSP(&lepar)); + PRINT0("DEST: %s\n",opt_dest); + const int testmode = opt & O_F_TESTMODE; + ccp mydest = opt_dest && *opt_dest && strcmp(opt_dest,"-") ? opt_dest : 0; + + + //--- main loop + + raw_data_t raw; + InitializeRawData(&raw); + + ccp *ptr = filelist->field, *end = ptr + filelist->used; + for ( ; ptr < end; ptr++ ) + { + #ifdef __CYGWIN__ + ccp fname = AllocNormalizedFilenameCygwin(*ptr,false); + #else + ccp fname = *ptr; + #endif + + enumError err = LoadRawData(&raw,false,fname,0,false,0); + if ( err == ERR_NOT_EXISTS || err > ERR_WARNING && opt_ignore ) + continue; + if ( err > ERR_WARNING ) + return err; + + char dest[PATH_MAX]; + SubstDest(dest,sizeof(dest),fname,mydest,"\1P/\1F", + GetExtFF(raw.fform_file,raw.fform),false); + const bool dest_is_source = IsSameFilename(dest,fname); + + if ( verbose >= 1 || testmode ) + { + ccp ff_name = GetNameFF(raw.fform_file,raw.fform); + if (dest_is_source) + fprintf(stdlog," > %satch %s:%s\n", + testmode ? "Would p" : "P", + ff_name, dest ); + else + fprintf(stdlog," > %satch %s:%s -> %s:%s\n", + testmode ? "Would p" : "P", + ff_name, raw.fname, + ff_name, dest ); + fflush(stdlog); + } + + szs_file_t szs; + AssignSZS(&szs,true,raw.data,raw.data_size,false,raw.fform,raw.fname); + + int count = 0; + int stat = IterateFilesSZS(&szs,patch_ld,&count,0,0); + MARK_USED(stat,count); + + ResetSZS(&szs); + if ( fname != *ptr ) + FreeString(fname); + } + + ResetRawData(&raw); + return ERR_OK; +} + +#endif // LE_DIS_PATCH_ENABLED +// +/////////////////////////////////////////////////////////////////////////////// /////////////// le_distrib_t: text jobs /////////////// /////////////////////////////////////////////////////////////////////////////// @@ -6998,30 +7246,24 @@ enumError TransferFilesLD ( le_distrib_t *ld, bool logit, bool testmode ) // /////////////////////////////////////////////////////////////////////////////// -/////////////// le_distrib_t: sort tracks and cups /////////////// +/////////////// le_distrib_t: sort tracks /////////////// /////////////////////////////////////////////////////////////////////////////// -enum // sort option +enum // sort track options { // sort tracks - SO_NONE = 0x0000, - SO_NAME = 0x0001, - SO_ID = 0x0002, - SO_SHA1 = 0x0003, - SO_M_TRACK = SO_NAME | SO_ID | SO_SHA1, + STO_NONE = 0x0000, + STO_NAME = 0x0001, + STO_ID = 0x0002, + STO_SHA1 = 0x0003, + STO_M_JOBS = STO_NAME | STO_ID | STO_SHA1, - SO_KEEP_VS = 0x0010, - SO_KEEP_BT = 0x0020, - SO_M_KEEP = SO_KEEP_VS | SO_KEEP_BT, + STO_KEEP_VS = 0x0010, + STO_KEEP_BT = 0x0020, + STO_M_KEEP = STO_KEEP_VS | STO_KEEP_BT, - // sort cups - - SO_VERSUS = 0x0100, - SO_BATTLE = 0x0200, - SO_M_TYPE = SO_VERSUS | SO_BATTLE, - - SO_DEFAULT = SO_NAME | SO_M_TYPE, + STO_DEFAULT = 0, }; /////////////////////////////////////////////////////////////////////////////// @@ -7056,7 +7298,7 @@ static void sort_tracks ( le_distrib_t *ld, const le_strpar_t *src, uint opt ) sort_track_t *xlist = CALLOC(ld->tlist_used,sizeof(sort_track_t*)); sort_track_t *xptr = xlist; - + // [[2do]] ??? MARK_USED(xptr); @@ -7084,17 +7326,14 @@ bool SortTracksLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ) static const KeywordTab_t keytab[] = { - { SO_NONE, "NONE", 0, SO_M_TRACK }, - { SO_NAME, "NAME", 0, SO_M_TRACK }, - { SO_ID, "ID", 0, SO_M_TRACK }, - { SO_SHA1, "SHA1", 0, SO_M_TRACK }, + { STO_NONE, "NONE", 0, STO_M_JOBS }, + { STO_NAME, "NAME", 0, STO_M_JOBS }, + { STO_ID, "ID", 0, STO_M_JOBS }, + { STO_SHA1, "SHA1", 0, STO_M_JOBS }, - { SO_KEEP_VS, "KEEP-VS", "KEEPVS", 0 }, - { SO_KEEP_BT, "KEEP-BT", "KEEPBT", 0 }, - { SO_M_KEEP, "KEEP-ALL", "KEEPALL", 0 }, - - { SO_VERSUS, "VERSUS", 0, 0 }, - { SO_BATTLE, "BATTLE", 0, 0 }, + { STO_KEEP_VS, "KEEP-VS", "KEEPVS", 0 }, + { STO_KEEP_BT, "KEEP-BT", "KEEPBT", 0 }, + { STO_M_KEEP, "KEEP-ALL", "KEEPALL", 0 }, {0,0,0,0} }; @@ -7108,16 +7347,140 @@ bool SortTracksLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ) opt = res; } - if ( !opt ) opt = SO_DEFAULT; - if ( !(opt & SO_M_TYPE) ) opt |= SO_M_TYPE; + if (!(opt&STO_M_JOBS)) + { + // [[2do]] warning + return false; + } //--- sort tracks UpdateCupsLD(ld); + sort_tracks(ld,src,opt); + + + //--- sort cups + + return true; +} + +// +/////////////////////////////////////////////////////////////////////////////// +/////////////// le_distrib_t: sort cups /////////////// +/////////////////////////////////////////////////////////////////////////////// + +enum // sort cup options +{ + // sort cups + + SCO_VS_ORIG = 0x0001, + SCO_VS_CUSTOM = 0x0002, + SCO_VS_ALL = SCO_VS_ORIG | SCO_VS_CUSTOM, + + SCO_BT_ORIG = 0x0004, + SCO_BT_CUSTOM = 0x0008, + SCO_BT_ALL = SCO_BT_ORIG | SCO_BT_CUSTOM, + + SCO_M_JOB = SCO_VS_ALL | SCO_BT_ALL, + + SCO_USE_PLUS = 0x0010, + SCO_USE_GAME = 0x0020, + + SCO_DEFAULT = 0, +}; + +/////////////////////////////////////////////////////////////////////////////// + +#define MAX_SORT_MEMBERS 4 + +typedef struct sort_cup_t +{ + int dummy; + ccp key; // allocaed key for sorting +} +sort_cup_t; + +/////////////////////////////////////////////////////////////////////////////// +#if 0 + +static void sort_cupss ( le_distrib_t *ld, const le_strpar_t *src, uint opt ) +{ + DASSERT(ld); + + //-- setup data + + sort_track_t *slist = CALLOC(ld->tlist_used,sizeof(*slist)); + sort_track_t *slist_end = slist + ld->tlist_used; + + sort_track_t *xlist = CALLOC(ld->tlist_used,sizeof(sort_track_t*)); + sort_track_t *xptr = xlist; + + +// [[2do]] ??? +MARK_USED(xptr); + + + //-- free data + + for ( sort_track_t *p = slist; p < slist_end; p++ ) + { + FreeString(p->key); + if ( p->grp_member != p->grp_buf ) + FREE(p->grp_member); + } + FREE(slist); + FREE(xlist); +} + +#endif +/////////////////////////////////////////////////////////////////////////////// + +bool SortCupsLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ) +{ + if (!ld) + return false; + + //--- check options + + static const KeywordTab_t keytab[] = + { + { SCO_VS_ORIG, "VS-ORIGINAL", "VSORIGINAL", 0 }, + { SCO_VS_CUSTOM, "VS-CUSTOM", "VSCUSTOM", 0 }, + { SCO_VS_ALL, "VS-ALL", "VSALL", 0 }, + + { SCO_BT_ORIG, "BT-ORIGINAL", "BTORIGINAL", 0 }, + { SCO_BT_CUSTOM, "BT-CUSTOM", "BTCUSTOM", 0 }, + { SCO_BT_ALL, "BT-ALL", "BTALL", 0 }, + + { SCO_USE_PLUS, "PLUS", 0, 0 }, + { SCO_USE_GAME, "GAME", 0, 0 }, + + {0,0,0,0} + }; + + uint opt = 0; + if (mem_opt.len) + { + s64 res = ScanKeywordListP(0,mem_opt.ptr,mem_opt.len,0,keytab); + if ( res < 0 ) + return false; + opt = res; + } + + if (!(opt&SCO_M_JOB)) + { + // [[2do]] warning + return false; + } + + + //--- sort cups + + UpdateCupsLD(ld); + + // [[2do]] ??? - if ( opt & SO_M_TRACK ) - sort_tracks(ld,src,opt); //--- sort cups diff --git a/project/src/lib-ledis.h b/project/src/lib-ledis.h index 485271f..c00ecab 100644 --- a/project/src/lib-ledis.h +++ b/project/src/lib-ledis.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -62,6 +62,24 @@ #define LE_STRING_SET_ENABLED 1 +/////////////////////////////////////////////////////////////////////////////// + +// if 1, then instruction 'patch=...' is enabled (in development) + +#define LE_DIS_PATCH_ENABLED 0 + +//----------------------------------------------------------------------------- + +// if 1, then instruction 'sort-tracks=...' is enabled (in development) + +#define LE_DIS_SORTTRACKS_ENABLED 0 + +//----------------------------------------------------------------------------- + +// if 1, then instruction 'sort-cups=...' is enabled (in development) + +#define LE_DIS_SORTCUPS_ENABLED 0 + // /////////////////////////////////////////////////////////////////////////////// /////////////// definitions /////////////// @@ -373,9 +391,9 @@ void ResetLSP ( le_strpar_t *par ); static inline void SetOptionsLSP ( le_strpar_t *par, le_options_t opt ) { if (par) par->opt = opt; } -char * ScanLSP ( le_strpar_t *par, ccp arg, enumError *ret_err ); +char * ScanLSP ( le_strpar_t *par, ccp arg, int arg_len, enumError *ret_err ); char * ScanOptionalLSP - ( le_strpar_t *par, ccp arg, le_track_text_t fallback, enumError *ret_err ); + ( le_strpar_t *par, ccp arg, int arg_len, le_track_text_t fallback, enumError *ret_err ); ccp GetNameLSP ( const le_strpar_t *par ); ccp GetOptionsLSP ( const le_strpar_t *par, le_options_t mask ); @@ -975,16 +993,23 @@ enumError CreateLeDefLD ( FILE *f, le_distrib_t *ld ); enumError CreateLecodeLD ( FILE *f, le_distrib_t *ld, le_region_t region ); enumError CreateLparLD ( FILE *f, le_distrib_t *ld, bool print_full ); enumError CreateBmgLD ( FILE *f, le_distrib_t *ld, bool bmg_text ); -enumError CreateCupIconsLD ( FILE *f, le_distrib_t *ld, ccp fname, const le_strpar_t *src, - mem_t mem_opt, bool print_info ); enumError CreateLeInfoLD ( FILE *f, const le_distrib_t *ld, bool list_only ); enumError CreateDebugLD ( FILE *f, const le_distrib_t *ld ); + +enumError CreateCupIconsLD ( ld_out_param_t *lop, mem_t mem_opt, bool print_info ); enumError CreateReportLD ( ld_out_param_t *lop, mem_t mem_opt ); enumError CreateLecode4LD ( ccp fname, le_distrib_t *ld ); //----------------------------------------------------------------------------- +// patch files + +#if LE_DIS_PATCH_ENABLED + enumError PatchLD ( le_distrib_t *ld, mem_t mem_opt, StringField_t *filelist ); +#endif + +//----------------------------------------------------------------------------- // string functions enumError SeparatorLD ( le_distrib_t *ld, ccp arg ); @@ -1005,7 +1030,14 @@ enumError TransferFilesLD ( le_distrib_t *ld, bool logit, bool testmode ); void UpdateDistribLD ( le_distrib_t *ld, bool overwrite ); bool AddDistribParamLD ( le_distrib_t *ld, ccp src, ccp end ); -bool SortTracksLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ); + +#if LE_DIS_SORTTRACKS_ENABLED + bool SortTracksLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ); +#endif + +#if LE_DIS_SORTCUPS_ENABLED + bool SortCupsLD ( le_distrib_t *ld, const le_strpar_t *src, mem_t mem_opt ); +#endif enumError ImportDistribLD ( le_distrib_t *ld, cvp data, uint size ); enumError ImportDistribSTLD ( le_distrib_t *ld, ScanText_t *st ); diff --git a/project/src/lib-lex.c b/project/src/lib-lex.c index c811a80..0a37bfe 100644 --- a/project/src/lib-lex.c +++ b/project/src/lib-lex.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-lex.h b/project/src/lib-lex.h index bc5b60e..7081fbc 100644 --- a/project/src/lib-lex.h +++ b/project/src/lib-lex.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-mdl.c b/project/src/lib-mdl.c index df25370..7056033 100644 --- a/project/src/lib-mdl.c +++ b/project/src/lib-mdl.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-mdl.h b/project/src/lib-mdl.h index 43d0178..9164955 100644 --- a/project/src/lib-mdl.h +++ b/project/src/lib-mdl.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-minigame.c b/project/src/lib-minigame.c index 7cc3e84..a578d86 100644 --- a/project/src/lib-minigame.c +++ b/project/src/lib-minigame.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-numeric.c b/project/src/lib-numeric.c index 7e47199..0e4349e 100644 --- a/project/src/lib-numeric.c +++ b/project/src/lib-numeric.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-numeric.h b/project/src/lib-numeric.h index 8e4f4e1..a5d1de7 100644 --- a/project/src/lib-numeric.h +++ b/project/src/lib-numeric.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-object.c b/project/src/lib-object.c index 23ffcdd..27253a8 100644 --- a/project/src/lib-object.c +++ b/project/src/lib-object.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-object.h b/project/src/lib-object.h index 31ecacf..e83ac4e 100644 --- a/project/src/lib-object.h +++ b/project/src/lib-object.h @@ -18,7 +18,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-objflow.c b/project/src/lib-objflow.c index c01c25d..f86f4d7 100644 --- a/project/src/lib-objflow.c +++ b/project/src/lib-objflow.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-pack.c b/project/src/lib-pack.c index d5d906b..4d1736d 100644 --- a/project/src/lib-pack.c +++ b/project/src/lib-pack.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -77,11 +77,7 @@ int IterateFilesPACK //--- cut file header - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->index = 0; it->fst_item = 0; diff --git a/project/src/lib-pack.h b/project/src/lib-pack.h index aa6ab75..6533bc4 100644 --- a/project/src/lib-pack.h +++ b/project/src/lib-pack.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-parser-func.c b/project/src/lib-parser-func.c index 539083b..005b93e 100644 --- a/project/src/lib-parser-func.c +++ b/project/src/lib-parser-func.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-parser.c b/project/src/lib-parser.c index 114290c..8418450 100644 --- a/project/src/lib-parser.c +++ b/project/src/lib-parser.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-pat.c b/project/src/lib-pat.c index 43b62d9..9c4424d 100644 --- a/project/src/lib-pat.c +++ b/project/src/lib-pat.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-pat.h b/project/src/lib-pat.h index eb8e5a9..f803e06 100644 --- a/project/src/lib-pat.h +++ b/project/src/lib-pat.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-rarc.c b/project/src/lib-rarc.c index 7e4b1f5..581d244 100644 --- a/project/src/lib-rarc.c +++ b/project/src/lib-rarc.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -223,11 +223,7 @@ int IterateFilesRARC } #endif - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->index = 0; it->fst_item = 0; diff --git a/project/src/lib-rarc.h b/project/src/lib-rarc.h index aee2886..34699e5 100644 --- a/project/src/lib-rarc.h +++ b/project/src/lib-rarc.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-rkc.c b/project/src/lib-rkc.c index 8e8d103..8312de2 100644 --- a/project/src/lib-rkc.c +++ b/project/src/lib-rkc.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -105,11 +105,7 @@ int IterateFilesRKC it->fst_item = 0; it->is_dir = 0; - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->no_recurse++; it->off = 0; @@ -140,11 +136,7 @@ int IterateFilesRKC return it->func_it(it,false); } - #if USE_ITERATOR_PARAM if ( it->itpar.cut_files && sizeof(rkct_t)+sizeof(rkco_t) < u8_off ) - #else - if ( it->cut_files && sizeof(rkct_t)+sizeof(rkco_t) < u8_off ) - #endif { it->off = sizeof(rkct_t)+sizeof(rkco_t); it->size = u8_off - it->off; @@ -165,13 +157,8 @@ int IterateFilesRKC // [[fname+]] InitializeSubSZS(&szs2,szs,u8_off,u8_end-u8_off,FF_UNKNOWN,it->path,true); - #if USE_ITERATOR_PARAM szs_iterator_func it_func = GetIteratorFunction(szs2.fform_arch,it->itpar.cut_files); - #else - szs_iterator_func it_func - = GetIteratorFunction(szs2.fform_arch,it->cut_files); - #endif if (it_func) { diff --git a/project/src/lib-rkc.h b/project/src/lib-rkc.h index 1f0019c..daa132b 100644 --- a/project/src/lib-rkc.h +++ b/project/src/lib-rkc.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-rkg.c b/project/src/lib-rkg.c index 2838c65..ae8063b 100644 --- a/project/src/lib-rkg.c +++ b/project/src/lib-rkg.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-rkg.h b/project/src/lib-rkg.h index 06e49ac..750b4eb 100644 --- a/project/src/lib-rkg.h +++ b/project/src/lib-rkg.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-staticr.c b/project/src/lib-staticr.c index abf2550..005a969 100644 --- a/project/src/lib-staticr.c +++ b/project/src/lib-staticr.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-staticr.h b/project/src/lib-staticr.h index f25779d..11670cf 100644 --- a/project/src/lib-staticr.h +++ b/project/src/lib-staticr.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-std.c b/project/src/lib-std.c index 042ad7e..86ffde5 100644 --- a/project/src/lib-std.c +++ b/project/src/lib-std.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -104,6 +104,7 @@ StringField_t source_list = {0}; ccp opt_reference = 0; ccp opt_dest = 0; bool opt_mkdir = false; +bool opt_append = false; bool opt_overwrite = false; bool opt_number = false; bool opt_remove_src = false; @@ -147,10 +148,12 @@ EncodeMode_t opt_coding64 = ENCODE_OFF; bool opt_verify = false; ccp opt_cache = 0; ccp opt_cname = 0; +int parallel_count = 0; bool opt_round = false; int brief_count = 0; int long_count = 0; //int full_count = 0; +int inorder_count = 0; int pipe_count = 0; int delta_count = 0; int diff_count = 0; @@ -159,11 +162,15 @@ int export_count = 0; int all_count = 0; bool raw_mode = false; SortMode_t opt_sort = SORT_NONE; +bool opt_le_menu = false; +ccp opt_cup_icons = 0; +ccp opt_title_screen = 0; u32 opt_max_file_size = 100*MiB; int opt_compr_mode = 0; u32 opt_compr = 9; bool opt_norm = false; int need_norm = 0; // enabled if > 0 +bool opt_no_copy = false; bool opt_fast = false; char *opt_basedir = 0; int opt_recurse = -1; @@ -2500,6 +2507,33 @@ void AtExpandAllParam ( ParamList_t ** p_param ) AtExpandParam(p_param); } +/////////////////////////////////////////////////////////////////////////////// + +void CollectExpandParam +( + StringField_t *plist, // insert or append (inorder_count>0) to this list + ParamList_t *param, // first param to add + int max // max num of param to add; -1: add all param +) +{ + if ( plist && param && max ) + { + for ( ; param; param = param->next ) + { + if (*param->arg) + { + NORMALIZE_FILENAME_PARAM(param); + if ( inorder_count > 0 ) + AppendStringFieldExpand(plist,param->arg,0,false); + else + InsertStringFieldExpand(plist,param->arg,0,false); + } + if (!--max) + break; + } + } +} + // /////////////////////////////////////////////////////////////////////////////// /////////////// tiny support /////////////// @@ -4011,13 +4045,7 @@ enumError cmd_error() enumError cmd_filetype() { - #ifdef __CYGWIN__ - { - ParamList_t *param; - for ( param = first_param; param; param = param->next ) - NORMALIZE_FILENAME_PARAM(param); - } - #endif + NORMALIZE_FILENAME_PARAM_LIST(first_param); if (print_header) { diff --git a/project/src/lib-std.h b/project/src/lib-std.h index 45f0a69..112f1ca 100644 --- a/project/src/lib-std.h +++ b/project/src/lib-std.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -819,6 +819,16 @@ enumError CreateFileOpt // if fname == srcfile: overwrite enabled ); +enumError CreateFileOptAppend +( + File_t * f, // file structure + bool initialize, // true: initialize 'f' + ccp fname, // file to open + bool testmode, // true: don't open + ccp srcfile // NULL or src file name + // if fname == srcfile: overwrite enabled +); + enumError AppendFILE ( File_t * f, // file structure @@ -1608,6 +1618,13 @@ int AddParam ( ccp arg ); void AtExpandParam ( ParamList_t ** param ); void AtExpandAllParam ( ParamList_t ** first_param ); +void CollectExpandParam +( + StringField_t *plist, // insert or append (inorder_count>0) to this list + ParamList_t *param, // first param to add + int max // max num of param to add; -1: add all param +); + // /////////////////////////////////////////////////////////////////////////////// /////////////// general list support /////////////// @@ -1696,9 +1713,13 @@ static inline uint GetStrIdxCountMIL ( const MemItem_t * mi ) void NormalizeFilenameParam ( ParamList_t *param ); #define NORMALIZE_FILENAME_PARAM(p) NormalizeFilenameParam(p) + void NormalizeFilenameParamList ( ParamList_t *param ); + #define NORMALIZE_FILENAME_PARAM_LIST(p) NormalizeFilenameParamList(p) + #else #define NORMALIZE_FILENAME_PARAM(p) + #define NORMALIZE_FILENAME_PARAM_LIST(p) #endif // __CYGWIN__ @@ -2277,6 +2298,7 @@ typedef struct sha1_reference_t u16 clan; }; }; + TrackClass_t tclass; } sha1_reference_t; @@ -2649,6 +2671,8 @@ extern const u8 TestDataLEX[8*1]; /////////////// vars /////////////// /////////////////////////////////////////////////////////////////////////////// +typedef struct Image_t Image_t; + extern ccp opt_config; extern bool opt_no_pager; extern ccp config_path; @@ -2680,6 +2704,7 @@ extern StringField_t source_list; extern ccp opt_reference; extern ccp opt_dest; extern bool opt_mkdir; +extern bool opt_append; extern bool opt_overwrite; extern bool opt_number; extern bool opt_remove_src; @@ -2723,10 +2748,12 @@ extern EncodeMode_t opt_coding64; extern bool opt_verify; extern ccp opt_cache; extern ccp opt_cname; +extern int parallel_count; extern bool opt_round; extern int brief_count; extern int long_count; //extern int full_count; +extern int inorder_count; extern int pipe_count; extern int delta_count; extern int diff_count; @@ -2735,11 +2762,15 @@ extern int export_count; extern int all_count; extern bool raw_mode; extern SortMode_t opt_sort; +extern bool opt_le_menu; +extern ccp opt_cup_icons; +extern ccp opt_title_screen; extern u32 opt_max_file_size; extern int opt_compr_mode; extern u32 opt_compr; extern bool opt_norm; extern int need_norm; // enabled if > 0 +extern bool opt_no_copy; extern bool opt_fast; extern char *opt_basedir; extern int opt_recurse; diff --git a/project/src/lib-szs-create.c b/project/src/lib-szs-create.c index 3e9bf42..94262b2 100644 --- a/project/src/lib-szs-create.c +++ b/project/src/lib-szs-create.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -62,6 +62,7 @@ #include "crypt.h" #include "setup.inc" +#include "le-menu.inc" // /////////////////////////////////////////////////////////////////////////////// @@ -148,6 +149,37 @@ typedef struct scan_data_t } scan_data_t; /////////////////////////////////////////////////////////////////////////////// +// [[add_missing_t]] + +typedef struct add_missing_t +{ + szs_file_t *szs; // valid szs + scan_data_t *sd; // NULL or valid scan data + szs_norm_t *norm; // NULL or valid norm data + + szs_subfile_t *link; // not NULL: link to this file + void *data; // not NULL: add this data (no autoadd) + uint size; // size of 'data' + bool move_data; // data is alloced + + szs_subfile_t *last_subfile; // last added file, set by add_missing_file() + + bool print_err; // true: print errors about missing files + int log_indent; // >-1: print log with indention + +} +add_missing_t; + +//----------------------------------------------------------------------------- + +static int add_missing_file +( + ccp path, // calculated path + file_format_t fform, // FF_BRRES | FF_BREFF | FF_BREFT + add_missing_t *am // user defined parameter +); + +/////////////////////////////////////////////////////////////////////////////// static bool fname_allowed ( scan_data_t *sd, ccp name, char * path_dir ) { @@ -1043,9 +1075,9 @@ enumError LoadObjFileListSZS if (szs->used_file) return ERR_OK; - PRINT("sizeof(UsedFileFILE_t)=%zu\n",sizeof(UsedFileFILE_t)); szs->used_file = CALLOC(1,sizeof(*szs->used_file)); szs->required_file = CALLOC(1,sizeof(*szs->required_file)); + PRINT0("sizeof(UsedFileFILE_t)=%zu=%zu\n",sizeof(UsedFileFILE_t),sizeof(*szs->used_file)); InitializeParamField(szs->required_file); @@ -1207,16 +1239,19 @@ enumError LoadObjFileListSZS *flags |= F_IS_OBJECT; sha1_hash_t hash; - SHA1( szs->data+file->offset, file->size, hash ); - bool found = false; - const s16 *ref = DbFileRefFILE + ptr->ref; - while ( !found && *ref >= 0 ) + if (file->offset) { - DASSERT( *ref < N_DB_FILE ); - const DbFile_t *db = DbFile + *ref++; - DASSERT( db->sha1 < N_DB_FILE_SHA1 ); - found = !memcmp(hash,DbFileSHA1[db->sha1].sha1,sizeof(hash)); + SHA1( szs->data+file->offset, file->size, hash ); + + const s16 *ref = DbFileRefFILE + ptr->ref; + while ( !found && *ref >= 0 ) + { + DASSERT( *ref < N_DB_FILE ); + const DbFile_t *db = DbFile + *ref++; + DASSERT( db->sha1 < N_DB_FILE_SHA1 ); + found = !memcmp(hash,DbFileSHA1[db->sha1].sha1,sizeof(hash)); + } } if (!found) *flags |= F_MODIFIED; @@ -1517,7 +1552,7 @@ static int norm_collect_func depth--; if (!*path) { - norm->have_pt_dir = true; + norm->u8.have_pt_dir = true; return 0; } } @@ -1525,6 +1560,9 @@ static int norm_collect_func if (!*path) return 0; + if ( opt_cup_icons && !strcasecmp(path,"control/timg/tt_baby_daisy_64x64.tpl")) + norm->add_cup_icons = true; + if ( norm->rm_aiparam && !strncasecmp(path,"aiparam",7) ) { PATCH_ACTION_LOG("Remove","SZS","%s\n","AIPARAM"); @@ -1574,7 +1612,7 @@ static int norm_collect_func if ( *ptr == '/' ) ptr++; - norm->namepool_size += strlen(ptr); + norm->u8.namepool_size += strlen(ptr); noPRINT("ADD: %s[%zu+%u]\n",ptr,strlen(ptr),!it->is_dir); if (it->is_dir) { @@ -1605,7 +1643,7 @@ static int norm_collect_func if ( f->removed) { - norm->namepool_size -= strlen(ptr)+1; + norm->u8.namepool_size -= strlen(ptr)+1; relevant_size = 0; } } @@ -1623,9 +1661,9 @@ static int norm_collect_func lptr->link_index, lptr->path, file->path ); } else - norm->total_size += ALIGN32(relevant_size,opt_align_u8); + norm->u8.total_size += ALIGN32(relevant_size,opt_align_u8); - norm->namepool_size++; + norm->u8.namepool_size++; } return 0; } @@ -1653,12 +1691,37 @@ bool NormalizeExSZS ResetFileSZS(szs,false); // [[norm]] - szs_norm_t norm; - memset(&norm,0,sizeof(norm)); - norm.rm_aiparam = rm_aiparam; - norm.clean_lex = clean_lex; + szs_norm_t norm = { .rm_aiparam = rm_aiparam, .clean_lex = clean_lex }; IterateFilesParSZS(szs,norm_collect_func,&norm,false,false,0,-1,SORT_NONE); + if (norm.add_cup_icons) + { + static tpl_raw_t raw = {0}; + if (!raw.valid) + { + Image_t img; + enumError err = LoadIMG(&img,true,opt_cup_icons,0,false,false,false); + if (!err) + { + img.is_cup_icon = true; + CreateRawTPL(&raw,&img); + } + if (!raw.valid) + opt_cup_icons = 0; + } + if (raw.valid) + { + add_missing_t am = { .szs = szs, .norm = &norm, + .data = (u8*)raw.data.ptr, .size = raw.data.len, + .print_err = true }; + am.log_indent = verbose >= 1 || logging >= 2 ? 2 : -1; + add_missing_file("button/timg/ct_icons.tpl",FF_TPL,&am); +//ALWAYS if (opt_links) + am.link = am.last_subfile; + add_missing_file("control/timg/ct_icons.tpl",FF_TPL,&am); + } + } + if (autoadd) AddMissingFiles(szs,0,0,&norm,2); AddSlotFiles(szs,&norm); @@ -1671,7 +1734,7 @@ bool NormalizeExSZS szs->data = 0; szs->data_alloced = false; - CreateU8(szs,0,old_data,norm.namepool_size,norm.total_size,norm.have_pt_dir); + CreateU8ByInfo(szs,0,old_data,&norm.u8); bool dirty = old_size != szs->size || memcmp(old_data,szs->data,old_size); if (old_alloced) @@ -1684,18 +1747,6 @@ bool NormalizeExSZS /////////////// AddMissingFiles() /////////////// /////////////////////////////////////////////////////////////////////////////// -typedef struct add_missing_t -{ - szs_file_t * szs; // valid szs - scan_data_t * sd; // NULL or valid scan data - szs_norm_t * norm; // NULL or valid norm data - int log_indent; // >-1: print log with indention - bool print_err; // true: print errors about missing files - -} add_missing_t; - -//----------------------------------------------------------------------------- - static int add_missing_file ( ccp path, // calculated path @@ -1707,11 +1758,14 @@ static int add_missing_file DASSERT(fform); DASSERT(am); DASSERT(am->szs); - DASSERT( am->sd || am->norm ); + DASSERT( am->sd || am->norm || am->link || am->data ); noPRINT("--> %s:%s\n", GetNameFF(0,fform), path ); - szs_subfile_list_t *subfile = &am->szs->subfile; + szs_file_t *szs = am->szs; + am->last_subfile = 0; + + szs_subfile_list_t *subfile = &szs->subfile; szs_subfile_t *sptr, *send = subfile->list + subfile->used; for ( sptr = subfile->list; sptr < send; sptr++ ) { @@ -1734,6 +1788,16 @@ static int add_missing_file { StringCopyS(load_path,sizeof(load_path),path); } + else if ( am->link > 0 ) + { + size = am->link->size; + load_path[0] = 0; + } + else if ( am->data > 0 ) + { + size = am->size; + load_path[0] = 0; + } else { size = FindAutoAdd(path,0,load_path,sizeof(load_path)); @@ -1746,17 +1810,18 @@ static int add_missing_file #ifdef TEST if (verbose>=0) ERROR0(ERR_WARNING,"Missing sub file '%s': %s\n", - path, am->szs->fname ); + path, szs->fname ); #endif return 0; } } if ( am->log_indent >= 0 ) - fprintf(stdlog,"%*s%sAUTO-ADD %s\n", + fprintf(stdlog,"%*s>> %s%s [%llu] %s\n", am->log_indent, "", - testmode ? "WOULD " : "", - load_path ); + testmode ? "would " : "", + am->link ? "link" : am->data ? "add" : "auto-add", + size, *load_path ? load_path : path ); int stack[10], *stack_end = stack; int dir_id = 0; @@ -1800,14 +1865,13 @@ static int add_missing_file } else { - if (am->sd) { int *stack_ptr; for ( stack_ptr = stack; stack_ptr < stack_end; stack_ptr++ ) subfile->list[*stack_ptr].size++; - sptr = AppendSubfileSZS(am->szs,0,0); + sptr = AppendSubfileSZS(szs,0,0); } else { @@ -1819,7 +1883,7 @@ static int add_missing_file (*stack_ptr)++; } - sptr = InsertSubfileSZS(am->szs,++dir_id,0,0); + sptr = InsertSubfileSZS(szs,++dir_id,0,0); } DASSERT(sptr); @@ -1835,7 +1899,7 @@ static int add_missing_file } else if (am->norm) { - am->norm->namepool_size += ptr - start; + am->norm->u8.namepool_size += ptr - start; sptr->offset = stack_end - stack + 1; } } @@ -1849,19 +1913,55 @@ static int add_missing_file if ( is_course_lex ) { InitializeLEX(&lex); - if ( PatchLEX(&lex,&am->szs->have) && CreateRawLEX(&lex) == ERR_OK ) + if ( PatchLEX(&lex,&szs->have) && CreateRawLEX(&lex) == ERR_OK ) size = lex.raw_data_size; PRINT0("LEX size=%lld\n",size); } szs_subfile_t *file = 0; - if (!size) + if (am->link) + { + file = InsertSubfileSZS(szs,dir_id+1,0,0); + + file->dir_id = dir_id; + file->is_dir = false; + file->path = pt_prefix ? STRDUP2("./",path) : STRDUP(path); + if (!am->link->link_index) + am->link->link_index = ++szs->subfile.link_count; + file->link_index = am->link->link_index; + + + if (am->norm) + { + ccp fname = strrchr(path,'/'); + am->norm->u8.namepool_size += strlen(fname ? fname+1 : path) + 1; + } + } + else if (am->data) + { + file = InsertSubfileSZS(szs,dir_id+1,0,0); + + file->dir_id = dir_id; + file->is_dir = false; + file->path = pt_prefix ? STRDUP2("./",path) : STRDUP(path); + file->data = am->move_data ? am->data : MEMDUP(am->data,size); + file->size = size; + file->data_alloced = true; + + if (am->norm) + { + ccp fname = strrchr(path,'/'); + am->norm->u8.namepool_size += strlen(fname ? fname+1 : path) + 1; + am->norm->u8.total_size += ALIGN32(file->size,opt_align_u8); + } + } + else if (!size) { // [[2do]] maybe remove "course.lex" from list } else if (am->sd) { - file = AppendSubfileSZS(am->szs,0,0); + file = AppendSubfileSZS(szs,0,0); DASSERT(file); ccp fname = strrchr(path,'/'); am->sd->namepool_size_u8 += strlen(fname ? fname+1 : path) + 1; @@ -1878,7 +1978,7 @@ static int add_missing_file } else if (am->norm) { - file = InsertSubfileSZS(am->szs,dir_id+1,0,0); + file = InsertSubfileSZS(szs,dir_id+1,0,0); file->dir_id = dir_id; file->is_dir = false; @@ -1889,12 +1989,13 @@ static int add_missing_file file->load_path = STRDUP(load_path); ccp fname = strrchr(path,'/'); - am->norm->namepool_size += strlen(fname ? fname+1 : path) + 1; - am->norm->total_size += ALIGN32(file->size,opt_align_u8); + am->norm->u8.namepool_size += strlen(fname ? fname+1 : path) + 1; + am->norm->u8.total_size += ALIGN32(file->size,opt_align_u8); - PRINT("ADD-FILE[%d,%zd]: %s, %u bytes\n", - dir_id+1, file-am->szs->subfile.list, path, file->size ); + PRINT1("ADD-FILE[%d,%zd]: %s, %u bytes\n", + dir_id+1, file-szs->subfile.list, path, file->size ); } + am->last_subfile = file; if (is_course_lex) { @@ -1977,8 +2078,8 @@ enumError AddMissingFiles am.norm = norm; am.log_indent = log_indent; - int i, insert_count = 0; - for ( i = 0; i < N_DB_FILE_FILE; i++ ) + int insert_count = 0; + for ( int i = 0; i < N_DB_FILE_FILE; i++ ) if (szs->used_file->d[i]) { const DbFileFILE_t *ptr = DbFileFILE + i; @@ -2508,6 +2609,146 @@ static int IterateFilesKMP /////////////////////////////////////////////////////////////////////////////// /////////////// PatchSZS() /////////////// /////////////////////////////////////////////////////////////////////////////// +// [[patch_szs_par_t]] + +typedef struct patch_szs_par_t +{ + uint modified; // >0: any data modified + ccp path; // path without leading "./" +} +patch_szs_par_t; + +/////////////////////////////////////////////////////////////////////////////// + +static void patch_file +( + struct szs_iterator_t *it, // itarator data + const void *new_data, // new data + uint new_size, // size of 'new_data' + bool move_data // true: 'new_data' is alloced +) +{ + DASSERT(it); + DASSERT(data||!size); + + szs_file_t *szs = it->szs; + DASSERT(szs); + u8 *data = szs->data + it->off; + + if ( it->size == new_size ) + { + if ( verbose >= 2 ) + fprintf(stdlog," >> overwrite [%u] %s \n",new_size,it->path); + + memcpy(data,new_data,new_size); + if (move_data) + FREE((void*)new_data); + } + else + { + if ( verbose >= 2 ) + fprintf(stdlog," >> replace [%u] %s \n",new_size,it->path); + + szs_subfile_t *file = AppendSubFileList(&szs->ext_data,it->path,false); + DASSERT(file); + file->load_path = move_data ? new_data : MEMDUP(new_data,new_size); + it->off += (u8*)file->load_path - data; + it->size = file->size = new_size; + } + + patch_szs_par_t *ppar = it->param; + DASSERT(ppar); + ppar->modified++; +} + +/////////////////////////////////////////////////////////////////////////////// + +static void patch_le_menu ( struct szs_iterator_t *it ) +{ + struct tab_t + { + ccp fname; + BZ2Manager_t *bz2mgr; + }; + + static const struct tab_t tab[] = + { + { "button/ctrl/Back.brctr", &back_brctr_mgr }, + { "control/ctrl/CourseSelectCup.brctr", &courseselectcup_brctr_mgr }, + { "button/ctrl/CupSelectCup.brctr", &cupselectcup_brctr_mgr }, + { "demo/blyt/course_name.brlyt", &course_name_brlyt_mgr }, + { "button/blyt/cup_icon_64x64_common.brlyt", &cup_icon_64x64_common_brlyt_mgr }, + { "control/blyt/cup_icon_64x64_common.brlyt", &cup_icon_64x64_common_brlyt_mgr }, + { "demo/timg/tt_hatena_64x64.tpl", &tt_hatena_64x64_tpl_mgr }, + {0,0} + }; + + patch_szs_par_t *ppar = it->param; + DASSERT(ppar); + + for ( const struct tab_t *ptr = tab; ptr->fname; ptr++ ) + { + if (!strcasecmp(ppar->path,ptr->fname)) + { + BZ2Manager_t *bm = ptr->bz2mgr; + DecodeBZIP2Manager(bm); + patch_file(it,bm->data,bm->size,false); + } + } +} + +/////////////////////////////////////////////////////////////////////////////// + +static void patch_title_screen ( struct szs_iterator_t *it ) +{ + patch_szs_par_t *ppar = it->param; + DASSERT(ppar); + ccp base_name = strrchr(ppar->path,'/'); + if (!base_name) + base_name = ppar->path; + + u8 *data; + size_t size; + LoadFileAlloc(opt_title_screen,base_name,0,&data,&size,0,2,0,false); + if (data) + patch_file(it,data,size,true); + else if (strstr(ppar->path,"/tt_title_screen_")) + { + char path_buf[PATH_MAX]; + const bool bokeboke = strstr(ppar->path,"bokeboke") != 0; + ccp path = PathCatPP(path_buf,sizeof(path_buf), + opt_title_screen, bokeboke ? "title2.png" : "title1.png" ); + Image_t patch; + enumError err = LoadIMG(&patch,true,path,0,false,false,true); + if (!err) + { + Image_t img; + u8 *data = it->szs->data + it->off; + data = MEMDUP(data,it->size); + err = AssignIMG(&img,true,data,it->size,0,false,&be_func,it->path); + ConvertIMG(&patch,false,0,IMG_X_RGB,PAL_AUTO); + ConvertIMG(&img,false,0,IMG_X_RGB,PAL_AUTO); + err = PatchIMG(&img,&img,&patch,PIM_TOP|PIM_FOREGROUND); + if (!err) + { + ConvertIMG(&img,false,0,IMG_RGB565,PAL_AUTO); + tpl_raw_t raw = {0}; + CreateRawTPL(&raw,&img); + if (raw.valid) + { + patch_file(it,raw.data.ptr,raw.data.len,true); + raw.data.ptr = 0; + } + ResetRawTPL(&raw); + } + ResetIMG(&img); + FREE(data); + } + ResetIMG(&patch); + } +} + +/////////////////////////////////////////////////////////////////////////////// static int transform_collect_func ( @@ -2516,10 +2757,22 @@ static int transform_collect_func ) { DASSERT(it); - if ( !term && !it->is_dir ) + if (term) + return 0; + + patch_szs_par_t *ppar = it->param; + DASSERT(ppar); + + ccp path = it->path; + if ( path[0] == '.' && path[1] == '/' ) + path += 2; + ppar->path = path; + + if (it->is_dir) + { + } + else { - int *dirty = it->param; - DASSERT(dirty); szs_file_t *szs = it->szs; DASSERT(szs); u8 * data = szs->data + it->off; @@ -2550,7 +2803,7 @@ static int transform_collect_func PATCH_ACTION_LOG("Patch","BMG/RAW","%s\n",it->name); memcpy(data,bmg.raw_data,it->size); it->size = bmg.raw_data_size; - *dirty = 1; + ppar->modified++; } else if ( szs->allow_ext_data ) { @@ -2563,7 +2816,7 @@ static int transform_collect_func it->off += bmg.raw_data - data; it->size = bmg.raw_data_size; bmg.raw_data = 0; - *dirty = 1; + ppar->modified++; } else ERROR0(ERR_WARNING, @@ -2619,14 +2872,14 @@ static int transform_collect_func it->off += (u8*)file->load_path - data; it->size = file->size = kcl.raw_data_size; } - *dirty = 1; + ppar->modified++; } ResetKCL(&kcl); } else if (PatchRawDataKCL(data,it->size,it->name)) { PATCH_ACTION_LOG("Patch","KCL/RAW","%s\n",it->name); - *dirty = 1; + ppar->modified++; } break; @@ -2667,14 +2920,14 @@ static int transform_collect_func it->size = kmp.raw_data_size; kmp.raw_data = 0; } - *dirty = 1; + ppar->modified++; } ResetKMP(&kmp); } else if (PatchRawDataKMP(data,it->size)) { PATCH_ACTION_LOG("Patch","KMP/RAW","%s\n",it->name); - *dirty = 1; + ppar->modified++; } break; @@ -2721,7 +2974,7 @@ static int transform_collect_func it->size = lex.raw_data_size; lex.raw_data = 0; } - *dirty = 1; + ppar->modified++; } PRINT("PATCH/LEX: modified=%d, have_lex:%x,%x\n", lex.modified, lex.have_sect, lex.have_feat ); @@ -2762,12 +3015,16 @@ static int transform_collect_func PATCH_ACTION_LOG(" Patch","MDL/RAW","%s%s\n", it->name, stat&2 ? " (vector transformation recognized)" : "" ); - *dirty = 1; + ppar->modified++; } } break; default: + if (opt_le_menu) + patch_le_menu(it); + if ( opt_title_screen && !memcmp(ppar->path,"title/timg/",11) ) + patch_title_screen(it); break; } } @@ -2796,26 +3053,31 @@ bool PatchSZS ( szs_file_t * szs ) } #endif - int dirty = 0; + patch_szs_par_t ppar = {0}; if ( szs->data && szs->size ) { if (patch_lex) { CalcHaveSZS(szs); - dirty |= NormalizeExSZS(szs,0,0,0); + ppar.modified |= NormalizeExSZS(szs,0,0,0); } - if ( have_patch_count > 0 || opt_lex_purge ) + if ( have_patch_count > 0 + || opt_lex_purge + || opt_le_menu +//DEL || opt_cup_icons + || opt_title_screen + ) { PRINT("** PatchSZS() **\n"); ScanTformBegin(); - IterateFilesParSZS(szs,transform_collect_func,&dirty,false,false,-1,-1,SORT_NONE); + IterateFilesParSZS(szs,transform_collect_func,&ppar,false,false,-1,-1,SORT_NONE); TformScriptEnd(); ClearSpecialFilesSZS(szs); } } - return dirty != 0; + return ppar.modified != 0; } /////////////////////////////////////////////////////////////////////////////// @@ -3138,7 +3400,6 @@ static int check_file_func if (chk->num_mdl) chk->num_mdl[0]++; szs_file_t subszs; -// [[fname+]] InitializeSubSZS(&subszs,it->szs,it->off,it->size,fform,it->path,false); subszs.fname = it->path; IterateFilesParSZS(&subszs,check_mdl_func,chk,false,true,0,1,SORT_NONE); diff --git a/project/src/lib-szs.c b/project/src/lib-szs.c index db1960d..7daa0cc 100644 --- a/project/src/lib-szs.c +++ b/project/src/lib-szs.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -50,6 +50,7 @@ #include "lib-image.h" #include "lib-bzip2.h" #include "lib-checksum.h" +#include "dclib-utf8.h" #include "crypt.h" // @@ -2159,10 +2160,18 @@ enumError CompressBZ ( szs_file_t * szs, bool remove_uncompressed ) /////////////// create u8 /////////////// /////////////////////////////////////////////////////////////////////////////// -void PrintFileHeadSZS() +int PrintFileHeadSZS ( int fw_name ) { - printf("\n idx offset/hex size/hex size/dec magic f.form vers file or directory\n" - "%.119s\n", Minus300 ); + if ( fw_name <= 0 ) + fw_name = 62; + if ( fw_name <= 17 ) + fw_name = 17; + fw_name += 58; + + printf("\n%s idx offset/hex size/hex size/dec magic f.form vers file or directory\n" + "%s%.*s%s\n", + colout->heading, colout->heading, 3*fw_name, ThinLine300_3, colout->reset ); + return fw_name; } /////////////////////////////////////////////////////////////////////////////// @@ -2171,7 +2180,7 @@ void PrintVersionSZS ( char *buf, uint buf_size, struct szs_iterator_t *it ) { DASSERT(buf); DASSERT(it); - *buf = 0; + *buf = 0; // [[version-suffix]] @@ -2263,6 +2272,7 @@ enumError CreateU8 bool create_pt_dir // create directory '.' as base ) { + DASSERT(szs); PRINT("CreateU8() namesize=%x, totsize=%x, align=%x, .dir=%d\n", namepool_size, total_size, opt_align_u8, create_pt_dir ); @@ -2475,9 +2485,7 @@ enumError CreateU8 DASSERT_MSG( name_ptr == name_pool + namepool_size, "name pool underflow: %zx/%x\n", name_ptr - name_pool, namepool_size ); - if (u8link) - FREE(u8link); - + FREE(u8link); ClearSpecialFilesSZS(szs); @@ -2493,6 +2501,22 @@ enumError CreateU8 return max_err; } +/////////////////////////////////////////////////////////////////////////////// + +enumError CreateU8ByInfo +( + szs_file_t * szs, // valid szs + ccp source_dir, // NULL or path to source dir + u8 * source_data, // NULL or source data + szs_u8_info_t * u8info // valid data +) +{ + DASSERT(szs); + DASSERT(u8info); + return CreateU8( szs, source_dir, source_data, + u8info->namepool_size, u8info->total_size, u8info->have_pt_dir ); +} + // /////////////////////////////////////////////////////////////////////////////// /////////////// szs_extract_t /////////////// @@ -2938,6 +2962,194 @@ enumError LoadRawData // /////////////////////////////////////////////////////////////////////////////// +/////////////// UI-Check /////////////// +/////////////////////////////////////////////////////////////////////////////// + + +const char ui_type_char[UIT__N+1] = "?-ACEFGMOSPRTl"; + +const ccp ui_type_name[UIT__N+1] = +{ + "?", + "-", + "Award", + "Channel", + "Event", + "Font", + "Globe", + "MenuMulti", + "MenuOther", + "MenuSingle", + "Present", + "Race", + "Title", + "language", + 0 +}; + +/////////////////////////////////////////////////////////////////////////////// + +ccp GetUiTypeColor ( const ColorSet_t *colset, ui_type_t type ) +{ + if (!colset) + return ""; + + switch(type) + { + case UIT_UNDEFINED: return colset->bad; + case UIT_UNKNOWN: return colset->warn; + case UIT_LANGUAGE: return colset->hint; + case UIT_FONT: return colset->mark; + default: return colset->info; + } +} + +/////////////////////////////////////////////////////////////////////////////// + +static int ui_check_func +( + struct szs_iterator_t *it, // iterator struct with all infos + bool term // true: termination hint +) +{ + DASSERT(it); + if (term) + return 0; + + ui_check_t *uc = it->param; + DASSERT(uc); + + ccp path = it->path; + if( path[0] == '.' && path[1] == '/' ) + path += 2; + + if (!strcmp(path,"message/Common.bmg")) + { + uc->is_ui = OFFON_OFF; + uc->is_korean = OFFON_AUTO; + uc->type = UIT_LANGUAGE; + return 1; + } + + if ( uc->is_korean == OFFON_AUTO && strstr(path,"/blyt/national_flag.brlyt") ) + { + if ( it->size == 232 ) + uc->is_korean = OFFON_ON; + else if ( it->size == 16380 ) + uc->is_korean = OFFON_OFF; + } + + if ( uc->is_korean == OFFON_AUTO && strstr(path,"/blyt/chara_flag_machine_picture_common.brlyt") ) + { + if ( it->size == 232 ) + uc->is_korean = OFFON_ON; + else if ( it->size == 33120 ) + uc->is_korean = OFFON_OFF; + } + + if (!memcmp(path,"title/timg/tt_title_screen_peachi",33)) + { + uc->type = UIT_TITLE; + if ( uc->is_korean != OFFON_AUTO ) + return 1; + } + + if (!strcmp(path,"indicator_font.brfnt")) + { + uc->is_korean = OFFON_OFF; + uc->type = UIT_FONT; + return 1; + } + + if (!strcmp(path,"parameter/mission_ui_single.bin")) + { + uc->type = UIT_MENU_SINGLE; + if ( uc->is_korean != OFFON_AUTO ) + return 1; + } + + if (!strcmp(path,"button/ctrl/AfterMenuBT.brctr")) + { + uc->type = UIT_RACE; + return 1; + } + + if (!strcmp(path,"control/blyt/present_message_window_course.brlyt")) + { + uc->type = UIT_PRESENT; + return 1; + } + + if (!strcmp(path,"globe/timg/tt_star_01.tpl")) + { + uc->type = UIT_GLOBE; + return 1; + } + + if (it->is_dir) + { + if (!strcmp(path,"award/")) + uc->type = UIT_AWARD; + else if (!strcmp(path,"ranking/ctrl/")) + { + uc->type = UIT_CHANNEL; + return 1; + } + } + + if (!strcmp(path,"bg/anim/option_bg_Loop.brlan")) + uc->possible &= UIT_M_CHANNEL | UIT_M_MENU_OTHER; + + if (!strcmp(path,"bg/ctrl/EventObiTop.brctr")) + uc->possible &= UIT_M_CHANNEL | UIT_M_EVENT; + + if (!strcmp(path,"control/timg/tt_baby_daisy_64x64.tpl")) + uc->possible &= UIT_M_CUP_ICONS; + + return 0; +} + +/////////////////////////////////////////////////////////////////////////////// + +void UiCheck ( ui_check_t *uc, szs_file_t *szs ) +{ + DASSERT(ui); + DASSERT(szs); + memset(uc,0,sizeof(*uc)); + uc->type = UIT_UNKNOWN; + uc->possible = UIT_M_ALL; + + IterateFilesParSZS(szs,ui_check_func,uc,false,false,-1,-1,SORT_NONE); + + if ( uc->is_korean == OFFON_ON && uc->is_ui == OFFON_AUTO ) + uc->is_ui = OFFON_ON; + + if ( uc->type <= UIT_UNKNOWN ) + { + if ( uc->possible == (UIT_M_CHANNEL|UIT_M_EVENT) ) + uc->type = UIT_EVENT; + if ( uc->possible == (UIT_M_CHANNEL|UIT_M_MENU_OTHER) ) + uc->type = UIT_MENU_OTHER; + if ( uc->possible == (UIT_M_CHANNEL|UIT_M_MENU_MULTI|UIT_M_MENU_SINGLE) ) + uc->type = UIT_MENU_MULTI; + + for ( ui_type_t type = 1; type < UIT__N; type++ ) + { + const uint mask = 1 << type; + if ( uc->possible == mask ) + { + uc->type = type; + break; + } + } + } + + if (uc->type) + uc->possible = 1 << uc->type; +} + +// +/////////////////////////////////////////////////////////////////////////////// /////////////// IterateFilesU8() /////////////// /////////////////////////////////////////////////////////////////////////////// @@ -2996,11 +3208,7 @@ int IterateFilesU8 //----- cut files? - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->index = 0; it->fst_item = 0; @@ -3039,11 +3247,7 @@ int IterateFilesU8 int stat = 0; const u8_node_t *fst; - #if USE_ITERATOR_PARAM for ( fst = fst_base + !it->itpar.show_root_node; fst < fst_end && !stat; fst++ ) - #else - for ( fst = fst_base + !it->show_root_node; fst < fst_end && !stat; fst++ ) - #endif { while ( fst >= dir_end && stack > stack_buf ) { @@ -3057,7 +3261,6 @@ int IterateFilesU8 ccp fname = (ccp)fst_end + (ntohl(fst->name_off)&0xffffff); it->name = fname; char *path_dest = it->trail_path = path_ptr; - #if USE_ITERATOR_PARAM while ( path_dest < path_end && *fname ) { const char ch = *fname++; @@ -3067,16 +3270,6 @@ int IterateFilesU8 if ( it->itpar.clean_path && path_dest == path_ptr+2 && path_ptr[0] == '.' && path_ptr[1] == '.' ) path_dest--; - #else - while ( path_dest < path_end && *fname ) - { - const char ch = *fname++; - if ( ch != '\\' && ch != '/' || !it->clean_path ) - *path_dest++ = ch; - } - if ( it->clean_path && path_dest == path_ptr+2 && path_ptr[0] == '.' && path_ptr[1] == '.' ) - path_dest--; - #endif it->index = fst - fst_base; it->fst_item = (u8_node_t*)fst; @@ -3243,11 +3436,7 @@ static int iterate_sort_files return 0; } - #if USE_ITERATOR_PARAM SortSubFilesSZS(it->szs,it->itpar.sort_mode); - #else - SortSubFilesSZS(it->szs,it->sort_mode); - #endif const szs_subfile_t * ptr = it->szs->subfile.list; const szs_subfile_t * end = ptr + it->szs->subfile.used; @@ -3323,17 +3512,9 @@ static int iterate_sub_files szs_iterator_func it_func = 0; if ( it->recurse_level < it->recurse_max ) { - #if USE_ITERATOR_PARAM it_func = GetIteratorFunction(fform,it->itpar.cut_files); - #else - it_func = GetIteratorFunction(fform,it->cut_files); - #endif } - #if USE_ITERATOR_PARAM else if ( it->itpar.cut_files ) - #else - else if ( it->cut_files ) - #endif { it_func = GetIteratorFunction(fform,true); if (GetIteratorFunction(fform,false)) @@ -3413,15 +3594,7 @@ int IterateFilesSZS szs_iterator_t it = {0}; it.szs = szs; - #if USE_ITERATOR_PARAM it.itpar = itpar; - #else - it.cut_files = itpar->cut_files > 0; - it.sort_mode = itpar->sort_mode; - it.clean_path = itpar->clean_path; - it.show_root_node = itpar->show_root_node; - #endif - it.func_sub = func; it.func_sort = recurse || itpar.cut_files ? iterate_sub_files : func; it.func_it = sort_files ? iterate_sort_files : it.func_sort; @@ -3456,49 +3629,12 @@ int IterateFilesParSZS DASSERT(szs); DASSERT(func); - #if USE_ITERATOR_PARAM iterator_param_t itpar = {0}; itpar.cut_files = cut_files > 0; itpar.sort_mode = sort_mode; itpar.clean_path = clean_path; itpar.show_root_node = show_root_node; return IterateFilesSZS(szs,func,param,&itpar,recurse); - #else - PRINT("IterateFilesParSZS(clean=%d,rec=%d,cut=%d,sort=%d) ff=%s\n", - clean_path,recurse, cut_files, sort_mode, - GetNameFF(szs->fform_file,szs->fform_arch)); - - szs_iterator_func ifunc = GetIteratorFunction(szs->fform_arch,cut_files>=0); - if (!ifunc) - return -1; - - if ( sort_mode == SORT_NONE && IsBRSUB(szs->fform_arch) ) - sort_mode = SORT_OFFSET; - const bool sort_files = sort_mode != SORT_NONE; - if ( sort_files && szs->subfile.used ) - ResetFileSZS(szs,false); - - szs_iterator_t it = {0}; - it.szs = szs; - it.cut_files = cut_files > 0; - it.sort_mode = sort_mode; - it.func_sub = func; - it.func_sort = recurse || it.cut_files ? iterate_sub_files : func; - it.func_it = sort_files ? iterate_sort_files : it.func_sort; - it.param = param; - it.endian = &be_func; - it.clean_path = clean_path; - it.show_root_node = show_root_node; - it.recurse_max = recurse >= 0 ? recurse : INT_MAX; - it.group = GROUP_INVALID; - it.entry = ENTRY_INVALID; - - const int stat = ifunc(&it,false); - it.name = 0; - *it.path = 0; - const int stat_term = it.func_it(&it,true); - return stat ? stat : stat_term; - #endif } /////////////////////////////////////////////////////////////////////////////// @@ -3549,6 +3685,7 @@ static int collect_r_func { DASSERT(it); DASSERT(it->szs); + szs_file_t *szs = it->szs; collect_recurse_t *cr = it->param; DASSERT(cr); @@ -3588,6 +3725,20 @@ static int collect_r_func StringCopyE(cr->path_end,cr->path+sizeof(cr->path),it->path); cr->last_off = it->off + cr->add_off; + const int path_len = strlen8(it->path); + if (it->is_dir) + { + szs->n_dirs++; + if ( szs->fw_dirs < path_len ) + szs->fw_dirs = path_len; + } + else + { + szs->n_files++; + if ( szs->fw_files < path_len ) + szs->fw_files = path_len; + } + szs_subfile_t * file = AppendSubfileSZS(cr->szs,it,STRDUP(cr->path)); DASSERT(file); file->offset = cr->last_off; @@ -3616,6 +3767,11 @@ uint CollectFilesSZS const uint base = szs->subfile.used; DecompressSZS(szs,true,0); + szs->n_dirs = 0; + szs->n_files = 0; + szs->fw_dirs = 0; + szs->fw_files = 0; + if ( recurse < 0 || recurse > MAX_COLLECT_RECURSE ) recurse = MAX_COLLECT_RECURSE; if ( recurse > 0 || cut_files >= 0 ) @@ -3844,11 +4000,7 @@ int CutFilesBRSUB (brsub_header_t*)data,n_grp,it->endian); u32 name_off = bcut.endian->rd32(data+brsub_header_size-4); ccp name_str = GETSTR(name_off,0); - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { it->name = name_str; stat = func(&bcut,GROUP_IDX_BRSUB_HEADER,ENTRY_IDX_ETC); @@ -3896,11 +4048,7 @@ int CutFilesBRSUB if ( x_size > bg_size ) goto plain; - #if USE_ITERATOR_PARAM if (it->itpar.cut_files) - #else - if (it->cut_files) - #endif { bcut.path_end = it->path + snprintf(it->path,sizeof(it->path),".%s.s%0*u%s.header.n%u.bin", @@ -3993,11 +4141,7 @@ int CutFilesBRSUB } } - #if USE_ITERATOR_PARAM if ( it->itpar.cut_files && bcut.brsub_size < bcut.size ) - #else - if ( it->cut_files && bcut.brsub_size < bcut.size ) - #endif { it->off = bcut.brsub_size; it->size = bcut.size - bcut.brsub_size; diff --git a/project/src/lib-szs.h b/project/src/lib-szs.h index 110ff2a..e00b64d 100644 --- a/project/src/lib-szs.h +++ b/project/src/lib-szs.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -406,11 +406,17 @@ typedef struct szs_file_t DataContainer_t *old_container; // old data [[container]] support, init with NULL Container_t container; // container data + //--- statistics, determined by CollectFilesSZS()( and collect_r_func() + + uint n_dirs; // number of directories in archive + uint n_files; // number of files in archive + uint fw_dirs; // max UTF8 length of all dirs + uint fw_files; // max UTF8 length of all files //--- statistics, determined by LoadObjFileListSZS() UsedFileFILE_t *used_file; // NULL or alloced and set vector - DbFlags_t found_flags; // summery (or'ed) of 'used_file' + DbFlags_t found_flags; // summary (or'ed) of 'used_file' MissedFile_t missed_file; // missed files by DBT_* groups MissedFile_t modified_file; // modified files by DBT_* groups ParamField_t *required_file; // list with required files by setting @@ -497,6 +503,17 @@ typedef enum szs_norm_info_t szs_norm_info_t; //----------------------------------------------------------------------------- +// [[szs_u8_info_t]] + +typedef struct szs_u8_info_t +{ + u32 namepool_size; // calculated size of name-pool + u32 total_size; // calculated total size + bool have_pt_dir; // true: have './' prefix +} +szs_u8_info_t; + +//----------------------------------------------------------------------------- // [[szs_norm_t]] // [[norm]] @@ -504,19 +521,18 @@ typedef struct szs_norm_t { //--- status - u32 namepool_size; - u32 total_size; - bool have_pt_dir; + szs_u8_info_t u8; // relevant data to create an U8 archive //--- jobs bool force_pt_dir; // force './' as prefix for each subfile bool rm_aiparam; // remove subfiles with name 'aiparam*' bool clean_lex; // [[obsolete]] when following params become active + bool auto_add; // true: autoadd files + bool add_cup_icons; // true: add cup icons + + //--- [[2do]] not implemented yet - //--- not implemented yet - - bool auto_add; // autoadd files bool norm_speed; // normalize speed (KMP/STGI) u8 max_laps; // >0: limit number of laps (KMP/STGI) u8 set_laps; // >0: set number of laps (KMP/STGI) @@ -724,6 +740,14 @@ enumError CreateU8 bool create_pt_dir // create directory '.' as base ); +enumError CreateU8ByInfo +( + szs_file_t * szs, // valid szs + ccp source_dir, // NULL or path to source dir + u8 * source_data, // NULL or source data + szs_u8_info_t * u8info // valid data +); + enumError CreateSZS ( szs_file_t * szs, // valid szs @@ -916,8 +940,6 @@ typedef struct iterator_param_t } iterator_param_t; -#define USE_ITERATOR_PARAM 1 - //----------------------------------------------------------------------------- // [[szs_iterator_t]] @@ -927,14 +949,7 @@ typedef struct szs_iterator_t szs_file_t * szs; // valid szs pointer const endian_func_t * endian; // endian functions - #if USE_ITERATOR_PARAM iterator_param_t itpar; // global parameters - #else - bool clean_path; // true: clean path - bool show_root_node; // true: show root node - bool cut_files; // true: cut files into peaces - SortMode_t sort_mode; // sort files - #endif //--- client values @@ -1042,7 +1057,8 @@ uint CollectFilesSZS SortMode_t sort_mode // sort subfiles ); -void PrintFileHeadSZS(); +int PrintFileHeadSZS( int fw_name ); + int PrintFileSZS ( struct szs_iterator_t *it, // iterator struct with all infos @@ -1371,6 +1387,72 @@ ccp GetOptBasedir(); // /////////////////////////////////////////////////////////////////////////////// +/////////////// UI-Check /////////////// +/////////////////////////////////////////////////////////////////////////////// +// [[ui_type_t]] + +typedef enum ui_type_t +{ + UIT_UNDEFINED, // ? + UIT_UNKNOWN, // - + UIT_AWARD, // A + UIT_CHANNEL, // C + UIT_EVENT, // E + UIT_FONT, // F + UIT_GLOBE, // G + UIT_MENU_MULTI, // M + UIT_MENU_OTHER, // O + UIT_MENU_SINGLE, // S + UIT_PRESENT, // P + UIT_RACE, // R + UIT_TITLE, // T + UIT_LANGUAGE, // l + UIT__N, + + UIT_M_AWARD = 1 << UIT_AWARD, + UIT_M_CHANNEL = 1 << UIT_CHANNEL, + UIT_M_EVENT = 1 << UIT_EVENT, + UIT_M_FONT = 1 << UIT_FONT, + UIT_M_GLOBE = 1 << UIT_GLOBE, + UIT_M_MENU_MULTI = 1 << UIT_MENU_MULTI, + UIT_M_MENU_OTHER = 1 << UIT_MENU_OTHER, + UIT_M_MENU_SINGLE = 1 << UIT_MENU_SINGLE, + UIT_M_PRESENT = 1 << UIT_PRESENT, + UIT_M_RACE = 1 << UIT_RACE, + UIT_M_TITLE = 1 << UIT_TITLE, + UIT_M_LANGUAGE = 1 << UIT_LANGUAGE, + UIT_M_ALL = ( 1 << UIT__N ) -1, + + UIT_M_CUP_ICONS = UIT_M_CHANNEL | UIT_M_MENU_MULTI | UIT_M_MENU_SINGLE, +} +ui_type_t; + +//----------------------------------------------------------------------------- + +extern const char ui_type_char[UIT__N+1]; +extern const ccp ui_type_name[UIT__N+1]; + +ccp GetUiTypeColor ( const ColorSet_t *colset, ui_type_t type ); + +/////////////////////////////////////////////////////////////////////////////// +// [[ui_check_t]] + +typedef struct ui_check_t +{ + OffOn_t is_ui; // is language independent UI file + OffOn_t is_korean; // is korean variant + + uint possible; // mask of possible types (1<<UIT_*) + ui_type_t type; // final detected type +} +ui_check_t; + +//----------------------------------------------------------------------------- + +void UiCheck ( ui_check_t *uc, szs_file_t *szs ); + +// +/////////////////////////////////////////////////////////////////////////////// /////////////// raw_data_t /////////////// /////////////////////////////////////////////////////////////////////////////// // [[raw_data_t]] diff --git a/project/src/lib-transform.c b/project/src/lib-transform.c index 106c63d..d2c30b2 100644 --- a/project/src/lib-transform.c +++ b/project/src/lib-transform.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-xbmg.c b/project/src/lib-xbmg.c index 0c46cc4..222ba70 100644 --- a/project/src/lib-xbmg.c +++ b/project/src/lib-xbmg.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/lib-xbmg.h b/project/src/lib-xbmg.h index d1cd026..a21c8a6 100644 --- a/project/src/lib-xbmg.h +++ b/project/src/lib-xbmg.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/prefix.inc b/project/src/prefix.inc index 7ceb626..77023ec 100644 --- a/project/src/prefix.inc +++ b/project/src/prefix.inc @@ -1,89 +1,89 @@ static const u8 prefix_inc_bz2[] = { - // decompressed size: 0xb08 = 2824 bytes - 0x00,0x00,0x0b,0x08, + // decompressed size: 0xb23 = 2851 bytes + 0x00,0x00,0x0b,0x23, // bzipped data - 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xf1,0x24, 0xaf,0x32,0x00,0x01, - 0x06,0xdf,0x80,0x00, 0x12,0x61,0xef,0x7f, 0xf0,0x3f,0xef,0xdf, 0xf0,0x3f,0xff,0xff, - 0xf4,0x50,0x04,0xbe, 0xc6,0xf7,0x7a,0x2f, 0x74,0xf5,0x3d,0x78, 0xbb,0xdc,0x79,0xe3, - 0x0d,0x14,0xc9,0x89, 0x31,0xa0,0x2a,0x7e, 0x8d,0x4f,0x34,0x4d, 0x4f,0xd4,0xa7,0xa9, - 0xea,0x7a,0x47,0x93, 0x51,0x9b,0x54,0x32, 0x00,0xd3,0x34,0x1a, 0x69,0x10,0xc2,0x9e, - 0x43,0x22,0x9e,0x94, 0xda,0x9e,0x8d,0x20, 0x34,0x03,0xd4,0xd0, 0xd3,0x43,0x21,0x9a, - 0x83,0x40,0x94,0xd1, 0x04,0x13,0x54,0xf1, 0x4f,0x69,0x4d,0x1f, 0xa9,0x3f,0x54,0xf5, - 0x34,0xd0,0xc6,0x93, 0x10,0x0c,0x80,0x00, 0x01,0x9a,0x92,0x99, 0x36,0xa9,0xb5,0x0d, - 0x1e,0xa7,0xa8,0x06, 0x80,0x00,0x00,0x68, 0x01,0xa0,0x06,0x82, 0x44,0x88,0xd1,0x4f, - 0x46,0x94,0x79,0x1a, 0x9e,0xa7,0xe8,0x93, 0x47,0xa8,0xc8,0xc8, 0x03,0x04,0xd0,0xf5, - 0x3d,0x4f,0x44,0x1a, 0x66,0x24,0x23,0xfe, 0x24,0x23,0xbb,0x9f, 0x3f,0x5f,0x57,0x95, - 0x76,0xd7,0xd2,0xf6, 0x77,0xee,0x95,0x91, 0x08,0x91,0x66,0xf4, 0x52,0x67,0xee,0xd9, - 0x9a,0x36,0x14,0xd7, 0x75,0xb0,0x1c,0x18, 0xee,0x5e,0x8f,0x24, 0xdc,0xb8,0x96,0x08, - 0x8e,0x1f,0x9f,0xc3, 0x44,0x84,0x72,0xb9, 0xd0,0xee,0xac,0x5c, 0x80,0x29,0x41,0x12, - 0x03,0xe2,0x42,0x88, 0xbe,0xd7,0xa2,0x29, 0x15,0x22,0x10,0xab, 0xa3,0x55,0x45,0xa4, - 0xba,0x70,0xbe,0x77, 0xea,0xe0,0x34,0x9c, 0x05,0xba,0x45,0x70, 0x1c,0x95,0x31,0x60, - 0xd2,0xcc,0x07,0x6b, 0x68,0xec,0x84,0xfb, 0xa6,0x96,0xd3,0x7d, 0x94,0xc2,0xd4,0xbe, - 0x8a,0xfa,0x59,0xc7, 0x31,0x2e,0x68,0xd3, 0x98,0x75,0x62,0x72, 0xa3,0x51,0x3b,0xfa, - 0xe0,0x01,0xfe,0x0a, 0x29,0xb8,0x34,0x6b, 0x75,0x9c,0xc0,0x58, 0xe3,0xb4,0x03,0xed, - 0x20,0x00,0x10,0x78, 0xd4,0x4e,0x8d,0xfd, 0xf5,0xac,0x11,0x1f, 0x86,0x80,0x10,0xc2, - 0x25,0x37,0x3f,0x0a, 0xaa,0x74,0xbe,0x7e, 0x65,0x36,0xec,0x45, 0xcc,0x28,0x01,0xb1, - 0x34,0x92,0xa7,0x22, 0xf5,0x70,0x4a,0x42, 0xc3,0x42,0x88,0x88, 0x08,0x80,0x9f,0x9e, - 0x72,0x42,0x02,0x7e, 0xc8,0x5d,0x4c,0x60, 0x80,0xaa,0xae,0x4b, 0xb9,0x33,0x9c,0x0e, - 0x38,0x73,0x63,0x8c, 0xb9,0x37,0x83,0x04, 0x52,0x64,0x89,0xe3, 0x1d,0x90,0x39,0x40, - 0xa9,0x92,0x76,0x8b, 0x26,0xf0,0xe5,0x7e, 0x3f,0x29,0xc9,0xa6, 0x55,0x09,0x20,0x5d, - 0xd8,0x76,0x56,0x65, 0xa1,0x7b,0xc3,0x4b, 0x8c,0xf8,0xae,0xd0, 0xca,0xaa,0x8f,0xbb, - 0x45,0xe9,0xa3,0x8b, 0x7c,0xf1,0x9a,0xaa, 0x28,0xf7,0xe1,0xb2, 0x28,0xb7,0x64,0x99, - 0x6e,0xc2,0xa2,0x4c, 0x27,0x96,0x13,0x2b, 0x36,0xc8,0x7f,0xa9, 0xe7,0x75,0xd0,0x96, - 0x89,0x18,0x58,0x23, 0x43,0x04,0xde,0x31, 0x85,0xf9,0x1f,0x0e, 0xbb,0xab,0x65,0x64, - 0x1d,0x14,0x12,0xc6, 0x8c,0xcc,0xaf,0x13, 0x21,0xa1,0xea,0xc3, 0x0b,0xee,0x45,0xc0, - 0x0c,0x4c,0x82,0x89, 0xd3,0x2b,0x8d,0x7a, 0x61,0x8b,0xa9,0xc1, 0x00,0x0a,0xa2,0xed, - 0xdc,0x29,0x48,0xa6, 0x1b,0x26,0x3b,0x45, 0x94,0xa6,0x68,0x25, 0xaf,0x77,0x17,0x3b, - 0x9f,0xc0,0x10,0xe4, 0x44,0x81,0x42,0x5d, 0xb3,0x66,0x31,0x1e, 0x0a,0x1b,0x35,0xac, - 0xdd,0x2e,0xd3,0x70, 0x92,0xde,0x0a,0x92, 0x1d,0x83,0x6e,0xcb, 0xd3,0x93,0x90,0xaf, - 0xdf,0x41,0xcb,0x10, 0xc4,0xc0,0x42,0x94, 0x67,0x92,0x00,0x69, 0xfb,0x3d,0x9c,0xbc, - 0xa4,0x9c,0xb0,0x8b, 0x07,0x14,0x46,0x57, 0x08,0xc4,0x82,0x84, 0x34,0xa2,0xd7,0x92, - 0xbe,0xe4,0x86,0x57, 0x38,0xb8,0xd6,0xdd, 0xcc,0xae,0x19,0xb8, 0x05,0x28,0xd7,0x01, - 0x54,0x60,0x62,0x09, 0xc6,0x92,0x71,0x1b, 0x67,0x65,0xdc,0x60, 0xbe,0x40,0x6f,0xf7, - 0x9e,0x72,0xfc,0x10, 0x22,0xee,0xf6,0x86, 0x6b,0x68,0xc7,0x1c, 0xf7,0x06,0x6e,0x36, - 0x67,0x07,0x9e,0xc0, 0xea,0xf3,0x96,0xd3, 0xd2,0xc9,0xd2,0xaa, 0x43,0x30,0xf3,0xad, - 0x40,0x81,0x5d,0x47, 0xb0,0x88,0x05,0xb0, 0xa0,0x26,0x86,0x92, 0x95,0x7b,0x11,0xe5, - 0xfd,0x02,0xee,0xf6, 0x23,0x9a,0xfe,0xa1, 0x37,0xba,0x61,0xf0, 0xd0,0x27,0xc9,0x47, - 0xa3,0x36,0xb4,0x6c, 0x38,0x80,0x42,0x08, 0x96,0xdc,0xa6,0x16, 0x98,0x30,0x94,0x87, - 0xa5,0x08,0x3c,0x85, 0x4a,0x9e,0x4c,0xd0, 0x33,0x09,0x07,0x19, 0x87,0x6b,0x45,0xc2, - 0x18,0xbf,0x3a,0x9d, 0xa2,0xbe,0x3c,0x45, 0xfe,0x4b,0x92,0x5c, 0x98,0x62,0x49,0x02, - 0x4c,0x81,0x5b,0xf7, 0x72,0x39,0xec,0x68, 0xe4,0x63,0x21,0x5b, 0x2c,0x45,0xd8,0xb7, - 0xe4,0xa0,0x23,0x95, 0x6b,0x4c,0x54,0xe3, 0x11,0xea,0x8c,0x50, 0x92,0xe2,0x65,0x4d, - 0xb9,0x04,0x8d,0x6e, 0x40,0x62,0x15,0xc1, 0x98,0xd4,0xa5,0xc0, 0x59,0xaf,0x24,0x29, - 0x30,0xbe,0xd4,0xb4, 0xe1,0x5b,0xe1,0xa0, 0xc5,0x2e,0xa5,0x7b, 0x80,0x28,0x5b,0x62, - 0xe8,0x99,0xc1,0x59, 0x18,0x66,0x4b,0xb0, 0x10,0x48,0xb4,0xc0, 0x05,0x63,0xe9,0xdb, - 0x84,0xd3,0x81,0x9d, 0xdb,0x39,0x38,0x2d, 0xae,0x8c,0x83,0x2b, 0x20,0x7c,0xd3,0x44, - 0x9f,0x5c,0xb2,0x77, 0x39,0x2b,0xb8,0x8d, 0xdc,0x51,0x16,0xec, 0xba,0x31,0x4d,0x3c, - 0x9f,0xa7,0x09,0x59, 0x83,0x6d,0xa1,0x8f, 0x6a,0xd2,0x96,0x4d, 0xd6,0x16,0xc5,0xfc, - 0xae,0x13,0x28,0x24, 0xe3,0xa9,0xe8,0x76, 0x93,0x25,0x0e,0x03, 0x8d,0x21,0x02,0xe5, - 0xb6,0x72,0xbe,0x62, 0x77,0x20,0x88,0x49, 0xa8,0x5e,0x81,0x84, 0xc9,0x84,0x73,0x7f, - 0x1d,0xad,0xc3,0x7e, 0xa9,0x74,0x16,0xc1, 0xd9,0x0a,0x35,0x47, 0x68,0x83,0x7d,0x00, - 0xb4,0xee,0x1e,0xec, 0x91,0x14,0x1b,0x47, 0x47,0x2e,0xfd,0xb1, 0x85,0xd0,0x2a,0x92, - 0x4d,0xdc,0x8c,0xb5, 0xa8,0x5f,0x45,0xe4, 0x45,0x52,0xa1,0x20, 0x2b,0x01,0x20,0x26, - 0x7b,0x55,0x18,0x4d, 0x15,0xfa,0x84,0x36, 0xc9,0x33,0xd0,0x6b, 0xd5,0xb8,0x19,0x48, - 0xef,0x59,0x0d,0x42, 0x71,0xb7,0x68,0x4d, 0x30,0xd4,0x54,0xaa, 0x3b,0x1a,0x80,0x8a, - 0xd4,0x3a,0x01,0xb4, 0x82,0x84,0x26,0x4e, 0x42,0xfb,0xb4,0x56, 0xc5,0x50,0x8a,0x1b, - 0x1c,0xdd,0xde,0xb8, 0x69,0x19,0x5b,0x7e, 0x0a,0x74,0x57,0xf1, 0xcb,0x85,0x6f,0xd1, - 0xb7,0xe8,0x54,0x0d, 0x2b,0xcc,0x80,0x92, 0x6c,0xf5,0x40,0x2d, 0x65,0xd3,0xbe,0x94, - 0xa4,0x95,0x56,0x10, 0x87,0x2b,0x0d,0x34, 0x94,0x55,0xef,0x14, 0xbf,0xd7,0xdd,0xbf, - 0xab,0x9f,0x19,0x4f, 0xa6,0x90,0xcc,0xd1, 0xd0,0xb8,0xb4,0x0e, 0xd8,0x68,0xd5,0x8b, - 0x4a,0x38,0xed,0x09, 0xd6,0x5c,0x30,0x0f, 0xd5,0x23,0x9f,0x68, 0xf7,0xdf,0x0b,0x2b, - 0x23,0x99,0xcc,0xd9, 0x4d,0x56,0x96,0xd2, 0x67,0x66,0xc4,0x97, 0x7c,0x40,0x7f,0x36, - 0xc0,0xb6,0xce,0x05, 0xfd,0x88,0x6d,0x24, 0x6e,0x61,0x37,0x54, 0xe1,0xb9,0x43,0x85, - 0x0d,0xb8,0x8d,0xd1, 0xdb,0x4b,0x02,0x80, 0x4f,0x4d,0xa4,0x49, 0xb4,0x00,0x34,0x65, - 0x68,0xda,0x20,0x0b, 0xa4,0xd7,0xaf,0xb5, 0x85,0xc2,0xe4,0x20, 0x06,0xf0,0xe7,0x8a, - 0x47,0x71,0xc6,0x6a, 0x64,0xf1,0x85,0x74, 0xe5,0x0c,0x1d,0x7b, 0xfa,0xfe,0xde,0x1d, - 0xf1,0xe9,0x89,0x06, 0xec,0x36,0x68,0x9c, 0xfa,0x1b,0xd0,0x7e, 0x4c,0x68,0x51,0x09, - 0xe7,0xaf,0x4f,0x67, 0x3e,0xa4,0x85,0x5e, 0xec,0x57,0x6a,0x05, 0xb8,0x4d,0x4a,0xfe, - 0x88,0xf1,0x38,0x42, 0x56,0xdc,0x55,0x6c, 0xd8,0x4b,0x57,0x08, 0x13,0x27,0x51,0x6a, - 0xb8,0x67,0x77,0x14, 0x18,0xac,0xc3,0xcf, 0x7a,0x98,0xac,0x22, 0x87,0xb9,0x6f,0x7c, - 0xb9,0x3e,0x49,0x87, 0xc2,0x58,0x35,0xcd, 0x71,0xde,0xd1,0x52, 0x24,0x5c,0x5a,0x16, - 0x28,0xba,0xcd,0x34, 0x88,0x45,0x94,0xa1, 0xff,0x17,0x72,0x45, 0x38,0x50,0x90,0xf1, - 0x24,0xaf,0x32, - // 0x4d3 = 1235 data bytes (44%) + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x03,0x2c, 0x6d,0xb1,0x00,0x01, + 0x09,0x5f,0x80,0x00, 0x12,0x61,0xef,0x7f, 0xf0,0x3f,0xef,0xdf, 0xf0,0x3f,0xff,0xff, + 0xf4,0x50,0x04,0xbe, 0xee,0x63,0x42,0xb5, 0xd7,0x6c,0xb6,0xd1, 0x93,0x18,0x6a,0x69, + 0xa5,0x3c,0x49,0x84, 0xda,0x8d,0x26,0x62, 0x62,0x69,0x3d,0x4c, 0x4c,0x8c,0x9a,0x34, + 0xc8,0x00,0x1a,0x69, 0xa0,0xd1,0x21,0xa9, 0xe9,0xb5,0x53,0x7a, 0x6a,0x9f,0x92,0x9b, + 0x49,0x93,0x23,0xd1, 0x18,0x41,0x84,0xd0, 0xd3,0x4d,0x00,0x64, 0x01,0xa6,0x84,0xd1, + 0x32,0x6a,0x08,0xf5, 0x23,0xd4,0xf2,0x9f, 0xaa,0x1a,0x68,0x34, 0x68,0xc8,0x0c,0x40, + 0x68,0x7a,0x80,0x1c, 0xc0,0x98,0x9a,0x0c, 0x26,0x4c,0x99,0x32, 0x30,0x98,0x26,0x9a, + 0x64,0x62,0x60,0x08, 0x60,0x12,0x24,0x46, 0x9a,0x9a,0x64,0x99, 0xa9,0x93,0x4c,0x9a, + 0xa7,0x93,0x28,0xf5, 0x3d,0x21,0xb4,0xd2, 0x36,0x51,0xea,0x69, 0xea,0x7a,0x9e,0x89, + 0xa3,0xd4,0x34,0x90, 0x8f,0xf9,0x24,0x23, 0xe9,0xfa,0x6c,0xfd, 0x7c,0x39,0x57,0xce, + 0xde,0xf7,0xe5,0xeb, 0xe9,0x2b,0xa2,0x24, 0xc1,0x97,0x66,0x8a, 0x4c,0xfe,0xeb,0x33, + 0x6f,0x90,0x9e,0xc9, 0xc5,0x46,0xf6,0xa7, 0x7f,0xd9,0xe2,0xd1, 0x45,0xd6,0x58,0x58, + 0x6f,0xfb,0x76,0x38, 0xb8,0xb6,0x53,0xa5, 0x7f,0x1c,0x36,0xa2, 0x00,0xa5,0x05,0x88, + 0x18,0x21,0x85,0x04, 0x9d,0x73,0x91,0x28, 0xc4,0x4c,0x35,0xb1, 0x62,0x45,0x40,0x2a, + 0x16,0x7c,0x1f,0x43, 0xa8,0xe0,0xfa,0x15, 0x39,0xa1,0x75,0x22, 0x9e,0x2f,0xc4,0xd2, + 0x41,0x54,0xcf,0x1f, 0x12,0xc1,0x94,0x87, 0x7c,0xb8,0x97,0x0d, 0x13,0x41,0xeb,0x2a, + 0x20,0xa9,0xe1,0x35, 0xc7,0x0b,0x35,0xa4, 0x2b,0x1e,0x3c,0x27, 0x4c,0x25,0x22,0xfd, + 0xf3,0xcc,0x0f,0xf9, 0x55,0xd1,0xdb,0x89, 0xd1,0xc3,0x67,0x80, 0x50,0xf7,0xf5,0x83, + 0xee,0x10,0x04,0x7f, 0x19,0x2e,0x17,0xf5, 0x77,0xf1,0xd0,0x49, 0xfc,0xb3,0x04,0xae, + 0x48,0xaa,0xaf,0x8d, 0xd7,0x2b,0x57,0xbf, 0xb4,0xaa,0x59,0x0e, 0x7d,0xe3,0x6d,0xa4, + 0xd2,0x00,0xb7,0x35, 0xf9,0xe1,0xca,0x4c, 0xef,0xb0,0x88,0x8e, 0x89,0x22,0x52,0x0b, + 0x27,0x39,0x09,0x01, 0x3e,0xc8,0x5e,0x0c, 0x68,0x40,0x59,0x67, 0x5d,0xfd,0x7b,0x0d, + 0x6e,0x38,0x65,0x84, 0x70,0x69,0xa8,0x17, 0x22,0x24,0x1c,0x4b, 0x26,0xeb,0x60,0xa2, + 0x00,0x98,0xda,0x55, 0x1a,0x92,0x56,0x51, 0x3f,0x9f,0xd2,0x4e, 0x92,0x13,0x20,0x96, + 0x0f,0xe9,0xbb,0xc6, 0xd3,0x55,0x0c,0x5e, 0xed,0xee,0x36,0x67, 0xbf,0x6b,0x2c,0xb2, + 0x3e,0x4d,0x18,0xa6, 0x8e,0x7e,0x33,0x49, 0xcd,0x61,0x47,0xc7, 0x0d,0x91,0x45,0xe9, + 0xa2,0x65,0x7c,0x8b, 0x09,0x30,0x9e,0xa8, 0x4c,0xb4,0xf3,0x90, 0xff,0xa9,0xec,0x76, + 0xd0,0x96,0xd9,0x1b, 0xae,0x11,0xb5,0x82, 0x6f,0x01,0x86,0x3a, 0x1f,0x0e,0x9b,0xed, + 0x65,0xa4,0x1f,0x1a, 0x09,0x60,0x8c,0x99, 0x6e,0x76,0x43,0x13, 0xe6,0xdd,0xbb,0x1b, + 0xd1,0x78,0x03,0x18, 0x30,0xb5,0xc3,0x4f, 0x31,0xa7,0x44,0x91, 0x9a,0xde,0x49,0x00, + 0x3a,0x0f,0x56,0x61, 0xce,0x65,0xb8,0x65, 0x61,0x00,0xd4,0x88, 0xcc,0xa2,0x46,0x14, + 0xed,0x72,0xd3,0x0d, 0xe0,0x8a,0x22,0x25, 0x4a,0x13,0x4d,0xdb, 0xb5,0xd8,0x77,0x38, + 0x0c,0xb6,0x2e,0x8a, 0x5f,0xee,0x66,0x2e, 0xba,0x47,0x0d,0x8b, 0x26,0x92,0xca,0xfa, + 0xc9,0x49,0x9c,0x5c, 0x43,0x7e,0xe8,0x84, 0xc4,0xdb,0x19,0x28, 0xd8,0xe4,0xdb,0x68, + 0x5e,0xe5,0x5d,0x0e, 0x05,0xca,0xd4,0x90, 0x5a,0x41,0x4d,0x80, 0x88,0x60,0xc8,0xc4, + 0xa6,0x4a,0x8d,0xf8, 0xe7,0x26,0xd3,0x61, 0x86,0xc3,0x8a,0xf9, 0xa4,0x8b,0xf8,0x98, + 0x10,0xd4,0xee,0x0c, 0x94,0x89,0x23,0x1b, 0xf5,0x61,0x73,0x38, 0x63,0x65,0x37,0x0e, + 0xb8,0x07,0x77,0xc1, 0xf6,0x3a,0xf1,0x21, 0x47,0x47,0x69,0x2d, 0xaa,0x0e,0x75,0xfc, + 0x61,0xb9,0xc9,0xbb, 0xd3,0xc6,0xc1,0x44, 0x9b,0xe1,0x94,0xb0, 0x36,0x35,0x2e,0xe8, + 0x6d,0x3c,0x64,0x5a, 0x10,0x11,0x3b,0xaf, 0xa1,0x00,0x31,0xa0, 0x25,0x62,0x62,0xad, + 0xb7,0x44,0x95,0x5d, 0x7f,0x32,0x9e,0xb2, 0x57,0x4e,0xbf,0xb1, 0x8d,0x6e,0xc4,0xae, + 0x6e,0x41,0x77,0xc1, 0xed,0xd7,0x39,0x9b, 0xde,0x90,0x62,0x16, 0x2f,0x35,0x32,0xd0, + 0x41,0x0e,0xe3,0x91, 0xd9,0x8f,0x18,0xe1, 0x8d,0x58,0xf5,0x30, 0xea,0x0e,0x0d,0x88, + 0xcf,0xc0,0xdb,0x84, 0xb0,0xec,0xd9,0x9d, 0x72,0xd7,0xac,0x62, 0xe0,0xc8,0x21,0xad, + 0xa4,0x20,0x80,0x28, 0x90,0x11,0x2f,0xad, 0x07,0xba,0xc8,0x86, 0xc2,0x15,0x89,0x1b, + 0xcc,0x73,0xd5,0x17, 0x6a,0xc0,0x7e,0x16, 0x31,0x4f,0x6a,0xe7, 0xab,0xdb,0x79,0x42, + 0x4b,0x9d,0x96,0x36, 0xe4,0x12,0x3a,0x5c, 0x80,0xce,0x2b,0xc3, 0x23,0x99,0x4b,0x59, + 0x77,0x4e,0x88,0x52, 0x61,0x8d,0x52,0xdf, 0xbb,0x8f,0xaa,0xcd, 0x2c,0xd5,0xc3,0x55, + 0x3b,0x01,0x59,0x8e, 0xca,0x69,0xd1,0xc0, 0xb7,0xd8,0xcb,0xbd, 0x94,0xd8,0x22,0x67, + 0x2b,0x40,0xb6,0x75, 0x5d,0xcb,0x4d,0xc8, 0xc0,0xa2,0xdd,0xec, 0xd8,0x1e,0x64,0x13, + 0x01,0x33,0x4c,0x26, 0x82,0x41,0xa9,0x2e, 0x54,0xc9,0x48,0xcc, 0xca,0x81,0xd5,0x59, + 0x9b,0xd7,0xad,0x9c, 0x84,0x92,0xda,0xbc, 0xf7,0x7a,0x5d,0x38, 0xa0,0x65,0xa3,0x01, + 0x14,0x92,0x9b,0xe0, 0xd6,0xe5,0x50,0x24, 0x20,0x12,0xa1,0x4c, 0xb1,0x54,0x74,0x25, + 0x94,0x08,0x14,0xc6, 0x0f,0xb2,0xb6,0x4e, 0xfb,0x07,0x10,0x48, 0x94,0x9b,0x56,0x97, + 0xb0,0x43,0x4c,0x4c, 0xf6,0xff,0xb0,0xab, 0x0e,0x88,0xd5,0xd6, 0x1e,0x4e,0x9b,0x47, + 0x85,0xf9,0x42,0x74, 0x38,0x23,0x06,0x71, 0x9a,0xb3,0x79,0x39, 0x47,0x2a,0x19,0x8b, + 0x2b,0xe1,0x8e,0x17, 0xa0,0x83,0x3e,0xc2, 0x46,0x35,0x8e,0x6d, 0x3c,0xc9,0x2c,0xa1, + 0x36,0x11,0x21,0xb0, 0x5a,0xf8,0x42,0x93, 0x7a,0xa2,0xb9,0xcc, 0xdc,0x30,0x5a,0xf9, + 0x0d,0xb9,0xfa,0x07, 0x86,0x0f,0xba,0x30, 0x33,0x98,0xdf,0x6f, 0x4b,0x48,0x4d,0xef, + 0x2d,0x2c,0xf8,0xa2, 0x1b,0x8c,0xe4,0x2b, 0x1b,0x48,0x1b,0xb0, 0x69,0x3a,0xc9,0x9f, + 0x5d,0x6c,0xd7,0x17, 0x49,0x96,0x99,0x41, 0xcf,0xcb,0x98,0x53, 0x37,0x56,0xfc,0x1d, + 0x96,0xbb,0xfa,0xa7, 0xbd,0xfe,0x19,0xf5, 0xf9,0x94,0x03,0x43, 0xfc,0x98,0x07,0x29, + 0x9e,0xa6,0x00,0xeb, 0x15,0x95,0xa2,0x21, 0xcc,0xcd,0xd8,0x85, 0x13,0x60,0x24,0x49, + 0x69,0xad,0x81,0x7f, 0xf5,0xab,0xe7,0xe8, 0xe6,0xc9,0xe5,0xcf, 0x0c,0x88,0x8d,0xe9, + 0x3c,0x78,0x85,0x4b, 0xe3,0xab,0x24,0x76, 0xe4,0xc0,0x09,0x4d, 0xf7,0x30,0x0b,0xd0, + 0xe9,0xcd,0xc4,0x16, 0xd6,0x63,0xb6,0x8d, 0xe6,0x83,0x82,0x76, 0x3a,0x52,0xb4,0x99, + 0xe3,0xe4,0x92,0xf5, 0x88,0x0f,0xaf,0x9c, 0x0b,0xce,0x70,0x97, 0xf9,0x10,0xda,0x48, + 0xf4,0x61,0x37,0x64, 0xe1,0xb9,0x43,0x85, 0x0d,0xb8,0x8f,0x48, 0xf9,0xd2,0xe0,0xa0, + 0x13,0xdf,0x52,0x24, 0xd8,0x80,0x1a,0x35, 0x34,0x79,0xa4,0x00, 0x1f,0x32,0x46,0x6e, + 0xc6,0xa3,0x54,0xe6, 0x60,0x45,0xab,0x75, 0x4a,0x1b,0x49,0xf2, 0x5b,0x63,0x7c,0x2f, + 0x96,0xcb,0x49,0xc9, 0xa3,0x27,0x97,0x9f, 0x7c,0xb0,0x61,0xb6, 0xa2,0xa2,0x9b,0x1f, + 0x71,0x72,0x2e,0x73, 0x2e,0x0d,0xb8,0x16, 0x80,0xe7,0x5f,0xc3, 0xa7,0x74,0xea,0x0b, + 0xa2,0x9c,0x6c,0x98, 0xc4,0xd5,0x5c,0xba, 0xcf,0x03,0xf4,0x2b, 0x41,0x4c,0x8b,0x1a, + 0xe5,0xb9,0x54,0x37, 0xb5,0x25,0x50,0x4c, 0x8c,0x33,0x8d,0xf3, 0xeb,0x32,0x12,0x10, + 0xb0,0xb4,0x2d,0xab, 0xa5,0xeb,0x5b,0x59, 0x65,0x96,0x45,0x92, 0xc8,0x63,0x1d,0x51, + 0x26,0xb8,0xf1,0x16, 0x7a,0x46,0x4d,0x8c, 0xf0,0xac,0xc1,0x6a, 0xd3,0x54,0x33,0x11, + 0x48,0x81,0xff,0x17, 0x72,0x45,0x38,0x50, 0x90,0x03,0x2c,0x6d, 0xb1, + // 0x4dd = 1245 data bytes (44%) }; static BZ2Manager_t prefix_inc_mgr diff --git a/project/src/red-36.inc b/project/src/red-36.inc index 8d72876..64dc376 100644 --- a/project/src/red-36.inc +++ b/project/src/red-36.inc @@ -1,393 +1,397 @@ static const u8 red_36_bin_bz2[] = // red-36.bin { - // decompressed size: 0xd170 = 53616 bytes - 0x00,0x00,0xd1,0x70, + // decompressed size: 0xcd34 = 52532 bytes + 0x00,0x00,0xcd,0x34, // bzipped data - 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0xc3,0x86, 0xcd,0x8c,0x00,0x03, - 0x5f,0xff,0xff,0xff, 0xee,0xff,0xff,0xfa, 0xff,0xff,0xfa,0xff, 0xff,0x8a,0xf4,0x2b, - 0xff,0xf2,0xff,0xbf, 0xa6,0x08,0x60,0x28, 0x52,0xca,0x01,0x45, 0x25,0x34,0xce,0x22, - 0xa2,0xf6,0x2b,0x60, 0x20,0xdc,0x0f,0xa0, 0x48,0x6d,0xc7,0x14, 0x0a,0xa5,0x0a,0x91, - 0x67,0xbd,0xde,0xc1, 0xe5,0xca,0x00,0x0e, 0x80,0x42,0x2d,0xd8, 0xcc,0xf6,0xe0,0x7a, - 0xf1,0x28,0x50,0x74, 0x0e,0x9b,0x4c,0xd9, 0x8e,0xdb,0xb1,0x89, 0x63,0x6b,0x06,0x9d, - 0x82,0x4b,0x3a,0x57, 0x01,0xad,0x20,0xa1, 0x5a,0x60,0x04,0xab, 0x6d,0x02,0x14,0x03, - 0x4d,0x08,0x09,0xa2, 0x69,0x4f,0x12,0x32, 0x34,0x68,0x20,0x0d, 0x19,0x32,0x30,0x40, - 0x34,0x64,0x1a,0x19, 0x00,0x00,0x00,0x00, 0x0d,0x00,0x06,0x86, 0x80,0x00,0x00,0x02, - 0x53,0x20,0x84,0x44, 0x49,0x26,0x8d,0x0c, 0x80,0x06,0x80,0x00, 0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x00,0x10,0x8d,0x45, 0x1a,0x19,0x06,0x20, - 0x68,0x00,0x1a,0x0d, 0x34,0x18,0x83,0x4c, 0x80,0x00,0x34,0xc8, 0x01,0xa1,0xa1,0xa0, - 0x06,0x80,0x69,0xa0, 0x1a,0x00,0x00,0x00, 0x32,0x60,0x93,0x49, 0x11,0x08,0xd2,0x22, - 0x9e,0x8c,0x93,0x09, 0xe9,0x0c,0xc9,0x03, 0x40,0x00,0xc8,0x68, 0xc9,0xa1,0xea,0x00, - 0x00,0x00,0x00,0x1a, 0x00,0x00,0x03,0x4d, 0x00,0xd0,0x00,0x08, 0x34,0xc4,0x69,0x84, - 0x19,0x30,0x26,0x8c, 0x13,0x13,0x4c,0x4c, 0x02,0x61,0x34,0x60, 0x11,0x80,0x4c,0x4c, - 0x26,0x8d,0x00,0x1a, 0x30,0x83,0x00,0x43, 0x20,0x69,0xa6,0x43, 0x23,0x4d,0x1a,0x18, - 0x24,0xd4,0xa6,0x90, 0x9a,0x9a,0x9f,0xa2, 0x13,0x13,0x21,0x91, 0xb2,0x80,0x69,0xa7, - 0xa4,0x00,0xc4,0x06, 0x86,0x98,0x9b,0x50, 0x68,0x00,0x00,0x00, 0x34,0x1a,0x0c,0xd4, - 0x0d,0x3d,0x46,0x80, 0x03,0x4c,0x8f,0x50, 0x79,0xa7,0xaa,0x20, 0x1e,0xf6,0xd1,0x04, - 0x01,0xb4,0x2a,0x4b, 0x7d,0xfb,0x81,0xfe, 0x43,0xec,0x6e,0xba, 0xba,0x65,0xdd,0x92, - 0x15,0xf6,0xbe,0x61, 0x4f,0xc8,0x51,0xb3, 0xde,0x30,0xfa,0x3b, 0x70,0x44,0x59,0x94, - 0xd6,0x36,0x8b,0x34, 0x5f,0xbc,0xc9,0xed, 0x82,0x0e,0x1a,0xa6, 0xb7,0x74,0xe9,0x70, - 0xa0,0x63,0xc6,0xac, 0x31,0x8d,0xa0,0x52, 0x41,0x11,0x1b,0x68, 0xc4,0x60,0xab,0x6c, - 0x18,0xf2,0x10,0xf0, 0x61,0xd5,0x82,0x92, 0x0e,0xc9,0xa6,0x0b, 0x07,0x8a,0x50,0x46, - 0xde,0x59,0x81,0x1e, 0x69,0x2a,0xaa,0x88, 0x74,0x42,0xed,0xd6, 0x63,0x32,0x69,0x93, - 0xe1,0x65,0x51,0x36, 0xeb,0x25,0x12,0x6f, 0x59,0x83,0x8d,0x57, 0x1c,0x70,0xe8,0xeb, - 0x28,0xc7,0x93,0x7b, 0x77,0x8f,0xef,0xe9, 0x72,0x1e,0x4d,0xfb, 0x51,0x84,0xd6,0x3f, - 0xe6,0x40,0xcd,0x72, 0x22,0x24,0x96,0xee, 0x82,0x17,0x5c,0xa8, 0xc3,0xd4,0x08,0x6b, - 0xcd,0x93,0x4a,0x9c, 0xbc,0xa5,0xd9,0x3a, 0x32,0x2f,0xa6,0x33, 0x5e,0xcd,0x03,0x91, - 0x17,0x81,0x0d,0x01, 0x52,0x1c,0x73,0xad, 0xa0,0x83,0xe9,0x38, 0xe2,0xc7,0x1e,0x1c, - 0x7b,0x10,0x97,0x2e, 0x72,0x8e,0xaa,0x94, 0xd5,0x9b,0xc6,0xc3, 0x42,0xa6,0xad,0xdc, - 0x26,0xf7,0x86,0xb0, 0xd4,0x86,0x06,0xcd, 0x51,0x1e,0x32,0xcd, 0xe8,0x4a,0x5a,0x66, - 0x19,0xb2,0x37,0x06, 0x2c,0xa5,0xb3,0x01, 0xe2,0xeb,0x7a,0xe0, 0x4c,0x8b,0xa0,0xba, - 0x5e,0x1d,0x5c,0x8a, 0x17,0x40,0xa4,0x1a, 0xeb,0x58,0x6f,0x2c, 0xc9,0xaa,0x5f,0x68, - 0xcc,0xe3,0x59,0x4d, 0xb3,0x37,0xa6,0xa6, 0xb2,0x8e,0x16,0xa6, 0xf3,0x1b,0x8e,0x62, - 0x45,0xc6,0x2d,0x68, 0xca,0x65,0x31,0x14, 0xa4,0x21,0xba,0x08, 0x60,0x84,0x80,0x4d, - 0xb6,0xdd,0xdc,0x68, 0x65,0x5a,0xb6,0x55, 0x6e,0x9b,0x6d,0x71, 0x87,0x69,0x76,0xda, - 0xd8,0xc8,0x49,0x9b, 0x90,0x32,0xee,0x82, 0xc6,0x35,0x55,0xad, 0x4d,0xa2,0x05,0xe8, - 0x06,0x68,0x41,0x90, 0x87,0xcb,0x04,0x18, 0x04,0xe4,0x5d,0x72, 0xb8,0xa7,0x3c,0xfb, - 0x9c,0x03,0x68,0x4e, 0x04,0x9f,0xba,0xc9, 0x25,0x13,0x94,0x05, 0x21,0x46,0x56,0x01, - 0xeb,0x04,0x18,0x48, 0x62,0x45,0x92,0x38, 0x8d,0xb6,0x52,0x05, 0xb4,0xa2,0x82,0xd4, - 0x0b,0x6c,0x51,0x77, 0x92,0xc7,0x2d,0xb6, 0x8e,0x52,0x8a,0x24, 0x22,0x8a,0x0a,0xc9, - 0xc2,0x1a,0x64,0x70, 0xd2,0x12,0x4b,0xe9, 0xd0,0x20,0x01,0xaf, 0x05,0x01,0xd4,0x5d, - 0x60,0xc1,0x46,0xdc, 0x82,0x01,0xd8,0xb2, 0xa3,0x01,0xb2,0x50, 0xd1,0x5d,0xf1,0x6d, - 0xc4,0x96,0x71,0xdb, 0x52,0x42,0x08,0x0a, 0x62,0x69,0xcf,0xca, 0xba,0x18,0xad,0x72, - 0x67,0xe3,0x2d,0x83, 0x91,0x84,0x25,0xe9, 0x24,0x3d,0x34,0x09, 0x0e,0x3b,0x21,0x89, - 0x30,0x2f,0x0a,0x50, 0x24,0x90,0x09,0x66, 0xe6,0xbc,0x4f,0x9c, 0xab,0xc9,0x8e,0xd9, - 0xe3,0x30,0x31,0x10, 0x60,0x1a,0xf1,0x54, 0x6c,0xf6,0xdd,0xfa, 0xf5,0xbe,0xf4,0xfb, - 0x5d,0xa5,0xf1,0x1d, 0xb8,0x03,0xfd,0xd4, 0x04,0x35,0x13,0xe9, 0xe4,0x91,0xa9,0x41, - 0x5c,0x6a,0x49,0xaa, 0x9d,0x32,0x3d,0x51, 0xec,0xc1,0xc6,0x22, 0xf3,0xdd,0xa2,0x42, - 0xa4,0x92,0x47,0x7e, 0xda,0x62,0x08,0x36, 0xa2,0x0a,0x5b,0xe6, 0x99,0x33,0xb1,0x8d, - 0xa4,0x3c,0x12,0x15, 0x81,0xc3,0x03,0x19, 0x0e,0x83,0x21,0x88, 0x4d,0xb0,0x81,0xa4, - 0x86,0x95,0x55,0x03, 0x4c,0x0c,0x4a,0xce, 0xcc,0xf7,0x6e,0x9d, 0x35,0xa8,0x1b,0x42, - 0x2c,0x8b,0x05,0x11, 0x52,0x49,0x10,0x64, 0x00,0x03,0xd2,0xf4, 0xcf,0xbf,0xbe,0xa7, - 0xa9,0xab,0x73,0xd7, 0xe2,0x7b,0xdd,0x28, 0x21,0x31,0xe4,0xe4, 0xc1,0x59,0x2a,0x9a, - 0x14,0xfb,0xa9,0x94, 0x0a,0x72,0x4c,0x10, 0x53,0x02,0x84,0x05, 0x72,0x32,0x0e,0x25, - 0xad,0x2c,0x28,0xa5, 0xb3,0x1b,0xb9,0xac, 0x34,0x93,0x4a,0x90, 0x59,0x23,0xed,0xec, - 0x81,0x74,0xd0,0x2b, 0x63,0x0e,0x6e,0x3b, 0x0c,0xe7,0x9e,0xbc, 0x92,0x40,0xee,0x32, - 0x41,0x42,0x08,0xc2, 0x4d,0x73,0xbe,0xa1, 0x05,0x8d,0x6c,0x29, 0xd5,0x46,0x6d,0xca, - 0x93,0x5a,0xce,0x1a, 0x0e,0xe6,0xb6,0xeb, 0x20,0x75,0xb2,0xc9, 0x6d,0x2d,0x28,0x56, - 0x88,0x18,0xe2,0x0b, 0x0c,0x16,0x16,0x84, 0xeb,0x6c,0xc6,0x28, 0xe2,0x1c,0x62,0x5b, - 0x6b,0x11,0x5b,0xbb, 0x09,0x51,0x19,0x06, 0x44,0x80,0x31,0x90, 0x32,0x9c,0x1a,0xc3, - 0x52,0x73,0x14,0x88, 0x8c,0x46,0x0a,0x3a, 0xf4,0x64,0x41,0x81, 0x7d,0xee,0x76,0xa8, - 0x4a,0xce,0xe6,0x50, 0xeb,0xac,0xec,0x72, 0xcc,0x48,0xa1,0x1a, 0x10,0x35,0xa9,0x3a, - 0x25,0x67,0x4b,0x2a, 0xc6,0x4d,0x31,0x65, 0x25,0xca,0x45,0x97, 0x25,0x59,0x1d,0xd4, - 0xd3,0xca,0x0b,0xda, 0xb2,0x5e,0x17,0x4e, 0x12,0x82,0xb2,0x44, 0xa5,0x46,0xd4,0xd9, - 0x65,0x0a,0x88,0x38, 0xd6,0xb5,0xc1,0xc7, 0x0a,0x55,0x83,0x62, 0x70,0xb8,0x15,0x52, - 0x2c,0x02,0x5a,0x91, 0x15,0xb2,0xa2,0xa4, 0xa6,0xb5,0x72,0x9c, 0xe8,0xd1,0x35,0x13, - 0x5b,0x2e,0x49,0x5e, 0x2c,0xc1,0x11,0x31, 0x43,0x63,0x50,0x02, 0x9b,0xa6,0xa4,0xa5, - 0xab,0x71,0x14,0x93, 0xa8,0xc1,0xcb,0xb1, 0xca,0x59,0x4d,0xc9, 0x80,0xa1,0x38,0x64, - 0x46,0x37,0x50,0x70, 0x98,0x69,0x84,0xb9, 0x89,0xad,0x58,0xe3, 0xc7,0x1d,0x36,0x72, - 0xa8,0xa3,0x94,0xa2, 0x1c,0xb3,0x32,0xc7, 0x2c,0xaf,0x4c,0xcc, 0x9c,0xb9,0x61,0xd2, - 0xb4,0xc3,0x19,0xc6, 0xfa,0x38,0x5b,0xb8, 0xf3,0xae,0x05,0x1c, 0x6d,0xac,0x2a,0x56, - 0x22,0xa2,0xc5,0x2d, 0x8c,0xcc,0x0c,0x58, 0x82,0x4e,0x1e,0x78, 0xe3,0x20,0xa6,0xe7, - 0x29,0x2c,0xc1,0xcc, 0xe0,0xd9,0x03,0x9d, 0x87,0x0a,0x72,0x35, 0x2f,0x77,0xb4,0x6f, - 0x56,0x3c,0x18,0x90, 0x20,0x25,0x10,0x5a, 0x73,0x72,0xd4,0x52, 0x82,0xeb,0x58,0x15, - 0x27,0xf5,0x34,0xcd, 0xe0,0x51,0x8f,0x43, 0xab,0x20,0xae,0xdd, 0x0e,0xe9,0xa8,0x99, - 0x63,0x79,0xdf,0x33, 0x73,0x60,0x0e,0x54, 0xc8,0x0e,0x59,0x09, 0x44,0x35,0x00,0x2d, - 0x4c,0x53,0x03,0x56, 0x2d,0xec,0x5b,0x79, 0xa4,0x9a,0x06,0x8d, 0xb7,0x4f,0x70,0x69, - 0x1b,0x79,0x3b,0xcc, 0x27,0x68,0xcd,0x18, 0x66,0x23,0x19,0x30, 0xd3,0x88,0x74,0xd1, - 0xbc,0xc4,0x31,0xe5, 0xdd,0xc9,0xbc,0x0c, 0xd3,0x1b,0xa6,0x36, 0x34,0x96,0xd2,0x25, - 0xe9,0x94,0x09,0x31, 0x35,0x72,0x61,0x4a, 0xe6,0xba,0x5c,0xac, 0x36,0x09,0xca,0x16, - 0x30,0x07,0x42,0xeb, 0x33,0x54,0x03,0x6c, 0x86,0x4d,0xc7,0x76, 0x22,0x94,0xb6,0x84, - 0x92,0x8b,0x6f,0x3a, 0xe5,0xdd,0xeb,0x07, 0x23,0x49,0x00,0xe0, 0xc5,0x9a,0xc7,0xa9, - 0x40,0x0d,0x04,0x8f, 0x2c,0xb4,0xac,0xac, 0x66,0x82,0x1a,0x01, 0x06,0x49,0x09,0x26, - 0x41,0x78,0x3b,0x7a, 0xea,0x2d,0x5e,0xce, 0xd7,0xca,0xb8,0x2d, 0x7b,0x52,0x2a,0xc0, - 0x16,0x44,0x64,0x55, 0xaf,0x6b,0xfb,0xbb, 0x1d,0x8a,0x89,0xd1, 0x26,0x0a,0x1a,0xab, - 0x8d,0x95,0xfe,0x46, 0xef,0x07,0x5a,0x6e, 0xca,0xd0,0xc5,0xec, 0x6e,0xbd,0x4c,0x35, - 0x3e,0x8a,0x62,0xe3, 0xe7,0xab,0x5a,0xce, 0x47,0x0f,0x15,0x2c, 0x75,0x0d,0x11,0x11, - 0xd3,0x44,0x80,0x11, 0xaa,0x8e,0xa6,0x1c, 0x0e,0x22,0x63,0x02, 0x04,0xc4,0x80,0x08, - 0x8f,0x5f,0x92,0xcd, 0x8a,0x02,0x06,0x68, 0x06,0xe1,0x9a,0x64, 0x0d,0xd1,0x4b,0xb5, - 0xdb,0xd7,0xd9,0x4a, 0x49,0x22,0x49,0x26, 0xa4,0x31,0x0c,0xc6, 0x75,0xf2,0xe3,0x08, - 0x08,0x91,0x49,0x33, 0xa9,0x1a,0xa4,0x56, 0x5d,0x2b,0x2e,0x98, 0xa8,0x19,0x54,0xd1, - 0x2e,0x3a,0xf8,0x7c, 0x91,0x3f,0x84,0xaa, 0xb4,0xff,0x14,0xa8, 0x3f,0xcd,0x64,0x2a, - 0x09,0x10,0x14,0x82, 0xc0,0x3f,0xd6,0x92, 0x4a,0x1d,0xe8,0x2a, 0x22,0xf1,0x88,0x6e, - 0x4d,0xcb,0xcf,0x5f, 0x66,0x99,0x1c,0x9e, 0x65,0xb0,0x23,0x8c, 0x60,0xdc,0xca,0xa7, - 0x1f,0xa6,0xe5,0xb0, 0xdf,0x10,0x36,0x65, 0x48,0x89,0x1c,0x32, 0x29,0xa6,0xbe,0x82, - 0xf2,0x1a,0xdd,0x5a, 0x80,0x78,0x6b,0x2e, 0x5a,0xa7,0x3f,0xbc, 0x75,0xdb,0xb8,0x07, - 0x73,0x7b,0x08,0x14, 0xeb,0x4a,0x2e,0xc3, 0x09,0x6d,0x96,0x1c, 0x0f,0x4b,0x8a,0xc8, - 0x9a,0xa5,0x39,0x54, 0x93,0x4f,0x4e,0xe6, 0xd7,0x47,0x77,0xba, 0x75,0x33,0x4a,0xeb, - 0xf7,0x34,0x87,0x70, 0x42,0x89,0xe8,0x2c, 0x18,0x1f,0x2e,0x8f, 0x9d,0xfe,0x4a,0xc0, - 0x31,0x04,0x25,0x4f, 0x98,0x0a,0x54,0xeb, 0xf6,0xba,0x6d,0xec, 0x9b,0x66,0x3a,0x4d, - 0x71,0xf8,0xdc,0x2e, 0x47,0xda,0xb6,0x88, 0x54,0xb0,0x03,0x31, 0x4c,0xbb,0x15,0x7f, - 0x97,0x20,0xb9,0x9f, 0x94,0xaa,0x2d,0x4f, 0x73,0x65,0xc1,0x86, 0xe4,0xc8,0x92,0x98, - 0xcd,0x46,0x25,0x28, 0x48,0x23,0x55,0x42, 0x90,0x48,0x0a,0x50, 0x2a,0x2c,0x50,0x46, - 0x28,0x36,0x4a,0xdc, 0xf5,0x33,0x92,0xc5, 0x90,0xb4,0x96,0xd5, 0x51,0x00,0x3f,0xe2, - 0x04,0x92,0x48,0x6f, 0x8e,0xab,0xbb,0x86, 0xfe,0xeb,0x8e,0xf2, 0xdc,0x0e,0x0d,0x1a, - 0x0d,0xf7,0xd5,0x91, 0xbc,0xa1,0xc0,0xa5, 0x74,0xf6,0xb1,0x83, 0x8b,0x6c,0xa1,0x37, - 0x97,0x00,0xc9,0xa2, 0xd0,0x0d,0x19,0xb2, 0x88,0x7a,0xde,0x8d, 0x07,0x22,0x32,0x26, - 0x52,0xac,0xa6,0xb3, 0x52,0xca,0xb6,0x9c, 0xe0,0x49,0x8c,0x6d, 0xbc,0x58,0x2a,0x94, - 0x2d,0x72,0x77,0x77, 0x72,0x8e,0x71,0xf9, 0x46,0xf7,0x76,0xf4, 0x69,0x3b,0xf1,0xe5, - 0x94,0x94,0x79,0xdb, 0x91,0xc6,0x4f,0x0f, 0x22,0xd6,0xe7,0x9e, 0x56,0x49,0x3b,0x0d, - 0x4d,0xb5,0xdb,0xa3, 0x18,0x9f,0x5d,0xb7, 0x27,0x9f,0x13,0xf2, 0x79,0xc9,0x83,0x2b, - 0x2c,0x40,0x61,0x08, 0x4e,0x36,0x93,0x2c, 0xaa,0xc0,0x96,0xa9, 0x5b,0xd1,0xaa,0xe2, - 0x05,0xac,0xa9,0x63, 0x4a,0x51,0x52,0xed, 0xf3,0xf8,0xee,0xd6, 0xe6,0x97,0xa1,0x2f, - 0xc2,0x12,0xe7,0x9f, 0x3e,0x64,0xb5,0x29, 0x4b,0x82,0xd1,0x48, 0x21,0x09,0xf1,0xd4, - 0xc3,0x2e,0xb2,0xe2, 0x79,0x5b,0xac,0xa3, 0x7d,0x13,0xab,0xeb, 0x3a,0x9d,0x63,0xc6, - 0x1c,0x74,0x9c,0x1e, 0x12,0xcd,0xe5,0x4c, 0xac,0xa7,0x0d,0xac, 0x35,0x4e,0x82,0xed, - 0x91,0xbc,0xc6,0xe4, 0x48,0xca,0x72,0x24, 0x86,0xd9,0x32,0xa1, 0x80,0xfd,0xa3,0x72, - 0x89,0xf1,0x3c,0x50, 0xd5,0x65,0xef,0x13, 0xe1,0x5c,0x25,0x39, 0xd5,0x16,0x2a,0xba, - 0x84,0x93,0x6e,0xe3, 0x72,0x25,0x0a,0x09, 0x6d,0x1e,0x2e,0x66, 0x71,0xde,0x2b,0x9e, - 0xac,0xb9,0x48,0xa9, 0x5d,0xd7,0x6e,0xb5, 0x77,0xd7,0x5e,0x99, 0x7c,0x95,0x39,0xd9, - 0x75,0x12,0xa0,0xe9, 0xd4,0xa4,0xc4,0x71, 0x5a,0x51,0x2c,0x64, 0xf2,0x64,0x12,0x34, - 0xe1,0x9c,0x78,0x53, 0x2c,0x16,0xe6,0x8e, 0x56,0x8c,0x1b,0x82, 0x44,0x69,0x04,0xa7, - 0x0e,0xd6,0x3a,0x74, 0xc2,0x90,0x92,0xdf, 0x26,0x86,0xb5,0xba, 0x83,0x6b,0x43,0x4c, - 0xa3,0x79,0x19,0x54, 0x12,0xed,0x36,0x65, 0x91,0x54,0xdd,0x09, 0x95,0x33,0x6a,0xde, - 0xea,0x84,0xa1,0x53, 0xa4,0x7a,0x32,0x51, 0x54,0xf9,0x35,0xd5, 0xd9,0x42,0x70,0x25, - 0x1a,0x6e,0x41,0x6d, 0xe2,0xa4,0xb2,0xc6, 0xa4,0x77,0x12,0xd2, 0x56,0x8a,0x5d,0x3e, - 0xa7,0x48,0xcc,0x4d, 0x43,0xb6,0x8c,0x55, 0x2a,0x10,0xa2,0x94, 0x8a,0x1c,0xe5,0xf1, - 0xbf,0x39,0xa9,0xdf, 0x14,0xe5,0xed,0x73, 0xc6,0xb5,0x13,0xb5, 0x17,0x9d,0x9c,0x9a, - 0x0c,0x4d,0x4a,0x11, 0xca,0x89,0x8e,0xef, 0x95,0xb2,0xee,0x99, 0x92,0xea,0x29,0xdf, - 0x5a,0xd8,0xb3,0x65, 0xad,0x1d,0x3d,0xc4, 0x2e,0xc7,0x7d,0xbd, 0xa8,0xbd,0x4e,0xf6, - 0x9f,0x12,0x2b,0xb7, 0x6e,0xa7,0x49,0x4c, 0xfa,0x6d,0x5c,0x8a, 0x23,0xc5,0x1d,0xf3, - 0x87,0x60,0xe6,0x0a, 0x1e,0x0f,0x44,0xc6, 0x62,0x6b,0x7b,0xc5, 0xba,0xbd,0xb5,0x21, - 0x88,0x19,0x75,0x84, 0xac,0xdc,0xee,0x61, 0x66,0x9d,0x1d,0xae, 0x67,0x3b,0x92,0x79, - 0xab,0xef,0x8f,0xb4, 0x46,0x04,0xa2,0x63, 0xa4,0xe2,0x55,0x4c, 0x09,0x0f,0x26,0x41, - 0x29,0x84,0x34,0x44, 0xdc,0xcf,0x4a,0x33, 0xba,0x98,0xa4,0x3d, 0x31,0xa8,0x3d,0x92, - 0xd6,0xed,0xaf,0x3d, 0xbe,0x2d,0x93,0x6e, 0x51,0x39,0x3c,0x96, 0xaf,0x6b,0x72,0x5e, - 0x78,0x4a,0x4b,0xd7, 0x63,0xf6,0x75,0x7a, 0x4f,0xbb,0xed,0xdb, 0xaa,0x04,0xb6,0xaa, - 0x4a,0x52,0xae,0x65, 0x0b,0x8d,0x8b,0xac, 0x75,0x92,0xca,0xec, 0x7c,0x18,0x9d,0x6a, - 0xb8,0xee,0xfb,0xaf, 0x42,0x68,0xd3,0x6b, 0x5d,0x4a,0x87,0x3b, 0x77,0x48,0xe7,0x5b, - 0xd9,0x5c,0xe9,0xed, 0x4e,0xb9,0x87,0x0e, 0x12,0xb6,0xda,0x54, 0x56,0xab,0x4a,0xd6, - 0x2a,0x5b,0xd4,0xe3, 0x71,0x57,0x3d,0x54, 0x25,0xa4,0xee,0x35, 0x79,0xa8,0x29,0x18, - 0xb7,0xb5,0xda,0x2e, 0x50,0x75,0x2b,0x4f, 0x75,0xa7,0x6c,0x9a, 0x5c,0xbd,0xcd,0xf3, - 0x93,0xa6,0x90,0x38, 0xe5,0x9a,0x47,0x18, 0xd2,0xb2,0xd4,0xe8, 0xdc,0x55,0x34,0x24, - 0x96,0xc5,0xbd,0x2b, 0x7a,0x73,0x35,0x04, 0xb4,0x24,0xef,0x2a, 0x4a,0x95,0x0d,0x41, - 0xb7,0x69,0x77,0x77, 0x69,0xce,0x1a,0x78, 0x34,0x4d,0xa6,0x2b, 0x90,0xaa,0xb4,0x87, - 0x0c,0xca,0xe2,0xe5, 0x46,0x5a,0x95,0x52, 0xa3,0x75,0x85,0xcd, 0xb3,0x79,0x55,0x9a, - 0xe9,0xab,0xaa,0xd1, 0xd4,0xb6,0x4b,0x77, 0x73,0x9a,0x19,0x94, 0x34,0x95,0x82,0xd5, - 0x32,0x85,0x66,0x25, 0xb7,0xaa,0x54,0x98, 0xc7,0x9a,0x76,0xdf, 0x3d,0x35,0xc2,0xb2, - 0x5b,0x45,0x1d,0x75, 0xcc,0x4e,0xdd,0x6e, 0x20,0xa2,0x8f,0x16, 0x56,0x4a,0x06,0x28, - 0x51,0x2c,0x61,0x35, 0xaa,0xb4,0x09,0x0a, 0x8b,0x01,0xce,0xb5, 0x66,0xad,0xc2,0x0c, - 0x48,0x84,0xa0,0x58, 0xcf,0x4e,0x3c,0xb8, 0xe6,0xe4,0xe9,0x37, 0xbe,0x02,0x14,0x23, - 0xc5,0xf2,0x68,0x38, 0x27,0xa5,0x55,0xb8, 0x53,0xdd,0xe4,0x6a, 0xad,0xcf,0x05,0xe2, - 0x17,0x78,0xd2,0x07, 0x72,0xf0,0xa2,0xe8, 0x48,0x31,0x4a,0x91, 0x89,0x6b,0x14,0x11, - 0x14,0x32,0xf3,0x99, 0x9c,0x1d,0x5c,0xe7, 0x9b,0xc9,0x6a,0x83, 0xca,0xbc,0xdb,0xe7, - 0x24,0x80,0xcd,0xbb, 0x8f,0x0b,0x1e,0x8b, 0x35,0xb1,0x98,0x1c, 0x81,0x55,0xaa,0xa8, - 0x42,0x81,0x01,0x28, 0x50,0x82,0x01,0x2a, 0x35,0x80,0xe3,0xa8, 0x69,0x35,0xcd,0xe1, - 0xc4,0x77,0x76,0x00, 0xde,0xe5,0x50,0xb9, 0x7a,0x35,0x3a,0x43, 0x66,0x74,0x3b,0xf7, - 0x19,0x93,0x00,0x66, 0x56,0x7d,0xae,0xb5, 0x07,0x92,0x9d,0x8e, 0x5e,0xb3,0x96,0xf0, - 0xdb,0x94,0x67,0xc3, 0xd1,0x9d,0x19,0xad, 0xeb,0x14,0xd2,0x89, 0xf0,0x3d,0x1d,0x1c, - 0x68,0x15,0x10,0x60, 0xab,0xe1,0xde,0xe0, 0x89,0xf0,0x63,0x50, 0x75,0xaa,0x61,0xbe, - 0x96,0x66,0x58,0x1b, 0x67,0xc6,0x64,0xe5, 0x3c,0xda,0x9f,0x35, 0x92,0x72,0x8e,0x8f, - 0x32,0x6e,0x7c,0xce, 0xf9,0xe7,0x66,0xc0, 0xd4,0x27,0x74,0x17, 0xa2,0x48,0x7e,0x33, - 0xe1,0x85,0x01,0x36, 0x21,0x14,0xa8,0xe9, 0x14,0x00,0xe7,0xb6, 0x3c,0x13,0x13,0xa9, - 0xd7,0xaa,0x0e,0x23, 0xe3,0x57,0xf6,0xd4, 0x2a,0x6b,0x18,0x9c, 0x80,0xf4,0x62,0x5b, - 0xfc,0x38,0x51,0xcf, 0x20,0x36,0xd6,0x5d, 0x5f,0x6d,0x72,0x21, 0x40,0x45,0xeb,0x36, - 0xd6,0x67,0x75,0x42, 0x01,0x4e,0x09,0x52, 0x80,0x12,0x27,0x95, 0x52,0x5c,0x4b,0xee, - 0x83,0xa3,0x2a,0x42, 0xfb,0xa4,0xcc,0x42, 0xe0,0x46,0xe6,0x7c, 0x2d,0x33,0x0b,0x36, - 0x08,0x6c,0x6d,0xc2, 0xc2,0x67,0x6b,0xb0, 0x06,0xbe,0x58,0xac, 0x2c,0xde,0x5c,0x69, - 0xb8,0x72,0xaf,0x38, 0x5e,0xad,0xf7,0x29, 0xe7,0xba,0x26,0xaf, 0x9b,0xba,0xf0,0x75, - 0x62,0xa6,0x3a,0x81, 0x42,0x20,0x89,0xc8, 0x8e,0x9e,0x22,0x80, 0xa5,0x91,0x11,0x94, - 0x35,0xc2,0x02,0x73, 0x04,0x21,0xc2,0xc9, 0x4a,0x02,0x00,0x3a, 0xc6,0x1b,0x67,0x3a, - 0x53,0x9f,0x3b,0xdb, 0xef,0x8d,0xe9,0xf0, 0xe7,0xcf,0xd7,0xee, 0x9e,0x1b,0xdd,0x82, - 0xa2,0x7c,0xdc,0x51, 0xf1,0x6c,0x54,0x1f, 0xa1,0x15,0x98,0x70, 0xcf,0x15,0xe0,0xc5, - 0xd9,0x13,0x88,0x1c, 0x4d,0x59,0x0c,0x78, 0xf0,0x90,0x10,0x0b, 0x05,0x88,0x91,0x17, - 0xad,0x2b,0x36,0x0c, 0xa9,0x61,0x18,0x8a, 0x28,0xd1,0x11,0x15, 0x45,0xe1,0x2a,0x2f, - 0x09,0xc3,0x99,0xc0, 0x19,0x31,0x62,0xc5, 0xf6,0x12,0xaa,0x09, 0x44,0x72,0x73,0x85, - 0xd3,0x6a,0xe9,0x2c, 0x58,0xc6,0x08,0xa8, 0xa2,0xb9,0x68,0x33, 0x19,0x0a,0xa7,0x05, - 0xa8,0xa3,0x15,0x45, 0x91,0x45,0x18,0xac, 0x10,0x45,0x53,0x55, 0x6f,0x49,0x27,0xca, - 0xbe,0xb5,0xf5,0x70, 0x62,0x83,0xee,0xb2, 0x66,0x44,0x56,0x56, 0x8f,0xbf,0xa5,0xfc, - 0xb6,0xa2,0xa2,0xfa, 0xf6,0xbe,0xeb,0x2e, 0x7d,0x4e,0x62,0x22, 0xcc,0x9e,0xb5,0xa8, - 0x6e,0xd8,0xfd,0x21, 0x4c,0xdf,0x5c,0xde, 0xa9,0x52,0xc9,0x96, 0x5d,0x30,0xfe,0x75, - 0x72,0x7b,0xb9,0x81, 0xf3,0x53,0x1f,0x51, 0xbf,0xa7,0xf8,0xba, 0xb4,0x68,0x5d,0xb3, - 0xd4,0xf6,0xec,0x8f, 0x15,0x8e,0x1c,0x46, 0xa7,0xb5,0xc2,0x9f, 0x09,0x33,0x25,0x59, - 0xa5,0xca,0x78,0x69, 0x60,0x76,0x4c,0x43, 0x84,0xe5,0x86,0x6b, 0x98,0x85,0xe2,0xbe, - 0x0f,0x2d,0xa4,0x7f, 0x2b,0x07,0x30,0x6b, 0xb3,0x6e,0x92,0xf0, 0xde,0x55,0x20,0x98, - 0xb1,0x2a,0x0c,0x44, 0x54,0x41,0x82,0x0c, 0x11,0x5d,0x2e,0x2d, 0xb6,0xba,0x5a,0x5a, - 0x7f,0xa8,0x43,0x87, 0x98,0x10,0xc2,0x6e, 0x78,0x7f,0x47,0xe1, 0x9e,0x88,0x8c,0x41, - 0x15,0x14,0x51,0x78, 0xf5,0x29,0x88,0xc5, 0x51,0x51,0x8a,0xc5, 0x63,0x24,0x4f,0x59, - 0xac,0x63,0x14,0x41, 0x55,0x58,0xa8,0xc1, 0x18,0x22,0x08,0x8a, 0x28,0x2c,0x41,0x58, - 0xa8,0xa2,0xab,0x15, 0x44,0x16,0x02,0x2a, 0x31,0x82,0x8b,0x05, 0x44,0x56,0x28,0xbc, - 0x0f,0xab,0x4f,0xeb, 0xd5,0x67,0x1c,0xd5, 0x4c,0x97,0x6c,0x76, 0x97,0xde,0x5f,0x7b, - 0x98,0x7b,0x6b,0x58, 0xec,0x7d,0x66,0x67, 0xbc,0xa5,0x60,0xba, 0x4d,0x27,0xab,0xfa, - 0x34,0x9a,0x15,0x37, 0xd5,0x2f,0x57,0x07, 0x01,0x3e,0x06,0xb3, 0xdc,0xef,0xdd,0xf1, - 0xa8,0x98,0xd5,0xa8, 0xef,0x30,0x5f,0x59, 0x6d,0x82,0xde,0x95, 0xf6,0x35,0x8f,0x93, - 0xa3,0x0a,0x9f,0xa8, 0x5e,0xef,0xac,0x86, 0x90,0x50,0x5d,0xb3, 0xa8,0x9e,0xf3,0xad, - 0xf5,0xf9,0xf8,0x38, 0x74,0x67,0x4b,0x7d, 0x27,0x1c,0x07,0xca, 0xca,0x1f,0x16,0x9e, - 0x87,0xb1,0xa3,0xe1, 0xba,0x3b,0xa4,0xa8, 0x9f,0x13,0xad,0x85, 0x7b,0x26,0xa0,0xce, - 0xc5,0x66,0x63,0xa0, 0xb6,0x21,0xf4,0x3b, 0x0b,0x6e,0x38,0x17, 0xc3,0xec,0x40,0x0c, - 0xe3,0xf1,0x51,0xa6, 0x98,0x94,0xd0,0x8b, 0x05,0x8b,0x12,0x31, 0x22,0xc4,0x51,0x11, - 0x41,0x51,0x01,0x51, 0x16,0x31,0x54,0x51, 0x62,0xc1,0x8b,0x15, 0x62,0x8a,0x31,0x88, - 0x8a,0xa8,0x8a,0x0b, 0x2c,0x0e,0xcf,0x2f, 0xd7,0x77,0xc9,0x8d, 0xb2,0xfa,0x96,0x51, - 0x3d,0x46,0x6b,0xd1, 0xb2,0x56,0x6a,0x33, 0xcf,0xf9,0x9c,0xe1, 0xa9,0xee,0xb7,0x7d, - 0x12,0x9a,0x79,0x38, 0x7a,0x70,0x6d,0x38, 0x54,0x1b,0x68,0xca, 0x5b,0xf4,0x28,0x63, - 0x0f,0x92,0xb2,0xbb, 0xb6,0x29,0x7e,0x4f, 0x30,0x0a,0xe7,0xb6, 0xcb,0xdb,0x5b,0xb6, - 0x76,0x7d,0x36,0xa6, 0xf7,0x62,0x1d,0x85, 0x8a,0x9e,0x7f,0xd3, 0xc7,0x13,0xc3,0xb6, - 0xc8,0xf3,0x31,0x55, 0xc8,0xa1,0x14,0xa6, 0x4c,0x2f,0x57,0x70, 0x50,0x90,0x48,0x6b, - 0xd9,0x11,0x92,0x47, 0xf9,0x4d,0xf8,0x20, 0xa2,0x20,0x8a,0x28, 0xa2,0xa9,0x11,0x88, - 0xab,0x05,0x8a,0x82, 0xb1,0x15,0x41,0x15, 0x60,0xa0,0x8c,0x55, 0x14,0x50,0x51,0x51, - 0x05,0xa4,0x3d,0x94, 0xff,0x01,0x0a,0x52, 0xa5,0x6c,0x05,0x16, 0x22,0x46,0x30,0x11, - 0x51,0x82,0x45,0x15, 0x48,0x88,0x2a,0xc8, 0x50,0xdf,0x14,0x9c, 0xa7,0x64,0xc4,0xf1, - 0x64,0xdf,0x95,0x3c, 0xb7,0x56,0x3f,0x1b, 0x8e,0x99,0xcf,0x36, 0x94,0x5b,0xc7,0x9e, - 0xeb,0x54,0xd6,0x36, 0x28,0x65,0xab,0x04, 0x49,0xe6,0xb2,0x88, 0x30,0x54,0x14,0xe1, - 0x03,0x77,0xcc,0xe4, 0x17,0xc1,0x0d,0xb3, 0x72,0xf2,0x21,0x92, 0xff,0x4f,0xc7,0xde, - 0xbb,0x79,0x9d,0x11, 0x8c,0x62,0xbf,0x39, 0x17,0xb2,0xa4,0xb3, 0x0a,0x40,0xcc,0x5e, - 0x67,0x26,0x13,0x60, 0x84,0x20,0xf5,0xd2, 0xb1,0x64,0x58,0xb3, 0xaa,0x66,0xac,0x0f, - 0x91,0xf8,0x9e,0xae, 0x06,0xa1,0xbb,0x7f, 0xb1,0x3c,0x72,0x9e, 0x7b,0x7b,0x77,0xcb, - 0x6d,0xb4,0x28,0x93, 0x1a,0x30,0xe5,0x31, 0x0c,0x58,0xe9,0x37, 0xa9,0x0f,0x48,0x9f, - 0x1d,0x8a,0x54,0x0e, 0x51,0x36,0x46,0x9b, 0x19,0x2b,0xce,0x31, 0x52,0xac,0x5b,0x17, - 0x64,0x0a,0xaa,0x8d, 0x15,0x4c,0xe5,0xd8, 0x8b,0x8b,0x10,0x13, 0x48,0xc0,0x6f,0x57, - 0x29,0x5c,0x20,0x49, 0x22,0x3d,0x7e,0x2a, 0xf3,0x31,0x64,0x0c, 0xc4,0xfb,0x43,0x18, - 0x67,0x80,0x64,0x90, 0xa4,0xa4,0xd7,0x2e, 0x75,0x89,0x6c,0xd5, 0x78,0x5c,0x16,0xe9, - 0x86,0x59,0x16,0x76, 0x5e,0xf8,0xc8,0xc6, 0xe4,0x49,0x32,0xa0, 0x9b,0x86,0x4b,0x00, - 0xf6,0x18,0xca,0x70, 0xba,0x95,0xab,0xd0, 0x95,0x8c,0x62,0xd6, 0xd0,0xe9,0x1a,0x89, - 0x92,0x26,0xe4,0xe1, 0x04,0x73,0x8d,0x1b, 0x19,0x07,0xd9,0xac, 0xb5,0x37,0x68,0x74, - 0x54,0xa9,0x16,0x4d, 0x5b,0xd9,0x3d,0x44, 0xac,0x9d,0x5d,0xb2, 0x79,0xfb,0x13,0xc6, - 0x94,0xf5,0x74,0x4e, 0xe7,0x7b,0xe0,0xc8, 0x31,0x14,0xef,0x6f, 0x56,0x58,0xab,0xc5, - 0x95,0x15,0x76,0xdf, 0x15,0x32,0x34,0x9a, 0xd5,0x30,0xab,0xff, 0x0a,0xaa,0x14,0x19, - 0xd4,0xce,0x20,0x85, 0xe7,0xb2,0x71,0x16, 0xd8,0x21,0x22,0x87, 0x3c,0x59,0xc8,0x47, - 0x21,0x07,0x37,0x73, 0x31,0xb2,0xc0,0xa3, 0x55,0x83,0x1a,0xdf, 0x94,0xcc,0xe6,0x95, - 0x1e,0x32,0x4d,0x02, 0x00,0x38,0x8a,0x83, 0x11,0x28,0xa2,0x50, 0x40,0x2a,0x6a,0x16, - 0xcd,0x63,0x32,0x2a, 0x63,0x5c,0xd7,0x83, 0xa1,0x55,0x84,0x99, 0x83,0xc7,0x4b,0x2d, - 0xa7,0x87,0x7f,0x67, 0xa0,0xf2,0x7d,0x97, 0xb2,0x2c,0x0f,0x45, 0xe2,0x4d,0xd2,0x66, - 0x59,0x89,0x26,0x39, 0x1c,0xf6,0x96,0x1a, 0xcb,0x46,0x5b,0x74, 0xc4,0x58,0xb8,0xd6, - 0x30,0x6b,0x70,0xef, 0xe4,0x6b,0x1e,0x76, 0x1c,0x6b,0xa3,0xe1, 0xaa,0xf1,0x98,0x6d, - 0x2e,0xad,0xd7,0xb7, 0x87,0xfd,0x5b,0x55, 0x91,0x15,0x44,0x54, 0x48,0x22,0x02,0xa2, - 0x31,0x55,0x55,0x88, 0xc1,0x0a,0x26,0x5f, 0x65,0xfb,0xf2,0xac, 0x43,0x66,0xe3,0x56, - 0x0e,0xae,0xa6,0x42, 0x73,0x24,0xd6,0xd5, 0x44,0xd7,0x15,0x40, 0x51,0x34,0xe3,0x99, - 0xa4,0x0a,0xcf,0x51, 0x94,0xc2,0x11,0x61, 0x0c,0xfb,0x0c,0xf3, 0x98,0xa5,0x03,0x8c, - 0xf0,0x4d,0x0e,0xec, 0x14,0xda,0xd1,0xda, 0x66,0xf4,0xa6,0x0d, 0x4a,0x3f,0x16,0xe6, - 0xd2,0x9d,0x06,0xa4, 0x58,0x04,0xea,0xf9, 0x74,0x92,0x3c,0x75, 0xe9,0x98,0x1d,0x89, - 0x02,0x48,0x04,0x7a, 0xea,0x64,0xb9,0x63, 0x99,0xf5,0x6a,0x12, 0xe7,0xa6,0x6d,0x57, - 0x83,0x57,0x7c,0xc3, 0x40,0x55,0x5e,0x42, 0xd5,0xde,0x09,0xe1, 0x49,0xb0,0x38,0x53, - 0x07,0x4c,0x23,0x1b, 0xcd,0xf7,0x5a,0x5a, 0x87,0x98,0x8e,0x31, 0xb6,0x3a,0xb5,0xb5, - 0x1f,0x24,0x45,0xe6, 0x10,0x15,0xaa,0xa3, 0x0c,0x67,0x38,0xc2, 0x38,0xca,0xd4,0xb4, - 0xe3,0x2a,0x51,0x71, 0xa2,0xdd,0x0a,0x17, 0x9b,0x42,0xb4,0x5d, 0x69,0x01,0x1c,0x32, - 0xb2,0x4a,0xd7,0x6d, 0x08,0x70,0x2c,0x66, 0x4d,0x54,0x85,0x53, 0x35,0x4c,0x84,0x5e, - 0xf7,0xda,0x93,0x11, 0x26,0x05,0x48,0xb9, 0xd8,0x17,0x05,0x85, 0x43,0x56,0xfa,0x48, - 0xb0,0x5a,0xba,0x28, 0x62,0x4d,0xe5,0x31, 0xbc,0x36,0xbc,0x67, 0x07,0x5e,0x33,0x71, - 0x8e,0xac,0x16,0x29, 0x2a,0xa1,0x5e,0x8d, 0x66,0x27,0x1e,0x85, 0x37,0xaa,0x0b,0xdf, - 0x82,0xcf,0x0d,0x55, 0x07,0xbe,0x8c,0x86, 0x21,0x62,0x54,0x9c, 0xbe,0x5d,0xf2,0x5d, - 0x64,0xcf,0x1a,0x54, 0xd3,0xe7,0x7c,0xc4, 0x5a,0xf3,0x09,0x63, 0x38,0xd2,0x57,0xad, - 0xc4,0x02,0x53,0x16, 0x56,0x24,0x80,0x09, 0x05,0x2f,0x21,0xc6, 0x5b,0xe7,0x2b,0x46, - 0x35,0x9e,0x47,0x16, 0xd1,0x1b,0x18,0x19, 0x07,0x5a,0x99,0x5d, 0x93,0x17,0x9b,0x0b, - 0xe1,0x9e,0x12,0xae, 0x55,0x94,0x6d,0x4a, 0xab,0x8c,0xb1,0xb9, 0x2d,0x00,0xd9,0x16, - 0x78,0xfc,0x86,0x9c, 0x3b,0xb3,0x7d,0x79, 0xc9,0xc2,0x68,0x5b, 0x78,0xe7,0x79,0x3c, - 0xc9,0xb6,0x22,0xb3, 0x81,0x9a,0xca,0xa9, 0x4a,0x18,0xa1,0x24, 0x36,0x87,0x0d,0x1b, - 0xc2,0xd0,0x74,0xfa, 0xdd,0x66,0xba,0x40, 0xe5,0x90,0x22,0xa4, 0x59,0x55,0x2a,0x86, - 0x94,0xbd,0xd9,0x77, 0x42,0x19,0x55,0xeb, 0xea,0x7b,0x5e,0xb4, 0x95,0xf4,0xea,0x79, - 0x1e,0x7b,0x95,0xbd, 0x5f,0x9f,0x64,0x97, 0x7a,0x62,0x50,0xb7, 0xe3,0x7d,0x5f,0xae, - 0xa6,0x48,0xd5,0x21, 0x9b,0x41,0x88,0x93, 0xa5,0x4a,0x68,0xee, 0x67,0x46,0x09,0x51, - 0x03,0x92,0x71,0x99, 0x48,0x15,0x22,0x28, 0x17,0x03,0x36,0x10, 0x6a,0x1a,0x52,0x2c, - 0xa2,0xd4,0xde,0x4b, 0x34,0x04,0x98,0xda, 0x4d,0x4e,0x81,0x5a, 0xe3,0xd5,0x1d,0x71, - 0x92,0xa2,0x26,0x44, 0x58,0xb7,0x13,0xc0, 0x99,0xc6,0xfc,0xe9, 0xe5,0xa5,0x52,0x41, - 0x24,0x88,0x10,0x52, 0x35,0x66,0x6a,0xd1, 0x91,0xe8,0xcc,0xd2, 0x83,0x39,0xc4,0x61, - 0xa2,0x9a,0x56,0x9d, 0xb3,0xb6,0x0d,0x60, 0x59,0x27,0x16,0xc7, 0x07,0xa7,0x94,0xda, - 0x27,0xd3,0x53,0x33, 0xaf,0x4a,0x29,0x76, 0x20,0x46,0x99,0x4d, 0x66,0x1a,0x5a,0xcb, - 0x42,0x50,0x0d,0x45, 0x89,0x7b,0x6a,0xda, 0x26,0x92,0xe5,0xcf, 0xaf,0xab,0xc3,0x48, - 0x6a,0x11,0x42,0xef, 0x4b,0x29,0xfb,0x2f, 0xce,0xaf,0x3a,0xf3, 0x77,0xd5,0x25,0xa3, - 0x8e,0x07,0x23,0x43, 0x70,0x25,0x02,0x71, 0x2a,0x4a,0xe9,0x4c, 0xea,0x66,0xb7,0x6b, - 0xce,0xcd,0xe4,0xd8, 0x9d,0x21,0x23,0x4d, 0x02,0x34,0xbd,0x24, 0xdf,0x83,0xc7,0x37, - 0xa6,0x7a,0x24,0x9a, 0x9f,0x0f,0xa4,0x53, 0x61,0x48,0x94,0x70, 0xdb,0xa8,0x1c,0xc9, - 0x4b,0x69,0xca,0x68, 0xb0,0xc9,0x75,0x20, 0xbc,0x4f,0xb2,0xba, 0xbe,0x70,0x69,0xea, - 0xbd,0x2e,0xfb,0xe7, 0x54,0xe9,0x78,0xc2, 0xa3,0x3b,0x54,0x62, 0xd0,0x44,0xa9,0xc9, - 0x94,0x56,0xe4,0x45, 0x3a,0xef,0x77,0x27, 0x11,0x5a,0x3a,0xd6, 0xb7,0x5c,0x9c,0x33, - 0xc6,0xfa,0xae,0xe2, 0x73,0x26,0xfa,0x40, 0xa0,0x50,0x5e,0xe5, 0xc1,0x58,0x4b,0xb8, - 0x15,0x13,0x3d,0xa3, 0xd3,0x8e,0xf6,0xfb, 0x43,0x47,0x12,0x7b, 0xba,0x1b,0x18,0x95, - 0xaa,0xe9,0x39,0x49, 0x39,0xdd,0x45,0x45, 0x55,0x8b,0x01,0x18, 0x88,0x82,0x0a,0x8c, - 0x46,0x22,0x8a,0x08, 0x2c,0x51,0x10,0x45, 0x64,0x51,0x10,0x16, 0x28,0x31,0x14,0x85, - 0x84,0xbf,0xf8,0xa3, 0x01,0x40,0x59,0x11, 0x91,0x61,0x16,0x45, 0x92,0x0b,0x05,0x82, - 0x80,0x8c,0x60,0x8a, 0xc1,0x62,0x82,0xc4, 0x8a,0x28,0xb1,0x45, 0x44,0x41,0x8a,0xb1, - 0x64,0x04,0x41,0x49, 0x05,0x16,0x48,0xa2, 0x82,0xa0,0xc6,0x31, 0x05,0x45,0x8b,0x05, - 0x20,0xa3,0x04,0x58, 0xc1,0x11,0x05,0x11, 0x63,0x16,0x2a,0x32, 0x41,0x49,0x14,0x62, - 0xc6,0x2a,0xa8,0xa3, 0x37,0xc1,0x0d,0x83, 0xd6,0x7f,0x1f,0xcf, 0x7b,0xe1,0xf2,0xff, - 0xad,0x50,0x6b,0xdd, 0x43,0x51,0x51,0x28, 0xff,0x4c,0x83,0x16, 0x45,0x16,0x2b,0x11, - 0x60,0x91,0x63,0x05, 0x16,0x0a,0x88,0x88, 0x28,0x8a,0x88,0x2a, 0x31,0x11,0x05,0x01, - 0x55,0x64,0x51,0x50, 0x64,0x41,0x22,0x46, 0x22,0x88,0x2c,0x16, 0x2c,0x14,0x15,0x8a, - 0x8a,0x2a,0x8a,0xb1, 0x62,0xa2,0x15,0x35, 0x9a,0xd1,0xfb,0x72, 0x46,0xe1,0xa9,0x89, - 0x3d,0xd1,0x53,0xee, 0x6a,0x44,0x21,0xfb, 0x81,0x84,0xd6,0x65, 0x50,0x8a,0x6e,0x7d, - 0xce,0x61,0xf0,0xd6, 0xc3,0xcb,0x68,0x36, 0x8e,0x7b,0xea,0xbb, 0xd2,0x8b,0x5c,0xe8, - 0xdd,0x0d,0x74,0xcb, 0x35,0x5e,0xe3,0x94, 0x48,0x23,0xdd,0x3c, 0x20,0x6a,0xc1,0x40, - 0x0c,0x96,0x5a,0xed, 0x1a,0xf0,0x4b,0xd2, 0x17,0xc5,0xc5,0x8e, 0xcc,0xc4,0x08,0xc9, - 0x83,0x08,0x66,0x4f, 0xf4,0x12,0x41,0x40, 0x84,0x28,0x48,0x48, 0x59,0x5d,0xab,0xf8, - 0x6d,0x51,0xbc,0x9f, 0x1a,0x61,0xed,0x53, 0xc6,0x7c,0x15,0x5c, 0xfa,0xf4,0x6e,0xfd, - 0x6e,0xbb,0xe8,0xf6, 0x91,0xe3,0x6d,0x8b, 0xc7,0x68,0x67,0xb2, 0x5f,0x13,0x44,0x53, - 0x68,0xe2,0xdd,0x6a, 0xc2,0xf7,0x52,0x76, 0x31,0xa4,0x21,0x39, 0x2b,0xdd,0x29,0x6e, - 0x1d,0xb5,0xd0,0xb5, 0xa9,0x70,0xa1,0x6b, 0x58,0xa3,0x2c,0x04, 0x11,0x5c,0x2a,0xb9, - 0xb1,0x78,0x21,0x70, 0xd6,0xd7,0x7d,0xdd, 0x2c,0xb9,0x12,0x81, 0x42,0x73,0x17,0x4e, - 0x12,0x21,0x28,0xac, 0xca,0xb9,0x85,0xdd, 0xf3,0xe1,0x3d,0xbc, 0xf5,0xe9,0xe7,0xc6, - 0x69,0x1f,0x06,0x78, 0x21,0x73,0x32,0xb7, 0x32,0x57,0xc1,0x9f, 0xfd,0xe9,0xaa,0x0c, - 0x51,0x15,0x40,0x16, 0x02,0xb2,0x2a,0xc6, 0x44,0x64,0x58,0x8b, 0x10,0x88,0xc0,0x41, - 0x14,0x44,0x45,0x12, 0x08,0x82,0xc5,0x8a, 0x0a,0x0b,0x14,0x8a, 0x22,0x28,0x83,0x11, - 0x58,0x2b,0x15,0x41, 0x41,0x64,0x8a,0x0a, 0x00,0xc5,0x46,0x22, 0x31,0x8b,0x16,0x45, - 0x05,0x55,0x01,0x54, 0x62,0x20,0x91,0x11, 0x51,0x62,0xc5,0x62, 0x88,0xa2,0x45,0x10, - 0x60,0xc4,0x51,0x62, 0x84,0x63,0x06,0x2a, 0x82,0xc8,0xab,0x15, 0x08,0x88,0x88,0x88, - 0xaa,0x0a,0x28,0x91, 0x0a,0x02,0x09,0x41, 0xbb,0xe5,0xff,0xbf, 0xf7,0xd5,0xef,0xf8, - 0xf8,0xe1,0x80,0x16, 0xd3,0x50,0xa8,0x48, 0x4d,0x0f,0x8b,0x29, 0xd2,0xca,0x24,0x1d, - 0x67,0x09,0xbe,0xbc, 0xe7,0xb8,0x4e,0xb8, 0x6e,0x11,0x55,0x30, 0x7a,0x39,0xee,0x34, - 0xeb,0x5e,0xd3,0x5d, 0x80,0xea,0x25,0x90, 0x58,0x07,0x22,0x4a, 0xdc,0x32,0x54,0x03, - 0x90,0x7e,0x1c,0xc9, 0xcf,0x1a,0xd4,0x93, 0x99,0x93,0xac,0xbc, 0x7b,0x59,0xc6,0x35, - 0x6f,0x79,0x03,0xa3, 0x3c,0x15,0x03,0xaa, 0x5d,0xa4,0x41,0xba, 0xca,0x71,0x7e,0x79, - 0xcf,0x17,0xa3,0x8a, 0x31,0xed,0x6f,0x89, 0x9d,0xfa,0x0a,0x70, 0x02,0xa8,0xb1,0xd7, - 0x7b,0xa4,0xee,0x3d, 0x1d,0x74,0x0e,0x5b, 0x69,0x18,0x92,0x28, 0x14,0x09,0x15,0xee, - 0x1f,0x8a,0x66,0x13, 0x7d,0xd5,0x9a,0xc8, 0xef,0xdc,0xbe,0xb7, 0xa3,0x4a,0x20,0xa4, - 0x21,0x40,0xd0,0xd2, 0xd4,0x0b,0xba,0xb5, 0x45,0x2b,0x84,0x6b, 0x95,0x1b,0x5a,0xbf, - 0x0f,0x55,0x18,0x8e, 0x46,0x27,0x05,0x5a, 0x73,0x0c,0x86,0x8a, 0x50,0xd4,0x25,0x2e, - 0x2b,0x39,0x70,0xb5, 0xa9,0x08,0xb5,0x1e, 0xb6,0x13,0x35,0x6a, 0xee,0xb4,0xa9,0xc1, - 0xdf,0xbe,0x33,0x9d, 0x7a,0x77,0x41,0x8b, 0x71,0x17,0x9b,0x92, 0x29,0x3a,0x98,0xa8, - 0xd3,0xed,0x05,0x54, 0xe4,0x6e,0x77,0x21, 0x06,0x28,0xf2,0x83, 0xbe,0x93,0x66,0xcb, - 0xf1,0x34,0x89,0x38, 0x94,0x9b,0xe3,0xf3, 0xde,0x44,0x24,0xa3, 0x26,0x74,0xa6,0x8b, - 0x59,0x4b,0x1e,0x77, 0x90,0x9c,0x21,0x13, 0xad,0xe7,0x92,0x56, 0xb6,0x1d,0x93,0xc9, - 0x31,0x7a,0x5d,0x77, 0x78,0x32,0x56,0x6c, 0x50,0x36,0xfc,0x75, 0x3d,0x40,0xa9,0xa7, - 0x23,0x26,0xb9,0x36, 0xea,0x64,0x11,0xdd, 0x54,0x09,0x1b,0x96, 0x90,0x52,0x12,0x84, - 0x8c,0xd3,0x87,0xa8, 0xe9,0x56,0x4a,0xcf, 0x0a,0x5e,0x5d,0xc6, 0x09,0x46,0x6c,0xb5, - 0x9a,0x7b,0x5e,0xfd, 0xa8,0x34,0x35,0x03, 0x42,0xe3,0x8e,0x75, 0xa0,0x95,0x0b,0x4a, - 0x50,0x4e,0x73,0x55, 0xe6,0x9d,0xc7,0x77, 0x31,0x7e,0x02,0x22, 0x1f,0x3a,0xf0,0xda, - 0xf2,0xb1,0x4d,0x77, 0x33,0x1b,0x6c,0x6f, 0x45,0xcd,0x1e,0x3d, 0x39,0xdd,0xeb,0xb1, - 0x08,0xdb,0x80,0x6a, 0x31,0x42,0xb2,0x2c, 0x16,0x23,0xef,0x58, 0x79,0x75,0xa6,0x98, - 0x78,0x6b,0xa6,0x05, 0xe9,0x65,0x67,0x83, 0x27,0x29,0xe6,0xe8, 0xc3,0x6b,0xd5,0x09, - 0x4e,0x86,0x13,0xcd, 0x66,0xc5,0xec,0xf5, 0xb9,0x8a,0x4b,0xbf, 0x63,0x60,0xf8,0xad, - 0x43,0x44,0xf8,0x9b, 0xc7,0x19,0x56,0x50, 0x14,0xac,0x71,0x60, 0xe2,0x15,0x5d,0x9d, - 0xca,0x50,0xe4,0xac, 0x46,0x41,0x09,0x19, 0xb2,0x92,0xa5,0x02, 0x29,0x44,0x05,0x7d, - 0x66,0x02,0x52,0x14, 0x07,0x72,0xfd,0x13, 0x34,0xce,0x87,0x4b, 0xc8,0xa8,0x4c,0xf6, - 0xbd,0x3d,0x45,0xab, 0x9b,0x1f,0xb3,0x41, 0x4d,0xc4,0x76,0xa5, 0x35,0xd7,0x79,0x73, - 0x06,0x26,0x91,0xa4, 0x35,0x02,0xe7,0x72, 0x55,0x7a,0x6e,0xa2, 0x45,0xc8,0x35,0xdb, - 0x4e,0x2a,0xcd,0x59, 0x41,0xec,0x9b,0xc3, 0x79,0xb7,0x38,0x67, 0x6b,0x66,0x99,0xa4, - 0x36,0xad,0x4b,0x69, 0x52,0xb9,0x96,0x4c, 0xcd,0x53,0x02,0x72, 0xe2,0x6d,0x75,0x45, - 0x58,0x71,0xc7,0x8e, 0x69,0x81,0xc2,0x69, 0x87,0x0c,0xd6,0x34, 0x88,0xa8,0x71,0x96, - 0x15,0x9e,0x82,0xa4, 0x1f,0x3c,0xa4,0xe1, 0x09,0x59,0x88,0x0b, 0xb6,0x07,0x0e,0x2a, - 0x0b,0x03,0x49,0x5a, 0x86,0x26,0x09,0x01, 0x45,0x25,0x42,0x56, 0x01,0x6d,0x70,0xa0, - 0xe5,0x86,0x90,0x2a, 0x1e,0x49,0x26,0x98, 0x49,0xbb,0x48,0x5e, 0x6e,0xd0,0x82,0xc0, - 0x0d,0x30,0x75,0x67, 0x9b,0x38,0xc9,0x7a, 0xde,0x8c,0x81,0xcb, 0x35,0x39,0x46,0x9c, - 0xe5,0x9b,0x74,0xc0, 0x31,0x14,0x0f,0x22, 0xe3,0x85,0x67,0x09, 0x96,0xc1,0x61,0x05, - 0x39,0x1a,0xe2,0x0a, 0x1b,0xa6,0x65,0xb6, 0x77,0x43,0x12,0x78, 0x32,0x29,0x09,0x50, - 0x1f,0x3f,0x18,0x1d, 0x35,0xa6,0x64,0x1c, 0xa7,0x6c,0xb0,0x51, 0x60,0x65,0xa7,0x57, - 0xa9,0x96,0x2c,0x24, 0x99,0xda,0x87,0x82, 0x06,0xd9,0x16,0x01, 0xe2,0xe8,0xf1,0x6a, - 0xcf,0x1d,0xd6,0x99, 0xbd,0x69,0xd2,0x14, 0x42,0xd2,0xa8,0xca, 0x17,0xa7,0x96,0xea, - 0x0d,0x4c,0x34,0x82, 0x79,0x32,0x25,0x08, 0x7d,0x0e,0x57,0x6c, 0x8d,0xa8,0x73,0x5c, - 0x75,0x03,0x97,0xa4, 0x41,0x94,0x6a,0x7c, 0x2c,0x41,0xa4,0x2b, 0xee,0x42,0xa1,0x00, - 0x93,0x7a,0x55,0x2e, 0x95,0x38,0x68,0x62, 0xa9,0xd2,0xcc,0xe2, 0x9a,0x3c,0x12,0xe9, - 0x90,0xd2,0xe2,0xca, 0x1b,0x40,0xdb,0xe5, 0x7b,0x67,0x54,0x34, 0x84,0xc6,0x69,0x73, - 0x6e,0x6c,0xb9,0x0f, 0x08,0x0f,0x10,0x5a, 0x21,0x28,0x70,0x35, 0xe3,0x5c,0xf3,0x54, - 0xad,0x2e,0xb7,0xba, 0x02,0xc5,0x80,0x15, 0x5c,0xd5,0x3c,0x37, 0xe5,0x9b,0xcf,0x2e, - 0xf9,0xa3,0xa2,0x0a, 0x06,0xd2,0xad,0x71, 0x6b,0x16,0x74,0x09, 0x16,0x10,0xac,0x6e, - 0x9b,0x8d,0xf4,0xcc, 0x28,0xf8,0x1a,0x4c, 0xc8,0x22,0x0b,0x8a, 0x5d,0x57,0x61,0x37, - 0x65,0xc3,0x76,0xbd, 0x19,0xdf,0x6e,0x22, 0x94,0x40,0x69,0x1c, 0x4f,0x97,0x21,0xed, - 0xa8,0xe4,0xae,0xa4, 0xf6,0x54,0xf3,0xae, 0x8e,0xae,0xa6,0x64, 0xcf,0x44,0xde,0x13, - 0x04,0x16,0x47,0xd0, 0xa4,0x03,0xab,0x00, 0x78,0xa2,0xf7,0x60, 0x66,0x34,0x90,0x68, - 0x48,0x96,0xe2,0x44, 0x0d,0x27,0xd4,0xb3, 0xb7,0xd8,0xa4,0xf2, 0xfc,0x13,0xa3,0x3a, - 0xd4,0xef,0x28,0x9d, 0x2d,0x08,0x68,0x91, 0x8e,0x4f,0x5a,0xa2, 0xe5,0xf2,0xf5,0xed, - 0x45,0x52,0xc1,0x59, 0xd4,0xc8,0x7a,0xa8, 0x9a,0x89,0x9d,0xbd, 0x70,0xe6,0xeb,0x0d, - 0x19,0xcc,0xa8,0xc5, 0x6a,0xf7,0x73,0x05, 0x76,0x75,0xa8,0x0e, 0xed,0xae,0x5b,0x20, - 0xa4,0x60,0x59,0x10, 0xd4,0x1a,0xa6,0x15, 0x57,0x25,0xcc,0x1d, 0xef,0x3d,0x51,0xd9, - 0xdf,0x95,0x9c,0xdc, 0x07,0x7d,0xe2,0x9a, 0x46,0xf1,0x83,0x51, 0x09,0x1d,0xcf,0x77, - 0x25,0x41,0x68,0x37, 0x97,0x30,0x52,0x11, 0x28,0xeb,0x5d,0x61, 0x75,0xcb,0xcd,0x18, - 0x88,0x83,0xd6,0x25, 0x90,0x24,0x01,0xe7, 0x5e,0x3a,0xce,0xb7, 0xad,0xa8,0xe7,0x4f, - 0x8a,0x7b,0xb3,0xd3, 0x3c,0x5e,0xf1,0x18, 0x06,0x84,0xd5,0x8a, 0x18,0xca,0x90,0x9e, - 0x09,0xe6,0xca,0x6d, 0xf1,0x4e,0xa9,0xad, 0x58,0x4d,0x30,0x58, 0x65,0xb5,0x02,0x89, - 0x0e,0x58,0x18,0xf2, 0xc8,0x4f,0x16,0x63, 0x0d,0x33,0x19,0x3c, 0x50,0x9a,0x64,0x05, - 0x92,0x69,0x87,0x46, 0x13,0xa3,0x01,0x64, 0x23,0xda,0x92,0x72, 0xc8,0x18,0x90,0x38, - 0x61,0x0e,0xe8,0x72, 0x92,0x45,0x24,0x98, 0x82,0x82,0xc3,0x6c, 0x25,0x62,0x8c,0x49, - 0x24,0x37,0x69,0x89, 0x2d,0xc4,0x12,0x88, 0x0e,0x41,0xe3,0xac, 0x26,0xed,0x35,0x2b, - 0xd9,0x47,0x16,0xe9, 0xb5,0xc4,0x30,0x42, 0xc7,0x15,0x97,0xc6, 0x8d,0xa0,0x9d,0xad, - 0x93,0xb2,0x6a,0x73, 0x4f,0x32,0x56,0x72, 0xc3,0xae,0xec,0xdb, 0x26,0x33,0x5c,0xd5, - 0x25,0x48,0x3c,0x56, 0xd5,0x90,0xd2,0x6d, 0x92,0x62,0x01,0xd9, 0x9d,0x92,0x70,0xd4, - 0x34,0xe5,0x16,0x8a, 0x41,0x56,0x43,0xbe, 0x16,0x65,0xa2,0x81, 0x50,0x0a,0xc9,0x50, - 0xed,0x72,0xe1,0x4c, 0xb3,0xc5,0x0a,0x24, 0x9a,0x67,0x8e,0xe9, 0xa6,0x1d,0x10,0x2a, - 0xa4,0xee,0xc9,0x62, 0x40,0x52,0x08,0xc2, 0x42,0xa1,0xd7,0x74, 0x9a,0x64,0xc6,0x41, - 0x4a,0xc9,0x15,0x18, 0x0f,0xff,0x8b,0xb9, 0x22,0x9c,0x28,0x48, 0x61,0xc3,0x66,0xc6, - 0x00, - // 0x17d1 = 6097 data bytes (11%) + 0x42,0x5a,0x68,0x39, 0x31,0x41,0x59,0x26, 0x53,0x59,0x99,0xd8, 0x6d,0x93,0x00,0x03, + 0x59,0xff,0xff,0xff, 0xef,0xfe,0xff,0xfe, 0xff,0xff,0xfb,0xff, 0xfb,0x82,0xe0,0x2d, + 0xfb,0xe7,0xff,0xaf, 0xae,0x08,0xa4,0x38, 0x42,0xd4,0x30,0x43, 0x97,0x04,0x56,0x22, + 0xa2,0xa6,0x2b,0x60, 0x21,0x5f,0x3c,0x34, 0x74,0xe4,0x2d,0xba, 0x1d,0x28,0x1d,0x28, + 0x2a,0x46,0x75,0xd6, 0x0e,0xdb,0x80,0x3a, 0x02,0x80,0x41,0x2e, 0xed,0xac,0xad,0xf7, + 0x06,0xed,0x85,0x22, 0x81,0x41,0xeb,0xa5, 0x98,0xcb,0x5d,0xd9, 0x11,0x27,0x65,0x49, + 0x0e,0xe0,0x51,0xb8, 0x2c,0x00,0xac,0xcc, 0x55,0x35,0x40,0x06, 0x96,0x66,0x52,0x14, + 0x1c,0x34,0xc8,0x80, 0x41,0x34,0x42,0xa7, 0x94,0xfd,0x51,0xb5, 0x3c,0x20,0x86,0xd2, + 0x79,0x41,0xe9,0x1e, 0x9a,0x99,0x01,0xea, 0x1a,0x3d,0x40,0x01, 0xa6,0x9a,0x06,0x83, + 0xd4,0x34,0xd0,0xf5, 0x34,0x0d,0x1a,0x0d, 0x1a,0x0d,0x00,0x00, 0x06,0x98,0x44,0x22, + 0x41,0x4a,0x7e,0xa8, 0xf4,0x80,0x00,0x00, 0x00,0xd0,0x69,0xa0, 0x00,0x00,0x00,0x00, + 0x00,0x0d,0x00,0xd0, 0x00,0x06,0x80,0x00, 0x00,0x80,0x0c,0x8d, 0x34,0xd3,0x13,0x08, + 0xc4,0xc8,0xc4,0xd1, 0xa6,0x99,0x19,0x18, 0x11,0x81,0x30,0x04, 0x68,0xd3,0x23,0x13, + 0x40,0xc1,0x1a,0x19, 0x18,0x21,0x91,0x89, 0x81,0x18,0x00,0x26, 0x01,0x26,0x92,0x21, + 0x08,0x44,0xd2,0x0d, 0x53,0xd0,0xd4,0xc8, 0xd8,0x53,0xd4,0xc6, 0x41,0xa0,0x47,0xa1, + 0x30,0x86,0x98,0x99, 0x1e,0xa0,0x61,0xa0, 0x00,0x01,0xa0,0x00, 0x08,0xc6,0x93,0x20, + 0xf5,0x18,0x9a,0x60, 0x54,0xd2,0x26,0x41, 0x81,0x0d,0x0c,0x9a, 0x69,0x89,0xa1,0xa0, + 0x03,0x40,0x64,0xc4, 0x60,0x4c,0x80,0x68, 0x34,0xd3,0x4d,0x00, 0xc8,0xd1,0x93,0x08, + 0x01,0x82,0x30,0x0d, 0x34,0x09,0xa0,0xc0, 0x49,0xa9,0x14,0x22, 0x62,0x4f,0x49,0xea, + 0x60,0x0d,0x13,0x41, 0x8d,0x4c,0x11,0xea, 0x06,0x41,0x91,0xea, 0x0d,0x0d,0x1e,0x90, + 0x34,0x32,0x03,0x4d, 0x06,0x9a,0x00,0x68, 0x06,0x8d,0x00,0x1a, 0x32,0x19,0x34,0xd0, + 0x65,0x86,0xc4,0xdd, 0x51,0x0a,0x64,0x15, 0x58,0xc8,0x0d,0x50, 0x53,0x28,0x5a,0x1d, + 0xf1,0x60,0xfe,0x1e, 0x05,0xe9,0xc1,0xbf, 0xb0,0x61,0x65,0x99, 0x01,0xd7,0x65,0xc3, + 0x3b,0x8a,0x54,0xb4, 0x6d,0x46,0xf2,0x8a, 0xb2,0x8a,0x16,0xae, 0x16,0x08,0x4d,0x4c, + 0x76,0x6a,0xcf,0x7f, 0x08,0x3a,0x19,0x9b, 0xb8,0x8a,0x6d,0x72, 0xc3,0x38,0xd6,0x06, + 0x31,0xb6,0x12,0xc0, 0x10,0x6a,0x54,0x41, 0x58,0xc4,0x29,0xd1, 0x0e,0x92,0x78,0x65, + 0x45,0x05,0x02,0x29, 0x0f,0x87,0xc7,0xf6, 0x30,0x39,0x7a,0xb4, 0x46,0x57,0x19,0x82, + 0x75,0x68,0xaa,0xa7, 0x7a,0x57,0x6a,0xd9, 0x89,0x2a,0xbf,0xec, 0x6a,0x28,0x9b,0x68, + 0x89,0x37,0x85,0x99, 0x8d,0x23,0x8e,0x62, 0x24,0x91,0x51,0x6b, 0x8d,0x75,0x8e,0xe7, + 0xa2,0x3c,0xe7,0xe8, 0x10,0xd5,0x2c,0xc4, 0xec,0x30,0x06,0x0b, 0x00,0x1c,0x7b,0xa6, + 0x0c,0x1d,0xf9,0x02, 0x4d,0x79,0x66,0x92, 0x7b,0x1b,0xeb,0xb9, 0xb9,0x3b,0x24,0x7d, + 0xdc,0xa4,0xd6,0x99, 0x38,0x38,0xa6,0x08, 0x68,0x95,0x38,0x18, 0xef,0x44,0x51,0x4d, + 0x6e,0xfb,0x5a,0x16, 0xd6,0x76,0x09,0x39, 0x78,0xcc,0x78,0x4b, 0xc5,0x44,0xa5,0xa1, + 0xc2,0x65,0xb0,0xcc, 0x6b,0x10,0x41,0x78, 0x84,0xcc,0xd6,0x6b, 0x38,0xd8,0x99,0x75, + 0x21,0xa2,0x7b,0x88, 0xec,0x12,0x74,0x6c, 0x89,0x21,0x03,0x6c, 0x23,0x77,0xa1,0x48, + 0x20,0x44,0x40,0x3a, 0x9b,0x50,0x4a,0x09, 0x4a,0xee,0x9b,0x1d, 0x33,0x1b,0xa0,0x0a, + 0x57,0x97,0x69,0xb0, 0xd3,0x6a,0x3d,0x66, 0x6a,0x9c,0x1a,0x4b, 0xac,0xad,0xb4,0xd5, + 0xb9,0x52,0xd4,0xdd, 0x4a,0xdc,0x4c,0x61, 0x6d,0x0a,0xd2,0xd8, 0xd1,0x4a,0x25,0x30, + 0x87,0x6d,0x08,0x61, 0x20,0x01,0x36,0x59, 0xda,0xb4,0xdc,0xee, 0x29,0xad,0xc3,0xb3, + 0xca,0xc1,0xb7,0xd2, 0xed,0x74,0x99,0xd8, 0xf9,0x30,0x09,0xa6, 0xcb,0x95,0x49,0x31, + 0x5a,0xa3,0x45,0x05, 0x34,0xae,0xa5,0xb2, 0x66,0x9b,0x0a,0x92, 0xec,0x03,0x32,0x10, + 0x42,0x43,0xe2,0x42, 0x0c,0x08,0x70,0x71, 0x79,0x05,0x78,0xe6, 0x90,0xeb,0x2c,0x26, + 0xb8,0xb2,0x7e,0xba, 0x49,0x0c,0xc4,0xaa, 0x44,0x40,0xa9,0x05, 0x25,0x65,0x66,0xd9, + 0x3e,0x14,0x20,0x92, 0x18,0xc3,0x48,0x4a, 0xc2,0xdb,0x20,0xd5, 0xb6,0xad,0x2a,0x48, + 0x88,0xc1,0xb5,0x74, 0x85,0x62,0xb9,0x44, 0xb6,0xd6,0x63,0x0c, 0x89,0x08,0xaa,0x24, + 0x5e,0x9b,0xa1,0xb0, 0xb2,0x11,0x1a,0x6f, 0x44,0x24,0xaa,0xd5, 0x58,0x90,0x92,0x4e, + 0x9c,0x58,0xc1,0xd6, 0xd1,0xb1,0xb5,0x43, 0x64,0xc8,0x8c,0xa7, 0xe1,0x5d,0x7c,0x34, + 0x87,0x17,0xb9,0x23, 0x0b,0x38,0x45,0x92, 0x09,0x02,0xd0,0x43, 0xf1,0x3e,0x35,0xd0, + 0xe4,0xf8,0xc6,0x87, 0x04,0x7e,0xfa,0xd1, 0x3e,0x02,0x10,0x9f, 0x8c,0xc8,0x49,0xff, + 0x64,0x80,0x77,0x76, 0x9e,0x49,0x7b,0x94, 0x82,0xaf,0x3d,0xb2, 0xdd,0xf9,0xee,0x73, + 0x9b,0x80,0x62,0x18, 0x07,0x00,0x18,0x3a, 0x10,0xb7,0xd1,0xed, 0x9d,0xa9,0x5d,0x31, + 0x47,0x29,0x7f,0x8c, 0x21,0x05,0x99,0xb4, 0x2c,0x10,0xc1,0x8e, 0xbc,0x18,0x2d,0x66, + 0x76,0xb2,0xea,0xeb, 0x9b,0x27,0xd9,0xa0, 0x7f,0x5f,0x16,0x70, 0xef,0x8f,0x88,0x86, + 0x77,0x4d,0xe8,0xba, 0xec,0xd5,0x8e,0x7b, 0x79,0x02,0x1d,0xd2, 0x4c,0x75,0xd5,0x8f, + 0x9e,0xb5,0xa1,0x49, 0xe4,0xc9,0x59,0x3c, 0x09,0xae,0x6c,0x36, 0xc2,0x76,0x48,0x62, + 0x18,0x87,0xa2,0x48, 0x1c,0x22,0x8c,0x67, 0xb1,0x0f,0x46,0x4e, 0x19,0xc3,0x2b,0x0c, + 0x4a,0xdd,0x53,0x4c, 0x36,0x90,0x52,0x29, 0x00,0x54,0x54,0x24, 0x8a,0xc1,0x20,0x49, + 0x26,0xa6,0x71,0x35, 0x1a,0xad,0x3b,0x7d, 0x55,0x5f,0x3b,0x14, 0xc3,0x76,0x41,0x4a, + 0x70,0xa1,0x84,0xb7, 0x17,0x75,0xac,0x72, 0x9a,0x70,0x4a,0x86, 0xf3,0x20,0x69,0x03, + 0x42,0x4a,0xa2,0x0d, 0xcb,0x72,0xa2,0x51, 0x85,0x16,0xd8,0x4c, 0x4a,0x8a,0x12,0x18, + 0x80,0xa5,0x13,0x7a, 0xc1,0x0a,0x35,0xf8, 0xd8,0x24,0x92,0x67, 0x08,0x44,0x45,0x05, + 0x92,0x0a,0x42,0x18, 0xd7,0xcd,0x80,0x38, 0xd1,0xed,0x44,0x56, 0x64,0x9b,0x61,0xad, + 0x5c,0xe3,0x21,0xb6, 0x3a,0x09,0x37,0x99, 0x20,0xb3,0xb3,0x28, 0xcb,0x6c,0x1c,0x6b, + 0x8f,0x6c,0x21,0x4c, 0x6b,0x1a,0x92,0x22, 0x57,0x69,0x89,0x88, 0xe9,0x0e,0x45,0x99, + 0x6c,0x55,0xa2,0x48, 0xa2,0x0c,0x23,0x23, 0x02,0xa0,0x63,0x26, 0x46,0x48,0x65,0x33, + 0x8e,0x38,0x6e,0xe7, 0x10,0xe5,0x18,0x22, 0x22,0x30,0x63,0x03, 0xbf,0xaa,0x80,0x1c, + 0x6d,0x1e,0xa9,0x9c, 0xdb,0xe1,0xf1,0xc6, 0x8d,0x8f,0x1e,0x0f, 0x15,0x36,0xa7,0x26, + 0xa9,0x51,0x2b,0x52, 0x75,0x73,0x25,0x4e, 0x2c,0x96,0x38,0xc5, 0x14,0x59,0x61,0x89, + 0x16,0x5c,0x19,0x45, 0x90,0x5b,0xb5,0xd4, 0x23,0x4c,0x09,0xb3, 0x61,0xac,0xab,0x88, + 0x1c,0x55,0x56,0xe9, 0x82,0x08,0x8f,0x64, 0x98,0x00,0xc1,0x24, 0xcd,0xf1,0x6a,0x23, + 0x23,0x5e,0x17,0x16, 0xa4,0x50,0x59,0x02, 0x52,0xd6,0x93,0x8b, 0x5c,0xa9,0x55,0x19, + 0x2e,0xf7,0x4c,0xa5, 0xe7,0x45,0x93,0x46, 0xd2,0x9b,0xb2,0x64, 0x4e,0x6d,0xd2,0xd1, + 0x88,0x54,0x68,0x51, 0x77,0x03,0x10,0xea, 0x20,0x21,0x24,0xd4, 0x19,0x0c,0x52,0xc1, + 0x40,0xe5,0xb0,0xae, 0x11,0x27,0x0e,0x99, 0x28,0xce,0x33,0x01, 0xc7,0x55,0x61,0x86, + 0xd9,0x0c,0xc7,0x1d, 0x68,0xde,0x6b,0xaa, 0x1c,0x2a,0x2a,0xf2, 0xd5,0x43,0x96,0x66, + 0x5c,0x6a,0x2c,0x53, 0xab,0x66,0x75,0x44, 0x39,0x4b,0x89,0xc6, 0xfa,0xc8,0xdd,0xe1, + 0xb5,0x07,0x2d,0xad, 0xa0,0x51,0x51,0x06, 0x70,0xd4,0xcb,0x15, 0x39,0xc0,0xc1,0x44, + 0x19,0xb6,0x1c,0xf3, 0x99,0xaa,0x50,0xe1, 0x98,0x6f,0x9e,0x32, 0x1a,0x9b,0x1c,0xe3, + 0x81,0x24,0xe7,0x51, 0x42,0x6e,0x65,0x6b, 0x5b,0x9d,0x6e,0x71, 0x9a,0xaf,0x02,0x0a, + 0x91,0x64,0xe8,0xcc, 0xde,0x80,0xa5,0x54, 0x3f,0xad,0x87,0x68, 0xc0,0x19,0xa3,0xb1, + 0xa3,0x54,0x39,0x86, 0xe2,0xc6,0xad,0x03, 0x45,0x11,0xbb,0xe6, 0xd6,0x80,0x2f,0x36, + 0x56,0x28,0x0d,0xb1, 0x42,0xa0,0xb2,0x46, 0xcc,0xe6,0x4e,0x76, 0xea,0xde,0xba,0x0e, + 0xd6,0xb1,0x11,0x5b, 0x61,0x04,0x94,0x57, 0x77,0xb3,0xa6,0xd3, 0x28,0xe6,0x0b,0x80, + 0x4d,0x82,0x34,0x33, 0x08,0xc4,0x1d,0x14, 0x32,0xb6,0x65,0x31, 0x65,0x49,0x55,0x81, + 0xd5,0xdd,0x08,0x21, 0x50,0xaa,0xd3,0x0c, 0x53,0x7b,0x64,0xd1, 0xa2,0xa1,0x09,0x6e, + 0xcb,0x66,0x46,0xe6, 0x3a,0xdd,0xd5,0x66, 0xa5,0xa4,0xa0,0x80, 0x21,0x26,0x0b,0x99, + 0x59,0x34,0x90,0xd4, 0xe7,0x45,0xdd,0xb6, 0x88,0xcd,0xb7,0x2b, 0x52,0x12,0x51,0x5b, + 0x69,0xcf,0x19,0xcd, 0xdf,0x3c,0x5d,0xd8, 0xac,0x25,0x0e,0x1e, 0x78,0xe4,0x6b,0x58, + 0xb0,0xe6,0xf1,0xb3, 0x68,0xe0,0x30,0xa1, 0x8a,0x10,0xcf,0x84, 0x18,0x49,0x09,0x34, + 0xa2,0x9b,0xaf,0x5b, 0x59,0x62,0xee,0xf7, 0x3c,0xfd,0xed,0x2e, 0xa9,0x05,0x92,0x31, + 0x01,0x18,0x23,0x3c, 0x76,0x5d,0x45,0xd9, 0xb7,0x12,0xac,0x6b, 0x39,0x3a,0x1e,0x6e, + 0xd4,0xc5,0xbb,0x31, 0xd7,0x5a,0xd1,0xdb, 0xd3,0xe9,0xf7,0xd1, 0x49,0xfc,0x17,0xd7, + 0xd7,0x79,0xbd,0x7f, 0x03,0x99,0xf3,0xf9, 0x3e,0x5e,0x77,0xe9, 0xf4,0xf9,0x73,0x0a, + 0x0f,0x1b,0xa3,0xbb, 0x63,0x04,0x93,0x93, 0x10,0xc3,0x41,0xd0, 0xf4,0x77,0xb8,0x6e, + 0x6e,0xd3,0x10,0x63, 0x2f,0x69,0xc4,0xac, 0x38,0x16,0x71,0x93, 0x8b,0xab,0xe8,0xe3, + 0xe8,0xe6,0x71,0xfb, 0x2c,0x8c,0x89,0xa4, 0x15,0x55,0x1f,0x32, 0x1b,0x43,0xe2,0xd4, + 0xfb,0x15,0xf9,0xb6, 0xbb,0x45,0x22,0x2f, 0x48,0xa6,0x35,0x04, 0x76,0xe8,0xda,0x16, + 0x6e,0xad,0x0b,0x2b, 0xc0,0x66,0x73,0x57, 0x28,0xf1,0x38,0x74, 0x4e,0x5a,0x05,0xd8, + 0x2c,0x41,0x82,0xc5, 0x8b,0x09,0xd0,0xd7, 0xd8,0x0c,0xe0,0x86, 0x03,0x42,0x02,0x00, + 0x2f,0x8b,0xd0,0x50, 0xd9,0x1e,0xd9,0x99, 0x00,0xe5,0xa7,0x96, 0xe2,0x36,0xd5,0xdd, + 0xbc,0x8b,0xf9,0x3d, 0xdf,0x66,0x43,0xb0, 0x40,0xe9,0x14,0x47, 0x43,0xe3,0x2f,0x14, + 0x8c,0x66,0x87,0x44, 0xed,0xea,0x90,0x1e, 0xee,0x7e,0x7e,0xed, 0x7b,0x91,0x30,0x37, + 0x23,0xd1,0x71,0xe3, 0x75,0x75,0x79,0x82, 0x09,0xed,0x5d,0x39, 0x27,0x76,0xef,0x3f, + 0xaf,0x00,0x0e,0x52, 0x3c,0xee,0xee,0x8f, 0xe8,0x4d,0x71,0x44, 0xba,0x31,0xc4,0x20, + 0x05,0xb7,0x53,0x4c, 0xa5,0xe1,0x4e,0x86, 0x4d,0x5b,0x17,0xf4, 0x0c,0x3f,0x95,0x55, + 0xc2,0x5f,0x9f,0x3d, 0x67,0x06,0xa8,0x36, 0x8b,0x1c,0xb0,0xdc, 0x9f,0x11,0x75,0xcf, + 0x99,0xb6,0xbc,0x47, 0x92,0x43,0x05,0xc9, 0x3b,0x69,0xcf,0x7a, 0xca,0xe5,0xc4,0x88, + 0x14,0x21,0xcf,0x16, 0xf5,0xf7,0xcd,0xe4, 0xbb,0xa4,0x15,0x6b, 0xdf,0x76,0x3c,0x39, + 0x77,0xe6,0x84,0x96, 0xd6,0xab,0x52,0x2c, 0x09,0xef,0x2c,0x2a, 0x7c,0x36,0xb8,0xf4, + 0x93,0x18,0xdb,0x2a, 0x08,0x91,0x60,0xbc, 0x52,0xfd,0x1f,0xc5, 0x0f,0xe9,0x42,0x2d, + 0xc2,0xf8,0x6a,0x42, 0x07,0xfc,0x42,0x00, 0x04,0xd1,0xf9,0xfc, 0x3d,0x16,0x4a,0x46, + 0xcd,0x36,0xad,0x1f, 0x1a,0xae,0xbe,0x1b, 0x99,0xbb,0x8f,0x05, 0x4c,0x3c,0x30,0x22, + 0x9e,0x44,0xa4,0x2b, 0xe2,0x75,0x7e,0xcd, 0xfc,0xcc,0x9c,0xce, 0x58,0x70,0xf6,0x53, + 0xc4,0xe9,0x5e,0xb4, 0xe9,0x35,0x47,0x33, 0xbd,0x93,0xb6,0xb4, 0xf5,0x18,0xbd,0x0d, + 0x44,0x34,0x2f,0x03, 0x6e,0xe7,0x93,0x48, 0x4d,0x8d,0xca,0x10, 0x0f,0x13,0xee,0xf5, + 0xcd,0xcd,0xa1,0xbb, 0xb6,0x7c,0x79,0x21, 0x60,0xe9,0x6d,0x36, 0x42,0x19,0xb9,0xd7, + 0x47,0x60,0x9e,0x14, 0x3c,0x41,0xbe,0x76, 0xba,0x23,0x9a,0x96, 0x9c,0x0f,0xbf,0x25, + 0x07,0x96,0xd8,0xba, 0x3b,0x31,0xbb,0xa8, 0x3d,0x7d,0x33,0xaa, 0xf3,0xd7,0xa7,0x22, + 0x24,0xcf,0x0a,0xbd, 0x03,0x46,0x35,0x0d, 0x03,0xe2,0xfc,0x78, 0x3b,0xeb,0xe8,0x72, + 0x77,0x99,0x1a,0xf5, 0xb7,0x1f,0x13,0xf0, 0x67,0xaa,0x7d,0xf9, 0x4d,0x31,0x76,0x98, + 0xc4,0x15,0xaa,0x20, 0xd5,0x54,0xda,0xc4, 0x52,0x4a,0xeb,0x59, 0x4b,0x6a,0x67,0x81, + 0xbe,0x84,0x47,0xa3, 0x83,0xa6,0x87,0x27, 0x66,0xad,0x67,0x20, 0x60,0x68,0x93,0x70, + 0xb8,0x96,0x05,0x91, 0x06,0xc3,0x2b,0x4e, 0x83,0x23,0x57,0x18, 0x36,0xd8,0x64,0x82, + 0x19,0x9d,0x5d,0xca, 0xa5,0xe8,0x2d,0x9b, 0x30,0x31,0xe3,0x85, 0x03,0xd0,0xe9,0xe6, + 0x43,0x8a,0xfa,0x87, 0x0e,0x3e,0x9d,0xde, 0x5a,0xd1,0x0a,0xf1, 0xd2,0x4a,0x88,0x49, + 0x2c,0x3b,0x84,0xd1, 0x15,0x12,0x21,0x9b, 0x32,0x5d,0x24,0xf8, 0x3a,0xcc,0x31,0x22, + 0x81,0x22,0xdd,0xa6, 0x7c,0x59,0xbd,0x4c, 0xbe,0x85,0xcd,0xef, 0xd3,0xd3,0x9c,0xdf, + 0x56,0xb3,0xc2,0x79, 0xee,0xed,0xa3,0xe1, 0x38,0xc6,0x8d,0x6e, 0x78,0xc9,0x89,0xe2, + 0xcb,0x1d,0x8e,0x24, 0x24,0x69,0x89,0xcb, 0x16,0x46,0x06,0x90, 0xe4,0x40,0x22,0x08, + 0xab,0x8b,0x19,0x95, 0x08,0x27,0x85,0x11, 0x63,0x48,0x0c,0xd1, 0x56,0x09,0x22,0x03, + 0xac,0xa9,0x92,0xe8, 0x98,0xa6,0x26,0xcb, 0xba,0xa8,0xe3,0x21, 0xa1,0x1b,0x02,0xc1, + 0xe6,0x46,0x49,0x8d, 0xa2,0x7d,0x0b,0x30, 0xf1,0xf5,0x92,0xca, 0x08,0x80,0x88,0xd2, + 0x61,0x91,0xb3,0x86, 0x13,0x97,0x4d,0xab, 0x64,0x26,0x41,0x14, 0x6d,0x18,0xeb,0xa5, + 0xd3,0x17,0xb4,0x86, 0x5a,0xc5,0x18,0x34, 0x41,0xa4,0x34,0x55, 0x59,0xd7,0x0e,0xb3, + 0xcd,0x75,0x53,0x2b, 0x5c,0x4b,0x5e,0x68, 0x59,0xcd,0x1c,0xd1, 0xee,0xc0,0x85,0x91, + 0xd8,0x24,0x77,0x1b, 0xb5,0xcc,0xe7,0x5b, 0xde,0x34,0x99,0x87, 0x98,0x0b,0x93,0x33, + 0x98,0xb0,0x41,0xd2, 0xc0,0x2b,0xae,0x2a, 0x0e,0xde,0xb0,0xed, 0x9a,0x9c,0x56,0xa0, + 0x69,0x30,0xeb,0x9e, 0x9b,0x2e,0xc1,0x14, 0x98,0xd6,0x6d,0x12, 0x46,0x04,0x4a,0x87, + 0x77,0x96,0xaa,0x57, 0x1d,0x6b,0xba,0xee, 0x4e,0xec,0x0a,0x99, 0xab,0x0a,0xf5,0xc7, + 0x57,0x0e,0xf7,0xb1, 0x1a,0xde,0x95,0xe3, 0x28,0x35,0xae,0xf5, 0x81,0x34,0x00,0x94, + 0x36,0x97,0x01,0x25, 0x16,0x1f,0x22,0xa1, 0x34,0x43,0x62,0xc8, 0x4c,0x2a,0x44,0x54, + 0xb5,0x64,0x6e,0xf1, 0x8e,0x9a,0x00,0x91, 0x43,0xd6,0x23,0xbc, 0x47,0x47,0x39,0x13, + 0x2f,0xcb,0x17,0x0d, 0xde,0x3f,0x1c,0x49, 0xec,0x30,0xee,0xc6, 0xee,0xf4,0x75,0xad, + 0x36,0x78,0x9a,0x1a, 0x6c,0x8c,0x2d,0x81, 0xb0,0x43,0x0a,0x3e, 0xe4,0x24,0x10,0x5f, + 0x58,0xfc,0x2e,0xfa, 0xef,0x35,0x06,0xa6, 0xf4,0x56,0x95,0xf3, 0xad,0x79,0x0c,0xde, + 0xd1,0xd5,0xb8,0xb9, 0x2f,0x93,0xa9,0x90, 0xb5,0xb7,0xb3,0xc1, 0xd2,0x4f,0x63,0xa1, + 0xa4,0xb1,0xa2,0x60, 0x21,0x0b,0x96,0xe6, 0x2e,0x68,0x3d,0x1a, 0x8f,0x47,0xa8,0x01, + 0x35,0xa2,0xaf,0x64, 0x6f,0x35,0xb1,0x34, 0xb0,0xee,0x31,0xe0, 0xa6,0x47,0x76,0x0a, + 0xd5,0xee,0xc4,0x48, 0x5b,0x51,0x71,0xe1, 0xe6,0xef,0x02,0xa5, 0x57,0x63,0x60,0x8d, + 0xa0,0x89,0xb0,0x6c, 0x77,0x3a,0xe0,0x35, 0x0e,0x02,0x49,0xc2, 0xf8,0xb8,0xa2,0x8b, + 0x56,0xc4,0x8e,0xb2, 0x06,0x6b,0x1b,0x95, 0x19,0x44,0x6d,0xde, 0xe8,0xbb,0xb4,0x39, + 0xce,0x17,0x14,0x34, 0x86,0x39,0x0a,0x6e, 0x97,0x08,0x63,0x31, 0x70,0x6b,0x2d,0x46, + 0xd4,0x6a,0x1a,0x4b, 0xc2,0x69,0x32,0xd6, 0x5e,0xfc,0x5d,0x57, 0x58,0x5a,0xaa,0xc7, + 0xb5,0x31,0xcd,0x75, 0x4e,0x98,0x6d,0x36, 0xc1,0x63,0xe5,0x99, 0xc2,0x4d,0x0e,0x22, + 0xc2,0x2c,0x7c,0x53, 0xcb,0xbe,0x76,0xe5, 0xe7,0x8e,0x55,0x23, 0xcd,0x95,0x8f,0x34, + 0xac,0x04,0xe2,0x95, 0x5d,0x88,0x51,0x19, 0x96,0x53,0x3c,0x79, 0x63,0xad,0xb0,0x57, + 0x7a,0x2b,0x01,0x67, 0x19,0xb6,0x29,0xbd, 0x83,0xba,0xca,0xd0, 0x08,0x1a,0xa2,0x90, + 0xed,0xf6,0xf1,0x8e, 0xad,0x8e,0x76,0xb7, 0x97,0x35,0xca,0xb3, 0x46,0xb3,0xb4,0xe8, + 0xe1,0x46,0xf8,0x42, 0xef,0x59,0x94,0xa6, 0x06,0xf0,0xad,0x91, 0xd0,0x3d,0x69,0x12, + 0x16,0xc6,0x06,0x1e, 0x82,0xab,0xac,0x20, 0x68,0xb4,0x47,0x2e, 0xf3,0x68,0x20,0x86, + 0xa9,0xcf,0x5a,0xd6, 0xb7,0x5e,0x3c,0x65, 0x79,0xb5,0x41,0xe1, 0x38,0x6b,0x96,0x10, + 0x0e,0xbf,0x06,0x8e, 0x5e,0x8e,0xa2,0x6d, 0x1c,0x4a,0xc1,0x8a, 0x11,0x58,0x83,0x1c, + 0x59,0xfa,0xa2,0xfe, 0x1d,0xe4,0xf0,0x96, 0xf0,0x8c,0xec,0x9b, 0xd4,0xf7,0xbd,0xe7, + 0x68,0xac,0x9b,0x2c, 0x90,0xa1,0xf2,0x4b, 0x5e,0x13,0x42,0x91, 0x4e,0xc8,0x3a,0x0e, + 0x5c,0x16,0x27,0xa4, 0xf7,0x35,0x98,0x62, 0x3a,0x2f,0xc1,0xfd, 0x2f,0x73,0x8e,0x36, + 0x45,0x89,0xfc,0x2c, 0x2a,0xa0,0xa2,0x0b, 0x24,0x13,0x2b,0x2b, 0x2a,0xd7,0x17,0x7e, + 0xc2,0x98,0xd9,0x2b, 0x16,0x45,0x58,0x41, 0xc5,0x8a,0xd0,0x37, 0xa2,0x36,0xb4,0xde, + 0x5e,0x60,0x79,0xd8, 0x6f,0x1f,0x23,0x99, 0x9c,0xeb,0x05,0x27, 0xe2,0xea,0x49,0xc7, + 0xae,0xc9,0x26,0x93, 0x49,0xd8,0x62,0x88, 0xf7,0xf8,0xf4,0x99, 0xf1,0xac,0x72,0xa6, + 0x1d,0x43,0x22,0xdd, 0xbf,0x61,0xd9,0x78, 0x3f,0x22,0xbe,0x2f, 0x2a,0x80,0x31,0xc6, + 0x9f,0xf0,0x26,0xb9, 0xf0,0x08,0xdb,0x06, 0x3c,0x11,0x6f,0x12, 0xfb,0xe7,0xe9,0x2c, + 0xc3,0xc7,0x39,0x1f, 0x0f,0x44,0x0e,0x69, 0x9b,0x5f,0x6c,0xef, 0x6e,0x92,0x0f,0x10, + 0xec,0x40,0x20,0xfb, 0x74,0xbc,0x64,0x8b, 0x00,0x48,0xf6,0x6d, 0x60,0x54,0x18,0xf3, + 0xfa,0xdb,0xfb,0x2d, 0x96,0x33,0xed,0x10, 0xb3,0xd9,0x6b,0x39, 0x0a,0x5f,0x67,0xcb, + 0xb5,0x21,0x82,0x69, 0xfb,0x17,0x5e,0xaf, 0x91,0x0f,0x1c,0x84, 0x39,0x92,0x0e,0xdc, + 0xf2,0x3b,0x24,0x67, 0x03,0x83,0xe0,0xbd, 0xfc,0xa4,0x3b,0xcb, 0xfd,0x59,0xc6,0xc8, + 0x21,0xa9,0x5c,0x44, 0xa1,0x8f,0x52,0x92, 0x22,0x18,0x28,0xb5, 0x57,0xc9,0x90,0x60, + 0xdb,0xeb,0x6a,0x19, 0xae,0x10,0x44,0x66, 0xce,0x89,0x27,0xc0, 0x9d,0xad,0x0f,0x8f, + 0xa9,0xb1,0x9c,0xfa, 0x82,0x21,0x9d,0x8e, 0x76,0xf8,0x6f,0x53, 0x39,0xe1,0xba,0x08, + 0x00,0x08,0x8c,0x04, 0x81,0x9a,0x28,0x03, 0x14,0x01,0x14,0x22, 0x10,0x0e,0xc8,0x48, + 0x31,0x00,0x6c,0x05, 0x06,0x7d,0xc6,0xb6, 0xcc,0xeb,0x58,0xf1, 0x78,0xf9,0x39,0xc6, + 0xa8,0x28,0x82,0xc4, 0x41,0x15,0x82,0xf6, 0x77,0x1c,0x62,0x85, 0x84,0x51,0x46,0xaa, + 0x88,0xb1,0x63,0xc5, 0xa8,0x8f,0x0f,0x0d, 0xe0,0x0a,0x1a,0x45, 0x54,0x15,0x44,0x51, + 0xdd,0x3d,0xc1,0x1d, 0x4e,0x72,0xec,0x6d, 0x35,0x68,0xc5,0x11, 0x55,0x51,0x62,0xa6, + 0x5b,0x15,0xc6,0x49, 0x51,0x51,0x88,0x2a, 0xc0,0x50,0x60,0xac, 0x11,0x8a,0xb9,0x72, + 0xdc,0xea,0x48,0x75, 0xfc,0xff,0x00,0xcf, 0x94,0xcf,0xf1,0x13, 0xe1,0x6a,0x5c,0x22, + 0x7b,0x0d,0x33,0x42, 0x8a,0x79,0x14,0x56, 0x06,0xa2,0xb9,0x9b, 0x5d,0x1b,0x17,0x1d, + 0xb2,0x89,0xad,0xaa, 0x37,0x37,0x31,0xb7, 0xd7,0xb3,0x04,0x82, 0x5c,0xae,0xf6,0xd4, + 0x8e,0x99,0x9b,0xca, 0x71,0xdf,0xf5,0xa4, 0xec,0xde,0x5d,0x91, 0x34,0xc2,0x0d,0x22, + 0x3d,0xfc,0x76,0xad, 0xd8,0x90,0x99,0xe3, 0x39,0x01,0xf3,0xb3, 0x0c,0xff,0x9e,0xb5, + 0x35,0xaf,0x67,0x99, 0xb3,0x97,0x83,0x60, 0xa9,0x59,0x58,0xaf, 0xb6,0xd8,0x62,0xb2, + 0xc0,0xcc,0x66,0xa1, 0x27,0x01,0xc4,0xcd, 0x32,0x18,0x72,0x28, 0xe1,0xf4,0x5a,0xa6, + 0xae,0x19,0x38,0x28, 0x2e,0x28,0xbb,0xfa, 0x95,0x15,0x70,0x98, 0x51,0x45,0x45,0x45, + 0x10,0x48,0xca,0x4a, 0x88,0xab,0x5b,0x4d, 0xd6,0xd2,0xdc,0xa7, 0x95,0xcb,0xe6,0xc2, + 0x19,0x50,0x85,0xce, 0xe7,0x77,0x5c,0xbd, 0xa1,0xf8,0xc1,0x18, 0xa3,0x18,0x88,0xb0, + 0x5e,0x45,0x49,0x43, 0x05,0x54,0x54,0x48, 0xac,0x62,0xc1,0x36, 0xc8,0x54,0x41,0x80, + 0x88,0xc5,0x59,0x11, 0x82,0x20,0x8a,0x88, 0x83,0x10,0x44,0x62, 0x08,0xa2,0xc4,0x15, + 0x8a,0x46,0x2a,0x08, 0xc1,0x54,0x58,0xa0, 0x8a,0xb1,0x45,0xd0, 0xe4,0xf6,0x7f,0x77, + 0x33,0x9b,0xc8,0xe7, 0xf8,0xba,0x5f,0xa1, 0x3e,0x1d,0x27,0x58, 0x66,0xde,0x69,0xed, + 0xb0,0xd9,0x5c,0x2f, 0x77,0x05,0xb3,0xea, 0x95,0xb5,0x6d,0xec, 0x61,0x2c,0x14,0x8a, + 0x45,0x87,0xd0,0xbf, 0x31,0x93,0x42,0xa6, 0xa3,0xf7,0x7d,0xa9, 0x80,0xa9,0xd5,0xf8, + 0x33,0xe9,0xc4,0xde, 0x4d,0xdb,0x14,0xdb, 0x33,0x9f,0x1d,0xf5, 0x34,0xc1,0x74,0xb6, + 0x8e,0x9f,0x89,0xa3, 0x46,0x27,0xcb,0x2f, 0x0f,0xc6,0xf8,0xfe, 0xeb,0x24,0xe0,0x45, + 0x17,0x97,0xb8,0x9c, 0x7d,0x2d,0x39,0x49, 0xbe,0x29,0xec,0x4c, 0xf4,0xba,0x07,0xd2, + 0xca,0x8f,0xcc,0xcc, 0x9a,0xf9,0x3b,0x33, 0xbf,0x8c,0xca,0xd6, 0x08,0x19,0x29,0x9b, + 0x91,0x45,0xe0,0xe3, 0x95,0x88,0xb6,0x2b, 0xde,0x5b,0x8f,0xbe, 0xc1,0xa7,0xec,0x30, + 0x49,0xc2,0x49,0x03, 0xab,0xe6,0x2a,0x2a, 0x95,0xa2,0xad,0xa5, 0x11,0x16,0x0a,0x2b, + 0x20,0xc5,0x44,0x56, 0x28,0xaa,0x2b,0x15, 0x19,0x11,0x11,0x51, 0x8a,0x8a,0x88,0xc5, + 0x58,0xc1,0x56,0x28, 0x28,0xb1,0x45,0x8b, 0x14,0x28,0x7a,0xd9, 0xdd,0x3e,0x57,0x96, + 0x18,0xb3,0xde,0x34, 0xf7,0x54,0x9a,0x6b, 0x25,0x43,0x06,0x71, 0xe5,0xf9,0xbb,0xe7, + 0x7c,0x1b,0x1f,0x59, 0x4c,0x76,0x75,0xb0, 0xd2,0x4d,0xd2,0xd8, 0x95,0x6d,0xfa,0x96, + 0x60,0xc1,0x8b,0xa4, 0xaa,0x95,0xf7,0xcc, 0x83,0x79,0xd6,0xa1, 0x9e,0xdd,0xa8,0xe5, + 0x8c,0x39,0x15,0x55, 0x2b,0x3c,0x63,0xc3, 0xee,0xfe,0x47,0x83, 0x93,0x95,0xe5,0x2a, + 0x28,0x0f,0xf8,0x5f, 0xe5,0xf4,0xcc,0x6d, 0xd1,0xce,0xa9,0x6c, 0x9b,0x93,0x22,0xfb, + 0xbf,0xee,0x31,0x54, 0x58,0xaa,0xa8,0x8a, 0xaa,0x28,0x31,0x11, 0x51,0x80,0xc5,0x8a, + 0xc5,0x45,0x11,0x19, 0x05,0x45,0x44,0x41, 0x62,0x8a,0xa2,0x25, 0x81,0xee,0xa7,0xfe, + 0x86,0x5a,0x56,0x30, 0x58,0xa2,0xaa,0x83, 0x15,0x01,0x15,0x15, 0x04,0x05,0x44,0x91, + 0x40,0x50,0xb3,0xcb, 0x9a,0x1e,0xc7,0xb2, 0x54,0xc4,0xf4,0x43, 0x7e,0xba,0x7a,0xd9, + 0x37,0xb7,0x7e,0x56, 0xf0,0xb6,0xdb,0xa1, 0xde,0x8d,0x61,0x83, 0x32,0x94,0xc6,0xa0, + 0x27,0xd0,0x5f,0x5b, 0x1c,0x2a,0x28,0x31, 0xdb,0x55,0x9d,0xfd, 0x54,0xd6,0xa8,0x6a, + 0xb4,0xd3,0x2b,0x3c, 0x1a,0x84,0x0b,0x44, 0xec,0x12,0x90,0x60, 0x9f,0x7c,0xd0,0xf6, + 0x1f,0x2b,0x86,0x85, 0xa4,0x7d,0x97,0xfe, 0x7e,0xda,0xd8,0x9c, 0xdb,0x8f,0xae,0x86, + 0xd0,0xe1,0x9e,0xa3, 0x57,0xeb,0x8e,0x26, 0xb4,0x68,0x11,0x40, 0xc6,0x54,0x14,0x35, + 0x6f,0x86,0x66,0xa8, 0x33,0x73,0x7b,0x9c, 0xe7,0x10,0x4d,0x77, 0x91,0x4d,0xeb,0xcd, + 0x2d,0xad,0x13,0x64, 0x35,0x72,0x42,0x24, 0x86,0x72,0x02,0x05, 0x91,0x0a,0xa8,0x8e, + 0x26,0x01,0xef,0x49, 0xf3,0x58,0x36,0x4c, 0x4f,0x82,0xfb,0x9d, 0xfb,0x75,0xc7,0x17, + 0x8c,0xdb,0x99,0x7b, 0x3e,0xd3,0xa7,0xd9, 0xc5,0x07,0x76,0x7b, 0xd7,0x99,0xa6,0x7a, + 0x93,0x12,0x06,0xd9, 0xdb,0xab,0xac,0xd6, 0x63,0x22,0xc9,0xee, 0x59,0xa8,0x4d,0x0c, + 0x41,0x07,0x79,0x59, 0x02,0x86,0x61,0xcb, 0x16,0x55,0x4e,0x49, 0x2a,0xaf,0xc2,0x9c, + 0x6f,0x22,0x26,0x78, 0xef,0x18,0x99,0x0b, 0x9f,0x8d,0xc8,0xe6, 0x26,0x7b,0x15,0x69, + 0x78,0x35,0x9b,0xbb, 0x18,0x94,0x35,0x95, 0x9d,0x8f,0x5e,0xba, 0xbb,0x5a,0xea,0xd7, + 0x59,0x81,0x3b,0x5d, 0xfb,0x50,0x67,0x01, 0x3c,0xdf,0x76,0x9a, 0x4d,0xa3,0xea,0x8f, + 0x17,0xb7,0x2b,0x4f, 0x61,0xa4,0x45,0x90, 0x21,0x53,0x1a,0xfa, 0xb1,0xa1,0xb4,0xcf, + 0x16,0x7b,0x48,0x54, 0x9b,0xf1,0x64,0xec, 0x4f,0x2f,0x22,0xfa, 0x6a,0x4e,0xcf,0x98, + 0xc0,0xa7,0xad,0xab, 0x9e,0x99,0x9e,0x69, 0xc3,0x88,0xf5,0xf0, 0xf0,0x31,0x11,0x57, + 0x9f,0x4b,0x91,0x1e, 0xb5,0x93,0x15,0x36, 0xd1,0x59,0x12,0xd9, 0xe8,0x86,0x75,0x67, + 0xb6,0xf0,0xc5,0x04, 0x51,0x0a,0x9a,0x64, 0x06,0x59,0xc9,0xf2, 0x2d,0x94,0xc2,0x23, + 0x1b,0x1d,0x4e,0xab, 0x39,0x39,0x1c,0x24, 0x74,0xb0,0x12,0x20, 0x42,0xb8,0x57,0xa0, + 0x00,0xb2,0x42,0x8f, 0xb0,0x44,0x0e,0x65, 0x52,0xc6,0x43,0x4b, 0x9b,0x62,0x1f,0x22, + 0x6a,0x76,0x9d,0x73, 0xe0,0xec,0x37,0x1d, 0x78,0x2d,0xe4,0x08, 0x2d,0x04,0x40,0xf4, + 0x68,0x9a,0x4d,0x30, 0x34,0x8b,0x34,0x26, 0x7b,0x94,0x35,0xad, 0x63,0x72,0x98,0x57, + 0x1a,0x24,0x80,0x43, 0x48,0x84,0x50,0x05, 0x03,0xc7,0x39,0xdf, 0x90,0x99,0x65,0x01, + 0xaf,0x64,0xec,0xf2, 0xd1,0xc6,0xc6,0x25, 0xd5,0xba,0xf9,0xd9, 0xfc,0x29,0x6d,0x16, + 0x41,0x88,0xab,0x10, 0x54,0x05,0x01,0x51, 0x62,0xaa,0x82,0x46, 0x50,0x1a,0x9c,0xae, + 0x37,0x07,0x9d,0xa5, 0xe7,0xe2,0x0d,0x73, 0x94,0x80,0x66,0x0c, 0x10,0xd4,0x41,0x46, + 0x20,0x96,0x25,0x8b, 0x71,0x7a,0x57,0x0c, 0x1a,0x1e,0xb2,0x7d, 0xa2,0x38,0xab,0xc2, + 0xb2,0xa5,0xac,0x29, 0xc2,0x8f,0x3b,0xda, 0xf6,0x0e,0x0b,0x86, 0xd2,0x8f,0x7b,0x75, + 0xce,0x1d,0x6f,0x37, 0x38,0xdd,0x1c,0xb5, 0xd7,0xcd,0xfe,0x3d, 0x6d,0x58,0xb0,0x44, + 0x20,0x7c,0xe3,0xc7, 0xb9,0xc9,0xe7,0xe9, 0x7b,0xdf,0x3e,0xba, 0x0e,0x96,0x0a,0x0a, + 0xc8,0xfb,0xee,0x6c, 0xc4,0xe3,0x2c,0xb9, 0x9e,0xaa,0xde,0x2e, 0xa7,0x10,0xf4,0x94, + 0xd4,0x6b,0x2b,0xc8, 0x45,0x6e,0xa7,0x2c, 0xaf,0x9d,0x27,0x98, 0xb5,0x5d,0x36,0x52, + 0x7b,0x57,0x0f,0x87, 0xc7,0x2c,0x5b,0x9f, 0x67,0xc5,0xeb,0x5e, 0xea,0xf1,0x16,0xc1, + 0xcd,0x55,0xed,0x74, 0x01,0x1d,0x47,0x7a, 0xee,0x3b,0x56,0xf2, 0xcb,0x14,0x15,0x8d, + 0xd8,0x5b,0x67,0x38, 0xa3,0xbe,0x53,0xba, 0x4e,0xd0,0x25,0xa3, 0x84,0x67,0x7c,0xfe, + 0xc6,0x25,0x82,0x41, 0xa0,0xb9,0x16,0xbc, 0x30,0x05,0xf0,0x9e, 0x24,0x13,0x49,0x2b, + 0x82,0x5e,0xa9,0xa7, 0x22,0xb3,0x12,0xb3, 0x32,0x9e,0xda,0x14, 0x45,0xd0,0xe7,0xbf, + 0xb2,0x71,0xaa,0x6b, 0x1c,0xce,0x5e,0x72, 0xf9,0x6f,0xac,0x35, 0xd3,0x31,0x27,0x74, + 0xa9,0x34,0x82,0xef, 0x0b,0x21,0x89,0xcf, 0xae,0xf1,0xec,0xde, 0x29,0xc0,0x30,0xf2, + 0x30,0xbe,0x68,0x5d, 0x59,0x11,0x28,0x91, 0xeb,0x33,0x9e,0xa3, 0xea,0x3d,0x03,0x22, + 0x15,0xdc,0x46,0x80, 0xbc,0xf1,0x1c,0x71, 0x9e,0x59,0x16,0x6a, 0x11,0xba,0xa9,0x80, + 0x70,0x4b,0x66,0x44, 0x0d,0xfa,0xe4,0x3d, 0xee,0x25,0x14,0xa0, 0xcb,0x7c,0x86,0xec, + 0xe9,0x48,0x17,0x90, 0x9b,0x8d,0xd6,0xd7, 0x68,0xb6,0xe8,0x79, 0x54,0xec,0x78,0x6f, + 0xb5,0xcb,0x46,0x66, 0xed,0x2d,0xc5,0xe1, 0x01,0x7e,0x11,0x90, 0xd7,0x3e,0xac,0x9a, + 0x4d,0x08,0xfa,0xb3, 0x21,0x73,0x32,0x36, 0xc4,0x43,0x59,0x51, 0x98,0xca,0x31,0x15, + 0x68,0xd6,0xca,0x95, 0x65,0x4f,0x33,0x5d, 0x41,0xef,0x79,0x77, 0xd7,0x2b,0x0b,0xad, + 0x5c,0x82,0x60,0x79, 0x13,0x31,0x07,0x18, 0x85,0x28,0xd0,0x44, 0xea,0x7b,0x7e,0x6c, + 0xfa,0xe8,0xdf,0x91, 0x36,0x8f,0x8e,0x67, 0x48,0x8d,0x9c,0x40, 0xd9,0x2d,0x93,0x98, + 0x91,0x14,0x2c,0x6f, 0x67,0xb9,0xbc,0x90, 0x07,0x52,0x9a,0xa4, 0x36,0x08,0xa4,0x32, + 0x30,0xa0,0x3d,0x29, 0xa3,0x02,0x35,0xa5, 0x1a,0xa4,0x57,0x0a, 0x8e,0x40,0x24,0xd4, + 0xa5,0x27,0xb1,0xb5, 0xa4,0xe8,0x1a,0x4b, 0x8a,0xf2,0x13,0x83, 0x7c,0x64,0x69,0x2d, + 0xc5,0x0d,0x18,0xac, 0xf4,0xd6,0x88,0x17, 0x44,0x13,0x44,0xb4, 0x44,0x14,0xf4,0x27, + 0x99,0x1e,0x70,0x90, 0x81,0x04,0x68,0xa6, 0xe8,0xa1,0x42,0xc7, 0x17,0x76,0x8b,0x2c, + 0x3d,0x27,0x38,0x8c, 0xf9,0x2d,0x7a,0xe3, 0x3d,0xf2,0xd2,0x22, 0x40,0xf9,0x34,0x5d, + 0x79,0x20,0xab,0xd7, 0xcd,0x0f,0x2c,0x6c, 0x59,0x89,0x05,0x12, 0x24,0x8a,0xe5,0xaf, + 0x42,0xdf,0x2f,0x07, 0x47,0x7a,0x02,0x1b, 0x06,0x80,0xd2,0x8e, 0x03,0xed,0x4b,0x22, + 0x08,0x42,0x5c,0xb9, 0x2d,0x20,0x7d,0x87, 0xcf,0xd7,0xc0,0xd8, 0x41,0xbd,0xa5,0xac, + 0x4b,0x93,0x58,0xbe, 0x9a,0x63,0x35,0x22, 0xb2,0x42,0x64,0x61, 0xa1,0x14,0x81,0x20, + 0x12,0x98,0x42,0x11, 0x32,0x21,0xea,0xe1, 0xe2,0x2f,0xad,0x45, 0x44,0x22,0xe4,0xce, + 0x87,0x7c,0x84,0x9c, 0x08,0x2e,0x89,0x6d, 0xf6,0xb3,0x84,0x75, 0x6d,0x4d,0x5e,0x87, + 0x57,0xe8,0x49,0x84, 0x79,0x9a,0x1d,0xd1, 0x0c,0xe1,0x74,0x51, 0xae,0xcf,0x1c,0xb8, + 0x50,0x1d,0x35,0x0b, 0x9e,0x68,0x48,0xb8, 0xe7,0x66,0x66,0xde, 0xce,0x79,0xe4,0xae, + 0x62,0xad,0x35,0x11, 0x2d,0x90,0x41,0x3d, 0xa4,0xc0,0x24,0x82, 0x11,0x08,0x93,0xb4, + 0x19,0xc5,0x2f,0x68, 0xb4,0x31,0xf0,0xe3, 0xbc,0xbd,0x69,0xd7, 0x29,0x75,0xc3,0x93, + 0x5a,0x03,0x15,0x04, 0x4d,0x2a,0xc3,0xe4, 0x78,0x08,0x79,0x8c, 0xac,0xa0,0x4a,0x71, + 0xf6,0x42,0xf4,0x5d, 0x5a,0xa4,0x49,0x5b, 0x48,0xb3,0xa7,0x29, 0x70,0xd5,0x83,0xa0, + 0xc9,0xb0,0x0e,0x92, 0x0b,0x04,0x62,0x31, 0x88,0x94,0x94,0x28, 0x22,0xa0,0x88,0xa2, + 0x28,0x91,0x44,0x51, 0x8a,0xb0,0x58,0x8a, 0xa3,0x14,0x44,0x05, 0x8c,0x45,0x21,0x49, + 0x3f,0xb0,0xc4,0x60, 0xab,0x20,0xb0,0xb6, 0xa9,0x14,0x22,0xc8, 0xb0,0x80,0xa0,0xb2, + 0x29,0x14,0x52,0x31, 0x04,0x11,0x82,0x91, 0x18,0x82,0x8a,0x28, 0x2a,0x2b,0x11,0x22, + 0x8a,0x0b,0x24,0x46, 0x28,0x41,0x54,0x52, 0x0a,0x45,0x01,0x8a, 0x88,0x88,0xb1,0x52, + 0x31,0x58,0xc4,0x8a, 0x23,0x15,0x22,0x28, 0xaa,0x23,0x09,0x14, 0x01,0x51,0x54,0x14, + 0x45,0x56,0x2a,0x87, 0x06,0x10,0xb1,0x99, 0xd0,0xe8,0xd8,0xcb, 0x7a,0x5d,0x25,0x62, + 0x51,0x94,0xff,0xa6, 0x92,0x32,0x44,0x45, 0x82,0x44,0x62,0xab, 0x15,0x45,0x88,0x82, + 0x24,0x41,0x56,0x2a, 0x8a,0x22,0x31,0x64, 0x11,0x11,0x01,0x62, 0xb1,0x91,0x91,0x91, + 0x45,0x51,0x14,0x64, 0x14,0x50,0x50,0x54, 0x14,0x45,0x55,0x55, 0x58,0x8a,0xcb,0xe9, + 0xa1,0xe8,0x83,0x43, 0xdc,0x35,0x2a,0x08, 0xe0,0x9e,0xdd,0xba, 0x25,0x7b,0xf0,0x54, + 0x1c,0xbc,0x80,0x38, 0x9c,0xb2,0x3e,0x0e, 0x22,0x58,0xb0,0x99, 0x0b,0x8a,0xbb,0xb4, + 0x8a,0x96,0x9d,0x12, 0xb5,0xe1,0xc4,0x11, 0xc8,0x60,0x56,0x2b, 0x64,0xe4,0x49,0x89, + 0x8e,0x4e,0x6b,0xd0, 0x92,0x07,0x32,0xa8, 0x33,0x80,0x73,0xc4, 0xd6,0x75,0x42,0x52, + 0xce,0x4e,0x2f,0xcd, 0xc8,0x0b,0x52,0x40, 0x38,0xe0,0x3f,0xe8, 0x24,0x82,0x40,0x24, + 0xb1,0x62,0x09,0x63, 0x19,0x47,0x3a,0x77, 0x2c,0xe4,0x90,0xdb, 0x49,0x11,0x3f,0x4d, + 0x19,0x3e,0xed,0x5c, 0x52,0x5a,0xce,0x31, 0x2d,0xc4,0x50,0x8c, 0x64,0x78,0x66,0xcb, + 0x22,0x25,0x72,0x11, 0x0d,0x0a,0xe4,0xd9, 0x45,0x95,0x9d,0xa6, 0x44,0xe5,0x94,0x45, + 0x49,0x52,0x01,0x4d, 0x4f,0x2a,0x73,0xa9, 0x0f,0xc2,0x5b,0xf2, 0xc8,0x53,0x22,0x59, + 0x2c,0x02,0xe4,0x64, 0xac,0xef,0x21,0x92, 0x94,0xd8,0xc3,0x3c, 0x86,0x22,0x1b,0x8c, + 0x51,0x05,0x16,0x3d, 0x86,0xcd,0x3b,0x40, 0x9a,0x08,0x8c,0x40, 0xee,0x5b,0xaf,0x0f, + 0xae,0xfb,0xdf,0x93, 0xe8,0x71,0x35,0xca, 0x2f,0x64,0x28,0xe6, 0x52,0xad,0x4d,0x30, + 0xf7,0x7f,0xdc,0xb1, 0x05,0x51,0x06,0x2a, 0x2c,0x01,0x41,0x82, 0x91,0x56,0x22,0xc8, + 0xa0,0xa0,0x28,0xb2, 0x0b,0x16,0x02,0x22, 0xa8,0x88,0xc4,0x58, 0xb2,0x23,0x04,0x60, + 0xaa,0x0a,0x11,0x41, 0x05,0x18,0xc6,0x0c, 0x18,0x8a,0x0b,0x05, 0x90,0x58,0x02,0x8a, + 0xb0,0x44,0x46,0x22, 0x22,0xc5,0x16,0x22, 0xaa,0x02,0xac,0x15, 0x51,0x91,0x01,0x11, + 0x45,0x18,0xc1,0x82, 0x88,0x88,0x31,0x48, 0x8c,0x55,0x05,0x01, 0x8c,0x14,0x61,0x18, + 0x82,0x29,0x04,0x51, 0x10,0x60,0xa2,0x8a, 0x91,0x15,0x88,0x22, 0xa1,0xc1,0xe8,0x69, + 0xde,0x19,0x11,0x0f, 0x26,0x18,0xf9,0xfa, 0xcb,0xc1,0xdf,0x91, 0x5e,0xfa,0xf3,0x7d, + 0xa4,0xd1,0xb9,0x18, 0x89,0xa6,0xa6,0x38, 0xe7,0x37,0xb4,0x31, 0x93,0x75,0x22,0x04, + 0x60,0x25,0xb0,0xaa, 0x2b,0x96,0xa2,0x62, 0x43,0x26,0x5a,0x3c, 0xf6,0xe7,0x8c,0x9c, + 0x71,0xc7,0xf9,0x79, 0xe1,0xd0,0xdf,0x53, 0x7c,0x5d,0x78,0x5a, 0xf6,0x85,0xb8,0x68, + 0x0b,0x21,0x1a,0x01, 0x61,0x14,0x69,0x6d, 0x61,0x8e,0x6a,0x71, 0xd0,0x4f,0xc6,0x13, + 0xcb,0xc5,0xde,0xb3, 0xcf,0xae,0x65,0x4f, 0x30,0x57,0x7d,0x66, 0x69,0x0e,0x71,0x46, + 0xb0,0x92,0xc8,0xed, 0x94,0x8a,0xee,0x35, 0x88,0x13,0x19,0x44, 0xfa,0xbe,0x8f,0xfe, + 0xae,0x55,0x61,0x9f, 0x1a,0xdf,0x9e,0x7a, 0x9a,0x90,0x01,0x22, 0x49,0x20,0x40,0x44, + 0x28,0x35,0x02,0x59, 0xcd,0xf5,0x2d,0x40, 0x40,0xb5,0x35,0xba, 0xbc,0xad,0x41,0x0c, + 0x26,0x6e,0xe5,0x04, 0x0a,0x64,0xcc,0x8b, 0x10,0x55,0xaa,0xc2, 0x8d,0x48,0x47,0x4c, + 0x1c,0xb7,0x40,0x38, 0x42,0xc2,0x02,0x08, 0x94,0x4d,0xda,0x8d, 0x61,0x98,0x07,0x67, + 0xe0,0x36,0x10,0xf1, 0xea,0xaa,0xcb,0xd5, 0x0e,0x8f,0x0f,0x0d, 0x55,0x94,0xaa,0xcc, + 0x5a,0x6c,0x10,0x5d, 0xd6,0xc6,0xee,0xd2, 0x1d,0x0e,0xd8,0x62, 0x18,0xdb,0xd6,0x27, + 0x78,0xd9,0xed,0xd3, 0x73,0xa7,0x77,0x67, 0x5d,0x67,0x9f,0x73, 0x90,0x11,0x5c,0xd1, + 0xd6,0xf4,0x6e,0x1a, 0xbc,0x87,0x08,0x4c, 0xe2,0x8b,0x07,0xab, 0xc7,0x10,0xf7,0x89, + 0x50,0xe3,0x47,0x64, 0x9e,0x13,0xd1,0x9b, 0x4c,0x62,0x92,0xb5, 0x8d,0xbe,0x5d,0xe6, + 0x0e,0x2d,0x9e,0x33, 0x38,0xd1,0x44,0x04, 0x27,0x42,0xd0,0x43, 0x67,0x0d,0x55,0x90, + 0x09,0xcc,0x72,0x70, 0xf2,0xf2,0x91,0x37, 0xac,0x2c,0xe8,0x77, 0xe3,0x7b,0xe9,0x90, + 0xdf,0x47,0x57,0x22, 0x30,0xea,0xfb,0xd6, 0x18,0xc5,0x33,0xc7, 0x89,0x33,0x96,0xe5, + 0x2a,0xef,0xbf,0x6d, 0x78,0xd2,0xba,0x3d, 0x9b,0x37,0x8b,0xc0, 0xa1,0x55,0xc1,0xd1, + 0x1e,0x9e,0x8a,0xf9, 0xa7,0x89,0x2d,0xf9, 0xb6,0x33,0xa6,0x97, 0x94,0x16,0x11,0xcd, + 0x78,0x18,0x99,0x4b, 0xf0,0x29,0x2b,0x15, 0x48,0xbe,0xa4,0xbd, 0xe8,0x7a,0x93,0x0b, + 0x42,0x8e,0xd2,0x67, 0x54,0x0e,0x90,0xc4, 0x16,0x76,0x61,0xe1, 0xda,0x76,0x7a,0x67, + 0x87,0xd4,0xa3,0x9d, 0x74,0xeb,0x47,0x3c, 0x79,0x70,0xac,0x59, 0x13,0xb1,0xd4,0xc5, + 0x0e,0x44,0x23,0x2a, 0x3e,0x40,0xeb,0x31, 0x42,0x77,0x6e,0x5b, 0x1c,0xa7,0x74,0xe2, + 0xf7,0x53,0x7b,0xb9, 0xbd,0x90,0xef,0xe9, 0xa9,0xca,0x14,0xe8, 0xa4,0x2b,0x01,0x2f, + 0xa6,0x48,0x63,0x05, 0xf0,0xe7,0x9d,0x3d, 0x1c,0x2c,0xb0,0x14, 0x11,0x78,0x60,0xb4, + 0xac,0x6d,0xaa,0x06, 0xb3,0x9b,0x59,0x5e, 0xcd,0x44,0x80,0xc1, 0x01,0xca,0x22,0x57, + 0x9c,0x9c,0x28,0xe7, 0x19,0x89,0xc8,0xd1, 0xed,0xbf,0x8b,0xe5, 0xbe,0x34,0x2d,0x5e, + 0x0e,0xd3,0x9e,0xf8, 0xae,0x2c,0x63,0x07, 0xba,0x6b,0x0d,0x6f, 0x79,0xb7,0x84,0xef, + 0x68,0x63,0x38,0x18, 0xab,0x98,0x66,0x15, 0x0a,0x90,0xb8,0x99, 0x92,0xa1,0xbc,0xa8, + 0xcc,0x64,0x37,0xc7, 0x96,0x8d,0x28,0x45, 0x8e,0x50,0xdb,0x31, 0x24,0xdf,0x56,0x4f, + 0x63,0x26,0xf5,0x43, 0x3d,0x92,0x93,0x4c, 0x85,0x4c,0x4c,0x60, 0x72,0xc0,0xc4,0xe6, + 0xd4,0x60,0xa4,0x77, 0x62,0xca,0x35,0x98, 0xcc,0x88,0x02,0x78, 0xd6,0x4c,0x66,0xd9, + 0xbb,0x64,0x37,0xaa, 0x06,0xd9,0x37,0x95, 0xc2,0xc3,0x10,0xdb, 0x02,0xa1,0xe9,0xba, + 0x15,0x00,0x2e,0xcb, 0x21,0x5d,0x21,0x09, 0x9e,0x28,0x7a,0xf2, 0x9e,0xbe,0x69,0x9e, + 0x96,0x04,0xe5,0xc9, 0xd2,0x34,0x2f,0x6b, 0x32,0xd2,0x06,0x22, 0x91,0xca,0x06,0x9d, + 0xda,0x42,0x2a,0xd7, 0x4c,0x16,0x1d,0xfa, 0xbb,0x4d,0x59,0x4f, 0x37,0x12,0x07,0x92, + 0x42,0x56,0x45,0x5d, 0x21,0xd6,0x16,0x09, 0xdf,0x79,0xce,0xaf, 0xa2,0x15,0x05,0x0e, + 0x2d,0x3c,0x66,0x64, 0xe8,0xcc,0xc1,0x61, 0x09,0xe3,0x74,0x9d, 0x93,0x86,0x11,0x10, + 0x0f,0x1e,0x9b,0x38, 0xd4,0xa9,0xb5,0x3c, 0x51,0xca,0x69,0xd3, 0x05,0x82,0x4f,0x6b, + 0xd5,0xbc,0xbc,0x6c, 0xc4,0x3d,0x28,0x16, 0x1a,0xe6,0x98,0xc4, 0xbe,0x02,0x60,0x1f, + 0x0a,0x84,0xda,0x0e, 0x58,0x0e,0xb6,0x82, 0x02,0xad,0x84,0x19, 0xa1,0x08,0x32,0x3e, + 0x8d,0x68,0xe0,0x8a, 0x45,0x31,0xde,0x6d, 0xc1,0x41,0x44,0x51, 0xe9,0x92,0x9e,0x10, + 0xb2,0x1d,0x52,0x50, 0x98,0xf9,0xde,0xfd, 0xf4,0x4e,0x3a,0x1b, 0x53,0x97,0xab,0xad, + 0xa6,0xa4,0xef,0xce, 0xf0,0x34,0x8b,0x0b, 0x5a,0xa3,0xcf,0x57, 0xe6,0xe1,0xb4,0x56, + 0x30,0x00,0xa2,0x43, 0x7b,0x74,0xfc,0x78, 0x4c,0x01,0x80,0x80, 0x21,0xab,0xee,0xdf, + 0x49,0x4c,0x6a,0x83, 0x34,0x9d,0x45,0xb1, 0x8d,0xa4,0x5c,0x5a, 0x70,0x68,0x68,0xa9, + 0x0c,0xcc,0x32,0x22, 0xc7,0x43,0x57,0xad, 0x1f,0x27,0xd2,0x73, 0x0f,0x87,0x25,0x99, + 0x16,0x0d,0xa1,0x60, 0x09,0x15,0x04,0x09, 0x6f,0xca,0x04,0x5a, 0xee,0x31,0x0e,0x2f, + 0x7d,0xb1,0x89,0xc4, 0xa3,0x0c,0xf6,0x1a, 0xa6,0x01,0xa6,0x15, 0x7d,0xaa,0x12,0x76, + 0x4e,0xec,0x22,0xab, 0xdf,0xb5,0xc1,0x64, 0x6d,0x24,0x11,0x2a, 0x7a,0x65,0x2e,0x55, + 0x98,0x8d,0xdf,0x54, 0xf2,0xdf,0x26,0x07, 0xb3,0x3b,0xf1,0x7a, 0xd3,0xce,0xef,0x5c, + 0x63,0x27,0x44,0x23, 0x87,0x03,0x0a,0x23, 0xe7,0x17,0x50,0x43, 0xce,0x7b,0x43,0x0c, + 0x73,0x4f,0xd2,0x76, 0xf7,0xb1,0xdc,0x95, 0xd9,0xcf,0x55,0x58, 0xad,0xf4,0x93,0x40, + 0x84,0x20,0xee,0xf2, 0x56,0x1b,0x7c,0xed, 0x41,0x50,0xf9,0x60, 0x08,0xd0,0xe9,0x20, + 0xe2,0x06,0x3a,0x3a, 0xd8,0x54,0x93,0xc3, 0x36,0xc3,0x94,0x38, 0xe6,0x99,0x92,0x75, + 0xbe,0x7d,0x69,0xe0, 0xf1,0xe9,0x97,0x35, 0x40,0x72,0xf7,0xd3, 0x6a,0xec,0x56,0x92, + 0x24,0x42,0xcd,0x51, 0x2e,0xfa,0x90,0x02, 0x68,0x4e,0xad,0x81, 0x08,0x24,0x10,0x67, + 0x5d,0x5a,0x67,0xac, 0xe6,0xbb,0x3a,0x22, 0x80,0xf5,0xb4,0x06, 0xc8,0x14,0x37,0xab, + 0x99,0x60,0x68,0xe4, 0x63,0xae,0xbd,0x3d, 0x35,0xd1,0xb7,0x60, 0x74,0x5b,0x45,0x58, + 0x2c,0x21,0x58,0x1e, 0x13,0xd7,0xad,0x60, 0xbe,0x1f,0x52,0x18, 0x84,0xc6,0x0a,0x4d, + 0x5b,0x50,0x2a,0x22, 0x07,0x2c,0x86,0x3c, 0xee,0xc0,0x99,0x5f, 0x19,0x53,0x6c,0x21, + 0x58,0x41,0x64,0x95, 0x03,0x96,0x06,0xd9, 0x05,0x84,0x8f,0x6a, 0x13,0x84,0x93,0x18, + 0x07,0x0c,0x03,0xda, 0x61,0xe8,0x87,0x48, 0x10,0xe5,0x00,0x36, 0x21,0x14,0x58,0xd1, + 0xa0,0x28,0x0c,0x20, 0x0a,0xb3,0x5a,0x21, 0xa5,0x40,0x43,0x42, 0xb9,0x43,0x3c,0xf3, + 0x51,0x60,0xcd,0xc6, 0xb9,0x07,0x1a,0xab, 0xd9,0xda,0x50,0x47, 0x9a,0x54,0x1f,0x0b, + 0x6c,0xdf,0x9d,0x30, 0x87,0x71,0xd9,0xcd, 0x3d,0x6d,0x60,0x62, 0x89,0x26,0xc6,0x72, + 0xc8,0x69,0x6d,0x58, 0x4e,0xcd,0x48,0x0f, 0x8a,0x01,0xdd,0x0c, 0x76,0xc0,0x52,0xc4, + 0x52,0x08,0x8b,0x03, 0x68,0x60,0xc8,0x63, 0x16,0x48,0x29,0x53, 0xb6,0x6e,0xe5,0x66, + 0x93,0x4c,0x8c,0x49, 0x34,0x93,0x5d,0xf7, 0x9b,0x42,0xa4,0x2a, 0xa8,0x93,0xc9,0x92, + 0x8c,0x90,0xda,0x42, 0xab,0x24,0x15,0x64, 0x86,0x30,0xc4,0x98, 0x81,0x6d,0x24,0x50, + 0x8b,0x05,0x46,0x03, 0xff,0x8b,0xb9,0x22, 0x9c,0x28,0x48,0x4c, 0xec,0x36,0xc9,0x80, + // 0x1820 = 6176 data bytes (12%) }; static BZ2Manager_t red_36_bin_mgr diff --git a/project/src/types.h b/project/src/types.h index af9ee98..022f2d4 100644 --- a/project/src/types.h +++ b/project/src/types.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/ui/gen-ui.c b/project/src/ui/gen-ui.c index 4fecc1d..5e0b498 100644 --- a/project/src/ui/gen-ui.c +++ b/project/src/ui/gen-ui.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -56,6 +56,12 @@ #include "dclib-gen-ui.h" #include "ui-head.inc" +//---------------------------------- +// \1 : Text only for built in help +// \2 : Text only for ui.def +// \3 : Text for all (default) +//---------------------------------- + // /////////////////////////////////////////////////////////////////////////////// /////////////// functions not neded by gen-ui /////////////// @@ -166,6 +172,16 @@ bool DefineIntVar ( VarMap_t * vm, ccp varname, int value ) { return false; } " instead of a real file." \ "\1 See https://szs.wiimm.de/doc/genericimg for details." +#define WILDCARDS \ + "\1Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details." \ + "\2$Wildcards$ are accepted.\3" + +#define WILDCARDS_SORT \ + "\1Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details." \ + "\2$Wildcards$ are accepted.\3" \ + " After evaluating the wildcards, all input files are sorted according" \ + " to their path and duplicates are deleted." + // /////////////////////////////////////////////////////////////////////////////// /////////////// the info table /////////////// diff --git a/project/src/ui/tab-wbmgt.inc b/project/src/ui/tab-wbmgt.inc index 717e869..b32dbd6 100644 --- a/project/src/ui/tab-wbmgt.inc +++ b/project/src/ui/tab-wbmgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wbmgt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wbmgt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wctct.inc b/project/src/ui/tab-wctct.inc index 95d3698..d318c25 100644 --- a/project/src/ui/tab-wctct.inc +++ b/project/src/ui/tab-wctct.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -49,7 +49,7 @@ // //---------- list of all wctct commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wctct VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wimgt.inc b/project/src/ui/tab-wimgt.inc index 656387b..a6078ba 100644 --- a/project/src/ui/tab-wimgt.inc +++ b/project/src/ui/tab-wimgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -49,7 +49,7 @@ // //---------- list of all wimgt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wimgt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wkclt.inc b/project/src/ui/tab-wkclt.inc index dc00429..a24e5eb 100644 --- a/project/src/ui/tab-wkclt.inc +++ b/project/src/ui/tab-wkclt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wkclt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wkclt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wkmpt.inc b/project/src/ui/tab-wkmpt.inc index dc4887c..d454250 100644 --- a/project/src/ui/tab-wkmpt.inc +++ b/project/src/ui/tab-wkmpt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wkmpt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wkmpt VERSION [ignored]...", 0 /* copy of wszst */ }, @@ -193,8 +193,7 @@ " The default destination is @'%P/%N.kmp.obj'@." "\n " " Automated dropping of bad KCL triangles is enabled" - " if no drop option is specified by option {--kcl}." - }, + " if no drop option is specified by option {--kcl}." }, { T_DEF_CMD, "CHECK", "CHECK|CHK", "wkmpt CHECK source...", diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc index 42fb744..b00f880 100644 --- a/project/src/ui/tab-wlect.inc +++ b/project/src/ui/tab-wlect.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wlect commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wlect VERSION [ignored]...", 0 /* copy of wszst */ }, @@ -191,10 +191,9 @@ "This command manages data for LE-CODE track distributions." " It reads any number of source files with different file types," " collects the data and creates any number of files with different file types." + " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for details." "\n " - " Use the command without keyword to get an extended description." - "\n " - "This command is still under development. Its use is therefore EXPERIMENTAL!" }, + " Use the command without keyword to get an extended description." }, { T_DEF_CMD, "CAT", "CAT", "wlect CAT [source]...", diff --git a/project/src/ui/tab-wmdlt.inc b/project/src/ui/tab-wmdlt.inc index 5be888e..5c53ddd 100644 --- a/project/src/ui/tab-wmdlt.inc +++ b/project/src/ui/tab-wmdlt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wmdlt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wmdlt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wpatt.inc b/project/src/ui/tab-wpatt.inc index 66301b5..44195e6 100644 --- a/project/src/ui/tab-wpatt.inc +++ b/project/src/ui/tab-wpatt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -48,7 +48,7 @@ // //---------- list of all wpatt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wpatt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc index 21b3730..a227ca9 100644 --- a/project/src/ui/tab-wstrt.inc +++ b/project/src/ui/tab-wstrt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -49,7 +49,7 @@ // //---------- list of all wstrt commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wstrt VERSION [ignored]...", 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc index 6a90789..9984290 100644 --- a/project/src/ui/tab-wszst.inc +++ b/project/src/ui/tab-wszst.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -51,7 +51,7 @@ // //---------- list of all wszst commands ---------- - { T_DEF_CMD, "VERSION", "VERSION", + { T_DEF_CMD, "VERSION", "VERSION|V", "wszst VERSION [ignored]...", "Print program name and version and exit." }, @@ -125,6 +125,12 @@ " and path for each file as list." " All tools know the FILETYPE command." }, + { T_DEF_CMD, "UI_CHECK", "UI-CHECK|UC|UICHECK", + "wszst UI-CHECK file...", + "Classify SZS files from directory .../Scene/UI/." + " For the analysis, the filename is ignored and only the content is examined." + "" WILDCARDS_SORT }, + { T_DEF_CMD, "FILEATTRIB", "FILEATTRIB|FA", "wszst FILEATTRIB [keyword]...", "Print a table with attributes for all known file types." @@ -273,34 +279,39 @@ "wszst LIST [source]...", "List all sub files of " ARCHIVES_AND " archives." " If listing a directory, then a virtual SZS file" - " is created (like CREATE does it) and listed." }, + " is created (like CREATE does it) and listed." + " " WILDCARDS_SORT }, { T_DEF_CMD, "LIST_L", "LIST-L|LL|LISTL", "wszst LIST-L [source]...", "List all sub files with size." - " 'LIST-L' and 'LL' are short cuts for {LIST --long}." }, + " 'LIST-L' and 'LL' are short cuts for {LIST --long}." + " " WILDCARDS_SORT }, { T_DEF_CMD, "LIST_LL", "LIST-LL|LLL|LISTLL", "wszst LIST-LL [source]...", "List all sub files with offset and size." - " 'LIST-LL' and 'LLL' are short cuts for {LIST --long --long}." }, + " 'LIST-LL' and 'LLL' are short cuts for {LIST --long --long}." + " " WILDCARDS_SORT }, { T_DEF_CMD, "LIST_LLL", "LIST-LLL|LLLL|LISTLLL", "wszst LIST-LLL [source]...", "List all sub files with offset and size in debugging mode." " 'LIST-LLL' and 'LLLL' are short cuts" - " for {LIST --long --long --long}." }, + " for {LIST --long --long --long}." + " " WILDCARDS_SORT }, { T_DEF_CMD, "LIST_A", "LIST-A|LA|LISTA", "wszst LIST-A [source]...", "List recursive all sub files with size." - " 'LIST-A' and 'LA' are short cuts for {LIST --long --all --all}." }, + " 'LIST-A' and 'LA' are short cuts for {LIST --long --all --all}." + " " WILDCARDS_SORT }, { T_DEF_CMD, "LIST_LA", "LIST-LA|LLA|LISTLA", "wszst LIST-LA [source]...", "List recursive all sub files with offset and size." - " 'LIST-LA' and 'LLA' are short cuts" - " for {LIST --long --long --all --all}." }, + " 'LIST-LA' and 'LLA' are short cuts for {LIST --long --long --all --all}." + " " WILDCARDS_SORT }, { T_DEF_CMD, "NAME_REF", "NAME-REF|NAMEREF", "wszst NAME-REF [source]...", @@ -485,7 +496,8 @@ " Load the archive, apply all patching and transforming options" " and store the file again." " Compressed sources are compressed again." - " The destination is only written if any data changed." }, + " The destination is only written if any data changed or if stored in another file." + " " WILDCARDS }, { T_DEF_CMD, "COPY", "COPY|CP", "wszst COPY source dest\n" @@ -1589,10 +1601,35 @@ " meaningful name --filter-bmg. The old name is still available." "\1\n Read https://szs.wiimm.de/opt/filter-bmg for more details." }, + { T_OPT_C, "LE_MENU", "le-menu|lemenu", + 0, + "Patch language independent SZS files from directory .../Scene/UI/" + " to change the menu as required by LE-CODE" + " to be able to select tracks from more than 8 cups." }, + + { T_OPT_CP, "TITLE_SCREEN", "title-screen|titlescreen", + "dir", + "Specify a directory from which to search and replace title screens." + " Title screens only appear in the file 'Title.szs'" + " and there in the sub-directory './title/timg/'." + " If the replacement file is not found, then search file 'title1.szs'" + " to patch standard files or file 'title2.szs' to patch bokeboke files." }, + + { T_OPT_CP, "CUP_ICONS", "cup-icons|cupicons", + "image", + "Load given image, convert it to TPL.CMPR and add the result as sub-files" + " 'button/timg/ct_icons.tpl' and as 'control/timg/ct_icons.tpl'" + " to files 'Channel.szs', 'MenuMulti.szs' and 'MenuSingle.szs'." + " Both sub-files are always linked, so that storage space is saved." }, + + { T_OPT_C, "NO_COPY", "no-copy|nocopy", + 0, + "Don't copy a file if it was not modified." }, + { T_OPT_GP, "CACHE", "cache", "dir", "Define a directory for a SZS cache." - "If creating a YAZ0 compressed file with standard compression (level 9)," + " If creating a YAZ0 compressed file with standard compression (level 9)," " the cache is searched for the compressed version." " File cache-content.txt is used as file list with hash values." " If the cache file is not found or the content differ," @@ -1612,6 +1649,11 @@ " This parameter overrides the generated cache name." " The name is used only once for the very first cache candidate." }, + { T_OPT_G, "PARALLEL", "parallel", + 0, + "Tell the tool that it will be called multiple times in parallel." + " Currently it only has an effect if {--cache} is enabled." }, + { T_OPT_C, "ID", "id", 0, "Print an ID with 8 characters instead of a SHA-1 sum with" @@ -1667,8 +1709,14 @@ " This includes syntax information ({--no-header})." " If set twice, the output of unneeded sections is also suppressed." }, + { T_OPT_CM, "IN_ORDER", "in-order|inorder", + 0, + "Process the input files in order of the command line" + " and don't delete duplicates." }, + { T_OPT_CM, "PIPE", "pipe", - 0, "Use pipe sign instead of spaces to separate columns." }, + 0, + "Use pipe sign instead of spaces to separate columns." }, { T_OPT_C, "DELTA", "delta", 0, @@ -2516,6 +2564,9 @@ { T_COPT, "PATCH_BMG", 0,0,0 }, { T_COPT, "MACRO_BMG", 0,0,0 }, { T_COPT, "FILTER_BMG", 0,0,0 }, + { T_COPT, "LE_MENU", 0,0,0 }, + { T_COPT, "TITLE_SCREEN", 0,0,0 }, + { T_COPT, "CUP_ICONS", 0,0,0 }, //---------- wszst GROUP DEST ---------- @@ -2791,6 +2842,16 @@ { T_COPT, "NO_HEADER", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + //---------- COMMAND wszst UI_CHECK ---------- + + { T_CMD_BEG, "UI_CHECK", 0,0,0 }, + + { T_COPT, "LONG", 0,0, + "Print the result as technical list." }, + { T_COPT, "NO_HEADER", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + //---------- COMMAND wszst FILEATTRIB ---------- { T_CMD_BEG, "FILEATTRIB", 0,0,0 }, @@ -2952,6 +3013,7 @@ " If set three times, debugging mode is enabled." }, { T_COPT, "SORT", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0,0 }, + { T_COPT, "IN_ORDER", 0,0,0 }, { T_COPY_GRP, "CREATE", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "NORM", 0,0,0 }, @@ -3268,6 +3330,7 @@ { T_CMD_BEG, "PATCH", 0,0,0 }, { T_COPY_GRP, "DEST", 0,0,0 }, { T_COPT, "REMOVE_SRC", 0,0,0 }, + { T_COPT, "NO_COPY", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "FFORMAT1", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c index 96371f8..3f24b35 100644 --- a/project/src/ui/ui-wbmgt.c +++ b/project/src/ui/ui-wbmgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -654,7 +654,7 @@ static const InfoOption_t option_cmd_EXTRACT_NO_HEADER = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -909,7 +909,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1475,7 +1475,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wbmgt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wbmgt.h b/project/src/ui/ui-wbmgt.h index ab88947..1f2375b 100644 --- a/project/src/ui/ui-wbmgt.h +++ b/project/src/ui/ui-wbmgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -428,7 +428,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wbmgt; diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c index 8941129..4422f73 100644 --- a/project/src/ui/ui-wctct.c +++ b/project/src/ui/ui-wctct.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -853,7 +853,7 @@ static const InfoOption_t option_cmd_CREATE_LONG = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -1153,7 +1153,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1717,7 +1717,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wctct VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wctct.h b/project/src/ui/ui-wctct.h index 2732a9d..d9f8028 100644 --- a/project/src/ui/ui-wctct.h +++ b/project/src/ui/ui-wctct.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -518,7 +518,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wctct; diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c index 6dff364..4ebf300 100644 --- a/project/src/ui/ui-wimgt.c +++ b/project/src/ui/ui-wimgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -604,7 +604,7 @@ static const InfoOption_t option_cmd_ENCODE_ALL = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -832,7 +832,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1243,7 +1243,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wimgt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wimgt.h b/project/src/ui/ui-wimgt.h index 25a6329..352536c 100644 --- a/project/src/ui/ui-wimgt.h +++ b/project/src/ui/ui-wimgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -354,7 +354,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wimgt; diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c index b355d73..88708d8 100644 --- a/project/src/ui/ui-wkclt.c +++ b/project/src/ui/ui-wkclt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -927,7 +927,7 @@ static const InfoOption_t option_cmd_SHA1_BRIEF = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -1205,7 +1205,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -2185,7 +2185,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wkclt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wkclt.h b/project/src/ui/ui-wkclt.h index 9695e87..2efc4bc 100644 --- a/project/src/ui/ui-wkclt.h +++ b/project/src/ui/ui-wkclt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -512,7 +512,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wkclt; diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c index 64a033c..4862f38 100644 --- a/project/src/ui/ui-wkmpt.c +++ b/project/src/ui/ui-wkmpt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -1138,7 +1138,7 @@ static const InfoOption_t option_cmd_WIM0_LONG = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -1461,7 +1461,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -2249,7 +2249,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wkmpt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wkmpt.h b/project/src/ui/ui-wkmpt.h index a86288f..78795d9 100644 --- a/project/src/ui/ui-wkmpt.h +++ b/project/src/ui/ui-wkmpt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -542,7 +542,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wkmpt; diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c index 0dbdadf..69dd141 100644 --- a/project/src/ui/ui-wlect.c +++ b/project/src/ui/ui-wlect.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -805,7 +805,7 @@ static const InfoOption_t option_cmd_BIN_DIFF_VERBOSE = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -1116,7 +1116,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1854,7 +1854,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wlect VERSION [ignored]...", "Print program name and version and exit.", 0, @@ -2279,10 +2279,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect DISTRIBUTION [argument]...", "This command manages data for LE-CODE track distributions. It reads" " any number of source files with different file types, collects the" - " data and creates any number of files with different file types.\n" - " Use the command without keyword to get an extended description.\n" - " This command is still under development. Its use is therefore" - " EXPERIMENTAL!", + " data and creates any number of files with different file types." + " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for" + " details.\n" + " Use the command without keyword to get an extended description.", 0, 21, option_tab_cmd_DISTRIBUTION, diff --git a/project/src/ui/ui-wlect.h b/project/src/ui/ui-wlect.h index 9be22b2..84c436d 100644 --- a/project/src/ui/ui-wlect.h +++ b/project/src/ui/ui-wlect.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -512,7 +512,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wlect; diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c index 7cce00d..99a2d21 100644 --- a/project/src/ui/ui-wmdlt.c +++ b/project/src/ui/ui-wmdlt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -716,7 +716,7 @@ static const InfoOption_t option_cmd_MATRIX_QUIET = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -952,7 +952,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1506,7 +1506,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wmdlt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wmdlt.h b/project/src/ui/ui-wmdlt.h index 91502d8..28821cc 100644 --- a/project/src/ui/ui-wmdlt.h +++ b/project/src/ui/ui-wmdlt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -423,7 +423,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wmdlt; diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c index 864622d..c5d8e3b 100644 --- a/project/src/ui/ui-wpatt.c +++ b/project/src/ui/ui-wpatt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -517,7 +517,7 @@ static const InfoOption_t option_cmd_FUNCTIONS_LONG = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -716,7 +716,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -1053,7 +1053,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wpatt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wpatt.h b/project/src/ui/ui-wpatt.h index f7bd275..9df0853 100644 --- a/project/src/ui/ui-wpatt.h +++ b/project/src/ui/ui-wpatt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -330,7 +330,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wpatt; diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c index b9760fb..d59f2c0 100644 --- a/project/src/ui/ui-wstrt.c +++ b/project/src/ui/ui-wstrt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -1094,7 +1094,7 @@ static const InfoOption_t option_cmd_PATCH_FORCE = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -1463,7 +1463,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x100 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x110 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x120 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, - /* 0x130 */ 0,0,0,0, 0,0, + /* 0x130 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, }; // @@ -2092,7 +2092,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wstrt VERSION [ignored]...", "Print program name and version and exit.", 0, diff --git a/project/src/ui/ui-wstrt.h b/project/src/ui/ui-wstrt.h index 3a4914f..b3f1ad8 100644 --- a/project/src/ui/ui-wstrt.h +++ b/project/src/ui/ui-wstrt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -596,7 +596,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wstrt; diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c index 66a31d5..d397063 100644 --- a/project/src/ui/ui-wszst.c +++ b/project/src/ui/ui-wszst.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -470,6 +470,36 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " Read https://szs.wiimm.de/opt/filter-bmg for more details." }, + { OPT_LE_MENU, false, false, false, false, false, 0, "le-menu", + 0, + "Patch language independent SZS files from directory .../Scene/UI/ to" + " change the menu as required by LE-CODE to be able to select tracks" + " from more than 8 cups." + }, + + { OPT_TITLE_SCREEN, false, false, false, false, false, 0, "title-screen", + "dir", + "Specify a directory from which to search and replace title screens." + " Title screens only appear in the file 'Title.szs' and there in the" + " sub-directory './title/timg/'. If the replacement file is not found," + " then search file 'title1.szs' to patch standard files or file" + " 'title2.szs' to patch bokeboke files." + }, + + { OPT_CUP_ICONS, false, false, false, false, false, 0, "cup-icons", + "image", + "Load given image, convert it to TPL.CMPR and add the result as" + " sub-files 'button/timg/ct_icons.tpl' and as" + " 'control/timg/ct_icons.tpl' to files 'Channel.szs', 'MenuMulti.szs'" + " and 'MenuSingle.szs'. Both sub-files are always linked, so that" + " storage space is saved." + }, + + { OPT_NO_COPY, false, false, false, false, false, 0, "no-copy", + 0, + "Don't copy a file if it was not modified." + }, + { OPT_ID, false, false, false, false, false, 0, "id", 0, "Print an ID with 8 characters instead of a SHA-1 sum with 40" @@ -529,6 +559,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " unneeded sections is also suppressed." }, + { OPT_IN_ORDER, false, false, false, false, false, 0, "in-order", + 0, + "Process the input files in order of the command line and don't delete" + " duplicates." + }, + { OPT_PIPE, false, false, false, false, false, 0, "pipe", 0, "Use pipe sign instead of spaces to separate columns." @@ -1153,7 +1189,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 137 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 142 //----- global options ----- @@ -1619,11 +1655,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_CACHE, false, false, false, false, false, 0, "cache", "dir", - "Define a directory for a SZS cache.If creating a YAZ0 compressed file" - " with standard compression (level 9), the cache is searched for the" - " compressed version. File cache-content.txt is used as file list with" - " hash values. If the cache file is not found or the content differ," - " the file is (re-)created and exit status 2=differ is returned.\n" + "Define a directory for a SZS cache. If creating a YAZ0 compressed" + " file with standard compression (level 9), the cache is searched for" + " the compressed version. File cache-content.txt is used as file list" + " with hash values. If the cache file is not found or the content" + " differ, the file is (re-)created and exit status 2=differ is" + " returned.\n" " Background: Loading a compressed SZS and content verification is" " much faster than YAZ compression.\n" " For legay reasons: If parameter DIR is a file, it is split into" @@ -1639,6 +1676,12 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " candidate." }, + { OPT_PARALLEL, false, false, false, false, false, 0, "parallel", + 0, + "Tell the tool that it will be called multiple times in parallel." + " Currently it only has an effect if --cache is enabled." + }, + { OPT_MAX_FILE_SIZE, false, false, false, false, false, 'M', "max-file-size", "size", "This security option defines the maximum file size for input files;" @@ -1822,7 +1865,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 218 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 224 }; @@ -1926,6 +1969,12 @@ static const InfoOption_t option_cmd_FILETYPE_LONG = " version. If entered twice, a validation status column is added." }; +static const InfoOption_t option_cmd_UI_CHECK_LONG = + { OPT_LONG, false, false, false, false, false, 'l', "long", + 0, + "Print the result as technical list." + }; + static const InfoOption_t option_cmd_BRSUB_LONG = { OPT_LONG, false, false, false, false, false, 'l', "long", 0, @@ -2327,7 +2376,7 @@ static const InfoOption_t option_cmd_VEHICLE_BRIEF = static const KeywordTab_t CommandTab[] = { - { CMD_VERSION, "VERSION", 0, 0 }, + { CMD_VERSION, "VERSION", "V", 0 }, { CMD_HELP, "HELP", "H", 0 }, { CMD_HELP, "?", 0, 0 }, { CMD_CONFIG, "CONFIG", 0, 0 }, @@ -2338,6 +2387,8 @@ static const KeywordTab_t CommandTab[] = { CMD_COLORS, "COLORS", 0, 0 }, { CMD_ERROR, "ERROR", "ERR", 0 }, { CMD_FILETYPE, "FILETYPE", "FT", 0 }, + { CMD_UI_CHECK, "UI-CHECK", "UC", 0 }, + { CMD_UI_CHECK, "UICHECK", 0, 0 }, { CMD_FILEATTRIB, "FILEATTRIB", "FA", 0 }, { CMD_BRSUB, "BRSUB", 0, 0 }, { CMD_SYMBOLS, "SYMBOLS", 0, 0 }, @@ -2590,8 +2641,17 @@ static const struct option OptionLong[] = { "filterbmg", 1, 0, GO_FILTER_BMG }, { "fb", 1, 0, GO_FILTER_BMG }, { "msg", 1, 0, GO_FILTER_BMG }, + { "le-menu", 0, 0, GO_LE_MENU }, + { "lemenu", 0, 0, GO_LE_MENU }, + { "title-screen", 1, 0, GO_TITLE_SCREEN }, + { "titlescreen", 1, 0, GO_TITLE_SCREEN }, + { "cup-icons", 1, 0, GO_CUP_ICONS }, + { "cupicons", 1, 0, GO_CUP_ICONS }, + { "no-copy", 0, 0, GO_NO_COPY }, + { "nocopy", 0, 0, GO_NO_COPY }, { "cache", 1, 0, GO_CACHE }, { "cname", 1, 0, GO_CNAME }, + { "parallel", 0, 0, GO_PARALLEL }, { "id", 0, 0, GO_ID }, { "base64", 2, 0, GO_BASE64 }, { "db64", 2, 0, GO_DB64 }, @@ -2602,6 +2662,8 @@ static const struct option OptionLong[] = { "no-header", 0, 0, 'H' }, { "noheader", 0, 0, 'H' }, { "brief", 0, 0, 'B' }, + { "in-order", 0, 0, GO_IN_ORDER }, + { "inorder", 0, 0, GO_IN_ORDER }, { "pipe", 0, 0, GO_PIPE }, { "delta", 0, 0, GO_DELTA }, { "diff", 0, 0, GO_DIFF }, @@ -2945,101 +3007,108 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x0d4 */ OPT_PATCH_BMG, /* 0x0d5 */ OPT_MACRO_BMG, /* 0x0d6 */ OPT_FILTER_BMG, - /* 0x0d7 */ OPT_CACHE, - /* 0x0d8 */ OPT_CNAME, - /* 0x0d9 */ OPT_ID, - /* 0x0da */ OPT_BASE64, - /* 0x0db */ OPT_DB64, - /* 0x0dc */ OPT_CODING, - /* 0x0dd */ OPT_VERIFY, - /* 0x0de */ OPT_ROUND, - /* 0x0df */ OPT_PIPE, - /* 0x0e0 */ OPT_DELTA, - /* 0x0e1 */ OPT_DIFF, - /* 0x0e2 */ OPT_EPSILON, - /* 0x0e3 */ OPT_BMG_ENDIAN, - /* 0x0e4 */ OPT_BMG_ENCODING, - /* 0x0e5 */ OPT_BMG_INF_SIZE, - /* 0x0e6 */ OPT_BMG_MID, - /* 0x0e7 */ OPT_FORCE_ATTRIB, - /* 0x0e8 */ OPT_DEF_ATTRIB, - /* 0x0e9 */ OPT_NO_ATTRIB, - /* 0x0ea */ OPT_X_ESCAPES, - /* 0x0eb */ OPT_OLD_ESCAPES, - /* 0x0ec */ OPT_NO_BMG_COLORS, - /* 0x0ed */ OPT_BMG_COLORS, - /* 0x0ee */ OPT_NO_BMG_INLINE, - /* 0x0ef */ OPT_AUTOADD_PATH, - /* 0x0f0 */ OPT_STRIP, - /* 0x0f1 */ OPT_UTF_8, - /* 0x0f2 */ OPT_NO_UTF_8, - /* 0x0f3 */ OPT_FORCE, - /* 0x0f4 */ OPT_REPAIR_MAGICS, - /* 0x0f5 */ OPT_TINY, - /* 0x0f6 */ OPT_YAZ0, - /* 0x0f7 */ OPT_YAZ1, - /* 0x0f8 */ OPT_XYZ, - /* 0x0f9 */ OPT_BZ, - /* 0x0fa */ OPT_SH, - /* 0x0fb */ OPT_BASH, - /* 0x0fc */ OPT_JSON, - /* 0x0fd */ OPT_PHP, - /* 0x0fe */ OPT_MAKEDOC, - /* 0x0ff */ OPT_VAR, - /* 0x100 */ OPT_ARRAY, - /* 0x101 */ OPT_AVAR, - /* 0x102 */ OPT_CASE, - /* 0x103 */ OPT_FMODES, - /* 0x104 */ OPT_INSTALL, - /* 0x105 */ OPT_ANALYZE, - /* 0x106 */ OPT_ANALYZE_MODE, - /* 0x107 */ OPT_OLD, - /* 0x108 */ OPT_STD, - /* 0x109 */ OPT_NEW, - /* 0x10a */ OPT_EXTRACT, - /* 0x10b */ OPT_REFERENCE, - /* 0x10c */ OPT_NUMBER, - /* 0x10d */ OPT_REMOVE_SRC, - /* 0x10e */ OPT_IGNORE_SETUP, - /* 0x10f */ OPT_PURGE, - /* 0x110 */ OPT_ALIGN_U8, - /* 0x111 */ OPT_ALIGN_PACK, - /* 0x112 */ OPT_ALIGN_BRRES, - /* 0x113 */ OPT_ALIGN_BREFF, - /* 0x114 */ OPT_ALIGN_BREFT, - /* 0x115 */ OPT_ALIGN, - /* 0x116 */ OPT_ENCODE_ALL, - /* 0x117 */ OPT_ENCODE_IMG, - /* 0x118 */ OPT_NO_ENCODE, - /* 0x119 */ OPT_NO_RECURSE, - /* 0x11a */ OPT_AUTO_ADD, - /* 0x11b */ OPT_NO_ECHO, - /* 0x11c */ OPT_PT_DIR, - /* 0x11d */ OPT_RM_AIPARAM, - /* 0x11e */ OPT_U8, - /* 0x11f */ OPT_SZS, - /* 0x120 */ OPT_WU8, - /* 0x121 */ OPT_XWU8, - /* 0x122 */ OPT_WBZ, - /* 0x123 */ OPT_PACK, - /* 0x124 */ OPT_BRRES, - /* 0x125 */ OPT_BREFF, - /* 0x126 */ OPT_BREFT, - /* 0x127 */ OPT_NO_COMPRESS, - /* 0x128 */ OPT_FAST, - /* 0x129 */ OPT_LINKS, - /* 0x12a */ OPT_BASEDIR, - /* 0x12b */ OPT_DECODE, - /* 0x12c */ OPT_MIPMAPS, - /* 0x12d */ OPT_NO_MIPMAPS, - /* 0x12e */ OPT_N_MIPMAPS, - /* 0x12f */ OPT_MAX_MIPMAPS, - /* 0x130 */ OPT_MIPMAP_SIZE, - /* 0x131 */ OPT_FAST_MIPMAPS, - /* 0x132 */ OPT_CMPR_DEFAULT, - /* 0x133 */ OPT_CUT, - /* 0x134 */ OPT_RAW, - /* 0x135 */ OPT_SECTIONS, + /* 0x0d7 */ OPT_LE_MENU, + /* 0x0d8 */ OPT_TITLE_SCREEN, + /* 0x0d9 */ OPT_CUP_ICONS, + /* 0x0da */ OPT_NO_COPY, + /* 0x0db */ OPT_CACHE, + /* 0x0dc */ OPT_CNAME, + /* 0x0dd */ OPT_PARALLEL, + /* 0x0de */ OPT_ID, + /* 0x0df */ OPT_BASE64, + /* 0x0e0 */ OPT_DB64, + /* 0x0e1 */ OPT_CODING, + /* 0x0e2 */ OPT_VERIFY, + /* 0x0e3 */ OPT_ROUND, + /* 0x0e4 */ OPT_IN_ORDER, + /* 0x0e5 */ OPT_PIPE, + /* 0x0e6 */ OPT_DELTA, + /* 0x0e7 */ OPT_DIFF, + /* 0x0e8 */ OPT_EPSILON, + /* 0x0e9 */ OPT_BMG_ENDIAN, + /* 0x0ea */ OPT_BMG_ENCODING, + /* 0x0eb */ OPT_BMG_INF_SIZE, + /* 0x0ec */ OPT_BMG_MID, + /* 0x0ed */ OPT_FORCE_ATTRIB, + /* 0x0ee */ OPT_DEF_ATTRIB, + /* 0x0ef */ OPT_NO_ATTRIB, + /* 0x0f0 */ OPT_X_ESCAPES, + /* 0x0f1 */ OPT_OLD_ESCAPES, + /* 0x0f2 */ OPT_NO_BMG_COLORS, + /* 0x0f3 */ OPT_BMG_COLORS, + /* 0x0f4 */ OPT_NO_BMG_INLINE, + /* 0x0f5 */ OPT_AUTOADD_PATH, + /* 0x0f6 */ OPT_STRIP, + /* 0x0f7 */ OPT_UTF_8, + /* 0x0f8 */ OPT_NO_UTF_8, + /* 0x0f9 */ OPT_FORCE, + /* 0x0fa */ OPT_REPAIR_MAGICS, + /* 0x0fb */ OPT_TINY, + /* 0x0fc */ OPT_YAZ0, + /* 0x0fd */ OPT_YAZ1, + /* 0x0fe */ OPT_XYZ, + /* 0x0ff */ OPT_BZ, + /* 0x100 */ OPT_SH, + /* 0x101 */ OPT_BASH, + /* 0x102 */ OPT_JSON, + /* 0x103 */ OPT_PHP, + /* 0x104 */ OPT_MAKEDOC, + /* 0x105 */ OPT_VAR, + /* 0x106 */ OPT_ARRAY, + /* 0x107 */ OPT_AVAR, + /* 0x108 */ OPT_CASE, + /* 0x109 */ OPT_FMODES, + /* 0x10a */ OPT_INSTALL, + /* 0x10b */ OPT_ANALYZE, + /* 0x10c */ OPT_ANALYZE_MODE, + /* 0x10d */ OPT_OLD, + /* 0x10e */ OPT_STD, + /* 0x10f */ OPT_NEW, + /* 0x110 */ OPT_EXTRACT, + /* 0x111 */ OPT_REFERENCE, + /* 0x112 */ OPT_NUMBER, + /* 0x113 */ OPT_REMOVE_SRC, + /* 0x114 */ OPT_IGNORE_SETUP, + /* 0x115 */ OPT_PURGE, + /* 0x116 */ OPT_ALIGN_U8, + /* 0x117 */ OPT_ALIGN_PACK, + /* 0x118 */ OPT_ALIGN_BRRES, + /* 0x119 */ OPT_ALIGN_BREFF, + /* 0x11a */ OPT_ALIGN_BREFT, + /* 0x11b */ OPT_ALIGN, + /* 0x11c */ OPT_ENCODE_ALL, + /* 0x11d */ OPT_ENCODE_IMG, + /* 0x11e */ OPT_NO_ENCODE, + /* 0x11f */ OPT_NO_RECURSE, + /* 0x120 */ OPT_AUTO_ADD, + /* 0x121 */ OPT_NO_ECHO, + /* 0x122 */ OPT_PT_DIR, + /* 0x123 */ OPT_RM_AIPARAM, + /* 0x124 */ OPT_U8, + /* 0x125 */ OPT_SZS, + /* 0x126 */ OPT_WU8, + /* 0x127 */ OPT_XWU8, + /* 0x128 */ OPT_WBZ, + /* 0x129 */ OPT_PACK, + /* 0x12a */ OPT_BRRES, + /* 0x12b */ OPT_BREFF, + /* 0x12c */ OPT_BREFT, + /* 0x12d */ OPT_NO_COMPRESS, + /* 0x12e */ OPT_FAST, + /* 0x12f */ OPT_LINKS, + /* 0x130 */ OPT_BASEDIR, + /* 0x131 */ OPT_DECODE, + /* 0x132 */ OPT_MIPMAPS, + /* 0x133 */ OPT_NO_MIPMAPS, + /* 0x134 */ OPT_N_MIPMAPS, + /* 0x135 */ OPT_MAX_MIPMAPS, + /* 0x136 */ OPT_MIPMAP_SIZE, + /* 0x137 */ OPT_FAST_MIPMAPS, + /* 0x138 */ OPT_CMPR_DEFAULT, + /* 0x139 */ OPT_CUT, + /* 0x13a */ OPT_RAW, + /* 0x13b */ OPT_SECTIONS, + /* 0x13c */ 0,0,0,0, }; // @@ -3047,724 +3116,733 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[137] = // cmd #1 +static u8 option_allowed_cmd_VERSION[142] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_HELP[137] = // cmd #2 +static u8 option_allowed_cmd_HELP[142] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 }; -static u8 option_allowed_cmd_CONFIG[137] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[142] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_INSTALL[137] = // cmd #4 +static u8 option_allowed_cmd_INSTALL[142] = // cmd #4 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_ARGTEST[137] = // cmd #5 +static u8 option_allowed_cmd_ARGTEST[142] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 }; -static u8 option_allowed_cmd_EXPAND[137] = // cmd #6 +static u8 option_allowed_cmd_EXPAND[142] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 }; -static u8 option_allowed_cmd_TEST[137] = // cmd #7 +static u8 option_allowed_cmd_TEST[142] = // cmd #7 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1 }; -static u8 option_allowed_cmd_COLORS[137] = // cmd #8 +static u8 option_allowed_cmd_COLORS[142] = // cmd #8 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_ERROR[137] = // cmd #9 +static u8 option_allowed_cmd_ERROR[142] = // cmd #9 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_FILETYPE[137] = // cmd #10 +static u8 option_allowed_cmd_FILETYPE[142] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[137] = // cmd #11 +static u8 option_allowed_cmd_UI_CHECK[142] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 +}; + +static u8 option_allowed_cmd_FILEATTRIB[142] = // cmd #12 +{ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_BRSUB[137] = // cmd #12 +static u8 option_allowed_cmd_BRSUB[142] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_SYMBOLS[137] = // cmd #13 +static u8 option_allowed_cmd_SYMBOLS[142] = // cmd #14 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[137] = // cmd #14 +static u8 option_allowed_cmd_FUNCTIONS[142] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_CALCULATE[137] = // cmd #15 +static u8 option_allowed_cmd_CALCULATE[142] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_MATRIX[137] = // cmd #16 +static u8 option_allowed_cmd_MATRIX[142] = // cmd #17 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_FLOAT[137] = // cmd #17 +static u8 option_allowed_cmd_FLOAT[142] = // cmd #18 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_VR_CALC[137] = // cmd #18 +static u8 option_allowed_cmd_VR_CALC[142] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_VR_RACE[137] = // cmd #19 +static u8 option_allowed_cmd_VR_RACE[142] = // cmd #20 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_AUTOADD[137] = // cmd #20 +static u8 option_allowed_cmd_AUTOADD[142] = // cmd #21 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,1, 0,0,1,0,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,1, + 0,0,1,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_TRACKS[137] = // cmd #21 +static u8 option_allowed_cmd_TRACKS[142] = // cmd #22 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 1,0,0,1,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 }; -static u8 option_allowed_cmd_SCANCACHE[137] = // cmd #22 +static u8 option_allowed_cmd_SCANCACHE[142] = // cmd #23 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_EXPORT[137] = // cmd #23 +static u8 option_allowed_cmd_EXPORT[142] = // cmd #24 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_SIZEOF[137] = // cmd #24 +static u8 option_allowed_cmd_SIZEOF[142] = // cmd #25 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_CODE[137] = // cmd #25 +static u8 option_allowed_cmd_CODE[142] = // cmd #26 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_RECODE[137] = // cmd #26 +static u8 option_allowed_cmd_RECODE[142] = // cmd #27 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_SUBFILE[137] = // cmd #27 +static u8 option_allowed_cmd_SUBFILE[142] = // cmd #28 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_TESTNORM[137] = // cmd #28 +static u8 option_allowed_cmd_TESTNORM[142] = // cmd #29 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_LIST[137] = // cmd #29 +static u8 option_allowed_cmd_LIST[142] = // cmd #30 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_LIST_L[137] = // cmd #30 +static u8 option_allowed_cmd_LIST_L[142] = // cmd #31 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_LIST_LL[137] = // cmd #31 +static u8 option_allowed_cmd_LIST_LL[142] = // cmd #32 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_LIST_LLL[137] = // cmd #32 +static u8 option_allowed_cmd_LIST_LLL[142] = // cmd #33 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_LIST_A[137] = // cmd #33 +static u8 option_allowed_cmd_LIST_A[142] = // cmd #34 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_LIST_LA[137] = // cmd #34 +static u8 option_allowed_cmd_LIST_LA[142] = // cmd #35 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_NAME_REF[137] = // cmd #35 +static u8 option_allowed_cmd_NAME_REF[142] = // cmd #36 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_ILIST[137] = // cmd #36 +static u8 option_allowed_cmd_ILIST[142] = // cmd #37 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_ILIST_L[137] = // cmd #37 +static u8 option_allowed_cmd_ILIST_L[142] = // cmd #38 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_ILIST_LL[137] = // cmd #38 +static u8 option_allowed_cmd_ILIST_LL[142] = // cmd #39 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_ILIST_A[137] = // cmd #39 +static u8 option_allowed_cmd_ILIST_A[142] = // cmd #40 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_ILIST_LA[137] = // cmd #40 +static u8 option_allowed_cmd_ILIST_LA[142] = // cmd #41 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_MEMORY[137] = // cmd #41 +static u8 option_allowed_cmd_MEMORY[142] = // cmd #42 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_MEMORY_A[137] = // cmd #42 +static u8 option_allowed_cmd_MEMORY_A[142] = // cmd #43 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 + 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0 }; -static u8 option_allowed_cmd_DUMP[137] = // cmd #43 +static u8 option_allowed_cmd_DUMP[142] = // cmd #44 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_SHA1[137] = // cmd #44 +static u8 option_allowed_cmd_SHA1[142] = // cmd #45 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_ANALYZE[137] = // cmd #45 +static u8 option_allowed_cmd_ANALYZE[142] = // cmd #46 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_SPLIT[137] = // cmd #46 +static u8 option_allowed_cmd_SPLIT[142] = // cmd #47 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_IS_TEXTURE[137] = // cmd #47 +static u8 option_allowed_cmd_IS_TEXTURE[142] = // cmd #48 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_FEATURES[137] = // cmd #48 +static u8 option_allowed_cmd_FEATURES[142] = // cmd #49 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,1,1,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_DISTRIBUTION[137] = // cmd #49 +static u8 option_allowed_cmd_DISTRIBUTION[142] = // cmd #50 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 1,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_DIFF[137] = // cmd #50 +static u8 option_allowed_cmd_DIFF[142] = // cmd #51 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,1,1, 0,0 + 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,1,1, 0,0 }; -static u8 option_allowed_cmd_CHECK[137] = // cmd #51 +static u8 option_allowed_cmd_CHECK[142] = // cmd #52 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 1,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,1, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_SLOTS[137] = // cmd #52 +static u8 option_allowed_cmd_SLOTS[142] = // cmd #53 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, - 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,0,0,0, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_STGI[137] = // cmd #53 +static u8 option_allowed_cmd_STGI[142] = // cmd #54 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_ISARENA[137] = // cmd #54 +static u8 option_allowed_cmd_ISARENA[142] = // cmd #55 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_NORMALIZE[137] = // cmd #55 +static u8 option_allowed_cmd_NORMALIZE[142] = // cmd #56 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, + 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_PATCH[137] = // cmd #56 +static u8 option_allowed_cmd_PATCH[142] = // cmd #57 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_COPY[137] = // cmd #57 +static u8 option_allowed_cmd_COPY[142] = // cmd #58 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_DUPLICATE[137] = // cmd #58 +static u8 option_allowed_cmd_DUPLICATE[142] = // cmd #59 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,1, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,1, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_MINIMAP[137] = // cmd #59 +static u8 option_allowed_cmd_MINIMAP[142] = // cmd #60 { 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,1,0,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,0,0, 0,0,0,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_COMPRESS[137] = // cmd #60 +static u8 option_allowed_cmd_COMPRESS[142] = // cmd #61 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, 0,0,0,1,1, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,1, 1,1,1,0,0, + 0,0,0,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_DECOMPRESS[137] = // cmd #61 +static u8 option_allowed_cmd_DECOMPRESS[142] = // cmd #62 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, - 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,0, 1,0,0,0,0, 0,0,0,0,0, - 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,1,1,1,1, 1,0,0,1,1, 1,1,1,1,0, 0,0,0,1,0, 0,1,1,1,0, 1,0,0,0,0, + 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_ENCODE[137] = // cmd #62 +static u8 option_allowed_cmd_ENCODE[142] = // cmd #63 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,0,1,1, 1,1,1,1,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,0,1,1, 1,1,1,1,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_CREATE[137] = // cmd #63 +static u8 option_allowed_cmd_CREATE[142] = // cmd #64 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 0,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 0,1,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,1, 0,1,0,0,0, 0,1,1,1,1, 1,1,1,0,1, 0,0 }; -static u8 option_allowed_cmd_UPDATE[137] = // cmd #64 +static u8 option_allowed_cmd_UPDATE[142] = // cmd #65 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, - 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,1, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,1, 1,1,1,0,1, 1,0,0,0,0, 0,0,0,0,0, + 0,0,1,1,1, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,1, 0,0 }; -static u8 option_allowed_cmd_EXTRACT[137] = // cmd #65 +static u8 option_allowed_cmd_EXTRACT[142] = // cmd #66 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 }; -static u8 option_allowed_cmd_XDECODE[137] = // cmd #66 +static u8 option_allowed_cmd_XDECODE[142] = // cmd #67 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 }; -static u8 option_allowed_cmd_XEXPORT[137] = // cmd #67 +static u8 option_allowed_cmd_XEXPORT[142] = // cmd #68 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 }; -static u8 option_allowed_cmd_XALL[137] = // cmd #68 +static u8 option_allowed_cmd_XALL[142] = // cmd #69 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,1, 1,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,1, + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,1,1,1,1, 1,1,1,0,0, 0,1,1,1,1, 1,0 }; -static u8 option_allowed_cmd_XCOMMON[137] = // cmd #69 +static u8 option_allowed_cmd_XCOMMON[142] = // cmd #70 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_BINARY[137] = // cmd #70 +static u8 option_allowed_cmd_BINARY[142] = // cmd #71 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_TEXT[137] = // cmd #71 +static u8 option_allowed_cmd_TEXT[142] = // cmd #72 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1, + 1,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_CAT[137] = // cmd #72 +static u8 option_allowed_cmd_CAT[142] = // cmd #73 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,1, 1,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,1, + 1,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_BMG[137] = // cmd #73 +static u8 option_allowed_cmd_BMG[142] = // cmd #74 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, 0,0,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, + 0,0,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_KCL[137] = // cmd #74 +static u8 option_allowed_cmd_KCL[142] = // cmd #75 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_KMP[137] = // cmd #75 +static u8 option_allowed_cmd_KMP[142] = // cmd #76 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 1,1,1,1,1, 1,1,0,1,0, 0,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_LEX[137] = // cmd #76 +static u8 option_allowed_cmd_LEX[142] = // cmd #77 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_INFO[137] = // cmd #77 +static u8 option_allowed_cmd_INFO[142] = // cmd #78 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_GHOST[137] = // cmd #78 +static u8 option_allowed_cmd_GHOST[142] = // cmd #79 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, + 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1 }; -static u8 option_allowed_cmd_YAZDUMP[137] = // cmd #79 +static u8 option_allowed_cmd_YAZDUMP[142] = // cmd #80 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,1,1, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 1,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; -static u8 option_allowed_cmd_VEHICLE[137] = // cmd #80 +static u8 option_allowed_cmd_VEHICLE[142] = // cmd #81 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0 }; @@ -3828,6 +3906,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_LEX_RM_FEAT, OptionInfo + OPT_CACHE, OptionInfo + OPT_CNAME, + OptionInfo + OPT_PARALLEL, OptionInfo + OPT_MAX_FILE_SIZE, OptionInfo + OPT_TRACKS, OptionInfo + OPT_ARENAS, @@ -3954,6 +4033,16 @@ static const InfoOption_t * option_tab_cmd_FILETYPE[] = 0 }; +static const InfoOption_t * option_tab_cmd_UI_CHECK[] = +{ + &option_cmd_UI_CHECK_LONG, + OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, + OptionInfo + OPT_IGNORE, + + 0 +}; + static const InfoOption_t * option_tab_cmd_FILEATTRIB[] = { OptionInfo + OPT_NO_HEADER, @@ -4138,6 +4227,7 @@ static const InfoOption_t * option_tab_cmd_LIST[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4203,6 +4293,7 @@ static const InfoOption_t * option_tab_cmd_LIST_L[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4268,6 +4359,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LL[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4333,6 +4425,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LLL[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4398,6 +4491,7 @@ static const InfoOption_t * option_tab_cmd_LIST_A[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -4463,6 +4557,7 @@ static const InfoOption_t * option_tab_cmd_LIST_LA[] = &option_cmd_LIST_LONG, OptionInfo + OPT_SORT, OptionInfo + OPT_NO_HEADER, + OptionInfo + OPT_IN_ORDER, OptionInfo + OPT_IGNORE_SETUP, OptionInfo + OPT_U8, OptionInfo + OPT_WU8, @@ -5377,6 +5472,9 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -5485,6 +5583,9 @@ static const InfoOption_t * option_tab_cmd_SLOTS[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -5601,6 +5702,9 @@ static const InfoOption_t * option_tab_cmd_NORMALIZE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -5619,6 +5723,7 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_NUMBER, OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_REMOVE_SRC, + OptionInfo + OPT_NO_COPY, OptionInfo + OPT_NONE, // separator @@ -5696,6 +5801,9 @@ static const InfoOption_t * option_tab_cmd_PATCH[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -5714,6 +5822,7 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_NUMBER, OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_REMOVE_SRC, + OptionInfo + OPT_NO_COPY, OptionInfo + OPT_NONE, // separator @@ -5791,6 +5900,9 @@ static const InfoOption_t * option_tab_cmd_COPY[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -5810,6 +5922,7 @@ static const InfoOption_t * option_tab_cmd_DUPLICATE[] = OptionInfo + OPT_NUMBER, OptionInfo + OPT_REMOVE_DEST, OptionInfo + OPT_REMOVE_SRC, + OptionInfo + OPT_NO_COPY, OptionInfo + OPT_NONE, // separator @@ -5887,6 +6000,9 @@ static const InfoOption_t * option_tab_cmd_DUPLICATE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6037,6 +6153,9 @@ static const InfoOption_t * option_tab_cmd_COMPRESS[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6122,6 +6241,9 @@ static const InfoOption_t * option_tab_cmd_DECOMPRESS[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6210,6 +6332,9 @@ static const InfoOption_t * option_tab_cmd_ENCODE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6330,6 +6455,9 @@ static const InfoOption_t * option_tab_cmd_CREATE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6418,6 +6546,9 @@ static const InfoOption_t * option_tab_cmd_UPDATE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6505,6 +6636,9 @@ static const InfoOption_t * option_tab_cmd_EXTRACT[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6592,6 +6726,9 @@ static const InfoOption_t * option_tab_cmd_XDECODE[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6679,6 +6816,9 @@ static const InfoOption_t * option_tab_cmd_XEXPORT[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6766,6 +6906,9 @@ static const InfoOption_t * option_tab_cmd_XALL[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -6961,6 +7104,9 @@ static const InfoOption_t * option_tab_cmd_KCL[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -7023,6 +7169,9 @@ static const InfoOption_t * option_tab_cmd_KMP[] = OptionInfo + OPT_PATCH_BMG, OptionInfo + OPT_MACRO_BMG, OptionInfo + OPT_FILTER_BMG, + OptionInfo + OPT_LE_MENU, + OptionInfo + OPT_TITLE_SCREEN, + OptionInfo + OPT_CUP_ICONS, 0 }; @@ -7121,7 +7270,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " SZS, U8, PACK, BRRES, BREFF and BREFT archives. Additonally, RARC" " archive can be extracted. It is also a wrapper to all other tools.", 0, - 74, + 75, option_tab_tool, 0 }, @@ -7131,7 +7280,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = false, false, "VERSION", - 0, + "V", "wszst VERSION [ignored]...", "Print program name and version and exit.", 0, @@ -7291,6 +7440,24 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_FILETYPE }, + { CMD_UI_CHECK, + false, + false, + false, + "UI-CHECK", + "UC", + "wszst UI-CHECK file...", + "Classify SZS files from directory .../Scene/UI/. For the analysis," + " the filename is ignored and only the content is examined.Wildcards" + " are accepted, see https://szs.wiimm.de/doc/wildcards for details." + " After evaluating the wildcards, all input files are sorted according" + " to their path and duplicates are deleted.", + 0, + 4, + option_tab_cmd_UI_CHECK, + option_allowed_cmd_UI_CHECK + }, + { CMD_FILEATTRIB, false, false, @@ -7607,9 +7774,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst LIST [source]...", "List all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" " archives. If listing a directory, then a virtual SZS file is created" - " (like CREATE does it) and listed.", + " (like CREATE does it) and listed. Wildcards are accepted, see" + " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" + " wildcards, all input files are sorted according to their path and" + " duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST, option_allowed_cmd_LIST }, @@ -7622,9 +7792,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LL", "wszst LIST-L [source]...", "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" - " 'LIST --long'.", + " 'LIST --long'. Wildcards are accepted, see" + " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" + " wildcards, all input files are sorted according to their path and" + " duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST_L, option_allowed_cmd_LIST_L }, @@ -7637,9 +7810,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LLL", "wszst LIST-LL [source]...", "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" - " short cuts for 'LIST --long --long'.", + " short cuts for 'LIST --long --long'. Wildcards are accepted, see" + " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" + " wildcards, all input files are sorted according to their path and" + " duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST_LL, option_allowed_cmd_LIST_LL }, @@ -7652,9 +7828,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LLLL", "wszst LIST-LLL [source]...", "List all sub files with offset and size in debugging mode. 'LIST-LLL'" - " and 'LLLL' are short cuts for 'LIST --long --long --long'.", + " and 'LLLL' are short cuts for 'LIST --long --long --long'. Wildcards" + " are accepted, see https://szs.wiimm.de/doc/wildcards for details." + " After evaluating the wildcards, all input files are sorted according" + " to their path and duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST_LLL, option_allowed_cmd_LIST_LLL }, @@ -7667,9 +7846,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LA", "wszst LIST-A [source]...", "List recursive all sub files with size. 'LIST-A' and 'LA' are short" - " cuts for 'LIST --long --all --all'.", + " cuts for 'LIST --long --all --all'. Wildcards are accepted, see" + " https://szs.wiimm.de/doc/wildcards for details. After evaluating the" + " wildcards, all input files are sorted according to their path and" + " duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST_A, option_allowed_cmd_LIST_A }, @@ -7682,9 +7864,12 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "LLA", "wszst LIST-LA [source]...", "List recursive all sub files with offset and size. 'LIST-LA' and" - " 'LLA' are short cuts for 'LIST --long --long --all --all'.", + " 'LLA' are short cuts for 'LIST --long --long --all --all'. Wildcards" + " are accepted, see https://szs.wiimm.de/doc/wildcards for details." + " After evaluating the wildcards, all input files are sorted according" + " to their path and duplicates are deleted.", 0, - 50, + 51, option_tab_cmd_LIST_LA, option_allowed_cmd_LIST_LA }, @@ -7969,7 +8154,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " internal object and file database. The source can be a SZS, U8, WU8" " or WBZ file, or an U8 like directory.", 0, - 94, + 97, option_tab_cmd_CHECK, option_allowed_cmd_CHECK }, @@ -7987,7 +8172,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " positive or a negative slot list, whatever is shorter. For battle" " arenas, the keyword ARENA is printed.", 0, - 90, + 93, option_tab_cmd_SLOTS, option_allowed_cmd_SLOTS }, @@ -8045,7 +8230,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " changed.\n" " 'wszst NORMALIZE' is the same as 'wszst PATCH --norm'.", 0, - 76, + 79, option_tab_cmd_NORMALIZE, option_allowed_cmd_NORMALIZE }, @@ -8060,9 +8245,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Patch an U8 archive, compressed or not: Load the archive, apply all" " patching and transforming options and store the file again." " Compressed sources are compressed again. The destination is only" - " written if any data changed.", + " written if any data changed or if stored in another file. Wildcards" + " are accepted, see https://szs.wiimm.de/doc/wildcards for details.", 0, - 77, + 81, option_tab_cmd_PATCH, option_allowed_cmd_PATCH }, @@ -8083,7 +8269,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " destination filename with escapes. Patching is also possible and" " option --overwrite is set implicitly.", 0, - 77, + 81, option_tab_cmd_COPY, option_allowed_cmd_COPY }, @@ -8108,7 +8294,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Use command 'wkmpt GAMEMODES' to list all variants and to check them" " beforehand.", 0, - 78, + 82, option_tab_cmd_DUPLICATE, option_allowed_cmd_DUPLICATE }, @@ -8142,7 +8328,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " compressed, then decompress and compress it again. The default" " destination is '%P/%N.szs'.", 0, - 77, + 80, option_tab_cmd_COMPRESS, option_allowed_cmd_COMPRESS }, @@ -8156,7 +8342,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst DECOMPRESS [szs]...", "Decompress SZS files. The default destination is '%P/%N.u8'.", 0, - 70, + 73, option_tab_cmd_DECOMPRESS, option_allowed_cmd_DECOMPRESS }, @@ -8171,7 +8357,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Create and/or encode sub files if necessary. It works like command" " CREATE, but without creating a new first level archive file.", 0, - 73, + 76, option_tab_cmd_ENCODE, option_allowed_cmd_ENCODE }, @@ -8187,7 +8373,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " not hidden files of the directory structure. Create and/or encode" " sub files if necessary. The default destination is '%P/%N%T'.", 0, - 99, + 102, option_tab_cmd_CREATE, option_allowed_cmd_CREATE }, @@ -8206,7 +8392,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " secondary source is used to find the source sub files. The default" " secondary source is '%P/%N.d/'.", 0, - 70, + 73, option_tab_cmd_UPDATE, option_allowed_cmd_UPDATE }, @@ -8221,7 +8407,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" " archives. The default destination is '%P/%N.d/'.", 0, - 75, + 78, option_tab_cmd_EXTRACT, option_allowed_cmd_EXTRACT }, @@ -8238,7 +8424,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " and decodes all supported files. The default destination is" " '%P/%N.d/'.", 0, - 75, + 78, option_tab_cmd_XDECODE, option_allowed_cmd_XDECODE }, @@ -8255,7 +8441,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " archives and decodes all supported files with enabled export mode." " The default destination is '%P/%N.d/'.", 0, - 75, + 78, option_tab_cmd_XEXPORT, option_allowed_cmd_XEXPORT }, @@ -8272,7 +8458,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " recursively and decodes all supported files. The default destination" " is '%P/%N.d/'.", 0, - 75, + 78, option_tab_cmd_XALL, option_allowed_cmd_XALL }, @@ -8373,7 +8559,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " Automated dropping of bad KCL triangles is enabled if no other drop" " option is specified by option --kcl.", 0, - 52, + 55, option_tab_cmd_KCL, option_allowed_cmd_KCL }, @@ -8388,7 +8574,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "For each archive the KMP sub file course.kmp is searched and, if" " found, decoded and printed (copied to stdout).", 0, - 53, + 56, option_tab_cmd_KMP, option_allowed_cmd_KMP }, diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h index b6e5856..d0fa879 100644 --- a/project/src/ui/ui-wszst.h +++ b/project/src/ui/ui-wszst.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -99,6 +99,10 @@ typedef enum enumOptions OPT_PATCH_BMG, OPT_MACRO_BMG, OPT_FILTER_BMG, + OPT_LE_MENU, + OPT_TITLE_SCREEN, + OPT_CUP_ICONS, + OPT_NO_COPY, OPT_ID, OPT_BASE64, OPT_DB64, @@ -108,6 +112,7 @@ typedef enum enumOptions OPT_LONG, OPT_NO_HEADER, OPT_BRIEF, + OPT_IN_ORDER, OPT_PIPE, OPT_DELTA, OPT_DIFF, @@ -193,7 +198,7 @@ typedef enum enumOptions OPT_RAW, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 137 + OPT__N_SPECIFIC, // == 142 //----- global options ----- @@ -251,6 +256,7 @@ typedef enum enumOptions OPT_LEX_RM_FEAT, OPT_CACHE, OPT_CNAME, + OPT_PARALLEL, OPT_MAX_FILE_SIZE, OPT_TRACKS, OPT_ARENAS, @@ -279,7 +285,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 218 + OPT__N_TOTAL // == 224 } enumOptions; @@ -337,6 +343,10 @@ typedef enum enumOptions // OB_PATCH_BMG = 1llu << OPT_PATCH_BMG, // OB_MACRO_BMG = 1llu << OPT_MACRO_BMG, // OB_FILTER_BMG = 1llu << OPT_FILTER_BMG, +// OB_LE_MENU = 1llu << OPT_LE_MENU, +// OB_TITLE_SCREEN = 1llu << OPT_TITLE_SCREEN, +// OB_CUP_ICONS = 1llu << OPT_CUP_ICONS, +// OB_NO_COPY = 1llu << OPT_NO_COPY, // OB_ID = 1llu << OPT_ID, // OB_BASE64 = 1llu << OPT_BASE64, // OB_DB64 = 1llu << OPT_DB64, @@ -346,6 +356,7 @@ typedef enum enumOptions // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, // OB_BRIEF = 1llu << OPT_BRIEF, +// OB_IN_ORDER = 1llu << OPT_IN_ORDER, // OB_PIPE = 1llu << OPT_PIPE, // OB_DELTA = 1llu << OPT_DELTA, // OB_DIFF = 1llu << OPT_DIFF, @@ -459,7 +470,10 @@ typedef enum enumOptions // | OB_MINIMAP // | OB_PATCH_BMG // | OB_MACRO_BMG -// | OB_FILTER_BMG, +// | OB_FILTER_BMG +// | OB_LE_MENU +// | OB_TITLE_SCREEN +// | OB_CUP_ICONS, // // OB_GRP_DEST = OB_DEST // | OB_DEST2 @@ -598,6 +612,11 @@ typedef enum enumOptions // | OB_NO_HEADER // | OB_IGNORE, // +// OB_CMD_UI_CHECK = OB_LONG +// | OB_NO_HEADER +// | OB_IN_ORDER +// | OB_IGNORE, +// // OB_CMD_FILEATTRIB = OB_NO_HEADER, // // OB_CMD_BRSUB = OB_IGNORE @@ -655,6 +674,7 @@ typedef enum enumOptions // | OB_LONG // | OB_SORT // | OB_NO_HEADER +// | OB_IN_ORDER // | OB_GRP_CREATE // | OB_IGNORE // | OB_NORM @@ -798,6 +818,7 @@ typedef enum enumOptions // // OB_CMD_PATCH = OB_GRP_DEST // | OB_REMOVE_SRC +// | OB_NO_COPY // | OB_GRP_FFORMAT1 // | OB_IGNORE // | OB_COMPRESS @@ -972,6 +993,7 @@ typedef enum enumCommands CMD_COLORS, CMD_ERROR, CMD_FILETYPE, + CMD_UI_CHECK, CMD_FILEATTRIB, CMD_BRSUB, CMD_SYMBOLS, @@ -1051,7 +1073,7 @@ typedef enum enumCommands CMD_VEHICLE, - CMD__N // == 81 + CMD__N // == 82 } enumCommands; @@ -1189,14 +1211,20 @@ typedef enum enumGetOpt GO_PATCH_BMG, GO_MACRO_BMG, GO_FILTER_BMG, + GO_LE_MENU, + GO_TITLE_SCREEN, + GO_CUP_ICONS, + GO_NO_COPY, GO_CACHE, GO_CNAME, + GO_PARALLEL, GO_ID, GO_BASE64, GO_DB64, GO_CODING, GO_VERIFY, GO_ROUND, + GO_IN_ORDER, GO_PIPE, GO_DELTA, GO_DIFF, @@ -1298,7 +1326,7 @@ typedef enum enumGetOpt //extern const struct option OptionLong[]; //extern u8 OptionUsed[OPT__N_TOTAL+1]; //extern const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE]; -//UIOPT_INDEX_SIZE := 0x136 = 310 +//UIOPT_INDEX_SIZE := 0x140 = 320 //extern const InfoCommand_t CommandInfo[CMD__N+1]; extern const InfoUI_t InfoUI_wszst; diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def index a9a6634..bbe5c8a 100644 --- a/project/src/ui/ui.def +++ b/project/src/ui/ui.def @@ -10,7 +10,7 @@ " SZS, U8, PACK, BRRES, BREFF and BREFT archives. Additonally, RARC" \ " archive can be extracted. It is also a wrapper to all other tools." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wszst VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -76,6 +76,13 @@ "Scan the header of the entered files and print file type and path for" \ " each file as list. All tools know the FILETYPE command." ) +#:def_cmd( "UI_CHECK", "UI-CHECK|UC|UICHECK", \ + "wszst UI-CHECK file...", \ + "Classify SZS files from directory .../Scene/UI/. For the analysis," \ + " the filename is ignored and only the content is examined.$Wildcards$" \ + " are accepted. After evaluating the wildcards, all input files are" \ + " sorted according to their path and duplicates are deleted." ) + #:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \ "wszst FILEATTRIB [keyword]...", \ "Print a table with attributes for all known file types. If at least" \ @@ -179,32 +186,44 @@ "wszst LIST [source]...", \ "List all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \ " archives. If listing a directory, then a virtual SZS file is created" \ - " (like CREATE does it) and listed." ) + " (like CREATE does it) and listed. $Wildcards$ are accepted. After" \ + " evaluating the wildcards, all input files are sorted according to" \ + " their path and duplicates are deleted." ) #:def_cmd( "LIST_L", "LIST-L|LL|LISTL", \ "wszst LIST-L [source]...", \ "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" \ - " {LIST --long}." ) + " {LIST --long}. $Wildcards$ are accepted. After evaluating the" \ + " wildcards, all input files are sorted according to their path and" \ + " duplicates are deleted." ) #:def_cmd( "LIST_LL", "LIST-LL|LLL|LISTLL", \ "wszst LIST-LL [source]...", \ "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" \ - " short cuts for {LIST --long --long}." ) + " short cuts for {LIST --long --long}. $Wildcards$ are accepted. After" \ + " evaluating the wildcards, all input files are sorted according to" \ + " their path and duplicates are deleted." ) #:def_cmd( "LIST_LLL", "LIST-LLL|LLLL|LISTLLL", \ "wszst LIST-LLL [source]...", \ "List all sub files with offset and size in debugging mode. 'LIST-LLL'" \ - " and 'LLLL' are short cuts for {LIST --long --long --long}." ) + " and 'LLLL' are short cuts for {LIST --long --long --long}." \ + " $Wildcards$ are accepted. After evaluating the wildcards, all input" \ + " files are sorted according to their path and duplicates are deleted." ) #:def_cmd( "LIST_A", "LIST-A|LA|LISTA", \ "wszst LIST-A [source]...", \ "List recursive all sub files with size. 'LIST-A' and 'LA' are short" \ - " cuts for {LIST --long --all --all}." ) + " cuts for {LIST --long --all --all}. $Wildcards$ are accepted. After" \ + " evaluating the wildcards, all input files are sorted according to" \ + " their path and duplicates are deleted." ) #:def_cmd( "LIST_LA", "LIST-LA|LLA|LISTLA", \ "wszst LIST-LA [source]...", \ "List recursive all sub files with offset and size. 'LIST-LA' and" \ - " 'LLA' are short cuts for {LIST --long --long --all --all}." ) + " 'LLA' are short cuts for {LIST --long --long --all --all}." \ + " $Wildcards$ are accepted. After evaluating the wildcards, all input" \ + " files are sorted according to their path and duplicates are deleted." ) #:def_cmd( "NAME_REF", "NAME-REF|NAMEREF", \ "wszst NAME-REF [source]...", \ @@ -362,7 +381,8 @@ "Patch an U8 archive, compressed or not: Load the archive, apply all" \ " patching and transforming options and store the file again." \ " Compressed sources are compressed again. The destination is only" \ - " written if any data changed." ) + " written if any data changed or if stored in another file." \ + " $Wildcards$ are accepted." ) #:def_cmd( "COPY", "COPY|CP", \ "wszst COPY source dest\n" \ @@ -1296,13 +1316,40 @@ " With v2.01a, this option was renamed from --msg to the more" \ " meaningful name --filter-bmg. The old name is still available." ) +#:def_opt( "LE_MENU", "le-menu|lemenu", "C", \ + "", \ + "Patch language independent SZS files from directory .../Scene/UI/ to" \ + " change the menu as required by LE-CODE to be able to select tracks" \ + " from more than 8 cups." ) + +#:def_opt( "TITLE_SCREEN", "title-screen|titlescreen", "CP", \ + "dir", \ + "Specify a directory from which to search and replace title screens." \ + " Title screens only appear in the file 'Title.szs' and there in the" \ + " sub-directory './title/timg/'. If the replacement file is not found," \ + " then search file 'title1.szs' to patch standard files or file" \ + " 'title2.szs' to patch bokeboke files." ) + +#:def_opt( "CUP_ICONS", "cup-icons|cupicons", "CP", \ + "image", \ + "Load given image, convert it to TPL.CMPR and add the result as" \ + " sub-files 'button/timg/ct_icons.tpl' and as" \ + " 'control/timg/ct_icons.tpl' to files 'Channel.szs', 'MenuMulti.szs'" \ + " and 'MenuSingle.szs'. Both sub-files are always linked, so that" \ + " storage space is saved." ) + +#:def_opt( "NO_COPY", "no-copy|nocopy", "C", \ + "", \ + "Don't copy a file if it was not modified." ) + #:def_opt( "CACHE", "cache", "GP", \ "dir", \ - "Define a directory for a SZS cache.If creating a YAZ0 compressed file" \ - " with standard compression (level 9), the cache is searched for the" \ - " compressed version. File cache-content.txt is used as file list with" \ - " hash values. If the cache file is not found or the content differ," \ - " the file is (re-)created and exit status 2=differ is returned.\n" \ + "Define a directory for a SZS cache. If creating a YAZ0 compressed" \ + " file with standard compression (level 9), the cache is searched for" \ + " the compressed version. File cache-content.txt is used as file list" \ + " with hash values. If the cache file is not found or the content" \ + " differ, the file is (re-)created and exit status 2=differ is" \ + " returned.\n" \ " Background: Loading a compressed SZS and content verification is" \ " much faster than YAZ compression.\n" \ " For legay reasons: If parameter DIR is a file, it is split into" \ @@ -1316,6 +1363,11 @@ " cache name. The name is used only once for the very first cache" \ " candidate." ) +#:def_opt( "PARALLEL", "parallel", "G", \ + "", \ + "Tell the tool that it will be called multiple times in parallel." \ + " Currently it only has an effect if {--cache} is enabled." ) + #:def_opt( "ID", "id", "C", \ "", \ "Print an ID with 8 characters instead of a SHA-1 sum with 40" \ @@ -1366,6 +1418,11 @@ " syntax information ({--no-header}). If set twice, the output of" \ " unneeded sections is also suppressed." ) +#:def_opt( "IN_ORDER", "in-order|inorder", "CM", \ + "", \ + "Process the input files in order of the command line and don't delete" \ + " duplicates." ) + #:def_opt( "PIPE", "pipe", "CM", \ "", \ "Use pipe sign instead of spaces to separate columns." ) @@ -2138,6 +2195,22 @@ "", \ "" ) +#:def_cmd_opt( "UI_CHECK", "LONG", \ + "", \ + "Print the result as technical list." ) + +#:def_cmd_opt( "UI_CHECK", "NO_HEADER", \ + "", \ + "" ) + +#:def_cmd_opt( "UI_CHECK", "IN_ORDER", \ + "", \ + "" ) + +#:def_cmd_opt( "UI_CHECK", "IGNORE", \ + "", \ + "" ) + #:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \ "", \ "" ) @@ -2429,6 +2502,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST", "IGNORE_SETUP", \ "", \ "" ) @@ -2630,6 +2707,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_L", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_L", "IGNORE_SETUP", \ "", \ "" ) @@ -2831,6 +2912,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LL", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LL", "IGNORE_SETUP", \ "", \ "" ) @@ -3032,6 +3117,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LLL", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LLL", "IGNORE_SETUP", \ "", \ "" ) @@ -3233,6 +3322,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_A", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_A", "IGNORE_SETUP", \ "", \ "" ) @@ -3434,6 +3527,10 @@ "", \ "" ) +#:def_cmd_opt( "LIST_LA", "IN_ORDER", \ + "", \ + "" ) + #:def_cmd_opt( "LIST_LA", "IGNORE_SETUP", \ "", \ "" ) @@ -6170,6 +6267,18 @@ "", \ "" ) +#:def_cmd_opt( "CHECK", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "CHECK", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "SLOTS", "IGNORE", \ "", \ "" ) @@ -6531,6 +6640,18 @@ "", \ "" ) +#:def_cmd_opt( "SLOTS", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "SLOTS", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "SLOTS", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "STGI", "COLORS", \ "", \ "" ) @@ -6878,6 +6999,18 @@ "", \ "" ) +#:def_cmd_opt( "NORMALIZE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "NORMALIZE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "NORMALIZE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "DEST", \ "", \ "" ) @@ -6914,6 +7047,10 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "NO_COPY", \ + "", \ + "" ) + #:def_cmd_opt( "PATCH", "U8", \ "", \ "" ) @@ -7186,6 +7323,18 @@ "", \ "" ) +#:def_cmd_opt( "PATCH", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "PATCH", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "DEST", \ "", \ "" ) @@ -7222,6 +7371,10 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "NO_COPY", \ + "", \ + "" ) + #:def_cmd_opt( "COPY", "U8", \ "", \ "" ) @@ -7494,6 +7647,18 @@ "", \ "" ) +#:def_cmd_opt( "COPY", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "COPY", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "DUPLICATE", "GAMEMODES", \ "", \ "" ) @@ -7534,6 +7699,10 @@ "", \ "" ) +#:def_cmd_opt( "DUPLICATE", "NO_COPY", \ + "", \ + "" ) + #:def_cmd_opt( "DUPLICATE", "U8", \ "", \ "" ) @@ -7806,6 +7975,18 @@ "", \ "" ) +#:def_cmd_opt( "DUPLICATE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "DUPLICATE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "DUPLICATE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "MINIMAP", "LONG", \ "", \ "If set, print the matrices too. If set twice, print minimum and" \ @@ -8299,6 +8480,18 @@ "", \ "" ) +#:def_cmd_opt( "COMPRESS", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "COMPRESS", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "COMPRESS", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "DECOMPRESS", "DEST", \ "", \ "" ) @@ -8579,6 +8772,18 @@ "", \ "" ) +#:def_cmd_opt( "DECOMPRESS", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "DECOMPRESS", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "DECOMPRESS", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "ENCODE", "IGNORE_SETUP", \ "", \ "" ) @@ -8872,6 +9077,18 @@ "", \ "" ) +#:def_cmd_opt( "ENCODE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "ENCODE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "CREATE", "DEST", \ "", \ "" ) @@ -9269,6 +9486,18 @@ "", \ "" ) +#:def_cmd_opt( "CREATE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "CREATE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "UPDATE", "SOURCE", \ "", \ "" ) @@ -9549,6 +9778,18 @@ "", \ "" ) +#:def_cmd_opt( "UPDATE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "UPDATE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "UPDATE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "EXTRACT", "DEST", \ "", \ "" ) @@ -9849,6 +10090,18 @@ "", \ "" ) +#:def_cmd_opt( "EXTRACT", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "EXTRACT", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "XDECODE", "DEST", \ "", \ "" ) @@ -10149,6 +10402,18 @@ "", \ "" ) +#:def_cmd_opt( "XDECODE", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "XDECODE", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "XDECODE", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "XEXPORT", "DEST", \ "", \ "" ) @@ -10449,6 +10714,18 @@ "", \ "" ) +#:def_cmd_opt( "XEXPORT", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "XEXPORT", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "XEXPORT", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "XALL", "DEST", \ "", \ "" ) @@ -10749,6 +11026,18 @@ "", \ "" ) +#:def_cmd_opt( "XALL", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "XALL", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "XALL", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "XCOMMON", "DEST", \ "", \ "" ) @@ -11328,6 +11617,18 @@ "", \ "" ) +#:def_cmd_opt( "KCL", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "KCL", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "KCL", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "KMP", "IGNORE", \ "", \ "" ) @@ -11540,6 +11841,18 @@ "", \ "" ) +#:def_cmd_opt( "KMP", "LE_MENU", \ + "", \ + "" ) + +#:def_cmd_opt( "KMP", "TITLE_SCREEN", \ + "", \ + "" ) + +#:def_cmd_opt( "KMP", "CUP_ICONS", \ + "", \ + "" ) + #:def_cmd_opt( "LEX", "IGNORE", \ "", \ "" ) @@ -11696,7 +12009,7 @@ "wbmgt [option]... command [option|parameter|@file]...", \ "Wiimms BMG Tool : Convert and patch raw and text BMG (message) files." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wbmgt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -12994,7 +13307,7 @@ "Wiimms CT-CODE Tool : Manage the $CT-CODE$ extension. BRRES, TEX0," \ " CT-CODE, CT-TEXT and LE-BIN files are accepted as input." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wctct VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -14420,7 +14733,7 @@ "Wiimms Image Tool : Extract and convert graphic images. The file" \ " formats TPL, TEX, BTI, BREFT and PNG are supported." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wimgt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -15355,7 +15668,7 @@ "Wiimms KCL Tool : Analyze, modify, export and create KCL and OBJ" \ " files." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wkclt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -17895,7 +18208,7 @@ "Wiimms KMP Tool : Analyze, modify, export and create (compile) KMP" \ " files." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wkmpt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -20043,7 +20356,7 @@ "wlect [option]... command [option|parameter|@file]...", \ "Wiimms LE-CODE Tool : Manage the $LE-CODE$ and LEX extensions." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wlect VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -20195,10 +20508,10 @@ "wlect DISTRIBUTION [argument]...", \ "This command manages data for LE-CODE track distributions. It reads" \ " any number of source files with different file types, collects the" \ - " data and creates any number of files with different file types.\n" \ - " Use the command without keyword to get an extended description.\n" \ - " This command is still under development. Its use is therefore" \ - " EXPERIMENTAL!" ) + " data and creates any number of files with different file types." \ + " Wildcards are accepted, see https://szs.wiimm.de/doc/wildcards for" \ + " details.\n" \ + " Use the command without keyword to get an extended description." ) #:def_cmd( "CAT", "CAT", \ "wlect CAT [source]...", \ @@ -21711,7 +22024,7 @@ "wmdlt [option]... command [option|parameter|@file]...", \ "Wiimms MDL Tool : Decode raw MDL and encode text MDL files." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wmdlt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -23027,7 +23340,7 @@ "wpatt [option]... command [option|parameter|@file]...", \ "Wiimms PAT Tool : Decode raw PAT and encode text PAT files." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wpatt VERSION [ignored]...", \ "Print program name and version and exit." ) @@ -23646,7 +23959,7 @@ "Wiimms StaticR Tool : Manipulate the 'main.dol' and 'StaticR.rel'" \ " files of Mario Kart Wii." ) -#:def_cmd( "VERSION", "VERSION", \ +#:def_cmd( "VERSION", "VERSION|V", \ "wstrt VERSION [ignored]...", \ "Print program name and version and exit." ) diff --git a/project/src/ui/ui.h b/project/src/ui/ui.h index 409b8fd..b183c14 100644 --- a/project/src/ui/ui.h +++ b/project/src/ui/ui.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wbmgt.c b/project/src/wbmgt.c index 06e51de..c425d63 100644 --- a/project/src/wbmgt.c +++ b/project/src/wbmgt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wctct.c b/project/src/wctct.c index 92ed705..9245e08 100644 --- a/project/src/wctct.c +++ b/project/src/wctct.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wimgt.c b/project/src/wimgt.c index 2391a55..132e37d 100644 --- a/project/src/wimgt.c +++ b/project/src/wimgt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wkclt.c b/project/src/wkclt.c index e294fcd..49fce63 100644 --- a/project/src/wkclt.c +++ b/project/src/wkclt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wkmpt.c b/project/src/wkmpt.c index 7d8cfdb..79e54fb 100644 --- a/project/src/wkmpt.c +++ b/project/src/wkmpt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wlect.c b/project/src/wlect.c index 7539cbc..832bee8 100644 --- a/project/src/wlect.c +++ b/project/src/wlect.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -1249,7 +1249,7 @@ static void help_distrib ( enumError exit_code ) " They supplement or overwrite the internal data structure with its diverse data.\n" "\n" " |If a file does not exist but the associated filename contains wildcards" - " (any of »{file|*?[}«), then all matching files are loaded as source." + " (any of »{file|*?[{}«), then all matching files are loaded as source." " So it's possible to keep the command line small if using »{file|'*.szs'}«" " (with apostrophs) instead of »{file|*.szs}«.\n" "\n" @@ -1332,6 +1332,13 @@ static void help_distrib ( enumError exit_code ) " If a filename is a minus sign only, then {file|stdout} is used." " Existing files are only overwritten if at least one of the options" " {opt|--overwrite} (short: {opt|-o}) or {opt|--remove-dest} (short: {opt|-r}) is set.\n" + "\n" + " |If a filename beginns with a plus sign, the plus sign is removed" + " and the output file is opened in append mode. If a file is to be created with" + " a plus sign at the beginning, then »{file|./}« should be put in front." + " If an output file is opened for the second time," + " then it is automatically opened in append mode.\n" + "\n" "\n|[4,14]" //------------------------- @@ -1436,21 +1443,32 @@ static void help_distrib ( enumError exit_code ) "\r\r" "{syntax|OPTIONS} is a comma separated list of keywords to select the kind of analysis." " If no option is set, all are enabled." - " To find duplicate tracks, families or clans, the definition file must support SHA1" - " checksums and a SHA1 reference file must be loaded." + " To list by classes and to find duplicate tracks, families or clans," + " the definition file must support SHA1 checksums" + " and a SHA1 reference file must be loaded." " You can get the reference file from {file|https://ct.wiimm.de/export/sha1ref/view}." "\n\n" "|[17,29]" + "\t{par|@varname}:\t|Use another predefined string instead of '{name|name}'" + " as source for option {par|names}." + " See section »{name|Processing Options: Storage}« for details.\n" + "\t{par|[key]}:\t|Like {par|@varname}, but use a user defined string as source.\n" "\t{par|counters}:\t|Count track and arena types in different ways.\n" + "\t{par|classes}:\t|List tracks by track class, except classes {name|SELECT} and {name|NINTENDO}.\n" + "\t{par|xclasses}:\t|List tracks by track class without exceptions." + "This option is excluded from {par|default}.\n" "\t{par|names}:\t|Find track names that are used" " by two or more distinct tracks or arenas.\n" "\t{par|tracks}:\t|Find tracks that are used two or more times and list them.\n" "\t{par|families}:\t|Find tracks that are in the same family and list them.\n" - "\t{par|clans}:\t|Find tracks that are in the same clan and list them.\n" + "\t{par|clans}:\t|Find track families that are in the same clan and list them.\n" "\t{par|duplicates}:\t|Short cut for »{par|names,tracks,families,clans}«.\n" - "\t{par|all}:\t|Short cut for all of above and default if no option is set." + "\t{par|all}:\t|Short cut for all lists of above." " To exclude something, you can write e.g. »{par|all,-clans}«," " or shorter »{par|-clans}«.\n" + "\t{par|default}:\t|Select all standard analyses." + " This option is used automatically if no other option is specified." + " At the moment it is the same as »{par|all,-xclasses}«.\n" "\n|[4,15]" "\t{name|DEBUG}:\t|" "Print some statistics for debugging." @@ -1466,7 +1484,7 @@ static void help_distrib ( enumError exit_code ) "\t{name|CUP-ICONS}:\t|" "Create an image file with cup icons." "\r\r" - " {heading|Syntax:} {syntax|CUP-ICON '=' [STORAGE,] [OPTIONS] '=' FILE}" + " {heading|Syntax:} {syntax|CUP-ICON '=' [OPTIONS] '=' FILE}" "\r\r" "If the output goes to a terminal, then use instruction {name|CUP-INFO} instead." " To determine the file type, the file extension is analyzed." @@ -1476,29 +1494,28 @@ static void help_distrib ( enumError exit_code ) " 5 characters of the name without a prefix, shown in blue at the bottom." " If a name is wider than 128 pixels, than it is horizontal shrinked to 128 pixels." "\r\r" - "{syntax|STORAGE} is an optional storage indicator for the source" - " explained in section »{name|Processing Options: Storage}«." - " Separate STORAGE and OPTIONS by a comma." - " If not set, then {name|NAME} is used as source." - "\r\r" "{syntax|OPTIONS} is a comma separated list of keywords:\n" "|[17,27]" - "\t{par|original}:\t|Add 8 original cup icons.\n" - "\t{par|swapped}:\t|Add 8 original cup icons in swapped order.\n" + "\t{par|@varname}:\t|Use another predefined string instead of '{name|name}' as source." + " See section »{name|Processing Options: Storage}« for details.\n" + "\t{par|[key]}:\t|Like {par|@varname}, but use a user defined string as source.\n" + "\t{par|original}:\t|Use the original cup icons for the first 8 cups.\n" + "\t{par|swapped}:\t|Use the original cup icons for the first 8 cups, but in sapped order." + " This is recommended for LE-CODE if using the 32 original tracks.\n" "\t{par|1wiimm}:\t|Use Wiimms avatar for the first cup, but only if original icons are not used.\n" "\t{par|9wiimm}:\t|Use Wiimms avatar for the ninth cup.\n" "\t{par|xwiimm}:\t|Use Wiimms avatar for the last cup.\n" "\t{par|plus}:\t|If a plus prefix exists, then insert it and an additional space.\n" "\t{par|xplus}:\t|Same as option {par|plus}," - " but apppend an underline character instead of a space after the plus prefix." + " but append an underline character instead of a space after the plus prefix." " Underline characters are printed like spaces, but they are ignored by option {par|space}.\n" "\t{par|game}:\t|If a game prefix exists, then insert it and an additional space.\n" "\t{par|xgame}:\t|Same as option {par|game}," - " but apppend an underline character instead of a space after the game prefix.\n" + " but append an underline character instead of a space after the game prefix.\n" "\t{par|space}:\t|Finish the name part at first space." - " Ignore tabulators and undercore characters for this.\n" + " Ignore tabulators and underline characters for this.\n" "\t{par|0} .. {par|15}:\t|" - "Define the maximum number of charaters for the name part" + "Define the maximum number of characters for the name part" " to any value between 0 and 15. The default is 5 characters.\n" "\n|[4,15]" "\t{name|CUP-INFO}:\t|" @@ -1900,11 +1917,21 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar { u_nsec_t start_nsec = GetTimerNSec(); - enum { C_NAMES, C_INFO, C_RATING, C_LEINFO, C_SHA1, C_DISTRIB, + enum { C_NAMES, C_INFO, C_RATING, C_LEINFO, C_SHA1, C_DISTRIB, C_CTDEF, C_LEDEF, C_LEREF, C_STRINGS, C_DUMP, + #if LE_DIS_PATCH_ENABLED + C_DEST, C_PATCH, + #endif C_LECODE, C_LECODE4, C_LPAR, C_BMG, C_CUPICON, C_SEPARATOR, C_COPY, C_SPLIT, C_SUBST, - C_TRACKS, C_SORT, C_PREFIX, C_RESERVE, C_DEBUG, C_REPORT }; + C_TRACKS, + #if LE_DIS_SORTTRACKS_ENABLED + C_SORT_TRACKS, + #endif + #if LE_DIS_SORTCUPS_ENABLED + C_SORT_CUPS, + #endif + C_PREFIX, C_RESERVE, C_DEBUG, C_REPORT }; enum { @@ -1916,6 +1943,9 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar O_PARAM_OPT1 = 0x1000, // O_PARAM_OPT2 = 0x2000, // scan options before additional '=' O_PARAM_A = 0x4000, // allow additonal arguments + #if LE_DIS_PATCH_ENABLED + O_FILE_LIST = 0x8000, // create a file list by the final filename + #endif }; static const KeywordTab_t tab[] = @@ -1941,6 +1971,11 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar { C_STRINGS, "STRINGS", "STR", 0 }, { C_DUMP, "DUMP", 0, 0 }, + #if LE_DIS_PATCH_ENABLED + { C_DEST, "DEST", 0, 0 }, + { C_PATCH, "PATCH", 0, O_PARAM_OPT2 | O_FILE_LIST }, + #endif + { C_LECODE, "PAL", 0, LEREG_PAL }, { C_LECODE, "USA", 0, LEREG_USA }, { C_LECODE, "JAP", 0, LEREG_JAP }, @@ -1952,8 +1987,8 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar { C_BMG, "BMG", "BMGBIN", 0 }, { C_BMG, "BMG-TXT", "BMGTXT", 1 }, - { C_CUPICON, "CUP-ICONS", "CUPICONS", O_PARAM_OPTSRC|O_PARAM_OPT2 }, - { C_CUPICON, "CUP-INFO", "CUPINFO", O_PARAM_OPTSRC|O_PARAM_OPT2 | 1 }, + { C_CUPICON, "CUP-ICONS", "CUPICONS", O_PARAM_OPT2 }, + { C_CUPICON, "CUP-INFO", "CUPINFO", O_PARAM_OPT2 | 1 }, { C_SEPARATOR, "SEPARATOR", "SEP", 0 }, { C_COPY, "COPY", 0, O_PARAM_D|O_PARAM_SS }, @@ -1961,12 +1996,17 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar { C_SUBST, "SUBST", 0, O_PARAM_D|O_PARAM_A }, { C_TRACKS, "TRACKS", 0, 0 }, - { C_SORT, "SORT", 0, O_PARAM_OPTSRC|O_PARAM_OPT1 }, + #if LE_DIS_SORTTRACKS_ENABLED + { C_SORT_TRACKS,"SORT-TRACKS", "SORTTRACKS", O_PARAM_OPTSRC|O_PARAM_OPT1 }, + #endif + #if LE_DIS_SORTCUPS_ENABLED + { C_SORT_CUPS, "SORT-CUPS", "SORTCUPS", O_PARAM_OPTSRC|O_PARAM_OPT1 }, + #endif { C_PREFIX, "PREFIX", 0, 0 }, { C_RESERVE, "RESERVE", 0, 0 }, { C_DEBUG, "DEBUG", 0, 0 }, - { C_REPORT, "REPORT", 0, O_PARAM_OPT2 }, + { C_REPORT, "REPORT", 0, O_PARAM_OPT2 }, { 0,0,0,0 } }; @@ -2023,14 +2063,14 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar const le_options_t opt = cmd->opt; if ( opt & O_PARAM_OPTSRC ) - arg = ScanOptionalLSP(&par_opt,arg,LTT_NAME,&err); + arg = ScanOptionalLSP(&par_opt,arg,-1,LTT_NAME,&err); if ( opt & (O_PARAM_D|O_PARAM_S) ) { if ( opt & O_PARAM_D ) { par_dest = ld->spar; - char *end = ScanLSP(&par_dest,arg,&err); + char *end = ScanLSP(&par_dest,arg,-1,&err); if ( opt & (O_PARAM_S|O_PARAM_A) ) { if ( *end != '=' && *end != ',' ) @@ -2059,7 +2099,7 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar while ( n_par_src < max ) { *src = ld->spar; - char *end = ScanLSP(src,arg,&err); + char *end = ScanLSP(src,arg,-1,&err); if (err) goto err_param12; if ( verbose >= 2 ) @@ -2107,7 +2147,24 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar case C_COPY: err = CopyLD(ld,&par_dest,par_src,n_par_src); break; case C_SPLIT: err = SplitLD(ld,&par_dest,par_src,arg); break; case C_SUBST: err = SubstLD(ld,&par_dest,arg); break; - case C_SORT: err = SortTracksLD(ld,&par_opt,mem_opt); break; + + #if LE_DIS_SORTTRACKS_ENABLED + case C_SORT_TRACKS: err = SortTracksLD(ld,&par_opt,mem_opt); break; + #endif + + #if LE_DIS_SORTCUPS_ENABLED + case C_SORT_CUPS: err = SortCupsLD(ld,&par_opt,mem_opt); break; + #endif + + #if LE_DIS_PATCH_ENABLED + case C_DEST: + if ( arg && *arg && strcmp(arg,"-") ) + SetDest(arg,true); + else + opt_dest = 0; + err = ERR_OK; + break; + #endif case C_TRACKS: cmd = ScanKeyword(&cmd_stat,arg,tracks_tab); @@ -2169,6 +2226,25 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar } + //-- create a file list + + #if LE_DIS_PATCH_ENABLED + if ( err == ~0 && opt & O_FILE_LIST ) + { + StringField_t filelist; + InitializeStringField(&filelist); + InsertStringFieldExpand(&filelist,arg,0,true); + + switch (cmd->id) + { + case C_PATCH: err = PatchLD(ld,mem_opt,&filelist); break; + default: err = ERR_ERROR; + } + ResetStringField(&filelist); + } + #endif // LE_DIS_PATCH_ENABLED + + //-- with opened file if ( err == ~0 ) @@ -2182,7 +2258,7 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar #endif File_t F; - err = CreateFileOpt(&F,true,arg,false,0); + err = CreateFileOptAppend(&F,true,arg,false,0); if (!err) { ld_out_param_t lop = { .fname = arg, .f = F.f, @@ -2212,7 +2288,7 @@ static enumError cmd_distrib_instruction ( le_distrib_t *ld, ccp mode, char * ar case C_LECODE: err = CreateLecodeLD(F.f,ld,cmd->opt); break; case C_LPAR: err = CreateLparLD(F.f,ld,true); break; case C_BMG: err = CreateBmgLD(F.f,ld,variant||F.is_stdio); break; - case C_CUPICON: err = CreateCupIconsLD(F.f,ld,lop.fname,&par_opt,mem_opt,variant||F.is_stdio); break; + case C_CUPICON: err = CreateCupIconsLD(&lop,mem_opt,variant||F.is_stdio); break; case C_PREFIX: err = SavePrefixTable(F.f,0); break; case C_DEBUG: err = CreateDebugLD(F.f,ld); break; case C_REPORT: err = CreateReportLD(&lop,mem_opt); break; diff --git a/project/src/wmdlt.c b/project/src/wmdlt.c index edf4c8b..0b451bf 100644 --- a/project/src/wmdlt.c +++ b/project/src/wmdlt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wpatt.c b/project/src/wpatt.c index 6a37868..c51335b 100644 --- a/project/src/wpatt.c +++ b/project/src/wpatt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wstrt.c b/project/src/wstrt.c index 20b97a0..a8db42d 100644 --- a/project/src/wstrt.c +++ b/project/src/wstrt.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/wszst.c b/project/src/wszst.c index 6ce36bb..cd5969b 100644 --- a/project/src/wszst.c +++ b/project/src/wszst.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -374,6 +374,7 @@ static const sizeof_info_t sizeof_info_szs_list[] = SIZEOF_INFO_ENTRY(tpl_imgtab_t) SIZEOF_INFO_ENTRY(tpl_pal_header_t) SIZEOF_INFO_ENTRY(tpl_img_header_t) + SIZEOF_INFO_ENTRY(tpl_raw_t) SIZEOF_INFO_ENTRY(bti_header_t) SIZEOF_INFO_TITLE("KCL") @@ -797,6 +798,95 @@ static enumError cmd_test() // /////////////////////////////////////////////////////////////////////////////// +/////////////// command ui-check /////////////// +/////////////////////////////////////////////////////////////////////////////// + +enumError cmd_ui_check() +{ + SetupPager(); + + StringField_t plist = {0}; + CollectExpandParam(&plist,first_param,-1); + + const bool have_dump = long_count >= 1; + const bool have_header = !have_dump && !brief_count && print_header; + + int sep_len = 0; + if (have_header) + { + int fw_file = 4; + ccp *ptr = plist.field, *end; + for ( end = ptr + plist.used; ptr < end; ptr++ ) + { + const int fw = strlen8(*ptr); + if ( fw_file < fw ) + fw_file = fw; + } + sep_len = ( fw_file + 21 ) * 3; + printf("\n%s Type Korean File\n%s%.*s%s\n", + colset->heading, colset->heading, sep_len, ThinLine300_3, colset->reset ); + } + + for ( int argi = 0; argi < plist.used; argi++ ) + { + ccp arg = plist.field[argi]; + + szs_file_t szs; + InitializeSZS(&szs); + enumError err = LoadSZS(&szs,arg,false,opt_ignore>0,true); + if ( err > ERR_WARNING || err == ERR_NOT_EXISTS ) + continue; + + DecompressSZS(&szs,true,0); + + if (have_dump) + { + u_usec_t dur = -GetTimerUSec(); + ui_check_t uc; + UiCheck(&uc,&szs); + dur += GetTimerUSec(); + + printf("%c%c " + ,uc.is_ui >= OFFON_ON ? 'U' : uc.is_ui > OFFON_OFF ? 'u' : '-' + ,uc.is_korean >= OFFON_ON ? 'K' : uc.is_korean > OFFON_OFF ? 'k' : '-' + ); + + for ( ui_type_t t = 1; t < UIT__N; t++ ) + { + uint mask = 1 << t; + putchar( uc.possible & mask ? ui_type_char[t] : '-'); + } + + printf(" %c %6lluµs %s\n",ui_type_char[uc.type],dur,arg); + } + else + { + ui_check_t uc; + UiCheck(&uc,&szs); + + ccp col = GetUiTypeColor(colout,uc.type); + printf("%s %-10s %-6s %s%s\n", + col, + ui_type_name[uc.type], + uc.is_korean > OFFON_AUTO ? "Korean" : "-", + arg, *col ? colout->reset : "" ); + } + } + + if (have_header) + { + if ( plist.used >= 3 ) + printf("%s%.*s%s\n\n", colset->heading, sep_len, ThinLine300_3, colset->reset ); + else + putchar('\n'); + } + + ResetStringField(&plist); + return ERR_OK; +} + +// +/////////////////////////////////////////////////////////////////////////////// /////////////// command autoadd /////////////// /////////////////////////////////////////////////////////////////////////////// @@ -1751,6 +1841,7 @@ static int list_func static enumError cmd_list ( int long_level ) { + SetupPager(); SetPatchFileModeReadonly(); if ( opt_recurse < 0 ) @@ -1762,50 +1853,78 @@ static enumError cmd_list ( int long_level ) long_count += long_level; } - ParamList_t *param; - for ( param = first_param; param; param = param->next ) + StringField_t plist = {0}; + CollectExpandParam(&plist,first_param,-1); + + for ( int argi = 0; argi < plist.used; argi++ ) { - NORMALIZE_FILENAME_PARAM(param); + ccp arg = plist.field[argi]; szs_file_t szs; InitializeSZS(&szs); - enumError err = LoadCreateSZS(&szs,param->arg,true,opt_ignore>0,true); + enumError err = LoadCreateSZS(&szs,arg,true,opt_ignore>0,true); if ( err == ERR_NOT_EXISTS || err > ERR_WARNING && opt_ignore ) continue; if ( err > ERR_WARNING ) return err; + + CollectFilesSZS(&szs,true,-1,-1,SORT_NONE); if ( opt_norm || need_norm > 0 ) NormalizeSZS(&szs); if (print_header) - { - printf("\n* Files of %s:%s\n", - GetNameFF_SZS(&szs), param->arg ); + printf("\n%s> %u director%s + %u file%s of %s:%s %s\n", + colout->stat_line, + szs.n_dirs, szs.n_dirs == 1 ? "y" : "ies", + szs.n_files, szs.n_files == 1 ? "" : "s", + GetNameFF_SZS(&szs), arg, + colout->reset ); + + int fw_name = szs.fw_files, seplen = 0; + if ( long_count >= 3 ) + fw_name++; + if ( fw_name < 17 ) + fw_name = 17; + if (print_header) + { static ccp f_or_d = "file or directory"; if ( long_count > 2 ) - PrintFileHeadSZS(); + seplen = PrintFileHeadSZS(fw_name) * 3; else if ( long_count > 1 ) - printf("\noff/hex siz/hex size/dec magic vers %s\n%.79s\n",f_or_d,Minus300); + { + seplen = ( fw_name + 37 ) * 3; + printf("\n%soff/hex siz/hex size/dec magic vers %s\n%s%.*s%s\n", + colout->heading, f_or_d, + colout->heading, seplen, ThinLine300_3, colout->reset ); + } else if ( long_count > 0 ) - printf("\nsize/dec magic %s\n%.79s\n",f_or_d,Minus300); + { + seplen = ( fw_name + 17 ) * 3; + printf("\n%ssize/dec magic %s\n%s%.*s%s\n", + colout->heading, f_or_d, + colout->heading, seplen, ThinLine300_3, colout->reset ); + } else putchar('\n'); } - else if ( n_param > 1 ) - printf("\n* Files of %s\n",param->arg); if ( long_count > 2 ) IterateFilesParSZS(&szs,PrintFileSZS,0,false,true,opt_recurse,opt_cut,opt_sort); else IterateFilesParSZS(&szs,list_func,0,false,false,opt_recurse,opt_cut,opt_sort); + + if (print_header) + { + if ( seplen && szs.n_dirs + szs.n_files > 2 ) + printf("%s%.*s%s\n\n", colout->heading, seplen, ThinLine300_3, colout->reset ); + else + putchar('\n'); + } ResetSZS(&szs); } - if (print_header) - putchar('\n'); - return ERR_OK; } @@ -3570,182 +3689,240 @@ static bool ScanByExtFF //----------------------------------------------------------------------------- -static enumError cmd_patch() +struct cmd_patch_search_t { - #if HAVE_PRINT - file_format_t dest_ff_arch; - file_format_t dest_ff_compr; - const bool dest_ff_valid = ScanByExtFF(&dest_ff_arch,&dest_ff_compr,opt_dest); - PRINT("fform(dest) = %s [valid=%d]\n", - GetNameFF(dest_ff_compr,dest_ff_arch), dest_ff_valid ); - #endif + int count; + enumError max_err; +}; - enumError max_err = ERR_OK; - ParamList_t *param; - for ( param = first_param; param; param = param->next ) +//----------------------------------------------------------------------------- + +static enumError patch_file_helper +( + ccp fname, // file name of source + bool use_wildcard // true & file not exist: search files +); + +//----------------------------------------------------------------------------- + +static enumError patch_file_search +( + mem_t path, // full path of existing file, never NULL + uint st_mode, // copy of struct stat.st_mode, see "man 2 stat" + void *param // user defined parameter +) +{ + enumError err = S_ISREG(st_mode) ? patch_file_helper(path.ptr,false) : ERR_JOB_IGNORED; + + struct cmd_patch_search_t *s = (struct cmd_patch_search_t*)param; + ASSERT(s); + + s->count++; + if ( s->max_err < err ) + s->max_err = err; + return err; +} + +//----------------------------------------------------------------------------- + +static enumError patch_file_helper +( + ccp fname, // file name of source + bool use_wildcard // true & file not exist: search files +) +{ + struct stat st; + if ( use_wildcard && HaveWildcards(MemByString(fname)) && stat(fname,&st) ) { - if (!param->arg) - continue; - NORMALIZE_FILENAME_PARAM(param); + PRINT0(" > SEARCH %s\n",fname); + struct cmd_patch_search_t param = {0}; + SearchPaths(fname,0,false,patch_file_search,¶m); + return param.count + ? param.max_err + : ERROR0(ERR_CANT_OPEN,"File not found: %s\n",fname); + } - szs_file_t szs; - InitializeSZS(&szs); - enumError err = LoadSZS(&szs,param->arg,false,opt_ignore>0,true); + exmem_t orig = {0}, data = {0}; - //PRINT_DATA; + szs_file_t szs; + InitializeSZS(&szs); + enumError err = LoadSZS(&szs,fname,false,opt_ignore>0,true); - if ( err <= ERR_WARNING && err != ERR_NOT_EXISTS ) + if ( err <= ERR_WARNING && err != ERR_NOT_EXISTS ) + { + const bool was_compressed = szs.cdata != 0; + if (was_compressed) { - u8 * orig_data; - uint orig_size; + DecompressSZS(&szs,false,0); + DASSERT(szs.cdata); + DASSERT(szs.cdata_alloced); + orig = ExMemMove(szs.cdata,szs.csize); + szs.cdata = 0; + szs.cdata_alloced = false; + data = ExMemDup(szs.data,szs.size); + } + else + { + DASSERT(szs.data); + data = ExMemDup(szs.data,szs.size); + #if 1 + orig = data; + orig.is_alloced = false; + #else + orig = ExMemDup(szs.data,szs.size); + #endif + } - const bool was_compressed = szs.cdata != 0; - if (was_compressed) - { - DecompressSZS(&szs,false,0); - DASSERT(szs.cdata); - DASSERT(szs.cdata_alloced); - orig_data = szs.cdata; - orig_size = szs.csize; - szs.cdata = 0; - szs.cdata_alloced = false; - } - else - { - DASSERT(szs.data); - orig_data = MEMDUP(szs.data,szs.size); - orig_size = szs.size; - } + const ccp src_format = GetNameFF_SZS(&szs); + const bool convert_wu8 = opt_fform == FF_WU8 + || opt_fform == FF_UNKNOWN && szs.fform_arch == FF_WU8; + PRINT("CONVERT_WU8=%d, FF=%s\n", convert_wu8, src_format ); - #ifdef TEST0 - const ccp src_format = GetNameFF_SZS(&szs); - file_format_t local_ff_compr = opt_fform; - file_format_t local_ff_arch = fform_compr; - #else - const ccp src_format = GetNameFF_SZS(&szs); - const bool convert_wu8 = opt_fform == FF_WU8 - || opt_fform == FF_UNKNOWN && szs.fform_arch == FF_WU8; - PRINT("CONVERT_WU8=%d, FF=%s\n", convert_wu8, src_format ); - #endif + DecodeWU8(&szs); - DecodeWU8(&szs); + //szs.allow_ext_data = opt_norm; + szs.allow_ext_data = true; - //szs.allow_ext_data = opt_norm; - szs.allow_ext_data = true; + bool dirty = PatchSZS(&szs); + if (( opt_norm || need_norm || opt_auto_add || opt_cup_icons || dirty ) + && NormalizeSZS(&szs) ) + { + dirty = true; + } + if ( OptionUsed[OPT_MINIMAP] && AutoAdjustMinimap(&szs) ) + dirty = true; - bool dirty = PatchSZS(&szs); - if ( ( opt_norm || need_norm || opt_auto_add || dirty ) - && NormalizeSZS(&szs) ) - { - dirty = true; - } - if ( OptionUsed[OPT_MINIMAP] && AutoAdjustMinimap(&szs) ) - dirty = true; + if (convert_wu8) + { + err = EncodeWU8(&szs); + if (err) + goto abort; + } - if (convert_wu8) - { - err = EncodeWU8(&szs); - if (err) - goto abort; - } + + //--- dest file + + char dest[PATH_MAX]; + if ( opt_fform == FF_U8 || opt_fform == FF_WU8 ) + { + SubstDest( dest, sizeof(dest), fname, + opt_dest && *opt_dest ? opt_dest : "\1P/\1N\1?T", "\1N\1?T", + GetExtFF(szs.fform_file,opt_fform), false ); + } + else if ( opt_dest && *opt_dest ) + { + SubstDest( dest, sizeof(dest), fname, opt_dest, 0, + GetExtFF(szs.fform_file,szs.fform_arch), false ); + } + else + StringCopyS(dest,sizeof(dest),fname); - //--- dest file + //--- check dirty - char dest[PATH_MAX]; - if ( opt_fform == FF_U8 || opt_fform == FF_WU8 ) - { - SubstDest( dest, sizeof(dest), param->arg, - opt_dest && *opt_dest ? opt_dest : "\1P/\1N\1?T", "\1N\1?T", - GetExtFF(szs.fform_file,opt_fform), false ); - } - else if ( opt_dest && *opt_dest ) - { - SubstDest( dest, sizeof(dest), param->arg, opt_dest, 0, - GetExtFF(szs.fform_file,szs.fform_arch), false ); - } - else - StringCopyS(dest,sizeof(dest),param->arg); + const ccp dest_format = GetNameFF_SZScurrent(&szs); + const bool src_dest_diff + = strcmp(src_format,dest_format) || strcmp(dest,fname); + +//X if ( !dirty && opt_norm ) + if (!dirty) + dirty = data.data.len != szs.size || memcmp(data.data.ptr,szs.data,szs.size); + if ( !dirty && ( !src_dest_diff || opt_no_copy ) ) + goto abort; + - //--- compression and SZS cache + //--- compression and SZS cache + if (dirty) + { if (was_compressed) { CompressSZS(&szs,true); - - //PRINT_DATA; - if ( opt_norm && !dirty ) - dirty = orig_size != szs.csize - || memcmp(orig_data,szs.cdata,orig_size); - FREE(orig_data); - orig_data = szs.cdata; - orig_size = szs.csize; + FreeExMem(&orig); + orig = ExMemByS(szs.cdata,szs.csize); } else { - //PRINT_DATA; - if (!dirty) - dirty = orig_size != szs.size - || memcmp(orig_data,szs.data,orig_size); - FREE(orig_data); - orig_data = szs.data; - orig_size = szs.size; + FreeExMem(&orig); + orig = ExMemByS(szs.data,szs.size); } + } - const ccp dest_format = GetNameFF_SZScurrent(&szs); - const bool src_dest_diff - = strcmp(src_format,dest_format) || strcmp(dest,param->arg); - if ( dirty || src_dest_diff ) + if ( dirty || src_dest_diff ) + { + if ( verbose >= 0 || testmode ) { - if ( verbose >= 0 || testmode ) - { - if (src_dest_diff) - fprintf(stdlog,"%s%s%s %s:%s -> %s:%s\n", - testmode ? "WOULD " : "", - opt_norm ? "NORMALIZE" : "PATCH", - szs.aiparam_removed ? " [-AIParam]" : "", - src_format, param->arg, dest_format, dest ); - else - fprintf(stdlog,"%s%s%s %s:%s\n", - testmode ? "WOULD " : "", - opt_norm ? "NORMALIZE" : "PATCH", - szs.aiparam_removed ? " [-AIParam]" : "", - dest_format, dest ); - fflush(stdlog); - } - - //PRINT_DATA; - File_t F; - err = CreateFileOpt(&F,true,dest,testmode,param->arg); - if (F.f) - { - SetFileAttrib(&F.fatt,&szs.fatt,0); - size_t wstat = fwrite(orig_data,1,orig_size,F.f); - if ( wstat != orig_size ) - err = FILEERROR1(&F, - ERR_WRITE_FAILED, - "Writing %u bytes failed [%zu bytes written]: %s\n", - orig_size, wstat, dest ); - } - ResetFile(&F,opt_preserve); - if ( !err && opt_remove_src ) - RemoveSource(param->arg,dest,verbose>=0,testmode); + if (src_dest_diff) + fprintf(stdlog,"%s%s%s %s:%s -> %s:%s\n", + testmode ? "WOULD " : "", + opt_norm ? "NORMALIZE" : dirty ? "PATCH" : "COPY ", + szs.aiparam_removed ? " [-AIParam]" : "", + src_format, fname, dest_format, dest ); + else + fprintf(stdlog,"%s%s%s %s:%s\n", + testmode ? "WOULD " : "", + opt_norm ? "NORMALIZE" : "PATCH", + szs.aiparam_removed ? " [-AIParam]" : "", + dest_format, dest ); + fflush(stdlog); } - else if ( verbose > 0 ) + + File_t F; + err = CreateFileOpt(&F,true,dest,testmode,fname); + if (F.f) { - fprintf(stdlog,"ALREADY NORMALIZED: %s:%s\n", src_format, param->arg ); - fflush(stdlog); + SetFileAttrib(&F.fatt,&szs.fatt,0); + size_t wstat = fwrite(orig.data.ptr,1,orig.data.len,F.f); + if ( wstat != orig.data.len ) + err = FILEERROR1(&F, + ERR_WRITE_FAILED, + "Writing %u bytes failed [%zu bytes written]: %s\n", + orig.data.len, wstat, dest ); } + ResetFile(&F,opt_preserve); + if ( !err && opt_remove_src ) + RemoveSource(fname,dest,verbose>=0,testmode); + } + else if ( verbose > 0 ) + { + fprintf(stdlog,"ALREADY NORMALIZED: %s:%s\n", src_format, fname ); + fflush(stdlog); + } - LinkCacheRAW(szs.cache_fname,dest,orig_data,orig_size); + LinkCacheRAW(szs.cache_fname,dest,orig.data.ptr,orig.data.len); + } - } - abort: + abort:; + FreeExMem(&orig); + FreeExMem(&data); + ResetSZS(&szs); + return err; +} + +//----------------------------------------------------------------------------- + +static enumError cmd_patch() +{ + #if HAVE_PRINT + file_format_t dest_ff_arch; + file_format_t dest_ff_compr; + const bool dest_ff_valid = ScanByExtFF(&dest_ff_arch,&dest_ff_compr,opt_dest); + PRINT("fform(dest) = %s [valid=%d]\n", + GetNameFF(dest_ff_compr,dest_ff_arch), dest_ff_valid ); + #endif + + enumError max_err = ERR_OK; + for ( ParamList_t *param = first_param; param; param = param->next ) + { + if (!param->arg) + continue; + NORMALIZE_FILENAME_PARAM(param); + + const enumError err = patch_file_helper(param->arg,true); if ( max_err < err ) max_err = err; - ResetSZS(&szs); } return max_err; @@ -5636,6 +5813,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env ) case GO_COMPRESS: err += ScanOptCompr(optarg); break; case GO_FAST: opt_fast = true; err += ScanOptCompr("fast"); break; case GO_NORM: opt_norm = true; break; + case GO_NO_COPY: opt_no_copy = true; break; case GO_MAX_FILE_SIZE: err += ScanOptMaxFileSize(optarg); break; case GO_TRACKS: err += ScanOptTracks(optarg); break; case GO_ARENAS: err += ScanOptArenas(optarg); break; @@ -5643,6 +5821,9 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env ) case GO_PATCH_BMG: err += ScanOptPatchMessage(optarg); break; case GO_MACRO_BMG: err += ScanOptMacroBMG(optarg); break; case GO_FILTER_BMG: filter_bmg = optarg; break; + case GO_LE_MENU: opt_le_menu = true; break; + case GO_CUP_ICONS: opt_cup_icons = optarg; break; + case GO_TITLE_SCREEN: opt_title_screen = optarg; break; case GO_AUTOADD_PATH: DefineAutoAddPath(optarg); break; case GO_ENCODE_ALL: opt_encode_all = true; break; @@ -5674,6 +5855,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env ) case GO_NO_HEADER: print_header = false; break; case GO_BRIEF: brief_count++; break; case GO_PIPE: pipe_count++; break; + case GO_IN_ORDER: inorder_count++; break; case GO_DELTA: delta_count++; break; case GO_DIFF: diff_count++; break; case GO_NO_PARAM: print_param = false; break; @@ -5694,6 +5876,7 @@ static enumError CheckOptions ( int argc, char ** argv, bool is_env ) case GO_NO_BMG_INLINE: opt_bmg_inline_attrib = false; break; case GO_CACHE: opt_cache = optarg; break; case GO_CNAME: opt_cname = optarg; break; + case GO_PARALLEL: parallel_count++; break; case GO_ID: opt_id = true; break; case GO_BASE64: opt_base64 = true; err += ScanOptCoding64(optarg); break; case GO_DB64: opt_db64 = true; err += ScanOptCoding64(optarg); break; @@ -5786,6 +5969,7 @@ static enumError CheckCommand ( int argc, char ** argv ) case CMD_COLORS: err = Command_COLORS(brief_count?-brief_count:long_count,0,0); break; case CMD_ERROR: err = cmd_error(); break; case CMD_FILETYPE: err = cmd_filetype(); break; + case CMD_UI_CHECK: err = cmd_ui_check(); break; case CMD_FILEATTRIB: err = cmd_fileattrib(); break; case CMD_BRSUB: err = cmd_brsub(); break; diff --git a/project/src/wtest.c b/project/src/wtest.c index 4f4991a..02b3cb9 100644 --- a/project/src/wtest.c +++ b/project/src/wtest.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2023 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * |
