diff --git a/platformio.ini b/platformio.ini index a0ee6a6f2..45f2148fe 100644 --- a/platformio.ini +++ b/platformio.ini @@ -4,14 +4,17 @@ [platformio] src_dir = ./wled00 data_dir = ./wled00/data -lib_extra_dirs = ./wled00/src +;lib_extra_dirs = ./wled00/src +lib_dir = ./wled00/src ; Please uncomment one of the 5 lines below to select your board ; env_default = nodemcuv2 ; env_default = esp01 ; env_default = esp01_1m ; env_default = d1_mini ; env_default = esp32dev - +; env_default = esp8285_4CH_MagicHome +; env_default = esp8285_4CH_H801 +; env_default = esp8285_5CH_H801 [common] framework = arduino @@ -38,6 +41,8 @@ lib_deps_external = IRremoteESP8266@2.5.5 #Time@1.5 #Timezone@1.2.1 + #For use SSD1306 0.91" OLED display uncomment following + #U8g2@~2.27.2 [common:esp8266] # ------------------------------------------------------------------------------ @@ -77,7 +82,7 @@ build_flags = -D WLED_DISABLE_BLYNK -D WLED_DISABLE_CRONIXIE ; -D WLED_DISABLE_HUESYNC - -D WLED_DISABLE_INFRARED + ; -D WLED_DISABLE_INFRARED [common:esp8266_512k] platform = espressif8266@1.8.0 @@ -89,15 +94,15 @@ build_flags = ; -D WLED_DISABLE_ALEXA -D WLED_DISABLE_BLYNK -D WLED_DISABLE_CRONIXIE - ; -D WLED_DISABLE_HUESYNC - -D WLED_DISABLE_INFRARED + -D WLED_DISABLE_HUESYNC + ; -D WLED_DISABLE_INFRARED [common:esp32] platform = espressif32@1.11.1 build_flags = -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH -D ARDUINO_ARCH_ESP32 - -D WLED_DISABLE_INFRARED + -D WLED_DISABLE_INFRARED # see: http://docs.platformio.org/en/latest/platforms/espressif8266.html [env:nodemcuv2] @@ -147,6 +152,7 @@ framework = ${common.framework} build_flags = ${common.build_flags} ${common:esp8266_512k.build_flags} + -D WLED_DISABLE_INFRARED lib_deps = ${common.lib_deps_external} @@ -165,3 +171,49 @@ lib_deps = lib_ignore = IRremoteESP8266 ESPAsyncUDP + +[env:esp8285_4CH_MagicHome] +board = esp8285 +platform = ${common:esp8266_1M.platform} +monitor_speed = ${common.monitor_speed} +upload_speed = ${common.upload_speed} +framework = ${common.framework} +build_flags = + ${common.build_flags} + ${common:esp8266_1M.build_flags} + -D WLED_DISABLE_HUESYNC + -D WLED_ENABLE_ANALOG_LEDS +lib_deps = + ${common.lib_deps_external} + +[env:esp8285_4CH_H801] +board = esp8285 +platform = ${common:esp8266_1M.platform} +monitor_speed = ${common.monitor_speed} +upload_speed = ${common.upload_speed} +framework = ${common.framework} +build_flags = + ${common.build_flags} + ${common:esp8266_1M.build_flags} + -D WLED_DISABLE_HUESYNC + -D WLED_ENABLE_ANALOG_LEDS + -D WLED_USE_H801 +lib_deps = + ${common.lib_deps_external} + +[env:esp8285_5CH_H801] +board = esp8285 +platform = ${common:esp8266_1M.platform} +monitor_speed = ${common.monitor_speed} +upload_speed = ${common.upload_speed} +framework = ${common.framework} +build_flags = + ${common.build_flags} + ${common:esp8266_1M.build_flags} + -D WLED_DISABLE_HUESYNC + -D WLED_ENABLE_ANALOG_LEDS + -D WLED_USE_H801 + -D WLED_ENABLE_5CH_LEDS +lib_deps = + ${common.lib_deps_external} + diff --git a/readme.md b/readme.md index 6a4b41e2d..c647b543a 100644 --- a/readme.md +++ b/readme.md @@ -10,13 +10,14 @@ A fast and feature-rich implementation of an ESP8266/ESP32 webserver to control NeoPixel (WS2812B, WS2811, SK6812, APA102) LEDs! ### Features: -- WS2812FX library integrated for 80 special effects +- WS2812FX library integrated for almost 90 special effects - FastLED noise effects and palettes -- Customizable Mobile and desktop UI with color and effect controls +- Modern UI with color, effect and segment controls +- Segments to set different effects and colors to parts of the LEDs - Settings page - configuration over network - Access Point and station mode - automatic failsafe AP - Support for RGBW strips -- 25 user presets to save and load colors/effects easily, supports cycling through them. +- 16 user presets to save and load colors/effects easily, supports cycling through them. - Macro functions to automatically execute API calls - Nightlight function (gradually dims down) - Full OTA software updatability (HTTP + ArduinoOTA), password protectable diff --git a/usermods/QuinLED_Dig_Uno_Temp_MQTT/readme.txt b/usermods/QuinLED_Dig_Uno_Temp_MQTT/readme.txt index 62401f8ee..612873360 100644 --- a/usermods/QuinLED_Dig_Uno_Temp_MQTT/readme.txt +++ b/usermods/QuinLED_Dig_Uno_Temp_MQTT/readme.txt @@ -4,5 +4,5 @@ This code uses Aircookie's WLED software. It has a premade file for user modific To install: -Add the enties in the WLED00 file to the top of the same file from Aircoookies WLED. +Add the entries in the WLED00 file to the top of the same file from Aircoookies WLED. Replace the WLED06_usermod.ino file in Aircoookies WLED folder. diff --git a/usermods/rotary_encoder_change_effect/wled06_usermod.ino b/usermods/rotary_encoder_change_effect/wled06_usermod.ino new file mode 100644 index 000000000..dbde9560a --- /dev/null +++ b/usermods/rotary_encoder_change_effect/wled06_usermod.ino @@ -0,0 +1,45 @@ +//Use userVar0 and userVar1 (API calls &U0=,&U1=, uint16_t) + +long lastTime = 0; +int delayMs = 10; +const int pinA = D6; //data +const int pinB = D7; //clk +int oldA = LOW; + +//gets called once at boot. Do all initialization that doesn't depend on network here +void userSetup() { + pinMode(pinA, INPUT_PULLUP); + pinMode(pinB, INPUT_PULLUP); +} + +//gets called every time WiFi is (re-)connected. Initialize own network interfaces here +void userConnected() { +} + +//loop. You can use "if (WLED_CONNECTED)" to check for successful connection +void userLoop() { + if (millis()-lastTime > delayMs) { + int A = digitalRead(pinA); + int B = digitalRead(pinB); + + if (oldA == LOW && A == HIGH) { + if (oldB == HIGH) { + // bri += 10; + // if (bri > 250) bri = 10; + effectCurrent += 1; + if (effectCurrent >= MODE_COUNT) effectCurrent = 0; + } + else { + // bri -= 10; + // if (bri < 10) bri = 250; + effectCurrent -= 1; + if (effectCurrent < 0) effectCurrent = (MODE_COUNT-1); + } + oldA = A; + + //call for notifier -> 0: init 1: direct change 2: button 3: notification 4: nightlight 5: other (No notification) + // 6: fx changed 7: hue 8: preset cycle 9: blynk 10: alexa + colorUpdated(6); + lastTime = millis(); + } +} diff --git a/usermods/ssd1306_i2c_oled_u8g2/wled06_usermod.ino b/usermods/ssd1306_i2c_oled_u8g2/wled06_usermod.ino index 915289523..593625b91 100644 --- a/usermods/ssd1306_i2c_oled_u8g2/wled06_usermod.ino +++ b/usermods/ssd1306_i2c_oled_u8g2/wled06_usermod.ino @@ -1,12 +1,18 @@ #include // from https://github.com/olikraus/u8g2/ +//The SCL and SDA pins are defined here. +//Lolin32 boards use SCL=5 SDA=4 +#define U8X8_PIN_SCL 5 +#define U8X8_PIN_SDA 4 + + // If display does not work or looks corrupted check the // constructor reference: // https://github.com/olikraus/u8g2/wiki/u8x8setupcpp // or check the gallery: // https://github.com/olikraus/u8g2/wiki/gallery -U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, 5, - 4); // Pins are Reset, SCL, SDA +U8X8_SSD1306_128X32_UNIVISION_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, + U8X8_PIN_SDA); // Pins are Reset, SCL, SDA // gets called once at boot. Do all initialization that doesn't depend on // network here @@ -63,7 +69,11 @@ void userLoop() { needRedraw = false; // Update last known values. + #if defined(ESP8266) knownSsid = apActive ? WiFi.softAPSSID() : WiFi.SSID(); + #else + knownSsid = WiFi.SSID(); + #endif knownIp = apActive ? IPAddress(4, 3, 2, 1) : WiFi.localIP(); knownBrightness = bri; knownMode = strip.getMode(); @@ -74,9 +84,9 @@ void userLoop() { // First row with Wifi name u8x8.setCursor(1, 0); - u8x8.print(ssid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); + u8x8.print(knownSsid.substring(0, u8x8.getCols() > 1 ? u8x8.getCols() - 2 : 0)); // Print `~` char to indicate that SSID is longer, than owr dicplay - if (ssid.length() > u8x8.getCols()) + if (knownSsid.length() > u8x8.getCols()) u8x8.print("~"); // Second row with IP or Psssword @@ -85,7 +95,7 @@ void userLoop() { if (apActive && bri == 0) u8x8.print(apPass); else - u8x8.print(ip); + u8x8.print(knownIp); // Third row with mode name u8x8.setCursor(2, 2); diff --git a/wled00/FX.cpp b/wled00/FX.cpp index 2bdb75ba9..72d540a92 100644 --- a/wled00/FX.cpp +++ b/wled00/FX.cpp @@ -116,7 +116,7 @@ uint16_t WS2812FX::mode_strobe_rainbow(void) { * if (bool rev == true) then LEDs are turned off in reverse order */ uint16_t WS2812FX::color_wipe(bool rev, bool useRandomColors) { - uint32_t cycleTime = 1000 + (255 - SEGMENT.speed)*200; + uint32_t cycleTime = 750 + (255 - SEGMENT.speed)*150; uint32_t perc = now % cycleTime; uint16_t prog = (perc * 65535) / cycleTime; bool back = (prog > 32767); @@ -151,7 +151,7 @@ uint16_t WS2812FX::color_wipe(bool rev, bool useRandomColors) { uint32_t col1 = useRandomColors? color_wheel(SEGENV.aux1) : SEGCOLOR(1); for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { - uint16_t index = (rev && back)? SEGMENT.stop -1 -i : i; + uint16_t index = (rev && back)? SEGMENT.stop -1 -i +SEGMENT.start : i; uint32_t col0 = useRandomColors? color_wheel(SEGENV.aux0) : color_from_palette(index, true, PALETTE_SOLID_WRAP, 0); if (i - SEGMENT.start < ledIndex) @@ -236,22 +236,24 @@ uint16_t WS2812FX::mode_random_color(void) { // * to new random colors. */ uint16_t WS2812FX::mode_dynamic(void) { + if (!SEGENV.allocateData(SEGLEN)) return mode_static(); //allocation failed + if(SEGENV.call == 0) { - for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) _locked[i] = random8(); + for (uint16_t i = 0; i < SEGLEN; i++) SEGENV.data[i] = random8(); } uint32_t cycleTime = 50 + (255 - SEGMENT.speed)*15; uint32_t it = now / cycleTime; - if (it != SEGENV.step) //new color + if (it != SEGENV.step && SEGMENT.speed != 0) //new color { - for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { - if (random8() <= SEGMENT.intensity) _locked[i] = random8(); + for (uint16_t i = 0; i < SEGLEN; i++) { + if (random8() <= SEGMENT.intensity) SEGENV.data[i] = random8(); } SEGENV.step = it; } - for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { - setPixelColor(i, color_wheel(_locked[i])); + for (uint16_t i = 0; i < SEGLEN; i++) { + setPixelColor(SEGMENT.start + i, color_wheel(SEGENV.data[i])); } return FRAMETIME; } @@ -298,29 +300,33 @@ uint16_t WS2812FX::mode_fade(void) { */ uint16_t WS2812FX::scan(bool dual) { - if(SEGENV.step > (SEGLEN * 2) - 3) { - SEGENV.step = 0; - } + uint32_t cycleTime = 750 + (255 - SEGMENT.speed)*150; + uint32_t perc = now % cycleTime; + uint16_t prog = (perc * 65535) / cycleTime; + uint16_t size = 1 + ((SEGMENT.intensity * SEGLEN) >>9); + uint16_t ledIndex = (prog * ((SEGLEN *2) - size *2)) >> 16; fill(SEGCOLOR(1)); - int led_offset = SEGENV.step - (SEGLEN - 1); + int led_offset = ledIndex - (SEGLEN - size); led_offset = abs(led_offset); - uint16_t i = SEGMENT.start + led_offset; - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); - if (dual) { - uint16_t i2 = SEGMENT.start + SEGLEN - led_offset - 1; - setPixelColor(i2, color_from_palette(i2, true, PALETTE_SOLID_WRAP, 0)); + for (uint16_t j = led_offset; j < led_offset + size; j++) { + uint16_t i2 = SEGMENT.stop -1 -j; + setPixelColor(i2, color_from_palette(i2, true, PALETTE_SOLID_WRAP, (SEGCOLOR(2))? 2:0)); + } } - SEGENV.step++; - return SPEED_FORMULA_L; + for (uint16_t j = led_offset; j < led_offset + size; j++) { + uint16_t i = SEGMENT.start + j; + setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); + } + + return FRAMETIME; } -//NOTE: add intensity (more than 1 pixel lit) /* * Runs a single pixel back and forth. */ @@ -410,7 +416,6 @@ uint16_t WS2812FX::mode_theater_chase(void) { * Inspired by the Adafruit examples. */ uint16_t WS2812FX::mode_theater_chase_rainbow(void) { - SEGENV.step = (SEGENV.step + 1) & 0xFF; return theater_chase(color_wheel(SEGENV.step), SEGCOLOR(1), false); } @@ -461,16 +466,34 @@ uint16_t WS2812FX::mode_saw(void) { * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t WS2812FX::mode_twinkle(void) { - if(SEGENV.step == 0) { - fill(SEGCOLOR(1)); - SEGENV.step = map(SEGMENT.intensity, 0, 255, 1, SEGLEN); // make sure, at least one LED is on + fill(SEGCOLOR(1)); + + uint32_t cycleTime = 20 + (255 - SEGMENT.speed)*5; + uint32_t it = now / cycleTime; + if (it != SEGENV.step) + { + uint16_t maxOn = map(SEGMENT.intensity, 0, 255, 1, SEGLEN); // make sure at least one LED is on + if (SEGENV.aux0 >= maxOn) + { + SEGENV.aux0 = 0; + SEGENV.aux1 = random16(); //new seed for our PRNG + } + SEGENV.aux0++; + SEGENV.step = it; + } + + uint16_t PRNG16 = SEGENV.aux1; + + for (uint16_t i = 0; i < SEGENV.aux0; i++) + { + PRNG16 = (uint16_t)(PRNG16 * 2053) + 13849; // next 'random' number + uint32_t p = (uint32_t)SEGLEN * (uint32_t)PRNG16; + uint16_t mapped = p >> 16; + uint16_t j = SEGMENT.start + mapped; + setPixelColor(j, color_from_palette(j, true, PALETTE_SOLID_WRAP, 0)); } - uint16_t i = SEGMENT.start + random16(SEGLEN); - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); - - SEGENV.step--; - return 20 + (5 * (uint16_t)(255 - SEGMENT.speed)); + return FRAMETIME; } @@ -507,7 +530,7 @@ uint16_t WS2812FX::dissolve(uint32_t color) { SEGENV.call = 0; } - return 20; + return FRAMETIME; } @@ -533,11 +556,18 @@ uint16_t WS2812FX::mode_dissolve_random(void) { */ uint16_t WS2812FX::mode_sparkle(void) { for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); + setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } - SEGENV.aux0 = random16(SEGLEN); // aux0 stores the random led index + uint32_t cycleTime = 10 + (255 - SEGMENT.speed)*2; + uint32_t it = now / cycleTime; + if (it != SEGENV.step) + { + SEGENV.aux0 = random16(SEGLEN); // aux0 stores the random led index + SEGENV.step = it; + } + setPixelColor(SEGMENT.start + SEGENV.aux0, SEGCOLOR(0)); - return 10 + (uint16_t)(255 - SEGMENT.speed); + return FRAMETIME; } @@ -546,15 +576,10 @@ uint16_t WS2812FX::mode_sparkle(void) { * Inspired by www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/ */ uint16_t WS2812FX::mode_flash_sparkle(void) { - if(SEGENV.call == 0) { - for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); - } + for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { + setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); } - uint16_t i = SEGMENT.start + SEGENV.aux0; - setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 0)); - if(random8(5) == 0) { SEGENV.aux0 = random16(SEGLEN); // aux0 stores the random led index setPixelColor(SEGMENT.start + SEGENV.aux0, SEGCOLOR(1)); @@ -590,6 +615,7 @@ uint16_t WS2812FX::mode_multi_strobe(void) { for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 1)); } + //blink(SEGCOLOR(0), SEGCOLOR(1), true, true); uint16_t delay = 50 + 20*(uint16_t)(255-SEGMENT.speed); uint16_t count = 2 * ((SEGMENT.speed / 10) + 1); @@ -613,7 +639,6 @@ uint16_t WS2812FX::mode_multi_strobe(void) { uint16_t WS2812FX::mode_android(void) { if (SEGENV.call == 0) { - SEGENV.aux0 = 0; SEGENV.step = SEGMENT.start; } @@ -668,9 +693,11 @@ uint16_t WS2812FX::mode_android(void) { * color2 and color3 = colors of two adjacent leds */ uint16_t WS2812FX::chase(uint32_t color1, uint32_t color2, uint32_t color3, bool dopalette) { - uint16_t a = SEGENV.step; - uint16_t b = (a + 1) % SEGLEN; - uint16_t c = (b + 1) % SEGLEN; + uint16_t counter = now * (SEGMENT.speed >> 3) + 1; + uint16_t a = counter * SEGLEN >> 16; + // Use intensity setting to vary chase up to 1/2 string length + uint16_t b = (a + 1 + (SEGMENT.intensity * SEGLEN >> 10)) % SEGLEN; + uint16_t c = (b + 1 + (SEGMENT.intensity * SEGLEN >> 10)) % SEGLEN; if (dopalette) color1 = color_from_palette(SEGMENT.start + a, true, PALETTE_SOLID_WRAP, 1); @@ -678,8 +705,7 @@ uint16_t WS2812FX::chase(uint32_t color1, uint32_t color2, uint32_t color3, bool setPixelColor(SEGMENT.start + b, color2); setPixelColor(SEGMENT.start + c, color3); - SEGENV.step = (SEGENV.step + 1) % SEGLEN; - return SPEED_FORMULA_L; + return FRAMETIME; } @@ -728,33 +754,40 @@ uint16_t WS2812FX::mode_colorful(void) { cols[3] = 0x0077F0F0; for (uint8_t i = 4; i < 7; i++) cols[i] = cols[i-4]; } - int i = SEGMENT.start; - for (i; i < SEGMENT.stop ; i+=4) + + uint32_t cycleTime = 50 + (15 * (uint32_t)(255 - SEGMENT.speed)); + uint32_t it = now / cycleTime; + if (it != SEGENV.step) { - setPixelColor(i, cols[SEGENV.step]); - setPixelColor(i+1, cols[SEGENV.step+1]); - setPixelColor(i+2, cols[SEGENV.step+2]); - setPixelColor(i+3, cols[SEGENV.step+3]); + if (SEGMENT.speed > 0) SEGENV.aux0++; + if (SEGENV.aux0 > 3) SEGENV.aux0 = 0; + SEGENV.step = it; + } + + uint16_t i = SEGMENT.start; + for (i; i < SEGMENT.stop -3; i+=4) + { + setPixelColor(i, cols[SEGENV.aux0]); + setPixelColor(i+1, cols[SEGENV.aux0+1]); + setPixelColor(i+2, cols[SEGENV.aux0+2]); + setPixelColor(i+3, cols[SEGENV.aux0+3]); } - i+=4; if(i < SEGMENT.stop) { - setPixelColor(i, cols[SEGENV.step]); + setPixelColor(i, cols[SEGENV.aux0]); if(i+1 < SEGMENT.stop) { - setPixelColor(i+1, cols[SEGENV.step+1]); + setPixelColor(i+1, cols[SEGENV.aux0+1]); if(i+2 < SEGMENT.stop) { - setPixelColor(i+2, cols[SEGENV.step+2]); + setPixelColor(i+2, cols[SEGENV.aux0+2]); } } } - if (SEGMENT.speed > 0) SEGENV.step++; //static if lowest speed - if (SEGENV.step >3) SEGENV.step = 0; - return 50 + (15 * (uint32_t)(255 - SEGMENT.speed)); + return FRAMETIME; } @@ -767,7 +800,7 @@ uint16_t WS2812FX::mode_traffic_light(void) { uint32_t mdelay = 500; for (int i = SEGMENT.start; i < SEGMENT.stop-2 ; i+=3) { - switch (SEGENV.step) + switch (SEGENV.aux0) { case 0: setPixelColor(i, 0x00FF0000); mdelay = 150 + (100 * (uint32_t)(255 - SEGMENT.speed));break; case 1: setPixelColor(i, 0x00FF0000); mdelay = 150 + (20 * (uint32_t)(255 - SEGMENT.speed)); setPixelColor(i+1, 0x00EECC00); break; @@ -776,9 +809,14 @@ uint16_t WS2812FX::mode_traffic_light(void) { } } - SEGENV.step++; - if (SEGENV.step >3) SEGENV.step = 0; - return mdelay; + if (now - SEGENV.step > mdelay) + { + SEGENV.aux0++; + if (SEGENV.aux0 > 3) SEGENV.aux0 = 0; + SEGENV.step = now; + } + + return FRAMETIME; } @@ -945,19 +983,40 @@ uint16_t WS2812FX::mode_running_random(void) { /* * K.I.T.T. */ -uint16_t WS2812FX::mode_larson_scanner(void) { +uint16_t WS2812FX::mode_larson_scanner(void){ + return larson_scanner(false); +} + +uint16_t WS2812FX::larson_scanner(bool dual) { + uint16_t counter = now * ((SEGMENT.speed >> 2) +8); + uint16_t index = counter * SEGLEN >> 16; + fade_out(SEGMENT.intensity); - uint16_t index = 0; - if(SEGENV.step < SEGLEN) { - index = SEGMENT.start + SEGENV.step; - } else { - index = SEGMENT.start + ((SEGLEN * 2) - SEGENV.step) - 2; + if (SEGENV.step > index && SEGENV.step - index > SEGLEN/2) { + SEGENV.aux0 = !SEGENV.aux0; } - setPixelColor(index, color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); + + for (uint16_t i = SEGENV.step; i < index; i++) { + uint16_t j = (SEGENV.aux0)?i:SEGLEN-1-i; + setPixelColor(SEGMENT.start + j, color_from_palette(j, true, PALETTE_SOLID_WRAP, 0)); + } + if (dual) { + uint32_t c; + if (SEGCOLOR(2) != 0) { + c = SEGCOLOR(2); + } else { + c = color_from_palette(index, true, PALETTE_SOLID_WRAP, 0); + } - SEGENV.step = (SEGENV.step + 1) % ((SEGLEN * 2) - 2); - return SPEED_FORMULA_L; + for (uint16_t i = SEGENV.step; i < index; i++) { + uint16_t j = (SEGENV.aux0)?SEGLEN-1-i:i; + setPixelColor(SEGMENT.start + j, c); + } + } + + SEGENV.step = index; + return FRAMETIME; } @@ -965,13 +1024,14 @@ uint16_t WS2812FX::mode_larson_scanner(void) { * Firing comets from one end. */ uint16_t WS2812FX::mode_comet(void) { + uint16_t counter = now * (SEGMENT.speed >>3) +1; + uint16_t index = counter * SEGLEN >> 16; + fade_out(SEGMENT.intensity); - uint16_t index = SEGMENT.start + SEGENV.step; - setPixelColor(index, color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); + setPixelColor(SEGMENT.start + index, color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); - SEGENV.step = (SEGENV.step + 1) % SEGLEN; - return SPEED_FORMULA_L; + return FRAMETIME; } @@ -1001,14 +1061,14 @@ uint16_t WS2812FX::mode_fireworks() { SEGENV.aux0 = index; } } - return 22; + return FRAMETIME; } //Twinkling LEDs running. Inspired by https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Rain.h uint16_t WS2812FX::mode_rain() { - SEGENV.step += 22; + SEGENV.step += FRAMETIME; if (SEGENV.step > SPEED_FORMULA_L) { SEGENV.step = 0; //shift all leds right @@ -1054,15 +1114,18 @@ uint16_t WS2812FX::mode_fire_flicker(void) { * Gradient run base function */ uint16_t WS2812FX::gradient_base(bool loading) { + uint16_t counter = now * (SEGMENT.speed >> 3) + 1; + SEGENV.step = counter * SEGLEN >> 16; + if (SEGMENT.speed == 0) SEGENV.step = SEGMENT.start + (SEGLEN >> 1); if (SEGENV.call == 0) SEGENV.step = 0; float per,val; //0.0 = sec 1.0 = pri float brd = SEGMENT.intensity; - if (!loading) brd = SEGMENT.intensity/2; + if (!loading) brd = SEGMENT.intensity/2; if (brd <1.0) brd = 1.0; int pp = SEGENV.step; int p1 = pp-SEGLEN; int p2 = pp+SEGLEN; - + for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { if (loading) @@ -1073,13 +1136,10 @@ uint16_t WS2812FX::gradient_base(bool loading) { } per = val/brd; if (per >1.0) per = 1.0; - setPixelColor(SEGMENT.start + i, color_blend(SEGCOLOR(0), color_from_palette(SEGMENT.start + i, true, PALETTE_SOLID_WRAP, 1), per*255)); + setPixelColor(i, color_blend(SEGCOLOR(0), color_from_palette(i, true, PALETTE_SOLID_WRAP, 1), per*255)); } - - SEGENV.step++; - if (SEGENV.step >= SEGMENT.stop) SEGENV.step = SEGMENT.start; - if (SEGMENT.speed == 0) SEGENV.step = SEGMENT.start + (SEGLEN >> 1); - return SPEED_FORMULA_L; + + return FRAMETIME; } @@ -1156,19 +1216,22 @@ uint16_t WS2812FX::mode_two_dots() * Tricolor chase function */ uint16_t WS2812FX::tricolor_chase(uint32_t color1, uint32_t color2) { - uint16_t index = SEGENV.step % 6; + uint32_t cycleTime = 50 + (255 - SEGMENT.speed)*2; + uint32_t it = now / cycleTime; + uint8_t width = (1 + SEGMENT.intensity/32) * 3; //value of 1-8 for each colour + uint8_t index = it % width; + for(uint16_t i=0; i < SEGLEN; i++, index++) { - if(index > 5) index = 0; + if(index > width-1) index = 0; uint32_t color = color1; - if(index > 3) color = color_from_palette(i, true, PALETTE_SOLID_WRAP, 1); - else if(index > 1) color = color2; + if(index > width*2/3-1) color = color_from_palette(i, true, PALETTE_SOLID_WRAP, 1); + else if(index > width/3-1) color = color2; setPixelColor(SEGMENT.stop - i -1, color); } - SEGENV.step++; - return 35 + ((350 * (uint32_t)(255 - SEGMENT.speed)) / 255); + return FRAMETIME; } @@ -1198,7 +1261,7 @@ uint16_t WS2812FX::mode_icu(void) { byte pindex = map(dest, 0, SEGLEN/2, 0, 255); uint32_t col = color_from_palette(pindex, false, false, 0); - + setPixelColor(SEGMENT.start + dest, col); setPixelColor(SEGMENT.start + dest + SEGLEN/2, col); @@ -1232,20 +1295,38 @@ uint16_t WS2812FX::mode_icu(void) { */ uint16_t WS2812FX::mode_tricolor_wipe(void) { - if(SEGENV.step < SEGLEN) { - uint32_t led_offset = SEGENV.step; - setPixelColor(SEGMENT.start + led_offset, SEGCOLOR(0)); - } else if (SEGENV.step < SEGLEN*2) { - uint32_t led_offset = SEGENV.step - SEGLEN; - setPixelColor(SEGMENT.start + led_offset, SEGCOLOR(1)); - } else + uint32_t cycleTime = 1000 + (255 - SEGMENT.speed)*200; + uint32_t perc = now % cycleTime; + uint16_t prog = (perc * 65535) / cycleTime; + uint16_t ledIndex = (prog * SEGLEN * 3) >> 16; + uint16_t ledOffset = ledIndex; + + for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { - uint32_t led_offset = SEGENV.step - SEGLEN*2; - setPixelColor(SEGMENT.start + led_offset, color_from_palette(SEGMENT.start + led_offset, true, PALETTE_SOLID_WRAP, 2)); + setPixelColor(i, color_from_palette(i, true, PALETTE_SOLID_WRAP, 2)); + } + + if(ledIndex < SEGLEN) { //wipe from 0 to 1 + for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) + { + setPixelColor(i, (i - SEGMENT.start > ledOffset)? SEGCOLOR(0) : SEGCOLOR(1)); + } + } else if (ledIndex < SEGLEN*2) { //wipe from 1 to 2 + ledOffset = ledIndex - SEGLEN; + for (uint16_t i = SEGMENT.start +ledOffset +1; i < SEGMENT.stop; i++) + { + setPixelColor(i, SEGCOLOR(1)); + } + } else //wipe from 2 to 0 + { + ledOffset = ledIndex - SEGLEN*2; + for (uint16_t i = SEGMENT.start; i <= SEGMENT.start +ledOffset; i++) + { + setPixelColor(i, SEGCOLOR(0)); + } } - SEGENV.step = (SEGENV.step + 1) % (SEGLEN * 3); - return SPEED_FORMULA_L; + return FRAMETIME; } @@ -1256,14 +1337,17 @@ uint16_t WS2812FX::mode_tricolor_wipe(void) */ uint16_t WS2812FX::mode_tricolor_fade(void) { + uint16_t counter = now * ((SEGMENT.speed >> 3) +1); + uint32_t prog = (counter * 768) >> 16; + uint32_t color1 = 0, color2 = 0; byte stage = 0; - if(SEGENV.step < 256) { + if(prog < 256) { color1 = SEGCOLOR(0); color2 = SEGCOLOR(1); stage = 0; - } else if(SEGENV.step < 512) { + } else if(prog < 512) { color1 = SEGCOLOR(1); color2 = SEGCOLOR(2); stage = 1; @@ -1273,13 +1357,13 @@ uint16_t WS2812FX::mode_tricolor_fade(void) stage = 2; } - byte stp = SEGENV.step % 256; + byte stp = prog; // % 256 uint32_t color = 0; for(uint16_t i=SEGMENT.start; i < SEGMENT.stop; i++) { if (stage == 2) { - color = color_blend(color_from_palette(i, true, PALETTE_SOLID_WRAP, 2), color2, stp); + color = color_blend(color_from_palette(i, true, PALETTE_SOLID_WRAP, 2), color2, stp); } else if (stage == 1) { - color = color_blend(color1, color_from_palette(i, true, PALETTE_SOLID_WRAP, 2), stp); + color = color_blend(color1, color_from_palette(i, true, PALETTE_SOLID_WRAP, 2), stp); } else { color = color_blend(color1, color2, stp); } @@ -1329,31 +1413,7 @@ uint16_t WS2812FX::mode_multi_comet(void) * Custom mode by Keith Lord: https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/DualLarson.h */ uint16_t WS2812FX::mode_dual_larson_scanner(void){ - if (SEGENV.aux0) - { - SEGENV.step--; - } else - { - SEGENV.step++; - } - - fade_out(SEGMENT.intensity); - - uint16_t index = SEGMENT.start + SEGENV.step; - setPixelColor(index, color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); - index = SEGMENT.stop - SEGENV.step -1; - if (SEGCOLOR(2) != 0) - { - setPixelColor(index, SEGCOLOR(2)); - } else - { - setPixelColor(index, color_from_palette(index, true, PALETTE_SOLID_WRAP, 0)); - } - - if(SEGENV.step >= SEGLEN -1 || SEGENV.step <= 0) - SEGENV.aux0 = !SEGENV.aux0; - - return SPEED_FORMULA_L; + return larson_scanner(true); } @@ -1363,6 +1423,10 @@ uint16_t WS2812FX::mode_dual_larson_scanner(void){ */ uint16_t WS2812FX::mode_random_chase(void) { + uint32_t cycleTime = 25 + (3 * (uint32_t)(255 - SEGMENT.speed)); + uint32_t it = now / cycleTime; + if (SEGENV.step == it) return FRAMETIME; + for(uint16_t i=SEGMENT.stop -1; i>SEGMENT.start; i--) { setPixelColor(i, getPixelColor(i-1)); } @@ -1373,7 +1437,8 @@ uint16_t WS2812FX::mode_random_chase(void) uint8_t b = random8(6) != 0 ? (color & 0xFF) : random8(); setPixelColor(SEGMENT.start, r, g, b); - return SPEED_FORMULA_L; + SEGENV.step = it; + return FRAMETIME; } @@ -1384,38 +1449,57 @@ typedef struct Oscillator { int8_t speed; } oscillator; +/* +/ Oscillating bars of color, updated with standard framerate +*/ uint16_t WS2812FX::mode_oscillate(void) { - static oscillator oscillators[2] = { - {SEGLEN/4, SEGLEN/8, 1, 1}, - {SEGLEN/4*2, SEGLEN/8, -1, 1} - //{SEGLEN/4*3, SEGLEN/8, 1, 2} - }; + uint8_t numOscillators = 3; + uint16_t dataSize = sizeof(oscillator) * numOscillators; - for(int8_t i=0; i < sizeof(oscillators)/sizeof(oscillators[0]); i++) { - oscillators[i].pos += oscillators[i].dir * oscillators[i].speed; + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + Oscillator* oscillators = reinterpret_cast(SEGENV.data); + + if (SEGENV.call == 0) + { + oscillators[0] = {SEGLEN/4, SEGLEN/8, 1, 1}; + oscillators[1] = {SEGLEN/4*3, SEGLEN/8, 1, 2}; + oscillators[2] = {SEGLEN/4*2, SEGLEN/8, -1, 1}; + } + + uint32_t cycleTime = 20 + (2 * (uint32_t)(255 - SEGMENT.speed)); + uint32_t it = now / cycleTime; + + for(uint8_t i=0; i < numOscillators; i++) { + // if the counter has increased, move the oscillator by the random step + if (it != SEGENV.step) oscillators[i].pos += oscillators[i].dir * oscillators[i].speed; + oscillators[i].size = SEGLEN/(3+SEGMENT.intensity/8); if((oscillators[i].dir == -1) && (oscillators[i].pos <= 0)) { oscillators[i].pos = 0; oscillators[i].dir = 1; - oscillators[i].speed = random8(1, 3); + // make bigger steps for faster speeds + oscillators[i].speed = SEGMENT.speed > 100 ? random8(2, 4):random8(1, 3); } if((oscillators[i].dir == 1) && (oscillators[i].pos >= (SEGLEN - 1))) { oscillators[i].pos = SEGLEN - 1; oscillators[i].dir = -1; - oscillators[i].speed = random8(1, 3); + oscillators[i].speed = SEGMENT.speed > 100 ? random8(2, 4):random8(1, 3); } } - for(int16_t i=0; i < SEGLEN; i++) { + for(uint16_t i=0; i < SEGLEN; i++) { uint32_t color = BLACK; - for(int8_t j=0; j < sizeof(oscillators)/sizeof(oscillators[0]); j++) { + for(uint8_t j=0; j < numOscillators; j++) { if(i >= oscillators[j].pos - oscillators[j].size && i <= oscillators[j].pos + oscillators[j].size) { color = (color == BLACK) ? SEGMENT.colors[j] : color_blend(color, SEGMENT.colors[j], 128); } } setPixelColor(SEGMENT.start + i, color); } - return 15 + (uint32_t)(255 - SEGMENT.speed); + + SEGENV.step = it; + return FRAMETIME; } @@ -1423,17 +1507,17 @@ uint16_t WS2812FX::mode_lightning(void) { uint16_t ledstart = SEGMENT.start + random16(SEGLEN); // Determine starting location of flash uint16_t ledlen = random16(SEGMENT.stop -1 -ledstart); // Determine length of flash (not to go beyond NUM_LEDS-1) - uint8_t bri = 255/random8(1, 3); + uint8_t bri = 255/random8(1, 3); if (SEGENV.step == 0) { SEGENV.aux0 = random8(3, 3 + SEGMENT.intensity/20); //number of flashes - bri = 52; + bri = 52; SEGENV.aux1 = 1; } fill(SEGCOLOR(1)); - + if (SEGENV.aux1) { for (int i = ledstart; i < ledstart + ledlen; i++) { @@ -1467,7 +1551,7 @@ uint16_t WS2812FX::mode_pride_2015(void) uint16_t duration = 10 + SEGMENT.speed; uint16_t sPseudotime = SEGENV.step; uint16_t sHue16 = SEGENV.aux0; - + uint8_t sat8 = beatsin88( 87, 220, 250); uint8_t brightdepth = beatsin88( 341, 96, 224); uint16_t brightnessthetainc16 = beatsin88( 203, (25 * 256), (40 * 256)); @@ -1475,12 +1559,12 @@ uint16_t WS2812FX::mode_pride_2015(void) uint16_t hue16 = sHue16;//gHue * 256; uint16_t hueinc16 = beatsin88(113, 1, 3000); - + sPseudotime += duration * msmultiplier; sHue16 += duration * beatsin88( 400, 5,9); uint16_t brightnesstheta16 = sPseudotime; CRGB fastled_col; - + for( uint16_t i = SEGMENT.start ; i < SEGMENT.stop; i++) { hue16 += hueinc16; uint8_t hue8 = hue16 >> 8; @@ -1491,16 +1575,16 @@ uint16_t WS2812FX::mode_pride_2015(void) uint16_t bri16 = (uint32_t)((uint32_t)b16 * (uint32_t)b16) / 65536; uint8_t bri8 = (uint32_t)(((uint32_t)bri16) * brightdepth) / 65536; bri8 += (255 - brightdepth); - + CRGB newcolor = CHSV( hue8, sat8, bri8); fastled_col = col_to_crgb(getPixelColor(i)); - + nblend( fastled_col, newcolor, 64); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } SEGENV.step = sPseudotime; SEGENV.aux0 = sHue16; - return 20; + return FRAMETIME; } @@ -1510,13 +1594,13 @@ uint16_t WS2812FX::mode_juggle(void){ CRGB fastled_col; byte dothue = 0; for ( byte i = 0; i < 8; i++) { - uint16_t index = SEGMENT.start + beatsin16(i + 7, 0, SEGLEN -1); + uint16_t index = SEGMENT.start + beatsin88((128 + SEGMENT.speed)*(i + 7), 0, SEGLEN -1); fastled_col = col_to_crgb(getPixelColor(index)); fastled_col |= (SEGMENT.palette==0)?CHSV(dothue, 220, 255):ColorFromPalette(currentPalette, dothue, 255); setPixelColor(index, fastled_col.red, fastled_col.green, fastled_col.blue); dothue += 32; } - return 10 + (uint16_t)(255 - SEGMENT.speed)/4; + return FRAMETIME; } @@ -1530,13 +1614,13 @@ uint16_t WS2812FX::mode_palette() } bool noWrap = (paletteBlend == 2 || (paletteBlend == 0 && SEGMENT.speed == 0)); - for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) + for (uint16_t i = 0; i < SEGLEN; i++) { uint8_t colorIndex = (i * 255 / SEGLEN) - counter; if (noWrap) colorIndex = map(colorIndex, 0, 255, 0, 240); //cut off blend at palette "end" - setPixelColor(i, color_from_palette(colorIndex, false, true, 255)); + setPixelColor(SEGMENT.start + i, color_from_palette(colorIndex, false, true, 255)); } return FRAMETIME; } @@ -1576,30 +1660,34 @@ uint16_t WS2812FX::mode_fire_2012() { uint32_t it = now >> 5; //div 32 + if (!SEGENV.allocateData(SEGLEN)) return mode_static(); //allocation failed + + byte* heat = SEGENV.data; + if (it != SEGENV.step) { // Step 1. Cool down every cell a little - for( int i = SEGMENT.start; i < SEGMENT.stop; i++) { - _locked[i] = qsub8(_locked[i], random8(0, (((20 + SEGMENT.speed /3) * 10) / SEGLEN) + 2)); + for (uint16_t i = 0; i < SEGLEN; i++) { + SEGENV.data[i] = qsub8(heat[i], random8(0, (((20 + SEGMENT.speed /3) * 10) / SEGLEN) + 2)); } // Step 2. Heat from each cell drifts 'up' and diffuses a little - for( int k= SEGMENT.stop -1; k >= SEGMENT.start + 2; k--) { - _locked[k] = (_locked[k - 1] + _locked[k - 2] + _locked[k - 2] ) / 3; + for (uint16_t k= SEGLEN -1; k > 1; k--) { + heat[k] = (heat[k - 1] + heat[k - 2] + heat[k - 2] ) / 3; } // Step 3. Randomly ignite new 'sparks' of heat near the bottom - if( random8() <= SEGMENT.intensity ) { - int y = SEGMENT.start + random8(7); - if (y < SEGMENT.stop) _locked[y] = qadd8(_locked[y], random8(160,255) ); + if (random8() <= SEGMENT.intensity) { + uint8_t y = random8(7); + if (y < SEGLEN) heat[y] = qadd8(heat[y], random8(160,255)); } SEGENV.step = it; } // Step 4. Map from heat cells to LED colors - for( int j = SEGMENT.start; j < SEGMENT.stop; j++) { - CRGB color = ColorFromPalette( currentPalette, min(_locked[j],240), 255, LINEARBLEND); - setPixelColor(j, color.red, color.green, color.blue); + for (uint16_t j = 0; j < SEGLEN; j++) { + CRGB color = ColorFromPalette(currentPalette, min(heat[j],240), 255, LINEARBLEND); + setPixelColor(SEGMENT.start + j, color.red, color.green, color.blue); } return FRAMETIME; } @@ -1651,7 +1739,7 @@ uint16_t WS2812FX::mode_colorwaves() } SEGENV.step = sPseudotime; SEGENV.aux0 = sHue16; - return 20; + return FRAMETIME; } @@ -1680,7 +1768,7 @@ uint16_t WS2812FX::mode_fillnoise8() } SEGENV.step += beatsin8(SEGMENT.speed, 1, 6); //10,1,4 - return 20; + return FRAMETIME; } uint16_t WS2812FX::mode_noise16_1() @@ -1707,7 +1795,7 @@ uint16_t WS2812FX::mode_noise16_1() setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } - return 20; + return FRAMETIME; } @@ -1732,7 +1820,7 @@ uint16_t WS2812FX::mode_noise16_2() setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } - return 20; + return FRAMETIME; } @@ -1759,7 +1847,7 @@ uint16_t WS2812FX::mode_noise16_3() setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); } - return 20; + return FRAMETIME; } @@ -1767,8 +1855,7 @@ uint16_t WS2812FX::mode_noise16_3() uint16_t WS2812FX::mode_noise16_4() { CRGB fastled_col; - SEGENV.step += SEGMENT.speed; - uint32_t stp = (now / 160) * SEGMENT.speed; + uint32_t stp = (now * SEGMENT.speed) >> 7; for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { int16_t index = inoise16(uint32_t(i - SEGMENT.start) << 12, stp); fastled_col = ColorFromPalette(currentPalette, index); @@ -1781,18 +1868,25 @@ uint16_t WS2812FX::mode_noise16_4() //based on https://gist.github.com/kriegsman/5408ecd397744ba0393e uint16_t WS2812FX::mode_colortwinkle() { + uint16_t dataSize = (SEGLEN+7) >> 3; //1 bit per LED + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + CRGB fastled_col, prev; fract8 fadeUpAmount = 8 + (SEGMENT.speed/4), fadeDownAmount = 5 + (SEGMENT.speed/7); - for( uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { + for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { fastled_col = col_to_crgb(getPixelColor(i)); prev = fastled_col; - if(_locked[i]) { + uint16_t index = (i - SEGMENT.start) >> 3; + uint8_t bitNum = (i - SEGMENT.start) & 0x07; + bool fadeUp = bitRead(SEGENV.data[index], bitNum); + + if (fadeUp) { CRGB incrementalColor = fastled_col; incrementalColor.nscale8_video( fadeUpAmount); fastled_col += incrementalColor; - if( fastled_col.red == 255 || fastled_col.green == 255 || fastled_col.blue == 255) { - _locked[i] = false; + if (fastled_col.red == 255 || fastled_col.green == 255 || fastled_col.blue == 255) { + bitWrite(SEGENV.data[index], bitNum, false); } setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); @@ -1809,20 +1903,22 @@ uint16_t WS2812FX::mode_colortwinkle() for (uint16_t j = 0; j <= SEGLEN / 50; j++) { - if ( random8() <= SEGMENT.intensity ) { + if (random8() <= SEGMENT.intensity) { for (uint8_t times = 0; times < 5; times++) //attempt to spawn a new pixel 5 times { int i = SEGMENT.start + random16(SEGLEN); if(getPixelColor(i) == 0) { fastled_col = ColorFromPalette(currentPalette, random8(), 64, NOBLEND); - _locked[i] = true; + uint16_t index = (i - SEGMENT.start) >> 3; + uint8_t bitNum = (i - SEGMENT.start) & 0x07; + bitWrite(SEGENV.data[index], bitNum, true); setPixelColor(i, fastled_col.red, fastled_col.green, fastled_col.blue); break; //only spawn 1 new pixel per frame per 50 LEDs } } } } - return 20; + return FRAMETIME; } @@ -1849,32 +1945,36 @@ uint16_t WS2812FX::mode_lake() { // send a meteor from begining to to the end of the strip with a trail that randomly decays. // adapted from https://www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/#LEDStripEffectMeteorRain uint16_t WS2812FX::mode_meteor() { + if (!SEGENV.allocateData(SEGLEN)) return mode_static(); //allocation failed + + byte* trail = SEGENV.data; + byte meteorSize= 1+ SEGLEN / 10; - uint16_t in = SEGMENT.start + SEGENV.step; + uint16_t counter = now * ((SEGMENT.speed >> 2) +8); + uint16_t in = counter * SEGLEN >> 16; // fade all leds to colors[1] in LEDs one step - for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { + for (uint16_t i = 0; i < SEGLEN; i++) { if (random8() <= 255 - SEGMENT.intensity) { byte meteorTrailDecay = 128 + random8(127); - _locked[i] = scale8(_locked[i], meteorTrailDecay); - setPixelColor(i, color_from_palette(_locked[i], false, true, 255)); + trail[i] = scale8(trail[i], meteorTrailDecay); + setPixelColor(SEGMENT.start + i, color_from_palette(trail[i], false, true, 255)); } } - + // draw meteor - for(int j = 0; j < meteorSize; j++) { - uint16_t index = in + j; - if(in + j >= SEGMENT.stop) { - index = SEGMENT.start + (in + j - SEGMENT.stop); + for(int j = 0; j < meteorSize; j++) { + uint16_t index = in + j; + if(index >= SEGLEN) { + index = (in + j - SEGLEN); } - _locked[index] = 240; - setPixelColor(index, color_from_palette(_locked[index], false, true, 255)); + trail[index] = 240; + setPixelColor(SEGMENT.start + index, color_from_palette(trail[index], false, true, 255)); } - SEGENV.step = (SEGENV.step + 1) % (SEGLEN); - return SPEED_FORMULA_L; + return FRAMETIME; } @@ -1882,33 +1982,37 @@ uint16_t WS2812FX::mode_meteor() { // send a meteor from begining to to the end of the strip with a trail that randomly decays. // adapted from https://www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/#LEDStripEffectMeteorRain uint16_t WS2812FX::mode_meteor_smooth() { + if (!SEGENV.allocateData(SEGLEN)) return mode_static(); //allocation failed + + byte* trail = SEGENV.data; + byte meteorSize= 1+ SEGLEN / 10; - uint16_t in = map((SEGENV.step >> 6 & 0xFF), 0, 255, SEGMENT.start, SEGMENT.stop -1); + uint16_t in = map((SEGENV.step >> 6 & 0xFF), 0, 255, 0, SEGLEN -1); // fade all leds to colors[1] in LEDs one step - for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { - if (_locked[i] != 0 && random8() <= 255 - SEGMENT.intensity) + for (uint16_t i = 0; i < SEGLEN; i++) { + if (trail[i] != 0 && random8() <= 255 - SEGMENT.intensity) { int change = 3 - random8(12); //change each time between -8 and +3 - _locked[i] += change; - if (_locked[i] > 245) _locked[i] = 0; - if (_locked[i] > 240) _locked[i] = 240; - setPixelColor(i, color_from_palette(_locked[i], false, true, 255)); + trail[i] += change; + if (trail[i] > 245) trail[i] = 0; + if (trail[i] > 240) trail[i] = 240; + setPixelColor(SEGMENT.start + i, color_from_palette(trail[i], false, true, 255)); } } // draw meteor for(int j = 0; j < meteorSize; j++) { uint16_t index = in + j; - if(in + j >= SEGMENT.stop) { - index = SEGMENT.start + (in + j - SEGMENT.stop); + if(in + j >= SEGLEN) { + index = (in + j - SEGLEN); } - setPixelColor(index, color_blend(getPixelColor(index), color_from_palette(240, false, true, 255), 48)); - _locked[index] = 240; + setPixelColor(SEGMENT.start + index, color_blend(getPixelColor(SEGMENT.start + index), color_from_palette(240, false, true, 255), 48)); + trail[index] = 240; } SEGENV.step += SEGMENT.speed +1; - return 20; + return FRAMETIME; } @@ -1946,23 +2050,35 @@ uint16_t WS2812FX::mode_railway() //Water ripple //propagation velocity from speed //drop rate from intensity + +//4 bytes +typedef struct Ripple { + uint8_t state; + uint8_t color; + uint16_t pos; +} ripple; + uint16_t WS2812FX::mode_ripple() { - uint16_t maxripples = SEGLEN / 4; - if (maxripples == 0) return mode_static(); + uint16_t maxRipples = 1 + (SEGLEN >> 2); + if (maxRipples > 100) maxRipples = 100; + uint16_t dataSize = sizeof(ripple) * maxRipples; + + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + Ripple* ripples = reinterpret_cast(SEGENV.data); fill(SEGCOLOR(1)); //draw wave - for (uint16_t rippleI = 0; rippleI < maxripples; rippleI++) + for (uint16_t i = 0; i < maxRipples; i++) { - uint16_t storeI = SEGMENT.start + 4*rippleI; - uint16_t ripplestate = _locked[storeI]; + uint16_t ripplestate = ripples[i].state; if (ripplestate) { uint8_t rippledecay = (SEGMENT.speed >> 4) +1; //faster decay if faster propagation - uint16_t rippleorigin = (_locked[storeI+1] << 8) + _locked[storeI+2]; - uint32_t col = color_from_palette(_locked[storeI+3], false, false, 255); + uint16_t rippleorigin = ripples[i].pos; + uint32_t col = color_from_palette(ripples[i].color, false, false, 255); uint16_t propagation = ((ripplestate/rippledecay -1) * SEGMENT.speed); int16_t propI = propagation >> 8; uint8_t propF = propagation & 0xFF; @@ -1972,7 +2088,7 @@ uint16_t WS2812FX::mode_ripple() for (int16_t v = left; v < left +4; v++) { uint8_t mag = scale8(cubicwave8((propF>>2)+(v-left)*64), amp); - if (v >= SEGMENT.start) + if (v < SEGMENT.stop && v >= SEGMENT.start) { setPixelColor(v, color_blend(getPixelColor(v), col, mag)); } @@ -1983,20 +2099,18 @@ uint16_t WS2812FX::mode_ripple() } } ripplestate += rippledecay; - _locked[storeI] = (ripplestate > 254) ? 0 : ripplestate; + ripples[i].state = (ripplestate > 254) ? 0 : ripplestate; } else //randomly create new wave { if (random16(IBN + 10000) <= SEGMENT.intensity) { - _locked[storeI] = 1; - uint16_t origin = SEGMENT.start + random16(SEGLEN); - _locked[storeI+1] = origin >> 8; - _locked[storeI+2] = origin & 0xFF; - _locked[storeI+3] = random8(); //color + ripples[i].state = 1; + ripples[i].pos = SEGMENT.start + random16(SEGLEN); + ripples[i].color = random8(); //color } } } - return 20; + return FRAMETIME; } @@ -2285,3 +2399,472 @@ uint16_t WS2812FX::mode_spots_fade() uint16_t tr = (t >> 1) + (t >> 2); return spots_base(tr); } + + +//each needs 12 bytes +//Spark type is used for popcorn and 1D fireworks +typedef struct Ball { + unsigned long lastBounceTime; + float impactVelocity; + float height; +} ball; + +/* +* Bouncing Balls Effect +*/ +uint16_t WS2812FX::mode_bouncing_balls(void) { + //allocate segment data + uint16_t maxNumBalls = 16; + uint16_t dataSize = sizeof(ball) * maxNumBalls; + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + Ball* balls = reinterpret_cast(SEGENV.data); + + // number of balls based on intensity setting to max of 7 (cycles colors) + // non-chosen color is a random color + uint8_t numBalls = int(((SEGMENT.intensity * (maxNumBalls - 0.8f)) / 255) + 1); + + float gravity = -9.81; // standard value of gravity + float impactVelocityStart = sqrt( -2 * gravity); + + unsigned long time = millis(); + + if (SEGENV.call == 0) { + for (uint8_t i = 0; i < maxNumBalls; i++) balls[i].lastBounceTime = time; + } + + bool hasCol2 = SEGCOLOR(2); + fill(hasCol2 ? BLACK : SEGCOLOR(1)); + + for (uint8_t i = 0; i < numBalls; i++) { + float timeSinceLastBounce = (time - balls[i].lastBounceTime)/((255-SEGMENT.speed)*8/256 +1); + balls[i].height = 0.5 * gravity * pow(timeSinceLastBounce/1000 , 2.0) + balls[i].impactVelocity * timeSinceLastBounce/1000; + + if (balls[i].height < 0) { //start bounce + balls[i].height = 0; + //damping for better effect using multiple balls + float dampening = 0.90 - float(i)/pow(numBalls,2); + balls[i].impactVelocity = dampening * balls[i].impactVelocity; + balls[i].lastBounceTime = time; + + if (balls[i].impactVelocity < 0.015) { + balls[i].impactVelocity = impactVelocityStart; + } + } + + uint32_t color = SEGCOLOR(0); + if (SEGMENT.palette) { + color = color_wheel(i*(256/max(numBalls, 8))); + } else if (hasCol2) { + color = SEGCOLOR(i % NUM_COLORS); + } + + uint16_t pos = round(balls[i].height * (SEGLEN - 1)); + setPixelColor(SEGMENT.start + pos, color); + } + + return FRAMETIME; +} + + +/* +* Sinelon stolen from FASTLED examples +*/ +uint16_t WS2812FX::sinelon_base(bool dual, bool rainbow=false) { + fade_out(SEGMENT.intensity); + int pos = beatsin16(SEGMENT.speed/10,0,SEGLEN-1); + + uint32_t color1 = color_from_palette(pos, true, false, 0); + if (rainbow) { + color1 = color_wheel((pos & 0x07) * 32); + } + setPixelColor(SEGMENT.start + pos, color1); + + if (dual) { + uint32_t color2 = SEGCOLOR(2); + + if (!color2) color2 = color_from_palette(pos, true, false, 0); + if (rainbow) color2 = color1; //rainbow + + setPixelColor(SEGMENT.start + SEGLEN-1-pos, color2); + } + + return FRAMETIME; +} + +uint16_t WS2812FX::mode_sinelon(void) { + return sinelon_base(false); +} + +uint16_t WS2812FX::mode_sinelon_dual(void) { + return sinelon_base(true); +} + +uint16_t WS2812FX::mode_sinelon_rainbow(void) { + return sinelon_base(true, true); +} + + +//Rainbow with glitter, inspired by https://gist.github.com/kriegsman/062e10f7f07ba8518af6 +uint16_t WS2812FX::mode_glitter() +{ + mode_palette(); + + if (SEGMENT.intensity > random8()) + { + setPixelColor(SEGMENT.start + random16(SEGLEN), ULTRAWHITE); + } + + return FRAMETIME; +} + + + +//each needs 12 bytes +//Spark type is used for popcorn and 1D fireworks +typedef struct Spark { + float pos; + float vel; + uint16_t col; + uint8_t colIndex; +} spark; + +/* +* POPCORN +* modified from https://github.com/kitesurfer1404/WS2812FX/blob/master/src/custom/Popcorn.h +*/ +uint16_t WS2812FX::mode_popcorn(void) { + //allocate segment data + uint16_t maxNumPopcorn = 24; + uint16_t dataSize = sizeof(spark) * maxNumPopcorn; + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + Spark* popcorn = reinterpret_cast(SEGENV.data); + + float gravity = -0.0001 - (SEGMENT.speed/200000.0); // m/s/s + gravity *= SEGLEN; + + bool hasCol2 = SEGCOLOR(2); + fill(hasCol2 ? BLACK : SEGCOLOR(1)); + + uint8_t numPopcorn = SEGMENT.intensity*maxNumPopcorn/255; + if (numPopcorn == 0) numPopcorn = 1; + + for(uint8_t i = 0; i < numPopcorn; i++) { + bool isActive = popcorn[i].pos >= 0.0f; + + if(isActive) { // if kernel is active, update its position + popcorn[i].pos += popcorn[i].vel; + popcorn[i].vel += gravity; + uint32_t col = color_wheel(popcorn[i].colIndex); + if (!SEGMENT.palette && popcorn[i].colIndex < NUM_COLORS) col = SEGCOLOR(popcorn[i].colIndex); + + uint16_t ledIndex = SEGMENT.start + popcorn[i].pos; + if(ledIndex >= SEGMENT.start && ledIndex < SEGMENT.stop) setPixelColor(ledIndex, col); + } else { // if kernel is inactive, randomly pop it + if(random8() < 2) { // POP!!! + popcorn[i].pos = 0.01f; + + uint16_t peakHeight = 128 + random8(128); //0-255 + peakHeight = (peakHeight * (SEGLEN -1)) >> 8; + popcorn[i].vel = sqrt(-2.0 * gravity * peakHeight); + + if (SEGMENT.palette) + { + popcorn[i].colIndex = random8(); + } else { + byte col = random8(0, NUM_COLORS); + if (!hasCol2 || !SEGCOLOR(col)) col = 0; + popcorn[i].colIndex = col; + } + } + } + } + + return FRAMETIME; +} + + +//values close to 100 produce 5Hz flicker, which looks very candle-y +//Inspired by https://github.com/avanhanegem/ArduinoCandleEffectNeoPixel +//and https://cpldcpu.wordpress.com/2016/01/05/reverse-engineering-a-real-candle/ + +uint16_t WS2812FX::mode_candle() +{ + if (SEGENV.call == 0) { + SEGENV.aux0 = 128; SEGENV.aux1 = 132; SEGENV.step = 1; + } + bool newTarget = false; + + uint8_t s = SEGENV.aux0, target = SEGENV.aux1, fadeStep = SEGENV.step; + + if (target > s) { //fade up + s = qadd8(s, fadeStep); + if (s >= target) newTarget = true; + } else { + s = qsub8(s, fadeStep); + if (s <= target) newTarget = true; + } + SEGENV.aux0 = s; + + for (uint16_t i = SEGMENT.start; i < SEGMENT.stop; i++) { + setPixelColor(i, color_blend(color_from_palette(i, true, PALETTE_SOLID_WRAP, 0), SEGCOLOR(1), 255-s)); + } + + if (newTarget) + { + uint8_t valrange = SEGMENT.intensity; + uint8_t rndval = valrange >> 1; + target = random8(rndval) + random8(rndval); + if (target < (rndval >> 1)) target = (rndval >> 1) + random8(rndval); + uint8_t offset = (255 - valrange) >> 1; + target += offset; + + uint8_t dif = (target > s) ? target - s : s - target; + + //how much to move closer to target per frame + fadeStep = dif >> 2; //mode called every ~25 ms, so 4 frames to have a new target every 100ms + if (fadeStep == 0) fadeStep = 1; + + SEGENV.step = fadeStep; + SEGENV.aux1 = target; + } + + return FRAMETIME; +} + + +/* +/ Fireworks in starburst effect +/ based on the video: https://www.reddit.com/r/arduino/comments/c3sd46/i_made_this_fireworks_effect_for_my_led_strips/ +/ Speed sets frequency of new starbursts, intensity is the intensity of the burst +*/ +#define STARBURST_MAX_FRAG 12 + +//each needs 64 byte +typedef struct particle { + CRGB color; + uint32_t birth =0; + uint32_t last =0; + float vel =0; + uint16_t pos =-1; + float fragment[STARBURST_MAX_FRAG]; +} star; + +uint16_t WS2812FX::mode_starburst(void) { + uint8_t numStars = 1 + (SEGLEN >> 3); + if (numStars > 15) numStars = 15; + uint16_t dataSize = sizeof(star) * numStars; + + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + uint32_t it = millis(); + + star* stars = reinterpret_cast(SEGENV.data); + + float maxSpeed = 375.0f; // Max velocity + float particleIgnition = 250.0f; // How long to "flash" + float particleFadeTime = 1500.0f; // Fade out time + + for (int j = 0; j < numStars; j++) + { + // speed to adjust chance of a burst, max is nearly always. + if (random8((144-(SEGMENT.speed >> 1))) == 0 && stars[j].birth == 0) + { + // Pick a random color and location. + uint16_t startPos = random16(SEGLEN-1); + float multiplier = (float)(random8())/255.0 * 1.0; + + stars[j].color = col_to_crgb(color_wheel(random8())); + stars[j].pos = startPos; + stars[j].vel = maxSpeed * (float)(random8())/255.0 * multiplier; + stars[j].birth = it; + stars[j].last = it; + // more fragments means larger burst effect + int num = random8(3,6 + (SEGMENT.intensity >> 5)); + + for (int i=0; i < STARBURST_MAX_FRAG; i++) { + if (i < num) stars[j].fragment[i] = startPos; + else stars[j].fragment[i] = -1; + } + } + } + + fill(SEGCOLOR(1)); + + for (int j=0; j> 1; + + if (stars[j].fragment[i] > 0) { + //all fragments travel right, will be mirrored on other side + stars[j].fragment[i] += stars[j].vel * dt * (float)var/3.0; + } + } + stars[j].last = it; + stars[j].vel -= 3*stars[j].vel*dt; + } + + CRGB c = stars[j].color; + + // If the star is brand new, it flashes white briefly. + // Otherwise it just fades over time. + float fade = 0.0f; + float age = it-stars[j].birth; + + if (age < particleIgnition) { + c = col_to_crgb(color_blend(WHITE, crgb_to_col(c), 254.5f*((age / particleIgnition)))); + } else { + // Figure out how much to fade and shrink the star based on + // its age relative to its lifetime + if (age > particleIgnition + particleFadeTime) { + fade = 1.0f; // Black hole, all faded out + stars[j].birth = 0; + c = col_to_crgb(SEGCOLOR(1)); + } else { + age -= particleIgnition; + fade = (age / particleFadeTime); // Fading star + byte f = 254.5f*fade; + c = col_to_crgb(color_blend(crgb_to_col(c), SEGCOLOR(1), f)); + } + } + + float particleSize = (1.0 - fade) * 2; + + for (uint8_t index=0; index < STARBURST_MAX_FRAG*2; index++) { + bool mirrored = index & 0x1; + uint8_t i = index >> 1; + if (stars[j].fragment[i] > 0) { + float loc = stars[j].fragment[i]; + if (mirrored) loc -= (loc-stars[j].pos)*2; + int start = loc - particleSize; + int end = loc + particleSize; + if (start < 0) start = 0; + if (start == end) end++; + if (end > SEGLEN) end = SEGLEN; + for (int p = start; p < end; p++) { + setPixelColor(SEGMENT.start+p, c.r, c.g, c.b); + } + } + } + } + return FRAMETIME; +} + + +/* + * Exploding fireworks effect + * adapted from: http://www.anirama.com/1000leds/1d-fireworks/ + */ + +uint16_t WS2812FX::mode_exploding_fireworks(void) +{ + //allocate segment data + uint16_t numSparks = 2 + (SEGLEN >> 1); + if (numSparks > 80) numSparks = 80; + uint16_t dataSize = sizeof(spark) * numSparks; + if (!SEGENV.allocateData(dataSize)) return mode_static(); //allocation failed + + fill(BLACK); + + bool actuallyReverse = SEGMENT.getOption(1); + //have fireworks start in either direction based on intensity + SEGMENT.setOption(1, SEGENV.step); + + Spark* sparks = reinterpret_cast(SEGENV.data); + Spark* flare = sparks; //first spark is flare data + + float gravity = -0.0004 - (SEGMENT.speed/800000.0); // m/s/s + gravity *= SEGLEN; + + if (SEGENV.aux0 < 2) { //FLARE + if (SEGENV.aux0 == 0) { //init flare + flare->pos = 0; + uint16_t peakHeight = 75 + random8(180); //0-255 + peakHeight = (peakHeight * (SEGLEN -1)) >> 8; + flare->vel = sqrt(-2.0 * gravity * peakHeight); + flare->col = 255; //brightness + + SEGENV.aux0 = 1; + } + + // launch + if (flare->vel > 12 * gravity) { + // flare + setPixelColor(SEGMENT.start + int(flare->pos),flare->col,flare->col,flare->col); + + flare->pos += flare->vel; + flare->pos = constrain(flare->pos, 0, SEGLEN-1); + flare->vel += gravity; + flare->col -= 2; + } else { + SEGENV.aux0 = 2; // ready to explode + } + } else if (SEGENV.aux0 < 4) { + /* + * Explode! + * + * Explosion happens where the flare ended. + * Size is proportional to the height. + */ + int nSparks = flare->pos; + nSparks = constrain(nSparks, 0, numSparks); + static float dying_gravity; + + // initialize sparks + if (SEGENV.aux0 == 2) { + for (int i = 1; i < nSparks; i++) { + sparks[i].pos = flare->pos; + sparks[i].vel = (float(random16(0, 20000)) / 10000.0) - 0.9; // from -0.9 to 1.1 + sparks[i].col = 345;//abs(sparks[i].vel * 750.0); // set colors before scaling velocity to keep them bright + //sparks[i].col = constrain(sparks[i].col, 0, 345); + sparks[i].colIndex = random8(); + sparks[i].vel *= flare->pos/SEGLEN; // proportional to height + sparks[i].vel *= -gravity *50; + } + //sparks[1].col = 345; // this will be our known spark + dying_gravity = gravity/2; + SEGENV.aux0 = 3; + } + + if (sparks[1].col > 4) {//&& sparks[1].pos > 0) { // as long as our known spark is lit, work with all the sparks + for (int i = 1; i < nSparks; i++) { + sparks[i].pos += sparks[i].vel; + sparks[i].vel += dying_gravity; + if (sparks[i].col > 3) sparks[i].col -= 4; + + if (sparks[i].pos > 0 && sparks[i].pos < SEGLEN) { + uint16_t prog = sparks[i].col; + uint32_t spColor = (SEGMENT.palette) ? color_wheel(sparks[i].colIndex) : SEGCOLOR(0); + CRGB c = CRGB::Black; //HeatColor(sparks[i].col); + if (prog > 300) { //fade from white to spark color + c = col_to_crgb(color_blend(spColor, WHITE, (prog - 300)*5)); + } else if (prog > 45) { //fade from spark color to black + c = col_to_crgb(color_blend(BLACK, spColor, prog - 45)); + uint8_t cooling = (300 - prog) >> 5; + c.g = qsub8(c.g, cooling); + c.b = qsub8(c.b, cooling * 2); + } + setPixelColor(SEGMENT.start + int(sparks[i].pos), c.red, c.green, c.blue); + } + } + dying_gravity *= .99; // as sparks burn out they fall slower + } else { + SEGENV.aux0 = 6 + random8(10); //wait for this many frames + } + } else { + SEGENV.aux0--; + if (SEGENV.aux0 < 4) { + SEGENV.aux0 = 0; //back to flare + SEGENV.step = (SEGMENT.intensity > random8()); //decide firing side + } + } + + SEGMENT.setOption(1, actuallyReverse); + + return FRAMETIME; +} diff --git a/wled00/FX.h b/wled00/FX.h index f5f12230f..c08fe2f71 100644 --- a/wled00/FX.h +++ b/wled00/FX.h @@ -42,12 +42,19 @@ /* Not used in all effects yet */ #define WLED_FPS 42 -#define FRAMETIME 1000/WLED_FPS +#define FRAMETIME (1000/WLED_FPS) -/* each segment uses 41 bytes of SRAM memory, so if you're application fails because of +/* each segment uses 52 bytes of SRAM memory, so if you're application fails because of insufficient memory, decreasing MAX_NUM_SEGMENTS may help */ #define MAX_NUM_SEGMENTS 10 +/* How much data bytes all segments combined may allocate */ +#ifdef ESP8266 +#define MAX_SEGMENT_DATA 2048 +#else +#define MAX_SEGMENT_DATA 8192 +#endif + #define NUM_COLORS 3 /* number of colors per segment */ #define SEGMENT _segments[_segment_index] #define SEGCOLOR(x) gamma32(_segments[_segment_index].colors[x]) @@ -84,7 +91,7 @@ #define IS_REVERSE ((SEGMENT.options & REVERSE ) == REVERSE ) #define IS_SELECTED ((SEGMENT.options & SELECTED) == SELECTED ) -#define MODE_COUNT 87 +#define MODE_COUNT 96 #define FX_MODE_STATIC 0 #define FX_MODE_BLINK 1 @@ -173,10 +180,22 @@ #define FX_MODE_TRI_STATIC_PATTERN 84 #define FX_MODE_SPOTS 85 #define FX_MODE_SPOTS_FADE 86 +#define FX_MODE_GLITTER 87 +#define FX_MODE_CANDLE 88 +#define FX_MODE_STARBURST 89 +#define FX_MODE_EXPLODING_FIREWORKS 90 +#define FX_MODE_BOUNCINGBALLS 91 +#define FX_MODE_SINELON 92 +#define FX_MODE_SINELON_DUAL 93 +#define FX_MODE_SINELON_RAINBOW 94 +#define FX_MODE_POPCORN 95 class WS2812FX { typedef uint16_t (WS2812FX::*mode_ptr)(void); + + // pre show callback + typedef void (*show_callback) (void); // segment parameters public: @@ -223,13 +242,33 @@ class WS2812FX { } segment; // segment runtime parameters - typedef struct Segment_runtime { // 16 bytes + typedef struct Segment_runtime { // 28 bytes unsigned long next_time; uint32_t step; uint32_t call; uint16_t aux0; uint16_t aux1; - void reset(){next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0;}; + byte* data = nullptr; + bool allocateData(uint16_t len){ + if (data && _dataLen == len) return true; //already allocated + deallocateData(); + if (WS2812FX::_usedSegmentData + len > MAX_SEGMENT_DATA) return false; //not enough memory + data = new (std::nothrow) byte[len]; + if (!data) return false; //allocation failed + WS2812FX::_usedSegmentData += len; + _dataLen = len; + memset(data, 0, len); + return true; + } + void deallocateData(){ + delete[] data; + data = nullptr; + WS2812FX::_usedSegmentData -= _dataLen; + _dataLen = 0; + } + void reset(){next_time = 0; step = 0; call = 0; aux0 = 0; aux1 = 0; deallocateData();} + private: + uint16_t _dataLen = 0; } segment_runtime; WS2812FX() { @@ -321,6 +360,15 @@ class WS2812FX { _mode[FX_MODE_TRI_STATIC_PATTERN] = &WS2812FX::mode_tri_static_pattern; _mode[FX_MODE_SPOTS] = &WS2812FX::mode_spots; _mode[FX_MODE_SPOTS_FADE] = &WS2812FX::mode_spots_fade; + _mode[FX_MODE_GLITTER] = &WS2812FX::mode_glitter; + _mode[FX_MODE_CANDLE] = &WS2812FX::mode_candle; + _mode[FX_MODE_STARBURST] = &WS2812FX::mode_starburst; + _mode[FX_MODE_EXPLODING_FIREWORKS] = &WS2812FX::mode_exploding_fireworks; + _mode[FX_MODE_BOUNCINGBALLS] = &WS2812FX::mode_bouncing_balls; + _mode[FX_MODE_SINELON] = &WS2812FX::mode_sinelon; + _mode[FX_MODE_SINELON_DUAL] = &WS2812FX::mode_sinelon_dual; + _mode[FX_MODE_SINELON_RAINBOW] = &WS2812FX::mode_sinelon_rainbow; + _mode[FX_MODE_POPCORN] = &WS2812FX::mode_popcorn; _brightness = DEFAULT_BRIGHTNESS; currentPalette = CRGBPalette16(CRGB::Black); @@ -328,8 +376,6 @@ class WS2812FX { ablMilliampsMax = 850; currentMilliamps = 0; timebase = 0; - _locked = nullptr; - _modeUsesLock = false; bus = new NeoPixelWrapper(); resetSegments(); } @@ -346,13 +392,8 @@ class WS2812FX { driverModeCronixie(bool b), setCronixieDigits(byte* d), setCronixieBacklight(bool b), - setIndividual(uint16_t i, uint32_t col), setRange(uint16_t i, uint16_t i2, uint32_t col), - lock(uint16_t i), - lockRange(uint16_t i, uint16_t i2), - unlock(uint16_t i), - unlockRange(uint16_t i, uint16_t i2), - unlockAll(void), + setShowCallback(show_callback cb), setTransitionMode(bool t), trigger(void), setSegment(uint8_t n, uint16_t start, uint16_t length, uint8_t group, uint8_t spacing), @@ -502,7 +543,17 @@ class WS2812FX { mode_static_pattern(void), mode_tri_static_pattern(void), mode_spots(void), - mode_spots_fade(void); + mode_spots_fade(void), + mode_glitter(void), + mode_candle(void), + mode_starburst(void), + mode_exploding_fireworks(void), + mode_bouncing_balls(void), + mode_sinelon(void), + mode_sinelon_dual(void), + mode_sinelon_rainbow(void), + mode_popcorn(void); + private: NeoPixelWrapper *bus; @@ -516,24 +567,24 @@ class WS2812FX { uint16_t _length; uint16_t _rand16seed; uint8_t _brightness; + static uint16_t _usedSegmentData; void handle_palette(void); void fill(uint32_t); - bool modeUsesLock(uint8_t); bool - _modeUsesLock, _rgbwMode, _cronixieMode, _cronixieBacklightEnabled, _skipFirstMode, _triggered; - byte* _locked; byte _cronixieDigits[6]; mode_ptr _mode[MODE_COUNT]; // SRAM footprint: 4 bytes per element + show_callback _callback = nullptr; + // mode helper functions uint16_t blink(uint32_t, uint32_t, bool strobe, bool), @@ -541,6 +592,8 @@ class WS2812FX { scan(bool), theater_chase(uint32_t, uint32_t, bool), running_base(bool), + larson_scanner(bool), + sinelon_base(bool,bool), dissolve(uint32_t), chase(uint32_t, uint32_t, uint32_t, bool), gradient_base(bool), @@ -561,8 +614,10 @@ class WS2812FX { // start, stop, length, speed, intensity, palette, mode, options, group, spacing, opacity (unused), color[] { 0, 7, 7, DEFAULT_SPEED, 128, 0, DEFAULT_MODE, NO_OPTIONS, 1, 0, 255, {DEFAULT_COLOR}} }; - segment_runtime _segment_runtimes[MAX_NUM_SEGMENTS]; // SRAM footprint: 16 bytes per element + segment_runtime _segment_runtimes[MAX_NUM_SEGMENTS]; // SRAM footprint: 28 bytes per element + friend class Segment_runtime; + uint16_t realPixelIndex(uint16_t i); }; @@ -570,14 +625,15 @@ class WS2812FX { //10 names per line const char JSON_mode_names[] PROGMEM = R"=====([ "Solid","Blink","Breathe","Wipe","Wipe Random","Random Colors","Sweep","Dynamic","Colorloop","Rainbow", -"Scan","Dual Scan","Fade","Theater","Theater Rainbow","Running","Saw","Twinkle","Dissolve","Dissolve Rnd", -"Sparkle","Dark Sparkle","Sparkle+","Strobe","Strobe Rainbow","Mega Strobe","Blink Rainbow","Android","Chase","Chase Random", +"Scan","Scan Dual","Fade","Theater","Theater Rainbow","Running","Saw","Twinkle","Dissolve","Dissolve Rnd", +"Sparkle","Sparkle Dark","Sparkle+","Strobe","Strobe Rainbow","Strobe Mega","Blink Rainbow","Android","Chase","Chase Random", "Chase Rainbow","Chase Flash","Chase Flash Rnd","Rainbow Runner","Colorful","Traffic Light","Sweep Random","Running 2","Red & Blue","Stream", "Scanner","Lighthouse","Fireworks","Rain","Merry Christmas","Fire Flicker","Gradient","Loading","Police","Police All", "Two Dots","Two Areas","Circus","Halloween","Tri Chase","Tri Wipe","Tri Fade","Lightning","ICU","Multi Comet", -"Dual Scanner","Stream 2","Oscillate","Pride 2015","Juggle","Palette","Fire 2012","Colorwaves","Bpm","Fill Noise", -"Noise 1","Noise 2","Noise 3","Noise 4","Colortwinkles","Lake","Meteor","Smooth Meteor","Railway","Ripple", -"Twinklefox","Twinklecat","Halloween Eyes","Solid Pattern","Solid Pattern Tri","Spots","Spots Fade" +"Scanner Dual","Stream 2","Oscillate","Pride 2015","Juggle","Palette","Fire 2012","Colorwaves","Bpm","Fill Noise", +"Noise 1","Noise 2","Noise 3","Noise 4","Colortwinkles","Lake","Meteor","Meteor Smooth","Railway","Ripple", +"Twinklefox","Twinklecat","Halloween Eyes","Solid Pattern","Solid Pattern Tri","Spots","Spots Fade","Glitter","Candle","Fireworks Starburst", +"Fireworks 1D","Bouncing Balls","Sinelon","Sinelon Dual","Sinelon Rainbow","Popcorn" ])====="; @@ -586,7 +642,8 @@ const char JSON_palette_names[] PROGMEM = R"=====([ "Forest","Rainbow","Rainbow Bands","Sunset","Rivendell","Breeze","Red & Blue","Yellowout","Analogous","Splash", "Pastel","Sunset 2","Beech","Vintage","Departure","Landscape","Beach","Sherbet","Hult","Hult 64", "Drywet","Jul","Grintage","Rewhi","Tertiary","Fire","Icefire","Cyane","Light Pink","Autumn", -"Magenta","Magred","Yelmag","Yelblu","Orange & Teal","Tiamat","April Night","Orangery","C9","Sakura" +"Magenta","Magred","Yelmag","Yelblu","Orange & Teal","Tiamat","April Night","Orangery","C9","Sakura", +"Aurora" ])====="; #endif diff --git a/wled00/FX_fcn.cpp b/wled00/FX_fcn.cpp index f68e7d0f5..fcfae088d 100644 --- a/wled00/FX_fcn.cpp +++ b/wled00/FX_fcn.cpp @@ -32,7 +32,7 @@ void WS2812FX::init(bool supportWhite, uint16_t countPixels, uint8_t group, uint8_t spacing, bool skipFirst) { - if (supportWhite == _rgbwMode && countPixels == _length && _locked != NULL && group == _group && spacing == _spacing) return; + if (supportWhite == _rgbwMode && countPixels == _length && disableNLeds == _disableNLeds) return; RESET_RUNTIME; _rgbwMode = supportWhite; _skipFirstMode = skipFirst; @@ -46,16 +46,13 @@ void WS2812FX::init(bool supportWhite, uint16_t countPixels, uint8_t group, uint bus->Begin((NeoPixelType)ty, lengthRaw); - delete[] _locked; - _locked = new byte[_length]; - _segments[0].start = 0; + _segments[0].group = _group; _segments[0].spacing = _spacing; _segments[0].stop = getUsableCount(); _segments[0].rawLength = _length; - - unlockAll(); + setBrightness(_brightness); } @@ -91,14 +88,6 @@ void WS2812FX::service() { _triggered = false; } -bool WS2812FX::modeUsesLock(uint8_t m) -{ - if (m == FX_MODE_FIRE_2012 || m == FX_MODE_COLORTWINKLE || - m == FX_MODE_METEOR || m == FX_MODE_METEOR_SMOOTH || - m == FX_MODE_RIPPLE || m == FX_MODE_DYNAMIC ) return true; - return false; -} - void WS2812FX::setPixelColor(uint16_t n, uint32_t c) { uint8_t w = (c >> 24); uint8_t r = (c >> 16); @@ -124,10 +113,10 @@ uint16_t WS2812FX::realPixelIndex(uint16_t i) { void WS2812FX::setPixelColor(uint16_t i, byte r, byte g, byte b, byte w) { - if (_locked[i] && !_modeUsesLock) return; RgbwColor color; color.W = w; + switch (colorOrder) //0 = Grb, default { case 0: color.G = g; color.R = r; color.B = b; break; // 0 = GRB @@ -218,6 +207,8 @@ void WS2812FX::setCronixieDigits(byte d[]) //you can set it to 0 if the ESP is powered by USB and the LEDs by external void WS2812FX::show(void) { + if (_callback) _callback(); + //power limit calculation //each LED can draw up 195075 "power units" (approx. 53mA) //one PU is the power it takes to have 1 channel 1 step brighter per brightness step @@ -283,7 +274,6 @@ void WS2812FX::trigger() { void WS2812FX::setMode(uint8_t segid, uint8_t m) { if (segid >= MAX_NUM_SEGMENTS) return; - bool anyUsedLock = _modeUsesLock, anyUseLock = false; if (m >= MODE_COUNT) m = MODE_COUNT - 1; if (_segments[segid].mode != m) @@ -291,13 +281,6 @@ void WS2812FX::setMode(uint8_t segid, uint8_t m) { _segment_runtimes[segid].reset(); _segments[segid].mode = m; } - - for (uint8_t i = 0; i < MAX_NUM_SEGMENTS; i++) - { - if (modeUsesLock(_segments[i].mode)) anyUseLock = true; - } - if (anyUsedLock && !anyUseLock) unlockAll(); - _modeUsesLock = anyUseLock; } uint8_t WS2812FX::getModeCount() @@ -457,13 +440,9 @@ uint32_t WS2812FX::getLastShow(void) { void WS2812FX::setSegment(uint8_t n, uint16_t start, uint16_t length, uint8_t group, uint8_t spacing) { if (n >= MAX_NUM_SEGMENTS) return; Segment& seg = _segments[n]; + if (seg.start == start && seg.rawLength == length && seg.group == group && seg.spacing == spacing) return; - if (seg.isActive() && modeUsesLock(seg.mode)) - { - _modeUsesLock = false; - unlockRange(seg.start, seg.stop); - _modeUsesLock = true; - } + _segment_index = n; fill(0); //turn old segment range off seg.rawLength = min(_length - start, length); @@ -482,7 +461,7 @@ void WS2812FX::setSegment(uint8_t n, uint16_t start, uint16_t length, uint8_t gr void WS2812FX::resetSegments() { memset(_segments, 0, sizeof(_segments)); - memset(_segment_runtimes, 0, sizeof(_segment_runtimes)); + //memset(_segment_runtimes, 0, sizeof(_segment_runtimes)); _segment_index = 0; _segments[0].mode = DEFAULT_MODE; _segments[0].colors[0] = DEFAULT_COLOR; @@ -491,65 +470,32 @@ void WS2812FX::resetSegments() { _segments[0].stop = getUsableCount(); _segments[0].rawLength = _length; _segments[0].setOption(0, 1); //select + _segments[0].group = _group; _segments[0].spacing = _spacing; -} -void WS2812FX::setIndividual(uint16_t i, uint32_t col) -{ - if (modeUsesLock(SEGMENT.mode)) return; - if (i >= 0 && i < _length) + for (uint16_t i = 1; i < MAX_NUM_SEGMENTS; i++) { - _locked[i] = false; - setPixelColor(i, col); - _locked[i] = true; + _segments[i].colors[0] = color_wheel(i*51); + _segment_runtimes[i].reset(); } + _segment_runtimes[0].reset(); } void WS2812FX::setRange(uint16_t i, uint16_t i2, uint32_t col) { if (i2 >= i) { - for (uint16_t x = i; x <= i2; x++) setIndividual(x,col); + for (uint16_t x = i; x <= i2; x++) setPixelColor(x, col); } else { - for (uint16_t x = i2; x <= i; x++) setIndividual(x,col); + for (uint16_t x = i2; x <= i; x++) setPixelColor(x, col); } } -void WS2812FX::lock(uint16_t i) +void WS2812FX::setShowCallback(show_callback cb) { - if (_modeUsesLock) return; - if (i < _length) _locked[i] = true; -} - -void WS2812FX::lockRange(uint16_t i, uint16_t i2) -{ - if (_modeUsesLock) return; - for (uint16_t x = i; x < i2; x++) - { - if (x < _length) _locked[i] = true; - } -} - -void WS2812FX::unlock(uint16_t i) -{ - if (_modeUsesLock) return; - if (i < _length) _locked[i] = false; -} - -void WS2812FX::unlockRange(uint16_t i, uint16_t i2) -{ - if (_modeUsesLock) return; - for (uint16_t x = i; x < i2; x++) - { - if (x < _length) _locked[x] = false; - } -} - -void WS2812FX::unlockAll() -{ - for (int i=0; i < _length; i++) _locked[i] = false; + _callback = cb; } void WS2812FX::setTransitionMode(bool t) @@ -723,7 +669,8 @@ void WS2812FX::handle_palette(void) _segment_index_palette_last = _segment_index; byte paletteIndex = SEGMENT.palette; - if ((SEGMENT.mode >= FX_MODE_METEOR) && SEGMENT.palette == 0) paletteIndex = 4; + if (SEGMENT.mode == FX_MODE_GLITTER && paletteIndex == 0) paletteIndex = 11; + if (SEGMENT.mode >= FX_MODE_METEOR && paletteIndex == 0) paletteIndex = 4; switch (paletteIndex) { @@ -737,6 +684,7 @@ void WS2812FX::handle_palette(void) case FX_MODE_NOISE16_2 : targetPalette = gGradientPalettes[30]; break;//Blue cyan yellow case FX_MODE_NOISE16_3 : targetPalette = gGradientPalettes[22]; break;//heat palette case FX_MODE_NOISE16_4 : targetPalette = gGradientPalettes[13]; break;//landscape 33 + //case FX_MODE_GLITTER : targetPalette = RainbowColors_p; break; default: targetPalette = PartyColors_p; break;//palette, bpm } @@ -775,7 +723,8 @@ void WS2812FX::handle_palette(void) case 5: {//based on primary + secondary CRGB prim = col_to_crgb(SEGCOLOR(0)); CRGB sec = col_to_crgb(SEGCOLOR(1)); - targetPalette = CRGBPalette16(sec,prim,CRGB::White); break;} + CRGB ter = col_to_crgb(SEGCOLOR(2)); + targetPalette = CRGBPalette16(ter,sec,prim); break;} case 6: //Party colors targetPalette = PartyColors_p; break; case 7: //Cloud colors @@ -867,3 +816,5 @@ uint32_t WS2812FX::gamma32(uint32_t color) b = gammaT[b]; return ((w << 24) | (r << 16) | (g << 8) | (b)); } + +uint16_t WS2812FX::_usedSegmentData = 0; diff --git a/wled00/NpbWrapper.h b/wled00/NpbWrapper.h index fb8ae1b53..05d738680 100644 --- a/wled00/NpbWrapper.h +++ b/wled00/NpbWrapper.h @@ -5,12 +5,18 @@ //PIN CONFIGURATION #define LEDPIN 2 //strip pin. Any for ESP32, gpio2 or 3 is recommended for ESP8266 (gpio2/3 are labeled D4/RX on NodeMCU and Wemos) //#define USE_APA102 // Uncomment for using APA102 LEDs. -#define BTNPIN 0 //button pin. Needs to have pullup (gpio0 recommended) -#define IR_PIN 4 //infrared pin (-1 to disable) -#define RLYPIN 12 //pin for relay, will be set HIGH if LEDs are on (-1 to disable). Also usable for standby leds, triggers,... -#define AUXPIN -1 //debug auxiliary output pin (-1 to disable) +//#define WLED_USE_ANALOG_LEDS //Uncomment for using "dumb" PWM controlled LEDs (see pins below, default R: gpio5, G: 12, B: 15, W: 13) +//#define WLED_USE_H801 //H801 controller. Please uncomment #define WLED_USE_ANALOG_LEDS as well +//#define WLED_USE_5CH //5 Channel H801 for cold and warm white -#define RLYMDE 1 //mode for relay, 0: LOW if LEDs are on 1: HIGH if LEDs are on +#define BTNPIN 0 //button pin. Needs to have pullup (gpio0 recommended) +#define IR_PIN 4 //infrared pin (-1 to disable) MagicHome: 4, H801 Wifi: 0 +#define RLYPIN 12 //pin for relay, will be set HIGH if LEDs are on (-1 to disable). Also usable for standby leds, triggers,... +#define AUXPIN -1 //debug auxiliary output pin (-1 to disable) + +#define RLYMDE 1 //mode for relay, 0: LOW if LEDs are on 1: HIGH if LEDs are on + +//END CONFIGURATION #ifdef USE_APA102 #define CLKPIN 0 @@ -20,6 +26,27 @@ #endif #endif +#ifdef WLED_USE_ANALOG_LEDS + //PWM pins - PINs 15,13,12,14 (W2 = 04)are used with H801 Wifi LED Controller + #ifdef WLED_USE_H801 + #define RPIN 15 //R pin for analog LED strip + #define GPIN 13 //G pin for analog LED strip + #define BPIN 12 //B pin for analog LED strip + #define WPIN 14 //W pin for analog LED strip (W1: 14, W2: 04) + #define W2PIN 04 //W2 pin for analog LED strip + #undef BTNPIN + #undef IR_PIN + #define IR_PIN 0 //infrared pin (-1 to disable) MagicHome: 4, H801 Wifi: 0 + #else + //PWM pins - PINs 5,12,13,15 are used with Magic Home LED Controller + #define RPIN 5 //R pin for analog LED strip + #define GPIN 12 //G pin for analog LED strip + #define BPIN 15 //B pin for analog LED strip + #define WPIN 13 //W pin for analog LED strip (W1: 14, W2: 04) + #endif + #undef RLYPIN + #define RLYPIN -1 //disable as pin 12 is used by analog LEDs +#endif //automatically uses the right driver method for each platform #ifdef ARDUINO_ARCH_ESP32 @@ -103,41 +130,94 @@ public: _pGrbw = new NeoPixelBrightnessBus(countPixels, LEDPIN); #endif _pGrbw->Begin(); + + #ifdef WLED_USE_ANALOG_LEDS + pinMode(WPIN, OUTPUT); + #ifdef WLED_USE_5CH_LEDS + pinMode(W2PIN, OUTPUT); + #endif + #endif + break; } + + #ifdef WLED_USE_ANALOG_LEDS + //init PWM pins - PINs 5,12,13,15 are used with Magic Home LED Controller + pinMode(RPIN, OUTPUT); + pinMode(GPIN, OUTPUT); + pinMode(BPIN, OUTPUT); + analogWriteRange(255); //same range as one RGB channel + analogWriteFreq(880); //PWM frequency proven as good for LEDs + #endif } +#ifdef WLED_USE_ANALOG_LEDS + void SetRgbwPwm(uint8_t r, uint8_t g, uint8_t b, uint8_t w, uint8_t w2=0) + { + analogWrite(RPIN, r); + analogWrite(GPIN, g); + analogWrite(BPIN, b); + switch (_type) { + case NeoPixelType_Grb: break; + #ifdef WLED_USE_5CH_LEDS + case NeoPixelType_Grbw: analogWrite(WPIN, w); analogWrite(W2PIN, w2); break; + #else + case NeoPixelType_Grbw: analogWrite(WPIN, w); break; + #endif + } + } +#endif + void Show() { + byte b; switch (_type) { - case NeoPixelType_Grb: _pGrb->Show(); break; - case NeoPixelType_Grbw: _pGrbw->Show(); break; - } - } - - bool CanShow() const - { - switch (_type) { - case NeoPixelType_Grb: _pGrb->CanShow(); break; - case NeoPixelType_Grbw: _pGrbw->CanShow(); break; - } - } - - void SetPixelColor(uint16_t indexPixel, RgbColor color) - { - switch (_type) { - case NeoPixelType_Grb: _pGrb->SetPixelColor(indexPixel, color); break; - case NeoPixelType_Grbw:_pGrbw->SetPixelColor(indexPixel, color); break; + case NeoPixelType_Grb: _pGrb->Show(); break; + case NeoPixelType_Grbw: _pGrbw->Show(); break; } } void SetPixelColor(uint16_t indexPixel, RgbwColor color) { switch (_type) { - case NeoPixelType_Grb: _pGrb->SetPixelColor(indexPixel, RgbColor(color.R,color.G,color.B)); break; - case NeoPixelType_Grbw: _pGrbw->SetPixelColor(indexPixel, color); break; + case NeoPixelType_Grb: { + _pGrb->SetPixelColor(indexPixel, RgbColor(color.R,color.G,color.B)); + #ifdef WLED_USE_ANALOG_LEDS + if (indexPixel != 0) return; //set analog LEDs from first pixel + byte b = _pGrb->GetBrightness(); + SetRgbwPwm(color.R * b / 255, color.G * b / 255, color.B * b / 255, 0); + #endif + } + break; + case NeoPixelType_Grbw: { + _pGrbw->SetPixelColor(indexPixel, color); + #ifdef WLED_USE_ANALOG_LEDS + if (indexPixel != 0) return; //set analog LEDs from first pixel + byte b = _pGrbw->GetBrightness(); + // check color values for Warm / Cold white mix (for RGBW) // EsplanexaDevice.cpp + #ifdef WLED_USE_5CH_LEDS + if (color.R == 255 & color.G == 255 && color.B == 255 && color.W == 255) { + SetRgbwPwm(0, 0, 0, 0, color.W * b / 255); + } else if (color.R == 127 & color.G == 127 && color.B == 127 && color.W == 255) { + SetRgbwPwm(0, 0, 0, color.W * b / 512, colorW.W * b / 255); + } else if (color.R == 0 & color.G == 0 && color.B == 0 && color.W == 255) { + SetRgbwPwm(0, 0, 0, color.W * b / 255, 0); + } else if (color.R == 130 & color.G == 90 && color.B == 0 && color.W == 255) { + SetRgbwPwm(0, 0, 0, color.W * b / 255, color.W * b / 512); + } else if (color.R == 255 & color.G == 153 && color.B == 0 && color.W == 255) { + SetRgbwPwm(0, 0, 0, color.W * b / 255, 0); + } else { // not only white colors + SetRgbwPwm(color.R * b / 255, colorW.G * b / 255, colorW.B * b / 255, color.W * b / 255); + } + #else + SetRgbwPwm(color.R * b / 255, color.G * b / 255, color.B * b / 255, color.W * b / 255); + #endif + #endif + } + break; } + } void SetBrightness(byte b) @@ -148,15 +228,6 @@ public: } } - RgbColor GetPixelColor(uint16_t indexPixel) const - { - switch (_type) { - case NeoPixelType_Grb: return _pGrb->GetPixelColor(indexPixel); break; - case NeoPixelType_Grbw: /*doesn't support it so we don't return it*/ break; - } - return 0; - } - // NOTE: Due to feature differences, some support RGBW but the method name // here needs to be unique, thus GetPixeColorRgbw RgbwColor GetPixelColorRgbw(uint16_t indexPixel) const @@ -168,21 +239,6 @@ public: return 0; } - void ClearTo(RgbColor color) - { - switch (_type) { - case NeoPixelType_Grb: _pGrb->ClearTo(color); break; - case NeoPixelType_Grbw:_pGrbw->ClearTo(color); break; - } - } - - void ClearTo(RgbwColor color) - { - switch (_type) { - case NeoPixelType_Grb: break; - case NeoPixelType_Grbw:_pGrbw->ClearTo(color); break; - } - } private: NeoPixelType _type; diff --git a/wled00/data/index.htm b/wled00/data/index.htm index 439081b44..e7ea5e75b 100644 --- a/wled00/data/index.htm +++ b/wled00/data/index.htm @@ -10,7 +10,7 @@ -

WLED Software Update

Installed version: 0.9.0-dev
Download the latest binary:

)====="; +

WLED Software Update

Installed version: 0.9.0-b1
Download the latest binary:

)====="; //new user welcome page @@ -36,14 +36,50 @@ const char PAGE_liveview[] PROGMEM = R"=====( WLED Live Preview - - -
- + + +
+ )====="; diff --git a/wled00/html_settings.h b/wled00/html_settings.h index c0a4d644f..e66c99020 100644 --- a/wled00/html_settings.h +++ b/wled00/html_settings.h @@ -121,7 +121,7 @@ Color order:

Defaults

@@ -168,7 +168,8 @@ function gId(s){return document.getElementById(s);}function S(){GetV();Ct();}fun

Web Setup

-Server description:

+Server description:
+Sync button toggles both send and receive:


@@ -219,6 +220,7 @@ For best results, only use one of these services at a time.
Device Auth token:
Clear the token field to disable. Setup info

MQTT

+Enable MQTT:
Broker: Port:
The MQTT credentials are sent over an unsecured connection.
@@ -280,6 +282,7 @@ Time zone: +
UTC offset: seconds (max. 18 hours)
Current local time is unknown. @@ -288,7 +291,7 @@ Clock Overlay:
@@ -366,10 +369,10 @@ HTTP traffic is unencrypted. An attacker in the same network can intercept form
Enable ArduinoOTA:

About

-WLED version 0.9.0-dev

+WLED version 0.9.0-b2

Contributors, dependencies and special thanks
A huge thank you to everyone who helped me create WLED!

-(c) 2016-2019 Christian Schwinne
+(c) 2016-2020 Christian Schwinne
Licensed under the MIT license

Server message: Response error!
diff --git a/wled00/html_ui.h b/wled00/html_ui.h index 3ac3f4fc4..929d290c6 100644 --- a/wled00/html_ui.h +++ b/wled00/html_ui.h @@ -10,1464 +10,1450 @@ * 4. update length value */ -const uint16_t PAGE_index_L = 23301; //length of the binary payload +const uint16_t PAGE_index_L = 23083; //length of the binary payload const uint8_t PAGE_index[] PROGMEM = { - 0x1f, 0x8b, 0x08, 0x08, 0xb2, 0x51, 0xe8, 0x5d, 0x00, 0x03, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x32, - 0x32, 0x20, 0x28, 0x31, 0x29, 0x2e, 0x68, 0x74, 0x6d, 0x00, 0xd4, 0x7d, 0x69, 0x73, 0xda, 0xca, - 0xb6, 0xe8, 0xe7, 0xec, 0xaa, 0xfd, 0x1f, 0xd8, 0xa4, 0x5e, 0x62, 0x1f, 0x0f, 0x42, 0x4c, 0xc6, - 0x4e, 0x9c, 0x73, 0x5a, 0x42, 0x80, 0x00, 0x61, 0x04, 0x48, 0x80, 0x4f, 0x9d, 0x0f, 0x42, 0x08, - 0x21, 0x10, 0x12, 0x96, 0x04, 0x02, 0xf6, 0xdd, 0xef, 0xb7, 0xbf, 0xd5, 0xad, 0x01, 0x31, 0x25, - 0xce, 0xcd, 0xbe, 0xb7, 0xea, 0x91, 0x04, 0xe8, 0x69, 0xf5, 0xea, 0x35, 0xaf, 0xa5, 0xb6, 0xf3, - 0xf5, 0x8f, 0xf2, 0x0b, 0xdb, 0x1b, 0xb6, 0xb9, 0xd4, 0xd4, 0x5b, 0x98, 0xdf, 0x7e, 0xff, 0xed, - 0x6b, 0xfc, 0xa9, 0x29, 0x63, 0xf8, 0x4c, 0xa5, 0xbe, 0x2e, 0x34, 0x4f, 0x49, 0x59, 0xca, 0x42, - 0x7b, 0x4e, 0xaf, 0x0d, 0xcd, 0x5f, 0xda, 0x8e, 0x97, 0x4e, 0xa9, 0xb6, 0xe5, 0x69, 0x96, 0xf7, - 0x9c, 0xf6, 0x8d, 0xb1, 0x37, 0x7d, 0x1e, 0x6b, 0x6b, 0x43, 0xd5, 0xee, 0x48, 0xe3, 0x36, 0x65, - 0x58, 0x86, 0x67, 0x28, 0xe6, 0x9d, 0xab, 0x2a, 0xa6, 0xf6, 0x4c, 0xdf, 0xa6, 0x16, 0xd0, 0xb3, - 0x58, 0x2d, 0xa2, 0x8e, 0x74, 0x02, 0xb0, 0x3a, 0x55, 0x1c, 0x57, 0x03, 0x40, 0x2b, 0x6f, 0x72, - 0x57, 0x4a, 0x9f, 0x6c, 0xe9, 0x4d, 0xb5, 0x85, 0x76, 0xa7, 0xda, 0xa6, 0xed, 0x24, 0x76, 0xfd, - 0x98, 0x25, 0xaf, 0x03, 0x40, 0xd1, 0xd8, 0x56, 0x73, 0xd3, 0xe1, 0x62, 0x65, 0xb9, 0x34, 0xb5, - 0xbb, 0x85, 0x3d, 0x32, 0xe0, 0xc3, 0xd7, 0x46, 0x77, 0xd0, 0x71, 0xa7, 0x2a, 0x4b, 0x65, 0x64, - 0x6a, 0xe1, 0x5a, 0xd3, 0xb0, 0xe6, 0x29, 0x47, 0x33, 0x9f, 0xd3, 0xee, 0x14, 0x4e, 0xa6, 0xae, - 0xbc, 0x94, 0x01, 0xa0, 0xd2, 0xa9, 0xa9, 0xa3, 0x4d, 0x9e, 0xd3, 0x63, 0xc5, 0x53, 0x9e, 0x8c, - 0x85, 0xa2, 0x6b, 0xd4, 0xe6, 0x0e, 0x0f, 0x7c, 0x19, 0x29, 0xae, 0x56, 0xcc, 0xdf, 0x22, 0x84, - 0x18, 0x84, 0x38, 0xc4, 0xc1, 0x3b, 0xfe, 0xac, 0x22, 0xb6, 0x8a, 0xbf, 0x55, 0x74, 0x78, 0xe3, - 0x4d, 0xb1, 0x37, 0x57, 0x5b, 0xec, 0xd4, 0x6e, 0xe0, 0xbe, 0xb2, 0x64, 0xf2, 0x9d, 0x0a, 0x8f, - 0xbf, 0x8a, 0xc1, 0x6c, 0x9d, 0xcc, 0xad, 0x51, 0x6d, 0x6a, 0x88, 0x7b, 0x38, 0xba, 0xde, 0xe1, - 0x2a, 0xd2, 0x0b, 0x4f, 0xcf, 0xa0, 0x8b, 0x6a, 0xfb, 0x2f, 0x1b, 0xbd, 0x55, 0xd5, 0x90, 0x24, - 0x6c, 0xb8, 0xc7, 0x6a, 0x51, 0x15, 0xd9, 0x46, 0xb9, 0x8f, 0xa6, 0x4b, 0x54, 0x7e, 0xcd, 0x4e, - 0x4a, 0x6d, 0x61, 0xc6, 0x74, 0x73, 0x62, 0x3f, 0x53, 0x12, 0x1b, 0xd9, 0x4c, 0x43, 0x79, 0x65, - 0xb3, 0xfa, 0x84, 0x7d, 0x9c, 0xb2, 0xd6, 0x9b, 0xbd, 0xb2, 0x5b, 0x3a, 0xea, 0xe8, 0xc3, 0x87, - 0x9d, 0xb0, 0x41, 0xdb, 0x96, 0x29, 0x8d, 0xc5, 0x9a, 0x39, 0x30, 0x90, 0xf9, 0x92, 0x15, 0xca, - 0xa8, 0x5c, 0xcc, 0x71, 0xf2, 0x5b, 0xab, 0x86, 0xb4, 0x0c, 0x22, 0x88, 0x98, 0x95, 0xde, 0xbc, - 0xbb, 0x12, 0x17, 0x2c, 0x9b, 0xa6, 0x02, 0x7a, 0x78, 0x86, 0x67, 0x6a, 0xdf, 0xfa, 0x4d, 0xae, - 0xfc, 0x95, 0x0a, 0xbe, 0x93, 0x6e, 0x57, 0x75, 0x8c, 0xa5, 0xf7, 0x6d, 0xb2, 0xb2, 0x54, 0xcf, - 0xb0, 0xad, 0xd4, 0x44, 0xd3, 0xc6, 0x23, 0x45, 0x9d, 0x5f, 0x5d, 0xff, 0xf9, 0xd7, 0x57, 0x2a, - 0x1c, 0x05, 0xb1, 0x71, 0xbd, 0x2d, 0x59, 0xf2, 0xaf, 0x09, 0xb0, 0xe3, 0x6e, 0xa2, 0xa8, 0x5a, - 0xea, 0x4f, 0x0c, 0x20, 0x6c, 0x2e, 0x0c, 0x73, 0xfb, 0x94, 0x4a, 0xd7, 0x58, 0x1e, 0x48, 0xe9, - 0xa6, 0xbf, 0xe0, 0x21, 0xd7, 0x51, 0x9f, 0x52, 0x2b, 0xc7, 0xbc, 0x22, 0xb4, 0xc6, 0x2c, 0x33, - 0x54, 0x05, 0x6f, 0x02, 0x14, 0x27, 0xcb, 0x7c, 0x7b, 0x32, 0xf9, 0x12, 0xc9, 0x09, 0x11, 0x93, - 0x88, 0x09, 0xe3, 0xcc, 0x63, 0xb5, 0xa3, 0x23, 0xc2, 0x02, 0xc4, 0xb8, 0xf0, 0xe6, 0x92, 0xaf, - 0x55, 0x47, 0x0c, 0x49, 0x7d, 0xe9, 0xc5, 0xb4, 0xa5, 0x6d, 0x69, 0x8b, 0xbf, 0xb0, 0x64, 0x01, - 0xe9, 0xd3, 0xcb, 0x85, 0x0c, 0xe2, 0xfb, 0x2d, 0x6f, 0x38, 0x20, 0xac, 0xb4, 0x71, 0x67, 0x07, - 0x7f, 0x95, 0x3a, 0x13, 0x46, 0xef, 0x76, 0x5e, 0xb3, 0x95, 0x9d, 0x8a, 0xdb, 0x6f, 0x3e, 0x7e, - 0x27, 0x1c, 0x25, 0xeb, 0x19, 0xc6, 0x1a, 0xd5, 0xcc, 0x05, 0x6e, 0x7a, 0x78, 0x65, 0x1f, 0x36, - 0x67, 0xe4, 0xb9, 0x55, 0x18, 0xbc, 0x51, 0xd5, 0xa9, 0x39, 0x24, 0x6d, 0x7d, 0x88, 0xa7, 0xb6, - 0xb0, 0x80, 0x94, 0x61, 0x87, 0xa2, 0x40, 0x2b, 0x78, 0x0c, 0x86, 0xaa, 0x15, 0x82, 0xd4, 0x1c, - 0xbf, 0xd5, 0x91, 0x3a, 0x44, 0xf4, 0xa3, 0x3d, 0x1a, 0x74, 0xf2, 0xd0, 0x1c, 0x8e, 0x71, 0x67, - 0x03, 0x2f, 0x62, 0x6d, 0x0b, 0xa1, 0x5e, 0x6e, 0xb1, 0x59, 0x0f, 0xb3, 0x1c, 0xc0, 0x9b, 0x13, - 0x54, 0x64, 0x3c, 0x54, 0x79, 0xf5, 0x17, 0x55, 0x57, 0x1f, 0xf5, 0x2b, 0x79, 0xdc, 0x59, 0x1d, - 0x90, 0xc3, 0xeb, 0x21, 0x92, 0x19, 0x54, 0xa1, 0x57, 0xc3, 0x3e, 0x6d, 0x42, 0xf3, 0xd5, 0x24, - 0xe7, 0xc1, 0x47, 0xab, 0x34, 0x44, 0xa9, 0x29, 0xe6, 0x07, 0xcc, 0x5a, 0xcd, 0x61, 0xfc, 0x1c, - 0xfd, 0xe0, 0x50, 0xe4, 0x88, 0x02, 0x6c, 0x54, 0x85, 0x41, 0x09, 0x23, 0xf1, 0x8a, 0x5c, 0xdc, - 0xc9, 0xb6, 0xd1, 0x72, 0xce, 0xee, 0xf0, 0xb0, 0xe6, 0x22, 0xc1, 0xe7, 0xea, 0x67, 0x49, 0xdc, - 0x39, 0x4f, 0x79, 0x8c, 0x59, 0x81, 0x41, 0x65, 0x81, 0x2a, 0x65, 0x60, 0x71, 0x19, 0xff, 0x8d, - 0x07, 0x12, 0x2f, 0x3e, 0xfa, 0x12, 0xe0, 0x81, 0xdf, 0x54, 0xac, 0x3a, 0xa4, 0xcd, 0xf8, 0xf8, - 0x93, 0xf0, 0xbd, 0x86, 0x3b, 0xbb, 0x18, 0x75, 0xa6, 0x8a, 0x87, 0x19, 0x11, 0x73, 0x93, 0x43, - 0xfc, 0x0b, 0xca, 0xe5, 0xcb, 0x96, 0xde, 0x7e, 0x61, 0x84, 0x3c, 0x4f, 0xe9, 0xf6, 0x8a, 0x5d, - 0xe6, 0x9b, 0x6b, 0x9d, 0x7e, 0x29, 0x2f, 0xf3, 0x9d, 0xd1, 0xf4, 0x45, 0xe3, 0xa8, 0xfc, 0x60, - 0x37, 0x35, 0x56, 0xbc, 0x97, 0x9f, 0xe5, 0x0c, 0x7b, 0xd5, 0x58, 0xe4, 0x9d, 0xb6, 0xb1, 0x59, - 0x35, 0xe7, 0xf9, 0xed, 0x60, 0x26, 0xdc, 0xb4, 0x84, 0x7c, 0xa1, 0x3c, 0x33, 0xb5, 0x76, 0x3f, - 0x4f, 0xd5, 0xe6, 0xac, 0x26, 0x8a, 0x14, 0x95, 0xa3, 0x28, 0x3f, 0xc4, 0xef, 0x32, 0x7c, 0x1b, - 0xc3, 0x6f, 0xdd, 0x5c, 0x84, 0x3f, 0x0b, 0xe1, 0x37, 0xf3, 0x79, 0x6a, 0x66, 0xbe, 0x9c, 0xc0, - 0x67, 0xa8, 0x1b, 0x61, 0xb2, 0xeb, 0x50, 0x42, 0xad, 0x64, 0x4f, 0x56, 0x9b, 0xc7, 0x42, 0x2d, - 0xab, 0x4e, 0x86, 0x9d, 0x47, 0xb1, 0xb6, 0xd3, 0x27, 0xf5, 0xce, 0x43, 0xa1, 0xe6, 0xcd, 0x35, - 0x9a, 0x29, 0x0e, 0x6b, 0xb6, 0x3b, 0x2e, 0x76, 0x72, 0x4a, 0x6d, 0x30, 0x1c, 0xab, 0x1b, 0xda, - 0xaa, 0xc9, 0xd2, 0xf8, 0xa5, 0xb3, 0x2b, 0xd4, 0x5e, 0x7c, 0x95, 0xee, 0x6c, 0x7b, 0x35, 0x10, - 0x26, 0x89, 0xf1, 0xb3, 0x35, 0xa6, 0xa4, 0x02, 0x17, 0xcb, 0x84, 0x7e, 0xff, 0xa3, 0x2f, 0x80, - 0x3f, 0xa1, 0x28, 0x84, 0x4a, 0x47, 0xfc, 0x04, 0x6e, 0x96, 0xd5, 0x42, 0xd8, 0xc7, 0x1c, 0x2c, - 0x01, 0xd6, 0xb5, 0x76, 0x73, 0x26, 0x5e, 0xbf, 0x7f, 0x61, 0x29, 0xcc, 0xbd, 0x88, 0x61, 0x9f, - 0x5e, 0x96, 0xa9, 0x12, 0x2a, 0x37, 0xfc, 0x26, 0xc2, 0xaa, 0xc2, 0xc1, 0x3a, 0xb0, 0x9a, 0x53, - 0xae, 0x23, 0x56, 0xf9, 0x2d, 0x67, 0xd4, 0x75, 0x4e, 0xe6, 0x7b, 0xd2, 0xae, 0xb5, 0x13, 0x06, - 0x20, 0x93, 0x18, 0xee, 0x96, 0xa7, 0x8a, 0x6f, 0xfc, 0x8e, 0x67, 0x1b, 0x54, 0xf6, 0xcd, 0x34, - 0x9c, 0x7e, 0x63, 0x39, 0x94, 0x01, 0xce, 0x0d, 0x62, 0x85, 0xad, 0xa0, 0x37, 0x66, 0xb2, 0x2c, - 0x39, 0x0d, 0x1f, 0xe8, 0xd2, 0x1a, 0x00, 0xd9, 0x05, 0x07, 0x9b, 0x0f, 0x56, 0x44, 0x2f, 0x88, - 0x01, 0x55, 0x65, 0xa5, 0x0e, 0xdf, 0xe1, 0x24, 0xc6, 0x10, 0xa6, 0xbc, 0x31, 0xec, 0x71, 0x5d, - 0xae, 0xc3, 0x77, 0xa5, 0x5d, 0xa5, 0xcb, 0xd1, 0xc2, 0x4e, 0xdd, 0xc1, 0x59, 0x58, 0x54, 0xe6, - 0x67, 0xd4, 0x9b, 0x3d, 0x13, 0x4c, 0x89, 0x91, 0xd7, 0xc5, 0x37, 0x24, 0xb1, 0x7d, 0x4a, 0x79, - 0xeb, 0x37, 0xbc, 0xe4, 0x3e, 0xb5, 0x17, 0x0a, 0xc6, 0xdf, 0x1e, 0x65, 0x59, 0xee, 0xba, 0xc1, - 0xf9, 0xeb, 0x1c, 0xaa, 0x88, 0x2f, 0x08, 0x99, 0x1c, 0x96, 0x57, 0x54, 0x17, 0xb9, 0x01, 0xea, - 0xaa, 0x39, 0x34, 0x44, 0xcc, 0xa6, 0xbc, 0xbb, 0x41, 0x2f, 0xa5, 0xd2, 0x4c, 0xac, 0x71, 0xed, - 0x76, 0x1e, 0x3d, 0xec, 0x42, 0x81, 0xd3, 0x19, 0x99, 0x7a, 0xe0, 0xca, 0x6f, 0xf8, 0xfc, 0x80, - 0xa4, 0x88, 0x69, 0xd9, 0xe3, 0x07, 0x35, 0x9d, 0x1b, 0x54, 0xa6, 0x12, 0xb0, 0x39, 0xcf, 0x30, - 0xfe, 0xb0, 0x0d, 0x70, 0x16, 0xf5, 0x6d, 0x9e, 0xa9, 0x6f, 0x87, 0x74, 0xab, 0xac, 0xde, 0xa0, - 0x9e, 0x9a, 0x15, 0x76, 0x7c, 0xbf, 0xb2, 0xcb, 0x33, 0x82, 0x2f, 0x64, 0x5b, 0xf0, 0xd9, 0xda, - 0xc1, 0x18, 0x3b, 0x9c, 0xf1, 0xfa, 0xb0, 0xc6, 0xc3, 0x5c, 0x7e, 0xcb, 0x57, 0x2b, 0x1d, 0x31, - 0x84, 0x55, 0x62, 0x80, 0x0e, 0x9b, 0xc6, 0xd6, 0xa5, 0xb8, 0xa9, 0xa0, 0x54, 0xe9, 0xc7, 0x32, - 0x38, 0xaf, 0x9b, 0xb6, 0x59, 0xe7, 0x44, 0xba, 0x34, 0xaa, 0x4e, 0x85, 0x6e, 0x7b, 0xeb, 0x3a, - 0x42, 0x6f, 0x6a, 0xf2, 0xe0, 0x61, 0x5e, 0x9a, 0x1b, 0xa1, 0xbd, 0x2b, 0x0c, 0xab, 0xcc, 0x54, - 0x16, 0xcb, 0x95, 0x3e, 0x27, 0xa3, 0x8e, 0x3c, 0xab, 0x20, 0x19, 0xbc, 0x50, 0xbf, 0x9c, 0xa7, - 0x7a, 0x48, 0x64, 0x7d, 0x86, 0xef, 0x8a, 0xac, 0xfb, 0x26, 0xcc, 0xfc, 0xc2, 0x4b, 0x4d, 0xa2, - 0x44, 0xce, 0xcd, 0xbf, 0x70, 0x2e, 0x25, 0xd6, 0xa4, 0xfc, 0x4b, 0xcf, 0xdf, 0x36, 0x0c, 0x0f, - 0x71, 0x53, 0xde, 0x6f, 0x74, 0xe7, 0x3e, 0xd5, 0x37, 0xb9, 0x97, 0xdd, 0xd2, 0x6a, 0x6e, 0x4b, - 0x2b, 0xb1, 0x32, 0x2c, 0x34, 0x59, 0xbf, 0x20, 0xcf, 0xd1, 0xaa, 0xb9, 0x7d, 0xb4, 0x5e, 0x66, - 0x1e, 0xc7, 0x60, 0xba, 0xf3, 0x65, 0xe0, 0xd7, 0x0b, 0x31, 0xf7, 0x20, 0x38, 0x59, 0x4c, 0x53, - 0xae, 0x2b, 0x74, 0x84, 0x8d, 0xda, 0xaf, 0x6c, 0xf2, 0x4c, 0x65, 0x33, 0x94, 0x2b, 0x48, 0x7d, - 0x41, 0xa2, 0x0a, 0xb2, 0xc1, 0x5b, 0x4d, 0x9d, 0xb3, 0xea, 0x33, 0x29, 0x13, 0x9e, 0x3d, 0x57, - 0x01, 0x5a, 0xc5, 0xe7, 0x9d, 0x09, 0xdb, 0x04, 0x4d, 0x2c, 0x64, 0x78, 0x7d, 0xd9, 0xcd, 0x4f, - 0xaa, 0x9d, 0xf9, 0x8c, 0xd5, 0xe7, 0x5a, 0x6d, 0x61, 0x56, 0x3b, 0x32, 0x23, 0x76, 0xa4, 0xd7, - 0x65, 0x6d, 0x9a, 0xaf, 0xb3, 0x86, 0xf0, 0x5a, 0xed, 0x94, 0x4a, 0x70, 0x96, 0x61, 0x85, 0xe6, - 0x72, 0xad, 0x59, 0xfe, 0xa6, 0x35, 0x1b, 0x77, 0x2a, 0x1b, 0xbd, 0x24, 0x00, 0x6f, 0x08, 0xaf, - 0xe9, 0x8c, 0xc2, 0xb3, 0x95, 0x06, 0x9c, 0xc7, 0x95, 0x38, 0xb9, 0xaa, 0x74, 0xf2, 0x5a, 0x6d, - 0x5a, 0x58, 0x76, 0xe6, 0xb2, 0xd8, 0x64, 0xe7, 0xcb, 0xae, 0xc1, 0xe9, 0xd5, 0x99, 0xbf, 0xd4, - 0xb8, 0x61, 0xb4, 0x36, 0x84, 0x55, 0xa8, 0x6a, 0xec, 0x3c, 0xe2, 0x77, 0x86, 0x2a, 0x0e, 0xcb, - 0x33, 0xd4, 0x54, 0x10, 0x97, 0x47, 0x7d, 0x6c, 0xe2, 0x3a, 0xaa, 0x86, 0xc4, 0x12, 0x53, 0xd6, - 0xb9, 0x35, 0x12, 0xf3, 0x4c, 0xd9, 0xe7, 0x5e, 0x50, 0xd7, 0x65, 0x40, 0x3e, 0xd7, 0xa8, 0x0b, - 0x3c, 0xf7, 0xd5, 0x6a, 0xdd, 0x28, 0x31, 0xf5, 0xd9, 0x90, 0xc2, 0xed, 0x56, 0x4f, 0xcc, 0xb6, - 0xb6, 0xea, 0x0a, 0xf5, 0x4a, 0x4c, 0x5b, 0xe7, 0x26, 0xa8, 0x97, 0x67, 0xda, 0x3e, 0x07, 0x32, - 0xe1, 0x32, 0xc2, 0x74, 0x38, 0x41, 0x1d, 0xa0, 0xc3, 0x4e, 0xcd, 0x62, 0x9e, 0x57, 0x74, 0x90, - 0x9d, 0x0e, 0xa1, 0x4b, 0x95, 0xf1, 0xa5, 0x6d, 0x0b, 0xe8, 0x55, 0x37, 0x04, 0x83, 0x01, 0xd9, - 0xaa, 0xe8, 0xc2, 0x46, 0x16, 0x87, 0x65, 0xa6, 0xc2, 0x97, 0xcb, 0xfe, 0x78, 0x51, 0xde, 0x0a, - 0x3d, 0xd8, 0xbb, 0xc9, 0x36, 0x44, 0x9e, 0xf5, 0x39, 0x91, 0xdb, 0xf2, 0xe2, 0xab, 0xae, 0xbe, - 0xe0, 0x71, 0xe4, 0xcb, 0x03, 0xa4, 0x73, 0x2c, 0x92, 0x87, 0x55, 0xe4, 0x77, 0xba, 0xc8, 0x2f, - 0xd5, 0x5e, 0xf5, 0xd2, 0x8c, 0xf3, 0x4b, 0x0c, 0xeb, 0x1b, 0x73, 0x16, 0xb9, 0x0c, 0xc7, 0x08, - 0x06, 0x57, 0x1d, 0xd6, 0xca, 0x3a, 0x1e, 0x17, 0x2a, 0xb2, 0xcf, 0x33, 0x48, 0xac, 0xdd, 0xec, - 0x76, 0x8f, 0xa3, 0xfe, 0xae, 0x44, 0xf5, 0x69, 0x97, 0xa9, 0x02, 0xd8, 0xb2, 0xaf, 0xb5, 0x00, - 0x17, 0xd8, 0x06, 0xde, 0xaa, 0x3e, 0xcf, 0xea, 0x36, 0x3f, 0x42, 0xba, 0x54, 0x66, 0xe7, 0x2c, - 0x23, 0xe2, 0xb1, 0x12, 0xd7, 0x41, 0xb6, 0x04, 0xfd, 0x12, 0x3b, 0xff, 0xc9, 0xf9, 0x56, 0x7d, - 0xd4, 0x8e, 0xf6, 0xc3, 0x2a, 0xe6, 0x23, 0x87, 0xca, 0x8b, 0x65, 0x5a, 0x14, 0x64, 0xc4, 0xe4, - 0xc1, 0x35, 0x31, 0x5d, 0x2c, 0x57, 0xc2, 0x14, 0x68, 0xde, 0x01, 0xb9, 0xea, 0x0a, 0x99, 0x50, - 0xaf, 0x40, 0x6f, 0x02, 0xd9, 0xc2, 0x7d, 0xa1, 0xec, 0xec, 0xb8, 0x8d, 0x34, 0x60, 0xb6, 0x6a, - 0xad, 0xbe, 0x53, 0x69, 0x90, 0x37, 0xd0, 0xbd, 0xe1, 0x0e, 0x68, 0x0c, 0x72, 0x38, 0xac, 0xa1, - 0x5d, 0xac, 0xa7, 0xb3, 0x16, 0x0b, 0xfc, 0x00, 0x1d, 0x05, 0xb9, 0x84, 0xf3, 0x73, 0x35, 0x06, - 0xf7, 0x45, 0x7a, 0xea, 0xf3, 0xa8, 0x3d, 0x1b, 0xe6, 0xa4, 0x8e, 0x3a, 0x94, 0xa7, 0xa8, 0xf3, - 0x62, 0xa8, 0x16, 0xc8, 0xbf, 0x55, 0xdf, 0xd9, 0x10, 0x1f, 0x0e, 0x23, 0x79, 0x73, 0xe6, 0xbd, - 0x2d, 0x98, 0x97, 0x6d, 0xa7, 0xc6, 0x8a, 0x14, 0x8c, 0x53, 0x75, 0xc6, 0x77, 0x86, 0xf2, 0xab, - 0xac, 0xb3, 0xa2, 0x29, 0x83, 0xac, 0x29, 0xd2, 0x6b, 0x45, 0xaa, 0x00, 0x2b, 0x17, 0x20, 0xbf, - 0xa6, 0x64, 0xd6, 0x79, 0x46, 0x96, 0x17, 0x1c, 0xab, 0x6c, 0xf4, 0x81, 0x04, 0xfb, 0xb4, 0x8d, - 0x10, 0x26, 0x13, 0xee, 0x51, 0xce, 0x67, 0x5b, 0x34, 0x37, 0xa8, 0xb6, 0x0b, 0xbb, 0xd9, 0x2b, - 0x57, 0xd2, 0x79, 0x54, 0x9a, 0x0f, 0x33, 0xad, 0x16, 0xcb, 0xb9, 0xed, 0x5d, 0xc9, 0xe5, 0x7b, - 0x62, 0x0b, 0xcd, 0xd4, 0x10, 0x4e, 0x25, 0xd2, 0x85, 0x48, 0x37, 0xa6, 0xb2, 0xd9, 0x47, 0x75, - 0x56, 0x22, 0x76, 0x5e, 0x9e, 0xdc, 0xc8, 0xa8, 0xe8, 0xb2, 0x45, 0x1f, 0xfc, 0x35, 0x8b, 0x43, - 0x1e, 0x6e, 0xfb, 0x0e, 0x9d, 0xdc, 0x71, 0x5b, 0x35, 0xd7, 0xf4, 0x39, 0x90, 0x41, 0xb5, 0xd6, - 0x02, 0x3a, 0xf4, 0xb9, 0xc2, 0xcb, 0x98, 0xe5, 0x0c, 0xde, 0xa8, 0x64, 0x7a, 0xf3, 0xc2, 0xb0, - 0x2f, 0xd1, 0x89, 0x36, 0xfd, 0xea, 0xb1, 0x37, 0x93, 0x8c, 0x59, 0xef, 0x66, 0x96, 0xa5, 0xb5, - 0x87, 0x9a, 0x4e, 0x3c, 0xef, 0x78, 0x5d, 0xd8, 0xa6, 0xe4, 0xc1, 0x8b, 0xd1, 0x01, 0x6a, 0x4d, - 0x1b, 0x8d, 0x5d, 0x3f, 0x13, 0xf0, 0xbb, 0x20, 0x01, 0xbf, 0x9b, 0x0e, 0xf6, 0x34, 0x0d, 0x91, - 0x04, 0x8f, 0x66, 0xc8, 0x43, 0xcc, 0xa3, 0x1d, 0xe6, 0x19, 0xe8, 0x4d, 0x0e, 0xfc, 0xca, 0xb4, - 0xd5, 0x13, 0x64, 0xbe, 0x23, 0xcd, 0x98, 0x90, 0xf7, 0x20, 0xff, 0x26, 0xb7, 0x15, 0x2c, 0xde, - 0x57, 0x67, 0xdc, 0x4e, 0x28, 0x0b, 0x5b, 0x95, 0xad, 0x77, 0xd9, 0x0a, 0xdd, 0xcb, 0xbd, 0x36, - 0x38, 0x34, 0x90, 0x3b, 0xe2, 0xa6, 0x66, 0x14, 0xb8, 0xca, 0x24, 0x3f, 0x47, 0xdd, 0x65, 0x1f, - 0xfe, 0x3d, 0xb2, 0x1b, 0x24, 0xd6, 0x41, 0xd7, 0x6b, 0x90, 0x36, 0x0c, 0x04, 0x46, 0x16, 0x04, - 0xd7, 0x97, 0x55, 0x46, 0x1e, 0xe5, 0x97, 0x95, 0xb5, 0xac, 0x55, 0xe8, 0x59, 0xae, 0xdf, 0xec, - 0xf3, 0x99, 0xfa, 0x5c, 0x9f, 0x0a, 0x39, 0x11, 0x3c, 0xc6, 0x6b, 0x5f, 0xee, 0x0e, 0xe7, 0x75, - 0x69, 0x38, 0xe5, 0x41, 0x47, 0x47, 0x93, 0x3c, 0x02, 0xde, 0xb0, 0xa8, 0xfd, 0xd0, 0x5f, 0x11, - 0x23, 0x21, 0xa0, 0x06, 0x96, 0xdd, 0x47, 0x10, 0x69, 0x84, 0x46, 0xe0, 0x63, 0x91, 0xe8, 0x27, - 0xfd, 0x82, 0x5a, 0x0d, 0xfd, 0xc2, 0x8c, 0x37, 0x02, 0xb9, 0xab, 0x83, 0xfd, 0xc3, 0x67, 0x6a, - 0x4d, 0x93, 0x76, 0xef, 0x44, 0x26, 0xa5, 0x90, 0x67, 0xbd, 0x50, 0x86, 0x61, 0x3d, 0xf6, 0x27, - 0x43, 0x16, 0x55, 0x98, 0x7a, 0x77, 0x60, 0xaf, 0x9b, 0x1b, 0x77, 0x04, 0x36, 0xb9, 0xd8, 0x95, - 0x4c, 0x51, 0xe2, 0xcc, 0xba, 0x66, 0x94, 0xd6, 0xd5, 0x8d, 0xbb, 0x6e, 0xe6, 0x96, 0xf5, 0xae, - 0x8c, 0xdc, 0xfa, 0x56, 0x2d, 0x82, 0xb2, 0x89, 0x5c, 0xcf, 0xb6, 0xea, 0x5b, 0xff, 0xb8, 0x4d, - 0x77, 0x33, 0x2e, 0xdd, 0x92, 0xbc, 0x26, 0xb2, 0x11, 0xc8, 0xb5, 0xf4, 0xf0, 0x92, 0x79, 0xad, - 0xbe, 0xec, 0x3c, 0x39, 0xb0, 0x85, 0xc9, 0xf6, 0xec, 0xb1, 0xb8, 0x39, 0xd2, 0x05, 0xe6, 0xa8, - 0x8d, 0x2a, 0x72, 0x77, 0x27, 0x85, 0x30, 0xdd, 0x28, 0xc8, 0x88, 0xf8, 0x4b, 0x72, 0x83, 0xa6, - 0x8e, 0xe3, 0x43, 0x4c, 0x1c, 0xce, 0x00, 0x1e, 0x5a, 0x40, 0x83, 0x5d, 0xac, 0xdb, 0x98, 0x46, - 0x5b, 0xac, 0x83, 0x52, 0xa4, 0xe3, 0x66, 0xcb, 0xe7, 0x6a, 0x75, 0x9f, 0xf8, 0xc6, 0x40, 0x56, - 0x0d, 0xa2, 0xa3, 0xd6, 0x89, 0xef, 0x98, 0xa9, 0x16, 0xd0, 0x2c, 0xa2, 0x4f, 0x0e, 0xec, 0xeb, - 0xb6, 0x32, 0xcd, 0x30, 0x10, 0x7f, 0xc8, 0xf5, 0x4d, 0x5d, 0xad, 0xd3, 0x43, 0x0f, 0xe8, 0xc3, - 0x6b, 0xdb, 0xfc, 0xba, 0xc6, 0x8c, 0x9b, 0x42, 0x2d, 0x53, 0x63, 0x43, 0xfc, 0x29, 0x63, 0x9e, - 0x43, 0x6b, 0x31, 0x3b, 0xdb, 0x7a, 0x9a, 0x60, 0xc6, 0x74, 0x7d, 0x95, 0x7a, 0x52, 0xcf, 0xd0, - 0x6d, 0x81, 0x63, 0xb8, 0x22, 0xd0, 0xcd, 0xad, 0x76, 0x4b, 0x7d, 0x11, 0xdb, 0xd7, 0x9d, 0xdc, - 0x44, 0x7a, 0x25, 0xcb, 0xec, 0x5e, 0x1b, 0x68, 0x2a, 0xf1, 0x0c, 0xed, 0xb7, 0xcb, 0xa0, 0xd3, - 0x72, 0xcf, 0x7d, 0xe8, 0xcc, 0x36, 0x8b, 0xc6, 0x20, 0xd3, 0xad, 0x6f, 0xa4, 0x90, 0xd6, 0x0c, - 0xdd, 0x5a, 0x67, 0x84, 0x56, 0xbe, 0xd4, 0xe1, 0xe2, 0x39, 0x8f, 0x5e, 0xa3, 0xd3, 0x6d, 0x56, - 0x8c, 0xd2, 0x6b, 0x93, 0x55, 0xad, 0x97, 0x29, 0x27, 0x96, 0xd1, 0x92, 0x05, 0xa9, 0x6c, 0xb6, - 0x44, 0x80, 0x9f, 0x15, 0x18, 0xa0, 0x63, 0x2d, 0xf0, 0x3f, 0xac, 0x43, 0x65, 0xdd, 0xb2, 0x4c, - 0xec, 0xe1, 0x1c, 0x09, 0xfa, 0x51, 0xbc, 0x11, 0xd0, 0x70, 0x2f, 0x3b, 0x1b, 0xc9, 0x6a, 0x6d, - 0xa4, 0x4e, 0x0b, 0xeb, 0x6f, 0x37, 0xa1, 0xdf, 0x33, 0x75, 0x00, 0xf4, 0x91, 0x2b, 0x4c, 0x40, - 0x6b, 0xf0, 0x6b, 0xb5, 0xf6, 0xac, 0x30, 0xae, 0x6e, 0x6c, 0xb5, 0xda, 0xcb, 0x03, 0xfe, 0xa2, - 0xd4, 0x31, 0xf2, 0xeb, 0x96, 0xb2, 0x72, 0xde, 0x8a, 0xde, 0xd9, 0x31, 0xb4, 0x94, 0x20, 0x0e, - 0xc9, 0xdc, 0xb4, 0xe7, 0xea, 0x76, 0xc0, 0xea, 0x54, 0x75, 0x96, 0xd1, 0x5b, 0xdd, 0xd2, 0xaa, - 0x33, 0x15, 0x25, 0xbd, 0xb1, 0x7a, 0xd3, 0xdb, 0x59, 0x87, 0x7c, 0x32, 0x90, 0x36, 0xf5, 0xf2, - 0x37, 0x9d, 0x5d, 0x5d, 0x6d, 0x94, 0x4b, 0x4a, 0xbb, 0x8b, 0xe8, 0xe6, 0xb6, 0x50, 0xad, 0xe0, - 0x20, 0x4b, 0xe7, 0x70, 0x78, 0x59, 0xc6, 0x19, 0x16, 0xb6, 0x53, 0x4c, 0x10, 0x3f, 0x32, 0x20, - 0x05, 0x1d, 0x1e, 0xc7, 0x8b, 0x7d, 0x0f, 0x41, 0x84, 0x86, 0xe3, 0x4c, 0x0a, 0x4f, 0xa4, 0x82, - 0x6c, 0x88, 0x21, 0x92, 0xe4, 0xe3, 0x88, 0x0b, 0x07, 0xa7, 0x38, 0xbb, 0xe2, 0x76, 0x38, 0xd6, - 0xe0, 0x7c, 0x2c, 0xcd, 0x60, 0x0f, 0x5f, 0x25, 0x46, 0xf1, 0xeb, 0x78, 0x3e, 0xe8, 0x25, 0x8e, - 0x7b, 0x21, 0xee, 0x23, 0xc1, 0x2b, 0x33, 0xa0, 0x0a, 0x2a, 0x8e, 0xd7, 0x96, 0x58, 0x4f, 0x21, - 0x65, 0x69, 0xe2, 0x60, 0x0f, 0x88, 0x6b, 0x22, 0x36, 0x8f, 0x7a, 0x22, 0xf1, 0xe7, 0x15, 0xae, - 0x53, 0x62, 0x98, 0x0e, 0x37, 0xa8, 0x6f, 0x38, 0x13, 0xc5, 0x72, 0xa8, 0xca, 0x44, 0x6f, 0xb7, - 0x02, 0xfe, 0x5e, 0xc6, 0x34, 0x67, 0xb0, 0x5c, 0xee, 0x84, 0x5e, 0x8b, 0xe8, 0xa5, 0x84, 0x69, - 0xce, 0x44, 0xf6, 0x94, 0xd9, 0x49, 0xd9, 0x63, 0x5d, 0xae, 0xef, 0xa4, 0x38, 0x16, 0x42, 0x06, - 0x7d, 0x43, 0xf9, 0x2c, 0x3b, 0x59, 0x97, 0x10, 0xb8, 0x44, 0x06, 0xb5, 0x86, 0x2b, 0xb9, 0x2b, - 0x3c, 0x0a, 0xb5, 0x16, 0xca, 0x4f, 0xfd, 0x39, 0x23, 0xab, 0x35, 0xa1, 0xab, 0xf2, 0x4c, 0x57, - 0x54, 0xdb, 0x5d, 0x75, 0xc3, 0xd0, 0x63, 0xae, 0xdd, 0x6d, 0xc9, 0xcd, 0x39, 0xb3, 0x03, 0x0b, - 0x53, 0xa8, 0x4d, 0x69, 0xab, 0x33, 0x7f, 0x15, 0xdb, 0xbb, 0x61, 0x56, 0x62, 0x40, 0x5f, 0xa6, - 0x63, 0xb1, 0x05, 0x31, 0x86, 0xc4, 0xbd, 0x56, 0x5f, 0x37, 0x19, 0x0d, 0xbd, 0x16, 0x34, 0x1f, - 0xd2, 0xae, 0xa1, 0xf9, 0x00, 0x19, 0x2b, 0x03, 0xd1, 0x48, 0x11, 0x48, 0x56, 0xe9, 0xee, 0xe1, - 0x69, 0x0c, 0x4f, 0x4b, 0x2b, 0xb1, 0x26, 0xf8, 0x94, 0xab, 0xae, 0x64, 0x56, 0x24, 0x7b, 0x53, - 0x2b, 0xee, 0x11, 0x7c, 0x18, 0xf8, 0x7f, 0x75, 0x53, 0xf7, 0x2b, 0x0d, 0x29, 0x63, 0x36, 0xd4, - 0xae, 0x34, 0x67, 0x65, 0x95, 0x87, 0x3d, 0x47, 0x2f, 0xbd, 0x25, 0x23, 0xf6, 0xec, 0x42, 0x1f, - 0xf6, 0x60, 0x2b, 0x6a, 0xbd, 0xce, 0xca, 0x9b, 0xee, 0xdc, 0xec, 0x11, 0xfd, 0x06, 0xda, 0x53, - 0x37, 0x2e, 0xd0, 0xb7, 0x21, 0x63, 0x16, 0xd5, 0x74, 0xf4, 0x86, 0xca, 0x3a, 0xea, 0x04, 0x71, - 0x71, 0xbf, 0xb2, 0x8f, 0xdd, 0x69, 0x0e, 0xe2, 0x20, 0x61, 0xcb, 0x31, 0xa1, 0x5f, 0xce, 0xd5, - 0x03, 0x1d, 0x86, 0x98, 0x58, 0x3d, 0x8a, 0x73, 0xa4, 0xc0, 0x06, 0x18, 0x6a, 0xad, 0x86, 0x65, - 0x36, 0xf0, 0xdd, 0xfd, 0x0a, 0xc9, 0x31, 0xf8, 0x05, 0x8e, 0xa7, 0x04, 0xbf, 0x25, 0xd7, 0xcb, - 0xfc, 0xb6, 0xde, 0xa6, 0xfb, 0xe4, 0x13, 0x35, 0xde, 0xa8, 0xc9, 0xd0, 0xac, 0x1b, 0x43, 0xb3, - 0x0d, 0x6d, 0x61, 0xd6, 0xdc, 0x74, 0xb2, 0x9d, 0x79, 0x27, 0x33, 0x9e, 0xbf, 0x42, 0xe0, 0x26, - 0xcc, 0x70, 0x9f, 0x4f, 0xc6, 0xbd, 0x2e, 0xe4, 0x03, 0x86, 0x30, 0x83, 0xbe, 0x19, 0xc8, 0x34, - 0xe4, 0x27, 0x79, 0x04, 0xf9, 0xc9, 0x96, 0x07, 0x7f, 0xc7, 0xef, 0x9a, 0x8f, 0x8f, 0xc6, 0xab, - 0x26, 0xf4, 0x2a, 0x93, 0x7a, 0xcf, 0xdf, 0x4c, 0xe6, 0x75, 0x76, 0xd2, 0xab, 0x57, 0x5f, 0xb9, - 0x71, 0x0d, 0x02, 0xce, 0x1a, 0xc0, 0xac, 0x0a, 0x83, 0x02, 0x2b, 0x5a, 0x99, 0x6d, 0x9b, 0x0d, - 0xe7, 0x89, 0x5c, 0x23, 0x82, 0x07, 0x70, 0x88, 0x3f, 0x78, 0xa3, 0x28, 0x07, 0x65, 0x04, 0x56, - 0xf7, 0xb1, 0xd0, 0x65, 0xc0, 0xee, 0xe1, 0xfc, 0x4a, 0x0c, 0x72, 0x80, 0xe8, 0x1c, 0x9d, 0xbd, - 0x4f, 0xe6, 0x77, 0x62, 0x68, 0xdf, 0x04, 0xba, 0xd2, 0x3b, 0x13, 0xa7, 0xec, 0xfa, 0x4e, 0xcb, - 0x50, 0x17, 0xad, 0x1d, 0x96, 0x29, 0xa5, 0xae, 0x0d, 0x16, 0x99, 0x56, 0x59, 0x2e, 0x34, 0xb6, - 0xab, 0xde, 0x30, 0xdb, 0xf2, 0xe5, 0x0c, 0xdd, 0x52, 0xb7, 0xdc, 0x54, 0x83, 0x98, 0x45, 0x9a, - 0xa9, 0xb9, 0xf6, 0x5c, 0x0f, 0xe7, 0x0e, 0xb3, 0x75, 0x9f, 0x7f, 0x68, 0xf5, 0xba, 0x19, 0x58, - 0x53, 0x57, 0xab, 0xad, 0xd9, 0x1c, 0xf2, 0x06, 0x6d, 0xc2, 0x4f, 0xf9, 0x41, 0xab, 0xd5, 0x93, - 0xd5, 0x9b, 0xd6, 0x6e, 0xdc, 0xad, 0x32, 0xe3, 0x02, 0xb1, 0x37, 0x62, 0x19, 0xf8, 0x28, 0x41, - 0x7e, 0x57, 0x77, 0x82, 0x3a, 0x0e, 0xe4, 0x76, 0xa0, 0x67, 0xd8, 0xf7, 0x72, 0x3d, 0xf8, 0x14, - 0x05, 0x87, 0xf2, 0x99, 0x3e, 0xce, 0x8f, 0x51, 0x65, 0x88, 0x8b, 0x6f, 0x72, 0xfc, 0x1d, 0xeb, - 0x1d, 0x79, 0x0d, 0x21, 0xfe, 0x80, 0xf3, 0xe7, 0x11, 0x6b, 0x8a, 0x58, 0xdf, 0x38, 0xac, 0x6f, - 0x53, 0x1c, 0x87, 0x60, 0x3f, 0xd9, 0xda, 0xe1, 0xfc, 0x4d, 0x80, 0xfc, 0x0d, 0xce, 0xd7, 0x13, - 0x68, 0x14, 0x7c, 0xca, 0x0c, 0xee, 0x17, 0x55, 0x32, 0xd6, 0x82, 0xd8, 0x16, 0xfc, 0xfc, 0x14, - 0x68, 0x44, 0xe3, 0x4f, 0x0e, 0xf6, 0xaf, 0x74, 0x2b, 0xb2, 0xce, 0x33, 0x7d, 0xc8, 0x89, 0x9c, - 0x06, 0xfd, 0xda, 0xd7, 0xb9, 0x8d, 0x80, 0x45, 0x89, 0xd6, 0xeb, 0x32, 0xa5, 0xb8, 0xac, 0x3c, - 0xc9, 0x3a, 0xc8, 0x1c, 0x3c, 0xbe, 0x65, 0xdd, 0xb7, 0x37, 0xc3, 0xee, 0x37, 0xa6, 0x43, 0x06, - 0xfc, 0xf4, 0xdb, 0x9b, 0x8d, 0xde, 0xea, 0xa6, 0x8d, 0xff, 0x01, 0x9e, 0xaf, 0x90, 0x1b, 0x2e, - 0xfb, 0x32, 0xd8, 0x21, 0xd9, 0x1c, 0x06, 0xf2, 0x0b, 0xfe, 0x09, 0xec, 0x83, 0x83, 0x8d, 0xc3, - 0x0b, 0x46, 0xb6, 0x02, 0x66, 0x08, 0x9d, 0xcd, 0xeb, 0x62, 0xff, 0x0d, 0x32, 0x18, 0xf8, 0xef, - 0x19, 0xe4, 0x3b, 0xb3, 0x20, 0x6e, 0x84, 0xbe, 0x88, 0x87, 0x46, 0x38, 0x3f, 0xb6, 0xb7, 0x5c, - 0x24, 0xb7, 0x11, 0xff, 0xbb, 0x87, 0x6d, 0x3c, 0x5e, 0xdf, 0xe2, 0x3c, 0x42, 0x00, 0xdf, 0x3e, - 0x7d, 0xe9, 0x59, 0x22, 0xe8, 0x0c, 0x3f, 0x1d, 0x43, 0xdc, 0xd4, 0xaf, 0x98, 0xad, 0x44, 0xbb, - 0xd5, 0x97, 0x54, 0xc8, 0x03, 0x33, 0x90, 0x03, 0x86, 0x76, 0x36, 0x73, 0xd8, 0xce, 0x31, 0xf6, - 0xa2, 0x0e, 0xdf, 0xc1, 0x91, 0xdd, 0xac, 0x36, 0xae, 0x59, 0xef, 0xb8, 0x4a, 0xdd, 0x78, 0x7d, - 0xe8, 0xe6, 0x24, 0x05, 0x8d, 0x44, 0x65, 0x2c, 0x41, 0x5c, 0xb8, 0x8d, 0x60, 0x1f, 0xef, 0x15, - 0xb6, 0xd7, 0x19, 0x54, 0x9d, 0x7a, 0x63, 0xf0, 0x03, 0xb5, 0xce, 0x2e, 0x7f, 0x33, 0x00, 0x18, - 0xc7, 0x6d, 0x60, 0xb3, 0x09, 0x3e, 0x22, 0xdc, 0x4b, 0x1a, 0x55, 0x8d, 0xe1, 0xa2, 0x3a, 0x75, - 0x4d, 0x6a, 0xb5, 0x94, 0x44, 0x88, 0x96, 0x02, 0x79, 0x02, 0x1b, 0x5e, 0xc0, 0xf2, 0x84, 0xe3, - 0x3b, 0xfe, 0x52, 0x1c, 0xba, 0x8f, 0x87, 0x66, 0xb1, 0xef, 0x27, 0xb1, 0x01, 0xd8, 0xb1, 0x21, - 0xc4, 0x8f, 0x19, 0xa0, 0x97, 0xc1, 0x0f, 0x3a, 0x2f, 0x3d, 0x53, 0x37, 0x44, 0xa6, 0x00, 0x36, - 0x76, 0xdc, 0x86, 0xb8, 0x6a, 0x50, 0x99, 0x97, 0x72, 0xad, 0x0c, 0xa7, 0x89, 0x2c, 0x7f, 0x7a, - 0x26, 0xdd, 0x6e, 0x54, 0x58, 0xdd, 0x52, 0xe6, 0x15, 0xa6, 0xcb, 0x4d, 0x19, 0xb1, 0x6f, 0x5b, - 0x0d, 0x46, 0x6c, 0xb0, 0xc4, 0xa7, 0x80, 0x0f, 0x62, 0x72, 0xd4, 0x40, 0x6c, 0xcf, 0xd0, 0x56, - 0x40, 0x65, 0x88, 0x43, 0xb1, 0xdd, 0x02, 0xfc, 0x06, 0xcc, 0x06, 0xe2, 0xcb, 0xad, 0x3a, 0x6b, - 0x75, 0xd5, 0x1c, 0xc8, 0x65, 0xae, 0xb2, 0x13, 0x98, 0x77, 0xf1, 0xf8, 0x8c, 0x8d, 0x9a, 0xd9, - 0x0f, 0x3c, 0xa4, 0x12, 0x7c, 0xf4, 0x49, 0xbd, 0xb9, 0x91, 0x2f, 0x94, 0x2a, 0xdc, 0x70, 0xd5, - 0x84, 0x78, 0xe9, 0xb0, 0x2d, 0x47, 0x76, 0x66, 0xde, 0xf1, 0x6b, 0xad, 0xe4, 0x5a, 0xf8, 0x7c, - 0x7c, 0x8b, 0xfc, 0x74, 0x4f, 0x5a, 0x37, 0xe7, 0x43, 0x09, 0xaf, 0x3b, 0x68, 0xa3, 0xaa, 0xb3, - 0xb7, 0x55, 0x22, 0xc8, 0x37, 0x8b, 0x70, 0xbd, 0x46, 0x47, 0xb8, 0x5e, 0xa1, 0xa3, 0x16, 0xa9, - 0x97, 0xfb, 0x97, 0xe4, 0xdb, 0x41, 0x5d, 0x52, 0x83, 0x08, 0x7c, 0x56, 0x70, 0x96, 0xe3, 0x1c, - 0xa1, 0x2c, 0xcc, 0xe2, 0xba, 0x05, 0x9c, 0x7d, 0x98, 0x3b, 0x6a, 0xef, 0x8e, 0xda, 0x83, 0xa3, - 0x36, 0x8e, 0x5d, 0x83, 0x9c, 0x68, 0xca, 0x75, 0x5e, 0xba, 0x10, 0x3f, 0x72, 0xbe, 0x52, 0xd7, - 0xe7, 0x35, 0x16, 0xcd, 0xcd, 0x2a, 0x1d, 0x8d, 0x05, 0xf9, 0xd3, 0x22, 0x96, 0x5f, 0x45, 0xa9, - 0x6e, 0xa5, 0x40, 0xde, 0xd6, 0x08, 0xda, 0x43, 0xd2, 0x5e, 0xec, 0xe5, 0x8f, 0xf5, 0x19, 0x77, - 0x34, 0x28, 0xe7, 0xa9, 0x4e, 0x94, 0x57, 0x81, 0x4c, 0x96, 0x99, 0x21, 0xcf, 0x76, 0x86, 0x02, - 0xcc, 0x3d, 0xaa, 0x21, 0x3c, 0xdc, 0xe8, 0x2c, 0xc8, 0x2c, 0x81, 0xe9, 0x9a, 0x6f, 0xdb, 0xbd, - 0xfc, 0x06, 0xfb, 0x61, 0xf8, 0x7d, 0x07, 0xbe, 0x07, 0xb2, 0xbd, 0x95, 0xc2, 0x7a, 0x40, 0x40, - 0xcf, 0x31, 0x6a, 0x64, 0x70, 0x3d, 0xb6, 0x8c, 0xed, 0x99, 0x8f, 0xeb, 0x46, 0x60, 0xc7, 0x44, - 0xd5, 0x02, 0xfa, 0x6c, 0x6b, 0x3e, 0xd7, 0xaf, 0x40, 0x68, 0x93, 0x6d, 0x94, 0x6f, 0x1a, 0x0d, - 0xc4, 0x3e, 0x72, 0x45, 0xbd, 0xa7, 0xfb, 0xb3, 0x72, 0x5f, 0x14, 0x86, 0xa8, 0x36, 0xb4, 0xdb, - 0x79, 0xdb, 0x46, 0xd5, 0x4c, 0xef, 0x8d, 0x79, 0x29, 0xa3, 0xcd, 0xbc, 0xdc, 0x15, 0x82, 0x50, - 0xb9, 0xbb, 0xa6, 0x4c, 0xb1, 0x29, 0xa3, 0x95, 0x4b, 0x4a, 0xab, 0xa8, 0xcb, 0x95, 0x05, 0x88, - 0x6f, 0xf8, 0x0d, 0xc7, 0x34, 0xfc, 0xea, 0xdb, 0xdb, 0x9b, 0x73, 0x43, 0xdb, 0x88, 0x2d, 0x52, - 0xc5, 0x37, 0x88, 0x73, 0x20, 0x74, 0xaa, 0xf5, 0x03, 0xa4, 0xe6, 0x48, 0x6f, 0x3f, 0x62, 0x7b, - 0x5b, 0xae, 0x90, 0xfa, 0xa2, 0x8a, 0x1f, 0x80, 0x8c, 0x10, 0x53, 0x42, 0xbc, 0x8f, 0x2c, 0xc4, - 0xba, 0xa4, 0x72, 0xcb, 0xf4, 0xc0, 0xbe, 0x76, 0xc0, 0xee, 0x6e, 0x24, 0x13, 0xfc, 0xef, 0x03, - 0x82, 0x3c, 0x8a, 0xc3, 0xf9, 0x54, 0xe0, 0x8b, 0x4c, 0x9c, 0x63, 0x40, 0x0c, 0xd6, 0x11, 0x60, - 0x3f, 0x6c, 0x8f, 0xd1, 0x7e, 0x7e, 0x19, 0xda, 0x10, 0x6b, 0x36, 0x20, 0x36, 0x7b, 0x95, 0x29, - 0x11, 0x6d, 0xf9, 0x22, 0x8e, 0x13, 0xdd, 0x99, 0xa0, 0x37, 0x1c, 0x7e, 0x07, 0xf6, 0xf7, 0x0d, - 0x72, 0x2b, 0x6c, 0x4b, 0x7d, 0x88, 0xc5, 0x4c, 0x88, 0xe0, 0x7a, 0x75, 0x98, 0x2b, 0x01, 0xaf, - 0x65, 0xf9, 0x6d, 0x2b, 0x6c, 0xc1, 0x36, 0xbf, 0xc9, 0x3d, 0xf0, 0xb7, 0xe6, 0xab, 0x2c, 0x18, - 0xed, 0x47, 0x84, 0x5e, 0xde, 0x28, 0xec, 0x33, 0x60, 0x1c, 0xd7, 0xd4, 0xe4, 0x49, 0xf1, 0x4d, - 0x36, 0x47, 0x37, 0x6f, 0xb4, 0x34, 0x13, 0xf4, 0xb0, 0x08, 0xc9, 0x97, 0x81, 0x1e, 0x2f, 0x08, - 0x6d, 0x24, 0x1c, 0xfb, 0xd5, 0x10, 0xab, 0x06, 0xe5, 0x6c, 0xe2, 0x17, 0x04, 0x82, 0x67, 0x10, - 0x1f, 0x5c, 0xce, 0x67, 0xe1, 0x4c, 0x03, 0x12, 0xab, 0x41, 0x3e, 0xf0, 0x8e, 0x3c, 0x6b, 0x87, - 0x6c, 0x88, 0x3b, 0x2b, 0x32, 0x9c, 0x85, 0xb3, 0x9a, 0x38, 0x87, 0x87, 0xd8, 0x0a, 0x94, 0xac, - 0xda, 0x59, 0xe8, 0xb1, 0x4c, 0x4a, 0x5c, 0xa7, 0x08, 0xb1, 0x44, 0xa7, 0xa6, 0x3f, 0xdc, 0x98, - 0xbb, 0x30, 0x67, 0x67, 0xc2, 0x9c, 0x7e, 0x76, 0xd4, 0xd6, 0x05, 0x20, 0xc6, 0xe0, 0x91, 0x06, - 0x7f, 0x83, 0xfd, 0x64, 0x75, 0x56, 0x2f, 0x76, 0xb8, 0xc7, 0x00, 0xde, 0xa6, 0x44, 0xe0, 0xf7, - 0xe8, 0x10, 0xbe, 0xe1, 0xdb, 0x6d, 0x94, 0xd1, 0x38, 0xa0, 0x55, 0x65, 0x33, 0xed, 0x80, 0xf2, - 0xdf, 0xb4, 0x67, 0x6a, 0x56, 0xea, 0xe8, 0x83, 0xa0, 0x0d, 0x76, 0x7e, 0x36, 0x24, 0x6d, 0x84, - 0x03, 0x68, 0x76, 0x4d, 0xe9, 0x7a, 0x5b, 0x46, 0xdb, 0x79, 0x40, 0x1f, 0xf0, 0xd7, 0x20, 0x8f, - 0x3d, 0xc4, 0xa8, 0x48, 0xf0, 0x51, 0x0e, 0x95, 0x89, 0xff, 0xc6, 0x79, 0x74, 0x19, 0xfb, 0x54, - 0xcc, 0xef, 0x96, 0x28, 0x91, 0x76, 0x6b, 0xa3, 0xd6, 0x20, 0xe6, 0xc6, 0xfc, 0x7e, 0x4f, 0x5d, - 0xa0, 0x87, 0xe5, 0xa1, 0xde, 0x53, 0x07, 0x8c, 0xcf, 0xe9, 0x6d, 0x2e, 0xf3, 0xd8, 0x18, 0x42, - 0x68, 0x0d, 0xfc, 0x33, 0xb9, 0x4c, 0xa9, 0xc7, 0xf9, 0x0f, 0xbd, 0x9e, 0xbf, 0xd4, 0xf9, 0xf2, - 0xcd, 0xdb, 0xee, 0x82, 0x5d, 0x0a, 0xdb, 0x2c, 0xf0, 0x78, 0x84, 0xd7, 0xa0, 0xfa, 0x06, 0xe0, - 0x94, 0x28, 0xb7, 0x2e, 0xcb, 0x62, 0x75, 0x39, 0xb1, 0x8a, 0x56, 0xaf, 0xb7, 0x69, 0x51, 0x03, - 0xb7, 0xd4, 0x2b, 0x67, 0x18, 0xb3, 0x22, 0x31, 0x0d, 0xc8, 0x2b, 0x3a, 0xdd, 0x12, 0x86, 0xb1, - 0x6a, 0x66, 0x24, 0xb0, 0x1d, 0xa2, 0x0c, 0xed, 0x15, 0x81, 0x99, 0x01, 0x9e, 0xb5, 0x33, 0x5e, - 0xb4, 0x8e, 0x84, 0xfa, 0x20, 0x2f, 0x6b, 0x2c, 0x2f, 0x58, 0x7f, 0x44, 0x84, 0x1f, 0xfa, 0x79, - 0x60, 0x97, 0xeb, 0x60, 0xb7, 0x2b, 0xac, 0xc8, 0xd7, 0x20, 0x17, 0x64, 0x5e, 0xe6, 0xa3, 0x1b, - 0xbd, 0x5d, 0x84, 0xf8, 0x94, 0x7b, 0xa0, 0x6c, 0xac, 0x43, 0x55, 0xd4, 0x31, 0x2c, 0xc8, 0xd1, - 0x1e, 0x64, 0xd4, 0x75, 0x69, 0x03, 0x71, 0x60, 0x03, 0xd7, 0x37, 0x74, 0x6f, 0x18, 0xa8, 0x96, - 0x8f, 0xeb, 0xbd, 0x19, 0x88, 0x0f, 0x40, 0x1f, 0x40, 0x8b, 0xd8, 0x20, 0x34, 0x30, 0x81, 0x86, - 0x83, 0xba, 0xaf, 0x32, 0x2d, 0xfc, 0xdc, 0x05, 0xf4, 0x1e, 0xe8, 0x92, 0x63, 0x7a, 0xc1, 0x67, - 0xdd, 0x6f, 0xb5, 0xda, 0x3d, 0xe1, 0xb1, 0xb3, 0x18, 0xdd, 0xb8, 0x35, 0x9f, 0xd1, 0xdb, 0x19, - 0x01, 0x6d, 0x4a, 0x39, 0x7b, 0xdc, 0xbe, 0xd1, 0xb9, 0x21, 0xf3, 0xb2, 0x54, 0x1f, 0xfb, 0x10, - 0x9b, 0x1b, 0xa3, 0x1e, 0x6a, 0x77, 0xf5, 0x47, 0xdb, 0x84, 0x88, 0xab, 0x5a, 0xbb, 0xa1, 0x21, - 0x04, 0xa7, 0x5e, 0xb8, 0xac, 0xad, 0x88, 0x4c, 0x63, 0x37, 0xc8, 0x8c, 0x7b, 0x74, 0x15, 0x75, - 0x3d, 0xc7, 0x8b, 0xea, 0xf0, 0x95, 0x01, 0xd6, 0x07, 0x07, 0x9f, 0x0f, 0x98, 0x6d, 0x1f, 0xd4, - 0xc5, 0x3a, 0x62, 0x20, 0xcb, 0xe0, 0x97, 0x4e, 0xea, 0xce, 0x1b, 0xc1, 0x6a, 0xe1, 0x7a, 0x8a, - 0x0f, 0xfc, 0xdb, 0xa8, 0xb9, 0xca, 0xb9, 0xba, 0xce, 0x51, 0x9b, 0x7e, 0x5d, 0xbc, 0xb6, 0xeb, - 0xfb, 0x7f, 0xb0, 0x67, 0xe8, 0x7f, 0xa7, 0x47, 0xfe, 0x38, 0x6a, 0x37, 0x1f, 0xd7, 0xf5, 0xa3, - 0x35, 0xc4, 0xff, 0xb3, 0x1d, 0x1c, 0x4f, 0xea, 0x90, 0xe5, 0x91, 0xe7, 0x57, 0xac, 0x84, 0x75, - 0xd1, 0x6a, 0xf9, 0x55, 0x30, 0x53, 0x62, 0x89, 0xd2, 0xcb, 0xeb, 0xf6, 0x30, 0xcf, 0xf8, 0xbb, - 0xa0, 0xde, 0x1e, 0x3e, 0x7f, 0x00, 0x27, 0xc5, 0xae, 0xf1, 0xb3, 0xa5, 0xa2, 0x8f, 0xa3, 0x31, - 0x14, 0xd0, 0x78, 0xab, 0xb2, 0xd8, 0x2c, 0xb4, 0x85, 0x1e, 0xd7, 0x46, 0x35, 0x88, 0x43, 0x51, - 0xc9, 0x2f, 0x09, 0xa5, 0x70, 0xbe, 0x8c, 0xe7, 0x67, 0x44, 0x32, 0x1f, 0xf6, 0x98, 0x33, 0x20, - 0xe3, 0xec, 0xa6, 0xbc, 0xa3, 0x70, 0x5c, 0xda, 0x16, 0x44, 0x26, 0xd3, 0xdb, 0x51, 0xc1, 0xfa, - 0xd0, 0xde, 0x26, 0xe8, 0xd9, 0x0c, 0xec, 0xca, 0xac, 0xe2, 0xab, 0x16, 0x1f, 0xd4, 0x10, 0x21, - 0x26, 0x27, 0xba, 0x42, 0xf3, 0xd0, 0x07, 0xf1, 0x28, 0x2d, 0x6c, 0x55, 0x1c, 0x0b, 0xd0, 0x98, - 0xf7, 0x58, 0x1f, 0xb0, 0x0e, 0x55, 0x70, 0x7c, 0xe0, 0xab, 0x3b, 0x54, 0x5c, 0x6d, 0x8d, 0xd9, - 0xae, 0x26, 0xab, 0xc3, 0x92, 0x61, 0x2a, 0x8d, 0xb6, 0xf0, 0x2a, 0x6f, 0x76, 0xdb, 0x06, 0x44, - 0xaa, 0xf0, 0x7d, 0x2c, 0x6f, 0x66, 0xdb, 0x86, 0x6c, 0xdb, 0xa5, 0x8d, 0x39, 0xa8, 0xb5, 0xf9, - 0xb7, 0x2d, 0xe4, 0xb9, 0x7d, 0x98, 0x5f, 0x95, 0x55, 0xb5, 0x64, 0x38, 0x8d, 0x1f, 0xae, 0x05, - 0xec, 0x2a, 0x47, 0xfc, 0xcf, 0x23, 0x4e, 0x04, 0x8a, 0x32, 0x83, 0xf7, 0xcb, 0xc1, 0xbb, 0x6c, - 0x60, 0x2f, 0xac, 0xa1, 0x44, 0x75, 0xd3, 0xe9, 0x51, 0x7b, 0x80, 0x6d, 0x2a, 0xdf, 0xcb, 0x33, - 0x60, 0xb7, 0x8f, 0x65, 0xe1, 0xb5, 0x27, 0x25, 0xda, 0xb2, 0x19, 0xd5, 0x11, 0xc2, 0xba, 0xc1, - 0xf8, 0xb0, 0xed, 0xf9, 0xb1, 0x1f, 0xa7, 0x1c, 0x37, 0x8e, 0x21, 0xb5, 0x8c, 0x47, 0x57, 0xd7, - 0x05, 0xa1, 0x6a, 0x49, 0xff, 0xa3, 0x71, 0xaa, 0x5e, 0xe9, 0xb0, 0xa2, 0x29, 0x92, 0x3a, 0xc4, - 0x1b, 0x75, 0x23, 0x23, 0x5a, 0x2a, 0x83, 0xbf, 0x5c, 0xa0, 0x32, 0xae, 0xfd, 0x73, 0xef, 0x7a, - 0x86, 0xc1, 0x6c, 0xc4, 0x3e, 0xc4, 0xf0, 0x38, 0x2e, 0x5c, 0x08, 0xe2, 0xe1, 0x33, 0x0c, 0x4c, - 0xd7, 0xa0, 0xe6, 0x32, 0x64, 0xc5, 0x72, 0x69, 0x27, 0x64, 0xe6, 0xbd, 0x0a, 0x73, 0x14, 0xb3, - 0xeb, 0xf3, 0x7a, 0x9d, 0xb1, 0x5f, 0x79, 0x48, 0x4c, 0x20, 0x66, 0x16, 0x79, 0xce, 0x7f, 0xab, - 0x77, 0x87, 0x39, 0x90, 0x68, 0xa1, 0xdc, 0x65, 0xdc, 0x97, 0xde, 0x14, 0x49, 0x22, 0xce, 0x2d, - 0xf3, 0xd4, 0x5c, 0xae, 0x74, 0xe4, 0x79, 0xb8, 0x6e, 0xe3, 0x86, 0x35, 0x96, 0xe1, 0xae, 0x55, - 0x45, 0x6e, 0x93, 0x1d, 0xb6, 0x45, 0xb3, 0xa0, 0x89, 0xf3, 0x2e, 0x4f, 0xb5, 0x79, 0x91, 0xeb, - 0xa9, 0x90, 0xeb, 0xda, 0x9e, 0x6c, 0xd8, 0x6e, 0xcb, 0xf7, 0x9b, 0x9d, 0x99, 0x98, 0xeb, 0xf9, - 0xe1, 0xf3, 0x2b, 0x88, 0x5f, 0x48, 0xbe, 0x83, 0x9f, 0xdf, 0xe1, 0x3e, 0x51, 0xed, 0xd5, 0x45, - 0xa9, 0x57, 0x87, 0x18, 0x08, 0x89, 0xc2, 0x00, 0xe4, 0x7b, 0x8d, 0x9f, 0x6f, 0x80, 0x5c, 0x97, - 0xdf, 0x6e, 0xcc, 0x2a, 0xb5, 0x9e, 0xdd, 0xdc, 0x70, 0xa3, 0x25, 0xea, 0xb5, 0xf2, 0xe0, 0xa4, - 0xa6, 0x8d, 0x7c, 0xf1, 0xa1, 0x2b, 0x2d, 0x8a, 0xb3, 0xae, 0xcd, 0x78, 0x2e, 0xc4, 0x24, 0xf5, - 0x9b, 0x09, 0xea, 0xee, 0x1a, 0x55, 0x9d, 0x1b, 0x51, 0xab, 0xc1, 0x4d, 0x2e, 0x5b, 0xcd, 0x6a, - 0x1b, 0xd6, 0x73, 0x18, 0xe6, 0xc1, 0xf3, 0x03, 0x57, 0x1e, 0x94, 0x02, 0x99, 0xfa, 0x6b, 0x21, - 0xbf, 0x19, 0xf8, 0xa5, 0xd2, 0x23, 0xe4, 0x85, 0xd1, 0x03, 0xc8, 0xac, 0xce, 0xae, 0xb3, 0xe4, - 0x99, 0x64, 0x59, 0x41, 0x0d, 0x0a, 0xec, 0x46, 0x39, 0x8c, 0xcb, 0xc9, 0x33, 0x18, 0x3e, 0xf1, - 0x14, 0x3a, 0x78, 0x9e, 0xb9, 0x6b, 0x53, 0x2d, 0x94, 0x78, 0x80, 0x79, 0x23, 0x9c, 0xbf, 0x67, - 0xc0, 0xda, 0x67, 0x1f, 0xb4, 0xe2, 0x75, 0x34, 0x7e, 0x70, 0xd7, 0x92, 0x60, 0x9c, 0xed, 0xe0, - 0xb6, 0x8c, 0xdb, 0x3c, 0x79, 0x72, 0x9d, 0xc1, 0xed, 0x86, 0x0f, 0xed, 0x0a, 0x1e, 0x47, 0x4e, - 0xdc, 0x66, 0x5d, 0x3c, 0xdf, 0x09, 0x8a, 0x51, 0xe4, 0x6e, 0x03, 0x9e, 0x3f, 0x88, 0xd7, 0x37, - 0xf0, 0x78, 0x59, 0x8e, 0xdb, 0x64, 0x3d, 0x47, 0xf6, 0xab, 0xc5, 0xf0, 0x59, 0x42, 0x08, 0x02, - 0x6f, 0xdf, 0x46, 0xfb, 0x36, 0xb3, 0x5f, 0x5f, 0xe7, 0xa2, 0xf5, 0xc1, 0x7e, 0x04, 0x5e, 0x30, - 0xfe, 0x16, 0xe0, 0x17, 0x9e, 0xc8, 0xc6, 0x46, 0x4f, 0xc3, 0xab, 0x15, 0x9d, 0x01, 0x3b, 0xca, - 0x33, 0x2f, 0x08, 0xc2, 0xe9, 0x99, 0xcf, 0x4e, 0x50, 0xb3, 0x8a, 0x76, 0xc0, 0x6f, 0xd4, 0xce, - 0x32, 0xc8, 0xe6, 0x78, 0xd4, 0x9d, 0x33, 0xa2, 0x5f, 0x91, 0x74, 0xd9, 0x65, 0x14, 0xbf, 0x2a, - 0xa0, 0xd7, 0x37, 0x06, 0xcc, 0x49, 0x5b, 0x1f, 0xeb, 0x4c, 0x6e, 0x58, 0xdb, 0xe8, 0xfa, 0x96, - 0xad, 0xeb, 0xfc, 0x0a, 0xcd, 0x5c, 0xb6, 0x87, 0x8d, 0xb6, 0xd9, 0x67, 0xfb, 0x76, 0xdd, 0x41, - 0xf6, 0x8a, 0xb5, 0x87, 0x0d, 0x57, 0x8f, 0xf9, 0xf9, 0x86, 0x2a, 0x2e, 0x29, 0xc8, 0x91, 0x97, - 0x7e, 0x8e, 0xd2, 0xe4, 0xf5, 0x82, 0x1a, 0xf9, 0x3d, 0x7f, 0xc4, 0xe0, 0xaa, 0x06, 0xda, 0xaf, - 0xab, 0xa1, 0x72, 0x82, 0x7f, 0x3e, 0x8c, 0x43, 0x9c, 0x17, 0xb5, 0xb1, 0x61, 0x27, 0x0f, 0x99, - 0xa3, 0x36, 0xae, 0x27, 0x80, 0x42, 0xc7, 0x6d, 0x5c, 0xef, 0x63, 0x33, 0x71, 0x1b, 0x52, 0x1c, - 0xf2, 0x9c, 0x0e, 0xfb, 0x02, 0x06, 0x5f, 0xe5, 0x20, 0x3c, 0xe2, 0xf7, 0x6d, 0x1d, 0xf0, 0x29, - 0xdb, 0xfb, 0xb6, 0x0f, 0xe3, 0xec, 0x3c, 0x6e, 0x07, 0xb7, 0x89, 0xf6, 0xe3, 0xb0, 0x5f, 0x1f, - 0x97, 0x04, 0xe2, 0xb6, 0x8e, 0xe7, 0x97, 0xe2, 0x36, 0xec, 0x87, 0x0d, 0x10, 0x0d, 0x2e, 0x9b, - 0x46, 0x55, 0xb3, 0xff, 0x0a, 0xda, 0xa3, 0xf4, 0x1f, 0x57, 0x7c, 0x99, 0x5b, 0x09, 0x88, 0xe9, - 0xa3, 0xaa, 0x84, 0x54, 0x9d, 0xd9, 0xa1, 0xea, 0x1c, 0x8d, 0x7c, 0x66, 0x85, 0x4f, 0x2f, 0x88, - 0x68, 0x85, 0xca, 0x4c, 0xb4, 0x26, 0xfa, 0xec, 0xbe, 0xf6, 0xc7, 0xf4, 0xa8, 0x5a, 0xd9, 0x22, - 0x48, 0x1e, 0x5e, 0x45, 0xc6, 0x42, 0x35, 0x09, 0x07, 0xf1, 0x53, 0x54, 0xab, 0x47, 0x73, 0xaa, - 0xa3, 0x2c, 0xd8, 0xd7, 0xea, 0xd8, 0x1c, 0x2d, 0xe4, 0xed, 0x70, 0xd0, 0x31, 0x5f, 0x59, 0xc6, - 0xd0, 0xba, 0x4c, 0x7d, 0x98, 0x7d, 0x6c, 0x8d, 0xb2, 0x8f, 0x2b, 0x52, 0x5f, 0xaf, 0x96, 0xd0, - 0x48, 0x67, 0x32, 0x78, 0xaf, 0x57, 0x9f, 0x31, 0x51, 0x35, 0x8f, 0xe1, 0x6d, 0x51, 0x95, 0x43, - 0x63, 0x84, 0xdb, 0x22, 0xae, 0xbc, 0x1a, 0xa8, 0x36, 0xc7, 0x9f, 0x75, 0x04, 0x52, 0x00, 0xb8, - 0xb5, 0xc8, 0x3a, 0x82, 0x23, 0xbe, 0xf2, 0x82, 0xf3, 0x88, 0xf7, 0xbd, 0xae, 0x53, 0x13, 0xdb, - 0x59, 0x28, 0xde, 0xd5, 0x67, 0x7c, 0x47, 0xe8, 0xf3, 0xf5, 0x97, 0xdf, 0x7f, 0xfb, 0xeb, 0xf7, - 0xdf, 0x7e, 0xff, 0x0d, 0x5f, 0x62, 0x0b, 0xee, 0x1d, 0x79, 0xf6, 0x4a, 0x9d, 0xde, 0x29, 0xe4, - 0xd2, 0xd2, 0x53, 0x6a, 0xa1, 0x58, 0xc6, 0x72, 0x65, 0x92, 0xdb, 0x45, 0xd1, 0xdc, 0x91, 0x3d, - 0xde, 0x06, 0x73, 0x17, 0x8a, 0xa3, 0x1b, 0x30, 0x2b, 0x43, 0xae, 0x25, 0xe1, 0xdb, 0x4d, 0xba, - 0x63, 0xaf, 0xac, 0x71, 0x70, 0xfb, 0xec, 0x29, 0xf5, 0x91, 0xa6, 0xe9, 0x2f, 0x27, 0x97, 0x99, - 0x6a, 0x9a, 0xb9, 0xd6, 0x3c, 0x43, 0x55, 0x6e, 0x53, 0xb2, 0xe6, 0x8c, 0x15, 0x0b, 0xbe, 0xb8, - 0x8a, 0xe5, 0xde, 0xb9, 0x9a, 0x63, 0x4c, 0xf6, 0xf3, 0x5d, 0x63, 0xa7, 0x3d, 0xa5, 0xe8, 0x87, - 0xe5, 0x86, 0xf4, 0x85, 0x30, 0xfd, 0xa9, 0xe1, 0x69, 0xd0, 0xf1, 0xc1, 0xd3, 0x36, 0xde, 0x9d, - 0x62, 0x1a, 0x3a, 0x20, 0xa0, 0x6a, 0x96, 0xa7, 0x39, 0x64, 0x1a, 0xbe, 0xb5, 0x36, 0x37, 0xbc, - 0xbb, 0xe0, 0x1c, 0xaa, 0x62, 0x9a, 0xf6, 0xca, 0x7b, 0x4a, 0x59, 0xb6, 0xa5, 0x91, 0xf1, 0xfd, - 0x8c, 0x15, 0xec, 0x07, 0x7b, 0x9a, 0x9a, 0x7a, 0x38, 0x8e, 0xa7, 0x2c, 0xec, 0xdd, 0xf7, 0xc6, - 0x61, 0x82, 0xfb, 0xdd, 0x71, 0xfc, 0x3a, 0x3f, 0x1e, 0xe3, 0xa7, 0x2c, 0xef, 0xa6, 0x86, 0x3e, - 0x85, 0x03, 0x4c, 0xbd, 0x88, 0x60, 0x9e, 0x03, 0x74, 0x58, 0x2a, 0x0e, 0x1c, 0x87, 0x4c, 0xb6, - 0xd7, 0x9a, 0x33, 0x31, 0x6d, 0xff, 0x6e, 0xf3, 0x94, 0x9a, 0x1a, 0xe3, 0xb1, 0x16, 0x33, 0x61, - 0x79, 0xc8, 0x01, 0x3a, 0xb3, 0xdc, 0xa4, 0x32, 0xa9, 0x2c, 0x7e, 0x4f, 0x52, 0xeb, 0xe3, 0x78, - 0x3c, 0x8e, 0xf9, 0xb6, 0xf2, 0x3c, 0xdb, 0x0a, 0xd6, 0x01, 0x4d, 0x4c, 0xc3, 0xd2, 0x12, 0x78, - 0xa9, 0x2b, 0xc7, 0xc5, 0x2b, 0x96, 0xb6, 0x11, 0xd2, 0x92, 0x2c, 0xba, 0x37, 0x95, 0x91, 0x66, - 0xba, 0xe7, 0xf8, 0xbd, 0x54, 0xc6, 0x63, 0xc3, 0xd2, 0x9f, 0x52, 0xa5, 0x83, 0xbd, 0xc9, 0xb2, - 0x8f, 0xf8, 0x3a, 0x21, 0x59, 0x1a, 0xac, 0x5c, 0xda, 0xae, 0x11, 0x48, 0xd4, 0xc4, 0xd8, 0x68, - 0xe3, 0x40, 0x5e, 0x6c, 0xc0, 0x67, 0xf1, 0x94, 0x7a, 0xc8, 0x86, 0x1c, 0x76, 0x30, 0x29, 0x9e, - 0x52, 0xf9, 0x43, 0x86, 0x7f, 0x2c, 0x16, 0x8b, 0xa4, 0xed, 0x3b, 0x00, 0xc2, 0xd2, 0x81, 0x37, - 0x63, 0x40, 0x1c, 0x28, 0x83, 0x65, 0xc8, 0xbc, 0x73, 0xcc, 0x18, 0xd7, 0x91, 0x63, 0x84, 0xdb, - 0x45, 0xa8, 0x05, 0xb0, 0x82, 0x51, 0xdf, 0x51, 0x96, 0x4b, 0xcd, 0xb9, 0x8c, 0x90, 0x67, 0x2f, - 0xa3, 0xb3, 0x99, 0xda, 0xc4, 0x8b, 0xbe, 0x87, 0x68, 0x1d, 0x0b, 0x39, 0x60, 0x96, 0xcd, 0x66, - 0x49, 0xe7, 0xee, 0xce, 0xb0, 0xc6, 0x1a, 0xf0, 0x88, 0x8e, 0x37, 0xc3, 0x37, 0x1f, 0xdd, 0x33, - 0x37, 0xf9, 0x3e, 0x87, 0x37, 0xf9, 0x3e, 0x27, 0xe4, 0x1c, 0xdf, 0x00, 0xc4, 0x9c, 0x00, 0xc5, - 0x34, 0x8f, 0xc5, 0x3f, 0x1b, 0x51, 0x03, 0xb3, 0xeb, 0x6e, 0xaa, 0x05, 0xb8, 0x04, 0x5a, 0x35, - 0x36, 0xdc, 0xa5, 0xa9, 0x00, 0x50, 0xc3, 0x22, 0xa3, 0x23, 0xd3, 0x56, 0xe7, 0x5f, 0x92, 0x8c, - 0xba, 0x23, 0x4c, 0xc1, 0x54, 0xd8, 0xb3, 0xe6, 0xde, 0x35, 0x8d, 0x31, 0x48, 0x26, 0xc6, 0xf0, - 0xf7, 0xdf, 0x02, 0x9d, 0xc7, 0x62, 0x87, 0x0d, 0x43, 0x28, 0x81, 0xa0, 0xef, 0xda, 0xf0, 0x0a, - 0xd6, 0x5e, 0x5f, 0x92, 0xa5, 0x7b, 0x90, 0x6b, 0x02, 0xe1, 0x50, 0x30, 0xee, 0x68, 0xd8, 0x09, - 0xef, 0x59, 0x88, 0x05, 0x31, 0xe6, 0x53, 0xa8, 0xaa, 0x0b, 0x10, 0x63, 0x53, 0xbb, 0x08, 0x77, - 0x62, 0x86, 0x0c, 0x02, 0xb1, 0x57, 0xe0, 0xa4, 0x84, 0xf8, 0x17, 0x04, 0xf4, 0x58, 0x20, 0x23, - 0x78, 0x93, 0x49, 0x60, 0x45, 0x12, 0xc7, 0x72, 0x6c, 0x0f, 0xce, 0x74, 0x95, 0x19, 0x6b, 0xfa, - 0xf5, 0x7e, 0x2c, 0x94, 0x80, 0x78, 0x5e, 0x2a, 0x73, 0x9f, 0x73, 0x63, 0x54, 0xb4, 0x4d, 0xa8, - 0x64, 0xa7, 0x70, 0xe8, 0x52, 0x04, 0x29, 0xe4, 0x76, 0x28, 0xe6, 0x97, 0x39, 0x72, 0x91, 0x0c, - 0x81, 0xba, 0x98, 0xc6, 0x5a, 0xc3, 0x77, 0x85, 0x03, 0x30, 0x11, 0x9b, 0x23, 0xde, 0xc7, 0x60, - 0x63, 0x6d, 0x25, 0xf7, 0x86, 0xb1, 0xda, 0x67, 0xfe, 0x4f, 0xa8, 0x4b, 0x0e, 0xf0, 0x14, 0x08, - 0x91, 0x90, 0x77, 0x4f, 0x19, 0x85, 0xca, 0x1e, 0x5a, 0x91, 0x84, 0x0d, 0x39, 0x6b, 0xad, 0x23, - 0x71, 0x3e, 0xe4, 0x0b, 0xb0, 0xc2, 0x30, 0x3d, 0x0c, 0x7c, 0xec, 0xd8, 0xcb, 0x3b, 0x77, 0xaa, - 0x8c, 0x6d, 0xff, 0x8a, 0xd8, 0x9b, 0x90, 0xd9, 0x1f, 0x33, 0x99, 0xcc, 0x9e, 0x16, 0xa0, 0xd6, - 0x3f, 0xd6, 0xf9, 0x53, 0x2d, 0x3b, 0x3c, 0xd1, 0xfe, 0x04, 0x49, 0xab, 0x75, 0x8a, 0xb3, 0x61, - 0x4d, 0xc1, 0x69, 0x04, 0x02, 0x12, 0x4a, 0x0c, 0x06, 0x7a, 0x40, 0x93, 0x98, 0x68, 0x49, 0x9e, - 0x87, 0x9c, 0xfe, 0xae, 0xab, 0xf9, 0xa8, 0xaa, 0xea, 0x1e, 0x17, 0x7b, 0x79, 0x80, 0x4b, 0x6c, - 0x62, 0x68, 0xac, 0x5d, 0xc1, 0x5b, 0x26, 0xfc, 0x86, 0x17, 0xa5, 0xce, 0xbf, 0x62, 0x12, 0x9d, - 0x87, 0x15, 0x98, 0xf1, 0x52, 0xac, 0x3d, 0x01, 0x55, 0xb2, 0x85, 0x73, 0x34, 0x79, 0x9a, 0x62, - 0xc6, 0x5e, 0xa2, 0xcc, 0xc7, 0x5c, 0x2e, 0x77, 0x70, 0x18, 0x4d, 0xd3, 0xce, 0x00, 0xb9, 0xc7, - 0x9e, 0x7e, 0xad, 0x5d, 0x84, 0x12, 0x19, 0xdf, 0x43, 0xdd, 0x0a, 0xa0, 0xfc, 0x78, 0x69, 0xea, - 0x0f, 0x63, 0x81, 0xaf, 0xbf, 0x2b, 0xa1, 0x3f, 0x3b, 0x07, 0x05, 0x5f, 0x43, 0x57, 0x40, 0x59, - 0xc2, 0x93, 0xdc, 0xdd, 0x59, 0x27, 0xf6, 0x6d, 0x62, 0x6a, 0x9b, 0x43, 0x7f, 0xb8, 0x3d, 0x90, - 0xe5, 0x63, 0x6d, 0x08, 0xdb, 0xa0, 0x6e, 0xea, 0xd5, 0x5a, 0x71, 0xae, 0x00, 0xe6, 0xf5, 0x3f, - 0xf0, 0x68, 0xa0, 0xfb, 0x91, 0x7a, 0x91, 0x71, 0xe8, 0x5e, 0x4f, 0x53, 0x77, 0xa9, 0x60, 0x9e, - 0xb7, 0xbc, 0x4d, 0x15, 0x81, 0x09, 0xd7, 0xd0, 0x53, 0x8c, 0x0d, 0x60, 0x60, 0x66, 0xee, 0x22, - 0xe1, 0x2d, 0x46, 0x0e, 0x2b, 0xec, 0x27, 0x7e, 0xe3, 0x68, 0xfd, 0xb1, 0x01, 0x8a, 0xed, 0xea, - 0x55, 0x02, 0x2b, 0x6f, 0x73, 0x9b, 0x22, 0x9b, 0xdd, 0x84, 0xcb, 0x0d, 0x68, 0x5f, 0x53, 0x31, - 0xca, 0x77, 0x04, 0xe7, 0xeb, 0x24, 0xdb, 0xc2, 0x4b, 0xfb, 0x01, 0xad, 0xbe, 0x77, 0x6e, 0xdc, - 0x19, 0x43, 0xba, 0x4e, 0x3a, 0xec, 0x00, 0x5f, 0x9a, 0x0e, 0x0f, 0x11, 0xf5, 0x46, 0xa7, 0xa3, - 0x33, 0xd1, 0xe9, 0xe0, 0x68, 0x3f, 0x4d, 0xaa, 0x24, 0x87, 0x94, 0x95, 0x67, 0x87, 0x9a, 0xb8, - 0xc1, 0x2a, 0x46, 0x44, 0x3c, 0xd0, 0x4a, 0xd8, 0x6d, 0x73, 0xc9, 0x70, 0x7d, 0xe4, 0x26, 0x13, - 0x88, 0x99, 0xdc, 0x03, 0xdd, 0x08, 0x90, 0xce, 0x9c, 0x21, 0x7c, 0x78, 0x90, 0xd0, 0x2d, 0x2d, - 0x6c, 0xdb, 0x9b, 0xa6, 0xfe, 0xbc, 0x60, 0xdf, 0x93, 0x22, 0x31, 0xb9, 0x4d, 0xd1, 0xd7, 0xff, - 0xb8, 0x2f, 0xb8, 0xd7, 0x29, 0x4d, 0x71, 0xb5, 0x3b, 0x08, 0x89, 0x52, 0x31, 0x99, 0xef, 0x12, - 0xb1, 0x4b, 0xec, 0x64, 0xe0, 0xcf, 0xdd, 0xde, 0xb1, 0x1d, 0xd3, 0x2d, 0x19, 0x6a, 0x60, 0x2a, - 0x80, 0xe4, 0xe2, 0xf5, 0x1f, 0x4e, 0xcd, 0xe0, 0x87, 0xd8, 0x8d, 0x07, 0x8c, 0xfb, 0x70, 0xc8, - 0xc7, 0x0f, 0x71, 0x1c, 0xf2, 0x61, 0x6f, 0x20, 0x3f, 0x5c, 0xd4, 0xf0, 0x0f, 0xa7, 0xd1, 0xc2, - 0x87, 0x63, 0xcd, 0xf9, 0x40, 0xbc, 0xce, 0x1d, 0x44, 0xce, 0x0b, 0xf7, 0x20, 0x5a, 0x9e, 0xad, - 0x5c, 0xcf, 0x98, 0x6c, 0xef, 0x42, 0xb1, 0x4a, 0x8c, 0x7d, 0xd8, 0x07, 0x35, 0x58, 0x1b, 0x3f, - 0xd8, 0x4b, 0x45, 0x35, 0xbc, 0x2d, 0xb6, 0x9c, 0x8f, 0x05, 0x82, 0xe5, 0x81, 0x35, 0x7d, 0xc0, - 0xd6, 0xf4, 0x43, 0xe8, 0x9b, 0xef, 0xb4, 0x35, 0x80, 0x71, 0x63, 0xd3, 0x1b, 0xf2, 0xc6, 0x53, - 0xb6, 0xd8, 0x8a, 0x1e, 0x39, 0x87, 0x28, 0x20, 0x06, 0x44, 0xd4, 0xf9, 0xf6, 0xcb, 0xe1, 0x60, - 0xa2, 0xf3, 0x20, 0xf2, 0x8a, 0x12, 0x8b, 0x03, 0xa9, 0x38, 0x0d, 0xc3, 0x3e, 0x86, 0x7b, 0xd2, - 0x51, 0x6e, 0x03, 0xb3, 0xb3, 0x8f, 0x09, 0x51, 0x0b, 0xc7, 0xb3, 0x89, 0xf1, 0x42, 0x29, 0x31, - 0xee, 0xd9, 0x8a, 0x1b, 0x2a, 0xdb, 0x9e, 0x00, 0x97, 0xfc, 0x67, 0xa1, 0x50, 0x08, 0xa5, 0x73, - 0x73, 0x17, 0xb2, 0xf4, 0x31, 0xd4, 0xcc, 0x93, 0xd0, 0xe4, 0x7c, 0xf2, 0x12, 0x2a, 0x87, 0xa3, - 0x8c, 0x8d, 0x15, 0x90, 0x2f, 0x7b, 0xa8, 0xa2, 0x70, 0xb0, 0xe2, 0xaf, 0xf5, 0x9c, 0xf1, 0xc8, - 0x07, 0x44, 0x8b, 0x5c, 0x72, 0x21, 0x44, 0xfb, 0x9c, 0x01, 0x1b, 0x5c, 0xdd, 0x15, 0x22, 0x4b, - 0xba, 0xb7, 0x19, 0x11, 0x0f, 0xce, 0xb9, 0xd3, 0xef, 0x49, 0x45, 0x40, 0xe1, 0x7b, 0x77, 0x6a, - 0xfb, 0x47, 0x64, 0x0e, 0xf0, 0x81, 0xfc, 0x73, 0xa1, 0x84, 0x38, 0x2b, 0x63, 0xcd, 0xb0, 0x40, - 0xd6, 0x0a, 0xee, 0x6d, 0xb2, 0x91, 0xca, 0xe2, 0x37, 0x07, 0xa0, 0x3b, 0xee, 0x31, 0x5c, 0xcd, - 0x71, 0x6c, 0xe7, 0x2c, 0xe0, 0x33, 0xfc, 0x1b, 0x65, 0xbf, 0xb7, 0x67, 0x04, 0xf9, 0x5f, 0x73, - 0x6d, 0x3b, 0x71, 0x20, 0xbd, 0x71, 0xa3, 0xd1, 0x20, 0x5e, 0x75, 0xec, 0x45, 0xea, 0xcf, 0x7d, - 0x7c, 0x93, 0x94, 0x97, 0xbf, 0x02, 0xe1, 0xda, 0x0f, 0x07, 0xf4, 0x4a, 0xa2, 0xf4, 0xd7, 0x61, - 0x74, 0x1e, 0x2a, 0x70, 0x00, 0x3a, 0x52, 0xce, 0xcf, 0x9f, 0x8f, 0xb8, 0xa8, 0x8c, 0x5c, 0xdb, - 0x5c, 0x79, 0xda, 0x5e, 0x15, 0xe8, 0x1c, 0x86, 0x1b, 0x6f, 0x93, 0x8b, 0x92, 0x07, 0xc2, 0x55, - 0x62, 0xd9, 0xa3, 0x74, 0x26, 0x36, 0xf3, 0x07, 0x7a, 0x95, 0xcf, 0xe7, 0xcf, 0x09, 0xe2, 0x8f, - 0x58, 0x99, 0x10, 0xa3, 0xbb, 0x58, 0xf9, 0x0c, 0x6b, 0xb9, 0xf2, 0xfe, 0xed, 0x6d, 0x97, 0xda, - 0x33, 0xc8, 0x8e, 0xae, 0xfd, 0x27, 0x74, 0xf0, 0xa1, 0xbe, 0xe3, 0x64, 0x4c, 0x81, 0x01, 0x55, - 0x3b, 0x8d, 0x6b, 0xb3, 0xd9, 0xcc, 0xb1, 0x10, 0x1f, 0x9a, 0x7e, 0xd2, 0x0e, 0xc3, 0xa5, 0xf0, - 0xcb, 0x05, 0xae, 0x1e, 0xa7, 0xd4, 0x67, 0xf3, 0xdc, 0x13, 0x54, 0x9f, 0x26, 0xb6, 0xba, 0x72, - 0xcf, 0xe7, 0xca, 0x67, 0xe7, 0x3f, 0xc5, 0x66, 0x2c, 0xc8, 0xae, 0x9c, 0x95, 0x65, 0xe1, 0x1f, - 0x9a, 0xbb, 0x83, 0xfd, 0xd5, 0xf9, 0x79, 0x77, 0x1d, 0xb9, 0x81, 0x5c, 0x84, 0xfd, 0xb9, 0x14, - 0x27, 0xc9, 0x1e, 0x47, 0x1f, 0x29, 0x57, 0x19, 0x88, 0x11, 0x82, 0xbf, 0xd7, 0xef, 0x45, 0xc6, - 0x9b, 0xae, 0x16, 0xa3, 0xc3, 0xd4, 0x22, 0xb6, 0x09, 0x11, 0x52, 0x51, 0xfb, 0x12, 0xe7, 0x0f, - 0xc4, 0x24, 0x32, 0x63, 0xe7, 0x10, 0xfe, 0x2e, 0x7f, 0x93, 0x8e, 0xfb, 0x21, 0xb2, 0xb3, 0xe7, - 0x0e, 0x80, 0x0b, 0x30, 0xa4, 0xf1, 0x53, 0x04, 0x3c, 0x65, 0xff, 0xfb, 0x49, 0x96, 0xd8, 0x71, - 0x4f, 0xae, 0x44, 0x78, 0x92, 0x02, 0x5d, 0x33, 0xc6, 0xe7, 0x00, 0xfe, 0xdd, 0x54, 0x3d, 0x9f, - 0x8e, 0x3f, 0x04, 0x21, 0xd6, 0x25, 0xec, 0xdd, 0xff, 0x26, 0xa1, 0x4e, 0x35, 0x24, 0xc4, 0xf5, - 0x92, 0xfe, 0x9c, 0xeb, 0xbe, 0x8c, 0x14, 0xe4, 0x8e, 0xe6, 0x1d, 0xc4, 0x83, 0xa7, 0x89, 0xca, - 0x4f, 0xc2, 0x58, 0xed, 0x6b, 0x37, 0xff, 0x1d, 0x18, 0xbf, 0xa2, 0x02, 0xc5, 0xef, 0x31, 0x2b, - 0x29, 0xd1, 0x77, 0x74, 0x36, 0x11, 0x3b, 0xf8, 0xb8, 0xe0, 0x74, 0x54, 0x17, 0x38, 0x0c, 0x88, - 0x88, 0x76, 0xee, 0x67, 0x9d, 0x70, 0x29, 0xb2, 0x86, 0xf9, 0xcc, 0x89, 0x03, 0x77, 0x34, 0x5c, - 0x94, 0x5d, 0xef, 0xfd, 0xdd, 0xc8, 0x31, 0xf6, 0x90, 0x8e, 0x8a, 0x27, 0xc1, 0x8c, 0x25, 0x84, - 0x52, 0x11, 0x09, 0x0f, 0xea, 0x86, 0x71, 0x9c, 0x1e, 0xed, 0x57, 0x8c, 0xbd, 0xf9, 0xcf, 0x65, - 0xfe, 0xde, 0x71, 0x3e, 0x5b, 0x3a, 0x32, 0xda, 0xf4, 0xf1, 0xc9, 0x72, 0xe7, 0xe2, 0x86, 0xc7, - 0x8b, 0xda, 0x7c, 0x9c, 0xd4, 0x46, 0xc5, 0xe0, 0x73, 0x8a, 0x7a, 0x3c, 0x16, 0xf3, 0xb3, 0xf0, - 0x93, 0x87, 0x4b, 0x16, 0x0e, 0xee, 0xc6, 0x2b, 0x47, 0x89, 0x62, 0xde, 0x82, 0x7b, 0x60, 0xf0, - 0x30, 0xba, 0xf8, 0xe7, 0x77, 0xef, 0xd6, 0x86, 0x6b, 0x8c, 0x0c, 0x93, 0x78, 0xf6, 0x44, 0x96, - 0x1a, 0x57, 0x7e, 0x63, 0xf5, 0x8e, 0xb5, 0x3b, 0x37, 0x06, 0x93, 0x02, 0x7f, 0x0e, 0x68, 0x79, - 0x77, 0x58, 0xcc, 0x3c, 0x4a, 0x34, 0xf6, 0x34, 0x7c, 0x38, 0x95, 0xcf, 0xa3, 0x92, 0xce, 0x5f, - 0x11, 0xc0, 0x93, 0x82, 0x1d, 0x3e, 0x6b, 0xe9, 0x7d, 0xf5, 0x3a, 0x82, 0x57, 0x50, 0xce, 0x7e, - 0x87, 0x23, 0x27, 0xe6, 0xf4, 0xec, 0xc8, 0xd9, 0xce, 0xa4, 0x6a, 0xe1, 0x9f, 0x6c, 0x4e, 0xfe, - 0x18, 0xb9, 0xbb, 0xd6, 0x6f, 0x36, 0x0b, 0xf3, 0xcb, 0xca, 0x9b, 0x94, 0x6e, 0xbf, 0x42, 0x2b, - 0x05, 0x2d, 0xcb, 0x7d, 0xfe, 0x3c, 0xf5, 0xbc, 0xe5, 0x13, 0x45, 0xf9, 0xbe, 0x7f, 0xef, 0xe7, - 0xee, 0x6d, 0x47, 0xa7, 0xb2, 0xc0, 0x32, 0x3c, 0xff, 0x73, 0x40, 0x9c, 0xe7, 0xcf, 0x60, 0x01, - 0x3f, 0x87, 0x7a, 0x15, 0x36, 0xb0, 0x31, 0x79, 0xfe, 0x4c, 0x84, 0xe3, 0xf3, 0xb7, 0xaf, 0x4b, - 0xdb, 0xdc, 0xea, 0x40, 0x14, 0xe2, 0xc0, 0x00, 0x24, 0xf0, 0x00, 0x5b, 0x4d, 0x78, 0x2f, 0x64, - 0x6e, 0x0b, 0x99, 0xcf, 0xd4, 0xb7, 0xaf, 0x18, 0xde, 0xb7, 0xf4, 0x35, 0xe0, 0x7a, 0xe7, 0x68, - 0x80, 0xba, 0x77, 0x4c, 0xeb, 0x50, 0x6a, 0xb3, 0xa7, 0x5c, 0xd8, 0xab, 0x6b, 0x36, 0xa8, 0x0d, - 0x9d, 0xe1, 0x54, 0x00, 0xf3, 0xe9, 0x08, 0xfc, 0x99, 0x98, 0x23, 0x7c, 0x92, 0x40, 0x08, 0x4b, - 0xa2, 0x13, 0x07, 0x84, 0x22, 0x51, 0xa0, 0x3c, 0x91, 0x4f, 0xf7, 0xb2, 0xbd, 0x0e, 0x13, 0x90, - 0x40, 0xe8, 0x83, 0xcc, 0x36, 0x93, 0xa8, 0xca, 0xd8, 0x4b, 0xf2, 0x23, 0xeb, 0x7f, 0xbe, 0x4f, - 0x09, 0x93, 0xd5, 0x9c, 0x84, 0xf5, 0xb5, 0xc0, 0xe0, 0x6a, 0xce, 0x7f, 0x4e, 0x4d, 0xf6, 0xdf, - 0xaa, 0xc4, 0x17, 0x4d, 0x0d, 0x90, 0x3a, 0xfe, 0x97, 0xb9, 0x68, 0x62, 0x92, 0x49, 0xec, 0x1e, - 0x47, 0xd0, 0xed, 0xac, 0x7b, 0x96, 0x0f, 0xb1, 0xd6, 0x15, 0x22, 0xc3, 0x75, 0x4e, 0x0b, 0x30, - 0x71, 0x27, 0x86, 0x66, 0x06, 0x19, 0x56, 0xea, 0x8c, 0x36, 0x9c, 0xcc, 0x20, 0xaf, 0x4b, 0x33, - 0x2e, 0x90, 0x36, 0x19, 0xa4, 0x1e, 0x10, 0x38, 0x28, 0xda, 0x5d, 0x5a, 0x15, 0x47, 0x87, 0x86, - 0x65, 0xe1, 0x27, 0x54, 0x4b, 0x5c, 0xda, 0x22, 0xc5, 0xc0, 0xdb, 0xd4, 0xf7, 0x17, 0x00, 0x35, - 0x0e, 0x17, 0xa4, 0xfe, 0x4c, 0xfd, 0xc0, 0x12, 0xc4, 0x35, 0x61, 0x60, 0x54, 0xd2, 0xf4, 0xec, - 0xcb, 0x4d, 0x98, 0x41, 0x07, 0x65, 0xc2, 0xe8, 0x01, 0xca, 0x91, 0x2f, 0x21, 0x8c, 0xc4, 0x7f, - 0xe2, 0x29, 0x1b, 0xf7, 0x20, 0xda, 0x29, 0x26, 0x8b, 0xdf, 0x9b, 0xa3, 0xc1, 0x7c, 0xf6, 0x48, - 0x3e, 0x12, 0x59, 0xfe, 0xfd, 0xd2, 0xf5, 0x4e, 0xc8, 0x78, 0xb1, 0x2a, 0x5e, 0x2a, 0x95, 0x0e, - 0x62, 0xdf, 0xb1, 0x36, 0x51, 0x56, 0x66, 0x88, 0xf8, 0xbd, 0xeb, 0xd9, 0x8e, 0x36, 0x7e, 0xaf, - 0xea, 0xec, 0xc5, 0xfb, 0x6c, 0x5a, 0x72, 0xef, 0x2a, 0xeb, 0x58, 0xc9, 0xff, 0x06, 0x68, 0x04, - 0xb7, 0x1f, 0x01, 0x2d, 0xe5, 0xe8, 0x73, 0x40, 0xc3, 0x62, 0xad, 0x35, 0x39, 0xae, 0xdf, 0x9c, - 0x26, 0xa1, 0x0f, 0x91, 0x72, 0x86, 0xa9, 0x66, 0x1c, 0x4e, 0x1c, 0x57, 0x41, 0x2e, 0x3d, 0x73, - 0x1c, 0x9f, 0x3e, 0x36, 0x3c, 0xd8, 0x25, 0x92, 0x9d, 0xd2, 0xe1, 0x3e, 0xa5, 0x9f, 0xdc, 0x46, - 0x9d, 0x6a, 0x51, 0xc0, 0x7c, 0xf9, 0xc1, 0xcd, 0xd9, 0x90, 0xeb, 0xd4, 0x29, 0xe7, 0x8e, 0x6a, - 0xc2, 0xb1, 0x78, 0xc7, 0x4f, 0x33, 0xcf, 0xa4, 0x4a, 0x67, 0xab, 0x40, 0x61, 0x6c, 0xa8, 0x4e, - 0xe7, 0xe6, 0x91, 0x06, 0xe0, 0xa0, 0xe4, 0x21, 0x8a, 0x50, 0x72, 0x85, 0xf3, 0x1b, 0x26, 0x95, - 0xc0, 0xd1, 0xd6, 0x17, 0xc0, 0xfc, 0x0c, 0x94, 0x80, 0x4c, 0xc4, 0x2e, 0x7c, 0x97, 0x2b, 0x47, - 0x05, 0xb2, 0x73, 0x07, 0x8e, 0x22, 0xdc, 0x83, 0x47, 0x3e, 0x99, 0xc3, 0x9d, 0x00, 0x93, 0xf9, - 0xbb, 0xb8, 0x7f, 0xfa, 0x0c, 0x29, 0x02, 0x9f, 0x2d, 0x1c, 0x85, 0x48, 0x85, 0x1f, 0x47, 0x94, - 0x67, 0xfd, 0xcb, 0x9e, 0x17, 0x89, 0x02, 0xe1, 0x1e, 0xdf, 0xa5, 0xbb, 0x0e, 0xfa, 0x03, 0x24, - 0xc2, 0xdf, 0xe2, 0x73, 0x80, 0x64, 0xb2, 0x2f, 0xf1, 0x7c, 0x39, 0xf1, 0x4c, 0x39, 0x06, 0x75, - 0x8e, 0x4f, 0x98, 0x3f, 0x71, 0x99, 0x23, 0xc9, 0xa8, 0xa0, 0xda, 0x93, 0xf9, 0x21, 0xf7, 0x22, - 0xaa, 0x86, 0x0f, 0x8b, 0x02, 0x2e, 0xfe, 0xdf, 0xd4, 0x31, 0xa9, 0xcf, 0x10, 0x26, 0x28, 0x05, - 0x9d, 0x88, 0xc0, 0x13, 0xf9, 0x0e, 0x26, 0xee, 0x5d, 0x40, 0x12, 0x9e, 0x68, 0x3f, 0xfb, 0x49, - 0x99, 0x78, 0x51, 0x22, 0x12, 0x17, 0x9e, 0xd3, 0xe9, 0x2f, 0xdf, 0xe1, 0xf9, 0xf9, 0x04, 0xea, - 0x47, 0x68, 0x25, 0x37, 0x8a, 0x21, 0x44, 0xaa, 0x9d, 0x04, 0x71, 0x7e, 0x49, 0xc0, 0xd5, 0x38, - 0x54, 0x20, 0xc5, 0xe1, 0x43, 0xc1, 0x8a, 0x9a, 0xfb, 0x82, 0xfe, 0x41, 0x0a, 0xf9, 0x74, 0x29, - 0x8a, 0x89, 0x24, 0x3f, 0x95, 0xc3, 0x3c, 0x8e, 0x23, 0x94, 0xd3, 0x0c, 0x21, 0x7a, 0xe0, 0x9c, - 0x2f, 0xc4, 0x4f, 0xae, 0xc3, 0x54, 0xff, 0xf2, 0x84, 0xef, 0x0c, 0x06, 0x67, 0x9e, 0x26, 0xee, - 0x25, 0x84, 0xf1, 0x50, 0xee, 0xc8, 0x74, 0x8e, 0x46, 0xa3, 0x13, 0x0b, 0x15, 0x3e, 0x58, 0x8d, - 0x9e, 0xff, 0xeb, 0x3f, 0xb4, 0x9c, 0xef, 0xce, 0x02, 0x8b, 0x3f, 0x99, 0x05, 0x1e, 0xb9, 0xe4, - 0xff, 0xad, 0x2c, 0xf0, 0x3b, 0xb4, 0x30, 0xce, 0x64, 0xbe, 0xe4, 0x5f, 0x3e, 0xf8, 0xfc, 0x8e, - 0x10, 0x6b, 0x9b, 0xa5, 0x62, 0x8d, 0xa3, 0x98, 0xe1, 0xbc, 0x98, 0xfe, 0x6b, 0xa1, 0x8d, 0x0d, - 0x25, 0xa5, 0x98, 0x66, 0x0a, 0xe6, 0xa6, 0xae, 0x12, 0x4f, 0x18, 0x8a, 0xf9, 0x02, 0x7e, 0x06, - 0x47, 0x16, 0x9f, 0x3c, 0xa4, 0xde, 0x93, 0x38, 0x2c, 0x04, 0x9d, 0xdc, 0xda, 0xc9, 0xc7, 0xc2, - 0x47, 0x8a, 0xd4, 0xf7, 0xd3, 0x71, 0xb4, 0xf2, 0xf4, 0xd2, 0x01, 0x99, 0x71, 0x58, 0x68, 0x88, - 0x4b, 0x0d, 0xc9, 0x49, 0xf0, 0x17, 0xb2, 0xa6, 0xf0, 0xf7, 0x5a, 0x7d, 0xa5, 0xc2, 0x5f, 0x8c, - 0xf6, 0x95, 0xdc, 0x1b, 0xb3, 0x2d, 0x98, 0x3f, 0x7e, 0x4e, 0xdb, 0x56, 0x13, 0x3e, 0xaf, 0xae, - 0xf1, 0x2f, 0x15, 0x83, 0xb1, 0xb1, 0xb1, 0x4e, 0x19, 0xd0, 0xad, 0xae, 0xd3, 0x29, 0xd5, 0x54, - 0x5c, 0x17, 0x66, 0x04, 0xcf, 0xd0, 0xd2, 0xdf, 0xf0, 0x44, 0x1c, 0xb0, 0xe0, 0x5f, 0xb1, 0x95, - 0x92, 0xf8, 0xfb, 0xfb, 0xfb, 0xaf, 0x14, 0xcc, 0xc7, 0x20, 0x2d, 0x3b, 0xfc, 0x45, 0x5a, 0x04, - 0xc0, 0xd1, 0xc2, 0x14, 0x41, 0x01, 0xda, 0xa1, 0x5f, 0xa2, 0xbf, 0xa4, 0xbf, 0x75, 0x6d, 0xc7, - 0xd9, 0xde, 0x46, 0xa0, 0x52, 0x96, 0xa6, 0x8d, 0xdd, 0x54, 0x5d, 0x59, 0x2b, 0x5d, 0x02, 0xe7, - 0x8f, 0x00, 0xf2, 0x57, 0x2a, 0x06, 0x1c, 0x63, 0x17, 0x02, 0x0f, 0x2f, 0x11, 0xa5, 0x09, 0xb6, - 0x40, 0xee, 0xf0, 0x97, 0xa2, 0x25, 0x66, 0xe0, 0x67, 0xeb, 0xf1, 0xc0, 0xe1, 0x10, 0xe4, 0xe0, - 0x78, 0x7d, 0x34, 0x04, 0x83, 0x21, 0xb3, 0x30, 0xb0, 0xe0, 0x6b, 0x1b, 0x97, 0xca, 0xd2, 0x40, - 0x26, 0xd5, 0x34, 0xd4, 0x39, 0xde, 0x42, 0xd7, 0x4d, 0x8d, 0xf4, 0x02, 0xb1, 0xe2, 0x3d, 0x74, - 0x33, 0xfd, 0xed, 0xab, 0x11, 0x35, 0xc9, 0x65, 0xa3, 0xf4, 0xb7, 0x4f, 0x1f, 0x37, 0x5a, 0xa6, - 0x34, 0xf9, 0xf2, 0x95, 0x32, 0x20, 0xb3, 0x4d, 0xe0, 0x13, 0x3c, 0xcd, 0x4c, 0x7f, 0x23, 0x60, - 0xbe, 0x52, 0x4b, 0x38, 0x60, 0xb0, 0xdb, 0x77, 0x10, 0x69, 0x99, 0x27, 0x58, 0xb4, 0x4c, 0xcc, - 0xaf, 0xb3, 0xdb, 0x66, 0x95, 0xec, 0xe5, 0x6d, 0x7b, 0xc6, 0xe2, 0xdd, 0xdb, 0x76, 0xb7, 0x96, - 0x7a, 0xb2, 0x31, 0xee, 0xbc, 0xb8, 0x35, 0x4d, 0x17, 0x2f, 0x6f, 0x8d, 0x57, 0xbe, 0x77, 0xe7, - 0x53, 0xb2, 0x37, 0xc3, 0x5b, 0x39, 0x17, 0xf7, 0xce, 0xd3, 0x99, 0xef, 0x50, 0xdb, 0x21, 0x8b, - 0xbf, 0xbb, 0x7d, 0xbc, 0xa1, 0x6f, 0x58, 0x60, 0x79, 0xee, 0x41, 0xe9, 0x49, 0xfa, 0x7e, 0x8f, - 0x7f, 0x99, 0x5e, 0xea, 0x39, 0xf5, 0x99, 0x72, 0x35, 0x0f, 0xdf, 0x7a, 0x73, 0x3f, 0x7f, 0xb9, - 0xc4, 0xf1, 0xef, 0x91, 0x9e, 0xb5, 0xad, 0x89, 0xa1, 0x9f, 0x41, 0x21, 0x52, 0xa1, 0x58, 0x44, - 0x09, 0x21, 0x02, 0xd5, 0x4e, 0xc8, 0x67, 0x0c, 0x73, 0x3a, 0x4e, 0x7f, 0x63, 0x48, 0xd4, 0x62, - 0x69, 0xae, 0x8b, 0x01, 0xc6, 0x73, 0x12, 0x02, 0x6e, 0x98, 0xfb, 0xb5, 0x30, 0x72, 0x88, 0x6e, - 0x2a, 0x71, 0xf1, 0x2c, 0x92, 0x9a, 0x80, 0x75, 0x89, 0x25, 0x09, 0x60, 0x89, 0xf2, 0xe8, 0x21, - 0x5c, 0x0c, 0x99, 0xc4, 0x31, 0x18, 0xe7, 0x60, 0x16, 0xa0, 0x46, 0xb8, 0x37, 0xc5, 0x25, 0x5f, - 0xe8, 0xd4, 0x3c, 0xe8, 0xc1, 0x0a, 0x63, 0x5b, 0x64, 0xea, 0x73, 0x7a, 0xb5, 0x1c, 0x83, 0x2b, - 0xec, 0x39, 0x8a, 0x61, 0x5e, 0x79, 0x53, 0xc3, 0x85, 0x31, 0xb0, 0xa2, 0xcf, 0xe9, 0x6c, 0xa1, - 0x90, 0xc6, 0x57, 0x1d, 0x9e, 0xd3, 0x74, 0x3a, 0x45, 0xd2, 0xde, 0x34, 0xa9, 0x1b, 0xa7, 0x53, - 0x6b, 0xc5, 0x5c, 0x41, 0x8b, 0xce, 0x96, 0xd2, 0x29, 0xea, 0x70, 0xfb, 0x13, 0x2c, 0x43, 0x63, - 0x09, 0x2c, 0x4a, 0xd0, 0xf5, 0x98, 0xce, 0x47, 0x54, 0x4f, 0x7e, 0x37, 0xc8, 0x13, 0x45, 0x72, - 0xa0, 0xe8, 0x2a, 0x58, 0x1a, 0xff, 0x9e, 0xbf, 0xe7, 0xb4, 0x32, 0xc2, 0xf7, 0x57, 0x47, 0xa6, - 0x62, 0xcd, 0x31, 0xf4, 0x60, 0x62, 0x60, 0x74, 0x22, 0x2b, 0x18, 0x7e, 0x26, 0x0d, 0x55, 0x0a, - 0x4c, 0x69, 0x74, 0xaf, 0x26, 0x61, 0xa2, 0x30, 0x7c, 0x16, 0x3b, 0x4d, 0x37, 0x9d, 0x10, 0x96, - 0x30, 0x06, 0x4b, 0x1f, 0x8b, 0x43, 0x50, 0x30, 0x8e, 0x67, 0x82, 0x4d, 0xc4, 0x67, 0x3d, 0x3c, - 0x63, 0x3c, 0xd9, 0xbf, 0x24, 0x39, 0xc1, 0x05, 0xd2, 0xf4, 0xb7, 0x3e, 0xf6, 0xc4, 0xf8, 0xb7, - 0x57, 0x5a, 0x96, 0x66, 0x5e, 0x12, 0xa0, 0x8b, 0x3c, 0x3f, 0xe1, 0x78, 0xff, 0x04, 0xaf, 0x43, - 0xfe, 0x93, 0x63, 0x5e, 0x4d, 0x14, 0xd3, 0xd5, 0x7e, 0x4e, 0x0c, 0x32, 0xef, 0x14, 0x83, 0x77, - 0x0b, 0xc1, 0x45, 0xa6, 0xc7, 0x4e, 0xcf, 0x35, 0x4f, 0x5d, 0x42, 0x08, 0x19, 0xd7, 0x31, 0x54, - 0x33, 0x05, 0x9e, 0x23, 0x61, 0x9d, 0x82, 0x52, 0x60, 0xd7, 0xb4, 0xbd, 0x2b, 0x88, 0x4d, 0xd2, - 0xdf, 0xe8, 0x8b, 0xf6, 0xe5, 0x9d, 0x50, 0x68, 0x0c, 0x25, 0xfb, 0xab, 0x50, 0xb2, 0x18, 0x4a, - 0xee, 0x7b, 0x86, 0xe6, 0x44, 0x28, 0x08, 0x97, 0x20, 0x26, 0x31, 0xc1, 0xca, 0x69, 0x58, 0x28, - 0x52, 0xa7, 0x5e, 0x33, 0x29, 0x08, 0x27, 0x26, 0x25, 0xbc, 0x86, 0x1a, 0xda, 0x93, 0x51, 0xee, - 0xc0, 0x9e, 0x7c, 0x0d, 0xcb, 0xd5, 0x7b, 0xf7, 0x8b, 0x17, 0x04, 0xbe, 0x3b, 0x18, 0x6a, 0x07, - 0x3b, 0x1f, 0xc9, 0x4e, 0xd8, 0x1b, 0x44, 0x27, 0x31, 0xbf, 0x83, 0xaa, 0xe8, 0xb7, 0x72, 0x50, - 0xef, 0xf9, 0x4a, 0x85, 0xed, 0xd3, 0x19, 0x1c, 0xbe, 0x74, 0xf0, 0xc7, 0xc9, 0x04, 0x88, 0x89, - 0xc8, 0x9e, 0x27, 0x84, 0xd9, 0x2b, 0x70, 0x42, 0x28, 0xc2, 0x4b, 0x50, 0xdf, 0xd3, 0xd3, 0x13, - 0x6a, 0x06, 0x6b, 0x52, 0xee, 0x12, 0xc2, 0x9a, 0xbd, 0x86, 0x1d, 0xd2, 0x32, 0x15, 0x5e, 0x79, - 0xf9, 0x0e, 0x4d, 0x8f, 0xcd, 0x74, 0x2e, 0x5b, 0x38, 0x24, 0xeb, 0x7f, 0x4b, 0x61, 0xbb, 0x18, - 0xab, 0x1f, 0x28, 0x2d, 0x99, 0xf3, 0x93, 0x66, 0xfb, 0x7f, 0x4f, 0x5f, 0x2f, 0xd1, 0x1b, 0xd7, - 0x37, 0x70, 0x15, 0x79, 0xfb, 0x43, 0x9a, 0x07, 0xe4, 0x08, 0xef, 0x24, 0xfd, 0x04, 0x07, 0xf2, - 0x99, 0xc7, 0xbf, 0x81, 0x03, 0x7c, 0x84, 0xe7, 0x0f, 0xb8, 0x10, 0xcf, 0xfb, 0xff, 0x8e, 0x13, - 0xf8, 0x47, 0x03, 0xce, 0x33, 0xe1, 0x1c, 0x07, 0xb2, 0x17, 0xad, 0x2e, 0x31, 0x71, 0x78, 0xe6, - 0x64, 0x33, 0xca, 0x1c, 0x18, 0x3b, 0x6f, 0x10, 0x98, 0xdc, 0x2e, 0xce, 0x2e, 0xdf, 0x13, 0x53, - 0x4d, 0x36, 0xa6, 0xe1, 0x7a, 0xfb, 0x9d, 0xc2, 0x6c, 0x06, 0xb2, 0x98, 0x33, 0x8b, 0x46, 0xce, - 0x81, 0x41, 0x48, 0xa5, 0x0e, 0x4c, 0x42, 0x57, 0xd3, 0x17, 0xf8, 0xda, 0xcd, 0x7b, 0x7c, 0x37, - 0xe4, 0xa4, 0x78, 0xe8, 0x9d, 0xfb, 0x26, 0x56, 0xad, 0xbc, 0xa4, 0x14, 0xbd, 0xcb, 0x54, 0x55, - 0x94, 0xb5, 0xed, 0x80, 0x73, 0xff, 0x81, 0xb1, 0x22, 0x21, 0x85, 0xdb, 0x24, 0x81, 0xe9, 0x31, - 0xff, 0x30, 0x76, 0xc1, 0x15, 0x2a, 0x17, 0x3c, 0x49, 0x82, 0x85, 0xa7, 0x1e, 0x08, 0x5b, 0x71, - 0x5c, 0xb0, 0x3f, 0x64, 0x0b, 0x04, 0xdb, 0xf0, 0x1e, 0x38, 0xb2, 0x63, 0x77, 0xf8, 0xb3, 0x40, - 0xb2, 0xe7, 0xbc, 0xe1, 0xcf, 0x02, 0xc9, 0x9d, 0x75, 0x86, 0x3f, 0x09, 0x24, 0x8f, 0x81, 0xe4, - 0x63, 0x20, 0x91, 0x7c, 0xfc, 0x3c, 0xa0, 0x02, 0x06, 0x54, 0xf8, 0x45, 0x6c, 0x8a, 0x18, 0x48, - 0xf1, 0x17, 0x81, 0x3c, 0x60, 0x20, 0x0f, 0xbf, 0x08, 0xa4, 0x84, 0x81, 0x94, 0xfe, 0x06, 0xba, - 0x3c, 0x62, 0x40, 0x8f, 0xbf, 0x88, 0x0d, 0x1d, 0x04, 0x61, 0x99, 0x5f, 0x05, 0x13, 0x08, 0xef, - 0xaf, 0x4a, 0x2f, 0x4d, 0xc4, 0x97, 0xce, 0xfe, 0x0d, 0xd4, 0xa1, 0x89, 0x10, 0xd3, 0xbf, 0x2a, - 0xc5, 0x34, 0x11, 0x63, 0x3a, 0xff, 0xab, 0x60, 0x88, 0x10, 0xd3, 0xbf, 0x2a, 0xc5, 0x34, 0x11, - 0x63, 0xba, 0x78, 0x8e, 0x3e, 0xc1, 0xad, 0xef, 0x10, 0x52, 0x50, 0x1a, 0xc6, 0x85, 0xf9, 0xbd, - 0x3d, 0xec, 0x06, 0xcf, 0xce, 0xb0, 0x9f, 0xd9, 0x3b, 0x6f, 0xe2, 0x66, 0x03, 0xcf, 0x47, 0xd6, - 0x8c, 0xec, 0x4d, 0x3a, 0xb4, 0x76, 0x3d, 0x52, 0x47, 0x48, 0xfa, 0xd7, 0xb0, 0xa0, 0xd3, 0x4d, - 0x06, 0x97, 0x5f, 0xdd, 0xa5, 0x62, 0x1d, 0x6c, 0x4b, 0x8a, 0xea, 0xb0, 0x35, 0xf6, 0x88, 0x78, - 0x30, 0xf6, 0x30, 0x04, 0xc3, 0x24, 0xca, 0xc9, 0xa5, 0x53, 0xf0, 0x4b, 0x60, 0x3e, 0x53, 0x74, - 0x31, 0xa5, 0x42, 0xaf, 0xab, 0xac, 0x35, 0x52, 0x33, 0x74, 0x43, 0xc7, 0x71, 0x1f, 0x02, 0xc3, - 0xcb, 0xf7, 0x20, 0xde, 0x71, 0xec, 0x80, 0x74, 0x29, 0x75, 0xab, 0x9a, 0xef, 0x39, 0xb7, 0xba, - 0xbd, 0x74, 0x6e, 0x76, 0xf8, 0x37, 0x9d, 0xbb, 0x62, 0x38, 0xae, 0x97, 0x5a, 0x12, 0xbc, 0x9e, - 0x92, 0xa1, 0x0e, 0xe0, 0xe8, 0x46, 0x71, 0x48, 0xf0, 0x00, 0x7b, 0x9f, 0xde, 0x93, 0x78, 0x85, - 0xce, 0xef, 0x23, 0x93, 0x74, 0x02, 0x62, 0x53, 0xb9, 0x08, 0x50, 0x3b, 0x0b, 0x30, 0x1b, 0x01, - 0x2c, 0xc4, 0x00, 0x73, 0x49, 0x80, 0xb8, 0xec, 0x95, 0xc2, 0x97, 0xd6, 0xce, 0x03, 0xf5, 0xce, - 0x02, 0xcd, 0xdc, 0x47, 0x60, 0x8b, 0x85, 0xfb, 0x3d, 0x60, 0x1a, 0xba, 0xbf, 0xb9, 0x09, 0xd8, - 0x89, 0x7b, 0x0b, 0x47, 0x60, 0x2f, 0xc0, 0x3d, 0x07, 0x35, 0x73, 0xff, 0x00, 0x50, 0x7f, 0x54, - 0x4b, 0x08, 0x4a, 0x9a, 0x23, 0x3b, 0xf4, 0xe5, 0x47, 0xfa, 0x06, 0x63, 0xf8, 0x7f, 0x84, 0x48, - 0xea, 0x9a, 0xbd, 0xd4, 0xac, 0x9e, 0x32, 0x82, 0x40, 0xe9, 0x52, 0xb5, 0x30, 0xcc, 0xd3, 0x2e, - 0x94, 0xac, 0x70, 0x7d, 0xe2, 0xa4, 0x64, 0xf5, 0xfe, 0x6d, 0xe9, 0x8b, 0xdb, 0xe6, 0xc6, 0x97, - 0xb7, 0x0d, 0xf3, 0xad, 0x5f, 0xd8, 0x37, 0x7b, 0x69, 0xdf, 0x5c, 0x7e, 0xf4, 0x9d, 0x0a, 0x65, - 0xa8, 0x9b, 0xbf, 0xb0, 0x71, 0xee, 0xd2, 0xc6, 0x99, 0xbc, 0x7a, 0x79, 0xe3, 0x38, 0x6a, 0x3b, - 0xda, 0xf9, 0x48, 0x04, 0x82, 0x3a, 0xb7, 0x82, 0x43, 0xd8, 0x58, 0x48, 0xa2, 0xfe, 0xf8, 0x87, - 0x7c, 0xf7, 0x63, 0xf8, 0x7f, 0xb4, 0x88, 0x2a, 0xe7, 0xd4, 0x3f, 0xfe, 0x80, 0x83, 0xfc, 0x23, - 0x65, 0x38, 0xf6, 0xfd, 0xcc, 0x4d, 0xad, 0xf3, 0xf7, 0xf9, 0xfb, 0x0c, 0xe9, 0xc9, 0x66, 0xe8, - 0xe2, 0x1d, 0xbc, 0x3d, 0xa6, 0xea, 0xe4, 0x22, 0x7d, 0x59, 0xb1, 0x0c, 0xcd, 0x24, 0x43, 0x4d, - 0x43, 0x85, 0xe4, 0x43, 0x1b, 0xa7, 0x56, 0x16, 0x24, 0x06, 0x29, 0xa1, 0xdd, 0x4c, 0x65, 0xc3, - 0x55, 0xba, 0xe1, 0x4d, 0x57, 0xa3, 0x7b, 0xd5, 0x5e, 0x50, 0x33, 0x05, 0xaf, 0xa3, 0x02, 0xc8, - 0x78, 0x90, 0xfa, 0xfd, 0xb7, 0x3f, 0xa2, 0xff, 0x6b, 0xe3, 0xca, 0xbb, 0xd5, 0xae, 0xff, 0x4c, - 0xdb, 0xa3, 0x19, 0x70, 0x34, 0xfd, 0xfc, 0x8c, 0xd5, 0xc1, 0x9e, 0xa4, 0xb4, 0x0d, 0xbe, 0x63, - 0xe2, 0x7e, 0xfa, 0x94, 0xc6, 0xa0, 0x27, 0x86, 0x05, 0xe9, 0xe8, 0x1f, 0xd1, 0x20, 0x58, 0xf4, - 0x95, 0xa9, 0xfd, 0x33, 0xf8, 0xb8, 0x0f, 0xa7, 0x3e, 0x6b, 0x57, 0xd7, 0x4f, 0xe9, 0x08, 0xec, - 0x1e, 0x52, 0xb0, 0xfa, 0xd3, 0xa7, 0xe0, 0xf3, 0x5e, 0x59, 0x8c, 0xff, 0x19, 0x7c, 0xbd, 0xd2, - 0xae, 0x9f, 0xbc, 0x7b, 0xc0, 0x0a, 0xaf, 0xfc, 0x8b, 0xa4, 0x49, 0xb7, 0x31, 0x56, 0x80, 0xd2, - 0xca, 0xd5, 0x20, 0x17, 0x74, 0x0c, 0x40, 0xeb, 0xcb, 0x5a, 0x71, 0x52, 0xea, 0x73, 0x62, 0xf4, - 0xaf, 0x5b, 0xe3, 0x19, 0xde, 0xa6, 0xcf, 0xff, 0xfe, 0xcf, 0xed, 0x0a, 0xde, 0xbe, 0xc4, 0xff, - 0x77, 0xc8, 0x32, 0x38, 0x11, 0x5e, 0x61, 0xdf, 0x5a, 0xb7, 0xce, 0xad, 0x71, 0xeb, 0x3e, 0x2b, - 0x8e, 0xbe, 0x22, 0x92, 0x73, 0xab, 0x3c, 0xaf, 0xbe, 0x4c, 0x6c, 0xe7, 0xca, 0xd8, 0xf7, 0xdd, - 0x9b, 0x9a, 0xa5, 0x7b, 0xd3, 0x2f, 0xd9, 0xaf, 0xc6, 0xdd, 0xdd, 0x97, 0xeb, 0xe9, 0xfd, 0x72, - 0xe5, 0x4e, 0xaf, 0xdc, 0x7f, 0x1b, 0xff, 0xb9, 0x26, 0x53, 0x01, 0x79, 0x6b, 0x65, 0x9a, 0x7f, - 0x3c, 0x6b, 0xf7, 0xea, 0xd4, 0x30, 0xc7, 0x8e, 0x66, 0x7d, 0xfa, 0x74, 0x35, 0x0d, 0x97, 0xfd, - 0xd7, 0x7f, 0x85, 0x0b, 0xf6, 0xa3, 0xd7, 0xb7, 0x63, 0xcd, 0xd4, 0x3c, 0x2d, 0x95, 0xe8, 0xfa, - 0x12, 0xcd, 0xff, 0x72, 0x6d, 0x4c, 0xae, 0xae, 0xac, 0x67, 0x58, 0x65, 0x2f, 0xaf, 0xae, 0xaf, - 0x3f, 0x7d, 0x5a, 0xdb, 0xc6, 0x38, 0x95, 0xf9, 0xe3, 0xf9, 0xd9, 0xc2, 0x5d, 0xd7, 0x01, 0x76, - 0x56, 0x34, 0x3d, 0x89, 0x93, 0x45, 0x70, 0x82, 0x24, 0x40, 0x4b, 0x8f, 0x6c, 0xdb, 0xd4, 0x94, - 0x04, 0x9d, 0x31, 0x4e, 0xd6, 0x33, 0x46, 0xf4, 0xfa, 0xf6, 0xca, 0x79, 0xde, 0x73, 0x22, 0x66, - 0x9b, 0x77, 0x8d, 0xa7, 0xc0, 0x04, 0xd8, 0xe9, 0x9f, 0x60, 0xe6, 0xd2, 0x4f, 0x91, 0xd9, 0xdb, - 0x03, 0x81, 0xfe, 0xae, 0x87, 0x2f, 0xcb, 0x5d, 0x59, 0xc0, 0x4d, 0x97, 0x7c, 0xdd, 0x43, 0xc0, - 0x7b, 0x38, 0xcf, 0x7f, 0xd0, 0xd7, 0xd7, 0xb7, 0xce, 0xa7, 0x4f, 0xf6, 0x3f, 0x95, 0x7f, 0x2b, - 0x21, 0x9a, 0x77, 0xf4, 0x7f, 0x6e, 0x9e, 0xad, 0x27, 0xe5, 0xff, 0x71, 0x76, 0x2d, 0xdc, 0x6d, - 0xdb, 0xc8, 0xfa, 0xaf, 0x44, 0xdc, 0xd4, 0x87, 0xb4, 0xa0, 0x97, 0xd3, 0xe6, 0xb6, 0x54, 0x70, - 0x74, 0x12, 0x27, 0x6d, 0xb2, 0x9b, 0x47, 0x37, 0x4e, 0xd3, 0xee, 0x3a, 0xae, 0x0f, 0x4d, 0x51, - 0x12, 0x6b, 0x9a, 0x54, 0x49, 0x58, 0x96, 0x2a, 0xe9, 0xbf, 0xdf, 0x6f, 0x06, 0x20, 0x09, 0x49, - 0x74, 0x92, 0xee, 0x69, 0x23, 0x11, 0xaf, 0x01, 0x30, 0xef, 0x19, 0x40, 0xb4, 0x94, 0xf2, 0x76, - 0x14, 0xc8, 0xf3, 0xf4, 0xc2, 0x0f, 0xcc, 0x9a, 0x3d, 0x91, 0xc9, 0x9c, 0x29, 0x98, 0xc8, 0x34, - 0xba, 0x7b, 0x10, 0x0e, 0xf3, 0x48, 0xdd, 0xe6, 0xe9, 0x83, 0xa4, 0x9b, 0xc2, 0x35, 0x78, 0x4b, - 0x7f, 0x4b, 0x47, 0x89, 0xa4, 0x42, 0x95, 0x0c, 0x50, 0x08, 0x14, 0xa6, 0x86, 0x98, 0x45, 0x85, - 0xd4, 0x2b, 0x8e, 0x46, 0x1a, 0x4d, 0x7e, 0x84, 0xd6, 0xeb, 0x68, 0x75, 0x50, 0x4d, 0x95, 0x22, - 0xd9, 0x56, 0x7c, 0xf0, 0x46, 0xf3, 0x01, 0x61, 0x93, 0x79, 0xe1, 0x41, 0x9c, 0x3e, 0x88, 0x3c, - 0x75, 0x9e, 0x5d, 0xc8, 0x08, 0x1f, 0xe5, 0x22, 0x54, 0x3d, 0x22, 0xd1, 0x23, 0x34, 0xad, 0x15, - 0xb6, 0xda, 0xc0, 0xcd, 0x6a, 0xa4, 0x34, 0xdf, 0x86, 0xb7, 0x39, 0xdd, 0x0f, 0x94, 0x91, 0xb7, - 0x25, 0xf0, 0x91, 0x6c, 0xe8, 0xfc, 0x33, 0x62, 0xb4, 0xb8, 0x88, 0x46, 0xe6, 0xbb, 0x0b, 0xd3, - 0x96, 0x25, 0x0b, 0x70, 0x7b, 0x57, 0xcd, 0xa2, 0xb4, 0x7b, 0x15, 0xa7, 0x63, 0xf7, 0xa0, 0xcd, - 0xf3, 0x61, 0xff, 0xc8, 0x1c, 0x66, 0xb7, 0x4a, 0x4c, 0x64, 0x8f, 0xce, 0xe3, 0x36, 0xd1, 0xd2, - 0x1d, 0xf9, 0xc5, 0x66, 0xba, 0x49, 0x37, 0xf3, 0xcd, 0x43, 0x6f, 0x93, 0xcf, 0x67, 0x9b, 0xec, - 0xae, 0xd8, 0xdc, 0xa4, 0xe1, 0x26, 0x55, 0x77, 0x1b, 0x88, 0xd3, 0x79, 0x38, 0xbb, 0xd8, 0xfc, - 0x95, 0x65, 0x9b, 0xdf, 0xb3, 0x7c, 0xdc, 0x8b, 0x81, 0x74, 0x5b, 0x2a, 0x0a, 0x57, 0x79, 0xeb, - 0x96, 0xea, 0x5e, 0x8e, 0xe3, 0x5c, 0xad, 0xb0, 0xb7, 0xf2, 0x51, 0xb6, 0xfa, 0x60, 0x8b, 0x81, - 0x94, 0x99, 0x26, 0x17, 0x31, 0x49, 0x04, 0xa2, 0xd5, 0x68, 0x21, 0x71, 0x2b, 0xb1, 0xa8, 0x86, - 0x8a, 0x3a, 0x12, 0xe3, 0x0e, 0xbd, 0x1a, 0xda, 0x2b, 0x0c, 0xab, 0x07, 0x9c, 0x69, 0x3c, 0x96, - 0x08, 0xee, 0xea, 0x1f, 0xeb, 0xc7, 0x7f, 0x45, 0xe3, 0xb7, 0x25, 0xbd, 0x41, 0xb8, 0xcd, 0x46, - 0x55, 0xf4, 0xef, 0xaa, 0xec, 0x35, 0x1d, 0xb7, 0x9d, 0x06, 0x05, 0x30, 0x40, 0xad, 0xbb, 0x35, - 0x35, 0xec, 0x17, 0xb4, 0x0f, 0x8d, 0xf0, 0x37, 0x2e, 0x14, 0x80, 0xb2, 0x38, 0x05, 0x92, 0x51, - 0x33, 0x91, 0xaa, 0x1e, 0x99, 0xf5, 0x32, 0x69, 0xcd, 0x66, 0x6e, 0xa1, 0x01, 0xf5, 0xf3, 0x62, - 0x08, 0x69, 0xac, 0x04, 0x30, 0xf3, 0xca, 0x8d, 0xa6, 0xc4, 0x2e, 0x99, 0xa7, 0x5b, 0x68, 0x41, - 0xe0, 0x68, 0x60, 0x8d, 0xbe, 0x64, 0x86, 0x0f, 0xaf, 0xe4, 0x9f, 0xa8, 0x5e, 0xdb, 0xdb, 0x7a, - 0x6d, 0xaa, 0xab, 0xaf, 0x8f, 0xd2, 0x86, 0x87, 0xd0, 0x1f, 0x44, 0xdf, 0x9b, 0x6c, 0x11, 0x9d, - 0xd2, 0x9a, 0x76, 0x90, 0xb5, 0x20, 0x64, 0x09, 0xd6, 0x54, 0xde, 0x1a, 0x6b, 0x71, 0xd8, 0xf8, - 0xd0, 0x32, 0x1d, 0x9a, 0x96, 0xe6, 0x94, 0xba, 0xce, 0xf1, 0x84, 0x03, 0x1e, 0xe7, 0x6a, 0xad, - 0x04, 0x1e, 0x50, 0xff, 0x3c, 0x9a, 0xe8, 0xaa, 0xc4, 0x05, 0x14, 0x16, 0xff, 0xc4, 0x4d, 0x85, - 0xb2, 0xba, 0xe8, 0xe1, 0x2d, 0x46, 0x7a, 0x4e, 0xea, 0xc7, 0xe1, 0xd3, 0x5e, 0x3d, 0x8c, 0x26, - 0x85, 0x5c, 0x37, 0xc9, 0xfa, 0x41, 0x5d, 0xb6, 0xd9, 0x80, 0x71, 0x78, 0x70, 0x37, 0x2c, 0x8a, - 0x0f, 0xd1, 0x52, 0xc9, 0x74, 0xb3, 0x71, 0xb0, 0x34, 0xea, 0xbe, 0x6f, 0x44, 0x52, 0xbd, 0xa3, - 0x03, 0x28, 0x15, 0x96, 0x63, 0x8d, 0x65, 0xfe, 0x4a, 0x6b, 0xd8, 0xd0, 0x72, 0xd0, 0x4e, 0x5a, - 0xf9, 0x56, 0xdd, 0x52, 0xcf, 0x6e, 0x3d, 0x50, 0x5c, 0xa8, 0x3d, 0x3a, 0x6a, 0x81, 0x8f, 0xe5, - 0xa4, 0x0b, 0x5e, 0x50, 0x6e, 0xec, 0x8d, 0xa8, 0xb2, 0xed, 0xcc, 0x97, 0x8e, 0x4f, 0x4f, 0xdb, - 0x6d, 0x85, 0x90, 0x31, 0xb9, 0xd9, 0x79, 0x76, 0x5b, 0x24, 0xab, 0x33, 0x4a, 0xe1, 0xa5, 0x51, - 0xfe, 0xf2, 0xc3, 0x9b, 0xd7, 0x1a, 0x21, 0x29, 0x4b, 0x47, 0x5c, 0x56, 0x42, 0x13, 0x5f, 0x5e, - 0xd2, 0x2b, 0x5f, 0x78, 0x9f, 0x35, 0x52, 0x33, 0x87, 0xb8, 0xa2, 0x8f, 0x59, 0x9d, 0x94, 0x1f, - 0x07, 0x17, 0x9a, 0xfa, 0xb0, 0x84, 0x40, 0x35, 0xc8, 0x46, 0x44, 0x9f, 0x27, 0x41, 0x18, 0xb9, - 0xbd, 0xd3, 0x60, 0x0e, 0x6e, 0x89, 0x1e, 0xf6, 0x04, 0x60, 0x00, 0xc8, 0x3e, 0x83, 0x77, 0x8b, - 0xdb, 0x2b, 0x8d, 0x26, 0x78, 0x46, 0x22, 0x1d, 0x65, 0x24, 0x1d, 0xc1, 0x78, 0xfc, 0x82, 0x7e, - 0x3a, 0xf6, 0x3a, 0x2e, 0x54, 0x84, 0xd5, 0xb8, 0x91, 0x18, 0x8b, 0x82, 0x94, 0x8f, 0x66, 0xa6, - 0xa6, 0x46, 0x41, 0x82, 0x9d, 0x98, 0xba, 0x82, 0x51, 0x5a, 0x17, 0x61, 0x31, 0x3d, 0xef, 0x3c, - 0xba, 0x90, 0x69, 0x8d, 0x0a, 0x4e, 0xb8, 0xb5, 0x98, 0xd3, 0x1c, 0xc2, 0xa5, 0x79, 0x6e, 0x41, - 0xbf, 0x47, 0x84, 0x76, 0xb0, 0xb4, 0xca, 0x57, 0x6b, 0xc5, 0xc3, 0x8c, 0xed, 0x80, 0xe5, 0x48, - 0xb7, 0x61, 0xa0, 0x42, 0x52, 0x17, 0xeb, 0xad, 0x56, 0x98, 0x29, 0xa1, 0x9f, 0x8c, 0x18, 0xf0, - 0x54, 0xcc, 0xa3, 0x24, 0xe1, 0x18, 0xc5, 0x31, 0x92, 0xae, 0x57, 0xfc, 0xb4, 0x94, 0x55, 0xe8, - 0x50, 0x5e, 0x02, 0x23, 0x2c, 0x90, 0x34, 0xd9, 0x01, 0xce, 0x7e, 0x5f, 0x92, 0x0f, 0xe7, 0x8f, - 0x0c, 0xce, 0xcc, 0xe4, 0x9b, 0x0d, 0x13, 0x39, 0x1d, 0x05, 0xa3, 0x03, 0xa8, 0x6f, 0xcf, 0x5c, - 0xe7, 0xf0, 0x9e, 0xfb, 0xe0, 0x87, 0x1f, 0x7e, 0xe8, 0x31, 0x2c, 0x47, 0xec, 0xa1, 0xbd, 0xc6, - 0xa5, 0xbd, 0x32, 0xbf, 0xc1, 0x76, 0x12, 0x53, 0xd0, 0x8c, 0xd0, 0xcd, 0xff, 0xfb, 0x74, 0x22, - 0xa5, 0x09, 0x6d, 0x10, 0xa0, 0x5a, 0xea, 0x69, 0x54, 0x40, 0x51, 0x56, 0xa2, 0xaf, 0x85, 0xaa, - 0x56, 0x12, 0xa4, 0x32, 0x2a, 0x7d, 0x0a, 0x3f, 0xc9, 0xa2, 0xe9, 0xb9, 0xea, 0xd2, 0x12, 0x2f, - 0x48, 0xa9, 0x10, 0x32, 0x5f, 0x92, 0x47, 0xf4, 0x41, 0xf6, 0xc5, 0x14, 0x76, 0x5a, 0x5c, 0xe2, - 0xa3, 0x36, 0x02, 0x3f, 0xef, 0x69, 0xf2, 0x97, 0xdd, 0x62, 0x16, 0x4f, 0x94, 0xd6, 0xe5, 0xf0, - 0x14, 0xe7, 0x59, 0x0a, 0x8e, 0x7a, 0x1e, 0x8f, 0xdf, 0x64, 0xb7, 0x29, 0x0c, 0x60, 0x43, 0xa5, - 0xad, 0x8b, 0x9f, 0xd6, 0xaa, 0x4b, 0xc4, 0xde, 0xfa, 0x43, 0xbb, 0x0d, 0x7e, 0x9b, 0x4a, 0xcd, - 0x0e, 0xb9, 0xe5, 0xd7, 0xe4, 0xdd, 0xec, 0x0e, 0x6b, 0x3d, 0xfb, 0xf8, 0xd3, 0x8b, 0x24, 0x22, - 0x97, 0x0b, 0xeb, 0xaa, 0xac, 0x6c, 0xcb, 0x75, 0x2e, 0x2f, 0x11, 0xf5, 0x05, 0xa1, 0x22, 0x55, - 0x7e, 0xe9, 0x30, 0xd3, 0x79, 0x43, 0x2d, 0x4a, 0xbf, 0x54, 0x73, 0xc4, 0x95, 0xca, 0x05, 0xe8, - 0xc2, 0xd2, 0xaf, 0x34, 0xc1, 0xd1, 0x51, 0xde, 0xa5, 0xbb, 0x26, 0xe9, 0x58, 0x6b, 0x58, 0x08, - 0x42, 0xa7, 0xf3, 0x01, 0xcb, 0x21, 0x04, 0x88, 0x78, 0xb3, 0xc1, 0xd6, 0x3d, 0x51, 0xd4, 0x6b, - 0xff, 0xc5, 0x56, 0xbb, 0xac, 0x63, 0xe0, 0x83, 0x14, 0x72, 0x4a, 0xe6, 0xc0, 0x38, 0x7b, 0x10, - 0x88, 0xd2, 0xc9, 0xaa, 0xd8, 0x00, 0xbc, 0x4c, 0xfa, 0x98, 0x54, 0xb1, 0xd1, 0x6a, 0xd2, 0x6a, - 0x3a, 0xd0, 0x4a, 0x91, 0x57, 0x12, 0xcd, 0xc2, 0x06, 0x38, 0x60, 0x9e, 0xc4, 0x8a, 0x94, 0x27, - 0xa1, 0xb8, 0xde, 0x08, 0x58, 0x8c, 0x2c, 0x74, 0x85, 0x73, 0x52, 0xd6, 0x23, 0x6d, 0xb6, 0x3e, - 0x52, 0x0c, 0xca, 0x6b, 0x72, 0xad, 0x0a, 0x28, 0x2b, 0x1f, 0xae, 0xe2, 0x38, 0x0b, 0xd9, 0x91, - 0xed, 0x86, 0xc0, 0xa2, 0x8a, 0x08, 0x30, 0x81, 0x03, 0x27, 0x0b, 0xc5, 0x03, 0xec, 0x29, 0xec, - 0x52, 0x29, 0x6b, 0x1a, 0x67, 0x31, 0x6c, 0x86, 0x78, 0x07, 0xbc, 0xc0, 0x23, 0x00, 0xb2, 0xe2, - 0xee, 0x0e, 0x59, 0xe0, 0x27, 0x88, 0x98, 0x89, 0x02, 0xf7, 0x4c, 0x84, 0x10, 0xd4, 0xd2, 0x9c, - 0x12, 0xca, 0x1a, 0x9c, 0x9f, 0xb0, 0xdc, 0xbb, 0x1d, 0x69, 0x10, 0xc6, 0x35, 0xbe, 0x73, 0xc9, - 0xbb, 0xaf, 0x77, 0x0b, 0x87, 0x3e, 0x07, 0x05, 0x94, 0x60, 0x75, 0x60, 0xb7, 0x9c, 0x22, 0x46, - 0x53, 0xf9, 0x6d, 0xa8, 0xb2, 0x9c, 0x5d, 0x83, 0x72, 0x62, 0x91, 0xc0, 0x55, 0x0c, 0xe5, 0x0b, - 0x6c, 0x94, 0x4d, 0xc5, 0x10, 0xe3, 0x5a, 0x09, 0xbb, 0xa8, 0x79, 0xf7, 0x52, 0x6f, 0xf3, 0xb4, - 0x04, 0x02, 0x1e, 0x4f, 0x50, 0x1d, 0xde, 0x03, 0x8b, 0xc6, 0xd2, 0xd0, 0x16, 0x24, 0x2f, 0xb7, - 0xe6, 0xf6, 0x46, 0xee, 0x1f, 0x6e, 0x2e, 0x42, 0xf1, 0x88, 0x97, 0x2e, 0x14, 0x60, 0xd0, 0x9f, - 0x07, 0x24, 0xc4, 0x63, 0xb6, 0x00, 0x43, 0x5e, 0xc3, 0xd4, 0xa0, 0xbe, 0x30, 0xbe, 0x77, 0x2e, - 0xdf, 0xbb, 0xd6, 0x1a, 0x43, 0x91, 0x31, 0x19, 0x5a, 0x79, 0x37, 0x05, 0x61, 0x9e, 0x61, 0x2c, - 0xad, 0xb0, 0x2a, 0x30, 0xdb, 0xe9, 0x91, 0x7a, 0xa2, 0xc1, 0xee, 0x44, 0x02, 0x31, 0x98, 0x02, - 0xd7, 0xe0, 0xcb, 0x2d, 0xac, 0x85, 0xf1, 0x18, 0x90, 0xab, 0x10, 0xe4, 0x8e, 0x7b, 0xb5, 0x3b, - 0x5b, 0xa1, 0x99, 0xe8, 0x32, 0x95, 0x4e, 0xb1, 0x20, 0x26, 0x95, 0x21, 0xd8, 0x13, 0x48, 0x8a, - 0xe2, 0x69, 0xfa, 0x4e, 0x9b, 0x69, 0x00, 0x0d, 0x8f, 0x8e, 0xa6, 0xc0, 0xa0, 0xf1, 0xf8, 0x43, - 0x58, 0x8f, 0x16, 0xb8, 0xae, 0x45, 0x0e, 0x5c, 0x48, 0x91, 0x89, 0x1b, 0xc8, 0x50, 0xb8, 0x89, - 0x9c, 0x8e, 0xf6, 0x78, 0xcc, 0xc8, 0x71, 0xb3, 0x06, 0x2c, 0x7f, 0x58, 0xe4, 0x88, 0xc0, 0xf3, - 0x9b, 0x07, 0xba, 0x81, 0xe7, 0x35, 0xf9, 0x85, 0x01, 0xb8, 0x20, 0x01, 0x1f, 0x6a, 0x3d, 0x35, - 0x54, 0xdd, 0x09, 0xa5, 0xae, 0x98, 0x3f, 0x11, 0x37, 0xed, 0x88, 0xb8, 0xdd, 0xe6, 0x0d, 0xff, - 0x17, 0x26, 0x67, 0x7d, 0x39, 0x93, 0xb1, 0x05, 0x08, 0xb1, 0xe4, 0x1e, 0xdf, 0x8b, 0xb9, 0x15, - 0xf6, 0x95, 0xda, 0x01, 0x41, 0x8e, 0xb7, 0x3e, 0xe8, 0x0a, 0xf3, 0x5a, 0xb9, 0x2c, 0x13, 0x34, - 0xd6, 0x9e, 0xa9, 0x18, 0xc3, 0x2b, 0x31, 0xf1, 0xdc, 0x98, 0xe2, 0xb9, 0xdb, 0xf3, 0xc9, 0xf9, - 0xf8, 0xa2, 0x4b, 0x39, 0x81, 0x0b, 0xc9, 0x8f, 0x9c, 0x65, 0xda, 0x6a, 0x2a, 0xb6, 0x2e, 0x8f, - 0x8e, 0xe6, 0xec, 0x94, 0xcb, 0xb9, 0x19, 0x56, 0x3b, 0x63, 0x95, 0x80, 0xcd, 0xd9, 0xf9, 0xd0, - 0xca, 0x6a, 0x66, 0xe9, 0x97, 0x99, 0xad, 0x5f, 0xf4, 0x6a, 0x67, 0xcc, 0x6e, 0x67, 0x31, 0x65, - 0x45, 0xa6, 0xa3, 0x99, 0xad, 0x52, 0x34, 0x14, 0xd7, 0xaa, 0xe3, 0x2a, 0xf0, 0x37, 0x56, 0x30, - 0xaf, 0x62, 0x5c, 0x33, 0x0d, 0x78, 0x62, 0x5f, 0x9c, 0x2b, 0x05, 0x2a, 0x10, 0x5c, 0x93, 0x6a, - 0x40, 0x50, 0x6e, 0x9c, 0x6f, 0x42, 0x7f, 0xc1, 0xe1, 0x39, 0xb0, 0x08, 0x67, 0x7d, 0x02, 0xb3, - 0x34, 0xc6, 0xbf, 0x85, 0x2c, 0x83, 0x61, 0x58, 0xa9, 0x3e, 0x8c, 0x41, 0x34, 0x8a, 0x4c, 0x85, - 0xdf, 0x27, 0x1c, 0xd3, 0x36, 0x16, 0x95, 0x97, 0x78, 0x23, 0xfb, 0xc3, 0x9b, 0x27, 0x8b, 0xe1, - 0x4d, 0xbb, 0xad, 0xa7, 0x5a, 0xc9, 0xd9, 0xf9, 0xcd, 0x85, 0xb8, 0x92, 0xab, 0x3d, 0x5a, 0xdd, - 0x49, 0x60, 0xee, 0x6a, 0xb4, 0xb2, 0xe4, 0x64, 0xa7, 0x80, 0xee, 0xf0, 0xa0, 0xfd, 0x2b, 0x8a, - 0x15, 0x7d, 0xda, 0xd2, 0x50, 0xef, 0xeb, 0x6e, 0xe4, 0x4e, 0xda, 0x6d, 0x31, 0x3f, 0xbf, 0xbb, - 0x90, 0x2b, 0x6c, 0xfd, 0x0a, 0x6a, 0xbe, 0xc2, 0xe7, 0xaa, 0xc6, 0xe7, 0xa8, 0x95, 0x6f, 0x36, - 0xab, 0x1a, 0x55, 0x5d, 0x90, 0xe4, 0xc6, 0xf5, 0xfc, 0x9c, 0x85, 0xe5, 0xf6, 0x7c, 0xda, 0x6e, - 0x13, 0x80, 0xad, 0xd9, 0xc2, 0xe5, 0xde, 0x16, 0x2e, 0xf5, 0x16, 0x12, 0x38, 0x8b, 0x58, 0x7e, - 0xc8, 0x22, 0xcc, 0x2a, 0xf5, 0x4e, 0x72, 0x4c, 0x5b, 0x1b, 0x9f, 0x3b, 0x6f, 0x62, 0x51, 0x94, - 0xd6, 0x05, 0xf8, 0x21, 0x3f, 0xe8, 0x55, 0xea, 0x36, 0x31, 0xe9, 0x74, 0x6a, 0x97, 0x74, 0xfc, - 0x64, 0x6a, 0x92, 0x07, 0xe3, 0x61, 0xfc, 0x04, 0xa6, 0x0c, 0x93, 0xd9, 0xd1, 0xcd, 0x2d, 0xfb, - 0xc8, 0xee, 0x12, 0xaa, 0x8a, 0x1e, 0xc5, 0x29, 0x14, 0xee, 0x3e, 0x57, 0xb9, 0xd7, 0x32, 0xf1, - 0x1a, 0x2c, 0xd9, 0xf5, 0xa8, 0x02, 0xb3, 0xac, 0xf1, 0xe1, 0x1f, 0x30, 0xe5, 0x75, 0xa5, 0xf9, - 0x46, 0xad, 0x65, 0xb3, 0x0e, 0x3f, 0x3a, 0x3a, 0x73, 0x97, 0xa2, 0xee, 0xe8, 0xf9, 0xa7, 0x9b, - 0xcd, 0x3d, 0x7d, 0x21, 0x01, 0x56, 0x47, 0x6f, 0x1d, 0x4a, 0xf0, 0x13, 0x05, 0x00, 0x66, 0xff, - 0x31, 0x3a, 0x4c, 0x3b, 0x03, 0xa8, 0xb1, 0x4e, 0x87, 0x0b, 0xe3, 0xa3, 0xa3, 0x71, 0xbb, 0x3d, - 0xbc, 0x02, 0x53, 0x5c, 0x6f, 0x43, 0xb8, 0x0f, 0x21, 0x58, 0x92, 0x15, 0x6a, 0xa0, 0x99, 0x06, - 0x2a, 0x2f, 0x24, 0x23, 0xac, 0xbf, 0x82, 0x2a, 0x23, 0x42, 0xce, 0x9d, 0xad, 0x5e, 0x42, 0xcf, - 0x0f, 0x01, 0x2f, 0xd8, 0x91, 0x9c, 0xb7, 0xd0, 0x5b, 0x94, 0xb3, 0x4a, 0x8b, 0x28, 0x57, 0xcf, - 0x22, 0xd2, 0xa7, 0x98, 0x00, 0xba, 0x8c, 0x55, 0x09, 0x36, 0x25, 0x4e, 0x89, 0x86, 0x93, 0x9a, - 0xee, 0xe4, 0x42, 0xcf, 0x3d, 0x8b, 0x92, 0x37, 0x20, 0xc1, 0x3b, 0x97, 0xbe, 0x49, 0x71, 0x6b, - 0xbb, 0x35, 0x7e, 0x02, 0xc7, 0xa3, 0xee, 0x04, 0x42, 0x83, 0x95, 0x3a, 0x9d, 0x0b, 0x8f, 0xba, - 0x86, 0xd4, 0x6f, 0x0b, 0xc5, 0x35, 0x67, 0x69, 0xbb, 0x2c, 0x65, 0xf1, 0xb6, 0x7b, 0x4f, 0x14, - 0xe3, 0x89, 0x5d, 0x11, 0xd5, 0x32, 0x93, 0xf2, 0x54, 0x26, 0xac, 0xad, 0x33, 0x5a, 0x08, 0x65, - 0x35, 0x40, 0xc9, 0x61, 0xed, 0x66, 0x43, 0xf1, 0x68, 0x2a, 0xe8, 0x99, 0x3f, 0x4a, 0x44, 0x4f, - 0xbd, 0x7a, 0x7c, 0xe4, 0x39, 0xa5, 0x42, 0x24, 0xcb, 0x42, 0xbe, 0x6a, 0x6c, 0x87, 0x50, 0xa8, - 0xd0, 0xf3, 0xc0, 0xab, 0x27, 0x10, 0xd8, 0x91, 0xc3, 0xea, 0xad, 0xec, 0x6d, 0x7e, 0x7e, 0xc0, - 0xc5, 0x91, 0xa2, 0x5c, 0x11, 0x87, 0xd4, 0x87, 0x93, 0xd3, 0x70, 0x4c, 0x4d, 0xbb, 0x8f, 0x6c, - 0x75, 0x7a, 0xeb, 0x41, 0x71, 0x14, 0x22, 0xae, 0xfd, 0xb9, 0x77, 0x56, 0xd6, 0x4f, 0xda, 0xce, - 0xc3, 0x30, 0x1b, 0xbd, 0x76, 0x33, 0xc8, 0xb4, 0x71, 0x38, 0x77, 0x35, 0x06, 0x8c, 0xbe, 0xbb, - 0x57, 0x05, 0x7b, 0x31, 0x31, 0x71, 0x34, 0xc7, 0x33, 0x15, 0xae, 0xf6, 0xfa, 0x6d, 0x36, 0x14, - 0xef, 0x8b, 0x1c, 0x1f, 0x96, 0x4f, 0x4c, 0x45, 0xb6, 0x5d, 0x0a, 0xfd, 0xe1, 0xce, 0x1b, 0xdb, - 0xa5, 0x86, 0x56, 0x66, 0x80, 0xae, 0xba, 0x82, 0x6a, 0x86, 0xa9, 0x86, 0xc6, 0x1a, 0xc1, 0xe2, - 0x47, 0xdb, 0xad, 0x8e, 0x87, 0xec, 0xcc, 0xcd, 0xfb, 0x1d, 0x2a, 0xc2, 0xbd, 0x28, 0x53, 0x6e, - 0x4c, 0x10, 0x02, 0x97, 0xa9, 0x8c, 0xa4, 0x8f, 0xcd, 0x5e, 0x59, 0xc0, 0x2e, 0x28, 0x25, 0x3c, - 0xa2, 0x94, 0x60, 0x74, 0xf7, 0x40, 0xb9, 0x04, 0x42, 0xac, 0xba, 0xf4, 0x8e, 0x4f, 0x37, 0x65, - 0x80, 0xc0, 0x89, 0x69, 0x5d, 0x71, 0xab, 0xb7, 0xe3, 0x1c, 0x81, 0x10, 0x06, 0x86, 0xbc, 0x81, - 0x77, 0x41, 0x46, 0x0b, 0x9c, 0x1d, 0x9c, 0xe7, 0x17, 0x7b, 0x3e, 0x94, 0x2a, 0xfd, 0xbc, 0xb4, - 0xf6, 0x69, 0xb8, 0x5b, 0x59, 0x12, 0x01, 0x2b, 0x0c, 0x84, 0x74, 0xb9, 0x18, 0x20, 0x06, 0x2a, - 0x5d, 0x95, 0xb4, 0xc6, 0xda, 0x4d, 0xb9, 0x47, 0x3b, 0xc6, 0xb1, 0xa6, 0x41, 0x73, 0x66, 0x21, - 0xf9, 0x0f, 0xdb, 0xf6, 0x70, 0x16, 0xaa, 0xa0, 0xd7, 0x87, 0xe8, 0x68, 0xd7, 0x14, 0xc8, 0x5f, - 0x25, 0x8a, 0xd1, 0xdf, 0xd9, 0x8e, 0x98, 0xa6, 0x46, 0xfb, 0x4b, 0x9d, 0x29, 0xac, 0x32, 0xb4, - 0xd4, 0x54, 0x15, 0xa8, 0xa5, 0xca, 0xf9, 0x28, 0x7b, 0x09, 0xdd, 0x69, 0xa4, 0x9e, 0x47, 0x79, - 0xbc, 0x88, 0xc6, 0x67, 0xf4, 0x3b, 0x91, 0x1f, 0xf3, 0xec, 0x86, 0x13, 0x48, 0xda, 0x6b, 0x27, - 0x57, 0x0d, 0x9e, 0xe3, 0xc8, 0x0a, 0x99, 0x7e, 0x8d, 0x93, 0xe4, 0x30, 0x90, 0xaa, 0x6a, 0x5d, - 0xce, 0x22, 0xda, 0xd5, 0xef, 0xa3, 0x30, 0x02, 0x7c, 0x03, 0xf5, 0x33, 0x8d, 0x3a, 0x6a, 0xa4, - 0x94, 0x4b, 0xda, 0x32, 0xcb, 0x54, 0x6c, 0xed, 0x5d, 0xcd, 0x5d, 0xa7, 0xba, 0xcc, 0xf8, 0xb0, - 0xca, 0x75, 0x4f, 0x30, 0x5b, 0xf9, 0x28, 0xc9, 0xd7, 0xe4, 0x5e, 0x0c, 0xba, 0x1a, 0xc3, 0x25, - 0xe6, 0x56, 0x7c, 0xeb, 0x2e, 0x54, 0x11, 0x09, 0x1b, 0xc5, 0x03, 0xc1, 0x59, 0x33, 0x4c, 0x3c, - 0xd0, 0xdf, 0x1c, 0x9b, 0xc7, 0xdd, 0x62, 0x95, 0x86, 0x95, 0xe7, 0xfd, 0x0b, 0xdf, 0x85, 0xe2, - 0x1d, 0x11, 0x96, 0x46, 0x94, 0x8a, 0xf4, 0x5f, 0x81, 0x84, 0x03, 0x90, 0x8f, 0x92, 0x55, 0x86, - 0x4c, 0x62, 0x47, 0x90, 0x5e, 0xd5, 0xe1, 0x02, 0xf8, 0xae, 0x55, 0xcf, 0x6a, 0xc2, 0x07, 0xc1, - 0xfe, 0x46, 0xb9, 0x40, 0x84, 0x02, 0x94, 0x1d, 0xc2, 0x3c, 0x30, 0xab, 0xd5, 0xde, 0xd8, 0x13, - 0xb1, 0xb6, 0x16, 0xc0, 0x17, 0xd1, 0x15, 0x4c, 0xc2, 0xcd, 0x26, 0x81, 0x5f, 0xb2, 0x87, 0xb2, - 0x10, 0x5e, 0x8a, 0x5e, 0x28, 0x5c, 0x15, 0x55, 0x33, 0xf1, 0x42, 0x4e, 0x36, 0x9b, 0x31, 0xd4, - 0xce, 0x4e, 0xcc, 0xc2, 0xe1, 0xe5, 0x8d, 0x9c, 0x93, 0xd6, 0xff, 0x6a, 0x76, 0x49, 0xe4, 0x1b, - 0x97, 0x93, 0x97, 0x89, 0xa1, 0xc3, 0x17, 0x07, 0xb9, 0x70, 0xac, 0x3c, 0xea, 0xcc, 0x5b, 0x84, - 0x85, 0x16, 0x13, 0x43, 0x6c, 0xa2, 0xc9, 0xac, 0x6a, 0xb8, 0xb5, 0xe8, 0x3a, 0x17, 0x27, 0x5a, - 0x7b, 0xf1, 0x0b, 0xa3, 0x6e, 0x93, 0xf1, 0x1e, 0x41, 0x0c, 0xb1, 0xee, 0x69, 0x75, 0xd9, 0x95, - 0xf3, 0x46, 0x14, 0xf7, 0xed, 0xf3, 0x69, 0x39, 0xbe, 0xb1, 0xda, 0x0c, 0xac, 0x18, 0x26, 0xa8, - 0x57, 0x6d, 0x2d, 0x2e, 0xdc, 0x61, 0x3a, 0x9b, 0x28, 0x72, 0x9f, 0x65, 0x2b, 0xa5, 0xc2, 0x01, - 0x4f, 0x9d, 0xb6, 0x1e, 0x88, 0xd6, 0x25, 0x14, 0x86, 0x54, 0x46, 0x4d, 0xd5, 0x13, 0x03, 0x8b, - 0xac, 0x75, 0x4f, 0x2b, 0xb1, 0x08, 0x4b, 0x8c, 0x37, 0xb5, 0xbb, 0x14, 0xed, 0x4e, 0x68, 0x3b, - 0x68, 0x38, 0x4b, 0x83, 0x39, 0x10, 0x62, 0x8c, 0x7b, 0xb9, 0x53, 0xf7, 0x46, 0xde, 0xdb, 0xea, - 0xce, 0x60, 0x8e, 0x74, 0xba, 0x62, 0x25, 0xae, 0xe0, 0x82, 0x72, 0x32, 0xe2, 0x0b, 0xc1, 0xf1, - 0x9d, 0xe6, 0xe2, 0x25, 0x82, 0xd7, 0xdc, 0x1b, 0xc2, 0x63, 0x9b, 0xc2, 0xd6, 0xc7, 0x7b, 0x9a, - 0xf5, 0xee, 0xe8, 0x68, 0xc9, 0x47, 0x1d, 0x1c, 0x68, 0xe0, 0x61, 0xf4, 0x07, 0x0c, 0xe1, 0x12, - 0x72, 0xc3, 0x3e, 0x81, 0xef, 0xae, 0x64, 0x2c, 0x6c, 0x76, 0x94, 0x31, 0x62, 0xcf, 0x3b, 0xf4, - 0x08, 0x29, 0x7c, 0xaf, 0x10, 0x57, 0x3f, 0x12, 0x07, 0xc7, 0x07, 0xa1, 0x31, 0x74, 0xbd, 0x06, - 0xdc, 0xd7, 0x80, 0xc5, 0x2b, 0x94, 0x28, 0x0c, 0xa5, 0x44, 0x00, 0xbc, 0xec, 0x98, 0xc5, 0x41, - 0x27, 0xa9, 0x0a, 0xb9, 0x10, 0x98, 0x97, 0x96, 0xeb, 0x16, 0x3b, 0xb2, 0x50, 0x1e, 0x3d, 0x2d, - 0x36, 0x9b, 0x01, 0xe7, 0x51, 0xa9, 0x47, 0x53, 0xd0, 0x4a, 0x20, 0x9f, 0x22, 0x6e, 0xa5, 0x60, - 0x37, 0x43, 0xb4, 0x39, 0x11, 0x0b, 0xf8, 0xba, 0x56, 0xc4, 0xc6, 0xf3, 0x72, 0x5e, 0x1e, 0xce, - 0x3c, 0x45, 0x02, 0x40, 0x0d, 0xbe, 0xa6, 0x1a, 0x67, 0xd7, 0xd2, 0xee, 0x3b, 0xbc, 0xd6, 0x7d, - 0xf0, 0xe5, 0x5e, 0xef, 0x86, 0x7a, 0x57, 0x62, 0x01, 0x8b, 0x47, 0x9e, 0x7c, 0x43, 0xd8, 0xbc, - 0xd0, 0x61, 0x33, 0x79, 0xea, 0xab, 0xa3, 0xa3, 0xd7, 0xee, 0x8a, 0x33, 0xa7, 0xb4, 0x4f, 0x79, - 0x85, 0x95, 0xb7, 0xd2, 0x3a, 0x53, 0x76, 0x0a, 0xfc, 0x9c, 0x49, 0x35, 0x3c, 0x93, 0x67, 0x07, - 0xa8, 0x1b, 0x7a, 0xee, 0xa9, 0x3c, 0xf3, 0xcc, 0xc0, 0xe1, 0x95, 0x3d, 0xd3, 0xa9, 0xb8, 0xba, - 0xc7, 0xa9, 0x3d, 0xb5, 0x09, 0xbd, 0xdd, 0xd2, 0x44, 0x2d, 0x68, 0x97, 0x6c, 0xf4, 0xb2, 0x3c, - 0x83, 0xf1, 0x2f, 0x29, 0x69, 0x6a, 0x67, 0xdf, 0x1a, 0x84, 0xae, 0xaa, 0x25, 0x16, 0x14, 0x37, - 0x14, 0x04, 0x5f, 0x6a, 0x59, 0x38, 0x85, 0x95, 0xa7, 0x9f, 0x02, 0x56, 0x47, 0x9b, 0x5e, 0x43, - 0x13, 0x9f, 0xe2, 0x68, 0x87, 0x40, 0x79, 0xc3, 0x0f, 0x70, 0xda, 0x38, 0x4d, 0xb6, 0xad, 0x75, - 0xf0, 0x6b, 0xfb, 0x40, 0x83, 0xb6, 0x38, 0xdc, 0xb7, 0xaf, 0xbb, 0x0a, 0x20, 0xbd, 0x69, 0x34, - 0x77, 0xa6, 0xde, 0x25, 0xd9, 0xbb, 0x2a, 0x25, 0x79, 0x78, 0xbf, 0xab, 0x16, 0x19, 0xa7, 0x9c, - 0x0e, 0x5c, 0x0f, 0xbc, 0xb5, 0xe8, 0x5e, 0x6f, 0xed, 0xad, 0x6b, 0x29, 0x8b, 0x08, 0x0e, 0x7f, - 0x89, 0x4c, 0xf8, 0x68, 0xd1, 0x8e, 0xa1, 0xe1, 0xfe, 0xf5, 0x36, 0x57, 0xda, 0x77, 0xd4, 0x89, - 0xd5, 0xf2, 0x50, 0x4c, 0x94, 0x3e, 0x08, 0xab, 0xa1, 0x48, 0x17, 0xb5, 0x4a, 0x53, 0xba, 0xa0, - 0xb5, 0x5a, 0xfd, 0xb8, 0xd9, 0xd0, 0x79, 0x14, 0x03, 0xd9, 0x43, 0x35, 0xfc, 0xb9, 0x7a, 0xb6, - 0x2b, 0x2b, 0x0f, 0x56, 0x7a, 0x1a, 0xfa, 0xec, 0x76, 0xbd, 0xad, 0x8f, 0x3c, 0x72, 0x04, 0x8c, - 0xf9, 0x93, 0x32, 0x2a, 0x1e, 0xe6, 0x08, 0xe5, 0x9a, 0x0e, 0x04, 0xe0, 0x67, 0x31, 0xa8, 0x1a, - 0xfc, 0xdd, 0xff, 0x0e, 0xbe, 0xf1, 0x54, 0xa1, 0x9a, 0xe1, 0x8d, 0xbb, 0xaa, 0xdd, 0x4b, 0xb1, - 0xa6, 0x0b, 0xe8, 0xb4, 0x6b, 0x7f, 0xf7, 0x22, 0x81, 0x41, 0x53, 0x65, 0x61, 0xdd, 0xdd, 0x0a, - 0x0b, 0x5d, 0x9e, 0x8d, 0x45, 0xa3, 0x9e, 0xed, 0xd6, 0x7b, 0x0e, 0x5f, 0xeb, 0x2e, 0x16, 0x49, - 0xe0, 0x4a, 0x79, 0x82, 0x84, 0xa3, 0x09, 0xfb, 0xe6, 0x74, 0xde, 0x13, 0x85, 0xbe, 0x8a, 0xbd, - 0x15, 0xc0, 0x42, 0x68, 0xb4, 0xb7, 0xb5, 0x7c, 0x2c, 0xfe, 0xb3, 0x10, 0x14, 0x29, 0x46, 0xbe, - 0xa5, 0x70, 0x02, 0x18, 0xba, 0x4b, 0x3d, 0xdc, 0x5b, 0x6f, 0xb7, 0xda, 0x0a, 0x2c, 0xa5, 0x03, - 0x7e, 0x2f, 0xa2, 0x71, 0x76, 0x97, 0x3a, 0xe2, 0xda, 0x94, 0x08, 0xb5, 0x0e, 0x42, 0x6e, 0x5d, - 0xba, 0x9d, 0x3b, 0xe2, 0x39, 0xdd, 0x15, 0xb9, 0x0d, 0x67, 0xd8, 0x4c, 0xae, 0x1c, 0xf1, 0xab, - 0x29, 0xea, 0x8e, 0xcf, 0x4c, 0x09, 0xb3, 0x38, 0x88, 0x0c, 0xaa, 0x69, 0xe8, 0x44, 0xbb, 0x24, - 0xb5, 0xa2, 0x35, 0x47, 0x46, 0x82, 0x69, 0x5d, 0xca, 0xe0, 0xf4, 0x36, 0x1e, 0x4b, 0xf7, 0x4d, - 0xa0, 0x66, 0xdd, 0x3c, 0x48, 0xc7, 0xd9, 0x8d, 0xeb, 0xb5, 0x07, 0x5e, 0x57, 0x65, 0x26, 0xcf, - 0xf7, 0xe8, 0xb1, 0x7d, 0xde, 0xf4, 0x9d, 0xb7, 0x2d, 0x8f, 0x32, 0xf5, 0xb1, 0xf0, 0x25, 0x53, - 0xf9, 0xf2, 0x92, 0x64, 0xc8, 0xb5, 0x03, 0x0c, 0xa9, 0x13, 0x87, 0x26, 0x93, 0xe7, 0xf2, 0xb1, - 0x66, 0xd5, 0xb8, 0x1f, 0x3e, 0x78, 0x56, 0x2c, 0x72, 0x70, 0x8a, 0x60, 0xdf, 0xe4, 0xb8, 0xd2, - 0x24, 0x65, 0x8f, 0xeb, 0x7c, 0x29, 0x9e, 0x5f, 0xf0, 0x1e, 0xc4, 0x7a, 0x1e, 0x14, 0x05, 0x3c, - 0x21, 0xbf, 0x35, 0xd8, 0x7a, 0x5b, 0xa1, 0x9a, 0xc0, 0x59, 0xca, 0xc5, 0x86, 0x78, 0xd7, 0x08, - 0x71, 0x0f, 0xc8, 0x0c, 0x98, 0x49, 0x34, 0xb3, 0xcb, 0x1d, 0x1e, 0x60, 0x66, 0xa5, 0xb5, 0xea, - 0x43, 0x62, 0x57, 0x13, 0x95, 0x34, 0xa0, 0x26, 0x48, 0x41, 0x3e, 0x3e, 0xdf, 0xd3, 0x1b, 0x7f, - 0xd0, 0x15, 0xe7, 0xfd, 0x0b, 0x1f, 0x01, 0x0a, 0xe5, 0x09, 0x93, 0x18, 0x23, 0x7f, 0x13, 0x69, - 0xf5, 0xfc, 0x1f, 0x04, 0x6c, 0xd5, 0x6a, 0xc8, 0x85, 0x78, 0x46, 0x3f, 0xce, 0x06, 0xde, 0x4f, - 0xb9, 0x19, 0x5e, 0x3d, 0xcd, 0x50, 0xdc, 0xc5, 0x7c, 0x98, 0xc6, 0x47, 0x39, 0xde, 0x3a, 0x44, - 0xdf, 0x07, 0x4b, 0x9f, 0xbf, 0x9e, 0xfb, 0x57, 0x6e, 0x99, 0x43, 0x15, 0xe7, 0xd7, 0xe2, 0x57, - 0x71, 0x2a, 0x9e, 0x35, 0xe1, 0x48, 0x93, 0x5e, 0x6f, 0xeb, 0x15, 0x5d, 0x72, 0x73, 0xf5, 0xc9, - 0x8c, 0x73, 0xf6, 0xe1, 0xe9, 0xfb, 0x0f, 0x8e, 0xa7, 0x73, 0x22, 0x43, 0x06, 0x7a, 0xad, 0x61, - 0xff, 0xea, 0xdf, 0x37, 0xe6, 0xcd, 0xbb, 0x8f, 0x2f, 0x76, 0x87, 0x9c, 0xea, 0x21, 0xcf, 0xee, - 0x1d, 0xf2, 0xe2, 0xed, 0x73, 0xc7, 0x13, 0x77, 0x5f, 0xb7, 0xd8, 0x2d, 0x88, 0xb1, 0x85, 0xd1, - 0xad, 0xc3, 0xdc, 0x8f, 0xb5, 0xad, 0x31, 0x3f, 0xef, 0x4c, 0x83, 0x45, 0x3c, 0x0d, 0xc8, 0x2d, - 0xa6, 0x3f, 0x0e, 0xf1, 0x74, 0x4a, 0x30, 0x33, 0xd9, 0xfb, 0xdd, 0x75, 0x47, 0xad, 0x70, 0x06, - 0xd7, 0x38, 0xda, 0x60, 0x15, 0x39, 0x94, 0x9c, 0xd7, 0xf5, 0x8e, 0x8b, 0x60, 0x12, 0xe4, 0x71, - 0x2f, 0xd6, 0x87, 0xbf, 0x60, 0xdd, 0x54, 0xf6, 0xe2, 0x9f, 0x67, 0xe0, 0x93, 0x4d, 0xfc, 0x73, - 0x36, 0xc6, 0x47, 0x30, 0xb6, 0x5a, 0x73, 0xb9, 0xf7, 0x23, 0xd2, 0x32, 0x2a, 0x85, 0x47, 0x92, - 0x8e, 0x72, 0xcd, 0x28, 0x61, 0x96, 0xb4, 0x9d, 0x5e, 0xcf, 0x69, 0xe7, 0xdd, 0x59, 0x56, 0x28, - 0x7c, 0xcd, 0x21, 0x54, 0x94, 0xb4, 0xc5, 0x63, 0x11, 0x05, 0x79, 0x38, 0x6b, 0x2b, 0xdf, 0xba, - 0x41, 0xf2, 0xe3, 0xe1, 0xa9, 0x52, 0xde, 0x49, 0x9f, 0xc8, 0xc1, 0xf7, 0xfd, 0x51, 0xdf, 0x1f, - 0x54, 0x91, 0xef, 0xb1, 0x64, 0xe9, 0xfc, 0xf9, 0x55, 0x0f, 0x2d, 0x22, 0xdf, 0x2d, 0x3a, 0x6f, - 0x1e, 0x38, 0x6d, 0x57, 0xb5, 0xb3, 0x63, 0xae, 0x0d, 0xb3, 0x02, 0x3e, 0xa2, 0xd7, 0x76, 0xa8, - 0x36, 0x2a, 0x6b, 0x8b, 0x38, 0x35, 0xb5, 0x4f, 0x51, 0x9f, 0x71, 0x2b, 0x7d, 0xf6, 0xf1, 0x1d, - 0x9b, 0xef, 0x5d, 0x18, 0x69, 0x23, 0x8c, 0xd4, 0x8e, 0xb9, 0x1e, 0xda, 0xf6, 0x3e, 0x17, 0x64, - 0x9d, 0x6f, 0xf3, 0xa4, 0x5c, 0xf5, 0xdc, 0xe5, 0xb3, 0x04, 0xb1, 0xe6, 0x63, 0x4a, 0xdf, 0x89, - 0x73, 0x28, 0x09, 0xcd, 0x08, 0x8e, 0x58, 0x22, 0x48, 0x58, 0x8a, 0x15, 0x3e, 0x57, 0x42, 0xff, - 0x8d, 0x86, 0x75, 0xf5, 0x26, 0x7d, 0x87, 0xdf, 0xf1, 0x86, 0x5e, 0xa0, 0x3a, 0x62, 0x44, 0xc0, - 0x01, 0x41, 0x1d, 0x61, 0xb4, 0x09, 0x71, 0xc5, 0x34, 0x25, 0xed, 0xbf, 0xe6, 0x53, 0xd3, 0x97, - 0xb0, 0xd0, 0xfe, 0x47, 0xf8, 0x01, 0x24, 0xaf, 0x59, 0x1e, 0x4f, 0x63, 0x8a, 0x75, 0x5b, 0x7a, - 0x60, 0x18, 0xe7, 0x21, 0x4d, 0xd7, 0xb0, 0x86, 0xcb, 0x4b, 0x4e, 0x42, 0x39, 0x22, 0xf7, 0x23, - 0x41, 0x2f, 0x2e, 0xf3, 0x1d, 0xfa, 0x9d, 0xbd, 0xc3, 0x29, 0xce, 0xec, 0x3a, 0xd2, 0xef, 0x00, - 0x70, 0xfc, 0x13, 0xa1, 0xcb, 0xbe, 0x43, 0x6f, 0x2b, 0x70, 0xb6, 0x5f, 0x07, 0x9b, 0xdf, 0xe6, - 0xc4, 0xb0, 0x3b, 0x27, 0x5f, 0x09, 0x7d, 0x32, 0x99, 0x00, 0xba, 0xb7, 0x7d, 0xb8, 0x73, 0xdf, - 0x44, 0xae, 0x97, 0x7e, 0x1f, 0x88, 0x02, 0xd9, 0xfd, 0xef, 0x05, 0xd0, 0xcb, 0x79, 0x68, 0xa1, - 0x37, 0xea, 0x97, 0x8d, 0xdb, 0x2d, 0x6b, 0x9d, 0x9f, 0xe4, 0xd3, 0x3c, 0x0f, 0x56, 0x94, 0x98, - 0x4c, 0x56, 0xec, 0x13, 0x89, 0xb5, 0xc9, 0x93, 0x3f, 0x7a, 0xdc, 0xdf, 0x7a, 0xdd, 0x9b, 0x60, - 0xee, 0xee, 0x1a, 0xe0, 0xea, 0x5a, 0x8a, 0x27, 0xfe, 0xda, 0x51, 0x6c, 0x15, 0x95, 0x23, 0x97, - 0xb4, 0x9c, 0x06, 0xc9, 0x92, 0x59, 0x5d, 0x84, 0xab, 0x2c, 0x01, 0xc5, 0x4c, 0x91, 0x65, 0x09, - 0x14, 0x59, 0x82, 0xe8, 0x5e, 0x4b, 0xa0, 0x76, 0x52, 0x4f, 0x7b, 0x96, 0x20, 0xb2, 0x2d, 0xc1, - 0x65, 0xf5, 0xbe, 0x8d, 0xa7, 0xe9, 0x14, 0x4e, 0xe4, 0xee, 0xda, 0x8d, 0x4b, 0x58, 0x99, 0xf5, - 0xee, 0xdd, 0x2c, 0x8a, 0x12, 0xee, 0x69, 0x98, 0x10, 0xf6, 0x88, 0x6e, 0xc3, 0x64, 0xe1, 0xf5, - 0x5d, 0x5c, 0x70, 0x3e, 0x71, 0xbf, 0xf7, 0xf3, 0x38, 0x8f, 0x18, 0xe4, 0xa8, 0x03, 0x14, 0xb5, - 0x55, 0xc7, 0x8d, 0x46, 0x9d, 0xcc, 0x87, 0x5b, 0x99, 0x75, 0x94, 0xf7, 0x0d, 0xd5, 0xe1, 0x1f, - 0x3f, 0x6c, 0x85, 0xb5, 0xa5, 0x32, 0xd9, 0x65, 0xa3, 0xcc, 0x88, 0x02, 0xe1, 0x88, 0x64, 0x81, - 0x49, 0x2c, 0xe8, 0x6a, 0x91, 0x7e, 0x3d, 0xc6, 0xaf, 0x5c, 0xa6, 0x08, 0x54, 0x73, 0xc9, 0x7b, - 0x7e, 0x5b, 0x86, 0x88, 0x39, 0x01, 0x91, 0x40, 0x6f, 0xcd, 0x8a, 0x85, 0x28, 0x64, 0xd6, 0x3b, - 0xe9, 0xa4, 0x94, 0xaa, 0x60, 0xd7, 0x62, 0x17, 0x01, 0x6e, 0xdc, 0x9d, 0x51, 0xb8, 0x73, 0xec, - 0x5a, 0x1a, 0x00, 0xae, 0x2a, 0xe5, 0x50, 0x7a, 0x83, 0x7e, 0xff, 0xd8, 0x2d, 0x3a, 0x74, 0x98, - 0xa5, 0xdf, 0x9f, 0x04, 0x5d, 0xe2, 0x89, 0x50, 0x16, 0xed, 0x54, 0xcc, 0xe8, 0xf3, 0xb3, 0x92, - 0xc9, 0xd8, 0x70, 0x84, 0x7e, 0xa7, 0x45, 0x26, 0xcc, 0x5b, 0x57, 0xb2, 0xfb, 0xa5, 0x53, 0x94, - 0x2f, 0xb1, 0x70, 0xf8, 0x75, 0x1a, 0x24, 0xad, 0x00, 0x0c, 0xde, 0x2d, 0x1c, 0xf6, 0x98, 0xa9, - 0x44, 0x2f, 0x04, 0x09, 0x92, 0x9f, 0xe8, 0x8b, 0x7e, 0xaf, 0x24, 0xd6, 0xf1, 0xd8, 0x2f, 0x5d, - 0x0e, 0xee, 0x5e, 0xd0, 0xef, 0xc6, 0xc4, 0x3a, 0x9b, 0x4c, 0xe8, 0x16, 0xb7, 0xd3, 0xff, 0x86, - 0x25, 0x24, 0x9b, 0xeb, 0xd7, 0x91, 0x38, 0x95, 0x58, 0x34, 0xf4, 0xa5, 0x17, 0xb0, 0x36, 0xf6, - 0x36, 0x75, 0xe6, 0xd5, 0x14, 0xa8, 0x25, 0xa9, 0xf5, 0x18, 0x44, 0xe3, 0xa6, 0x21, 0xb5, 0xb7, - 0x87, 0x92, 0x59, 0xd8, 0x62, 0xbb, 0x15, 0x3f, 0xed, 0xc9, 0x4e, 0x25, 0x39, 0x80, 0x4a, 0x5a, - 0x1e, 0x80, 0xe9, 0x90, 0x48, 0x89, 0xb1, 0xff, 0xa3, 0x1b, 0x8a, 0x99, 0x28, 0x7a, 0x27, 0x02, - 0x9e, 0x7f, 0x7b, 0xd0, 0xfd, 0xce, 0xab, 0x84, 0x7c, 0x56, 0x24, 0xae, 0xd3, 0x3e, 0xe0, 0x6b, - 0x80, 0x6b, 0x3b, 0x82, 0x5f, 0x29, 0x2b, 0xe8, 0xfd, 0xe0, 0x1e, 0x16, 0xbc, 0xd5, 0x2b, 0x6e, - 0xd4, 0x32, 0x66, 0xd9, 0x45, 0xa0, 0xcc, 0x1b, 0x09, 0x1d, 0x11, 0xc2, 0xfe, 0x8b, 0x70, 0xe5, - 0x83, 0xc1, 0xaa, 0xa5, 0xf3, 0xcb, 0x1e, 0xdb, 0x1f, 0x5d, 0xe7, 0x1f, 0x4e, 0xbb, 0xc4, 0x3a, - 0x26, 0x22, 0xe8, 0xd0, 0x95, 0x0c, 0xe4, 0x75, 0xf9, 0xd6, 0x81, 0xfb, 0x55, 0x9a, 0x99, 0x2c, - 0x29, 0x7b, 0x36, 0xcf, 0xc5, 0xca, 0x51, 0x54, 0xaf, 0x03, 0xe9, 0xc4, 0xdd, 0x05, 0x31, 0xe4, - 0xf6, 0x8b, 0x9b, 0xd0, 0xb2, 0xd1, 0x0c, 0x54, 0xab, 0x4c, 0x83, 0xbc, 0x52, 0x8c, 0xf8, 0x0e, - 0xfb, 0x3e, 0xb5, 0x52, 0x9e, 0xe8, 0xa1, 0x58, 0xe7, 0x7e, 0xce, 0x5a, 0xb2, 0x14, 0xb2, 0xb3, - 0xc5, 0xb4, 0x54, 0x96, 0x65, 0xd5, 0x3b, 0x2e, 0xc2, 0x04, 0x85, 0xed, 0xa4, 0xb6, 0x77, 0x01, - 0x82, 0x7f, 0x7f, 0x56, 0xd6, 0x90, 0xad, 0x0b, 0x88, 0x06, 0xbb, 0x42, 0x6f, 0xf9, 0x31, 0xf2, - 0xbe, 0x7b, 0x0a, 0x59, 0x97, 0x5e, 0x60, 0x03, 0xb1, 0xce, 0xe8, 0x95, 0x31, 0x74, 0x45, 0xa1, - 0x52, 0x39, 0x90, 0xea, 0x42, 0xab, 0x05, 0x30, 0x47, 0x22, 0x83, 0x4e, 0x51, 0xc9, 0x6a, 0xb1, - 0xa3, 0x14, 0x50, 0xb4, 0x74, 0xc6, 0x50, 0xa1, 0xab, 0xab, 0x3a, 0x39, 0x82, 0x16, 0x7a, 0x8a, - 0x3a, 0xb1, 0x67, 0xae, 0x38, 0xf3, 0x62, 0x03, 0x15, 0xa4, 0x27, 0x6e, 0x44, 0xfe, 0xfc, 0xac, - 0x59, 0x6d, 0x68, 0xe7, 0x9e, 0x5c, 0x49, 0x37, 0x3c, 0xa6, 0xbf, 0xb0, 0xd3, 0x33, 0xfa, 0x03, - 0x46, 0x9e, 0x35, 0xc8, 0xad, 0x86, 0x74, 0x83, 0x6d, 0xeb, 0xfd, 0xff, 0x99, 0x23, 0x5c, 0x38, - 0x56, 0xed, 0xe8, 0x18, 0xde, 0x4f, 0x02, 0x97, 0xb3, 0x9b, 0xa5, 0xda, 0x7f, 0x4b, 0xc5, 0x7a, - 0x06, 0x2a, 0x15, 0xbe, 0x05, 0x14, 0x94, 0xee, 0x25, 0xc7, 0xb7, 0x1e, 0xb9, 0xde, 0xd1, 0x96, - 0xf2, 0x03, 0x95, 0xf9, 0xf8, 0xd3, 0xd6, 0xd5, 0x9d, 0xc1, 0x13, 0x3a, 0x0e, 0x1b, 0x47, 0xcb, - 0x77, 0x13, 0xd7, 0xf9, 0x86, 0xee, 0x01, 0xca, 0x79, 0x90, 0x17, 0xd1, 0x8f, 0xf4, 0xa6, 0x1b, - 0x1a, 0x57, 0xba, 0x55, 0xa3, 0x88, 0xf5, 0x59, 0xea, 0x5b, 0x69, 0xff, 0xdf, 0x6c, 0xb1, 0xa3, - 0x51, 0xaf, 0x52, 0x45, 0x79, 0xe1, 0xc7, 0x96, 0x4f, 0xf2, 0x1f, 0xfb, 0xea, 0x53, 0x1d, 0xc3, - 0xa0, 0x0f, 0xa1, 0xfa, 0x8c, 0x62, 0x27, 0xf7, 0x44, 0x40, 0x25, 0xe8, 0x33, 0xb8, 0x7f, 0x4a, - 0xc7, 0x1d, 0xf9, 0xe7, 0x9d, 0x4f, 0x9f, 0xda, 0x17, 0xa3, 0x4f, 0x9f, 0xc6, 0xc7, 0x9f, 0x3e, - 0x75, 0xf1, 0xd5, 0xfe, 0x66, 0xe4, 0x6d, 0x76, 0x1a, 0xa8, 0xc6, 0x11, 0xff, 0x92, 0xce, 0xf9, - 0xa7, 0x4f, 0xc5, 0xe6, 0xd3, 0x27, 0xf7, 0xa2, 0x0d, 0xd9, 0xfa, 0x27, 0xa4, 0xe9, 0x5c, 0xa0, - 0x58, 0xdc, 0x57, 0xc4, 0x33, 0x60, 0x7a, 0x23, 0x47, 0xfc, 0xfb, 0x6f, 0x8f, 0xbd, 0x17, 0xd4, - 0x7f, 0xf9, 0x18, 0xe6, 0x7d, 0x34, 0x7d, 0xb1, 0x24, 0x25, 0x3b, 0xbd, 0x72, 0xda, 0xff, 0x82, - 0x48, 0xab, 0xfd, 0xea, 0xc0, 0x69, 0xff, 0x1b, 0x3c, 0xb3, 0x5b, 0x0f, 0x1d, 0xc4, 0xdd, 0xb3, - 0x83, 0x6a, 0xdd, 0x1d, 0x01, 0x8e, 0xf3, 0x3b, 0xf6, 0xfe, 0x8f, 0xd1, 0xa6, 0xbf, 0xa4, 0x4d, - 0xe7, 0xa8, 0x70, 0xcf, 0xfb, 0x9d, 0x1f, 0x82, 0xce, 0xe4, 0x69, 0xe7, 0xc7, 0x8b, 0x35, 0x1c, - 0x72, 0x47, 0xc4, 0xfb, 0xb5, 0x27, 0x54, 0x5b, 0xec, 0x02, 0x75, 0xda, 0x29, 0xdc, 0xe0, 0xf2, - 0x7f, 0xe7, 0x21, 0x08, 0x1e, 0x7c, 0xae, 0x47, 0xd9, 0x29, 0x69, 0xe8, 0x14, 0x97, 0xff, 0x73, - 0x8f, 0xf0, 0x73, 0x3d, 0xca, 0x4e, 0xb3, 0xbd, 0x58, 0x8d, 0x45, 0x23, 0x4b, 0x4f, 0xf5, 0xcf, - 0xa6, 0x5a, 0x03, 0x93, 0x7e, 0xd1, 0xbf, 0xd8, 0x01, 0x57, 0xf7, 0xc1, 0xd5, 0x7d, 0xb1, 0xc0, - 0xbf, 0xc0, 0x1f, 0x6c, 0x45, 0x19, 0xdf, 0xd3, 0x2f, 0xdb, 0x14, 0x38, 0x1b, 0x42, 0xbf, 0x86, - 0x8d, 0xf6, 0xd7, 0x21, 0xbf, 0xf9, 0x05, 0xba, 0x17, 0x76, 0xd0, 0x6f, 0xc1, 0x31, 0x00, 0xae, - 0x1b, 0x6a, 0x81, 0xd2, 0xe6, 0xbe, 0x9a, 0x29, 0x9b, 0x46, 0x44, 0xcb, 0xfb, 0xdb, 0x8a, 0xe4, - 0xbe, 0xb6, 0xed, 0x70, 0x66, 0xc7, 0xaa, 0x58, 0x6f, 0x83, 0x5f, 0x72, 0x70, 0xf6, 0x4e, 0xe1, - 0xd1, 0xc1, 0x1d, 0x5c, 0x45, 0x89, 0x54, 0x84, 0xea, 0x3d, 0x8b, 0x05, 0x6c, 0x2a, 0x3f, 0x12, - 0xdf, 0x6f, 0x1f, 0xf6, 0x74, 0x5c, 0xa4, 0x3c, 0x4f, 0x47, 0x77, 0xe5, 0xaa, 0xa5, 0xaa, 0x2e, - 0x17, 0x30, 0x08, 0x62, 0xc1, 0xd1, 0x5e, 0xe7, 0x6a, 0xfb, 0xfb, 0x9d, 0x89, 0x01, 0xf7, 0x3b, - 0x57, 0x7b, 0xb6, 0x3a, 0xc3, 0xfb, 0xa6, 0xd7, 0x02, 0x14, 0x8a, 0xde, 0x85, 0x8a, 0x15, 0xcf, - 0x54, 0xd9, 0x77, 0x41, 0xae, 0x55, 0xb1, 0xb0, 0x7b, 0x3a, 0x39, 0xdf, 0x0f, 0xc4, 0xc3, 0xb4, - 0x7c, 0xb8, 0xd2, 0x37, 0x06, 0xcb, 0xc5, 0xec, 0x42, 0x76, 0x66, 0x65, 0xb7, 0xa2, 0x7c, 0x58, - 0x58, 0xfd, 0x79, 0x0e, 0xee, 0xcf, 0xa7, 0x4c, 0xf7, 0x8c, 0x48, 0xcc, 0x9d, 0x44, 0x85, 0xa8, - 0xf3, 0xee, 0x01, 0xb1, 0x29, 0xbf, 0xb5, 0xc2, 0x45, 0x35, 0x58, 0x2d, 0x1e, 0xeb, 0x77, 0xab, - 0xe9, 0x1f, 0x8a, 0x21, 0x6a, 0x2e, 0x77, 0x2a, 0x15, 0x5c, 0xa8, 0x7d, 0x42, 0x9e, 0xea, 0x77, - 0xba, 0xec, 0x59, 0x9b, 0xf2, 0x8c, 0x9e, 0x86, 0x9e, 0xab, 0x0b, 0x79, 0x10, 0x1b, 0x99, 0x06, - 0xe1, 0xea, 0x44, 0x1e, 0xdd, 0xc6, 0xcd, 0xf8, 0xea, 0xe8, 0xee, 0x04, 0x70, 0x8d, 0xd3, 0xc8, - 0xce, 0x85, 0x94, 0x11, 0x27, 0xd6, 0x3c, 0x53, 0x65, 0xfe, 0x6b, 0xc6, 0x68, 0xfd, 0x90, 0xbd, - 0x07, 0xb6, 0x1a, 0xfc, 0xdd, 0xee, 0xac, 0xf7, 0xb8, 0xcf, 0x1e, 0x2f, 0xfb, 0xa0, 0xec, 0xf1, - 0xb2, 0xf1, 0x87, 0xaf, 0xcb, 0x36, 0x02, 0x7e, 0x23, 0xfd, 0x2c, 0xc6, 0x83, 0x4d, 0x8c, 0x3a, - 0x74, 0x69, 0x2f, 0x85, 0x0d, 0xea, 0x64, 0x74, 0xc7, 0x82, 0x9f, 0xe2, 0xe3, 0x8c, 0x7c, 0x58, - 0x7e, 0xa6, 0xa2, 0x47, 0xe5, 0x50, 0xe6, 0xdf, 0x3c, 0x36, 0xe6, 0x00, 0x56, 0xfd, 0xe4, 0xbb, - 0xef, 0x8e, 0xcf, 0xe1, 0x16, 0x8b, 0x02, 0xff, 0x25, 0x22, 0xbd, 0x38, 0x0f, 0x2f, 0xc4, 0x54, - 0x57, 0xa3, 0x28, 0x4c, 0x13, 0x57, 0x5f, 0xe9, 0x6a, 0xd3, 0x93, 0x9a, 0xa8, 0x5a, 0x23, 0x17, - 0x14, 0xff, 0x90, 0xbd, 0x04, 0x19, 0x0f, 0x36, 0xc2, 0x3b, 0xc8, 0x7b, 0x18, 0xca, 0x3b, 0x98, - 0xf2, 0x13, 0x79, 0xeb, 0x57, 0xfc, 0x14, 0x1b, 0x0b, 0x19, 0x2c, 0x75, 0x06, 0x03, 0x4e, 0x5d, - 0x6d, 0x33, 0x4d, 0x4d, 0x20, 0xe3, 0x0e, 0x9d, 0x2d, 0xc6, 0x58, 0x3d, 0x25, 0x52, 0x63, 0x44, - 0xf1, 0x41, 0x2f, 0x2e, 0xf3, 0x35, 0xb1, 0x49, 0xd5, 0x14, 0x7e, 0x24, 0xfb, 0x76, 0xb2, 0x24, - 0x43, 0x85, 0x9b, 0xc2, 0xbe, 0xf7, 0x82, 0xb6, 0x9b, 0x3e, 0xc9, 0x47, 0x8f, 0xfd, 0xfe, 0x4e, - 0x36, 0x25, 0xa5, 0x0e, 0x39, 0x50, 0x86, 0x0e, 0x27, 0x76, 0x43, 0x4e, 0x0d, 0x19, 0xfc, 0x7c, - 0x34, 0x7c, 0x6b, 0xc2, 0x31, 0x28, 0xb2, 0xc7, 0xfd, 0xe3, 0x08, 0xba, 0x8c, 0x2c, 0x68, 0x08, - 0x7d, 0x46, 0xdf, 0xc9, 0xb6, 0x26, 0xe4, 0xcb, 0x22, 0x69, 0x24, 0xa4, 0xa6, 0x5f, 0x56, 0xd1, - 0x2f, 0x95, 0xee, 0x49, 0x27, 0x02, 0x39, 0x80, 0x07, 0x4a, 0x4b, 0x8c, 0x52, 0x9f, 0x62, 0x93, - 0x58, 0xe6, 0x4f, 0x06, 0x51, 0xe7, 0x07, 0xec, 0x2e, 0x3a, 0xce, 0x7a, 0xf9, 0xb0, 0x9a, 0x17, - 0xf0, 0xcd, 0xb4, 0xb1, 0x48, 0xfc, 0xef, 0x60, 0xbf, 0xcb, 0x59, 0x93, 0x7b, 0xb0, 0x2e, 0x4f, - 0x8e, 0x55, 0x37, 0xd1, 0xdc, 0x73, 0xec, 0x46, 0x98, 0xa4, 0xdf, 0x1f, 0x45, 0xfe, 0x49, 0xbf, - 0x8f, 0x89, 0xcd, 0x22, 0xa2, 0x76, 0x56, 0xce, 0x77, 0x82, 0xf9, 0x28, 0x23, 0xe1, 0x35, 0xcd, - 0x99, 0x62, 0xab, 0xdc, 0xd8, 0x3b, 0xd9, 0x92, 0xb6, 0xa6, 0xcd, 0x52, 0x0e, 0xcd, 0x66, 0x70, - 0xbe, 0xcb, 0x2c, 0x2d, 0xbd, 0xbf, 0x0f, 0x08, 0xeb, 0x00, 0x18, 0x60, 0xa0, 0x06, 0xd1, 0xac, - 0x4f, 0x6d, 0x18, 0x74, 0x9c, 0x7b, 0x28, 0x84, 0x51, 0x95, 0x61, 0xad, 0x8c, 0x4e, 0xe9, 0x08, - 0x59, 0x57, 0xff, 0xcc, 0x1d, 0x19, 0xbe, 0xc0, 0x42, 0x97, 0x5b, 0xf4, 0x2d, 0x9b, 0xa1, 0x6d, - 0x9a, 0x94, 0x70, 0xb3, 0xee, 0x6c, 0xb3, 0xc9, 0xba, 0x05, 0x7d, 0x2c, 0xe8, 0x23, 0xf0, 0xca, - 0xec, 0x73, 0x09, 0x5b, 0x47, 0xe7, 0x59, 0x79, 0x3d, 0xdc, 0x1e, 0xcf, 0x5b, 0x01, 0xeb, 0x37, - 0x63, 0xc3, 0x92, 0x6f, 0xd7, 0x1a, 0x46, 0xde, 0x66, 0x99, 0xd7, 0x99, 0xea, 0x38, 0xb6, 0x96, - 0x47, 0xcb, 0xf9, 0x43, 0xc7, 0xa9, 0x5d, 0x86, 0xf0, 0x5e, 0xd9, 0xe5, 0xd4, 0xdb, 0x56, 0xf3, - 0xef, 0xa3, 0xb2, 0xd2, 0xaa, 0x07, 0xc8, 0xb3, 0x64, 0x95, 0x52, 0xe9, 0xeb, 0xc0, 0xb7, 0x2e, - 0x5a, 0x04, 0xa3, 0x01, 0x48, 0x14, 0x6c, 0x3d, 0x43, 0xa3, 0xe4, 0xf3, 0x1b, 0x03, 0xbf, 0x1f, - 0x6e, 0x6c, 0xa6, 0x99, 0x8e, 0x37, 0x96, 0xd4, 0x5c, 0xb0, 0xbb, 0xb1, 0x62, 0x6f, 0x63, 0x49, - 0xd3, 0xc6, 0x68, 0xfe, 0xbf, 0xb5, 0xb1, 0x52, 0x1c, 0xbe, 0xb4, 0xb1, 0xca, 0x56, 0x7e, 0x86, - 0x8b, 0xd1, 0xc7, 0x2c, 0x9e, 0x3c, 0x3e, 0xb8, 0x8a, 0x18, 0x46, 0xc1, 0x24, 0x3d, 0x4c, 0xcb, - 0x87, 0x2b, 0x8e, 0xfa, 0x76, 0x41, 0x36, 0x72, 0x75, 0x79, 0x3d, 0x5f, 0x0e, 0x88, 0xa7, 0xdd, - 0x48, 0xfe, 0xb7, 0x1b, 0x2d, 0xa3, 0x90, 0x0c, 0xf2, 0xc8, 0xcd, 0xe4, 0x9f, 0x2e, 0xfd, 0x6e, - 0x45, 0x40, 0x1f, 0x92, 0xe7, 0x4e, 0xa5, 0x13, 0x53, 0xca, 0xb9, 0xf4, 0x48, 0x97, 0x3c, 0x88, - 0xa1, 0x54, 0xaa, 0x1a, 0x7a, 0x74, 0xf4, 0xf5, 0x63, 0x31, 0x37, 0x95, 0xbe, 0xbd, 0x10, 0xf4, - 0xb3, 0xc1, 0x56, 0x74, 0xbf, 0x15, 0xc5, 0x56, 0x1e, 0x18, 0x9f, 0xc6, 0x18, 0x51, 0x32, 0xe7, - 0xe0, 0xcd, 0x0c, 0xfc, 0x98, 0x82, 0x07, 0x73, 0xb8, 0x71, 0xb1, 0x21, 0x51, 0xe9, 0xa2, 0x7c, - 0x1d, 0x26, 0x11, 0x30, 0x23, 0x90, 0xe8, 0xe6, 0x1e, 0x7f, 0x4d, 0xf5, 0xd7, 0x95, 0xb7, 0x07, - 0xea, 0xf3, 0x18, 0xc4, 0x66, 0x0c, 0x0e, 0x0b, 0xb5, 0x83, 0xc4, 0xc1, 0xff, 0x1d, 0xff, 0xc6, - 0xb8, 0x20, 0x3c, 0x98, 0xc2, 0xc9, 0x05, 0xa1, 0xc1, 0x14, 0x1e, 0x5d, 0x68, 0x0c, 0x06, 0x7f, - 0x7f, 0x1c, 0x51, 0x4e, 0x17, 0xbe, 0x35, 0x40, 0x92, 0x5d, 0x20, 0x35, 0x84, 0x7a, 0xb8, 0x3d, - 0x67, 0xb8, 0x47, 0xb5, 0xcf, 0xf4, 0xc7, 0x5c, 0xe5, 0x44, 0x9f, 0xa5, 0x13, 0x10, 0xf6, 0x15, - 0x74, 0x22, 0x23, 0x5b, 0x89, 0xd3, 0x17, 0x69, 0x85, 0x3e, 0x25, 0xad, 0x74, 0x4e, 0x05, 0xc3, - 0x4a, 0x66, 0x2f, 0xda, 0xce, 0x37, 0xfa, 0x29, 0xc1, 0x93, 0xe1, 0xfb, 0x1a, 0xe8, 0xd7, 0xf1, - 0x7d, 0xa4, 0x9a, 0x18, 0x9f, 0x52, 0x81, 0x35, 0xf3, 0xc2, 0xe6, 0x58, 0xcc, 0x4b, 0x25, 0x46, - 0x61, 0xd6, 0xcc, 0xf8, 0x5f, 0x1a, 0xfb, 0xf5, 0x8c, 0x8f, 0xbd, 0xec, 0x21, 0x94, 0xbc, 0xc7, - 0x35, 0xa5, 0xed, 0x0a, 0x20, 0x34, 0xa9, 0x18, 0xdf, 0xe8, 0x1e, 0xfd, 0xfb, 0x69, 0x4a, 0x27, - 0xd3, 0xdf, 0x1f, 0x89, 0x0a, 0xd7, 0xf6, 0x01, 0x81, 0x1c, 0x9d, 0x4c, 0xf8, 0xff, 0xe6, 0x9e, - 0xb5, 0xb9, 0x6d, 0x23, 0xc9, 0xcf, 0xde, 0xaa, 0xfd, 0x0f, 0x10, 0x92, 0x33, 0x01, 0x0b, 0x84, - 0x48, 0x39, 0xf6, 0x65, 0x41, 0x51, 0x2a, 0xc7, 0x49, 0x2a, 0xde, 0x4b, 0x1c, 0x57, 0x64, 0xef, - 0x6e, 0x4a, 0xab, 0xb2, 0x29, 0x12, 0x94, 0xb0, 0xa1, 0x00, 0x2e, 0x00, 0x4a, 0xd4, 0x2a, 0xfc, - 0xef, 0xd7, 0x8f, 0x99, 0x41, 0x0f, 0x1e, 0x14, 0x95, 0xcd, 0x5e, 0x5d, 0xc5, 0x11, 0xc9, 0x79, - 0xf6, 0xf4, 0xf4, 0xf4, 0xf4, 0x6b, 0x66, 0x96, 0xe5, 0xff, 0x3f, 0xfb, 0x2f, 0x1b, 0x59, 0xb5, - 0xfd, 0xb0, 0x55, 0x66, 0xa9, 0x4c, 0xa7, 0x74, 0x82, 0xd5, 0xb8, 0xc6, 0xf8, 0xf2, 0xab, 0xf7, - 0xc6, 0x41, 0xe6, 0xa2, 0x91, 0x2f, 0x82, 0x32, 0x95, 0xb1, 0xd1, 0x0d, 0xf8, 0x92, 0x63, 0xf7, - 0xb3, 0x39, 0x5a, 0xf6, 0x85, 0x69, 0xf1, 0x65, 0xf8, 0xf2, 0xe5, 0x4b, 0x91, 0x3d, 0xb7, 0xb2, - 0x9f, 0x3f, 0x0f, 0x9f, 0x3f, 0x7f, 0x5e, 0x65, 0x0f, 0xec, 0xec, 0x17, 0x03, 0x99, 0x35, 0x97, - 0x59, 0x2f, 0x6b, 0x0d, 0x0f, 0x06, 0x56, 0xf6, 0x97, 0xb5, 0x86, 0xe7, 0x76, 0xf6, 0x70, 0x50, - 0x07, 0xf9, 0x5c, 0xc8, 0x82, 0xae, 0x30, 0x07, 0x46, 0x24, 0x58, 0x58, 0xfb, 0x1f, 0x90, 0x47, - 0x4c, 0x02, 0x0e, 0x2a, 0xb8, 0x31, 0x88, 0x37, 0x48, 0x7e, 0xad, 0x05, 0x50, 0xe8, 0x52, 0x45, - 0x46, 0xed, 0xf8, 0xe2, 0x25, 0x97, 0xea, 0x25, 0x97, 0x9a, 0x25, 0x97, 0x9a, 0x25, 0xd7, 0x0a, - 0x34, 0xd7, 0xcb, 0x75, 0xbd, 0xdc, 0xd4, 0xcb, 0x75, 0x3d, 0x6b, 0x40, 0xac, 0x20, 0x45, 0xca, - 0x1d, 0x12, 0xb1, 0x83, 0xac, 0x15, 0xe4, 0x98, 0x84, 0x36, 0xb2, 0x37, 0x76, 0x80, 0xcc, 0xce, - 0x9b, 0x6d, 0x60, 0x25, 0x1a, 0xac, 0xc4, 0x80, 0x95, 0x18, 0xb0, 0x36, 0x95, 0xb5, 0x17, 0x6f, - 0xe2, 0x9e, 0xe4, 0x5d, 0x36, 0xed, 0x6c, 0x8b, 0x9d, 0xd8, 0x36, 0x60, 0x97, 0x21, 0x7f, 0x81, - 0x1e, 0x6a, 0x66, 0x6c, 0x45, 0xd4, 0x9b, 0xa6, 0xfd, 0xb1, 0xdb, 0xe9, 0xa0, 0xbc, 0x0d, 0x24, - 0xd2, 0x10, 0xe5, 0x7f, 0x47, 0x06, 0xfc, 0x07, 0xdd, 0x0f, 0x80, 0xae, 0xec, 0xd7, 0x5f, 0x51, - 0x08, 0x57, 0x96, 0xc8, 0xfd, 0xc3, 0x67, 0x39, 0xfc, 0x9f, 0xb2, 0xe0, 0xca, 0x4f, 0xfd, 0xc4, - 0x23, 0x75, 0x62, 0x63, 0xec, 0x29, 0x85, 0x9f, 0x1e, 0xfd, 0x41, 0x41, 0x1b, 0x74, 0x9e, 0xb8, - 0x7f, 0xf8, 0x8c, 0x23, 0x2a, 0xcd, 0x5a, 0x7c, 0x68, 0x19, 0x26, 0xe3, 0x05, 0x68, 0x8d, 0xe3, - 0xe7, 0xe1, 0xcb, 0x2e, 0x02, 0xc6, 0x12, 0xc5, 0x16, 0x62, 0xc0, 0xfc, 0x9b, 0xcd, 0x36, 0x87, - 0x06, 0xf7, 0xac, 0x3d, 0x1a, 0x71, 0xc3, 0xa3, 0xc1, 0x37, 0xa6, 0xbf, 0xcf, 0x96, 0x91, 0x86, - 0xf2, 0x07, 0x4a, 0x09, 0x7e, 0x83, 0xab, 0x83, 0x77, 0x35, 0x8b, 0x59, 0x21, 0xfb, 0x27, 0x17, - 0x08, 0x9a, 0x57, 0xda, 0x20, 0xfb, 0xc8, 0xc2, 0xa8, 0x1b, 0xe4, 0xeb, 0xa8, 0x08, 0xf2, 0x3b, - 0xf8, 0xb3, 0x8e, 0x52, 0xc0, 0xe8, 0x1d, 0xfd, 0x55, 0x60, 0x83, 0xba, 0xa5, 0x01, 0x87, 0xaf, - 0x75, 0xab, 0x77, 0xbb, 0x6d, 0xfc, 0x61, 0xeb, 0xff, 0xa3, 0x4d, 0xe5, 0xc5, 0x7e, 0x42, 0xf6, - 0xd8, 0x09, 0x40, 0x97, 0x81, 0x7a, 0x55, 0x27, 0x4c, 0xd8, 0xa9, 0xe9, 0x84, 0x0b, 0x85, 0xa0, - 0xe2, 0xa3, 0x14, 0xed, 0x06, 0x0b, 0x6d, 0x1c, 0x57, 0x41, 0x0e, 0x34, 0x8c, 0xbe, 0x20, 0xa9, - 0x51, 0xd9, 0x1f, 0xa7, 0xfb, 0x22, 0xe1, 0xe0, 0x90, 0x49, 0xaf, 0x52, 0xbe, 0x8d, 0xce, 0x5d, - 0xa2, 0xc6, 0x3d, 0x30, 0x16, 0xe3, 0x9a, 0x35, 0x3a, 0x7f, 0x96, 0x3c, 0xde, 0x76, 0x4f, 0x77, - 0x7f, 0x50, 0xef, 0x8d, 0xf1, 0xa8, 0x61, 0x18, 0xc2, 0xae, 0xdc, 0x88, 0x5d, 0x14, 0xee, 0x5e, - 0xb9, 0x41, 0xf1, 0x6c, 0x3b, 0x8d, 0xbb, 0x85, 0xbb, 0x95, 0xc6, 0xdd, 0x1b, 0x77, 0x23, 0xba, - 0xaa, 0x4c, 0xf0, 0x9e, 0x97, 0x93, 0x5d, 0x27, 0x39, 0x1f, 0x17, 0x18, 0x16, 0xad, 0xcd, 0xee, - 0x74, 0x96, 0xac, 0x23, 0xfe, 0x27, 0xe9, 0x8a, 0xff, 0x89, 0xaf, 0x93, 0xf2, 0xbb, 0x2c, 0xfb, - 0x05, 0x25, 0x8c, 0xa4, 0x8c, 0x2e, 0x28, 0x5a, 0xd5, 0xd5, 0xaa, 0x2b, 0x3f, 0x47, 0x3a, 0x36, - 0xc1, 0x6a, 0x00, 0x5d, 0x9c, 0xe7, 0x31, 0x87, 0x96, 0x89, 0x74, 0x5a, 0xfc, 0x1c, 0x25, 0xf5, - 0x8a, 0x1e, 0x2f, 0xaf, 0x0c, 0xac, 0x22, 0xeb, 0x34, 0x9f, 0x8e, 0xab, 0x25, 0x43, 0x19, 0x63, - 0x6d, 0x6d, 0xe2, 0x9f, 0xaa, 0x5f, 0xd3, 0x0d, 0x00, 0xe7, 0xb9, 0xcc, 0xa9, 0x11, 0x3c, 0x57, - 0xd4, 0x44, 0x4f, 0x04, 0x74, 0x52, 0xe0, 0x9f, 0x1b, 0xfc, 0x33, 0x11, 0xa1, 0x2d, 0xcc, 0x8c, - 0x2a, 0x73, 0x2f, 0xaf, 0x01, 0x02, 0x82, 0x96, 0x09, 0xdf, 0xa7, 0x41, 0x26, 0x2e, 0x19, 0x5a, - 0xd6, 0x34, 0xa5, 0xc1, 0xe2, 0xa5, 0xde, 0xab, 0x56, 0x37, 0xed, 0x88, 0xa3, 0x06, 0x10, 0x6f, - 0x21, 0xf0, 0x8a, 0x6c, 0x55, 0x9e, 0x50, 0x21, 0xfe, 0x3e, 0xd6, 0x89, 0x91, 0x4c, 0x3c, 0xbb, - 0x37, 0xc1, 0x49, 0xd1, 0xbf, 0x02, 0xbe, 0xd3, 0xb6, 0x88, 0xee, 0x81, 0xbf, 0x88, 0x8c, 0x65, - 0x29, 0x73, 0xce, 0x5b, 0xbb, 0xa6, 0x97, 0x35, 0x5c, 0x2b, 0x34, 0x2b, 0xa9, 0x87, 0x66, 0x25, - 0xbf, 0x2d, 0x34, 0x2b, 0x91, 0x02, 0x59, 0x96, 0x76, 0xfa, 0xe0, 0x71, 0xab, 0x11, 0x04, 0x33, - 0xf2, 0x38, 0x16, 0x21, 0x29, 0xe8, 0x13, 0x68, 0xef, 0xa4, 0x8c, 0xce, 0xca, 0x73, 0x3f, 0x04, - 0xea, 0xfa, 0x66, 0x02, 0x6b, 0x48, 0xee, 0x62, 0x99, 0x18, 0x10, 0xd5, 0x8f, 0xd0, 0xa9, 0x89, - 0x3d, 0x04, 0x5e, 0x0a, 0xb5, 0x7e, 0xfd, 0x95, 0x3e, 0x40, 0xc2, 0x03, 0xe8, 0x74, 0x80, 0x5e, - 0x56, 0x27, 0x46, 0x28, 0x81, 0x12, 0x77, 0x4b, 0x72, 0x6b, 0xa7, 0xb1, 0x0c, 0x94, 0x28, 0x61, - 0xb7, 0x6d, 0x6d, 0x11, 0xfb, 0x44, 0x7d, 0x3c, 0x91, 0x68, 0x98, 0xcf, 0x25, 0x1e, 0x0c, 0x7b, - 0x43, 0x04, 0x3c, 0x6e, 0xe0, 0xbc, 0x7d, 0xa7, 0x1a, 0x6b, 0x50, 0x6e, 0x94, 0x36, 0x71, 0x81, - 0x5e, 0x6d, 0xec, 0x26, 0xa0, 0x99, 0x52, 0xc7, 0x63, 0x62, 0xe3, 0x49, 0x83, 0x8c, 0x61, 0x03, - 0x46, 0x6c, 0xc4, 0x96, 0xe8, 0x95, 0xc1, 0x29, 0x26, 0x49, 0x19, 0xa6, 0xab, 0x7e, 0xa3, 0x51, - 0x7f, 0x38, 0x1a, 0x1c, 0xa5, 0x78, 0x74, 0x87, 0x8c, 0x51, 0x26, 0xfb, 0x2c, 0xdd, 0x1f, 0x9e, - 0x8f, 0x3c, 0x5e, 0x42, 0xbe, 0x81, 0x4e, 0x61, 0x2f, 0x0e, 0x10, 0xbf, 0x40, 0x31, 0xd3, 0x49, - 0x09, 0x90, 0xc8, 0xa0, 0x51, 0x49, 0x0f, 0x34, 0x89, 0xd0, 0x6d, 0x32, 0x1e, 0x8c, 0x92, 0xa3, - 0xdc, 0x5c, 0x57, 0xb4, 0xbf, 0xef, 0xe7, 0xc0, 0xc6, 0xe4, 0x54, 0x64, 0xb5, 0x91, 0x48, 0x56, - 0xf0, 0x7b, 0x8e, 0x48, 0x02, 0x69, 0x4f, 0xbb, 0x3d, 0xd8, 0x8e, 0x81, 0x06, 0x5e, 0xce, 0x94, - 0x99, 0xdb, 0x94, 0x59, 0x07, 0x3f, 0x8f, 0xf1, 0xd5, 0x95, 0xa6, 0x75, 0x48, 0x87, 0xc4, 0x7a, - 0xf7, 0xbc, 0xd7, 0x97, 0xf5, 0x19, 0xa4, 0xab, 0xed, 0xa4, 0x02, 0x2c, 0xf8, 0x1a, 0xf9, 0xa4, - 0xaa, 0x9d, 0x81, 0x39, 0x27, 0x56, 0x07, 0x29, 0x0e, 0x27, 0xa7, 0x75, 0x99, 0x42, 0xe3, 0x8b, - 0x15, 0x6c, 0xe8, 0x58, 0x00, 0xc6, 0x98, 0x31, 0xf8, 0x59, 0x7d, 0x61, 0x35, 0xe9, 0xa8, 0xd6, - 0xa2, 0xc0, 0x3c, 0xe2, 0x3d, 0x6b, 0xc7, 0x7b, 0x86, 0x78, 0xc7, 0xbb, 0x93, 0x04, 0xde, 0x33, - 0xc4, 0xbb, 0xb1, 0x7c, 0xda, 0x00, 0x69, 0x0a, 0xe1, 0x60, 0xe3, 0x54, 0x06, 0x1b, 0xa7, 0x78, - 0x40, 0x4c, 0xa8, 0xa0, 0x75, 0x18, 0xb3, 0xb4, 0x16, 0x27, 0xaa, 0x71, 0x1c, 0x2f, 0x74, 0xf8, - 0xb5, 0xbd, 0x9f, 0x50, 0x10, 0xa8, 0xab, 0x03, 0x3d, 0x65, 0x53, 0x62, 0x87, 0xa8, 0xe1, 0xb0, - 0xc6, 0x77, 0x79, 0x53, 0xb8, 0x10, 0x47, 0x3b, 0x14, 0xc3, 0xaa, 0x4d, 0xae, 0xda, 0x3c, 0x9a, - 0x7b, 0x06, 0x67, 0x10, 0xe7, 0x6e, 0xd6, 0x6f, 0x6e, 0xa7, 0x3a, 0x38, 0xba, 0x6d, 0xa3, 0x1d, - 0x04, 0x2e, 0x5d, 0x54, 0xe8, 0xaa, 0x00, 0xa7, 0xda, 0x8e, 0xab, 0x2c, 0xc5, 0x31, 0x0d, 0x5d, - 0x3f, 0xe9, 0x44, 0xf7, 0x48, 0x8b, 0x1e, 0x63, 0xb1, 0xd1, 0x36, 0x73, 0x5b, 0xb7, 0xf7, 0x1a, - 0xea, 0xba, 0x24, 0x2c, 0xff, 0x5e, 0x05, 0x95, 0x8e, 0xe9, 0x20, 0x6d, 0x03, 0x16, 0x15, 0xd1, - 0x5c, 0x51, 0xb7, 0xaf, 0x22, 0x4a, 0x3b, 0xca, 0x73, 0xc8, 0xb3, 0x2c, 0xde, 0x2a, 0x66, 0x28, - 0x94, 0x48, 0x69, 0x00, 0x0d, 0xb2, 0x31, 0xc7, 0x9e, 0x76, 0xb4, 0xcd, 0x01, 0xd4, 0x0f, 0x35, - 0x8d, 0x6c, 0xaa, 0xbe, 0x56, 0x6b, 0x9a, 0x99, 0xb8, 0xb8, 0x02, 0x37, 0x85, 0x4a, 0x53, 0x99, - 0x25, 0x37, 0x35, 0x7d, 0x80, 0x1a, 0x7f, 0xc7, 0x0f, 0x42, 0x68, 0xed, 0x44, 0x6b, 0x1c, 0x69, - 0xa8, 0xbe, 0x29, 0x85, 0x20, 0x65, 0xa1, 0x79, 0xa3, 0xa4, 0x2e, 0x96, 0x23, 0x1a, 0x3a, 0x67, - 0x65, 0x1c, 0xd1, 0x27, 0xcf, 0x50, 0x31, 0x54, 0x52, 0x44, 0x05, 0x4b, 0xdc, 0x0c, 0xaa, 0x04, - 0xf5, 0x07, 0x34, 0x54, 0x96, 0x33, 0x6b, 0xb1, 0xfa, 0xfa, 0x3a, 0x15, 0x2b, 0x9a, 0xb7, 0xa4, - 0xb5, 0xc8, 0xc7, 0x5c, 0xa2, 0x1c, 0xf5, 0x02, 0x14, 0x46, 0x13, 0x0e, 0xd6, 0x2d, 0xe5, 0xf2, - 0xa6, 0x13, 0xfd, 0x65, 0x2d, 0xb8, 0x91, 0x07, 0xf5, 0x7c, 0x30, 0xd0, 0x5a, 0x0e, 0x7d, 0x15, - 0xfa, 0x69, 0xf4, 0x65, 0x60, 0xb4, 0x13, 0x0e, 0x7d, 0x94, 0x9a, 0x49, 0x15, 0x00, 0x29, 0x6c, - 0x35, 0xb0, 0x57, 0x0a, 0x6d, 0xc8, 0x4e, 0x22, 0x25, 0x18, 0xaa, 0xd4, 0x14, 0xba, 0xc0, 0x0e, - 0x86, 0x8a, 0x60, 0x41, 0x55, 0xb1, 0x84, 0x91, 0xfa, 0x61, 0x42, 0x05, 0x23, 0x77, 0x92, 0x96, - 0x49, 0x15, 0x56, 0x18, 0x48, 0x8d, 0x9b, 0x81, 0x94, 0x0a, 0x65, 0x34, 0x3c, 0x0c, 0xf4, 0xcb, - 0x50, 0x2f, 0x03, 0x25, 0x05, 0x12, 0x05, 0xd1, 0x0e, 0x34, 0x2b, 0x83, 0x9b, 0x32, 0xb8, 0x2c, - 0x83, 0x8f, 0x65, 0x70, 0x5d, 0x8e, 0x3d, 0xef, 0x46, 0xca, 0xef, 0x41, 0x69, 0xdd, 0x4d, 0xc8, - 0xb2, 0x73, 0x51, 0xbf, 0xc3, 0x45, 0x5f, 0x93, 0x41, 0xc4, 0x55, 0x05, 0xd1, 0x8c, 0x97, 0x1e, - 0xb4, 0xde, 0x0c, 0x9c, 0xc5, 0x90, 0xd9, 0x16, 0x13, 0x45, 0x42, 0x1e, 0x68, 0xd4, 0x5b, 0x5f, - 0x79, 0x44, 0x07, 0x9b, 0x00, 0xa5, 0x6b, 0x3a, 0xe3, 0x95, 0x37, 0x0d, 0xb1, 0xb1, 0xf4, 0xc2, - 0x2b, 0x08, 0x4e, 0xe2, 0xea, 0x06, 0x8f, 0x7f, 0xae, 0xe2, 0xfc, 0xee, 0x94, 0x9e, 0x65, 0x20, - 0xf7, 0xef, 0xc8, 0x3e, 0x31, 0xcf, 0xc7, 0xc4, 0xf0, 0xe4, 0x99, 0xe2, 0xde, 0x14, 0x63, 0xe1, - 0x2e, 0xf8, 0x2e, 0x75, 0xbc, 0x6e, 0xc4, 0xb4, 0x04, 0x63, 0x9c, 0xdd, 0x11, 0x3b, 0x3d, 0xc9, - 0x3d, 0xdf, 0x8a, 0x70, 0x77, 0xbf, 0xfe, 0xf1, 0x87, 0xd7, 0x7c, 0x1d, 0x3a, 0xde, 0x73, 0x1e, - 0xcf, 0xdc, 0x73, 0xd4, 0x0b, 0x93, 0x8d, 0x90, 0x5a, 0xc7, 0x80, 0x85, 0xf1, 0x5c, 0x1e, 0x31, - 0xa8, 0xe1, 0x04, 0xf0, 0x3f, 0x03, 0x65, 0xe8, 0x06, 0x4f, 0x33, 0x54, 0x07, 0xb2, 0x68, 0x62, - 0x0c, 0x32, 0x3f, 0x96, 0xb8, 0xd5, 0x79, 0x97, 0xe5, 0xf8, 0x9e, 0xe9, 0xea, 0xaa, 0x0c, 0x5e, - 0x57, 0x0b, 0x37, 0xba, 0x2e, 0x83, 0x55, 0x12, 0x81, 0x42, 0xb2, 0x0c, 0xcc, 0x71, 0xaf, 0xa8, - 0x0c, 0xbe, 0x23, 0x6a, 0x8d, 0x3e, 0x0f, 0x4e, 0x89, 0x22, 0x50, 0x98, 0xff, 0x2b, 0x12, 0x53, - 0xf4, 0x2f, 0x34, 0x4b, 0x27, 0x8b, 0xe8, 0x5e, 0xdd, 0xe4, 0xf7, 0x01, 0x34, 0xf1, 0xbf, 0x04, - 0x3c, 0x9d, 0xaf, 0xf2, 0xe9, 0x3b, 0x50, 0x67, 0xa3, 0x6f, 0x03, 0x0a, 0x73, 0xfa, 0x80, 0x12, - 0xfe, 0x3f, 0xf9, 0xfb, 0x77, 0xf1, 0xfa, 0x0d, 0x34, 0xfc, 0xb7, 0x00, 0x74, 0xd2, 0xf7, 0x19, - 0xfc, 0x8a, 0x7e, 0xde, 0x04, 0x37, 0x71, 0x5e, 0x10, 0x5d, 0xd2, 0x2d, 0xa0, 0xa0, 0xe0, 0x63, - 0x08, 0x7c, 0x5d, 0x02, 0x30, 0x57, 0xd3, 0xd1, 0x1d, 0x71, 0xa0, 0x3c, 0x06, 0xfd, 0xe1, 0xd1, - 0xc7, 0x2a, 0x1c, 0xab, 0xf4, 0x71, 0x87, 0x81, 0x01, 0x22, 0xcf, 0x87, 0x74, 0x75, 0x88, 0x05, - 0xe6, 0xe4, 0x92, 0xae, 0x30, 0x28, 0x41, 0x6f, 0x8c, 0x67, 0xef, 0x68, 0x41, 0x17, 0xe3, 0x8f, - 0x48, 0xb2, 0x1b, 0x7c, 0xbc, 0x4d, 0xdf, 0x44, 0xfa, 0x13, 0x6e, 0x19, 0x74, 0xc4, 0xc1, 0xb9, - 0xd1, 0xb7, 0x8a, 0xe2, 0x65, 0x2f, 0x45, 0x74, 0x70, 0x20, 0x6e, 0x17, 0x2d, 0x26, 0x80, 0x9c, - 0xb2, 0x2c, 0x0e, 0xe8, 0x21, 0x03, 0x3a, 0x23, 0xd1, 0xb8, 0x63, 0x94, 0xa8, 0xfe, 0xf7, 0xb8, - 0x63, 0xb4, 0x7c, 0xec, 0x1d, 0xa3, 0x6e, 0x35, 0x0a, 0xd8, 0x06, 0xfc, 0x28, 0x0e, 0xab, 0x04, - 0x6c, 0xed, 0x81, 0x7b, 0x47, 0x85, 0xd1, 0x9c, 0xc6, 0x50, 0x49, 0x3a, 0x83, 0x51, 0x7a, 0x54, - 0x6a, 0x91, 0x26, 0xd5, 0x37, 0x93, 0xe4, 0xe4, 0xf1, 0x1d, 0xe5, 0x61, 0x9c, 0x02, 0x3d, 0x53, - 0x3c, 0xcf, 0x58, 0xfe, 0xc0, 0xdb, 0xcb, 0x02, 0xba, 0x85, 0xc8, 0xc4, 0xfb, 0xd0, 0x66, 0xcf, - 0x86, 0x82, 0x84, 0xee, 0xb6, 0xf2, 0xf2, 0xf0, 0x36, 0x4f, 0x4a, 0x95, 0xe7, 0xb7, 0x1a, 0xfd, - 0x51, 0x78, 0xcd, 0xe9, 0xb4, 0x3a, 0x08, 0x89, 0x1b, 0x5e, 0xbe, 0xf7, 0xc0, 0x92, 0x5e, 0x9f, - 0x9e, 0x46, 0x74, 0x76, 0x6d, 0x75, 0x7d, 0xc1, 0xac, 0x71, 0xf8, 0x22, 0xb8, 0xc5, 0x9b, 0xda, - 0x30, 0xac, 0x68, 0xc4, 0xa0, 0x4b, 0x63, 0x82, 0x8e, 0x0f, 0xe1, 0xe3, 0x76, 0x27, 0xb1, 0xd4, - 0x14, 0x99, 0xa7, 0x49, 0x4e, 0x41, 0x38, 0x50, 0x77, 0xd4, 0xec, 0xa1, 0x96, 0x59, 0xf2, 0x2d, - 0x71, 0x86, 0x6b, 0x50, 0x54, 0x55, 0x57, 0x07, 0x40, 0xaa, 0x78, 0x6d, 0x6b, 0x5b, 0x2e, 0x7c, - 0x07, 0x4a, 0xe6, 0x91, 0x6e, 0x60, 0x6f, 0xeb, 0x2e, 0xc3, 0x4e, 0x9f, 0x4d, 0x30, 0x69, 0x2b, - 0x63, 0x2b, 0x6a, 0xb8, 0x91, 0x4d, 0xdb, 0x8a, 0xe1, 0x65, 0x79, 0x78, 0x78, 0x14, 0x4f, 0xb9, - 0x41, 0x99, 0xc5, 0x98, 0xee, 0xfc, 0xfc, 0x31, 0xff, 0xa0, 0xc9, 0x30, 0x5a, 0x05, 0x4c, 0xac, - 0x51, 0x12, 0xf0, 0x4d, 0x28, 0x51, 0x37, 0x44, 0x6f, 0xa9, 0xc0, 0xd3, 0xa7, 0x7b, 0xfc, 0x05, - 0xba, 0x7f, 0x3b, 0x79, 0x4b, 0x9d, 0xb3, 0x4f, 0x27, 0xca, 0x02, 0x75, 0x8f, 0xd8, 0x96, 0x46, - 0xbe, 0xe2, 0x12, 0x1b, 0x43, 0x89, 0x5b, 0xca, 0x7e, 0xab, 0x72, 0x00, 0x09, 0x38, 0xce, 0x68, - 0x12, 0xa4, 0x6a, 0x30, 0xd1, 0x34, 0x88, 0x99, 0x6f, 0xb7, 0x55, 0xc7, 0x61, 0x2b, 0xb6, 0x8e, - 0xf6, 0xa5, 0x9b, 0x6d, 0xc5, 0x6e, 0x54, 0xa1, 0xeb, 0x65, 0x79, 0xd7, 0x56, 0x68, 0x05, 0xdf, - 0x51, 0xd5, 0xa0, 0x8f, 0x09, 0xfd, 0x9d, 0xe2, 0x29, 0x4b, 0x40, 0x43, 0x6c, 0x2e, 0x0d, 0x4a, - 0x3c, 0x3c, 0x05, 0xbc, 0xa7, 0x08, 0x18, 0xa8, 0xb5, 0x80, 0x04, 0x95, 0xbb, 0xd9, 0xc8, 0xcb, - 0x49, 0x89, 0xb0, 0x92, 0xb9, 0x37, 0x3c, 0x2e, 0xb5, 0xea, 0x2d, 0x3b, 0x65, 0x02, 0x77, 0x5d, - 0xad, 0xac, 0xc5, 0x78, 0xf2, 0x01, 0xcd, 0x76, 0x07, 0xde, 0x49, 0xf4, 0xf7, 0xd0, 0xfb, 0xfb, - 0x6c, 0x1f, 0xdd, 0x7a, 0x27, 0xd1, 0x59, 0xfc, 0xcd, 0xb9, 0x77, 0xb6, 0xdf, 0x3f, 0x3f, 0xe1, - 0xa4, 0xcf, 0x0f, 0xaa, 0x9b, 0xb1, 0x4e, 0x8c, 0xc9, 0x71, 0x10, 0x78, 0xe5, 0xd9, 0xf0, 0xfc, - 0x04, 0xff, 0x98, 0x7b, 0x87, 0xfc, 0x3e, 0x24, 0x1e, 0x9e, 0x9f, 0xec, 0xe3, 0xdf, 0x08, 0x5d, - 0x7f, 0x83, 0x8d, 0x08, 0x60, 0x15, 0x51, 0xad, 0x78, 0xab, 0xdf, 0xb7, 0xc9, 0x3a, 0x9e, 0xd1, - 0xe9, 0x99, 0xa6, 0xb9, 0x32, 0x3e, 0x28, 0xfd, 0x67, 0xa5, 0xce, 0x10, 0xac, 0x45, 0x5c, 0xa9, - 0x1a, 0xe3, 0x09, 0x21, 0xcf, 0x5e, 0x58, 0x14, 0x81, 0x56, 0x5b, 0x4e, 0xc2, 0x69, 0x88, 0x16, - 0x49, 0xe5, 0x38, 0x7c, 0x3d, 0x49, 0xd3, 0xac, 0x74, 0xa6, 0xf4, 0xc6, 0xa5, 0x7a, 0xc4, 0x6c, - 0x02, 0xff, 0x4c, 0x67, 0x2e, 0x88, 0x6d, 0xcc, 0xd9, 0x52, 0x3f, 0x58, 0x84, 0x8a, 0x28, 0x00, - 0x6f, 0x27, 0x4a, 0x8b, 0xa2, 0xdf, 0xe3, 0x38, 0x5a, 0x84, 0xea, 0x18, 0x20, 0x9d, 0xd7, 0xb6, - 0x32, 0x3b, 0xf7, 0x7d, 0xd9, 0xa2, 0xac, 0x01, 0x2d, 0x40, 0x06, 0x52, 0x8c, 0x95, 0x1c, 0xe6, - 0x86, 0xe3, 0x9a, 0x3e, 0x98, 0x01, 0xb6, 0xd9, 0xe6, 0xb4, 0x84, 0x8e, 0x56, 0x30, 0xaf, 0x42, - 0x6f, 0x3e, 0xc6, 0x30, 0xa5, 0x33, 0x8a, 0xc9, 0xc7, 0xf7, 0x09, 0xf0, 0x00, 0x25, 0x31, 0xcd, - 0xa8, 0x4e, 0x27, 0xf9, 0x78, 0x78, 0x54, 0x57, 0x5f, 0xc5, 0x5d, 0x4a, 0x95, 0xea, 0x0a, 0x04, - 0x20, 0x7f, 0x44, 0xf7, 0xc8, 0xba, 0xe8, 0x68, 0x32, 0x4c, 0x84, 0x1e, 0x08, 0x12, 0xb6, 0xc0, - 0xd1, 0xc9, 0x4a, 0x9d, 0xc8, 0xc1, 0xe7, 0x57, 0xbc, 0x76, 0x0c, 0xbd, 0x5a, 0x2c, 0x3c, 0x59, - 0x25, 0x8e, 0x7a, 0xe2, 0x9d, 0x78, 0xf5, 0xde, 0xcf, 0x79, 0x0f, 0x08, 0xcc, 0x9a, 0x98, 0xd5, - 0xf8, 0x2c, 0x3e, 0x8f, 0xf8, 0x4e, 0x64, 0x5c, 0xcb, 0x8d, 0xde, 0x62, 0xac, 0x30, 0x51, 0x9c, - 0x0d, 0xaf, 0x9b, 0x1a, 0xc7, 0x21, 0x3f, 0xc8, 0xea, 0x99, 0x86, 0x78, 0x6e, 0x08, 0xf2, 0x95, - 0xef, 0x0b, 0xde, 0xab, 0xac, 0xee, 0xad, 0x08, 0x1f, 0x59, 0x44, 0x90, 0x84, 0xb4, 0x5f, 0x3c, - 0x7d, 0x8a, 0x34, 0xf7, 0xc3, 0xaa, 0x24, 0xdb, 0xf6, 0x8f, 0x17, 0x45, 0x9c, 0x83, 0x54, 0x62, - 0x29, 0x25, 0x02, 0xb6, 0xb2, 0xdd, 0x18, 0x26, 0x4b, 0xa0, 0x21, 0x83, 0x6f, 0x7a, 0x2b, 0xda, - 0x0b, 0x0b, 0xa2, 0x92, 0xd7, 0x8c, 0x89, 0x3d, 0x47, 0xae, 0x25, 0x8b, 0xe3, 0x3f, 0x30, 0x1b, - 0x80, 0x16, 0xa0, 0xa7, 0xe9, 0x62, 0x05, 0x7d, 0xab, 0x18, 0x48, 0xb6, 0x9a, 0x63, 0xdb, 0x74, - 0x61, 0x9e, 0xcf, 0xc3, 0x45, 0xd1, 0x2a, 0x41, 0xc3, 0x1b, 0xfc, 0x17, 0x66, 0x3c, 0xe6, 0xaa, - 0x5d, 0x7c, 0x93, 0x15, 0x14, 0x3d, 0x14, 0x76, 0x89, 0xd9, 0xc2, 0x46, 0x5b, 0xac, 0x2e, 0xca, - 0x3c, 0xa6, 0x98, 0x5d, 0xc3, 0x29, 0x56, 0xb6, 0xf6, 0x16, 0x5b, 0x41, 0x98, 0xbc, 0xf2, 0xe9, - 0x00, 0x24, 0xd3, 0x72, 0x9c, 0xe2, 0x46, 0x0f, 0x3a, 0x2a, 0xc8, 0x4e, 0x51, 0x63, 0x7c, 0x2e, - 0x48, 0xc2, 0xd5, 0x19, 0x61, 0x90, 0x0f, 0x0c, 0x30, 0xfa, 0x8b, 0x62, 0xe8, 0x68, 0x47, 0x06, - 0x8a, 0x50, 0x0b, 0x84, 0xed, 0xea, 0xb5, 0xf5, 0xe1, 0xdf, 0xa7, 0xa1, 0xea, 0xcd, 0x5e, 0x86, - 0x21, 0x0b, 0x0e, 0xb5, 0xf5, 0xaf, 0xae, 0xf9, 0xc5, 0xb3, 0x97, 0x8c, 0xcb, 0xb1, 0x3a, 0xbe, - 0xd1, 0x52, 0xe8, 0x36, 0xbe, 0xf8, 0x9f, 0xa4, 0xfc, 0xb0, 0x4b, 0x51, 0x1a, 0xce, 0x2b, 0x82, - 0x68, 0xec, 0x5e, 0x4f, 0xd2, 0x64, 0xb9, 0x5a, 0xb0, 0xfb, 0x44, 0x2d, 0x7c, 0x73, 0xb3, 0xa9, - 0x47, 0x97, 0x22, 0xb5, 0x33, 0x12, 0x36, 0xe6, 0x19, 0x24, 0xc2, 0xbc, 0x96, 0x79, 0x76, 0xb7, - 0xcb, 0x90, 0x45, 0xf3, 0xc3, 0xee, 0xe6, 0xf9, 0x86, 0x00, 0xdd, 0xbc, 0xa9, 0xd3, 0xc5, 0x73, - 0x4a, 0x6d, 0x30, 0x8f, 0x4f, 0xdc, 0xfa, 0x21, 0x7d, 0x37, 0x72, 0x5b, 0x0e, 0xd6, 0xbb, 0xa3, - 0x33, 0xeb, 0xf4, 0xb7, 0x3c, 0xfb, 0x5d, 0x9d, 0xfc, 0x6e, 0x31, 0x73, 0xa3, 0xdd, 0x4a, 0x43, - 0x0c, 0xa2, 0x26, 0x90, 0x53, 0x0b, 0xa5, 0xd1, 0x25, 0xb3, 0x24, 0x82, 0xec, 0x0d, 0x25, 0xb1, - 0x01, 0x8d, 0xb5, 0x0d, 0x01, 0x37, 0x1e, 0x83, 0x28, 0x10, 0x51, 0x61, 0x25, 0xde, 0x30, 0x57, - 0x6a, 0xb0, 0x10, 0x74, 0xf5, 0xc1, 0x24, 0x02, 0xe3, 0x8c, 0x41, 0x3f, 0xa2, 0xab, 0x11, 0x6b, - 0x47, 0xa1, 0x81, 0x4d, 0x8b, 0xbd, 0x92, 0xee, 0xb4, 0xa9, 0xae, 0xbb, 0x75, 0xaf, 0x13, 0x98, - 0x68, 0xe0, 0xa9, 0x18, 0x95, 0xba, 0xad, 0xd8, 0x64, 0x4d, 0xc5, 0x30, 0x74, 0x61, 0xb2, 0xad, - 0x20, 0x60, 0x73, 0xc9, 0x25, 0x31, 0xc0, 0xb8, 0xeb, 0x80, 0x75, 0x30, 0xc7, 0x30, 0xd4, 0x83, - 0x29, 0xdb, 0x5a, 0x9e, 0x59, 0xc4, 0x5f, 0xc9, 0xca, 0x07, 0x87, 0x14, 0xa0, 0xaa, 0xd7, 0xf1, - 0xe0, 0xd8, 0x2b, 0xed, 0x6a, 0x2b, 0x7d, 0xc0, 0xbb, 0x3f, 0x25, 0xb7, 0x27, 0x08, 0x18, 0xe5, - 0x78, 0x80, 0x61, 0x0a, 0x47, 0x74, 0xf9, 0xd2, 0x98, 0xc2, 0x7e, 0x5e, 0x0c, 0x8e, 0xcb, 0x93, - 0xb2, 0x3f, 0x46, 0xb7, 0x65, 0xff, 0xf0, 0x19, 0xc8, 0x02, 0xf3, 0xe8, 0x85, 0x2a, 0xb1, 0x3f, - 0x3e, 0x84, 0xde, 0xfb, 0x2f, 0x06, 0x90, 0x08, 0x4a, 0xed, 0x3e, 0xb0, 0x23, 0x3e, 0xe6, 0x97, - 0xf5, 0x13, 0x3f, 0x98, 0x54, 0x33, 0x55, 0xb4, 0xcf, 0x94, 0x20, 0xe7, 0x6a, 0x92, 0x48, 0xe6, - 0xe2, 0x29, 0x09, 0xd5, 0xed, 0x1c, 0x33, 0x0a, 0xe0, 0xa9, 0x9f, 0x64, 0x0f, 0x4c, 0x31, 0x15, - 0x46, 0xaa, 0x3c, 0xa3, 0xe8, 0x7b, 0x69, 0x88, 0x22, 0x28, 0xdd, 0x6b, 0x59, 0x8c, 0x62, 0x96, - 0x6e, 0x98, 0x35, 0x8f, 0x62, 0xb2, 0x60, 0xe1, 0x1e, 0xc1, 0x49, 0x18, 0x35, 0xe9, 0x19, 0x9a, - 0xa8, 0x88, 0x97, 0xaf, 0x71, 0x87, 0x3d, 0xef, 0xc4, 0x55, 0xe6, 0xc7, 0x48, 0x59, 0xf0, 0x60, - 0x5b, 0xdf, 0x9c, 0xd3, 0x3d, 0xf3, 0xb9, 0x8c, 0x5b, 0x02, 0x84, 0x50, 0x1a, 0xb0, 0xe0, 0x80, - 0x6f, 0x6d, 0xcf, 0x83, 0x15, 0x9a, 0x9e, 0x7c, 0xd6, 0x4b, 0x0f, 0x96, 0x93, 0xcb, 0xd8, 0xc1, - 0x27, 0x2c, 0x28, 0xbc, 0xa9, 0x70, 0xc6, 0x0e, 0x3d, 0x59, 0x1a, 0x38, 0x69, 0xf6, 0x36, 0xbe, - 0x3d, 0x8d, 0x2f, 0x4d, 0xd2, 0x88, 0xcb, 0x24, 0xc5, 0x8f, 0xa9, 0x28, 0xb5, 0x78, 0x55, 0xfd, - 0x48, 0x8a, 0xef, 0x6f, 0xaa, 0x5f, 0x78, 0x61, 0xd5, 0x29, 0x00, 0x2d, 0xf3, 0x7f, 0xba, 0xbc, - 0xb8, 0xad, 0xb5, 0x47, 0x0f, 0xa4, 0x63, 0x27, 0x67, 0x83, 0x00, 0xfe, 0x3b, 0x57, 0xc9, 0xe6, - 0x55, 0x72, 0xc8, 0xa0, 0xe2, 0x3a, 0x23, 0x5d, 0x7c, 0xbd, 0xca, 0x21, 0xf5, 0xe5, 0x40, 0x25, - 0xf0, 0xa3, 0x96, 0xf1, 0xec, 0xdb, 0x35, 0xa4, 0xea, 0xc4, 0x29, 0xa4, 0x8a, 0x9f, 0xf8, 0x12, - 0xd1, 0x8c, 0x1f, 0x11, 0x2a, 0x64, 0x29, 0x7e, 0x70, 0x40, 0xbd, 0x2e, 0x34, 0x76, 0xfa, 0x43, - 0x95, 0x81, 0xb7, 0xcc, 0xb1, 0x25, 0x53, 0x36, 0x12, 0x5f, 0xbe, 0x46, 0x1b, 0x0c, 0x26, 0x05, - 0x0e, 0x10, 0x84, 0xfc, 0x95, 0xdd, 0x02, 0xbf, 0xfc, 0x90, 0xe2, 0x1d, 0x15, 0x9c, 0x02, 0xcb, - 0x0d, 0xb0, 0x27, 0xaa, 0x63, 0xba, 0xde, 0x61, 0x20, 0x89, 0x94, 0x42, 0x87, 0xf8, 0x23, 0x82, - 0x54, 0xa9, 0xd0, 0x21, 0x89, 0x62, 0x5e, 0xab, 0x80, 0x13, 0x38, 0xf7, 0x34, 0x6f, 0x0a, 0x7c, - 0x7c, 0x20, 0x17, 0xea, 0x22, 0x29, 0xe1, 0x4b, 0x24, 0xc2, 0xd4, 0xe2, 0xb9, 0x9f, 0xa9, 0xd7, - 0x73, 0x03, 0x7e, 0x28, 0xbd, 0x7a, 0xea, 0x3e, 0xa0, 0x9f, 0xb6, 0x2d, 0x8f, 0x67, 0xe4, 0x8f, - 0x7f, 0x50, 0x8d, 0x1b, 0xa1, 0x9a, 0xed, 0x88, 0x7f, 0xc1, 0x10, 0x8f, 0x64, 0x91, 0x94, 0x77, - 0x2a, 0x88, 0x5a, 0x3d, 0xf7, 0x9e, 0xcc, 0x1d, 0x6f, 0xcf, 0xec, 0x9e, 0x57, 0x09, 0x08, 0x23, - 0xa9, 0xf3, 0xf4, 0x29, 0xc1, 0xf3, 0x35, 0xe2, 0x0e, 0x0a, 0xf6, 0x25, 0x2e, 0x8f, 0x9d, 0xe7, - 0xf8, 0x9a, 0xbd, 0x7e, 0xba, 0x3d, 0x8f, 0x41, 0xac, 0x28, 0xca, 0x3f, 0x17, 0x19, 0xc9, 0x4d, - 0x0e, 0xe8, 0xc8, 0xb1, 0x2f, 0x1e, 0x71, 0x17, 0x80, 0xe8, 0xe7, 0xda, 0xd5, 0x23, 0xf5, 0xb8, - 0xc2, 0xd4, 0x2e, 0xfd, 0xd5, 0xdd, 0x9b, 0x99, 0x87, 0xef, 0xb6, 0xfb, 0x6a, 0x37, 0x54, 0xe7, - 0x2b, 0xc7, 0x83, 0x11, 0x3f, 0x13, 0x48, 0x98, 0x22, 0xe4, 0xd7, 0x6b, 0xf5, 0xa6, 0xc5, 0xa2, - 0xe7, 0x57, 0x37, 0xd1, 0x62, 0x69, 0xd8, 0x1c, 0x1c, 0x2f, 0xa1, 0x69, 0x73, 0x12, 0xe7, 0x08, - 0x6a, 0x6a, 0x83, 0x84, 0x83, 0x6e, 0x38, 0x0d, 0xfa, 0x74, 0x86, 0xfe, 0x38, 0xee, 0x10, 0xef, - 0x33, 0xb9, 0x24, 0x35, 0x85, 0x5f, 0x93, 0x1d, 0x3b, 0x14, 0x65, 0x0c, 0x34, 0x80, 0xff, 0x7c, - 0xb7, 0x7a, 0xbb, 0xde, 0x7e, 0x37, 0x17, 0x53, 0xd4, 0xa3, 0x96, 0xea, 0x6d, 0x1d, 0x9d, 0x4a, - 0xf4, 0xf8, 0xa1, 0x4c, 0x16, 0x1e, 0xff, 0xa6, 0x89, 0x0e, 0x01, 0x4b, 0xd2, 0x00, 0x2f, 0x24, - 0x37, 0x0d, 0x95, 0x79, 0x76, 0x58, 0x60, 0x92, 0x3f, 0xaa, 0xf7, 0x2f, 0x3c, 0x81, 0xf5, 0xc0, - 0x39, 0x7c, 0xc1, 0xf9, 0xb3, 0xe6, 0x45, 0x38, 0x1c, 0xd9, 0x43, 0xd3, 0xae, 0x5d, 0x1d, 0x1d, - 0xf4, 0x10, 0x30, 0xf9, 0x60, 0x4b, 0xf6, 0xac, 0xd5, 0x46, 0x57, 0x4e, 0x2e, 0xde, 0xf8, 0x7f, - 0xfc, 0x03, 0x01, 0xab, 0x9f, 0x13, 0xaa, 0xcd, 0x4b, 0xf1, 0xd5, 0xdd, 0x6b, 0x7d, 0x63, 0xbb, - 0x57, 0xbd, 0x39, 0xe4, 0xb7, 0xce, 0x8d, 0xce, 0x6e, 0x9d, 0x21, 0x9d, 0x89, 0xf3, 0x64, 0x2e, - 0x81, 0x87, 0xba, 0xad, 0xe9, 0xe6, 0x86, 0x7c, 0xd7, 0x99, 0x90, 0xe3, 0x06, 0x83, 0xdc, 0x5c, - 0xbf, 0x9a, 0x39, 0x53, 0x0b, 0xc7, 0x20, 0x1b, 0xdc, 0x87, 0xd9, 0xd6, 0x75, 0x1a, 0xe3, 0xd7, - 0x0f, 0x24, 0xd1, 0xc0, 0x19, 0x30, 0x0e, 0x12, 0x73, 0xaa, 0x07, 0x2a, 0x03, 0xd3, 0x36, 0xf5, - 0x96, 0x90, 0x0d, 0x94, 0xe1, 0x7c, 0x43, 0x29, 0x1f, 0x5f, 0x73, 0x77, 0x38, 0x31, 0x21, 0xbf, - 0x62, 0xe6, 0xf5, 0x8a, 0xeb, 0x2c, 0x2b, 0xaf, 0x7a, 0x02, 0xf3, 0x54, 0x90, 0x09, 0x92, 0xde, - 0x9a, 0x53, 0x36, 0xad, 0x5e, 0xbf, 0x9f, 0x40, 0x31, 0x6e, 0xb6, 0x95, 0xe6, 0x08, 0x38, 0x0d, - 0x3a, 0xc9, 0x23, 0x4c, 0x28, 0x23, 0x31, 0x90, 0xe2, 0x2a, 0xbb, 0x7d, 0x8f, 0x8f, 0x30, 0x79, - 0x74, 0x07, 0xa0, 0x13, 0xa3, 0xce, 0xac, 0x19, 0xb9, 0x18, 0xd9, 0xba, 0x6d, 0x99, 0xa9, 0xe7, - 0x9b, 0xb8, 0xf3, 0x75, 0xf5, 0x0a, 0x04, 0x0e, 0x12, 0x5a, 0x53, 0xc9, 0x72, 0x8e, 0xb8, 0xf9, - 0x13, 0xc7, 0xa5, 0x2f, 0xb0, 0xc7, 0x61, 0xff, 0xbc, 0x8e, 0xa6, 0x8b, 0x78, 0x92, 0x6b, 0x52, - 0x56, 0x90, 0xea, 0x96, 0x79, 0xf4, 0x20, 0xff, 0x5e, 0x93, 0xf4, 0x8b, 0xcf, 0xd7, 0xa3, 0xcc, - 0xdc, 0x53, 0xd9, 0x1c, 0x4a, 0xc8, 0x1e, 0x88, 0xce, 0x1a, 0x24, 0x95, 0xd1, 0xb3, 0xa3, 0xaa, - 0x71, 0x48, 0x13, 0x8b, 0x47, 0x88, 0xc1, 0x35, 0x98, 0xd7, 0x6d, 0xd4, 0x44, 0x70, 0x33, 0x29, - 0x39, 0xc0, 0xe0, 0x88, 0xfb, 0x35, 0xa8, 0x04, 0x0b, 0x91, 0x11, 0x82, 0x31, 0xac, 0xd0, 0x59, - 0xa1, 0xbc, 0xf7, 0x3a, 0x03, 0x94, 0xa9, 0xfb, 0x89, 0x32, 0x87, 0x0e, 0x99, 0x03, 0xe6, 0x13, - 0xd8, 0x81, 0x42, 0xe7, 0x1d, 0xe0, 0x03, 0xcf, 0x38, 0xc5, 0x73, 0x60, 0x1a, 0x57, 0x4e, 0x79, - 0x15, 0x3b, 0xb8, 0xa5, 0x87, 0xce, 0x9b, 0x39, 0xfd, 0x48, 0x8a, 0x62, 0x45, 0xaf, 0xc0, 0x15, - 0x40, 0x3e, 0x45, 0x00, 0x05, 0x2f, 0x80, 0x72, 0x9c, 0xbb, 0x0c, 0x36, 0xd1, 0x6f, 0x4e, 0xdf, - 0x85, 0xbd, 0x8a, 0xed, 0x6e, 0x04, 0x4c, 0x84, 0xe6, 0x26, 0x50, 0x9d, 0x73, 0xdb, 0x36, 0x78, - 0x9e, 0x3c, 0xbd, 0x90, 0xec, 0x31, 0x2f, 0x33, 0xd2, 0x51, 0x62, 0xfd, 0xfa, 0x98, 0x57, 0x68, - 0xc6, 0x40, 0xec, 0x1a, 0x67, 0xc2, 0x75, 0x15, 0xe7, 0xba, 0xdc, 0xb2, 0xcf, 0x62, 0x11, 0xc3, - 0x1a, 0xee, 0xf0, 0x94, 0x10, 0xba, 0x95, 0x2f, 0x7d, 0x4c, 0x33, 0x4c, 0x91, 0x1b, 0xd8, 0xdf, - 0x1f, 0x71, 0x02, 0xff, 0xa5, 0x85, 0x08, 0x5b, 0xf0, 0x98, 0x2a, 0x9c, 0xdd, 0x9d, 0x8f, 0x44, - 0x3a, 0x34, 0x6d, 0x0e, 0x4f, 0x63, 0xa1, 0x30, 0x99, 0xf9, 0x2a, 0x1f, 0x37, 0x3d, 0xc8, 0x1f, - 0x5b, 0xa0, 0xf8, 0x75, 0xc0, 0x92, 0xfd, 0xa1, 0xd5, 0x1b, 0x8c, 0x08, 0x38, 0xc5, 0x27, 0xeb, - 0x45, 0xe0, 0xf8, 0x52, 0xbc, 0x44, 0xd8, 0xf2, 0x04, 0x62, 0x31, 0xbd, 0xfa, 0xc5, 0x7a, 0x50, - 0x59, 0x21, 0xcb, 0xf9, 0xfc, 0x3e, 0xd9, 0x34, 0x9e, 0x59, 0x6e, 0x7b, 0x07, 0x11, 0xba, 0xc0, - 0xb2, 0xf4, 0xe6, 0xb8, 0x7c, 0x61, 0x79, 0x01, 0x2d, 0x79, 0x98, 0xe3, 0xbb, 0xd8, 0x18, 0x0e, - 0x10, 0xe5, 0x25, 0x58, 0x70, 0xfa, 0x1a, 0xe1, 0xc8, 0x75, 0x37, 0xf2, 0xc5, 0xe4, 0xf6, 0x87, - 0x12, 0x11, 0xc2, 0xda, 0x4b, 0x89, 0xd5, 0x5b, 0x89, 0x3b, 0x3c, 0x2e, 0xed, 0xcc, 0x17, 0x39, - 0x00, 0xa0, 0x65, 0x3d, 0x60, 0xc9, 0xb4, 0xe8, 0xd7, 0x4b, 0xea, 0xdf, 0x8c, 0x21, 0x46, 0x50, - 0xc5, 0xbb, 0x73, 0x5c, 0x5e, 0x0d, 0x80, 0x5f, 0xb8, 0xfb, 0xd3, 0x96, 0x17, 0xc2, 0xe3, 0x4b, - 0x20, 0x8b, 0xb6, 0x5e, 0xe8, 0xa7, 0xdd, 0x15, 0xf5, 0x24, 0x51, 0x8e, 0xaa, 0xa4, 0xf3, 0xfd, - 0x37, 0x5f, 0x9b, 0x67, 0x0e, 0xab, 0xf7, 0x9c, 0x73, 0x7c, 0xe0, 0x53, 0xa2, 0x79, 0xeb, 0xc3, - 0x87, 0x9f, 0xdf, 0x6b, 0x89, 0xb1, 0x3f, 0xdc, 0x98, 0x17, 0x10, 0x35, 0xf6, 0xb1, 0xb5, 0x4d, - 0xe3, 0xb1, 0xeb, 0xef, 0xe3, 0x54, 0x3d, 0x75, 0x2d, 0x9f, 0xcb, 0x24, 0xb0, 0xb2, 0x65, 0x3b, - 0x54, 0x19, 0xc8, 0xf0, 0x17, 0x59, 0xb9, 0x9c, 0xcc, 0x2c, 0xd8, 0xda, 0x5f, 0x90, 0x6c, 0xc2, - 0xd6, 0x02, 0x59, 0xb6, 0xdc, 0x0a, 0x58, 0x07, 0x91, 0x5c, 0xb9, 0xc7, 0x9e, 0x68, 0x02, 0xe4, - 0x40, 0x31, 0x50, 0x04, 0xbd, 0x2b, 0x13, 0x84, 0xc4, 0x21, 0xce, 0x4f, 0x41, 0x13, 0xe3, 0x8b, - 0x17, 0x43, 0x25, 0xc9, 0x77, 0x93, 0xd4, 0x34, 0x9d, 0x9b, 0x91, 0x4f, 0x6b, 0x84, 0x83, 0x01, - 0x27, 0x86, 0xf2, 0x15, 0xe1, 0x0c, 0x2c, 0xc2, 0xd9, 0xde, 0xf6, 0x0c, 0x17, 0x92, 0x6a, 0x7b, - 0x56, 0x6b, 0x7b, 0x26, 0x57, 0x15, 0xbf, 0x7e, 0xf8, 0xfc, 0xbf, 0xeb, 0x6d, 0xb7, 0xac, 0x72, - 0xd0, 0x27, 0xeb, 0xeb, 0xdc, 0x71, 0x7e, 0x8a, 0xd1, 0x5d, 0x19, 0x3b, 0x33, 0xed, 0x4e, 0x97, - 0x99, 0x0f, 0x2f, 0x78, 0x68, 0xb3, 0xf6, 0xa4, 0x3a, 0x34, 0x58, 0x5b, 0xf0, 0x50, 0x66, 0xcb, - 0x82, 0x7f, 0xdc, 0x92, 0x6f, 0x59, 0xf4, 0x8d, 0x97, 0xd3, 0x71, 0x06, 0x3f, 0x69, 0x81, 0xaa, - 0x75, 0x2f, 0xe9, 0xa9, 0x37, 0xc3, 0x7b, 0xbe, 0x25, 0x23, 0x4c, 0x59, 0x30, 0x47, 0xbe, 0x6b, - 0x31, 0xd9, 0xe3, 0xb1, 0xd2, 0xb1, 0x8c, 0xc8, 0xd7, 0xda, 0x22, 0x3a, 0x90, 0x6b, 0x2d, 0xf6, - 0xea, 0x94, 0xfa, 0xc3, 0x64, 0x9d, 0x5c, 0xaf, 0xae, 0x1d, 0x5e, 0x1c, 0x4e, 0x36, 0x37, 0x2f, - 0xd6, 0x3a, 0x78, 0x2d, 0xe6, 0x15, 0x6c, 0xb4, 0x6a, 0xc4, 0x3d, 0xc5, 0xd5, 0xa5, 0x76, 0x8c, - 0xfb, 0x27, 0x0f, 0xcc, 0x51, 0xa7, 0xe4, 0x1d, 0xcf, 0xe4, 0x0b, 0x65, 0xc7, 0x96, 0xe9, 0x9d, - 0x56, 0x0d, 0xbb, 0x45, 0xf5, 0x91, 0xef, 0xde, 0xc7, 0x72, 0x97, 0x04, 0x35, 0xff, 0x12, 0x5a, - 0xc5, 0xea, 0x31, 0x5b, 0x1f, 0x9c, 0x67, 0xc3, 0xc1, 0xc0, 0xc1, 0x53, 0x62, 0xd4, 0x94, 0x28, - 0x60, 0x76, 0x33, 0x9d, 0xc6, 0x40, 0x60, 0x33, 0x50, 0x13, 0x0a, 0x7c, 0xe2, 0x23, 0x1b, 0xfd, - 0x4b, 0x1d, 0x9a, 0xff, 0xa7, 0xc1, 0x2c, 0xbe, 0x0c, 0x58, 0x3d, 0x07, 0x9a, 0xd1, 0xf5, 0x36, - 0xff, 0x15, 0x38, 0x9f, 0x7d, 0xf1, 0xc5, 0x17, 0x56, 0x92, 0xcf, 0x13, 0x1b, 0xcb, 0x27, 0x42, - 0x3a, 0x64, 0xfa, 0x1e, 0xaf, 0x27, 0x15, 0x5b, 0xd2, 0xf3, 0xcf, 0x06, 0x4d, 0x35, 0x0a, 0xc0, - 0x01, 0xa0, 0x3a, 0xb4, 0x09, 0x64, 0x3d, 0x16, 0x1a, 0x40, 0xf8, 0x27, 0x0c, 0xec, 0xd2, 0x37, - 0xb2, 0x47, 0xee, 0x93, 0xcf, 0x24, 0x63, 0x1b, 0x58, 0xbf, 0xbf, 0x73, 0x03, 0xc8, 0xf5, 0xeb, - 0x2d, 0x10, 0x69, 0x42, 0x2b, 0xc0, 0xb9, 0xcc, 0x74, 0x33, 0x54, 0x9f, 0x3c, 0x64, 0xad, 0x29, - 0x31, 0xbc, 0x42, 0x61, 0x49, 0x50, 0x09, 0x15, 0x1a, 0x37, 0x6a, 0xb9, 0xde, 0x10, 0x2b, 0xf8, - 0xae, 0x28, 0x5e, 0x2b, 0xc0, 0xb7, 0xab, 0x4b, 0xdd, 0x72, 0x27, 0xf8, 0xaf, 0x18, 0x74, 0xb9, - 0x18, 0x16, 0xa4, 0xf8, 0xb6, 0x61, 0xfa, 0xc3, 0x1b, 0x4f, 0xe3, 0xb9, 0xb9, 0xb2, 0xf8, 0xb9, - 0xd6, 0x77, 0xf8, 0x10, 0x57, 0xcf, 0xb7, 0x04, 0x61, 0x0f, 0x2d, 0x44, 0x3e, 0xf2, 0x16, 0xa5, - 0x16, 0x45, 0x4a, 0x92, 0xeb, 0x6a, 0xe4, 0xed, 0xa2, 0xde, 0x42, 0xba, 0x78, 0xf5, 0x98, 0x06, - 0x4e, 0xef, 0xd2, 0x69, 0xbd, 0x09, 0x6d, 0x7d, 0x6a, 0xb6, 0xd3, 0xde, 0xd2, 0x7c, 0x7d, 0xd1, - 0x73, 0xf6, 0x85, 0x31, 0xc9, 0xef, 0xd6, 0xee, 0x3f, 0xc3, 0xf3, 0x69, 0x52, 0x95, 0xa2, 0xb5, - 0xd9, 0xc2, 0x7d, 0x88, 0xd4, 0xbf, 0xca, 0x93, 0x9e, 0xef, 0xef, 0x5c, 0xfc, 0x74, 0x19, 0xc7, - 0xb3, 0xc7, 0x54, 0x78, 0x83, 0x6a, 0x64, 0x01, 0xca, 0xf8, 0x63, 0x2a, 0xfd, 0x55, 0x17, 0x26, - 0x71, 0x96, 0xec, 0x72, 0x7e, 0x0b, 0x56, 0x6e, 0x6f, 0xf3, 0xc9, 0xb2, 0xa7, 0x51, 0xa1, 0x16, - 0x2d, 0xa2, 0x80, 0x43, 0xc2, 0xa8, 0x05, 0xbd, 0x0e, 0x2f, 0xca, 0xb4, 0x10, 0x26, 0xae, 0x4e, - 0xa5, 0x9e, 0x1e, 0x46, 0x6f, 0x57, 0xe8, 0xb1, 0x89, 0x56, 0x65, 0x1e, 0x33, 0xea, 0x8a, 0x7c, - 0x23, 0x6d, 0x9b, 0x12, 0xcf, 0x03, 0xf5, 0x2c, 0x3b, 0xe0, 0xf1, 0xb1, 0x93, 0xf8, 0xce, 0x53, - 0x67, 0xb0, 0x1e, 0xc0, 0x0a, 0x6c, 0x76, 0x41, 0xaa, 0x3d, 0xb0, 0x8c, 0x1c, 0xb6, 0xc7, 0x6a, - 0x9d, 0x61, 0x3b, 0xb6, 0xdd, 0xf0, 0xd8, 0x19, 0xa0, 0xd5, 0xcb, 0x4e, 0x3c, 0x1a, 0xcb, 0xd1, - 0xa8, 0xe6, 0xed, 0x22, 0xfd, 0xe1, 0x16, 0x43, 0x02, 0xa9, 0x3e, 0x4b, 0x62, 0xcd, 0x4d, 0xa5, - 0x8b, 0xa9, 0xf4, 0xdd, 0x04, 0x78, 0x00, 0x1e, 0xa6, 0x18, 0xe9, 0xc2, 0x9d, 0x24, 0xeb, 0x71, - 0xae, 0x22, 0xee, 0x37, 0x18, 0xcd, 0x84, 0x60, 0xd3, 0xe2, 0x20, 0x6a, 0x8e, 0xdc, 0xcf, 0xf0, - 0x54, 0x65, 0x83, 0x13, 0x60, 0xa4, 0x17, 0xb0, 0x15, 0x6f, 0x12, 0x38, 0x17, 0xc2, 0xea, 0x37, - 0xa1, 0x67, 0x96, 0x70, 0xc6, 0xe8, 0x8b, 0x6f, 0xf6, 0x38, 0xb2, 0xf2, 0xf7, 0x87, 0x15, 0xba, - 0x54, 0xd2, 0x90, 0x5b, 0x46, 0x3a, 0xf9, 0x47, 0x91, 0xa5, 0xef, 0x9b, 0x26, 0x06, 0x69, 0x0c, - 0x84, 0x5e, 0xaf, 0x41, 0x38, 0x0f, 0x1c, 0x90, 0x82, 0x2e, 0xb2, 0x22, 0x56, 0x9b, 0xac, 0x02, - 0xc0, 0x32, 0xce, 0x6a, 0x5b, 0xa3, 0x57, 0x91, 0xf3, 0x9e, 0xe8, 0xc1, 0x97, 0xdd, 0xd9, 0xaa, - 0xbc, 0xad, 0x76, 0x57, 0xca, 0x39, 0x53, 0x33, 0x80, 0xa3, 0xad, 0x01, 0xc4, 0x5d, 0x87, 0xad, - 0x06, 0xc4, 0xf9, 0x1a, 0xfd, 0x58, 0x3d, 0xae, 0x16, 0x1f, 0xb6, 0x96, 0xb1, 0x26, 0xab, 0xe7, - 0xab, 0xb9, 0x3d, 0x38, 0x58, 0xe5, 0x38, 0xb9, 0x6a, 0xa8, 0x30, 0x11, 0x3d, 0xf5, 0xea, 0xd7, - 0x70, 0x10, 0xe2, 0xbf, 0xf0, 0xf0, 0xe5, 0x01, 0xc2, 0x7e, 0x40, 0x27, 0x66, 0x7a, 0x51, 0x47, - 0x36, 0x0b, 0x24, 0x8d, 0xb6, 0xec, 0xaa, 0xa2, 0x24, 0x4a, 0x8d, 0x76, 0xd1, 0x65, 0x06, 0x23, - 0x88, 0x7a, 0x00, 0x76, 0xcf, 0xa0, 0x50, 0x65, 0x4b, 0x35, 0x5a, 0x25, 0x85, 0x68, 0xe1, 0x57, - 0xd3, 0x32, 0x32, 0x66, 0x5c, 0x48, 0xfb, 0xf3, 0xe9, 0x8f, 0x6f, 0x95, 0xcf, 0x3b, 0x99, 0xdf, - 0x99, 0x16, 0x46, 0xba, 0x76, 0x5a, 0x64, 0x40, 0x9a, 0x8b, 0xec, 0x12, 0x0d, 0x90, 0xc2, 0xb2, - 0x36, 0x8f, 0x4b, 0x8a, 0x6e, 0x73, 0x3c, 0x18, 0x44, 0xa0, 0x7b, 0xbb, 0x8e, 0xcb, 0xab, 0x6c, - 0x16, 0x11, 0xb8, 0x01, 0x27, 0x5d, 0xc5, 0x13, 0x60, 0x5c, 0x45, 0xa4, 0x8b, 0x38, 0x8e, 0xab, - 0x82, 0x1a, 0xfb, 0xf4, 0xc8, 0x66, 0x04, 0x7c, 0x7e, 0x89, 0xa7, 0x3e, 0xc8, 0x94, 0x43, 0x43, - 0x1e, 0x39, 0x20, 0x02, 0xe7, 0x78, 0x40, 0xe0, 0xc3, 0xfb, 0x6f, 0xfb, 0x5f, 0xba, 0x5c, 0x71, - 0xa3, 0x1a, 0x44, 0xdf, 0x73, 0x84, 0xd0, 0xb3, 0x9d, 0x14, 0xff, 0xd2, 0x23, 0xc2, 0x00, 0x20, - 0x30, 0xb2, 0x63, 0xdd, 0x0f, 0x91, 0x14, 0x24, 0x85, 0xd9, 0x2f, 0x7e, 0xd5, 0x77, 0xc3, 0x6a, - 0xa3, 0x06, 0xba, 0xb1, 0x56, 0x02, 0x56, 0x43, 0x40, 0x3c, 0x6d, 0x8c, 0xad, 0x3a, 0xc1, 0x64, - 0xd1, 0x8b, 0x65, 0xd7, 0x92, 0x04, 0xac, 0xda, 0xb5, 0xc9, 0xd8, 0xd0, 0xa5, 0xd3, 0xb4, 0xd4, - 0x08, 0x7e, 0x87, 0x95, 0xc2, 0x62, 0x35, 0x9d, 0xa2, 0xc0, 0xa7, 0x60, 0x1a, 0x01, 0xe9, 0xa5, - 0x59, 0xda, 0xd7, 0x4b, 0x0b, 0x40, 0x5c, 0xc2, 0xe4, 0xc4, 0x95, 0xf5, 0x03, 0xb9, 0x38, 0x61, - 0x4f, 0x8c, 0x5f, 0x4f, 0x67, 0x85, 0x00, 0xbe, 0x96, 0xbb, 0xd7, 0x0b, 0xee, 0xc6, 0xbd, 0x23, - 0x8e, 0x9a, 0xd6, 0xaa, 0xe3, 0xc0, 0x3d, 0x56, 0xfe, 0xb1, 0xa3, 0x03, 0xce, 0x31, 0x72, 0x33, - 0x0f, 0x24, 0x8c, 0xf9, 0xb1, 0x7b, 0xf3, 0x56, 0x26, 0xc0, 0xc4, 0x0e, 0x5d, 0x07, 0xa8, 0x24, - 0x99, 0xe9, 0xb2, 0x6a, 0x7f, 0x00, 0xf5, 0x5d, 0xd6, 0xf2, 0xad, 0x5f, 0xa8, 0xce, 0x8f, 0x9d, - 0x7b, 0x37, 0x01, 0x1d, 0x46, 0x18, 0x6d, 0xfc, 0xfd, 0x21, 0x70, 0x7f, 0x64, 0x4e, 0x6e, 0x54, - 0x2b, 0xbe, 0xe9, 0x80, 0x25, 0xcb, 0x4b, 0x4f, 0xf1, 0x3b, 0x7f, 0xf4, 0x10, 0x08, 0x15, 0x21, - 0x38, 0x6b, 0xe4, 0xdd, 0xbd, 0x23, 0x96, 0x45, 0xb4, 0x56, 0x01, 0xfc, 0x9e, 0x55, 0x32, 0x14, - 0x2c, 0xf6, 0xeb, 0x10, 0x87, 0xc9, 0xcc, 0xd9, 0xef, 0xd9, 0x9a, 0xe9, 0xdf, 0xbc, 0xae, 0x72, - 0xfe, 0xc8, 0x3d, 0x6e, 0xc9, 0x23, 0x16, 0xbc, 0xdf, 0x3b, 0x3a, 0xe0, 0x9e, 0x49, 0xc3, 0xaa, - 0xf0, 0xac, 0xb4, 0x2c, 0x33, 0xcc, 0x25, 0x33, 0xa0, 0x36, 0x9c, 0xab, 0x70, 0xf3, 0x8e, 0x21, - 0xeb, 0x8a, 0xbe, 0xfd, 0x73, 0x57, 0xbc, 0x8b, 0xf2, 0x35, 0xc4, 0x57, 0x10, 0xed, 0x82, 0xf9, - 0x0a, 0x0c, 0x81, 0xfa, 0x3b, 0x46, 0xbd, 0x4d, 0x7e, 0xbd, 0xfd, 0x7a, 0xc7, 0x80, 0x46, 0xc0, - 0xf6, 0x71, 0x4b, 0x06, 0x5d, 0x3c, 0xdd, 0x6b, 0x21, 0x53, 0x63, 0x60, 0x8b, 0x87, 0xe2, 0xdd, - 0xe2, 0xf5, 0x08, 0xb8, 0xbc, 0xf8, 0x7d, 0x37, 0xd2, 0x06, 0x3e, 0x6d, 0x50, 0x9c, 0x67, 0x6a, - 0xf5, 0x84, 0xf8, 0x7d, 0x24, 0x33, 0x53, 0x96, 0x5b, 0x30, 0x9d, 0xfa, 0x35, 0x99, 0xcd, 0x3d, - 0x03, 0xb3, 0x49, 0xa1, 0xae, 0x69, 0xae, 0x56, 0x35, 0xd2, 0x33, 0xa9, 0x4d, 0xd0, 0x21, 0xdc, - 0xaf, 0xa9, 0xdc, 0x05, 0xc6, 0x88, 0xa0, 0x24, 0x57, 0x8b, 0x65, 0xd1, 0x91, 0x22, 0xfa, 0xca, - 0x4b, 0x72, 0x52, 0x65, 0x74, 0xf8, 0x66, 0xf8, 0x25, 0x6a, 0x7a, 0x4a, 0x95, 0xb0, 0x38, 0x07, - 0x41, 0xba, 0x00, 0x81, 0xc4, 0xd7, 0xb0, 0xbb, 0xde, 0xf7, 0xf4, 0xd3, 0x05, 0x51, 0xb9, 0x36, - 0x84, 0x32, 0x29, 0x17, 0x71, 0x03, 0x44, 0xed, 0xf1, 0xe5, 0xa6, 0xe2, 0x59, 0x11, 0xde, 0xde, - 0x98, 0x5c, 0xe1, 0x42, 0xad, 0xf2, 0xa7, 0x98, 0x62, 0x8a, 0x18, 0x2f, 0x6a, 0x55, 0x00, 0x92, - 0x40, 0x3b, 0x37, 0x25, 0x34, 0xb7, 0xe2, 0xa3, 0xa9, 0x36, 0x17, 0x56, 0xbe, 0x6a, 0x3c, 0x14, - 0x3c, 0xea, 0x34, 0x11, 0x54, 0x42, 0xba, 0x72, 0xe1, 0x43, 0xf9, 0x8b, 0x3c, 0xd1, 0x4a, 0x3a, - 0x39, 0xb8, 0x8b, 0x30, 0x5d, 0x54, 0x8d, 0x68, 0x17, 0x34, 0xa5, 0xce, 0x56, 0xb9, 0x4a, 0x16, - 0x0e, 0xef, 0x22, 0x5c, 0xcd, 0x96, 0x00, 0x12, 0xfc, 0xd2, 0x99, 0xb6, 0x07, 0xba, 0x08, 0x97, - 0x45, 0xa1, 0x39, 0x78, 0xcd, 0x0b, 0x8d, 0x79, 0x9d, 0xe0, 0x4e, 0xef, 0xde, 0x93, 0x0b, 0x88, - 0xfc, 0x96, 0x64, 0xba, 0x21, 0xf1, 0x2e, 0x5c, 0x2e, 0x40, 0x1a, 0x23, 0x81, 0x8e, 0x4c, 0x09, - 0x4e, 0x54, 0x99, 0x25, 0xda, 0x9b, 0x99, 0x16, 0x7a, 0xc0, 0xd4, 0xe5, 0x74, 0x9a, 0xce, 0xf1, - 0xc8, 0xf8, 0xb6, 0x1a, 0x71, 0x4b, 0x8d, 0xc9, 0x7a, 0x5b, 0x8d, 0xb2, 0x59, 0x03, 0xdd, 0x2a, - 0x0e, 0x48, 0x31, 0x5b, 0xab, 0xd9, 0xf5, 0x88, 0x6a, 0x13, 0x5a, 0xe2, 0x55, 0x45, 0xb1, 0x5f, - 0xc5, 0x8b, 0xe9, 0x18, 0x34, 0x08, 0x5e, 0x80, 0xb3, 0xb1, 0x2e, 0xd1, 0xe2, 0x63, 0x50, 0x39, - 0x15, 0x6b, 0xa9, 0xbc, 0x05, 0x4e, 0xc5, 0x57, 0x92, 0xb9, 0xc7, 0x4e, 0x01, 0x74, 0xf1, 0xc6, - 0x0b, 0xe0, 0x38, 0xd8, 0x05, 0x11, 0xe1, 0x6c, 0xe4, 0xf0, 0x59, 0xf4, 0x0d, 0xfe, 0x30, 0x2e, - 0x85, 0x4d, 0x05, 0x4d, 0xa2, 0x1c, 0x0a, 0x58, 0x45, 0xfa, 0x14, 0x76, 0x77, 0x41, 0x2b, 0xf8, - 0x70, 0xec, 0x87, 0xc0, 0x6f, 0xd0, 0xd0, 0x05, 0xa3, 0x8b, 0xfb, 0xfd, 0x3a, 0x9c, 0xd3, 0xd9, - 0x59, 0xfc, 0x80, 0x13, 0x1a, 0x17, 0x2a, 0xbe, 0x81, 0xb4, 0x80, 0x92, 0xa0, 0xf9, 0xc3, 0x2f, - 0x37, 0xb0, 0xd2, 0x86, 0x2d, 0x69, 0x87, 0x94, 0x56, 0xe3, 0x08, 0x5a, 0x49, 0xe4, 0x78, 0x0d, - 0x28, 0x86, 0xf8, 0xd0, 0x35, 0x9e, 0x9f, 0x57, 0xeb, 0xb1, 0xf2, 0x71, 0x63, 0x10, 0x46, 0x4d, - 0x2e, 0x7a, 0x40, 0xeb, 0x35, 0x93, 0xae, 0x7a, 0xc1, 0x16, 0xce, 0x47, 0x7a, 0x27, 0xdb, 0xb5, - 0x72, 0x12, 0x16, 0xdd, 0x54, 0xd9, 0x50, 0x9a, 0x45, 0xb5, 0x64, 0xbd, 0xa5, 0xaf, 0x47, 0x59, - 0x08, 0x94, 0x32, 0xa5, 0x27, 0x7f, 0x4e, 0xcd, 0xcf, 0x35, 0x54, 0x56, 0xc8, 0x8a, 0x48, 0x87, - 0xbd, 0xa5, 0x02, 0x66, 0x39, 0xd1, 0x22, 0x5e, 0x52, 0xbc, 0x9b, 0x68, 0xbf, 0x12, 0xf0, 0x06, - 0xcd, 0x52, 0x6c, 0xc1, 0xac, 0x09, 0xf0, 0x37, 0x2c, 0x2a, 0xa0, 0xfa, 0x3e, 0xcd, 0xb3, 0xc5, - 0xe2, 0x7d, 0xb6, 0xec, 0x50, 0x62, 0x1a, 0x03, 0x63, 0x57, 0xe9, 0x7b, 0x32, 0xcd, 0x6f, 0x6b, - 0x98, 0x63, 0xb7, 0xd8, 0xa5, 0x7a, 0x30, 0x0c, 0xbf, 0x34, 0xe8, 0x43, 0xd8, 0x8a, 0x90, 0x3c, - 0x80, 0xbe, 0x74, 0x65, 0xfe, 0xf5, 0xfb, 0x6f, 0xbe, 0x56, 0xee, 0x5d, 0xea, 0x93, 0x8b, 0xc8, - 0xd0, 0x0f, 0x47, 0x58, 0x9f, 0xa4, 0xd0, 0x3c, 0xa5, 0xe0, 0x74, 0xa3, 0x2e, 0x7a, 0xaa, 0x6d, - 0xa3, 0x9d, 0x54, 0xfa, 0x45, 0xef, 0x27, 0x56, 0x25, 0x95, 0x8f, 0xb4, 0xa7, 0xdc, 0xd5, 0xba, - 0xf9, 0x0a, 0x9a, 0x46, 0xdf, 0xd8, 0x95, 0xad, 0xff, 0xb2, 0xbf, 0x9d, 0xcc, 0x5c, 0x26, 0xea, - 0x85, 0x37, 0x95, 0x3d, 0xfc, 0x34, 0xea, 0x62, 0x76, 0xf1, 0x0f, 0x92, 0x86, 0xf0, 0xca, 0x0a, - 0x2a, 0xc1, 0xb2, 0x0e, 0x24, 0x4b, 0xee, 0x25, 0xec, 0xb0, 0x0f, 0xf0, 0xbd, 0x67, 0x43, 0x13, - 0x0a, 0x52, 0xa9, 0xc5, 0xd0, 0x5a, 0xd3, 0x93, 0xca, 0x10, 0xbe, 0x5d, 0x68, 0xf0, 0x78, 0xc3, - 0xda, 0x83, 0x0f, 0xa3, 0xcd, 0xa1, 0x39, 0x4d, 0x68, 0x72, 0x62, 0x3a, 0xde, 0xe2, 0xc4, 0xb1, - 0x43, 0x99, 0x4d, 0x0f, 0xa1, 0xf3, 0x33, 0x7a, 0x86, 0x39, 0xe9, 0x36, 0x59, 0x2c, 0x1c, 0x3e, - 0x25, 0x37, 0x9f, 0x3b, 0x74, 0x08, 0x97, 0x66, 0x8d, 0xf7, 0xbf, 0x7d, 0xf8, 0x0e, 0x1b, 0x06, - 0x3e, 0x1e, 0x1a, 0x2a, 0x0d, 0xd8, 0xb6, 0x55, 0xb6, 0xf7, 0x33, 0x8b, 0xa9, 0x27, 0x98, 0xe1, - 0x99, 0xa9, 0x56, 0xc7, 0x62, 0xba, 0x00, 0x2c, 0x2a, 0x64, 0x02, 0xf0, 0x9b, 0xcd, 0x63, 0x50, - 0x81, 0xd6, 0x40, 0xe3, 0x44, 0xaf, 0xb6, 0xe4, 0x3d, 0xfd, 0xdd, 0xa0, 0xc5, 0x98, 0x08, 0xdb, - 0x71, 0xf3, 0x23, 0xa8, 0x69, 0x0a, 0x13, 0x05, 0x6e, 0x15, 0xe8, 0x4d, 0x4f, 0xe3, 0xf2, 0x36, - 0xcb, 0x7f, 0x61, 0xcc, 0xa4, 0xd9, 0x2d, 0x75, 0x80, 0x4e, 0x79, 0x74, 0x86, 0x81, 0x34, 0x1f, - 0x3f, 0x88, 0x89, 0xf7, 0x58, 0x50, 0x61, 0x1c, 0xe0, 0xca, 0x1e, 0xee, 0xc4, 0x59, 0x64, 0xf8, - 0x26, 0x2d, 0x75, 0xd5, 0x89, 0x31, 0x14, 0x37, 0x08, 0x67, 0x28, 0x72, 0xc0, 0x17, 0x3d, 0x36, - 0x90, 0xc5, 0xf3, 0x78, 0x7a, 0x23, 0x52, 0x1e, 0x87, 0x4c, 0x14, 0xf7, 0x6e, 0x92, 0xf8, 0xb6, - 0x22, 0x7e, 0x0a, 0xf1, 0xdb, 0xc3, 0xcf, 0x0e, 0x9b, 0xec, 0x42, 0x55, 0x69, 0x31, 0x1b, 0x7a, - 0x58, 0x8d, 0x8c, 0x4e, 0x6c, 0x3f, 0x54, 0xb7, 0xd7, 0xef, 0xd0, 0x50, 0x3e, 0xb5, 0xaa, 0x1f, - 0xe8, 0x3c, 0x68, 0x62, 0x72, 0x81, 0x67, 0x45, 0x2f, 0x16, 0x93, 0xf4, 0x97, 0x07, 0xcc, 0xc4, - 0x2d, 0x96, 0x6a, 0xd5, 0x9e, 0x65, 0x20, 0xb6, 0xf1, 0x70, 0x3d, 0xf9, 0x05, 0x25, 0x08, 0x4f, - 0x44, 0xb9, 0xa4, 0x3a, 0x86, 0xb0, 0xcd, 0x2b, 0xe5, 0x54, 0xf1, 0x6d, 0xe4, 0xa4, 0x61, 0xea, - 0x6b, 0xc0, 0xf4, 0x89, 0x5c, 0x75, 0x56, 0xd5, 0xfe, 0x70, 0x13, 0x7f, 0xf2, 0x85, 0x5f, 0x81, - 0x9b, 0xa7, 0x16, 0x8e, 0x8c, 0xb0, 0xec, 0x73, 0xf7, 0x4b, 0x4d, 0xc9, 0x86, 0x14, 0x28, 0x68, - 0xe2, 0xa1, 0x08, 0x83, 0xd6, 0x68, 0x02, 0x09, 0xc5, 0x06, 0xd8, 0x45, 0x7c, 0xeb, 0x9b, 0x5a, - 0x75, 0xbf, 0x5e, 0xc3, 0xb1, 0x6e, 0xfc, 0xe8, 0xbf, 0xc9, 0x6b, 0x6e, 0x75, 0xfd, 0xdb, 0x1c, - 0xe8, 0x69, 0xf1, 0x7b, 0x39, 0xce, 0xbb, 0xe0, 0xfa, 0x2d, 0xce, 0x73, 0x91, 0xf6, 0x1b, 0x7d, - 0xe7, 0xa6, 0x05, 0x76, 0x1e, 0xfd, 0xbb, 0x8e, 0x70, 0x6b, 0x44, 0x6d, 0x3e, 0x71, 0xab, 0x80, - 0x3f, 0xb2, 0x1c, 0x96, 0xed, 0xce, 0xf2, 0xa6, 0x93, 0xf7, 0x53, 0xc7, 0x02, 0x6c, 0xf7, 0xc3, - 0x4e, 0x9b, 0x9e, 0x27, 0xd1, 0x69, 0x47, 0xc4, 0x51, 0xa7, 0x4f, 0xb7, 0x61, 0x7f, 0x41, 0x9b, - 0x7b, 0x3f, 0x11, 0x43, 0x35, 0x4b, 0x19, 0xa8, 0xa2, 0x86, 0x38, 0x2a, 0x0a, 0xdf, 0x78, 0xa0, - 0xc3, 0x2f, 0x27, 0x34, 0xd0, 0x57, 0xb3, 0x99, 0xf6, 0x04, 0x37, 0xac, 0x2c, 0xb5, 0x18, 0x2e, - 0xf6, 0xfe, 0x17, 0xbe, 0x61, 0x12, 0x1c, 0x80, 0xdc, 0xb1, 0xee, 0x0b, 0x8c, 0xc9, 0xf9, 0x64, - 0x54, 0xb8, 0x86, 0x18, 0x81, 0x2b, 0x37, 0xd2, 0xc6, 0x95, 0x02, 0x98, 0x38, 0x86, 0xf0, 0x44, - 0xd8, 0xe6, 0xae, 0xec, 0x5b, 0x4d, 0xab, 0x04, 0x88, 0x16, 0xe5, 0x36, 0x90, 0x2c, 0xe6, 0xc3, - 0x55, 0x60, 0xb5, 0x6c, 0xab, 0x12, 0x37, 0xaa, 0x74, 0x8f, 0x80, 0x0e, 0x65, 0x08, 0x53, 0x11, - 0x25, 0xf8, 0x94, 0x93, 0x2d, 0xed, 0x8c, 0x6c, 0xe9, 0xab, 0x71, 0x4a, 0xb9, 0x4e, 0x8d, 0x73, - 0x87, 0xc1, 0xcf, 0xac, 0xd9, 0xa0, 0xbd, 0x5e, 0x47, 0x91, 0x1d, 0x39, 0x87, 0xc6, 0x12, 0x8a, - 0x99, 0x26, 0x2a, 0xa8, 0x38, 0xb7, 0xdc, 0xf0, 0xba, 0x42, 0xbf, 0xbf, 0xcb, 0xd0, 0x68, 0x00, - 0x83, 0x47, 0xcc, 0x0d, 0xc6, 0x63, 0x88, 0xb9, 0xc1, 0x60, 0x8c, 0x2d, 0x68, 0x86, 0xec, 0x1a, - 0xb1, 0xd8, 0xf6, 0xf4, 0x1b, 0xff, 0x61, 0x20, 0x31, 0x26, 0x04, 0xad, 0xdd, 0x37, 0x8f, 0x80, - 0xf2, 0x6f, 0x5e, 0x62, 0x6c, 0xbe, 0xb6, 0xce, 0x62, 0xec, 0x1a, 0x7f, 0xfc, 0xc3, 0x93, 0xb6, - 0x6e, 0xe7, 0x6b, 0xcb, 0x2a, 0x08, 0xad, 0x3c, 0xa2, 0x5b, 0xe5, 0x2b, 0xf1, 0xa4, 0x97, 0xbf, - 0xde, 0x01, 0x68, 0x47, 0xb2, 0x87, 0x07, 0xdd, 0x2e, 0x4c, 0xa6, 0x8f, 0x81, 0xe2, 0xab, 0x3c, - 0x91, 0x9b, 0xbe, 0x06, 0xe0, 0x22, 0x4f, 0x1e, 0xe8, 0xb8, 0x6e, 0x50, 0xf2, 0xff, 0xcf, 0x74, - 0x01, 0x5c, 0xf4, 0xa8, 0x0b, 0xb7, 0xc1, 0xad, 0x11, 0x57, 0xac, 0x77, 0x01, 0xdf, 0x52, 0xa9, - 0x1f, 0x83, 0x35, 0xa3, 0x58, 0x6f, 0x83, 0x21, 0xd9, 0x09, 0x86, 0x86, 0x8e, 0xbe, 0x33, 0x1c, - 0x2c, 0xbb, 0xbe, 0xfe, 0xb9, 0x0d, 0x86, 0xe5, 0xc2, 0x75, 0x22, 0x94, 0xb5, 0x8c, 0xfc, 0xb6, - 0x8b, 0x91, 0x4d, 0xea, 0x08, 0xa2, 0xa5, 0x08, 0x63, 0x52, 0x5d, 0xb4, 0x6b, 0xd1, 0xb8, 0xf0, - 0x24, 0xd6, 0xd6, 0x81, 0x49, 0xb3, 0x1b, 0xb2, 0x3e, 0x3c, 0x93, 0xf5, 0x50, 0x85, 0x58, 0x56, - 0x40, 0xeb, 0xd9, 0x83, 0x35, 0x2c, 0xca, 0xd9, 0x68, 0xab, 0xfb, 0xbf, 0x4f, 0x7f, 0x24, 0x6a, - 0x3e, 0x62, 0x02, 0xde, 0x9d, 0xea, 0x09, 0xa0, 0x83, 0x45, 0x7b, 0xca, 0xac, 0xa9, 0x67, 0xe4, - 0x3f, 0x19, 0x30, 0x40, 0x82, 0xb3, 0xf4, 0x15, 0x74, 0xb9, 0xf7, 0x27, 0x37, 0x78, 0x91, 0x8a, - 0x36, 0x52, 0x59, 0x5a, 0xdb, 0xe3, 0xc3, 0x0e, 0x54, 0x6b, 0x32, 0xec, 0x60, 0x63, 0x21, 0xae, - 0xe9, 0xca, 0x5f, 0x16, 0xdf, 0xa3, 0x80, 0xed, 0xda, 0xd2, 0x0c, 0xc1, 0x0e, 0x7a, 0xc9, 0xe9, - 0xe4, 0x26, 0x46, 0xf5, 0xb2, 0x58, 0x64, 0xb0, 0x77, 0xba, 0x78, 0x06, 0xc6, 0xc1, 0x83, 0xb9, - 0x9c, 0xd0, 0xca, 0x3b, 0x49, 0x82, 0xf2, 0x92, 0x36, 0xca, 0x2f, 0xd0, 0x36, 0x61, 0x82, 0x18, - 0x1a, 0xc1, 0x10, 0x5e, 0xd2, 0x1f, 0xfa, 0x55, 0x40, 0x44, 0x43, 0x77, 0xa5, 0xee, 0x61, 0x7c, - 0x0e, 0x9f, 0xf2, 0xab, 0x00, 0x21, 0x77, 0x40, 0xe2, 0xec, 0xbb, 0xa1, 0xbb, 0x5d, 0xfb, 0x75, - 0x4f, 0x65, 0x69, 0x50, 0x26, 0x1d, 0x3a, 0x57, 0xbd, 0xe7, 0x7c, 0xc0, 0xfb, 0x41, 0x08, 0x79, - 0x78, 0x49, 0x09, 0x0f, 0x99, 0x86, 0x0e, 0xea, 0xb0, 0x32, 0x8f, 0xeb, 0x5e, 0x21, 0x2b, 0x29, - 0x43, 0x79, 0x36, 0xa3, 0x36, 0xd7, 0xd5, 0x70, 0x27, 0xa8, 0xd2, 0xc1, 0x88, 0x1b, 0x86, 0x1f, - 0xc4, 0xab, 0x18, 0x88, 0x42, 0x70, 0x73, 0x18, 0x3b, 0x32, 0x3d, 0x63, 0xf0, 0xd4, 0x21, 0x12, - 0xea, 0xf4, 0xd9, 0x85, 0xd9, 0x95, 0xff, 0xb3, 0xe7, 0x8f, 0xe8, 0xd6, 0xa6, 0xb1, 0x7b, 0xb8, - 0x5c, 0xb3, 0xfb, 0x94, 0xad, 0xa7, 0x9a, 0xa8, 0x65, 0x51, 0xbe, 0xcf, 0x77, 0xec, 0xbe, 0x58, - 0xae, 0xdb, 0xb2, 0xf9, 0x26, 0x63, 0xf7, 0x8b, 0x43, 0x9d, 0x4d, 0x18, 0x80, 0x12, 0x64, 0x87, - 0xad, 0x75, 0xf7, 0xb2, 0xad, 0xbb, 0x5a, 0x59, 0xdd, 0x9f, 0x69, 0xb0, 0x96, 0xaf, 0x3a, 0x7c, - 0xf1, 0x85, 0xce, 0xa7, 0xe0, 0x03, 0x3a, 0xed, 0xc4, 0x97, 0x91, 0x99, 0xa7, 0x18, 0x9c, 0xbd, - 0xf1, 0xb8, 0x01, 0x89, 0x6d, 0x78, 0xad, 0x90, 0x23, 0x1a, 0xc0, 0xc5, 0xf0, 0x40, 0xb5, 0x6a, - 0xa4, 0x5b, 0xa2, 0xa5, 0xba, 0x2c, 0xd3, 0x8f, 0x0a, 0xb7, 0x6a, 0xac, 0x56, 0x3e, 0xad, 0x85, - 0x0b, 0x89, 0x8f, 0xed, 0x89, 0x55, 0xbb, 0x3b, 0xc9, 0x20, 0xce, 0xaa, 0x26, 0x28, 0x14, 0x69, - 0xeb, 0x80, 0x31, 0xe4, 0xb0, 0x27, 0x4f, 0xa8, 0xf5, 0xfc, 0x3a, 0xca, 0xd4, 0x8b, 0x4a, 0x5e, - 0xef, 0xaa, 0xb8, 0xe9, 0x05, 0x4e, 0x0f, 0xff, 0x0c, 0x75, 0x78, 0xcc, 0x43, 0xad, 0x3b, 0xad, - 0x13, 0x48, 0x55, 0x25, 0xf2, 0xda, 0x83, 0x65, 0x6c, 0x7c, 0x2b, 0x59, 0x77, 0xd1, 0x6c, 0xb4, - 0x53, 0xe0, 0x85, 0x12, 0xf0, 0x79, 0x76, 0x06, 0x9f, 0x61, 0x1e, 0x60, 0xe5, 0xf0, 0x92, 0x3f, - 0x2e, 0x02, 0xab, 0xff, 0xf3, 0xe0, 0x0c, 0xff, 0x9d, 0x6f, 0x2a, 0x49, 0x80, 0xd7, 0xad, 0x0c, - 0xc8, 0xec, 0x6a, 0x1d, 0x6a, 0xee, 0xd4, 0x81, 0x6e, 0x5d, 0x04, 0x7d, 0xea, 0x4e, 0x0e, 0x77, - 0xe9, 0x64, 0xa7, 0x7e, 0x4c, 0x27, 0xbf, 0x8f, 0x98, 0xd9, 0x2e, 0x13, 0xb5, 0xca, 0xd3, 0xce, - 0xb1, 0xf3, 0x62, 0x6b, 0xf8, 0x75, 0x5b, 0x1d, 0x6d, 0x3b, 0x63, 0x58, 0x61, 0xd0, 0x21, 0xc7, - 0xb9, 0x0d, 0x1e, 0xc1, 0x74, 0xd5, 0x11, 0x90, 0x44, 0xab, 0x08, 0xf2, 0x70, 0x07, 0x48, 0x1a, - 0xe2, 0x67, 0xb7, 0x45, 0xa2, 0xe7, 0xec, 0x27, 0x2d, 0x36, 0x4a, 0x51, 0x77, 0x67, 0x53, 0x25, - 0x1e, 0x52, 0x91, 0xcd, 0x49, 0x3f, 0x7b, 0xa3, 0xc1, 0x9a, 0xdf, 0x3d, 0xd2, 0x09, 0xfc, 0xb3, - 0x11, 0x8b, 0x9b, 0xce, 0x41, 0x40, 0x2a, 0xf8, 0x6a, 0xb4, 0xa2, 0xfb, 0x20, 0x96, 0x51, 0x3b, - 0x40, 0x94, 0xb8, 0x58, 0xac, 0x72, 0xcf, 0x6f, 0x87, 0xd5, 0x15, 0x02, 0xfe, 0x6e, 0x45, 0x8d, - 0x1c, 0x2e, 0x8b, 0x13, 0x90, 0x07, 0x07, 0x58, 0x02, 0xb9, 0xf3, 0x87, 0x37, 0xfa, 0x44, 0xf3, - 0xc7, 0xd7, 0x52, 0xa6, 0xb3, 0xef, 0xb9, 0xe9, 0xe1, 0x05, 0x01, 0xe5, 0x24, 0x49, 0x31, 0x68, - 0x38, 0x70, 0xde, 0x42, 0xc9, 0x2f, 0x46, 0xd8, 0x10, 0x10, 0x48, 0x75, 0xf2, 0x11, 0x78, 0xd2, - 0x7a, 0xa0, 0x82, 0x9c, 0x02, 0xe7, 0xae, 0xfa, 0xca, 0x6e, 0xac, 0x53, 0x47, 0x9d, 0x04, 0x53, - 0xce, 0x6f, 0x75, 0xb8, 0xfc, 0x76, 0x54, 0x43, 0x1b, 0x46, 0xa1, 0x61, 0xc8, 0xe0, 0x13, 0x7d, - 0xdf, 0x73, 0xed, 0x5e, 0x05, 0x98, 0x8a, 0x96, 0xab, 0x16, 0x40, 0x37, 0x88, 0x1d, 0x7b, 0x06, - 0xb0, 0x27, 0x4f, 0x9e, 0x72, 0x44, 0x62, 0x35, 0xc7, 0xfe, 0xcd, 0xd9, 0xcc, 0xca, 0x1e, 0xac, - 0x47, 0x59, 0x78, 0xbd, 0x34, 0x23, 0x1c, 0x02, 0x87, 0xfd, 0xf5, 0x57, 0x47, 0x66, 0xb4, 0xbf, - 0x51, 0xdb, 0x51, 0xce, 0xba, 0x0c, 0x1f, 0xca, 0x6c, 0x29, 0x04, 0x1b, 0x8d, 0x34, 0x6f, 0x10, - 0x22, 0x35, 0x2e, 0xf4, 0x55, 0x0b, 0x94, 0x73, 0xd7, 0x92, 0xf3, 0x33, 0x9b, 0x3e, 0x0c, 0x9a, - 0xb7, 0x9e, 0xcc, 0x55, 0xe7, 0x57, 0x5d, 0xff, 0x8c, 0x67, 0xee, 0xbc, 0x72, 0x33, 0xd2, 0x54, - 0x3c, 0xd9, 0x7e, 0x70, 0x75, 0xcf, 0x33, 0x33, 0x48, 0x0e, 0xb8, 0x86, 0xeb, 0x6d, 0x96, 0x4f, - 0x2e, 0x0d, 0xda, 0xc9, 0xd7, 0xc9, 0x15, 0xac, 0xf1, 0xd5, 0x79, 0xd5, 0x63, 0xa0, 0x04, 0x91, - 0x42, 0x8f, 0xd5, 0xf0, 0x30, 0x8c, 0x87, 0xc2, 0x6b, 0x18, 0x65, 0x1f, 0x4a, 0x7a, 0x7f, 0x82, - 0x7d, 0xe1, 0xd5, 0xf0, 0xe9, 0x14, 0x63, 0x73, 0x16, 0x00, 0x5a, 0xf3, 0x3a, 0x08, 0xa8, 0xf0, - 0xe4, 0xc9, 0x13, 0xac, 0xd0, 0x75, 0x1a, 0xb7, 0x5c, 0xc3, 0xe0, 0x3f, 0x7d, 0x7e, 0x2f, 0x2e, - 0xb7, 0xaa, 0xcf, 0x8f, 0xd3, 0x87, 0x79, 0xf3, 0x37, 0xcb, 0xf5, 0xa7, 0x06, 0x52, 0x14, 0x7c, - 0x1a, 0x29, 0xad, 0x38, 0xa1, 0xcb, 0x06, 0xd6, 0x2d, 0xf3, 0x4e, 0xed, 0x06, 0x14, 0x31, 0xa3, - 0x1e, 0xf0, 0xbd, 0x4c, 0xbd, 0xd9, 0x1a, 0x56, 0xa2, 0x56, 0x78, 0xd0, 0x4f, 0xbd, 0xef, 0x15, - 0xcf, 0x66, 0xeb, 0x83, 0x5b, 0xdf, 0x5c, 0xc9, 0x75, 0xa8, 0x83, 0x56, 0xf1, 0xd9, 0x1f, 0xb5, - 0x4c, 0x31, 0xe8, 0x19, 0xa8, 0xb0, 0xe0, 0xa8, 0x13, 0x90, 0x39, 0x74, 0xc6, 0x11, 0x2c, 0xeb, - 0xbe, 0x33, 0xe4, 0xcc, 0x63, 0x95, 0x39, 0x87, 0x6f, 0xe1, 0xb0, 0xda, 0xf1, 0x1e, 0x3e, 0xaa, - 0x8c, 0x47, 0x32, 0xaa, 0x78, 0x0d, 0x00, 0x6b, 0x08, 0xad, 0xce, 0xd5, 0xef, 0xda, 0x09, 0x66, - 0x79, 0xb8, 0xd9, 0xa8, 0x5a, 0x5b, 0xf1, 0xdf, 0x1b, 0x2c, 0xd7, 0xbd, 0xed, 0xa7, 0xa6, 0xe7, - 0x78, 0xb8, 0xda, 0x14, 0xd9, 0x8d, 0x90, 0xf9, 0x38, 0xb4, 0x5f, 0xad, 0x3c, 0xe4, 0x5b, 0x0d, - 0xb1, 0x2f, 0xf9, 0x17, 0xdd, 0xa0, 0x40, 0x50, 0x62, 0x6c, 0xd4, 0x6d, 0x92, 0xce, 0xb2, 0x5b, - 0xd6, 0xff, 0xf8, 0x2d, 0xe3, 0xed, 0x03, 0x58, 0x42, 0xa7, 0xcd, 0x2d, 0xa8, 0xcc, 0x96, 0x35, - 0x87, 0x3c, 0x06, 0x71, 0x80, 0x5c, 0x6d, 0xb8, 0x35, 0x77, 0x0c, 0xbf, 0xba, 0x5a, 0x4e, 0xa1, - 0xe1, 0xb7, 0x3c, 0xd7, 0x8d, 0xdb, 0x00, 0x7a, 0x7c, 0x43, 0x37, 0x94, 0xc0, 0x0f, 0x71, 0xee, - 0x9c, 0x9a, 0x6b, 0x16, 0xbf, 0xce, 0xd0, 0x8f, 0x90, 0xdd, 0x62, 0x9b, 0x88, 0x1f, 0x51, 0xa3, - 0xb5, 0x7c, 0x75, 0x71, 0x4f, 0xb3, 0xc2, 0xb6, 0x2e, 0x70, 0x41, 0x20, 0x3e, 0x80, 0x59, 0xec, - 0xd4, 0x45, 0x7b, 0xf9, 0x6d, 0x3d, 0x64, 0x2b, 0x04, 0x09, 0xeb, 0x3d, 0xd4, 0x01, 0x15, 0x5f, - 0x2d, 0x77, 0x2c, 0xad, 0x2f, 0x75, 0x69, 0x16, 0x3f, 0x3a, 0x00, 0xb6, 0x94, 0x2c, 0xcb, 0x63, - 0xfc, 0x8a, 0x51, 0xca, 0xf4, 0xe5, 0xaa, 0xbc, 0x5e, 0x1c, 0x3b, 0xff, 0x0b, 0x0b, 0xc2, 0x1b, - 0xba, 0x00, 0x0e, 0x01, 0x00, + 0x1f, 0x8b, 0x08, 0x08, 0x38, 0xbf, 0xf2, 0x5d, 0x00, 0x03, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, + 0x68, 0x74, 0x6d, 0x00, 0xcc, 0x7d, 0x6b, 0x77, 0xe2, 0xc6, 0xb2, 0xe8, 0xf7, 0xac, 0x95, 0xff, + 0x40, 0x9c, 0x75, 0x33, 0xf6, 0xb6, 0xb1, 0x10, 0x2f, 0x63, 0xcf, 0x78, 0xb2, 0x5b, 0x42, 0x80, + 0x00, 0x01, 0x02, 0x24, 0xc0, 0x7b, 0xe5, 0x83, 0x10, 0x42, 0x08, 0x84, 0x84, 0x25, 0x81, 0x80, + 0x9c, 0xdc, 0xdf, 0x7e, 0xab, 0x5b, 0x0f, 0xc4, 0x6b, 0xc6, 0xc9, 0x9c, 0xbd, 0xd6, 0xf5, 0xc4, + 0x40, 0xbf, 0xaa, 0xab, 0xeb, 0x5d, 0xa5, 0x36, 0xf9, 0xf2, 0x4b, 0xb9, 0xcd, 0xf6, 0x47, 0x1d, + 0x2e, 0x35, 0xf3, 0x96, 0xe6, 0xd7, 0x9f, 0x7f, 0xfa, 0x12, 0xbf, 0x6b, 0xca, 0x04, 0xbf, 0x2f, + 0x35, 0x4f, 0x49, 0x59, 0xca, 0x52, 0x7b, 0xbd, 0xd9, 0x18, 0x9a, 0xbf, 0xb2, 0x1d, 0xef, 0x26, + 0xa5, 0xda, 0x96, 0xa7, 0x59, 0xde, 0xeb, 0x8d, 0x6f, 0x4c, 0xbc, 0xd9, 0xeb, 0x44, 0xdb, 0x18, + 0xaa, 0x96, 0x26, 0x8d, 0x87, 0x94, 0x61, 0x19, 0x9e, 0xa1, 0x98, 0x69, 0x57, 0x55, 0x4c, 0xed, + 0x95, 0x7e, 0x48, 0x2d, 0xa1, 0x67, 0xb9, 0x5e, 0x46, 0x1d, 0x37, 0x31, 0x58, 0x75, 0xa6, 0x38, + 0xae, 0x06, 0x60, 0xd6, 0xde, 0x34, 0x5d, 0xba, 0x39, 0xd9, 0xce, 0x9b, 0x69, 0x4b, 0x2d, 0xad, + 0xda, 0xa6, 0xed, 0x24, 0x76, 0xfc, 0x35, 0x4b, 0x7e, 0x12, 0x40, 0xa2, 0x91, 0x9d, 0xe6, 0xde, + 0x84, 0x4b, 0x95, 0xd5, 0xca, 0xd4, 0xd2, 0x4b, 0x7b, 0x6c, 0xc0, 0x9b, 0xaf, 0x8d, 0xd3, 0xd0, + 0x91, 0x56, 0x95, 0x95, 0x32, 0x36, 0x35, 0xb2, 0xd2, 0x34, 0xac, 0x45, 0xca, 0xd1, 0xcc, 0xd7, + 0x1b, 0x77, 0x06, 0x27, 0x52, 0xd7, 0x5e, 0xca, 0x00, 0x40, 0x37, 0xa9, 0x99, 0xa3, 0x4d, 0x5f, + 0x6f, 0x26, 0x8a, 0xa7, 0xbc, 0x18, 0x4b, 0x45, 0xd7, 0xa8, 0x6d, 0x1a, 0x0f, 0x7c, 0x1e, 0x2b, + 0xae, 0x56, 0xcc, 0x3f, 0x20, 0x84, 0x18, 0x84, 0x38, 0xc4, 0xc1, 0x2b, 0x7e, 0xaf, 0x22, 0xb6, + 0x8a, 0x3f, 0x55, 0x74, 0x78, 0xe1, 0x4d, 0xb1, 0xbf, 0x50, 0x5b, 0xec, 0xcc, 0x6e, 0xe0, 0xbe, + 0xb2, 0x64, 0xf2, 0xdd, 0x0a, 0x8f, 0x3f, 0x8a, 0xc1, 0x6c, 0x9d, 0xcc, 0xad, 0x51, 0x1d, 0x6a, + 0x84, 0x7b, 0x38, 0xba, 0xde, 0xe5, 0x2a, 0x52, 0x9b, 0xa7, 0xe7, 0xd0, 0x45, 0x75, 0xfc, 0xf6, + 0x56, 0x6f, 0x55, 0x35, 0x24, 0x09, 0x5b, 0xee, 0xb9, 0x5a, 0x54, 0x45, 0xb6, 0x51, 0x1e, 0xa0, + 0xd9, 0x0a, 0x95, 0xdf, 0xb2, 0xd3, 0x52, 0x47, 0x98, 0x33, 0xbd, 0x9c, 0x38, 0xc8, 0x94, 0xc4, + 0x46, 0x36, 0xd3, 0x50, 0xde, 0xd8, 0xac, 0x3e, 0x65, 0x9f, 0x67, 0xac, 0xf5, 0x6e, 0xaf, 0xed, + 0x96, 0x8e, 0xba, 0xfa, 0xe8, 0x69, 0x2f, 0x6c, 0xd1, 0xae, 0x65, 0x4a, 0x13, 0xb1, 0x66, 0x0e, + 0x0d, 0x64, 0xb6, 0xb3, 0x42, 0x19, 0x95, 0x8b, 0x39, 0x4e, 0x7e, 0x6f, 0xd5, 0x90, 0x96, 0x41, + 0x04, 0x11, 0xb3, 0xd2, 0x5f, 0xf4, 0xd6, 0xe2, 0x92, 0x65, 0x6f, 0x28, 0x4c, 0x0d, 0xcf, 0xf0, + 0x4c, 0xed, 0xeb, 0xa0, 0xc9, 0x95, 0xbf, 0x50, 0xc1, 0x67, 0xe8, 0x74, 0x55, 0xc7, 0x58, 0x79, + 0x5f, 0xa7, 0x6b, 0x4b, 0xf5, 0x0c, 0xdb, 0x4a, 0x4d, 0x35, 0x6d, 0x32, 0x56, 0xd4, 0xc5, 0xed, + 0xdd, 0x9f, 0x7f, 0x7d, 0xa1, 0xc2, 0x51, 0x3c, 0xcf, 0xdb, 0x91, 0x05, 0xff, 0x9e, 0x02, 0x23, + 0xd2, 0x53, 0x45, 0xd5, 0x52, 0x7f, 0xfe, 0xfc, 0x53, 0xd8, 0x58, 0x1a, 0xe6, 0xee, 0x25, 0x75, + 0x33, 0xe0, 0x81, 0x86, 0xee, 0xcd, 0xe7, 0x9f, 0x7f, 0x72, 0x1d, 0xf5, 0x25, 0xb5, 0x76, 0xcc, + 0x5b, 0x42, 0x62, 0xcc, 0x27, 0x43, 0x55, 0x30, 0x7c, 0x20, 0x34, 0x59, 0xe3, 0xdb, 0xd3, 0xe9, + 0xe7, 0x48, 0x30, 0x88, 0x5c, 0x44, 0xb4, 0x9f, 0x64, 0x9e, 0xab, 0x5d, 0x1d, 0x11, 0xca, 0x23, + 0xc6, 0x85, 0x17, 0x97, 0x7c, 0xac, 0x3a, 0x62, 0x48, 0xe1, 0x6b, 0x3f, 0x4c, 0x47, 0xda, 0x95, + 0x76, 0xf8, 0x03, 0x4b, 0x16, 0x90, 0x3e, 0xbd, 0x5c, 0xc8, 0x20, 0x7e, 0xd0, 0xf2, 0x46, 0x43, + 0xc2, 0x41, 0x1b, 0x77, 0x76, 0xf1, 0x47, 0xa9, 0x3b, 0x65, 0xf4, 0x5e, 0xf7, 0x2d, 0x5b, 0xd9, + 0xab, 0xb8, 0xfd, 0xee, 0xe3, 0x57, 0xc2, 0x48, 0xb2, 0x9e, 0x61, 0xac, 0x71, 0xcd, 0x5c, 0xe2, + 0xa6, 0x87, 0x57, 0x0e, 0x60, 0x73, 0x46, 0x5e, 0x58, 0x85, 0xe1, 0x3b, 0x55, 0x9d, 0x99, 0x23, + 0xd2, 0xd6, 0x47, 0x78, 0x6a, 0x0b, 0xcb, 0x45, 0x19, 0x76, 0x28, 0x0a, 0xb4, 0x82, 0xc7, 0x60, + 0xa8, 0x5a, 0x21, 0x48, 0x2d, 0xf0, 0x4b, 0x1d, 0xa9, 0x23, 0x44, 0x3f, 0xdb, 0xe3, 0x61, 0x37, + 0x0f, 0xcd, 0xd1, 0x04, 0x77, 0x36, 0xf0, 0x22, 0xd6, 0xb6, 0x10, 0xea, 0xe7, 0x96, 0xdb, 0xcd, + 0x28, 0xcb, 0x01, 0xbc, 0x05, 0x41, 0x45, 0xc6, 0x43, 0x95, 0x37, 0x7f, 0x59, 0x75, 0xf5, 0xf1, + 0xa0, 0x92, 0xc7, 0x9d, 0xd5, 0x21, 0x39, 0xbc, 0x1e, 0x22, 0x99, 0x41, 0x15, 0x7a, 0x3d, 0x1a, + 0xd0, 0x26, 0x34, 0xdf, 0x4c, 0x72, 0x1e, 0x7c, 0xb4, 0x4a, 0x43, 0x94, 0x9a, 0x62, 0x7e, 0xc8, + 0x6c, 0xd4, 0x1c, 0xc6, 0xcf, 0xd1, 0x8f, 0x0e, 0x45, 0x8e, 0x28, 0xc0, 0x46, 0x55, 0x18, 0x94, + 0x30, 0x12, 0x6f, 0xc8, 0xc5, 0x9d, 0x6c, 0x07, 0xad, 0x16, 0xec, 0x1e, 0x0f, 0x6b, 0x2e, 0x12, + 0x7c, 0xae, 0x7e, 0x91, 0xc4, 0xdd, 0xcb, 0x94, 0xc7, 0x98, 0x15, 0x18, 0x54, 0x16, 0xa8, 0x52, + 0x06, 0x16, 0x97, 0xf1, 0x7f, 0xf1, 0x40, 0xe2, 0x87, 0x8f, 0x3e, 0x04, 0x78, 0xe0, 0x17, 0x15, + 0x6b, 0x0c, 0x69, 0x33, 0x3e, 0x7e, 0x27, 0x7c, 0xaf, 0xe1, 0xce, 0x1e, 0x46, 0x9d, 0xa9, 0xe2, + 0x61, 0x46, 0xc4, 0xdc, 0xe4, 0x10, 0xdf, 0x46, 0xb9, 0x7c, 0xd9, 0xd2, 0x3b, 0x6d, 0x46, 0xc8, + 0xf3, 0x94, 0x6e, 0xaf, 0xd9, 0x55, 0xbe, 0xb9, 0xd1, 0xe9, 0x76, 0x79, 0x95, 0xef, 0x8e, 0x67, + 0x6d, 0x8d, 0xa3, 0xf2, 0xc3, 0xfd, 0xcc, 0x58, 0xf3, 0x5e, 0x7e, 0x9e, 0x33, 0xec, 0x75, 0x63, + 0x99, 0x77, 0x3a, 0xc6, 0x76, 0xdd, 0x5c, 0xe4, 0x77, 0xc3, 0xb9, 0x70, 0xdf, 0x12, 0xf2, 0x85, + 0xf2, 0xdc, 0xd4, 0x3a, 0x83, 0x3c, 0x55, 0x5b, 0xb0, 0x9a, 0x28, 0x52, 0x54, 0x8e, 0xa2, 0xfc, + 0x10, 0xbf, 0xeb, 0xf0, 0x6d, 0x0c, 0xbf, 0x75, 0x7f, 0x15, 0xfe, 0x3c, 0x84, 0xdf, 0xcc, 0xe7, + 0xa9, 0xb9, 0xd9, 0x3e, 0x83, 0xcf, 0x50, 0xf7, 0xc2, 0x74, 0xdf, 0xa5, 0x84, 0x5a, 0xc9, 0x9e, + 0xae, 0xb7, 0xcf, 0x85, 0x5a, 0x56, 0x9d, 0x8e, 0xba, 0xcf, 0x62, 0x6d, 0xaf, 0x4f, 0xeb, 0xdd, + 0xa7, 0x42, 0xcd, 0x5b, 0x68, 0x34, 0x53, 0x1c, 0xd5, 0x6c, 0x77, 0x52, 0xec, 0xe6, 0x94, 0xda, + 0x70, 0x34, 0x51, 0xb7, 0xb4, 0x55, 0x93, 0xa5, 0x49, 0xbb, 0xbb, 0x2f, 0xd4, 0xda, 0xbe, 0x4a, + 0x77, 0x77, 0xfd, 0x1a, 0x08, 0x93, 0xc4, 0xf8, 0xd9, 0x1a, 0x53, 0x52, 0x81, 0x8b, 0x65, 0x42, + 0xbf, 0xff, 0xea, 0x0f, 0xc0, 0x9f, 0x52, 0x14, 0x42, 0xa5, 0x13, 0x7e, 0x02, 0x37, 0xcb, 0x6a, + 0x21, 0xec, 0x63, 0x8e, 0x96, 0x00, 0xeb, 0x5a, 0xfb, 0x05, 0x13, 0xaf, 0x3f, 0xfc, 0x60, 0x29, + 0xcc, 0xb5, 0xc5, 0xb0, 0x4f, 0x2f, 0xcb, 0x54, 0x09, 0x95, 0x1b, 0x7e, 0x13, 0x61, 0x55, 0xe1, + 0x60, 0x1d, 0x18, 0xcb, 0x19, 0xd7, 0x15, 0xab, 0xfc, 0x8e, 0x33, 0xea, 0x3a, 0x27, 0xf3, 0x7d, + 0x69, 0xdf, 0xda, 0x0b, 0x43, 0x90, 0x49, 0x0c, 0x77, 0xc7, 0x53, 0xc5, 0x77, 0x7e, 0xcf, 0xb3, + 0x0d, 0x2a, 0xfb, 0x6e, 0x1a, 0xce, 0xa0, 0xb1, 0x1a, 0xc9, 0x00, 0xe7, 0x1e, 0xb1, 0xc2, 0x4e, + 0xd0, 0x1b, 0x73, 0x59, 0x96, 0x9c, 0x86, 0x0f, 0x74, 0x69, 0x0d, 0x81, 0xec, 0x82, 0x83, 0xcd, + 0x07, 0x2b, 0xa2, 0x36, 0x62, 0x40, 0x55, 0x59, 0xa9, 0xcb, 0x77, 0x39, 0x89, 0x31, 0x84, 0x19, + 0x6f, 0x8c, 0xfa, 0x5c, 0x8f, 0xeb, 0xf2, 0x3d, 0x69, 0x5f, 0xe9, 0x71, 0xb4, 0xb0, 0x57, 0xf7, + 0x70, 0x16, 0x16, 0x95, 0xf9, 0x39, 0xf5, 0x6e, 0xcf, 0x05, 0x53, 0x62, 0xe4, 0x4d, 0xf1, 0x1d, + 0x49, 0xec, 0x80, 0x52, 0xde, 0x07, 0x0d, 0x2f, 0xb9, 0x4f, 0xad, 0x4d, 0xc1, 0xf8, 0xfb, 0xb3, + 0x2c, 0xcb, 0x3d, 0x37, 0x38, 0x7f, 0x9d, 0x43, 0x15, 0xb1, 0x8d, 0x90, 0xc9, 0x61, 0x79, 0x45, + 0x75, 0x91, 0x1b, 0xa2, 0x9e, 0x9a, 0x43, 0x23, 0xc4, 0x6c, 0xcb, 0xfb, 0x7b, 0xd4, 0x2e, 0x95, + 0xe6, 0x62, 0x8d, 0xeb, 0x74, 0xf2, 0xe8, 0x69, 0x1f, 0x0a, 0x9c, 0xce, 0xc8, 0xd4, 0x13, 0x57, + 0x7e, 0xc7, 0xe7, 0x07, 0x24, 0x45, 0x4c, 0xcb, 0x3e, 0x3f, 0xac, 0xe9, 0xdc, 0xb0, 0x32, 0x93, + 0x80, 0xcd, 0x79, 0x86, 0xf1, 0x47, 0x1d, 0x80, 0xb3, 0xac, 0xef, 0xf2, 0x4c, 0x7d, 0x37, 0xa2, + 0x5b, 0x65, 0xf5, 0x1e, 0xf5, 0xd5, 0xac, 0xb0, 0xe7, 0x07, 0x95, 0x7d, 0x9e, 0x11, 0x7c, 0x21, + 0xdb, 0x82, 0xf7, 0xd6, 0x1e, 0xc6, 0xd8, 0xd1, 0x9c, 0xd7, 0x47, 0x35, 0x1e, 0xe6, 0xf2, 0x3b, + 0xbe, 0x5a, 0xe9, 0x8a, 0x21, 0xac, 0x12, 0x03, 0x74, 0xd8, 0x36, 0x76, 0x2e, 0xc5, 0xcd, 0x04, + 0xa5, 0x4a, 0x3f, 0x97, 0xc1, 0x67, 0xdd, 0x77, 0xcc, 0x3a, 0x27, 0xd2, 0xa5, 0x71, 0x75, 0x26, + 0xf4, 0x3a, 0x3b, 0xd7, 0x11, 0xfa, 0x33, 0x93, 0x07, 0xc7, 0xd2, 0x6e, 0x6e, 0x85, 0xce, 0xbe, + 0x30, 0xaa, 0x32, 0x33, 0x59, 0x2c, 0x57, 0x06, 0x9c, 0x8c, 0xba, 0xf2, 0xbc, 0x82, 0x64, 0x70, + 0x3e, 0x83, 0x72, 0x9e, 0xea, 0x23, 0x91, 0xf5, 0x19, 0xbe, 0x27, 0xb2, 0xee, 0xbb, 0x30, 0xf7, + 0x0b, 0xed, 0x9a, 0x44, 0x89, 0x9c, 0x9b, 0x6f, 0x73, 0x2e, 0x25, 0xd6, 0xa4, 0x7c, 0xbb, 0xef, + 0xef, 0x1a, 0x86, 0x87, 0xb8, 0x19, 0xef, 0x37, 0x7a, 0x0b, 0x9f, 0x1a, 0x98, 0x5c, 0x7b, 0xbf, + 0xb2, 0x9a, 0xbb, 0xd2, 0x5a, 0xac, 0x8c, 0x0a, 0x4d, 0xd6, 0x2f, 0xc8, 0x0b, 0xb4, 0x6e, 0xee, + 0x9e, 0xad, 0xf6, 0xdc, 0xe3, 0x18, 0x4c, 0x77, 0xbe, 0x0c, 0xfc, 0x6a, 0x13, 0x73, 0x0f, 0x82, + 0x93, 0xc5, 0x34, 0xe5, 0x7a, 0x42, 0x57, 0xd8, 0xaa, 0x83, 0xca, 0x36, 0xcf, 0x54, 0xb6, 0x23, + 0xb9, 0x82, 0xd4, 0x36, 0x12, 0x55, 0x90, 0x0d, 0xde, 0x6a, 0xea, 0x9c, 0x55, 0x9f, 0x4b, 0x99, + 0xf0, 0xec, 0xb9, 0x0a, 0xd0, 0x2a, 0x3e, 0xef, 0x5c, 0xd8, 0x25, 0x68, 0x62, 0x21, 0xc3, 0x1b, + 0xc8, 0x6e, 0x7e, 0x5a, 0xed, 0x2e, 0xe6, 0xac, 0xbe, 0xd0, 0x6a, 0x4b, 0xb3, 0xda, 0x95, 0x19, + 0xb1, 0x2b, 0xbd, 0xad, 0x6a, 0xb3, 0x7c, 0x9d, 0x35, 0x84, 0xb7, 0x6a, 0xb7, 0x54, 0x82, 0xb3, + 0x8c, 0x2a, 0x34, 0x97, 0x6b, 0xcd, 0xf3, 0xf7, 0xad, 0xf9, 0xa4, 0x5b, 0xd9, 0xea, 0x25, 0x01, + 0x78, 0x43, 0x78, 0x4d, 0x67, 0x14, 0x9e, 0xad, 0x34, 0xe0, 0x3c, 0xae, 0xc4, 0xc9, 0x55, 0xa5, + 0x9b, 0xd7, 0x6a, 0xb3, 0xc2, 0xaa, 0xbb, 0x90, 0xc5, 0x26, 0xbb, 0x58, 0xf5, 0x0c, 0x4e, 0xaf, + 0xce, 0xfd, 0x95, 0xc6, 0x8d, 0xa2, 0xb5, 0x21, 0xac, 0x42, 0x55, 0x63, 0x17, 0x11, 0xbf, 0x33, + 0x54, 0x71, 0x54, 0x9e, 0xa3, 0xa6, 0x82, 0xb8, 0x3c, 0x1a, 0x60, 0x13, 0xd7, 0x55, 0x35, 0x24, + 0x96, 0x98, 0xb2, 0xce, 0x6d, 0x90, 0x98, 0x67, 0xca, 0x3e, 0xd7, 0x46, 0x3d, 0x97, 0x01, 0xf9, + 0xdc, 0xa0, 0x1e, 0xf0, 0xdc, 0x57, 0xab, 0x75, 0xa3, 0xc4, 0xd4, 0xe7, 0x23, 0x0a, 0xb7, 0x5b, + 0x7d, 0x31, 0xdb, 0xda, 0xa9, 0x6b, 0xd4, 0x2f, 0x31, 0x1d, 0x9d, 0x9b, 0xa2, 0x7e, 0x9e, 0xe9, + 0xf8, 0x1c, 0xc8, 0x84, 0xcb, 0x08, 0xb3, 0xd1, 0x14, 0x75, 0x81, 0x0e, 0x7b, 0x35, 0x8b, 0x79, + 0x5e, 0xd1, 0x41, 0x76, 0xba, 0x84, 0x2e, 0x55, 0xc6, 0x97, 0x76, 0x2d, 0xa0, 0x57, 0xdd, 0x10, + 0x0c, 0x06, 0x64, 0xab, 0xa2, 0x0b, 0x5b, 0x59, 0x1c, 0x95, 0x99, 0x0a, 0x5f, 0x2e, 0xfb, 0x93, + 0x65, 0x79, 0x27, 0xf4, 0x61, 0xef, 0x26, 0xdb, 0x10, 0x79, 0xd6, 0xe7, 0x44, 0x6e, 0xc7, 0x8b, + 0x6f, 0xba, 0xda, 0xc6, 0xe3, 0xc8, 0x97, 0x87, 0x48, 0xe7, 0x58, 0x24, 0x8f, 0xaa, 0xc8, 0xef, + 0xf6, 0x90, 0x5f, 0xaa, 0xbd, 0xe9, 0xa5, 0x39, 0xe7, 0x97, 0x18, 0xd6, 0x37, 0x16, 0x2c, 0x72, + 0x19, 0x8e, 0x11, 0x0c, 0xae, 0x3a, 0xaa, 0x95, 0x75, 0x3c, 0x2e, 0x54, 0x64, 0x9f, 0x67, 0x90, + 0x58, 0xbb, 0xdf, 0xef, 0x9f, 0xc7, 0x83, 0x7d, 0x89, 0x1a, 0xd0, 0x2e, 0x53, 0x05, 0xb0, 0x65, + 0x5f, 0x6b, 0x01, 0x2e, 0xb0, 0x0d, 0xbc, 0x54, 0x7d, 0x9e, 0xd5, 0x6d, 0x7e, 0x8c, 0x74, 0xa9, + 0xcc, 0x2e, 0x58, 0x46, 0xc4, 0x63, 0x25, 0xae, 0x8b, 0x6c, 0x09, 0xfa, 0x25, 0x76, 0xf1, 0x37, + 0xe7, 0x5b, 0xf5, 0x71, 0x27, 0xda, 0x0f, 0xab, 0x98, 0x8f, 0x1c, 0x2a, 0x2f, 0x96, 0x69, 0x51, + 0x90, 0x11, 0x93, 0x07, 0xd7, 0xc4, 0xf4, 0xb0, 0x5c, 0x09, 0x33, 0xa0, 0x79, 0x17, 0xe4, 0xaa, + 0x27, 0x64, 0x42, 0xbd, 0x02, 0xbd, 0x09, 0x64, 0x0b, 0xf7, 0x85, 0xb2, 0xb3, 0xe7, 0xb6, 0xd2, + 0x90, 0xd9, 0xa9, 0xb5, 0xfa, 0x5e, 0xa5, 0x41, 0xde, 0x40, 0xf7, 0x46, 0x7b, 0xa0, 0x31, 0xc8, + 0xe1, 0xa8, 0x86, 0xf6, 0xb1, 0x9e, 0xce, 0x5b, 0x2c, 0xf0, 0x03, 0x74, 0x14, 0xe4, 0x12, 0xce, + 0xcf, 0xd5, 0x18, 0xdc, 0x17, 0xe9, 0xa9, 0xcf, 0xa3, 0xce, 0x7c, 0x94, 0x93, 0xba, 0xea, 0x48, + 0x9e, 0xa1, 0x6e, 0xdb, 0x50, 0x2d, 0x90, 0x7f, 0xab, 0xbe, 0xb7, 0x21, 0x2c, 0x1c, 0x45, 0xf2, + 0xe6, 0x2c, 0xfa, 0x3b, 0x30, 0x2f, 0xbb, 0x6e, 0x8d, 0x15, 0x29, 0x18, 0xa7, 0xea, 0x8c, 0xef, + 0x8c, 0xe4, 0x37, 0x59, 0x67, 0x45, 0x53, 0x06, 0x59, 0x53, 0xa4, 0xb7, 0x8a, 0x54, 0x01, 0x56, + 0x2e, 0x41, 0x7e, 0x4d, 0xc9, 0xac, 0xf3, 0x8c, 0x2c, 0x2f, 0x39, 0x56, 0xd9, 0xea, 0x43, 0x09, + 0xf6, 0xe9, 0x18, 0x21, 0x4c, 0x26, 0xdc, 0xa3, 0x9c, 0xcf, 0xb6, 0x68, 0x6e, 0x58, 0xed, 0x14, + 0xf6, 0xf3, 0x37, 0xae, 0xa4, 0xf3, 0xa8, 0xb4, 0x18, 0x65, 0x5a, 0x2d, 0x96, 0x73, 0x3b, 0xfb, + 0x92, 0xcb, 0xf7, 0xc5, 0x16, 0x9a, 0xab, 0x21, 0x9c, 0x4a, 0xa4, 0x0b, 0x91, 0x6e, 0xcc, 0x64, + 0x73, 0x80, 0xea, 0xac, 0x44, 0xec, 0xbc, 0x3c, 0xbd, 0x97, 0x51, 0xd1, 0x65, 0x8b, 0x3e, 0xf8, + 0x6b, 0x16, 0x87, 0x3c, 0xdc, 0xee, 0x03, 0x3a, 0xb9, 0xe7, 0x76, 0x6a, 0xae, 0xe9, 0x73, 0x20, + 0x83, 0x6a, 0xad, 0x05, 0x74, 0x18, 0x70, 0x85, 0xf6, 0x84, 0xe5, 0x0c, 0xde, 0xa8, 0x64, 0xfa, + 0x8b, 0xc2, 0x68, 0x20, 0xd1, 0x89, 0x36, 0xfd, 0xe6, 0xb1, 0xf7, 0xd3, 0x8c, 0x59, 0xef, 0x65, + 0x56, 0xa5, 0x8d, 0x87, 0x9a, 0x4e, 0x3c, 0xef, 0x74, 0x5d, 0xd8, 0xa6, 0xe4, 0x61, 0xdb, 0xe8, + 0x02, 0xb5, 0x66, 0x8d, 0xc6, 0x7e, 0x90, 0x09, 0xf8, 0x5d, 0x90, 0x80, 0xdf, 0x4d, 0x07, 0x7b, + 0x9a, 0x86, 0x48, 0x82, 0x47, 0x33, 0xe4, 0x21, 0xe6, 0xd1, 0x1e, 0xf3, 0x0c, 0xf4, 0x26, 0x07, + 0x7e, 0x65, 0xd6, 0xea, 0x0b, 0x32, 0xdf, 0x95, 0xe6, 0x4c, 0xc8, 0x7b, 0x90, 0x7f, 0x93, 0xdb, + 0x09, 0x16, 0xef, 0xab, 0x73, 0x6e, 0x2f, 0x94, 0x85, 0x9d, 0xca, 0xd6, 0x7b, 0x6c, 0x85, 0xee, + 0xe7, 0xde, 0x1a, 0x1c, 0x1a, 0xca, 0x5d, 0x71, 0x5b, 0x33, 0x0a, 0x5c, 0x65, 0x9a, 0x5f, 0xa0, + 0xde, 0x6a, 0x00, 0xbf, 0xcf, 0xec, 0x16, 0x89, 0x75, 0xd0, 0xf5, 0x1a, 0x64, 0x0b, 0x43, 0x81, + 0x91, 0x05, 0xc1, 0xf5, 0x65, 0x95, 0x91, 0xc7, 0xf9, 0x55, 0x65, 0x23, 0x6b, 0x15, 0x7a, 0x9e, + 0x1b, 0x34, 0x07, 0x7c, 0xa6, 0xbe, 0xd0, 0x67, 0x42, 0x4e, 0x04, 0x8f, 0xf1, 0x36, 0x90, 0x7b, + 0xa3, 0x45, 0x5d, 0x1a, 0xcd, 0x78, 0xd0, 0xd1, 0xf1, 0x34, 0x8f, 0x80, 0x37, 0x2c, 0xea, 0x3c, + 0x0d, 0xd6, 0xc4, 0x48, 0x08, 0xa8, 0x81, 0x65, 0xf7, 0x19, 0x44, 0x1a, 0xa1, 0x31, 0xf8, 0x58, + 0x24, 0xfa, 0x49, 0xbf, 0xa0, 0x56, 0x43, 0xbf, 0x30, 0xe7, 0x8d, 0x40, 0xee, 0xea, 0x60, 0xff, + 0xf0, 0x99, 0x5a, 0xb3, 0xa4, 0xdd, 0x3b, 0x93, 0x49, 0x29, 0xe4, 0x59, 0x3f, 0x94, 0x61, 0x58, + 0x8f, 0xfd, 0xc9, 0x88, 0x45, 0x15, 0xa6, 0xde, 0x1b, 0xda, 0x9b, 0xe6, 0xd6, 0x1d, 0x83, 0x4d, + 0x2e, 0xf6, 0x24, 0x53, 0x94, 0x38, 0xb3, 0xae, 0x19, 0xa5, 0x4d, 0x75, 0xeb, 0x6e, 0x9a, 0xb9, + 0x55, 0xbd, 0x27, 0x23, 0xb7, 0xbe, 0x53, 0x8b, 0xa0, 0x6c, 0x22, 0xd7, 0xb7, 0xad, 0xfa, 0xce, + 0x3f, 0x6d, 0xd3, 0xbd, 0x8c, 0x4b, 0xb7, 0x24, 0xaf, 0x89, 0x6c, 0x04, 0x72, 0x2d, 0x3d, 0xb5, + 0x33, 0x6f, 0xd5, 0xf6, 0xde, 0x93, 0x03, 0x5b, 0x98, 0x6c, 0xcf, 0x9f, 0x8b, 0xdb, 0x13, 0x5d, + 0x60, 0x4e, 0xda, 0xa8, 0x22, 0xf7, 0xf6, 0x52, 0x08, 0xd3, 0x8d, 0x82, 0x8c, 0x88, 0xbf, 0x24, + 0x37, 0x68, 0xea, 0x38, 0x3e, 0xc4, 0xc4, 0xe1, 0x0c, 0xe0, 0xa1, 0x05, 0x34, 0xd8, 0xc7, 0xba, + 0x8d, 0x69, 0xb4, 0xc3, 0x3a, 0x28, 0x45, 0x3a, 0x6e, 0xb6, 0x7c, 0xae, 0x56, 0xf7, 0x89, 0x6f, + 0x0c, 0x64, 0xd5, 0x20, 0x3a, 0x6a, 0x9d, 0xf9, 0x8e, 0xb9, 0x6a, 0x01, 0xcd, 0x22, 0xfa, 0xe4, + 0xc0, 0xbe, 0xee, 0x2a, 0xb3, 0x0c, 0x03, 0xf1, 0x87, 0x5c, 0xdf, 0xd6, 0xd5, 0x3a, 0x3d, 0xf2, + 0x80, 0x3e, 0xbc, 0xb6, 0xcb, 0x6f, 0x6a, 0xcc, 0xa4, 0x29, 0xd4, 0x32, 0x35, 0x36, 0xc4, 0x9f, + 0x32, 0x16, 0x39, 0xb4, 0x11, 0xb3, 0xf3, 0x9d, 0xa7, 0x09, 0x66, 0x4c, 0xd7, 0x37, 0xa9, 0x2f, + 0xf5, 0x0d, 0xdd, 0x16, 0x38, 0x86, 0x2b, 0x02, 0xdd, 0xdc, 0x6a, 0xaf, 0x34, 0x10, 0xb1, 0x7d, + 0xdd, 0xcb, 0x4d, 0xa4, 0x57, 0xb2, 0xcc, 0xfe, 0xad, 0x81, 0x66, 0x12, 0xcf, 0xd0, 0x7e, 0xa7, + 0x0c, 0x3a, 0x2d, 0xf7, 0xdd, 0xa7, 0xee, 0x7c, 0xbb, 0x6c, 0x0c, 0x33, 0xbd, 0xfa, 0x56, 0x0a, + 0x69, 0xcd, 0xd0, 0xad, 0x4d, 0x46, 0x68, 0xe5, 0x4b, 0x5d, 0x2e, 0x9e, 0xf3, 0xec, 0x35, 0xba, + 0xbd, 0x66, 0xc5, 0x28, 0xbd, 0x35, 0x59, 0xd5, 0x6a, 0xcf, 0x38, 0xb1, 0x8c, 0x56, 0x2c, 0x48, + 0x65, 0xb3, 0x25, 0x02, 0xfc, 0xac, 0xc0, 0x00, 0x1d, 0x6b, 0x81, 0xff, 0x61, 0x1d, 0x2a, 0xeb, + 0x96, 0x65, 0x62, 0x0f, 0x17, 0x48, 0xd0, 0x4f, 0xe2, 0x8d, 0x80, 0x86, 0x07, 0xd9, 0xd9, 0x4a, + 0x56, 0x6b, 0x2b, 0x75, 0x5b, 0x58, 0x7f, 0x7b, 0x09, 0xfd, 0x9e, 0xab, 0x43, 0xa0, 0x8f, 0x5c, + 0x61, 0x02, 0x5a, 0x83, 0x5f, 0xab, 0x75, 0xe6, 0x85, 0x49, 0x75, 0x6b, 0xab, 0xd5, 0x7e, 0x1e, + 0xf0, 0x17, 0xa5, 0xae, 0x91, 0xdf, 0xb4, 0x94, 0xb5, 0xf3, 0x5e, 0xf4, 0x2e, 0x8e, 0xa1, 0x95, + 0x04, 0x71, 0x48, 0xe6, 0xbe, 0xb3, 0x50, 0x77, 0x43, 0x56, 0xa7, 0xaa, 0xf3, 0x8c, 0xde, 0xea, + 0x95, 0xd6, 0xdd, 0x99, 0x28, 0xe9, 0x8d, 0xf5, 0xbb, 0xde, 0xc9, 0x3a, 0xe4, 0x9d, 0x81, 0xb4, + 0xa9, 0x9f, 0xbf, 0xef, 0xee, 0xeb, 0x6a, 0xa3, 0x5c, 0x52, 0x3a, 0x3d, 0x44, 0x37, 0x77, 0x85, + 0x6a, 0x05, 0x07, 0x59, 0x3a, 0x87, 0xc3, 0xcb, 0x32, 0xce, 0xb0, 0xb0, 0x9d, 0x62, 0x82, 0xf8, + 0x91, 0x01, 0x29, 0xe8, 0xf2, 0x38, 0x5e, 0x1c, 0x78, 0x08, 0x22, 0x34, 0x1c, 0x67, 0x52, 0x78, + 0x22, 0x15, 0x64, 0x43, 0x0c, 0x91, 0x24, 0x1f, 0x47, 0x5c, 0x38, 0x38, 0xc5, 0xd9, 0x15, 0xb7, + 0xc7, 0xb1, 0x06, 0xe7, 0x63, 0x69, 0x06, 0x7b, 0xf8, 0x26, 0x31, 0x8a, 0x5f, 0xc7, 0xf3, 0x41, + 0x2f, 0x71, 0xdc, 0x0b, 0x71, 0x1f, 0x09, 0x5e, 0x99, 0x21, 0x55, 0x50, 0x71, 0xbc, 0xb6, 0xc2, + 0x7a, 0x0a, 0x29, 0x4b, 0x13, 0x07, 0x7b, 0x40, 0x5c, 0x13, 0xb1, 0x79, 0xd4, 0x17, 0x89, 0x3f, + 0xaf, 0x70, 0xdd, 0x12, 0xc3, 0x74, 0xb9, 0x61, 0x7d, 0xcb, 0x99, 0x28, 0x96, 0x43, 0x55, 0x26, + 0x7a, 0xbb, 0x13, 0xf0, 0xe7, 0x32, 0xa6, 0x39, 0x83, 0xe5, 0x72, 0x2f, 0xf4, 0x5b, 0x44, 0x2f, + 0x25, 0x4c, 0x73, 0x26, 0xb2, 0xa7, 0xcc, 0x5e, 0xca, 0x9e, 0xea, 0x72, 0x7d, 0x2f, 0xc5, 0xb1, + 0x10, 0x32, 0xe8, 0x7b, 0xca, 0x67, 0xd9, 0xe9, 0xa6, 0x84, 0xc0, 0x25, 0x32, 0xa8, 0x35, 0x5a, + 0xcb, 0x3d, 0xe1, 0x59, 0xa8, 0xb5, 0x50, 0x7e, 0xe6, 0x2f, 0x18, 0x59, 0xad, 0x09, 0x3d, 0x95, + 0x67, 0x7a, 0xa2, 0xda, 0xe9, 0xa9, 0x5b, 0x86, 0x9e, 0x70, 0x9d, 0x5e, 0x4b, 0x6e, 0x2e, 0x98, + 0x3d, 0x58, 0x98, 0x42, 0x6d, 0x46, 0x5b, 0xdd, 0xc5, 0x9b, 0xd8, 0xd9, 0x8f, 0xb2, 0x12, 0x03, + 0xfa, 0x32, 0x9b, 0x88, 0x2d, 0x88, 0x31, 0x24, 0xee, 0xad, 0xfa, 0xb6, 0xcd, 0x68, 0xe8, 0xad, + 0xa0, 0xf9, 0x90, 0x76, 0x8d, 0xcc, 0x27, 0xc8, 0x58, 0x19, 0x88, 0x46, 0x8a, 0x40, 0xb2, 0x4a, + 0xef, 0x00, 0x4f, 0x63, 0x78, 0x5a, 0x5a, 0x8b, 0x35, 0xc1, 0xa7, 0x5c, 0x75, 0x2d, 0xb3, 0x22, + 0xd9, 0x9b, 0x5a, 0x73, 0xcf, 0xe0, 0xc3, 0xc0, 0xff, 0xab, 0xdb, 0xba, 0x5f, 0x69, 0x48, 0x19, + 0xb3, 0xa1, 0xf6, 0xa4, 0x05, 0x2b, 0xab, 0x3c, 0xec, 0x39, 0x6e, 0xf7, 0x57, 0x8c, 0xd8, 0xb7, + 0x0b, 0x03, 0xd8, 0x83, 0xad, 0xa8, 0xf5, 0x3a, 0x2b, 0x6f, 0x7b, 0x0b, 0xb3, 0x4f, 0xf4, 0x1b, + 0x68, 0x4f, 0xdd, 0xbb, 0x40, 0xdf, 0x86, 0x8c, 0x59, 0x54, 0xd3, 0xd1, 0x3b, 0x2a, 0xeb, 0xa8, + 0x1b, 0xc4, 0xc5, 0x83, 0xca, 0x21, 0x76, 0xa7, 0x39, 0x88, 0x83, 0x84, 0x1d, 0xc7, 0x84, 0x7e, + 0x39, 0x57, 0x0f, 0x74, 0x18, 0x62, 0x62, 0xf5, 0x24, 0xce, 0x91, 0x02, 0x1b, 0x60, 0xa8, 0xb5, + 0x1a, 0x96, 0xd9, 0xc0, 0x77, 0x0f, 0x2a, 0x24, 0xc7, 0xe0, 0x97, 0x38, 0x9e, 0x12, 0xfc, 0x96, + 0x5c, 0x2f, 0xf3, 0xbb, 0x7a, 0x87, 0x1e, 0x90, 0x77, 0xd4, 0x78, 0xa7, 0xa6, 0x23, 0xb3, 0x6e, + 0x8c, 0xcc, 0x0e, 0xb4, 0x85, 0x79, 0x73, 0xdb, 0xcd, 0x76, 0x17, 0xdd, 0xcc, 0x64, 0xf1, 0x06, + 0x81, 0x9b, 0x30, 0xc7, 0x7d, 0x3e, 0x19, 0xf7, 0x7a, 0x90, 0x0f, 0x18, 0xc2, 0x1c, 0xfa, 0xe6, + 0x20, 0xd3, 0x90, 0x9f, 0xe4, 0x11, 0xe4, 0x27, 0x3b, 0x1e, 0xfc, 0x1d, 0xbf, 0x6f, 0x3e, 0x3f, + 0x1b, 0x6f, 0x9a, 0xd0, 0xaf, 0x4c, 0xeb, 0x7d, 0x7f, 0x3b, 0x5d, 0xd4, 0xd9, 0x69, 0xbf, 0x5e, + 0x7d, 0xe3, 0x26, 0x35, 0x08, 0x38, 0x6b, 0x00, 0xb3, 0x2a, 0x0c, 0x0b, 0xac, 0x68, 0x65, 0x76, + 0x1d, 0x36, 0x9c, 0x27, 0x72, 0x8d, 0x08, 0x1e, 0xc0, 0x21, 0xfe, 0xe0, 0x9d, 0xa2, 0x1c, 0x94, + 0x11, 0x58, 0xdd, 0xc7, 0x42, 0x97, 0x01, 0xbb, 0x87, 0xf3, 0x2b, 0x31, 0xc8, 0x01, 0xa2, 0x73, + 0x74, 0x0f, 0x3e, 0x99, 0xdf, 0x8b, 0xa1, 0x7d, 0x13, 0xe8, 0x4a, 0xff, 0x42, 0x9c, 0xb2, 0x1f, + 0x38, 0x2d, 0x43, 0x5d, 0xb6, 0xf6, 0x58, 0xa6, 0x94, 0xba, 0x36, 0x5c, 0x66, 0x5a, 0x65, 0xb9, + 0xd0, 0xd8, 0xad, 0xfb, 0xa3, 0x6c, 0xcb, 0x97, 0x33, 0x74, 0x4b, 0xdd, 0x71, 0x33, 0x0d, 0x62, + 0x16, 0x69, 0xae, 0xe6, 0x3a, 0x0b, 0x3d, 0x9c, 0x3b, 0xca, 0xd6, 0x7d, 0xfe, 0xa9, 0xd5, 0xef, + 0x65, 0x60, 0x4d, 0x5d, 0xad, 0xb6, 0xe6, 0x0b, 0xc8, 0x1b, 0xb4, 0x29, 0x3f, 0xe3, 0x87, 0xad, + 0x56, 0x5f, 0x56, 0xef, 0x5b, 0xfb, 0x49, 0xaf, 0xca, 0x4c, 0x0a, 0xc4, 0xde, 0x88, 0x65, 0xe0, + 0xa3, 0x04, 0xf9, 0x5d, 0xdd, 0x09, 0xea, 0x38, 0x90, 0xdb, 0x81, 0x9e, 0x61, 0xdf, 0xcb, 0xf5, + 0xe1, 0x5d, 0x14, 0x1c, 0xca, 0x67, 0x06, 0x38, 0x3f, 0x46, 0x95, 0x11, 0xae, 0xb9, 0xc9, 0xf1, + 0x67, 0xac, 0x77, 0xe4, 0x67, 0x04, 0xf1, 0x07, 0x9c, 0x3f, 0x8f, 0x58, 0x53, 0xc4, 0xfa, 0xc6, + 0x61, 0x7d, 0x9b, 0xe1, 0x38, 0x04, 0xfb, 0xc9, 0xd6, 0x1e, 0xe7, 0x6f, 0x02, 0xe4, 0x6f, 0x70, + 0xbe, 0xbe, 0x40, 0xa3, 0xe0, 0x5d, 0x66, 0x70, 0xbf, 0xa8, 0x92, 0xb1, 0x16, 0xc4, 0xb6, 0xe0, + 0xe7, 0x67, 0x40, 0x23, 0x1a, 0xbf, 0x73, 0xb0, 0x7f, 0xa5, 0x57, 0x91, 0x75, 0x9e, 0x19, 0x40, + 0x4e, 0xe4, 0x34, 0xe8, 0xb7, 0x81, 0xce, 0x6d, 0x05, 0x2c, 0x4a, 0xb4, 0x5e, 0x97, 0x29, 0xc5, + 0x65, 0xe5, 0x69, 0xd6, 0x41, 0xe6, 0xf0, 0xf9, 0x3d, 0xeb, 0xbe, 0xbf, 0x1b, 0xf6, 0xa0, 0x31, + 0x1b, 0x31, 0xe0, 0xa7, 0xdf, 0xdf, 0x6d, 0xf4, 0x5e, 0x37, 0x6d, 0xfc, 0x0b, 0x78, 0xbe, 0x41, + 0x6e, 0xb8, 0x1a, 0xc8, 0x60, 0x87, 0x64, 0x73, 0x14, 0xc8, 0x2f, 0xf8, 0x27, 0xb0, 0x0f, 0x0e, + 0x36, 0x0e, 0x6d, 0x8c, 0x6c, 0x05, 0xcc, 0x10, 0xba, 0x98, 0xd7, 0xc5, 0xfe, 0x1b, 0x64, 0x30, + 0xf0, 0xdf, 0x73, 0xc8, 0x77, 0xe6, 0x41, 0xdc, 0x08, 0x7d, 0x11, 0x0f, 0x8d, 0x70, 0x7e, 0x6c, + 0x6f, 0xb9, 0x48, 0x6e, 0x23, 0xfe, 0xf7, 0x8e, 0xdb, 0x78, 0xbc, 0xbe, 0xc3, 0x79, 0x84, 0x00, + 0xbe, 0x7d, 0xd6, 0xee, 0x5b, 0x22, 0xe8, 0x0c, 0x3f, 0x9b, 0x40, 0xdc, 0x34, 0xa8, 0x98, 0xad, + 0x44, 0xbb, 0x35, 0x90, 0x54, 0xc8, 0x03, 0x33, 0x90, 0x03, 0x86, 0x76, 0x36, 0x73, 0xdc, 0xce, + 0x31, 0xf6, 0xb2, 0x0e, 0x9f, 0xc1, 0x91, 0xdd, 0xaf, 0xb7, 0xae, 0x59, 0xef, 0xba, 0x4a, 0xdd, + 0x78, 0x7b, 0xea, 0xe5, 0x24, 0x05, 0x8d, 0x45, 0x65, 0x22, 0x41, 0x5c, 0xb8, 0x8b, 0x60, 0x9f, + 0xee, 0x15, 0xb6, 0x37, 0x19, 0x54, 0x9d, 0x79, 0x13, 0xf0, 0x03, 0xb5, 0xee, 0x3e, 0x7f, 0x3f, + 0x04, 0x18, 0xa7, 0x6d, 0x60, 0xb3, 0x09, 0x3e, 0x22, 0xdc, 0x4b, 0x1a, 0x57, 0x8d, 0xd1, 0xb2, + 0x3a, 0x73, 0x4d, 0x6a, 0xbd, 0x92, 0x44, 0x88, 0x96, 0x02, 0x79, 0x02, 0x1b, 0x5e, 0xc0, 0xf2, + 0x84, 0xe3, 0x3b, 0xfe, 0x5a, 0x1c, 0x7a, 0x88, 0x87, 0xe6, 0xb1, 0xef, 0x27, 0xb1, 0x01, 0xd8, + 0xb1, 0x11, 0xc4, 0x8f, 0x19, 0xa0, 0x97, 0xc1, 0x0f, 0xbb, 0xed, 0xbe, 0xa9, 0x1b, 0x22, 0x53, + 0x00, 0x1b, 0x3b, 0xe9, 0x40, 0x5c, 0x35, 0xac, 0x2c, 0x4a, 0xb9, 0x56, 0x86, 0xd3, 0x44, 0x96, + 0x3f, 0x3f, 0x93, 0x6e, 0x37, 0x2a, 0xac, 0x6e, 0x29, 0x8b, 0x0a, 0xd3, 0xe3, 0x66, 0x8c, 0x38, + 0xb0, 0xad, 0x06, 0x23, 0x36, 0x58, 0xe2, 0x53, 0xc0, 0x07, 0x31, 0x39, 0x6a, 0x28, 0x76, 0xe6, + 0x68, 0x27, 0xa0, 0x32, 0xc4, 0xa1, 0xd8, 0x6e, 0x01, 0x7e, 0x43, 0x66, 0x0b, 0xf1, 0xe5, 0x4e, + 0x9d, 0xb7, 0x7a, 0x6a, 0x0e, 0xe4, 0x32, 0x57, 0xd9, 0x0b, 0xcc, 0x87, 0x78, 0x7c, 0xc1, 0x46, + 0xcd, 0xed, 0x27, 0x1e, 0x52, 0x09, 0x3e, 0x7a, 0xa7, 0xde, 0xdd, 0xc8, 0x17, 0x4a, 0x15, 0x6e, + 0xb4, 0x6e, 0x42, 0xbc, 0x74, 0xdc, 0x96, 0x23, 0x3b, 0xb3, 0xe8, 0xfa, 0xb5, 0x56, 0x72, 0x2d, + 0xbc, 0x3f, 0xbf, 0x47, 0x7e, 0xba, 0x2f, 0x6d, 0x9a, 0x8b, 0x91, 0x84, 0xd7, 0x1d, 0xb5, 0x51, + 0xd5, 0x39, 0xd8, 0x2a, 0x11, 0xe4, 0x9b, 0x45, 0xb8, 0x5e, 0xa3, 0x23, 0x5c, 0xaf, 0xd0, 0x51, + 0x8b, 0x94, 0xc9, 0xfd, 0x6b, 0xf2, 0xed, 0xa0, 0x1e, 0xa9, 0x41, 0x04, 0x3e, 0x2b, 0x38, 0xcb, + 0x69, 0x8e, 0x50, 0x16, 0xe6, 0x71, 0xdd, 0x02, 0xce, 0x3e, 0xca, 0x9d, 0xb4, 0xf7, 0x27, 0xed, + 0xe1, 0x49, 0x1b, 0xc7, 0xae, 0x41, 0x4e, 0x34, 0xe3, 0xba, 0xed, 0x1e, 0xc4, 0x8f, 0x9c, 0xaf, + 0xd4, 0xf5, 0x45, 0x8d, 0x45, 0x0b, 0xb3, 0x4a, 0x47, 0x63, 0x41, 0xfe, 0xb4, 0x8c, 0xe5, 0x57, + 0x51, 0xaa, 0x3b, 0x29, 0x90, 0xb7, 0x0d, 0x82, 0xf6, 0x88, 0xb4, 0x97, 0x07, 0xf9, 0x63, 0x7d, + 0xc6, 0x1d, 0x0f, 0xcb, 0x79, 0xaa, 0x1b, 0xe5, 0x55, 0x20, 0x93, 0x65, 0x66, 0xc4, 0xb3, 0xdd, + 0x91, 0x00, 0x73, 0x4f, 0x6a, 0x08, 0x4f, 0xf7, 0x3a, 0x0b, 0x32, 0x4b, 0x60, 0xba, 0xe6, 0xfb, + 0xee, 0x20, 0xbf, 0xc1, 0x7e, 0x18, 0xfe, 0xc0, 0x81, 0xcf, 0x81, 0x6c, 0xef, 0xa4, 0xb0, 0x1e, + 0x10, 0xd0, 0x73, 0x82, 0x1a, 0x19, 0x5c, 0x8f, 0x2d, 0x63, 0x7b, 0xe6, 0xe3, 0xba, 0x11, 0xd8, + 0x31, 0x51, 0xb5, 0x80, 0x3e, 0xbb, 0x9a, 0xcf, 0x0d, 0x2a, 0x10, 0xda, 0x64, 0x1b, 0xe5, 0xfb, + 0x46, 0x03, 0xb1, 0xcf, 0x5c, 0x51, 0xef, 0xeb, 0xfe, 0xbc, 0x3c, 0x10, 0x85, 0x11, 0xaa, 0x8d, + 0xec, 0x4e, 0xde, 0xb6, 0x51, 0x35, 0xd3, 0x7f, 0x67, 0xda, 0x65, 0xb4, 0x5d, 0x94, 0x7b, 0x42, + 0x10, 0x2a, 0xf7, 0x36, 0x94, 0x29, 0x36, 0x65, 0xb4, 0x76, 0x49, 0x69, 0x15, 0xf5, 0xb8, 0xb2, + 0x00, 0xf1, 0x0d, 0xbf, 0xe5, 0x98, 0x86, 0x5f, 0x7d, 0x7f, 0x7f, 0x77, 0xee, 0x69, 0x1b, 0xb1, + 0x45, 0xaa, 0xf8, 0x0e, 0x71, 0x0e, 0x84, 0x4e, 0xb5, 0x41, 0x80, 0xd4, 0x02, 0xe9, 0x9d, 0x67, + 0x6c, 0x6f, 0xcb, 0x15, 0x52, 0x5f, 0x54, 0xf1, 0x73, 0x8f, 0x31, 0x62, 0x4a, 0x88, 0xf7, 0x91, + 0x85, 0x58, 0x97, 0x54, 0x6e, 0x99, 0x3e, 0xd8, 0xd7, 0x2e, 0xd8, 0xdd, 0xad, 0x64, 0x82, 0xff, + 0x7d, 0x42, 0x90, 0x47, 0x71, 0x38, 0x9f, 0x0a, 0x7c, 0x91, 0x89, 0x73, 0x0c, 0x88, 0xc1, 0xba, + 0x02, 0xec, 0x87, 0xed, 0x31, 0x3a, 0xcc, 0x2f, 0x43, 0x1b, 0x62, 0xcd, 0x06, 0xc4, 0x66, 0x6f, + 0x32, 0x25, 0xa2, 0x1d, 0x5f, 0xc4, 0x71, 0xa2, 0x3b, 0x17, 0xf4, 0x86, 0xc3, 0xef, 0xc1, 0xfe, + 0xbe, 0x43, 0x6e, 0x85, 0x6d, 0xa9, 0x0f, 0xb1, 0x98, 0x09, 0x11, 0x5c, 0xbf, 0x0e, 0x73, 0x25, + 0xe0, 0xb5, 0x2c, 0xbf, 0xef, 0x84, 0x1d, 0xd8, 0xe6, 0x77, 0xb9, 0x0f, 0xfe, 0xd6, 0x7c, 0x93, + 0x05, 0xa3, 0xf3, 0x8c, 0x50, 0xfb, 0x9d, 0xc2, 0x3e, 0x03, 0xc6, 0x71, 0x4d, 0x4d, 0x9e, 0x16, + 0xdf, 0x65, 0x73, 0x7c, 0xff, 0x4e, 0x4b, 0x73, 0x41, 0x0f, 0x8b, 0x90, 0x7c, 0x19, 0xe8, 0xd1, + 0x46, 0x68, 0x2b, 0xe1, 0xd8, 0xaf, 0x86, 0x58, 0x35, 0x28, 0x67, 0x13, 0xbf, 0x20, 0x10, 0x3c, + 0x83, 0xf8, 0xe0, 0x7a, 0x3e, 0x0b, 0x67, 0x1a, 0x92, 0x58, 0x0d, 0xf2, 0x81, 0x0f, 0xe4, 0x59, + 0x7b, 0x64, 0x43, 0xdc, 0x59, 0x91, 0xe1, 0x2c, 0x9c, 0xd5, 0xc4, 0x39, 0x3c, 0xc4, 0x56, 0xa0, + 0x64, 0xd5, 0xee, 0x52, 0x8f, 0x65, 0x52, 0xe2, 0xba, 0x45, 0x88, 0x25, 0xba, 0x35, 0xfd, 0xe9, + 0xde, 0xdc, 0x87, 0x39, 0x3b, 0x13, 0xe6, 0xf4, 0xf3, 0x93, 0xb6, 0x2e, 0x00, 0x31, 0x86, 0xcf, + 0x34, 0xf8, 0x1b, 0xec, 0x27, 0xab, 0xf3, 0x7a, 0xb1, 0xcb, 0x3d, 0x07, 0xf0, 0xb6, 0x25, 0x02, + 0xbf, 0x4f, 0x87, 0xf0, 0x0d, 0xdf, 0xee, 0xa0, 0x8c, 0xc6, 0x01, 0xad, 0x2a, 0xdb, 0x59, 0x17, + 0x94, 0xff, 0xbe, 0x33, 0x57, 0xb3, 0x52, 0x57, 0x1f, 0x06, 0x6d, 0xb0, 0xf3, 0xf3, 0x11, 0x69, + 0x23, 0x1c, 0x40, 0xb3, 0x1b, 0x4a, 0xd7, 0x3b, 0x32, 0xda, 0x2d, 0x02, 0xfa, 0x80, 0xbf, 0x06, + 0x79, 0xec, 0x23, 0x46, 0x45, 0x82, 0x8f, 0x72, 0xa8, 0x4c, 0xfc, 0x37, 0xce, 0xa3, 0xcb, 0xd8, + 0xa7, 0x62, 0x7e, 0xb7, 0x44, 0x89, 0xb4, 0x5b, 0x5b, 0xb5, 0x06, 0x31, 0x37, 0xe6, 0xf7, 0x47, + 0xea, 0x02, 0x7d, 0x2c, 0x0f, 0xf5, 0xbe, 0x3a, 0x64, 0x7c, 0x4e, 0xef, 0x70, 0x99, 0xe7, 0xc6, + 0x08, 0x42, 0x6b, 0xe0, 0x9f, 0xc9, 0x65, 0x4a, 0x7d, 0xce, 0x7f, 0xea, 0xf7, 0xfd, 0x95, 0xce, + 0x97, 0xef, 0xdf, 0xf7, 0x57, 0xec, 0x52, 0xd8, 0x66, 0x81, 0xc7, 0x63, 0xbc, 0x06, 0xd5, 0xb7, + 0x00, 0xa7, 0x44, 0xb9, 0x75, 0x59, 0x16, 0xab, 0xab, 0xa9, 0x55, 0xb4, 0xfa, 0xfd, 0x6d, 0x8b, + 0x1a, 0xba, 0xa5, 0x7e, 0x39, 0xc3, 0x98, 0x15, 0x89, 0x69, 0x40, 0x5e, 0xd1, 0xed, 0x95, 0x30, + 0x8c, 0x75, 0x33, 0x23, 0x81, 0xed, 0x10, 0x65, 0x68, 0xaf, 0x09, 0xcc, 0x0c, 0xf0, 0xac, 0x93, + 0xf1, 0xa2, 0x75, 0x24, 0xd4, 0x07, 0x79, 0xd9, 0x60, 0x79, 0xc1, 0xfa, 0x23, 0x22, 0xfc, 0xac, + 0xcf, 0x03, 0xbb, 0x5c, 0x07, 0xbb, 0x5d, 0x61, 0x45, 0xbe, 0x06, 0xb9, 0x20, 0xd3, 0x5e, 0x8c, + 0xef, 0xf5, 0x4e, 0x11, 0xe2, 0x53, 0xee, 0x89, 0xb2, 0xb1, 0x0e, 0x55, 0x51, 0xd7, 0xb0, 0x20, + 0x47, 0x7b, 0x92, 0x51, 0xcf, 0xa5, 0x0d, 0xc4, 0x81, 0x0d, 0xdc, 0xdc, 0xd3, 0xfd, 0x51, 0xa0, + 0x5a, 0x3e, 0xae, 0xf7, 0x66, 0x20, 0x3e, 0x00, 0x7d, 0x00, 0x2d, 0x62, 0x83, 0xd0, 0xc0, 0x04, + 0x1a, 0x0e, 0xeb, 0xbe, 0xca, 0xb4, 0xf0, 0x73, 0x17, 0xd0, 0x7b, 0xa0, 0x4b, 0x8e, 0xe9, 0x07, + 0xef, 0x75, 0xbf, 0xd5, 0xea, 0xf4, 0x85, 0xe7, 0xee, 0x72, 0x7c, 0xef, 0xd6, 0x7c, 0x46, 0xef, + 0x64, 0x04, 0xb4, 0x2d, 0xe5, 0xec, 0x49, 0xe7, 0x5e, 0xe7, 0x46, 0x4c, 0x7b, 0xa5, 0x3e, 0x0f, + 0x20, 0x36, 0x37, 0xc6, 0x7d, 0xd4, 0xe9, 0xe9, 0xcf, 0xb6, 0x09, 0x11, 0x57, 0xb5, 0x76, 0x4f, + 0x43, 0x08, 0x4e, 0xb5, 0xb9, 0xac, 0xad, 0x88, 0x4c, 0x63, 0x3f, 0xcc, 0x4c, 0xfa, 0x74, 0x15, + 0xf5, 0x3c, 0xc7, 0x8b, 0xea, 0xf0, 0x95, 0x21, 0xd6, 0x07, 0x07, 0x9f, 0x0f, 0x98, 0x6d, 0x1f, + 0xd5, 0xc5, 0xba, 0x62, 0x20, 0xcb, 0xe0, 0x97, 0xce, 0xea, 0xce, 0x5b, 0xc1, 0x6a, 0xe1, 0x7a, + 0x8a, 0x0f, 0xfc, 0xdb, 0xaa, 0xb9, 0xca, 0xa5, 0xba, 0xce, 0x49, 0x9b, 0x7e, 0x5b, 0xbe, 0x75, + 0xea, 0x87, 0x5f, 0xd8, 0x33, 0xf4, 0xbf, 0xb3, 0x13, 0x7f, 0x1c, 0xb5, 0x9b, 0xcf, 0x9b, 0xfa, + 0xc9, 0x1a, 0xe2, 0xff, 0xd9, 0x2e, 0x8e, 0x27, 0x75, 0xc8, 0xf2, 0xc8, 0xf3, 0x2b, 0x56, 0xc2, + 0xba, 0x68, 0xb5, 0xfc, 0x2a, 0x98, 0x29, 0xb1, 0x44, 0xe9, 0xe5, 0x4d, 0x67, 0x94, 0x67, 0xfc, + 0x7d, 0x50, 0x6f, 0x0f, 0x9f, 0x3f, 0x80, 0x93, 0x62, 0x37, 0xf8, 0xd9, 0x52, 0xd1, 0xc7, 0xd1, + 0x18, 0x0a, 0x68, 0xbc, 0x53, 0x59, 0x6c, 0x16, 0x3a, 0x42, 0x9f, 0xeb, 0xa0, 0x1a, 0xc4, 0xa1, + 0xa8, 0xe4, 0x97, 0x84, 0x52, 0x38, 0x5f, 0xc6, 0xf3, 0x33, 0x22, 0x99, 0x0f, 0x7b, 0x2c, 0x18, + 0x90, 0x71, 0x76, 0x5b, 0xde, 0x53, 0x38, 0x2e, 0xed, 0x08, 0x22, 0x93, 0xe9, 0xef, 0xa9, 0x60, + 0x7d, 0x68, 0x6f, 0x13, 0xf4, 0x6c, 0x06, 0x76, 0x65, 0x5e, 0xf1, 0x55, 0x8b, 0x0f, 0x6a, 0x88, + 0x10, 0x93, 0x13, 0x5d, 0xa1, 0x79, 0xe8, 0x83, 0x78, 0x94, 0x16, 0x76, 0x2a, 0x8e, 0x05, 0x68, + 0xcc, 0x7b, 0xac, 0x0f, 0x58, 0x87, 0x2a, 0x38, 0x3e, 0xf0, 0xd5, 0x3d, 0x2a, 0xae, 0x77, 0xc6, + 0x7c, 0x5f, 0x93, 0xd5, 0x51, 0xc9, 0x30, 0x95, 0x46, 0x47, 0x78, 0x93, 0xb7, 0xfb, 0x5d, 0x03, + 0x22, 0x55, 0xf8, 0x3c, 0x91, 0xb7, 0xf3, 0x5d, 0x43, 0xb6, 0xed, 0xd2, 0xd6, 0x1c, 0xd6, 0x3a, + 0xfc, 0xfb, 0x0e, 0xf2, 0xdc, 0x01, 0xcc, 0xaf, 0xca, 0xaa, 0x5a, 0x32, 0x9c, 0xc6, 0x77, 0xd7, + 0x02, 0x76, 0x95, 0x13, 0xfe, 0xe7, 0x11, 0x27, 0x02, 0x45, 0x99, 0xe1, 0xc7, 0xe5, 0xe0, 0x43, + 0x36, 0xb0, 0x1f, 0xd6, 0x50, 0xa2, 0xba, 0xe9, 0xec, 0xa4, 0x3d, 0xc4, 0x36, 0x95, 0xef, 0xe7, + 0x19, 0xb0, 0xdb, 0xa7, 0xb2, 0xf0, 0xd6, 0x97, 0x12, 0x6d, 0xd9, 0x8c, 0xea, 0x08, 0x61, 0xdd, + 0x60, 0x72, 0xdc, 0xf6, 0xfc, 0xd8, 0x8f, 0x53, 0x8e, 0x1b, 0xc7, 0x90, 0x5a, 0xc6, 0xa3, 0xab, + 0x9b, 0x82, 0x50, 0xb5, 0xa4, 0xff, 0x6a, 0x9c, 0xaa, 0x57, 0xba, 0xac, 0x68, 0x8a, 0xa4, 0x0e, + 0xf1, 0x4e, 0xdd, 0xcb, 0x88, 0x96, 0xca, 0xe0, 0x2f, 0x97, 0xa8, 0x8c, 0x6b, 0xff, 0xdc, 0x87, + 0x9e, 0x61, 0x30, 0x5b, 0x71, 0x00, 0x31, 0x3c, 0x8e, 0x0b, 0x97, 0x82, 0x78, 0xfc, 0x0c, 0x03, + 0xd3, 0x35, 0xa8, 0xb9, 0x8c, 0x58, 0xb1, 0x5c, 0xda, 0x0b, 0x99, 0x45, 0xbf, 0xc2, 0x9c, 0xc4, + 0xec, 0xfa, 0xa2, 0x5e, 0x67, 0xec, 0x37, 0x1e, 0x12, 0x13, 0x88, 0x99, 0x45, 0x9e, 0xf3, 0xdf, + 0xeb, 0xbd, 0x51, 0x0e, 0x24, 0x5a, 0x28, 0xf7, 0x18, 0xb7, 0xdd, 0x9f, 0x21, 0x49, 0xc4, 0xb9, + 0x65, 0x9e, 0x5a, 0xc8, 0x95, 0xae, 0xbc, 0x08, 0xd7, 0x6d, 0xdd, 0xb0, 0xc6, 0x32, 0xda, 0xb7, + 0xaa, 0xc8, 0x6d, 0xb2, 0xa3, 0x8e, 0x68, 0x16, 0x34, 0x71, 0xd1, 0xe3, 0xa9, 0x0e, 0x2f, 0x72, + 0x7d, 0x15, 0x72, 0x5d, 0xdb, 0x93, 0x0d, 0xdb, 0x6d, 0xf9, 0x7e, 0xb3, 0x3b, 0x17, 0x73, 0x7d, + 0x3f, 0x7c, 0x7e, 0x05, 0xf1, 0x0b, 0xc9, 0x77, 0xf0, 0xf3, 0x3b, 0xdc, 0x27, 0xaa, 0xfd, 0xba, + 0x28, 0xf5, 0xeb, 0x10, 0x03, 0x21, 0x51, 0x18, 0x82, 0x7c, 0x6f, 0xf0, 0xf3, 0x0d, 0x90, 0xeb, + 0xf2, 0xfb, 0xbd, 0x59, 0xa5, 0x36, 0xf3, 0xfb, 0x7b, 0x6e, 0xbc, 0x42, 0xfd, 0x56, 0x1e, 0x9c, + 0xd4, 0xac, 0x91, 0x2f, 0x3e, 0xf5, 0xa4, 0x65, 0x71, 0xde, 0xb3, 0x19, 0xcf, 0x85, 0x98, 0xa4, + 0x7e, 0x3f, 0x45, 0xbd, 0x7d, 0xa3, 0xaa, 0x73, 0x63, 0x6a, 0x3d, 0xbc, 0xcf, 0x65, 0xab, 0x59, + 0x6d, 0xcb, 0x7a, 0x0e, 0xc3, 0x3c, 0x79, 0x7e, 0xe0, 0xca, 0x83, 0x52, 0x20, 0x53, 0x7f, 0x2b, + 0xe4, 0xb7, 0x43, 0xbf, 0x54, 0x7a, 0x86, 0xbc, 0x30, 0x7a, 0x00, 0x99, 0xd5, 0xd9, 0x4d, 0x96, + 0x3c, 0x93, 0x2c, 0x2b, 0xa8, 0x41, 0x81, 0xdd, 0x28, 0x87, 0x71, 0x39, 0x79, 0x06, 0xc3, 0x27, + 0x9e, 0x42, 0x07, 0xcf, 0x33, 0xf7, 0x1d, 0xaa, 0x85, 0x12, 0x0f, 0x30, 0xef, 0x85, 0xcb, 0xf7, + 0x0c, 0x58, 0xfb, 0xe2, 0x83, 0x56, 0xbc, 0x8e, 0xc6, 0x0f, 0xee, 0x5a, 0x12, 0x8c, 0xb3, 0x5d, + 0xdc, 0x96, 0x71, 0x9b, 0x27, 0x4f, 0xae, 0x33, 0xb8, 0xdd, 0xf0, 0xa1, 0x5d, 0xc1, 0xe3, 0xc8, + 0x89, 0xdb, 0xac, 0x8b, 0xe7, 0x3b, 0x41, 0x31, 0x8a, 0xdc, 0x6d, 0xc0, 0xf3, 0x87, 0xf1, 0xfa, + 0x06, 0x1e, 0x2f, 0xcb, 0x71, 0x9b, 0xac, 0xe7, 0xc8, 0x7e, 0xb5, 0x18, 0x3e, 0x4b, 0x08, 0x41, + 0xe0, 0x1d, 0xda, 0xe8, 0xd0, 0x66, 0x0e, 0xeb, 0xeb, 0x5c, 0xb4, 0x3e, 0xd8, 0x8f, 0xc0, 0x0b, + 0xc6, 0xdf, 0x03, 0xfc, 0xc2, 0x13, 0xd9, 0xd8, 0xe8, 0x69, 0x78, 0xb5, 0xa2, 0x33, 0x60, 0x47, + 0x79, 0xa6, 0x8d, 0x20, 0x9c, 0x9e, 0xfb, 0xec, 0x14, 0x35, 0xab, 0x68, 0x0f, 0xfc, 0x46, 0x9d, + 0x2c, 0x83, 0x6c, 0x8e, 0x47, 0xbd, 0x05, 0x23, 0xfa, 0x15, 0x49, 0x97, 0x5d, 0x46, 0xf1, 0xab, + 0x02, 0x7a, 0x7b, 0x67, 0xc0, 0x9c, 0x74, 0xf4, 0x89, 0xce, 0xe4, 0x46, 0xb5, 0xad, 0xae, 0xef, + 0xd8, 0xba, 0xce, 0xaf, 0xd1, 0xdc, 0x65, 0xfb, 0xd8, 0x68, 0x9b, 0x03, 0x76, 0x60, 0xd7, 0x1d, + 0x64, 0xaf, 0x59, 0x7b, 0xd4, 0x70, 0xf5, 0x98, 0x9f, 0xef, 0xa8, 0xe2, 0x92, 0x82, 0x1c, 0xf9, + 0xd1, 0x2f, 0x51, 0x9a, 0xfc, 0xb4, 0x51, 0x23, 0x7f, 0xe0, 0x8f, 0x18, 0x5c, 0xd5, 0x40, 0x87, + 0x75, 0x35, 0x54, 0x4e, 0xf0, 0xcf, 0x87, 0x71, 0x88, 0xf3, 0xa2, 0x36, 0x36, 0xec, 0xe4, 0x21, + 0x73, 0xd4, 0xc6, 0xf5, 0x04, 0x50, 0xe8, 0xb8, 0x8d, 0xeb, 0x7d, 0x6c, 0x26, 0x6e, 0x43, 0x8a, + 0x43, 0x9e, 0xd3, 0x61, 0x5f, 0xc0, 0xe0, 0xab, 0x1c, 0x84, 0x47, 0xfc, 0xa1, 0xad, 0x03, 0x3e, + 0x65, 0xfb, 0xd0, 0xf6, 0x61, 0x9c, 0x5d, 0xc4, 0xed, 0xe0, 0x12, 0xd1, 0x61, 0x1c, 0xf6, 0x1b, + 0xe0, 0x92, 0x40, 0xdc, 0xd6, 0xf1, 0xfc, 0x52, 0xdc, 0x86, 0xfd, 0xb0, 0x01, 0xa2, 0xc1, 0x65, + 0xd3, 0xa8, 0x6a, 0x0e, 0xde, 0x40, 0x7b, 0x94, 0xc1, 0xf3, 0x9a, 0x2f, 0x73, 0x6b, 0x01, 0x31, + 0x03, 0x54, 0x95, 0x90, 0xaa, 0x33, 0x7b, 0x54, 0x5d, 0xa0, 0xb1, 0xcf, 0xac, 0xf1, 0xe9, 0x05, + 0x11, 0xad, 0x51, 0x99, 0x89, 0xd6, 0x44, 0xef, 0xbd, 0xb7, 0xc1, 0x84, 0x1e, 0x57, 0x2b, 0x3b, + 0x04, 0xc9, 0xc3, 0x9b, 0xc8, 0x58, 0xa8, 0x26, 0xe1, 0x20, 0x7e, 0x86, 0x6a, 0xf5, 0x68, 0x4e, + 0x75, 0x9c, 0x05, 0xfb, 0x5a, 0x9d, 0x98, 0xe3, 0xa5, 0xbc, 0x1b, 0x0d, 0xbb, 0xe6, 0x1b, 0xcb, + 0x18, 0x5a, 0x8f, 0xa9, 0x8f, 0xb2, 0xcf, 0xad, 0x71, 0xf6, 0x79, 0x4d, 0xea, 0xeb, 0xd5, 0x12, + 0x1a, 0xeb, 0x4c, 0x06, 0xef, 0xf5, 0xe6, 0x33, 0x26, 0xaa, 0xe6, 0x31, 0xbc, 0x1d, 0xaa, 0x72, + 0x68, 0x82, 0x70, 0x5b, 0xc4, 0x95, 0x57, 0x03, 0xd5, 0x16, 0xf8, 0xbd, 0x8e, 0x40, 0x0a, 0x00, + 0xb7, 0x16, 0x59, 0x47, 0x70, 0xc4, 0x57, 0x5e, 0x70, 0x1e, 0xf1, 0xb1, 0x9f, 0xbb, 0xd4, 0xd4, + 0x76, 0x96, 0x8a, 0x77, 0xfb, 0x09, 0xdf, 0x11, 0xfa, 0x74, 0xf7, 0xf9, 0xe7, 0x9f, 0xfe, 0xfa, + 0xf9, 0xa7, 0x9f, 0x7f, 0xc2, 0x37, 0xd6, 0xf0, 0x95, 0x23, 0xcf, 0x5e, 0xab, 0xb3, 0xb4, 0x42, + 0x6e, 0x2b, 0xbd, 0xa4, 0x96, 0x8a, 0x65, 0xac, 0xd6, 0x26, 0xb9, 0x5b, 0x14, 0xcd, 0x1c, 0xdb, + 0x93, 0x1d, 0x9e, 0xb9, 0x54, 0x1c, 0xdd, 0x80, 0x39, 0x19, 0x18, 0xc0, 0x57, 0x9a, 0x74, 0xc7, + 0x5e, 0x5b, 0x93, 0xe0, 0xaa, 0xd9, 0x4b, 0xea, 0x57, 0x9a, 0xa6, 0x3f, 0x9f, 0xdc, 0x60, 0xaa, + 0x69, 0xe6, 0x46, 0xf3, 0x0c, 0x55, 0x79, 0x48, 0xc9, 0x9a, 0x33, 0x51, 0x2c, 0xf8, 0xe0, 0x2a, + 0x96, 0x9b, 0x76, 0x35, 0xc7, 0x98, 0x46, 0xb3, 0x5d, 0x63, 0xaf, 0xbd, 0xa4, 0xe8, 0xa7, 0xd5, + 0x16, 0x7a, 0x42, 0x68, 0xfe, 0xcc, 0xf0, 0x34, 0x68, 0x7a, 0xda, 0xd6, 0x4b, 0x2b, 0xa6, 0xa1, + 0xc3, 0xbe, 0xaa, 0x66, 0x79, 0x9a, 0x03, 0x9d, 0xf8, 0x6e, 0xda, 0xc2, 0xf0, 0xd2, 0x01, 0xea, + 0xaa, 0x62, 0x9a, 0xf6, 0xda, 0x7b, 0x49, 0x59, 0xb6, 0xa5, 0x25, 0x46, 0xd7, 0xb0, 0x09, 0x6c, + 0x64, 0x6a, 0x6a, 0x62, 0x6c, 0x69, 0xef, 0xaf, 0x0c, 0xb8, 0x17, 0xfb, 0x2f, 0xce, 0x8d, 0xb6, + 0x57, 0x56, 0xe9, 0x99, 0xa1, 0xcf, 0x00, 0xbb, 0x99, 0x17, 0x91, 0xc1, 0x73, 0xe0, 0x7c, 0x2b, + 0xc5, 0x01, 0x5c, 0x93, 0x94, 0x7e, 0x38, 0x90, 0x71, 0xa6, 0xe1, 0xf9, 0x70, 0xe0, 0x4c, 0xe6, + 0xff, 0xc0, 0x14, 0x72, 0xfd, 0x2f, 0x6e, 0xad, 0x6c, 0xd7, 0x08, 0x38, 0x31, 0x35, 0xb6, 0xda, + 0x04, 0x7a, 0xec, 0x8d, 0xe6, 0xb8, 0xaa, 0x63, 0x9b, 0x66, 0x7a, 0xac, 0xcd, 0x94, 0x8d, 0x81, + 0x77, 0x09, 0x31, 0x21, 0xe0, 0x57, 0x49, 0xde, 0xd0, 0x99, 0xd5, 0x36, 0x95, 0x49, 0x65, 0xf1, + 0xeb, 0x81, 0x9a, 0xbf, 0x4e, 0x26, 0x93, 0x98, 0x9b, 0x6b, 0xcf, 0xb3, 0x2d, 0xbc, 0x06, 0x88, + 0x66, 0x1a, 0x96, 0x16, 0x43, 0x53, 0xd7, 0x8e, 0x8b, 0x67, 0xaf, 0x6c, 0x23, 0x24, 0x34, 0x59, + 0xf0, 0x68, 0x2a, 0x63, 0xcd, 0x74, 0x4f, 0x25, 0x60, 0xa5, 0x4c, 0x26, 0x86, 0xa5, 0xbf, 0xa4, + 0x4a, 0x47, 0x3b, 0x92, 0x25, 0xbf, 0xe2, 0xfb, 0x84, 0x64, 0x19, 0x5e, 0x75, 0x7e, 0xa6, 0xb1, + 0x0d, 0x38, 0x2c, 0x5f, 0x52, 0x4f, 0x59, 0xc2, 0x73, 0x27, 0x20, 0x48, 0x3e, 0x29, 0x00, 0xbf, + 0x16, 0x8b, 0x45, 0x4c, 0x1d, 0x07, 0x96, 0x5a, 0x3a, 0xf0, 0x6d, 0x02, 0x88, 0x02, 0x29, 0xb0, + 0x34, 0x99, 0x69, 0xc7, 0x8c, 0xb1, 0x1b, 0x3b, 0x06, 0xd9, 0x24, 0x42, 0x27, 0x80, 0x12, 0x8c, + 0xf9, 0x8e, 0xb2, 0x5a, 0x69, 0xce, 0x65, 0x24, 0x3c, 0x7b, 0x15, 0x9c, 0xc4, 0xd4, 0xa6, 0x5e, + 0xf0, 0x29, 0x44, 0xe4, 0x58, 0xc0, 0x01, 0x97, 0x6c, 0x36, 0x0b, 0x5d, 0xfb, 0xb4, 0x61, 0x4d, + 0xb4, 0x2d, 0x10, 0x39, 0xde, 0x00, 0x5f, 0x72, 0x74, 0xcf, 0x2e, 0xee, 0x7d, 0x0a, 0x2e, 0xee, + 0x7d, 0x8a, 0x05, 0x1c, 0xdf, 0xf5, 0xc3, 0x64, 0x06, 0x3d, 0x34, 0x8f, 0xa5, 0x3e, 0x1b, 0xa0, + 0x8b, 0xf9, 0x90, 0x8e, 0x05, 0x03, 0x3a, 0x26, 0x86, 0xbb, 0x32, 0x15, 0x80, 0x65, 0x58, 0x64, + 0x6c, 0x6c, 0xda, 0xea, 0xe2, 0xf3, 0x81, 0x03, 0x69, 0x42, 0x6f, 0x7c, 0xd8, 0x03, 0xd5, 0x1f, + 0x5d, 0xd3, 0x98, 0x80, 0xb8, 0x62, 0xa4, 0x7e, 0xfe, 0x09, 0xab, 0x36, 0x96, 0x45, 0xac, 0xfd, + 0xa1, 0x58, 0x82, 0x5a, 0x6b, 0xa3, 0x5b, 0x58, 0x79, 0x77, 0x59, 0x34, 0x1e, 0x41, 0xd0, 0xc9, + 0xea, 0x24, 0xaf, 0xd3, 0x34, 0xec, 0x81, 0x77, 0x2b, 0x84, 0x7b, 0xc5, 0x4c, 0x08, 0xd5, 0x72, + 0x69, 0x4c, 0x26, 0xa6, 0x76, 0x05, 0xe2, 0xd4, 0x24, 0xd4, 0x9f, 0x9a, 0xb6, 0x02, 0x27, 0x23, + 0xf4, 0xbd, 0x28, 0x69, 0x49, 0xc9, 0x8a, 0xe0, 0x4c, 0xa7, 0xd8, 0x44, 0x24, 0x0e, 0xe1, 0xd8, + 0x1e, 0x9c, 0xe0, 0x36, 0x33, 0xd1, 0xf4, 0xbb, 0x68, 0x24, 0x64, 0x6a, 0x3c, 0x2b, 0x95, 0x79, + 0xcc, 0xb9, 0xf1, 0xf6, 0xda, 0x96, 0x68, 0xc7, 0x39, 0x0c, 0xba, 0x14, 0x41, 0x09, 0x19, 0x49, + 0x24, 0xf5, 0x1a, 0xd5, 0xaf, 0x1e, 0x39, 0x90, 0x76, 0xd3, 0xd8, 0x68, 0xf8, 0x96, 0x6f, 0x52, + 0xbb, 0x03, 0xbe, 0xc6, 0x00, 0x43, 0x15, 0x3b, 0x56, 0xf6, 0xb1, 0xed, 0x00, 0xbf, 0xe0, 0xd0, + 0x09, 0x91, 0xf5, 0x94, 0x31, 0x06, 0x73, 0xc1, 0xbe, 0x06, 0x42, 0x78, 0x4c, 0xe4, 0xa9, 0x61, + 0x7a, 0x18, 0xc2, 0xc4, 0xb1, 0x57, 0x69, 0x77, 0xa6, 0x4c, 0x6c, 0xff, 0x96, 0x58, 0x80, 0x90, + 0x67, 0xbf, 0x66, 0x32, 0x99, 0xc3, 0x21, 0x41, 0xed, 0xbe, 0xad, 0x8f, 0xc7, 0xda, 0x70, 0x8c, + 0xec, 0x01, 0xbd, 0x83, 0x05, 0x39, 0xc7, 0xd2, 0xb0, 0x66, 0x60, 0xda, 0x31, 0x8f, 0x43, 0x96, + 0x63, 0x70, 0x89, 0xa3, 0x86, 0x74, 0x48, 0xb2, 0x2e, 0x64, 0xd8, 0x55, 0x57, 0xf0, 0xab, 0xaa, + 0xaa, 0x87, 0xfd, 0xed, 0x55, 0x62, 0xff, 0x58, 0xe9, 0x69, 0xac, 0x08, 0xc1, 0x4b, 0x26, 0xfc, + 0x84, 0x97, 0xa4, 0x2e, 0xff, 0xc4, 0xc4, 0xb8, 0x04, 0x29, 0x30, 0xa0, 0xa5, 0x50, 0xd8, 0x03, + 0x1a, 0x64, 0x0b, 0x97, 0x28, 0xf0, 0x32, 0xc3, 0xb6, 0xf9, 0x0a, 0xb7, 0x72, 0xb9, 0x5c, 0xe2, + 0x08, 0x9a, 0xa6, 0x5d, 0x00, 0xf0, 0x88, 0xbd, 0xee, 0x46, 0xbb, 0x02, 0x21, 0x30, 0x80, 0xc7, + 0xca, 0x10, 0x40, 0xf8, 0xde, 0xb2, 0xd4, 0x2f, 0xc6, 0x12, 0xdf, 0x38, 0x57, 0x88, 0x0f, 0xba, + 0x04, 0x01, 0xdf, 0xfe, 0x56, 0x40, 0xc2, 0x09, 0xf6, 0xe9, 0xb4, 0x15, 0x18, 0x9d, 0x63, 0x86, + 0x87, 0x2d, 0x10, 0x7b, 0xf5, 0x76, 0xa3, 0x38, 0xb7, 0x30, 0xed, 0xee, 0x5f, 0x78, 0x0c, 0x0b, + 0x54, 0x24, 0xe6, 0x64, 0x14, 0x77, 0xa6, 0xd2, 0xa9, 0x60, 0x92, 0xb7, 0x7a, 0x48, 0x15, 0x81, + 0x88, 0x77, 0x71, 0xcf, 0xd8, 0x0b, 0x7b, 0xee, 0x62, 0x45, 0x4f, 0x13, 0xe3, 0x7b, 0xb2, 0xe0, + 0xf3, 0x65, 0x8b, 0x75, 0x9b, 0xc0, 0xc0, 0xdb, 0x3e, 0xa4, 0x08, 0xec, 0xfb, 0x70, 0xb1, 0x01, + 0xed, 0x3b, 0x2a, 0x46, 0x2f, 0x4d, 0xf0, 0xbb, 0xfb, 0x88, 0xdb, 0xc4, 0x7c, 0x08, 0x2f, 0xc1, + 0x27, 0x2c, 0x54, 0x28, 0xae, 0x07, 0x15, 0x71, 0x34, 0x1c, 0x0c, 0x6d, 0xce, 0x95, 0x37, 0x49, + 0x1e, 0xdc, 0x15, 0x23, 0x71, 0x97, 0x74, 0x8e, 0x34, 0x1d, 0x0a, 0xd2, 0xd8, 0xde, 0x62, 0xe9, + 0x26, 0x9d, 0x81, 0x32, 0xa4, 0xa1, 0xeb, 0xcc, 0x08, 0x60, 0xb4, 0x01, 0x15, 0xff, 0x25, 0xa5, + 0xac, 0x3d, 0xfb, 0xf3, 0x59, 0xb4, 0xf0, 0xdd, 0x63, 0xfd, 0xca, 0x4d, 0xa7, 0x10, 0xac, 0xb8, + 0x09, 0xa1, 0x4e, 0xc7, 0x9e, 0x2e, 0xdc, 0x98, 0xb4, 0x09, 0x66, 0xae, 0x0d, 0x2e, 0x23, 0x0a, + 0xdd, 0x42, 0x1f, 0xb0, 0xb4, 0x6d, 0x6f, 0x96, 0xfa, 0x33, 0x75, 0xd9, 0xbc, 0x26, 0xe5, 0x61, + 0xfa, 0x90, 0xa2, 0xef, 0xfe, 0xf5, 0x58, 0x70, 0xef, 0x52, 0x9a, 0xe2, 0x6a, 0x69, 0x08, 0x28, + 0x52, 0x31, 0x6d, 0xd3, 0xb1, 0xff, 0x8f, 0x6d, 0x3b, 0xfc, 0x4b, 0x47, 0x5e, 0x24, 0xc2, 0x2d, + 0x32, 0x3d, 0x49, 0xb7, 0x8d, 0x0f, 0x09, 0x56, 0xf3, 0xb2, 0xad, 0xfa, 0x66, 0xf8, 0x74, 0xc1, + 0xa7, 0x5f, 0xd5, 0xcd, 0x73, 0x2f, 0x1c, 0x5b, 0xeb, 0xa9, 0xa9, 0xe1, 0x36, 0xb1, 0xf6, 0x69, + 0x08, 0x44, 0x97, 0x6e, 0x22, 0xfa, 0x9c, 0xaf, 0x5d, 0xcf, 0x98, 0xee, 0xd2, 0xa1, 0xf0, 0x24, + 0x46, 0x0e, 0x01, 0x02, 0x26, 0xa7, 0xbd, 0x52, 0x54, 0xc3, 0xdb, 0x61, 0x03, 0xf7, 0x5c, 0x38, + 0xb3, 0x79, 0x4f, 0x2e, 0x11, 0x33, 0xe2, 0xff, 0xd2, 0xda, 0x06, 0x40, 0xb8, 0x27, 0xf2, 0xe9, + 0x7a, 0xca, 0x0e, 0x9b, 0xbb, 0xa4, 0x5f, 0x8a, 0x1c, 0xd2, 0x81, 0x2c, 0x51, 0x30, 0x0a, 0x38, + 0xa9, 0x8b, 0xdd, 0xd1, 0x50, 0xdc, 0x75, 0x14, 0xcb, 0x04, 0xbc, 0x0e, 0x08, 0x45, 0x4e, 0x7d, + 0x1e, 0xd6, 0xfc, 0x1a, 0x6e, 0x4d, 0x07, 0xf9, 0x01, 0xcc, 0xcc, 0x3e, 0x1f, 0xd8, 0x13, 0x8d, + 0x66, 0xe3, 0xd1, 0x42, 0x29, 0x31, 0xea, 0xd9, 0x8a, 0x4b, 0x34, 0xea, 0x70, 0xfe, 0xcb, 0x5c, + 0x28, 0x14, 0x0a, 0xc4, 0x1e, 0x6c, 0xd3, 0x21, 0x0f, 0x9f, 0x09, 0x0b, 0x4f, 0xbc, 0xff, 0xa5, + 0xf8, 0x3f, 0x14, 0x63, 0x47, 0x99, 0x18, 0x6b, 0xa0, 0x5a, 0x10, 0x44, 0x1e, 0x54, 0xae, 0x18, + 0xb4, 0xcf, 0x24, 0x27, 0x3e, 0x68, 0x36, 0x16, 0x90, 0x42, 0x20, 0x35, 0x17, 0xac, 0xce, 0xf0, + 0x36, 0x5d, 0x08, 0x4c, 0x5d, 0x24, 0xa1, 0x20, 0x62, 0x04, 0xf0, 0xb9, 0xa3, 0xfa, 0x16, 0x1b, + 0x03, 0x7a, 0x3c, 0xba, 0x33, 0xdb, 0x3f, 0x22, 0x0a, 0x26, 0x36, 0xe4, 0x5a, 0x4b, 0x25, 0xc4, + 0x51, 0x99, 0x68, 0x86, 0x05, 0x72, 0x51, 0x70, 0x1f, 0x92, 0x8d, 0x54, 0x16, 0xbf, 0x38, 0x1a, + 0x56, 0xfb, 0x53, 0x98, 0x9a, 0xe3, 0xd8, 0xce, 0x19, 0xd0, 0x0b, 0x94, 0x1e, 0x67, 0xaf, 0xef, + 0x16, 0xc1, 0xfc, 0xf7, 0x42, 0xdb, 0x4d, 0x1d, 0x08, 0xdb, 0xdd, 0x68, 0x14, 0x1b, 0x45, 0xc7, + 0x5e, 0xa6, 0xfe, 0x3c, 0x44, 0x07, 0xa9, 0x04, 0x4f, 0xff, 0xc2, 0xcc, 0x3f, 0x0c, 0x06, 0xd4, + 0x49, 0x25, 0x50, 0xf9, 0xeb, 0x38, 0x2c, 0x0d, 0x65, 0x18, 0x83, 0x8d, 0x34, 0xe7, 0xd3, 0xa7, + 0x23, 0x3e, 0x29, 0x63, 0x30, 0x47, 0xeb, 0x20, 0xed, 0x23, 0x16, 0x2a, 0x87, 0x21, 0xc6, 0x1b, + 0xe4, 0x82, 0x48, 0x99, 0xf0, 0x8d, 0x26, 0x9b, 0x39, 0x91, 0x25, 0x20, 0x23, 0x47, 0x52, 0x9e, + 0xcf, 0xe7, 0xcf, 0x05, 0xe5, 0xdb, 0xec, 0x8a, 0xc5, 0x23, 0x1d, 0x2b, 0x82, 0x61, 0xad, 0xd6, + 0xde, 0x7f, 0xbc, 0xdd, 0x4a, 0x7b, 0x05, 0xb9, 0xd0, 0xb5, 0x3f, 0x88, 0xbb, 0x0c, 0x35, 0x0e, + 0xa7, 0x16, 0x0a, 0x74, 0xab, 0xda, 0x69, 0x78, 0x97, 0xcd, 0x66, 0x8e, 0x45, 0x32, 0x68, 0xc6, + 0x76, 0x30, 0x0a, 0x53, 0xa2, 0x0f, 0x17, 0xb9, 0x76, 0x9c, 0x48, 0x5e, 0xcc, 0xcd, 0xce, 0xd0, + 0x7b, 0x99, 0xda, 0xea, 0xda, 0xbd, 0x94, 0xdb, 0x5d, 0x9c, 0xfd, 0x12, 0x1b, 0x8f, 0x20, 0x71, + 0x70, 0xd6, 0x96, 0x85, 0xff, 0xd6, 0x2b, 0x0d, 0x7b, 0xab, 0x0b, 0x0c, 0xe6, 0xd8, 0xba, 0x46, + 0xa6, 0x37, 0x17, 0xe0, 0x7c, 0x8e, 0x53, 0x92, 0x05, 0x8e, 0x3e, 0x56, 0x6e, 0x33, 0xe0, 0x9e, + 0x83, 0xff, 0xee, 0x3e, 0x8a, 0x84, 0x37, 0x5b, 0x2f, 0xc7, 0x47, 0x79, 0x72, 0xa0, 0xcf, 0x11, + 0x2a, 0x41, 0xeb, 0x32, 0x67, 0x8f, 0x44, 0x20, 0x30, 0x20, 0xe7, 0x48, 0x7e, 0x83, 0x7f, 0xc9, + 0xe0, 0xe4, 0x29, 0xb2, 0x69, 0x97, 0x50, 0xc6, 0x65, 0x04, 0xd2, 0xf8, 0x20, 0xa9, 0xce, 0xd9, + 0xfb, 0x71, 0xf2, 0x24, 0xf6, 0x8a, 0x48, 0x93, 0x88, 0x19, 0x42, 0x17, 0x7e, 0x01, 0xdc, 0xff, + 0x0e, 0xfd, 0x2e, 0xe7, 0x90, 0x4f, 0x41, 0xb8, 0x76, 0x0d, 0x63, 0xf7, 0x6f, 0x93, 0xe5, 0x54, + 0xde, 0x43, 0xfc, 0x2e, 0xeb, 0xc2, 0x95, 0x4a, 0xcb, 0x15, 0x54, 0x20, 0x47, 0x32, 0xd3, 0x10, + 0x52, 0x9d, 0x86, 0xea, 0x7f, 0x13, 0xc2, 0x3a, 0xaa, 0x24, 0xfc, 0x13, 0x08, 0xff, 0x4c, 0xa8, + 0x8b, 0xd7, 0x98, 0x92, 0x94, 0xd3, 0x34, 0x9d, 0x4d, 0x78, 0x5f, 0x1f, 0x97, 0x3c, 0x8e, 0x42, + 0x86, 0xe3, 0x98, 0x82, 0xe8, 0x58, 0x34, 0xe7, 0x84, 0x1b, 0x91, 0xf5, 0xca, 0x67, 0x4e, 0x1c, + 0x68, 0x22, 0x06, 0x0e, 0x76, 0x19, 0x3b, 0x46, 0x04, 0xe3, 0x24, 0xb3, 0x0f, 0xc6, 0x57, 0x10, + 0x78, 0x04, 0xc4, 0x3a, 0xaa, 0x4b, 0x85, 0x21, 0x6d, 0xb4, 0x4f, 0x31, 0xf4, 0xa7, 0x7f, 0x2f, + 0x87, 0xf5, 0x8e, 0xf3, 0xb5, 0xd2, 0x91, 0x69, 0xa5, 0x8f, 0x4f, 0x92, 0x3b, 0xf7, 0xd8, 0xcf, + 0x57, 0xf4, 0xf1, 0x38, 0x61, 0x8b, 0xca, 0x8f, 0xe7, 0x8a, 0x76, 0x3c, 0x12, 0xf3, 0xaa, 0xf0, + 0xb7, 0x8e, 0x72, 0x08, 0x05, 0xd3, 0x93, 0xb5, 0xa3, 0x44, 0x31, 0x21, 0xf1, 0xc6, 0x91, 0x79, + 0xc2, 0x28, 0xe2, 0x3f, 0x0b, 0x4d, 0x6f, 0x0c, 0xd7, 0x18, 0x1b, 0x26, 0xf1, 0xaa, 0x33, 0x63, + 0x32, 0xd1, 0xac, 0xc4, 0xac, 0x83, 0x7a, 0xc6, 0xda, 0x99, 0x9b, 0x80, 0x21, 0x80, 0x7f, 0x47, + 0x34, 0x4b, 0x27, 0x8b, 0x64, 0x27, 0x41, 0x77, 0x44, 0xad, 0xa7, 0x53, 0x79, 0x3b, 0x29, 0x3d, + 0xfc, 0x15, 0x81, 0x3a, 0xa9, 0x10, 0xe1, 0xd3, 0x95, 0x3e, 0x52, 0x20, 0x22, 0xd8, 0x04, 0xc5, + 0xd4, 0xef, 0x38, 0x52, 0x62, 0xf4, 0x2e, 0xf4, 0x5f, 0xe8, 0x4a, 0xaa, 0x07, 0xfe, 0x0b, 0xd9, + 0xe4, 0x5f, 0x21, 0xbb, 0x1b, 0xfd, 0x7e, 0xbb, 0x34, 0x3f, 0xaf, 0xbd, 0x69, 0xe9, 0xe1, 0x0b, + 0xb4, 0x52, 0xd0, 0xb2, 0xdc, 0xd7, 0x4f, 0x33, 0xcf, 0x5b, 0xbd, 0x50, 0x94, 0xef, 0xfb, 0x8f, + 0x7e, 0xee, 0xd1, 0x76, 0x74, 0x2a, 0x0b, 0xac, 0xc1, 0xf3, 0x3f, 0xa5, 0x82, 0x3f, 0xce, 0xfe, + 0x04, 0x16, 0xeb, 0x53, 0x2a, 0xd0, 0x90, 0xb0, 0x81, 0xcd, 0xc0, 0xeb, 0x27, 0x22, 0x00, 0x9f, + 0xbe, 0x7e, 0x59, 0xd9, 0xe6, 0x4e, 0x07, 0x42, 0x10, 0xc7, 0x02, 0x20, 0x81, 0xe2, 0xd8, 0xca, + 0xc1, 0x6b, 0x21, 0xf3, 0x50, 0xc8, 0x7c, 0xa2, 0xbe, 0x7e, 0xc1, 0xf0, 0xbe, 0xde, 0xdc, 0x01, + 0xa6, 0x69, 0x47, 0x03, 0xc4, 0xbd, 0x63, 0xea, 0x86, 0x12, 0x99, 0x3d, 0xa5, 0xfa, 0x41, 0xf1, + 0xb2, 0x41, 0x35, 0xe3, 0x8c, 0x2f, 0x01, 0xb4, 0x97, 0x23, 0xc0, 0x17, 0x3c, 0x7e, 0x58, 0xb7, + 0x26, 0xc4, 0x24, 0x91, 0x81, 0x03, 0xcc, 0x8f, 0xeb, 0x61, 0x67, 0xf2, 0xe7, 0x5e, 0xb3, 0xad, + 0x24, 0x08, 0x0f, 0xc4, 0x39, 0xc8, 0xe2, 0x32, 0x89, 0x6a, 0x82, 0xbd, 0x22, 0x7f, 0xe7, 0xfc, + 0xe7, 0xf7, 0x95, 0x2a, 0x59, 0x81, 0x48, 0xd8, 0x49, 0x0b, 0x4c, 0xa3, 0xe6, 0xfc, 0x71, 0x6a, + 0x5a, 0xff, 0x57, 0x14, 0xf2, 0x8a, 0x99, 0x00, 0x82, 0xc6, 0xbf, 0x99, 0x8b, 0x06, 0x22, 0x99, + 0xac, 0x1d, 0xb0, 0x02, 0x1d, 0xcd, 0xba, 0x17, 0x68, 0x1d, 0x6a, 0x50, 0x21, 0x30, 0x37, 0x97, + 0xe4, 0x1a, 0x93, 0x70, 0x6a, 0x68, 0xe6, 0xe4, 0x92, 0x70, 0x27, 0x07, 0xaf, 0xf5, 0x5f, 0xa1, + 0xda, 0x21, 0xe2, 0x3b, 0xa2, 0x5d, 0x50, 0x3b, 0xba, 0xb6, 0x26, 0x0e, 0xb9, 0x0c, 0xcb, 0xc2, + 0x8f, 0x37, 0x56, 0xe0, 0x4b, 0x82, 0x8a, 0xd4, 0x43, 0xea, 0xdb, 0x0b, 0xe0, 0xe0, 0xc7, 0x0b, + 0x52, 0x7f, 0xa6, 0xbe, 0xa9, 0xc8, 0x71, 0xe1, 0x11, 0x38, 0x71, 0xb0, 0x19, 0xb1, 0x01, 0xc2, + 0xa2, 0x7d, 0x5c, 0xad, 0x8a, 0xea, 0xea, 0x47, 0x46, 0x9e, 0xf0, 0x09, 0xff, 0x8b, 0x27, 0x6c, + 0xdd, 0x44, 0x70, 0x51, 0x4c, 0x16, 0x50, 0xb7, 0x47, 0x43, 0xf9, 0xec, 0x11, 0xe3, 0x13, 0x89, + 0xea, 0xe3, 0xca, 0xf5, 0xdc, 0x2b, 0x62, 0x7b, 0x5c, 0x6a, 0x2d, 0x95, 0x4a, 0x89, 0x40, 0x72, + 0xa2, 0x4d, 0x95, 0xb5, 0x19, 0xa2, 0x0a, 0x49, 0xba, 0xed, 0x68, 0x93, 0x8f, 0x48, 0x7f, 0x24, + 0xa7, 0x17, 0x23, 0xf9, 0x47, 0x57, 0xd9, 0x84, 0xba, 0xf9, 0x83, 0x70, 0x08, 0x3e, 0xdf, 0x06, + 0x57, 0xca, 0xd1, 0xe7, 0xe0, 0xc2, 0xba, 0xa0, 0x35, 0x3d, 0xae, 0xba, 0x9c, 0xe6, 0x64, 0x4f, + 0x85, 0xe4, 0x13, 0x9b, 0x90, 0xf0, 0xc7, 0xfa, 0x7d, 0xed, 0x31, 0xd2, 0xe4, 0xf4, 0x69, 0x50, + 0x02, 0x76, 0x24, 0x0f, 0xa5, 0x24, 0xf4, 0xd2, 0xdf, 0x00, 0xae, 0xce, 0xb4, 0x20, 0xde, 0xbc, + 0x56, 0xc2, 0xbf, 0x18, 0xcd, 0x9c, 0xfa, 0xc3, 0x5c, 0x52, 0x5a, 0x0e, 0x42, 0x9a, 0xbf, 0x92, + 0xee, 0x5c, 0x2c, 0x4e, 0x84, 0x81, 0x96, 0x3a, 0x5b, 0x98, 0x47, 0x32, 0x8c, 0xfd, 0xff, 0x53, + 0x14, 0x0c, 0xe4, 0x0a, 0x97, 0x36, 0x4a, 0x8a, 0x31, 0xa4, 0xfc, 0x17, 0x41, 0x7c, 0x1c, 0x42, + 0x40, 0x12, 0xa2, 0xcd, 0x57, 0xe9, 0x7e, 0x54, 0xa3, 0x39, 0x3f, 0x60, 0x14, 0x20, 0x26, 0x9e, + 0x06, 0x64, 0x8e, 0xe1, 0xc3, 0xfe, 0x8b, 0xef, 0x72, 0xf5, 0xb8, 0x20, 0x17, 0x01, 0xcd, 0x16, + 0x8e, 0xa2, 0x8f, 0xc2, 0xb7, 0x03, 0xb3, 0x8b, 0xe6, 0xfd, 0x40, 0xeb, 0xb8, 0x16, 0x75, 0xc0, + 0x6f, 0xe5, 0x6e, 0x70, 0x6f, 0xb0, 0x71, 0xf8, 0xed, 0x2a, 0x09, 0xa4, 0x0e, 0x3d, 0xf1, 0xba, + 0xc4, 0xe3, 0xbf, 0x18, 0xc4, 0x39, 0x07, 0x30, 0xe5, 0xe3, 0xfc, 0xfd, 0xf3, 0x71, 0x30, 0x4e, + 0x67, 0xbe, 0xc3, 0x95, 0x88, 0x6e, 0xe1, 0xb3, 0x83, 0x80, 0x3b, 0xff, 0x37, 0x75, 0x4c, 0xcc, + 0x0b, 0x44, 0x08, 0xea, 0x19, 0x67, 0x8c, 0x7d, 0x21, 0x9f, 0xc1, 0x00, 0x7d, 0x00, 0x44, 0xc2, + 0x27, 0x1c, 0xe6, 0xbe, 0x28, 0x53, 0x2f, 0x88, 0xd4, 0xe3, 0x72, 0xe6, 0xcd, 0xcd, 0xe7, 0x2b, + 0xfc, 0xbc, 0x9c, 0x53, 0x7c, 0x0f, 0x9d, 0xc3, 0x16, 0x67, 0x65, 0xcc, 0x24, 0x80, 0x4b, 0x0b, + 0x02, 0xde, 0x85, 0x1e, 0x99, 0x54, 0x1a, 0x93, 0x22, 0x13, 0x34, 0x0e, 0xf5, 0xe0, 0x44, 0x0e, + 0xf5, 0x72, 0x39, 0x38, 0x88, 0x64, 0x38, 0x95, 0xc3, 0x7c, 0x0c, 0x9d, 0xff, 0x79, 0x28, 0x1d, + 0x3d, 0x24, 0xcc, 0x17, 0xc2, 0x67, 0x84, 0x61, 0x46, 0x7b, 0x6d, 0xf8, 0x1b, 0x43, 0xc1, 0x09, + 0x67, 0xf1, 0x23, 0xe2, 0x30, 0xc8, 0xc8, 0x1d, 0x99, 0xb6, 0xf1, 0x78, 0x7c, 0x62, 0x4d, 0xc2, + 0xc7, 0x10, 0xd1, 0x53, 0x59, 0xfd, 0x58, 0xc5, 0x12, 0x16, 0xec, 0xaa, 0xb9, 0xfb, 0x50, 0x7e, + 0x54, 0xfc, 0x1b, 0xf9, 0xd1, 0x91, 0x4f, 0xfc, 0x6f, 0xe7, 0x47, 0xdf, 0x20, 0x85, 0x71, 0x96, + 0xff, 0x91, 0xdf, 0x7c, 0xf0, 0x7e, 0x55, 0x4a, 0xb5, 0xed, 0x4a, 0xb1, 0x26, 0x81, 0xab, 0xbe, + 0x2c, 0x87, 0xff, 0x5e, 0x6a, 0x13, 0x43, 0x49, 0x29, 0xa6, 0x99, 0x82, 0x99, 0xa9, 0xdb, 0x44, + 0x65, 0xba, 0x98, 0x2f, 0xe0, 0x87, 0x4e, 0x7f, 0x9e, 0x3d, 0x80, 0x8c, 0x08, 0x19, 0xdc, 0xdd, + 0x38, 0xbe, 0x11, 0x91, 0x78, 0x36, 0xff, 0x38, 0x3b, 0xde, 0xf7, 0x80, 0xd9, 0x85, 0x54, 0xfa, + 0x30, 0x08, 0xff, 0x41, 0x0e, 0x11, 0x7e, 0x51, 0xd0, 0x17, 0x2a, 0xfa, 0x6e, 0x29, 0x72, 0x91, + 0xc4, 0xb6, 0x60, 0xf6, 0xe4, 0xf5, 0xc6, 0xb6, 0x9a, 0xf0, 0x7e, 0x7b, 0x87, 0xbf, 0x9f, 0x09, + 0xc6, 0x26, 0xc6, 0x26, 0x65, 0x40, 0xb7, 0xba, 0xb9, 0x49, 0xa9, 0xa6, 0xe2, 0xba, 0x30, 0x23, + 0x78, 0x9a, 0x72, 0xf3, 0x15, 0x4f, 0xc4, 0x51, 0x01, 0xfe, 0xc6, 0xa2, 0x94, 0xc4, 0x3f, 0x3e, + 0x3e, 0x7e, 0xa1, 0x60, 0x3e, 0x06, 0x69, 0xd9, 0xe1, 0x37, 0x13, 0x11, 0x00, 0x27, 0x0b, 0x53, + 0x04, 0x05, 0x68, 0x87, 0xce, 0x82, 0xfe, 0x7c, 0xf3, 0xb5, 0x67, 0x3b, 0xce, 0xee, 0x21, 0x02, + 0x95, 0xb2, 0x34, 0x6d, 0xe2, 0xa6, 0xea, 0xca, 0x46, 0xe9, 0x11, 0x38, 0xbf, 0x04, 0x90, 0xbf, + 0x50, 0x31, 0xe0, 0x18, 0xbb, 0x10, 0x78, 0x78, 0x35, 0xe3, 0x86, 0x60, 0x0b, 0x44, 0x25, 0xdf, + 0x2f, 0x95, 0x18, 0xc7, 0x4f, 0x49, 0x2f, 0x74, 0x43, 0xfe, 0x89, 0x57, 0x92, 0xee, 0x90, 0x0d, + 0x18, 0x40, 0xf0, 0xb1, 0x83, 0x8b, 0x3c, 0x37, 0x40, 0x1a, 0xd5, 0x34, 0xd4, 0x05, 0x06, 0xab, + 0xeb, 0xa6, 0x46, 0x7a, 0x81, 0x40, 0x31, 0x64, 0xdd, 0xbc, 0xf9, 0xfa, 0xc5, 0x88, 0x9a, 0xe4, + 0x0a, 0xc7, 0xcd, 0xd7, 0xdf, 0x7e, 0xdd, 0x6a, 0x99, 0xd2, 0xf4, 0xf3, 0x17, 0xca, 0x80, 0xdc, + 0x2e, 0x81, 0x45, 0xf0, 0x1c, 0xeb, 0xe6, 0x2b, 0x01, 0xf3, 0x85, 0x5a, 0xc1, 0xa1, 0x82, 0xdd, + 0x2e, 0xa2, 0xd0, 0x32, 0xcf, 0xf6, 0x6f, 0x99, 0x98, 0x3b, 0x17, 0x37, 0xcc, 0x2a, 0xd9, 0xeb, + 0x1b, 0xf6, 0x8d, 0xe5, 0x07, 0x36, 0xec, 0xed, 0x2c, 0xf5, 0x6c, 0x4b, 0xdc, 0x79, 0x75, 0x53, + 0x9a, 0x2e, 0x5e, 0xdf, 0x14, 0xaf, 0xfc, 0xfe, 0x9e, 0xe7, 0x44, 0x6e, 0x86, 0x57, 0x20, 0xae, + 0xee, 0x9a, 0xa7, 0x33, 0xdf, 0xa0, 0xad, 0x43, 0x16, 0x5f, 0xd9, 0x38, 0xde, 0xca, 0x37, 0x2c, + 0xb0, 0x18, 0x8f, 0xa0, 0xb4, 0x24, 0x65, 0x7d, 0xc4, 0xdf, 0x3a, 0x96, 0x7a, 0x4d, 0x7d, 0xa2, + 0x5c, 0xcd, 0xc3, 0xb7, 0x84, 0xdc, 0x4f, 0x9f, 0xaf, 0x71, 0xf6, 0x5b, 0x84, 0x66, 0x6d, 0x6b, + 0x6a, 0xe8, 0xa7, 0x9b, 0x47, 0xaa, 0x11, 0x69, 0x54, 0xa8, 0xa8, 0x44, 0xf2, 0x62, 0x28, 0xb3, + 0xc9, 0xcd, 0x57, 0x86, 0x84, 0x0d, 0x96, 0xe6, 0xba, 0x18, 0xc4, 0xb1, 0xb8, 0x1a, 0x26, 0x99, + 0x7f, 0x8c, 0x52, 0x2a, 0x71, 0x4f, 0x27, 0x92, 0x83, 0x80, 0x25, 0xc7, 0x8b, 0x13, 0xc5, 0xba, + 0x08, 0x0e, 0x09, 0x17, 0x30, 0x36, 0xc1, 0x18, 0x6c, 0x4d, 0x38, 0x31, 0xc3, 0xa5, 0x46, 0xe8, + 0xd4, 0x3c, 0xe8, 0xc1, 0xa2, 0x6e, 0x5b, 0x64, 0xea, 0xeb, 0xcd, 0x7a, 0x35, 0x01, 0x7f, 0xd4, + 0x77, 0x14, 0xc3, 0xbc, 0xf5, 0x66, 0x86, 0x0b, 0x63, 0x60, 0xd7, 0x5e, 0x6f, 0xb2, 0x85, 0xc2, + 0x0d, 0xfe, 0x86, 0xb9, 0xd7, 0x1b, 0xfa, 0x26, 0x45, 0x72, 0xbd, 0x1b, 0x52, 0xaf, 0xbc, 0x49, + 0x6d, 0x14, 0x73, 0x0d, 0x2d, 0x3a, 0x5b, 0xba, 0x49, 0x51, 0x17, 0x31, 0x0a, 0xcd, 0x18, 0x90, + 0x3a, 0xa2, 0xd1, 0xb5, 0x77, 0x83, 0x3c, 0x51, 0x22, 0x08, 0x47, 0x77, 0x64, 0xc0, 0x9a, 0x38, + 0xea, 0xeb, 0x8d, 0x32, 0xc6, 0x57, 0xf6, 0xc6, 0xa6, 0x62, 0x2d, 0x30, 0x9c, 0x60, 0xe2, 0x05, + 0x10, 0xc9, 0xfd, 0x53, 0x60, 0xd6, 0xa2, 0x7b, 0x0b, 0x37, 0x49, 0xd6, 0xb0, 0xd8, 0x29, 0xb9, + 0x37, 0x09, 0xd6, 0x86, 0xc1, 0xcc, 0xd1, 0xac, 0xa0, 0x28, 0x19, 0xcf, 0x02, 0xcb, 0x84, 0x4f, + 0x93, 0x38, 0x45, 0x34, 0xd1, 0x3f, 0xe7, 0x73, 0x70, 0x05, 0xee, 0xe6, 0xeb, 0x00, 0x7b, 0x37, + 0xfc, 0x05, 0x7c, 0x90, 0x38, 0x9b, 0xe7, 0xec, 0xfe, 0x3e, 0xc7, 0x06, 0x67, 0xfb, 0x1f, 0xf3, + 0x8f, 0x1c, 0xe5, 0x76, 0xaa, 0x98, 0xae, 0xf6, 0xf7, 0xd8, 0x98, 0xf9, 0x2f, 0xb0, 0x31, 0x76, + 0x26, 0xae, 0x99, 0x34, 0xb8, 0x21, 0x14, 0x9c, 0x68, 0xab, 0x66, 0x0a, 0x2c, 0x72, 0xc2, 0x1a, + 0x04, 0x25, 0xa7, 0x9e, 0x69, 0x7b, 0xb7, 0xe0, 0xc9, 0x6f, 0xbe, 0xd2, 0x17, 0xf4, 0xf9, 0x83, + 0xeb, 0x69, 0xbc, 0x3e, 0xfb, 0xcf, 0xd7, 0x67, 0xf1, 0xfa, 0xdc, 0x25, 0x95, 0x3e, 0x63, 0x2b, + 0xa1, 0x7a, 0x6a, 0xa5, 0x98, 0x60, 0x47, 0x34, 0xcc, 0xd6, 0xd4, 0x87, 0xd4, 0x38, 0xbc, 0x2d, + 0x17, 0xea, 0xf0, 0x38, 0x17, 0xe9, 0x70, 0x58, 0xe2, 0x3c, 0xb8, 0x2c, 0x3c, 0x35, 0xf0, 0x74, + 0xc1, 0x50, 0x27, 0xd8, 0xe9, 0x84, 0xf7, 0x61, 0x6f, 0xe0, 0xcb, 0xbf, 0x04, 0x75, 0xb5, 0xaf, + 0xe5, 0xa0, 0xdc, 0xf0, 0x85, 0x0a, 0xdb, 0x87, 0x11, 0x0e, 0x3f, 0xfe, 0xfd, 0x25, 0x39, 0x40, + 0x05, 0xd0, 0xaf, 0xab, 0x11, 0xc6, 0x20, 0xbc, 0x1f, 0x72, 0x4d, 0x5b, 0xce, 0x68, 0x13, 0xcc, + 0x4f, 0xb9, 0x2b, 0x70, 0xf1, 0x17, 0x24, 0x3e, 0xb8, 0x0b, 0xf0, 0x21, 0x2b, 0x97, 0xcb, 0x16, + 0xfe, 0x91, 0x95, 0xeb, 0xe1, 0xad, 0xbf, 0xa3, 0x37, 0x64, 0xce, 0xdf, 0xb4, 0x7c, 0xff, 0x0d, + 0x95, 0xb9, 0x46, 0x3e, 0x9c, 0x51, 0xe3, 0x82, 0xe2, 0xee, 0x3a, 0x09, 0x83, 0x13, 0x87, 0x37, + 0x2f, 0x3e, 0x44, 0xd0, 0x7c, 0xe6, 0xf9, 0x1f, 0x11, 0x94, 0x8f, 0x90, 0xf9, 0x0e, 0x51, 0xe3, + 0x79, 0xff, 0x1f, 0x13, 0x16, 0x5f, 0x0c, 0xfe, 0x18, 0x4d, 0xb3, 0x17, 0x6c, 0x18, 0x31, 0x1e, + 0x78, 0xce, 0x74, 0x3b, 0xce, 0x1c, 0x99, 0x11, 0x6f, 0x18, 0x18, 0xb0, 0x1e, 0xce, 0x6a, 0xbe, + 0x15, 0x17, 0x4c, 0xb7, 0xa6, 0xe1, 0x12, 0xdd, 0x09, 0xe3, 0x6b, 0x88, 0xab, 0x13, 0xd3, 0xc6, + 0xce, 0x65, 0x35, 0xec, 0x69, 0xfa, 0x12, 0x5f, 0x3f, 0xf8, 0x9e, 0xd7, 0x82, 0x8c, 0x07, 0x77, + 0x5f, 0x85, 0x9f, 0x98, 0xb7, 0xf6, 0x02, 0x7e, 0x7f, 0x53, 0xfd, 0x2b, 0xca, 0xc6, 0x76, 0xc0, + 0x89, 0x7d, 0xc3, 0x00, 0x10, 0x67, 0xe9, 0x36, 0x49, 0x70, 0x74, 0x4a, 0x75, 0x8c, 0x43, 0x8a, + 0x5c, 0x0b, 0x71, 0xc1, 0xc6, 0x86, 0x84, 0x3f, 0xb7, 0xcb, 0xd8, 0xe6, 0xe1, 0xfa, 0xea, 0x31, + 0x49, 0x21, 0xcc, 0x83, 0xd7, 0xc0, 0xb0, 0x7f, 0xc7, 0x31, 0x7c, 0x13, 0x40, 0xf6, 0x03, 0x9e, + 0xe1, 0x9b, 0x00, 0x72, 0x67, 0xae, 0xe1, 0x6f, 0x02, 0xc8, 0x63, 0x00, 0xf9, 0x18, 0x40, 0xc8, + 0xe5, 0xbf, 0x09, 0xa4, 0x80, 0x81, 0x14, 0x7e, 0x00, 0x8b, 0x22, 0x06, 0x50, 0xfc, 0x01, 0x00, + 0x4f, 0x18, 0xc0, 0xd3, 0x0f, 0x00, 0x28, 0x61, 0x00, 0xa5, 0x1f, 0xa4, 0xc3, 0x33, 0x06, 0xf2, + 0xfc, 0x03, 0x58, 0xd0, 0x41, 0xa8, 0x91, 0xf9, 0x11, 0x10, 0x81, 0x50, 0xfe, 0x88, 0x54, 0xd2, + 0x44, 0x2c, 0xe9, 0xec, 0x0f, 0x52, 0x83, 0x26, 0xc2, 0x49, 0xff, 0x88, 0x74, 0xd2, 0x44, 0x3c, + 0xe9, 0xfc, 0x8f, 0x80, 0x20, 0xc2, 0x49, 0xff, 0x88, 0x74, 0xd2, 0x44, 0x3c, 0xe9, 0xe2, 0x29, + 0x3d, 0x82, 0x7b, 0xa1, 0x21, 0x94, 0xa0, 0xf6, 0x87, 0xeb, 0xac, 0xd8, 0xf8, 0xf4, 0x82, 0xc7, + 0x16, 0xd8, 0xa6, 0xc7, 0x6e, 0x2b, 0xf0, 0x24, 0x64, 0xde, 0xd8, 0xde, 0xde, 0x84, 0xd6, 0xa9, + 0x4f, 0xb2, 0xce, 0xa4, 0xbf, 0x0a, 0x93, 0xfd, 0x5e, 0x18, 0x3e, 0xb9, 0x2b, 0xc5, 0x3a, 0xda, + 0x84, 0x54, 0x46, 0x61, 0x23, 0xec, 0x63, 0xf0, 0x20, 0x31, 0x8f, 0x04, 0x97, 0x08, 0xb1, 0xe4, + 0x92, 0x19, 0x58, 0x7e, 0x30, 0x70, 0x29, 0xba, 0x98, 0x52, 0xa1, 0xd7, 0x55, 0x36, 0x1a, 0xa9, + 0x0c, 0xb9, 0xa1, 0xd9, 0x7e, 0x0c, 0x81, 0xe0, 0xa5, 0xdf, 0x3f, 0x57, 0x40, 0x91, 0x94, 0xba, + 0x53, 0xcd, 0x6f, 0x1f, 0x4c, 0xdd, 0x5d, 0x3b, 0x18, 0x3b, 0xfa, 0xc7, 0x07, 0xab, 0x18, 0x8e, + 0xeb, 0xa5, 0x56, 0x04, 0x87, 0x97, 0x54, 0x22, 0x1a, 0x00, 0x7c, 0xdc, 0xf3, 0x10, 0x20, 0xc0, + 0x2b, 0x78, 0xf4, 0x77, 0xc8, 0x11, 0x89, 0x8b, 0xa7, 0xf3, 0x07, 0x67, 0x7e, 0x13, 0x42, 0x6f, + 0x2a, 0x57, 0x81, 0x6b, 0x1f, 0x02, 0x9e, 0x8d, 0x80, 0x17, 0x62, 0xe0, 0xb9, 0x08, 0x38, 0xae, + 0x81, 0xa4, 0xf0, 0xbd, 0x9b, 0xcb, 0x1b, 0x78, 0x1f, 0xda, 0x20, 0xf3, 0x18, 0x6d, 0x51, 0x2c, + 0x3c, 0x1e, 0x36, 0xa1, 0xa1, 0xfb, 0xab, 0x1b, 0xee, 0x93, 0x78, 0xdc, 0x7b, 0xb2, 0xc5, 0x07, + 0xf7, 0xb8, 0xb4, 0x43, 0xe6, 0xf1, 0x09, 0x76, 0xf8, 0x76, 0x52, 0x1b, 0x54, 0xba, 0xc6, 0xb6, + 0x17, 0x08, 0x00, 0xfe, 0x70, 0xae, 0x6b, 0x30, 0x05, 0x7f, 0xf5, 0x7a, 0x52, 0xcf, 0xec, 0x95, + 0x66, 0xf5, 0x95, 0x31, 0x04, 0x29, 0xd7, 0x6a, 0x4b, 0x61, 0x3e, 0x72, 0xa5, 0xe4, 0x81, 0x33, + 0xe6, 0x2b, 0xf5, 0x96, 0xef, 0x6f, 0x4a, 0x5f, 0xdd, 0x34, 0x37, 0xb9, 0xbe, 0x69, 0x98, 0x79, + 0xfc, 0xe3, 0x5d, 0xb3, 0xd7, 0x76, 0xcd, 0xe5, 0xc7, 0xdf, 0xa8, 0x68, 0x85, 0x1a, 0xfb, 0x8f, + 0xb7, 0xcd, 0x5d, 0xdb, 0x36, 0x93, 0x57, 0xaf, 0x6f, 0x1b, 0xc7, 0x59, 0x57, 0xea, 0x4a, 0x89, + 0x90, 0x8c, 0xdc, 0xe6, 0xbd, 0x50, 0x87, 0x88, 0xff, 0x88, 0xee, 0x30, 0x76, 0xf8, 0x82, 0xf9, + 0x9f, 0x7f, 0xa2, 0xfe, 0xf5, 0xcb, 0xcf, 0x3f, 0xfd, 0x2b, 0x65, 0x38, 0xf6, 0xe3, 0xdc, 0x4d, + 0x6d, 0xf2, 0x8f, 0xf9, 0xc7, 0x0c, 0xee, 0xc8, 0x66, 0xe8, 0x62, 0x1a, 0x5e, 0x9e, 0x53, 0x75, + 0x72, 0x9d, 0xb7, 0xac, 0x58, 0x86, 0x66, 0xe2, 0x91, 0xa6, 0xa1, 0x42, 0x3c, 0xaf, 0x4d, 0x52, + 0x6b, 0x0b, 0x62, 0xee, 0x94, 0xd0, 0x69, 0xa6, 0xb2, 0xc1, 0x1a, 0xdd, 0xf0, 0x66, 0xeb, 0xf1, + 0xa3, 0x6a, 0x2f, 0xa9, 0xb9, 0x82, 0x57, 0x51, 0x01, 0x58, 0x18, 0xa3, 0x7e, 0xfe, 0xe9, 0x97, + 0xe8, 0xdb, 0xec, 0x6f, 0xbd, 0x07, 0xed, 0xee, 0xcf, 0x1b, 0x7b, 0x3c, 0x07, 0x46, 0xde, 0xbc, + 0xbe, 0x62, 0x45, 0xb0, 0xa7, 0x29, 0x6d, 0x8b, 0x9f, 0xdf, 0xbb, 0xbf, 0xfd, 0x76, 0x83, 0x01, + 0x4f, 0x0d, 0x0b, 0xd2, 0xb5, 0x5f, 0xa2, 0x41, 0x30, 0xe6, 0x6b, 0x53, 0xfb, 0x3d, 0x78, 0x7b, + 0x0c, 0xa7, 0xbe, 0x42, 0x96, 0xfb, 0x72, 0x13, 0x81, 0x3d, 0x40, 0x0a, 0x56, 0xff, 0xf6, 0x5b, + 0xf0, 0xfe, 0xa8, 0x2c, 0x27, 0xbf, 0x07, 0x1f, 0x6f, 0xb5, 0xbb, 0x17, 0xef, 0x11, 0x90, 0xc2, + 0x2b, 0xff, 0x22, 0x79, 0xc7, 0x43, 0x8c, 0x15, 0xa0, 0xb4, 0x76, 0xb5, 0x94, 0xeb, 0x39, 0x06, + 0xa0, 0xf5, 0x79, 0xa3, 0x38, 0x29, 0xf5, 0x35, 0x31, 0xfa, 0xd7, 0x83, 0xf1, 0x0a, 0x2f, 0xb3, + 0xd7, 0xff, 0xfc, 0xf1, 0xb0, 0x86, 0x97, 0xcf, 0xf1, 0xb7, 0xf3, 0xaf, 0x82, 0x13, 0xe1, 0x15, + 0xf6, 0x83, 0xf5, 0xe0, 0x3c, 0x18, 0x0f, 0xee, 0xab, 0xe2, 0xe8, 0x6b, 0x22, 0x32, 0x0f, 0xca, + 0xeb, 0xfa, 0xf3, 0xd4, 0x76, 0x6e, 0x8d, 0x43, 0xdf, 0xa3, 0xa9, 0x59, 0xba, 0x37, 0xfb, 0x9c, + 0xfd, 0x62, 0xa4, 0xd3, 0x9f, 0xef, 0x66, 0x8f, 0xab, 0xb5, 0x3b, 0xbb, 0x75, 0xff, 0x63, 0xfc, + 0x71, 0x47, 0xa6, 0x02, 0xf2, 0xd6, 0xda, 0x34, 0x7f, 0x79, 0xd5, 0x1e, 0xd5, 0x99, 0x61, 0x4e, + 0x1c, 0xcd, 0xfa, 0xed, 0xb7, 0xdb, 0x59, 0xb8, 0xec, 0x7f, 0xfe, 0x27, 0x5c, 0x70, 0x18, 0xbd, + 0x7b, 0x98, 0x40, 0xd6, 0xee, 0x69, 0xa9, 0x44, 0xd7, 0xe7, 0x68, 0xfe, 0xe7, 0x3b, 0x63, 0x7a, + 0x7b, 0x6b, 0xbd, 0xc2, 0x2a, 0x7b, 0x75, 0x7b, 0x77, 0xf7, 0xdb, 0x6f, 0x1b, 0xdb, 0x98, 0xa4, + 0x32, 0xbf, 0xbc, 0xbe, 0x5a, 0xb8, 0xeb, 0x2e, 0xc0, 0xce, 0x8a, 0xa6, 0x27, 0x71, 0xb2, 0x08, + 0x4e, 0x10, 0xb5, 0x6b, 0x60, 0x55, 0x6c, 0x53, 0x53, 0x12, 0x74, 0xc6, 0x38, 0x59, 0xaf, 0x18, + 0xd1, 0xbb, 0x87, 0x5b, 0xe7, 0xf5, 0xc0, 0x89, 0x98, 0x6d, 0xde, 0x1d, 0x9e, 0x02, 0x13, 0x60, + 0xa7, 0xdf, 0xc1, 0xc0, 0xdd, 0xbc, 0x44, 0x06, 0xef, 0x00, 0x04, 0xfa, 0x7b, 0x1e, 0xbe, 0x53, + 0x74, 0x6b, 0x01, 0x37, 0x5d, 0xf2, 0xf1, 0x00, 0x01, 0xef, 0xe1, 0xbc, 0xfe, 0x42, 0xdf, 0xdd, + 0x3d, 0x38, 0xbf, 0xfd, 0x66, 0xff, 0xae, 0xfc, 0x47, 0x09, 0xd1, 0x4c, 0xd3, 0x7f, 0xdc, 0xbf, + 0x5a, 0x2f, 0xca, 0xeb, 0xeb, 0xeb, 0xfa, 0x77, 0xe5, 0xf5, 0x3f, 0xd6, 0x1f, 0x2f, 0x4a, 0x88, + 0xf3, 0xdd, 0x83, 0xfd, 0xea, 0x10, 0x0e, 0x9a, 0xaf, 0x96, 0xe6, 0xa7, 0xd4, 0xcf, 0x8e, 0xe6, + 0xad, 0x1d, 0x2b, 0x65, 0x3e, 0x5a, 0x10, 0x15, 0xb4, 0xf0, 0xff, 0xa7, 0xc2, 0x7b, 0x30, 0x63, + 0x52, 0xbd, 0xfe, 0x3f, 0xe6, 0xae, 0xb5, 0xbb, 0x6d, 0x1b, 0x69, 0xff, 0x95, 0x88, 0x4d, 0x7d, + 0x48, 0x0b, 0xba, 0x39, 0x4d, 0xde, 0x96, 0x0a, 0x8f, 0x4e, 0xe2, 0xa4, 0x4d, 0x76, 0x73, 0xe9, + 0xc6, 0x6e, 0xda, 0x5d, 0xc7, 0xf5, 0xa1, 0x29, 0x4a, 0x62, 0x4d, 0x93, 0x2a, 0x09, 0xcb, 0x56, + 0x25, 0xfd, 0xf7, 0x7d, 0x66, 0x00, 0x90, 0x90, 0x44, 0x27, 0xe9, 0x7e, 0x7a, 0xcf, 0x6e, 0x2d, + 0xe2, 0x36, 0x00, 0xe6, 0x3e, 0x03, 0x90, 0x09, 0x51, 0x08, 0x25, 0xa6, 0x86, 0x84, 0xc5, 0x65, + 0xa0, 0x56, 0x1c, 0x8f, 0x14, 0x9a, 0xfc, 0x18, 0xad, 0x57, 0xf1, 0x72, 0xaf, 0x9a, 0x2a, 0x45, + 0xba, 0xa9, 0xf8, 0xe0, 0xad, 0xe2, 0x03, 0xc2, 0x26, 0xf3, 0x02, 0xe2, 0xf5, 0x07, 0xb1, 0x27, + 0xcf, 0xf2, 0xf3, 0x20, 0xc6, 0x1f, 0xb3, 0x08, 0x59, 0x8f, 0x48, 0xd5, 0x08, 0x45, 0x6b, 0x89, + 0xad, 0x36, 0x70, 0xb3, 0x1c, 0x49, 0xc5, 0xb7, 0xd1, 0x4d, 0x41, 0x57, 0xa9, 0x82, 0xd8, 0xdb, + 0x10, 0xf8, 0x38, 0x68, 0xe8, 0xfc, 0x33, 0x82, 0xaa, 0xa4, 0x8c, 0x47, 0xfa, 0xb7, 0x0b, 0x83, + 0x97, 0xa7, 0x0b, 0x70, 0x7b, 0x57, 0xce, 0xe2, 0xac, 0x7b, 0x99, 0x64, 0x63, 0x77, 0xaf, 0xcd, + 0xf3, 0x61, 0x15, 0xc9, 0x48, 0xe6, 0x37, 0x52, 0x4c, 0x82, 0x1e, 0x1d, 0xd0, 0xac, 0xe3, 0x3b, + 0x77, 0xe4, 0x97, 0xeb, 0xe9, 0x3a, 0x5b, 0xcf, 0xd7, 0x0f, 0xbd, 0x75, 0x31, 0x9f, 0xad, 0xf3, + 0xdb, 0x72, 0x7d, 0x9d, 0x45, 0xeb, 0x4c, 0xde, 0xae, 0x21, 0x4e, 0x67, 0xd1, 0xec, 0x7c, 0xfd, + 0x57, 0x9e, 0xaf, 0x7f, 0xcf, 0x8b, 0x71, 0x2f, 0x01, 0xd2, 0x6d, 0xa9, 0x28, 0x5d, 0xe9, 0xad, + 0x5a, 0xb2, 0x7b, 0x31, 0x4e, 0x0a, 0xb9, 0xc4, 0xde, 0xcc, 0x63, 0xd0, 0xea, 0x83, 0x2d, 0x06, + 0x41, 0x90, 0x2b, 0x72, 0x11, 0x93, 0xc4, 0x20, 0x5a, 0x8d, 0x16, 0x12, 0x37, 0x83, 0x45, 0x39, + 0x94, 0xd4, 0x91, 0x18, 0x77, 0xe8, 0xd5, 0xd0, 0x5e, 0x63, 0x58, 0x3d, 0xe0, 0x44, 0xe1, 0xd1, + 0x20, 0xb8, 0xab, 0x5e, 0x92, 0x4d, 0xfe, 0x8a, 0xc7, 0xef, 0x0c, 0xbd, 0x41, 0xb8, 0xf5, 0x5a, + 0x56, 0xf4, 0xef, 0xca, 0xfc, 0x0d, 0x9d, 0xc5, 0x1c, 0x87, 0x25, 0x30, 0x40, 0xad, 0xdb, 0x35, + 0x35, 0xec, 0x97, 0xb4, 0x0f, 0x85, 0xf0, 0xb7, 0x2e, 0x14, 0x80, 0xb4, 0x38, 0x05, 0x92, 0x51, + 0x33, 0x91, 0xac, 0x1e, 0x99, 0xf5, 0xf2, 0xc0, 0x9a, 0x4d, 0xdf, 0xf7, 0x01, 0xea, 0xe7, 0xe5, + 0x10, 0xd2, 0x58, 0x09, 0x60, 0xee, 0x99, 0x8d, 0x66, 0xc4, 0x2e, 0xb9, 0xa7, 0x5a, 0x68, 0x41, + 0xe0, 0x68, 0x60, 0x8d, 0x7e, 0x82, 0x1c, 0x7f, 0x3c, 0xc3, 0x3f, 0x71, 0xbd, 0xb6, 0x77, 0xf5, + 0xda, 0x64, 0x57, 0xdd, 0xb4, 0xa3, 0x0d, 0x0f, 0xa1, 0x3f, 0x88, 0xbe, 0xd7, 0xf9, 0x22, 0x3e, + 0xa6, 0x35, 0x6d, 0x21, 0x6b, 0x41, 0xc8, 0x12, 0xac, 0xa9, 0xbc, 0x15, 0xd6, 0xe2, 0xb0, 0xdd, + 0xa1, 0x65, 0x3a, 0x34, 0x2d, 0xcd, 0x19, 0xa8, 0x3a, 0xc7, 0x13, 0x0e, 0x78, 0x9c, 0xab, 0x95, + 0x12, 0x78, 0x40, 0xfd, 0x8b, 0x78, 0xa2, 0xaa, 0x52, 0x17, 0x50, 0x58, 0xfc, 0x53, 0x37, 0x13, + 0xd2, 0xea, 0xa2, 0x86, 0xb7, 0x18, 0xe9, 0x05, 0xa9, 0x1f, 0x87, 0x8f, 0xff, 0xd4, 0x30, 0x9a, + 0x14, 0x72, 0xdd, 0x24, 0xeb, 0x7b, 0x75, 0xf9, 0x7a, 0x0d, 0xc6, 0xe1, 0xc1, 0xdd, 0xa8, 0x2c, + 0x4f, 0xe3, 0x3b, 0x19, 0x64, 0xeb, 0xb5, 0x83, 0xa5, 0x51, 0xf7, 0x5d, 0x23, 0x92, 0xa9, 0x1d, + 0xed, 0x41, 0xa9, 0xb0, 0x9c, 0x28, 0x2c, 0xf3, 0x4f, 0x56, 0xc3, 0x86, 0x96, 0x83, 0x76, 0x52, + 0xca, 0xb7, 0xea, 0x96, 0x79, 0x76, 0xeb, 0x9e, 0xe2, 0x42, 0xed, 0xc1, 0x41, 0x0b, 0x7c, 0x1c, + 0x4c, 0xba, 0xe0, 0x05, 0xe9, 0x26, 0xde, 0x88, 0x2a, 0xdb, 0xce, 0xfc, 0xce, 0xf1, 0xe9, 0x69, + 0xb3, 0xa9, 0x10, 0x32, 0x26, 0x37, 0xbc, 0xc8, 0x6f, 0xca, 0x74, 0x79, 0x42, 0x39, 0xb1, 0x2c, + 0x2e, 0x5e, 0x9d, 0xbe, 0x7d, 0xa3, 0x10, 0x92, 0xb1, 0x74, 0x24, 0xa6, 0x12, 0x9a, 0xf8, 0xe2, + 0x82, 0xde, 0xf7, 0xe7, 0x7d, 0xd6, 0x48, 0xcd, 0x1d, 0xe2, 0x8a, 0x3e, 0x66, 0x75, 0x32, 0x7e, + 0x1c, 0x9c, 0x2b, 0xea, 0xc3, 0x12, 0x02, 0xd5, 0x20, 0x1b, 0x11, 0x7d, 0x9e, 0x86, 0x51, 0xec, + 0xf6, 0x8e, 0xc3, 0x39, 0xb8, 0x25, 0x7e, 0xd8, 0x13, 0x80, 0x01, 0x20, 0xbb, 0x0c, 0xde, 0x2d, + 0x6f, 0x2e, 0x15, 0x9a, 0xe0, 0x12, 0x89, 0x6c, 0x94, 0x93, 0x74, 0x84, 0xe3, 0xf1, 0x4b, 0x7a, + 0x9f, 0xe5, 0x4d, 0x52, 0xca, 0x18, 0xab, 0x71, 0x63, 0x31, 0x16, 0x25, 0x29, 0x1f, 0xc5, 0x4c, + 0x4d, 0x8d, 0x82, 0x04, 0x3b, 0xd5, 0x75, 0x25, 0xa3, 0xb4, 0x2e, 0xc2, 0x62, 0x7a, 0xde, 0x59, + 0x7c, 0x1e, 0x64, 0x35, 0x2a, 0x38, 0xd3, 0xd5, 0x62, 0x4e, 0x73, 0x08, 0x97, 0xfa, 0xb9, 0x05, + 0xfd, 0x1e, 0x13, 0xda, 0xc1, 0xd2, 0xb2, 0x58, 0xae, 0x24, 0x0f, 0xd3, 0xb6, 0x03, 0x96, 0x23, + 0xdb, 0x44, 0xa1, 0x8c, 0x48, 0x5d, 0xac, 0x36, 0x4a, 0x61, 0x66, 0x84, 0x7e, 0x32, 0x62, 0xc0, + 0x53, 0x39, 0x8f, 0xd3, 0x94, 0x23, 0x19, 0x47, 0x4b, 0xba, 0x5a, 0xf1, 0x33, 0x23, 0xab, 0xd0, + 0xa1, 0xbc, 0x04, 0x46, 0x58, 0x18, 0xd0, 0x64, 0x7b, 0x38, 0xfb, 0xfd, 0x8e, 0xdc, 0x37, 0x7f, + 0xa4, 0x71, 0xa6, 0x27, 0x5f, 0xaf, 0x99, 0xc8, 0xd9, 0x28, 0x1c, 0xed, 0x41, 0x7d, 0x77, 0xe2, + 0x3a, 0xfb, 0xd7, 0x80, 0x07, 0x3f, 0xfc, 0xf0, 0x43, 0x8f, 0x61, 0x39, 0x62, 0x07, 0xed, 0x35, + 0x2e, 0xed, 0x95, 0xf9, 0x0d, 0xb6, 0x93, 0x98, 0x82, 0x66, 0x84, 0x6e, 0xfe, 0xdf, 0xa7, 0x13, + 0x19, 0x4d, 0x68, 0x83, 0x00, 0xd5, 0x32, 0x4f, 0xa1, 0x02, 0x8a, 0xb2, 0x12, 0x7d, 0x25, 0x54, + 0xb5, 0x92, 0x20, 0x95, 0x51, 0xe9, 0x53, 0xf8, 0x49, 0x16, 0x4d, 0xcf, 0x64, 0x97, 0x96, 0x78, + 0x4e, 0x4a, 0x85, 0x90, 0xf9, 0x8a, 0x3c, 0xa2, 0xd3, 0xa0, 0x2f, 0xa6, 0xb0, 0xd3, 0xe2, 0x02, + 0x7f, 0x6a, 0x23, 0xf0, 0xf3, 0x8e, 0x26, 0x7f, 0xd5, 0x2d, 0x67, 0xc9, 0x44, 0x2a, 0x5d, 0x0e, + 0x47, 0x71, 0x9e, 0x67, 0xe0, 0xa8, 0x17, 0xc9, 0xf8, 0x6d, 0x7e, 0x93, 0xc1, 0x00, 0x36, 0x54, + 0xda, 0xba, 0xf8, 0x59, 0xad, 0xba, 0x44, 0xe2, 0xad, 0x4e, 0xdb, 0x6d, 0xf0, 0xdb, 0x34, 0x50, + 0xec, 0x50, 0x58, 0x7e, 0x4d, 0xd1, 0xcd, 0x6f, 0xb1, 0xd6, 0x93, 0x8f, 0x3f, 0xbd, 0x4c, 0x63, + 0x72, 0xb9, 0xb0, 0xae, 0xca, 0xca, 0xb6, 0x5c, 0xe7, 0xe2, 0x02, 0xb1, 0x60, 0x18, 0x49, 0x52, + 0xe5, 0x17, 0x0e, 0x33, 0x9d, 0x37, 0x54, 0xa2, 0xf4, 0x4b, 0x35, 0x47, 0x52, 0xa9, 0x5c, 0x80, + 0x2e, 0x2d, 0xfd, 0x4a, 0x13, 0x1c, 0x1c, 0x14, 0x5d, 0xba, 0x7c, 0x90, 0x8d, 0x95, 0x86, 0x85, + 0x20, 0x74, 0x3a, 0xa7, 0x58, 0x0e, 0x21, 0x40, 0x24, 0xeb, 0x35, 0xb6, 0xee, 0x89, 0xb2, 0x5e, + 0xfb, 0x2f, 0xb6, 0xda, 0x65, 0x1d, 0x03, 0x1f, 0xa4, 0x0c, 0xa6, 0x64, 0x0e, 0xb4, 0xb3, 0x07, + 0x81, 0x30, 0x4e, 0x56, 0xc5, 0x06, 0xe0, 0x65, 0xd2, 0xc7, 0xa4, 0x8a, 0xb5, 0x56, 0x0b, 0xac, + 0xa6, 0x3d, 0xad, 0x14, 0x7b, 0x86, 0x68, 0x16, 0x36, 0xc0, 0x01, 0xf3, 0x34, 0x91, 0xa4, 0x3c, + 0x09, 0xc5, 0xf5, 0x46, 0xc0, 0x62, 0x64, 0xa1, 0x2b, 0x9c, 0x93, 0xb2, 0x1e, 0x29, 0xb3, 0xf5, + 0x91, 0xa2, 0x4f, 0x5e, 0x93, 0x6b, 0x55, 0x40, 0x59, 0xf9, 0x70, 0x15, 0xc7, 0x79, 0xc4, 0x8e, + 0x6c, 0x37, 0x02, 0x16, 0x65, 0x4c, 0x80, 0x09, 0x1c, 0x38, 0x59, 0x48, 0x1e, 0x60, 0x4f, 0x61, + 0x97, 0x8c, 0xac, 0x29, 0x9c, 0x25, 0xb0, 0x19, 0xe2, 0x3d, 0xf0, 0x02, 0x8f, 0x00, 0xc8, 0x4a, + 0xba, 0x5b, 0x64, 0x81, 0x9f, 0x20, 0x12, 0x26, 0x0a, 0xdc, 0x33, 0x11, 0x41, 0x50, 0x8d, 0x39, + 0x25, 0x94, 0x35, 0x38, 0x3f, 0x91, 0xd9, 0xbb, 0x1d, 0x69, 0x10, 0xc6, 0x15, 0xbe, 0x8b, 0x80, + 0x77, 0x5f, 0xef, 0x16, 0x0e, 0x7d, 0x01, 0x0a, 0x48, 0xc1, 0xea, 0xc0, 0x6e, 0x39, 0x46, 0x78, + 0x26, 0x8b, 0x9b, 0x48, 0xe6, 0x05, 0xbb, 0x06, 0x66, 0x62, 0x91, 0xc2, 0x55, 0x8c, 0x82, 0x97, + 0xd8, 0x28, 0x9b, 0x8a, 0x21, 0xc6, 0xb5, 0x52, 0x76, 0x51, 0x8b, 0xee, 0x85, 0xda, 0xe6, 0xb1, + 0x01, 0x02, 0x1e, 0x4f, 0x51, 0x1d, 0xdd, 0x03, 0x8b, 0xc6, 0xd2, 0xd0, 0x16, 0x24, 0xaf, 0xb0, + 0xe6, 0xf6, 0x46, 0xee, 0x1f, 0x6e, 0x21, 0x22, 0xf1, 0x88, 0x97, 0x2e, 0x24, 0x60, 0xd0, 0xbf, + 0xc2, 0x45, 0x88, 0xc7, 0x6c, 0x21, 0x86, 0xbc, 0x81, 0xa9, 0x41, 0x7d, 0xa9, 0x7d, 0xef, 0x22, + 0xf8, 0xe0, 0x5a, 0x6b, 0x8c, 0x44, 0xce, 0x64, 0x68, 0x15, 0xdd, 0x0c, 0x84, 0x79, 0x8e, 0xb1, + 0xb4, 0xc2, 0xaa, 0xc0, 0x6c, 0xa7, 0x46, 0xaa, 0x89, 0x06, 0xdb, 0x13, 0x09, 0xc4, 0x60, 0x12, + 0x5c, 0x83, 0x1f, 0xb7, 0xb4, 0x16, 0xc6, 0x63, 0x40, 0xae, 0x52, 0x90, 0x3b, 0xee, 0xd5, 0xee, + 0x6c, 0x85, 0x66, 0xa2, 0xcb, 0x34, 0x70, 0xca, 0x05, 0x31, 0x69, 0x10, 0x81, 0x3d, 0x81, 0xa4, + 0x38, 0x99, 0x66, 0xef, 0x95, 0x99, 0x06, 0xd0, 0xe8, 0xe0, 0x60, 0x0a, 0x0c, 0x6a, 0x8f, 0x3f, + 0x82, 0xf5, 0x68, 0x81, 0xeb, 0x5a, 0xe4, 0xc0, 0x45, 0x14, 0x99, 0xb8, 0x61, 0x10, 0x09, 0x37, + 0x0d, 0xa6, 0xa3, 0x1d, 0x1e, 0xd3, 0x72, 0xdc, 0xac, 0x01, 0xcd, 0x7b, 0x17, 0x8e, 0x08, 0x3d, + 0xbf, 0x79, 0xa0, 0x1b, 0x7a, 0x5e, 0x93, 0x5f, 0x18, 0x82, 0x0b, 0x52, 0xf0, 0xa1, 0xd2, 0x53, + 0x43, 0xd9, 0x9d, 0x50, 0xa2, 0x8b, 0xf9, 0x13, 0x71, 0xd3, 0x96, 0x88, 0xdb, 0x6d, 0xde, 0xf0, + 0x7f, 0x61, 0x72, 0xd6, 0x97, 0xb3, 0x20, 0xb1, 0x00, 0x21, 0x96, 0xdc, 0xe1, 0x7b, 0x31, 0xb7, + 0xc2, 0x3e, 0xa3, 0x1d, 0x10, 0xe4, 0x78, 0xab, 0xbd, 0xae, 0x30, 0xaf, 0x95, 0xcb, 0x32, 0x41, + 0x63, 0xed, 0x99, 0x8a, 0x31, 0xbc, 0x12, 0x1d, 0xcf, 0x8d, 0x29, 0x9e, 0xbb, 0x39, 0x9b, 0x9c, + 0x8d, 0xcf, 0xbb, 0x94, 0x0e, 0x38, 0x0f, 0xf8, 0x91, 0xf3, 0x4b, 0x1b, 0x45, 0xc5, 0xd6, 0xc5, + 0xc1, 0xc1, 0x9c, 0x9d, 0xf2, 0x60, 0xae, 0x87, 0xd5, 0xce, 0x58, 0x25, 0x60, 0x73, 0x76, 0x3e, + 0x94, 0xb2, 0x9a, 0x59, 0xfa, 0x65, 0x66, 0xeb, 0x17, 0xb5, 0xda, 0x19, 0xb3, 0xdb, 0x49, 0x42, + 0x09, 0x91, 0xe9, 0x68, 0x66, 0xab, 0x14, 0x05, 0xc5, 0xb5, 0xea, 0xb8, 0x0a, 0xfc, 0x8d, 0x15, + 0xcc, 0xab, 0x18, 0x57, 0x4f, 0x03, 0x9e, 0xd8, 0x15, 0xe7, 0x4a, 0x81, 0x0a, 0x04, 0xd7, 0xa4, + 0x1a, 0x10, 0x94, 0x6b, 0xe7, 0x9b, 0xd0, 0x5f, 0x72, 0x78, 0x0e, 0x2c, 0xc2, 0x59, 0x9f, 0xc0, + 0x2c, 0x8d, 0xf1, 0xdf, 0x22, 0x30, 0xc1, 0x30, 0xac, 0x54, 0x1f, 0xc6, 0x20, 0x1e, 0xc5, 0xba, + 0xc2, 0xef, 0x13, 0x8e, 0x69, 0x1b, 0x8b, 0xca, 0x4b, 0xbc, 0x0e, 0xfa, 0xc3, 0xeb, 0xa7, 0x8b, + 0xe1, 0x75, 0xbb, 0xad, 0xa6, 0x5a, 0x06, 0xb3, 0xb3, 0xeb, 0x73, 0x71, 0x19, 0x2c, 0x77, 0x68, + 0x75, 0x1b, 0x00, 0x73, 0x97, 0xa3, 0xa5, 0x25, 0x27, 0x5b, 0x05, 0x74, 0x87, 0x07, 0xed, 0x5f, + 0x52, 0xac, 0xe8, 0xd3, 0x96, 0x86, 0x6a, 0x5f, 0xb7, 0x23, 0x77, 0xd2, 0x6e, 0x8b, 0xf9, 0xd9, + 0xed, 0x79, 0xb0, 0xc4, 0xd6, 0x2f, 0xa1, 0xe6, 0x2b, 0x7c, 0x2e, 0x6b, 0x7c, 0x8e, 0x5a, 0xc5, + 0x7a, 0xbd, 0xac, 0x51, 0xd5, 0x05, 0x49, 0xae, 0x5d, 0xcf, 0x2f, 0x58, 0x58, 0x6e, 0xce, 0xa6, + 0xed, 0x36, 0x01, 0xd8, 0xe8, 0x2d, 0x5c, 0xec, 0x6c, 0xe1, 0x42, 0x6d, 0x21, 0x85, 0xb3, 0x88, + 0xe5, 0x47, 0x2c, 0xc2, 0xac, 0x52, 0x6f, 0x03, 0x8e, 0x69, 0x6b, 0xe3, 0x73, 0xeb, 0x4d, 0x2c, + 0x8a, 0xd2, 0xba, 0x00, 0x3f, 0xe2, 0x07, 0xb5, 0x4a, 0xd5, 0x26, 0x26, 0x9d, 0x4e, 0xed, 0x92, + 0x8e, 0x9f, 0x4e, 0x75, 0xf2, 0x60, 0x3c, 0x4c, 0x9e, 0xc2, 0x94, 0x61, 0x32, 0x3b, 0xba, 0xb9, + 0x61, 0x1f, 0xd9, 0xbd, 0x83, 0xaa, 0xa2, 0x47, 0x71, 0x0c, 0x85, 0xbb, 0xcb, 0x55, 0xee, 0x55, + 0x90, 0x7a, 0x0d, 0x96, 0xec, 0x6a, 0x54, 0x81, 0xb9, 0xab, 0xf1, 0xe1, 0xef, 0x31, 0xe5, 0x55, + 0xa5, 0xf9, 0x46, 0xad, 0xbb, 0x66, 0x1d, 0x7e, 0x70, 0x70, 0xe2, 0xde, 0x89, 0xba, 0xa3, 0xe7, + 0x1f, 0xaf, 0xd7, 0xf7, 0xf4, 0x85, 0x04, 0x58, 0x1d, 0xbd, 0x55, 0x14, 0x80, 0x9f, 0x28, 0x00, + 0xd0, 0xfb, 0x4f, 0xd0, 0x61, 0xda, 0x19, 0x40, 0x8d, 0x75, 0x3a, 0x5c, 0x18, 0x1f, 0x1c, 0x8c, + 0xdb, 0xed, 0xe1, 0x25, 0x98, 0xe2, 0x6a, 0x13, 0xc1, 0x7d, 0x88, 0xc0, 0x92, 0xac, 0x50, 0x43, + 0xc5, 0x34, 0x50, 0x79, 0x11, 0x19, 0x61, 0xf5, 0x13, 0x56, 0x19, 0x11, 0x72, 0xee, 0x6c, 0xf5, + 0x12, 0x79, 0x7e, 0x04, 0x78, 0xe1, 0x96, 0xe4, 0xbc, 0x83, 0xde, 0xa2, 0x9c, 0x55, 0x56, 0xc6, + 0x85, 0x7c, 0x1e, 0x93, 0x3e, 0xc5, 0x04, 0xd0, 0x65, 0xac, 0x4a, 0xb0, 0x29, 0x71, 0x4c, 0x34, + 0x9c, 0xd4, 0x74, 0x27, 0x17, 0x7a, 0xee, 0x59, 0x94, 0xbc, 0x06, 0x09, 0xde, 0xbb, 0xf4, 0x4b, + 0x8a, 0x5b, 0xd9, 0xad, 0xf1, 0x53, 0x38, 0x1e, 0x75, 0x27, 0x10, 0x1a, 0xac, 0xd4, 0xe9, 0x9c, + 0x7b, 0xd4, 0x35, 0xa2, 0x7e, 0x1b, 0x28, 0xae, 0x39, 0x4b, 0xdb, 0x85, 0x91, 0xc5, 0x9b, 0xee, + 0x3d, 0x51, 0x8c, 0x27, 0xb6, 0x45, 0x54, 0xc9, 0x4c, 0xc6, 0x53, 0xe9, 0xb0, 0xb6, 0xce, 0x68, + 0x21, 0x94, 0x55, 0x00, 0x03, 0x0e, 0x6b, 0xd7, 0x6b, 0x8a, 0x47, 0x33, 0x41, 0xcf, 0xfc, 0xc7, + 0x20, 0x7a, 0xea, 0xd5, 0xe3, 0x63, 0xcf, 0x31, 0x0a, 0x91, 0x2c, 0x0b, 0xf9, 0xaa, 0x89, 0x1d, + 0x42, 0xa1, 0x42, 0xcd, 0x03, 0xaf, 0x9e, 0x40, 0x60, 0x47, 0x0e, 0xab, 0x37, 0xd3, 0x5b, 0x5f, + 0x29, 0xe7, 0xe2, 0x48, 0x52, 0xae, 0x88, 0x43, 0xea, 0xfd, 0xc9, 0x69, 0x38, 0xa6, 0xa6, 0xdd, + 0xc7, 0xb6, 0x3a, 0xbd, 0xf1, 0xa0, 0x38, 0x4a, 0x91, 0xd4, 0xfe, 0xdc, 0x7b, 0x2b, 0xeb, 0x17, + 0xd8, 0xce, 0xc3, 0x30, 0x1f, 0xbd, 0x71, 0x73, 0xc8, 0xb4, 0x76, 0x38, 0xb7, 0x35, 0x06, 0x8c, + 0xbe, 0xbb, 0x53, 0x05, 0x7b, 0x31, 0xd1, 0x71, 0x34, 0xc7, 0x33, 0x15, 0xae, 0x76, 0xfa, 0xad, + 0xd7, 0x14, 0xef, 0x8b, 0x02, 0x7f, 0x2c, 0x9f, 0x98, 0x8a, 0x6c, 0xbb, 0x24, 0xfa, 0xc3, 0x9d, + 0xd7, 0xb6, 0x4b, 0x0e, 0xad, 0xcc, 0x00, 0xdd, 0x8c, 0x04, 0xd5, 0x34, 0x53, 0x0d, 0xb5, 0x35, + 0x82, 0xc5, 0x8f, 0x37, 0x1b, 0x15, 0x0f, 0xd9, 0x99, 0x9b, 0x0f, 0x5b, 0x54, 0x84, 0x7b, 0x61, + 0x52, 0x6e, 0x4c, 0x10, 0x02, 0x97, 0xcb, 0x9c, 0xa4, 0x8f, 0xcd, 0x9e, 0x29, 0x60, 0x17, 0x94, + 0x10, 0x1e, 0x51, 0x4a, 0x30, 0xbe, 0x7d, 0x20, 0x5d, 0x02, 0x21, 0x96, 0x5d, 0xfa, 0xb2, 0x9e, + 0x9b, 0x31, 0x40, 0xe0, 0x44, 0xb7, 0x2e, 0xb9, 0xd5, 0xdb, 0x72, 0x8e, 0x40, 0x08, 0x0d, 0x23, + 0xb8, 0x86, 0x77, 0x41, 0x46, 0x0b, 0x9c, 0x1d, 0x9e, 0x15, 0xe7, 0x3b, 0x3e, 0x94, 0x34, 0x7e, + 0x5e, 0x56, 0xfb, 0x34, 0xdc, 0xcd, 0x94, 0x44, 0xc8, 0x0a, 0x03, 0x21, 0x5d, 0x21, 0x06, 0x88, + 0x81, 0x8c, 0xab, 0x92, 0xd5, 0x58, 0xbb, 0x36, 0x7b, 0xb4, 0x63, 0x1c, 0x6b, 0x1a, 0x34, 0xe7, + 0x16, 0x92, 0xff, 0xb0, 0x6d, 0x0f, 0x67, 0xa1, 0x4a, 0xfa, 0xc6, 0x81, 0x8a, 0x76, 0x75, 0x81, + 0xfc, 0x55, 0xa2, 0x18, 0xfd, 0x2b, 0xb6, 0x31, 0xd3, 0x54, 0x6b, 0xff, 0x40, 0x65, 0x0a, 0xab, + 0x0c, 0x2d, 0x35, 0x55, 0x05, 0x6a, 0xa9, 0x72, 0x3e, 0xd2, 0x5e, 0x42, 0x77, 0x1a, 0xcb, 0x17, + 0x71, 0x91, 0x2c, 0xe2, 0xf1, 0x09, 0xbd, 0x0f, 0xf0, 0x63, 0x91, 0x5f, 0x73, 0x02, 0x49, 0x79, + 0xed, 0xe4, 0xaa, 0xc1, 0x73, 0x1c, 0x59, 0x21, 0xd3, 0xaf, 0x49, 0x9a, 0xee, 0x07, 0x52, 0x55, + 0xad, 0xcb, 0x59, 0x44, 0xbb, 0xfa, 0x43, 0x1c, 0xc5, 0x80, 0xaf, 0xa1, 0x7e, 0xa6, 0x51, 0x45, + 0x8d, 0x94, 0x72, 0xc9, 0x5a, 0x7a, 0x99, 0x92, 0xad, 0xbd, 0xab, 0xb8, 0xeb, 0x58, 0x95, 0x19, + 0x1f, 0x56, 0xb9, 0xee, 0x09, 0x66, 0x33, 0x8f, 0x01, 0xf9, 0x9a, 0xdc, 0x8b, 0x41, 0x57, 0x63, + 0xb8, 0xc4, 0xdc, 0x8a, 0x5f, 0xd5, 0x85, 0x2a, 0x62, 0x61, 0xa3, 0x78, 0x20, 0x38, 0x6b, 0x86, + 0x89, 0x07, 0xea, 0x97, 0x63, 0xf3, 0xa4, 0x5b, 0x2e, 0xb3, 0xa8, 0xf2, 0xbc, 0x7f, 0xe1, 0xcb, + 0x45, 0xbc, 0x23, 0xc2, 0xd2, 0x88, 0x52, 0x91, 0xfe, 0x6b, 0x90, 0x70, 0x00, 0xf2, 0x51, 0xb2, + 0x4a, 0x93, 0x49, 0x6c, 0x09, 0xd2, 0xeb, 0x3a, 0x5c, 0x00, 0xdf, 0xb5, 0xea, 0x59, 0x75, 0xf8, + 0x20, 0xd8, 0xdf, 0x30, 0x0b, 0x44, 0x28, 0x40, 0xd9, 0x21, 0xcc, 0x03, 0xb3, 0x5a, 0xed, 0x8d, + 0x3d, 0x11, 0x6b, 0x6b, 0x21, 0x7c, 0x11, 0x55, 0xc1, 0x24, 0x5c, 0xaf, 0x53, 0xf8, 0x25, 0x3b, + 0x28, 0x8b, 0xe0, 0xa5, 0xa8, 0x85, 0xc2, 0x55, 0x91, 0x35, 0x13, 0x2f, 0x82, 0xc9, 0x7a, 0x3d, + 0x86, 0xda, 0xd9, 0x8a, 0x59, 0x38, 0xbc, 0xbc, 0x0e, 0xe6, 0xa4, 0xf5, 0xbf, 0x9a, 0x5d, 0xd2, + 0xe0, 0xad, 0xcb, 0xc9, 0xcb, 0x54, 0xd3, 0xe1, 0x8b, 0x83, 0x5c, 0x38, 0x56, 0x1e, 0x75, 0xe6, + 0x2d, 0xc2, 0x42, 0x8b, 0x89, 0x26, 0x36, 0xd1, 0x64, 0x56, 0x35, 0xdc, 0x58, 0x74, 0x9d, 0x8b, + 0x23, 0xa5, 0xbd, 0xf8, 0x4b, 0x35, 0x37, 0xe9, 0x78, 0x87, 0x20, 0x9a, 0x58, 0xf7, 0xb4, 0xba, + 0xec, 0xca, 0x79, 0x23, 0x8a, 0xfb, 0x76, 0xf9, 0xd4, 0x8c, 0x6f, 0xac, 0xd6, 0x03, 0x2b, 0x86, + 0x09, 0xeb, 0x55, 0x5b, 0x8b, 0x8b, 0xb6, 0x98, 0xce, 0x26, 0x4a, 0xb0, 0xcb, 0xb2, 0x95, 0x52, + 0xe1, 0x80, 0xa7, 0x4e, 0x5b, 0x0f, 0x44, 0xeb, 0x02, 0x0a, 0x23, 0x90, 0x5a, 0x4d, 0xd5, 0x13, + 0x03, 0x8b, 0xac, 0x75, 0x8f, 0x2b, 0xb1, 0x88, 0x0c, 0xc6, 0x9b, 0xda, 0x5d, 0x8a, 0x76, 0x27, + 0xb4, 0x1d, 0x34, 0x9c, 0x64, 0xe1, 0x1c, 0x08, 0xd1, 0xc6, 0xdd, 0xec, 0xd4, 0xbd, 0x0e, 0xee, + 0x6d, 0x75, 0x67, 0x30, 0x47, 0x2a, 0x5d, 0xb1, 0x14, 0x97, 0x70, 0x41, 0x39, 0x19, 0xf1, 0x85, + 0xe0, 0xf8, 0x56, 0x71, 0xf1, 0x1d, 0x82, 0xd7, 0xc2, 0x1b, 0xc2, 0x63, 0x9b, 0xc2, 0xd6, 0x27, + 0x3b, 0x9a, 0xf5, 0xf6, 0xe0, 0xe0, 0x8e, 0x8f, 0x3a, 0x38, 0xd0, 0xc0, 0xc3, 0xe8, 0x0f, 0x18, + 0xc2, 0x3b, 0xc8, 0x0d, 0xfb, 0x04, 0xbe, 0xbb, 0x0c, 0x12, 0x61, 0xb3, 0x63, 0x90, 0x20, 0xf6, + 0xbc, 0x45, 0x8f, 0x88, 0xc2, 0xf7, 0x0a, 0x71, 0xf5, 0x23, 0x71, 0x70, 0xb2, 0x17, 0x1a, 0x43, + 0xd7, 0x2b, 0xc0, 0x7d, 0x05, 0x58, 0xbc, 0x46, 0x89, 0xc2, 0x50, 0x4a, 0x04, 0xc0, 0xcb, 0x4e, + 0x58, 0x1c, 0x54, 0x92, 0xaa, 0x0c, 0x16, 0x02, 0xf3, 0xd2, 0x72, 0xdd, 0x72, 0x4b, 0x16, 0xcc, + 0xd1, 0xd3, 0x62, 0xbd, 0x1e, 0x70, 0x1e, 0x95, 0x7a, 0x34, 0x05, 0xad, 0x04, 0xf2, 0x19, 0xe2, + 0x56, 0x0a, 0x76, 0x73, 0x44, 0x9b, 0x13, 0xb1, 0x80, 0xaf, 0x6b, 0x45, 0x6c, 0x3c, 0x2f, 0xe7, + 0xe5, 0xe1, 0xcc, 0x53, 0x24, 0x00, 0xd4, 0xe0, 0x67, 0xaa, 0x70, 0x76, 0x15, 0xd8, 0x7d, 0x87, + 0x57, 0xaa, 0x0f, 0x7e, 0xdc, 0xab, 0xed, 0x50, 0xef, 0x52, 0x2c, 0x60, 0xf1, 0xc8, 0x93, 0x6f, + 0x08, 0x9b, 0x17, 0x2a, 0x6c, 0x26, 0x4f, 0x7d, 0x79, 0x70, 0xf0, 0xc6, 0x5d, 0x72, 0xe6, 0x94, + 0xf6, 0x19, 0x5c, 0x62, 0xe5, 0xad, 0xac, 0xce, 0x94, 0x1d, 0x03, 0x3f, 0x27, 0x81, 0x1c, 0x9e, + 0x04, 0x27, 0x7b, 0xa8, 0x1b, 0x7a, 0xee, 0x71, 0x70, 0xe2, 0xe9, 0x81, 0xc3, 0x4b, 0x7b, 0xa6, + 0x63, 0x71, 0x79, 0x8f, 0x53, 0x7b, 0x6c, 0x13, 0x7a, 0xb3, 0xa1, 0x89, 0x5a, 0xd0, 0x2e, 0xf9, + 0xe8, 0x95, 0x39, 0x83, 0xf1, 0x2f, 0x28, 0x69, 0x6a, 0x67, 0xdf, 0x1a, 0x84, 0xae, 0xaa, 0x25, + 0x16, 0x14, 0xd7, 0x14, 0x04, 0x5f, 0x28, 0x59, 0x38, 0x86, 0x95, 0xa7, 0xf7, 0xbd, 0xaa, 0xa3, + 0x4d, 0xaf, 0xa1, 0x89, 0x4f, 0x71, 0x94, 0x43, 0x20, 0xbd, 0xe1, 0x29, 0x9c, 0x36, 0x4e, 0x93, + 0x6d, 0x6a, 0x1d, 0xfc, 0xc6, 0x3e, 0xd0, 0xa0, 0x2d, 0x0e, 0x77, 0xed, 0xeb, 0xb6, 0x02, 0xc8, + 0xae, 0x1b, 0xcd, 0x9d, 0xae, 0x77, 0x49, 0xf6, 0x2e, 0x8d, 0x24, 0x0f, 0xef, 0x77, 0xd5, 0x62, + 0xed, 0x94, 0xd3, 0x81, 0xeb, 0x9e, 0xb7, 0x16, 0xdf, 0xeb, 0xad, 0xbd, 0x73, 0x2d, 0x65, 0x11, + 0xc3, 0xe1, 0x37, 0xc8, 0x84, 0x8f, 0x16, 0x6f, 0x19, 0x1a, 0xee, 0x5f, 0x6f, 0x73, 0xa9, 0x7c, + 0x47, 0x95, 0x58, 0x35, 0x87, 0x62, 0xc2, 0xf8, 0x20, 0xac, 0x86, 0x62, 0x55, 0x54, 0x2a, 0x4d, + 0xaa, 0x82, 0xd2, 0x6a, 0xf5, 0xe3, 0x7a, 0x4d, 0xe7, 0x51, 0x0c, 0x64, 0x07, 0xd5, 0xf0, 0xe7, + 0xea, 0xd9, 0x2e, 0xad, 0x3c, 0x98, 0xf1, 0x34, 0xd4, 0xd9, 0xed, 0x6a, 0x53, 0x1f, 0x79, 0x14, + 0x08, 0x18, 0x8b, 0xa7, 0x26, 0x2a, 0x1e, 0x16, 0x08, 0xe5, 0x9a, 0x0e, 0x04, 0xe0, 0x67, 0x31, + 0xa8, 0x1a, 0xfc, 0xed, 0xff, 0x0e, 0xbe, 0xf1, 0x54, 0xa1, 0x9a, 0xe1, 0xad, 0xbb, 0xac, 0xdd, + 0x4b, 0xb1, 0xa2, 0x0b, 0xda, 0xb4, 0x6b, 0x7f, 0xfb, 0x22, 0x81, 0x46, 0x53, 0x65, 0x61, 0xdd, + 0xed, 0x0a, 0x0b, 0x5d, 0x9e, 0x8d, 0x45, 0xad, 0x9e, 0xed, 0xd6, 0x7b, 0x0e, 0x5f, 0xeb, 0x2e, + 0x16, 0x49, 0xe0, 0x4a, 0x79, 0x82, 0x84, 0xa3, 0x09, 0xfb, 0xfa, 0x74, 0xde, 0x13, 0xa5, 0xba, + 0xdb, 0xbc, 0x11, 0xc0, 0x42, 0xa4, 0xb5, 0xb7, 0xb5, 0x7c, 0x2c, 0xfe, 0xb3, 0x10, 0x24, 0x29, + 0x46, 0xbe, 0xa5, 0x70, 0x04, 0x18, 0xaa, 0x4b, 0x3d, 0xdc, 0x5b, 0x6d, 0x36, 0xca, 0x0a, 0xdc, + 0x05, 0x0e, 0xf8, 0xbd, 0x8c, 0xc7, 0xf9, 0x6d, 0xe6, 0x88, 0x2b, 0x5d, 0x22, 0xd4, 0x3a, 0x08, + 0xb9, 0x55, 0xe9, 0x66, 0xee, 0x88, 0x17, 0x74, 0x4d, 0xe4, 0x26, 0x9a, 0x61, 0x33, 0x85, 0x74, + 0xc4, 0xaf, 0xba, 0xa8, 0x3a, 0x3e, 0xd7, 0x25, 0xcc, 0xe2, 0x20, 0x32, 0xa8, 0xa6, 0xa1, 0x13, + 0x6d, 0x43, 0x6a, 0x49, 0x6b, 0x8e, 0xb5, 0x04, 0xd3, 0xba, 0xa4, 0xc6, 0xe9, 0x4d, 0x32, 0x0e, + 0xdc, 0xb7, 0xa1, 0x9c, 0x75, 0x8b, 0x30, 0x1b, 0xe7, 0xd7, 0xae, 0xd7, 0x1e, 0x78, 0x5d, 0x99, + 0xeb, 0x3c, 0xdf, 0xa3, 0x27, 0xf6, 0x79, 0xd3, 0x63, 0x6f, 0x63, 0x8e, 0x32, 0xd5, 0xb1, 0xf0, + 0x05, 0x53, 0xf9, 0xe2, 0x82, 0x64, 0xc8, 0xb5, 0x03, 0x8c, 0x40, 0x25, 0x0e, 0x75, 0x26, 0xcf, + 0xe5, 0x63, 0xcd, 0xaa, 0x71, 0x37, 0x7c, 0xf0, 0xac, 0x58, 0x64, 0xef, 0x14, 0xc1, 0xbe, 0xc9, + 0x71, 0xa9, 0x48, 0xca, 0x1e, 0xd7, 0xd9, 0x9d, 0x78, 0x71, 0xce, 0x7b, 0x10, 0xab, 0x79, 0x58, + 0x96, 0xf0, 0x84, 0xfc, 0xd6, 0x60, 0xe3, 0x6d, 0x84, 0x6c, 0x02, 0x67, 0x29, 0x17, 0x1b, 0xe2, + 0x6d, 0x23, 0xc4, 0x1d, 0x20, 0x33, 0x60, 0x26, 0x55, 0xcc, 0x1e, 0x6c, 0xf1, 0x00, 0x33, 0x2b, + 0xad, 0x55, 0x1d, 0x12, 0xbb, 0x8a, 0xa8, 0xa4, 0x01, 0x15, 0x41, 0x4a, 0xf2, 0xf1, 0xf9, 0x1e, + 0xdf, 0xf8, 0x54, 0x55, 0x9c, 0xf5, 0xcf, 0x7d, 0x04, 0x28, 0x94, 0x27, 0x4c, 0x13, 0x8c, 0xfc, + 0x4d, 0x64, 0xd5, 0xf3, 0xbf, 0x11, 0xb0, 0x55, 0xab, 0x21, 0x17, 0xe2, 0x39, 0xbd, 0x81, 0x0b, + 0xbc, 0x1f, 0x73, 0x33, 0xbc, 0x7a, 0x9a, 0xa1, 0xbc, 0x4d, 0xf8, 0x30, 0x8d, 0x8f, 0x72, 0xbc, + 0x55, 0x84, 0xbe, 0x0f, 0xee, 0x7c, 0xfe, 0x79, 0xe1, 0x5f, 0xba, 0x26, 0x87, 0x2a, 0xce, 0xae, + 0xc4, 0xaf, 0xe2, 0x58, 0x3c, 0x6f, 0xc2, 0x91, 0x22, 0xbd, 0xda, 0xd6, 0x6b, 0xba, 0xee, 0xe6, + 0xaa, 0x93, 0x19, 0xe7, 0xe4, 0xf4, 0xd9, 0x87, 0x53, 0xc7, 0x53, 0x39, 0x91, 0x21, 0x03, 0xbd, + 0x52, 0xb0, 0x7f, 0xf5, 0xef, 0x1b, 0xf3, 0xf6, 0xfd, 0xc7, 0x97, 0xdb, 0x43, 0x8e, 0xd5, 0x90, + 0xe7, 0xf7, 0x0e, 0x79, 0xf9, 0xee, 0x85, 0xe3, 0x89, 0xdb, 0xaf, 0x5b, 0xec, 0x06, 0xc4, 0xd8, + 0xc0, 0xe8, 0xd6, 0x61, 0xee, 0xc7, 0xda, 0xd6, 0xe8, 0x77, 0x02, 0xb3, 0x70, 0x91, 0x4c, 0x43, + 0x72, 0x8b, 0xe9, 0x8b, 0xed, 0xcf, 0xa6, 0x04, 0x33, 0x0f, 0x7a, 0xbf, 0xbb, 0xee, 0xa8, 0x15, + 0xcd, 0xe0, 0x1a, 0xc7, 0x6b, 0xac, 0xa2, 0x80, 0x92, 0xf3, 0xba, 0xde, 0x61, 0x19, 0x4e, 0xc2, + 0x22, 0xe9, 0x25, 0xea, 0xf0, 0x17, 0xac, 0x9b, 0x05, 0xbd, 0xe4, 0xe7, 0x19, 0xf8, 0x64, 0x9d, + 0xfc, 0x9c, 0x8f, 0xf1, 0x27, 0x1c, 0x5b, 0xad, 0x45, 0xb0, 0xf3, 0xe6, 0xa1, 0x89, 0x4a, 0xe1, + 0x91, 0x64, 0xa3, 0x42, 0x31, 0x4a, 0x94, 0xa7, 0x6d, 0xa7, 0xd7, 0x73, 0xda, 0x45, 0x77, 0x96, + 0x97, 0x12, 0x3f, 0x73, 0x08, 0x15, 0x25, 0x6d, 0xf1, 0x58, 0xc6, 0x61, 0x11, 0xcd, 0xda, 0xd2, + 0xb7, 0x6e, 0x90, 0xfc, 0xb8, 0x7f, 0xaa, 0x54, 0x74, 0xb2, 0xa7, 0xc1, 0xe0, 0xfb, 0xfe, 0xa8, + 0xef, 0x0f, 0xaa, 0xc8, 0xf7, 0x30, 0x60, 0xe9, 0xfc, 0xf9, 0x75, 0x0f, 0x2d, 0xa2, 0xd8, 0x2e, + 0x3a, 0x6f, 0x1f, 0x38, 0x6d, 0x57, 0xb6, 0xf3, 0x43, 0xae, 0x8d, 0xf2, 0x12, 0x3e, 0xa2, 0xd7, + 0x76, 0xa8, 0x36, 0x36, 0xb5, 0x65, 0x92, 0xe9, 0xda, 0x67, 0xa8, 0xcf, 0xb9, 0x95, 0xfe, 0xf6, + 0xf1, 0x9b, 0xe8, 0xdf, 0x6d, 0x18, 0x59, 0x23, 0x8c, 0xcc, 0x8e, 0xb9, 0x1e, 0xda, 0xf6, 0xbe, + 0x10, 0x64, 0x9d, 0x6f, 0x8a, 0xd4, 0xac, 0x7a, 0xee, 0xf2, 0x59, 0x82, 0x58, 0xf1, 0x31, 0xa5, + 0xef, 0x24, 0x05, 0x94, 0x84, 0x62, 0x04, 0x47, 0xdc, 0x21, 0x48, 0xb8, 0x13, 0x4b, 0xfc, 0x5d, + 0x0a, 0xf5, 0x6d, 0xf4, 0x55, 0xf5, 0xdd, 0x5b, 0x87, 0x3f, 0x77, 0x85, 0x5e, 0xa0, 0x3a, 0x62, + 0x44, 0xc0, 0x01, 0x41, 0x1d, 0xa1, 0xb5, 0x09, 0x71, 0xc5, 0x34, 0x23, 0xed, 0xbf, 0xe2, 0x53, + 0xd3, 0x57, 0xb0, 0xd0, 0xfe, 0x47, 0xf8, 0x01, 0x24, 0xaf, 0x79, 0x91, 0x4c, 0x13, 0x8a, 0x75, + 0x5b, 0x6a, 0x60, 0x94, 0x14, 0x11, 0x4d, 0xd7, 0xb0, 0x86, 0x8b, 0x0b, 0x4e, 0x42, 0x39, 0xa2, + 0xf0, 0x63, 0x41, 0xdf, 0x75, 0xf2, 0x1d, 0x7a, 0xed, 0xda, 0xe1, 0x14, 0x67, 0x7e, 0x15, 0xab, + 0x17, 0xbf, 0x1d, 0xff, 0x48, 0xa8, 0xb2, 0xef, 0xd0, 0xab, 0xe9, 0xce, 0xe6, 0xeb, 0x60, 0xf3, + 0x57, 0x72, 0x18, 0x76, 0xe7, 0xe8, 0x2b, 0xa1, 0x4f, 0x26, 0x13, 0x40, 0xf7, 0x36, 0x0f, 0xb7, + 0xee, 0x9b, 0x04, 0xab, 0x3b, 0xbf, 0x0f, 0x44, 0x81, 0xec, 0xfe, 0xf7, 0x02, 0xe8, 0xe5, 0x3c, + 0xb4, 0x50, 0x1b, 0xf5, 0x4d, 0xe3, 0x66, 0xc3, 0x5a, 0xe7, 0xa7, 0xe0, 0x59, 0x51, 0x84, 0x4b, + 0x4a, 0x4c, 0xa6, 0x4b, 0xf6, 0x89, 0xc4, 0x4a, 0xe7, 0xc9, 0x1f, 0x3d, 0xe9, 0x6f, 0xbc, 0xee, + 0x75, 0x38, 0x77, 0xb7, 0x0d, 0x70, 0x75, 0x2d, 0xc5, 0x13, 0x7f, 0x6d, 0x29, 0xb6, 0x8a, 0xca, + 0xb1, 0x4b, 0x5a, 0x4e, 0x81, 0x64, 0xc9, 0xac, 0x2e, 0xc2, 0x55, 0x96, 0x80, 0x62, 0xa6, 0xd8, + 0xb2, 0x04, 0x92, 0x2c, 0x41, 0x7c, 0xaf, 0x25, 0x90, 0x5b, 0xa9, 0xa7, 0x1d, 0x4b, 0x10, 0xdb, + 0x96, 0xe0, 0xa2, 0xfa, 0xae, 0xc2, 0xb3, 0x6c, 0x0a, 0x27, 0x72, 0x7b, 0xed, 0xda, 0x25, 0xac, + 0xcc, 0x7a, 0xf7, 0x76, 0x16, 0xc7, 0x29, 0xf7, 0xd4, 0x4c, 0x08, 0x7b, 0x44, 0xb7, 0x61, 0xf2, + 0xe8, 0xea, 0x36, 0x29, 0x39, 0x9f, 0xb8, 0xdb, 0xfb, 0x45, 0x52, 0xc4, 0x0c, 0x72, 0xd4, 0x01, + 0x8a, 0xda, 0xb2, 0xe3, 0xc6, 0xa3, 0x4e, 0xee, 0xc3, 0xad, 0xcc, 0x3b, 0xd2, 0xfb, 0x96, 0xea, + 0xf0, 0x1f, 0x3f, 0x6c, 0x84, 0xb5, 0x25, 0x93, 0xec, 0xb2, 0x51, 0xa6, 0x45, 0x81, 0x70, 0x44, + 0xb2, 0xc0, 0x24, 0x16, 0x74, 0xb5, 0x48, 0x7d, 0x09, 0xe1, 0x57, 0x2e, 0x53, 0x04, 0xaa, 0xb8, + 0xe4, 0x03, 0x7f, 0x18, 0x41, 0x24, 0x9c, 0x80, 0x48, 0xa1, 0xb7, 0x66, 0xe5, 0x42, 0x94, 0x41, + 0xde, 0x3b, 0xea, 0x64, 0x94, 0xaa, 0x60, 0xd7, 0x62, 0x1b, 0x01, 0x6e, 0xd2, 0x9d, 0x51, 0xb8, + 0x73, 0xe8, 0x5a, 0x1a, 0x00, 0xae, 0x2a, 0xe5, 0x50, 0x7a, 0x83, 0x7e, 0xff, 0xd0, 0x2d, 0x3b, + 0x74, 0x98, 0xa5, 0xbe, 0x69, 0x03, 0x5d, 0xe2, 0x89, 0x28, 0x28, 0xdb, 0x99, 0x98, 0xd1, 0xdf, + 0xcf, 0x4a, 0x26, 0x63, 0xc3, 0x11, 0xea, 0x73, 0x06, 0xb9, 0xd0, 0xdf, 0xd4, 0xc8, 0xef, 0x97, + 0x4e, 0x61, 0xbe, 0x65, 0xe0, 0xf0, 0x37, 0x14, 0x48, 0x5a, 0x01, 0x18, 0xbc, 0x5b, 0x3a, 0xec, + 0x31, 0x53, 0x89, 0xbe, 0xfd, 0x10, 0xa6, 0x3f, 0xd1, 0x0f, 0xbd, 0x5c, 0x24, 0x56, 0xc9, 0xd8, + 0x37, 0x2e, 0x07, 0x77, 0x2f, 0xe9, 0x15, 0x2d, 0xb1, 0xca, 0x27, 0x13, 0xba, 0xdb, 0xed, 0xf4, + 0xbf, 0x65, 0x09, 0xc9, 0xe7, 0xea, 0x9b, 0x13, 0x4e, 0x25, 0x16, 0x0d, 0x7d, 0xe9, 0x7b, 0x92, + 0x8d, 0xbd, 0x75, 0x9d, 0xfe, 0x56, 0x01, 0x6a, 0x49, 0x6a, 0x3d, 0x06, 0xd1, 0xb8, 0x69, 0x48, + 0xed, 0xcd, 0xbe, 0x64, 0x96, 0xb6, 0xd8, 0x6e, 0xc4, 0x4f, 0x3b, 0xb2, 0x53, 0x49, 0x0e, 0xa0, + 0x92, 0x96, 0x07, 0x60, 0x3a, 0x24, 0x92, 0x62, 0xec, 0xff, 0xe8, 0x46, 0x62, 0x26, 0xca, 0xde, + 0x91, 0x80, 0xe7, 0xdf, 0x1e, 0x74, 0x1f, 0x7b, 0x95, 0x90, 0xcf, 0xca, 0xd4, 0x75, 0xda, 0x7b, + 0x7c, 0x0d, 0x70, 0x6d, 0x47, 0xf0, 0x17, 0x32, 0x05, 0x7d, 0x90, 0xd8, 0xc3, 0x82, 0x37, 0x6a, + 0xc5, 0x8d, 0x5a, 0x46, 0x2f, 0xbb, 0x0c, 0xa5, 0xfe, 0x74, 0x9b, 0x23, 0x22, 0xd8, 0x7f, 0x11, + 0x2d, 0x7d, 0x30, 0x58, 0xb5, 0x74, 0xfe, 0x16, 0x5e, 0xfb, 0xa3, 0xeb, 0x7c, 0xe3, 0xb4, 0x0d, + 0xd6, 0x31, 0x11, 0x41, 0x87, 0xae, 0x64, 0x20, 0x6f, 0xcc, 0x8b, 0xeb, 0xf7, 0xab, 0x34, 0x3d, + 0x59, 0x6a, 0x7a, 0x36, 0xcf, 0xc5, 0xca, 0x51, 0x54, 0xdf, 0x87, 0xe8, 0x24, 0xdd, 0x05, 0x31, + 0xe4, 0xe6, 0x8b, 0x9b, 0x50, 0xb2, 0xd1, 0x0c, 0x54, 0xa9, 0x4c, 0x8d, 0x3c, 0x23, 0x46, 0x7c, + 0x71, 0x7d, 0x97, 0x5a, 0x19, 0x4f, 0xf4, 0x50, 0xac, 0x0a, 0xbf, 0x60, 0x2d, 0x69, 0x84, 0xec, + 0x64, 0x31, 0x35, 0xca, 0xd2, 0x54, 0xbd, 0xe7, 0x22, 0x4c, 0x50, 0xd4, 0x4e, 0x6b, 0x7b, 0x17, + 0x22, 0xf8, 0xf7, 0x67, 0xa6, 0x86, 0x6c, 0x5d, 0x48, 0x34, 0xd8, 0x16, 0x7a, 0xcb, 0x8f, 0x09, + 0xee, 0xbb, 0xa7, 0x90, 0x77, 0xe9, 0x7b, 0x25, 0x10, 0xeb, 0x9c, 0xbe, 0x14, 0x42, 0x57, 0x14, + 0x2a, 0x95, 0x03, 0xa9, 0x2e, 0x95, 0x5a, 0x00, 0x73, 0xa4, 0x41, 0xd8, 0x29, 0x2b, 0x59, 0x2d, + 0xb7, 0x94, 0x02, 0x8a, 0x96, 0xce, 0x18, 0x4a, 0x74, 0x75, 0x65, 0xa7, 0x40, 0xd0, 0x42, 0x4f, + 0x71, 0x27, 0xf1, 0xf4, 0x15, 0x67, 0x5e, 0x6c, 0x28, 0xc3, 0xec, 0xc8, 0x8d, 0xc9, 0x9f, 0x9f, + 0x35, 0xab, 0x0d, 0xe5, 0xdc, 0x93, 0x2b, 0xe9, 0x46, 0x87, 0xf4, 0x2f, 0x5f, 0xf4, 0xb4, 0xfe, + 0x80, 0x91, 0x67, 0x0d, 0x72, 0xa3, 0x20, 0x5d, 0x63, 0xdb, 0x6a, 0xff, 0x7f, 0x16, 0x08, 0x17, + 0x0e, 0x65, 0x3b, 0x3e, 0x84, 0xf7, 0x93, 0xc2, 0xe5, 0xec, 0xe6, 0x99, 0xf2, 0xdf, 0x32, 0xb1, + 0x9a, 0x81, 0x4a, 0xa5, 0x6f, 0x01, 0x05, 0xa5, 0x7b, 0xe9, 0xe1, 0x8d, 0x47, 0xae, 0x77, 0xbc, + 0xa1, 0xfc, 0x40, 0x65, 0x3e, 0xfe, 0xb4, 0x75, 0x75, 0x67, 0xf0, 0x94, 0x8e, 0xc3, 0xc6, 0xf1, + 0xdd, 0xfb, 0x89, 0xeb, 0x7c, 0x4b, 0xf7, 0x00, 0x83, 0x79, 0x58, 0x94, 0xf1, 0x8f, 0xf4, 0xe1, + 0x13, 0x1a, 0x67, 0xdc, 0xaa, 0x51, 0xcc, 0xfa, 0x2c, 0xf3, 0xad, 0xb4, 0xff, 0x6f, 0xb6, 0xd8, + 0xd1, 0xa8, 0xd7, 0x99, 0xa4, 0xbc, 0xf0, 0x13, 0xcb, 0x27, 0xf9, 0xb7, 0x7d, 0xf5, 0xa9, 0x8e, + 0x61, 0xd0, 0x87, 0x50, 0x7d, 0x42, 0xb1, 0x93, 0x7b, 0x24, 0xa0, 0x12, 0xd4, 0x19, 0xdc, 0x3f, + 0x02, 0xc7, 0x1d, 0xf9, 0x67, 0x9d, 0x4f, 0x9f, 0xda, 0xe7, 0xa3, 0x4f, 0x9f, 0xc6, 0x87, 0x9f, + 0x3e, 0x75, 0xf1, 0xd3, 0xfe, 0x76, 0xe4, 0xad, 0xb7, 0x1a, 0xa8, 0xc6, 0x11, 0xff, 0x0c, 0x9c, + 0xb3, 0x4f, 0x9f, 0xca, 0xf5, 0xa7, 0x4f, 0xee, 0x79, 0x1b, 0xb2, 0xf5, 0x0f, 0x48, 0xd3, 0x99, + 0x40, 0xb1, 0xbc, 0xaf, 0x88, 0x67, 0xc0, 0xf4, 0x46, 0x8e, 0xf8, 0xd7, 0xdf, 0x1e, 0x7b, 0x2f, + 0xa8, 0xff, 0xf0, 0x31, 0xcc, 0x87, 0x78, 0xfa, 0xf2, 0x8e, 0x94, 0xec, 0xf4, 0xd2, 0x69, 0xff, + 0x13, 0x22, 0x2d, 0x77, 0xab, 0x43, 0xa7, 0xfd, 0x2f, 0xf0, 0xcc, 0x76, 0x3d, 0x74, 0x10, 0x77, + 0xcf, 0xf7, 0xaa, 0x55, 0x77, 0x04, 0x38, 0xce, 0xef, 0xd8, 0xfb, 0x37, 0xa3, 0x75, 0xff, 0x8e, + 0x36, 0x5d, 0xa0, 0xc2, 0x3d, 0xeb, 0x77, 0x7e, 0x08, 0x3b, 0x93, 0x67, 0x9d, 0x1f, 0xcf, 0x57, + 0x70, 0xc8, 0x1d, 0x91, 0xec, 0xd6, 0x1e, 0x51, 0x6d, 0xb9, 0x0d, 0xd4, 0x69, 0x67, 0x70, 0x83, + 0xcd, 0xff, 0x9d, 0x87, 0x20, 0x78, 0xf8, 0xb9, 0x1e, 0xa6, 0x53, 0xda, 0xd0, 0x29, 0x31, 0xff, + 0xe7, 0x1e, 0xd1, 0xe7, 0x7a, 0x98, 0x4e, 0xb3, 0x9d, 0x58, 0x8d, 0x45, 0x23, 0xcf, 0x8e, 0xd5, + 0x6b, 0x55, 0xad, 0x81, 0x4e, 0xbf, 0xa8, 0x77, 0x75, 0xc0, 0xd5, 0x7d, 0x70, 0x75, 0x5f, 0x2c, + 0xf0, 0x5f, 0xe8, 0x0f, 0x36, 0xc2, 0xc4, 0xf7, 0xf4, 0x2a, 0x9b, 0x04, 0x67, 0x43, 0xe8, 0x57, + 0xb0, 0xd1, 0xfe, 0x2a, 0xe2, 0xcf, 0x85, 0x40, 0xf7, 0xc2, 0x0e, 0xfa, 0x2d, 0x38, 0x06, 0xc0, + 0x75, 0x43, 0x2d, 0x50, 0xda, 0xdc, 0x57, 0x31, 0x65, 0xd3, 0x88, 0xf8, 0xee, 0xfe, 0xb6, 0x32, + 0xbd, 0xaf, 0x6d, 0x33, 0x9c, 0xd9, 0xb1, 0x2a, 0xd6, 0xdb, 0xe0, 0x97, 0xec, 0x9d, 0xbd, 0x53, + 0x78, 0xb4, 0x77, 0x07, 0x57, 0x52, 0x22, 0x15, 0xa1, 0x7a, 0xcf, 0x62, 0x01, 0x9b, 0xca, 0x8f, + 0xc4, 0xf7, 0x9b, 0x87, 0x3d, 0x15, 0x17, 0x49, 0xcf, 0x53, 0xd1, 0x9d, 0x59, 0x75, 0x20, 0xab, + 0xcb, 0x05, 0x0c, 0x82, 0x58, 0x70, 0xb4, 0xd3, 0xb9, 0xda, 0xfe, 0x6e, 0x67, 0x62, 0xc0, 0xdd, + 0xce, 0xd5, 0x9e, 0xad, 0xce, 0xf0, 0xbe, 0xe9, 0x65, 0xfa, 0x52, 0xd2, 0x57, 0x26, 0xb1, 0xe2, + 0x99, 0x34, 0x7d, 0x17, 0xe4, 0x5a, 0x95, 0x0b, 0xbb, 0xa7, 0x53, 0xf0, 0xfd, 0x40, 0x3c, 0x4c, + 0xcd, 0xc3, 0xa5, 0xba, 0x31, 0x68, 0x16, 0xb3, 0x0d, 0xd9, 0x99, 0x99, 0x6e, 0xa5, 0x79, 0x58, + 0x58, 0xfd, 0x79, 0x0e, 0xee, 0xcf, 0xa7, 0x4c, 0xf7, 0x8c, 0x48, 0xf5, 0x9d, 0x44, 0x89, 0xa8, + 0xf3, 0xf6, 0x01, 0xb1, 0x29, 0x7f, 0xa8, 0xc1, 0x45, 0x35, 0x58, 0x2d, 0x19, 0x3f, 0x60, 0x77, + 0x45, 0xbd, 0x22, 0x86, 0xa8, 0xd9, 0xec, 0x34, 0x90, 0x70, 0xa1, 0x76, 0x09, 0x79, 0xac, 0x3e, + 0x34, 0xb2, 0x63, 0x6d, 0xcc, 0x19, 0x3d, 0x0d, 0x3d, 0x93, 0xe7, 0xc1, 0x5e, 0x6c, 0xa4, 0x1b, + 0x84, 0xab, 0x12, 0x79, 0x74, 0x1b, 0x37, 0xe7, 0xab, 0xa3, 0xdb, 0x13, 0xc0, 0x35, 0xce, 0x62, + 0x3b, 0x17, 0x62, 0x22, 0x4e, 0xac, 0x79, 0x26, 0x4d, 0xfe, 0x6b, 0xc6, 0x68, 0x3d, 0xcd, 0x3f, + 0x00, 0x5b, 0x0d, 0xfe, 0x6e, 0x77, 0xd6, 0x7b, 0xd2, 0x67, 0x8f, 0x97, 0x7d, 0x50, 0xf6, 0x78, + 0xd9, 0xf8, 0xc3, 0xd7, 0x65, 0x1b, 0x01, 0xbf, 0x91, 0x5e, 0x8b, 0xf1, 0x60, 0x13, 0xe3, 0x0e, + 0x5d, 0xda, 0xcb, 0x60, 0x83, 0x3a, 0x39, 0xdd, 0xb1, 0xe0, 0xa7, 0xe4, 0x30, 0x27, 0x1f, 0x96, + 0x9f, 0xa9, 0xe8, 0x51, 0x39, 0x0a, 0x8a, 0x6f, 0x9f, 0x68, 0x73, 0x00, 0xab, 0x7e, 0xf4, 0xf8, + 0xf1, 0xe1, 0x19, 0xdc, 0x62, 0x51, 0xe2, 0x7f, 0xa9, 0xc8, 0xce, 0xcf, 0xa2, 0x73, 0x31, 0x55, + 0xd5, 0x28, 0x0a, 0xdd, 0xc4, 0xd5, 0x97, 0xaa, 0x5a, 0xf7, 0xa4, 0x26, 0xaa, 0x56, 0xc8, 0x05, + 0xc5, 0x4f, 0xf3, 0x57, 0x20, 0xe3, 0xde, 0x46, 0x78, 0x07, 0x45, 0x0f, 0x43, 0x79, 0x07, 0x53, + 0x7e, 0x22, 0x6f, 0xfd, 0x92, 0x9f, 0x12, 0x6d, 0x21, 0xc3, 0x3b, 0x95, 0xc1, 0x80, 0x53, 0x57, + 0xdb, 0x4c, 0x5d, 0x13, 0x06, 0x49, 0x87, 0xce, 0x16, 0x13, 0xac, 0x9e, 0x12, 0xa9, 0x09, 0xa2, + 0xf8, 0xb0, 0x97, 0x98, 0x7c, 0x4d, 0xa2, 0x53, 0x35, 0xa5, 0x1f, 0x07, 0x7d, 0x3b, 0x59, 0x92, + 0xa3, 0xc2, 0xcd, 0x60, 0xdf, 0x7b, 0x61, 0xdb, 0xcd, 0x9e, 0x16, 0xa3, 0x27, 0x7e, 0x7f, 0x2b, + 0x9b, 0x92, 0x51, 0x87, 0x02, 0x28, 0x43, 0x87, 0x23, 0xbb, 0xa1, 0xa0, 0x86, 0x1c, 0x7e, 0x3e, + 0x1a, 0xbe, 0xd3, 0xe1, 0x18, 0x14, 0xd9, 0x93, 0xfe, 0x61, 0x0c, 0x5d, 0x46, 0x16, 0x34, 0x82, + 0x3e, 0xa3, 0xdf, 0x74, 0x53, 0x13, 0xf2, 0x55, 0x99, 0x36, 0x12, 0x52, 0xd1, 0x2f, 0xaf, 0xe8, + 0x97, 0x05, 0xee, 0x51, 0x27, 0x06, 0x39, 0x80, 0x07, 0x4a, 0x4b, 0x8c, 0x32, 0x9f, 0x62, 0x93, + 0x24, 0x28, 0x9e, 0x0e, 0xe2, 0xce, 0x0f, 0xd8, 0x5d, 0x7c, 0x98, 0xf7, 0x8a, 0x61, 0x35, 0x2f, + 0xe0, 0xeb, 0x69, 0x13, 0x91, 0xfa, 0x8f, 0x61, 0xbf, 0xcd, 0xac, 0xe9, 0x3d, 0x58, 0x0f, 0x8e, + 0x0e, 0x65, 0x37, 0x55, 0xdc, 0x73, 0xe8, 0xc6, 0x98, 0xa4, 0xdf, 0x1f, 0xc5, 0xfe, 0x51, 0xbf, + 0x8f, 0x89, 0xf5, 0x22, 0xe2, 0x76, 0x6e, 0xe6, 0x3b, 0xc2, 0x7c, 0x94, 0x91, 0xf0, 0x9a, 0xe6, + 0xcc, 0xb0, 0x55, 0x6e, 0xec, 0x1d, 0x6d, 0x48, 0x5b, 0xd3, 0x66, 0x29, 0x87, 0x66, 0x33, 0x38, + 0xdf, 0x65, 0x0e, 0x2c, 0xbd, 0xbf, 0x0b, 0x08, 0xeb, 0x00, 0x18, 0x60, 0xa0, 0x06, 0xd1, 0xac, + 0x4f, 0x6d, 0x18, 0x74, 0x9c, 0xbb, 0x2f, 0x84, 0x71, 0x95, 0x61, 0xad, 0x8c, 0x8e, 0x71, 0x84, + 0xac, 0xab, 0x7f, 0xfa, 0x8e, 0x0c, 0x5f, 0x60, 0xa1, 0xcb, 0x2d, 0xea, 0x96, 0xcd, 0xd0, 0x36, + 0x4d, 0x52, 0xb8, 0x79, 0x77, 0xb6, 0x5e, 0xe7, 0xdd, 0x92, 0xfe, 0x2c, 0xe8, 0x4f, 0xe8, 0x99, + 0xec, 0xb3, 0x81, 0xad, 0xa2, 0xf3, 0xdc, 0x5c, 0x0f, 0xb7, 0xc7, 0xf3, 0x56, 0xc0, 0xfa, 0xcd, + 0xd8, 0xb0, 0xe4, 0xdb, 0xb5, 0x86, 0x91, 0xb7, 0x69, 0xf2, 0x3a, 0x53, 0x15, 0xc7, 0xd6, 0xf2, + 0x68, 0x39, 0x7f, 0xe8, 0x38, 0xb5, 0xcb, 0x10, 0xde, 0x4b, 0xbb, 0x9c, 0x79, 0x9b, 0x6a, 0xfe, + 0x5d, 0x54, 0x56, 0x5a, 0x75, 0x0f, 0x79, 0x96, 0xac, 0x52, 0x2a, 0x7d, 0x15, 0xfa, 0xd6, 0x45, + 0x8b, 0x70, 0x34, 0x00, 0x89, 0xc2, 0x8d, 0xa7, 0x69, 0x94, 0x7e, 0x7e, 0x63, 0xe0, 0xf7, 0xfd, + 0x8d, 0xcd, 0x14, 0xd3, 0xf1, 0xc6, 0xd2, 0x9a, 0x0b, 0xb6, 0x37, 0x56, 0xee, 0x6c, 0x2c, 0x6d, + 0xda, 0x18, 0xcd, 0xff, 0xb7, 0x36, 0x66, 0xc4, 0xe1, 0x4b, 0x1b, 0xab, 0x6c, 0xe5, 0x67, 0xb8, + 0x18, 0x7d, 0xf4, 0xe2, 0xc9, 0xe3, 0x83, 0xab, 0x88, 0x61, 0x14, 0x4c, 0xd2, 0xc3, 0xd4, 0x3c, + 0x5c, 0x72, 0xd4, 0xb7, 0x0d, 0xb2, 0x91, 0xab, 0xcd, 0xf5, 0xfc, 0x60, 0x40, 0x3c, 0xed, 0xc6, + 0xc1, 0x7f, 0xba, 0xf1, 0x5d, 0x1c, 0x91, 0x41, 0x1e, 0xb9, 0x79, 0xf0, 0xa7, 0x4b, 0xef, 0xad, + 0x08, 0xe8, 0x43, 0xf2, 0xdc, 0xa9, 0x74, 0xa4, 0x4b, 0x05, 0x97, 0x1e, 0xa9, 0x92, 0x07, 0x31, + 0x0c, 0xa4, 0xac, 0x86, 0x1e, 0x1c, 0x7c, 0xfd, 0x58, 0xcc, 0x4d, 0xa5, 0xef, 0xce, 0x05, 0xbd, + 0x36, 0xd8, 0x8a, 0xef, 0xb7, 0xa2, 0xd8, 0xca, 0x03, 0xed, 0xd3, 0x68, 0x23, 0x4a, 0xe6, 0x1c, + 0xbc, 0x99, 0x83, 0x1f, 0x33, 0xf0, 0x60, 0x01, 0x37, 0x2e, 0xd1, 0x24, 0x32, 0x2e, 0xca, 0xd7, + 0x61, 0x12, 0x01, 0x33, 0x02, 0x89, 0x6e, 0xe1, 0xf1, 0xcf, 0x54, 0xfd, 0x5c, 0x7a, 0x3b, 0xa0, + 0x3e, 0x8f, 0x41, 0x6c, 0x46, 0xe3, 0xb0, 0x94, 0x5b, 0x48, 0x1c, 0xfc, 0xdf, 0xe1, 0x6f, 0x8c, + 0x0b, 0xc2, 0x83, 0x2e, 0x1c, 0x9d, 0x13, 0x1a, 0x74, 0xe1, 0xd1, 0xb9, 0xc2, 0x60, 0xf8, 0xf7, + 0xc7, 0x11, 0xe5, 0x54, 0xe1, 0x3b, 0x0d, 0x24, 0xdd, 0x06, 0x52, 0x43, 0xa8, 0x87, 0xdb, 0x73, + 0x46, 0x3b, 0x54, 0xfb, 0x4c, 0x7f, 0xcc, 0x65, 0x26, 0xfa, 0x2c, 0x9d, 0x80, 0xb0, 0xaf, 0xa0, + 0x13, 0x19, 0xd9, 0x4a, 0x9c, 0xbe, 0x48, 0x2b, 0xf4, 0x31, 0xb4, 0x52, 0x39, 0x15, 0x0c, 0x33, + 0xcc, 0x5e, 0xb6, 0x9d, 0x6f, 0xd5, 0x53, 0x8a, 0x27, 0xcd, 0xf7, 0x35, 0xd0, 0xaf, 0xe3, 0xfb, + 0x58, 0x36, 0x31, 0x3e, 0xa5, 0x02, 0x6b, 0xe6, 0x85, 0xcd, 0xb1, 0x98, 0x97, 0x4a, 0x8c, 0xc2, + 0xbc, 0x99, 0xf1, 0xbf, 0x34, 0xf6, 0xeb, 0x19, 0x1f, 0x7b, 0xd9, 0x41, 0x28, 0x79, 0x8f, 0x2b, + 0x4a, 0xdb, 0x95, 0x40, 0x68, 0x5a, 0x31, 0xbe, 0xd6, 0x3d, 0xea, 0xfd, 0x69, 0x4a, 0x27, 0xd3, + 0x3f, 0xcb, 0x10, 0x97, 0xae, 0xed, 0x03, 0x02, 0x39, 0x2a, 0x99, 0x30, 0x97, 0xff, 0xff, 0xf2, + 0xbf, 0x2a, 0xc9, 0x6a, 0xf2, 0x87, 0x8d, 0x3e, 0x4b, 0x9d, 0x3a, 0xe5, 0x37, 0x58, 0xab, 0xa3, + 0x31, 0xf5, 0x55, 0xa9, 0xd3, 0xea, 0x80, 0xcc, 0xa1, 0x24, 0x9f, 0x8f, 0x3e, 0x75, 0xb2, 0xd1, + 0x11, 0xea, 0x5b, 0xb6, 0xce, 0x37, 0x13, 0xca, 0xec, 0x5b, 0xa9, 0xc5, 0x27, 0xdd, 0x27, 0x4f, + 0x9e, 0x58, 0xcd, 0x93, 0xad, 0xe6, 0x47, 0x8f, 0xba, 0x8f, 0x1e, 0x3d, 0xaa, 0x9b, 0xfb, 0xdb, + 0xcd, 0x8f, 0xfb, 0x76, 0xd3, 0xe4, 0xbf, 0xbd, 0x3d, 0x6b, 0x73, 0xdb, 0x36, 0xb6, 0x9f, 0x6f, + 0x66, 0xfa, 0x1f, 0x68, 0xb6, 0x37, 0x22, 0x23, 0x4a, 0x96, 0xdc, 0x24, 0x37, 0x4b, 0x99, 0xf6, + 0xa4, 0x49, 0x3a, 0xcd, 0xde, 0x34, 0xc9, 0xd4, 0xc9, 0xb6, 0x1d, 0xaf, 0x27, 0xd1, 0x83, 0xb2, + 0xb9, 0x91, 0x49, 0x2d, 0x49, 0xd9, 0xf2, 0x3a, 0xfa, 0xef, 0xf7, 0x3c, 0x00, 0x10, 0x20, 0x41, + 0x59, 0xc9, 0x66, 0xef, 0x6c, 0x37, 0x16, 0x49, 0x3c, 0x0e, 0x0e, 0x0e, 0x80, 0xf3, 0xc4, 0xd1, + 0x3f, 0x3d, 0xae, 0x35, 0x3c, 0x18, 0x18, 0x9f, 0x9f, 0xd4, 0x1a, 0x9e, 0x9b, 0x9f, 0x87, 0x83, + 0x3a, 0xc8, 0x67, 0x1a, 0x2f, 0xe8, 0x6a, 0xea, 0xc0, 0x90, 0x18, 0x0b, 0xe3, 0xfc, 0x03, 0xf2, + 0x88, 0x89, 0xc1, 0x41, 0x01, 0x37, 0x06, 0xf6, 0x06, 0xc9, 0xcf, 0x5a, 0x00, 0x99, 0x2e, 0x51, + 0x64, 0x64, 0xc7, 0x17, 0x2f, 0xb9, 0x54, 0x2e, 0xb9, 0x54, 0x2d, 0xb9, 0x54, 0x2d, 0x39, 0x2b, + 0xd0, 0x5c, 0x2f, 0x97, 0xf5, 0x72, 0x55, 0x2f, 0x97, 0xf5, 0x8c, 0x01, 0xb1, 0x80, 0x14, 0x0a, + 0x73, 0x48, 0xc8, 0x06, 0x32, 0x2b, 0xc8, 0x31, 0x31, 0x6d, 0xa4, 0x6f, 0x6c, 0x01, 0x99, 0x8d, + 0x37, 0xdb, 0xc0, 0x4a, 0x24, 0x58, 0x89, 0x02, 0x2b, 0x51, 0x60, 0x6d, 0x2a, 0x6d, 0x2f, 0x5e, + 0xb2, 0x3c, 0xce, 0xdb, 0x74, 0xda, 0xd9, 0x16, 0x3d, 0xb1, 0xa9, 0xc0, 0x2e, 0xfb, 0xfc, 0x03, + 0x7a, 0xa8, 0xa9, 0xb1, 0x05, 0x51, 0x6f, 0x9a, 0xfa, 0xc7, 0x76, 0xa3, 0x83, 0xb0, 0x36, 0x10, + 0x4b, 0x43, 0x94, 0xff, 0x0b, 0x29, 0xf0, 0xef, 0x34, 0x3f, 0x00, 0xba, 0xb2, 0xcf, 0x9f, 0x91, + 0x09, 0x17, 0x9a, 0xc8, 0xee, 0xc1, 0x83, 0x1c, 0xfe, 0x9f, 0x32, 0xe3, 0xca, 0x99, 0x50, 0xe2, + 0x91, 0x88, 0xd8, 0x88, 0x3c, 0x21, 0xf0, 0x53, 0x4e, 0x14, 0x64, 0xb4, 0x41, 0xe6, 0x89, 0x7b, + 0x07, 0x0f, 0xd8, 0xa3, 0x52, 0xad, 0xc5, 0xbb, 0x96, 0x61, 0x12, 0x2d, 0x40, 0x6a, 0x8c, 0x7e, + 0xec, 0x3f, 0x6e, 0x23, 0x60, 0x2c, 0x51, 0x6c, 0x21, 0x06, 0xfc, 0x7e, 0xb5, 0xd9, 0x66, 0xd0, + 0xe0, 0x9e, 0xa5, 0x45, 0x23, 0x6e, 0x58, 0x34, 0xf8, 0x42, 0xec, 0x77, 0xd9, 0x32, 0x94, 0x50, + 0xfe, 0x4a, 0x6f, 0x82, 0xaf, 0x30, 0x75, 0xf0, 0xa9, 0x66, 0x6c, 0x56, 0xb8, 0xfd, 0x93, 0x09, + 0x04, 0xd5, 0x2b, 0x36, 0xc8, 0x3e, 0x30, 0x33, 0xea, 0x06, 0xf9, 0x3a, 0x2c, 0x82, 0xfc, 0x06, + 0xfe, 0x59, 0x87, 0x29, 0x60, 0xf4, 0x86, 0xfe, 0x15, 0x60, 0x83, 0xb8, 0x25, 0x01, 0x87, 0x9f, + 0x75, 0xad, 0xb7, 0x5d, 0x37, 0x7e, 0xb7, 0xf6, 0xff, 0x8b, 0x55, 0xe5, 0x45, 0x37, 0x21, 0x7d, + 0xec, 0x18, 0xa0, 0xcb, 0x40, 0xbc, 0xaa, 0x13, 0x26, 0x9c, 0xd4, 0x14, 0xe1, 0x42, 0x2e, 0xa8, + 0x98, 0x3c, 0xc0, 0xae, 0xb0, 0x90, 0xca, 0x71, 0xe1, 0xe4, 0x40, 0xc3, 0xe8, 0x69, 0x24, 0x35, + 0x2a, 0x7b, 0x51, 0xda, 0xd5, 0x5e, 0xec, 0x1f, 0x30, 0xe9, 0x55, 0xc2, 0xb7, 0x92, 0xb9, 0x4b, + 0x94, 0xb8, 0x07, 0x4a, 0x63, 0x5c, 0xd3, 0x46, 0xe7, 0x0f, 0x92, 0x2f, 0xd7, 0xdd, 0xd3, 0xdd, + 0x1f, 0xd4, 0x7b, 0x63, 0x3c, 0x62, 0x18, 0x8a, 0xb0, 0x2b, 0x33, 0x62, 0x1b, 0x85, 0xbb, 0x17, + 0x6e, 0x50, 0x3c, 0xd8, 0x4e, 0xe3, 0x6e, 0xe1, 0x6e, 0xa5, 0x71, 0xf7, 0xca, 0xdd, 0x68, 0x5d, + 0x55, 0x2a, 0x78, 0xcf, 0xcb, 0x49, 0xaf, 0x93, 0x9c, 0x45, 0x05, 0xba, 0x45, 0x4b, 0xb5, 0x3b, + 0xc5, 0x92, 0xb5, 0xf8, 0xff, 0x24, 0x6d, 0xfe, 0x3f, 0xf1, 0x65, 0x52, 0xfe, 0x92, 0x65, 0x9f, + 0x90, 0xc3, 0x48, 0xca, 0x70, 0x42, 0xde, 0xaa, 0xae, 0x14, 0x5d, 0x39, 0x47, 0x62, 0xa4, 0x9c, + 0xd5, 0x00, 0xba, 0x38, 0xcf, 0x63, 0x76, 0x2d, 0xd3, 0xde, 0xd3, 0xe2, 0x67, 0x2f, 0xa9, 0xa7, + 0x94, 0x9d, 0xb8, 0x52, 0xb0, 0x6a, 0x9f, 0x4e, 0xf2, 0x69, 0x54, 0x2d, 0x19, 0xfa, 0x10, 0x49, + 0x6d, 0x13, 0x3f, 0x8a, 0x7e, 0x55, 0x37, 0x00, 0x9c, 0xe7, 0xf2, 0x4e, 0x8d, 0xe0, 0xb9, 0x5a, + 0x4d, 0xb4, 0x44, 0x40, 0x27, 0x05, 0xfe, 0x73, 0x85, 0xff, 0x8c, 0x35, 0xd7, 0x16, 0xde, 0x8c, + 0x2a, 0x75, 0x2f, 0xaf, 0x01, 0x02, 0x82, 0x96, 0x09, 0xdf, 0xa7, 0x41, 0x2a, 0x2e, 0xdd, 0xb5, + 0xac, 0xa9, 0x4a, 0x83, 0xc5, 0x4b, 0xbd, 0x57, 0xad, 0x6e, 0xec, 0x88, 0xa3, 0x06, 0x10, 0x6f, + 0x7d, 0xd8, 0x2b, 0xb2, 0x55, 0x79, 0x4c, 0x85, 0xf8, 0x77, 0x24, 0x5f, 0x86, 0xfa, 0xcb, 0xd3, + 0x5b, 0xe5, 0x9c, 0x14, 0xfe, 0x2b, 0xe0, 0x6b, 0x5c, 0x8b, 0xf0, 0x16, 0xf6, 0x17, 0xed, 0xc3, + 0xb2, 0xd4, 0xbf, 0x9c, 0x59, 0xbb, 0xa6, 0x7c, 0x09, 0xae, 0xe1, 0x9a, 0x95, 0xd4, 0x5d, 0xb3, + 0x92, 0xaf, 0x73, 0xcd, 0x4a, 0x74, 0x86, 0x2c, 0x4b, 0x5b, 0x6d, 0xf0, 0x78, 0xd4, 0x68, 0x04, + 0x33, 0xf2, 0xd8, 0x17, 0x21, 0x29, 0xe8, 0x2f, 0xd0, 0xde, 0x71, 0x19, 0x9e, 0x96, 0x67, 0x7e, + 0x1f, 0xa8, 0xeb, 0xc5, 0x18, 0xd6, 0x90, 0x7e, 0x8a, 0x65, 0xda, 0x80, 0xa8, 0x7e, 0x88, 0x46, + 0x4d, 0xec, 0x21, 0xf0, 0x52, 0xa8, 0xf5, 0xf9, 0x33, 0xfd, 0x01, 0x0e, 0x0f, 0xa0, 0x93, 0x0e, + 0x7a, 0x59, 0x9d, 0x18, 0xa1, 0x04, 0x72, 0xdc, 0x96, 0xd7, 0xd6, 0x4e, 0x63, 0xdd, 0x51, 0xa2, + 0x84, 0xd3, 0xd6, 0xda, 0x22, 0xf6, 0x89, 0xf2, 0x78, 0xa2, 0xa3, 0x61, 0x3e, 0xd7, 0xf1, 0xa0, + 0xb6, 0x37, 0x44, 0xc0, 0x97, 0x0d, 0x9c, 0x8f, 0xef, 0x54, 0x62, 0x0d, 0xca, 0x8d, 0xd2, 0x26, + 0x2e, 0xd0, 0xaa, 0x8d, 0xdd, 0x04, 0x34, 0x53, 0x22, 0x3c, 0x26, 0x56, 0x96, 0x34, 0xf8, 0x30, + 0x6c, 0xc0, 0x88, 0x8d, 0x98, 0x1c, 0xbd, 0x50, 0x38, 0xc5, 0xc4, 0x29, 0xc3, 0x74, 0xd5, 0x6f, + 0x34, 0xea, 0x0d, 0x47, 0x83, 0xc3, 0x14, 0x43, 0x77, 0x48, 0x19, 0xa5, 0x3e, 0x9f, 0xa6, 0xdd, + 0xe1, 0xd9, 0xc8, 0xe3, 0x25, 0xe4, 0x2b, 0xe8, 0x04, 0xf6, 0xe2, 0x00, 0xf1, 0x0b, 0x14, 0x33, + 0x1d, 0x97, 0x00, 0x89, 0xee, 0x34, 0xaa, 0xd3, 0x03, 0x4d, 0x22, 0x74, 0x9b, 0x44, 0x83, 0x51, + 0x72, 0x98, 0xab, 0xeb, 0x8a, 0xba, 0x5d, 0x3f, 0x87, 0x6d, 0x4c, 0x9f, 0x8a, 0xac, 0x36, 0x12, + 0x7d, 0x2b, 0xf8, 0x96, 0x23, 0xd2, 0x81, 0x34, 0xa7, 0xdd, 0x1c, 0x6c, 0xcb, 0x40, 0x03, 0x2f, + 0x67, 0xca, 0xcc, 0x4d, 0xca, 0xac, 0x83, 0x9f, 0xc7, 0x98, 0x58, 0xa3, 0xa9, 0x1d, 0x92, 0x2e, + 0xb1, 0xde, 0x2d, 0x9f, 0xf5, 0x65, 0x7d, 0x06, 0xe9, 0xc2, 0x3b, 0x5d, 0x00, 0xd6, 0xf6, 0x35, + 0xb2, 0x49, 0x55, 0x27, 0x03, 0xef, 0x9c, 0x58, 0x1d, 0xb8, 0x38, 0x9c, 0x1c, 0xeb, 0x32, 0x85, + 0xc6, 0x17, 0x2b, 0x38, 0xd0, 0xb1, 0x00, 0x8c, 0x31, 0x63, 0xf0, 0xb3, 0xfa, 0xc2, 0x6a, 0xd2, + 0x51, 0xad, 0x45, 0x0d, 0xf3, 0x88, 0xf7, 0xcc, 0x8e, 0xf7, 0x0c, 0xf1, 0x8e, 0x77, 0x27, 0x69, + 0x78, 0xcf, 0x10, 0xef, 0x4a, 0xf3, 0x69, 0x02, 0x24, 0x29, 0x84, 0x9d, 0x8d, 0x53, 0xdd, 0xd9, + 0x38, 0xc5, 0x00, 0x31, 0x4d, 0x04, 0xad, 0xc3, 0x98, 0xa5, 0x35, 0x3f, 0x51, 0x89, 0xe3, 0x78, + 0x21, 0xdd, 0xaf, 0xcd, 0xf3, 0x84, 0x9c, 0x40, 0x5d, 0xe9, 0xe8, 0xa9, 0x37, 0xa5, 0x9d, 0x10, + 0x35, 0x1c, 0xd6, 0xf6, 0x5d, 0x3e, 0x14, 0x26, 0x5a, 0x68, 0x87, 0xd8, 0xb0, 0x6a, 0x93, 0x2b, + 0x0e, 0x8f, 0xe6, 0x99, 0xc1, 0x1f, 0x68, 0xe7, 0x6e, 0xd6, 0x6f, 0x1e, 0xa7, 0xd2, 0x39, 0xda, + 0x76, 0xd0, 0x0e, 0x02, 0x97, 0xae, 0x2c, 0x74, 0x85, 0x83, 0x53, 0xed, 0xc4, 0x15, 0x9a, 0xe2, + 0x98, 0x86, 0x2e, 0xd3, 0xf4, 0xd0, 0xc5, 0xcc, 0x5a, 0x8f, 0xb1, 0x76, 0xd0, 0x36, 0xbf, 0x5a, + 0x8f, 0xf7, 0x1a, 0xea, 0xda, 0x38, 0x2c, 0xff, 0x56, 0x38, 0x95, 0x46, 0x14, 0x48, 0xdb, 0x80, + 0x45, 0x78, 0x34, 0x57, 0xd4, 0xed, 0x0b, 0x8f, 0xd2, 0x96, 0xf2, 0xec, 0xf2, 0xac, 0x17, 0xb7, + 0xb2, 0x19, 0x02, 0x25, 0x3a, 0x37, 0x80, 0x0a, 0xd9, 0x98, 0x7d, 0x4f, 0x5b, 0xda, 0x66, 0x07, + 0xea, 0xbb, 0x9a, 0xc6, 0x6d, 0xaa, 0xbe, 0x56, 0x6b, 0x92, 0x99, 0x76, 0x71, 0x05, 0x1e, 0x0a, + 0x95, 0xa4, 0x32, 0x4b, 0xae, 0x6a, 0xf2, 0x00, 0x35, 0xfe, 0x96, 0x73, 0x13, 0x48, 0xe9, 0x44, + 0x4a, 0x1c, 0x69, 0x5f, 0xfc, 0x12, 0x02, 0x41, 0xca, 0x4c, 0xf3, 0x46, 0x70, 0x5d, 0xcc, 0x47, + 0x34, 0x64, 0xce, 0x4a, 0x39, 0x22, 0x23, 0xcf, 0x50, 0x30, 0x14, 0x5c, 0x44, 0x05, 0x4b, 0xdc, + 0x74, 0xaa, 0x04, 0xf1, 0x07, 0x24, 0x54, 0xe6, 0x33, 0x6b, 0xbe, 0xfa, 0xf2, 0x3a, 0x15, 0xc3, + 0x9b, 0xb7, 0xa4, 0xb5, 0xc8, 0x61, 0x2e, 0x61, 0x8e, 0x72, 0x01, 0x32, 0xa3, 0x09, 0x3b, 0xeb, + 0x96, 0xfa, 0xf2, 0xa6, 0x88, 0xfe, 0xb2, 0xe6, 0xdc, 0xc8, 0x83, 0xfa, 0x71, 0x30, 0x90, 0x52, + 0x0e, 0xfd, 0xd4, 0xe4, 0xd3, 0xf0, 0x49, 0xa0, 0xa4, 0x13, 0x76, 0x7d, 0xd4, 0x25, 0x93, 0xca, + 0x01, 0x52, 0xd3, 0xd5, 0xc0, 0x59, 0xa9, 0x49, 0x43, 0xe6, 0x2b, 0x12, 0x82, 0xa1, 0x4a, 0x4d, + 0xa0, 0x0b, 0x4c, 0x67, 0xa8, 0x10, 0x16, 0x54, 0xe5, 0x4b, 0x18, 0x8a, 0x07, 0xe5, 0x2a, 0x18, + 0xba, 0xe3, 0xb4, 0x4c, 0x2a, 0xb7, 0xc2, 0x40, 0x97, 0xb8, 0x19, 0x48, 0x5d, 0xa0, 0x0c, 0x87, + 0x07, 0x81, 0x4c, 0x0c, 0xf4, 0x38, 0x10, 0x5c, 0x20, 0x51, 0x10, 0x9d, 0x40, 0xb3, 0x32, 0xb8, + 0x2a, 0x83, 0xf3, 0x32, 0xf8, 0x50, 0x06, 0x97, 0x65, 0xe4, 0x79, 0x57, 0x3a, 0xff, 0x1e, 0x94, + 0xc6, 0xdd, 0x84, 0xcc, 0x3b, 0x17, 0xf5, 0x3b, 0x5c, 0xe4, 0x35, 0x19, 0x44, 0x5c, 0x95, 0x13, + 0x4d, 0xb4, 0xf4, 0xa0, 0xf5, 0xa6, 0xe3, 0x2c, 0xba, 0xcc, 0x5a, 0x54, 0x14, 0x09, 0x59, 0xa0, + 0x51, 0x6e, 0x7d, 0xea, 0x11, 0x1d, 0x6c, 0x02, 0xe4, 0xae, 0x29, 0xc6, 0x2b, 0x6f, 0x2a, 0x62, + 0x63, 0xdd, 0x0a, 0x2f, 0x20, 0x38, 0x8e, 0xab, 0x1b, 0x3c, 0xfe, 0xb9, 0x8a, 0xf3, 0x9b, 0x13, + 0xca, 0x47, 0x40, 0xe6, 0xdf, 0x91, 0x19, 0x31, 0xcf, 0x61, 0x62, 0x18, 0x79, 0x26, 0x76, 0x6f, + 0xf2, 0xb1, 0x70, 0x17, 0x7c, 0xc5, 0x39, 0x5e, 0x37, 0xa2, 0x5a, 0x82, 0x31, 0xce, 0x6e, 0x68, + 0x3b, 0x3d, 0xce, 0x3d, 0xdf, 0xf0, 0x70, 0x77, 0x9f, 0xbf, 0xf9, 0xf5, 0x19, 0xdf, 0x5d, 0x8e, + 0x17, 0x93, 0xc7, 0x33, 0xf7, 0x0c, 0xe5, 0xc2, 0x64, 0xa3, 0x71, 0xad, 0x11, 0x60, 0x21, 0x9a, + 0xeb, 0x21, 0x06, 0x35, 0x9c, 0x00, 0xfe, 0x67, 0x20, 0x0c, 0x5d, 0x61, 0x34, 0x43, 0x15, 0x90, + 0x45, 0x13, 0xa3, 0x90, 0xf9, 0xa1, 0xc4, 0xa3, 0xce, 0x3b, 0x2f, 0xa3, 0x5b, 0xa6, 0xab, 0x8b, + 0x32, 0x78, 0x56, 0x2d, 0xdc, 0xf0, 0xb2, 0x0c, 0x56, 0x49, 0x08, 0x02, 0xc9, 0x32, 0x50, 0xe1, + 0x5e, 0x61, 0x19, 0xfc, 0x42, 0xd4, 0x1a, 0xfe, 0x10, 0x9c, 0x10, 0x45, 0x20, 0x33, 0xff, 0x3b, + 0x12, 0x53, 0xf8, 0x2f, 0x54, 0x4b, 0x27, 0x8b, 0xf0, 0x56, 0xdc, 0xe4, 0xf7, 0x1e, 0x24, 0xf1, + 0xbf, 0x05, 0x3c, 0x9d, 0x4f, 0xf3, 0xe9, 0x5b, 0x10, 0x67, 0xc3, 0x9f, 0x03, 0x72, 0x73, 0x7a, + 0x8f, 0x1c, 0xfe, 0x3f, 0xf9, 0xf7, 0x2f, 0xf1, 0xfa, 0x25, 0x34, 0xfc, 0x47, 0x00, 0x32, 0xe9, + 0xbb, 0x0c, 0x9e, 0xc2, 0x3f, 0x37, 0xc1, 0x55, 0x9c, 0x17, 0x44, 0x97, 0x74, 0x03, 0x28, 0x08, + 0xf8, 0xe8, 0x02, 0x5f, 0xe7, 0x00, 0xd4, 0xd5, 0x74, 0x74, 0x47, 0x1c, 0x08, 0x8f, 0x41, 0x6f, + 0x78, 0xf8, 0xa1, 0x72, 0xc7, 0x2a, 0x7d, 0x3c, 0x61, 0x60, 0x80, 0xb8, 0xe7, 0xc3, 0x7b, 0x11, + 0xc4, 0x02, 0x73, 0x72, 0x4e, 0x57, 0x18, 0x94, 0x20, 0x37, 0xc6, 0xb3, 0xb7, 0xb4, 0xa0, 0x8b, + 0xe8, 0x03, 0x92, 0xec, 0x06, 0x33, 0x75, 0x89, 0x4b, 0x48, 0x7f, 0xc3, 0x13, 0x83, 0x22, 0x1c, + 0x9c, 0x2b, 0x71, 0xa5, 0x28, 0x5e, 0xf5, 0x52, 0x84, 0xfb, 0xfb, 0xda, 0xd5, 0xa2, 0xc5, 0x18, + 0x50, 0x53, 0x96, 0xc5, 0x3e, 0xe5, 0x05, 0xa0, 0x08, 0x89, 0xfa, 0x05, 0xa3, 0x44, 0xf2, 0xdf, + 0xe2, 0x82, 0xd1, 0xf2, 0x4b, 0x2f, 0x18, 0x75, 0xab, 0x31, 0xc0, 0x19, 0xe0, 0x87, 0x71, 0xbf, + 0x7a, 0x81, 0xad, 0xdd, 0x71, 0xe9, 0xa8, 0xa6, 0x31, 0xa7, 0x31, 0x54, 0x6c, 0xce, 0x60, 0x94, + 0x1e, 0x96, 0x92, 0x9f, 0x49, 0xe5, 0xb5, 0x24, 0x39, 0x99, 0x7b, 0x47, 0x79, 0x3f, 0x4e, 0x81, + 0x98, 0xc9, 0x99, 0x27, 0xd2, 0x1f, 0xf0, 0xea, 0xb2, 0x80, 0xae, 0x20, 0x52, 0xce, 0x3e, 0x74, + 0xd2, 0xb3, 0x96, 0x20, 0xa1, 0x8b, 0xad, 0xbc, 0xbc, 0x7f, 0x9d, 0x27, 0xa5, 0xf8, 0xe6, 0x5b, + 0x35, 0xfe, 0xc8, 0xb9, 0xe6, 0x14, 0xaa, 0x0e, 0x1c, 0xe2, 0x86, 0xd7, 0xee, 0x2d, 0xec, 0x47, + 0xcf, 0x4e, 0x4e, 0x42, 0x0a, 0x5c, 0x5b, 0x5d, 0x4e, 0x78, 0x5f, 0x1c, 0x3e, 0x0a, 0xae, 0xf1, + 0x9a, 0x36, 0xf4, 0x29, 0x1a, 0x31, 0xe8, 0xba, 0x26, 0x41, 0x3a, 0x87, 0x70, 0xac, 0xdd, 0x71, + 0xac, 0x8b, 0x89, 0xbc, 0xa1, 0xe9, 0xdb, 0x04, 0xe1, 0x40, 0x5c, 0x50, 0xb3, 0x87, 0x22, 0x66, + 0xc9, 0x57, 0xc4, 0xa9, 0x2d, 0x83, 0x5c, 0xaa, 0xda, 0x3a, 0x00, 0x3a, 0xc5, 0x3b, 0x5b, 0x6d, + 0x5f, 0xe1, 0x37, 0x90, 0x31, 0x8f, 0x74, 0x03, 0x07, 0x5b, 0x7b, 0x19, 0xb6, 0xf8, 0x6c, 0x82, + 0xb1, 0xad, 0x8c, 0x29, 0xa5, 0xe1, 0x29, 0x36, 0xb5, 0x15, 0xc3, 0x9b, 0xf2, 0x30, 0x72, 0x14, + 0x43, 0xdc, 0xa0, 0xcc, 0x22, 0xa2, 0x0b, 0x3f, 0xdf, 0xe4, 0xef, 0x25, 0x19, 0x86, 0xab, 0x80, + 0x89, 0x35, 0x4c, 0x02, 0xbe, 0x06, 0x25, 0x6c, 0x87, 0xe8, 0x35, 0x15, 0xb8, 0x7f, 0x7f, 0x8f, + 0x7f, 0x40, 0xf7, 0xaf, 0xc7, 0xaf, 0xa9, 0x73, 0x36, 0xe8, 0x84, 0x59, 0x20, 0x2e, 0x11, 0xdb, + 0xd2, 0xc8, 0x4f, 0x5c, 0x62, 0xa3, 0x28, 0x71, 0x4b, 0xd9, 0x9f, 0xc5, 0x17, 0x40, 0x02, 0x8e, + 0x33, 0x1c, 0x07, 0xa9, 0x18, 0x4c, 0x38, 0x0d, 0x62, 0xde, 0xb4, 0x6d, 0xd5, 0x71, 0xd8, 0x62, + 0x4f, 0x47, 0xe5, 0xd2, 0xd5, 0xb6, 0x62, 0x57, 0xa2, 0xd0, 0xe5, 0xb2, 0xbc, 0xb1, 0x15, 0x5a, + 0xc1, 0x6f, 0x94, 0x33, 0xe8, 0xcf, 0x98, 0xfe, 0x9d, 0x62, 0x88, 0x25, 0xa0, 0x21, 0x56, 0x37, + 0x06, 0x25, 0x1e, 0x86, 0x00, 0xef, 0x09, 0x02, 0x06, 0x6a, 0x2d, 0xe0, 0x85, 0xf8, 0xba, 0xd9, + 0xe8, 0x37, 0x93, 0x12, 0x61, 0x25, 0x73, 0x6f, 0x78, 0x54, 0x4a, 0xb9, 0x5b, 0xef, 0x94, 0x09, + 0xdc, 0x75, 0xa5, 0xa4, 0x16, 0x63, 0xd8, 0x03, 0xea, 0xec, 0xf6, 0xbd, 0xe3, 0xf0, 0xef, 0x7d, + 0xef, 0xef, 0xb3, 0x2e, 0xda, 0xf4, 0x8e, 0xc3, 0xd3, 0xf8, 0xc5, 0x99, 0x77, 0xda, 0xed, 0x9d, + 0x1d, 0xf3, 0xab, 0x1f, 0xf6, 0xab, 0x6b, 0xb1, 0x8e, 0x95, 0xbe, 0x71, 0x10, 0x78, 0xe5, 0xe9, + 0xf0, 0xec, 0x18, 0xff, 0x51, 0x97, 0x0e, 0xf9, 0x3d, 0x78, 0x79, 0x70, 0x76, 0xdc, 0xc5, 0x7f, + 0x43, 0xb4, 0xfb, 0x0d, 0x36, 0x9a, 0xf7, 0xaa, 0xe6, 0xd2, 0x8a, 0x57, 0xfa, 0xfd, 0x9c, 0xac, + 0xe3, 0x19, 0x85, 0xce, 0x34, 0x75, 0x95, 0xf1, 0x7e, 0xe9, 0x3f, 0x28, 0xe5, 0x07, 0x6d, 0x6b, + 0xd1, 0xee, 0x53, 0x8d, 0x31, 0x3c, 0xc8, 0x33, 0x17, 0x16, 0xb9, 0x9f, 0xd5, 0x96, 0x93, 0x66, + 0x31, 0x44, 0x75, 0xa4, 0xb0, 0x1a, 0x3e, 0x1b, 0xa7, 0x69, 0x56, 0x3a, 0x53, 0xca, 0x6a, 0x28, + 0xd2, 0x68, 0x8d, 0xe1, 0x3f, 0xd5, 0x99, 0x0b, 0x3c, 0x1b, 0xef, 0x6c, 0xa9, 0x1f, 0x2c, 0xfa, + 0x82, 0x28, 0x00, 0x6f, 0xc7, 0x42, 0x84, 0xa2, 0xe7, 0x28, 0x0e, 0x17, 0x7d, 0x11, 0x03, 0x48, + 0xc1, 0xda, 0xc6, 0xc7, 0xd6, 0x43, 0x5f, 0x6f, 0x51, 0xaf, 0x01, 0x2d, 0xc0, 0x07, 0xa4, 0x18, + 0xe3, 0x75, 0x3f, 0x57, 0x3b, 0xae, 0xea, 0x83, 0x37, 0x40, 0x9b, 0x62, 0x4e, 0xb2, 0xe7, 0xa8, + 0x02, 0xf3, 0x2a, 0xf4, 0xe6, 0x11, 0xfa, 0x28, 0x9d, 0x92, 0x43, 0x3e, 0x66, 0x23, 0xc0, 0xe8, + 0x49, 0xda, 0x34, 0xc3, 0x3a, 0x9d, 0xe4, 0xd1, 0xf0, 0xb0, 0x2e, 0xbb, 0x6a, 0x17, 0x29, 0x55, + 0x72, 0x2b, 0x10, 0x80, 0xfe, 0x10, 0xde, 0xe2, 0xd6, 0x45, 0x71, 0xc9, 0x30, 0x11, 0x72, 0x20, + 0x48, 0xd8, 0x1a, 0x8e, 0x8e, 0x57, 0x22, 0x1c, 0x07, 0x93, 0xa5, 0x78, 0x76, 0x0c, 0x3d, 0x5d, + 0x2c, 0x3c, 0xbd, 0x4a, 0x1c, 0x76, 0xb4, 0xe4, 0xdb, 0x22, 0x7b, 0xce, 0x59, 0x07, 0x08, 0xcc, + 0x98, 0x98, 0x55, 0x74, 0x1a, 0x9f, 0x85, 0x7c, 0x21, 0x32, 0xae, 0xe5, 0x46, 0x6f, 0x31, 0x56, + 0x18, 0x8b, 0x9d, 0x0d, 0xef, 0x9a, 0x8a, 0xe2, 0x3e, 0xa7, 0xde, 0xf4, 0x54, 0x43, 0x3c, 0x37, + 0x04, 0xf9, 0xca, 0xf7, 0xb5, 0xbd, 0x57, 0xa8, 0xdc, 0xad, 0x08, 0x1f, 0x19, 0x44, 0x90, 0xf4, + 0xe9, 0xbc, 0xb8, 0x7f, 0x1f, 0x69, 0xee, 0xd7, 0x55, 0x49, 0x8a, 0xed, 0x37, 0x93, 0x22, 0xce, + 0x81, 0x25, 0x31, 0x24, 0x12, 0x0d, 0xb6, 0xd2, 0xae, 0x09, 0xd3, 0x4b, 0xa0, 0x16, 0x83, 0xaf, + 0x79, 0x2b, 0xec, 0x85, 0x35, 0xa2, 0xd2, 0xef, 0x18, 0xd3, 0xce, 0x1c, 0x7d, 0x2d, 0x19, 0x3b, + 0xfe, 0x1d, 0xb3, 0x01, 0x68, 0x01, 0x7a, 0x9a, 0x2e, 0x56, 0xd0, 0xb7, 0x70, 0x80, 0x64, 0x95, + 0x39, 0xb6, 0x4d, 0xb7, 0xe5, 0xf9, 0x3c, 0x5c, 0xe4, 0xab, 0x12, 0xd4, 0xba, 0xc1, 0xff, 0xfa, + 0x19, 0x8f, 0xb9, 0x6a, 0x17, 0x33, 0x74, 0x82, 0x94, 0x87, 0x9c, 0x2e, 0x6d, 0xb6, 0x70, 0xd0, + 0x16, 0xab, 0x49, 0x99, 0xc7, 0xe4, 0xb0, 0xab, 0x76, 0x8a, 0x95, 0x29, 0xba, 0xc5, 0x86, 0x07, + 0x26, 0xaf, 0x7c, 0x8a, 0x7e, 0x64, 0x5a, 0x8e, 0x53, 0x3c, 0xe8, 0x41, 0x40, 0x05, 0xd6, 0x29, + 0x6c, 0x8c, 0xcf, 0x05, 0x36, 0xb8, 0x0a, 0x10, 0x06, 0xfe, 0x40, 0x01, 0x23, 0x7f, 0x88, 0x0d, + 0x1d, 0x95, 0xc8, 0x40, 0x11, 0x62, 0x81, 0xb0, 0x52, 0xbd, 0xb6, 0x3e, 0xfc, 0xdb, 0xb4, 0x2f, + 0x7a, 0x33, 0x97, 0x61, 0x9f, 0x19, 0x87, 0xda, 0xfa, 0x17, 0x77, 0xfc, 0x62, 0xe0, 0x25, 0xe3, + 0x32, 0x12, 0xb1, 0x1b, 0x96, 0x42, 0xd7, 0xf1, 0xe4, 0x7f, 0x93, 0xf2, 0xfd, 0x2e, 0x45, 0x69, + 0x38, 0x4f, 0x09, 0xa2, 0xc8, 0xbd, 0x1c, 0xa7, 0xc9, 0x72, 0xb5, 0x60, 0xdb, 0x89, 0x58, 0xf8, + 0xea, 0x5a, 0x53, 0x8f, 0x6e, 0x44, 0xb2, 0x6f, 0x24, 0xac, 0xc9, 0x53, 0x48, 0x84, 0x79, 0x2d, + 0xf3, 0xec, 0x66, 0x97, 0x21, 0x6b, 0xcd, 0x0f, 0xdb, 0x9b, 0xe7, 0xeb, 0x01, 0x64, 0xf3, 0xaa, + 0x4e, 0xdb, 0x9e, 0x53, 0x4a, 0x6d, 0x79, 0x7c, 0xec, 0xd6, 0x23, 0xf4, 0xdd, 0xd0, 0xb5, 0x44, + 0xd5, 0xbb, 0xa3, 0x53, 0x23, 0xf4, 0x5b, 0x0f, 0xfc, 0xae, 0xc2, 0xbe, 0x2d, 0x3a, 0x6e, 0x54, + 0x5a, 0x49, 0x88, 0x81, 0xd5, 0x04, 0x72, 0xb2, 0x50, 0x1a, 0xdd, 0x30, 0x4b, 0x2c, 0xc8, 0xde, + 0x50, 0x27, 0x36, 0xa0, 0x31, 0xdb, 0x10, 0xf0, 0xe0, 0x51, 0x88, 0x02, 0x16, 0x15, 0x56, 0xe2, + 0x15, 0xef, 0x4a, 0x8d, 0x2d, 0x04, 0xed, 0x7c, 0x30, 0x89, 0xb0, 0x71, 0xc6, 0x20, 0x1c, 0xd1, + 0xbd, 0x88, 0xb5, 0x38, 0x68, 0xd8, 0xa6, 0xb5, 0xb3, 0x92, 0x2e, 0xb4, 0xa9, 0xee, 0xba, 0x75, + 0x2f, 0x13, 0x98, 0x68, 0xd8, 0x53, 0xd1, 0x25, 0x75, 0x5b, 0xb1, 0xf1, 0x9a, 0x8a, 0xa1, 0xdf, + 0xc2, 0x78, 0x5b, 0x41, 0xc0, 0xe6, 0x92, 0x4b, 0xa2, 0x77, 0x71, 0x5b, 0x74, 0x75, 0x30, 0x47, + 0x1f, 0xd4, 0xfd, 0x29, 0x2b, 0x5a, 0x1e, 0x18, 0xc4, 0x5f, 0xf1, 0xca, 0xfb, 0x07, 0xe4, 0x9d, + 0x2a, 0xd7, 0xf1, 0xe0, 0xc8, 0x2b, 0xcd, 0x6a, 0x2b, 0x19, 0xdd, 0xdd, 0x9b, 0x92, 0xcd, 0x13, + 0x18, 0x8c, 0x32, 0x1a, 0xa0, 0x8f, 0xc2, 0x21, 0xdd, 0xbc, 0x14, 0x91, 0xcf, 0xcf, 0xa3, 0xc1, + 0x51, 0x79, 0x5c, 0xf6, 0x22, 0xb4, 0x59, 0xf6, 0x0e, 0x1e, 0x00, 0x2f, 0x30, 0x0f, 0x1f, 0x89, + 0x12, 0xdd, 0xe8, 0x00, 0x7a, 0xef, 0x3d, 0x1a, 0xc0, 0x4b, 0x90, 0x68, 0xbb, 0xb0, 0x1d, 0x71, + 0x8c, 0x5f, 0xd6, 0x4b, 0xfc, 0x60, 0x5c, 0xcd, 0x54, 0x61, 0x9f, 0x29, 0x8d, 0x9c, 0xab, 0x49, + 0x22, 0x9e, 0x8b, 0xa7, 0xa4, 0x2f, 0xae, 0xe6, 0x98, 0x91, 0xf7, 0x4e, 0x3d, 0x8c, 0x3d, 0x50, + 0xc5, 0x84, 0x0f, 0xa9, 0x30, 0x8b, 0xa2, 0xe1, 0xa5, 0xc1, 0x8a, 0x20, 0x77, 0x2f, 0x79, 0x31, + 0x72, 0x58, 0xba, 0xe2, 0xad, 0x79, 0x14, 0x93, 0xfa, 0x0a, 0xcf, 0x08, 0x7e, 0x85, 0x2e, 0x93, + 0x9e, 0xa2, 0x89, 0x8a, 0x78, 0xf9, 0x0e, 0x77, 0x38, 0xf3, 0x8e, 0x5d, 0xa1, 0x7b, 0x0c, 0x85, + 0xfa, 0x0e, 0x8e, 0xf5, 0xcd, 0x19, 0x5d, 0x32, 0x9f, 0xeb, 0x4e, 0x4b, 0x80, 0x10, 0x7a, 0x07, + 0x5b, 0x70, 0xc0, 0x57, 0xb6, 0xe7, 0xc1, 0x0a, 0xf5, 0x4e, 0x3e, 0x0b, 0xa5, 0xfb, 0xcb, 0xf1, + 0x79, 0xec, 0x60, 0xfa, 0x0a, 0xf2, 0x6d, 0x2a, 0x9c, 0xc8, 0xa1, 0x94, 0x9a, 0x81, 0x93, 0x66, + 0xaf, 0xe3, 0xeb, 0x93, 0xf8, 0x5c, 0xbd, 0x1a, 0x71, 0x99, 0xa4, 0x78, 0x93, 0x6a, 0xa5, 0x16, + 0x4f, 0xab, 0x87, 0xa4, 0x78, 0x75, 0x55, 0x3d, 0xe1, 0x6d, 0x55, 0x27, 0x00, 0xb4, 0xf9, 0xe6, + 0xdd, 0x39, 0xde, 0xb9, 0x85, 0xc5, 0x40, 0x22, 0xa2, 0x3a, 0xbf, 0x9d, 0x4f, 0xae, 0x6b, 0x7d, + 0x50, 0x6a, 0x6c, 0xec, 0xf8, 0x74, 0x10, 0xc0, 0xff, 0xce, 0xc4, 0x6b, 0x95, 0x99, 0x1a, 0x3e, + 0x50, 0x71, 0xf9, 0x21, 0x5d, 0x3c, 0x5f, 0xe5, 0xf0, 0xf6, 0xf1, 0x40, 0xbc, 0xe0, 0xf4, 0x8e, + 0xf1, 0xec, 0xe7, 0x35, 0xbc, 0x95, 0x2f, 0xa7, 0xf0, 0x56, 0x7b, 0xc4, 0x4c, 0x45, 0x33, 0xce, + 0x37, 0x54, 0xe8, 0xa5, 0x38, 0x03, 0x81, 0x48, 0x44, 0x14, 0x39, 0xbd, 0xa1, 0xf8, 0x80, 0xd7, + 0xce, 0xb1, 0x6a, 0x53, 0x6f, 0x24, 0x3e, 0x7f, 0x86, 0x4a, 0x19, 0x7c, 0x15, 0x38, 0x40, 0x24, + 0xfa, 0x53, 0x76, 0x0d, 0x7b, 0xe8, 0xfb, 0x14, 0x2f, 0xad, 0xe0, 0x37, 0xb0, 0x04, 0x01, 0xa3, + 0x5a, 0x75, 0x7c, 0x2f, 0x4f, 0x1d, 0xca, 0x19, 0x0e, 0x7c, 0xaa, 0x43, 0x7b, 0x26, 0x82, 0x54, + 0x89, 0xd5, 0x7d, 0x62, 0xcf, 0x3c, 0x2b, 0xd3, 0x13, 0x38, 0xb7, 0x34, 0x97, 0x02, 0x7c, 0x4c, + 0xde, 0x0a, 0x75, 0x91, 0xbc, 0x30, 0x33, 0x89, 0xa6, 0x7b, 0xf1, 0xdc, 0xef, 0x45, 0x66, 0xd7, + 0x40, 0xcf, 0xc8, 0xfd, 0x78, 0x10, 0xc0, 0x83, 0xa9, 0xd8, 0xe3, 0xd9, 0xf8, 0xee, 0x9e, 0x68, + 0x58, 0x31, 0xd9, 0xac, 0x54, 0xfc, 0x1b, 0xfa, 0x7b, 0x24, 0x8b, 0xa4, 0xbc, 0x11, 0x1e, 0xd5, + 0x94, 0xf0, 0x3b, 0x99, 0x3b, 0xde, 0x9e, 0x3a, 0x4b, 0x2f, 0x12, 0x60, 0x4d, 0x52, 0xe7, 0xfe, + 0x7d, 0x82, 0xe4, 0x39, 0x62, 0x0d, 0x8a, 0xf5, 0x74, 0x2c, 0x1e, 0x39, 0x3f, 0x62, 0x16, 0x73, + 0xac, 0x9b, 0xc7, 0xc0, 0x60, 0x14, 0xe5, 0x5f, 0x8b, 0x8c, 0x38, 0x28, 0xa2, 0x0d, 0x5f, 0xa5, + 0xf6, 0xd6, 0x00, 0x90, 0x49, 0xbc, 0xb1, 0x12, 0x9a, 0x8b, 0x3c, 0x6d, 0xe4, 0x84, 0x4c, 0x5c, + 0x7b, 0xe2, 0xfc, 0xfe, 0xe9, 0xe6, 0xe5, 0xcc, 0xeb, 0x4c, 0x8b, 0x45, 0xc7, 0xaf, 0xae, 0x9a, + 0xc5, 0x1c, 0xee, 0xb9, 0xe3, 0x25, 0x34, 0x09, 0x4e, 0xe2, 0x1c, 0x42, 0x3d, 0xa9, 0x72, 0x70, + 0xd0, 0xca, 0x86, 0x2d, 0x4f, 0x67, 0x68, 0x6a, 0xe3, 0xc3, 0xb5, 0x4a, 0xf0, 0xce, 0xb9, 0x4f, + 0x23, 0x87, 0x1c, 0x88, 0x61, 0x36, 0xf1, 0x3f, 0xdf, 0x65, 0x28, 0xcd, 0x6c, 0xae, 0xdf, 0xdd, + 0x13, 0xa9, 0x1f, 0x45, 0xae, 0x1c, 0x7e, 0x47, 0x14, 0xf5, 0xbe, 0x4c, 0x16, 0x04, 0x34, 0x4d, + 0x54, 0x1f, 0xc6, 0xab, 0x6b, 0xd4, 0x35, 0x6e, 0x8c, 0x46, 0x28, 0xd3, 0xdc, 0x2a, 0x7c, 0xe0, + 0x3f, 0x55, 0x22, 0x0b, 0x4f, 0xc3, 0x5b, 0xe0, 0x1c, 0x3c, 0xc2, 0xaf, 0xb3, 0xe6, 0x7d, 0x36, + 0xec, 0xa0, 0x43, 0x13, 0x26, 0x2d, 0x16, 0x2d, 0x33, 0x19, 0xf0, 0xc4, 0x33, 0x52, 0x1b, 0xb8, + 0xc4, 0x5c, 0xe9, 0xbe, 0x40, 0x8b, 0x08, 0x61, 0x8d, 0x06, 0xa3, 0xfa, 0x14, 0xd5, 0x86, 0x5e, + 0x8e, 0x27, 0x2f, 0xfd, 0xef, 0xee, 0xc1, 0x68, 0x64, 0xe6, 0xa0, 0xda, 0x34, 0x15, 0x3f, 0xdd, + 0x3c, 0x93, 0x37, 0xb4, 0x7b, 0x55, 0x7a, 0x21, 0xdf, 0x32, 0x55, 0xf2, 0x63, 0x63, 0xc2, 0xe4, + 0x07, 0x9c, 0x36, 0x75, 0xdd, 0x3b, 0xee, 0x31, 0xb6, 0xf7, 0xea, 0x2e, 0x7c, 0xd7, 0x19, 0x93, + 0x89, 0x06, 0xdd, 0xd9, 0x5c, 0x41, 0x6e, 0xaa, 0x06, 0xc2, 0xad, 0x37, 0xd6, 0x85, 0x89, 0x97, + 0xe5, 0x1b, 0x63, 0x96, 0x19, 0x90, 0x68, 0xb0, 0x08, 0x10, 0x3b, 0x82, 0x39, 0x55, 0xc6, 0xc8, + 0x40, 0xc1, 0x02, 0x95, 0x13, 0xd2, 0x72, 0x32, 0x7c, 0x2f, 0xe1, 0xf9, 0xc3, 0x33, 0xee, 0x08, + 0x67, 0xac, 0xcf, 0x59, 0xcc, 0xbc, 0x4e, 0x71, 0x99, 0x65, 0xe5, 0x45, 0x47, 0x9b, 0x12, 0x28, + 0xc6, 0xc8, 0xa7, 0xd4, 0x71, 0x42, 0x69, 0xd5, 0xe9, 0xf5, 0x12, 0x28, 0xc4, 0x4d, 0x5a, 0x48, + 0x8f, 0x40, 0x92, 0x00, 0x13, 0xbb, 0xc1, 0xb4, 0x33, 0xd2, 0xc0, 0x2f, 0x2e, 0xb2, 0xeb, 0x77, + 0x98, 0x5b, 0xc9, 0xa3, 0xfb, 0xfd, 0x9c, 0x18, 0x45, 0x62, 0xb9, 0x27, 0xab, 0xf1, 0xac, 0x6d, + 0xeb, 0x4b, 0xe4, 0x64, 0xc2, 0x1e, 0xd6, 0x55, 0x76, 0x07, 0x1c, 0x1a, 0xb4, 0x44, 0x2f, 0xf5, + 0xf9, 0xe0, 0x86, 0x8f, 0x1d, 0x97, 0x7e, 0xc0, 0xe1, 0x85, 0x3d, 0x23, 0x3a, 0xa7, 0x8b, 0x78, + 0x9c, 0x4b, 0xaa, 0x16, 0x10, 0x72, 0x9b, 0x3c, 0x62, 0x60, 0x6a, 0x2f, 0x89, 0xa5, 0xc5, 0x2c, + 0xe6, 0xc8, 0x08, 0x77, 0xe8, 0x23, 0xbb, 0x06, 0xb2, 0x45, 0xa1, 0xa5, 0x34, 0xb1, 0x59, 0x0e, + 0x4c, 0x2c, 0x37, 0x0a, 0x6f, 0xb4, 0xf5, 0xa3, 0x71, 0xb5, 0x8e, 0x09, 0xe9, 0xda, 0x46, 0x2f, + 0x04, 0x2d, 0x13, 0x8b, 0x03, 0xbb, 0xd4, 0xc1, 0x5f, 0x06, 0x03, 0xbf, 0x41, 0x0b, 0x58, 0x88, + 0x74, 0x0a, 0x8c, 0x51, 0x5e, 0xc8, 0x0a, 0xc1, 0x9d, 0x67, 0x19, 0x20, 0x49, 0xdc, 0x34, 0x94, + 0x39, 0x14, 0x2e, 0x0e, 0x78, 0x4e, 0xe0, 0xe8, 0xe8, 0x3b, 0x6f, 0x01, 0x0b, 0x18, 0xad, 0x14, + 0xcf, 0x61, 0xaf, 0xb8, 0x70, 0xca, 0x8b, 0xd8, 0xc1, 0xf3, 0xb9, 0xef, 0xbc, 0x9c, 0xd3, 0x43, + 0x52, 0x14, 0x2b, 0xca, 0xf2, 0x56, 0x00, 0xa1, 0x14, 0x01, 0x14, 0x9c, 0x00, 0x8d, 0x38, 0x37, + 0x19, 0x9c, 0x7e, 0x2f, 0x4e, 0xde, 0xf6, 0x3b, 0xc6, 0xce, 0xa9, 0x20, 0x22, 0xe4, 0xd6, 0x41, + 0x6a, 0x9d, 0x49, 0x03, 0x0d, 0x3b, 0x94, 0xaa, 0xd0, 0xc3, 0x93, 0xaa, 0x2d, 0x26, 0x0d, 0x86, + 0x65, 0x46, 0x42, 0x49, 0x2c, 0x93, 0x8c, 0x79, 0x05, 0x6f, 0x0a, 0xb4, 0x73, 0xe3, 0x3c, 0xb9, + 0x2e, 0x6d, 0x6d, 0xe7, 0x5b, 0x0e, 0x50, 0x3e, 0x8b, 0x70, 0x4f, 0xb8, 0xc1, 0x60, 0x20, 0xb4, + 0x1e, 0x9f, 0x73, 0x2b, 0xb2, 0x5e, 0xb7, 0xab, 0x8e, 0x03, 0x54, 0xf9, 0x44, 0x54, 0xe4, 0xf4, + 0x46, 0xf2, 0x09, 0xb8, 0x95, 0xa8, 0x88, 0x68, 0x2c, 0xd0, 0x4f, 0x66, 0x08, 0x2a, 0x1e, 0x5d, + 0xf0, 0x2d, 0x32, 0x7a, 0xf4, 0xeb, 0xfd, 0x27, 0xdd, 0x21, 0xb5, 0x0e, 0xe0, 0xc2, 0x66, 0xf0, + 0xd1, 0xc8, 0xa2, 0x1b, 0x9f, 0xbb, 0x2d, 0x99, 0x0d, 0x8b, 0xe9, 0xc5, 0x27, 0x4e, 0xd9, 0xc8, + 0x23, 0x77, 0x7e, 0xb8, 0x4d, 0x36, 0x5b, 0x53, 0x1b, 0x42, 0x63, 0x58, 0x86, 0x32, 0x61, 0xeb, + 0x59, 0x86, 0x17, 0xd0, 0x82, 0x87, 0x5f, 0x7c, 0x17, 0x1b, 0x41, 0xf0, 0x91, 0xa3, 0x81, 0xd5, + 0x24, 0x6f, 0xfe, 0x0d, 0x5d, 0x77, 0xd3, 0x9e, 0xf9, 0x10, 0x21, 0xb1, 0xa4, 0x3e, 0xdc, 0x9a, + 0x3e, 0xd9, 0x99, 0x2f, 0x72, 0xe8, 0x4c, 0x72, 0x5e, 0xb0, 0x8f, 0xd2, 0xea, 0x5d, 0x2f, 0xa9, + 0x2f, 0x05, 0x6f, 0x8c, 0x60, 0x69, 0x19, 0xe1, 0xb8, 0xbc, 0x00, 0x96, 0x33, 0xcf, 0xfd, 0xc5, + 0x9a, 0xd2, 0x3a, 0x3e, 0x87, 0x89, 0xb4, 0xb5, 0x4f, 0x8f, 0x66, 0x27, 0xd4, 0x07, 0x22, 0x12, + 0xc5, 0x3b, 0xe7, 0xd5, 0x8b, 0xe7, 0x2a, 0x03, 0x61, 0x95, 0xcb, 0x38, 0x07, 0x5e, 0x4e, 0x65, + 0x1f, 0xd4, 0x91, 0xb9, 0x35, 0x17, 0xe1, 0x0f, 0xb7, 0x92, 0x73, 0xeb, 0x0d, 0x37, 0x2a, 0x29, + 0xa1, 0xc4, 0x31, 0xb6, 0xba, 0x69, 0xa4, 0x75, 0x7e, 0x15, 0xa7, 0x22, 0xa9, 0xb3, 0xc8, 0xc0, + 0x78, 0x52, 0x66, 0x4b, 0x3b, 0x54, 0xd9, 0x52, 0x01, 0x85, 0xf9, 0x0b, 0x97, 0xe3, 0x99, 0x01, + 0xdb, 0xf6, 0x3c, 0x89, 0x15, 0x6c, 0x16, 0xc8, 0xb2, 0xe5, 0x56, 0xc0, 0x9a, 0xa9, 0x3a, 0x3d, + 0xad, 0x2a, 0x70, 0x63, 0xda, 0x00, 0x11, 0xf4, 0xb6, 0x8f, 0xc0, 0xaa, 0x0d, 0x71, 0x5e, 0x0a, + 0x9a, 0x10, 0x5f, 0xcb, 0xe8, 0xb9, 0x9d, 0x78, 0xa6, 0xe9, 0x5c, 0x8d, 0x74, 0x5a, 0x23, 0x11, + 0xf4, 0xfc, 0x50, 0xf4, 0x2c, 0x48, 0x64, 0x20, 0x49, 0x64, 0x4b, 0x9b, 0xb3, 0x2a, 0x41, 0xfc, + 0xf9, 0xac, 0xd6, 0xe6, 0x4c, 0x5f, 0x23, 0x9c, 0x79, 0xf0, 0xc7, 0xff, 0x91, 0x6d, 0x5a, 0xd6, + 0x26, 0xc8, 0x72, 0x72, 0x75, 0xfe, 0x16, 0xa3, 0x75, 0x30, 0x76, 0x66, 0xd2, 0x7a, 0xbd, 0xcb, + 0x12, 0x85, 0xfa, 0xb5, 0x44, 0xe0, 0xd0, 0x4c, 0x6d, 0x89, 0x42, 0x99, 0x6f, 0xb1, 0x44, 0x8d, + 0xc4, 0x98, 0x88, 0xf9, 0x8f, 0x72, 0x8b, 0x6d, 0xb2, 0xbc, 0x22, 0x13, 0x76, 0xc7, 0x37, 0x0e, + 0xe4, 0x69, 0x2a, 0x76, 0x3a, 0x63, 0x5b, 0x3b, 0x8a, 0x84, 0x54, 0x62, 0x3f, 0x14, 0x3a, 0x22, + 0x5b, 0x76, 0xad, 0xad, 0x4e, 0x9d, 0xae, 0x7e, 0x1d, 0xaf, 0x93, 0xcb, 0xd5, 0xa5, 0xc3, 0x24, + 0xec, 0x64, 0x73, 0x95, 0xff, 0xd5, 0xc1, 0x5b, 0x25, 0x2f, 0xe0, 0x74, 0x13, 0xa3, 0xc2, 0x83, + 0x5b, 0x97, 0x2d, 0xf1, 0xc0, 0xc2, 0xa1, 0x38, 0x22, 0xbc, 0xdc, 0xf1, 0xd4, 0x57, 0x21, 0x1a, + 0xe8, 0x5c, 0xb3, 0x4d, 0x2a, 0x6d, 0x08, 0x09, 0x7a, 0xde, 0xf5, 0xb8, 0x3a, 0x66, 0x40, 0x2c, + 0x3e, 0x87, 0xd6, 0xb0, 0x6a, 0xcc, 0xd2, 0xba, 0xf3, 0x60, 0x38, 0x18, 0x38, 0x18, 0x52, 0x05, + 0xcd, 0x68, 0x9f, 0xd5, 0x19, 0x21, 0xdf, 0xf9, 0xe2, 0x00, 0x81, 0x5a, 0xf0, 0xf9, 0x23, 0xc7, + 0x36, 0xf4, 0xce, 0xa5, 0x0f, 0xfb, 0x5f, 0x06, 0xb3, 0xf8, 0x3c, 0x60, 0xb1, 0x15, 0xe6, 0x5d, + 0xd6, 0xda, 0xfc, 0x77, 0xe0, 0x7c, 0xff, 0xf0, 0xe1, 0x43, 0xe3, 0x95, 0x8f, 0x13, 0x17, 0xeb, + 0x99, 0x34, 0x5a, 0x58, 0xe1, 0x8e, 0x91, 0xf0, 0xbd, 0xe3, 0x9f, 0x0e, 0x9a, 0x22, 0x09, 0x00, + 0x03, 0x20, 0xb5, 0xb0, 0xe0, 0xb8, 0x11, 0x68, 0xc3, 0x07, 0x9e, 0x99, 0x46, 0xbe, 0x4b, 0xcf, + 0xb8, 0x65, 0x71, 0x8f, 0x1c, 0xb8, 0xfb, 0xdd, 0x3d, 0xac, 0xdd, 0xdb, 0xb9, 0x3a, 0xee, 0xc3, + 0x66, 0x7d, 0x22, 0x3c, 0x68, 0x03, 0x76, 0x12, 0x9a, 0x56, 0x86, 0xe6, 0xa3, 0x87, 0xdb, 0x5b, + 0x4a, 0x9b, 0x4f, 0x41, 0x98, 0xd1, 0xe8, 0x80, 0x8a, 0x44, 0x46, 0x79, 0xd7, 0x1b, 0x62, 0x51, + 0xdf, 0x55, 0x05, 0xb5, 0x4f, 0x7c, 0xdd, 0xb8, 0x94, 0xc8, 0x76, 0x82, 0xf4, 0x82, 0x81, 0xd4, + 0x49, 0x7b, 0x41, 0x42, 0xa2, 0x0d, 0x9f, 0xef, 0x5f, 0x7a, 0x8c, 0xcd, 0xe6, 0x2a, 0xe1, 0xa4, + 0xa5, 0x6f, 0x31, 0x27, 0x55, 0xc7, 0x64, 0xa0, 0x3c, 0xd4, 0x97, 0xf8, 0xb8, 0x03, 0x08, 0xd9, + 0x21, 0x24, 0x46, 0xa7, 0xad, 0x89, 0xd7, 0x8b, 0x7a, 0xfd, 0x74, 0xf1, 0x74, 0xf7, 0xea, 0x27, + 0x37, 0xe9, 0xb4, 0xde, 0x80, 0xd4, 0xc3, 0x34, 0x5b, 0xb1, 0xb5, 0x33, 0x5f, 0x4f, 0x3a, 0x4e, + 0x57, 0x53, 0xa0, 0xf8, 0xed, 0x72, 0xf0, 0xf7, 0x18, 0xa4, 0x55, 0x49, 0x1c, 0xb4, 0xde, 0x2c, + 0x3b, 0x08, 0x91, 0xf1, 0x4f, 0x79, 0xd2, 0xf1, 0xfd, 0x1d, 0x0b, 0x9f, 0x2c, 0xe3, 0x78, 0xb6, + 0x7b, 0xf1, 0x97, 0x28, 0x61, 0x15, 0x20, 0x8d, 0xee, 0x5e, 0xe5, 0x77, 0x2e, 0x4a, 0x8c, 0x1f, + 0x69, 0xa0, 0x7c, 0x8b, 0xea, 0xe0, 0xfa, 0x3a, 0x1f, 0x2f, 0x3b, 0x12, 0x01, 0x62, 0x21, 0xe2, + 0xc0, 0xd9, 0x1b, 0x4a, 0xb1, 0x9a, 0x93, 0x32, 0x2d, 0x34, 0x45, 0x4e, 0xab, 0x6c, 0x4b, 0x09, + 0xc0, 0x6d, 0x72, 0x2d, 0x36, 0xd0, 0x90, 0x69, 0xf1, 0x65, 0x5d, 0x9e, 0x6d, 0xbc, 0x6b, 0x97, + 0x65, 0x71, 0x68, 0x9e, 0xa1, 0xe3, 0x3a, 0x3a, 0x72, 0x12, 0xdf, 0xb9, 0xef, 0x0c, 0xd6, 0x03, + 0x58, 0x53, 0xcd, 0xe6, 0x49, 0xc2, 0x85, 0xa5, 0x9f, 0xc3, 0x31, 0xc5, 0x4b, 0x00, 0xdb, 0x30, + 0xf5, 0x61, 0x47, 0xce, 0x00, 0x75, 0x3a, 0xe6, 0xcb, 0xc3, 0x48, 0x1f, 0x81, 0x68, 0xda, 0x2c, + 0xd2, 0x1b, 0x6e, 0x91, 0xa5, 0x81, 0x7f, 0x5f, 0xd2, 0xc6, 0xda, 0x94, 0x36, 0x98, 0x0e, 0xdf, + 0x8e, 0x61, 0x65, 0x63, 0xcc, 0xc0, 0x88, 0x8b, 0xb6, 0x92, 0xa4, 0xc7, 0x5f, 0x05, 0xf1, 0xbe, + 0x44, 0x97, 0x1d, 0x04, 0x99, 0x48, 0x9f, 0xa8, 0x35, 0x74, 0xbf, 0xc7, 0xd0, 0xc1, 0xc6, 0x0a, + 0x47, 0x77, 0x26, 0xd8, 0x2e, 0xbc, 0x71, 0xe0, 0x4c, 0x94, 0x36, 0x6b, 0x4c, 0x99, 0x84, 0x70, + 0x7e, 0xe8, 0x87, 0x4f, 0xa7, 0x11, 0xe9, 0xb1, 0x49, 0x29, 0xb8, 0x51, 0x8f, 0xe2, 0x09, 0x69, + 0xe1, 0x1f, 0x45, 0x96, 0xbe, 0x6b, 0x4a, 0xd8, 0xba, 0x82, 0x0b, 0xfa, 0xba, 0x04, 0xf6, 0x36, + 0x70, 0x80, 0xe3, 0x98, 0x64, 0x45, 0x2c, 0x0e, 0x41, 0xde, 0xe6, 0x74, 0x25, 0xa3, 0xd4, 0x9c, + 0x79, 0x72, 0x3e, 0xf7, 0xb4, 0xd6, 0x7d, 0xbd, 0x2b, 0x53, 0xaa, 0x35, 0x25, 0xd0, 0x80, 0xd5, + 0x6c, 0xe2, 0x04, 0x03, 0x40, 0xa4, 0x50, 0x0c, 0x7b, 0xe4, 0xd0, 0xaa, 0x32, 0x9b, 0xaf, 0xd1, + 0x3a, 0xd3, 0xc1, 0x2a, 0xf1, 0x81, 0xb5, 0x84, 0x31, 0x2d, 0x1d, 0x56, 0x17, 0xad, 0x72, 0x9c, + 0x42, 0x31, 0x38, 0x40, 0x78, 0x67, 0x1f, 0x01, 0xdc, 0xa7, 0x68, 0x8f, 0x4e, 0xc8, 0x4f, 0x78, + 0xf8, 0x23, 0x3f, 0x65, 0x16, 0x5c, 0x66, 0xd0, 0x5b, 0xd8, 0x81, 0x4e, 0x3a, 0x62, 0xa0, 0xe2, + 0x23, 0x6f, 0xb7, 0xe2, 0xa1, 0x8f, 0x4a, 0x63, 0x81, 0x32, 0xd2, 0xa6, 0xe1, 0x40, 0xfe, 0x7a, + 0xf2, 0xe6, 0xb5, 0xb0, 0xb4, 0x26, 0xf3, 0x1b, 0x55, 0x4f, 0x08, 0xc0, 0x71, 0x89, 0x7e, 0x53, + 0x1e, 0x40, 0x46, 0x1a, 0xcf, 0xcb, 0xb8, 0xbc, 0xc8, 0x66, 0x21, 0x71, 0x74, 0xc1, 0x77, 0xf7, + 0x2e, 0xe2, 0x31, 0xec, 0x04, 0x45, 0x88, 0x9f, 0x5c, 0xe1, 0x1c, 0xd7, 0xa3, 0x64, 0x8d, 0x21, + 0x6c, 0x94, 0x4b, 0x8c, 0x1e, 0x20, 0x25, 0x02, 0x41, 0x3e, 0x72, 0x80, 0xcb, 0xcb, 0xd1, 0xd1, + 0xfc, 0xfd, 0xbb, 0x9f, 0x7b, 0x4f, 0xf0, 0x00, 0x82, 0x26, 0xd0, 0x7c, 0x19, 0x22, 0x4e, 0x51, + 0x35, 0xf7, 0xdd, 0x3d, 0x4a, 0x40, 0xeb, 0xe5, 0xa8, 0xbc, 0x3d, 0x52, 0x2a, 0x51, 0x78, 0xec, + 0x67, 0x9f, 0x94, 0x1a, 0x40, 0x97, 0xc3, 0x0d, 0x22, 0xc2, 0x72, 0xd8, 0x13, 0xbf, 0x56, 0xad, + 0xe1, 0x2b, 0xd1, 0x9c, 0xa1, 0x24, 0xd1, 0x49, 0x01, 0x2a, 0x98, 0xc4, 0x20, 0xe6, 0xb7, 0x21, + 0xf8, 0xeb, 0x74, 0xe4, 0x6b, 0x6a, 0x9f, 0xce, 0x0b, 0xb4, 0x6f, 0x23, 0x08, 0x4b, 0xe0, 0xb7, + 0x63, 0x4d, 0x8f, 0x80, 0xc5, 0xb1, 0x74, 0xbf, 0x58, 0x4d, 0xa7, 0xc8, 0x09, 0x39, 0x0c, 0xae, + 0xd4, 0x7f, 0x43, 0x67, 0x84, 0x1e, 0xd1, 0xb0, 0x9c, 0x00, 0xa5, 0x33, 0x8a, 0x3a, 0x9d, 0xe0, + 0x26, 0xea, 0x1c, 0xb2, 0x53, 0xad, 0xca, 0xf7, 0xee, 0x1e, 0x09, 0x0b, 0xca, 0xe1, 0x3e, 0x7f, + 0x21, 0xbe, 0x90, 0x3a, 0x8a, 0x39, 0xf9, 0xb9, 0x4a, 0xa2, 0xe8, 0xec, 0xef, 0xb3, 0xb1, 0xcf, + 0x29, 0x32, 0xd8, 0xbb, 0xd5, 0xee, 0x09, 0x82, 0xa3, 0x5e, 0xde, 0x37, 0x9e, 0x50, 0x90, 0x8c, + 0x9c, 0x5b, 0x37, 0x01, 0x8e, 0x5b, 0x13, 0xf9, 0xfd, 0xee, 0x10, 0xf6, 0x47, 0x5c, 0xcc, 0x6e, + 0x58, 0x2b, 0xbe, 0x69, 0xf4, 0x9f, 0xe5, 0xa5, 0x27, 0xf6, 0x05, 0x6d, 0xd3, 0x6e, 0x74, 0x0b, + 0x23, 0x5d, 0xe3, 0x8e, 0xd6, 0xa9, 0x25, 0x4a, 0x87, 0x5d, 0x90, 0x85, 0x05, 0x3c, 0x52, 0xbb, + 0x75, 0xe8, 0xfa, 0xc9, 0xcc, 0xe9, 0x76, 0x4c, 0x79, 0xe8, 0x0f, 0xaf, 0xad, 0x9c, 0x3f, 0x72, + 0x8f, 0x2c, 0xdf, 0x68, 0x7b, 0xea, 0x76, 0x54, 0xd2, 0x74, 0x94, 0x0b, 0x3a, 0x72, 0x6f, 0xa3, + 0xc2, 0x4b, 0x5e, 0xa2, 0x36, 0x6c, 0x0a, 0x0f, 0xe3, 0xc6, 0xc0, 0x64, 0x15, 0xdf, 0x7c, 0xdc, + 0x15, 0xa3, 0x5a, 0x79, 0x85, 0xd2, 0x0a, 0x8a, 0xed, 0x38, 0xad, 0xba, 0x06, 0xa4, 0xde, 0x30, + 0x52, 0x4d, 0xc2, 0xe9, 0x74, 0xeb, 0x9d, 0x00, 0x82, 0x00, 0x8f, 0x47, 0x96, 0x0f, 0x74, 0xa3, + 0x70, 0xc7, 0x20, 0x30, 0xe4, 0x0b, 0x87, 0x5a, 0x12, 0xda, 0xf5, 0xc8, 0x89, 0x0f, 0xb4, 0xe7, + 0x9b, 0x91, 0xe3, 0x48, 0xf5, 0xd1, 0x3c, 0x13, 0xb4, 0xdd, 0xc7, 0xdf, 0x82, 0xde, 0x53, 0x3e, + 0x87, 0xf1, 0x0d, 0xb5, 0x6f, 0xe5, 0xc5, 0x54, 0x3a, 0xfa, 0x9a, 0xd4, 0x24, 0x2a, 0x90, 0x8c, + 0x43, 0xed, 0x00, 0x77, 0xeb, 0x3e, 0xa7, 0x12, 0x13, 0xb4, 0xed, 0x23, 0x0f, 0x52, 0xf3, 0x41, + 0x90, 0x16, 0x7e, 0x79, 0x4f, 0x21, 0x99, 0x1f, 0x32, 0x8a, 0x98, 0x18, 0x3e, 0x41, 0xa9, 0x83, + 0xd8, 0x5d, 0x62, 0x63, 0x10, 0xa4, 0x05, 0x9c, 0xa8, 0xbe, 0x04, 0xd2, 0xf5, 0x5e, 0xd1, 0xa3, + 0x0b, 0xfc, 0x9c, 0x82, 0xb5, 0x4c, 0xca, 0x45, 0xac, 0xc1, 0x22, 0xcd, 0x6f, 0x5c, 0x3d, 0x9e, + 0x15, 0xfd, 0xeb, 0x2b, 0x62, 0xf7, 0x95, 0x25, 0xab, 0xfa, 0x32, 0xc5, 0x37, 0x78, 0x04, 0x1b, + 0x76, 0x3c, 0xfa, 0x0e, 0x5b, 0x30, 0x7c, 0x50, 0xf6, 0xad, 0xaa, 0x0e, 0xbc, 0x02, 0x49, 0x10, + 0x2b, 0x49, 0x6c, 0xd2, 0x81, 0x20, 0xf8, 0x0b, 0xb6, 0x25, 0x62, 0xc4, 0xa6, 0x15, 0x91, 0x1a, + 0xeb, 0x28, 0xcc, 0xab, 0x50, 0x76, 0x92, 0x27, 0x28, 0x08, 0x92, 0xe1, 0xb1, 0xe8, 0xa7, 0x0b, + 0xae, 0x2c, 0x4d, 0x80, 0xf4, 0x66, 0xb6, 0xca, 0x05, 0x98, 0xc2, 0x00, 0x59, 0xf4, 0x57, 0xb3, + 0x25, 0x74, 0x0d, 0x4f, 0xf8, 0xc1, 0xb4, 0xfc, 0x15, 0xfd, 0x65, 0x81, 0x5a, 0xf9, 0xba, 0xe5, + 0x0f, 0xdf, 0x5b, 0xc1, 0x9a, 0xde, 0xbc, 0x23, 0x1d, 0x3d, 0xd9, 0x95, 0x48, 0xac, 0x27, 0xd6, + 0xa3, 0xbf, 0x5c, 0x00, 0xaf, 0x40, 0xcc, 0x06, 0x89, 0xa6, 0x4e, 0x28, 0x85, 0x5b, 0x5b, 0x13, + 0xd3, 0x42, 0x0e, 0x8a, 0xba, 0x9a, 0x4e, 0xd3, 0x39, 0xc6, 0xeb, 0xb6, 0x95, 0x8e, 0x2d, 0xa5, + 0xc7, 0xeb, 0xb6, 0xd2, 0x65, 0xb3, 0x34, 0xea, 0xbf, 0x9d, 0xfd, 0xe1, 0xa0, 0xb5, 0x8a, 0x59, + 0x87, 0x28, 0x2e, 0xa1, 0xa5, 0xc7, 0x95, 0x94, 0x61, 0x75, 0x1a, 0x01, 0xd7, 0xca, 0x4b, 0x64, + 0x46, 0xe6, 0x1f, 0x8b, 0x6a, 0xd7, 0x58, 0xda, 0x9a, 0x9e, 0x36, 0x99, 0x7b, 0xac, 0x92, 0x45, + 0xf3, 0x5a, 0xbc, 0x80, 0x75, 0x8e, 0x0d, 0x12, 0xc1, 0xcc, 0x46, 0x0e, 0x87, 0xf8, 0x6e, 0xf0, + 0x81, 0x14, 0xb9, 0x82, 0xa5, 0x4a, 0x84, 0x1a, 0x17, 0x8b, 0x9e, 0xc9, 0x83, 0x26, 0xa9, 0xeb, + 0xd5, 0x5f, 0x67, 0x8e, 0x04, 0x60, 0x4f, 0x3b, 0xbf, 0x2a, 0xd1, 0x6d, 0x24, 0x4f, 0xda, 0xaa, + 0xe5, 0x2f, 0x32, 0x19, 0x22, 0x5e, 0x0e, 0x60, 0xbf, 0x40, 0x95, 0x09, 0x60, 0x20, 0xee, 0xf5, + 0x04, 0x7b, 0x32, 0x3b, 0x8d, 0xef, 0x30, 0x16, 0xe2, 0x0a, 0xc4, 0x34, 0x34, 0x0b, 0x28, 0x09, + 0xf2, 0x26, 0x3c, 0xb9, 0x81, 0xf1, 0x6e, 0x68, 0x79, 0x77, 0x40, 0xef, 0xaa, 0xf5, 0x2d, 0xc4, + 0x14, 0xb6, 0x8d, 0x43, 0x01, 0xc4, 0x9a, 0x2c, 0xfb, 0xe3, 0xd9, 0xc8, 0xb0, 0x41, 0xa2, 0xa9, + 0x5b, 0x70, 0x17, 0x77, 0xc8, 0x58, 0x6a, 0xca, 0x45, 0xbb, 0x58, 0xf3, 0xac, 0x45, 0x36, 0xb4, + 0x57, 0x4c, 0xfa, 0x85, 0x9d, 0x0e, 0x1b, 0xc2, 0x99, 0x56, 0x25, 0x59, 0x7f, 0x0b, 0xf9, 0x53, + 0xb0, 0xf2, 0x86, 0xb5, 0x3f, 0xe9, 0xcf, 0xd7, 0xc4, 0xb8, 0x6a, 0xbd, 0x2d, 0x49, 0x47, 0x62, + 0x32, 0x28, 0xcd, 0xae, 0x5f, 0xf0, 0xc1, 0x8a, 0x02, 0xdf, 0x34, 0xcf, 0x16, 0x8b, 0x77, 0xd9, + 0xb2, 0x85, 0x3d, 0x6e, 0x80, 0xc8, 0x76, 0xa8, 0x77, 0xa4, 0x36, 0xdd, 0xd6, 0x30, 0xfb, 0xba, + 0xb0, 0xbd, 0x6a, 0x7f, 0xd8, 0x7f, 0x42, 0x48, 0x40, 0xb8, 0x8a, 0x3e, 0x19, 0x4f, 0x0c, 0x9e, + 0xec, 0xf7, 0x57, 0x2f, 0x9e, 0x0b, 0x8b, 0x19, 0xf5, 0xc7, 0x45, 0x5a, 0x48, 0x9b, 0x18, 0x46, + 0x4e, 0x1e, 0xae, 0x84, 0x0e, 0x4f, 0xb4, 0x69, 0x2c, 0x94, 0x5a, 0x23, 0x58, 0xcf, 0x14, 0x85, + 0xd8, 0xfe, 0x48, 0xba, 0x0c, 0x61, 0xd8, 0xe7, 0x5d, 0x7a, 0x0f, 0xff, 0x8a, 0x63, 0x30, 0x9b, + 0xfc, 0x83, 0x98, 0x01, 0x0c, 0xcf, 0x27, 0x8f, 0x10, 0x3c, 0xea, 0xe1, 0xa5, 0xbe, 0x6d, 0x68, + 0x6a, 0xb4, 0x3b, 0x36, 0x9c, 0x07, 0x43, 0x61, 0x1f, 0xaf, 0x64, 0x24, 0x68, 0xab, 0x69, 0x43, + 0x62, 0xc8, 0x5e, 0x2f, 0x18, 0x2c, 0x3e, 0x01, 0xf6, 0xe0, 0x8f, 0x3c, 0x53, 0x17, 0x4f, 0x85, + 0x35, 0x48, 0xdb, 0x15, 0x10, 0xd3, 0x6c, 0x64, 0x63, 0x79, 0xb3, 0xef, 0xfc, 0x89, 0xd6, 0x32, + 0x7e, 0x75, 0x9d, 0x2c, 0x16, 0x0e, 0xc7, 0x00, 0xcd, 0xe7, 0x0e, 0x85, 0x18, 0x12, 0xaa, 0xf9, + 0x30, 0xe9, 0xc2, 0x6f, 0xd8, 0x91, 0x31, 0x35, 0x62, 0x9f, 0x64, 0x9c, 0x4a, 0xe5, 0x64, 0xef, + 0x61, 0x16, 0x53, 0x1f, 0x30, 0x29, 0x33, 0x51, 0xc1, 0xc4, 0x56, 0xba, 0x00, 0x6c, 0x09, 0xa4, + 0x01, 0xb0, 0x9b, 0xcd, 0xee, 0x83, 0x46, 0xc5, 0x8e, 0x30, 0x25, 0x56, 0xa7, 0xda, 0x9e, 0xfc, + 0x2d, 0x10, 0xa0, 0x34, 0x3d, 0x75, 0x2c, 0xbc, 0x01, 0x49, 0x42, 0x8c, 0xb9, 0xa0, 0xec, 0xf3, + 0x17, 0x31, 0x08, 0x97, 0xe5, 0x75, 0x96, 0x7f, 0x62, 0x1c, 0xa4, 0xd9, 0x35, 0x79, 0xe7, 0xa0, + 0x49, 0x12, 0x6d, 0x07, 0xc0, 0x96, 0xc6, 0x5b, 0xc6, 0xfc, 0x0e, 0x8b, 0x08, 0xac, 0x02, 0x24, + 0xd9, 0xdd, 0xcd, 0x3b, 0x8b, 0x0c, 0xb3, 0x6a, 0x52, 0x27, 0x56, 0xdc, 0xe0, 0xf9, 0x4c, 0xd8, + 0xc1, 0x33, 0x1a, 0x7e, 0xc8, 0xb1, 0x10, 0x92, 0xe4, 0xe0, 0x04, 0xd3, 0xe1, 0x63, 0x2d, 0x3e, + 0xd1, 0x73, 0xe6, 0x41, 0x34, 0x44, 0xec, 0x88, 0x50, 0x64, 0x8d, 0xae, 0x92, 0xf8, 0x5a, 0x92, + 0x38, 0x79, 0x2e, 0xed, 0xe1, 0x5f, 0xeb, 0x5e, 0xb6, 0x10, 0xc5, 0x2d, 0xda, 0x20, 0x0f, 0x2b, + 0x91, 0x86, 0x81, 0xd5, 0x42, 0xe2, 0x3e, 0xee, 0x3b, 0x9b, 0xc9, 0xa7, 0x46, 0xe5, 0x7d, 0xf9, + 0x0d, 0x1a, 0x18, 0x4f, 0x30, 0xf6, 0x6d, 0xb2, 0x18, 0xa7, 0x9f, 0xb6, 0x6a, 0xfb, 0x2c, 0xca, + 0x46, 0xd1, 0x9a, 0xa1, 0xe7, 0x33, 0xc7, 0x7f, 0x39, 0xfe, 0x84, 0x47, 0xb5, 0xa7, 0x64, 0xb4, + 0x54, 0xba, 0x3f, 0x35, 0x8d, 0x03, 0xce, 0x40, 0x95, 0x5a, 0x32, 0xcd, 0x35, 0x60, 0xf9, 0x48, + 0xb6, 0x10, 0xa3, 0x5a, 0x6f, 0xb8, 0x89, 0x3f, 0xfa, 0x86, 0xea, 0x97, 0x6a, 0x1f, 0x2a, 0x07, + 0x29, 0x9f, 0x3b, 0x5d, 0xf2, 0x94, 0x6d, 0x34, 0x33, 0x70, 0xbb, 0x59, 0xd5, 0x30, 0xa1, 0xea, + 0xfd, 0x6d, 0x60, 0xe9, 0xc7, 0xd7, 0xbe, 0x61, 0x2e, 0x69, 0xd8, 0x18, 0x95, 0x49, 0xf1, 0xab, + 0x0c, 0x88, 0x46, 0x77, 0x5f, 0x67, 0x4b, 0x4c, 0x8b, 0x6f, 0x65, 0x43, 0x6c, 0x83, 0xeb, 0x6b, + 0xec, 0x88, 0xda, 0xbb, 0x2f, 0x34, 0x23, 0x2a, 0x09, 0xa1, 0x07, 0x73, 0x29, 0x14, 0xf8, 0x5f, + 0x6b, 0x18, 0x34, 0x86, 0x61, 0xb3, 0x11, 0x1a, 0x05, 0x40, 0x88, 0xd5, 0x8d, 0x42, 0x0d, 0xe3, + 0xa1, 0x61, 0x2a, 0xfb, 0x68, 0x67, 0x4d, 0xac, 0x56, 0xad, 0x69, 0x53, 0xf3, 0xaf, 0x75, 0x24, + 0x17, 0x82, 0x20, 0xd3, 0x86, 0xb0, 0x8f, 0x6a, 0xcf, 0x5e, 0xa2, 0x41, 0xaf, 0x16, 0x1a, 0xcc, + 0x6e, 0x0d, 0x17, 0x54, 0x14, 0x7e, 0x31, 0xec, 0xc3, 0x27, 0x63, 0x82, 0xfd, 0xe9, 0x6c, 0x26, + 0xcd, 0x66, 0x86, 0x48, 0xff, 0x6f, 0x8e, 0x41, 0x78, 0x0e, 0x14, 0xfe, 0xad, 0xe2, 0xe1, 0xdb, + 0x17, 0x72, 0x81, 0x7e, 0x07, 0x1f, 0x95, 0x60, 0x53, 0x3b, 0xef, 0x71, 0x41, 0x86, 0x52, 0x09, + 0x50, 0x80, 0xe0, 0x8f, 0x4e, 0x0a, 0x21, 0xb6, 0xb8, 0xdb, 0x61, 0x26, 0x26, 0xb4, 0x02, 0x85, + 0x56, 0xe2, 0x36, 0x4e, 0x41, 0x41, 0x25, 0x37, 0x14, 0xa9, 0xc8, 0x24, 0x23, 0xf5, 0x4e, 0x55, + 0x63, 0xbd, 0x2a, 0x1d, 0x25, 0x58, 0xf5, 0x30, 0xe2, 0xde, 0x61, 0x5e, 0x67, 0x12, 0x41, 0x23, + 0xa9, 0xdc, 0xda, 0xdc, 0x39, 0x6e, 0x72, 0x31, 0x0f, 0xb9, 0x09, 0x7a, 0xce, 0x96, 0xf4, 0x98, + 0x2d, 0x77, 0xc3, 0xc4, 0x4c, 0x9b, 0x14, 0x82, 0x49, 0x7a, 0xbe, 0x1c, 0x3a, 0x07, 0x35, 0x8e, + 0xcd, 0x05, 0x8e, 0x05, 0xce, 0x53, 0xd8, 0x58, 0xe1, 0x74, 0xbe, 0x00, 0xd9, 0xd5, 0xb9, 0x5c, + 0x2d, 0xca, 0x64, 0x09, 0x72, 0xbc, 0x32, 0xb2, 0x62, 0x5e, 0x68, 0x0c, 0xdc, 0xc6, 0x22, 0x22, + 0xed, 0x2e, 0x1e, 0xe1, 0x6e, 0x5d, 0xea, 0x51, 0x8e, 0x16, 0xc5, 0x99, 0x66, 0x41, 0x95, 0x9d, + 0xf7, 0x7a, 0x77, 0x8f, 0x9b, 0xc6, 0x39, 0xd8, 0x79, 0xba, 0xd1, 0x20, 0xae, 0xa6, 0x1b, 0x6d, + 0xe1, 0x5b, 0x28, 0x0f, 0x3e, 0xef, 0x4e, 0x79, 0x68, 0x7b, 0x47, 0xd5, 0xeb, 0xd5, 0xce, 0xa0, + 0xfc, 0xe1, 0x25, 0x9a, 0x66, 0xb2, 0xde, 0xf0, 0x7c, 0x6d, 0xe8, 0xb5, 0xa0, 0xe4, 0xce, 0x0d, + 0x0b, 0x3d, 0xb8, 0x57, 0xd9, 0x5a, 0xeb, 0x8d, 0x83, 0x00, 0xa2, 0xb7, 0x7e, 0xa7, 0x42, 0x5d, + 0xd0, 0xeb, 0xce, 0x10, 0xfc, 0x94, 0x27, 0x5e, 0x63, 0x64, 0x93, 0x3c, 0xb9, 0xa3, 0xd3, 0xba, + 0x7a, 0xc5, 0xff, 0x7f, 0x61, 0xe3, 0x71, 0x13, 0x40, 0x19, 0xb2, 0x09, 0xb1, 0x44, 0x57, 0xb1, + 0xde, 0x05, 0x70, 0x43, 0x10, 0xdd, 0x1d, 0x57, 0x4a, 0x20, 0x6d, 0xef, 0x3f, 0xd9, 0xa9, 0xff, + 0x86, 0x64, 0xbb, 0x23, 0x0c, 0xcc, 0x80, 0x3e, 0xfb, 0xb3, 0xd9, 0xff, 0x72, 0xe1, 0x3a, 0x21, + 0xb2, 0x4f, 0x62, 0xa3, 0xda, 0x45, 0xf5, 0xc4, 0x44, 0xa7, 0xb5, 0x10, 0xa2, 0xeb, 0x9c, 0x8b, + 0x3a, 0x1f, 0x1a, 0x0b, 0x46, 0x87, 0x6c, 0x1d, 0x8c, 0xae, 0x8a, 0xf2, 0xa1, 0x26, 0xc6, 0x89, + 0xdc, 0x55, 0x21, 0xd6, 0x2b, 0xa0, 0x66, 0xe9, 0xce, 0x1a, 0x06, 0x95, 0x6c, 0xbe, 0x05, 0x9d, + 0x11, 0x52, 0x77, 0x44, 0xf6, 0xdb, 0x13, 0x46, 0x36, 0x05, 0x38, 0xec, 0x91, 0x5a, 0xef, 0x3f, + 0x69, 0xba, 0x25, 0x8e, 0xb7, 0x68, 0xb1, 0xe2, 0xb2, 0x99, 0x75, 0x7c, 0x85, 0xb7, 0x37, 0x18, + 0x02, 0xd6, 0x97, 0x1a, 0x7c, 0x45, 0x1b, 0x9a, 0xbf, 0xa5, 0xdd, 0x1f, 0x08, 0x80, 0x7f, 0x85, + 0x7c, 0xb1, 0x6b, 0x72, 0x0a, 0x04, 0x21, 0x88, 0x0a, 0x27, 0x78, 0xa2, 0xc0, 0xb1, 0x51, 0x2c, + 0x32, 0x38, 0xd1, 0x5c, 0xf4, 0xaf, 0x77, 0x30, 0xf8, 0x8f, 0x5f, 0x58, 0xf7, 0x3b, 0xe2, 0x8a, + 0xbc, 0xa4, 0x49, 0xbf, 0x05, 0xaa, 0x03, 0x36, 0x2d, 0xc6, 0x67, 0x2f, 0xe9, 0x0d, 0xfd, 0xca, + 0x00, 0x6d, 0x9e, 0x71, 0xaf, 0xf8, 0x3e, 0x0b, 0x87, 0x23, 0x88, 0x2a, 0x00, 0x48, 0x7b, 0x9d, + 0x38, 0x5d, 0x97, 0xcf, 0x32, 0x9b, 0x38, 0xea, 0x9e, 0xe8, 0xe5, 0x1c, 0x10, 0x4d, 0x29, 0x5a, + 0x73, 0xcf, 0x79, 0x8f, 0xb7, 0x0e, 0x10, 0x92, 0xf0, 0xea, 0x03, 0x1e, 0x24, 0x0d, 0x16, 0xe4, + 0x53, 0xa1, 0xec, 0x95, 0xfd, 0xc1, 0xa7, 0xa4, 0xec, 0x4b, 0x3c, 0x6a, 0xf3, 0x57, 0x0d, 0x6d, + 0x8c, 0xf2, 0x14, 0x8c, 0x6e, 0x64, 0xf6, 0xcd, 0xed, 0x57, 0xcd, 0xd8, 0x80, 0xde, 0x69, 0x63, + 0x52, 0xca, 0x3b, 0x36, 0x40, 0x8b, 0x68, 0x95, 0xc9, 0xe8, 0x3f, 0x1b, 0xdd, 0x40, 0x5c, 0x43, + 0xe4, 0x1e, 0x2c, 0xd7, 0x6c, 0x5e, 0x63, 0x3d, 0x20, 0xb9, 0x64, 0x6b, 0xc5, 0xf8, 0x12, 0xd0, + 0xc8, 0x7d, 0xb4, 0x5c, 0xd7, 0x3f, 0xf1, 0xd5, 0xa7, 0xee, 0xc3, 0x03, 0xfe, 0xb4, 0xa1, 0xaf, + 0xa4, 0x45, 0xac, 0x75, 0xf1, 0xd8, 0xda, 0x85, 0x5e, 0x52, 0xf6, 0x72, 0xa0, 0x7a, 0xd1, 0xbf, + 0x8a, 0x8e, 0x1e, 0x3d, 0xe4, 0xaf, 0x64, 0x26, 0xa6, 0x18, 0x0a, 0xbe, 0xb3, 0x48, 0xdd, 0xd8, + 0xee, 0xec, 0x45, 0xc0, 0x06, 0xd7, 0x60, 0x30, 0x95, 0x87, 0x8c, 0x06, 0xad, 0x32, 0x92, 0xf3, + 0x1d, 0x55, 0xb6, 0x6b, 0x53, 0x7f, 0x6f, 0xd7, 0xa4, 0x7e, 0x81, 0x3b, 0x4a, 0x63, 0xa5, 0x71, + 0xf4, 0x07, 0x2e, 0x06, 0x0e, 0xe1, 0xa9, 0x84, 0x90, 0x1d, 0xc9, 0x01, 0xb1, 0x54, 0x55, 0x27, + 0xd7, 0x8d, 0xad, 0xc3, 0x44, 0x87, 0xab, 0x8e, 0x1e, 0xdf, 0xd2, 0xf1, 0x9d, 0x1a, 0xa2, 0x44, + 0xaa, 0x15, 0xaf, 0x73, 0x51, 0x5c, 0x75, 0x02, 0xa7, 0x83, 0xff, 0x0c, 0xd9, 0xc1, 0xe0, 0xae, + 0xb6, 0x1d, 0xeb, 0x84, 0x8d, 0x30, 0xfc, 0xa8, 0x42, 0x99, 0xdd, 0xe1, 0xc0, 0xc4, 0x32, 0xf6, + 0x95, 0x2d, 0x9a, 0x0d, 0xb6, 0x30, 0x8d, 0xf0, 0x1d, 0xfe, 0x9e, 0x9e, 0xc2, 0xdf, 0x7e, 0x1e, + 0x60, 0x5e, 0x99, 0xfe, 0x39, 0xff, 0x99, 0x04, 0xc6, 0x74, 0x9d, 0x05, 0xa7, 0xf8, 0xdf, 0x99, + 0xd2, 0x3a, 0xf1, 0x2a, 0x94, 0x4e, 0x68, 0x6d, 0xed, 0x42, 0x9d, 0x9d, 0x9a, 0xe6, 0x76, 0x35, + 0x17, 0x37, 0xd9, 0xfc, 0xc1, 0x5d, 0xcd, 0xef, 0xd4, 0x83, 0x68, 0xfe, 0xdf, 0x3f, 0x5a, 0xed, + 0xbc, 0x87, 0x95, 0x47, 0x75, 0x8e, 0x9c, 0x47, 0xad, 0xae, 0xa3, 0xb6, 0xf2, 0xac, 0x6a, 0x42, + 0x08, 0x61, 0x98, 0x7d, 0xf6, 0xfb, 0x19, 0xec, 0xb8, 0x49, 0x0a, 0xb7, 0xf2, 0x84, 0x79, 0x1e, + 0xdd, 0x69, 0x1c, 0x4e, 0x75, 0xed, 0xb1, 0x4d, 0x5e, 0xee, 0x38, 0xdd, 0xc4, 0xa2, 0xc0, 0xd3, + 0x6a, 0xee, 0xa8, 0xc7, 0x43, 0x97, 0x77, 0xbd, 0x31, 0xdd, 0x3e, 0xdb, 0x68, 0xae, 0x66, 0xaf, + 0x0d, 0xe5, 0x0b, 0x7e, 0x6c, 0xf8, 0x1a, 0xa6, 0x73, 0x60, 0x46, 0x0a, 0xbe, 0x07, 0xa9, 0x68, + 0x8b, 0xd5, 0x50, 0xac, 0x3b, 0x1c, 0xea, 0x93, 0xc5, 0x2a, 0xf7, 0x7c, 0x1b, 0x9c, 0xae, 0xc6, + 0x28, 0xef, 0x52, 0x50, 0x71, 0xb4, 0x7a, 0x61, 0x02, 0x6f, 0x7f, 0x1f, 0x4b, 0xe0, 0xee, 0xfa, + 0xfe, 0xa5, 0x8c, 0x53, 0xfc, 0xf0, 0x4c, 0xe7, 0x9c, 0xcc, 0x1b, 0x2d, 0x3a, 0x94, 0xe3, 0x7d, + 0x9c, 0xa4, 0xe8, 0x10, 0x19, 0x38, 0xaf, 0xa1, 0xe4, 0x43, 0x62, 0xba, 0x80, 0x18, 0x1c, 0x15, + 0xfe, 0x04, 0x3b, 0xcc, 0x7a, 0x20, 0xdc, 0x55, 0x02, 0xe7, 0xa6, 0xfa, 0xc9, 0x06, 0x98, 0x13, + 0x47, 0x84, 0x81, 0x08, 0x13, 0xab, 0x08, 0x23, 0xbd, 0x1e, 0xd5, 0x10, 0x86, 0x9e, 0x3f, 0xe8, + 0x3e, 0xf5, 0x5f, 0xf2, 0x5a, 0xd7, 0x5a, 0x04, 0x35, 0x4c, 0x82, 0x25, 0xa8, 0x1a, 0x38, 0xed, + 0xd8, 0x31, 0x71, 0x8f, 0x3d, 0x79, 0x55, 0xc0, 0x13, 0x92, 0xa6, 0x0a, 0xef, 0x55, 0x01, 0x5a, + 0x52, 0x51, 0x2a, 0x47, 0x58, 0x78, 0x1d, 0xa1, 0x98, 0x83, 0xbd, 0xf2, 0xf3, 0x67, 0x47, 0xff, + 0x60, 0x4f, 0x43, 0xd9, 0x52, 0xce, 0xb8, 0xef, 0x1a, 0xca, 0x6c, 0x29, 0x04, 0xc7, 0x45, 0xe5, + 0x87, 0x43, 0x28, 0x94, 0x58, 0x90, 0xe1, 0xd4, 0xf0, 0xfe, 0xc6, 0xf2, 0xfe, 0x4f, 0xe4, 0x5e, + 0x14, 0x72, 0xb7, 0x86, 0xe1, 0x89, 0xc0, 0x35, 0xd7, 0x3f, 0xe5, 0xf9, 0x3a, 0xab, 0xcc, 0x62, + 0x34, 0x01, 0xdb, 0x83, 0xd6, 0xf6, 0x3c, 0x35, 0x6d, 0x64, 0x6a, 0x6a, 0x98, 0x99, 0x66, 0xf9, + 0xf8, 0x5c, 0xe0, 0x9a, 0x0c, 0x73, 0x5c, 0x5c, 0x1b, 0x56, 0x7d, 0x13, 0xfa, 0x12, 0x00, 0x81, + 0x07, 0x90, 0x34, 0x44, 0x3d, 0xa0, 0xc3, 0x0b, 0x5e, 0xad, 0xe6, 0xe8, 0xba, 0x10, 0xa4, 0x6a, + 0xec, 0x84, 0x93, 0x43, 0x4e, 0x0a, 0xaf, 0x8e, 0x43, 0xa7, 0x07, 0xe4, 0xe9, 0xc3, 0x0e, 0xd7, + 0x56, 0xe2, 0x4f, 0x28, 0x71, 0x33, 0xf0, 0xa9, 0x0b, 0x6e, 0x0b, 0xef, 0x8d, 0x4e, 0xa7, 0xe8, + 0xfd, 0xb1, 0x80, 0xb1, 0x35, 0xc3, 0xc5, 0x47, 0x58, 0x70, 0x23, 0xd0, 0x67, 0x0d, 0xe6, 0x2b, + 0xd7, 0x80, 0xbd, 0x8f, 0x3f, 0xdc, 0x6a, 0x97, 0xdf, 0xd8, 0xe1, 0xda, 0x2c, 0xd7, 0x1f, 0x1b, + 0x58, 0x15, 0x03, 0x65, 0xac, 0x5a, 0x90, 0x4a, 0x41, 0xc7, 0x6b, 0x0b, 0xbd, 0x50, 0x9b, 0x01, + 0xf9, 0x73, 0x89, 0xcc, 0x9e, 0xe7, 0xa9, 0x37, 0x5b, 0xc3, 0xda, 0x85, 0xd6, 0xe1, 0x65, 0xd7, + 0x2b, 0x1e, 0xcc, 0xd6, 0xfb, 0xd7, 0xbe, 0xba, 0xa8, 0xe7, 0x80, 0xdd, 0xfe, 0x30, 0x0f, 0x88, + 0x58, 0xd0, 0xe8, 0x1c, 0x0a, 0x34, 0x5b, 0xb0, 0x17, 0x04, 0xf0, 0x1a, 0xf2, 0xc3, 0x21, 0x6c, + 0x00, 0x3d, 0x67, 0xc8, 0x1f, 0x8f, 0xc4, 0xc7, 0x39, 0xfc, 0xea, 0x0f, 0xf9, 0xe4, 0xbb, 0x3b, + 0xb2, 0x11, 0x9d, 0xcf, 0xd9, 0xaf, 0x00, 0x80, 0x19, 0x42, 0x6b, 0xf3, 0x51, 0x23, 0xd4, 0xb1, + 0x8a, 0x81, 0xbc, 0x1b, 0xc3, 0x9d, 0xc1, 0x72, 0xdd, 0xd9, 0x16, 0x54, 0x39, 0xc7, 0xc8, 0x4b, + 0x51, 0x60, 0x37, 0x3a, 0xe7, 0x68, 0x49, 0x5f, 0xae, 0x48, 0xdc, 0xc9, 0x1a, 0x2c, 0x1d, 0x85, + 0x2c, 0x3b, 0xb7, 0x80, 0x54, 0x74, 0xba, 0x11, 0xc9, 0xd2, 0x49, 0x2a, 0xe3, 0x14, 0xa6, 0xce, + 0x16, 0xb0, 0x97, 0xd0, 0x5d, 0xf3, 0x28, 0x2a, 0xb3, 0x65, 0xcd, 0xb0, 0x8c, 0x6e, 0x03, 0xc0, + 0x23, 0x6f, 0x1b, 0xdc, 0xa4, 0xb4, 0xb6, 0x35, 0xc9, 0xca, 0xf6, 0xb6, 0x68, 0x24, 0x2a, 0xe6, + 0xba, 0xad, 0xe5, 0x14, 0x1a, 0x7e, 0xcd, 0x94, 0x21, 0x46, 0xd7, 0x08, 0x47, 0xee, 0xf0, 0x4d, + 0xbf, 0x50, 0x10, 0xff, 0x18, 0x21, 0xc7, 0xd0, 0x6a, 0xb3, 0xf8, 0x65, 0x86, 0x6a, 0xff, 0xec, + 0x1a, 0x9b, 0x46, 0x64, 0x9b, 0x11, 0xb1, 0xcd, 0xf2, 0xd5, 0x1d, 0x20, 0xcd, 0x0a, 0xdb, 0xba, + 0xc0, 0xb5, 0x83, 0x68, 0x81, 0x8d, 0x69, 0xa7, 0x2e, 0xec, 0xe5, 0xb7, 0xf5, 0x90, 0xad, 0x10, + 0x24, 0xac, 0x77, 0x57, 0x07, 0x54, 0x7c, 0xb5, 0xdc, 0xb1, 0xb4, 0xbc, 0x1f, 0xa2, 0x59, 0xfc, + 0x70, 0x1f, 0xb6, 0xc1, 0x64, 0x59, 0x92, 0x3d, 0x04, 0xbd, 0x55, 0xe9, 0xc7, 0x45, 0x79, 0xb9, + 0x38, 0xfa, 0x3f, 0x82, 0xf3, 0x0f, 0xf1, 0x9b, 0x05, 0x01, 0x00, }; diff --git a/wled00/palettes.h b/wled00/palettes.h index ee0715c34..fbdd7bb56 100644 --- a/wled00/palettes.h +++ b/wled00/palettes.h @@ -564,6 +564,14 @@ DEFINE_GRADIENT_PALETTE( Sakura_gp ) { 130, 223, 45, 72, 195, 255, 82,103, 255, 223, 13, 17}; + +DEFINE_GRADIENT_PALETTE( Aurora_gp ) { + 0, 1, 5, 45, //deep blue + 64, 0,200, 23, + 128, 0,255, 0, //green + 170, 0,243, 45, + 200, 0,135, 7, + 255, 1, 5, 45};//deep blue // Single array of defined cpt-city color palettes. @@ -614,6 +622,7 @@ const TProgmemRGBGradientPalettePtr gGradientPalettes[] = { Orangery_gp, //47-34 Orangery C9_gp, //48-35 C9 Sakura_gp, //49-36 Sakura + Aurora_gp, //50-37 Aurora }; diff --git a/wled00/src/dependencies/espalexa/EspalexaDevice.cpp b/wled00/src/dependencies/espalexa/EspalexaDevice.cpp index 43ad6f02f..df859c1d9 100644 --- a/wled00/src/dependencies/espalexa/EspalexaDevice.cpp +++ b/wled00/src/dependencies/espalexa/EspalexaDevice.cpp @@ -110,8 +110,8 @@ uint32_t EspalexaDevice::getKelvin() uint32_t EspalexaDevice::getRGB() { if (_rgb != 0) return _rgb; //color has not changed - uint8_t rgb[3]; - float r, g, b; + byte rgb[4]{0, 0, 0, 0}; + float r, g, b, w; if (_mode == EspalexaColorMode::none) return 0; @@ -122,6 +122,15 @@ uint32_t EspalexaDevice::getRGB() float temp = 10000/ _ct; //kelvins = 1,000,000/mired (and that /100) float r, g, b; +// Cold white to warm white receiving from Alexa: _ct = 199, 234, 284, 350, 383 (from cold white to warm white) + switch (_ct) { + case 199: rgb[0]=255,rgb[1]=255,rgb[2]=255;rgb[3]=255;break; + case 234: rgb[0]=127,rgb[1]=127,rgb[2]=127;rgb[3]=255;break; + case 284: rgb[0]=0,rgb[1]=0,rgb[2]=0;rgb[3]=255;break; + case 350: rgb[0]=130,rgb[1]=90,rgb[2]=0;rgb[3]=255;break; + case 383: rgb[0]=255,rgb[1]=153,rgb[2]=0;rgb[3]=255;break; + default: { + if( temp <= 66 ){ r = 255; g = temp; @@ -143,6 +152,9 @@ uint32_t EspalexaDevice::getRGB() rgb[0] = (byte)constrain(r,0.1,255.1); rgb[1] = (byte)constrain(g,0.1,255.1); rgb[2] = (byte)constrain(b,0.1,255.1); + + } + } } else if (_mode == EspalexaColorMode::hs) { float h = ((float)_hue)/65535.0; @@ -216,7 +228,7 @@ uint32_t EspalexaDevice::getRGB() rgb[1] = 255.0*g; rgb[2] = 255.0*b; } - _rgb = ((rgb[0] << 16) | (rgb[1] << 8) | (rgb[2])); + _rgb = ((rgb[3] << 24) | (rgb[0] << 16) | (rgb[1] << 8) | (rgb[2])); //white value is only >0 if Alexa did provide a CT value, RGB colors will not be touched. return _rgb; } diff --git a/wled00/src/dependencies/json/AsyncJson-v6.h b/wled00/src/dependencies/json/AsyncJson-v6.h index 5bf87e1b1..9187a3e9d 100644 --- a/wled00/src/dependencies/json/AsyncJson-v6.h +++ b/wled00/src/dependencies/json/AsyncJson-v6.h @@ -15,7 +15,7 @@ #include "ArduinoJson-v6.h" #include -#define DYNAMYC_JSON_DOCUMENT_SIZE 8192 +#define DYNAMIC_JSON_DOCUMENT_SIZE 8192 constexpr const char* JSON_MIMETYPE = "application/json"; @@ -60,7 +60,7 @@ class AsyncJsonResponse: public AsyncAbstractResponse { public: - AsyncJsonResponse(size_t maxJsonBufferSize = DYNAMYC_JSON_DOCUMENT_SIZE, bool isArray=false) : _jsonBuffer(maxJsonBufferSize), _isValid{false} { + AsyncJsonResponse(size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE, bool isArray=false) : _jsonBuffer(maxJsonBufferSize), _isValid{false} { _code = 200; _contentType = JSON_MIMETYPE; if(isArray) @@ -90,7 +90,7 @@ class AsyncJsonResponse: public AsyncAbstractResponse { } }; -typedef std::function ArJsonRequestHandlerFunction; +typedef std::function ArJsonRequestHandlerFunction; class AsyncCallbackJsonWebHandler: public AsyncWebHandler { private: @@ -103,7 +103,7 @@ protected: int _maxContentLength; public: - AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest, size_t maxJsonBufferSize=DYNAMYC_JSON_DOCUMENT_SIZE) + AsyncCallbackJsonWebHandler(const String& uri, ArJsonRequestHandlerFunction onRequest, size_t maxJsonBufferSize=DYNAMIC_JSON_DOCUMENT_SIZE) : _uri(uri), _method(HTTP_POST|HTTP_PUT|HTTP_PATCH), _onRequest(onRequest), maxJsonBufferSize(maxJsonBufferSize), _maxContentLength(16384) {} void setMethod(WebRequestMethodComposite method){ _method = method; } @@ -127,15 +127,8 @@ public: virtual void handleRequest(AsyncWebServerRequest *request) override final { if(_onRequest) { if (request->_tempObject != NULL) { - - DynamicJsonDocument jsonBuffer(this->maxJsonBufferSize); - DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject)); - if(!error) { - JsonObject json = jsonBuffer.as(); - - _onRequest(request, json); - return; - } + _onRequest(request); + return; } request->send(_contentLength > _maxContentLength ? 413 : 400); } else { diff --git a/wled00/wled00.ino b/wled00/wled00.ino index 9e3d86cd2..996b0a0a2 100644 --- a/wled00/wled00.ino +++ b/wled00/wled00.ino @@ -3,7 +3,7 @@ */ /* * @title WLED project sketch - * @version 0.9.0-dev + * @version 0.9.0-b2 * @author Christian Schwinne */ @@ -14,15 +14,16 @@ //Uncomment some of the following lines to disable features to compile for ESP8266-01 (max flash size 434kB): //You are required to disable over-the-air updates: -//#define WLED_DISABLE_OTA +//#define WLED_DISABLE_OTA //saves 14kb //You need to choose some of these features to disable: -//#define WLED_DISABLE_ALEXA -//#define WLED_DISABLE_BLYNK -//#define WLED_DISABLE_CRONIXIE -//#define WLED_DISABLE_HUESYNC -//#define WLED_DISABLE_INFRARED //there is no pin left for this on ESP8266-01 -#define WLED_ENABLE_ADALIGHT //only saves about 500b +//#define WLED_DISABLE_ALEXA //saves 11kb +//#define WLED_DISABLE_BLYNK //saves 6kb +//#define WLED_DISABLE_CRONIXIE //saves 3kb +//#define WLED_DISABLE_HUESYNC //saves 4kb +//#define WLED_DISABLE_INFRARED //there is no pin left for this on ESP8266-01, saves 25kb (!) +#define WLED_ENABLE_MQTT //saves 12kb +#define WLED_ENABLE_ADALIGHT //saves 500b only #define WLED_DISABLE_FILESYSTEM //SPIFFS is not used by any WLED feature yet //#define WLED_ENABLE_FS_SERVING //Enable sending html file from SPIFFS before serving progmem version @@ -31,7 +32,6 @@ //to toggle usb serial debug (un)comment the following line //#define WLED_DEBUG - //library inclusions #include #ifdef ESP8266 @@ -84,6 +84,7 @@ #endif #ifdef ARDUINO_ARCH_ESP32 + #undef WLED_USE_ANALOG_LEDS // Solid RGBW not implemented for ESP32 yet /*#ifndef WLED_DISABLE_INFRARED #include #endif*/ //there are issues with ESP32 infrared, so it is disabled for now @@ -97,8 +98,8 @@ //version code in format yymmddb (b = daily build) -#define VERSION 1912051 -char versionString[] = "0.9.0-dev"; +#define VERSION 2001051 +char versionString[] = "0.9.0-b2"; //AP and OTA default passwords (for maximum change them!) @@ -147,7 +148,6 @@ bool fadeTransition = true; //enable crossfading color transit bool enableSecTransition = true; //also enable transition for secondary color uint16_t transitionDelay = 750; //default crossfade duration in ms -//bool strip.reverseMode = false; //flip entire LED strip (reverses all effect directions) --> edit in WS2812FX.h bool skipFirstLed = false; //ignore first LED in strip (useful if you need the LED as signal repeater) uint8_t spacing = 0; //disables N LEDs between active nodes. (Useful for spacing out lights for more traditional christmas light look) uint8_t group = 1; //Group LEDs into one logical LED @@ -156,6 +156,7 @@ byte briMultiplier = 100; //% of brightness to set (to limit //User Interface CONFIG char serverDescription[33] = "WLED"; //Name of module +bool syncToggleReceive = false; //UIs which only have a single button for sync should toggle send+receive if this is true, only send otherwise //Sync CONFIG @@ -189,6 +190,7 @@ bool arlsForceMaxBri = false; //enable to force max brightness i uint16_t e131Universe = 1; //settings for E1.31 (sACN) protocol bool e131Multicast = false; +bool mqttEnabled = false; char mqttDeviceTopic[33] = ""; //main MQTT topic (individual per device, default is wled/mac) char mqttGroupTopic[33] = "wled/all"; //second MQTT topic (for example to group devices) char mqttServer[33] = ""; //both domains and IPs should work (no SSL) @@ -329,11 +331,6 @@ byte overlayCurrent = overlayDefault; byte overlaySpeed = 200; unsigned long overlayRefreshMs = 200; unsigned long overlayRefreshedTime; -int overlayArr[6]; -uint16_t overlayDur[6]; -uint16_t overlayPauseDur[6]; -int nixieClockI = -1; -bool nixiePause = false; //cronixie byte dP[]{0,0,0,0,0,0}; @@ -428,6 +425,7 @@ AsyncMqttClient* mqtt = NULL; void colorFromUint32(uint32_t,bool=false); void serveMessage(AsyncWebServerRequest*,uint16_t,String,String,byte); void handleE131Packet(e131_packet_t*, IPAddress); +void handleOverlayDraw(); #define E131_MAX_UNIVERSE_COUNT 9 @@ -483,7 +481,7 @@ void reset() //append new c string to temp buffer efficiently -bool oappend(char* txt) +bool oappend(const char* txt) { uint16_t len = strlen(txt); if (olen + len >= OMAX) return false; //buffer full diff --git a/wled00/wled01_eeprom.ino b/wled00/wled01_eeprom.ino index 1e3d26c82..da6ae783f 100644 --- a/wled00/wled01_eeprom.ino +++ b/wled00/wled01_eeprom.ino @@ -6,7 +6,7 @@ #define EEPSIZE 2560 //eeprom Version code, enables default settings instead of 0 init on update -#define EEPVER 13 +#define EEPVER 14 //0 -> old version, default //1 -> 0.4p 1711272 and up //2 -> 0.4p 1711302 and up @@ -20,7 +20,8 @@ //10-> 0.8.2 //11-> 0.8.5-dev #mqttauth @TimothyBrown //12-> 0.8.7-dev -//13-> 0.9.0 +//13-> 0.9.0-dev +//14-> 0.9.0-b1 void commit() { @@ -152,7 +153,7 @@ void saveSettingsToEEPROM() EEPROM.write(394, abs(utcOffsetSecs) & 0xFF); EEPROM.write(395, (abs(utcOffsetSecs) >> 8) & 0xFF); EEPROM.write(396, (utcOffsetSecs<0)); //is negative - //397 was initLedsLast + EEPROM.write(397, syncToggleReceive); EEPROM.write(398, (ledCount >> 8) & 0xFF); EEPROM.write(399, !enableSecTransition); @@ -242,6 +243,7 @@ void saveSettingsToEEPROM() EEPROM.write(2290 + i, timerMacro[i] ); } + EEPROM.write(2299, mqttEnabled); writeStringToEEPROM(2300, mqttServer, 32); writeStringToEEPROM(2333, mqttDeviceTopic, 32); writeStringToEEPROM(2366, mqttGroupTopic, 32); @@ -463,6 +465,14 @@ void loadSettingsFromEEPROM(bool first) { readStringFromEEPROM(990, ntpServerName, 32); } + if (lastEEPROMversion > 13) + { + mqttEnabled = EEPROM.read(2299); + syncToggleReceive = EEPROM.read(397); + } else { + mqttEnabled = true; + syncToggleReceive = false; + } receiveDirect = !EEPROM.read(2200); notifyMacro = EEPROM.read(2201); @@ -497,6 +507,7 @@ void loadSettingsFromEEPROM(bool first) //1024-2047 reserved readStringFromEEPROM(2220, blynkApiKey, 35); + if (strlen(blynkApiKey) < 25) blynkApiKey[0] = 0; //user MOD memory //2944 - 3071 reserved @@ -552,6 +563,7 @@ bool applyPreset(byte index, bool loadBri = true, bool loadCol = true, bool load col[j] = EEPROM.read(i+j+2); colSec[j] = EEPROM.read(i+j+6); } + strip.setColor(2, EEPROM.read(i+12), EEPROM.read(i+13), EEPROM.read(i+14), EEPROM.read(i+15)); //tertiary color } if (loadFX) { @@ -589,6 +601,12 @@ void savePreset(byte index) } EEPROM.write(i+10, effectCurrent); EEPROM.write(i+11, effectSpeed); + + uint32_t colTer = strip.getSegment(strip.getMainSegmentId()).colors[2]; + EEPROM.write(i+12, (colTer >> 16) & 0xFF); + EEPROM.write(i+13, (colTer >> 8) & 0xFF); + EEPROM.write(i+14, (colTer >> 0) & 0xFF); + EEPROM.write(i+15, (colTer >> 24) & 0xFF); EEPROM.write(i+16, effectIntensity); EEPROM.write(i+17, effectPalette); diff --git a/wled00/wled02_xml.ino b/wled00/wled02_xml.ino index 5adbd9002..b758bbcfd 100644 --- a/wled00/wled02_xml.ino +++ b/wled00/wled02_xml.ino @@ -82,7 +82,7 @@ char* XML_response(AsyncWebServerRequest *request, char* dest = nullptr) } //append a numeric setting to string buffer -void sappend(char stype, char* key, int val) +void sappend(char stype, const char* key, int val) { char ds[] = "d.Sf."; @@ -113,7 +113,7 @@ void sappend(char stype, char* key, int val) } //append a string setting to buffer -void sappends(char stype, char* key, char* val) +void sappends(char stype, const char* key, char* val) { switch(stype) { @@ -244,6 +244,7 @@ void getSettingsJS(byte subPage, char* dest) if (subPage == 3) { sappends('s',"DS",serverDescription); + sappend('c',"ST",syncToggleReceive); } if (subPage == 4) @@ -270,6 +271,9 @@ void getSettingsJS(byte subPage, char* dest) sappends('s',"AI",alexaInvocationName); sappend('c',"SA",notifyAlexa); sappends('s',"BK",(char*)((blynkEnabled)?"Hidden":"")); + + #ifdef WLED_ENABLE_MQTT + sappend('c',"MQ",mqttEnabled); sappends('s',"MS",mqttServer); sappend('v',"MQPORT",mqttPort); sappends('s',"MQUSER",mqttUser); @@ -282,6 +286,11 @@ void getSettingsJS(byte subPage, char* dest) sappends('s',"MQCID",mqttClientID); sappends('s',"MD",mqttDeviceTopic); sappends('s',"MG",mqttGroupTopic); + #endif + + #ifdef WLED_DISABLE_HUESYNC + sappends('m',"(\"hms\")[0]","Unsupported in build"); + #else sappend('v',"H0",hueIP[0]); sappend('v',"H1",hueIP[1]); sappend('v',"H2",hueIP[2]); @@ -293,6 +302,7 @@ void getSettingsJS(byte subPage, char* dest) sappend('c',"HB",hueApplyBri); sappend('c',"HC",hueApplyColor); sappends('m',"(\"hms\")[0]",hueError); + #endif } if (subPage == 5) diff --git a/wled00/wled03_set.ino b/wled00/wled03_set.ino index 9762ffba1..5504cc265 100644 --- a/wled00/wled03_set.ino +++ b/wled00/wled03_set.ino @@ -14,6 +14,16 @@ void _setRandomColor(bool _sec,bool fromButton=false) } +bool isAsterisksOnly(const char* str, byte maxLen) +{ + for (byte i = 0; i < maxLen; i++) { + if (str[i] == 0) break; + if (str[i] != '*') return false; + } + return true; +} + + //called upon POST settings form submit void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) { @@ -24,7 +34,8 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (subPage == 1) { strlcpy(clientSSID,request->arg("CS").c_str(), 33); - if (request->arg("CP").charAt(0) != '*') strlcpy(clientPass, request->arg("CP").c_str(), 65); + + if (!isAsterisksOnly(request->arg("CP").c_str(), 65)) strlcpy(clientPass, request->arg("CP").c_str(), 65); strlcpy(cmDNS, request->arg("CM").c_str(), 33); @@ -32,7 +43,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) strlcpy(apSSID, request->arg("AS").c_str(), 33); apHide = request->hasArg("AH"); int passlen = request->arg("AP").length(); - if (passlen == 0 || (passlen > 7 && request->arg("AP").charAt(0) != '*')) strlcpy(apPass, request->arg("AP").c_str(), 65); + if (passlen == 0 || (passlen > 7 && !isAsterisksOnly(request->arg("AP").c_str(), 65))) strlcpy(apPass, request->arg("AP").c_str(), 65); int t = request->arg("AC").toInt(); if (t > 0 && t < 14) apChannel = t; char k[3]; k[2] = 0; @@ -103,6 +114,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (subPage == 3) { strlcpy(serverDescription, request->arg("DS").c_str(), 33); + syncToggleReceive = request->hasArg("ST"); } //SYNC @@ -142,15 +154,19 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) strlcpy(blynkApiKey, request->arg("BK").c_str(), 36); initBlynk(blynkApiKey); } + #ifdef WLED_ENABLE_MQTT + mqttEnabled = request->hasArg("MQ"); strlcpy(mqttServer, request->arg("MS").c_str(), 33); t = request->arg("MQPORT").toInt(); if (t > 0) mqttPort = t; strlcpy(mqttUser, request->arg("MQUSER").c_str(), 41); - if (request->arg("MQPASS").charAt(0) != '*') strlcpy(mqttPass, request->arg("MQPASS").c_str(), 41); + if (!isAsterisksOnly(request->arg("MQPASS").c_str(), 41)) strlcpy(mqttPass, request->arg("MQPASS").c_str(), 41); strlcpy(mqttClientID, request->arg("MQCID").c_str(), 41); strlcpy(mqttDeviceTopic, request->arg("MD").c_str(), 33); strlcpy(mqttGroupTopic, request->arg("MG").c_str(), 33); + #endif + #ifndef WLED_DISABLE_HUESYNC for (int i=0;i<4;i++){ String a = "H"+String(i); hueIP[i] = request->arg(a).toInt(); @@ -168,6 +184,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) huePollingEnabled = request->hasArg("HP"); hueStoreAllowed = true; reconnectHue(); + #endif } //TIME @@ -184,7 +201,6 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) if (request->hasArg("OL")){ overlayDefault = request->arg("OL").toInt(); - if (overlayCurrent != overlayDefault) strip.unlockAll(); overlayCurrent = overlayDefault; } @@ -443,29 +459,6 @@ bool handleSet(AsyncWebServerRequest *request, const String& req) pos = req.indexOf("OL="); if (pos > 0) { overlayCurrent = getNumVal(&req, pos); - strip.unlockAll(); - } - - //(un)lock pixel (ranges) - pos = req.indexOf("&L="); - if (pos > 0) { - uint16_t index = getNumVal(&req, pos); - pos = req.indexOf("L2="); - bool unlock = req.indexOf("UL") > 0; - if (pos > 0) { - uint16_t index2 = getNumVal(&req, pos); - if (unlock) { - strip.unlockRange(index, index2); - } else { - strip.lockRange(index, index2); - } - } else { - if (unlock) { - strip.unlock(index); - } else { - strip.lock(index); - } - } } //apply macro @@ -606,6 +599,10 @@ bool handleSet(AsyncWebServerRequest *request, const String& req) //cronixie #ifndef WLED_DISABLE_CRONIXIE + //mode, 1 countdown + pos = req.indexOf("NM="); + if (pos > 0) countdownMode = (req.charAt(pos+3) != '0'); + pos = req.indexOf("NX="); //sets digits to code if (pos > 0) { strlcpy(cronixieDisplay, req.substring(pos + 3, pos + 9).c_str(), 6); @@ -620,9 +617,6 @@ bool handleSet(AsyncWebServerRequest *request, const String& req) overlayRefreshedTime = 0; } #endif - //mode, 1 countdown - pos = req.indexOf("NM="); - if (pos > 0) countdownMode = (req.charAt(pos+3) != '0'); pos = req.indexOf("U0="); //user var 0 if (pos > 0) { diff --git a/wled00/wled05_init.ino b/wled00/wled05_init.ino index 32511be7c..f31383f29 100644 --- a/wled00/wled05_init.ino +++ b/wled00/wled05_init.ino @@ -97,6 +97,7 @@ void wledInit() void beginStrip() { // Initialize NeoPixel Strip and button + strip.setShowCallback(handleOverlayDraw); #ifdef BTNPIN pinMode(BTNPIN, INPUT_PULLUP); @@ -141,7 +142,10 @@ void initAP(bool resetAP=false){ if (udpPort > 0 && udpPort != ntpLocalPort) { udpConnected = notifierUdp.begin(udpPort); - if (udpConnected && udpRgbPort != udpPort) udpRgbConnected = rgbUdp.begin(udpRgbPort); + } + if (udpRgbPort > 0 && udpRgbPort != ntpLocalPort && udpRgbPort != udpPort) + { + udpRgbConnected = rgbUdp.begin(udpRgbPort); } dnsServer.setErrorReplyCode(DNSReplyCode::NoError); @@ -232,7 +236,7 @@ void initInterfaces() { if (ntpEnabled) ntpConnected = ntpUdp.begin(ntpLocalPort); initBlynk(blynkApiKey); - Serial.println(e131.begin((e131Multicast) ? E131_MULTICAST : E131_UNICAST , e131Universe, E131_MAX_UNIVERSE_COUNT)); + e131.begin((e131Multicast) ? E131_MULTICAST : E131_UNICAST , e131Universe, E131_MAX_UNIVERSE_COUNT); reconnectHue(); initMqtt(); interfacesInited = true; @@ -240,11 +244,25 @@ void initInterfaces() { } byte stacO = 0; +uint32_t lastHeap; +unsigned long heapTime = 0; void handleConnection() { - //TODO: reconnect if heap <8000 if (millis() < 2000 && (!WLED_WIFI_CONFIGURED || apBehavior == 2)) return; if (lastReconnectAttempt == 0) initConnection(); + + //reconnect WiFi to clear stale allocations if heap gets too low + if (millis() - heapTime > 5000) + { + uint32_t heap = ESP.getFreeHeap(); + if (heap < 9000 && lastHeap < 9000) { + DEBUG_PRINT("Heap too low! "); + DEBUG_PRINTLN(heap); + forceReconnect = true; + } + lastHeap = heap; + heapTime = millis(); + } byte stac = 0; if (apActive) { diff --git a/wled00/wled07_notify.ino b/wled00/wled07_notify.ino index df3820acf..8bb739e05 100644 --- a/wled00/wled07_notify.ino +++ b/wled00/wled07_notify.ino @@ -38,7 +38,7 @@ void notify(byte callMode, bool followUp=false) //0: old 1: supports white 2: supports secondary color //3: supports FX intensity, 24 byte packet 4: supports transitionDelay 5: sup palette //6: supports timebase syncing, 29 byte packet 7: supports tertiary color - udpOut[11] = 6; + udpOut[11] = 7; udpOut[12] = colSec[0]; udpOut[13] = colSec[1]; udpOut[14] = colSec[2]; @@ -47,10 +47,12 @@ void notify(byte callMode, bool followUp=false) udpOut[17] = (transitionDelay >> 0) & 0xFF; udpOut[18] = (transitionDelay >> 8) & 0xFF; udpOut[19] = effectPalette; - /*udpOut[20] = colTer[0]; - udpOut[21] = colTer[1]; - udpOut[22] = colTer[2]; - udpOut[23] = colTer[3];*/ + uint32_t colTer = strip.getSegment(strip.getMainSegmentId()).colors[2]; + udpOut[20] = (colTer >> 16) & 0xFF; + udpOut[21] = (colTer >> 8) & 0xFF; + udpOut[22] = (colTer >> 0) & 0xFF; + udpOut[23] = (colTer >> 24) & 0xFF; + udpOut[24] = followUp; uint32_t t = millis() + strip.timebase; udpOut[25] = (t >> 24) & 0xFF; @@ -77,7 +79,6 @@ void arlsLock(uint32_t timeoutMs) { strip.setPixelColor(i,0,0,0,0); } - strip.unlockAll(); realtimeActive = true; } realtimeTimeout = millis() + timeoutMs; @@ -120,13 +121,11 @@ void handleNotifications() { e131NewData = false; strip.show(); - Serial.println("Show"); } //unlock strip when realtime UDP times out if (realtimeActive && millis() > realtimeTimeout) { - //strip.unlockAll(); strip.setBrightness(bri); realtimeActive = false; //strip.setMode(effectCurrent); @@ -180,7 +179,7 @@ void handleNotifications() col[0] = udpIn[3]; col[1] = udpIn[4]; col[2] = udpIn[5]; - if (udpIn[11] > 0) //check if sending modules white val is inteded + if (udpIn[11] > 0) //sending module's white val is intended { col[3] = udpIn[10]; if (udpIn[11] > 1) @@ -193,17 +192,14 @@ void handleNotifications() if (udpIn[11] > 5) { uint32_t t = (udpIn[25] << 24) | (udpIn[26] << 16) | (udpIn[27] << 8) | (udpIn[28]); - t -= 2; + t += 2; t -= millis(); strip.timebase = t; } - /*if (udpIn[11] > 6) + if (udpIn[11] > 6) { - colTer[0] = udpIn[20]; - colTer[1] = udpIn[21]; - colTer[2] = udpIn[22]; - colSec[3] = udpIn[23]; - }*/ + strip.setColor(2, udpIn[20], udpIn[21], udpIn[22], udpIn[23]); //tertiary color + } } } diff --git a/wled00/wled08_led.ino b/wled00/wled08_led.ino index f9852c043..2bbee9c3d 100644 --- a/wled00/wled08_led.ino +++ b/wled00/wled08_led.ino @@ -12,6 +12,13 @@ void setValuesFromMainSeg() effectPalette = seg.palette; } + +void resetTimebase() +{ + strip.timebase = 0 - millis(); +} + + void toggleOnOff() { if (bri == 0) @@ -81,7 +88,7 @@ void colorUpdated(int callMode) { //call for notifier -> 0: init 1: direct change 2: button 3: notification 4: nightlight 5: other (No notification) // 6: fx changed 7: hue 8: preset cycle 9: blynk 10: alexa - if (callMode != 1 && callMode != 5) strip.applyToAllSelected = true; //if not from JSON api, which directly sets segments + if (callMode != 0 && callMode != 1 && callMode != 5) strip.applyToAllSelected = true; //if not from JSON api, which directly sets segments bool fxChanged = strip.setEffectConfig(effectCurrent, effectSpeed, effectIntensity, effectPalette); if (!colorChanged()) @@ -113,6 +120,7 @@ void colorUpdated(int callMode) colIT[i] = col[i]; colSecIT[i] = colSec[i]; } + if (briT == 0 && callMode != 3) resetTimebase(); briIT = bri; if (bri > 0) briLast = bri; diff --git a/wled00/wled10_ntp.ino b/wled00/wled10_ntp.ino index d665943d6..bf8df064d 100644 --- a/wled00/wled10_ntp.ino +++ b/wled00/wled10_ntp.ino @@ -25,6 +25,8 @@ TimeChangeRule CDT = {Second, Sun, Mar, 2, -300 }; //Daylight time = UTC - 5 TimeChangeRule CST = {First, Sun, Nov, 2, -360 }; //Standard time = UTC - 6 hours Timezone tzUSCentral(CDT, CST); +Timezone tzCASaskatchewan(CST, CST); //Central without DST + TimeChangeRule MDT = {Second, Sun, Mar, 2, -360 }; //Daylight time = UTC - 6 hours TimeChangeRule MST = {First, Sun, Nov, 2, -420 }; //Standard time = UTC - 7 hours Timezone tzUSMountain(MDT, MST); @@ -55,7 +57,7 @@ Timezone tzNK(NKST, NKST); TimeChangeRule IST = {Last, Sun, Mar, 1, 330}; // India Standard Time = UTC + 5.5 hours Timezone tzIndia(IST, IST); -Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia}; +Timezone* timezones[] = {&tzUTC, &tzUK, &tzEUCentral, &tzEUEastern, &tzUSEastern, &tzUSCentral, &tzUSMountain, &tzUSArizona, &tzUSPacific, &tzChina, &tzJapan, &tzAUEastern, &tzNZ, &tzNK, &tzIndia, &tzCASaskatchewan}; void handleNetworkTime() { @@ -161,13 +163,16 @@ void setCountdown() //returns true if countdown just over bool checkCountdown() { - long diff = countdownTime - now(); - local = abs(diff); - if (diff <0 && !countdownOverTriggered) - { - if (macroCountdown != 0) applyMacro(macroCountdown); - countdownOverTriggered = true; - return true; + unsigned long n = now(); + local = countdownTime - n; + if (n > countdownTime) { + local = n - countdownTime; + if (!countdownOverTriggered) + { + if (macroCountdown != 0) applyMacro(macroCountdown); + countdownOverTriggered = true; + return true; + } } return false; } diff --git a/wled00/wled11_ol.ino b/wled00/wled11_ol.ino index 6cf060c30..cfe8a1f9f 100644 --- a/wled00/wled11_ol.ino +++ b/wled00/wled11_ol.ino @@ -1,6 +1,7 @@ /* * Used to draw clock overlays over the strip */ + void initCronixie() { if (overlayCurrent == 3 && !cronixieInit) @@ -17,107 +18,6 @@ void initCronixie() } -void _nixieDisplay(int num[], uint16_t dur[], uint16_t pausedur[], byte cnt) -{ - strip.setRange(overlayMin, overlayMax, 0); - if (num[nixieClockI] >= 0 && !nixiePause) - { - strip.setIndividual(num[nixieClockI],((uint32_t)colT[3] << 24)| ((uint32_t)colT[0] << 16) | ((uint32_t)colT[1] << 8) | colT[2]); - strip.unlock(num[nixieClockI]); - } - if (!nixiePause) - { - overlayRefreshMs = dur[nixieClockI]; - } else - { - overlayRefreshMs = pausedur[nixieClockI]; - } - if (pausedur[nixieClockI] > 0 && !nixiePause) - { - nixiePause = true; - } else { - if (nixieClockI < cnt -1) - { - nixieClockI++; - } else - { - nixieClockI = -1; - } - nixiePause = false; - } -} - -void _nixieNumber(int number, int dur) -{ - if (nixieClockI < 0) - { - DEBUG_PRINT(number); - int digitCnt = -1; - int digits[4]; - digits[3] = number/1000; - digits[2] = (number/100)%10; - digits[1] = (number/10)%10; - digits[0] = number%10; - if (number > 999) //four digits - { - digitCnt = 4; - } else if (number > 99) //three digits - { - digitCnt = 3; - } else if (number > 9) //two digits - { - digitCnt = 2; - } else { //single digit - digitCnt = 1; - } - DEBUG_PRINT(" "); - for (int i = 0; i < digitCnt; i++) - { - DEBUG_PRINT(digits[i]); - overlayArr[digitCnt-1-i] = digits[i]; - overlayDur[digitCnt-1-i] = ((dur/4)*3)/digitCnt; - overlayPauseDur[digitCnt-1-i] = 0; - } - DEBUG_PRINTLN(" "); - for (int i = 1; i < digitCnt; i++) - { - if (overlayArr[i] == overlayArr[i-1]) - { - overlayPauseDur[i-1] = dur/12; - overlayDur[i-1] = overlayDur[i-1]-dur/12; - } - } - for (int i = digitCnt; i < 6; i++) - { - overlayArr[i] = -1; - overlayDur[i] = 0; - overlayPauseDur[i] = 0; - } - overlayPauseDur[5] = dur/4; - for (int i = 0; i < 6; i++) - { - if (overlayArr[i] != -1) - { - overlayArr[i] = overlayArr[i] + overlayMin; - } - } - for (int i = 0; i <6; i++) - { - DEBUG_PRINT(overlayArr[i]); - DEBUG_PRINT(" "); - DEBUG_PRINT(overlayDur[i]); - DEBUG_PRINT(" "); - DEBUG_PRINT(overlayPauseDur[i]); - DEBUG_PRINT(" "); - } - DEBUG_PRINTLN(" "); - nixieClockI = 0; - } else { - _nixieDisplay(overlayArr, overlayDur, overlayPauseDur, 6); - } -} - - void handleOverlays() { if (millis() - overlayRefreshedTime > overlayRefreshMs) @@ -125,22 +25,16 @@ void handleOverlays() initCronixie(); updateLocalTime(); checkTimers(); - switch (overlayCurrent) - { - case 0: break;//no overlay - case 1: _overlayAnalogClock(); break;//2 analog clock - case 2: _overlayNixieClock(); break;//nixie 1-digit - case 3: _overlayCronixie();//Diamex cronixie clock kit - } - if (!countdownMode || overlayCurrent < 2) checkCountdown(); //countdown macro activation must work + checkCountdown(); + if (overlayCurrent == 3) _overlayCronixie();//Diamex cronixie clock kit overlayRefreshedTime = millis(); } } + void _overlayAnalogClock() { int overlaySize = overlayMax - overlayMin +1; - strip.unlockAll(); if (countdownMode) { _overlayAnalogCountdown(); return; @@ -173,115 +67,19 @@ void _overlayAnalogClock() { pix = analogClock12pixel + round((overlaySize / 12.0) *i); if (pix > overlayMax) pix -= overlaySize; - strip.setIndividual(pix, 0x00FFAA); + strip.setPixelColor(pix, 0x00FFAA); } } - if (!analogClockSecondsTrail) strip.setIndividual(secondPixel, 0xFF0000); - strip.setIndividual(minutePixel, 0x00FF00); - strip.setIndividual(hourPixel, 0x0000FF); + if (!analogClockSecondsTrail) strip.setPixelColor(secondPixel, 0xFF0000); + strip.setPixelColor(minutePixel, 0x00FF00); + strip.setPixelColor(hourPixel, 0x0000FF); overlayRefreshMs = 998; } -void _overlayNixieClock() -{ - #ifdef WLED_DISABLE_CRONIXIE - if (countdownMode) checkCountdown(); - #else - - if (countdownMode) - { - _overlayNixieCountdown(); return; - } - if (nixieClockI < 0) - { - overlayArr[0] = hour(local); - if (useAMPM) overlayArr[0] = overlayArr[0]%12; - overlayArr[1] = -1; - if (overlayArr[0] > 9) - { - overlayArr[1] = overlayArr[0]%10; - overlayArr[0] = overlayArr[0]/10; - } - overlayArr[2] = minute(local); - overlayArr[3] = overlayArr[2]%10; - overlayArr[2] = overlayArr[2]/10; - overlayArr[4] = -1; - overlayArr[5] = -1; - if (analogClockSecondsTrail) - { - overlayArr[4] = second(local); - overlayArr[5] = overlayArr[4]%10; - overlayArr[4] = overlayArr[4]/10; - } - for (int i = 0; i < 6; i++) - { - if (overlayArr[i] != -1) - { - overlayArr[i] = overlayArr[i] + overlayMin; - } - } - overlayDur[0] = 12 + 12*(255 - overlaySpeed); - if (overlayArr[1] == overlayArr[0]) - { - overlayPauseDur[0] = 3 + 3*(255 - overlaySpeed); - } else - { - overlayPauseDur[0] = 0; - } - if (overlayArr[1] == -1) - { - overlayDur[1] = 0; - } else - { - overlayDur[1] = 12 + 12*(255 - overlaySpeed); - } - overlayPauseDur[1] = 9 + 9*(255 - overlaySpeed); - - overlayDur[2] = 12 + 12*(255 - overlaySpeed); - if (overlayArr[2] == overlayArr[3]) - { - overlayPauseDur[2] = 3 + 3*(255 - overlaySpeed); - } else - { - overlayPauseDur[2] = 0; - } - overlayDur[3] = 12 + 12*(255 - overlaySpeed); - overlayPauseDur[3] = 9 + 9*(255 - overlaySpeed); - - if (overlayArr[4] == -1) - { - overlayDur[4] = 0; - overlayPauseDur[4] = 0; - overlayDur[5] = 0; - } else - { - overlayDur[4] = 12 + 12*(255 - overlaySpeed); - if (overlayArr[5] == overlayArr[4]) - { - overlayPauseDur[4] = 3 + 3*(255 - overlaySpeed); - } else - { - overlayPauseDur[4] = 0; - } - overlayDur[5] = 12 + 12*(255 - overlaySpeed); - } - overlayPauseDur[5] = 22 + 22*(255 - overlaySpeed); - - nixieClockI = 0; - } else - { - _nixieDisplay(overlayArr, overlayDur, overlayPauseDur, 6); - } - #endif -} void _overlayAnalogCountdown() { - strip.unlockAll(); - if (now() >= countdownTime) - { - checkCountdown(); - } else + if (now() < countdownTime) { long diff = countdownTime - now(); double pval = 60; @@ -321,31 +119,7 @@ void _overlayAnalogCountdown() } -void _overlayNixieCountdown() -{ - if (now() >= countdownTime) - { - if (checkCountdown()) - { - _nixieNumber(2019, 2019); - } - } else - { - long diff = countdownTime - now(); - if (diff > 86313600L) //display in years if more than 999 days - { - diff = diff/31557600L; - } else if (diff > 3596400) //display in days if more than 999 hours - { - diff = diff/86400; - } else if (diff > 59940) //display in hours if more than 999 minutes - { - diff = diff/1440; - } else if (diff > 999) //display in minutes if more than 999 seconds - { - diff = diff/60; - } - _nixieNumber(diff, 800); - } - overlayRefreshMs = 998; +void handleOverlayDraw() { + if (overlayCurrent != 1) return; //only analog clock + _overlayAnalogClock(); } diff --git a/wled00/wled12_alexa.ino b/wled00/wled12_alexa.ino index b858d2382..c3bc01ab0 100644 --- a/wled00/wled12_alexa.ino +++ b/wled00/wled12_alexa.ino @@ -62,10 +62,11 @@ void onAlexaChange(EspalexaDevice* dev) } else //color { uint32_t color = espalexaDevice->getRGB(); + col[3] = ((color >> 24) & 0xFF); // white color from Alexa is "pure white only" col[0] = ((color >> 16) & 0xFF); col[1] = ((color >> 8) & 0xFF); col[2] = (color & 0xFF); - if (useRGBW) colorRGBtoRGBW(col); + if (useRGBW && col[3] == 0) colorRGBtoRGBW(col); // do not touch white value if EspalexaDevice.cpp did set the white channel colorUpdated(10); } } diff --git a/wled00/wled13_cronixie.ino b/wled00/wled13_cronixie.ino index dac324751..de89aede2 100644 --- a/wled00/wled13_cronixie.ino +++ b/wled00/wled13_cronixie.ino @@ -145,9 +145,7 @@ void setCronixie() void _overlayCronixie() { - if (countdownMode) checkCountdown(); #ifndef WLED_DISABLE_CRONIXIE - byte h = hour(local); byte h0 = h; byte m = minute(local); diff --git a/wled00/wled14_colors.ino b/wled00/wled14_colors.ino index fae76d4b0..aaa92cad7 100644 --- a/wled00/wled14_colors.ino +++ b/wled00/wled14_colors.ino @@ -165,6 +165,6 @@ void colorRGBtoRGBW(byte* rgb) //rgb to rgbw (http://codewelt.com/rgbw) float low = minf(rgb[0],minf(rgb[1],rgb[2])); float high = maxf(rgb[0],maxf(rgb[1],rgb[2])); if (high < 0.1f) return; - float sat = 255.0f * ((high - low) / high); + float sat = 100.0f * ((high - low) / high);; // maximum saturation is 100 (corrected from 255) rgb[3] = (byte)((255.0f - sat) / 255.0f * (rgb[0] + rgb[1] + rgb[2]) / 3); } diff --git a/wled00/wled17_mqtt.ino b/wled00/wled17_mqtt.ino index c725eed6c..efc308a9c 100644 --- a/wled00/wled17_mqtt.ino +++ b/wled00/wled17_mqtt.ino @@ -2,6 +2,8 @@ * MQTT communication protocol for home automation */ +#ifdef WLED_ENABLE_MQTT + void parseMQTTBriPayload(char* payload) { if (strstr(payload, "ON") || strstr(payload, "on") || strstr(payload, "true")) {bri = briLast; colorUpdated(1);} @@ -104,7 +106,7 @@ void publishMqtt() bool initMqtt() { lastMqttReconnectAttempt = millis(); - if (mqttServer[0] == 0 || !WLED_CONNECTED) return false; + if (!mqttEnabled || mqttServer[0] == 0 || !WLED_CONNECTED) return false; if (mqtt == nullptr) { mqtt = new AsyncMqttClient(); @@ -130,3 +132,8 @@ bool initMqtt() mqtt->connect(); return true; } + +#else +bool initMqtt(){return false;} +void publishMqtt(){} +#endif diff --git a/wled00/wled18_server.ino b/wled00/wled18_server.ino index 953fcdcd5..f7162d3e5 100644 --- a/wled00/wled18_server.ino +++ b/wled00/wled18_server.ino @@ -68,7 +68,7 @@ void initServer() server.on("/settings/wifi", HTTP_POST, [](AsyncWebServerRequest *request){ if (!(wifiLock && otaLock)) handleSettingsSet(request, 1); - serveMessage(request, 200,"WiFi settings saved.","Reconnecting now...",129); + serveMessage(request, 200,"WiFi settings saved.","Please connect to the new IP (if changed)",129); forceReconnect = true; }); @@ -79,7 +79,7 @@ void initServer() server.on("/settings/ui", HTTP_POST, [](AsyncWebServerRequest *request){ handleSettingsSet(request, 3); - serveMessage(request, 200,"UI settings saved.","Reloading to apply theme...",122); + serveMessage(request, 200,"UI settings saved.","Redirecting...",1); }); server.on("/settings/sync", HTTP_POST, [](AsyncWebServerRequest *request){ @@ -94,7 +94,7 @@ void initServer() server.on("/settings/sec", HTTP_POST, [](AsyncWebServerRequest *request){ handleSettingsSet(request, 6); - if (!doReboot) serveMessage(request, 200,"Security settings saved.","Rebooting now, please wait ~10 seconds...",129); + if (!doReboot) serveMessage(request, 200,"Security settings saved.","Rebooting, please wait ~10 seconds...",129); doReboot = true; }); @@ -102,9 +102,20 @@ void initServer() serveJson(request); }); - AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler("/json", [](AsyncWebServerRequest *request, JsonObject root) { - if (root.isNull()){request->send(500, "application/json", "{\"error\":\"Parsing failed\"}"); return;} - if (deserializeState(root)) { serveJson(request); return; } //if JSON contains "v" (verbose response) + AsyncCallbackJsonWebHandler* handler = new AsyncCallbackJsonWebHandler("/json", [](AsyncWebServerRequest *request) { + bool verboseResponse = false; + { //scope JsonDocument so it releases its buffer + DynamicJsonDocument jsonBuffer(8192); + DeserializationError error = deserializeJson(jsonBuffer, (uint8_t*)(request->_tempObject)); + JsonObject root = jsonBuffer.as(); + if (error || root.isNull()) { + request->send(400, "application/json", "{\"error\":10}"); return; + } + verboseResponse = deserializeState(root); + } + if (verboseResponse) { //if JSON contains "v" + serveJson(request); return; + } request->send(200, "application/json", "{\"success\":true}"); }); server.addHandler(handler); diff --git a/wled00/wled19_json.ino b/wled00/wled19_json.ino index cf3f6be8f..5e7b461e1 100644 --- a/wled00/wled19_json.ino +++ b/wled00/wled19_json.ino @@ -86,8 +86,8 @@ bool deserializeState(JsonObject root) int ps = root["ps"] | -1; if (ps >= 0) applyPreset(ps); - int cy = root["pl"] | -1; - presetCyclingEnabled = (cy >= 0); + int cy = root["pl"] | -2; + if (cy > -2) presetCyclingEnabled = (cy >= 0); JsonObject ccnf = root["ccnf"]; presetCycleMin = ccnf["min"] | presetCycleMin; presetCycleMax = ccnf["max"] | presetCycleMax; @@ -121,15 +121,23 @@ bool deserializeState(JsonObject root) if (segVar.is()) { int id = segVar["id"] | -1; + if (id < 0) { //set all selected segments + bool didSet = false; + byte lowestActive = 99; for (byte s = 0; s < strip.getMaxSegments(); s++) { WS2812FX::Segment sg = strip.getSegment(s); - if (sg.isActive() && sg.isSelected()) + if (sg.isActive()) { - deserializeSegment(segVar, s); + if (lowestActive == 99) lowestActive = s; + if (sg.isSelected()) { + deserializeSegment(segVar, s); + didSet = true; + } } } + if (!didSet && lowestActive < strip.getMaxSegments()) deserializeSegment(segVar, lowestActive); } else { //set only the segment with the specified ID deserializeSegment(segVar, it); } @@ -142,7 +150,6 @@ bool deserializeState(JsonObject root) } } - //fromJson = true; colorUpdated(noNotification ? 5:1); ps = root["psave"] | -1; @@ -236,9 +243,11 @@ void serializeInfo(JsonObject root) leds_pin.add(LEDPIN); leds["pwr"] = strip.currentMilliamps; - leds["maxpwr"] = strip.ablMilliampsMax; + leds["maxpwr"] = (strip.currentMilliamps)? strip.ablMilliampsMax : 0; leds["maxseg"] = strip.getMaxSegments(); leds["seglock"] = false; //will be used in the future to prevent modifications to segment config + + root["str"] = syncToggleReceive; root["name"] = serverDescription; root["udpport"] = udpPort; @@ -295,7 +304,7 @@ void serializeInfo(JsonObject root) root["brand"] = "WLED"; root["product"] = "DIY light"; - root["btype"] = "dev"; + root["btype"] = "src"; root["mac"] = escapedMac; }