2rd rewrite of upload management error based on 3.0

Add file size before upload for SPIFFS and WebUpdate
new embedded page based on 3.0
- display fw version
   - menu link link to wiki / github
   - auto detection of index.html.gz when uploaded
   - websocket to limit to one instance
   - build batch to generate page and fw file
fix for Apple captive portal blocking websocket per @Nathan-ma suggestion
Fix update partition size in [ESP420] for ESP32
change versio to 36
This commit is contained in:
Luc 2019-09-01 16:49:12 +02:00
parent d39ea079fa
commit 732b3e719d
11 changed files with 1371 additions and 1023 deletions

View File

@ -25,384 +25,416 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file tool.html.gz */
#define PAGE_NOFILES_SIZE 6028
const char PAGE_NOFILES[6028] PROGMEM = {
0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xED, 0x5C, 0x7B, 0x73, 0xDB, 0xC6,
0xAE, 0xFF, 0x2A, 0x2C, 0x3B, 0xB5, 0xA4, 0x6B, 0x52, 0xE2, 0x4B, 0x12, 0x25, 0x59, 0xCA, 0x69,
0x9B, 0xA4, 0xCD, 0x9D, 0xA4, 0xC9, 0xC4, 0xC9, 0xE9, 0x9D, 0x69, 0x3A, 0x1D, 0x8A, 0x5C, 0x59,
0x3C, 0xA1, 0x48, 0x99, 0x5C, 0xF9, 0x11, 0xD7, 0xDF, 0xFD, 0x02, 0xD8, 0xE5, 0x53, 0x0F, 0x3F,
0x92, 0x9E, 0xE6, 0x8F, 0x8E, 0x63, 0x91, 0xDA, 0x5D, 0x60, 0xB1, 0x58, 0xE0, 0x07, 0x2C, 0x48,
0xE7, 0x64, 0xC9, 0x57, 0xD1, 0xEC, 0x64, 0xC9, 0xBC, 0x60, 0x76, 0x92, 0xF1, 0xEB, 0x88, 0xCD,
0xB0, 0xE5, 0x66, 0x91, 0xC4, 0x5C, 0x5F, 0x78, 0xAB, 0x30, 0xBA, 0x1E, 0x67, 0x5E, 0x9C, 0xE9,
0x19, 0x4B, 0xC3, 0xC5, 0x44, 0x5F, 0x65, 0x3A, 0x67, 0x57, 0x5C, 0xCF, 0xC2, 0x4F, 0x4C, 0xF7,
0x82, 0xFF, 0x6C, 0x32, 0x3E, 0x36, 0x0D, 0xE3, 0xBB, 0x89, 0x7E, 0xC9, 0xE6, 0x1F, 0x43, 0xBE,
0xA7, 0x97, 0xD8, 0x61, 0x2B, 0x7C, 0x5D, 0x5F, 0xDD, 0xCE, 0x93, 0xE0, 0xBA, 0x36, 0x85, 0xFA,
0x33, 0x8B, 0x2E, 0x18, 0x0F, 0x7D, 0x4F, 0xF9, 0x85, 0x6D, 0x98, 0xAA, 0x15, 0xDF, 0xB5, 0xEF,
0xD3, 0xD0, 0x8B, 0xB4, 0x8A, 0x0C, 0x15, 0x5E, 0xCE, 0xFA, 0x6A, 0x12, 0x85, 0x31, 0xD3, 0x97,
0x2C, 0x3C, 0x5B, 0xC2, 0x5C, 0x5D, 0xC7, 0x72, 0xFB, 0x43, 0xD3, 0xB1, 0x27, 0x7E, 0x12, 0x25,
0xE9, 0xF8, 0x5B, 0xDB, 0xB6, 0x27, 0x73, 0xCF, 0xFF, 0x78, 0x96, 0x26, 0x9B, 0x38, 0xD0, 0x65,
0xEB, 0x62, 0xB1, 0xB8, 0xED, 0xFA, 0xC0, 0xC7, 0x03, 0xE2, 0xF4, 0x66, 0xE5, 0xA5, 0x67, 0x61,
0xAC, 0xA7, 0xC4, 0xC3, 0xDB, 0xF0, 0x64, 0x22, 0x5B, 0x22, 0xB6, 0x90, 0x0D, 0x6B, 0x2F, 0x08,
0xC2, 0xF8, 0x4C, 0xB4, 0x98, 0x7D, 0x98, 0x37, 0x6F, 0x11, 0x54, 0xD8, 0x74, 0xCB, 0xBD, 0x79,
0xC4, 0x6E, 0xE6, 0x49, 0x1A, 0xB0, 0x74, 0x6C, 0x4C, 0xC4, 0x8D, 0x9E, 0xAD, 0x3D, 0x1F, 0x06,
0x42, 0xC3, 0xCA, 0xBB, 0xD2, 0x2F, 0xC3, 0x80, 0x2F, 0x49, 0x29, 0xB7, 0x5D, 0x1A, 0xAF, 0x8B,
0x61, 0x2C, 0xB8, 0x29, 0xBB, 0x24, 0xE9, 0xD8, 0x5C, 0x5F, 0x29, 0x59, 0x12, 0x85, 0x81, 0xF2,
0x6D, 0x10, 0x04, 0xB9, 0x54, 0xF3, 0x84, 0xF3, 0x64, 0x35, 0xB6, 0x50, 0x93, 0x1C, 0xC8, 0x96,
0x21, 0x67, 0x34, 0x0B, 0x1B, 0xC7, 0xC9, 0x65, 0xEA, 0xAD, 0x73, 0xD9, 0xC6, 0xD6, 0x6A, 0x75,
0xCB, 0x97, 0x37, 0xB4, 0x27, 0x5E, 0x14, 0x9E, 0xC5, 0x63, 0x94, 0x5F, 0x4E, 0x3C, 0xE3, 0xB8,
0x0D, 0x33, 0x9E, 0xCE, 0x78, 0xA0, 0x6D, 0x35, 0x2D, 0x8B, 0x26, 0xB2, 0x8D, 0xFA, 0xA8, 0xA2,
0x69, 0x79, 0x93, 0x4F, 0xE5, 0xEE, 0xDF, 0x8A, 0x0B, 0x96, 0xE2, 0x4E, 0x46, 0x52, 0x04, 0x9E,
0xAC, 0x73, 0xD5, 0xC0, 0x6D, 0x63, 0x8D, 0x4D, 0xA5, 0xEC, 0x10, 0x72, 0x57, 0xDF, 0x72, 0xBB,
0x6F, 0x4B, 0xEC, 0x5D, 0x7D, 0xCB, 0x9B, 0x9D, 0x9A, 0xDE, 0x96, 0xE2, 0x41, 0xDC, 0xE4, 0x0E,
0xC9, 0xBD, 0xB6, 0x60, 0x9B, 0x24, 0x4D, 0xC6, 0xD3, 0x70, 0x5D, 0x11, 0x7C, 0x1C, 0xF3, 0xA5,
0x9E, 0x2C, 0x74, 0x7E, 0xBD, 0x66, 0xED, 0x24, 0x08, 0x3A, 0x37, 0x3B, 0x6C, 0x75, 0x84, 0x3F,
0xB7, 0xFF, 0x5A, 0xB1, 0x20, 0xF4, 0x94, 0xF6, 0x0A, 0x0C, 0x40, 0xF0, 0x1D, 0x0E, 0x40, 0xE7,
0x9D, 0x9B, 0x8A, 0x1D, 0xCB, 0xF6, 0x3E, 0x1A, 0xC6, 0x0E, 0x82, 0xD1, 0xC8, 0xDA, 0x49, 0x30,
0x1A, 0xEE, 0x21, 0x30, 0x2D, 0xC3, 0xD8, 0x49, 0x61, 0x9A, 0x82, 0xA4, 0x1B, 0x7B, 0x17, 0x55,
0xB3, 0x95, 0x22, 0xFB, 0xBE, 0xDF, 0x70, 0x18, 0xA3, 0xE9, 0x2E, 0x06, 0x18, 0x4B, 0x06, 0x6E,
0x8C, 0x88, 0x03, 0x56, 0x1B, 0xB3, 0x1D, 0x5E, 0x4A, 0xBE, 0x2B, 0x14, 0x9A, 0x7A, 0x41, 0xB8,
0xC9, 0xC6, 0x03, 0x30, 0xB2, 0x1D, 0x4E, 0xE0, 0xDD, 0xAC, 0x93, 0x2C, 0xE4, 0x61, 0x12, 0x8F,
0x53, 0x16, 0x79, 0x3C, 0xBC, 0x60, 0x93, 0x20, 0xCC, 0xD6, 0x91, 0x77, 0x3D, 0x9E, 0x47, 0x89,
0xFF, 0xB1, 0x70, 0x08, 0x44, 0x1F, 0x85, 0xDC, 0x97, 0x7C, 0x22, 0x60, 0x7E, 0x92, 0x7A, 0x44,
0x48, 0x32, 0x94, 0xF2, 0xDF, 0x76, 0x3D, 0x1F, 0xF9, 0xDC, 0x94, 0x88, 0xB1, 0x43, 0x42, 0xC3,
0x30, 0xF2, 0x81, 0x8A, 0xA7, 0x79, 0xE3, 0x45, 0xE2, 0x6F, 0x32, 0xB8, 0x2E, 0x13, 0xB0, 0xF9,
0x9B, 0x2A, 0xD8, 0xAC, 0xBD, 0x98, 0x45, 0x37, 0xDB, 0xB2, 0xEF, 0x06, 0xA7, 0x3D, 0xFE, 0x5F,
0x57, 0x06, 0x82, 0x5F, 0x8E, 0xBA, 0xF3, 0xE4, 0x4A, 0xCF, 0x96, 0x5E, 0x90, 0x5C, 0x8E, 0x0D,
0x05, 0xA9, 0xF0, 0x37, 0x3D, 0x9B, 0x7B, 0x6D, 0x43, 0xC3, 0x9F, 0xAE, 0xD1, 0xEF, 0x4C, 0xEE,
0x33, 0x48, 0x4A, 0xAA, 0x13, 0x42, 0x17, 0x5A, 0x43, 0x70, 0x93, 0x1D, 0x68, 0xEC, 0xD0, 0x76,
0xB3, 0xAD, 0xD1, 0xC3, 0x88, 0xDB, 0xC7, 0x9F, 0x7C, 0x05, 0xB2, 0xB1, 0xB2, 0x26, 0x40, 0x02,
0x61, 0x1A, 0xF9, 0xEA, 0x6C, 0xD4, 0x4D, 0xD9, 0x87, 0x66, 0xB4, 0xA3, 0x4B, 0x6A, 0xB2, 0xE1,
0xBD, 0x91, 0x37, 0x07, 0x65, 0xE7, 0x16, 0x10, 0xC6, 0x84, 0x4B, 0xC2, 0x10, 0xEA, 0x10, 0xDC,
0x30, 0x26, 0x5C, 0x05, 0x45, 0x97, 0x4B, 0x81, 0x61, 0x43, 0xDC, 0x5E, 0x32, 0x94, 0x30, 0x5E,
0x24, 0xF9, 0x7E, 0xDA, 0x60, 0xFC, 0x2E, 0x6C, 0xE9, 0x22, 0x49, 0x57, 0x3A, 0x7A, 0x46, 0x9A,
0x94, 0x93, 0x89, 0x59, 0xC4, 0x0C, 0x14, 0x38, 0x24, 0x1C, 0xDA, 0x4E, 0x19, 0x32, 0xD0, 0x8C,
0x15, 0xD3, 0xCA, 0x27, 0xBB, 0x6F, 0x28, 0xEB, 0xF7, 0xFB, 0xFB, 0xAC, 0xA5, 0x6C, 0x0D, 0x57,
0xDE, 0x59, 0xEE, 0x50, 0x5B, 0x36, 0x84, 0x7E, 0x79, 0x2F, 0x1B, 0x0A, 0xE3, 0x8C, 0x71, 0x65,
0x8F, 0x91, 0x0C, 0xEB, 0xA6, 0x74, 0xE7, 0x58, 0x3D, 0xD1, 0x79, 0x0A, 0xE1, 0x5B, 0x38, 0x68,
0xD5, 0x02, 0x14, 0xE6, 0x65, 0x0C, 0x74, 0xAB, 0x27, 0x1B, 0xAE, 0x74, 0xCD, 0x7E, 0xA6, 0x95,
0x7C, 0xB7, 0xFA, 0xEA, 0x0A, 0x17, 0xAE, 0x76, 0x53, 0xB7, 0xA7, 0xC1, 0xC0, 0x5B, 0xB0, 0xD1,
0x04, 0x28, 0x50, 0x93, 0x10, 0x70, 0x1F, 0xB1, 0x34, 0xCD, 0x80, 0x4E, 0x37, 0xEF, 0x30, 0x0D,
0x4B, 0x33, 0x87, 0x7D, 0xCD, 0xB2, 0x6D, 0xAD, 0x3B, 0xE8, 0x48, 0x19, 0x50, 0xD7, 0xEB, 0x86,
0x33, 0x0B, 0x1F, 0x99, 0xF3, 0x78, 0x9F, 0xDD, 0x55, 0x07, 0x1B, 0x35, 0x33, 0x73, 0x0C, 0x63,
0x52, 0x09, 0xD1, 0x3E, 0x8B, 0x39, 0x4B, 0x9B, 0x51, 0x73, 0x15, 0x06, 0x41, 0xC4, 0x44, 0x02,
0x96, 0x6C, 0xFC, 0xA5, 0x8E, 0xB0, 0x03, 0xFA, 0x5C, 0x79, 0x71, 0xB8, 0xDE, 0x44, 0x04, 0x62,
0x93, 0xFD, 0x3D, 0xFE, 0x26, 0xCD, 0x40, 0x45, 0xEB, 0x24, 0x24, 0xE6, 0xF7, 0xB4, 0x18, 0xDA,
0xB7, 0xB5, 0x97, 0x82, 0x44, 0x93, 0x03, 0x69, 0xC6, 0x03, 0xED, 0x79, 0x87, 0x09, 0xAE, 0x92,
0x4F, 0xFA, 0x26, 0xC3, 0x64, 0x89, 0x45, 0xCC, 0xE7, 0x42, 0x1C, 0x5C, 0xEB, 0x56, 0x63, 0xB3,
0x81, 0x74, 0xAE, 0xAF, 0x53, 0x58, 0x46, 0x7A, 0x7D, 0x18, 0xAD, 0x6D, 0x7B, 0xE8, 0xCD, 0x87,
0x0D, 0x0C, 0xB2, 0xD8, 0x20, 0xF0, 0x9C, 0x1A, 0x17, 0x89, 0xE8, 0x5A, 0xAD, 0x4D, 0x40, 0x7B,
0xAD, 0x89, 0x50, 0xBE, 0xD6, 0x34, 0xDE, 0x41, 0x39, 0xDE, 0xA6, 0xDC, 0x8A, 0x0F, 0x3B, 0x84,
0xB5, 0xDC, 0x81, 0x31, 0x32, 0x1A, 0xC2, 0x9A, 0x96, 0x35, 0x77, 0x8C, 0x5B, 0xDF, 0x5B, 0xE3,
0xA6, 0xE6, 0x18, 0x4C, 0x69, 0x94, 0x5B, 0x49, 0x49, 0xA5, 0x95, 0xB9, 0x25, 0x28, 0x0F, 0x87,
0xC3, 0xC9, 0x56, 0x16, 0xE8, 0x45, 0x60, 0x62, 0x35, 0x90, 0xDF, 0x11, 0x5C, 0x0F, 0x1B, 0xC5,
0xD6, 0x56, 0x4A, 0xAE, 0x7A, 0xB6, 0xF1, 0x7D, 0x96, 0x65, 0x3B, 0xF2, 0x99, 0x60, 0xB1, 0x30,
0x02, 0xB7, 0x19, 0x09, 0x06, 0x6C, 0xE4, 0x0F, 0x8A, 0x10, 0xE2, 0x0F, 0x07, 0x76, 0x90, 0xB3,
0x0A, 0xBC, 0xF8, 0x0C, 0xB4, 0xB5, 0x03, 0xFA, 0xAC, 0x80, 0x05, 0xAC, 0xC1, 0x89, 0xCD, 0x7D,
0x3F, 0x30, 0x73, 0x4E, 0xDE, 0xC8, 0x71, 0x1C, 0xEB, 0xB6, 0xBB, 0xF4, 0x32, 0x9D, 0xA5, 0x29,
0x40, 0x4E, 0x1D, 0xB6, 0xEB, 0xB4, 0x62, 0xF4, 0x5F, 0x0D, 0x88, 0x7B, 0xA5, 0xD9, 0x89, 0x69,
0xAE, 0x63, 0xF7, 0x6D, 0xE7, 0xD1, 0x48, 0x86, 0xAE, 0xF9, 0xAD, 0xCF, 0x5C, 0xC7, 0xB5, 0x1F,
0x22, 0x63, 0x93, 0xB6, 0x26, 0xB3, 0x14, 0x57, 0x17, 0x61, 0x76, 0x87, 0xA6, 0xE5, 0xE6, 0x1F,
0xD4, 0xB5, 0xD8, 0xE3, 0xFF, 0x8E, 0xAE, 0x77, 0xCA, 0xB3, 0x53, 0xDB, 0xD6, 0xBC, 0xEF, 0x58,
0xFE, 0xE7, 0x69, 0x7B, 0x30, 0x9C, 0x9B, 0x03, 0xF7, 0x71, 0xDA, 0x16, 0xB4, 0x0D, 0xA9, 0x77,
0xEA, 0x3B, 0xF7, 0x11, 0x84, 0x15, 0xE9, 0x21, 0x07, 0xF1, 0x24, 0x18, 0x81, 0x19, 0x2D, 0x9A,
0x6E, 0xE7, 0xD8, 0x0B, 0xDB, 0xAB, 0x32, 0xA9, 0x61, 0x9F, 0x6C, 0xAA, 0x00, 0x98, 0x6C, 0xA9,
0x20, 0x9F, 0x68, 0x19, 0x6F, 0x93, 0x8D, 0xB7, 0xC8, 0xEE, 0x03, 0x7B, 0xFE, 0xC8, 0x36, 0x2C,
0xBF, 0x21, 0xE6, 0x70, 0x60, 0xFA, 0xE6, 0x88, 0xC4, 0x0C, 0x57, 0x67, 0x37, 0x32, 0x96, 0x2D,
0xBD, 0xB8, 0x99, 0x12, 0x0F, 0x76, 0xE1, 0x95, 0x48, 0xC0, 0x05, 0xAD, 0x14, 0x61, 0x07, 0x96,
0x18, 0xF8, 0xD3, 0x98, 0xD7, 0x00, 0x11, 0xFF, 0x76, 0xC7, 0x03, 0xC1, 0x49, 0xD2, 0xC3, 0x2B,
0xB7, 0x0D, 0x99, 0x7E, 0xE4, 0x63, 0xEF, 0x5A, 0xE9, 0xDF, 0xBF, 0xAE, 0x08, 0x44, 0x83, 0x0C,
0xE1, 0x63, 0x6E, 0x10, 0x74, 0x98, 0x2A, 0x5A, 0xC7, 0xD2, 0xC6, 0x16, 0x61, 0xC4, 0xE8, 0xBB,
0x70, 0xD7, 0x62, 0xEC, 0xC8, 0x81, 0x5D, 0x0D, 0xE3, 0xF5, 0x86, 0xFF, 0x86, 0xA7, 0xE7, 0x29,
0x8E, 0xFB, 0x7D, 0x3C, 0xCE, 0x97, 0x85, 0x5F, 0xF5, 0xCD, 0x3A, 0x4A, 0xBC, 0x40, 0x9F, 0x6F,
0x20, 0x9A, 0xFD, 0x93, 0x97, 0xFD, 0x77, 0xF3, 0xB2, 0xC9, 0x41, 0x37, 0xEF, 0xCF, 0x7D, 0x63,
0x2B, 0x74, 0x3B, 0x83, 0xB9, 0x1B, 0x78, 0x0F, 0xDA, 0x54, 0x69, 0x15, 0xFF, 0x6C, 0xED, 0xD7,
0xB3, 0xB5, 0xB6, 0x39, 0x37, 0x82, 0xE6, 0x49, 0xDF, 0x9C, 0x0F, 0x02, 0xB7, 0xFF, 0xB0, 0xAD,
0x15, 0x00, 0xF6, 0xCF, 0xD6, 0x7E, 0xE5, 0x5B, 0x6B, 0x0D, 0x46, 0xDE, 0xDC, 0xBF, 0x2D, 0x80,
0xBA, 0x06, 0xE7, 0x75, 0xF4, 0xAE, 0xA0, 0x79, 0x2D, 0x15, 0x90, 0x68, 0x2E, 0x2B, 0x4C, 0x8B,
0x24, 0x01, 0xA5, 0x1E, 0x28, 0x30, 0x51, 0xFD, 0xE5, 0x71, 0x35, 0xA6, 0xAD, 0x3A, 0x2F, 0x1A,
0x1C, 0x86, 0x49, 0xB1, 0x57, 0x4E, 0x25, 0x69, 0xB0, 0xF1, 0xA7, 0x4A, 0x5A, 0xE9, 0xB4, 0x9D,
0x91, 0x1B, 0xCC, 0x1B, 0xAA, 0xEF, 0x1B, 0xDF, 0x4D, 0xF2, 0xBA, 0x29, 0x48, 0x9B, 0xEF, 0x14,
0xDE, 0x83, 0xED, 0xAC, 0x44, 0x99, 0x31, 0x5B, 0x87, 0xB1, 0x62, 0x65, 0x0A, 0x6E, 0xA6, 0x97,
0x2A, 0x61, 0xBC, 0x08, 0x63, 0xB0, 0x84, 0xDB, 0x7F, 0x7D, 0x64, 0xD7, 0x8B, 0xD4, 0x5B, 0xB1,
0x4C, 0xC1, 0x21, 0x37, 0xC6, 0x77, 0x37, 0x64, 0x2E, 0x98, 0xB1, 0x8E, 0xD3, 0x84, 0x7B, 0x9C,
0xB5, 0x8D, 0xCE, 0x2D, 0x16, 0xAD, 0xB6, 0x3B, 0xEC, 0x01, 0x80, 0xE9, 0x59, 0xE7, 0xF6, 0x6F,
0xD1, 0xE0, 0x2A, 0x09, 0xBC, 0xB2, 0xFE, 0x45, 0x46, 0x54, 0x54, 0x63, 0x17, 0xE1, 0x15, 0x0B,
0x26, 0x9F, 0xF4, 0x30, 0x0E, 0xD8, 0x15, 0x56, 0xDC, 0x8C, 0xB2, 0x10, 0x4C, 0xBC, 0xB0, 0xBE,
0x3C, 0xA1, 0x12, 0x31, 0x38, 0x2D, 0x34, 0x18, 0x93, 0x4A, 0x71, 0x2E, 0xD7, 0x20, 0xDE, 0xA3,
0xB9, 0x2C, 0x22, 0x48, 0x34, 0xA8, 0xA8, 0xB6, 0xB3, 0x12, 0xBB, 0xDD, 0x5A, 0x4D, 0x42, 0x9C,
0x8E, 0x14, 0x95, 0xF2, 0x7F, 0x70, 0xC1, 0x9B, 0x72, 0x4D, 0xB5, 0xEA, 0xA2, 0x69, 0xD4, 0x2B,
0x8F, 0xB5, 0xAA, 0x64, 0xB5, 0x53, 0x16, 0xF9, 0xF7, 0xD1, 0xCA, 0xEE, 0x7D, 0xE4, 0xF8, 0x58,
0xA0, 0x30, 0xA7, 0xBC, 0x30, 0x51, 0xA9, 0xCF, 0x62, 0x09, 0xCA, 0x44, 0x28, 0x30, 0x6A, 0xB9,
0x94, 0xD5, 0x99, 0x6C, 0xD7, 0xBA, 0x05, 0x1C, 0xD6, 0x1E, 0x54, 0x8D, 0x77, 0xA8, 0xE3, 0xDB,
0x05, 0xC3, 0x9F, 0x5C, 0x0F, 0x58, 0xC9, 0xAD, 0x58, 0x89, 0x25, 0x27, 0x9C, 0x14, 0xC9, 0x2F,
0xFE, 0xEC, 0xE2, 0x62, 0xE1, 0xCF, 0xBE, 0xE2, 0xEC, 0x03, 0xD5, 0x57, 0x2B, 0x4F, 0x2E, 0xF0,
0x27, 0x17, 0xAF, 0x5E, 0x81, 0x36, 0xA4, 0x74, 0x79, 0x6F, 0xD3, 0xC4, 0x07, 0xB9, 0xF4, 0xD2,
0x68, 0x9C, 0x6E, 0x9F, 0xAD, 0x1E, 0xBE, 0x94, 0x6D, 0x71, 0x3E, 0x73, 0xB7, 0x0F, 0x3C, 0xB7,
0xA9, 0x5B, 0xA3, 0xE8, 0xEB, 0xBB, 0xD5, 0x47, 0x31, 0x99, 0x9F, 0x32, 0x16, 0x2B, 0x90, 0xED,
0x03, 0x7D, 0x51, 0xB8, 0x1E, 0x0E, 0x86, 0x7B, 0xE9, 0xE9, 0xB9, 0xE2, 0xED, 0x49, 0x4F, 0x3C,
0xC9, 0x3D, 0xE9, 0x89, 0xE7, 0xBA, 0xF4, 0xB4, 0xE9, 0x24, 0x08, 0x2F, 0x14, 0x3F, 0xF2, 0xB2,
0x6C, 0xAA, 0x12, 0x4C, 0xA8, 0xB3, 0x13, 0x7A, 0x2A, 0xA5, 0x10, 0xE9, 0x54, 0x45, 0x5A, 0x6C,
0x4B, 0xE1, 0x17, 0x88, 0xBC, 0x7C, 0xB0, 0x38, 0x39, 0xA9, 0xCA, 0x32, 0x65, 0x8B, 0xA9, 0xBA,
0xE4, 0x7C, 0x9D, 0x8D, 0x7B, 0xBD, 0xCB, 0xCB, 0xCB, 0xEE, 0x59, 0xC8, 0x97, 0x9B, 0x39, 0x9C,
0x4F, 0x57, 0xBD, 0x68, 0xE3, 0xEB, 0xE2, 0x6B, 0xEF, 0xD9, 0xE9, 0x1B, 0xFB, 0x69, 0x8F, 0x83,
0xE8, 0x3D, 0xAB, 0x6B, 0xAA, 0x0A, 0x07, 0xEB, 0x64, 0x7C, 0xAA, 0xFE, 0x01, 0xB9, 0x7D, 0xFC,
0x11, 0x66, 0xC8, 0x2E, 0xCE, 0x8A, 0x39, 0xD9, 0x0A, 0x18, 0xD3, 0x96, 0xC9, 0x2F, 0x17, 0x21,
0xBB, 0xFC, 0x21, 0xB9, 0x9A, 0xAA, 0x78, 0x60, 0x30, 0x6D, 0x03, 0x3E, 0x2C, 0xC3, 0x00, 0xAA,
0x33, 0xA5, 0xC0, 0xBD, 0xA9, 0x4A, 0xB7, 0x11, 0x62, 0x5F, 0xDF, 0xD0, 0x70, 0x40, 0x07, 0x94,
0xE5, 0x45, 0xAC, 0x6D, 0x6A, 0x8A, 0x6E, 0x76, 0x60, 0xF8, 0xDA, 0xE3, 0x4B, 0x25, 0x98, 0xAA,
0xAF, 0x06, 0xC8, 0xC2, 0x1C, 0x3A, 0xE7, 0xB6, 0x0D, 0x1C, 0x87, 0x8E, 0xA2, 0xF7, 0x23, 0xDB,
0x85, 0x51, 0x7D, 0x2B, 0xEA, 0xC3, 0xE5, 0xDC, 0x19, 0xC1, 0xA7, 0xA3, 0x8C, 0xA0, 0xC7, 0x1E,
0x61, 0x93, 0x15, 0x99, 0xB6, 0xA3, 0xB8, 0xC6, 0xF9, 0xC0, 0x54, 0x74, 0xC7, 0x55, 0x4C, 0x03,
0xBA, 0x4C, 0xA3, 0x1F, 0xE9, 0xAE, 0x01, 0x37, 0xB6, 0x13, 0xD9, 0xC0, 0xE4, 0xDC, 0x82, 0xA1,
0x8E, 0xA3, 0xD8, 0x40, 0x3E, 0xB2, 0x23, 0x18, 0x3A, 0x88, 0x80, 0x27, 0x30, 0x71, 0xCF, 0xB1,
0xC7, 0x56, 0xE0, 0x73, 0x68, 0x9F, 0x03, 0x89, 0x8D, 0x93, 0xC2, 0x17, 0x27, 0xD2, 0xE5, 0x08,
0xB8, 0x81, 0xF1, 0xE7, 0xF0, 0x15, 0x46, 0x8E, 0x70, 0x62, 0x62, 0xA2, 0x23, 0xE3, 0x48, 0xCE,
0x72, 0x8E, 0x73, 0xEB, 0x28, 0x43, 0x29, 0x00, 0x09, 0x66, 0x46, 0xC8, 0xCD, 0x3E, 0xC7, 0xD9,
0x75, 0x94, 0x42, 0x8A, 0xAE, 0x93, 0xEC, 0xBA, 0x58, 0x9C, 0xA9, 0x9C, 0xA3, 0x0C, 0x62, 0x5E,
0x14, 0x57, 0xA7, 0xF5, 0xE3, 0x97, 0x3E, 0x8D, 0x81, 0x21, 0x48, 0x61, 0x9D, 0xA3, 0x00, 0xB0,
0x7E, 0xE4, 0x22, 0x98, 0xD8, 0x62, 0x1E, 0xDD, 0x35, 0xCF, 0xF5, 0x81, 0xA1, 0xA0, 0x14, 0x28,
0x01, 0x0A, 0xE0, 0xE2, 0x9E, 0x38, 0x28, 0x27, 0x30, 0x84, 0xA9, 0x1D, 0x14, 0xC4, 0x55, 0x50,
0x74, 0x4B, 0x19, 0x44, 0x34, 0x2F, 0xAC, 0x5F, 0x1F, 0x28, 0x0E, 0xAC, 0x73, 0x00, 0xEA, 0x86,
0xF5, 0xC3, 0xC4, 0x70, 0x07, 0x2A, 0xA2, 0xCE, 0x08, 0x06, 0x9E, 0x9B, 0x36, 0xB2, 0x15, 0x94,
0xB6, 0x22, 0x34, 0x8B, 0x4B, 0x76, 0x86, 0x0A, 0x2C, 0x18, 0x66, 0xA2, 0xD9, 0x4C, 0xA0, 0x84,
0x9E, 0x08, 0xA5, 0x84, 0x99, 0x60, 0x3E, 0x21, 0x23, 0xF4, 0x46, 0xB4, 0x02, 0x68, 0x46, 0x35,
0xE3, 0x9A, 0x3E, 0xD1, 0x46, 0xBB, 0xA0, 0xD0, 0x73, 0xDD, 0x1D, 0xE1, 0x4A, 0x49, 0xD5, 0x03,
0x9B, 0xC3, 0x2F, 0x29, 0xA4, 0xDB, 0xE7, 0xE5, 0x5D, 0xDE, 0x89, 0x57, 0xB8, 0x40, 0x87, 0x68,
0xD7, 0xCB, 0x3B, 0xD1, 0xF5, 0x09, 0x6C, 0xA9, 0x87, 0xC6, 0x04, 0x97, 0x33, 0xF8, 0x05, 0xE3,
0x9D, 0x29, 0x27, 0x90, 0xB8, 0xC5, 0x85, 0x7F, 0xE4, 0x47, 0x56, 0x75, 0xF6, 0x3C, 0x4C, 0x57,
0x97, 0x90, 0xE0, 0xC1, 0x30, 0x18, 0x00, 0xA3, 0x3D, 0xF8, 0x45, 0x67, 0xFA, 0x7C, 0x87, 0xD2,
0x7F, 0x7D, 0xF6, 0xC3, 0xFB, 0x17, 0x5F, 0x99, 0x5B, 0x41, 0xDE, 0x76, 0xEE, 0x5A, 0xC8, 0x71,
0x60, 0x74, 0xD1, 0xFA, 0x2C, 0x54, 0xAD, 0x03, 0xCA, 0xEF, 0x8F, 0xB8, 0x69, 0x0E, 0xB0, 0xCD,
0xC5, 0xB6, 0x91, 0x83, 0xB7, 0x23, 0xD8, 0x01, 0x97, 0x2E, 0x8E, 0x55, 0x74, 0xA1, 0xE9, 0xF5,
0x87, 0xA4, 0xF0, 0xE2, 0x0E, 0x0D, 0x97, 0x3A, 0xF5, 0x81, 0x2B, 0x09, 0xF5, 0x82, 0x85, 0x5E,
0x65, 0xAC, 0xE7, 0xB3, 0xC1, 0x76, 0x8D, 0x0A, 0x11, 0xE4, 0x17, 0xAB, 0x18, 0x41, 0x03, 0x88,
0x4C, 0x50, 0x11, 0xB3, 0x51, 0xCE, 0x7F, 0x24, 0xA6, 0xCC, 0x19, 0x2A, 0x24, 0x44, 0x7E, 0x25,
0x51, 0xA9, 0x0B, 0x64, 0x1F, 0xF5, 0x15, 0x9E, 0xD3, 0x56, 0xF8, 0xC9, 0x29, 0x84, 0x16, 0x70,
0xD6, 0x4F, 0xAF, 0x5C, 0xD7, 0x85, 0xBE, 0x11, 0xB9, 0x38, 0x7A, 0xB9, 0x09, 0xF6, 0x6A, 0x71,
0x12, 0x90, 0x90, 0xA3, 0x3F, 0x44, 0x7B, 0x06, 0xA1, 0x46, 0x88, 0x10, 0xA6, 0x85, 0xFE, 0x06,
0xBA, 0xB1, 0x60, 0x10, 0x7E, 0xE0, 0x37, 0x71, 0x83, 0x57, 0xE8, 0x81, 0xDB, 0x73, 0x9C, 0x44,
0xB1, 0xC0, 0x40, 0x4D, 0x50, 0xBB, 0x62, 0x8E, 0x14, 0x87, 0xA6, 0x03, 0x99, 0x87, 0xB8, 0x74,
0x18, 0xA1, 0x0F, 0x81, 0xD9, 0x00, 0x01, 0x6D, 0x80, 0x5C, 0x5D, 0x00, 0x11, 0x13, 0x6D, 0x7E,
0xA0, 0x08, 0xA8, 0x31, 0x70, 0x2F, 0xE0, 0x0A, 0x22, 0x9E, 0x5B, 0x88, 0x44, 0xE0, 0xA8, 0x43,
0x00, 0x05, 0x93, 0x23, 0xA1, 0x6B, 0xF1, 0x91, 0xD8, 0x18, 0x13, 0x56, 0x87, 0xE0, 0xE1, 0xE2,
0xE2, 0x6C, 0x9B, 0x14, 0x8B, 0x93, 0xC9, 0x2F, 0x96, 0x43, 0xFD, 0xD4, 0x4D, 0x14, 0x2E, 0x7A,
0xCC, 0xD0, 0x10, 0x57, 0xE0, 0x38, 0x84, 0x89, 0xCE, 0x4D, 0xF0, 0x64, 0x50, 0x99, 0xE2, 0xE4,
0x7A, 0x75, 0xA0, 0xF7, 0x5C, 0x1F, 0x11, 0x1E, 0xA3, 0x50, 0xB0, 0x12, 0x77, 0xF4, 0xE9, 0x95,
0x03, 0x50, 0x30, 0xB4, 0x86, 0x80, 0x2A, 0x88, 0x26, 0x12, 0x15, 0xE9, 0x97, 0x76, 0xD4, 0xC6,
0x59, 0x68, 0xF3, 0x89, 0xDE, 0x06, 0x52, 0xDC, 0x09, 0x5C, 0x96, 0x09, 0x48, 0x82, 0x4B, 0xB3,
0x15, 0x9B, 0xEC, 0xC4, 0x34, 0xB9, 0x8D, 0x9B, 0x62, 0x0E, 0x23, 0xE0, 0x05, 0x78, 0x02, 0x93,
0xA2, 0xFE, 0x51, 0x44, 0x14, 0x1C, 0xA4, 0x18, 0xC8, 0x5B, 0x42, 0x4F, 0x04, 0x50, 0x00, 0x0B,
0x10, 0x07, 0x26, 0x25, 0x69, 0x75, 0x0B, 0x54, 0x6D, 0x70, 0xDD, 0xB6, 0x50, 0x9F, 0x0F, 0x72,
0xFE, 0x17, 0x78, 0x16, 0x5C, 0xC0, 0x81, 0xEE, 0x2F, 0xF0, 0xFE, 0xDE, 0x65, 0xF8, 0x31, 0xFC,
0x3A, 0x7C, 0xDE, 0x1C, 0x0E, 0xCF, 0x71, 0xFF, 0x0C, 0xB0, 0x3C, 0x50, 0x9F, 0xD3, 0x47, 0x13,
0x71, 0x1D, 0x61, 0x80, 0x00, 0xA8, 0x96, 0x4D, 0x86, 0x87, 0x7B, 0xD6, 0x17, 0x0E, 0xE9, 0x70,
0xBD, 0x72, 0x5B, 0x19, 0xA0, 0x57, 0xE8, 0xF4, 0x92, 0x1B, 0xDD, 0x8A, 0x3B, 0x31, 0x80, 0xFA,
0x91, 0x4E, 0x92, 0x11, 0x37, 0x64, 0x56, 0xDC, 0x94, 0x9D, 0x25, 0x45, 0xCE, 0xE5, 0xD3, 0xAB,
0x3E, 0xF8, 0xCF, 0xC8, 0x81, 0x68, 0x66, 0x51, 0x60, 0x00, 0x27, 0xD2, 0xFB, 0x12, 0xEB, 0x75,
0x0B, 0x5D, 0x02, 0x0C, 0x5D, 0xDA, 0x19, 0xD9, 0x98, 0x08, 0x1B, 0x12, 0x65, 0xD0, 0x06, 0xD1,
0x45, 0xC1, 0x5B, 0x2D, 0xBA, 0x2C, 0x4D, 0xDB, 0x3C, 0xB7, 0x91, 0x8F, 0x02, 0x46, 0x66, 0x9A,
0xE7, 0x03, 0xEC, 0xB0, 0xC8, 0xF5, 0x5D, 0x21, 0x92, 0x7B, 0x6E, 0xA1, 0xCE, 0x6D, 0xE2, 0x65,
0xE2, 0x0C, 0x26, 0xDD, 0x5A, 0x30, 0x05, 0xF1, 0x82, 0x89, 0x87, 0x98, 0x17, 0xC0, 0x5A, 0xD1,
0x7E, 0x21, 0x62, 0x9A, 0x14, 0xB2, 0xC8, 0xD3, 0x50, 0x49, 0x64, 0xF9, 0x84, 0x85, 0x38, 0x29,
0xB1, 0xD0, 0xD1, 0x61, 0xCD, 0x21, 0x2A, 0x45, 0xF8, 0x23, 0xC2, 0x1C, 0x39, 0x08, 0xF4, 0x81,
0xFC, 0x0E, 0x7A, 0x0E, 0x08, 0xAC, 0x50, 0x23, 0x4A, 0xCF, 0x49, 0x28, 0x1D, 0x86, 0x2F, 0x4D,
0xC8, 0x44, 0xC4, 0x9E, 0x29, 0x2E, 0xB7, 0x49, 0x52, 0x1B, 0x41, 0xC3, 0x71, 0xB9, 0x85, 0x73,
0x0D, 0x51, 0x87, 0x00, 0xE8, 0x06, 0x88, 0x87, 0x88, 0x00, 0x1B, 0xEC, 0xDA, 0x0A, 0x27, 0xA4,
0x00, 0x1C, 0x04, 0x0D, 0xE1, 0x28, 0x9B, 0xD4, 0x3F, 0x00, 0xA7, 0x72, 0xB1, 0x05, 0xF1, 0x07,
0xE2, 0xEE, 0x10, 0xD8, 0x18, 0xC6, 0x12, 0xA4, 0x31, 0x40, 0x02, 0x83, 0x16, 0x32, 0x2C, 0xE4,
0x17, 0xD0, 0x04, 0x9F, 0x17, 0x34, 0x80, 0x56, 0xA3, 0x14, 0x8D, 0xBC, 0x18, 0xB9, 0xC4, 0x5E,
0xA2, 0xA6, 0x26, 0xEC, 0x1B, 0x92, 0x2B, 0x03, 0xA5, 0x20, 0x34, 0x0D, 0x1A, 0x48, 0x4D, 0x12,
0xF3, 0xE0, 0xF7, 0x41, 0x3E, 0xFA, 0x33, 0x8B, 0xD6, 0x3B, 0xDC, 0x53, 0xA1, 0x7C, 0x79, 0xAA,
0x56, 0x0E, 0x9F, 0x95, 0x12, 0x12, 0x25, 0xF5, 0xAA, 0x12, 0x82, 0x0B, 0x3C, 0xFF, 0xF5, 0xDF,
0xCF, 0xDE, 0x9E, 0xBE, 0x78, 0xFD, 0x8B, 0x3A, 0xFB, 0xB7, 0xD9, 0xB5, 0xBB, 0xA6, 0xE0, 0xD0,
0xC3, 0xA4, 0xB9, 0x27, 0x5E, 0x8E, 0x3B, 0xE9, 0x41, 0xA2, 0xBD, 0x33, 0xDB, 0x16, 0xA5, 0xA8,
0xD9, 0xC9, 0xD2, 0x22, 0x5E, 0xAF, 0x4E, 0x7F, 0x42, 0xD1, 0x97, 0x16, 0x7C, 0xE4, 0x5D, 0x7B,
0x68, 0x69, 0xFC, 0xE9, 0x9B, 0x17, 0xCF, 0x9F, 0x9F, 0xAA, 0xDB, 0xDD, 0xF9, 0x3B, 0x39, 0x90,
0x7F, 0x40, 0xEB, 0x52, 0x79, 0x1E, 0x46, 0x2C, 0xBB, 0xCE, 0x38, 0x5B, 0xED, 0xE1, 0x47, 0x67,
0x2B, 0x60, 0x44, 0xE5, 0x38, 0x85, 0xCA, 0x71, 0x2A, 0x56, 0x66, 0xC4, 0x3C, 0x54, 0x8A, 0x13,
0x35, 0x21, 0x55, 0x89, 0xBD, 0x15, 0x74, 0xAE, 0xAE, 0xB1, 0x31, 0xFB, 0xED, 0x77, 0x55, 0x59,
0x6D, 0x22, 0x1E, 0xAE, 0x51, 0x59, 0xF9, 0x9D, 0x0A, 0xEA, 0x16, 0x9C, 0x4A, 0x84, 0x53, 0x2A,
0x4F, 0xBB, 0x55, 0x39, 0x83, 0x28, 0xEB, 0x89, 0x39, 0x6A, 0x95, 0x3E, 0x55, 0x49, 0x62, 0x3F,
0x0A, 0xFD, 0x8F, 0xB0, 0x46, 0x16, 0x07, 0x38, 0x55, 0xBB, 0x33, 0x01, 0xFC, 0xF2, 0xA2, 0x0D,
0xD0, 0xBD, 0xA7, 0xB1, 0xEA, 0xEC, 0x28, 0x9E, 0x67, 0xEB, 0x89, 0xF8, 0x3C, 0x59, 0xA7, 0xC9,
0x59, 0x8A, 0x4F, 0xC7, 0xE4, 0xCE, 0x5D, 0x84, 0x59, 0x38, 0x0F, 0xA3, 0x90, 0x5F, 0x8F, 0x97,
0x61, 0x10, 0xB0, 0x38, 0x17, 0x7D, 0x9D, 0x9E, 0x89, 0x29, 0xE9, 0x06, 0x4E, 0x51, 0x74, 0xD0,
0x21, 0x9B, 0x91, 0x2C, 0xE0, 0x7C, 0x94, 0x8A, 0xDF, 0x1D, 0x7B, 0xB6, 0x4F, 0x75, 0x72, 0xAF,
0xC5, 0x61, 0x29, 0x87, 0x60, 0x3A, 0x3F, 0x3D, 0x44, 0x15, 0xB5, 0x75, 0xFF, 0x98, 0xAC, 0x56,
0x70, 0xD4, 0x6B, 0xB7, 0xF0, 0xCD, 0xB8, 0x96, 0xD6, 0xF2, 0xA2, 0xA8, 0x55, 0x51, 0xC3, 0x5B,
0xB6, 0x00, 0x69, 0x97, 0x6A, 0x69, 0xB4, 0xD5, 0x59, 0x51, 0xCE, 0x82, 0xDB, 0x8F, 0x29, 0x03,
0x3C, 0x0F, 0xC2, 0xB4, 0xDD, 0x51, 0x1B, 0x61, 0xA7, 0x16, 0x32, 0x1C, 0xA3, 0x8C, 0x18, 0x78,
0x5F, 0x0B, 0x18, 0x0E, 0xFE, 0x83, 0xF1, 0x29, 0xD8, 0x81, 0x02, 0x6D, 0x7D, 0x55, 0xB9, 0x46,
0xDD, 0xA9, 0x39, 0xB5, 0x5D, 0xA1, 0xB6, 0xE0, 0x3E, 0x85, 0x41, 0x16, 0x5C, 0xAE, 0xE9, 0x02,
0xBB, 0x18, 0x4D, 0x55, 0x59, 0x32, 0x54, 0x7B, 0x25, 0x1F, 0x1C, 0x7A, 0x4D, 0xEC, 0xF2, 0xC0,
0xD5, 0xAF, 0xC4, 0xAD, 0xFE, 0x9D, 0x7C, 0xD0, 0x31, 0x91, 0x8F, 0x29, 0x04, 0xB2, 0xE0, 0x52,
0x14, 0x4A, 0xA1, 0xD5, 0x95, 0x5F, 0x2F, 0x25, 0x47, 0x17, 0x36, 0x5B, 0x32, 0xA1, 0x9A, 0xAB,
0x3A, 0x3B, 0x06, 0x05, 0x02, 0x0F, 0x09, 0x15, 0xD2, 0x45, 0x8A, 0x38, 0x8D, 0x8A, 0x44, 0x73,
0x11, 0x85, 0xC1, 0x42, 0x7D, 0xF2, 0x6B, 0x63, 0x78, 0xE3, 0xE8, 0x9C, 0xD3, 0x22, 0x1A, 0x15,
0x94, 0xF8, 0xEA, 0x58, 0x6E, 0xBC, 0x55, 0xEA, 0x1A, 0x66, 0x88, 0x83, 0xB8, 0xA4, 0x10, 0x5F,
0x6A, 0x6F, 0x8C, 0xAA, 0xB9, 0x9D, 0x97, 0x45, 0x65, 0x34, 0x42, 0x71, 0xBC, 0x27, 0x23, 0x5C,
0x56, 0xCD, 0xE1, 0x1D, 0x58, 0x19, 0xF0, 0x5E, 0x62, 0xFB, 0xEC, 0x17, 0xF0, 0x83, 0xE2, 0xCB,
0x29, 0x68, 0x29, 0xFF, 0x52, 0x33, 0xA0, 0x46, 0x9B, 0x5C, 0x11, 0xB5, 0x4A, 0x49, 0xE5, 0x64,
0xE8, 0x00, 0x05, 0x4E, 0xFC, 0x81, 0xB6, 0x4A, 0xE3, 0x44, 0x8D, 0xE1, 0x30, 0x06, 0xCA, 0xAA,
0x8D, 0xF0, 0xC7, 0x8C, 0x7B, 0x7C, 0x93, 0x95, 0x1A, 0xDD, 0xFA, 0xBC, 0x8F, 0x37, 0x96, 0xC8,
0x27, 0x4F, 0x5E, 0xCA, 0xFB, 0x75, 0x00, 0xB6, 0x7F, 0x07, 0xF0, 0xD5, 0xBC, 0x77, 0x2F, 0x0E,
0x5E, 0xEE, 0x45, 0xC1, 0x8A, 0xBD, 0x3C, 0x0E, 0xF9, 0x80, 0xF7, 0x16, 0x06, 0x08, 0x9C, 0xDB,
0x46, 0x3F, 0x5C, 0x4F, 0x75, 0xC6, 0x87, 0x40, 0xDF, 0xE2, 0xB2, 0x00, 0x3F, 0xBC, 0xDD, 0x0D,
0x7F, 0x05, 0x67, 0x0A, 0x9A, 0x38, 0xDC, 0x4F, 0x36, 0x18, 0x8F, 0x70, 0x98, 0x8C, 0x95, 0x7B,
0xA2, 0x5C, 0xA9, 0x66, 0xE1, 0x33, 0x67, 0xA0, 0x0E, 0xEF, 0x8C, 0x15, 0xC6, 0x4F, 0x35, 0xAA,
0xFA, 0xC6, 0xD5, 0xCA, 0x56, 0xBB, 0xBA, 0x44, 0x5D, 0x12, 0x7A, 0x96, 0xF6, 0xEC, 0x05, 0x2C,
0x87, 0x87, 0x8B, 0xD0, 0xA7, 0xEA, 0x39, 0x04, 0x4B, 0x7B, 0x87, 0x75, 0x94, 0xF5, 0x42, 0x55,
0xAC, 0x61, 0x56, 0x0B, 0xFF, 0xA2, 0x1B, 0x5D, 0x5E, 0x55, 0x8A, 0x64, 0x77, 0xF6, 0x3E, 0x03,
0x37, 0x92, 0xCB, 0x6B, 0xC4, 0xAF, 0xEA, 0x5B, 0x22, 0xF9, 0x16, 0x0A, 0xF2, 0x62, 0x91, 0x7F,
0xE0, 0x83, 0x93, 0x3F, 0x44, 0x63, 0x2D, 0x77, 0xC0, 0x1A, 0x6C, 0xA9, 0xB6, 0x65, 0x7A, 0x7F,
0x81, 0xDE, 0x40, 0xDF, 0x25, 0x78, 0xF7, 0x03, 0x84, 0x5A, 0x4B, 0x92, 0xAA, 0x60, 0x79, 0xDB,
0xDD, 0xC2, 0xCD, 0x77, 0xE5, 0x1B, 0xD5, 0xEA, 0x6A, 0x23, 0x43, 0xC8, 0x0D, 0x76, 0x9F, 0xAD,
0x97, 0xC1, 0x6C, 0x33, 0x5F, 0x85, 0xFC, 0x2D, 0x3B, 0xDF, 0xB0, 0x8C, 0x63, 0x08, 0x92, 0xA6,
0x2C, 0xDA, 0x77, 0x7A, 0x7C, 0xE6, 0x03, 0xCC, 0xF1, 0xD9, 0x85, 0x97, 0x2A, 0xFE, 0x26, 0xC5,
0x27, 0x64, 0x88, 0xA1, 0x53, 0xB5, 0xA7, 0x4E, 0x16, 0x9B, 0x98, 0x9E, 0xC0, 0x81, 0x51, 0x5F,
0xCC, 0x3D, 0x08, 0x69, 0x37, 0x38, 0x0A, 0xD8, 0x55, 0xBC, 0x58, 0xD5, 0xF8, 0xB4, 0x42, 0xD7,
0xCD, 0xD6, 0xE0, 0x0E, 0x6D, 0xA0, 0xEE, 0x68, 0x31, 0x32, 0xD1, 0xC2, 0xA9, 0x39, 0x01, 0x0D,
0xB6, 0xD9, 0x31, 0xD2, 0x05, 0x72, 0x0D, 0x2D, 0x11, 0x14, 0x5B, 0x4A, 0x21, 0xFB, 0x07, 0xB5,
0x3A, 0x7D, 0xAB, 0xD7, 0x9A, 0x28, 0xFB, 0x43, 0xF3, 0x07, 0x75, 0xD6, 0x23, 0xCF, 0x50, 0x27,
0xE1, 0x09, 0xEF, 0x46, 0x2C, 0x3E, 0xE3, 0x90, 0x05, 0x4F, 0x3A, 0x7B, 0x66, 0xD9, 0x33, 0x89,
0x7A, 0xDC, 0x8E, 0x8F, 0xA7, 0xFC, 0xB7, 0xF0, 0xF7, 0x63, 0x94, 0xF8, 0x58, 0xBD, 0x6B, 0x52,
0xF5, 0x58, 0x0C, 0x2E, 0x1C, 0x57, 0x4A, 0xA1, 0x85, 0xC7, 0xC7, 0x93, 0x94, 0xF1, 0x4D, 0x1A,
0x2B, 0x24, 0x42, 0xD5, 0x61, 0xD5, 0xDB, 0x42, 0x91, 0x60, 0x73, 0xD9, 0xF2, 0x8F, 0x10, 0x8C,
0x09, 0x94, 0x29, 0xC6, 0xAB, 0x79, 0x78, 0x6E, 0xF5, 0xAD, 0x16, 0x84, 0xD5, 0x96, 0x09, 0x17,
0x08, 0xC4, 0xAD, 0x41, 0x0B, 0x03, 0x31, 0x5E, 0x44, 0x60, 0x68, 0x59, 0xFD, 0x56, 0x1E, 0xAD,
0x5B, 0xC3, 0x96, 0xB4, 0xAF, 0x16, 0x06, 0xD8, 0x71, 0xCA, 0x82, 0x49, 0x4B, 0xE9, 0x81, 0x20,
0xDB, 0xEC, 0x76, 0x33, 0xB0, 0xEA, 0x0C, 0x28, 0x40, 0x6F, 0xB1, 0xB0, 0x0D, 0xC1, 0xC2, 0xDD,
0x23, 0xD1, 0x60, 0x58, 0x32, 0x04, 0x6C, 0xBB, 0x5B, 0x26, 0xAB, 0xCE, 0xD0, 0x34, 0x04, 0x47,
0xBC, 0x4A, 0x96, 0x6E, 0x95, 0xA5, 0x73, 0x6F, 0x8E, 0xD6, 0x68, 0x27, 0x07, 0xFB, 0x3E, 0xAB,
0x74, 0x04, 0x0B, 0xC7, 0x16, 0x42, 0x0D, 0x85, 0x4C, 0xC3, 0x82, 0x61, 0x85, 0xDF, 0xE0, 0x5E,
0x0C, 0x07, 0x5F, 0x9A, 0xA1, 0xFB, 0x25, 0x18, 0x8A, 0xA4, 0x0B, 0xD9, 0x96, 0x79, 0x68, 0xCB,
0x72, 0x2A, 0x26, 0x01, 0xF7, 0x79, 0x1E, 0xDA, 0xA2, 0xD3, 0xA0, 0x85, 0x95, 0x33, 0xB7, 0x35,
0xFB, 0x92, 0x26, 0xFA, 0xB9, 0xF6, 0xF9, 0x65, 0x8D, 0xF3, 0x0B, 0x5B, 0xE6, 0xE7, 0x9A, 0xE5,
0x97, 0xB5, 0xC9, 0x2F, 0x6B, 0x90, 0x7F, 0x89, 0x35, 0x96, 0xD0, 0x88, 0x8F, 0x08, 0x9B, 0xC8,
0x78, 0x5F, 0x43, 0xB5, 0x1C, 0xF8, 0xD7, 0x2A, 0xCA, 0x65, 0xAD, 0x57, 0x43, 0xCD, 0x56, 0x5E,
0x5A, 0x9A, 0xAB, 0xBC, 0x1C, 0x6A, 0xA6, 0x4D, 0x9F, 0x86, 0xF2, 0xD2, 0x94, 0x17, 0x57, 0x33,
0x4D, 0x71, 0xE9, 0x8B, 0xC6, 0x01, 0x5C, 0x0C, 0xBA, 0x8C, 0x34, 0x73, 0x48, 0x9F, 0x23, 0x6A,
0xB2, 0x60, 0xB8, 0x25, 0x2F, 0x96, 0x66, 0xBA, 0x74, 0x71, 0xA9, 0x6D, 0x80, 0x5C, 0x07, 0xCA,
0x27, 0x5C, 0x60, 0x9A, 0x7C, 0x84, 0x15, 0x52, 0xB1, 0xA3, 0x25, 0x4E, 0x3C, 0x2D, 0x5A, 0xE9,
0xCE, 0x85, 0x8A, 0xCC, 0xF6, 0x0F, 0x3C, 0x23, 0xB2, 0xCE, 0x4D, 0x25, 0x1E, 0x1D, 0x4F, 0x19,
0x86, 0x21, 0xAD, 0x1A, 0x81, 0x54, 0xCA, 0xF2, 0x35, 0x15, 0x22, 0x90, 0xDA, 0x29, 0x79, 0xF8,
0xC9, 0x0A, 0xDF, 0x66, 0x39, 0x85, 0x23, 0x4A, 0x7C, 0x96, 0xB5, 0x99, 0xC6, 0x73, 0xA5, 0xB5,
0xD9, 0x94, 0x75, 0x79, 0xF2, 0x32, 0xB9, 0x64, 0xE9, 0x8F, 0x5E, 0x06, 0x09, 0x6D, 0xE7, 0xA4,
0xCD, 0xA7, 0xBC, 0xD1, 0xF6, 0x44, 0x37, 0xC7, 0xFC, 0x84, 0x3D, 0x31, 0xC7, 0x46, 0xC9, 0x15,
0xDF, 0x24, 0xF0, 0xB8, 0xBF, 0xA4, 0x5C, 0x9B, 0xCE, 0x08, 0x28, 0x21, 0xC6, 0x7C, 0x38, 0xCD,
0xA9, 0x10, 0xCF, 0xBF, 0x31, 0x27, 0xE1, 0x02, 0xB8, 0xA9, 0xD5, 0x82, 0xC0, 0x29, 0x8D, 0x1C,
0x2B, 0xEA, 0x31, 0xEB, 0x0A, 0x2A, 0x8D, 0x1F, 0xD7, 0x87, 0xFC, 0x59, 0xFD, 0xF2, 0x2E, 0xE1,
0x5E, 0xA4, 0x88, 0xF7, 0x6F, 0x88, 0x88, 0x63, 0xC3, 0x61, 0x1A, 0x48, 0x19, 0x83, 0x2A, 0x09,
0xE4, 0x80, 0xC1, 0x61, 0x8A, 0xD7, 0xBE, 0xBF, 0x59, 0x8B, 0x17, 0x3F, 0x14, 0x95, 0x86, 0x9E,
0xAC, 0x18, 0x64, 0x56, 0xCA, 0x2A, 0x8C, 0xC1, 0x68, 0x5A, 0x94, 0x90, 0x0B, 0x5C, 0x58, 0x82,
0x55, 0x4D, 0x5B, 0x23, 0xB8, 0x13, 0xD9, 0x52, 0x0B, 0x67, 0x48, 0x0A, 0x7A, 0xC8, 0x0A, 0x60,
0x13, 0x89, 0x58, 0x9E, 0x25, 0x9B, 0xFD, 0xDF, 0xA9, 0x5A, 0x90, 0xF8, 0x9B, 0x15, 0xEC, 0x63,
0xF7, 0x8C, 0xF1, 0x67, 0x11, 0xC3, 0xDB, 0x1F, 0xAE, 0x5F, 0xC0, 0xFE, 0xC9, 0xB3, 0x56, 0xA7,
0x1B, 0xC6, 0x31, 0x4B, 0x7F, 0x7E, 0xF7, 0xEA, 0xE5, 0x94, 0x6B, 0xA4, 0x4E, 0xD8, 0xEA, 0x6F,
0xAA, 0xA9, 0x93, 0xD0, 0x74, 0x58, 0xCB, 0xA6, 0x20, 0x8B, 0xE1, 0x2F, 0xF0, 0x0D, 0x8E, 0xD7,
0x0B, 0xCC, 0xA9, 0xB4, 0x5A, 0x9F, 0x48, 0x7A, 0xAC, 0xCE, 0x84, 0x56, 0xC7, 0xD3, 0xDC, 0xD3,
0xAA, 0xAF, 0xAA, 0x1E, 0x48, 0x7D, 0x6A, 0x59, 0x1B, 0x0C, 0x61, 0x6D, 0x03, 0xD2, 0x18, 0xF3,
0x1E, 0x59, 0x10, 0x26, 0x58, 0x90, 0x0A, 0x55, 0x3C, 0xB6, 0xCC, 0x88, 0xC0, 0x34, 0x23, 0x4C,
0x72, 0x01, 0x1F, 0x5A, 0x33, 0x38, 0x12, 0x76, 0xBB, 0xE5, 0x09, 0x46, 0xBD, 0x85, 0x35, 0x4C,
0xAB, 0x0B, 0x3C, 0x3A, 0x6A, 0x83, 0x55, 0x19, 0x1D, 0x8D, 0xD1, 0xFB, 0x49, 0x59, 0x17, 0x04,
0xE7, 0xED, 0xDC, 0x20, 0xAB, 0x76, 0xBD, 0x65, 0xF2, 0x5D, 0x3C, 0x69, 0x69, 0x9C, 0x2E, 0x9D,
0xDB, 0x0E, 0xE5, 0x98, 0xA8, 0xC0, 0x68, 0x6A, 0x4C, 0xA2, 0x93, 0x9C, 0x9F, 0x50, 0xD2, 0x24,
0x3A, 0x3E, 0xEE, 0xA8, 0xBA, 0x09, 0x0A, 0x17, 0xF4, 0x6D, 0xD9, 0xFF, 0x5B, 0xF4, 0x7B, 0x17,
0xAB, 0x17, 0x1D, 0x10, 0x84, 0xB4, 0xF8, 0xEE, 0xED, 0x4C, 0x5A, 0x0B, 0x9D, 0xCA, 0x00, 0x7F,
0xAA, 0xA0, 0x53, 0xC1, 0xA2, 0x1D, 0xF8, 0xA3, 0xCC, 0x3E, 0xF0, 0x12, 0x82, 0x4C, 0xCD, 0x02,
0x08, 0xD1, 0x2C, 0x13, 0x81, 0xC8, 0xC2, 0xFB, 0x81, 0xB8, 0x0C, 0xA9, 0xCD, 0x44, 0xF0, 0x78,
0x69, 0x5A, 0xF2, 0xD3, 0x54, 0x70, 0x98, 0x79, 0x0F, 0x38, 0xC1, 0xD7, 0x97, 0x94, 0x2B, 0x53,
0x04, 0xE1, 0x6B, 0xBC, 0xB6, 0x94, 0x2B, 0x0B, 0x2E, 0x00, 0xBB, 0xD7, 0x16, 0x05, 0xC0, 0x06,
0x07, 0xF1, 0x55, 0x97, 0xC2, 0x9B, 0xAD, 0x5E, 0xBE, 0xC4, 0x82, 0x55, 0x5F, 0x72, 0x32, 0x24,
0x2B, 0x5B, 0xB0, 0x32, 0x8D, 0x7B, 0xF0, 0x82, 0x35, 0x6F, 0xF1, 0x71, 0x1A, 0x7C, 0x9C, 0x47,
0xF2, 0x71, 0x1B, 0x7C, 0xDC, 0x7B, 0xF0, 0xC9, 0x6B, 0x4B, 0x94, 0x96, 0xC3, 0x32, 0x5B, 0x27,
0xEF, 0x9E, 0xCA, 0xE3, 0xC0, 0x07, 0x79, 0x1E, 0xF8, 0x90, 0x07, 0x25, 0xB5, 0x78, 0x65, 0x67,
0x7D, 0x35, 0x51, 0xF1, 0x49, 0x91, 0x78, 0x34, 0xD4, 0x02, 0x07, 0x27, 0x44, 0xAE, 0x98, 0x09,
0xDA, 0xD9, 0x71, 0xAB, 0x78, 0x10, 0x24, 0x9E, 0x03, 0xD5, 0x0E, 0x70, 0x95, 0x62, 0x77, 0x0B,
0x67, 0x6E, 0x10, 0x6B, 0x2A, 0xBD, 0x8B, 0xD5, 0xC5, 0x3F, 0xF2, 0xEF, 0x9E, 0x7D, 0x02, 0x5B,
0x6C, 0x0C, 0x38, 0x3A, 0xAA, 0x8C, 0xD8, 0xEE, 0xFE, 0xF3, 0x4F, 0xF4, 0x15, 0xB3, 0x23, 0xF6,
0x4E, 0x1E, 0xE1, 0xB0, 0x90, 0xFE, 0xEE, 0xE9, 0x0C, 0xD6, 0x28, 0x56, 0xDB, 0xB0, 0x6B, 0x39,
0x56, 0x8C, 0xC8, 0xCD, 0xD7, 0xF8, 0xAE, 0x55, 0x95, 0xFB, 0x83, 0x2C, 0x50, 0x7E, 0x50, 0x2B,
0x58, 0xF1, 0x14, 0x82, 0x14, 0x67, 0x6D, 0x82, 0xC2, 0xBA, 0x0A, 0xD4, 0x56, 0x07, 0x0F, 0x42,
0xC8, 0xB9, 0x7A, 0x9A, 0xA9, 0x49, 0x85, 0xF3, 0x09, 0xA7, 0xC7, 0x0F, 0xF4, 0xA9, 0xD2, 0x3F,
0x03, 0xF0, 0xCF, 0xA0, 0xE9, 0x9F, 0x81, 0xF4, 0xCF, 0x69, 0xD3, 0x3F, 0x83, 0x2F, 0xEA, 0x9F,
0x15, 0xEF, 0x1C, 0x89, 0x1C, 0x60, 0x84, 0xD1, 0x1C, 0x32, 0x01, 0x08, 0xFA, 0xF2, 0xA3, 0x8F,
0x71, 0xDD, 0x41, 0x6F, 0x74, 0xD0, 0x7F, 0xFB, 0xE4, 0xC4, 0x16, 0x0D, 0xC5, 0x0B, 0x66, 0x03,
0xE8, 0xD2, 0x36, 0xD1, 0xF7, 0xE9, 0xD3, 0x12, 0x1E, 0x0D, 0xFD, 0xF7, 0x4B, 0x06, 0x4A, 0xE3,
0x54, 0x71, 0x5B, 0xEA, 0x87, 0x55, 0xA5, 0x30, 0xA3, 0x22, 0x75, 0xDA, 0x7E, 0x9B, 0xB0, 0x0A,
0xEB, 0x95, 0x7C, 0xA2, 0xB2, 0x5D, 0x41, 0xB9, 0x5D, 0x93, 0x7C, 0xBF, 0x1A, 0x7D, 0x35, 0xE3,
0xC8, 0xE5, 0x79, 0xB4, 0xAD, 0xEC, 0x9F, 0xFF, 0x51, 0xE6, 0xB2, 0x37, 0xA0, 0xE2, 0xB3, 0x9B,
0x6A, 0x34, 0x8D, 0x9F, 0xA8, 0xF8, 0xD4, 0x45, 0xA9, 0x39, 0x97, 0x12, 0x66, 0x10, 0xE8, 0xB3,
0x0C, 0xB4, 0xA6, 0x29, 0xEB, 0x08, 0xFF, 0xA0, 0x55, 0x11, 0xE5, 0x3F, 0x25, 0xE4, 0xEA, 0x58,
0xCD, 0x3D, 0xBD, 0xD5, 0x6B, 0xC9, 0x95, 0x29, 0xAD, 0x46, 0x55, 0xA5, 0x35, 0xFB, 0x29, 0x51,
0x78, 0xA2, 0xD0, 0x43, 0x60, 0x25, 0x2C, 0x9F, 0x30, 0x7B, 0xB3, 0x03, 0xE1, 0xBE, 0xAC, 0xCC,
0xD6, 0x23, 0xFE, 0x5E, 0x02, 0x2A, 0x58, 0xD7, 0xD6, 0x23, 0x6B, 0x2D, 0x65, 0x5A, 0x26, 0x7D,
0x11, 0x93, 0xC5, 0x24, 0x5E, 0x84, 0xE9, 0xAA, 0xAD, 0xFE, 0x28, 0x6E, 0x94, 0x00, 0xBB, 0x70,
0x4C, 0xB2, 0x40, 0x53, 0x13, 0xD9, 0x11, 0x38, 0x4B, 0x2D, 0x85, 0xA4, 0x41, 0x4C, 0xD5, 0xD8,
0x16, 0xCF, 0x3C, 0x07, 0x3D, 0xC4, 0x16, 0xC6, 0x80, 0x79, 0x25, 0xE9, 0xF5, 0x01, 0xDE, 0x30,
0xA6, 0xCE, 0xBE, 0xF2, 0x18, 0x44, 0xD6, 0x8C, 0xD6, 0x29, 0xC4, 0x6F, 0xDE, 0x56, 0xDF, 0x88,
0xCD, 0xA0, 0x87, 0x6E, 0x25, 0x6F, 0x2A, 0x9B, 0x42, 0x4A, 0x04, 0x1B, 0x1F, 0x6F, 0xA2, 0x08,
0xB0, 0xAF, 0x31, 0x8F, 0x9F, 0x33, 0x84, 0x79, 0xBA, 0x00, 0x11, 0x2B, 0xC8, 0x61, 0xCB, 0xE9,
0xAA, 0x43, 0x29, 0x67, 0xC0, 0x39, 0xE3, 0x69, 0xCC, 0x2E, 0x95, 0xFF, 0x7B, 0xF5, 0xF2, 0x67,
0xCE, 0xD7, 0xB2, 0x24, 0xA6, 0x85, 0x53, 0xB5, 0x47, 0x06, 0xFA, 0x44, 0xBC, 0x5C, 0x3E, 0x85,
0x35, 0x4D, 0x42, 0x4C, 0x24, 0xB1, 0x55, 0x14, 0x6F, 0x8F, 0x59, 0xEC, 0x27, 0x01, 0x7B, 0xFF,
0xF6, 0x45, 0x9B, 0x77, 0x34, 0xEA, 0x14, 0x25, 0xB1, 0x4A, 0x47, 0x35, 0x6F, 0xDB, 0xBF, 0xB9,
0xF2, 0xD1, 0x45, 0xA7, 0x4B, 0x8E, 0xDC, 0x2D, 0xCB, 0xC5, 0xB2, 0x74, 0x1C, 0xC1, 0x9A, 0xE3,
0x6E, 0x12, 0xC3, 0xE2, 0x82, 0x6B, 0xCC, 0x14, 0x99, 0xBF, 0xC4, 0xBF, 0xD7, 0x9A, 0x16, 0x19,
0x50, 0xE7, 0x06, 0x12, 0x6E, 0x67, 0x3A, 0x8D, 0xBB, 0x34, 0x06, 0x73, 0x6D, 0xD6, 0x81, 0x26,
0xCB, 0x30, 0xB0, 0x51, 0x64, 0x97, 0xB9, 0x8E, 0xFF, 0xF7, 0xF4, 0xF5, 0x2F, 0x10, 0xB7, 0x52,
0xC8, 0xF0, 0x71, 0x7C, 0xB6, 0x4E, 0xE2, 0x8C, 0xBD, 0x63, 0x57, 0xFC, 0x80, 0x3B, 0x1D, 0x10,
0x51, 0x96, 0xB4, 0xB5, 0x9D, 0xC7, 0x82, 0x5B, 0x16, 0xC1, 0x36, 0x36, 0xEA, 0x8D, 0xB7, 0xB8,
0x9A, 0x35, 0x8B, 0xDB, 0xEA, 0x4F, 0xCF, 0xDE, 0xA9, 0x5A, 0xA8, 0x61, 0x6A, 0x07, 0x52, 0xC2,
0xF6, 0xB4, 0x1B, 0xDB, 0x25, 0x8A, 0xED, 0x52, 0xF0, 0x83, 0xEE, 0x94, 0x3F, 0x0A, 0xE8, 0x08,
0x64, 0xC1, 0x13, 0x88, 0x81, 0xC1, 0x51, 0x84, 0x8E, 0xCE, 0xCD, 0x5E, 0xE2, 0xFA, 0x93, 0xCE,
0x4E, 0xB7, 0xF6, 0x50, 0x13, 0x90, 0xA1, 0xDB, 0xED, 0x1E, 0xF0, 0x64, 0x7C, 0x68, 0x79, 0x68,
0xE3, 0x26, 0xE2, 0x5C, 0x84, 0x36, 0xF6, 0x3C, 0x49, 0x57, 0x4F, 0x3D, 0xEE, 0x4D, 0x78, 0xD7,
0x5B, 0xAF, 0x71, 0xB1, 0xC2, 0xAD, 0xAB, 0xE9, 0x7A, 0x19, 0x00, 0x63, 0x08, 0x80, 0xF1, 0x49,
0x2E, 0xFF, 0x24, 0x86, 0xD0, 0x27, 0x33, 0x7F, 0xF6, 0x5B, 0xFC, 0xBB, 0x16, 0x55, 0xF3, 0xE3,
0xE3, 0x50, 0xA2, 0xE8, 0xA9, 0x5A, 0x32, 0x8F, 0xB4, 0x50, 0x04, 0x45, 0xAD, 0x9C, 0xAF, 0x7C,
0x40, 0x02, 0x5A, 0xDF, 0x66, 0xD0, 0xB9, 0x15, 0xA1, 0x77, 0xDB, 0x23, 0x26, 0x81, 0xDC, 0xB1,
0x37, 0xAF, 0x4F, 0xDF, 0xE1, 0xA1, 0x84, 0xF8, 0xA8, 0xB4, 0x73, 0x41, 0x57, 0xA8, 0xB0, 0x0B,
0xF1, 0xE7, 0xD9, 0x05, 0x70, 0x7C, 0x09, 0xC0, 0xC6, 0x00, 0xA8, 0x50, 0x3B, 0xE2, 0x11, 0x86,
0xAA, 0x95, 0xC9, 0x3A, 0xD9, 0x6A, 0xBE, 0x2E, 0x70, 0xC7, 0xF5, 0x86, 0xEA, 0x9F, 0xF9, 0x09,
0x92, 0x89, 0x37, 0xFE, 0x83, 0x9E, 0x3C, 0xF1, 0xFD, 0x0F, 0x1C, 0xBE, 0xF6, 0xDB, 0xA5, 0x50,
0xBF, 0xD8, 0xB2, 0x03, 0xF0, 0x79, 0xD7, 0x1E, 0x2B, 0xB8, 0xC9, 0xC7, 0x78, 0xFA, 0x7D, 0x8E,
0x2F, 0xC4, 0xB7, 0x8D, 0x0E, 0x1E, 0xD7, 0x6E, 0x6F, 0x35, 0x4C, 0xA4, 0x60, 0xE9, 0x31, 0xFD,
0x61, 0x6D, 0xD5, 0xDF, 0x1E, 0x37, 0xD5, 0x23, 0x0C, 0xA9, 0x70, 0xAF, 0xFB, 0x19, 0xBF, 0x9C,
0xEE, 0x61, 0x47, 0x4D, 0x35, 0x3F, 0x9C, 0x0B, 0x29, 0x95, 0x85, 0x07, 0x3C, 0x41, 0x58, 0xFA,
0xF3, 0xEE, 0xB6, 0x9A, 0xB7, 0x62, 0xFC, 0x94, 0x5D, 0xE0, 0xC3, 0xA8, 0x16, 0x6C, 0xAF, 0x6A,
0x85, 0xF0, 0x66, 0x1A, 0x48, 0xC0, 0x79, 0xD2, 0xFE, 0xFA, 0xB5, 0xB4, 0x0D, 0x5A, 0x15, 0x78,
0x0C, 0xEA, 0xF0, 0xD8, 0xE9, 0x8C, 0xA5, 0x46, 0xBE, 0x8F, 0x15, 0xF1, 0xA7, 0xD6, 0x78, 0xBE,
0x07, 0x2F, 0x0A, 0xBE, 0x11, 0x1A, 0x21, 0x08, 0xE3, 0x9D, 0xDB, 0x12, 0xC4, 0xAA, 0xCF, 0x0C,
0xD1, 0xF0, 0xB7, 0x82, 0x68, 0xE3, 0xB9, 0xA8, 0xF2, 0x44, 0xED, 0xDC, 0x8D, 0x77, 0x97, 0x9F,
0x89, 0x76, 0xE5, 0xD3, 0xCD, 0xC7, 0x29, 0xB3, 0x32, 0xFF, 0x23, 0xC8, 0x9B, 0xB9, 0xD9, 0x21,
0x6B, 0x95, 0xEF, 0xD4, 0xE4, 0xF3, 0xC8, 0xBF, 0x62, 0x99, 0xAA, 0xF8, 0x67, 0x2C, 0x87, 0xED,
0x64, 0x71, 0x79, 0x18, 0x98, 0x73, 0xA0, 0xAD, 0x83, 0xB3, 0x76, 0x27, 0xEE, 0xAA, 0x3D, 0xF5,
0x81, 0x78, 0x2B, 0xE0, 0xB6, 0xA4, 0x7B, 0x00, 0xCC, 0x6E, 0xC8, 0x28, 0x60, 0x29, 0x5F, 0x03,
0xD2, 0x92, 0x46, 0xEF, 0xC4, 0xDA, 0xAD, 0xDD, 0xFD, 0x0C, 0x94, 0x3D, 0x00, 0x40, 0x5A, 0x94,
0x88, 0x67, 0xCE, 0xE0, 0xA3, 0xD8, 0xDB, 0xDE, 0x03, 0x49, 0x79, 0x16, 0x54, 0xA0, 0xD2, 0x83,
0x9C, 0xE3, 0xBE, 0xB8, 0xB4, 0xB5, 0xE8, 0xB7, 0x08, 0x27, 0x29, 0xAF, 0x9E, 0x2C, 0x2E, 0xBD,
0x90, 0x77, 0x0F, 0x67, 0x13, 0xF9, 0x63, 0xFD, 0x83, 0xA9, 0xE0, 0x5F, 0xEB, 0xDB, 0xFB, 0x98,
0xE4, 0xAF, 0xA2, 0xAC, 0xAF, 0xEE, 0x09, 0x0C, 0x77, 0x47, 0xA2, 0xCF, 0x84, 0x91, 0x6D, 0xF2,
0x8A, 0x8C, 0x93, 0xAD, 0x5C, 0xB7, 0x01, 0xE6, 0x08, 0x99, 0xAA, 0x49, 0xF5, 0x13, 0x61, 0x17,
0x47, 0x47, 0xAA, 0x53, 0xFF, 0x5A, 0xED, 0xFD, 0xF3, 0xCF, 0xC2, 0x16, 0x09, 0xA6, 0x0B, 0x33,
0x54, 0x2D, 0x75, 0x5A, 0x8C, 0xEA, 0xD4, 0x07, 0xF9, 0x5E, 0xEC, 0x83, 0x84, 0x18, 0x1D, 0x26,
0x94, 0x08, 0xE3, 0x9C, 0x76, 0x75, 0xBC, 0x70, 0x45, 0x02, 0x9D, 0x3B, 0x3D, 0x0F, 0x4B, 0xD1,
0x8E, 0xA1, 0xF1, 0x69, 0xC6, 0x38, 0xBD, 0xCA, 0x0C, 0x1A, 0x6E, 0x57, 0x2C, 0x3D, 0x3E, 0x9E,
0x9A, 0x72, 0xD9, 0x8E, 0xA9, 0xEF, 0x8F, 0xBD, 0x75, 0x4F, 0x8E, 0x41, 0x34, 0x38, 0xBB, 0x28,
0x19, 0x83, 0xD0, 0x14, 0x64, 0xF7, 0x32, 0xCE, 0xD2, 0xCE, 0x99, 0xE6, 0x18, 0x27, 0xF1, 0xD1,
0x51, 0xDB, 0x07, 0x1B, 0x4F, 0x0B, 0xA9, 0xF8, 0x0E, 0xF7, 0x04, 0xFF, 0x34, 0x99, 0x2D, 0x4F,
0x04, 0xBB, 0x94, 0x89, 0x31, 0xB4, 0xDA, 0x79, 0x67, 0x90, 0x2D, 0xA3, 0xAC, 0x84, 0xCF, 0x97,
0xF8, 0x82, 0xC5, 0xA1, 0xE4, 0xEC, 0x3E, 0xC7, 0x98, 0xFD, 0xB4, 0xF9, 0xBB, 0x33, 0x5B, 0xC1,
0x88, 0xFE, 0xE6, 0xB9, 0xF2, 0xEC, 0xA6, 0x71, 0xDE, 0x39, 0x24, 0xCF, 0x5E, 0x9E, 0x14, 0xE0,
0x26, 0x77, 0x24, 0x02, 0xCD, 0x57, 0x5D, 0xE4, 0xA6, 0xCA, 0xA3, 0x2F, 0x98, 0xCA, 0x1D, 0x94,
0xF5, 0x77, 0x51, 0x1A, 0xD4, 0xF8, 0x62, 0x06, 0x0D, 0x7B, 0xF2, 0xFE, 0xF4, 0xD9, 0xDB, 0xEA,
0xB9, 0x16, 0x63, 0x09, 0x88, 0x17, 0x73, 0x88, 0x31, 0xC7, 0xEA, 0xD1, 0x9B, 0xEF, 0x4F, 0x4F,
0x7F, 0x7D, 0xFD, 0xF6, 0xE9, 0xEE, 0x21, 0x1C, 0x87, 0x9C, 0xBE, 0xFF, 0xE1, 0xD5, 0x8B, 0x77,
0xD3, 0x6B, 0x3C, 0x33, 0x84, 0xBB, 0x02, 0x5F, 0x78, 0xC7, 0xF9, 0x16, 0x0E, 0xB7, 0x61, 0xE5,
0x70, 0x7B, 0x74, 0x04, 0xA0, 0xFE, 0x0D, 0x34, 0xE5, 0xCE, 0x5A, 0xB7, 0x80, 0x5B, 0x88, 0xC5,
0x95, 0x13, 0x66, 0x4C, 0xD1, 0x33, 0xCC, 0x4F, 0x98, 0x97, 0x61, 0x1C, 0x24, 0x97, 0x3B, 0x62,
0xC5, 0xFE, 0x47, 0x6A, 0x93, 0x93, 0x9E, 0x7C, 0x03, 0xE6, 0xA4, 0x27, 0x5F, 0xA4, 0xA3, 0xFF,
0x97, 0xF5, 0xFF, 0x01, 0xF6, 0xC5, 0xA7, 0x87, 0x9E, 0x55, 0x00, 0x00
#define PAGE_NOFILES_SIZE 6535
const char PAGE_NOFILES[6535] PROGMEM = {
0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xED, 0x3C, 0x8B, 0x72, 0xDB, 0x46,
0x92, 0xBF, 0x02, 0x23, 0xB5, 0x26, 0x71, 0x04, 0x48, 0xBC, 0xF8, 0x16, 0xA5, 0x4B, 0x62, 0x7B,
0xA3, 0x2B, 0x3B, 0x76, 0x49, 0xF2, 0xF9, 0xB6, 0x1C, 0x97, 0x0A, 0x24, 0x86, 0x22, 0xCE, 0x20,
0x40, 0x01, 0x43, 0x51, 0xB2, 0xCC, 0xFB, 0xF6, 0xEB, 0xEE, 0x19, 0xBC, 0xF8, 0xD2, 0x63, 0xBD,
0xB7, 0xB9, 0xAA, 0x8D, 0x22, 0x02, 0x9C, 0x99, 0xEE, 0xE9, 0xE9, 0x77, 0x37, 0x20, 0x1F, 0xCD,
0xF8, 0x3C, 0x3C, 0x3E, 0x9A, 0x31, 0xCF, 0x3F, 0x3E, 0x4A, 0xF9, 0x5D, 0xC8, 0x8E, 0x71, 0xE4,
0x7E, 0x1A, 0x47, 0xDC, 0x98, 0x7A, 0xF3, 0x20, 0xBC, 0x1B, 0xA4, 0x5E, 0x94, 0x1A, 0x29, 0x4B,
0x82, 0xE9, 0xD0, 0x98, 0xA7, 0x06, 0x67, 0xB7, 0xDC, 0x48, 0x83, 0x6F, 0xCC, 0xF0, 0xFC, 0xFF,
0x5E, 0xA6, 0x7C, 0x60, 0x99, 0xE6, 0x5F, 0x86, 0xC6, 0x8A, 0x8D, 0xBF, 0x06, 0x7C, 0xCF, 0x2C,
0xA1, 0xC3, 0x51, 0xF8, 0xBA, 0xB8, 0x5D, 0x8F, 0x63, 0xFF, 0xAE, 0xB2, 0x85, 0xFA, 0x1B, 0x0B,
0x6F, 0x18, 0x0F, 0x26, 0x9E, 0xF2, 0x3B, 0x5B, 0x32, 0x55, 0xCF, 0xBF, 0xEB, 0x3F, 0x27, 0x81,
0x17, 0xEA, 0x25, 0x1A, 0x4A, 0xB8, 0xDC, 0xC5, 0xED, 0x30, 0x0C, 0x22, 0x66, 0xCC, 0x58, 0x70,
0x35, 0x83, 0xBD, 0x9A, 0xAE, 0xDD, 0x6B, 0x77, 0x2D, 0xD7, 0x19, 0x4E, 0xE2, 0x30, 0x4E, 0x06,
0x3F, 0x39, 0x8E, 0x33, 0x1C, 0x7B, 0x93, 0xAF, 0x57, 0x49, 0xBC, 0x8C, 0x7C, 0x43, 0x8E, 0x4E,
0xA7, 0xD3, 0x35, 0xF7, 0xC6, 0x21, 0xBB, 0x1F, 0xC7, 0x89, 0xCF, 0x92, 0x81, 0x39, 0x14, 0x37,
0x46, 0xBA, 0xF0, 0x26, 0x41, 0x74, 0x05, 0x03, 0x73, 0xEF, 0xD6, 0x58, 0x05, 0x3E, 0x9F, 0xD1,
0x09, 0xD6, 0xDC, 0xBF, 0x5F, 0xCD, 0x02, 0xCE, 0x68, 0x05, 0x1B, 0x44, 0xF1, 0x2A, 0xF1, 0x16,
0xC3, 0x85, 0xE7, 0xFB, 0xB8, 0xDC, 0x9E, 0xCF, 0xD7, 0x7C, 0x76, 0x4F, 0x87, 0xF7, 0xC2, 0xE0,
0x2A, 0x1A, 0x84, 0x6C, 0xCA, 0xD7, 0x4D, 0xDA, 0xE4, 0x98, 0xE3, 0x79, 0x8F, 0x79, 0x72, 0xCC,
0x7D, 0x7D, 0x6B, 0x68, 0x96, 0x0F, 0x91, 0x10, 0xAA, 0xAB, 0xF2, 0xA1, 0xD9, 0x7D, 0xB6, 0x55,
0x6F, 0xFF, 0x99, 0x6F, 0x58, 0x82, 0x2C, 0x0B, 0x25, 0x09, 0x3C, 0x5E, 0x64, 0xC7, 0x82, 0xDB,
0x81, 0xB5, 0xB8, 0x55, 0xD2, 0x38, 0x0C, 0x7C, 0xE5, 0x27, 0xDF, 0xF7, 0x25, 0x6D, 0x46, 0xCA,
0x93, 0x60, 0xC1, 0xFC, 0x9C, 0xA0, 0x41, 0xC4, 0x67, 0x46, 0x3C, 0x35, 0xF8, 0xDD, 0x82, 0xD5,
0x63, 0xDF, 0xD7, 0xEE, 0x77, 0xB0, 0xAF, 0x8F, 0x3F, 0x6B, 0xEF, 0x7E, 0x11, 0xA7, 0x01, 0x0F,
0xE2, 0x68, 0x90, 0xB0, 0xD0, 0xE3, 0xC1, 0x0D, 0x1B, 0xFA, 0x41, 0xBA, 0x08, 0xBD, 0xBB, 0xC1,
0x38, 0x8C, 0x27, 0x5F, 0x73, 0xF6, 0xA0, 0xD0, 0x15, 0xAB, 0x0D, 0x94, 0x13, 0x87, 0x7C, 0x36,
0x89, 0x13, 0x8F, 0x00, 0xA3, 0x38, 0x62, 0x99, 0xAC, 0x26, 0x93, 0xC9, 0xBA, 0xE9, 0x4D, 0x10,
0xCF, 0x7D, 0x21, 0xA8, 0x1D, 0xE2, 0x33, 0x4D, 0x33, 0x5B, 0xA8, 0x78, 0xBA, 0x37, 0x98, 0xC6,
0x93, 0x65, 0x0A, 0xD7, 0x59, 0x0C, 0x1C, 0x28, 0x81, 0xAE, 0x9B, 0x0B, 0x2F, 0x62, 0xE1, 0xFD,
0xDC, 0x4B, 0xAE, 0x82, 0xC8, 0x18, 0xC7, 0x9C, 0xC7, 0xF3, 0x81, 0x0D, 0xC4, 0xEC, 0xD6, 0x09,
0xC9, 0xAD, 0x0D, 0x4E, 0x65, 0x3C, 0x4C, 0x3C, 0x3F, 0x58, 0xA6, 0x03, 0xD4, 0xB9, 0x4C, 0xD9,
0xC7, 0xF1, 0xAD, 0x91, 0xCE, 0x3C, 0x3F, 0x5E, 0x0D, 0x4C, 0x05, 0xA1, 0xF0, 0x37, 0xB9, 0x1A,
0x7B, 0x75, 0x53, 0xC7, 0x9F, 0xA6, 0xD9, 0xD6, 0x86, 0x8F, 0x59, 0x24, 0x29, 0x35, 0xC8, 0x30,
0x72, 0xAE, 0x01, 0xC3, 0xB2, 0x09, 0x54, 0x04, 0x18, 0xBB, 0xDF, 0xE6, 0xE8, 0x61, 0x45, 0x6F,
0xE3, 0x4F, 0x76, 0x02, 0x39, 0x58, 0x3A, 0x13, 0xE8, 0x85, 0x91, 0xA0, 0x1A, 0x65, 0xA7, 0x73,
0x90, 0x37, 0xC5, 0x1C, 0x6A, 0xF1, 0x8E, 0x29, 0xC9, 0xC9, 0x4D, 0x8D, 0x9A, 0xC6, 0xC9, 0x1C,
0x36, 0x89, 0x78, 0x12, 0x87, 0xF7, 0x55, 0x4D, 0x10, 0x96, 0xE4, 0x2D, 0x79, 0x3C, 0x94, 0x7A,
0xEB, 0x20, 0x23, 0xB3, 0xE3, 0x74, 0xF0, 0x34, 0x36, 0x0C, 0x3C, 0xC9, 0xB8, 0xDB, 0xED, 0xF6,
0x3E, 0x41, 0x16, 0xA3, 0xC1, 0xDC, 0xBB, 0x62, 0x42, 0xCF, 0xB6, 0xC5, 0x0B, 0x2A, 0xF7, 0x38,
0xF1, 0x06, 0x51, 0xCA, 0xB8, 0xB2, 0x47, 0x7E, 0xDD, 0xAA, 0x94, 0x1F, 0x5C, 0x6B, 0xC4, 0x06,
0x4F, 0xC0, 0xA1, 0x09, 0xDB, 0x29, 0x0B, 0x47, 0x61, 0x5E, 0xCA, 0x0C, 0xD0, 0xD5, 0x78, 0xC9,
0x95, 0xA6, 0xD5, 0x4E, 0xF5, 0x02, 0xEF, 0xD6, 0x5C, 0x95, 0xE1, 0xC2, 0x0A, 0xEE, 0xAB, 0xA2,
0xEE, 0x74, 0xBC, 0x29, 0xEB, 0x0F, 0x01, 0x02, 0x39, 0x09, 0x5E, 0xED, 0x19, 0x47, 0xD3, 0x4D,
0x98, 0xEC, 0x65, 0x13, 0x96, 0x69, 0xEB, 0x56, 0xB7, 0xAD, 0xDB, 0x8E, 0xA3, 0x37, 0x3B, 0x9A,
0xA4, 0x01, 0x79, 0xBD, 0xD8, 0xB0, 0x33, 0xA1, 0xBE, 0x63, 0x1E, 0xE5, 0xAA, 0x10, 0x44, 0x24,
0x4F, 0xA1, 0x11, 0xD5, 0xC5, 0xA6, 0x90, 0xFC, 0x4A, 0x88, 0xDA, 0x35, 0xCD, 0x61, 0xC9, 0x97,
0x4E, 0x58, 0xC4, 0x59, 0xB2, 0xE9, 0xDE, 0xE6, 0x81, 0xEF, 0x87, 0x4C, 0x84, 0xA4, 0x78, 0x39,
0x99, 0x19, 0xE8, 0x11, 0x80, 0x9F, 0x73, 0x2F, 0x0A, 0x16, 0xCB, 0x90, 0xFC, 0xCB, 0x70, 0xFF,
0xCC, 0x64, 0x99, 0xA4, 0xC0, 0xA2, 0x45, 0x1C, 0x10, 0xF2, 0x47, 0x6A, 0x0C, 0xC9, 0x6D, 0xE1,
0x25, 0x40, 0xD1, 0xF0, 0x40, 0x3C, 0x78, 0xA2, 0x3E, 0xEF, 0x50, 0xC1, 0x79, 0xFC, 0xCD, 0x58,
0xA6, 0x18, 0x91, 0x58, 0xC8, 0x26, 0x5C, 0x90, 0x83, 0x67, 0xDD, 0x1A, 0xDC, 0x1C, 0x20, 0x9E,
0x1B, 0x8B, 0x04, 0x8E, 0x91, 0xDC, 0x1D, 0x76, 0xA4, 0x8E, 0xD3, 0xF5, 0xC6, 0xDD, 0x0D, 0xF7,
0x60, 0xB3, 0x8E, 0xEF, 0xB9, 0x15, 0x2C, 0xD2, 0xD9, 0xEA, 0x95, 0x31, 0xE1, 0x75, 0x2B, 0x43,
0xE4, 0x80, 0x2B, 0x43, 0x83, 0x1D, 0x90, 0x83, 0x6D, 0xC8, 0x2D, 0xD7, 0xBD, 0x83, 0x58, 0xBB,
0xD7, 0x31, 0xFB, 0xE6, 0x06, 0xB1, 0x96, 0x6D, 0x8F, 0x5D, 0x93, 0x88, 0x0D, 0xE6, 0x57, 0xF7,
0x52, 0xA8, 0x33, 0x2F, 0xDA, 0x74, 0xDB, 0x9D, 0xDC, 0x7B, 0x95, 0xED, 0x9F, 0x82, 0x84, 0x80,
0x95, 0x24, 0xEC, 0xF0, 0x27, 0x26, 0xFE, 0x6C, 0xEC, 0xDB, 0x99, 0xE0, 0xCF, 0xB3, 0xCD, 0x09,
0xF5, 0xE3, 0x2A, 0x61, 0x77, 0x4F, 0x71, 0x1B, 0x15, 0x40, 0xA2, 0x9A, 0xC8, 0x3C, 0x7C, 0x6C,
0xC7, 0x94, 0x46, 0x98, 0xAD, 0x7D, 0xE8, 0x98, 0xFF, 0xCC, 0x13, 0x85, 0x40, 0x14, 0x58, 0xC8,
0x57, 0xBD, 0xB8, 0x1D, 0x54, 0xF3, 0x01, 0x8A, 0xFC, 0xC5, 0x64, 0x45, 0x6B, 0x70, 0x2E, 0x88,
0x16, 0x4B, 0xFE, 0x19, 0x73, 0x97, 0xD1, 0x34, 0x08, 0xD9, 0x97, 0xC1, 0x20, 0x3B, 0x0F, 0x7E,
0x35, 0x96, 0x8B, 0x30, 0xF6, 0x7C, 0x63, 0xBC, 0x04, 0x9F, 0xF3, 0x2F, 0xB7, 0xF4, 0x7F, 0xEB,
0x96, 0x86, 0x07, 0x8D, 0xBB, 0x3D, 0x9E, 0x98, 0x3E, 0xDB, 0x30, 0x32, 0xB7, 0x33, 0xEE, 0xF9,
0xDE, 0x93, 0x84, 0x2A, 0xA3, 0xE0, 0xBF, 0x44, 0xFB, 0xE7, 0x11, 0xAD, 0x63, 0x8D, 0x4D, 0x7F,
0x33, 0x07, 0xB5, 0xC6, 0x1D, 0xBF, 0xD7, 0x7E, 0x9A, 0x68, 0x85, 0xB5, 0xFF, 0x4B, 0xB4, 0x7F,
0x72, 0xD1, 0xDA, 0x9D, 0xBE, 0x37, 0x9E, 0x64, 0x85, 0xCB, 0x34, 0x8E, 0x81, 0x23, 0x07, 0xEA,
0x16, 0xAB, 0x6B, 0xF6, 0x76, 0xE1, 0x7E, 0x44, 0xE9, 0xB2, 0x55, 0x80, 0xFC, 0x13, 0xB6, 0x9C,
0xC7, 0xBE, 0x57, 0x14, 0x3B, 0xC4, 0xB2, 0xBC, 0x2A, 0x9E, 0x06, 0xB7, 0xCC, 0x1F, 0x7E, 0x83,
0x9C, 0xDD, 0x67, 0xB7, 0xD8, 0x46, 0x00, 0x4D, 0x94, 0x54, 0x09, 0x5C, 0x26, 0x96, 0xA2, 0x58,
0x63, 0x81, 0xCA, 0xE2, 0x80, 0x39, 0x2C, 0x3A, 0x0E, 0x59, 0x9D, 0x44, 0xF7, 0xA8, 0xF9, 0xD3,
0x10, 0x42, 0x2A, 0x55, 0x50, 0x3B, 0x2B, 0xE2, 0xED, 0xD1, 0x72, 0xB8, 0x75, 0x35, 0x49, 0x2A,
0x95, 0x0B, 0xA0, 0x70, 0xF7, 0x7B, 0xAA, 0x3C, 0xCB, 0xAC, 0x56, 0x80, 0x95, 0xEA, 0xB0, 0x3C,
0x29, 0x6C, 0x6D, 0x2F, 0xAC, 0x9C, 0xDE, 0x07, 0x3E, 0xB0, 0x0B, 0x3E, 0xE6, 0x59, 0x68, 0xA9,
0x4E, 0xC6, 0x7A, 0xC3, 0x42, 0xC5, 0x37, 0x2B, 0x59, 0x83, 0xAD, 0x0D, 0xB7, 0x7B, 0x0E, 0xC2,
0xF8, 0x05, 0x6B, 0x32, 0xA1, 0xEF, 0x60, 0xC7, 0x4F, 0x53, 0x86, 0x3F, 0x19, 0x1F, 0xB0, 0xA2,
0x2E, 0x69, 0x89, 0x2D, 0x37, 0xCC, 0x94, 0x84, 0xB2, 0xA1, 0x9D, 0x4A, 0x62, 0xE3, 0xCF, 0xBE,
0x22, 0xF9, 0x89, 0xEC, 0xAB, 0xD4, 0xA2, 0x53, 0xFC, 0xC9, 0xC8, 0xAB, 0x76, 0x02, 0x4C, 0x49,
0x5D, 0x36, 0xBB, 0xA9, 0xE2, 0x9D, 0x8C, 0x7A, 0xA9, 0x34, 0x6E, 0xB3, 0xCD, 0xE6, 0x4F, 0x3F,
0xCA, 0x36, 0x39, 0x7F, 0xA7, 0xB4, 0xD7, 0xCD, 0x59, 0xE0, 0xB3, 0xCB, 0x80, 0x57, 0x2C, 0x64,
0xFD, 0xEF, 0x73, 0xE6, 0x07, 0x9E, 0x52, 0x9F, 0x83, 0xCF, 0x16, 0x1A, 0xDF, 0xED, 0x80, 0xC4,
0xB5, 0xFB, 0x0D, 0x1D, 0x15, 0x73, 0xED, 0x1E, 0x62, 0xCA, 0x80, 0xD2, 0x49, 0xC2, 0x58, 0xA4,
0x40, 0xAA, 0x0B, 0xF0, 0x79, 0x8F, 0xAE, 0xDB, 0xE9, 0xEE, 0x85, 0xA7, 0xFE, 0xDD, 0xFA, 0xA8,
0x25, 0xDA, 0x9B, 0x47, 0x3C, 0xE0, 0x70, 0x79, 0x7D, 0xFE, 0xC1, 0x79, 0xA5, 0xF0, 0x38, 0x0E,
0x95, 0x05, 0x78, 0xE8, 0xA3, 0x96, 0x18, 0x3E, 0x6A, 0x89, 0x56, 0x28, 0x75, 0xC3, 0x8E, 0xFC,
0xE0, 0x46, 0x99, 0x84, 0x5E, 0x9A, 0x8E, 0x54, 0x72, 0x2D, 0x2A, 0x40, 0x63, 0xD7, 0x4C, 0x21,
0xC4, 0x23, 0x15, 0x31, 0xE3, 0x58, 0x02, 0xBF, 0x00, 0xE4, 0x65, 0x8B, 0x45, 0x45, 0xA1, 0x2A,
0xB3, 0x84, 0x4D, 0x47, 0xEA, 0x8C, 0xF3, 0x45, 0x3A, 0x68, 0xB5, 0xAE, 0x02, 0x3E, 0x5B, 0x8E,
0x9B, 0x93, 0x78, 0xDE, 0x0A, 0x97, 0x13, 0x43, 0x7C, 0x6D, 0x11, 0x21, 0x2D, 0x0E, 0x87, 0x6A,
0xD9, 0x4D, 0x4B, 0x55, 0x38, 0x68, 0x33, 0xE3, 0x23, 0xF5, 0x12, 0xD2, 0xDC, 0xE8, 0x2B, 0x60,
0x4F, 0x6F, 0xAE, 0xF2, 0xFD, 0xD8, 0x1C, 0x90, 0x92, 0x88, 0xE5, 0x97, 0x9B, 0x80, 0xAD, 0x7E,
0x89, 0x6F, 0x47, 0x2A, 0xA6, 0xD2, 0x96, 0x63, 0xC2, 0x87, 0x6D, 0x9A, 0x00, 0x75, 0x25, 0xA2,
0x0B, 0x56, 0xE7, 0x23, 0x95, 0x6E, 0xC1, 0x5A, 0x58, 0xBD, 0x6D, 0xEA, 0xB8, 0x40, 0x03, 0x36,
0x7A, 0x21, 0xAB, 0x5B, 0xBA, 0x62, 0x58, 0x1A, 0x2C, 0x5F, 0x78, 0x7C, 0xA6, 0xF8, 0x23, 0xF5,
0x5D, 0x07, 0x51, 0x58, 0x5D, 0xF7, 0xDA, 0x71, 0x00, 0x63, 0xD7, 0x55, 0x8C, 0x76, 0xE8, 0xF4,
0x60, 0x55, 0xDB, 0x0E, 0xDB, 0x70, 0xB9, 0x76, 0xFB, 0xF0, 0xE9, 0x2A, 0x7D, 0x98, 0x71, 0xFA,
0x38, 0x64, 0x87, 0x96, 0xE3, 0x2A, 0x3D, 0xF3, 0xBA, 0x63, 0x29, 0x86, 0xDB, 0x53, 0x2C, 0x13,
0xA6, 0x2C, 0xB3, 0x1D, 0x1A, 0x3D, 0x13, 0x6E, 0x1C, 0x37, 0x74, 0x00, 0xC9, 0xB5, 0x0D, 0x4B,
0x5D, 0x57, 0x71, 0x00, 0xBC, 0xEF, 0x84, 0xB0, 0xB4, 0x13, 0x02, 0x4E, 0x40, 0xD2, 0xBB, 0xC6,
0x19, 0x47, 0x81, 0xCF, 0xAE, 0x73, 0x0D, 0x20, 0x0E, 0x6E, 0x0A, 0x5F, 0xDC, 0xD0, 0x90, 0x2B,
0xE0, 0x06, 0xD6, 0x5F, 0xC3, 0x57, 0x58, 0xD9, 0xC7, 0x8D, 0x09, 0x89, 0x81, 0x88, 0x43, 0xB9,
0xCB, 0x35, 0xEE, 0x6D, 0x20, 0x0D, 0x05, 0x01, 0x44, 0x98, 0x15, 0x22, 0x36, 0xE7, 0x1A, 0x77,
0x37, 0x90, 0x0A, 0x49, 0xBA, 0x41, 0xB4, 0x1B, 0xE2, 0x70, 0x96, 0x72, 0x8D, 0x34, 0x88, 0x7D,
0x91, 0x5C, 0x83, 0xCE, 0x8F, 0x5F, 0xDA, 0xB4, 0x06, 0x96, 0x20, 0x84, 0x7D, 0x8D, 0x04, 0xC0,
0xF9, 0x11, 0x8B, 0x40, 0xE2, 0x88, 0x7D, 0x8C, 0x9E, 0x75, 0x6D, 0x74, 0x4C, 0x05, 0xA9, 0x40,
0x0A, 0x90, 0x80, 0x1E, 0xCA, 0xC4, 0x45, 0x3A, 0x01, 0x21, 0x6C, 0xED, 0x22, 0x21, 0x3D, 0x05,
0x49, 0xB7, 0x95, 0x4E, 0x48, 0xFB, 0xC2, 0xF9, 0x8D, 0x8E, 0xE2, 0xC2, 0x39, 0x3B, 0xC0, 0x6E,
0x38, 0x3F, 0x6C, 0x0C, 0x77, 0xC0, 0x22, 0x9A, 0x0C, 0x61, 0xE1, 0xB5, 0xE5, 0x20, 0x5A, 0x01,
0xE9, 0x28, 0x82, 0xB3, 0x78, 0x64, 0xB7, 0xAB, 0xC0, 0x81, 0x61, 0x27, 0xDA, 0xCD, 0x02, 0x48,
0x98, 0x09, 0x91, 0x4A, 0xD8, 0x09, 0xF6, 0x13, 0x34, 0xC2, 0x6C, 0x48, 0x27, 0x80, 0x61, 0x64,
0x33, 0x9E, 0xE9, 0x1B, 0x09, 0xBA, 0x07, 0x0C, 0xBD, 0x36, 0x7A, 0x7D, 0x3C, 0x29, 0xB1, 0xBA,
0xE3, 0x70, 0xF8, 0x25, 0x86, 0x34, 0xDB, 0xBC, 0xB8, 0xCB, 0x26, 0xF1, 0x0A, 0x17, 0x98, 0x10,
0xE3, 0x46, 0x71, 0x27, 0xA6, 0xBE, 0x81, 0x2E, 0xB5, 0x50, 0x99, 0xE0, 0x72, 0x05, 0xBF, 0xA0,
0xBC, 0xC7, 0xCA, 0x11, 0xA4, 0x35, 0x51, 0x6E, 0x1B, 0x59, 0xF5, 0xA6, 0x1E, 0xBF, 0x09, 0x92,
0xF9, 0x0A, 0xD2, 0x1F, 0x58, 0x06, 0x0B, 0x60, 0xB5, 0x07, 0xBF, 0x68, 0x48, 0x8F, 0x30, 0xA6,
0xD5, 0x6A, 0xD5, 0x3C, 0x60, 0x50, 0xC6, 0xA7, 0xD7, 0xBF, 0x7C, 0x3C, 0xFD, 0x93, 0x99, 0x95,
0xD9, 0x77, 0xAF, 0x7B, 0x36, 0x62, 0xEC, 0x98, 0x4D, 0xD4, 0x3E, 0x1B, 0x59, 0xEB, 0x02, 0xF3,
0xDB, 0x7D, 0x6E, 0x59, 0x1D, 0x1C, 0xEB, 0xE1, 0x58, 0xDF, 0xC5, 0xDB, 0x3E, 0x48, 0xA0, 0x47,
0x17, 0xD7, 0xCE, 0xA7, 0x50, 0xF5, 0xDA, 0x5D, 0x62, 0x78, 0x7E, 0x87, 0x8A, 0x4B, 0x93, 0x46,
0xA7, 0x27, 0x01, 0x8D, 0x1C, 0x85, 0x51, 0x46, 0x6C, 0x64, 0xBB, 0x81, 0xB8, 0xFA, 0x39, 0x09,
0xF2, 0x8B, 0x9D, 0xAF, 0xA0, 0x05, 0x04, 0x26, 0xA0, 0x08, 0x59, 0x3F, 0xC3, 0xDF, 0x17, 0x5B,
0x66, 0x08, 0x15, 0x22, 0x22, 0xBB, 0x12, 0xA9, 0x34, 0x05, 0xB4, 0xF7, 0xDB, 0x0A, 0xCF, 0x60,
0x4B, 0xF8, 0xE4, 0x16, 0x82, 0x0B, 0xB8, 0xEB, 0xB7, 0x77, 0xBD, 0x5E, 0x0F, 0xE6, 0xFA, 0x64,
0xE2, 0x68, 0xE5, 0x16, 0xE8, 0xAB, 0xCD, 0x89, 0x40, 0xF2, 0x1C, 0xED, 0x2E, 0xEA, 0x33, 0x10,
0xD5, 0x47, 0x0F, 0x61, 0xD9, 0x68, 0x6F, 0xC0, 0x1B, 0x1B, 0x16, 0xE1, 0x07, 0x7E, 0x13, 0x37,
0x78, 0x85, 0x19, 0xB8, 0xBD, 0xC6, 0x4D, 0x14, 0x1B, 0x14, 0xD4, 0x02, 0xB6, 0x2B, 0x56, 0x5F,
0x71, 0x69, 0x3B, 0xA0, 0xB9, 0x8B, 0x47, 0x87, 0x15, 0x46, 0x17, 0x90, 0x75, 0xD0, 0xA1, 0x75,
0x10, 0x6B, 0x0F, 0x9C, 0x88, 0x85, 0x3A, 0xDF, 0x51, 0x84, 0xAB, 0x31, 0x51, 0x16, 0x70, 0x05,
0x12, 0xAF, 0x6D, 0xF4, 0x44, 0x60, 0xA8, 0x5D, 0x70, 0x0A, 0x16, 0x47, 0xC0, 0x9E, 0xCD, 0xFB,
0x42, 0x30, 0x16, 0x9C, 0x0E, 0x9D, 0x47, 0x0F, 0x0F, 0xE7, 0x38, 0xC4, 0x58, 0xDC, 0x4C, 0x7E,
0xB1, 0x5D, 0x9A, 0xA7, 0x69, 0x82, 0xE8, 0xA1, 0xC5, 0x74, 0x4D, 0x71, 0x05, 0x8C, 0x5D, 0xD8,
0xE8, 0xDA, 0x02, 0x4B, 0x06, 0x96, 0x29, 0x6E, 0xC6, 0x57, 0x17, 0x66, 0xAF, 0x8D, 0x3E, 0xF9,
0x63, 0x24, 0x0A, 0x4E, 0xD2, 0xEB, 0x7F, 0x7B, 0xE7, 0x82, 0x2B, 0xE8, 0xDA, 0x5D, 0xF0, 0x2A,
0xE8, 0x4D, 0xA4, 0x57, 0xA4, 0x5F, 0x92, 0xA8, 0x83, 0xBB, 0x90, 0xF0, 0x09, 0xDE, 0x01, 0x50,
0x94, 0x04, 0x1E, 0xCB, 0x02, 0x4F, 0x82, 0x47, 0x73, 0x14, 0x87, 0xF4, 0xC4, 0xB2, 0xB8, 0x83,
0x42, 0xB1, 0xBA, 0x21, 0xE0, 0x02, 0x7F, 0x02, 0x9B, 0x22, 0xFF, 0x91, 0x44, 0x24, 0x1C, 0xA8,
0xE8, 0xC8, 0x5B, 0xF2, 0x9E, 0xE8, 0x40, 0xC1, 0x59, 0x00, 0x39, 0xB0, 0x29, 0x51, 0x6B, 0xD8,
0xC0, 0x6A, 0x93, 0x1B, 0x8E, 0x8D, 0xFC, 0x7C, 0x92, 0xF1, 0x9F, 0x62, 0xA5, 0x34, 0x85, 0x72,
0xE7, 0x39, 0xD6, 0x7F, 0x28, 0x94, 0xAE, 0x82, 0xAF, 0xC1, 0x9F, 0xC3, 0xDE, 0xAD, 0x6E, 0xF7,
0x1A, 0x65, 0x67, 0x82, 0xD6, 0x01, 0xEB, 0xDC, 0x36, 0xAA, 0x47, 0xCF, 0x15, 0xCA, 0x07, 0xCE,
0xD4, 0x76, 0x48, 0xE9, 0x50, 0x5E, 0x6D, 0x61, 0x8C, 0x2E, 0x37, 0x4A, 0xB7, 0xA5, 0x05, 0x46,
0x09, 0xCE, 0x28, 0xB0, 0xD1, 0xAD, 0xB8, 0x13, 0x0B, 0x68, 0x1E, 0xE1, 0x24, 0x18, 0x61, 0x43,
0x64, 0xF9, 0x4D, 0x31, 0x59, 0x40, 0x64, 0x58, 0xBE, 0xBD, 0x6B, 0x83, 0xED, 0xF4, 0x5D, 0x88,
0x64, 0x36, 0x05, 0x05, 0x30, 0x20, 0xA3, 0x2D, 0xFD, 0xBC, 0x61, 0xA3, 0x39, 0x80, 0x92, 0x4B,
0x1D, 0x23, 0xFD, 0x12, 0x21, 0x43, 0x7A, 0x18, 0xD4, 0x3F, 0x34, 0x4F, 0xB0, 0x54, 0x9B, 0x2E,
0x33, 0xCB, 0xB1, 0xAE, 0x1D, 0xC4, 0xA3, 0x80, 0x82, 0x59, 0xD6, 0x75, 0x07, 0x27, 0x6C, 0x32,
0xFB, 0x9E, 0x20, 0xA9, 0x77, 0x6D, 0x23, 0xCF, 0x1D, 0xC2, 0x65, 0xE1, 0x0E, 0x16, 0xDD, 0xDA,
0xB0, 0x05, 0xE1, 0x82, 0x8D, 0xBB, 0x98, 0x13, 0xC0, 0x59, 0x51, 0x77, 0x21, 0x5A, 0x5A, 0x14,
0xAE, 0xC8, 0xCA, 0x90, 0x49, 0xA4, 0xF5, 0xE4, 0x07, 0x71, 0x53, 0x42, 0x61, 0xA0, 0xB1, 0x5A,
0x5D, 0x64, 0x8A, 0xB0, 0x45, 0x74, 0x71, 0x64, 0x1C, 0x30, 0x07, 0xF4, 0xBB, 0x68, 0x35, 0x40,
0xB0, 0x42, 0x83, 0x48, 0x3D, 0x27, 0xA2, 0x0C, 0x58, 0x3E, 0xB3, 0x20, 0x0B, 0x11, 0x32, 0x53,
0x7A, 0xDC, 0x21, 0x4A, 0x1D, 0x74, 0x18, 0x6E, 0x8F, 0xDB, 0xB8, 0x57, 0x17, 0x79, 0x08, 0xCE,
0xDC, 0x04, 0xF2, 0xD0, 0x1B, 0x80, 0x80, 0x7B, 0x8E, 0xC2, 0xC9, 0x4B, 0x80, 0x0F, 0x04, 0x0E,
0xE1, 0x2A, 0x87, 0xD8, 0xDF, 0x01, 0x83, 0xEA, 0xE1, 0x08, 0xFA, 0x1E, 0x88, 0xB9, 0x5D, 0x40,
0x63, 0x9A, 0x33, 0xA0, 0xC6, 0x04, 0x0A, 0x4C, 0x3A, 0x48, 0x37, 0xA7, 0x5F, 0xB8, 0x25, 0xF8,
0xBC, 0xA1, 0x05, 0x74, 0x1A, 0x25, 0x1F, 0xE4, 0xF9, 0xCA, 0x19, 0xCE, 0x12, 0x34, 0x0D, 0xE1,
0x5C, 0x97, 0xCC, 0x18, 0x20, 0x05, 0xA0, 0x65, 0xD2, 0x42, 0x1A, 0x92, 0xFE, 0x0E, 0x7E, 0x9F,
0x64, 0x9F, 0xBF, 0xB1, 0x70, 0xB1, 0xC3, 0x34, 0x15, 0xCA, 0xA2, 0x47, 0x6A, 0x91, 0x5A, 0xAB,
0x5B, 0x73, 0xA5, 0x6E, 0x0B, 0x55, 0x04, 0x68, 0x7D, 0xB8, 0x49, 0x00, 0x96, 0xF1, 0xE6, 0xD3,
0x7F, 0xBE, 0x3E, 0x3B, 0x3F, 0x7D, 0xFF, 0xBB, 0xBA, 0x63, 0xCF, 0x7C, 0x3F, 0xC4, 0xD7, 0xC2,
0xB4, 0xBA, 0x25, 0x1E, 0x84, 0x1F, 0xB5, 0x20, 0x15, 0xDF, 0x99, 0x8F, 0x8B, 0x76, 0xCE, 0xF1,
0xD1, 0xCC, 0x26, 0xF4, 0xEF, 0xCE, 0xFF, 0x8A, 0x68, 0x66, 0x36, 0x7C, 0x64, 0x53, 0xBB, 0x61,
0x15, 0x59, 0x99, 0xA8, 0x82, 0xAC, 0xD3, 0xB7, 0xAF, 0xCF, 0xFF, 0x76, 0x7E, 0xF1, 0xFA, 0x9D,
0xBA, 0xBD, 0x34, 0x7B, 0xFA, 0x0A, 0x19, 0x0B, 0x8C, 0xCE, 0x94, 0x37, 0x41, 0xC8, 0xD2, 0xBB,
0x94, 0xB3, 0xF9, 0x1E, 0xDC, 0x54, 0xBD, 0x01, 0x22, 0x6A, 0x6F, 0x29, 0xD4, 0xDE, 0x52, 0xB1,
0xA1, 0x25, 0xF6, 0xA2, 0xD6, 0x96, 0xE8, 0xB1, 0xA8, 0x4A, 0xE4, 0xCD, 0x61, 0x72, 0x7E, 0x87,
0x83, 0xE9, 0xE7, 0x2F, 0xAA, 0x32, 0x5F, 0x86, 0x3C, 0x58, 0x20, 0x1B, 0xB3, 0x3B, 0x15, 0x84,
0x24, 0x30, 0x15, 0x3E, 0x51, 0x29, 0x3D, 0x3C, 0x51, 0xE5, 0x0E, 0xA2, 0x4D, 0x26, 0xF6, 0xA8,
0x74, 0xCE, 0x54, 0x25, 0x8E, 0x26, 0x61, 0x30, 0xF9, 0x3A, 0x52, 0xCF, 0x59, 0xE4, 0xE3, 0x56,
0x75, 0x6D, 0x08, 0x5E, 0xCF, 0x0B, 0x97, 0x00, 0xF7, 0x91, 0xD6, 0xAA, 0xC7, 0x2F, 0xA3, 0x71,
0xBA, 0x18, 0x8A, 0xCF, 0xA3, 0x45, 0x12, 0x5F, 0x25, 0x2C, 0x4D, 0x33, 0x99, 0xDE, 0x04, 0x69,
0x30, 0x0E, 0xC2, 0x80, 0xDF, 0x0D, 0x80, 0x71, 0x3E, 0x8B, 0x32, 0xD2, 0x17, 0xC9, 0x95, 0xD8,
0x92, 0x6E, 0xA0, 0x22, 0xA3, 0xB2, 0x88, 0x34, 0x4D, 0xA2, 0x80, 0x6A, 0x2A, 0x11, 0xBF, 0x3B,
0xE4, 0xB7, 0x8F, 0x75, 0x52, 0xEE, 0xA2, 0xB4, 0xCA, 0x1C, 0x37, 0x29, 0xDB, 0x53, 0x58, 0x51,
0x39, 0xF7, 0xAF, 0xF1, 0x7C, 0x0E, 0x65, 0x63, 0xBD, 0x16, 0x06, 0x29, 0xAF, 0xE9, 0x35, 0x2F,
0x0C, 0x6B, 0x25, 0x36, 0x9C, 0xB1, 0x29, 0x50, 0x3B, 0x2B, 0xA9, 0x73, 0x79, 0x57, 0xA4, 0x33,
0xC7, 0xF6, 0x6B, 0xC2, 0x20, 0x0A, 0xF8, 0x41, 0x52, 0xD7, 0xD4, 0x8D, 0x40, 0x55, 0x09, 0x34,
0xAE, 0x59, 0xC4, 0x19, 0xBC, 0xAF, 0x84, 0x19, 0x17, 0xFF, 0x87, 0xF5, 0x09, 0xE8, 0x81, 0x02,
0x63, 0x6D, 0x55, 0xB9, 0x43, 0xDE, 0xA9, 0x19, 0xB4, 0x53, 0x82, 0xB6, 0xE1, 0x3E, 0x81, 0x45,
0x36, 0x5C, 0xEE, 0xE8, 0x02, 0x52, 0x0C, 0x47, 0xAA, 0x6C, 0xC1, 0xA9, 0xAD, 0x02, 0x0F, 0x2E,
0xBD, 0x23, 0x74, 0x59, 0xB8, 0x6B, 0x97, 0xA2, 0x5D, 0xFB, 0x41, 0x3C, 0x68, 0xBD, 0x88, 0xC7,
0x12, 0x04, 0xD9, 0x70, 0xC9, 0x1B, 0x8F, 0x30, 0xDA, 0x93, 0x5F, 0x57, 0x12, 0x63, 0x0F, 0x84,
0x2D, 0x91, 0x50, 0x0F, 0x53, 0x3D, 0x6E, 0x00, 0x03, 0x01, 0x87, 0x74, 0x30, 0xD2, 0x44, 0x36,
0x78, 0x2A, 0x1D, 0x07, 0x72, 0x95, 0x74, 0x07, 0x9C, 0x52, 0xCE, 0xC9, 0x20, 0x9A, 0xC6, 0x99,
0x36, 0x96, 0xA1, 0x2B, 0x0E, 0x41, 0xD4, 0xE1, 0x12, 0x42, 0x7C, 0xA9, 0xBC, 0xD0, 0xA2, 0x66,
0x8A, 0x5B, 0x74, 0x5D, 0x51, 0xAB, 0x44, 0x75, 0x4F, 0x5A, 0x35, 0x2B, 0xCB, 0xF7, 0x02, 0xD4,
0x06, 0x70, 0xCF, 0x70, 0xFC, 0xF8, 0x77, 0x50, 0xEC, 0xFC, 0xCB, 0x39, 0x1C, 0x3B, 0xFB, 0x22,
0x5C, 0xC5, 0xF9, 0x25, 0x0F, 0xE6, 0x70, 0xCE, 0x8B, 0xA0, 0x58, 0x56, 0xD1, 0x95, 0x8D, 0xB1,
0xDC, 0x49, 0xCE, 0xF2, 0x33, 0x48, 0x32, 0x50, 0xD7, 0x73, 0x97, 0x70, 0x89, 0x6A, 0x49, 0xEB,
0x44, 0xF3, 0xE1, 0xB0, 0xEB, 0x93, 0x2D, 0x20, 0x61, 0x7A, 0x29, 0xF7, 0xF8, 0x32, 0x55, 0x73,
0x5E, 0x6F, 0x7D, 0x3E, 0xE0, 0xFC, 0x3E, 0x7D, 0xFC, 0xF0, 0xEA, 0xE7, 0x8B, 0xD7, 0x87, 0x5D,
0x9F, 0x2C, 0xD6, 0x94, 0x8F, 0x0B, 0x1F, 0x94, 0xFF, 0x01, 0xCF, 0x57, 0x31, 0xDF, 0xBD, 0x8E,
0x70, 0xB5, 0xD7, 0x0D, 0x96, 0x52, 0xC1, 0x27, 0xBB, 0x3E, 0xF8, 0x52, 0xB2, 0x7C, 0xE1, 0xDD,
0xB6, 0x7D, 0x1E, 0x1E, 0xA2, 0xBC, 0xCD, 0x53, 0x1C, 0xDE, 0x74, 0x95, 0xBB, 0x3C, 0xBC, 0xDD,
0xED, 0xF4, 0x72, 0xCC, 0x79, 0xEC, 0x9B, 0xA7, 0x57, 0xEA, 0x7E, 0xF4, 0xC7, 0x67, 0x0C, 0xE4,
0x98, 0x70, 0xE0, 0xB6, 0xAE, 0x80, 0xDB, 0xF7, 0x52, 0xA6, 0xAC, 0xBC, 0x80, 0x37, 0xE1, 0xBF,
0x2C, 0x30, 0xE6, 0xA8, 0x26, 0xF1, 0x12, 0x83, 0xDB, 0xC3, 0x21, 0xB3, 0x10, 0x13, 0x82, 0x85,
0xF1, 0x15, 0xB0, 0xD3, 0xBB, 0x62, 0xB9, 0xB1, 0x51, 0xC3, 0xAC, 0x2A, 0xF8, 0x4A, 0x0F, 0x6D,
0xD7, 0x94, 0x68, 0x9D, 0xC2, 0xCC, 0xCC, 0x39, 0x3E, 0x05, 0xD2, 0x79, 0x30, 0x0D, 0x26, 0xF4,
0x20, 0x04, 0x22, 0xAF, 0xB3, 0x43, 0xE7, 0x8A, 0x96, 0xA6, 0x4C, 0x05, 0x8E, 0x2B, 0x59, 0x87,
0x98, 0x46, 0x9F, 0xA1, 0x2A, 0x79, 0x8E, 0x7D, 0xFC, 0x31, 0x05, 0xB3, 0x95, 0xC7, 0xDB, 0x08,
0x80, 0xE5, 0xF7, 0x5E, 0x32, 0x15, 0x10, 0xE0, 0x74, 0x48, 0x94, 0x7F, 0x25, 0x4D, 0xC1, 0xD6,
0x70, 0xC1, 0xAA, 0x59, 0xF2, 0x78, 0x22, 0x3E, 0xC0, 0xDC, 0x0A, 0x3C, 0xC8, 0x13, 0x08, 0x59,
0x48, 0x10, 0x49, 0xCC, 0xE2, 0x30, 0x31, 0xE3, 0x5D, 0x09, 0x4A, 0xB9, 0xC9, 0xBB, 0x91, 0x46,
0x64, 0x9A, 0xBE, 0xCF, 0x1E, 0x8A, 0x88, 0xF7, 0xF6, 0x0C, 0xA3, 0x93, 0xD4, 0xF7, 0xF3, 0xE5,
0x78, 0x1E, 0xF0, 0x9D, 0x1E, 0x22, 0x9D, 0x80, 0xC3, 0xE4, 0xC7, 0x37, 0x5E, 0xA2, 0xAC, 0xD2,
0xCB, 0x34, 0x5E, 0x26, 0x13, 0xA6, 0xDF, 0xCE, 0x43, 0xAC, 0xB5, 0x44, 0x1A, 0xA1, 0x4F, 0x96,
0x09, 0x3E, 0xA4, 0x42, 0x2F, 0x3D, 0x52, 0x5B, 0xAA, 0x0E, 0x47, 0x98, 0xA1, 0xD8, 0x85, 0xD0,
0x47, 0x2F, 0x2C, 0x7D, 0xC5, 0xC6, 0x69, 0x3C, 0xF9, 0xCA, 0xF8, 0xE5, 0x22, 0x4E, 0xF8, 0xC8,
0x2C, 0x0D, 0x9C, 0x7E, 0x18, 0xA9, 0x00, 0x92, 0xDE, 0x45, 0x93, 0x4B, 0x18, 0x85, 0x9A, 0x6D,
0xBE, 0x8C, 0x4A, 0xA0, 0xA8, 0x8E, 0x97, 0xC8, 0x2A, 0x55, 0x07, 0xF5, 0xBC, 0x8C, 0xA7, 0xD3,
0x2A, 0x42, 0x32, 0x0A, 0xE6, 0xE3, 0x20, 0x4B, 0x17, 0x97, 0x2C, 0x49, 0xE2, 0xE4, 0x72, 0x0E,
0x26, 0x06, 0x70, 0x08, 0x54, 0x0C, 0x4E, 0x62, 0x9F, 0xC1, 0xD6, 0xC8, 0x28, 0x41, 0xF8, 0xC8,
0x1C, 0x4E, 0x97, 0x11, 0x3D, 0xAF, 0x03, 0xE3, 0xBD, 0x19, 0x7B, 0x10, 0xB0, 0xEF, 0xF1, 0xA0,
0x00, 0x58, 0x72, 0x51, 0xAA, 0xCE, 0x47, 0xA5, 0x23, 0x36, 0xD3, 0x05, 0xD8, 0x65, 0x1D, 0x0E,
0xAA, 0xE9, 0x11, 0x9D, 0x37, 0x1C, 0x59, 0x43, 0x10, 0x75, 0x9D, 0x35, 0x10, 0xCE, 0x97, 0xCC,
0xAF, 0x89, 0x90, 0x5F, 0x53, 0x72, 0xA6, 0xFF, 0xA1, 0x96, 0x39, 0x55, 0x6B, 0xD5, 0x86, 0xCA,
0xFE, 0xC4, 0xE3, 0x0F, 0xF5, 0xB8, 0x45, 0x66, 0xAB, 0x0E, 0xC3, 0x23, 0xDE, 0x0C, 0x59, 0x74,
0xC5, 0xA1, 0x32, 0x18, 0x6A, 0x7B, 0x76, 0xD9, 0xB3, 0x89, 0xDA, 0xA8, 0x47, 0x8D, 0x11, 0xFF,
0x1C, 0x7E, 0x69, 0x20, 0xC5, 0x0D, 0xF5, 0xA1, 0x4D, 0xD5, 0x86, 0x58, 0x9C, 0x3B, 0x28, 0x49,
0x85, 0x1E, 0x36, 0x1A, 0xC3, 0x84, 0xF1, 0x65, 0x12, 0x29, 0x44, 0x42, 0xD9, 0x9B, 0xA8, 0xEB,
0x9C, 0x91, 0x60, 0x1C, 0xE9, 0xEC, 0x32, 0x00, 0xAD, 0x07, 0x66, 0x8A, 0xF5, 0x6A, 0x96, 0x7C,
0xD4, 0xDA, 0x76, 0x0D, 0x92, 0x86, 0x9A, 0x05, 0x17, 0x48, 0x33, 0x6A, 0x9D, 0x1A, 0xA6, 0x19,
0x78, 0x11, 0xB1, 0xB0, 0x66, 0xB7, 0x6B, 0x59, 0x2E, 0x52, 0xEB, 0xD6, 0xA4, 0x61, 0xD4, 0x30,
0x7D, 0x18, 0x24, 0xCC, 0x1F, 0xD6, 0x94, 0x16, 0x10, 0xB2, 0x8D, 0x6E, 0x37, 0x02, 0xBB, 0x8A,
0x80, 0xD2, 0x8F, 0x2D, 0x14, 0x8E, 0x29, 0x50, 0xF4, 0xF6, 0x50, 0xD4, 0xE9, 0x16, 0x08, 0xC1,
0x87, 0x3F, 0x4C, 0x93, 0x5D, 0x45, 0x68, 0x99, 0x02, 0x23, 0x5E, 0x25, 0xCA, 0x5E, 0x19, 0xA5,
0xFB, 0x68, 0x8C, 0x76, 0x7F, 0x27, 0x06, 0xE7, 0x31, 0xA7, 0x74, 0x05, 0x0A, 0xD7, 0x11, 0x44,
0x75, 0x05, 0x4D, 0xDD, 0x1C, 0x61, 0x09, 0x5F, 0xE7, 0x51, 0x08, 0x3B, 0x3F, 0x1A, 0x61, 0xEF,
0x47, 0x20, 0x14, 0x29, 0x25, 0xA2, 0x2D, 0xB2, 0xEC, 0x9A, 0xED, 0x96, 0x54, 0x02, 0xEE, 0xB3,
0x2C, 0xBB, 0x46, 0x15, 0xB2, 0x8D, 0x9D, 0xC4, 0x5E, 0xED, 0xF8, 0x47, 0xAA, 0xE8, 0xDF, 0xAB,
0x9F, 0x3F, 0x56, 0x39, 0x7F, 0xB0, 0x66, 0xFE, 0xBD, 0x6A, 0xF9, 0x63, 0x75, 0xF2, 0xC7, 0x2A,
0xE4, 0x3F, 0x44, 0x1B, 0x0B, 0xD7, 0x88, 0x8F, 0x58, 0x37, 0x3D, 0xE3, 0x63, 0x15, 0xD5, 0x76,
0xE1, 0xFF, 0x5A, 0xDE, 0x42, 0xAC, 0xBD, 0xEB, 0xEA, 0x8E, 0xF2, 0xD6, 0xD6, 0x7B, 0xCA, 0xDB,
0xAE, 0x6E, 0x39, 0xF4, 0x69, 0x2A, 0x6F, 0x2D, 0x79, 0xE9, 0xE9, 0x96, 0x25, 0x2E, 0x6D, 0x31,
0xD8, 0x81, 0x8B, 0x49, 0x97, 0xBE, 0x6E, 0x75, 0xE9, 0xB3, 0x4F, 0x43, 0x36, 0x2C, 0xB7, 0xE5,
0xC5, 0xD6, 0xAD, 0x1E, 0x5D, 0x7A, 0x34, 0xD6, 0x41, 0xAC, 0x1D, 0xE5, 0x1B, 0x1E, 0x30, 0x89,
0xBF, 0xC2, 0x09, 0xA9, 0x19, 0x53, 0x13, 0xF5, 0x5C, 0x8D, 0x4E, 0xBA, 0xF3, 0xA0, 0x22, 0x6D,
0xBF, 0xC4, 0x0A, 0x98, 0x69, 0xF7, 0xA5, 0x78, 0xD4, 0x18, 0x31, 0x0C, 0x43, 0x7A, 0x39, 0x02,
0xA9, 0x54, 0xD8, 0xE8, 0x2A, 0x44, 0x20, 0x55, 0x2B, 0x70, 0x40, 0x22, 0x80, 0xEF, 0xBE, 0x9C,
0x43, 0xBD, 0x16, 0x5D, 0xA5, 0x75, 0xA6, 0xF3, 0x8C, 0x69, 0x75, 0x36, 0x62, 0x4D, 0x1E, 0xBF,
0x8D, 0x57, 0x2C, 0xF9, 0x15, 0xD2, 0xE0, 0xBA, 0xA6, 0x1D, 0xD5, 0xF9, 0x88, 0x6F, 0x8C, 0x9D,
0x18, 0xD6, 0x80, 0x1F, 0xB1, 0x13, 0x6B, 0x60, 0x16, 0x58, 0xF1, 0x39, 0xB3, 0xC7, 0x27, 0x33,
0x2A, 0x24, 0xA8, 0x2C, 0x42, 0x0A, 0x31, 0xE6, 0x73, 0x4C, 0x16, 0x30, 0xE3, 0x18, 0x06, 0x53,
0xC0, 0xA6, 0x96, 0xDB, 0x1D, 0xE7, 0xB4, 0x72, 0xA0, 0xA8, 0x0D, 0xD6, 0x14, 0x50, 0x3A, 0x6F,
0x54, 0x97, 0x7C, 0x2F, 0x7F, 0xB9, 0x88, 0xB9, 0x17, 0x2A, 0xE2, 0x6D, 0x1D, 0x02, 0xE2, 0x38,
0x70, 0x18, 0x06, 0xF2, 0x59, 0xBF, 0x0C, 0xB2, 0x84, 0xEF, 0x87, 0x21, 0xDE, 0x4F, 0x26, 0xCB,
0x85, 0xF8, 0x3B, 0x09, 0x45, 0xA5, 0xA5, 0x47, 0x73, 0x06, 0x29, 0xA1, 0x32, 0x0F, 0x22, 0x50,
0x9A, 0x1A, 0x15, 0x1E, 0xC2, 0x2F, 0xCC, 0x40, 0xAB, 0x46, 0xB5, 0x3E, 0xDC, 0x89, 0x84, 0xAF,
0x86, 0x3B, 0xC4, 0x39, 0x3C, 0x64, 0x05, 0x20, 0x44, 0x02, 0x96, 0x85, 0xF5, 0xE6, 0xFC, 0x5F,
0x54, 0xDD, 0x8F, 0x27, 0xCB, 0x39, 0xC8, 0xB1, 0x79, 0xC5, 0xF8, 0xEB, 0x90, 0xE1, 0xED, 0x2F,
0x77, 0xA7, 0x20, 0x3F, 0x59, 0x5E, 0x6A, 0xCD, 0x20, 0x8A, 0x58, 0xF2, 0xDB, 0xC5, 0xBB, 0xB7,
0x23, 0xAE, 0x13, 0x3B, 0x41, 0xD4, 0x2F, 0xCA, 0xA9, 0x93, 0xE0, 0x74, 0x58, 0xC9, 0xA6, 0x20,
0x8B, 0xE1, 0xA7, 0xF8, 0x06, 0xCC, 0xFB, 0x29, 0xE6, 0x54, 0x7A, 0x65, 0x4E, 0x24, 0x3D, 0xB6,
0x36, 0xA4, 0xD3, 0xF1, 0x24, 0xB3, 0xB4, 0xF2, 0x1B, 0xAD, 0x07, 0x52, 0x9F, 0x4A, 0xD6, 0x06,
0x4B, 0x58, 0xDD, 0x84, 0x34, 0xC6, 0x7A, 0x44, 0x16, 0x84, 0x09, 0x16, 0xA4, 0x42, 0x25, 0x8B,
0x2D, 0x32, 0x22, 0x50, 0xCD, 0x10, 0xB3, 0x73, 0xF0, 0x0F, 0xB5, 0x63, 0xA8, 0x77, 0xB1, 0xFE,
0xCA, 0xCA, 0x2B, 0x75, 0xCD, 0x9A, 0xA4, 0x5B, 0x4D, 0xA0, 0x8F, 0xD7, 0x33, 0xBD, 0x2B, 0xAB,
0xEF, 0x96, 0x66, 0x37, 0xB1, 0x70, 0xD4, 0x39, 0x5D, 0xB4, 0xB5, 0x86, 0x5C, 0x1B, 0x95, 0x59,
0xF4, 0xF2, 0x65, 0x1D, 0xF4, 0xD2, 0xD4, 0x28, 0xC7, 0x44, 0x06, 0x06, 0x98, 0xEC, 0xC6, 0x90,
0xBD, 0xC6, 0x47, 0xD9, 0x6E, 0x82, 0x53, 0xC3, 0xB8, 0xD1, 0xD0, 0x54, 0xC3, 0x02, 0xAE, 0x0B,
0xEC, 0x75, 0x39, 0xFF, 0x39, 0xFE, 0xD2, 0xC4, 0x06, 0x8D, 0x06, 0xB8, 0x88, 0x95, 0x17, 0x67,
0xC7, 0x52, 0x65, 0xA8, 0x04, 0x05, 0x27, 0x54, 0xF6, 0x3C, 0x25, 0x87, 0xB4, 0xC3, 0x09, 0x29,
0xC7, 0x0A, 0xFC, 0x57, 0x78, 0x22, 0x4B, 0xB7, 0xC1, 0x93, 0xE8, 0xB6, 0x85, 0xFE, 0xC8, 0xC6,
0xFB, 0x8E, 0xB8, 0x74, 0x69, 0xCC, 0x42, 0x1F, 0xF2, 0xD6, 0xB2, 0xE5, 0xA7, 0xA5, 0xE0, 0x32,
0xEB, 0x11, 0x5E, 0x05, 0x5F, 0x60, 0x53, 0x6E, 0x2D, 0x11, 0x8B, 0xEF, 0xF0, 0x5A, 0x53, 0x6E,
0x6D, 0xB8, 0x80, 0xF7, 0xBD, 0xB3, 0x29, 0x0E, 0x6E, 0x60, 0x10, 0x5F, 0x0D, 0x49, 0xBE, 0x55,
0x6B, 0x65, 0x87, 0x94, 0xAD, 0x26, 0xCA, 0x63, 0x61, 0xA0, 0x76, 0x74, 0xF1, 0x4A, 0xE6, 0xCF,
0x7F, 0xC8, 0x04, 0xFA, 0x8F, 0xCC, 0x8B, 0xAB, 0xF9, 0x3B, 0x42, 0x8B, 0xDB, 0xA1, 0x8A, 0x8F,
0x9A, 0xC4, 0xB3, 0xA5, 0x1A, 0x58, 0x04, 0xB9, 0xB0, 0x12, 0x4B, 0x51, 0x62, 0x8D, 0x5A, 0xFE,
0x34, 0x49, 0x3C, 0x4C, 0xAA, 0x94, 0x6A, 0xA5, 0xEE, 0x75, 0x0D, 0x77, 0xDE, 0x00, 0xD6, 0x55,
0x7A, 0xF9, 0xAB, 0x89, 0x7F, 0x54, 0xD7, 0xBC, 0xFA, 0x06, 0x72, 0xDB, 0x58, 0xF0, 0xF2, 0x65,
0x69, 0xC5, 0xF6, 0xF4, 0xF7, 0xEF, 0xA8, 0x1A, 0x96, 0x26, 0x4F, 0x29, 0xCA, 0x36, 0xEC, 0xC6,
0x5F, 0xBC, 0x3A, 0x86, 0x33, 0x8A, 0xD3, 0x6E, 0xE8, 0x80, 0x5C, 0x4B, 0xB3, 0xA5, 0xA9, 0x99,
0x97, 0xBE, 0x5F, 0x45, 0x1F, 0x92, 0x78, 0xC1, 0x12, 0x7E, 0x57, 0x57, 0xA9, 0x89, 0xA5, 0x9D,
0xD4, 0x41, 0xD9, 0x4C, 0x01, 0xB2, 0x03, 0x1F, 0x2E, 0x2A, 0xE1, 0xD3, 0x06, 0xD9, 0x42, 0x89,
0x5F, 0x7E, 0xCD, 0x14, 0xCA, 0xFC, 0x4B, 0xAD, 0xCC, 0x9D, 0x3F, 0x64, 0x57, 0xF4, 0x0F, 0xB5,
0x64, 0xC2, 0xAF, 0x20, 0x76, 0x70, 0x56, 0x27, 0x0F, 0x55, 0x65, 0xB4, 0x5A, 0xD3, 0xB0, 0x3E,
0x41, 0xA4, 0xE5, 0x22, 0xA3, 0x72, 0x76, 0xDC, 0x5A, 0xD8, 0x22, 0x7E, 0xA0, 0x96, 0x17, 0x66,
0x93, 0x80, 0xC5, 0x24, 0x9B, 0x16, 0x93, 0x48, 0x8B, 0x19, 0x6D, 0x5A, 0x4C, 0xB2, 0x6D, 0x31,
0xCF, 0xB2, 0x95, 0x92, 0x9D, 0xF4, 0x45, 0x50, 0xEE, 0x63, 0x78, 0x85, 0xD0, 0x0C, 0x51, 0x58,
0x7E, 0xB4, 0x31, 0xD0, 0xBA, 0x68, 0x17, 0x2E, 0x5A, 0x52, 0x9B, 0xCC, 0xC9, 0xA6, 0xA5, 0x78,
0xC1, 0xF0, 0x8C, 0xC6, 0xE5, 0x10, 0x7C, 0x9B, 0x3E, 0x6D, 0x61, 0x5B, 0x30, 0xFF, 0xB8, 0xE8,
0x5C, 0x28, 0x3F, 0x09, 0xA4, 0x5A, 0x3D, 0x2A, 0xB9, 0x9A, 0xE6, 0xB9, 0xCC, 0xF6, 0xEB, 0x91,
0x65, 0x3F, 0x5B, 0x0A, 0xF0, 0x25, 0x41, 0x25, 0x85, 0xA0, 0x86, 0x99, 0xA4, 0x36, 0xE6, 0x0A,
0x65, 0xC9, 0xB5, 0xA4, 0xA4, 0x2E, 0xA5, 0xC5, 0xBB, 0xD5, 0x51, 0x2F, 0x6B, 0xE3, 0xD3, 0xB5,
0x6A, 0x3F, 0xBD, 0xCF, 0x52, 0xAC, 0xBD, 0x11, 0x31, 0xEB, 0x01, 0x97, 0x43, 0x62, 0x70, 0xA2,
0xAA, 0x03, 0x15, 0x9B, 0xC2, 0x07, 0x42, 0x29, 0x3E, 0x9F, 0x2A, 0x03, 0x45, 0x27, 0x2A, 0x3E,
0x4D, 0x52, 0x2A, 0x5E, 0x42, 0x09, 0x52, 0x08, 0xF1, 0x69, 0x5A, 0xEE, 0x04, 0x8A, 0x86, 0x86,
0x12, 0x70, 0xD8, 0x23, 0x73, 0x59, 0xB5, 0x56, 0x4D, 0xB2, 0x44, 0xA9, 0x6D, 0x34, 0x82, 0x6A,
0xC7, 0x7F, 0x8D, 0x15, 0x1E, 0x2B, 0xE2, 0x35, 0xB7, 0xA0, 0x78, 0xD6, 0xEE, 0x1D, 0x1F, 0xA0,
0xAE, 0x68, 0x43, 0x57, 0x63, 0xFD, 0x5E, 0x00, 0xEA, 0xDB, 0x57, 0xCE, 0x23, 0xBB, 0x2C, 0x45,
0x42, 0x26, 0xCD, 0x1D, 0xD3, 0xC4, 0x38, 0x9A, 0x06, 0xC9, 0xBC, 0xAE, 0xFE, 0x2A, 0x6E, 0x14,
0x1F, 0xA7, 0x70, 0x4D, 0x3C, 0x45, 0x9D, 0x16, 0x79, 0x11, 0xD8, 0x63, 0x25, 0x79, 0xA4, 0x45,
0xC0, 0x52, 0xB6, 0x85, 0x33, 0xCB, 0x3E, 0x0F, 0xA1, 0x85, 0x35, 0xA0, 0xC7, 0x71, 0x72, 0x77,
0x00, 0x37, 0xAC, 0xA9, 0xA2, 0x2F, 0x3D, 0xDE, 0x91, 0xDD, 0xA2, 0x45, 0x02, 0x21, 0x9D, 0xD7,
0xD5, 0x57, 0x19, 0x3A, 0xEA, 0x05, 0x43, 0xFE, 0x03, 0x4A, 0x12, 0x2D, 0xC3, 0x10, 0xFC, 0xF6,
0x06, 0xEA, 0x49, 0x86, 0x03, 0x95, 0x1E, 0x1C, 0xCF, 0x1C, 0x12, 0xD6, 0x62, 0x87, 0xF2, 0x52,
0xCA, 0x1C, 0x70, 0x9B, 0x68, 0x14, 0xB1, 0x95, 0xF2, 0x5F, 0xEF, 0xDE, 0xFE, 0xC6, 0xF9, 0xE2,
0x8C, 0x5D, 0x2F, 0x21, 0x81, 0xD5, 0xC3, 0x91, 0xDA, 0x22, 0x65, 0x3E, 0x11, 0xEF, 0x9D, 0x8F,
0xE0, 0x18, 0xFB, 0xF5, 0x72, 0x53, 0xBD, 0x90, 0x27, 0x11, 0x50, 0x0C, 0x9A, 0xD4, 0x6C, 0x36,
0xB1, 0xC5, 0x03, 0xE9, 0x26, 0xA2, 0x13, 0xAD, 0xEC, 0x06, 0x8B, 0xB0, 0x67, 0xF6, 0xF1, 0xEC,
0xB4, 0xCE, 0x35, 0x31, 0x29, 0x7A, 0x7C, 0xA5, 0x89, 0x72, 0x76, 0xA7, 0x47, 0xCD, 0x38, 0x82,
0x83, 0xF9, 0x77, 0x98, 0x12, 0xB2, 0x09, 0xA4, 0x67, 0x57, 0x6C, 0x94, 0xE7, 0x40, 0xDA, 0xBD,
0x3B, 0x1A, 0x45, 0x4D, 0x5A, 0x80, 0x19, 0x35, 0xF0, 0xA4, 0x6E, 0x9B, 0x26, 0x8E, 0x89, 0x14,
0xF2, 0x64, 0x47, 0x76, 0xFE, 0x1F, 0xE7, 0xEF, 0x7F, 0x87, 0xB8, 0x9B, 0x40, 0x4A, 0x8F, 0xA0,
0xE9, 0x22, 0x8E, 0x52, 0x76, 0xC1, 0x6E, 0xB9, 0xA6, 0x0D, 0x5C, 0xD3, 0x2A, 0x01, 0x9F, 0xBD,
0xAD, 0x6B, 0x83, 0x3A, 0x88, 0x3B, 0x8D, 0x43, 0xD6, 0x0C, 0xE3, 0xAB, 0x7A, 0x36, 0xA5, 0xE9,
0x6F, 0x3E, 0xBD, 0xC6, 0x16, 0x20, 0x30, 0x59, 0x5B, 0x23, 0x95, 0x0B, 0x16, 0xD5, 0xD5, 0xBF,
0xBE, 0xBE, 0x80, 0x23, 0xEB, 0x90, 0x59, 0xC1, 0x50, 0x0A, 0x2C, 0xAF, 0x6F, 0x88, 0x40, 0x3C,
0x15, 0x90, 0x32, 0x3E, 0x68, 0x15, 0xD9, 0x83, 0x0A, 0x4D, 0x78, 0x16, 0x2C, 0x21, 0x4C, 0x0C,
0xD6, 0x22, 0xC8, 0x68, 0xF7, 0x7B, 0x81, 0xAB, 0x0F, 0x62, 0xB5, 0x66, 0xE5, 0x99, 0x6B, 0x26,
0x96, 0xFD, 0xF6, 0x95, 0x5C, 0x01, 0x0C, 0x79, 0xEC, 0x66, 0xF1, 0xC4, 0x40, 0x3E, 0x3D, 0x08,
0x99, 0x3A, 0x14, 0x85, 0x0D, 0xEA, 0xCD, 0x9B, 0x38, 0x99, 0xBF, 0xF2, 0xB8, 0x37, 0xE4, 0x4D,
0x6F, 0xB1, 0xC0, 0xC3, 0x0A, 0xEB, 0x2C, 0xE7, 0xDB, 0x45, 0xA8, 0x8C, 0x20, 0x54, 0x46, 0x47,
0x19, 0xFD, 0xC3, 0x08, 0x82, 0xA4, 0x4C, 0xDD, 0xD9, 0xE7, 0xE8, 0x0B, 0x78, 0xE1, 0x72, 0x4D,
0x17, 0x4A, 0x2F, 0x7A, 0xAE, 0x16, 0xC8, 0x03, 0x3D, 0x14, 0xE1, 0x53, 0x2F, 0xF6, 0x2B, 0x1E,
0xDF, 0x00, 0xD7, 0xB7, 0x11, 0x68, 0xEB, 0x7A, 0xA5, 0xAD, 0xBC, 0x43, 0xDD, 0x35, 0x29, 0xB9,
0x0F, 0xEF, 0xCF, 0x2F, 0xB0, 0xBA, 0x20, 0x7C, 0x2A, 0x49, 0xB0, 0x02, 0xDA, 0x94, 0x17, 0x88,
0x61, 0xAF, 0x6F, 0x60, 0x97, 0xB7, 0xE0, 0xB3, 0x18, 0x28, 0x3D, 0x72, 0x4C, 0x3C, 0x7F, 0x51,
0xF5, 0x22, 0x35, 0xD7, 0xEE, 0x41, 0x5C, 0xD9, 0x59, 0xC1, 0xEC, 0x16, 0x4B, 0x6A, 0x6A, 0x66,
0x65, 0x21, 0xEA, 0x92, 0xE7, 0x33, 0xBF, 0x25, 0xCB, 0xB8, 0x7F, 0x83, 0x8A, 0x6A, 0xBF, 0x89,
0x09, 0x91, 0x08, 0x31, 0x1E, 0xF0, 0x8C, 0x0F, 0xC9, 0x5D, 0x41, 0xC1, 0x37, 0xB0, 0xA4, 0x7D,
0x83, 0x7F, 0x25, 0x50, 0x37, 0x35, 0xAC, 0xC1, 0xD6, 0x6B, 0x9D, 0x92, 0xBD, 0xA2, 0x83, 0x6D,
0x6D, 0x1C, 0x3C, 0x8E, 0x68, 0xB8, 0x64, 0x73, 0x64, 0x61, 0xA3, 0xEA, 0x2A, 0x69, 0x31, 0xF5,
0xE7, 0x91, 0xF7, 0x0C, 0x85, 0x94, 0xCF, 0xB0, 0x0E, 0x87, 0x96, 0xC2, 0x88, 0xE4, 0x76, 0xB0,
0xFE, 0xA0, 0x43, 0xA8, 0x1E, 0xAA, 0xEA, 0x1C, 0xB4, 0x81, 0x18, 0x96, 0x76, 0xBF, 0xDE, 0xE0,
0x13, 0x99, 0x3B, 0xD7, 0xD6, 0x85, 0xC1, 0x43, 0xC2, 0xF3, 0xFB, 0x72, 0x3E, 0x06, 0x25, 0x21,
0x8F, 0x5B, 0x58, 0x02, 0x8A, 0x5D, 0xE6, 0x86, 0xE0, 0xCD, 0xA5, 0x9A, 0x1C, 0xF1, 0xA1, 0x06,
0xCE, 0xD6, 0x54, 0x1B, 0x51, 0xD6, 0x14, 0x8F, 0x0A, 0x5C, 0x70, 0xBA, 0x0F, 0xBF, 0x62, 0xA8,
0xCF, 0xBD, 0x07, 0xEA, 0x32, 0x98, 0x1F, 0xCB, 0x3B, 0xE8, 0xC8, 0x81, 0x37, 0x10, 0x1A, 0xFE,
0xC6, 0x30, 0x1E, 0x36, 0x54, 0x43, 0x6D, 0x94, 0x28, 0xC0, 0xD9, 0x77, 0x71, 0xC4, 0x67, 0x30,
0x05, 0x39, 0xDE, 0xCE, 0x79, 0x44, 0x07, 0x49, 0xCA, 0xEE, 0xC9, 0xDF, 0x62, 0xA8, 0x90, 0xF7,
0xCE, 0xBE, 0x0B, 0xA2, 0x25, 0x67, 0xFB, 0xE7, 0xCF, 0x19, 0xB8, 0x51, 0x5F, 0xCC, 0x17, 0xA7,
0xFA, 0x2D, 0xF0, 0xD9, 0xCF, 0x61, 0x88, 0x06, 0x93, 0x3F, 0x89, 0x31, 0xB7, 0x9F, 0xC4, 0xBC,
0x7C, 0x99, 0x3F, 0x27, 0x6A, 0x4E, 0xC2, 0x18, 0x7B, 0x31, 0x85, 0xDC, 0xE9, 0x35, 0xFA, 0x51,
0xF5, 0x6B, 0x43, 0xAD, 0x83, 0x9C, 0x27, 0x22, 0x14, 0x31, 0x5F, 0x7B, 0x42, 0x7E, 0xC4, 0xF6,
0x2F, 0x2D, 0xBD, 0xB2, 0x93, 0x69, 0xA4, 0xFC, 0x23, 0x83, 0x91, 0x8A, 0x7F, 0x65, 0x70, 0x60,
0x97, 0xFC, 0x81, 0xF7, 0x6E, 0xC0, 0x82, 0x23, 0x79, 0x58, 0xB9, 0xCF, 0x78, 0xA3, 0xBE, 0xF1,
0x40, 0x55, 0x7D, 0xCC, 0xAD, 0x8A, 0x27, 0x59, 0xF8, 0x07, 0x01, 0x50, 0x03, 0xBC, 0xF9, 0xF4,
0xA2, 0xDC, 0xE0, 0x7A, 0xF3, 0xE9, 0xFD, 0xD7, 0xFA, 0x81, 0xD0, 0xB0, 0x2F, 0x58, 0xB3, 0x43,
0x06, 0x78, 0xE8, 0xD4, 0xF4, 0xB7, 0x70, 0xCF, 0x3A, 0xB6, 0x80, 0x2C, 0x48, 0x3F, 0x8D, 0x02,
0xFE, 0xF1, 0x54, 0x2A, 0x77, 0xBC, 0x2B, 0x2F, 0x01, 0xEB, 0x6D, 0x4D, 0x44, 0x06, 0x73, 0x22,
0xAF, 0x68, 0x97, 0x95, 0xD4, 0x41, 0xFD, 0x0C, 0xE9, 0x67, 0xCF, 0x34, 0xBF, 0x40, 0x96, 0xB4,
0xE7, 0xF9, 0xDF, 0xF6, 0x93, 0xC4, 0x72, 0x7C, 0x57, 0x91, 0x0E, 0xE5, 0xE3, 0x29, 0xD4, 0x05,
0xF1, 0x03, 0x99, 0x07, 0x78, 0x78, 0x48, 0x3E, 0xE2, 0x52, 0xF2, 0x91, 0x59, 0xA6, 0x68, 0xF8,
0x91, 0x97, 0x8C, 0xB3, 0x7C, 0x41, 0x7A, 0x7E, 0x53, 0x8F, 0x08, 0xA4, 0xF0, 0x2B, 0xD9, 0xB3,
0xBF, 0x9F, 0x80, 0x64, 0x80, 0x2A, 0x13, 0x53, 0x5D, 0x88, 0x29, 0x85, 0xF4, 0x14, 0x8E, 0x06,
0x9B, 0x98, 0x43, 0x16, 0xA6, 0x2C, 0xF7, 0x2A, 0x21, 0xC4, 0xD7, 0xF0, 0x28, 0x5B, 0x32, 0x0C,
0xB3, 0xF8, 0x1A, 0x8C, 0xA2, 0xCF, 0xE1, 0x97, 0x6C, 0x97, 0x01, 0xEC, 0x02, 0x52, 0x51, 0x6E,
0x58, 0x92, 0xC2, 0x31, 0xA0, 0x46, 0x0D, 0x3E, 0x9B, 0x5F, 0x64, 0xBA, 0x08, 0xC9, 0xD3, 0x01,
0x49, 0x66, 0x6F, 0xD1, 0x55, 0x14, 0xE8, 0x46, 0x6D, 0x04, 0x9F, 0xAD, 0x2F, 0x50, 0xD7, 0x34,
0x34, 0x5D, 0xAD, 0xF2, 0x76, 0x0B, 0xF9, 0x06, 0xEB, 0x41, 0xF5, 0xD5, 0x17, 0x23, 0x04, 0x97,
0x4B, 0x24, 0x96, 0x4D, 0x91, 0x6D, 0xE1, 0xD9, 0x78, 0xF4, 0x1B, 0x7C, 0xB6, 0x73, 0x0C, 0x95,
0x87, 0xC0, 0xC1, 0x67, 0x27, 0x9F, 0x20, 0x4F, 0x72, 0x4E, 0x53, 0xF9, 0x46, 0xB3, 0x38, 0xE5,
0x94, 0x55, 0xEF, 0xE5, 0x82, 0xF0, 0x2D, 0x9B, 0x24, 0xAE, 0x41, 0xEE, 0xFC, 0xA4, 0xBE, 0xB7,
0xE3, 0xAC, 0x0B, 0x3B, 0xD4, 0x06, 0x28, 0xA5, 0xF5, 0x1A, 0xC5, 0xA4, 0x50, 0x62, 0x19, 0x57,
0x13, 0x4B, 0x9C, 0xD6, 0xAB, 0x02, 0x97, 0xDA, 0xA2, 0x0D, 0x21, 0x93, 0xCD, 0x5D, 0x01, 0xC4,
0xE8, 0xB8, 0x9C, 0x60, 0x32, 0x4A, 0x4F, 0xE2, 0xAD, 0x04, 0xB3, 0x72, 0xC6, 0xFB, 0x47, 0x79,
0xD1, 0x7A, 0x3E, 0x34, 0xDA, 0x6D, 0x2F, 0x27, 0x68, 0x89, 0x9F, 0xD8, 0x58, 0xA2, 0x55, 0x57,
0xF8, 0x32, 0xB4, 0xDA, 0x28, 0xF3, 0xB9, 0x01, 0x5A, 0xD5, 0xA8, 0xCA, 0xA4, 0xA1, 0xB6, 0x56,
0x90, 0x10, 0x7D, 0x56, 0xBD, 0xC4, 0x5F, 0x06, 0x20, 0xE7, 0x2F, 0xDA, 0xE0, 0x59, 0x88, 0x2A,
0x28, 0xB4, 0xE6, 0x38, 0x88, 0xA0, 0xD4, 0xBC, 0xA0, 0xF7, 0x12, 0xBC, 0x24, 0xF1, 0xEE, 0xC6,
0xCB, 0xE9, 0x94, 0x41, 0xC5, 0x53, 0x9C, 0x2C, 0x8E, 0x90, 0x53, 0xA3, 0x72, 0x2E, 0x56, 0x31,
0xF0, 0x4F, 0xE7, 0xAA, 0xB6, 0xEB, 0x59, 0xBF, 0xB9, 0xAE, 0x20, 0x21, 0x06, 0x55, 0xB0, 0xEC,
0x7C, 0x3F, 0xA0, 0x82, 0xFA, 0x7F, 0x08, 0xB7, 0x0C, 0x64, 0xDF, 0xBF, 0xA7, 0x8C, 0x63, 0xC0,
0x8E, 0x97, 0xBC, 0x5E, 0x92, 0x8C, 0xEE, 0x30, 0x47, 0xAB, 0xEE, 0x45, 0xEF, 0x12, 0x1C, 0xA4,
0x18, 0x8B, 0xC5, 0x0A, 0x48, 0xF6, 0x36, 0xC2, 0x46, 0xCA, 0xF9, 0x02, 0x82, 0xAD, 0x0F, 0x29,
0x39, 0xD4, 0xDF, 0xB0, 0x65, 0x34, 0x61, 0x50, 0x90, 0xFE, 0x8C, 0x7C, 0xFA, 0x85, 0xF8, 0xA4,
0x15, 0x09, 0x28, 0xAE, 0x2A, 0x3B, 0x05, 0xFB, 0x68, 0x94, 0xBD, 0x11, 0x00, 0x06, 0x90, 0x75,
0xBD, 0x4F, 0x5F, 0x81, 0x6D, 0x70, 0xB0, 0x0D, 0x18, 0xCB, 0xDE, 0x9A, 0xE0, 0x68, 0xEF, 0x55,
0x9F, 0xF9, 0x4A, 0xC1, 0x78, 0x4F, 0xD3, 0x1A, 0xBA, 0x01, 0xFA, 0x17, 0x14, 0x4A, 0xB0, 0x72,
0xEE, 0x05, 0xC1, 0xBE, 0x7C, 0x99, 0x47, 0xB6, 0x53, 0xAE, 0xA4, 0x8C, 0xCD, 0x53, 0xE5, 0x2E,
0x5E, 0x2A, 0xF8, 0xA6, 0x97, 0x8C, 0xD8, 0xCA, 0x14, 0xAA, 0x5F, 0xC5, 0x8B, 0x62, 0xF0, 0x17,
0xE0, 0xD9, 0x62, 0xA1, 0x8A, 0x3A, 0x2E, 0x4B, 0x68, 0x5D, 0x14, 0xAF, 0x94, 0x72, 0x80, 0x07,
0xB6, 0xAB, 0xAF, 0xCF, 0xCE, 0xDE, 0x9F, 0x15, 0xE4, 0x6E, 0xBF, 0xB9, 0xC1, 0xC1, 0x4F, 0x6C,
0xBE, 0xBB, 0xB1, 0x75, 0x18, 0x5C, 0xD4, 0x50, 0x15, 0x9C, 0x1C, 0xE0, 0x7B, 0x0B, 0xD6, 0x17,
0x4D, 0xAF, 0xA4, 0x7D, 0x1B, 0x59, 0x9F, 0x37, 0xC6, 0xA6, 0x3C, 0x16, 0x81, 0xA5, 0xC4, 0xAF,
0x02, 0x70, 0x8F, 0x65, 0x5B, 0x65, 0xD7, 0x93, 0xBA, 0x17, 0x32, 0x80, 0x92, 0xEF, 0x84, 0x29,
0x53, 0x0A, 0xF0, 0x75, 0x08, 0x64, 0x95, 0x65, 0x0D, 0x55, 0xA3, 0x1E, 0xC2, 0xE6, 0x41, 0xB4,
0xAD, 0x17, 0x50, 0xB4, 0xC1, 0x2E, 0x84, 0x90, 0x1A, 0xE8, 0xE0, 0x74, 0x8A, 0xD4, 0xFE, 0xFF,
0x41, 0x76, 0xBE, 0xD7, 0xA7, 0x6A, 0x83, 0x4C, 0x0D, 0x20, 0x28, 0x22, 0x51, 0x65, 0xC7, 0x57,
0x7E, 0xE3, 0xEE, 0x5E, 0x04, 0xD1, 0x6A, 0x83, 0x66, 0xE3, 0x55, 0x42, 0xE5, 0x44, 0xD5, 0x1E,
0x2E, 0xC2, 0x57, 0xCF, 0x2F, 0xC1, 0xF1, 0x85, 0xC0, 0xE7, 0xB1, 0xA5, 0xB4, 0xE9, 0x33, 0xC0,
0xF1, 0x7D, 0xBF, 0x43, 0xD5, 0xFB, 0x43, 0x90, 0xA5, 0xC8, 0xFE, 0xCC, 0x8C, 0xF0, 0x81, 0x3C,
0x58, 0xBC, 0xBF, 0x78, 0xB0, 0xC1, 0x90, 0x25, 0x34, 0xD5, 0x26, 0x83, 0xFE, 0x60, 0xFF, 0x40,
0x85, 0x68, 0xF2, 0xB4, 0xBE, 0x81, 0x68, 0x1B, 0x14, 0x70, 0xDA, 0xBA, 0xFC, 0x22, 0x97, 0xFE,
0xE4, 0xDE, 0xC1, 0x92, 0x94, 0x0B, 0xCE, 0xB7, 0xA3, 0x7D, 0xF0, 0xCF, 0xE9, 0x1B, 0x10, 0xAF,
0x1F, 0xEC, 0x1C, 0x6C, 0xC9, 0xFE, 0x71, 0x3D, 0x83, 0x87, 0xDA, 0x04, 0x59, 0x0E, 0xBC, 0xB3,
0x53, 0xF0, 0xB0, 0xF5, 0x3C, 0xD6, 0x05, 0x6D, 0x51, 0x7F, 0xE0, 0xAD, 0xD6, 0x03, 0x68, 0xB2,
0xF7, 0x5B, 0x9F, 0x67, 0x3E, 0xCF, 0xB7, 0xF8, 0x0A, 0x64, 0xF6, 0x4E, 0xF7, 0xE2, 0xF6, 0x91,
0x3E, 0xA2, 0x68, 0x6B, 0xFC, 0x83, 0x3C, 0xCA, 0x36, 0x78, 0x89, 0xC6, 0xA1, 0x70, 0xA1, 0x8F,
0xEB, 0x9F, 0xA0, 0xFB, 0x54, 0x2D, 0x7A, 0xE0, 0x28, 0x54, 0xE0, 0xE5, 0x4B, 0xD5, 0xAD, 0x7E,
0x2D, 0xCF, 0x7E, 0xFF, 0x5E, 0x0D, 0xBB, 0xAA, 0x0D, 0xB1, 0x3D, 0x9B, 0xD4, 0xAA, 0xF1, 0x6E,
0x82, 0xA9, 0x8E, 0x88, 0x78, 0x54, 0x14, 0x29, 0xB8, 0x95, 0x53, 0x5E, 0x2F, 0x0C, 0x88, 0x9C,
0xC8, 0x83, 0xF6, 0x82, 0xEF, 0x38, 0xB8, 0xA6, 0xCE, 0x47, 0x90, 0xC0, 0xD1, 0xDF, 0x0C, 0x02,
0x93, 0xEB, 0x25, 0xBD, 0x8E, 0x1A, 0x23, 0xEB, 0x61, 0x0F, 0x27, 0x24, 0x13, 0x3D, 0x46, 0xE1,
0x0A, 0xDD, 0x75, 0x2D, 0x23, 0xD2, 0x5D, 0xF3, 0x28, 0x82, 0x04, 0x66, 0x02, 0xAA, 0x9B, 0xE4,
0xFB, 0x63, 0xB7, 0x7C, 0x33, 0x00, 0x42, 0x4E, 0x68, 0x61, 0x32, 0x49, 0x47, 0xAE, 0xF6, 0xA6,
0x76, 0x0C, 0xED, 0x6B, 0x57, 0x15, 0x61, 0x14, 0xAB, 0x92, 0xFD, 0x66, 0x59, 0xBC, 0xC9, 0xFD,
0x60, 0x31, 0x4F, 0x6F, 0x02, 0x3F, 0x0B, 0x13, 0x85, 0x8F, 0xE1, 0x03, 0x91, 0x39, 0x2C, 0xFC,
0x43, 0x5E, 0x96, 0x1D, 0x58, 0xBD, 0xD8, 0x5A, 0x8D, 0xEF, 0xD8, 0x12, 0x11, 0x27, 0x1F, 0xCF,
0x5F, 0x9F, 0x95, 0x3B, 0x08, 0xE8, 0x73, 0x81, 0x84, 0x88, 0x83, 0x2F, 0x6E, 0xA8, 0x2F, 0x3F,
0xFC, 0x7C, 0x7E, 0xFE, 0xE9, 0xFD, 0xD9, 0xAB, 0xDD, 0x4B, 0x38, 0x2E, 0x39, 0xFF, 0xF8, 0xCB,
0xBB, 0xD3, 0x8B, 0xD1, 0x1D, 0x76, 0x8D, 0xC3, 0x1D, 0x41, 0x62, 0x18, 0x3E, 0xFC, 0x04, 0x23,
0xDC, 0x7A, 0x82, 0xF1, 0x02, 0xC6, 0x64, 0xAD, 0x48, 0x95, 0x63, 0x58, 0xAD, 0x1C, 0xF3, 0xD2,
0xB0, 0x92, 0xBB, 0x86, 0x79, 0xF9, 0x38, 0xC8, 0xDA, 0x29, 0x20, 0xF6, 0xB0, 0x5C, 0x3A, 0x46,
0x14, 0x9A, 0xC2, 0xAC, 0x74, 0x5C, 0x05, 0x91, 0x1F, 0xAF, 0x76, 0xF8, 0xEE, 0x0C, 0x7E, 0x3D,
0x3C, 0x6A, 0xC9, 0xD7, 0xB5, 0x8F, 0x5A, 0xF2, 0xAF, 0x44, 0xE8, 0x1F, 0xF0, 0xFD, 0x5F, 0xE9,
0xC1, 0x6D, 0x64, 0xC7, 0x57, 0x00, 0x00
};
#endif //__nofile_h

View File

@ -4,28 +4,28 @@
"lockfileVersion": 1,
"dependencies": {
"@nodelib/fs.scandir": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz",
"integrity": "sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg==",
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz",
"integrity": "sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w==",
"dev": true,
"requires": {
"@nodelib/fs.stat": "2.0.1",
"@nodelib/fs.stat": "2.0.2",
"run-parallel": "^1.1.9"
}
},
"@nodelib/fs.stat": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz",
"integrity": "sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz",
"integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==",
"dev": true
},
"@nodelib/fs.walk": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz",
"integrity": "sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ==",
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz",
"integrity": "sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA==",
"dev": true,
"requires": {
"@nodelib/fs.scandir": "2.1.1",
"@nodelib/fs.scandir": "2.1.2",
"fastq": "^1.6.0"
}
},
@ -53,9 +53,9 @@
"dev": true
},
"@types/node": {
"version": "12.7.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz",
"integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==",
"version": "12.7.3",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.3.tgz",
"integrity": "sha512-3SiLAIBkDWDg6vFo0+5YJyHPWU9uwu40Qe+v+0MH8wRKYBimHvvAOyk3EzMrD/TrIlLYfXrqDqrg913PynrMJQ==",
"dev": true
},
"CSSselect": {
@ -80,6 +80,24 @@
"integrity": "sha1-6x9FtKQ/ox0DcBpexG87Umc+kO4=",
"dev": true
},
"aggregate-error": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.0.tgz",
"integrity": "sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA==",
"dev": true,
"requires": {
"clean-stack": "^2.0.0",
"indent-string": "^3.2.0"
},
"dependencies": {
"indent-string": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
"integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
"dev": true
}
}
},
"alter": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/alter/-/alter-0.2.0.tgz",
@ -883,6 +901,12 @@
}
}
},
"clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true
},
"cli": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
@ -1179,16 +1203,19 @@
}
},
"del": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/del/-/del-5.0.0.tgz",
"integrity": "sha512-TfU3nUY0WDIhN18eq+pgpbLY9AfL5RfiE9czKaTSolc6aK7qASXfDErvYgjV1UqCR4sNXDoxO0/idPmhDUt2Sg==",
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz",
"integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==",
"dev": true,
"requires": {
"globby": "^10.0.0",
"is-path-cwd": "^2.0.0",
"is-path-in-cwd": "^2.0.0",
"p-map": "^2.0.0",
"rimraf": "^2.6.3"
"globby": "^10.0.1",
"graceful-fs": "^4.2.2",
"is-glob": "^4.0.1",
"is-path-cwd": "^2.2.0",
"is-path-inside": "^3.0.1",
"p-map": "^3.0.0",
"rimraf": "^3.0.0",
"slash": "^3.0.0"
}
},
"deprecated": {
@ -1863,12 +1890,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -1883,17 +1912,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@ -2010,7 +2042,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@ -2022,6 +2055,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@ -2036,6 +2070,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -2147,7 +2182,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@ -2159,6 +2195,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@ -2280,6 +2317,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@ -3626,23 +3664,11 @@
"integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
"dev": true
},
"is-path-in-cwd": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
"integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
"dev": true,
"requires": {
"is-path-inside": "^2.1.0"
}
},
"is-path-inside": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
"integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
"dev": true,
"requires": {
"path-is-inside": "^1.0.2"
}
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.1.tgz",
"integrity": "sha512-CKstxrctq1kUesU6WhtZDbYKzzYBuRH0UYInAVrkc/EYdB9ltbfE0gOoayG9nhohG6447sOOVGhHqsdmBvkbNg==",
"dev": true
},
"is-plain-object": {
"version": "2.0.4",
@ -4793,10 +4819,13 @@
}
},
"p-map": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
"integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
"dev": true
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz",
"integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
}
},
"param-case": {
"version": "2.1.1",
@ -4866,12 +4895,6 @@
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true
},
"path-is-inside": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
"integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
"dev": true
},
"path-parse": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
@ -5341,9 +5364,9 @@
"dev": true
},
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
"integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
"dev": true,
"requires": {
"glob": "^7.1.3"

Binary file not shown.

View File

@ -1,26 +1,16 @@
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%; font-size:10px;}
body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff;}
.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;}
table{border:0px;border-spacing:0;max-width:100%;}
.table-bordered{ width:100%; border:1px solid #dddddd;margin-bottom:20px;}
td{white-space:nowrap; padding:2mm;}
th{text-align:left;}
.table>thead>tr>th,.table>tbody>tr>th,.table>thead>tr>td,.table>tbody>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd;}
.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td{border:1px solid #dddddd;}
.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px;}
.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9;}
@media (min-width:768px){.container{width:750px;}}
@media (min-width:992px){.container{width:970px;}}
@media (min-width:1200px){.container{width:1170px;}}
.nav{ width:100%; color:#cccccc;padding-left:10;padding-right:10;list-style:none;background-color:#333333;border-radius:6px ;margin-bottom:20px;}
a{position:relative;display:block;padding:10px 15px;text-decoration:none;color:#cccccc;}
.active{color:#ffffff;background-color:#000000;}
.active a,a:hover,a:focus{color:#FFFFFF;}
.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05);}
.panel-body{padding:15px;}
.panel-heading{padding:10px 15px;color:#333333;background-color:#f5f5f5;border-color:#dddddd;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom:1px solid #dddddd;}
label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold;}
.text-info{color:#31708f;}
.form-control{display:block;width:auto;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff
;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);
* -webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;
@ -32,24 +22,12 @@ background-image:none;border:1px solid transparent;white-space:nowrap;padding:6p
* -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}
.btn-primary{color:#ffffff;background-color:#337ab7;border-color:#2e6da4;}
.btn-primary:focus,.btn-primary:active,.btn-primary:hover,.btn-primary.focus,.btn-primary.active,.btn-primary.hover{color:#ffffff;background-color:#286090;border-color:#122b40;}
caption{padding-top:8px;padding-bottom:8px;color:#777777;text-align:left;}
.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px;}
.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d;}
.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442;}
.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);}
.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;}
.has-error .control-label{color:#a94442;}
.has-success .form-control {border-color: #3c763d;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);}
.has-success .form-control:focus {border-color: #2b542c;-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;}
.has-success .control-label{color: #3c763d;}
.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a;}
.btn-danger:focus,.btn-danger:active,.btn-danger:hover,.btn-danger.focus,.btn-danger.active,.btn-danger.hover{color: #ffffff;background-color:#c9302c;border-color:#761c19;}
.btnimg {cursor:hand; border-radius:6px ;;border:1px solid #FFFFFF;}
.btnimg:hover{background-color:#F0F0F0;border-color:#00FFFF;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;}
.btnimg {cursor:hand; border-radius:6px ;border:1px solid #FFFFFF;}
.btnimg:hover{background-color:#F0F0F0;border-color:#6c6c6c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #808080;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #808080;}
.btnroundimg {cursor:hand; border-radius:30px;}
.btnroundimg:hover{background-color:#F0F0F0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;}
.blacklink {color:#000000;}
.blacklink:hover, .filelink:focus {color:#0094FF;}
.btnroundimg:hover{background-color:#F0F0F0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #808080;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #808080;}
.blacklink, .blacklink:active {color:#000000;}
.blacklink:hover{color:#000000;}
input[type="file"]::-webkit-file-upload-button{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation; touch-action:manipulation;cursor:pointer;
background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;
* -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none; color: #ffffff;background-color: #5bc0de;border-color: #46b8da;}
@ -59,22 +37,7 @@ background-image:none;border:1px solid transparent;white-space:nowrap;padding:6p
input[type="file"]::-webkit-file-upload-button:hover{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation; touch-action:manipulation;cursor:pointer;
background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;
* -webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none; color: #ffffff;background-color: #31b0d5;border-color: #269abc;}
.filelink {color:#000000;}
.filelink:hover, .filelink:focus {color:#0094FF;}
.panel-footer{padding:10px 15px;color:#31708f;background-color:#f5f5f5;border-color:#dddddd;border-top:1px solid #dddddd;}
.loader {
border: 4px solid #f3f3f3; /* Light grey */
border-top: 4px solid #3498db; /* Blue */
border-radius: 50%;
width: 12px;
height: 12px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.panel-footer{padding:10px 15px;color:#31708f;background-color:#f5f5f5;border-color:#dddddd;border-top:1px solid #dddddd;}
.modal {
@ -125,6 +88,9 @@ background-image:none;border:1px solid transparent;white-space:nowrap;padding:6p
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
.hide_it {
display: none;
}
@media (min-width: 768px) {
.modal-content {

View File

@ -1,4 +1,16 @@
var currentpath = "/";
var authentication = false;
var websocket_port = 0;
var websocket_IP = "";
var async_webcommunication = false;
var page_id = "";
var ws_source;
var log_off =false;
var websocket_started =false;
var esp_error_message ="";
var esp_error_code = 0;
var xmlhttpupload;
var typeupload = 0;
function navbar(){
var content="<table><tr>";
var tlist = currentpath.split("/");
@ -14,6 +26,7 @@ function navbar(){
content+="</tr></table>";
return content;
}
function trash_icon(){
var content ="<svg width='24' height='24' viewBox='0 0 128 128'>";
content +="<rect x='52' y='12' rx='6' ry='6' width='25' height='7' style='fill:red;' />";
@ -26,20 +39,24 @@ function trash_icon(){
content +="<rect x='80' y='43' rx='7' ry='7' width='7' height='63' style='fill:white;' /></svg>";
return content;
}
function back_icon(){
var content ="<svg width='24' height='24' viewBox='0 0 24 24'><path d='M7,3 L2,8 L7,13 L7,10 L17,10 L18,11 L18,15 L17,16 L10,16 L9,17 L9,19 L10,20 L20,20 L22,18 L22,8 L20,6 L7,6 z' stroke='black' fill='white' /></svg>";
return content;
}
function select_dir(directoryname){
currentpath+=directoryname + "/";
SendCommand('list','all');
}
function compareStrings(a, b) {
// case-insensitive comparison
a = a.toLowerCase();
b = b.toLowerCase();
return (a < b) ? -1 : (a > b) ? 1 : 0;
}
function dispatchfilestatus(jsonresponse)
{
var content ="";
@ -57,19 +74,20 @@ if (currentpath!="/")
var previouspath = currentpath.slice(0,pos+1);
content +="<tr style='cursor:hand;' onclick=\"currentpath='"+previouspath+"'; SendCommand('list','all');\"><td >"+back_icon()+"</td><td colspan='4'> Up..</td></tr>";
}
if (currentpath=="/") {
display_message = true;
}
jsonresponse.files.sort(function(a, b) {
return compareStrings(a.name, b.name);
});
if (currentpath=="/") {
display_message = true;
}
var display_time =false;
for (var i1=0;i1 <jsonresponse.files.length;i1++){
//first display files
if (String(jsonresponse.files[i1].size) != "-1")
{
content +="<TR>";
content +="<td><svg height='24' width='24' viewBox='0 0 24 24' > <path d='M1,2 L1,21 L2,22 L16,22 L17,21 L17,6 L12,6 L12,1 L2,1 z' stroke='black' fill='white' /><line x1='12' y1='1' x2='17' y2='6' stroke='black' stroke-width='1'/>";
content +="<line x1='5' y1='10' x2='13' y2='10' stroke='black' stroke-width='1'/> <line x1='5' y1='14' x2='13' y2='14' stroke='black' stroke-width='1'/> <line x1='5' y1='18' x2='13' y2='18' stroke='black' stroke-width='1'/></svg></td>";
content +="<td><svg height='24' width='24' viewBox='0 0 24 24' > <path d='M1,2 L1,21 L2,22 L16,22 L17,21 L17,6 L12,6 L12,1 L2,1 z' stroke='black' fill='white' /><line x1='12' y1='1' x2='17' y2='6' stroke='black' stroke-width='1'/>";
content +="</svg></td>";
content +="<TD class='btnimg' style=\"padding:0px;\"><a href=\""+jsonresponse.path+jsonresponse.files[i1].name+"\" target=_blank><div class=\"blacklink\">";
content +=jsonresponse.files[i1].name;
if ((jsonresponse.files[i1].name == "index.html.gz")||(jsonresponse.files[i1].name == "index.html")){
@ -77,7 +95,16 @@ if (String(jsonresponse.files[i1].size) != "-1")
}
content +="</div></a></TD><TD>";
content +=jsonresponse.files[i1].size;
content +="</TD><TD width='0%'><div class=\"btnimg\" onclick=\"Delete('"+jsonresponse.files[i1].name+"')\">";
content +="</TD>";
if (jsonresponse.files[i1].hasOwnProperty('time')){
display_time = true;
content +="<TD>";
content += jsonresponse.files[i1].time;
content +="</TD>";
} else {
content +="<TD></TD>";
}
content +="<TD width='0%'><div class=\"btnimg\" onclick=\"Delete('"+jsonresponse.files[i1].name+"')\">";
content +=trash_icon();
content +="</div></TD><td></td></TR>";
}
@ -86,55 +113,72 @@ if (String(jsonresponse.files[i1].size) != "-1")
for (var i2=0;i2 <jsonresponse.files.length;i2++){
if (String(jsonresponse.files[i2].size) == "-1")
{
content +="<TR>";
content+="<td><svg height='24' width='24' viewBox='0 0 24 24' ><path d='M19,11 L19,8 L18,7 L8,7 L8,5 L7,4 L2,4 L1,5 L1,22 L19,22 L20,21 L23,11 L5,11 L2,21 L1,22' stroke='black' fill='white' /></svg></td>";
content+="<TR><td><svg height='24' width='24' viewBox='0 0 24 24' ><path d='M19,11 L19,8 L18,7 L8,7 L8,5 L7,4 L2,4 L1,5 L1,22 L19,22 L20,21 L23,11 L5,11 L2,21 L1,22' stroke='black' fill='white' /></svg></td>";
content +="<TD class='btnimg blacklink' style='padding:10px 15px;' onclick=\"select_dir('" + jsonresponse.files[i2].name+"');\">";
content +=jsonresponse.files[i2].name;
content +="</TD><TD>";
content +="</TD><TD width='0%'><div class=\"btnimg\" onclick=\"Deletedir('"+jsonresponse.files[i2].name+"')\">";
content +="</TD><TD></TD><TD></TD>";
if (typeof jsonresponse.files[i2].hasOwnProperty('time')){
display_time = true;
}
content +="<TD width='0%'><div class=\"btnimg\" onclick=\"Deletedir('"+jsonresponse.files[i2].name+"')\">";
content +=trash_icon();
content +="</div></TD><td></td></TR>";
}
}
if (display_message) {
if(display_time){
document.getElementById('FS_time').innerHTML = "";
} else {
document.getElementById('FS_time').innerHTML = "Time";
}
if (display_message) {
document.getElementById('MSG').innerHTML = "File index.html.gz is missing, please upload it";
} else {
document.getElementById('MSG').innerHTML = "<a href='/' class= 'btn btn-primary'>Go to ESP3D interface</a>";
}
document.getElementById('file_list').innerHTML=content;
document.getElementById('path').innerHTML=navbar();}
function Delete(filename){
if (confirm("Confirm deletion of file: " + filename))SendCommand("delete",filename);
}
function Deletedir(filename){
if (confirm("Confirm deletion of directory: " + filename))SendCommand("deletedir",filename);
}
function Createdir(){
var filename = prompt("Please enter directory name", "");
var filename = prompt("Directory name", "");
if (filename != null) {
SendCommand("createdir",filename.trim());
}
}
function SendCommand(action,filename){
var xmlhttp = new XMLHttpRequest();
var url = "/files?action="+action;
document.getElementById('MSG').innerHTML = "Connecting...";
url += "&filename="+encodeURI(filename);
url += "&path="+encodeURI(currentpath);
document.getElementById('loader').style.visibility="visible";
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 ) {
if(xmlhttp.status == 200) {
var jsonresponse = JSON.parse(xmlhttp.responseText);
document.getElementById('loader').style.visibility="hidden";
dispatchfilestatus(jsonresponse);}
else SubmitRequest ();
dispatchfilestatus(jsonresponse);
} else {
if(xmlhttp.status == 401) {
RL ();
} else {
console.log(xmlhttp.status);
FWError();
}
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function Sendfile(){
var files = document.getElementById('file-select').files;
if (files.length==0)return;
@ -148,10 +192,10 @@ var arg = currentpath + file.name + "S";
//append file size first to check updload is complete
formData.append(arg, file.size);
formData.append('myfiles[]', file, currentpath+file.name);}
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', '/files', true);
xmlhttpupload = new XMLHttpRequest();
xmlhttpupload.open('POST', '/files', true);
//progress upload event
xmlhttp.upload.addEventListener("progress", updateProgress, false);
xmlhttpupload.upload.addEventListener("progress", updateProgress, false);
//progress function
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
@ -161,38 +205,209 @@ function updateProgress (oEvent) {
} else {
// Impossible because size is unknown
}
};
xmlhttp.onerror = function () {
}
typeupload = 1;
xmlhttpupload.onload = function () {
if (xmlhttpupload.status === 200) {
document.getElementById('upload-button').value = 'Upload';
document.getElementById('prg').style.visibility = "hidden";
document.getElementById('file-select').value="";
document.getElementById('status').innerHTML="Status: Upload failed"
alert("Upload file failed");
};
xmlhttp.onload = function () {
if (xmlhttp.status === 200) {
document.getElementById('upload-button').value = 'Upload';
document.getElementById('prg').style.visibility = "hidden";
document.getElementById('file-select').value="";
var jsonresponse = JSON.parse(xmlhttp.responseText);
var jsonresponse = JSON.parse(xmlhttpupload.responseText);
dispatchfilestatus(jsonresponse);
} else alert('An error occurred!');
} else uploadError();
};
xmlhttp.send(formData);
xmlhttpupload.send(formData);
}
function padNumber(num, size) {
var s = num.toString();
while (s.length < size) s = "0" + s;
return s;
}
function getPCTime(){
var d = new Date();
return d.getFullYear() + "-" + padNumber(d.getMonth() + 1 ,2) + "-" + padNumber(d.getDate(),2) + "-" + padNumber(d.getHours(),2) + "-" + padNumber(d.getMinutes(),2) + "-" + padNumber(d.getSeconds(),2);
}
function HideAll(msg){
//console.log("Hide all:" + msg);
log_off = true;
if(websocket_started){
ws_source.close();
}
document.title = document.title + "(disconnected)";
document.getElementById('MSG').innerHTML = msg;
document.getElementById('FILESYSTEM').style.display = "none";
document.getElementById('FWUPDATE').style.display = "none";
}
function FWError(){
HideAll("Failed to communicate with FW!");
}
function FWOk(){
document.getElementById('MSG').innerHTML = "Connected";
document.getElementById('FILESYSTEM').style.display = "block";
document.getElementById('FWUPDATE').style.display = "block";
}
function InitUI(){
var xmlhttp = new XMLHttpRequest();
var url = "/command?commandText="+encodeURI("[ESP800]");
authentication = false;
async_webcommunication = false;
console.log("Init UI");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 ) {
var error = false;
if(xmlhttp.status == 200) {
var response = xmlhttp.responseText;
var nbitem = 0;
var tresp = response.split("#");
console.log(xmlhttp.responseText);
if (tresp.length < 3) {
error = true;
} else {
//FW version:1.1f # FW target:grbl-embedded # FW HW:Direct SD # primary sd:/sd # secondary sd:none # authentication:no # webcommunication: Sync: 81:192.168.0.1 # hostname:grblesp # axis:3
for (var p=0; p < tresp.length; p++){
var sublist = tresp[p].split(":");
if (sublist[0].trim() == "FW version"){
document.getElementById('FWVERSION').innerHTML = "v"+sublist[1];
nbitem++;
}
if (sublist[0].trim() == "authentication"){
if (sublist[1].trim() == "no") authentication = false;
else authentication = true;
nbitem++;
}
if (sublist[0].trim() == "webcommunication"){
websocket_port = sublist[2].trim();
websocket_IP = sublist[3].trim();
startSocket();
nbitem++;
}
if (sublist[0].trim() == "hostname"){
document.title = sublist[1].trim();
nbitem++
}
}
if (nbitem == 4) {
SendCommand('list','all');
FWOk();
} else {
error = true;
}
}
} else if (xmlhttp.status == 401){
RL();
} else {
error = true;
console.log( xmlhttp.status);
}
if (error) {
FWError();
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function startSocket(){
if (websocket_started){
ws_source.close();
}
if(async_webcommunication){
ws_source = new WebSocket('ws://'+websocket_IP + ':' + websocket_port +'/ws',['arduino']);
}
else {
//console.log("Socket port is :" + websocket_port);
ws_source = new WebSocket('ws://'+websocket_IP + ':' + websocket_port,['arduino']);
}
ws_source.binaryType = "arraybuffer";
ws_source.onopen = function(e){
console.log("WS");
websocket_started = true;
};
ws_source.onclose = function(e){
websocket_started = false;
console.log("~WS");
//seems sometimes it disconnect so wait 3s and reconnect
//if it is not a log off
if(!log_off) setTimeout(startSocket, 3000);
};
ws_source.onerror = function(e){
console.log("WS", e);
};
ws_source.onmessage = function(e){
var msg = "";
//bin
if(!(e.data instanceof ArrayBuffer)){
msg = e.data;
var tval = msg.split(":");
if (tval.length >= 2) {
if (tval[0] == 'currentID') {
page_id = tval[1];
console.log("ID " + page_id);
}
if (tval[0] == 'activeID') {
if(page_id != tval[1]) {
HideAll("It seems you are connect from another location, your are now disconnected");
}
}
if (tval[0] == 'ERROR') {
esp_error_message = tval[2];
esp_error_code = tval[1];
console.log(tval[2] + " code:" + tval[1]);
uploadError();
xmlhttpupload.abort();
}
}
}
//console.log(msg);
};
}
window.onload = function() {
SendCommand('list','all');
InitUI();
};
function uploadError()
{
if (esp_error_code != 0) {
alert('Update failed(' + esp_error_code + '): ' + esp_error_message);
esp_error_code = 0;
} else {
alert('Update failed!');
}
if (typeupload == 1) {
//location.reload();
document.getElementById('upload-button').value = 'Upload';
document.getElementById('prg').style.visibility = "hidden";
document.getElementById('file-select').value="";
SendCommand('list', 'all');
} else {
location.reload();
}
}
function Uploadfile(){
if (!confirm("Confirm Firmware Update ?"))return;
var files = document.getElementById('fw-select').files;
if (files.length==0)return;
document.getElementById('uploadfw-button').style.visibility = 'hidden';
document.getElementById('ubut').style.visibility = 'hidden';
document.getElementById('fw-select').style.visibility = 'hidden';
document.getElementById('MSG').innerHTML="";
document.getElementById('SPIFFS').style.display = "none";
document.getElementById('msg').style.visibility = "visible";
document.getElementById('msg').innerHTML="";
document.getElementById('FILESYSTEM').style.display = "none";
document.getElementById('prgfw').style.visibility = "visible";
var formData = new FormData();
for (var i4 = 0; i4 < files.length; i4++) {
@ -201,78 +416,82 @@ var arg = "/" + file.name + "S";
//append file size first to check updload is complete
formData.append(arg, file.size);
formData.append('myfile[]', file, "/"+file.name);}
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('POST', '/updatefw', true);
typeupload = 0;
xmlhttpupload = new XMLHttpRequest();
xmlhttpupload.open('POST', '/updatefw', true);
//progress upload event
xmlhttp.upload.addEventListener("progress", updateProgress, false);
xmlhttpupload.addEventListener("progress", updateProgress, false);
//progress function
function updateProgress (oEvent) {
if (oEvent.lengthComputable) {
var percentComplete = (oEvent.loaded / oEvent.total)*100;
document.getElementById('prgfw').value=percentComplete;
document.getElementById('MSG').innerHTML = "Uploading ..." + percentComplete.toFixed(0)+"%" ;
document.getElementById('msg').innerHTML = "Uploading ..." + percentComplete.toFixed(0)+"%" ;
} else {
// Impossible because size is unknown
}
}
xmlhttp.onerror = function () {
alert("Upload file failed");
location.reload();
};
xmlhttp.onload = function () {
if (xmlhttp.status === 200) {
document.getElementById('uploadfw-button').value = 'Upload';
document.getElementById('MSG').innerHTML="Restarting, please wait....";
xmlhttpupload.onload = function () {
if (xmlhttpupload.status === 200) {
document.getElementById('ubut').value = 'Upload';
document.getElementById('msg').innerHTML="Restarting, please wait....";
document.getElementById('counter').style.visibility = "visible";
document.getElementById('uploadfw-button').style.visibility = 'hidden';
document.getElementById('uploadfw-button').style.width = '0px';
document.getElementById('ubut').style.visibility = 'hidden';
document.getElementById('ubut').style.width = '0px';
document.getElementById('fw-select').value="";
document.getElementById('fw-select').style.visibility = 'hidden';
document.getElementById('fw-select').style.width = '0px';
var jsonresponse = JSON.parse(xmlhttp.responseText);
if (jsonresponse.status=='1' || jsonresponse.status=='4' || jsonresponse.status=='1')alert("Update failed");
var jsonresponse = JSON.parse(xmlhttpupload.responseText);
if (jsonresponse.status=='1' || jsonresponse.status=='4' || jsonresponse.status=='1')uploadError();
if (jsonresponse.status=='2')alert('Update canceled!');
else if (jsonresponse.status=='3')
{
var i5 = 0;
var interval;
var x = document.getElementById("prgfw");
x.max=40;
interval = setInterval(function(){
i5=i5+1;
var x = document.getElementById("prgfw");
x.value=i5;
var st = 41-i5;
st = st + " seconds";
document.getElementById('counter').innerHTML=st;
if (i5>40)
{
clearInterval(interval);
location.reload();
}
},1000);
var i5 = 0;
var interval;
var x = document.getElementById("prgfw");
x.max=40;
interval = setInterval(function(){
i5=i5+1;
var x = document.getElementById("prgfw");
x.value=i5;
document.getElementById('counter').innerHTML=41-i5;
if (i5>40)
{
clearInterval(interval);
location.reload();
}
},1000);
}
else alert('Update failed!');
} else alert('An error occurred!');
else uploadError()
} else uploadError()
};
xmlhttp.send(formData);
xmlhttpupload.send(formData);
}
function RequestLogin(){
document.getElementById('loader').style.visibility="hidden";
function RL(){
document.getElementById('loginpage').style.display='block';
}
function SubmitRequest (){
function SLR (){
document.getElementById('loginpage').style.display='none';
var user = document.getElementById('login_user_text').value.trim();
var password = document.getElementById('login_password_text').value.trim();
var user = document.getElementById('lut').value.trim();
var password = document.getElementById('lpt').value.trim();
var url = "/login?USER="+encodeURIComponent(user) + "&PASSWORD=" + encodeURIComponent(password) + "&SUBMIT=yes" ;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status != 200) {
RequestLogin();
if (xmlhttp.readyState == 4){
if (xmlhttp.status != 200) {
if (xmlhttp.status == 401) {
RL();
} else {
FWError();
console.log(xmlhttp.status);
}
} else {
InitUI();
}
}
};
xmlhttp.open("GET", url, true);

View File

@ -3,40 +3,52 @@
<!-- smoosh -->
<link href="css/style.css" rel="stylesheet">
<!-- endsmoosh -->
<title>ESP3D tool page</title>
</head>
<body>
<div class="panel">
<table width="100%"><tr>
<td><a class="btnimg" href="https://www.github.com/luc-github/ESP3D/tree/2.1" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z'></path>
</g>
</svg>
<span class="blacklink">Firmware</span></a>
</td>
<td><a class="btnimg" href="https://www.github.com/luc-github/ESP3D-WEBUI/tree/2.1" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z'> </path>
</g>
</svg>
<span class="blacklink">Interface</span></a>
</td>
<td><a class="btnimg" href="https://www.github.com/luc-github/ESP3D/wiki" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z'> </path>
</g>
</svg>
<span class="blacklink">Help</span></a>
</td>
<td style="width:100%; text-align:right;" id="FWVERSION">V1.3.1</td></td></tr></table>
<table width="100%">
<tr>
<td>
<a class="btnimg" href="https://github.com/luc-github/ESP3D/tree/2.1" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z'></path>
</g>
</svg>
<span class="blacklink">Firmware</span>
</a>
</td>
<td>
<a class="btnimg" href="https://www.github.com/luc-github/ESP3D-WEBUI/tree/2.1" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z'> </path>
</g>
</svg>
<span class="blacklink">Interface</span>
</a>
</td>
<td>
<a class="btnimg" href="https://github.com/luc-github/ESP3D/wiki" target="_blank">
<svg width='1em' height='1em' viewBox='0 0 1300 1200'>
<g transform='translate(50,1200) scale(1, -1)'>
<path d='M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z'> </path>
</g>
</svg>
<span class="blacklink">Help</span></a>
</td>
<td style="width:100%;"></td>
<td style="text-align:right;">
<span id="FWVERSION" class="blacklink"></span>
</td>
</tr>
</table>
</div>
<div class="panel">
<div class="panel">
<center><h2 id="MSG"></h2></center>
</div>
<div class="panel" id="SPIFFS">
<div class="panel hide_it" id="FILESYSTEM">
<div class="panel-heading">Flash Filesystem</div>
<div class="panel-body">
<input type="file" id="file-select" name="myfiles[]" multiple />
@ -54,9 +66,6 @@
<rect x="20" y="5" width="15" height="15" rx="2" ry="2" fill="#31b0d5" /><text x="15" y="25" font-size="18" font-weight="800" fill="white">+</text></svg>
</div>
</td>
<td>
<div id="loader" class="loader"></div>
</td>
<td width="100%">
<div id="path" class="info" >&nbsp;</div>
</td>
@ -68,6 +77,7 @@
<th width='0%'>Type</th>
<th>Name</th>
<th>Size</th>
<th id="FS_time">Time</th>
<th width='0%'></th>
<th width='100%'></th>
</tr>
@ -79,15 +89,15 @@
</div>
</div>
</div>
<div class="panel">
<div class="panel hide_it" id="FWUPDATE">
<div class="panel-heading">Firmware Update</div>
<div class="panel-body">
<table>
<tr>
<td><input type="file" id="fw-select" name="myfiles[]" /></td>
<td><input class="btn btn-primary" type="button" id="uploadfw-button" onclick="Uploadfile();" value="Update"/></td>
<td><input class="btn btn-primary" type="button" id="ubut" onclick="Uploadfile();" value="Update"/></td>
<td><progress style="visibility:hidden;" name='prgfw' id='prgfw' max='100'></progress></td>
<td><span id='counter'></span></td>
<td><span id='msg' style='visibility:hidden;'>Restarting, please wait....</span><span id='counter'></span></td>
</tr>
</table>
</div>
@ -100,17 +110,17 @@
<div class="modal-body">
<span>
<span class="modal-text" translate>User:</span>
<input class='form-control' type="text" id="login_user_text" style="width:auto"/>
<input class='form-control' type="text" id="lut" style="width:auto"/>
</span>
<hr>
<span>
<span class="modal-text" translate>Password:</span>
<input class='form-control' type="password" id="login_password_text" style="width:auto"/>
<input class='form-control' type="password" id="lpt" style="width:auto"/>
</span>
<br>
</div>
<div class="modal-footer">
<input type="button" class="btn btn-primary" onclick="SubmitRequest()" value="Submit"/>
<input type="button" class="btn btn-primary" onclick="SLR()" value="Submit"/>
</div>
</div>
</div>

View File

@ -1907,6 +1907,14 @@ bool COMMAND::execute_command (int cmd, String cmd_params, tpipe output, level_a
#else
ESPCOM::print (F ("Sync:"), output, espresponse);
String sp = String(wifi_config.iweb_port+1);
sp += ":";
if (WiFi.getMode() == WIFI_STA) {
sp += WiFi.localIP().toString();
} else if ((WiFi.getMode() == WIFI_AP) || (WiFi.getMode() == WIFI_AP_STA)) {
sp += WiFi.softAPIP().toString();
} else {
sp += "0.0.0.0";
}
ESPCOM::print (sp.c_str(), output, espresponse);
#endif

View File

@ -29,7 +29,9 @@
extern "C" {
#include "user_interface.h"
}
#else
#endif
#ifdef ARDUINO_ARCH_ESP32
#include <esp_ota_ops.h>
#include "Update.h"
#include "esp_wifi.h"
#endif
@ -1044,13 +1046,13 @@ void CONFIG::print_config (tpipe output, bool plaintext, ESPResponseStream *esp
} else {
ESPCOM::print (F ("Available Size for update: "), output, espresponse);
}
uint32_t flashsize = ESP.getFlashChipSize();
//Not OTA on 2Mb board per spec
if (flashsize > 0x20000) {
flashsize = 0x140000;
} else {
flashsize = 0x0;
}
size_t flashsize = 0;
if (esp_ota_get_running_partition()) {
const esp_partition_t* partition = esp_ota_get_next_update_partition(NULL);
if (partition) {
flashsize = partition->size;
}
}
ESPCOM::print (formatBytes (flashsize).c_str(), output, espresponse);
if (!plaintext) {
ESPCOM::print (F ("\","), output, espresponse);

View File

@ -19,7 +19,7 @@
*/
//version and sources location
#define FW_VERSION "2.1.0.b35"
#define FW_VERSION "2.1.0.b36"
#define REPOSITORY "https://github.com/luc-github/ESP3D"
//Customize ESP3D ////////////////////////////////////////////////////////////////////////

View File

@ -25,384 +25,416 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file tool.html.gz */
#define PAGE_NOFILES_SIZE 6028
const char PAGE_NOFILES[6028] PROGMEM = {
0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xED, 0x5C, 0x7B, 0x73, 0xDB, 0xC6,
0xAE, 0xFF, 0x2A, 0x2C, 0x3B, 0xB5, 0xA4, 0x6B, 0x52, 0xE2, 0x4B, 0x12, 0x25, 0x59, 0xCA, 0x69,
0x9B, 0xA4, 0xCD, 0x9D, 0xA4, 0xC9, 0xC4, 0xC9, 0xE9, 0x9D, 0x69, 0x3A, 0x1D, 0x8A, 0x5C, 0x59,
0x3C, 0xA1, 0x48, 0x99, 0x5C, 0xF9, 0x11, 0xD7, 0xDF, 0xFD, 0x02, 0xD8, 0xE5, 0x53, 0x0F, 0x3F,
0x92, 0x9E, 0xE6, 0x8F, 0x8E, 0x63, 0x91, 0xDA, 0x5D, 0x60, 0xB1, 0x58, 0xE0, 0x07, 0x2C, 0x48,
0xE7, 0x64, 0xC9, 0x57, 0xD1, 0xEC, 0x64, 0xC9, 0xBC, 0x60, 0x76, 0x92, 0xF1, 0xEB, 0x88, 0xCD,
0xB0, 0xE5, 0x66, 0x91, 0xC4, 0x5C, 0x5F, 0x78, 0xAB, 0x30, 0xBA, 0x1E, 0x67, 0x5E, 0x9C, 0xE9,
0x19, 0x4B, 0xC3, 0xC5, 0x44, 0x5F, 0x65, 0x3A, 0x67, 0x57, 0x5C, 0xCF, 0xC2, 0x4F, 0x4C, 0xF7,
0x82, 0xFF, 0x6C, 0x32, 0x3E, 0x36, 0x0D, 0xE3, 0xBB, 0x89, 0x7E, 0xC9, 0xE6, 0x1F, 0x43, 0xBE,
0xA7, 0x97, 0xD8, 0x61, 0x2B, 0x7C, 0x5D, 0x5F, 0xDD, 0xCE, 0x93, 0xE0, 0xBA, 0x36, 0x85, 0xFA,
0x33, 0x8B, 0x2E, 0x18, 0x0F, 0x7D, 0x4F, 0xF9, 0x85, 0x6D, 0x98, 0xAA, 0x15, 0xDF, 0xB5, 0xEF,
0xD3, 0xD0, 0x8B, 0xB4, 0x8A, 0x0C, 0x15, 0x5E, 0xCE, 0xFA, 0x6A, 0x12, 0x85, 0x31, 0xD3, 0x97,
0x2C, 0x3C, 0x5B, 0xC2, 0x5C, 0x5D, 0xC7, 0x72, 0xFB, 0x43, 0xD3, 0xB1, 0x27, 0x7E, 0x12, 0x25,
0xE9, 0xF8, 0x5B, 0xDB, 0xB6, 0x27, 0x73, 0xCF, 0xFF, 0x78, 0x96, 0x26, 0x9B, 0x38, 0xD0, 0x65,
0xEB, 0x62, 0xB1, 0xB8, 0xED, 0xFA, 0xC0, 0xC7, 0x03, 0xE2, 0xF4, 0x66, 0xE5, 0xA5, 0x67, 0x61,
0xAC, 0xA7, 0xC4, 0xC3, 0xDB, 0xF0, 0x64, 0x22, 0x5B, 0x22, 0xB6, 0x90, 0x0D, 0x6B, 0x2F, 0x08,
0xC2, 0xF8, 0x4C, 0xB4, 0x98, 0x7D, 0x98, 0x37, 0x6F, 0x11, 0x54, 0xD8, 0x74, 0xCB, 0xBD, 0x79,
0xC4, 0x6E, 0xE6, 0x49, 0x1A, 0xB0, 0x74, 0x6C, 0x4C, 0xC4, 0x8D, 0x9E, 0xAD, 0x3D, 0x1F, 0x06,
0x42, 0xC3, 0xCA, 0xBB, 0xD2, 0x2F, 0xC3, 0x80, 0x2F, 0x49, 0x29, 0xB7, 0x5D, 0x1A, 0xAF, 0x8B,
0x61, 0x2C, 0xB8, 0x29, 0xBB, 0x24, 0xE9, 0xD8, 0x5C, 0x5F, 0x29, 0x59, 0x12, 0x85, 0x81, 0xF2,
0x6D, 0x10, 0x04, 0xB9, 0x54, 0xF3, 0x84, 0xF3, 0x64, 0x35, 0xB6, 0x50, 0x93, 0x1C, 0xC8, 0x96,
0x21, 0x67, 0x34, 0x0B, 0x1B, 0xC7, 0xC9, 0x65, 0xEA, 0xAD, 0x73, 0xD9, 0xC6, 0xD6, 0x6A, 0x75,
0xCB, 0x97, 0x37, 0xB4, 0x27, 0x5E, 0x14, 0x9E, 0xC5, 0x63, 0x94, 0x5F, 0x4E, 0x3C, 0xE3, 0xB8,
0x0D, 0x33, 0x9E, 0xCE, 0x78, 0xA0, 0x6D, 0x35, 0x2D, 0x8B, 0x26, 0xB2, 0x8D, 0xFA, 0xA8, 0xA2,
0x69, 0x79, 0x93, 0x4F, 0xE5, 0xEE, 0xDF, 0x8A, 0x0B, 0x96, 0xE2, 0x4E, 0x46, 0x52, 0x04, 0x9E,
0xAC, 0x73, 0xD5, 0xC0, 0x6D, 0x63, 0x8D, 0x4D, 0xA5, 0xEC, 0x10, 0x72, 0x57, 0xDF, 0x72, 0xBB,
0x6F, 0x4B, 0xEC, 0x5D, 0x7D, 0xCB, 0x9B, 0x9D, 0x9A, 0xDE, 0x96, 0xE2, 0x41, 0xDC, 0xE4, 0x0E,
0xC9, 0xBD, 0xB6, 0x60, 0x9B, 0x24, 0x4D, 0xC6, 0xD3, 0x70, 0x5D, 0x11, 0x7C, 0x1C, 0xF3, 0xA5,
0x9E, 0x2C, 0x74, 0x7E, 0xBD, 0x66, 0xED, 0x24, 0x08, 0x3A, 0x37, 0x3B, 0x6C, 0x75, 0x84, 0x3F,
0xB7, 0xFF, 0x5A, 0xB1, 0x20, 0xF4, 0x94, 0xF6, 0x0A, 0x0C, 0x40, 0xF0, 0x1D, 0x0E, 0x40, 0xE7,
0x9D, 0x9B, 0x8A, 0x1D, 0xCB, 0xF6, 0x3E, 0x1A, 0xC6, 0x0E, 0x82, 0xD1, 0xC8, 0xDA, 0x49, 0x30,
0x1A, 0xEE, 0x21, 0x30, 0x2D, 0xC3, 0xD8, 0x49, 0x61, 0x9A, 0x82, 0xA4, 0x1B, 0x7B, 0x17, 0x55,
0xB3, 0x95, 0x22, 0xFB, 0xBE, 0xDF, 0x70, 0x18, 0xA3, 0xE9, 0x2E, 0x06, 0x18, 0x4B, 0x06, 0x6E,
0x8C, 0x88, 0x03, 0x56, 0x1B, 0xB3, 0x1D, 0x5E, 0x4A, 0xBE, 0x2B, 0x14, 0x9A, 0x7A, 0x41, 0xB8,
0xC9, 0xC6, 0x03, 0x30, 0xB2, 0x1D, 0x4E, 0xE0, 0xDD, 0xAC, 0x93, 0x2C, 0xE4, 0x61, 0x12, 0x8F,
0x53, 0x16, 0x79, 0x3C, 0xBC, 0x60, 0x93, 0x20, 0xCC, 0xD6, 0x91, 0x77, 0x3D, 0x9E, 0x47, 0x89,
0xFF, 0xB1, 0x70, 0x08, 0x44, 0x1F, 0x85, 0xDC, 0x97, 0x7C, 0x22, 0x60, 0x7E, 0x92, 0x7A, 0x44,
0x48, 0x32, 0x94, 0xF2, 0xDF, 0x76, 0x3D, 0x1F, 0xF9, 0xDC, 0x94, 0x88, 0xB1, 0x43, 0x42, 0xC3,
0x30, 0xF2, 0x81, 0x8A, 0xA7, 0x79, 0xE3, 0x45, 0xE2, 0x6F, 0x32, 0xB8, 0x2E, 0x13, 0xB0, 0xF9,
0x9B, 0x2A, 0xD8, 0xAC, 0xBD, 0x98, 0x45, 0x37, 0xDB, 0xB2, 0xEF, 0x06, 0xA7, 0x3D, 0xFE, 0x5F,
0x57, 0x06, 0x82, 0x5F, 0x8E, 0xBA, 0xF3, 0xE4, 0x4A, 0xCF, 0x96, 0x5E, 0x90, 0x5C, 0x8E, 0x0D,
0x05, 0xA9, 0xF0, 0x37, 0x3D, 0x9B, 0x7B, 0x6D, 0x43, 0xC3, 0x9F, 0xAE, 0xD1, 0xEF, 0x4C, 0xEE,
0x33, 0x48, 0x4A, 0xAA, 0x13, 0x42, 0x17, 0x5A, 0x43, 0x70, 0x93, 0x1D, 0x68, 0xEC, 0xD0, 0x76,
0xB3, 0xAD, 0xD1, 0xC3, 0x88, 0xDB, 0xC7, 0x9F, 0x7C, 0x05, 0xB2, 0xB1, 0xB2, 0x26, 0x40, 0x02,
0x61, 0x1A, 0xF9, 0xEA, 0x6C, 0xD4, 0x4D, 0xD9, 0x87, 0x66, 0xB4, 0xA3, 0x4B, 0x6A, 0xB2, 0xE1,
0xBD, 0x91, 0x37, 0x07, 0x65, 0xE7, 0x16, 0x10, 0xC6, 0x84, 0x4B, 0xC2, 0x10, 0xEA, 0x10, 0xDC,
0x30, 0x26, 0x5C, 0x05, 0x45, 0x97, 0x4B, 0x81, 0x61, 0x43, 0xDC, 0x5E, 0x32, 0x94, 0x30, 0x5E,
0x24, 0xF9, 0x7E, 0xDA, 0x60, 0xFC, 0x2E, 0x6C, 0xE9, 0x22, 0x49, 0x57, 0x3A, 0x7A, 0x46, 0x9A,
0x94, 0x93, 0x89, 0x59, 0xC4, 0x0C, 0x14, 0x38, 0x24, 0x1C, 0xDA, 0x4E, 0x19, 0x32, 0xD0, 0x8C,
0x15, 0xD3, 0xCA, 0x27, 0xBB, 0x6F, 0x28, 0xEB, 0xF7, 0xFB, 0xFB, 0xAC, 0xA5, 0x6C, 0x0D, 0x57,
0xDE, 0x59, 0xEE, 0x50, 0x5B, 0x36, 0x84, 0x7E, 0x79, 0x2F, 0x1B, 0x0A, 0xE3, 0x8C, 0x71, 0x65,
0x8F, 0x91, 0x0C, 0xEB, 0xA6, 0x74, 0xE7, 0x58, 0x3D, 0xD1, 0x79, 0x0A, 0xE1, 0x5B, 0x38, 0x68,
0xD5, 0x02, 0x14, 0xE6, 0x65, 0x0C, 0x74, 0xAB, 0x27, 0x1B, 0xAE, 0x74, 0xCD, 0x7E, 0xA6, 0x95,
0x7C, 0xB7, 0xFA, 0xEA, 0x0A, 0x17, 0xAE, 0x76, 0x53, 0xB7, 0xA7, 0xC1, 0xC0, 0x5B, 0xB0, 0xD1,
0x04, 0x28, 0x50, 0x93, 0x10, 0x70, 0x1F, 0xB1, 0x34, 0xCD, 0x80, 0x4E, 0x37, 0xEF, 0x30, 0x0D,
0x4B, 0x33, 0x87, 0x7D, 0xCD, 0xB2, 0x6D, 0xAD, 0x3B, 0xE8, 0x48, 0x19, 0x50, 0xD7, 0xEB, 0x86,
0x33, 0x0B, 0x1F, 0x99, 0xF3, 0x78, 0x9F, 0xDD, 0x55, 0x07, 0x1B, 0x35, 0x33, 0x73, 0x0C, 0x63,
0x52, 0x09, 0xD1, 0x3E, 0x8B, 0x39, 0x4B, 0x9B, 0x51, 0x73, 0x15, 0x06, 0x41, 0xC4, 0x44, 0x02,
0x96, 0x6C, 0xFC, 0xA5, 0x8E, 0xB0, 0x03, 0xFA, 0x5C, 0x79, 0x71, 0xB8, 0xDE, 0x44, 0x04, 0x62,
0x93, 0xFD, 0x3D, 0xFE, 0x26, 0xCD, 0x40, 0x45, 0xEB, 0x24, 0x24, 0xE6, 0xF7, 0xB4, 0x18, 0xDA,
0xB7, 0xB5, 0x97, 0x82, 0x44, 0x93, 0x03, 0x69, 0xC6, 0x03, 0xED, 0x79, 0x87, 0x09, 0xAE, 0x92,
0x4F, 0xFA, 0x26, 0xC3, 0x64, 0x89, 0x45, 0xCC, 0xE7, 0x42, 0x1C, 0x5C, 0xEB, 0x56, 0x63, 0xB3,
0x81, 0x74, 0xAE, 0xAF, 0x53, 0x58, 0x46, 0x7A, 0x7D, 0x18, 0xAD, 0x6D, 0x7B, 0xE8, 0xCD, 0x87,
0x0D, 0x0C, 0xB2, 0xD8, 0x20, 0xF0, 0x9C, 0x1A, 0x17, 0x89, 0xE8, 0x5A, 0xAD, 0x4D, 0x40, 0x7B,
0xAD, 0x89, 0x50, 0xBE, 0xD6, 0x34, 0xDE, 0x41, 0x39, 0xDE, 0xA6, 0xDC, 0x8A, 0x0F, 0x3B, 0x84,
0xB5, 0xDC, 0x81, 0x31, 0x32, 0x1A, 0xC2, 0x9A, 0x96, 0x35, 0x77, 0x8C, 0x5B, 0xDF, 0x5B, 0xE3,
0xA6, 0xE6, 0x18, 0x4C, 0x69, 0x94, 0x5B, 0x49, 0x49, 0xA5, 0x95, 0xB9, 0x25, 0x28, 0x0F, 0x87,
0xC3, 0xC9, 0x56, 0x16, 0xE8, 0x45, 0x60, 0x62, 0x35, 0x90, 0xDF, 0x11, 0x5C, 0x0F, 0x1B, 0xC5,
0xD6, 0x56, 0x4A, 0xAE, 0x7A, 0xB6, 0xF1, 0x7D, 0x96, 0x65, 0x3B, 0xF2, 0x99, 0x60, 0xB1, 0x30,
0x02, 0xB7, 0x19, 0x09, 0x06, 0x6C, 0xE4, 0x0F, 0x8A, 0x10, 0xE2, 0x0F, 0x07, 0x76, 0x90, 0xB3,
0x0A, 0xBC, 0xF8, 0x0C, 0xB4, 0xB5, 0x03, 0xFA, 0xAC, 0x80, 0x05, 0xAC, 0xC1, 0x89, 0xCD, 0x7D,
0x3F, 0x30, 0x73, 0x4E, 0xDE, 0xC8, 0x71, 0x1C, 0xEB, 0xB6, 0xBB, 0xF4, 0x32, 0x9D, 0xA5, 0x29,
0x40, 0x4E, 0x1D, 0xB6, 0xEB, 0xB4, 0x62, 0xF4, 0x5F, 0x0D, 0x88, 0x7B, 0xA5, 0xD9, 0x89, 0x69,
0xAE, 0x63, 0xF7, 0x6D, 0xE7, 0xD1, 0x48, 0x86, 0xAE, 0xF9, 0xAD, 0xCF, 0x5C, 0xC7, 0xB5, 0x1F,
0x22, 0x63, 0x93, 0xB6, 0x26, 0xB3, 0x14, 0x57, 0x17, 0x61, 0x76, 0x87, 0xA6, 0xE5, 0xE6, 0x1F,
0xD4, 0xB5, 0xD8, 0xE3, 0xFF, 0x8E, 0xAE, 0x77, 0xCA, 0xB3, 0x53, 0xDB, 0xD6, 0xBC, 0xEF, 0x58,
0xFE, 0xE7, 0x69, 0x7B, 0x30, 0x9C, 0x9B, 0x03, 0xF7, 0x71, 0xDA, 0x16, 0xB4, 0x0D, 0xA9, 0x77,
0xEA, 0x3B, 0xF7, 0x11, 0x84, 0x15, 0xE9, 0x21, 0x07, 0xF1, 0x24, 0x18, 0x81, 0x19, 0x2D, 0x9A,
0x6E, 0xE7, 0xD8, 0x0B, 0xDB, 0xAB, 0x32, 0xA9, 0x61, 0x9F, 0x6C, 0xAA, 0x00, 0x98, 0x6C, 0xA9,
0x20, 0x9F, 0x68, 0x19, 0x6F, 0x93, 0x8D, 0xB7, 0xC8, 0xEE, 0x03, 0x7B, 0xFE, 0xC8, 0x36, 0x2C,
0xBF, 0x21, 0xE6, 0x70, 0x60, 0xFA, 0xE6, 0x88, 0xC4, 0x0C, 0x57, 0x67, 0x37, 0x32, 0x96, 0x2D,
0xBD, 0xB8, 0x99, 0x12, 0x0F, 0x76, 0xE1, 0x95, 0x48, 0xC0, 0x05, 0xAD, 0x14, 0x61, 0x07, 0x96,
0x18, 0xF8, 0xD3, 0x98, 0xD7, 0x00, 0x11, 0xFF, 0x76, 0xC7, 0x03, 0xC1, 0x49, 0xD2, 0xC3, 0x2B,
0xB7, 0x0D, 0x99, 0x7E, 0xE4, 0x63, 0xEF, 0x5A, 0xE9, 0xDF, 0xBF, 0xAE, 0x08, 0x44, 0x83, 0x0C,
0xE1, 0x63, 0x6E, 0x10, 0x74, 0x98, 0x2A, 0x5A, 0xC7, 0xD2, 0xC6, 0x16, 0x61, 0xC4, 0xE8, 0xBB,
0x70, 0xD7, 0x62, 0xEC, 0xC8, 0x81, 0x5D, 0x0D, 0xE3, 0xF5, 0x86, 0xFF, 0x86, 0xA7, 0xE7, 0x29,
0x8E, 0xFB, 0x7D, 0x3C, 0xCE, 0x97, 0x85, 0x5F, 0xF5, 0xCD, 0x3A, 0x4A, 0xBC, 0x40, 0x9F, 0x6F,
0x20, 0x9A, 0xFD, 0x93, 0x97, 0xFD, 0x77, 0xF3, 0xB2, 0xC9, 0x41, 0x37, 0xEF, 0xCF, 0x7D, 0x63,
0x2B, 0x74, 0x3B, 0x83, 0xB9, 0x1B, 0x78, 0x0F, 0xDA, 0x54, 0x69, 0x15, 0xFF, 0x6C, 0xED, 0xD7,
0xB3, 0xB5, 0xB6, 0x39, 0x37, 0x82, 0xE6, 0x49, 0xDF, 0x9C, 0x0F, 0x02, 0xB7, 0xFF, 0xB0, 0xAD,
0x15, 0x00, 0xF6, 0xCF, 0xD6, 0x7E, 0xE5, 0x5B, 0x6B, 0x0D, 0x46, 0xDE, 0xDC, 0xBF, 0x2D, 0x80,
0xBA, 0x06, 0xE7, 0x75, 0xF4, 0xAE, 0xA0, 0x79, 0x2D, 0x15, 0x90, 0x68, 0x2E, 0x2B, 0x4C, 0x8B,
0x24, 0x01, 0xA5, 0x1E, 0x28, 0x30, 0x51, 0xFD, 0xE5, 0x71, 0x35, 0xA6, 0xAD, 0x3A, 0x2F, 0x1A,
0x1C, 0x86, 0x49, 0xB1, 0x57, 0x4E, 0x25, 0x69, 0xB0, 0xF1, 0xA7, 0x4A, 0x5A, 0xE9, 0xB4, 0x9D,
0x91, 0x1B, 0xCC, 0x1B, 0xAA, 0xEF, 0x1B, 0xDF, 0x4D, 0xF2, 0xBA, 0x29, 0x48, 0x9B, 0xEF, 0x14,
0xDE, 0x83, 0xED, 0xAC, 0x44, 0x99, 0x31, 0x5B, 0x87, 0xB1, 0x62, 0x65, 0x0A, 0x6E, 0xA6, 0x97,
0x2A, 0x61, 0xBC, 0x08, 0x63, 0xB0, 0x84, 0xDB, 0x7F, 0x7D, 0x64, 0xD7, 0x8B, 0xD4, 0x5B, 0xB1,
0x4C, 0xC1, 0x21, 0x37, 0xC6, 0x77, 0x37, 0x64, 0x2E, 0x98, 0xB1, 0x8E, 0xD3, 0x84, 0x7B, 0x9C,
0xB5, 0x8D, 0xCE, 0x2D, 0x16, 0xAD, 0xB6, 0x3B, 0xEC, 0x01, 0x80, 0xE9, 0x59, 0xE7, 0xF6, 0x6F,
0xD1, 0xE0, 0x2A, 0x09, 0xBC, 0xB2, 0xFE, 0x45, 0x46, 0x54, 0x54, 0x63, 0x17, 0xE1, 0x15, 0x0B,
0x26, 0x9F, 0xF4, 0x30, 0x0E, 0xD8, 0x15, 0x56, 0xDC, 0x8C, 0xB2, 0x10, 0x4C, 0xBC, 0xB0, 0xBE,
0x3C, 0xA1, 0x12, 0x31, 0x38, 0x2D, 0x34, 0x18, 0x93, 0x4A, 0x71, 0x2E, 0xD7, 0x20, 0xDE, 0xA3,
0xB9, 0x2C, 0x22, 0x48, 0x34, 0xA8, 0xA8, 0xB6, 0xB3, 0x12, 0xBB, 0xDD, 0x5A, 0x4D, 0x42, 0x9C,
0x8E, 0x14, 0x95, 0xF2, 0x7F, 0x70, 0xC1, 0x9B, 0x72, 0x4D, 0xB5, 0xEA, 0xA2, 0x69, 0xD4, 0x2B,
0x8F, 0xB5, 0xAA, 0x64, 0xB5, 0x53, 0x16, 0xF9, 0xF7, 0xD1, 0xCA, 0xEE, 0x7D, 0xE4, 0xF8, 0x58,
0xA0, 0x30, 0xA7, 0xBC, 0x30, 0x51, 0xA9, 0xCF, 0x62, 0x09, 0xCA, 0x44, 0x28, 0x30, 0x6A, 0xB9,
0x94, 0xD5, 0x99, 0x6C, 0xD7, 0xBA, 0x05, 0x1C, 0xD6, 0x1E, 0x54, 0x8D, 0x77, 0xA8, 0xE3, 0xDB,
0x05, 0xC3, 0x9F, 0x5C, 0x0F, 0x58, 0xC9, 0xAD, 0x58, 0x89, 0x25, 0x27, 0x9C, 0x14, 0xC9, 0x2F,
0xFE, 0xEC, 0xE2, 0x62, 0xE1, 0xCF, 0xBE, 0xE2, 0xEC, 0x03, 0xD5, 0x57, 0x2B, 0x4F, 0x2E, 0xF0,
0x27, 0x17, 0xAF, 0x5E, 0x81, 0x36, 0xA4, 0x74, 0x79, 0x6F, 0xD3, 0xC4, 0x07, 0xB9, 0xF4, 0xD2,
0x68, 0x9C, 0x6E, 0x9F, 0xAD, 0x1E, 0xBE, 0x94, 0x6D, 0x71, 0x3E, 0x73, 0xB7, 0x0F, 0x3C, 0xB7,
0xA9, 0x5B, 0xA3, 0xE8, 0xEB, 0xBB, 0xD5, 0x47, 0x31, 0x99, 0x9F, 0x32, 0x16, 0x2B, 0x90, 0xED,
0x03, 0x7D, 0x51, 0xB8, 0x1E, 0x0E, 0x86, 0x7B, 0xE9, 0xE9, 0xB9, 0xE2, 0xED, 0x49, 0x4F, 0x3C,
0xC9, 0x3D, 0xE9, 0x89, 0xE7, 0xBA, 0xF4, 0xB4, 0xE9, 0x24, 0x08, 0x2F, 0x14, 0x3F, 0xF2, 0xB2,
0x6C, 0xAA, 0x12, 0x4C, 0xA8, 0xB3, 0x13, 0x7A, 0x2A, 0xA5, 0x10, 0xE9, 0x54, 0x45, 0x5A, 0x6C,
0x4B, 0xE1, 0x17, 0x88, 0xBC, 0x7C, 0xB0, 0x38, 0x39, 0xA9, 0xCA, 0x32, 0x65, 0x8B, 0xA9, 0xBA,
0xE4, 0x7C, 0x9D, 0x8D, 0x7B, 0xBD, 0xCB, 0xCB, 0xCB, 0xEE, 0x59, 0xC8, 0x97, 0x9B, 0x39, 0x9C,
0x4F, 0x57, 0xBD, 0x68, 0xE3, 0xEB, 0xE2, 0x6B, 0xEF, 0xD9, 0xE9, 0x1B, 0xFB, 0x69, 0x8F, 0x83,
0xE8, 0x3D, 0xAB, 0x6B, 0xAA, 0x0A, 0x07, 0xEB, 0x64, 0x7C, 0xAA, 0xFE, 0x01, 0xB9, 0x7D, 0xFC,
0x11, 0x66, 0xC8, 0x2E, 0xCE, 0x8A, 0x39, 0xD9, 0x0A, 0x18, 0xD3, 0x96, 0xC9, 0x2F, 0x17, 0x21,
0xBB, 0xFC, 0x21, 0xB9, 0x9A, 0xAA, 0x78, 0x60, 0x30, 0x6D, 0x03, 0x3E, 0x2C, 0xC3, 0x00, 0xAA,
0x33, 0xA5, 0xC0, 0xBD, 0xA9, 0x4A, 0xB7, 0x11, 0x62, 0x5F, 0xDF, 0xD0, 0x70, 0x40, 0x07, 0x94,
0xE5, 0x45, 0xAC, 0x6D, 0x6A, 0x8A, 0x6E, 0x76, 0x60, 0xF8, 0xDA, 0xE3, 0x4B, 0x25, 0x98, 0xAA,
0xAF, 0x06, 0xC8, 0xC2, 0x1C, 0x3A, 0xE7, 0xB6, 0x0D, 0x1C, 0x87, 0x8E, 0xA2, 0xF7, 0x23, 0xDB,
0x85, 0x51, 0x7D, 0x2B, 0xEA, 0xC3, 0xE5, 0xDC, 0x19, 0xC1, 0xA7, 0xA3, 0x8C, 0xA0, 0xC7, 0x1E,
0x61, 0x93, 0x15, 0x99, 0xB6, 0xA3, 0xB8, 0xC6, 0xF9, 0xC0, 0x54, 0x74, 0xC7, 0x55, 0x4C, 0x03,
0xBA, 0x4C, 0xA3, 0x1F, 0xE9, 0xAE, 0x01, 0x37, 0xB6, 0x13, 0xD9, 0xC0, 0xE4, 0xDC, 0x82, 0xA1,
0x8E, 0xA3, 0xD8, 0x40, 0x3E, 0xB2, 0x23, 0x18, 0x3A, 0x88, 0x80, 0x27, 0x30, 0x71, 0xCF, 0xB1,
0xC7, 0x56, 0xE0, 0x73, 0x68, 0x9F, 0x03, 0x89, 0x8D, 0x93, 0xC2, 0x17, 0x27, 0xD2, 0xE5, 0x08,
0xB8, 0x81, 0xF1, 0xE7, 0xF0, 0x15, 0x46, 0x8E, 0x70, 0x62, 0x62, 0xA2, 0x23, 0xE3, 0x48, 0xCE,
0x72, 0x8E, 0x73, 0xEB, 0x28, 0x43, 0x29, 0x00, 0x09, 0x66, 0x46, 0xC8, 0xCD, 0x3E, 0xC7, 0xD9,
0x75, 0x94, 0x42, 0x8A, 0xAE, 0x93, 0xEC, 0xBA, 0x58, 0x9C, 0xA9, 0x9C, 0xA3, 0x0C, 0x62, 0x5E,
0x14, 0x57, 0xA7, 0xF5, 0xE3, 0x97, 0x3E, 0x8D, 0x81, 0x21, 0x48, 0x61, 0x9D, 0xA3, 0x00, 0xB0,
0x7E, 0xE4, 0x22, 0x98, 0xD8, 0x62, 0x1E, 0xDD, 0x35, 0xCF, 0xF5, 0x81, 0xA1, 0xA0, 0x14, 0x28,
0x01, 0x0A, 0xE0, 0xE2, 0x9E, 0x38, 0x28, 0x27, 0x30, 0x84, 0xA9, 0x1D, 0x14, 0xC4, 0x55, 0x50,
0x74, 0x4B, 0x19, 0x44, 0x34, 0x2F, 0xAC, 0x5F, 0x1F, 0x28, 0x0E, 0xAC, 0x73, 0x00, 0xEA, 0x86,
0xF5, 0xC3, 0xC4, 0x70, 0x07, 0x2A, 0xA2, 0xCE, 0x08, 0x06, 0x9E, 0x9B, 0x36, 0xB2, 0x15, 0x94,
0xB6, 0x22, 0x34, 0x8B, 0x4B, 0x76, 0x86, 0x0A, 0x2C, 0x18, 0x66, 0xA2, 0xD9, 0x4C, 0xA0, 0x84,
0x9E, 0x08, 0xA5, 0x84, 0x99, 0x60, 0x3E, 0x21, 0x23, 0xF4, 0x46, 0xB4, 0x02, 0x68, 0x46, 0x35,
0xE3, 0x9A, 0x3E, 0xD1, 0x46, 0xBB, 0xA0, 0xD0, 0x73, 0xDD, 0x1D, 0xE1, 0x4A, 0x49, 0xD5, 0x03,
0x9B, 0xC3, 0x2F, 0x29, 0xA4, 0xDB, 0xE7, 0xE5, 0x5D, 0xDE, 0x89, 0x57, 0xB8, 0x40, 0x87, 0x68,
0xD7, 0xCB, 0x3B, 0xD1, 0xF5, 0x09, 0x6C, 0xA9, 0x87, 0xC6, 0x04, 0x97, 0x33, 0xF8, 0x05, 0xE3,
0x9D, 0x29, 0x27, 0x90, 0xB8, 0xC5, 0x85, 0x7F, 0xE4, 0x47, 0x56, 0x75, 0xF6, 0x3C, 0x4C, 0x57,
0x97, 0x90, 0xE0, 0xC1, 0x30, 0x18, 0x00, 0xA3, 0x3D, 0xF8, 0x45, 0x67, 0xFA, 0x7C, 0x87, 0xD2,
0x7F, 0x7D, 0xF6, 0xC3, 0xFB, 0x17, 0x5F, 0x99, 0x5B, 0x41, 0xDE, 0x76, 0xEE, 0x5A, 0xC8, 0x71,
0x60, 0x74, 0xD1, 0xFA, 0x2C, 0x54, 0xAD, 0x03, 0xCA, 0xEF, 0x8F, 0xB8, 0x69, 0x0E, 0xB0, 0xCD,
0xC5, 0xB6, 0x91, 0x83, 0xB7, 0x23, 0xD8, 0x01, 0x97, 0x2E, 0x8E, 0x55, 0x74, 0xA1, 0xE9, 0xF5,
0x87, 0xA4, 0xF0, 0xE2, 0x0E, 0x0D, 0x97, 0x3A, 0xF5, 0x81, 0x2B, 0x09, 0xF5, 0x82, 0x85, 0x5E,
0x65, 0xAC, 0xE7, 0xB3, 0xC1, 0x76, 0x8D, 0x0A, 0x11, 0xE4, 0x17, 0xAB, 0x18, 0x41, 0x03, 0x88,
0x4C, 0x50, 0x11, 0xB3, 0x51, 0xCE, 0x7F, 0x24, 0xA6, 0xCC, 0x19, 0x2A, 0x24, 0x44, 0x7E, 0x25,
0x51, 0xA9, 0x0B, 0x64, 0x1F, 0xF5, 0x15, 0x9E, 0xD3, 0x56, 0xF8, 0xC9, 0x29, 0x84, 0x16, 0x70,
0xD6, 0x4F, 0xAF, 0x5C, 0xD7, 0x85, 0xBE, 0x11, 0xB9, 0x38, 0x7A, 0xB9, 0x09, 0xF6, 0x6A, 0x71,
0x12, 0x90, 0x90, 0xA3, 0x3F, 0x44, 0x7B, 0x06, 0xA1, 0x46, 0x88, 0x10, 0xA6, 0x85, 0xFE, 0x06,
0xBA, 0xB1, 0x60, 0x10, 0x7E, 0xE0, 0x37, 0x71, 0x83, 0x57, 0xE8, 0x81, 0xDB, 0x73, 0x9C, 0x44,
0xB1, 0xC0, 0x40, 0x4D, 0x50, 0xBB, 0x62, 0x8E, 0x14, 0x87, 0xA6, 0x03, 0x99, 0x87, 0xB8, 0x74,
0x18, 0xA1, 0x0F, 0x81, 0xD9, 0x00, 0x01, 0x6D, 0x80, 0x5C, 0x5D, 0x00, 0x11, 0x13, 0x6D, 0x7E,
0xA0, 0x08, 0xA8, 0x31, 0x70, 0x2F, 0xE0, 0x0A, 0x22, 0x9E, 0x5B, 0x88, 0x44, 0xE0, 0xA8, 0x43,
0x00, 0x05, 0x93, 0x23, 0xA1, 0x6B, 0xF1, 0x91, 0xD8, 0x18, 0x13, 0x56, 0x87, 0xE0, 0xE1, 0xE2,
0xE2, 0x6C, 0x9B, 0x14, 0x8B, 0x93, 0xC9, 0x2F, 0x96, 0x43, 0xFD, 0xD4, 0x4D, 0x14, 0x2E, 0x7A,
0xCC, 0xD0, 0x10, 0x57, 0xE0, 0x38, 0x84, 0x89, 0xCE, 0x4D, 0xF0, 0x64, 0x50, 0x99, 0xE2, 0xE4,
0x7A, 0x75, 0xA0, 0xF7, 0x5C, 0x1F, 0x11, 0x1E, 0xA3, 0x50, 0xB0, 0x12, 0x77, 0xF4, 0xE9, 0x95,
0x03, 0x50, 0x30, 0xB4, 0x86, 0x80, 0x2A, 0x88, 0x26, 0x12, 0x15, 0xE9, 0x97, 0x76, 0xD4, 0xC6,
0x59, 0x68, 0xF3, 0x89, 0xDE, 0x06, 0x52, 0xDC, 0x09, 0x5C, 0x96, 0x09, 0x48, 0x82, 0x4B, 0xB3,
0x15, 0x9B, 0xEC, 0xC4, 0x34, 0xB9, 0x8D, 0x9B, 0x62, 0x0E, 0x23, 0xE0, 0x05, 0x78, 0x02, 0x93,
0xA2, 0xFE, 0x51, 0x44, 0x14, 0x1C, 0xA4, 0x18, 0xC8, 0x5B, 0x42, 0x4F, 0x04, 0x50, 0x00, 0x0B,
0x10, 0x07, 0x26, 0x25, 0x69, 0x75, 0x0B, 0x54, 0x6D, 0x70, 0xDD, 0xB6, 0x50, 0x9F, 0x0F, 0x72,
0xFE, 0x17, 0x78, 0x16, 0x5C, 0xC0, 0x81, 0xEE, 0x2F, 0xF0, 0xFE, 0xDE, 0x65, 0xF8, 0x31, 0xFC,
0x3A, 0x7C, 0xDE, 0x1C, 0x0E, 0xCF, 0x71, 0xFF, 0x0C, 0xB0, 0x3C, 0x50, 0x9F, 0xD3, 0x47, 0x13,
0x71, 0x1D, 0x61, 0x80, 0x00, 0xA8, 0x96, 0x4D, 0x86, 0x87, 0x7B, 0xD6, 0x17, 0x0E, 0xE9, 0x70,
0xBD, 0x72, 0x5B, 0x19, 0xA0, 0x57, 0xE8, 0xF4, 0x92, 0x1B, 0xDD, 0x8A, 0x3B, 0x31, 0x80, 0xFA,
0x91, 0x4E, 0x92, 0x11, 0x37, 0x64, 0x56, 0xDC, 0x94, 0x9D, 0x25, 0x45, 0xCE, 0xE5, 0xD3, 0xAB,
0x3E, 0xF8, 0xCF, 0xC8, 0x81, 0x68, 0x66, 0x51, 0x60, 0x00, 0x27, 0xD2, 0xFB, 0x12, 0xEB, 0x75,
0x0B, 0x5D, 0x02, 0x0C, 0x5D, 0xDA, 0x19, 0xD9, 0x98, 0x08, 0x1B, 0x12, 0x65, 0xD0, 0x06, 0xD1,
0x45, 0xC1, 0x5B, 0x2D, 0xBA, 0x2C, 0x4D, 0xDB, 0x3C, 0xB7, 0x91, 0x8F, 0x02, 0x46, 0x66, 0x9A,
0xE7, 0x03, 0xEC, 0xB0, 0xC8, 0xF5, 0x5D, 0x21, 0x92, 0x7B, 0x6E, 0xA1, 0xCE, 0x6D, 0xE2, 0x65,
0xE2, 0x0C, 0x26, 0xDD, 0x5A, 0x30, 0x05, 0xF1, 0x82, 0x89, 0x87, 0x98, 0x17, 0xC0, 0x5A, 0xD1,
0x7E, 0x21, 0x62, 0x9A, 0x14, 0xB2, 0xC8, 0xD3, 0x50, 0x49, 0x64, 0xF9, 0x84, 0x85, 0x38, 0x29,
0xB1, 0xD0, 0xD1, 0x61, 0xCD, 0x21, 0x2A, 0x45, 0xF8, 0x23, 0xC2, 0x1C, 0x39, 0x08, 0xF4, 0x81,
0xFC, 0x0E, 0x7A, 0x0E, 0x08, 0xAC, 0x50, 0x23, 0x4A, 0xCF, 0x49, 0x28, 0x1D, 0x86, 0x2F, 0x4D,
0xC8, 0x44, 0xC4, 0x9E, 0x29, 0x2E, 0xB7, 0x49, 0x52, 0x1B, 0x41, 0xC3, 0x71, 0xB9, 0x85, 0x73,
0x0D, 0x51, 0x87, 0x00, 0xE8, 0x06, 0x88, 0x87, 0x88, 0x00, 0x1B, 0xEC, 0xDA, 0x0A, 0x27, 0xA4,
0x00, 0x1C, 0x04, 0x0D, 0xE1, 0x28, 0x9B, 0xD4, 0x3F, 0x00, 0xA7, 0x72, 0xB1, 0x05, 0xF1, 0x07,
0xE2, 0xEE, 0x10, 0xD8, 0x18, 0xC6, 0x12, 0xA4, 0x31, 0x40, 0x02, 0x83, 0x16, 0x32, 0x2C, 0xE4,
0x17, 0xD0, 0x04, 0x9F, 0x17, 0x34, 0x80, 0x56, 0xA3, 0x14, 0x8D, 0xBC, 0x18, 0xB9, 0xC4, 0x5E,
0xA2, 0xA6, 0x26, 0xEC, 0x1B, 0x92, 0x2B, 0x03, 0xA5, 0x20, 0x34, 0x0D, 0x1A, 0x48, 0x4D, 0x12,
0xF3, 0xE0, 0xF7, 0x41, 0x3E, 0xFA, 0x33, 0x8B, 0xD6, 0x3B, 0xDC, 0x53, 0xA1, 0x7C, 0x79, 0xAA,
0x56, 0x0E, 0x9F, 0x95, 0x12, 0x12, 0x25, 0xF5, 0xAA, 0x12, 0x82, 0x0B, 0x3C, 0xFF, 0xF5, 0xDF,
0xCF, 0xDE, 0x9E, 0xBE, 0x78, 0xFD, 0x8B, 0x3A, 0xFB, 0xB7, 0xD9, 0xB5, 0xBB, 0xA6, 0xE0, 0xD0,
0xC3, 0xA4, 0xB9, 0x27, 0x5E, 0x8E, 0x3B, 0xE9, 0x41, 0xA2, 0xBD, 0x33, 0xDB, 0x16, 0xA5, 0xA8,
0xD9, 0xC9, 0xD2, 0x22, 0x5E, 0xAF, 0x4E, 0x7F, 0x42, 0xD1, 0x97, 0x16, 0x7C, 0xE4, 0x5D, 0x7B,
0x68, 0x69, 0xFC, 0xE9, 0x9B, 0x17, 0xCF, 0x9F, 0x9F, 0xAA, 0xDB, 0xDD, 0xF9, 0x3B, 0x39, 0x90,
0x7F, 0x40, 0xEB, 0x52, 0x79, 0x1E, 0x46, 0x2C, 0xBB, 0xCE, 0x38, 0x5B, 0xED, 0xE1, 0x47, 0x67,
0x2B, 0x60, 0x44, 0xE5, 0x38, 0x85, 0xCA, 0x71, 0x2A, 0x56, 0x66, 0xC4, 0x3C, 0x54, 0x8A, 0x13,
0x35, 0x21, 0x55, 0x89, 0xBD, 0x15, 0x74, 0xAE, 0xAE, 0xB1, 0x31, 0xFB, 0xED, 0x77, 0x55, 0x59,
0x6D, 0x22, 0x1E, 0xAE, 0x51, 0x59, 0xF9, 0x9D, 0x0A, 0xEA, 0x16, 0x9C, 0x4A, 0x84, 0x53, 0x2A,
0x4F, 0xBB, 0x55, 0x39, 0x83, 0x28, 0xEB, 0x89, 0x39, 0x6A, 0x95, 0x3E, 0x55, 0x49, 0x62, 0x3F,
0x0A, 0xFD, 0x8F, 0xB0, 0x46, 0x16, 0x07, 0x38, 0x55, 0xBB, 0x33, 0x01, 0xFC, 0xF2, 0xA2, 0x0D,
0xD0, 0xBD, 0xA7, 0xB1, 0xEA, 0xEC, 0x28, 0x9E, 0x67, 0xEB, 0x89, 0xF8, 0x3C, 0x59, 0xA7, 0xC9,
0x59, 0x8A, 0x4F, 0xC7, 0xE4, 0xCE, 0x5D, 0x84, 0x59, 0x38, 0x0F, 0xA3, 0x90, 0x5F, 0x8F, 0x97,
0x61, 0x10, 0xB0, 0x38, 0x17, 0x7D, 0x9D, 0x9E, 0x89, 0x29, 0xE9, 0x06, 0x4E, 0x51, 0x74, 0xD0,
0x21, 0x9B, 0x91, 0x2C, 0xE0, 0x7C, 0x94, 0x8A, 0xDF, 0x1D, 0x7B, 0xB6, 0x4F, 0x75, 0x72, 0xAF,
0xC5, 0x61, 0x29, 0x87, 0x60, 0x3A, 0x3F, 0x3D, 0x44, 0x15, 0xB5, 0x75, 0xFF, 0x98, 0xAC, 0x56,
0x70, 0xD4, 0x6B, 0xB7, 0xF0, 0xCD, 0xB8, 0x96, 0xD6, 0xF2, 0xA2, 0xA8, 0x55, 0x51, 0xC3, 0x5B,
0xB6, 0x00, 0x69, 0x97, 0x6A, 0x69, 0xB4, 0xD5, 0x59, 0x51, 0xCE, 0x82, 0xDB, 0x8F, 0x29, 0x03,
0x3C, 0x0F, 0xC2, 0xB4, 0xDD, 0x51, 0x1B, 0x61, 0xA7, 0x16, 0x32, 0x1C, 0xA3, 0x8C, 0x18, 0x78,
0x5F, 0x0B, 0x18, 0x0E, 0xFE, 0x83, 0xF1, 0x29, 0xD8, 0x81, 0x02, 0x6D, 0x7D, 0x55, 0xB9, 0x46,
0xDD, 0xA9, 0x39, 0xB5, 0x5D, 0xA1, 0xB6, 0xE0, 0x3E, 0x85, 0x41, 0x16, 0x5C, 0xAE, 0xE9, 0x02,
0xBB, 0x18, 0x4D, 0x55, 0x59, 0x32, 0x54, 0x7B, 0x25, 0x1F, 0x1C, 0x7A, 0x4D, 0xEC, 0xF2, 0xC0,
0xD5, 0xAF, 0xC4, 0xAD, 0xFE, 0x9D, 0x7C, 0xD0, 0x31, 0x91, 0x8F, 0x29, 0x04, 0xB2, 0xE0, 0x52,
0x14, 0x4A, 0xA1, 0xD5, 0x95, 0x5F, 0x2F, 0x25, 0x47, 0x17, 0x36, 0x5B, 0x32, 0xA1, 0x9A, 0xAB,
0x3A, 0x3B, 0x06, 0x05, 0x02, 0x0F, 0x09, 0x15, 0xD2, 0x45, 0x8A, 0x38, 0x8D, 0x8A, 0x44, 0x73,
0x11, 0x85, 0xC1, 0x42, 0x7D, 0xF2, 0x6B, 0x63, 0x78, 0xE3, 0xE8, 0x9C, 0xD3, 0x22, 0x1A, 0x15,
0x94, 0xF8, 0xEA, 0x58, 0x6E, 0xBC, 0x55, 0xEA, 0x1A, 0x66, 0x88, 0x83, 0xB8, 0xA4, 0x10, 0x5F,
0x6A, 0x6F, 0x8C, 0xAA, 0xB9, 0x9D, 0x97, 0x45, 0x65, 0x34, 0x42, 0x71, 0xBC, 0x27, 0x23, 0x5C,
0x56, 0xCD, 0xE1, 0x1D, 0x58, 0x19, 0xF0, 0x5E, 0x62, 0xFB, 0xEC, 0x17, 0xF0, 0x83, 0xE2, 0xCB,
0x29, 0x68, 0x29, 0xFF, 0x52, 0x33, 0xA0, 0x46, 0x9B, 0x5C, 0x11, 0xB5, 0x4A, 0x49, 0xE5, 0x64,
0xE8, 0x00, 0x05, 0x4E, 0xFC, 0x81, 0xB6, 0x4A, 0xE3, 0x44, 0x8D, 0xE1, 0x30, 0x06, 0xCA, 0xAA,
0x8D, 0xF0, 0xC7, 0x8C, 0x7B, 0x7C, 0x93, 0x95, 0x1A, 0xDD, 0xFA, 0xBC, 0x8F, 0x37, 0x96, 0xC8,
0x27, 0x4F, 0x5E, 0xCA, 0xFB, 0x75, 0x00, 0xB6, 0x7F, 0x07, 0xF0, 0xD5, 0xBC, 0x77, 0x2F, 0x0E,
0x5E, 0xEE, 0x45, 0xC1, 0x8A, 0xBD, 0x3C, 0x0E, 0xF9, 0x80, 0xF7, 0x16, 0x06, 0x08, 0x9C, 0xDB,
0x46, 0x3F, 0x5C, 0x4F, 0x75, 0xC6, 0x87, 0x40, 0xDF, 0xE2, 0xB2, 0x00, 0x3F, 0xBC, 0xDD, 0x0D,
0x7F, 0x05, 0x67, 0x0A, 0x9A, 0x38, 0xDC, 0x4F, 0x36, 0x18, 0x8F, 0x70, 0x98, 0x8C, 0x95, 0x7B,
0xA2, 0x5C, 0xA9, 0x66, 0xE1, 0x33, 0x67, 0xA0, 0x0E, 0xEF, 0x8C, 0x15, 0xC6, 0x4F, 0x35, 0xAA,
0xFA, 0xC6, 0xD5, 0xCA, 0x56, 0xBB, 0xBA, 0x44, 0x5D, 0x12, 0x7A, 0x96, 0xF6, 0xEC, 0x05, 0x2C,
0x87, 0x87, 0x8B, 0xD0, 0xA7, 0xEA, 0x39, 0x04, 0x4B, 0x7B, 0x87, 0x75, 0x94, 0xF5, 0x42, 0x55,
0xAC, 0x61, 0x56, 0x0B, 0xFF, 0xA2, 0x1B, 0x5D, 0x5E, 0x55, 0x8A, 0x64, 0x77, 0xF6, 0x3E, 0x03,
0x37, 0x92, 0xCB, 0x6B, 0xC4, 0xAF, 0xEA, 0x5B, 0x22, 0xF9, 0x16, 0x0A, 0xF2, 0x62, 0x91, 0x7F,
0xE0, 0x83, 0x93, 0x3F, 0x44, 0x63, 0x2D, 0x77, 0xC0, 0x1A, 0x6C, 0xA9, 0xB6, 0x65, 0x7A, 0x7F,
0x81, 0xDE, 0x40, 0xDF, 0x25, 0x78, 0xF7, 0x03, 0x84, 0x5A, 0x4B, 0x92, 0xAA, 0x60, 0x79, 0xDB,
0xDD, 0xC2, 0xCD, 0x77, 0xE5, 0x1B, 0xD5, 0xEA, 0x6A, 0x23, 0x43, 0xC8, 0x0D, 0x76, 0x9F, 0xAD,
0x97, 0xC1, 0x6C, 0x33, 0x5F, 0x85, 0xFC, 0x2D, 0x3B, 0xDF, 0xB0, 0x8C, 0x63, 0x08, 0x92, 0xA6,
0x2C, 0xDA, 0x77, 0x7A, 0x7C, 0xE6, 0x03, 0xCC, 0xF1, 0xD9, 0x85, 0x97, 0x2A, 0xFE, 0x26, 0xC5,
0x27, 0x64, 0x88, 0xA1, 0x53, 0xB5, 0xA7, 0x4E, 0x16, 0x9B, 0x98, 0x9E, 0xC0, 0x81, 0x51, 0x5F,
0xCC, 0x3D, 0x08, 0x69, 0x37, 0x38, 0x0A, 0xD8, 0x55, 0xBC, 0x58, 0xD5, 0xF8, 0xB4, 0x42, 0xD7,
0xCD, 0xD6, 0xE0, 0x0E, 0x6D, 0xA0, 0xEE, 0x68, 0x31, 0x32, 0xD1, 0xC2, 0xA9, 0x39, 0x01, 0x0D,
0xB6, 0xD9, 0x31, 0xD2, 0x05, 0x72, 0x0D, 0x2D, 0x11, 0x14, 0x5B, 0x4A, 0x21, 0xFB, 0x07, 0xB5,
0x3A, 0x7D, 0xAB, 0xD7, 0x9A, 0x28, 0xFB, 0x43, 0xF3, 0x07, 0x75, 0xD6, 0x23, 0xCF, 0x50, 0x27,
0xE1, 0x09, 0xEF, 0x46, 0x2C, 0x3E, 0xE3, 0x90, 0x05, 0x4F, 0x3A, 0x7B, 0x66, 0xD9, 0x33, 0x89,
0x7A, 0xDC, 0x8E, 0x8F, 0xA7, 0xFC, 0xB7, 0xF0, 0xF7, 0x63, 0x94, 0xF8, 0x58, 0xBD, 0x6B, 0x52,
0xF5, 0x58, 0x0C, 0x2E, 0x1C, 0x57, 0x4A, 0xA1, 0x85, 0xC7, 0xC7, 0x93, 0x94, 0xF1, 0x4D, 0x1A,
0x2B, 0x24, 0x42, 0xD5, 0x61, 0xD5, 0xDB, 0x42, 0x91, 0x60, 0x73, 0xD9, 0xF2, 0x8F, 0x10, 0x8C,
0x09, 0x94, 0x29, 0xC6, 0xAB, 0x79, 0x78, 0x6E, 0xF5, 0xAD, 0x16, 0x84, 0xD5, 0x96, 0x09, 0x17,
0x08, 0xC4, 0xAD, 0x41, 0x0B, 0x03, 0x31, 0x5E, 0x44, 0x60, 0x68, 0x59, 0xFD, 0x56, 0x1E, 0xAD,
0x5B, 0xC3, 0x96, 0xB4, 0xAF, 0x16, 0x06, 0xD8, 0x71, 0xCA, 0x82, 0x49, 0x4B, 0xE9, 0x81, 0x20,
0xDB, 0xEC, 0x76, 0x33, 0xB0, 0xEA, 0x0C, 0x28, 0x40, 0x6F, 0xB1, 0xB0, 0x0D, 0xC1, 0xC2, 0xDD,
0x23, 0xD1, 0x60, 0x58, 0x32, 0x04, 0x6C, 0xBB, 0x5B, 0x26, 0xAB, 0xCE, 0xD0, 0x34, 0x04, 0x47,
0xBC, 0x4A, 0x96, 0x6E, 0x95, 0xA5, 0x73, 0x6F, 0x8E, 0xD6, 0x68, 0x27, 0x07, 0xFB, 0x3E, 0xAB,
0x74, 0x04, 0x0B, 0xC7, 0x16, 0x42, 0x0D, 0x85, 0x4C, 0xC3, 0x82, 0x61, 0x85, 0xDF, 0xE0, 0x5E,
0x0C, 0x07, 0x5F, 0x9A, 0xA1, 0xFB, 0x25, 0x18, 0x8A, 0xA4, 0x0B, 0xD9, 0x96, 0x79, 0x68, 0xCB,
0x72, 0x2A, 0x26, 0x01, 0xF7, 0x79, 0x1E, 0xDA, 0xA2, 0xD3, 0xA0, 0x85, 0x95, 0x33, 0xB7, 0x35,
0xFB, 0x92, 0x26, 0xFA, 0xB9, 0xF6, 0xF9, 0x65, 0x8D, 0xF3, 0x0B, 0x5B, 0xE6, 0xE7, 0x9A, 0xE5,
0x97, 0xB5, 0xC9, 0x2F, 0x6B, 0x90, 0x7F, 0x89, 0x35, 0x96, 0xD0, 0x88, 0x8F, 0x08, 0x9B, 0xC8,
0x78, 0x5F, 0x43, 0xB5, 0x1C, 0xF8, 0xD7, 0x2A, 0xCA, 0x65, 0xAD, 0x57, 0x43, 0xCD, 0x56, 0x5E,
0x5A, 0x9A, 0xAB, 0xBC, 0x1C, 0x6A, 0xA6, 0x4D, 0x9F, 0x86, 0xF2, 0xD2, 0x94, 0x17, 0x57, 0x33,
0x4D, 0x71, 0xE9, 0x8B, 0xC6, 0x01, 0x5C, 0x0C, 0xBA, 0x8C, 0x34, 0x73, 0x48, 0x9F, 0x23, 0x6A,
0xB2, 0x60, 0xB8, 0x25, 0x2F, 0x96, 0x66, 0xBA, 0x74, 0x71, 0xA9, 0x6D, 0x80, 0x5C, 0x07, 0xCA,
0x27, 0x5C, 0x60, 0x9A, 0x7C, 0x84, 0x15, 0x52, 0xB1, 0xA3, 0x25, 0x4E, 0x3C, 0x2D, 0x5A, 0xE9,
0xCE, 0x85, 0x8A, 0xCC, 0xF6, 0x0F, 0x3C, 0x23, 0xB2, 0xCE, 0x4D, 0x25, 0x1E, 0x1D, 0x4F, 0x19,
0x86, 0x21, 0xAD, 0x1A, 0x81, 0x54, 0xCA, 0xF2, 0x35, 0x15, 0x22, 0x90, 0xDA, 0x29, 0x79, 0xF8,
0xC9, 0x0A, 0xDF, 0x66, 0x39, 0x85, 0x23, 0x4A, 0x7C, 0x96, 0xB5, 0x99, 0xC6, 0x73, 0xA5, 0xB5,
0xD9, 0x94, 0x75, 0x79, 0xF2, 0x32, 0xB9, 0x64, 0xE9, 0x8F, 0x5E, 0x06, 0x09, 0x6D, 0xE7, 0xA4,
0xCD, 0xA7, 0xBC, 0xD1, 0xF6, 0x44, 0x37, 0xC7, 0xFC, 0x84, 0x3D, 0x31, 0xC7, 0x46, 0xC9, 0x15,
0xDF, 0x24, 0xF0, 0xB8, 0xBF, 0xA4, 0x5C, 0x9B, 0xCE, 0x08, 0x28, 0x21, 0xC6, 0x7C, 0x38, 0xCD,
0xA9, 0x10, 0xCF, 0xBF, 0x31, 0x27, 0xE1, 0x02, 0xB8, 0xA9, 0xD5, 0x82, 0xC0, 0x29, 0x8D, 0x1C,
0x2B, 0xEA, 0x31, 0xEB, 0x0A, 0x2A, 0x8D, 0x1F, 0xD7, 0x87, 0xFC, 0x59, 0xFD, 0xF2, 0x2E, 0xE1,
0x5E, 0xA4, 0x88, 0xF7, 0x6F, 0x88, 0x88, 0x63, 0xC3, 0x61, 0x1A, 0x48, 0x19, 0x83, 0x2A, 0x09,
0xE4, 0x80, 0xC1, 0x61, 0x8A, 0xD7, 0xBE, 0xBF, 0x59, 0x8B, 0x17, 0x3F, 0x14, 0x95, 0x86, 0x9E,
0xAC, 0x18, 0x64, 0x56, 0xCA, 0x2A, 0x8C, 0xC1, 0x68, 0x5A, 0x94, 0x90, 0x0B, 0x5C, 0x58, 0x82,
0x55, 0x4D, 0x5B, 0x23, 0xB8, 0x13, 0xD9, 0x52, 0x0B, 0x67, 0x48, 0x0A, 0x7A, 0xC8, 0x0A, 0x60,
0x13, 0x89, 0x58, 0x9E, 0x25, 0x9B, 0xFD, 0xDF, 0xA9, 0x5A, 0x90, 0xF8, 0x9B, 0x15, 0xEC, 0x63,
0xF7, 0x8C, 0xF1, 0x67, 0x11, 0xC3, 0xDB, 0x1F, 0xAE, 0x5F, 0xC0, 0xFE, 0xC9, 0xB3, 0x56, 0xA7,
0x1B, 0xC6, 0x31, 0x4B, 0x7F, 0x7E, 0xF7, 0xEA, 0xE5, 0x94, 0x6B, 0xA4, 0x4E, 0xD8, 0xEA, 0x6F,
0xAA, 0xA9, 0x93, 0xD0, 0x74, 0x58, 0xCB, 0xA6, 0x20, 0x8B, 0xE1, 0x2F, 0xF0, 0x0D, 0x8E, 0xD7,
0x0B, 0xCC, 0xA9, 0xB4, 0x5A, 0x9F, 0x48, 0x7A, 0xAC, 0xCE, 0x84, 0x56, 0xC7, 0xD3, 0xDC, 0xD3,
0xAA, 0xAF, 0xAA, 0x1E, 0x48, 0x7D, 0x6A, 0x59, 0x1B, 0x0C, 0x61, 0x6D, 0x03, 0xD2, 0x18, 0xF3,
0x1E, 0x59, 0x10, 0x26, 0x58, 0x90, 0x0A, 0x55, 0x3C, 0xB6, 0xCC, 0x88, 0xC0, 0x34, 0x23, 0x4C,
0x72, 0x01, 0x1F, 0x5A, 0x33, 0x38, 0x12, 0x76, 0xBB, 0xE5, 0x09, 0x46, 0xBD, 0x85, 0x35, 0x4C,
0xAB, 0x0B, 0x3C, 0x3A, 0x6A, 0x83, 0x55, 0x19, 0x1D, 0x8D, 0xD1, 0xFB, 0x49, 0x59, 0x17, 0x04,
0xE7, 0xED, 0xDC, 0x20, 0xAB, 0x76, 0xBD, 0x65, 0xF2, 0x5D, 0x3C, 0x69, 0x69, 0x9C, 0x2E, 0x9D,
0xDB, 0x0E, 0xE5, 0x98, 0xA8, 0xC0, 0x68, 0x6A, 0x4C, 0xA2, 0x93, 0x9C, 0x9F, 0x50, 0xD2, 0x24,
0x3A, 0x3E, 0xEE, 0xA8, 0xBA, 0x09, 0x0A, 0x17, 0xF4, 0x6D, 0xD9, 0xFF, 0x5B, 0xF4, 0x7B, 0x17,
0xAB, 0x17, 0x1D, 0x10, 0x84, 0xB4, 0xF8, 0xEE, 0xED, 0x4C, 0x5A, 0x0B, 0x9D, 0xCA, 0x00, 0x7F,
0xAA, 0xA0, 0x53, 0xC1, 0xA2, 0x1D, 0xF8, 0xA3, 0xCC, 0x3E, 0xF0, 0x12, 0x82, 0x4C, 0xCD, 0x02,
0x08, 0xD1, 0x2C, 0x13, 0x81, 0xC8, 0xC2, 0xFB, 0x81, 0xB8, 0x0C, 0xA9, 0xCD, 0x44, 0xF0, 0x78,
0x69, 0x5A, 0xF2, 0xD3, 0x54, 0x70, 0x98, 0x79, 0x0F, 0x38, 0xC1, 0xD7, 0x97, 0x94, 0x2B, 0x53,
0x04, 0xE1, 0x6B, 0xBC, 0xB6, 0x94, 0x2B, 0x0B, 0x2E, 0x00, 0xBB, 0xD7, 0x16, 0x05, 0xC0, 0x06,
0x07, 0xF1, 0x55, 0x97, 0xC2, 0x9B, 0xAD, 0x5E, 0xBE, 0xC4, 0x82, 0x55, 0x5F, 0x72, 0x32, 0x24,
0x2B, 0x5B, 0xB0, 0x32, 0x8D, 0x7B, 0xF0, 0x82, 0x35, 0x6F, 0xF1, 0x71, 0x1A, 0x7C, 0x9C, 0x47,
0xF2, 0x71, 0x1B, 0x7C, 0xDC, 0x7B, 0xF0, 0xC9, 0x6B, 0x4B, 0x94, 0x96, 0xC3, 0x32, 0x5B, 0x27,
0xEF, 0x9E, 0xCA, 0xE3, 0xC0, 0x07, 0x79, 0x1E, 0xF8, 0x90, 0x07, 0x25, 0xB5, 0x78, 0x65, 0x67,
0x7D, 0x35, 0x51, 0xF1, 0x49, 0x91, 0x78, 0x34, 0xD4, 0x02, 0x07, 0x27, 0x44, 0xAE, 0x98, 0x09,
0xDA, 0xD9, 0x71, 0xAB, 0x78, 0x10, 0x24, 0x9E, 0x03, 0xD5, 0x0E, 0x70, 0x95, 0x62, 0x77, 0x0B,
0x67, 0x6E, 0x10, 0x6B, 0x2A, 0xBD, 0x8B, 0xD5, 0xC5, 0x3F, 0xF2, 0xEF, 0x9E, 0x7D, 0x02, 0x5B,
0x6C, 0x0C, 0x38, 0x3A, 0xAA, 0x8C, 0xD8, 0xEE, 0xFE, 0xF3, 0x4F, 0xF4, 0x15, 0xB3, 0x23, 0xF6,
0x4E, 0x1E, 0xE1, 0xB0, 0x90, 0xFE, 0xEE, 0xE9, 0x0C, 0xD6, 0x28, 0x56, 0xDB, 0xB0, 0x6B, 0x39,
0x56, 0x8C, 0xC8, 0xCD, 0xD7, 0xF8, 0xAE, 0x55, 0x95, 0xFB, 0x83, 0x2C, 0x50, 0x7E, 0x50, 0x2B,
0x58, 0xF1, 0x14, 0x82, 0x14, 0x67, 0x6D, 0x82, 0xC2, 0xBA, 0x0A, 0xD4, 0x56, 0x07, 0x0F, 0x42,
0xC8, 0xB9, 0x7A, 0x9A, 0xA9, 0x49, 0x85, 0xF3, 0x09, 0xA7, 0xC7, 0x0F, 0xF4, 0xA9, 0xD2, 0x3F,
0x03, 0xF0, 0xCF, 0xA0, 0xE9, 0x9F, 0x81, 0xF4, 0xCF, 0x69, 0xD3, 0x3F, 0x83, 0x2F, 0xEA, 0x9F,
0x15, 0xEF, 0x1C, 0x89, 0x1C, 0x60, 0x84, 0xD1, 0x1C, 0x32, 0x01, 0x08, 0xFA, 0xF2, 0xA3, 0x8F,
0x71, 0xDD, 0x41, 0x6F, 0x74, 0xD0, 0x7F, 0xFB, 0xE4, 0xC4, 0x16, 0x0D, 0xC5, 0x0B, 0x66, 0x03,
0xE8, 0xD2, 0x36, 0xD1, 0xF7, 0xE9, 0xD3, 0x12, 0x1E, 0x0D, 0xFD, 0xF7, 0x4B, 0x06, 0x4A, 0xE3,
0x54, 0x71, 0x5B, 0xEA, 0x87, 0x55, 0xA5, 0x30, 0xA3, 0x22, 0x75, 0xDA, 0x7E, 0x9B, 0xB0, 0x0A,
0xEB, 0x95, 0x7C, 0xA2, 0xB2, 0x5D, 0x41, 0xB9, 0x5D, 0x93, 0x7C, 0xBF, 0x1A, 0x7D, 0x35, 0xE3,
0xC8, 0xE5, 0x79, 0xB4, 0xAD, 0xEC, 0x9F, 0xFF, 0x51, 0xE6, 0xB2, 0x37, 0xA0, 0xE2, 0xB3, 0x9B,
0x6A, 0x34, 0x8D, 0x9F, 0xA8, 0xF8, 0xD4, 0x45, 0xA9, 0x39, 0x97, 0x12, 0x66, 0x10, 0xE8, 0xB3,
0x0C, 0xB4, 0xA6, 0x29, 0xEB, 0x08, 0xFF, 0xA0, 0x55, 0x11, 0xE5, 0x3F, 0x25, 0xE4, 0xEA, 0x58,
0xCD, 0x3D, 0xBD, 0xD5, 0x6B, 0xC9, 0x95, 0x29, 0xAD, 0x46, 0x55, 0xA5, 0x35, 0xFB, 0x29, 0x51,
0x78, 0xA2, 0xD0, 0x43, 0x60, 0x25, 0x2C, 0x9F, 0x30, 0x7B, 0xB3, 0x03, 0xE1, 0xBE, 0xAC, 0xCC,
0xD6, 0x23, 0xFE, 0x5E, 0x02, 0x2A, 0x58, 0xD7, 0xD6, 0x23, 0x6B, 0x2D, 0x65, 0x5A, 0x26, 0x7D,
0x11, 0x93, 0xC5, 0x24, 0x5E, 0x84, 0xE9, 0xAA, 0xAD, 0xFE, 0x28, 0x6E, 0x94, 0x00, 0xBB, 0x70,
0x4C, 0xB2, 0x40, 0x53, 0x13, 0xD9, 0x11, 0x38, 0x4B, 0x2D, 0x85, 0xA4, 0x41, 0x4C, 0xD5, 0xD8,
0x16, 0xCF, 0x3C, 0x07, 0x3D, 0xC4, 0x16, 0xC6, 0x80, 0x79, 0x25, 0xE9, 0xF5, 0x01, 0xDE, 0x30,
0xA6, 0xCE, 0xBE, 0xF2, 0x18, 0x44, 0xD6, 0x8C, 0xD6, 0x29, 0xC4, 0x6F, 0xDE, 0x56, 0xDF, 0x88,
0xCD, 0xA0, 0x87, 0x6E, 0x25, 0x6F, 0x2A, 0x9B, 0x42, 0x4A, 0x04, 0x1B, 0x1F, 0x6F, 0xA2, 0x08,
0xB0, 0xAF, 0x31, 0x8F, 0x9F, 0x33, 0x84, 0x79, 0xBA, 0x00, 0x11, 0x2B, 0xC8, 0x61, 0xCB, 0xE9,
0xAA, 0x43, 0x29, 0x67, 0xC0, 0x39, 0xE3, 0x69, 0xCC, 0x2E, 0x95, 0xFF, 0x7B, 0xF5, 0xF2, 0x67,
0xCE, 0xD7, 0xB2, 0x24, 0xA6, 0x85, 0x53, 0xB5, 0x47, 0x06, 0xFA, 0x44, 0xBC, 0x5C, 0x3E, 0x85,
0x35, 0x4D, 0x42, 0x4C, 0x24, 0xB1, 0x55, 0x14, 0x6F, 0x8F, 0x59, 0xEC, 0x27, 0x01, 0x7B, 0xFF,
0xF6, 0x45, 0x9B, 0x77, 0x34, 0xEA, 0x14, 0x25, 0xB1, 0x4A, 0x47, 0x35, 0x6F, 0xDB, 0xBF, 0xB9,
0xF2, 0xD1, 0x45, 0xA7, 0x4B, 0x8E, 0xDC, 0x2D, 0xCB, 0xC5, 0xB2, 0x74, 0x1C, 0xC1, 0x9A, 0xE3,
0x6E, 0x12, 0xC3, 0xE2, 0x82, 0x6B, 0xCC, 0x14, 0x99, 0xBF, 0xC4, 0xBF, 0xD7, 0x9A, 0x16, 0x19,
0x50, 0xE7, 0x06, 0x12, 0x6E, 0x67, 0x3A, 0x8D, 0xBB, 0x34, 0x06, 0x73, 0x6D, 0xD6, 0x81, 0x26,
0xCB, 0x30, 0xB0, 0x51, 0x64, 0x97, 0xB9, 0x8E, 0xFF, 0xF7, 0xF4, 0xF5, 0x2F, 0x10, 0xB7, 0x52,
0xC8, 0xF0, 0x71, 0x7C, 0xB6, 0x4E, 0xE2, 0x8C, 0xBD, 0x63, 0x57, 0xFC, 0x80, 0x3B, 0x1D, 0x10,
0x51, 0x96, 0xB4, 0xB5, 0x9D, 0xC7, 0x82, 0x5B, 0x16, 0xC1, 0x36, 0x36, 0xEA, 0x8D, 0xB7, 0xB8,
0x9A, 0x35, 0x8B, 0xDB, 0xEA, 0x4F, 0xCF, 0xDE, 0xA9, 0x5A, 0xA8, 0x61, 0x6A, 0x07, 0x52, 0xC2,
0xF6, 0xB4, 0x1B, 0xDB, 0x25, 0x8A, 0xED, 0x52, 0xF0, 0x83, 0xEE, 0x94, 0x3F, 0x0A, 0xE8, 0x08,
0x64, 0xC1, 0x13, 0x88, 0x81, 0xC1, 0x51, 0x84, 0x8E, 0xCE, 0xCD, 0x5E, 0xE2, 0xFA, 0x93, 0xCE,
0x4E, 0xB7, 0xF6, 0x50, 0x13, 0x90, 0xA1, 0xDB, 0xED, 0x1E, 0xF0, 0x64, 0x7C, 0x68, 0x79, 0x68,
0xE3, 0x26, 0xE2, 0x5C, 0x84, 0x36, 0xF6, 0x3C, 0x49, 0x57, 0x4F, 0x3D, 0xEE, 0x4D, 0x78, 0xD7,
0x5B, 0xAF, 0x71, 0xB1, 0xC2, 0xAD, 0xAB, 0xE9, 0x7A, 0x19, 0x00, 0x63, 0x08, 0x80, 0xF1, 0x49,
0x2E, 0xFF, 0x24, 0x86, 0xD0, 0x27, 0x33, 0x7F, 0xF6, 0x5B, 0xFC, 0xBB, 0x16, 0x55, 0xF3, 0xE3,
0xE3, 0x50, 0xA2, 0xE8, 0xA9, 0x5A, 0x32, 0x8F, 0xB4, 0x50, 0x04, 0x45, 0xAD, 0x9C, 0xAF, 0x7C,
0x40, 0x02, 0x5A, 0xDF, 0x66, 0xD0, 0xB9, 0x15, 0xA1, 0x77, 0xDB, 0x23, 0x26, 0x81, 0xDC, 0xB1,
0x37, 0xAF, 0x4F, 0xDF, 0xE1, 0xA1, 0x84, 0xF8, 0xA8, 0xB4, 0x73, 0x41, 0x57, 0xA8, 0xB0, 0x0B,
0xF1, 0xE7, 0xD9, 0x05, 0x70, 0x7C, 0x09, 0xC0, 0xC6, 0x00, 0xA8, 0x50, 0x3B, 0xE2, 0x11, 0x86,
0xAA, 0x95, 0xC9, 0x3A, 0xD9, 0x6A, 0xBE, 0x2E, 0x70, 0xC7, 0xF5, 0x86, 0xEA, 0x9F, 0xF9, 0x09,
0x92, 0x89, 0x37, 0xFE, 0x83, 0x9E, 0x3C, 0xF1, 0xFD, 0x0F, 0x1C, 0xBE, 0xF6, 0xDB, 0xA5, 0x50,
0xBF, 0xD8, 0xB2, 0x03, 0xF0, 0x79, 0xD7, 0x1E, 0x2B, 0xB8, 0xC9, 0xC7, 0x78, 0xFA, 0x7D, 0x8E,
0x2F, 0xC4, 0xB7, 0x8D, 0x0E, 0x1E, 0xD7, 0x6E, 0x6F, 0x35, 0x4C, 0xA4, 0x60, 0xE9, 0x31, 0xFD,
0x61, 0x6D, 0xD5, 0xDF, 0x1E, 0x37, 0xD5, 0x23, 0x0C, 0xA9, 0x70, 0xAF, 0xFB, 0x19, 0xBF, 0x9C,
0xEE, 0x61, 0x47, 0x4D, 0x35, 0x3F, 0x9C, 0x0B, 0x29, 0x95, 0x85, 0x07, 0x3C, 0x41, 0x58, 0xFA,
0xF3, 0xEE, 0xB6, 0x9A, 0xB7, 0x62, 0xFC, 0x94, 0x5D, 0xE0, 0xC3, 0xA8, 0x16, 0x6C, 0xAF, 0x6A,
0x85, 0xF0, 0x66, 0x1A, 0x48, 0xC0, 0x79, 0xD2, 0xFE, 0xFA, 0xB5, 0xB4, 0x0D, 0x5A, 0x15, 0x78,
0x0C, 0xEA, 0xF0, 0xD8, 0xE9, 0x8C, 0xA5, 0x46, 0xBE, 0x8F, 0x15, 0xF1, 0xA7, 0xD6, 0x78, 0xBE,
0x07, 0x2F, 0x0A, 0xBE, 0x11, 0x1A, 0x21, 0x08, 0xE3, 0x9D, 0xDB, 0x12, 0xC4, 0xAA, 0xCF, 0x0C,
0xD1, 0xF0, 0xB7, 0x82, 0x68, 0xE3, 0xB9, 0xA8, 0xF2, 0x44, 0xED, 0xDC, 0x8D, 0x77, 0x97, 0x9F,
0x89, 0x76, 0xE5, 0xD3, 0xCD, 0xC7, 0x29, 0xB3, 0x32, 0xFF, 0x23, 0xC8, 0x9B, 0xB9, 0xD9, 0x21,
0x6B, 0x95, 0xEF, 0xD4, 0xE4, 0xF3, 0xC8, 0xBF, 0x62, 0x99, 0xAA, 0xF8, 0x67, 0x2C, 0x87, 0xED,
0x64, 0x71, 0x79, 0x18, 0x98, 0x73, 0xA0, 0xAD, 0x83, 0xB3, 0x76, 0x27, 0xEE, 0xAA, 0x3D, 0xF5,
0x81, 0x78, 0x2B, 0xE0, 0xB6, 0xA4, 0x7B, 0x00, 0xCC, 0x6E, 0xC8, 0x28, 0x60, 0x29, 0x5F, 0x03,
0xD2, 0x92, 0x46, 0xEF, 0xC4, 0xDA, 0xAD, 0xDD, 0xFD, 0x0C, 0x94, 0x3D, 0x00, 0x40, 0x5A, 0x94,
0x88, 0x67, 0xCE, 0xE0, 0xA3, 0xD8, 0xDB, 0xDE, 0x03, 0x49, 0x79, 0x16, 0x54, 0xA0, 0xD2, 0x83,
0x9C, 0xE3, 0xBE, 0xB8, 0xB4, 0xB5, 0xE8, 0xB7, 0x08, 0x27, 0x29, 0xAF, 0x9E, 0x2C, 0x2E, 0xBD,
0x90, 0x77, 0x0F, 0x67, 0x13, 0xF9, 0x63, 0xFD, 0x83, 0xA9, 0xE0, 0x5F, 0xEB, 0xDB, 0xFB, 0x98,
0xE4, 0xAF, 0xA2, 0xAC, 0xAF, 0xEE, 0x09, 0x0C, 0x77, 0x47, 0xA2, 0xCF, 0x84, 0x91, 0x6D, 0xF2,
0x8A, 0x8C, 0x93, 0xAD, 0x5C, 0xB7, 0x01, 0xE6, 0x08, 0x99, 0xAA, 0x49, 0xF5, 0x13, 0x61, 0x17,
0x47, 0x47, 0xAA, 0x53, 0xFF, 0x5A, 0xED, 0xFD, 0xF3, 0xCF, 0xC2, 0x16, 0x09, 0xA6, 0x0B, 0x33,
0x54, 0x2D, 0x75, 0x5A, 0x8C, 0xEA, 0xD4, 0x07, 0xF9, 0x5E, 0xEC, 0x83, 0x84, 0x18, 0x1D, 0x26,
0x94, 0x08, 0xE3, 0x9C, 0x76, 0x75, 0xBC, 0x70, 0x45, 0x02, 0x9D, 0x3B, 0x3D, 0x0F, 0x4B, 0xD1,
0x8E, 0xA1, 0xF1, 0x69, 0xC6, 0x38, 0xBD, 0xCA, 0x0C, 0x1A, 0x6E, 0x57, 0x2C, 0x3D, 0x3E, 0x9E,
0x9A, 0x72, 0xD9, 0x8E, 0xA9, 0xEF, 0x8F, 0xBD, 0x75, 0x4F, 0x8E, 0x41, 0x34, 0x38, 0xBB, 0x28,
0x19, 0x83, 0xD0, 0x14, 0x64, 0xF7, 0x32, 0xCE, 0xD2, 0xCE, 0x99, 0xE6, 0x18, 0x27, 0xF1, 0xD1,
0x51, 0xDB, 0x07, 0x1B, 0x4F, 0x0B, 0xA9, 0xF8, 0x0E, 0xF7, 0x04, 0xFF, 0x34, 0x99, 0x2D, 0x4F,
0x04, 0xBB, 0x94, 0x89, 0x31, 0xB4, 0xDA, 0x79, 0x67, 0x90, 0x2D, 0xA3, 0xAC, 0x84, 0xCF, 0x97,
0xF8, 0x82, 0xC5, 0xA1, 0xE4, 0xEC, 0x3E, 0xC7, 0x98, 0xFD, 0xB4, 0xF9, 0xBB, 0x33, 0x5B, 0xC1,
0x88, 0xFE, 0xE6, 0xB9, 0xF2, 0xEC, 0xA6, 0x71, 0xDE, 0x39, 0x24, 0xCF, 0x5E, 0x9E, 0x14, 0xE0,
0x26, 0x77, 0x24, 0x02, 0xCD, 0x57, 0x5D, 0xE4, 0xA6, 0xCA, 0xA3, 0x2F, 0x98, 0xCA, 0x1D, 0x94,
0xF5, 0x77, 0x51, 0x1A, 0xD4, 0xF8, 0x62, 0x06, 0x0D, 0x7B, 0xF2, 0xFE, 0xF4, 0xD9, 0xDB, 0xEA,
0xB9, 0x16, 0x63, 0x09, 0x88, 0x17, 0x73, 0x88, 0x31, 0xC7, 0xEA, 0xD1, 0x9B, 0xEF, 0x4F, 0x4F,
0x7F, 0x7D, 0xFD, 0xF6, 0xE9, 0xEE, 0x21, 0x1C, 0x87, 0x9C, 0xBE, 0xFF, 0xE1, 0xD5, 0x8B, 0x77,
0xD3, 0x6B, 0x3C, 0x33, 0x84, 0xBB, 0x02, 0x5F, 0x78, 0xC7, 0xF9, 0x16, 0x0E, 0xB7, 0x61, 0xE5,
0x70, 0x7B, 0x74, 0x04, 0xA0, 0xFE, 0x0D, 0x34, 0xE5, 0xCE, 0x5A, 0xB7, 0x80, 0x5B, 0x88, 0xC5,
0x95, 0x13, 0x66, 0x4C, 0xD1, 0x33, 0xCC, 0x4F, 0x98, 0x97, 0x61, 0x1C, 0x24, 0x97, 0x3B, 0x62,
0xC5, 0xFE, 0x47, 0x6A, 0x93, 0x93, 0x9E, 0x7C, 0x03, 0xE6, 0xA4, 0x27, 0x5F, 0xA4, 0xA3, 0xFF,
0x97, 0xF5, 0xFF, 0x01, 0xF6, 0xC5, 0xA7, 0x87, 0x9E, 0x55, 0x00, 0x00
#define PAGE_NOFILES_SIZE 6535
const char PAGE_NOFILES[6535] PROGMEM = {
0x1F, 0x8B, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xED, 0x3C, 0x8B, 0x72, 0xDB, 0x46,
0x92, 0xBF, 0x02, 0x23, 0xB5, 0x26, 0x71, 0x04, 0x48, 0xBC, 0xF8, 0x16, 0xA5, 0x4B, 0x62, 0x7B,
0xA3, 0x2B, 0x3B, 0x76, 0x49, 0xF2, 0xF9, 0xB6, 0x1C, 0x97, 0x0A, 0x24, 0x86, 0x22, 0xCE, 0x20,
0x40, 0x01, 0x43, 0x51, 0xB2, 0xCC, 0xFB, 0xF6, 0xEB, 0xEE, 0x19, 0xBC, 0xF8, 0xD2, 0x63, 0xBD,
0xB7, 0xB9, 0xAA, 0x8D, 0x22, 0x02, 0x9C, 0x99, 0xEE, 0xE9, 0xE9, 0x77, 0x37, 0x20, 0x1F, 0xCD,
0xF8, 0x3C, 0x3C, 0x3E, 0x9A, 0x31, 0xCF, 0x3F, 0x3E, 0x4A, 0xF9, 0x5D, 0xC8, 0x8E, 0x71, 0xE4,
0x7E, 0x1A, 0x47, 0xDC, 0x98, 0x7A, 0xF3, 0x20, 0xBC, 0x1B, 0xA4, 0x5E, 0x94, 0x1A, 0x29, 0x4B,
0x82, 0xE9, 0xD0, 0x98, 0xA7, 0x06, 0x67, 0xB7, 0xDC, 0x48, 0x83, 0x6F, 0xCC, 0xF0, 0xFC, 0xFF,
0x5E, 0xA6, 0x7C, 0x60, 0x99, 0xE6, 0x5F, 0x86, 0xC6, 0x8A, 0x8D, 0xBF, 0x06, 0x7C, 0xCF, 0x2C,
0xA1, 0xC3, 0x51, 0xF8, 0xBA, 0xB8, 0x5D, 0x8F, 0x63, 0xFF, 0xAE, 0xB2, 0x85, 0xFA, 0x1B, 0x0B,
0x6F, 0x18, 0x0F, 0x26, 0x9E, 0xF2, 0x3B, 0x5B, 0x32, 0x55, 0xCF, 0xBF, 0xEB, 0x3F, 0x27, 0x81,
0x17, 0xEA, 0x25, 0x1A, 0x4A, 0xB8, 0xDC, 0xC5, 0xED, 0x30, 0x0C, 0x22, 0x66, 0xCC, 0x58, 0x70,
0x35, 0x83, 0xBD, 0x9A, 0xAE, 0xDD, 0x6B, 0x77, 0x2D, 0xD7, 0x19, 0x4E, 0xE2, 0x30, 0x4E, 0x06,
0x3F, 0x39, 0x8E, 0x33, 0x1C, 0x7B, 0x93, 0xAF, 0x57, 0x49, 0xBC, 0x8C, 0x7C, 0x43, 0x8E, 0x4E,
0xA7, 0xD3, 0x35, 0xF7, 0xC6, 0x21, 0xBB, 0x1F, 0xC7, 0x89, 0xCF, 0x92, 0x81, 0x39, 0x14, 0x37,
0x46, 0xBA, 0xF0, 0x26, 0x41, 0x74, 0x05, 0x03, 0x73, 0xEF, 0xD6, 0x58, 0x05, 0x3E, 0x9F, 0xD1,
0x09, 0xD6, 0xDC, 0xBF, 0x5F, 0xCD, 0x02, 0xCE, 0x68, 0x05, 0x1B, 0x44, 0xF1, 0x2A, 0xF1, 0x16,
0xC3, 0x85, 0xE7, 0xFB, 0xB8, 0xDC, 0x9E, 0xCF, 0xD7, 0x7C, 0x76, 0x4F, 0x87, 0xF7, 0xC2, 0xE0,
0x2A, 0x1A, 0x84, 0x6C, 0xCA, 0xD7, 0x4D, 0xDA, 0xE4, 0x98, 0xE3, 0x79, 0x8F, 0x79, 0x72, 0xCC,
0x7D, 0x7D, 0x6B, 0x68, 0x96, 0x0F, 0x91, 0x10, 0xAA, 0xAB, 0xF2, 0xA1, 0xD9, 0x7D, 0xB6, 0x55,
0x6F, 0xFF, 0x99, 0x6F, 0x58, 0x82, 0x2C, 0x0B, 0x25, 0x09, 0x3C, 0x5E, 0x64, 0xC7, 0x82, 0xDB,
0x81, 0xB5, 0xB8, 0x55, 0xD2, 0x38, 0x0C, 0x7C, 0xE5, 0x27, 0xDF, 0xF7, 0x25, 0x6D, 0x46, 0xCA,
0x93, 0x60, 0xC1, 0xFC, 0x9C, 0xA0, 0x41, 0xC4, 0x67, 0x46, 0x3C, 0x35, 0xF8, 0xDD, 0x82, 0xD5,
0x63, 0xDF, 0xD7, 0xEE, 0x77, 0xB0, 0xAF, 0x8F, 0x3F, 0x6B, 0xEF, 0x7E, 0x11, 0xA7, 0x01, 0x0F,
0xE2, 0x68, 0x90, 0xB0, 0xD0, 0xE3, 0xC1, 0x0D, 0x1B, 0xFA, 0x41, 0xBA, 0x08, 0xBD, 0xBB, 0xC1,
0x38, 0x8C, 0x27, 0x5F, 0x73, 0xF6, 0xA0, 0xD0, 0x15, 0xAB, 0x0D, 0x94, 0x13, 0x87, 0x7C, 0x36,
0x89, 0x13, 0x8F, 0x00, 0xA3, 0x38, 0x62, 0x99, 0xAC, 0x26, 0x93, 0xC9, 0xBA, 0xE9, 0x4D, 0x10,
0xCF, 0x7D, 0x21, 0xA8, 0x1D, 0xE2, 0x33, 0x4D, 0x33, 0x5B, 0xA8, 0x78, 0xBA, 0x37, 0x98, 0xC6,
0x93, 0x65, 0x0A, 0xD7, 0x59, 0x0C, 0x1C, 0x28, 0x81, 0xAE, 0x9B, 0x0B, 0x2F, 0x62, 0xE1, 0xFD,
0xDC, 0x4B, 0xAE, 0x82, 0xC8, 0x18, 0xC7, 0x9C, 0xC7, 0xF3, 0x81, 0x0D, 0xC4, 0xEC, 0xD6, 0x09,
0xC9, 0xAD, 0x0D, 0x4E, 0x65, 0x3C, 0x4C, 0x3C, 0x3F, 0x58, 0xA6, 0x03, 0xD4, 0xB9, 0x4C, 0xD9,
0xC7, 0xF1, 0xAD, 0x91, 0xCE, 0x3C, 0x3F, 0x5E, 0x0D, 0x4C, 0x05, 0xA1, 0xF0, 0x37, 0xB9, 0x1A,
0x7B, 0x75, 0x53, 0xC7, 0x9F, 0xA6, 0xD9, 0xD6, 0x86, 0x8F, 0x59, 0x24, 0x29, 0x35, 0xC8, 0x30,
0x72, 0xAE, 0x01, 0xC3, 0xB2, 0x09, 0x54, 0x04, 0x18, 0xBB, 0xDF, 0xE6, 0xE8, 0x61, 0x45, 0x6F,
0xE3, 0x4F, 0x76, 0x02, 0x39, 0x58, 0x3A, 0x13, 0xE8, 0x85, 0x91, 0xA0, 0x1A, 0x65, 0xA7, 0x73,
0x90, 0x37, 0xC5, 0x1C, 0x6A, 0xF1, 0x8E, 0x29, 0xC9, 0xC9, 0x4D, 0x8D, 0x9A, 0xC6, 0xC9, 0x1C,
0x36, 0x89, 0x78, 0x12, 0x87, 0xF7, 0x55, 0x4D, 0x10, 0x96, 0xE4, 0x2D, 0x79, 0x3C, 0x94, 0x7A,
0xEB, 0x20, 0x23, 0xB3, 0xE3, 0x74, 0xF0, 0x34, 0x36, 0x0C, 0x3C, 0xC9, 0xB8, 0xDB, 0xED, 0xF6,
0x3E, 0x41, 0x16, 0xA3, 0xC1, 0xDC, 0xBB, 0x62, 0x42, 0xCF, 0xB6, 0xC5, 0x0B, 0x2A, 0xF7, 0x38,
0xF1, 0x06, 0x51, 0xCA, 0xB8, 0xB2, 0x47, 0x7E, 0xDD, 0xAA, 0x94, 0x1F, 0x5C, 0x6B, 0xC4, 0x06,
0x4F, 0xC0, 0xA1, 0x09, 0xDB, 0x29, 0x0B, 0x47, 0x61, 0x5E, 0xCA, 0x0C, 0xD0, 0xD5, 0x78, 0xC9,
0x95, 0xA6, 0xD5, 0x4E, 0xF5, 0x02, 0xEF, 0xD6, 0x5C, 0x95, 0xE1, 0xC2, 0x0A, 0xEE, 0xAB, 0xA2,
0xEE, 0x74, 0xBC, 0x29, 0xEB, 0x0F, 0x01, 0x02, 0x39, 0x09, 0x5E, 0xED, 0x19, 0x47, 0xD3, 0x4D,
0x98, 0xEC, 0x65, 0x13, 0x96, 0x69, 0xEB, 0x56, 0xB7, 0xAD, 0xDB, 0x8E, 0xA3, 0x37, 0x3B, 0x9A,
0xA4, 0x01, 0x79, 0xBD, 0xD8, 0xB0, 0x33, 0xA1, 0xBE, 0x63, 0x1E, 0xE5, 0xAA, 0x10, 0x44, 0x24,
0x4F, 0xA1, 0x11, 0xD5, 0xC5, 0xA6, 0x90, 0xFC, 0x4A, 0x88, 0xDA, 0x35, 0xCD, 0x61, 0xC9, 0x97,
0x4E, 0x58, 0xC4, 0x59, 0xB2, 0xE9, 0xDE, 0xE6, 0x81, 0xEF, 0x87, 0x4C, 0x84, 0xA4, 0x78, 0x39,
0x99, 0x19, 0xE8, 0x11, 0x80, 0x9F, 0x73, 0x2F, 0x0A, 0x16, 0xCB, 0x90, 0xFC, 0xCB, 0x70, 0xFF,
0xCC, 0x64, 0x99, 0xA4, 0xC0, 0xA2, 0x45, 0x1C, 0x10, 0xF2, 0x47, 0x6A, 0x0C, 0xC9, 0x6D, 0xE1,
0x25, 0x40, 0xD1, 0xF0, 0x40, 0x3C, 0x78, 0xA2, 0x3E, 0xEF, 0x50, 0xC1, 0x79, 0xFC, 0xCD, 0x58,
0xA6, 0x18, 0x91, 0x58, 0xC8, 0x26, 0x5C, 0x90, 0x83, 0x67, 0xDD, 0x1A, 0xDC, 0x1C, 0x20, 0x9E,
0x1B, 0x8B, 0x04, 0x8E, 0x91, 0xDC, 0x1D, 0x76, 0xA4, 0x8E, 0xD3, 0xF5, 0xC6, 0xDD, 0x0D, 0xF7,
0x60, 0xB3, 0x8E, 0xEF, 0xB9, 0x15, 0x2C, 0xD2, 0xD9, 0xEA, 0x95, 0x31, 0xE1, 0x75, 0x2B, 0x43,
0xE4, 0x80, 0x2B, 0x43, 0x83, 0x1D, 0x90, 0x83, 0x6D, 0xC8, 0x2D, 0xD7, 0xBD, 0x83, 0x58, 0xBB,
0xD7, 0x31, 0xFB, 0xE6, 0x06, 0xB1, 0x96, 0x6D, 0x8F, 0x5D, 0x93, 0x88, 0x0D, 0xE6, 0x57, 0xF7,
0x52, 0xA8, 0x33, 0x2F, 0xDA, 0x74, 0xDB, 0x9D, 0xDC, 0x7B, 0x95, 0xED, 0x9F, 0x82, 0x84, 0x80,
0x95, 0x24, 0xEC, 0xF0, 0x27, 0x26, 0xFE, 0x6C, 0xEC, 0xDB, 0x99, 0xE0, 0xCF, 0xB3, 0xCD, 0x09,
0xF5, 0xE3, 0x2A, 0x61, 0x77, 0x4F, 0x71, 0x1B, 0x15, 0x40, 0xA2, 0x9A, 0xC8, 0x3C, 0x7C, 0x6C,
0xC7, 0x94, 0x46, 0x98, 0xAD, 0x7D, 0xE8, 0x98, 0xFF, 0xCC, 0x13, 0x85, 0x40, 0x14, 0x58, 0xC8,
0x57, 0xBD, 0xB8, 0x1D, 0x54, 0xF3, 0x01, 0x8A, 0xFC, 0xC5, 0x64, 0x45, 0x6B, 0x70, 0x2E, 0x88,
0x16, 0x4B, 0xFE, 0x19, 0x73, 0x97, 0xD1, 0x34, 0x08, 0xD9, 0x97, 0xC1, 0x20, 0x3B, 0x0F, 0x7E,
0x35, 0x96, 0x8B, 0x30, 0xF6, 0x7C, 0x63, 0xBC, 0x04, 0x9F, 0xF3, 0x2F, 0xB7, 0xF4, 0x7F, 0xEB,
0x96, 0x86, 0x07, 0x8D, 0xBB, 0x3D, 0x9E, 0x98, 0x3E, 0xDB, 0x30, 0x32, 0xB7, 0x33, 0xEE, 0xF9,
0xDE, 0x93, 0x84, 0x2A, 0xA3, 0xE0, 0xBF, 0x44, 0xFB, 0xE7, 0x11, 0xAD, 0x63, 0x8D, 0x4D, 0x7F,
0x33, 0x07, 0xB5, 0xC6, 0x1D, 0xBF, 0xD7, 0x7E, 0x9A, 0x68, 0x85, 0xB5, 0xFF, 0x4B, 0xB4, 0x7F,
0x72, 0xD1, 0xDA, 0x9D, 0xBE, 0x37, 0x9E, 0x64, 0x85, 0xCB, 0x34, 0x8E, 0x81, 0x23, 0x07, 0xEA,
0x16, 0xAB, 0x6B, 0xF6, 0x76, 0xE1, 0x7E, 0x44, 0xE9, 0xB2, 0x55, 0x80, 0xFC, 0x13, 0xB6, 0x9C,
0xC7, 0xBE, 0x57, 0x14, 0x3B, 0xC4, 0xB2, 0xBC, 0x2A, 0x9E, 0x06, 0xB7, 0xCC, 0x1F, 0x7E, 0x83,
0x9C, 0xDD, 0x67, 0xB7, 0xD8, 0x46, 0x00, 0x4D, 0x94, 0x54, 0x09, 0x5C, 0x26, 0x96, 0xA2, 0x58,
0x63, 0x81, 0xCA, 0xE2, 0x80, 0x39, 0x2C, 0x3A, 0x0E, 0x59, 0x9D, 0x44, 0xF7, 0xA8, 0xF9, 0xD3,
0x10, 0x42, 0x2A, 0x55, 0x50, 0x3B, 0x2B, 0xE2, 0xED, 0xD1, 0x72, 0xB8, 0x75, 0x35, 0x49, 0x2A,
0x95, 0x0B, 0xA0, 0x70, 0xF7, 0x7B, 0xAA, 0x3C, 0xCB, 0xAC, 0x56, 0x80, 0x95, 0xEA, 0xB0, 0x3C,
0x29, 0x6C, 0x6D, 0x2F, 0xAC, 0x9C, 0xDE, 0x07, 0x3E, 0xB0, 0x0B, 0x3E, 0xE6, 0x59, 0x68, 0xA9,
0x4E, 0xC6, 0x7A, 0xC3, 0x42, 0xC5, 0x37, 0x2B, 0x59, 0x83, 0xAD, 0x0D, 0xB7, 0x7B, 0x0E, 0xC2,
0xF8, 0x05, 0x6B, 0x32, 0xA1, 0xEF, 0x60, 0xC7, 0x4F, 0x53, 0x86, 0x3F, 0x19, 0x1F, 0xB0, 0xA2,
0x2E, 0x69, 0x89, 0x2D, 0x37, 0xCC, 0x94, 0x84, 0xB2, 0xA1, 0x9D, 0x4A, 0x62, 0xE3, 0xCF, 0xBE,
0x22, 0xF9, 0x89, 0xEC, 0xAB, 0xD4, 0xA2, 0x53, 0xFC, 0xC9, 0xC8, 0xAB, 0x76, 0x02, 0x4C, 0x49,
0x5D, 0x36, 0xBB, 0xA9, 0xE2, 0x9D, 0x8C, 0x7A, 0xA9, 0x34, 0x6E, 0xB3, 0xCD, 0xE6, 0x4F, 0x3F,
0xCA, 0x36, 0x39, 0x7F, 0xA7, 0xB4, 0xD7, 0xCD, 0x59, 0xE0, 0xB3, 0xCB, 0x80, 0x57, 0x2C, 0x64,
0xFD, 0xEF, 0x73, 0xE6, 0x07, 0x9E, 0x52, 0x9F, 0x83, 0xCF, 0x16, 0x1A, 0xDF, 0xED, 0x80, 0xC4,
0xB5, 0xFB, 0x0D, 0x1D, 0x15, 0x73, 0xED, 0x1E, 0x62, 0xCA, 0x80, 0xD2, 0x49, 0xC2, 0x58, 0xA4,
0x40, 0xAA, 0x0B, 0xF0, 0x79, 0x8F, 0xAE, 0xDB, 0xE9, 0xEE, 0x85, 0xA7, 0xFE, 0xDD, 0xFA, 0xA8,
0x25, 0xDA, 0x9B, 0x47, 0x3C, 0xE0, 0x70, 0x79, 0x7D, 0xFE, 0xC1, 0x79, 0xA5, 0xF0, 0x38, 0x0E,
0x95, 0x05, 0x78, 0xE8, 0xA3, 0x96, 0x18, 0x3E, 0x6A, 0x89, 0x56, 0x28, 0x75, 0xC3, 0x8E, 0xFC,
0xE0, 0x46, 0x99, 0x84, 0x5E, 0x9A, 0x8E, 0x54, 0x72, 0x2D, 0x2A, 0x40, 0x63, 0xD7, 0x4C, 0x21,
0xC4, 0x23, 0x15, 0x31, 0xE3, 0x58, 0x02, 0xBF, 0x00, 0xE4, 0x65, 0x8B, 0x45, 0x45, 0xA1, 0x2A,
0xB3, 0x84, 0x4D, 0x47, 0xEA, 0x8C, 0xF3, 0x45, 0x3A, 0x68, 0xB5, 0xAE, 0x02, 0x3E, 0x5B, 0x8E,
0x9B, 0x93, 0x78, 0xDE, 0x0A, 0x97, 0x13, 0x43, 0x7C, 0x6D, 0x11, 0x21, 0x2D, 0x0E, 0x87, 0x6A,
0xD9, 0x4D, 0x4B, 0x55, 0x38, 0x68, 0x33, 0xE3, 0x23, 0xF5, 0x12, 0xD2, 0xDC, 0xE8, 0x2B, 0x60,
0x4F, 0x6F, 0xAE, 0xF2, 0xFD, 0xD8, 0x1C, 0x90, 0x92, 0x88, 0xE5, 0x97, 0x9B, 0x80, 0xAD, 0x7E,
0x89, 0x6F, 0x47, 0x2A, 0xA6, 0xD2, 0x96, 0x63, 0xC2, 0x87, 0x6D, 0x9A, 0x00, 0x75, 0x25, 0xA2,
0x0B, 0x56, 0xE7, 0x23, 0x95, 0x6E, 0xC1, 0x5A, 0x58, 0xBD, 0x6D, 0xEA, 0xB8, 0x40, 0x03, 0x36,
0x7A, 0x21, 0xAB, 0x5B, 0xBA, 0x62, 0x58, 0x1A, 0x2C, 0x5F, 0x78, 0x7C, 0xA6, 0xF8, 0x23, 0xF5,
0x5D, 0x07, 0x51, 0x58, 0x5D, 0xF7, 0xDA, 0x71, 0x00, 0x63, 0xD7, 0x55, 0x8C, 0x76, 0xE8, 0xF4,
0x60, 0x55, 0xDB, 0x0E, 0xDB, 0x70, 0xB9, 0x76, 0xFB, 0xF0, 0xE9, 0x2A, 0x7D, 0x98, 0x71, 0xFA,
0x38, 0x64, 0x87, 0x96, 0xE3, 0x2A, 0x3D, 0xF3, 0xBA, 0x63, 0x29, 0x86, 0xDB, 0x53, 0x2C, 0x13,
0xA6, 0x2C, 0xB3, 0x1D, 0x1A, 0x3D, 0x13, 0x6E, 0x1C, 0x37, 0x74, 0x00, 0xC9, 0xB5, 0x0D, 0x4B,
0x5D, 0x57, 0x71, 0x00, 0xBC, 0xEF, 0x84, 0xB0, 0xB4, 0x13, 0x02, 0x4E, 0x40, 0xD2, 0xBB, 0xC6,
0x19, 0x47, 0x81, 0xCF, 0xAE, 0x73, 0x0D, 0x20, 0x0E, 0x6E, 0x0A, 0x5F, 0xDC, 0xD0, 0x90, 0x2B,
0xE0, 0x06, 0xD6, 0x5F, 0xC3, 0x57, 0x58, 0xD9, 0xC7, 0x8D, 0x09, 0x89, 0x81, 0x88, 0x43, 0xB9,
0xCB, 0x35, 0xEE, 0x6D, 0x20, 0x0D, 0x05, 0x01, 0x44, 0x98, 0x15, 0x22, 0x36, 0xE7, 0x1A, 0x77,
0x37, 0x90, 0x0A, 0x49, 0xBA, 0x41, 0xB4, 0x1B, 0xE2, 0x70, 0x96, 0x72, 0x8D, 0x34, 0x88, 0x7D,
0x91, 0x5C, 0x83, 0xCE, 0x8F, 0x5F, 0xDA, 0xB4, 0x06, 0x96, 0x20, 0x84, 0x7D, 0x8D, 0x04, 0xC0,
0xF9, 0x11, 0x8B, 0x40, 0xE2, 0x88, 0x7D, 0x8C, 0x9E, 0x75, 0x6D, 0x74, 0x4C, 0x05, 0xA9, 0x40,
0x0A, 0x90, 0x80, 0x1E, 0xCA, 0xC4, 0x45, 0x3A, 0x01, 0x21, 0x6C, 0xED, 0x22, 0x21, 0x3D, 0x05,
0x49, 0xB7, 0x95, 0x4E, 0x48, 0xFB, 0xC2, 0xF9, 0x8D, 0x8E, 0xE2, 0xC2, 0x39, 0x3B, 0xC0, 0x6E,
0x38, 0x3F, 0x6C, 0x0C, 0x77, 0xC0, 0x22, 0x9A, 0x0C, 0x61, 0xE1, 0xB5, 0xE5, 0x20, 0x5A, 0x01,
0xE9, 0x28, 0x82, 0xB3, 0x78, 0x64, 0xB7, 0xAB, 0xC0, 0x81, 0x61, 0x27, 0xDA, 0xCD, 0x02, 0x48,
0x98, 0x09, 0x91, 0x4A, 0xD8, 0x09, 0xF6, 0x13, 0x34, 0xC2, 0x6C, 0x48, 0x27, 0x80, 0x61, 0x64,
0x33, 0x9E, 0xE9, 0x1B, 0x09, 0xBA, 0x07, 0x0C, 0xBD, 0x36, 0x7A, 0x7D, 0x3C, 0x29, 0xB1, 0xBA,
0xE3, 0x70, 0xF8, 0x25, 0x86, 0x34, 0xDB, 0xBC, 0xB8, 0xCB, 0x26, 0xF1, 0x0A, 0x17, 0x98, 0x10,
0xE3, 0x46, 0x71, 0x27, 0xA6, 0xBE, 0x81, 0x2E, 0xB5, 0x50, 0x99, 0xE0, 0x72, 0x05, 0xBF, 0xA0,
0xBC, 0xC7, 0xCA, 0x11, 0xA4, 0x35, 0x51, 0x6E, 0x1B, 0x59, 0xF5, 0xA6, 0x1E, 0xBF, 0x09, 0x92,
0xF9, 0x0A, 0xD2, 0x1F, 0x58, 0x06, 0x0B, 0x60, 0xB5, 0x07, 0xBF, 0x68, 0x48, 0x8F, 0x30, 0xA6,
0xD5, 0x6A, 0xD5, 0x3C, 0x60, 0x50, 0xC6, 0xA7, 0xD7, 0xBF, 0x7C, 0x3C, 0xFD, 0x93, 0x99, 0x95,
0xD9, 0x77, 0xAF, 0x7B, 0x36, 0x62, 0xEC, 0x98, 0x4D, 0xD4, 0x3E, 0x1B, 0x59, 0xEB, 0x02, 0xF3,
0xDB, 0x7D, 0x6E, 0x59, 0x1D, 0x1C, 0xEB, 0xE1, 0x58, 0xDF, 0xC5, 0xDB, 0x3E, 0x48, 0xA0, 0x47,
0x17, 0xD7, 0xCE, 0xA7, 0x50, 0xF5, 0xDA, 0x5D, 0x62, 0x78, 0x7E, 0x87, 0x8A, 0x4B, 0x93, 0x46,
0xA7, 0x27, 0x01, 0x8D, 0x1C, 0x85, 0x51, 0x46, 0x6C, 0x64, 0xBB, 0x81, 0xB8, 0xFA, 0x39, 0x09,
0xF2, 0x8B, 0x9D, 0xAF, 0xA0, 0x05, 0x04, 0x26, 0xA0, 0x08, 0x59, 0x3F, 0xC3, 0xDF, 0x17, 0x5B,
0x66, 0x08, 0x15, 0x22, 0x22, 0xBB, 0x12, 0xA9, 0x34, 0x05, 0xB4, 0xF7, 0xDB, 0x0A, 0xCF, 0x60,
0x4B, 0xF8, 0xE4, 0x16, 0x82, 0x0B, 0xB8, 0xEB, 0xB7, 0x77, 0xBD, 0x5E, 0x0F, 0xE6, 0xFA, 0x64,
0xE2, 0x68, 0xE5, 0x16, 0xE8, 0xAB, 0xCD, 0x89, 0x40, 0xF2, 0x1C, 0xED, 0x2E, 0xEA, 0x33, 0x10,
0xD5, 0x47, 0x0F, 0x61, 0xD9, 0x68, 0x6F, 0xC0, 0x1B, 0x1B, 0x16, 0xE1, 0x07, 0x7E, 0x13, 0x37,
0x78, 0x85, 0x19, 0xB8, 0xBD, 0xC6, 0x4D, 0x14, 0x1B, 0x14, 0xD4, 0x02, 0xB6, 0x2B, 0x56, 0x5F,
0x71, 0x69, 0x3B, 0xA0, 0xB9, 0x8B, 0x47, 0x87, 0x15, 0x46, 0x17, 0x90, 0x75, 0xD0, 0xA1, 0x75,
0x10, 0x6B, 0x0F, 0x9C, 0x88, 0x85, 0x3A, 0xDF, 0x51, 0x84, 0xAB, 0x31, 0x51, 0x16, 0x70, 0x05,
0x12, 0xAF, 0x6D, 0xF4, 0x44, 0x60, 0xA8, 0x5D, 0x70, 0x0A, 0x16, 0x47, 0xC0, 0x9E, 0xCD, 0xFB,
0x42, 0x30, 0x16, 0x9C, 0x0E, 0x9D, 0x47, 0x0F, 0x0F, 0xE7, 0x38, 0xC4, 0x58, 0xDC, 0x4C, 0x7E,
0xB1, 0x5D, 0x9A, 0xA7, 0x69, 0x82, 0xE8, 0xA1, 0xC5, 0x74, 0x4D, 0x71, 0x05, 0x8C, 0x5D, 0xD8,
0xE8, 0xDA, 0x02, 0x4B, 0x06, 0x96, 0x29, 0x6E, 0xC6, 0x57, 0x17, 0x66, 0xAF, 0x8D, 0x3E, 0xF9,
0x63, 0x24, 0x0A, 0x4E, 0xD2, 0xEB, 0x7F, 0x7B, 0xE7, 0x82, 0x2B, 0xE8, 0xDA, 0x5D, 0xF0, 0x2A,
0xE8, 0x4D, 0xA4, 0x57, 0xA4, 0x5F, 0x92, 0xA8, 0x83, 0xBB, 0x90, 0xF0, 0x09, 0xDE, 0x01, 0x50,
0x94, 0x04, 0x1E, 0xCB, 0x02, 0x4F, 0x82, 0x47, 0x73, 0x14, 0x87, 0xF4, 0xC4, 0xB2, 0xB8, 0x83,
0x42, 0xB1, 0xBA, 0x21, 0xE0, 0x02, 0x7F, 0x02, 0x9B, 0x22, 0xFF, 0x91, 0x44, 0x24, 0x1C, 0xA8,
0xE8, 0xC8, 0x5B, 0xF2, 0x9E, 0xE8, 0x40, 0xC1, 0x59, 0x00, 0x39, 0xB0, 0x29, 0x51, 0x6B, 0xD8,
0xC0, 0x6A, 0x93, 0x1B, 0x8E, 0x8D, 0xFC, 0x7C, 0x92, 0xF1, 0x9F, 0x62, 0xA5, 0x34, 0x85, 0x72,
0xE7, 0x39, 0xD6, 0x7F, 0x28, 0x94, 0xAE, 0x82, 0xAF, 0xC1, 0x9F, 0xC3, 0xDE, 0xAD, 0x6E, 0xF7,
0x1A, 0x65, 0x67, 0x82, 0xD6, 0x01, 0xEB, 0xDC, 0x36, 0xAA, 0x47, 0xCF, 0x15, 0xCA, 0x07, 0xCE,
0xD4, 0x76, 0x48, 0xE9, 0x50, 0x5E, 0x6D, 0x61, 0x8C, 0x2E, 0x37, 0x4A, 0xB7, 0xA5, 0x05, 0x46,
0x09, 0xCE, 0x28, 0xB0, 0xD1, 0xAD, 0xB8, 0x13, 0x0B, 0x68, 0x1E, 0xE1, 0x24, 0x18, 0x61, 0x43,
0x64, 0xF9, 0x4D, 0x31, 0x59, 0x40, 0x64, 0x58, 0xBE, 0xBD, 0x6B, 0x83, 0xED, 0xF4, 0x5D, 0x88,
0x64, 0x36, 0x05, 0x05, 0x30, 0x20, 0xA3, 0x2D, 0xFD, 0xBC, 0x61, 0xA3, 0x39, 0x80, 0x92, 0x4B,
0x1D, 0x23, 0xFD, 0x12, 0x21, 0x43, 0x7A, 0x18, 0xD4, 0x3F, 0x34, 0x4F, 0xB0, 0x54, 0x9B, 0x2E,
0x33, 0xCB, 0xB1, 0xAE, 0x1D, 0xC4, 0xA3, 0x80, 0x82, 0x59, 0xD6, 0x75, 0x07, 0x27, 0x6C, 0x32,
0xFB, 0x9E, 0x20, 0xA9, 0x77, 0x6D, 0x23, 0xCF, 0x1D, 0xC2, 0x65, 0xE1, 0x0E, 0x16, 0xDD, 0xDA,
0xB0, 0x05, 0xE1, 0x82, 0x8D, 0xBB, 0x98, 0x13, 0xC0, 0x59, 0x51, 0x77, 0x21, 0x5A, 0x5A, 0x14,
0xAE, 0xC8, 0xCA, 0x90, 0x49, 0xA4, 0xF5, 0xE4, 0x07, 0x71, 0x53, 0x42, 0x61, 0xA0, 0xB1, 0x5A,
0x5D, 0x64, 0x8A, 0xB0, 0x45, 0x74, 0x71, 0x64, 0x1C, 0x30, 0x07, 0xF4, 0xBB, 0x68, 0x35, 0x40,
0xB0, 0x42, 0x83, 0x48, 0x3D, 0x27, 0xA2, 0x0C, 0x58, 0x3E, 0xB3, 0x20, 0x0B, 0x11, 0x32, 0x53,
0x7A, 0xDC, 0x21, 0x4A, 0x1D, 0x74, 0x18, 0x6E, 0x8F, 0xDB, 0xB8, 0x57, 0x17, 0x79, 0x08, 0xCE,
0xDC, 0x04, 0xF2, 0xD0, 0x1B, 0x80, 0x80, 0x7B, 0x8E, 0xC2, 0xC9, 0x4B, 0x80, 0x0F, 0x04, 0x0E,
0xE1, 0x2A, 0x87, 0xD8, 0xDF, 0x01, 0x83, 0xEA, 0xE1, 0x08, 0xFA, 0x1E, 0x88, 0xB9, 0x5D, 0x40,
0x63, 0x9A, 0x33, 0xA0, 0xC6, 0x04, 0x0A, 0x4C, 0x3A, 0x48, 0x37, 0xA7, 0x5F, 0xB8, 0x25, 0xF8,
0xBC, 0xA1, 0x05, 0x74, 0x1A, 0x25, 0x1F, 0xE4, 0xF9, 0xCA, 0x19, 0xCE, 0x12, 0x34, 0x0D, 0xE1,
0x5C, 0x97, 0xCC, 0x18, 0x20, 0x05, 0xA0, 0x65, 0xD2, 0x42, 0x1A, 0x92, 0xFE, 0x0E, 0x7E, 0x9F,
0x64, 0x9F, 0xBF, 0xB1, 0x70, 0xB1, 0xC3, 0x34, 0x15, 0xCA, 0xA2, 0x47, 0x6A, 0x91, 0x5A, 0xAB,
0x5B, 0x73, 0xA5, 0x6E, 0x0B, 0x55, 0x04, 0x68, 0x7D, 0xB8, 0x49, 0x00, 0x96, 0xF1, 0xE6, 0xD3,
0x7F, 0xBE, 0x3E, 0x3B, 0x3F, 0x7D, 0xFF, 0xBB, 0xBA, 0x63, 0xCF, 0x7C, 0x3F, 0xC4, 0xD7, 0xC2,
0xB4, 0xBA, 0x25, 0x1E, 0x84, 0x1F, 0xB5, 0x20, 0x15, 0xDF, 0x99, 0x8F, 0x8B, 0x76, 0xCE, 0xF1,
0xD1, 0xCC, 0x26, 0xF4, 0xEF, 0xCE, 0xFF, 0x8A, 0x68, 0x66, 0x36, 0x7C, 0x64, 0x53, 0xBB, 0x61,
0x15, 0x59, 0x99, 0xA8, 0x82, 0xAC, 0xD3, 0xB7, 0xAF, 0xCF, 0xFF, 0x76, 0x7E, 0xF1, 0xFA, 0x9D,
0xBA, 0xBD, 0x34, 0x7B, 0xFA, 0x0A, 0x19, 0x0B, 0x8C, 0xCE, 0x94, 0x37, 0x41, 0xC8, 0xD2, 0xBB,
0x94, 0xB3, 0xF9, 0x1E, 0xDC, 0x54, 0xBD, 0x01, 0x22, 0x6A, 0x6F, 0x29, 0xD4, 0xDE, 0x52, 0xB1,
0xA1, 0x25, 0xF6, 0xA2, 0xD6, 0x96, 0xE8, 0xB1, 0xA8, 0x4A, 0xE4, 0xCD, 0x61, 0x72, 0x7E, 0x87,
0x83, 0xE9, 0xE7, 0x2F, 0xAA, 0x32, 0x5F, 0x86, 0x3C, 0x58, 0x20, 0x1B, 0xB3, 0x3B, 0x15, 0x84,
0x24, 0x30, 0x15, 0x3E, 0x51, 0x29, 0x3D, 0x3C, 0x51, 0xE5, 0x0E, 0xA2, 0x4D, 0x26, 0xF6, 0xA8,
0x74, 0xCE, 0x54, 0x25, 0x8E, 0x26, 0x61, 0x30, 0xF9, 0x3A, 0x52, 0xCF, 0x59, 0xE4, 0xE3, 0x56,
0x75, 0x6D, 0x08, 0x5E, 0xCF, 0x0B, 0x97, 0x00, 0xF7, 0x91, 0xD6, 0xAA, 0xC7, 0x2F, 0xA3, 0x71,
0xBA, 0x18, 0x8A, 0xCF, 0xA3, 0x45, 0x12, 0x5F, 0x25, 0x2C, 0x4D, 0x33, 0x99, 0xDE, 0x04, 0x69,
0x30, 0x0E, 0xC2, 0x80, 0xDF, 0x0D, 0x80, 0x71, 0x3E, 0x8B, 0x32, 0xD2, 0x17, 0xC9, 0x95, 0xD8,
0x92, 0x6E, 0xA0, 0x22, 0xA3, 0xB2, 0x88, 0x34, 0x4D, 0xA2, 0x80, 0x6A, 0x2A, 0x11, 0xBF, 0x3B,
0xE4, 0xB7, 0x8F, 0x75, 0x52, 0xEE, 0xA2, 0xB4, 0xCA, 0x1C, 0x37, 0x29, 0xDB, 0x53, 0x58, 0x51,
0x39, 0xF7, 0xAF, 0xF1, 0x7C, 0x0E, 0x65, 0x63, 0xBD, 0x16, 0x06, 0x29, 0xAF, 0xE9, 0x35, 0x2F,
0x0C, 0x6B, 0x25, 0x36, 0x9C, 0xB1, 0x29, 0x50, 0x3B, 0x2B, 0xA9, 0x73, 0x79, 0x57, 0xA4, 0x33,
0xC7, 0xF6, 0x6B, 0xC2, 0x20, 0x0A, 0xF8, 0x41, 0x52, 0xD7, 0xD4, 0x8D, 0x40, 0x55, 0x09, 0x34,
0xAE, 0x59, 0xC4, 0x19, 0xBC, 0xAF, 0x84, 0x19, 0x17, 0xFF, 0x87, 0xF5, 0x09, 0xE8, 0x81, 0x02,
0x63, 0x6D, 0x55, 0xB9, 0x43, 0xDE, 0xA9, 0x19, 0xB4, 0x53, 0x82, 0xB6, 0xE1, 0x3E, 0x81, 0x45,
0x36, 0x5C, 0xEE, 0xE8, 0x02, 0x52, 0x0C, 0x47, 0xAA, 0x6C, 0xC1, 0xA9, 0xAD, 0x02, 0x0F, 0x2E,
0xBD, 0x23, 0x74, 0x59, 0xB8, 0x6B, 0x97, 0xA2, 0x5D, 0xFB, 0x41, 0x3C, 0x68, 0xBD, 0x88, 0xC7,
0x12, 0x04, 0xD9, 0x70, 0xC9, 0x1B, 0x8F, 0x30, 0xDA, 0x93, 0x5F, 0x57, 0x12, 0x63, 0x0F, 0x84,
0x2D, 0x91, 0x50, 0x0F, 0x53, 0x3D, 0x6E, 0x00, 0x03, 0x01, 0x87, 0x74, 0x30, 0xD2, 0x44, 0x36,
0x78, 0x2A, 0x1D, 0x07, 0x72, 0x95, 0x74, 0x07, 0x9C, 0x52, 0xCE, 0xC9, 0x20, 0x9A, 0xC6, 0x99,
0x36, 0x96, 0xA1, 0x2B, 0x0E, 0x41, 0xD4, 0xE1, 0x12, 0x42, 0x7C, 0xA9, 0xBC, 0xD0, 0xA2, 0x66,
0x8A, 0x5B, 0x74, 0x5D, 0x51, 0xAB, 0x44, 0x75, 0x4F, 0x5A, 0x35, 0x2B, 0xCB, 0xF7, 0x02, 0xD4,
0x06, 0x70, 0xCF, 0x70, 0xFC, 0xF8, 0x77, 0x50, 0xEC, 0xFC, 0xCB, 0x39, 0x1C, 0x3B, 0xFB, 0x22,
0x5C, 0xC5, 0xF9, 0x25, 0x0F, 0xE6, 0x70, 0xCE, 0x8B, 0xA0, 0x58, 0x56, 0xD1, 0x95, 0x8D, 0xB1,
0xDC, 0x49, 0xCE, 0xF2, 0x33, 0x48, 0x32, 0x50, 0xD7, 0x73, 0x97, 0x70, 0x89, 0x6A, 0x49, 0xEB,
0x44, 0xF3, 0xE1, 0xB0, 0xEB, 0x93, 0x2D, 0x20, 0x61, 0x7A, 0x29, 0xF7, 0xF8, 0x32, 0x55, 0x73,
0x5E, 0x6F, 0x7D, 0x3E, 0xE0, 0xFC, 0x3E, 0x7D, 0xFC, 0xF0, 0xEA, 0xE7, 0x8B, 0xD7, 0x87, 0x5D,
0x9F, 0x2C, 0xD6, 0x94, 0x8F, 0x0B, 0x1F, 0x94, 0xFF, 0x01, 0xCF, 0x57, 0x31, 0xDF, 0xBD, 0x8E,
0x70, 0xB5, 0xD7, 0x0D, 0x96, 0x52, 0xC1, 0x27, 0xBB, 0x3E, 0xF8, 0x52, 0xB2, 0x7C, 0xE1, 0xDD,
0xB6, 0x7D, 0x1E, 0x1E, 0xA2, 0xBC, 0xCD, 0x53, 0x1C, 0xDE, 0x74, 0x95, 0xBB, 0x3C, 0xBC, 0xDD,
0xED, 0xF4, 0x72, 0xCC, 0x79, 0xEC, 0x9B, 0xA7, 0x57, 0xEA, 0x7E, 0xF4, 0xC7, 0x67, 0x0C, 0xE4,
0x98, 0x70, 0xE0, 0xB6, 0xAE, 0x80, 0xDB, 0xF7, 0x52, 0xA6, 0xAC, 0xBC, 0x80, 0x37, 0xE1, 0xBF,
0x2C, 0x30, 0xE6, 0xA8, 0x26, 0xF1, 0x12, 0x83, 0xDB, 0xC3, 0x21, 0xB3, 0x10, 0x13, 0x82, 0x85,
0xF1, 0x15, 0xB0, 0xD3, 0xBB, 0x62, 0xB9, 0xB1, 0x51, 0xC3, 0xAC, 0x2A, 0xF8, 0x4A, 0x0F, 0x6D,
0xD7, 0x94, 0x68, 0x9D, 0xC2, 0xCC, 0xCC, 0x39, 0x3E, 0x05, 0xD2, 0x79, 0x30, 0x0D, 0x26, 0xF4,
0x20, 0x04, 0x22, 0xAF, 0xB3, 0x43, 0xE7, 0x8A, 0x96, 0xA6, 0x4C, 0x05, 0x8E, 0x2B, 0x59, 0x87,
0x98, 0x46, 0x9F, 0xA1, 0x2A, 0x79, 0x8E, 0x7D, 0xFC, 0x31, 0x05, 0xB3, 0x95, 0xC7, 0xDB, 0x08,
0x80, 0xE5, 0xF7, 0x5E, 0x32, 0x15, 0x10, 0xE0, 0x74, 0x48, 0x94, 0x7F, 0x25, 0x4D, 0xC1, 0xD6,
0x70, 0xC1, 0xAA, 0x59, 0xF2, 0x78, 0x22, 0x3E, 0xC0, 0xDC, 0x0A, 0x3C, 0xC8, 0x13, 0x08, 0x59,
0x48, 0x10, 0x49, 0xCC, 0xE2, 0x30, 0x31, 0xE3, 0x5D, 0x09, 0x4A, 0xB9, 0xC9, 0xBB, 0x91, 0x46,
0x64, 0x9A, 0xBE, 0xCF, 0x1E, 0x8A, 0x88, 0xF7, 0xF6, 0x0C, 0xA3, 0x93, 0xD4, 0xF7, 0xF3, 0xE5,
0x78, 0x1E, 0xF0, 0x9D, 0x1E, 0x22, 0x9D, 0x80, 0xC3, 0xE4, 0xC7, 0x37, 0x5E, 0xA2, 0xAC, 0xD2,
0xCB, 0x34, 0x5E, 0x26, 0x13, 0xA6, 0xDF, 0xCE, 0x43, 0xAC, 0xB5, 0x44, 0x1A, 0xA1, 0x4F, 0x96,
0x09, 0x3E, 0xA4, 0x42, 0x2F, 0x3D, 0x52, 0x5B, 0xAA, 0x0E, 0x47, 0x98, 0xA1, 0xD8, 0x85, 0xD0,
0x47, 0x2F, 0x2C, 0x7D, 0xC5, 0xC6, 0x69, 0x3C, 0xF9, 0xCA, 0xF8, 0xE5, 0x22, 0x4E, 0xF8, 0xC8,
0x2C, 0x0D, 0x9C, 0x7E, 0x18, 0xA9, 0x00, 0x92, 0xDE, 0x45, 0x93, 0x4B, 0x18, 0x85, 0x9A, 0x6D,
0xBE, 0x8C, 0x4A, 0xA0, 0xA8, 0x8E, 0x97, 0xC8, 0x2A, 0x55, 0x07, 0xF5, 0xBC, 0x8C, 0xA7, 0xD3,
0x2A, 0x42, 0x32, 0x0A, 0xE6, 0xE3, 0x20, 0x4B, 0x17, 0x97, 0x2C, 0x49, 0xE2, 0xE4, 0x72, 0x0E,
0x26, 0x06, 0x70, 0x08, 0x54, 0x0C, 0x4E, 0x62, 0x9F, 0xC1, 0xD6, 0xC8, 0x28, 0x41, 0xF8, 0xC8,
0x1C, 0x4E, 0x97, 0x11, 0x3D, 0xAF, 0x03, 0xE3, 0xBD, 0x19, 0x7B, 0x10, 0xB0, 0xEF, 0xF1, 0xA0,
0x00, 0x58, 0x72, 0x51, 0xAA, 0xCE, 0x47, 0xA5, 0x23, 0x36, 0xD3, 0x05, 0xD8, 0x65, 0x1D, 0x0E,
0xAA, 0xE9, 0x11, 0x9D, 0x37, 0x1C, 0x59, 0x43, 0x10, 0x75, 0x9D, 0x35, 0x10, 0xCE, 0x97, 0xCC,
0xAF, 0x89, 0x90, 0x5F, 0x53, 0x72, 0xA6, 0xFF, 0xA1, 0x96, 0x39, 0x55, 0x6B, 0xD5, 0x86, 0xCA,
0xFE, 0xC4, 0xE3, 0x0F, 0xF5, 0xB8, 0x45, 0x66, 0xAB, 0x0E, 0xC3, 0x23, 0xDE, 0x0C, 0x59, 0x74,
0xC5, 0xA1, 0x32, 0x18, 0x6A, 0x7B, 0x76, 0xD9, 0xB3, 0x89, 0xDA, 0xA8, 0x47, 0x8D, 0x11, 0xFF,
0x1C, 0x7E, 0x69, 0x20, 0xC5, 0x0D, 0xF5, 0xA1, 0x4D, 0xD5, 0x86, 0x58, 0x9C, 0x3B, 0x28, 0x49,
0x85, 0x1E, 0x36, 0x1A, 0xC3, 0x84, 0xF1, 0x65, 0x12, 0x29, 0x44, 0x42, 0xD9, 0x9B, 0xA8, 0xEB,
0x9C, 0x91, 0x60, 0x1C, 0xE9, 0xEC, 0x32, 0x00, 0xAD, 0x07, 0x66, 0x8A, 0xF5, 0x6A, 0x96, 0x7C,
0xD4, 0xDA, 0x76, 0x0D, 0x92, 0x86, 0x9A, 0x05, 0x17, 0x48, 0x33, 0x6A, 0x9D, 0x1A, 0xA6, 0x19,
0x78, 0x11, 0xB1, 0xB0, 0x66, 0xB7, 0x6B, 0x59, 0x2E, 0x52, 0xEB, 0xD6, 0xA4, 0x61, 0xD4, 0x30,
0x7D, 0x18, 0x24, 0xCC, 0x1F, 0xD6, 0x94, 0x16, 0x10, 0xB2, 0x8D, 0x6E, 0x37, 0x02, 0xBB, 0x8A,
0x80, 0xD2, 0x8F, 0x2D, 0x14, 0x8E, 0x29, 0x50, 0xF4, 0xF6, 0x50, 0xD4, 0xE9, 0x16, 0x08, 0xC1,
0x87, 0x3F, 0x4C, 0x93, 0x5D, 0x45, 0x68, 0x99, 0x02, 0x23, 0x5E, 0x25, 0xCA, 0x5E, 0x19, 0xA5,
0xFB, 0x68, 0x8C, 0x76, 0x7F, 0x27, 0x06, 0xE7, 0x31, 0xA7, 0x74, 0x05, 0x0A, 0xD7, 0x11, 0x44,
0x75, 0x05, 0x4D, 0xDD, 0x1C, 0x61, 0x09, 0x5F, 0xE7, 0x51, 0x08, 0x3B, 0x3F, 0x1A, 0x61, 0xEF,
0x47, 0x20, 0x14, 0x29, 0x25, 0xA2, 0x2D, 0xB2, 0xEC, 0x9A, 0xED, 0x96, 0x54, 0x02, 0xEE, 0xB3,
0x2C, 0xBB, 0x46, 0x15, 0xB2, 0x8D, 0x9D, 0xC4, 0x5E, 0xED, 0xF8, 0x47, 0xAA, 0xE8, 0xDF, 0xAB,
0x9F, 0x3F, 0x56, 0x39, 0x7F, 0xB0, 0x66, 0xFE, 0xBD, 0x6A, 0xF9, 0x63, 0x75, 0xF2, 0xC7, 0x2A,
0xE4, 0x3F, 0x44, 0x1B, 0x0B, 0xD7, 0x88, 0x8F, 0x58, 0x37, 0x3D, 0xE3, 0x63, 0x15, 0xD5, 0x76,
0xE1, 0xFF, 0x5A, 0xDE, 0x42, 0xAC, 0xBD, 0xEB, 0xEA, 0x8E, 0xF2, 0xD6, 0xD6, 0x7B, 0xCA, 0xDB,
0xAE, 0x6E, 0x39, 0xF4, 0x69, 0x2A, 0x6F, 0x2D, 0x79, 0xE9, 0xE9, 0x96, 0x25, 0x2E, 0x6D, 0x31,
0xD8, 0x81, 0x8B, 0x49, 0x97, 0xBE, 0x6E, 0x75, 0xE9, 0xB3, 0x4F, 0x43, 0x36, 0x2C, 0xB7, 0xE5,
0xC5, 0xD6, 0xAD, 0x1E, 0x5D, 0x7A, 0x34, 0xD6, 0x41, 0xAC, 0x1D, 0xE5, 0x1B, 0x1E, 0x30, 0x89,
0xBF, 0xC2, 0x09, 0xA9, 0x19, 0x53, 0x13, 0xF5, 0x5C, 0x8D, 0x4E, 0xBA, 0xF3, 0xA0, 0x22, 0x6D,
0xBF, 0xC4, 0x0A, 0x98, 0x69, 0xF7, 0xA5, 0x78, 0xD4, 0x18, 0x31, 0x0C, 0x43, 0x7A, 0x39, 0x02,
0xA9, 0x54, 0xD8, 0xE8, 0x2A, 0x44, 0x20, 0x55, 0x2B, 0x70, 0x40, 0x22, 0x80, 0xEF, 0xBE, 0x9C,
0x43, 0xBD, 0x16, 0x5D, 0xA5, 0x75, 0xA6, 0xF3, 0x8C, 0x69, 0x75, 0x36, 0x62, 0x4D, 0x1E, 0xBF,
0x8D, 0x57, 0x2C, 0xF9, 0x15, 0xD2, 0xE0, 0xBA, 0xA6, 0x1D, 0xD5, 0xF9, 0x88, 0x6F, 0x8C, 0x9D,
0x18, 0xD6, 0x80, 0x1F, 0xB1, 0x13, 0x6B, 0x60, 0x16, 0x58, 0xF1, 0x39, 0xB3, 0xC7, 0x27, 0x33,
0x2A, 0x24, 0xA8, 0x2C, 0x42, 0x0A, 0x31, 0xE6, 0x73, 0x4C, 0x16, 0x30, 0xE3, 0x18, 0x06, 0x53,
0xC0, 0xA6, 0x96, 0xDB, 0x1D, 0xE7, 0xB4, 0x72, 0xA0, 0xA8, 0x0D, 0xD6, 0x14, 0x50, 0x3A, 0x6F,
0x54, 0x97, 0x7C, 0x2F, 0x7F, 0xB9, 0x88, 0xB9, 0x17, 0x2A, 0xE2, 0x6D, 0x1D, 0x02, 0xE2, 0x38,
0x70, 0x18, 0x06, 0xF2, 0x59, 0xBF, 0x0C, 0xB2, 0x84, 0xEF, 0x87, 0x21, 0xDE, 0x4F, 0x26, 0xCB,
0x85, 0xF8, 0x3B, 0x09, 0x45, 0xA5, 0xA5, 0x47, 0x73, 0x06, 0x29, 0xA1, 0x32, 0x0F, 0x22, 0x50,
0x9A, 0x1A, 0x15, 0x1E, 0xC2, 0x2F, 0xCC, 0x40, 0xAB, 0x46, 0xB5, 0x3E, 0xDC, 0x89, 0x84, 0xAF,
0x86, 0x3B, 0xC4, 0x39, 0x3C, 0x64, 0x05, 0x20, 0x44, 0x02, 0x96, 0x85, 0xF5, 0xE6, 0xFC, 0x5F,
0x54, 0xDD, 0x8F, 0x27, 0xCB, 0x39, 0xC8, 0xB1, 0x79, 0xC5, 0xF8, 0xEB, 0x90, 0xE1, 0xED, 0x2F,
0x77, 0xA7, 0x20, 0x3F, 0x59, 0x5E, 0x6A, 0xCD, 0x20, 0x8A, 0x58, 0xF2, 0xDB, 0xC5, 0xBB, 0xB7,
0x23, 0xAE, 0x13, 0x3B, 0x41, 0xD4, 0x2F, 0xCA, 0xA9, 0x93, 0xE0, 0x74, 0x58, 0xC9, 0xA6, 0x20,
0x8B, 0xE1, 0xA7, 0xF8, 0x06, 0xCC, 0xFB, 0x29, 0xE6, 0x54, 0x7A, 0x65, 0x4E, 0x24, 0x3D, 0xB6,
0x36, 0xA4, 0xD3, 0xF1, 0x24, 0xB3, 0xB4, 0xF2, 0x1B, 0xAD, 0x07, 0x52, 0x9F, 0x4A, 0xD6, 0x06,
0x4B, 0x58, 0xDD, 0x84, 0x34, 0xC6, 0x7A, 0x44, 0x16, 0x84, 0x09, 0x16, 0xA4, 0x42, 0x25, 0x8B,
0x2D, 0x32, 0x22, 0x50, 0xCD, 0x10, 0xB3, 0x73, 0xF0, 0x0F, 0xB5, 0x63, 0xA8, 0x77, 0xB1, 0xFE,
0xCA, 0xCA, 0x2B, 0x75, 0xCD, 0x9A, 0xA4, 0x5B, 0x4D, 0xA0, 0x8F, 0xD7, 0x33, 0xBD, 0x2B, 0xAB,
0xEF, 0x96, 0x66, 0x37, 0xB1, 0x70, 0xD4, 0x39, 0x5D, 0xB4, 0xB5, 0x86, 0x5C, 0x1B, 0x95, 0x59,
0xF4, 0xF2, 0x65, 0x1D, 0xF4, 0xD2, 0xD4, 0x28, 0xC7, 0x44, 0x06, 0x06, 0x98, 0xEC, 0xC6, 0x90,
0xBD, 0xC6, 0x47, 0xD9, 0x6E, 0x82, 0x53, 0xC3, 0xB8, 0xD1, 0xD0, 0x54, 0xC3, 0x02, 0xAE, 0x0B,
0xEC, 0x75, 0x39, 0xFF, 0x39, 0xFE, 0xD2, 0xC4, 0x06, 0x8D, 0x06, 0xB8, 0x88, 0x95, 0x17, 0x67,
0xC7, 0x52, 0x65, 0xA8, 0x04, 0x05, 0x27, 0x54, 0xF6, 0x3C, 0x25, 0x87, 0xB4, 0xC3, 0x09, 0x29,
0xC7, 0x0A, 0xFC, 0x57, 0x78, 0x22, 0x4B, 0xB7, 0xC1, 0x93, 0xE8, 0xB6, 0x85, 0xFE, 0xC8, 0xC6,
0xFB, 0x8E, 0xB8, 0x74, 0x69, 0xCC, 0x42, 0x1F, 0xF2, 0xD6, 0xB2, 0xE5, 0xA7, 0xA5, 0xE0, 0x32,
0xEB, 0x11, 0x5E, 0x05, 0x5F, 0x60, 0x53, 0x6E, 0x2D, 0x11, 0x8B, 0xEF, 0xF0, 0x5A, 0x53, 0x6E,
0x6D, 0xB8, 0x80, 0xF7, 0xBD, 0xB3, 0x29, 0x0E, 0x6E, 0x60, 0x10, 0x5F, 0x0D, 0x49, 0xBE, 0x55,
0x6B, 0x65, 0x87, 0x94, 0xAD, 0x26, 0xCA, 0x63, 0x61, 0xA0, 0x76, 0x74, 0xF1, 0x4A, 0xE6, 0xCF,
0x7F, 0xC8, 0x04, 0xFA, 0x8F, 0xCC, 0x8B, 0xAB, 0xF9, 0x3B, 0x42, 0x8B, 0xDB, 0xA1, 0x8A, 0x8F,
0x9A, 0xC4, 0xB3, 0xA5, 0x1A, 0x58, 0x04, 0xB9, 0xB0, 0x12, 0x4B, 0x51, 0x62, 0x8D, 0x5A, 0xFE,
0x34, 0x49, 0x3C, 0x4C, 0xAA, 0x94, 0x6A, 0xA5, 0xEE, 0x75, 0x0D, 0x77, 0xDE, 0x00, 0xD6, 0x55,
0x7A, 0xF9, 0xAB, 0x89, 0x7F, 0x54, 0xD7, 0xBC, 0xFA, 0x06, 0x72, 0xDB, 0x58, 0xF0, 0xF2, 0x65,
0x69, 0xC5, 0xF6, 0xF4, 0xF7, 0xEF, 0xA8, 0x1A, 0x96, 0x26, 0x4F, 0x29, 0xCA, 0x36, 0xEC, 0xC6,
0x5F, 0xBC, 0x3A, 0x86, 0x33, 0x8A, 0xD3, 0x6E, 0xE8, 0x80, 0x5C, 0x4B, 0xB3, 0xA5, 0xA9, 0x99,
0x97, 0xBE, 0x5F, 0x45, 0x1F, 0x92, 0x78, 0xC1, 0x12, 0x7E, 0x57, 0x57, 0xA9, 0x89, 0xA5, 0x9D,
0xD4, 0x41, 0xD9, 0x4C, 0x01, 0xB2, 0x03, 0x1F, 0x2E, 0x2A, 0xE1, 0xD3, 0x06, 0xD9, 0x42, 0x89,
0x5F, 0x7E, 0xCD, 0x14, 0xCA, 0xFC, 0x4B, 0xAD, 0xCC, 0x9D, 0x3F, 0x64, 0x57, 0xF4, 0x0F, 0xB5,
0x64, 0xC2, 0xAF, 0x20, 0x76, 0x70, 0x56, 0x27, 0x0F, 0x55, 0x65, 0xB4, 0x5A, 0xD3, 0xB0, 0x3E,
0x41, 0xA4, 0xE5, 0x22, 0xA3, 0x72, 0x76, 0xDC, 0x5A, 0xD8, 0x22, 0x7E, 0xA0, 0x96, 0x17, 0x66,
0x93, 0x80, 0xC5, 0x24, 0x9B, 0x16, 0x93, 0x48, 0x8B, 0x19, 0x6D, 0x5A, 0x4C, 0xB2, 0x6D, 0x31,
0xCF, 0xB2, 0x95, 0x92, 0x9D, 0xF4, 0x45, 0x50, 0xEE, 0x63, 0x78, 0x85, 0xD0, 0x0C, 0x51, 0x58,
0x7E, 0xB4, 0x31, 0xD0, 0xBA, 0x68, 0x17, 0x2E, 0x5A, 0x52, 0x9B, 0xCC, 0xC9, 0xA6, 0xA5, 0x78,
0xC1, 0xF0, 0x8C, 0xC6, 0xE5, 0x10, 0x7C, 0x9B, 0x3E, 0x6D, 0x61, 0x5B, 0x30, 0xFF, 0xB8, 0xE8,
0x5C, 0x28, 0x3F, 0x09, 0xA4, 0x5A, 0x3D, 0x2A, 0xB9, 0x9A, 0xE6, 0xB9, 0xCC, 0xF6, 0xEB, 0x91,
0x65, 0x3F, 0x5B, 0x0A, 0xF0, 0x25, 0x41, 0x25, 0x85, 0xA0, 0x86, 0x99, 0xA4, 0x36, 0xE6, 0x0A,
0x65, 0xC9, 0xB5, 0xA4, 0xA4, 0x2E, 0xA5, 0xC5, 0xBB, 0xD5, 0x51, 0x2F, 0x6B, 0xE3, 0xD3, 0xB5,
0x6A, 0x3F, 0xBD, 0xCF, 0x52, 0xAC, 0xBD, 0x11, 0x31, 0xEB, 0x01, 0x97, 0x43, 0x62, 0x70, 0xA2,
0xAA, 0x03, 0x15, 0x9B, 0xC2, 0x07, 0x42, 0x29, 0x3E, 0x9F, 0x2A, 0x03, 0x45, 0x27, 0x2A, 0x3E,
0x4D, 0x52, 0x2A, 0x5E, 0x42, 0x09, 0x52, 0x08, 0xF1, 0x69, 0x5A, 0xEE, 0x04, 0x8A, 0x86, 0x86,
0x12, 0x70, 0xD8, 0x23, 0x73, 0x59, 0xB5, 0x56, 0x4D, 0xB2, 0x44, 0xA9, 0x6D, 0x34, 0x82, 0x6A,
0xC7, 0x7F, 0x8D, 0x15, 0x1E, 0x2B, 0xE2, 0x35, 0xB7, 0xA0, 0x78, 0xD6, 0xEE, 0x1D, 0x1F, 0xA0,
0xAE, 0x68, 0x43, 0x57, 0x63, 0xFD, 0x5E, 0x00, 0xEA, 0xDB, 0x57, 0xCE, 0x23, 0xBB, 0x2C, 0x45,
0x42, 0x26, 0xCD, 0x1D, 0xD3, 0xC4, 0x38, 0x9A, 0x06, 0xC9, 0xBC, 0xAE, 0xFE, 0x2A, 0x6E, 0x14,
0x1F, 0xA7, 0x70, 0x4D, 0x3C, 0x45, 0x9D, 0x16, 0x79, 0x11, 0xD8, 0x63, 0x25, 0x79, 0xA4, 0x45,
0xC0, 0x52, 0xB6, 0x85, 0x33, 0xCB, 0x3E, 0x0F, 0xA1, 0x85, 0x35, 0xA0, 0xC7, 0x71, 0x72, 0x77,
0x00, 0x37, 0xAC, 0xA9, 0xA2, 0x2F, 0x3D, 0xDE, 0x91, 0xDD, 0xA2, 0x45, 0x02, 0x21, 0x9D, 0xD7,
0xD5, 0x57, 0x19, 0x3A, 0xEA, 0x05, 0x43, 0xFE, 0x03, 0x4A, 0x12, 0x2D, 0xC3, 0x10, 0xFC, 0xF6,
0x06, 0xEA, 0x49, 0x86, 0x03, 0x95, 0x1E, 0x1C, 0xCF, 0x1C, 0x12, 0xD6, 0x62, 0x87, 0xF2, 0x52,
0xCA, 0x1C, 0x70, 0x9B, 0x68, 0x14, 0xB1, 0x95, 0xF2, 0x5F, 0xEF, 0xDE, 0xFE, 0xC6, 0xF9, 0xE2,
0x8C, 0x5D, 0x2F, 0x21, 0x81, 0xD5, 0xC3, 0x91, 0xDA, 0x22, 0x65, 0x3E, 0x11, 0xEF, 0x9D, 0x8F,
0xE0, 0x18, 0xFB, 0xF5, 0x72, 0x53, 0xBD, 0x90, 0x27, 0x11, 0x50, 0x0C, 0x9A, 0xD4, 0x6C, 0x36,
0xB1, 0xC5, 0x03, 0xE9, 0x26, 0xA2, 0x13, 0xAD, 0xEC, 0x06, 0x8B, 0xB0, 0x67, 0xF6, 0xF1, 0xEC,
0xB4, 0xCE, 0x35, 0x31, 0x29, 0x7A, 0x7C, 0xA5, 0x89, 0x72, 0x76, 0xA7, 0x47, 0xCD, 0x38, 0x82,
0x83, 0xF9, 0x77, 0x98, 0x12, 0xB2, 0x09, 0xA4, 0x67, 0x57, 0x6C, 0x94, 0xE7, 0x40, 0xDA, 0xBD,
0x3B, 0x1A, 0x45, 0x4D, 0x5A, 0x80, 0x19, 0x35, 0xF0, 0xA4, 0x6E, 0x9B, 0x26, 0x8E, 0x89, 0x14,
0xF2, 0x64, 0x47, 0x76, 0xFE, 0x1F, 0xE7, 0xEF, 0x7F, 0x87, 0xB8, 0x9B, 0x40, 0x4A, 0x8F, 0xA0,
0xE9, 0x22, 0x8E, 0x52, 0x76, 0xC1, 0x6E, 0xB9, 0xA6, 0x0D, 0x5C, 0xD3, 0x2A, 0x01, 0x9F, 0xBD,
0xAD, 0x6B, 0x83, 0x3A, 0x88, 0x3B, 0x8D, 0x43, 0xD6, 0x0C, 0xE3, 0xAB, 0x7A, 0x36, 0xA5, 0xE9,
0x6F, 0x3E, 0xBD, 0xC6, 0x16, 0x20, 0x30, 0x59, 0x5B, 0x23, 0x95, 0x0B, 0x16, 0xD5, 0xD5, 0xBF,
0xBE, 0xBE, 0x80, 0x23, 0xEB, 0x90, 0x59, 0xC1, 0x50, 0x0A, 0x2C, 0xAF, 0x6F, 0x88, 0x40, 0x3C,
0x15, 0x90, 0x32, 0x3E, 0x68, 0x15, 0xD9, 0x83, 0x0A, 0x4D, 0x78, 0x16, 0x2C, 0x21, 0x4C, 0x0C,
0xD6, 0x22, 0xC8, 0x68, 0xF7, 0x7B, 0x81, 0xAB, 0x0F, 0x62, 0xB5, 0x66, 0xE5, 0x99, 0x6B, 0x26,
0x96, 0xFD, 0xF6, 0x95, 0x5C, 0x01, 0x0C, 0x79, 0xEC, 0x66, 0xF1, 0xC4, 0x40, 0x3E, 0x3D, 0x08,
0x99, 0x3A, 0x14, 0x85, 0x0D, 0xEA, 0xCD, 0x9B, 0x38, 0x99, 0xBF, 0xF2, 0xB8, 0x37, 0xE4, 0x4D,
0x6F, 0xB1, 0xC0, 0xC3, 0x0A, 0xEB, 0x2C, 0xE7, 0xDB, 0x45, 0xA8, 0x8C, 0x20, 0x54, 0x46, 0x47,
0x19, 0xFD, 0xC3, 0x08, 0x82, 0xA4, 0x4C, 0xDD, 0xD9, 0xE7, 0xE8, 0x0B, 0x78, 0xE1, 0x72, 0x4D,
0x17, 0x4A, 0x2F, 0x7A, 0xAE, 0x16, 0xC8, 0x03, 0x3D, 0x14, 0xE1, 0x53, 0x2F, 0xF6, 0x2B, 0x1E,
0xDF, 0x00, 0xD7, 0xB7, 0x11, 0x68, 0xEB, 0x7A, 0xA5, 0xAD, 0xBC, 0x43, 0xDD, 0x35, 0x29, 0xB9,
0x0F, 0xEF, 0xCF, 0x2F, 0xB0, 0xBA, 0x20, 0x7C, 0x2A, 0x49, 0xB0, 0x02, 0xDA, 0x94, 0x17, 0x88,
0x61, 0xAF, 0x6F, 0x60, 0x97, 0xB7, 0xE0, 0xB3, 0x18, 0x28, 0x3D, 0x72, 0x4C, 0x3C, 0x7F, 0x51,
0xF5, 0x22, 0x35, 0xD7, 0xEE, 0x41, 0x5C, 0xD9, 0x59, 0xC1, 0xEC, 0x16, 0x4B, 0x6A, 0x6A, 0x66,
0x65, 0x21, 0xEA, 0x92, 0xE7, 0x33, 0xBF, 0x25, 0xCB, 0xB8, 0x7F, 0x83, 0x8A, 0x6A, 0xBF, 0x89,
0x09, 0x91, 0x08, 0x31, 0x1E, 0xF0, 0x8C, 0x0F, 0xC9, 0x5D, 0x41, 0xC1, 0x37, 0xB0, 0xA4, 0x7D,
0x83, 0x7F, 0x25, 0x50, 0x37, 0x35, 0xAC, 0xC1, 0xD6, 0x6B, 0x9D, 0x92, 0xBD, 0xA2, 0x83, 0x6D,
0x6D, 0x1C, 0x3C, 0x8E, 0x68, 0xB8, 0x64, 0x73, 0x64, 0x61, 0xA3, 0xEA, 0x2A, 0x69, 0x31, 0xF5,
0xE7, 0x91, 0xF7, 0x0C, 0x85, 0x94, 0xCF, 0xB0, 0x0E, 0x87, 0x96, 0xC2, 0x88, 0xE4, 0x76, 0xB0,
0xFE, 0xA0, 0x43, 0xA8, 0x1E, 0xAA, 0xEA, 0x1C, 0xB4, 0x81, 0x18, 0x96, 0x76, 0xBF, 0xDE, 0xE0,
0x13, 0x99, 0x3B, 0xD7, 0xD6, 0x85, 0xC1, 0x43, 0xC2, 0xF3, 0xFB, 0x72, 0x3E, 0x06, 0x25, 0x21,
0x8F, 0x5B, 0x58, 0x02, 0x8A, 0x5D, 0xE6, 0x86, 0xE0, 0xCD, 0xA5, 0x9A, 0x1C, 0xF1, 0xA1, 0x06,
0xCE, 0xD6, 0x54, 0x1B, 0x51, 0xD6, 0x14, 0x8F, 0x0A, 0x5C, 0x70, 0xBA, 0x0F, 0xBF, 0x62, 0xA8,
0xCF, 0xBD, 0x07, 0xEA, 0x32, 0x98, 0x1F, 0xCB, 0x3B, 0xE8, 0xC8, 0x81, 0x37, 0x10, 0x1A, 0xFE,
0xC6, 0x30, 0x1E, 0x36, 0x54, 0x43, 0x6D, 0x94, 0x28, 0xC0, 0xD9, 0x77, 0x71, 0xC4, 0x67, 0x30,
0x05, 0x39, 0xDE, 0xCE, 0x79, 0x44, 0x07, 0x49, 0xCA, 0xEE, 0xC9, 0xDF, 0x62, 0xA8, 0x90, 0xF7,
0xCE, 0xBE, 0x0B, 0xA2, 0x25, 0x67, 0xFB, 0xE7, 0xCF, 0x19, 0xB8, 0x51, 0x5F, 0xCC, 0x17, 0xA7,
0xFA, 0x2D, 0xF0, 0xD9, 0xCF, 0x61, 0x88, 0x06, 0x93, 0x3F, 0x89, 0x31, 0xB7, 0x9F, 0xC4, 0xBC,
0x7C, 0x99, 0x3F, 0x27, 0x6A, 0x4E, 0xC2, 0x18, 0x7B, 0x31, 0x85, 0xDC, 0xE9, 0x35, 0xFA, 0x51,
0xF5, 0x6B, 0x43, 0xAD, 0x83, 0x9C, 0x27, 0x22, 0x14, 0x31, 0x5F, 0x7B, 0x42, 0x7E, 0xC4, 0xF6,
0x2F, 0x2D, 0xBD, 0xB2, 0x93, 0x69, 0xA4, 0xFC, 0x23, 0x83, 0x91, 0x8A, 0x7F, 0x65, 0x70, 0x60,
0x97, 0xFC, 0x81, 0xF7, 0x6E, 0xC0, 0x82, 0x23, 0x79, 0x58, 0xB9, 0xCF, 0x78, 0xA3, 0xBE, 0xF1,
0x40, 0x55, 0x7D, 0xCC, 0xAD, 0x8A, 0x27, 0x59, 0xF8, 0x07, 0x01, 0x50, 0x03, 0xBC, 0xF9, 0xF4,
0xA2, 0xDC, 0xE0, 0x7A, 0xF3, 0xE9, 0xFD, 0xD7, 0xFA, 0x81, 0xD0, 0xB0, 0x2F, 0x58, 0xB3, 0x43,
0x06, 0x78, 0xE8, 0xD4, 0xF4, 0xB7, 0x70, 0xCF, 0x3A, 0xB6, 0x80, 0x2C, 0x48, 0x3F, 0x8D, 0x02,
0xFE, 0xF1, 0x54, 0x2A, 0x77, 0xBC, 0x2B, 0x2F, 0x01, 0xEB, 0x6D, 0x4D, 0x44, 0x06, 0x73, 0x22,
0xAF, 0x68, 0x97, 0x95, 0xD4, 0x41, 0xFD, 0x0C, 0xE9, 0x67, 0xCF, 0x34, 0xBF, 0x40, 0x96, 0xB4,
0xE7, 0xF9, 0xDF, 0xF6, 0x93, 0xC4, 0x72, 0x7C, 0x57, 0x91, 0x0E, 0xE5, 0xE3, 0x29, 0xD4, 0x05,
0xF1, 0x03, 0x99, 0x07, 0x78, 0x78, 0x48, 0x3E, 0xE2, 0x52, 0xF2, 0x91, 0x59, 0xA6, 0x68, 0xF8,
0x91, 0x97, 0x8C, 0xB3, 0x7C, 0x41, 0x7A, 0x7E, 0x53, 0x8F, 0x08, 0xA4, 0xF0, 0x2B, 0xD9, 0xB3,
0xBF, 0x9F, 0x80, 0x64, 0x80, 0x2A, 0x13, 0x53, 0x5D, 0x88, 0x29, 0x85, 0xF4, 0x14, 0x8E, 0x06,
0x9B, 0x98, 0x43, 0x16, 0xA6, 0x2C, 0xF7, 0x2A, 0x21, 0xC4, 0xD7, 0xF0, 0x28, 0x5B, 0x32, 0x0C,
0xB3, 0xF8, 0x1A, 0x8C, 0xA2, 0xCF, 0xE1, 0x97, 0x6C, 0x97, 0x01, 0xEC, 0x02, 0x52, 0x51, 0x6E,
0x58, 0x92, 0xC2, 0x31, 0xA0, 0x46, 0x0D, 0x3E, 0x9B, 0x5F, 0x64, 0xBA, 0x08, 0xC9, 0xD3, 0x01,
0x49, 0x66, 0x6F, 0xD1, 0x55, 0x14, 0xE8, 0x46, 0x6D, 0x04, 0x9F, 0xAD, 0x2F, 0x50, 0xD7, 0x34,
0x34, 0x5D, 0xAD, 0xF2, 0x76, 0x0B, 0xF9, 0x06, 0xEB, 0x41, 0xF5, 0xD5, 0x17, 0x23, 0x04, 0x97,
0x4B, 0x24, 0x96, 0x4D, 0x91, 0x6D, 0xE1, 0xD9, 0x78, 0xF4, 0x1B, 0x7C, 0xB6, 0x73, 0x0C, 0x95,
0x87, 0xC0, 0xC1, 0x67, 0x27, 0x9F, 0x20, 0x4F, 0x72, 0x4E, 0x53, 0xF9, 0x46, 0xB3, 0x38, 0xE5,
0x94, 0x55, 0xEF, 0xE5, 0x82, 0xF0, 0x2D, 0x9B, 0x24, 0xAE, 0x41, 0xEE, 0xFC, 0xA4, 0xBE, 0xB7,
0xE3, 0xAC, 0x0B, 0x3B, 0xD4, 0x06, 0x28, 0xA5, 0xF5, 0x1A, 0xC5, 0xA4, 0x50, 0x62, 0x19, 0x57,
0x13, 0x4B, 0x9C, 0xD6, 0xAB, 0x02, 0x97, 0xDA, 0xA2, 0x0D, 0x21, 0x93, 0xCD, 0x5D, 0x01, 0xC4,
0xE8, 0xB8, 0x9C, 0x60, 0x32, 0x4A, 0x4F, 0xE2, 0xAD, 0x04, 0xB3, 0x72, 0xC6, 0xFB, 0x47, 0x79,
0xD1, 0x7A, 0x3E, 0x34, 0xDA, 0x6D, 0x2F, 0x27, 0x68, 0x89, 0x9F, 0xD8, 0x58, 0xA2, 0x55, 0x57,
0xF8, 0x32, 0xB4, 0xDA, 0x28, 0xF3, 0xB9, 0x01, 0x5A, 0xD5, 0xA8, 0xCA, 0xA4, 0xA1, 0xB6, 0x56,
0x90, 0x10, 0x7D, 0x56, 0xBD, 0xC4, 0x5F, 0x06, 0x20, 0xE7, 0x2F, 0xDA, 0xE0, 0x59, 0x88, 0x2A,
0x28, 0xB4, 0xE6, 0x38, 0x88, 0xA0, 0xD4, 0xBC, 0xA0, 0xF7, 0x12, 0xBC, 0x24, 0xF1, 0xEE, 0xC6,
0xCB, 0xE9, 0x94, 0x41, 0xC5, 0x53, 0x9C, 0x2C, 0x8E, 0x90, 0x53, 0xA3, 0x72, 0x2E, 0x56, 0x31,
0xF0, 0x4F, 0xE7, 0xAA, 0xB6, 0xEB, 0x59, 0xBF, 0xB9, 0xAE, 0x20, 0x21, 0x06, 0x55, 0xB0, 0xEC,
0x7C, 0x3F, 0xA0, 0x82, 0xFA, 0x7F, 0x08, 0xB7, 0x0C, 0x64, 0xDF, 0xBF, 0xA7, 0x8C, 0x63, 0xC0,
0x8E, 0x97, 0xBC, 0x5E, 0x92, 0x8C, 0xEE, 0x30, 0x47, 0xAB, 0xEE, 0x45, 0xEF, 0x12, 0x1C, 0xA4,
0x18, 0x8B, 0xC5, 0x0A, 0x48, 0xF6, 0x36, 0xC2, 0x46, 0xCA, 0xF9, 0x02, 0x82, 0xAD, 0x0F, 0x29,
0x39, 0xD4, 0xDF, 0xB0, 0x65, 0x34, 0x61, 0x50, 0x90, 0xFE, 0x8C, 0x7C, 0xFA, 0x85, 0xF8, 0xA4,
0x15, 0x09, 0x28, 0xAE, 0x2A, 0x3B, 0x05, 0xFB, 0x68, 0x94, 0xBD, 0x11, 0x00, 0x06, 0x90, 0x75,
0xBD, 0x4F, 0x5F, 0x81, 0x6D, 0x70, 0xB0, 0x0D, 0x18, 0xCB, 0xDE, 0x9A, 0xE0, 0x68, 0xEF, 0x55,
0x9F, 0xF9, 0x4A, 0xC1, 0x78, 0x4F, 0xD3, 0x1A, 0xBA, 0x01, 0xFA, 0x17, 0x14, 0x4A, 0xB0, 0x72,
0xEE, 0x05, 0xC1, 0xBE, 0x7C, 0x99, 0x47, 0xB6, 0x53, 0xAE, 0xA4, 0x8C, 0xCD, 0x53, 0xE5, 0x2E,
0x5E, 0x2A, 0xF8, 0xA6, 0x97, 0x8C, 0xD8, 0xCA, 0x14, 0xAA, 0x5F, 0xC5, 0x8B, 0x62, 0xF0, 0x17,
0xE0, 0xD9, 0x62, 0xA1, 0x8A, 0x3A, 0x2E, 0x4B, 0x68, 0x5D, 0x14, 0xAF, 0x94, 0x72, 0x80, 0x07,
0xB6, 0xAB, 0xAF, 0xCF, 0xCE, 0xDE, 0x9F, 0x15, 0xE4, 0x6E, 0xBF, 0xB9, 0xC1, 0xC1, 0x4F, 0x6C,
0xBE, 0xBB, 0xB1, 0x75, 0x18, 0x5C, 0xD4, 0x50, 0x15, 0x9C, 0x1C, 0xE0, 0x7B, 0x0B, 0xD6, 0x17,
0x4D, 0xAF, 0xA4, 0x7D, 0x1B, 0x59, 0x9F, 0x37, 0xC6, 0xA6, 0x3C, 0x16, 0x81, 0xA5, 0xC4, 0xAF,
0x02, 0x70, 0x8F, 0x65, 0x5B, 0x65, 0xD7, 0x93, 0xBA, 0x17, 0x32, 0x80, 0x92, 0xEF, 0x84, 0x29,
0x53, 0x0A, 0xF0, 0x75, 0x08, 0x64, 0x95, 0x65, 0x0D, 0x55, 0xA3, 0x1E, 0xC2, 0xE6, 0x41, 0xB4,
0xAD, 0x17, 0x50, 0xB4, 0xC1, 0x2E, 0x84, 0x90, 0x1A, 0xE8, 0xE0, 0x74, 0x8A, 0xD4, 0xFE, 0xFF,
0x41, 0x76, 0xBE, 0xD7, 0xA7, 0x6A, 0x83, 0x4C, 0x0D, 0x20, 0x28, 0x22, 0x51, 0x65, 0xC7, 0x57,
0x7E, 0xE3, 0xEE, 0x5E, 0x04, 0xD1, 0x6A, 0x83, 0x66, 0xE3, 0x55, 0x42, 0xE5, 0x44, 0xD5, 0x1E,
0x2E, 0xC2, 0x57, 0xCF, 0x2F, 0xC1, 0xF1, 0x85, 0xC0, 0xE7, 0xB1, 0xA5, 0xB4, 0xE9, 0x33, 0xC0,
0xF1, 0x7D, 0xBF, 0x43, 0xD5, 0xFB, 0x43, 0x90, 0xA5, 0xC8, 0xFE, 0xCC, 0x8C, 0xF0, 0x81, 0x3C,
0x58, 0xBC, 0xBF, 0x78, 0xB0, 0xC1, 0x90, 0x25, 0x34, 0xD5, 0x26, 0x83, 0xFE, 0x60, 0xFF, 0x40,
0x85, 0x68, 0xF2, 0xB4, 0xBE, 0x81, 0x68, 0x1B, 0x14, 0x70, 0xDA, 0xBA, 0xFC, 0x22, 0x97, 0xFE,
0xE4, 0xDE, 0xC1, 0x92, 0x94, 0x0B, 0xCE, 0xB7, 0xA3, 0x7D, 0xF0, 0xCF, 0xE9, 0x1B, 0x10, 0xAF,
0x1F, 0xEC, 0x1C, 0x6C, 0xC9, 0xFE, 0x71, 0x3D, 0x83, 0x87, 0xDA, 0x04, 0x59, 0x0E, 0xBC, 0xB3,
0x53, 0xF0, 0xB0, 0xF5, 0x3C, 0xD6, 0x05, 0x6D, 0x51, 0x7F, 0xE0, 0xAD, 0xD6, 0x03, 0x68, 0xB2,
0xF7, 0x5B, 0x9F, 0x67, 0x3E, 0xCF, 0xB7, 0xF8, 0x0A, 0x64, 0xF6, 0x4E, 0xF7, 0xE2, 0xF6, 0x91,
0x3E, 0xA2, 0x68, 0x6B, 0xFC, 0x83, 0x3C, 0xCA, 0x36, 0x78, 0x89, 0xC6, 0xA1, 0x70, 0xA1, 0x8F,
0xEB, 0x9F, 0xA0, 0xFB, 0x54, 0x2D, 0x7A, 0xE0, 0x28, 0x54, 0xE0, 0xE5, 0x4B, 0xD5, 0xAD, 0x7E,
0x2D, 0xCF, 0x7E, 0xFF, 0x5E, 0x0D, 0xBB, 0xAA, 0x0D, 0xB1, 0x3D, 0x9B, 0xD4, 0xAA, 0xF1, 0x6E,
0x82, 0xA9, 0x8E, 0x88, 0x78, 0x54, 0x14, 0x29, 0xB8, 0x95, 0x53, 0x5E, 0x2F, 0x0C, 0x88, 0x9C,
0xC8, 0x83, 0xF6, 0x82, 0xEF, 0x38, 0xB8, 0xA6, 0xCE, 0x47, 0x90, 0xC0, 0xD1, 0xDF, 0x0C, 0x02,
0x93, 0xEB, 0x25, 0xBD, 0x8E, 0x1A, 0x23, 0xEB, 0x61, 0x0F, 0x27, 0x24, 0x13, 0x3D, 0x46, 0xE1,
0x0A, 0xDD, 0x75, 0x2D, 0x23, 0xD2, 0x5D, 0xF3, 0x28, 0x82, 0x04, 0x66, 0x02, 0xAA, 0x9B, 0xE4,
0xFB, 0x63, 0xB7, 0x7C, 0x33, 0x00, 0x42, 0x4E, 0x68, 0x61, 0x32, 0x49, 0x47, 0xAE, 0xF6, 0xA6,
0x76, 0x0C, 0xED, 0x6B, 0x57, 0x15, 0x61, 0x14, 0xAB, 0x92, 0xFD, 0x66, 0x59, 0xBC, 0xC9, 0xFD,
0x60, 0x31, 0x4F, 0x6F, 0x02, 0x3F, 0x0B, 0x13, 0x85, 0x8F, 0xE1, 0x03, 0x91, 0x39, 0x2C, 0xFC,
0x43, 0x5E, 0x96, 0x1D, 0x58, 0xBD, 0xD8, 0x5A, 0x8D, 0xEF, 0xD8, 0x12, 0x11, 0x27, 0x1F, 0xCF,
0x5F, 0x9F, 0x95, 0x3B, 0x08, 0xE8, 0x73, 0x81, 0x84, 0x88, 0x83, 0x2F, 0x6E, 0xA8, 0x2F, 0x3F,
0xFC, 0x7C, 0x7E, 0xFE, 0xE9, 0xFD, 0xD9, 0xAB, 0xDD, 0x4B, 0x38, 0x2E, 0x39, 0xFF, 0xF8, 0xCB,
0xBB, 0xD3, 0x8B, 0xD1, 0x1D, 0x76, 0x8D, 0xC3, 0x1D, 0x41, 0x62, 0x18, 0x3E, 0xFC, 0x04, 0x23,
0xDC, 0x7A, 0x82, 0xF1, 0x02, 0xC6, 0x64, 0xAD, 0x48, 0x95, 0x63, 0x58, 0xAD, 0x1C, 0xF3, 0xD2,
0xB0, 0x92, 0xBB, 0x86, 0x79, 0xF9, 0x38, 0xC8, 0xDA, 0x29, 0x20, 0xF6, 0xB0, 0x5C, 0x3A, 0x46,
0x14, 0x9A, 0xC2, 0xAC, 0x74, 0x5C, 0x05, 0x91, 0x1F, 0xAF, 0x76, 0xF8, 0xEE, 0x0C, 0x7E, 0x3D,
0x3C, 0x6A, 0xC9, 0xD7, 0xB5, 0x8F, 0x5A, 0xF2, 0xAF, 0x44, 0xE8, 0x1F, 0xF0, 0xFD, 0x5F, 0xE9,
0xC1, 0x6D, 0x64, 0xC7, 0x57, 0x00, 0x00
};
#endif //__nofile_h

View File

@ -35,11 +35,13 @@
#if defined ( ARDUINO_ARCH_ESP8266)
#include "ESP8266WiFi.h"
#include <ESP8266WebServer.h>
#else //ESP32
#endif
#if defined ( ARDUINO_ARCH_ESP32)
#include <WiFi.h>
#include <WebServer.h>
#include "SPIFFS.h"
#include "Update.h"
#include <esp_ota_ops.h>
#endif
#include "GenLinkedList.h"
@ -72,16 +74,41 @@ WebSocketsServer * socket_server;
#define ESP_ERROR_BUFFER_OVERFLOW 11
#define ESP_ERROR_START_UPLOAD 12
void pushError(int code, const char * st){
void pushError(int code, const char * st, bool web_error = 500, uint16_t timeout = 1000){
if (socket_server && st) {
String s = "ERROR:" + String(code) + ":";
s+=st;
socket_server->sendTXT(ESPCOM::current_socket_id, s);
if (web_error != 0) {
if (web_interface) {
if (web_interface->web_server.client().available() > 0) {
web_interface->web_server.send (500, "text/xml", st);
}
}
}
uint32_t t = millis();
while (millis() - t < timeout) {
socket_server->loop();
delay(10);
}
}
uint32_t t = millis();
while (millis() - t < 1000) {
socket_server->loop();
delay(10);
}
//abort reception of packages
void cancelUpload(){
if (web_interface) {
if (web_interface->web_server.client().available() > 0) {
HTTPUpload& upload = (web_interface->web_server).upload();
upload.status = UPLOAD_FILE_ABORTED;
#if defined (ARDUINO_ARCH_ESP8266)
web_interface->web_server.client().stopAll();
#endif
#if defined (ARDUINO_ARCH_ESP32)
errno = ECONNABORTED;
web_interface->web_server.client().stop();
#endif
delay(100);
}
}
}
@ -135,18 +162,6 @@ const uint8_t PAGE_404 [] PROGMEM = "<HTML>\n<HEAD>\n<title>Redirecting...</titl
const uint8_t PAGE_CAPTIVE [] PROGMEM = "<HTML>\n<HEAD>\n<title>Captive Portal</title> \n</HEAD>\n<BODY>\n<CENTER>Captive Portal page : $QUERY$- you will be redirected...\n<BR><BR>\nif not redirected, <a href='http://$WEB_ADDRESS$'>click here</a>\n<BR><BR>\n<PROGRESS name='prg' id='prg'></PROGRESS>\n\n<script>\nvar i = 0; \nvar x = document.getElementById(\"prg\"); \nx.max=5; \nvar interval=setInterval(function(){\ni=i+1; \nvar x = document.getElementById(\"prg\"); \nx.value=i; \nif (i>5) \n{\nclearInterval(interval);\nwindow.location.href='/';\n}\n},1000);\n</script>\n</CENTER>\n</BODY>\n</HTML>\n\n";
#define CONTENT_TYPE_HTML "text/html"
void cancelUpload(){
HTTPUpload& upload = (web_interface->web_server).upload();
upload.status = UPLOAD_FILE_ABORTED;
#if defined ( ARDUINO_ARCH_ESP8266)
web_interface->web_server.client().stopAll();
#else
errno = ECONNABORTED;
web_interface->web_server.client().stop();
#endif
delay(100);
}
//Root of Webserver/////////////////////////////////////////////////////
void handle_web_interface_root()
@ -236,6 +251,8 @@ void handle_login()
((sUser==FPSTR(DEFAULT_USER_LOGIN)) && (strcmp(sPassword.c_str(),suserPassword.c_str()) == 0)))) {
msg_alert_error=true;
smsg=F("Error: Incorrect password");
Serial.println(sPassword.c_str());
Serial.println(sadminPassword.c_str());
code = 401;
}
}
@ -363,6 +380,7 @@ void handleFileList()
String status = "Ok";
if ((web_interface->_upload_status == UPLOAD_STATUS_FAILED) || (web_interface->_upload_status == UPLOAD_STATUS_FAILED)) {
status = "Upload failed";
web_interface->_upload_status=UPLOAD_STATUS_NONE;
}
//be sure root is correct according authentication
if (auth_level == LEVEL_ADMIN) {
@ -615,17 +633,35 @@ void SPIFFSFileupload()
if (fsUploadFile ) {
fsUploadFile.close();
}
//create file
fsUploadFile = SPIFFS.open(filename, SPIFFS_FILE_WRITE);
//check If creation succeed
if (fsUploadFile) {
//if yes upload is started
web_interface->_upload_status= UPLOAD_STATUS_ONGOING;
} else {
//if no set cancel flag
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
ESPCOM::println (F ("Error ESP create"), PRINTER_PIPE);
pushError(ESP_ERROR_FILE_CREATION, "File creation failed");
if ((web_interface->web_server).hasArg (sizeargname.c_str()) ) {
uint32_t filesize = (web_interface->web_server).arg (sizeargname.c_str()).toInt();
#if defined ( ARDUINO_ARCH_ESP8266)
fs::FSInfo info;
SPIFFS.info(info);
uint32_t freespace = info.totalBytes- info.usedBytes;
#endif
#if defined ( ARDUINO_ARCH_ESP32)
uint32_t freespace = SPIFFS.totalBytes() - SPIFFS.usedBytes();
#endif
if (filesize > freespace) {
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
pushError(ESP_ERROR_NOT_ENOUGH_SPACE, "Upload rejected, not enough space");
}
}
if (web_interface->_upload_status != UPLOAD_STATUS_FAILED) {
//create file
fsUploadFile = SPIFFS.open(filename, SPIFFS_FILE_WRITE);
//check If creation succeed
if (fsUploadFile) {
//if yes upload is started
web_interface->_upload_status= UPLOAD_STATUS_ONGOING;
} else {
//if no set cancel flag
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
ESPCOM::println (F ("Error ESP create"), PRINTER_PIPE);
pushError(ESP_ERROR_FILE_CREATION, "File creation failed");
}
}
//Upload write
//**************
@ -697,22 +733,41 @@ void WebUpdateUpload()
if(upload.status == UPLOAD_FILE_START) {
ESPCOM::println (F ("Update Firmware"), PRINTER_PIPE);
web_interface->_upload_status= UPLOAD_STATUS_ONGOING;
String sizeargname = upload.filename + "S";
#if defined ( ARDUINO_ARCH_ESP8266)
WiFiUDP::stopAll();
#endif
size_t flashsize = 0;
#if defined ( ARDUINO_ARCH_ESP8266)
maxSketchSpace = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;
flashsize = (ESP.getFreeSketchSpace() - 0x1000) & 0xFFFFF000;
#else
//Not sure can do OTA on 2Mb board
maxSketchSpace = (ESP.getFlashChipSize()>0x20000)?0x140000:0x140000/2;
if (esp_ota_get_running_partition()) {
const esp_partition_t* partition = esp_ota_get_next_update_partition(NULL);
if (partition) {
flashsize = partition->size;
}
}
#endif
last_upload_update = 0;
if(!Update.begin(maxSketchSpace)) { //start with max available size
if ((web_interface->web_server).hasArg (sizeargname.c_str()) ) {
maxSketchSpace = (web_interface->web_server).arg (sizeargname).toInt();
} else {
maxSketchSpace = flashsize;
}
if ((flashsize > flashsize) || (flashsize == 0)) {
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
pushError(ESP_ERROR_NOT_ENOUGH_SPACE, "Upload rejected");
} else {
if (( CONFIG::GetFirmwareTarget() == REPETIER4DV) || (CONFIG::GetFirmwareTarget() == REPETIER)) ESPCOM::println (F ("Update 0%%"), PRINTER_PIPE);
else ESPCOM::println (F ("Update 0%"), PRINTER_PIPE);
}
if (web_interface->_upload_status != UPLOAD_STATUS_FAILED) {
last_upload_update = 0;
if(!Update.begin(maxSketchSpace)) { //start with max available size
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
pushError(ESP_ERROR_NOT_ENOUGH_SPACE, "Upload rejected");
} else {
if (( CONFIG::GetFirmwareTarget() == REPETIER4DV) || (CONFIG::GetFirmwareTarget() == REPETIER)) ESPCOM::println (F ("Update 0%%"), PRINTER_PIPE);
else ESPCOM::println (F ("Update 0%"), PRINTER_PIPE);
}
}
//Upload write
//**************
@ -745,12 +800,13 @@ void WebUpdateUpload()
} else if(upload.status == UPLOAD_FILE_ABORTED) {
ESPCOM::println (F("Update Failed"), PRINTER_PIPE);
web_interface->_upload_status=UPLOAD_STATUS_FAILED;
pushError(ESP_ERROR_UPLOAD_CANCELLED, "Upload cancelled");
//pushError(ESP_ERROR_UPLOAD_CANCELLED, "Upload cancelled");
}
}
if (web_interface->_upload_status==UPLOAD_STATUS_FAILED) {
cancelUpload();
Update.end();
}
CONFIG::wait(0);
@ -1337,7 +1393,7 @@ void SDFile_serial_upload()
} else { //UPLOAD_FILE_ABORTED
LOG("Error, Something happened\r\n");
web_interface->_upload_status= UPLOAD_STATUS_FAILED;
pushError(ESP_ERROR_UPLOAD_CANCELLED, "Upload cancelled");
//pushError(ESP_ERROR_UPLOAD_CANCELLED, "Upload cancelled");
}
}