diff --git a/README.md b/README.md index 6dc1d4b8..926b3872 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ESPurna ("spark" in Catalan) is a custom firmware for ESP8285/ESP8266 based smar It uses the Arduino Core for ESP8266 framework and a number of 3rd party libraries. [![version](https://img.shields.io/badge/version-1.12.6a-brightgreen.svg)](CHANGELOG.md) -![branch](https://img.shields.io/badge/branch-dev-orange.svg) +[![branch](https://img.shields.io/badge/branch-dev-orange.svg)](https://github.org/xoseperez/espurna/tree/dev/) [![travis](https://travis-ci.org/xoseperez/espurna.svg?branch=dev)](https://travis-ci.org/xoseperez/espurna) [![codacy](https://img.shields.io/codacy/grade/c9496e25cf07434cba786b462cb15f49/dev.svg)](https://www.codacy.com/app/xoseperez/espurna/dashboard) [![license](https://img.shields.io/github/license/xoseperez/espurna.svg)](LICENSE) diff --git a/code/build.sh b/code/build.sh index caf2670a..5b1fd86d 100755 --- a/code/build.sh +++ b/code/build.sh @@ -26,7 +26,8 @@ if [ $# -eq 0 ]; then # Hook to build travis test envs if [[ "${TRAVIS_BRANCH}" != "" ]]; then - if [[ ${TRAVIS_BRANCH} != "master" ]]; then + re='^[0-9]+\.[0-9]+\.[0-9]+$' + if ! [[ ${TRAVIS_BRANCH} =~ $re ]]; then environments=$travis fi fi diff --git a/code/espurna/api.ino b/code/espurna/api.ino index ad41988a..58dcf50a 100644 --- a/code/espurna/api.ino +++ b/code/espurna/api.ino @@ -88,11 +88,11 @@ ArRequestHandlerFunction _bindAPI(unsigned int apiID) { } // Get response from callback - char value[API_BUFFER_SIZE]; + char value[API_BUFFER_SIZE] = {0}; (api.getFn)(value, API_BUFFER_SIZE); // The response will be a 404 NOT FOUND if the resource is not available - if (!value) { + if (0 == value[0]) { DEBUG_MSG_P(PSTR("[API] Sending 404 response\n")); request->send(404); return; diff --git a/code/espurna/button.ino b/code/espurna/button.ino index dd0d3b5b..e85fba43 100644 --- a/code/espurna/button.ino +++ b/code/espurna/button.ino @@ -84,6 +84,7 @@ uint8_t mapEvent(uint8_t event, uint8_t count, uint16_t length) { } if (count == 2) return BUTTON_EVENT_DBLCLICK; } + return BUTTON_EVENT_NONE; } void buttonEvent(unsigned int id, unsigned char event) { diff --git a/code/espurna/config/arduino.h b/code/espurna/config/arduino.h index d995139a..ea6e9c83 100644 --- a/code/espurna/config/arduino.h +++ b/code/espurna/config/arduino.h @@ -77,6 +77,7 @@ //#define GENERIC_ESP01S_DHT11_V10 //#define GENERIC_ESP01S_DS18B20_V10 //#define HELTEC_TOUCHRELAY +//#define ZHILDE_EU44_W //-------------------------------------------------------------------------------- // Features (values below are non-default values) @@ -87,6 +88,7 @@ //#define DEBUG_SERIAL_SUPPORT 0 //#define DEBUG_TELNET_SUPPORT 0 //#define DEBUG_UDP_SUPPORT 1 +//#define DEBUG_WEB_SUPPORT 0 //#define DOMOTICZ_SUPPORT 0 //#define HOMEASSISTANT_SUPPORT 0 //#define I2C_SUPPORT 1 @@ -117,6 +119,7 @@ //#define ANALOG_SUPPORT 1 //#define BH1750_SUPPORT 1 //#define BMX280_SUPPORT 1 +//#define CSE7766_SUPPORT 1 //#define DALLAS_SUPPORT 1 //#define DHT_SUPPORT 1 //#define DIGITAL_SUPPORT 1 @@ -126,10 +129,12 @@ //#define EMON_ANALOG_SUPPORT 1 //#define EVENTS_SUPPORT 1 //#define GUVAS12SD_SUPPORT 1 +//#define HCSR04_SUPPORT 1 //#define HLW8012_SUPPORT 1 //#define MHZ19_SUPPORT 1 //#define PMSX003_SUPPORT 1 //#define PZEM004T_SUPPORT 1 //#define SHT3X_I2C_SUPPORT 1 //#define SI7021_SUPPORT 1 +//#define TMP3X_SUPPORT 1 //#define V9261F_SUPPORT 1 diff --git a/code/espurna/config/general.h b/code/espurna/config/general.h index 2bc4f815..82c10aa7 100644 --- a/code/espurna/config/general.h +++ b/code/espurna/config/general.h @@ -78,7 +78,7 @@ #define DEBUG_UDP_PORT 514 #endif -// If DEBUG_UDP_PORT is set to 514 syslog format is assumed +// If DEBUG_UDP_PORT is set to 514 syslog format is assumed // (https://tools.ietf.org/html/rfc3164) // DEBUG_UDP_FAC_PRI is the facility+priority #define DEBUG_UDP_FAC_PRI (SYSLOG_LOCAL0 | SYSLOG_DEBUG) @@ -268,7 +268,13 @@ #define WIFI_RECONNECT_INTERVAL 180000 // If could not connect to WIFI, retry after this time in ms #endif +#ifndef WIFI_MAX_NETWORKS #define WIFI_MAX_NETWORKS 5 // Max number of WIFI connection configurations +#endif + +#ifndef WIFI_AP_CAPTIVE +#define WIFI_AP_CAPTIVE 1 // Captive portal enabled when in AP mode +#endif #ifndef WIFI_AP_MODE #define WIFI_AP_MODE AP_MODE_ALONE diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 4f49e73f..690a7610 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -388,7 +388,6 @@ #define RELAY_PROVIDER RELAY_PROVIDER_DUAL #define DUMMY_RELAY_COUNT 2 #define DEBUG_SERIAL_SUPPORT 0 - #define TERMINAL_SUPPORT 0 // Buttons #define BUTTON3_RELAY 1 @@ -608,7 +607,6 @@ #endif // Remove UART noise on serial line - #define TERMINAL_SUPPORT 0 #define DEBUG_SERIAL_SUPPORT 0 // Buttons @@ -789,7 +787,6 @@ #define LED1_PIN_INVERSE 1 // Disable UART noise - #define TERMINAL_SUPPORT 0 #define DEBUG_SERIAL_SUPPORT 0 // CSE7766 @@ -1552,10 +1549,8 @@ #define RELAY_PROVIDER RELAY_PROVIDER_STM // Remove UART noise on serial line - #define TERMINAL_SUPPORT 0 #define DEBUG_SERIAL_SUPPORT 0 - #define SERIAL_BAUDRATE 115200 - + // ----------------------------------------------------------------------------- // Tonbux Powerstrip02 // ----------------------------------------------------------------------------- @@ -1921,6 +1916,42 @@ #define RELAY1_PIN 12 #define RELAY1_TYPE RELAY_TYPE_NORMAL + +// ----------------------------------------------------------------------------- +// Zhilde ZLD-EU44-W +// http://www.zhilde.com/product/60705150109-805652505/EU_WiFi_Surge_Protector_Extension_Socket_4_Outlets_works_with_Amazon_Echo_Smart_Power_Strip.html +// ----------------------------------------------------------------------------- + +#elif defined(ZHILDE_EU44_W) + + // Info + #define MANUFACTURER "ZHILDE" + #define DEVICE "EU44_W" + + // Based on the reporter, this product uses GPIO1 and 3 for the button + // and onboard LED, so hardware serial should be disabled... + #define DEBUG_SERIAL_SUPPORT 0 + + // Buttons + #define BUTTON1_PIN 3 + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + + // Relays + #define RELAY1_PIN 5 + #define RELAY2_PIN 4 + #define RELAY3_PIN 12 + #define RELAY4_PIN 13 + #define RELAY5_PIN 14 + #define RELAY1_TYPE RELAY_TYPE_NORMAL + #define RELAY2_TYPE RELAY_TYPE_NORMAL + #define RELAY3_TYPE RELAY_TYPE_NORMAL + #define RELAY4_TYPE RELAY_TYPE_NORMAL + #define RELAY5_TYPE RELAY_TYPE_NORMAL + + // LEDs + #define LED1_PIN 1 + #define LED1_PIN_INVERSE 1 + // ----------------------------------------------------------------------------- // TEST boards (do not use!!) // ----------------------------------------------------------------------------- @@ -1955,6 +1986,7 @@ // We got silk sensor, velvet sensor, naugahyde sensor. We even got horse sensor, dog sensor, chicken sensor. // C'mon, you want sensor, come on in sensor lovers! // If we don’t got it, you don't want it! + #define AM2320_SUPPORT 1 #define BH1750_SUPPORT 1 #define BMX280_SUPPORT 1 #define SHT3X_I2C_SUPPORT 1 @@ -2000,11 +2032,11 @@ #define MANUFACTURER "TravisCI" #define DEVICE "Virtual board 02" - // A bit of DHT - pin 1 - #ifndef DHT_SUPPORT - #define DHT_SUPPORT 1 + // A bit of CSE7766 - pin 1 + #ifndef CSE7766_SUPPORT + #define CSE7766_SUPPORT 1 #endif - #define DHT_PIN 1 + #define CSE7766_PIN 1 // Relay type dual - pins 2,3 #define RELAY_PROVIDER RELAY_PROVIDER_DUAL @@ -2018,6 +2050,42 @@ #define IR_PIN 4 #define IR_BUTTON_SET 1 + // A bit of DHT - pin 5 + #ifndef DHT_SUPPORT + #define DHT_SUPPORT 1 + #endif + #define DHT_PIN 5 + + // A bit of TMP3X (analog) + #define TMP3X_SUPPORT 1 + + // A bit of EVENTS - pin 10 + #define EVENTS_SUPPORT 1 + #define EVENTS_PIN 6 + + // HC-RS04 + #define HCSR04_SUPPORT 1 + #define HCSR04_TRIGGER 7 + #define HCSR04_ECHO 8 + + // MHZ19 + #define MHZ19_SUPPORT 1 + #define MHZ19_RX_PIN 9 + #define MHZ19_TX_PIN 10 + + // PZEM004T + #define PZEM004T_SUPPORT 0 // not working? + #define PZEM004T_RX_PIN 11 + #define PZEM004T_TX_PIN 12 + + // V9261F + #define V9261F_SUPPORT 1 + #define V9261F_PIN 13 + + // GUVAS12SD + #define GUVAS12SD_SUPPORT 1 + #define GUVAS12SD_PIN 14 + #elif defined(TRAVIS03) // Relay provider light/my92XX @@ -2036,6 +2104,11 @@ #define MY92XX_COMMAND MY92XX_COMMAND_DEFAULT #define MY92XX_MAPPING 4, 3, 5, 0, 1 + // A bit of Analog EMON (analog) + #ifndef EMON_ANALOG_SUPPORT + #define EMON_ANALOG_SUPPORT 1 + #endif + #endif // ----------------------------------------------------------------------------- diff --git a/code/espurna/config/prototypes.h b/code/espurna/config/prototypes.h index ba8e0723..2a581218 100644 --- a/code/espurna/config/prototypes.h +++ b/code/espurna/config/prototypes.h @@ -63,7 +63,7 @@ template bool setSetting(const String& key, T value); template bool setSetting(const String& key, unsigned int index, T value); template String getSetting(const String& key, T defaultValue); template String getSetting(const String& key, unsigned int index, T defaultValue); -bool settingsGetJson(JsonObject& data); +void settingsGetJson(JsonObject& data); bool settingsRestoreJson(JsonObject& data); void settingsRegisterCommand(const String& name, void (*call)(Embedis*)); void settingsInject(void *data, size_t len); @@ -77,6 +77,7 @@ bool i2cGetLock(unsigned char address); bool i2cReleaseLock(unsigned char address); unsigned char i2cFindAndLock(size_t size, unsigned char * addresses); +void i2c_wakeup(uint8_t address); uint8_t i2c_write_buffer(uint8_t address, uint8_t * buffer, size_t len); uint8_t i2c_write_uint8(uint8_t address, uint8_t value); uint8_t i2c_write_uint8(uint8_t address, uint8_t reg, uint8_t value); diff --git a/code/espurna/config/sensors.h b/code/espurna/config/sensors.h index 2d77dfd8..5ef65e6b 100644 --- a/code/espurna/config/sensors.h +++ b/code/espurna/config/sensors.h @@ -57,6 +57,19 @@ // Specific data for each sensor // ============================================================================= +//------------------------------------------------------------------------------ +// AM2320 Humidity & Temperature sensor over I2C +// Enable support by passing AM2320_SUPPORT=1 build flag +//------------------------------------------------------------------------------ + +#ifndef AM2320_SUPPORT +#define AM2320_SUPPORT 0 +#endif + +#ifndef AM2320_ADDRESS +#define AM2320_ADDRESS 0x00 // 0x00 means auto +#endif + //------------------------------------------------------------------------------ // Analog sensor // Enable support by passing ANALOG_SUPPORT=1 build flag @@ -274,6 +287,19 @@ #define EVENTS_DEBOUNCE 50 // Do not register events within less than 10 millis +//------------------------------------------------------------------------------ +// GUVAS12SD UV Sensor (analog) +// Enable support by passing GUVAS12SD_SUPPORT=1 build flag +//------------------------------------------------------------------------------ + +#ifndef GUVAS12SD_SUPPORT +#define GUVAS12SD_SUPPORT 0 +#endif + +#ifndef GUVAS12SD_PIN +#define GUVAS12SD_PIN 14 +#endif + //------------------------------------------------------------------------------ // HC-SR04 // Enable support by passing HCSR04_SUPPORT=1 build flag @@ -339,8 +365,13 @@ #define MHZ19_SUPPORT 0 #endif +#ifndef MHZ19_RX_PIN #define MHZ19_RX_PIN 13 +#endif + +#ifndef MHZ19_TX_PIN #define MHZ19_TX_PIN 15 +#endif //------------------------------------------------------------------------------ // Particle Monitor based on Plantower PMSX003 @@ -351,8 +382,13 @@ #define PMSX003_SUPPORT 0 #endif +#ifndef PMS_RX_PIN #define PMS_RX_PIN 13 +#endif + +#ifndef PMS_TX_PIN #define PMS_TX_PIN 15 +#endif //------------------------------------------------------------------------------ // PZEM004T based power monitor @@ -444,49 +480,36 @@ #define V9261F_POWER_FACTOR 153699.0 #define V9261F_RPOWER_FACTOR V9261F_CURRENT_FACTOR -//------------------------------------------------------------------------------ -// AM2320 Humidity & Temperature sensor over I2C -// Enable support by passing AM2320_SUPPORT=1 build flag -//------------------------------------------------------------------------------ - -#ifndef AM2320_SUPPORT -#define AM2320_SUPPORT 0 -#endif - -#ifndef AM2320_ADDRESS -#define AM2320_ADDRESS 0x00 // 0x00 means auto -#endif - -//------------------------------------------------------------------------------ -// GUVAS12SD UV Sensor (analog) -// Enable support by passing GUVAS12SD_SUPPORT=1 build flag -//------------------------------------------------------------------------------ - -#ifndef GUVAS12SD_SUPPORT -#define GUVAS12SD_SUPPORT 0 -#endif - -#ifndef GUVAS12SD_PIN -#define GUVAS12SD_PIN 14 -#endif - // ============================================================================= // Sensor helpers configuration - can't move to dependencies.h // ============================================================================= #ifndef SENSOR_SUPPORT -#if ANALOG_SUPPORT || BH1750_SUPPORT || BMX280_SUPPORT || DALLAS_SUPPORT \ - || DHT_SUPPORT || DIGITAL_SUPPORT || ECH1560_SUPPORT \ - || EMON_ADC121_SUPPORT || EMON_ADS1X15_SUPPORT \ - || EMON_ANALOG_SUPPORT || EVENTS_SUPPORT || HLW8012_SUPPORT \ - || MHZ19_SUPPORT || PMSX003_SUPPORT || SHT3X_I2C_SUPPORT \ - || SI7021_SUPPORT || V9261F_SUPPORT || AM2320_SUPPORT \ - || GUVAS12SD_SUPPORT || CSE7766_SUPPORT || TMP3X_SUPPORT \ - || HCSR04_SUPPORT -#define SENSOR_SUPPORT 1 -#else -#define SENSOR_SUPPORT 0 -#endif +#define SENSOR_SUPPORT ( \ + AM2320_SUPPORT || \ + ANALOG_SUPPORT || \ + BH1750_SUPPORT || \ + BMX280_SUPPORT || \ + CSE7766_SUPPORT || \ + DALLAS_SUPPORT || \ + DHT_SUPPORT || \ + DIGITAL_SUPPORT || \ + ECH1560_SUPPORT || \ + EMON_ADC121_SUPPORT || \ + EMON_ADS1X15_SUPPORT || \ + EMON_ANALOG_SUPPORT || \ + EVENTS_SUPPORT || \ + GUVAS12SD_SUPPORT || \ + HCSR04_SUPPORT || \ + HLW8012_SUPPORT || \ + MHZ19_SUPPORT || \ + PMSX003_SUPPORT || \ + PZEM004T_SUPPORT || \ + SHT3X_I2C_SUPPORT || \ + SI7021_SUPPORT || \ + TMP3X_SUPPORT || \ + V9261F_SUPPORT \ +) #endif // ----------------------------------------------------------------------------- diff --git a/code/espurna/data/index.html.gz b/code/espurna/data/index.html.gz index f44b75ee..d3ac47e2 100644 Binary files a/code/espurna/data/index.html.gz and b/code/espurna/data/index.html.gz differ diff --git a/code/espurna/debug.ino b/code/espurna/debug.ino index f442ab56..e7659693 100644 --- a/code/espurna/debug.ino +++ b/code/espurna/debug.ino @@ -119,7 +119,7 @@ void debugSend_P(PGM_P format_P, ...) { #if DEBUG_WEB_SUPPORT -void debugSetup() { +void debugWebSetup() { wsOnSendRegister([](JsonObject& root) { root["dbgVisible"] = 1; @@ -145,6 +145,17 @@ void debugSetup() { #endif // DEBUG_WEB_SUPPORT +void debugSetup() { + + #if DEBUG_SERIAL_SUPPORT + DEBUG_PORT.begin(SERIAL_BAUDRATE); + #if DEBUG_ESP_WIFI + DEBUG_PORT.setDebugOutput(true); + #endif + #endif + +} + // ----------------------------------------------------------------------------- // Save crash info // Taken from krzychb EspSaveCrash @@ -274,4 +285,5 @@ void debugDumpCrashInfo() { DEBUG_MSG_P(PSTR("<< + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +*/ #pragma once @@ -12,7 +29,7 @@ class StreamInjector : public Stream { typedef std::function writeCallback; - StreamInjector(Stream& serial, size_t buflen = 128) : _stream(serial), _buffer_size(buflen) { + StreamInjector(size_t buflen = 128) : _buffer_size(buflen) { _buffer = new char[buflen]; } @@ -20,28 +37,43 @@ class StreamInjector : public Stream { delete[] _buffer; } + // --------------------------------------------------------------------- + + virtual uint8_t inject(char ch) { + _buffer[_buffer_write] = ch; + _buffer_write = (_buffer_write + 1) % _buffer_size; + return 1; + } + + virtual uint8_t inject(char *data, size_t len) { + for (uint8_t i=0; i _buffer_write) { bytes += (_buffer_write - _buffer_read + _buffer_size); } else if (_buffer_read < _buffer_write) { @@ -51,35 +83,23 @@ class StreamInjector : public Stream { } virtual int peek() { - int ch = _stream.peek(); - if (ch == -1) { - if (_buffer_read != _buffer_write) { - ch = _buffer[_buffer_read]; - } + int ch = -1; + if (_buffer_read != _buffer_write) { + ch = _buffer[_buffer_read]; } return ch; } virtual void flush() { - _stream.flush(); _buffer_read = _buffer_write; } - virtual void inject(char *data, size_t len) { - for (int i=0; i *_buffer; }; diff --git a/code/espurna/migrate.ino b/code/espurna/migrate.ino index 104ca56d..8bf615a0 100644 --- a/code/espurna/migrate.ino +++ b/code/espurna/migrate.ino @@ -888,6 +888,23 @@ void migrate() { setSetting("board", 69); + #elif defined(ZHILDE_EU44_W) + + setSetting("board", 70); + setSetting("btnGPIO", 0, 3); + setSetting("ledGPIO", 0, 1); + setSetting("ledLogic", 0, 1); + setSetting("relayGPIO", 0, 5); + setSetting("relayGPIO", 1, 4); + setSetting("relayGPIO", 2, 12); + setSetting("relayGPIO", 3, 13); + setSetting("relayGPIO", 4, 14); + setSetting("relayType", 0, RELAY_TYPE_NORMAL); + setSetting("relayType", 1, RELAY_TYPE_NORMAL); + setSetting("relayType", 2, RELAY_TYPE_NORMAL); + setSetting("relayType", 3, RELAY_TYPE_NORMAL); + setSetting("relayType", 4, RELAY_TYPE_NORMAL); + #else // Allow users to define new settings without migration config diff --git a/code/espurna/scheduler.ino b/code/espurna/scheduler.ino index adb89579..003a6f69 100644 --- a/code/espurna/scheduler.ino +++ b/code/espurna/scheduler.ino @@ -104,7 +104,7 @@ bool _schIsThisWeekday(time_t t, String weekdays){ char pch; char * p = (char *) weekdays.c_str(); unsigned char position = 0; - while (pch = p[position++]) { + while ((pch = p[position++])) { if ((pch - '0') == w) return true; } return false; diff --git a/code/espurna/sensor.ino b/code/espurna/sensor.ino index 22f9b739..da446a70 100644 --- a/code/espurna/sensor.ino +++ b/code/espurna/sensor.ino @@ -286,9 +286,11 @@ void _sensorPost() { } void _sensorReset() { - if (ntpSynced()) { - _sensor_energy_reset_ts = String(" (since ") + ntpDateTime() + String(")"); - } + #if NTP_SUPPORT + if (ntpSynced()) { + _sensor_energy_reset_ts = String(" (since ") + ntpDateTime() + String(")"); + } + #endif } // ----------------------------------------------------------------------------- @@ -310,6 +312,14 @@ void _sensorLoad() { */ + #if AM2320_SUPPORT + { + AM2320Sensor * sensor = new AM2320Sensor(); + sensor->setAddress(AM2320_ADDRESS); + _sensors.push_back(sensor); + } + #endif + #if ANALOG_SUPPORT { AnalogSensor * sensor = new AnalogSensor(); @@ -440,6 +450,14 @@ void _sensorLoad() { } #endif + #if GUVAS12SD_SUPPORT + { + GUVAS12SDSensor * sensor = new GUVAS12SDSensor(); + sensor->setGPIO(GUVAS12SD_PIN); + _sensors.push_back(sensor); + } + #endif + #if HCSR04_SUPPORT { HCSR04Sensor * sensor = new HCSR04Sensor(); @@ -524,22 +542,6 @@ void _sensorLoad() { } #endif - #if AM2320_SUPPORT - { - AM2320Sensor * sensor = new AM2320Sensor(); - sensor->setAddress(AM2320_ADDRESS); - _sensors.push_back(sensor); - } - #endif - - #if GUVAS12SD_SUPPORT - { - GUVAS12SDSensor * sensor = new GUVAS12SDSensor(); - sensor->setGPIO(GUVAS12SD_PIN); - _sensors.push_back(sensor); - } - #endif - } void _sensorCallback(unsigned char i, unsigned char type, const char * payload) { diff --git a/code/espurna/sensors/AM2320Sensor.h b/code/espurna/sensors/AM2320Sensor.h index 656be183..80924bf3 100644 --- a/code/espurna/sensors/AM2320Sensor.h +++ b/code/espurna/sensors/AM2320Sensor.h @@ -101,7 +101,7 @@ class AM2320Sensor : public I2CSensor { // Get device model, version, device_id void _init() { - i2c_wakeup(); + i2c_wakeup(_address); delayMicroseconds(800); unsigned char _buffer[11]; @@ -120,7 +120,9 @@ class AM2320Sensor : public I2CSensor { */ void _read() { - i2c_wakeup(); + + i2c_wakeup(_address); + // waiting time of at least 800 μs, the maximum 3000 μs delayMicroseconds(800); // just to be on safe side @@ -128,7 +130,7 @@ class AM2320Sensor : public I2CSensor { // 4 = number of bytes to read if (i2c_write_uint8(_address, AM2320_I2C_READ_REGISTER_DATA, 0x00, 4) != I2C_TRANS_SUCCESS) { _error = SENSOR_ERROR_TIMEOUT; - return false; + return; } unsigned char _buffer[8]; diff --git a/code/espurna/sensors/GUVAS12SDSensor.h b/code/espurna/sensors/GUVAS12SDSensor.h index 1a0ee3ee..f188b2b3 100644 --- a/code/espurna/sensors/GUVAS12SDSensor.h +++ b/code/espurna/sensors/GUVAS12SDSensor.h @@ -122,6 +122,7 @@ class GUVAS12SDSensor : public BaseSensor { // --------------------------------------------------------------------- void _read() { + int _average = 0; #if UV_SAMPLE_RATE == 1 @@ -161,7 +162,6 @@ class GUVAS12SDSensor : public BaseSensor { _uvindex = 10; } - return _uvindex; } unsigned char _gpio = GPIO_NONE; diff --git a/code/espurna/settings.ino b/code/espurna/settings.ino index cc07c7bd..ce98370a 100644 --- a/code/espurna/settings.ino +++ b/code/espurna/settings.ino @@ -10,21 +10,10 @@ Copyright (C) 2016-2018 by Xose Pérez #include #include "libs/EmbedisWrap.h" #include +#include "libs/StreamInjector.h" -#ifdef DEBUG_PORT - #define EMBEDIS_PORT DEBUG_PORT -#else - #define EMBEDIS_PORT Serial -#endif - -#if TELNET_SUPPORT - #include "libs/StreamInjector.h" - StreamInjector _serial = StreamInjector(EMBEDIS_PORT, TERMINAL_BUFFER_SIZE); - #undef EMBEDIS_PORT - #define EMBEDIS_PORT _serial -#endif - -EmbedisWrap embedis(EMBEDIS_PORT, TERMINAL_BUFFER_SIZE); +StreamInjector _serial = StreamInjector(TERMINAL_BUFFER_SIZE); +EmbedisWrap embedis(_serial, TERMINAL_BUFFER_SIZE); #if TERMINAL_SUPPORT #if SERIAL_RX_ENABLED @@ -360,11 +349,9 @@ void resetSettings() { // Settings // ----------------------------------------------------------------------------- -#if TELNET_SUPPORT - void settingsInject(void *data, size_t len) { - _serial.inject((char *) data, len); - } -#endif +void settingsInject(void *data, size_t len) { + _serial.inject((char *) data, len); +} size_t settingsMaxSize() { size_t size = EEPROM_SIZE; @@ -395,7 +382,7 @@ bool settingsRestoreJson(JsonObject& data) { } -bool settingsGetJson(JsonObject& root) { +void settingsGetJson(JsonObject& root) { // Get sorted list of keys std::vector keys = _settingsKeys(); @@ -420,11 +407,14 @@ void settingsSetup() { EEPROM.begin(SPI_FLASH_SEC_SIZE); - #if TELNET_SUPPORT - _serial.callback([](uint8_t ch) { + _serial.callback([](uint8_t ch) { + #if TELNET_SUPPORT telnetWrite(ch); - }); - #endif + #endif + #if DEBUG_SERIAL_SUPPORT + DEBUG_PORT.write(ch); + #endif + }); Embedis::dictionary( F("EEPROM"), SPI_FLASH_SEC_SIZE, @@ -457,8 +447,15 @@ void settingsLoop() { _settings_save = false; } + #if TERMINAL_SUPPORT + #if DEBUG_SERIAL_SUPPORT + while (DEBUG_PORT.available()) { + _serial.inject(DEBUG_PORT.read()); + } + #endif + embedis.process(); #if SERIAL_RX_ENABLED diff --git a/code/espurna/static/index.html.gz.h b/code/espurna/static/index.html.gz.h index fc7c4ff6..b7e6b88e 100644 --- a/code/espurna/static/index.html.gz.h +++ b/code/espurna/static/index.html.gz.h @@ -1,4 +1,4 @@ -#define index_html_gz_len 65520 +#define index_html_gz_len 65522 const uint8_t index_html_gz[] PROGMEM = { 0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0xec,0xbd,0x79,0x7f,0xda,0xca,0xb2,0x28,0xfa,0x55, 0x14,0xb2,0x77,0x0e,0x6c,0x33,0x4f,0xc6,0xf6,0x22,0x39,0x80,0xf1,0x14,0xcf,0x78,0x88,0x93,0x9b,0xbb, @@ -2754,526 +2754,527 @@ const uint8_t index_html_gz[] PROGMEM = { 0xc8,0x1b,0xf3,0xd2,0x3c,0x8d,0x6f,0x35,0x4f,0xe3,0x42,0x31,0xd9,0x20,0x15,0x77,0x9a,0xe5,0x94,0x32, 0x76,0x06,0xd2,0xcc,0x8b,0x74,0xa2,0xd8,0xa7,0x58,0x06,0x5c,0x62,0xb6,0x1b,0x0c,0x32,0xc9,0x1e,0x4e, 0xfc,0xa4,0x95,0x79,0x63,0x28,0x19,0x55,0xd9,0x0b,0x9e,0x2a,0x8e,0x37,0x36,0x37,0xfd,0x49,0x31,0x0b, -0xeb,0x41,0x8c,0x75,0xcb,0x62,0x1d,0x71,0x52,0x8d,0xa5,0xd8,0x47,0x0c,0x6a,0xc3,0x69,0x35,0x27,0xad, -0x1e,0x1c,0x45,0x63,0x63,0xc6,0x8b,0xc1,0x75,0x4c,0x36,0x8f,0x6f,0x40,0x77,0x62,0xf3,0x32,0xc9,0xe6, -0xc9,0x06,0xe1,0x2c,0xcc,0x5c,0xe3,0x7c,0x4a,0xcf,0x46,0x3f,0x87,0x41,0x5a,0x1d,0xc7,0xea,0x00,0x79, -0x85,0x3e,0x2e,0xde,0x3f,0x8d,0x69,0x0c,0xd5,0xa0,0x80,0x33,0xe6,0xc1,0xc9,0x35,0x92,0xb4,0x23,0xbc, -0x24,0x4a,0xa1,0xb2,0x9e,0xc1,0x69,0xe8,0x03,0xc9,0x40,0xe7,0x55,0x92,0x4e,0x35,0x41,0xfc,0xbd,0xf1, -0x39,0xa3,0x7a,0xfe,0x00,0x84,0xd0,0x09,0xc2,0xef,0x47,0x27,0x23,0x6f,0xb0,0x77,0x47,0x46,0xe8,0xa2, -0xf1,0x02,0xba,0x31,0x2f,0xfb,0x9f,0xce,0x46,0xe8,0x98,0xc3,0xd8,0x94,0x53,0x4e,0xc3,0x15,0x3f,0x0f, -0xa7,0xd8,0xa8,0x5c,0xf4,0x5e,0xae,0x03,0xdc,0x66,0x27,0x86,0x4d,0x42,0x05,0xa1,0x6e,0x54,0x96,0x27, -0xf1,0xbf,0xf1,0xdd,0xee,0xca,0xb2,0xcf,0x1e,0x15,0xae,0xe4,0x88,0x4e,0x7b,0x01,0x3e,0x3e,0x50,0xf3, -0xc1,0x8d,0xd1,0x8a,0xbc,0x13,0x43,0x27,0xda,0x3c,0xe1,0x8c,0xfb,0xb0,0x9c,0xcd,0xb5,0x65,0xc4,0xa4, -0x28,0x17,0xe2,0x39,0x57,0x5b,0x2a,0x63,0x32,0x9a,0x65,0x70,0x5a,0x00,0xc1,0x0c,0x0e,0x5a,0xd0,0x1e, -0xa5,0x22,0xc5,0x40,0x69,0x1a,0x46,0xc2,0x4f,0x01,0xba,0x68,0x3a,0x25,0xc5,0xd8,0x82,0xcd,0xc5,0xf7, -0x06,0x99,0x3c,0x20,0x80,0x0b,0x38,0xc2,0xf0,0x69,0x0c,0x61,0xd8,0x25,0x43,0x8b,0x42,0x8c,0x77,0xb4, -0xcc,0x92,0xe9,0x46,0x1e,0xe5,0xf3,0x50,0x37,0xec,0x70,0xd0,0xdd,0xba,0x6a,0x89,0x6a,0x09,0x3b,0x32, -0x0d,0xaa,0x6b,0x73,0x50,0x30,0xf5,0xc4,0x4a,0x15,0xf8,0xf9,0x0d,0x3b,0xb5,0xed,0x7c,0x0d,0xe9,0xda, -0xde,0x01,0xb2,0xbd,0x2c,0xbb,0x4b,0x60,0x6f,0x91,0x01,0x59,0x1c,0xd0,0xdb,0xe9,0x65,0x38,0x22,0xa5, -0x65,0x7c,0x2c,0x45,0x8f,0x0f,0x42,0x7f,0x86,0xe4,0x3a,0x81,0xf9,0x62,0x20,0x44,0x57,0x1b,0x85,0xd3, -0x47,0xcc,0x5e,0x28,0x8d,0x1b,0x09,0xa0,0xf2,0xa1,0x27,0x81,0xb4,0x77,0xf4,0x0d,0xbd,0x33,0x7a,0xbd, -0x4a,0x82,0x09,0xbb,0x1d,0x63,0x20,0xed,0xd9,0x99,0x1e,0x98,0x09,0x3d,0x18,0x9c,0x83,0x64,0x19,0x93, -0x27,0xc2,0xdc,0x15,0x29,0x69,0x70,0xf9,0x77,0xf6,0x0d,0x2a,0xd0,0x2e,0xdf,0xe8,0x58,0xa5,0x98,0x6d, -0x1c,0x68,0x9e,0x9e,0x07,0xdf,0x78,0x39,0x39,0x5e,0xaf,0xf7,0x0c,0xf0,0x02,0x10,0xae,0x92,0x46,0x16, -0xb8,0x59,0x03,0x45,0x93,0xff,0x67,0x1b,0xf3,0xdb,0x73,0x32,0x18,0x84,0x5c,0x70,0xd0,0x01,0xfa,0x04, -0xa0,0x8e,0x00,0xab,0xc0,0x4d,0x5c,0x99,0x9c,0x99,0x78,0xf9,0x0d,0x64,0x8c,0x45,0x8f,0x7c,0x0e,0x15, -0x1a,0xdc,0x69,0x67,0xe6,0x27,0xc7,0xdd,0x93,0x2d,0x34,0x3b,0x49,0x3b,0x19,0x7c,0xf4,0x4e,0xb6,0x80, -0x31,0x81,0x8f,0x0b,0xf8,0xd8,0xe6,0x8f,0x7b,0xa0,0xc8,0x1c,0x12,0x1a,0xdc,0x22,0x7e,0x1a,0x0b,0xaf, -0x53,0xa2,0xc2,0xdd,0xe3,0x8e,0x16,0x14,0x24,0xa1,0x83,0xd7,0x00,0x10,0xf7,0x77,0xea,0xb4,0x3a,0x14, -0x0b,0x52,0x0b,0xbe,0xb5,0xdc,0x86,0xe2,0x9f,0x6d,0xf5,0xab,0x4c,0xbd,0x6e,0xc9,0xf8,0xc8,0x99,0x2b, -0xbf,0xfd,0x80,0xfc,0x93,0x20,0x1b,0x24,0xb3,0xd4,0x35,0x40,0xb0,0x47,0x04,0xa2,0xdd,0xfd,0x34,0xec, -0x0a,0x21,0x7c,0x75,0xce,0x6a,0x99,0x05,0x53,0x19,0xd0,0xb5,0x94,0x97,0x52,0x74,0x16,0x69,0x75,0x69, -0x6f,0xac,0x02,0x0f,0xfb,0xfb,0xaa,0xf6,0x38,0x67,0x3c,0xcb,0xf2,0x1b,0x1b,0xee,0x06,0xf2,0xfd,0x54, -0x4d,0x76,0xfd,0x49,0x55,0x3c,0xcf,0x3a,0xba,0x38,0xd8,0x8a,0xbb,0xca,0xb5,0x22,0xaf,0x44,0x95,0xc5, -0x42,0x43,0xc9,0xc2,0x21,0xef,0xed,0xda,0x52,0xd1,0xe4,0x0d,0xe5,0x56,0x2a,0x02,0x28,0x31,0x54,0xd2, -0xa2,0xa2,0x8a,0x57,0xe5,0x7d,0x2f,0xf0,0x34,0xe8,0xe2,0x77,0x71,0xee,0xc9,0x0a,0x0b,0xd1,0x46,0x5d, -0xa5,0xe6,0x4b,0x5a,0xe0,0x95,0x4a,0x99,0xdf,0xa5,0x06,0x94,0x99,0xc7,0xed,0x50,0xd6,0xc0,0xb5,0x0f, -0x4b,0x9d,0xf7,0xc0,0xba,0x54,0xac,0x94,0x50,0x6a,0x43,0xa8,0x75,0x54,0x2b,0x17,0x9a,0x11,0x25,0xe5, -0x8f,0xe0,0xc4,0x95,0x87,0x00,0x3e,0x6a,0x97,0x17,0xa5,0x7a,0xeb,0x16,0xdc,0xab,0xb6,0x2e,0x8b,0x3c, -0xe5,0x35,0xa4,0xa9,0x27,0xa3,0xb2,0x35,0xe7,0xb0,0x4f,0x8a,0xb6,0x51,0x86,0xfd,0x53,0x60,0xa8,0x64, -0x96,0xf9,0x6b,0x56,0x12,0x72,0x63,0x27,0xc4,0x22,0xd4,0x7a,0x8a,0x34,0x3d,0x9e,0xf6,0x8f,0x7c,0x84, -0xa1,0x37,0x46,0xa9,0x27,0x0e,0x69,0x03,0xbd,0xab,0xfc,0x38,0x87,0x73,0xb9,0x8d,0x8c,0xb3,0x58,0x20, -0xb4,0xc9,0xa1,0x01,0xb6,0xde,0x49,0xf8,0x86,0x43,0x8e,0x16,0x48,0x30,0x4d,0x7c,0xb1,0x55,0x2b,0xb5, -0x6d,0xb9,0x6e,0x55,0x42,0x79,0xe5,0xb0,0x25,0x91,0x58,0x23,0x02,0x38,0xf0,0x83,0xa1,0x73,0xf0,0xe1, -0xfd,0xfb,0x97,0x07,0x47,0x2f,0x5f,0x38,0x7d,0xe7,0xfd,0x87,0xa3,0x46,0xf1,0x0d,0x65,0xe2,0x7c,0x61, -0x29,0x72,0xf8,0x8f,0xf7,0x07,0x8f,0x24,0xbc,0xf8,0xc0,0x9d,0x6c,0x81,0x6e,0xb5,0xc4,0xd1,0xc1,0x57, -0x20,0x13,0x09,0xb8,0x0d,0x4d,0x1e,0x3e,0xeb,0x0e,0xb4,0xf4,0x89,0xb0,0x0a,0x24,0xea,0xce,0x57,0x67, -0x2f,0x21,0x7b,0xfb,0xa9,0x99,0xbd,0xfd,0x54,0x65,0x2f,0xfc,0xc9,0x20,0xf0,0x17,0x2d,0x67,0xd2,0x28, -0xac,0x0b,0x97,0x64,0x6e,0x38,0xd3,0x52,0xe6,0x94,0x72,0xae,0xa5,0x8c,0x29,0x25,0x73,0x6e,0xb0,0x96, -0x99,0x77,0xe6,0x4d,0xcb,0x6a,0x1b,0xf4,0x94,0x8d,0xc7,0xd3,0x60,0xaa,0x19,0x00,0x36,0x0d,0x1b,0xb7, -0xa9,0x69,0xe0,0x36,0x2d,0x3f,0x78,0x04,0x75,0x8f,0x19,0xd2,0xe4,0xcd,0x56,0x07,0x1e,0x31,0x38,0xf5, -0xfb,0xcd,0x99,0xca,0x5c,0xa4,0x64,0x0b,0xe7,0x38,0xe8,0x48,0x4c,0xa6,0x61,0x18,0x03,0x4e,0xe4,0x42, -0xb3,0x56,0xd0,0x3a,0x73,0xc5,0xac,0x3d,0xf7,0x0d,0x26,0x4e,0xeb,0xce,0xb9,0xde,0x9d,0x99,0x7f,0x6e, -0x69,0xe2,0xbc,0xda,0xc4,0x39,0x9f,0x6e,0xa2,0x0d,0x6a,0xe2,0xc2,0x2f,0xcb,0x86,0x8b,0x46,0x2e,0xb4, -0x46,0x2e,0xc4,0xa9,0x49,0xf1,0x21,0xae,0xb4,0xb7,0x9b,0x80,0x45,0x00,0x14,0xc9,0x34,0x70,0xd5,0x2d, -0x58,0xdb,0xd9,0x8f,0x29,0x84,0xcc,0x23,0x52,0x16,0xb0,0xbd,0x28,0x05,0xc7,0xf1,0x49,0xad,0x96,0x86, -0x19,0x2a,0x35,0xe0,0xf9,0x09,0x2b,0x0a,0xa3,0xa5,0x8e,0x7c,0xfd,0x5d,0xf3,0x8a,0xee,0x43,0x57,0xe2, -0x85,0xb0,0x7f,0x29,0xdf,0x0a,0xd1,0x4b,0xac,0xce,0xb5,0x5e,0x5a,0xb8,0x56,0xc5,0x6a,0x5f,0x1e,0x87, -0x27,0x65,0x83,0x69,0xd2,0x81,0x47,0x31,0xf9,0xc8,0x30,0x9a,0x36,0x69,0x56,0x80,0x70,0xef,0xc4,0x45, -0x3b,0x5f,0xf1,0x34,0x54,0x5b,0x56,0x51,0x26,0xaf,0x25,0x8b,0x0c,0xd4,0x51,0xa6,0xcc,0x77,0xa6,0xcc, -0x57,0x5f,0xd7,0x0f,0x30,0xba,0xff,0xdd,0xde,0xfd,0xba,0x3e,0x7f,0xe5,0x3e,0x7f,0x3f,0x66,0x6f,0x82, -0xc5,0xf0,0x6b,0x72,0x7f,0x73,0x0a,0x10,0x1e,0x07,0x8c,0xc7,0x91,0x7f,0xc0,0xde,0x52,0xd1,0xc3,0xdc, -0x27,0x1f,0xd5,0x25,0x8f,0x86,0x07,0xac,0x10,0xd9,0x3a,0xe8,0x2c,0xa1,0x86,0xac,0x5f,0x32,0xde,0x3f, -0x72,0xbd,0xc3,0xf2,0x3a,0x56,0x20,0x40,0xb5,0xd2,0x6c,0x1a,0x1c,0x12,0x82,0x9f,0x4a,0x62,0xfb,0x43, -0x19,0x86,0xc0,0x55,0x3f,0x04,0x6f,0x77,0x60,0x08,0xf2,0x6f,0x44,0x97,0x10,0xe9,0x7d,0x3f,0x50,0xb2, -0x4a,0x5d,0xc2,0xb6,0x5f,0xed,0xdf,0x37,0xea,0x9f,0x9a,0x29,0x42,0xe8,0xc3,0xb8,0x11,0x6a,0xd2,0x6a, -0xed,0x5b,0xf1,0xf8,0x64,0x85,0x21,0x94,0xbe,0x19,0x68,0x7c,0x84,0xeb,0x0a,0xdc,0x1d,0x8a,0x36,0x3f, -0x72,0x9b,0x1f,0xfc,0x8f,0x7a,0x9b,0xe5,0x8b,0xc8,0xb1,0xb8,0x42,0x23,0x6d,0x3e,0x74,0xa2,0x09,0x92, -0xe7,0x58,0xbb,0x3c,0x73,0x3a,0xff,0x16,0x0b,0x11,0x11,0xfc,0xc0,0x7e,0x7e,0xf5,0xf9,0xe4,0x77,0x07, -0xf1,0x2e,0xe1,0x40,0xf7,0xa2,0x41,0xdc,0x6a,0xb9,0xba,0x50,0x01,0x1d,0xc2,0xb2,0x75,0xf0,0x2a,0x7b, -0x3d,0x17,0x5d,0x6b,0x9a,0x46,0x80,0x55,0x3d,0x5f,0x75,0x17,0x46,0x55,0x31,0x56,0xe5,0x96,0x42,0x0b, -0x2f,0x1f,0x94,0x6c,0x91,0x8d,0xb7,0x75,0xde,0x69,0x9b,0x9a,0xe0,0xc5,0x34,0x2f,0xf6,0x72,0xdf,0xc9, -0xd3,0x65,0x58,0x2d,0xaa,0xec,0xe5,0x5c,0xf2,0x22,0x57,0x27,0x30,0xaf,0x00,0x2b,0xe3,0x6c,0x3d,0xbf, -0xc0,0xdb,0x21,0x37,0x8a,0x41,0x29,0x5f,0x5c,0x4e,0xdd,0x81,0xa6,0x41,0xbc,0xa1,0x39,0x25,0x05,0x7e, -0x21,0x26,0x86,0x18,0x83,0x65,0xa1,0x32,0x68,0x4e,0x8e,0xa4,0x50,0x00,0xdb,0x6a,0x15,0xfa,0xed,0xba, -0x05,0x80,0x4f,0xc0,0x94,0xab,0x34,0xb9,0x95,0x0d,0x83,0x91,0x89,0x29,0x9e,0x76,0x0d,0x2e,0x72,0x30, -0xc5,0xab,0xed,0x89,0x87,0x6a,0xe1,0x3d,0x81,0x46,0xbb,0xbd,0x0a,0x0d,0xca,0xad,0x43,0x43,0x64,0x5a, -0xd0,0x10,0x39,0x6b,0xd0,0xc0,0x78,0x9b,0xa6,0xd4,0xfb,0x97,0x54,0x97,0x78,0x1f,0x3b,0x97,0xc8,0xad, -0x2a,0x2b,0x30,0x47,0x28,0x79,0x9e,0x0c,0x48,0xe1,0x3b,0x45,0xc3,0x47,0x0c,0x21,0x61,0x93,0x52,0x20, -0x04,0x19,0x39,0x87,0x97,0x8d,0x5f,0x3e,0xfd,0xcc,0x8e,0x49,0xe1,0xf6,0x86,0x05,0x2f,0x33,0x15,0x9d, -0xce,0xc7,0x26,0x34,0x05,0x3a,0xee,0xe7,0x51,0x82,0x45,0x42,0xbe,0x68,0x0b,0x9c,0x3c,0xa1,0xc1,0xbb, -0xb9,0x29,0x55,0x79,0xc7,0xf3,0x84,0x82,0xbc,0x89,0x6f,0x6a,0xea,0x73,0x38,0x3a,0x84,0xdf,0x61,0xde, -0x94,0x2d,0x51,0x28,0x40,0x09,0xd3,0x49,0x62,0xc1,0x39,0xaf,0xd4,0xc4,0x36,0xa2,0xb1,0x6d,0x51,0x80, -0x76,0xe7,0x0b,0x46,0x87,0xd6,0x12,0x53,0x4e,0x4c,0x8d,0xc4,0x9c,0x13,0x73,0x9c,0xce,0x30,0xfb,0x74, -0x09,0x54,0xae,0xbf,0x30,0x68,0xb6,0x2f,0xe8,0xf3,0x2b,0x48,0xf3,0x8c,0x02,0xb4,0x38,0xb3,0x3c,0x5f, -0xf4,0x1d,0x8a,0x88,0x5e,0x4e,0xce,0x28,0x1d,0x56,0x14,0x03,0x61,0x54,0x3f,0xa0,0x8a,0x41,0x31,0x49, -0xec,0xd0,0xb0,0x11,0x95,0x10,0xc2,0x61,0x0d,0x02,0xb8,0x57,0xd6,0x72,0x25,0x0b,0x54,0xa8,0x85,0xd8, -0x01,0xa6,0x9d,0xa7,0x04,0x4b,0x1b,0x3d,0x4f,0xbb,0x48,0x7b,0xfa,0xc5,0x54,0xf9,0x2d,0x42,0x97,0xf1, -0x05,0xd3,0xdd,0xa5,0x81,0xc7,0x88,0x9f,0x86,0x4d,0x49,0x61,0x3f,0x2b,0x7e,0x4b,0x0b,0x5a,0xf1,0xc9, -0x36,0xb4,0x9e,0x92,0x0b,0x40,0xc3,0xe2,0xfa,0x0f,0xbf,0x90,0xf3,0xef,0x7a,0xc4,0xf4,0x0f,0x1e,0x90, -0x43,0x34,0x74,0x21,0x01,0x1b,0x61,0xad,0x7f,0xdc,0x3a,0x11,0x29,0x1c,0xdc,0x0b,0xb4,0x6c,0xab,0x8a, -0xd9,0x0a,0x96,0x9a,0x8e,0x77,0xb4,0x75,0x1d,0xaa,0x5f,0xfd,0xbc,0x73,0x39,0x8b,0xc6,0xf4,0x1a,0x85, -0xb7,0x8e,0xde,0x13,0xcd,0x3c,0xab,0x61,0x06,0x27,0xa2,0x17,0x26,0x58,0x8a,0xba,0x47,0x4f,0xc3,0xa1, -0x96,0x57,0x72,0x8a,0x82,0xf6,0x36,0x6f,0xb1,0x43,0xb8,0x6f,0x6a,0xa5,0x0a,0x7f,0x36,0x6c,0xc4,0x51, -0x56,0x2f,0xd6,0x64,0xa5,0x85,0x2a,0xb0,0xb0,0x3d,0x42,0x81,0x39,0x82,0xb6,0xe7,0x15,0x58,0xa5,0x76, -0x4c,0xa0,0x35,0xa6,0x7e,0x5d,0xb2,0xf1,0xeb,0x75,0xbb,0xfc,0x66,0x2c,0x25,0xb5,0x6c,0xbd,0x5a,0xd2, -0xad,0x12,0xb6,0x53,0x16,0xc0,0xb6,0x26,0x6e,0xb4,0x94,0xf8,0xa8,0x8b,0x26,0x95,0x30,0x58,0x58,0x90, -0x99,0x05,0x78,0xee,0x94,0x00,0x95,0x21,0x57,0x19,0x56,0x64,0x18,0xe0,0x28,0xef,0x69,0x93,0x2a,0x7c, -0x09,0x1c,0xf5,0xed,0x0d,0xc8,0x59,0xd0,0x1e,0x4b,0x79,0x8d,0x01,0x29,0x15,0xe6,0x0d,0x68,0xa1,0x9d, -0x5e,0x02,0xd5,0x35,0xe1,0x2b,0xef,0xaa,0x85,0x0a,0xbc,0x9a,0xc8,0x4d,0x4b,0x11,0xad,0x85,0x36,0xc5, -0xa8,0xb6,0x37,0x82,0x39,0x06,0xbc,0xb4,0x8d,0x68,0xb3,0x4b,0xb4,0x72,0x29,0xb6,0xfd,0xb1,0x97,0x90, -0xa6,0x27,0x15,0x8a,0x52,0xb2,0xbd,0x8c,0xb0,0xa4,0x28,0x97,0xd1,0x4d,0x3e,0x78,0xea,0x6a,0x56,0x22, -0xfa,0xfb,0x9d,0x6e,0x34,0x54,0x9a,0x43,0x7c,0x18,0x55,0xe6,0x0e,0x25,0x1b,0xa0,0xc0,0x30,0xc1,0x4a, -0x35,0x21,0x4d,0x96,0xc9,0x56,0x73,0x9b,0x4d,0x59,0xcc,0x62,0x55,0xe7,0x7d,0xa5,0xd1,0x2b,0x19,0xa9, -0x6b,0x06,0x2f,0x95,0x81,0xd6,0x40,0x3b,0xdc,0xdd,0xaa,0x2b,0x8f,0xc2,0x3a,0x0a,0x95,0xbe,0x4b,0x15, -0x48,0x07,0x1c,0x85,0xeb,0x06,0x56,0xc9,0x36,0x57,0x25,0x70,0x94,0x76,0xa5,0x5b,0xd3,0xc8,0x58,0xa8, -0xb5,0xea,0xf7,0x19,0x4d,0xc3,0xb5,0x52,0x23,0xeb,0x85,0xd6,0x68,0x45,0xaa,0xcb,0x61,0xef,0xc6,0xd3, -0xae,0x8e,0x95,0x4a,0xe8,0x45,0x75,0x5d,0x1d,0xdb,0x95,0x3a,0x26,0x2a,0xea,0x9d,0x3e,0x53,0xe4,0xcb, -0x5f,0xc1,0xd8,0xac,0x80,0x95,0x3e,0x54,0x74,0x60,0x07,0xe9,0xd9,0x47,0x1e,0xb1,0xec,0x80,0x41,0x32, -0x29,0x9b,0x9b,0xd6,0x33,0xd4,0xe2,0x2d,0xb1,0x32,0x92,0x5e,0x44,0x7e,0x9a,0x8f,0x4f,0x58,0xd6,0x35, -0xe0,0x58,0xc0,0x0f,0x3a,0xc2,0x5e,0x8a,0x1e,0x86,0xe2,0xe0,0x22,0x9a,0x06,0xb0,0x2e,0x28,0x2c,0xd7, -0x3e,0x4c,0xd1,0x9c,0xc4,0x09,0xec,0x9e,0xb1,0xb3,0x0c,0x28,0xb8,0x69,0x85,0x61,0x89,0x94,0x81,0x8c, -0x5f,0x0a,0x11,0xed,0x45,0xfe,0x56,0x73,0x3c,0x4b,0x13,0x98,0x14,0xc7,0x8d,0x2f,0x5b,0x27,0xcd,0xe3, -0x2f,0x97,0x9d,0x93,0x96,0xbb,0x25,0xe3,0x16,0x5c,0x5f,0x6f,0xa1,0x45,0xd4,0xd7,0x28,0x5f,0x01,0x90, -0xa0,0x0b,0x3c,0xb7,0x39,0xec,0x77,0x1e,0xcb,0x57,0xaf,0x61,0x3d,0xf4,0x79,0x16,0x85,0x6e,0xc3,0x92, -0xa5,0xc5,0x22,0x40,0x27,0x0b,0x40,0x5a,0x12,0x0e,0x62,0xcc,0x77,0x28,0x95,0xfc,0x16,0xcd,0xe7,0xa2, -0x95,0x61,0x23,0xbd,0xe8,0xcb,0x1a,0xdc,0xa1,0x56,0x07,0x30,0x13,0x57,0x82,0x64,0x7d,0x0c,0xab,0x40, -0xf4,0x11,0x48,0x41,0xc2,0x36,0x26,0x74,0x9d,0x1b,0xd4,0x48,0x30,0xa9,0x86,0xd2,0x04,0x91,0x22,0xca, -0x23,0x13,0x12,0x69,0xf4,0x37,0x73,0x8f,0x55,0x16,0xc5,0x9b,0x31,0x33,0x3b,0xa2,0x45,0x3f,0xea,0xa8, -0x67,0xc0,0x12,0x04,0x13,0xb5,0x52,0x6d,0x27,0x0b,0xce,0x82,0x34,0x82,0x2a,0x29,0xde,0x82,0xee,0x36, -0x5a,0xb2,0x69,0x61,0x33,0x52,0x76,0x64,0x5e,0xe6,0x05,0x6c,0xdb,0x88,0x0e,0xf7,0x49,0x55,0x02,0xcd, -0x3b,0x34,0x6f,0xf0,0xca,0x85,0x32,0x32,0x17,0xc5,0x55,0x36,0x73,0x21,0x93,0x0c,0x83,0x3e,0x5c,0xc6, -0x18,0xc1,0x24,0x4c,0xf3,0xef,0xcc,0x88,0x60,0x80,0x41,0x12,0x54,0x66,0x28,0x39,0x20,0xc7,0xe1,0xf1, -0x89,0x1f,0xb8,0x45,0x3b,0xc4,0xf6,0x72,0x8c,0x40,0xfc,0xf5,0x9e,0xe2,0xc3,0x51,0xc8,0x44,0x4a,0xc3, -0xa0,0x84,0x07,0xe2,0xc2,0x88,0x5c,0xe9,0x8b,0xe8,0x02,0xf9,0x14,0xca,0x03,0x2e,0x01,0x78,0x2b,0x76, -0x48,0x28,0xd3,0x26,0x51,0x86,0xbe,0x03,0xd0,0x20,0xf1,0x90,0x96,0x1d,0x75,0x98,0xf3,0x2c,0x4a,0xcd, -0xb0,0x9e,0x14,0xe7,0x44,0x0b,0x8f,0xc2,0x39,0x5b,0x00,0x2d,0x71,0x63,0xa8,0x4e,0x5d,0xa7,0x77,0x73, -0x93,0x1d,0xc7,0x92,0x10,0x02,0x7a,0x8f,0x27,0x0e,0x64,0xe2,0xf5,0x07,0xb3,0x1d,0x81,0x46,0x49,0x33, -0xb8,0xb6,0xd4,0x58,0x42,0xc8,0x82,0xc8,0xbb,0x45,0x81,0xf2,0x05,0x8d,0xcc,0x98,0x8e,0x75,0x94,0xbd, -0xe0,0xce,0x4f,0xea,0x90,0x25,0x7a,0x47,0x59,0xd3,0xe9,0x0b,0x32,0x4d,0x9c,0x52,0x1d,0x36,0x72,0xaf, -0xac,0x0d,0x0b,0x70,0x38,0x8c,0xc6,0x18,0xad,0xc2,0x48,0xd4,0x48,0xc4,0x96,0xd8,0x93,0xb1,0x58,0xcb, -0x79,0xd4,0xd8,0xda,0x93,0x1d,0x51,0x79,0x7e,0x51,0xd1,0x42,0x39,0x7b,0x17,0xce,0x77,0x49,0x05,0x1a, -0xc5,0x11,0xbb,0xa4,0x50,0x53,0xaa,0x9e,0xd2,0x3e,0x9c,0x9d,0xc9,0xda,0xf7,0xbe,0xc4,0x8d,0xc6,0x2e, -0x8a,0x64,0xf6,0x04,0x84,0xa9,0x4b,0xdd,0x72,0x60,0xdb,0xc4,0xdc,0x2f,0xf1,0xee,0x16,0x15,0x2e,0xc2, -0x77,0x1c,0x25,0x4d,0x13,0xad,0x02,0x89,0x43,0x28,0xe2,0x1b,0x18,0x15,0xfa,0x13,0xac,0x20,0x21,0x61, -0xe3,0xdb,0xe0,0x1b,0xd7,0xa3,0xfb,0xbb,0x91,0x8d,0x9f,0x93,0xbf,0x6b,0xc2,0x40,0x1b,0x8e,0xe8,0x23, -0xca,0x1a,0x69,0x4c,0x19,0xe0,0x43,0xfc,0x68,0x77,0xcb,0x08,0x5f,0xb2,0xa2,0xff,0xb7,0xad,0xf3,0xec, -0xec,0xd6,0x95,0xc6,0x1a,0x4d,0xe3,0x55,0x24,0xe5,0x55,0x53,0x6e,0x5b,0x90,0x8b,0x33,0x15,0x39,0x6f, -0xd9,0xb8,0x28,0x45,0xac,0xee,0xea,0x8a,0x09,0x64,0x5d,0xf5,0x0c,0x6b,0xd4,0xfd,0x09,0xb9,0x8c,0x95, -0x55,0x13,0xc4,0x6d,0x6b,0xde,0xe8,0x9a,0xeb,0xd3,0xb6,0xbd,0xe9,0xeb,0x13,0x2e,0x84,0xea,0x98,0xef, -0xd0,0xe1,0xa8,0x38,0xc7,0x63,0xad,0x62,0x73,0x91,0x19,0x33,0xb8,0xb4,0x42,0x4f,0xa4,0x08,0x67,0x19, -0x33,0x1b,0x83,0xcd,0x03,0x4f,0xc3,0xe1,0x9f,0x75,0xd4,0x4e,0xd1,0xeb,0x84,0xdc,0x2f,0xf5,0x70,0x41, -0x45,0xac,0x66,0xf6,0x02,0x47,0xd7,0x66,0x60,0xc9,0x97,0xc1,0x7c,0x18,0x8a,0x1f,0x32,0xe6,0x55,0x79, -0x4f,0x2b,0xef,0x8a,0x55,0x7e,0x84,0x9c,0x82,0xe3,0xc9,0x25,0x2d,0x99,0xcc,0xa9,0xc5,0xea,0x3d,0x62, -0x5a,0x65,0x9c,0x67,0x60,0x8a,0x4f,0xa5,0xec,0xe7,0x1e,0xf2,0x5b,0xda,0x1b,0x19,0xf9,0x48,0x77,0x84, -0x8f,0xfb,0xb6,0x08,0xe1,0x82,0xef,0x66,0xe5,0x0d,0xc1,0x68,0x22,0xb7,0x35,0x11,0x17,0x4d,0xe4,0x5a, -0x13,0xb1,0xd9,0x44,0xca,0x2a,0x7f,0xd4,0x86,0xb6,0xf9,0xb3,0xaf,0xa1,0xc8,0xcf,0xf6,0xf2,0x61,0xd6, -0xcf,0xbd,0xa8,0x65,0x6b,0x42,0x1f,0x5c,0xd9,0x98,0x3e,0xeb,0xde,0x91,0x57,0xfc,0xd2,0xe0,0x52,0xfb, -0x57,0x04,0xdd,0x8f,0x6e,0x50,0x72,0x5a,0x34,0x53,0x59,0x0c,0x06,0x70,0xeb,0xe9,0x8d,0x31,0xed,0xcd, -0xcc,0x1f,0x51,0xa3,0xd8,0x1c,0xc7,0xf8,0x5d,0x02,0x7c,0xe6,0x8b,0xe4,0x52,0x9b,0x1a,0x91,0x0c,0x52, -0x8d,0x2f,0xb6,0x00,0x1c,0xe2,0x49,0xfe,0x82,0x39,0x0c,0xbc,0xc6,0xf0,0xa1,0xa7,0x4e,0xb5,0xa6,0xf2, -0xe9,0x99,0xfb,0x22,0xc0,0xc9,0xf5,0x75,0xd4,0x91,0xc2,0x5c,0xe2,0x03,0xc4,0xdd,0x06,0xd6,0xd1,0x12, -0x36,0x54,0x11,0x94,0x1a,0x00,0x31,0x2e,0x23,0x33,0xd1,0xf3,0xef,0x07,0xc8,0xf3,0x03,0xc1,0x7d,0x9d, -0x66,0xb0,0xb4,0xd2,0x60,0x4a,0x11,0x94,0xe4,0xf9,0xea,0xe7,0x90,0xca,0xd9,0x18,0xf4,0x82,0xfd,0x9f, -0x6a,0xb2,0x99,0x52,0xef,0x9d,0x62,0x8a,0x5c,0x5f,0x77,0xcb,0xdd,0x7f,0x01,0xb5,0xbf,0x4b,0x2e,0xb4, -0x09,0xac,0x33,0x5e,0x03,0x0e,0xf8,0x58,0xc1,0xd0,0xd7,0x71,0x94,0xbd,0xcf,0xfc,0x66,0xde,0xaa,0x62, -0xd6,0xb6,0x74,0xc1,0xdd,0x62,0x8e,0x03,0x67,0xd6,0x61,0x34,0x09,0xbd,0x0c,0x19,0xe0,0x66,0xe6,0xc3, -0x14,0xcb,0xf6,0x7a,0xf4,0xb3,0x87,0x33,0x3a,0x7b,0x5c,0x02,0xac,0x8c,0x2d,0x05,0x33,0x89,0x6f,0xcc, -0xe3,0x4e,0x1f,0xf6,0xd8,0xd8,0xe4,0x82,0x49,0xb4,0xcc,0x6e,0xcc,0x83,0x94,0xa1,0x39,0x3e,0x03,0xed, -0x82,0xfd,0xb6,0x56,0x61,0x19,0x82,0x02,0x8d,0xb4,0x9b,0xbd,0x76,0xe6,0x96,0x90,0xbb,0xa9,0x4c,0x2e, -0xa4,0xee,0x4b,0xdd,0xcb,0x5c,0x41,0xdc,0x5b,0x91,0x16,0xa3,0x1e,0xd7,0x4d,0x36,0x26,0x2b,0x20,0x34, -0xc5,0x90,0x64,0xcd,0xdb,0xd1,0x59,0xe3,0x6b,0xcc,0xd7,0xbf,0x78,0xcf,0xef,0xec,0xa8,0x2b,0xb8,0x2b, -0x83,0x87,0x5b,0x20,0x37,0xea,0x72,0xdc,0xa2,0xb8,0x75,0x5a,0x73,0x88,0x4e,0x85,0xb5,0x08,0x0f,0x5c, -0x0d,0x21,0x20,0xe8,0xce,0x57,0x52,0xc9,0x85,0x8a,0xcf,0xa6,0x6a,0xbc,0xb6,0x2b,0xae,0xe2,0xb8,0x27, -0xa2,0x4c,0x69,0x58,0xc4,0xc3,0x66,0x1d,0xfb,0x58,0x5b,0x4e,0x65,0x54,0xd4,0xce,0x8d,0x48,0xe7,0xfa, -0x58,0x0d,0x4b,0xc7,0x3d,0x7a,0x1d,0x63,0x27,0x05,0xfa,0xa5,0x80,0x93,0x84,0xbb,0xbb,0x52,0x01,0x36, -0xd8,0xad,0x2f,0x13,0xfa,0xb5,0x74,0x18,0x9a,0x63,0xdf,0xda,0xee,0x77,0x8d,0xe5,0x23,0xa2,0xa0,0x89, -0x25,0x84,0x71,0x10,0xa8,0x7e,0x11,0x2d,0xa0,0xb4,0xa0,0x14,0x30,0x2f,0xaa,0xd0,0xb2,0xa8,0xec,0xe5, -0xc5,0x12,0x53,0xe5,0x8d,0x65,0x56,0xdb,0xa8,0xad,0x0c,0x2d,0xbc,0xb0,0x5d,0x5a,0x73,0xa5,0x0a,0x4a, -0x63,0xa6,0x5f,0xc5,0x2a,0xc3,0x86,0xe2,0x88,0xc2,0xa5,0x31,0xc9,0xa6,0x6d,0xc1,0xd9,0x1b,0x39,0x20, -0xf4,0x9a,0x02,0xf3,0xe2,0x4e,0x29,0x43,0xe1,0x15,0xe1,0x74,0x48,0xf7,0xbf,0x08,0x25,0x63,0x29,0xf7, -0xcb,0xc2,0x52,0xca,0x10,0xcc,0x70,0x18,0x92,0xa6,0x73,0x8e,0xc7,0x11,0x0e,0x79,0x23,0xc7,0xa3,0x02, -0x7f,0x09,0x35,0xe5,0x1a,0xd8,0xe5,0x82,0x21,0x49,0xb1,0x1b,0x23,0xfd,0x14,0xf3,0xa1,0x2a,0x4f,0x53, -0x88,0x89,0x35,0xd0,0x94,0x21,0xfb,0xb4,0x19,0xa7,0xd5,0x8d,0xae,0x8d,0xb8,0xf6,0x8c,0x43,0xf8,0xd5, -0x74,0x52,0x9d,0xa1,0xeb,0x7a,0x79,0xfb,0x3e,0xae,0xe8,0x61,0xf9,0x7a,0x69,0xde,0x3e,0x2d,0xa3,0x4c, -0x5b,0x6d,0x2d,0x73,0xa2,0x7a,0xae,0x31,0x43,0xe6,0xc5,0xaa,0x38,0x4b,0xc4,0xec,0x53,0x45,0x78,0xe6, -0xb7,0x9f,0xde,0x94,0x6f,0x26,0xda,0xd9,0x14,0x52,0x76,0xe4,0xdb,0x4a,0xb6,0x7a,0x9e,0xc9,0x16,0x6f, -0x6e,0x3e,0x28,0xcb,0x57,0x76,0x7f,0x44,0x8d,0xcf,0xb6,0xff,0x44,0x5e,0xd3,0xe5,0xd4,0xf7,0x05,0x36, -0xeb,0x19,0xae,0x76,0xa4,0xcd,0x0a,0xba,0x67,0x17,0x9b,0x44,0x85,0x5f,0x60,0xac,0xcb,0x27,0x5b,0xed, -0xf1,0x5a,0xda,0x64,0xee,0x71,0xd6,0x96,0x9b,0x92,0x9b,0xa0,0xa5,0xb1,0xee,0xba,0x63,0xb9,0x52,0x97, -0x57,0xcf,0xac,0xdd,0x7e,0x67,0x2e,0x1f,0xeb,0xc5,0x66,0x60,0x67,0x1a,0xab,0x87,0x36,0x3a,0x9e,0xac, -0x9c,0x88,0x4a,0x3b,0xbb,0xca,0x63,0xde,0x83,0x93,0xdc,0x28,0x8e,0xd6,0xcd,0x4d,0x72,0xa0,0x1c,0x8c, -0xb2,0xa6,0x85,0x29,0x68,0xe7,0xee,0x1e,0x77,0x12,0x72,0x8e,0x66,0xb8,0x0f,0x24,0xf3,0x09,0x05,0xc6, -0x51,0x67,0x33,0x86,0x89,0x13,0x84,0x96,0x1c,0x22,0xf1,0x2e,0x76,0x4a,0xfc,0xb2,0xb0,0xd3,0xe1,0x5f, -0xde,0x67,0x0d,0xc5,0x97,0xe8,0x37,0x01,0x55,0xa0,0x36,0x7a,0xba,0x40,0xd0,0xbf,0x92,0x47,0x03,0xc5, -0x00,0xbf,0x9d,0x69,0x7b,0xc5,0x22,0xde,0x62,0x34,0x6f,0xcc,0x90,0xbe,0xa3,0x89,0x1e,0xe4,0xa8,0x3b, -0x9e,0x29,0x6b,0x32,0x80,0x54,0x5d,0x8e,0xa7,0x8b,0x60,0x0c,0x98,0x9f,0x39,0x43,0x42,0x08,0xa1,0x92, -0x05,0xe4,0xec,0x0c,0x85,0xf8,0x4a,0xf0,0x60,0x40,0x70,0x27,0x54,0x7e,0x21,0x3f,0xb0,0x40,0x71,0xae, -0x84,0x2d,0x04,0x02,0x16,0xd0,0x4f,0x1c,0x90,0xcd,0x98,0x42,0xfd,0x1d,0x4f,0xbf,0xd4,0xf5,0x7b,0xf2, -0x9b,0x77,0x82,0xfe,0x53,0xaf,0xb4,0xfd,0x41,0x01,0x29,0x5b,0x85,0x26,0x0a,0xe5,0x33,0x7c,0xf1,0x12, -0x7e,0x0b,0xb4,0xdd,0xfc,0x06,0xc6,0x15,0x83,0x2e,0x3f,0xd0,0xf5,0xd4,0x78,0x5b,0x8d,0x3e,0x1c,0x4a, -0xe9,0xa0,0x1f,0x7a,0x74,0x91,0xd7,0x61,0x4a,0x47,0x02,0xde,0xcd,0xe1,0x66,0xee,0xcd,0xbc,0xc4,0x4b, -0xbd,0xb9,0x37,0xf1,0xc6,0xde,0xd2,0x5b,0x90,0xe0,0x38,0xf2,0x7b,0xbb,0xd5,0x48,0x5c,0x31,0x4b,0x8d, -0x8b,0xa0,0xbb,0x5d,0xb7,0x7f,0x8c,0x4e,0x86,0x58,0x72,0xd0,0x9c,0xc8,0x1f,0x63,0x3f,0xc2,0xa0,0x94, -0xc3,0xb1,0x12,0x1a,0x8b,0x70,0x65,0xee,0x70,0xd2,0x2f,0x66,0x65,0x21,0x52,0x5e,0xaa,0xd7,0x2d,0x8a, -0xdd,0xde,0x57,0x4a,0x48,0x68,0x35,0xd1,0xf5,0xe6,0xfe,0x52,0x6a,0x89,0xa5,0xbb,0xf3,0x41,0xda,0x6a, -0xb9,0xb9,0xbf,0x44,0x07,0x47,0x01,0xdb,0x48,0x91,0x94,0x3a,0x93,0x81,0x4e,0x83,0x61,0x73,0x46,0x18, -0x78,0x89,0xbf,0xbd,0x0b,0xeb,0xc9,0xc4,0x3f,0xf2,0x7a,0x84,0xb7,0x40,0x76,0xe1,0x07,0xc7,0xb3,0x13, -0xd8,0x9b,0x24,0x77,0x12,0x78,0x09,0xba,0x68,0x0c,0x2f,0x1b,0xe8,0xf4,0x9e,0x7a,0xa2,0xb3,0xb6,0x37, -0x82,0xb2,0x1a,0xb1,0x6b,0x9f,0x61,0xf8,0x69,0x87,0xc2,0x6d,0xf9,0x57,0x74,0xfe,0x19,0x02,0x7b,0xef, -0xca,0x5c,0x62,0xbd,0xca,0x7a,0x12,0x8d,0xac,0x58,0x4c,0x02,0xa2,0x7e,0x25,0x09,0x80,0xda,0x65,0x64, -0xe4,0x57,0xd7,0x90,0xc8,0x5e,0xb5,0x80,0x0c,0x90,0x15,0xab,0xc7,0x80,0x93,0x4b,0xa7,0x98,0xf9,0x05, -0x41,0x1d,0x79,0xc0,0xe9,0xaa,0x98,0x11,0xc6,0x78,0x2b,0x14,0x28,0xaa,0x0f,0x6d,0x1b,0xa6,0xc3,0x62, -0x18,0xa3,0xb2,0x81,0x4c,0x79,0x09,0xb0,0x84,0x7b,0x60,0x89,0x56,0xbb,0xd7,0x75,0x59,0x87,0x1d,0x5f, -0xe9,0x66,0xd1,0x19,0x2c,0x15,0x3f,0x92,0xf3,0xa3,0xe0,0xea,0x02,0x5f,0xc6,0x36,0x57,0xf7,0xb6,0x6c, -0x98,0x91,0x0f,0x74,0xf2,0x7f,0xde,0xc9,0x93,0x5f,0x30,0xf0,0x08,0xbf,0xc1,0xb5,0x32,0xa1,0xdd,0x0e, -0xf3,0x2f,0x1b,0x90,0xf2,0x1f,0x6b,0xbd,0xcb,0x58,0x7e,0xe2,0x87,0x34,0x1e,0x92,0xed,0x0c,0x56,0x29, -0xac,0x08,0x6f,0x5f,0x42,0x6d,0x85,0x16,0x82,0xf3,0xeb,0xdf,0x3e,0x1f,0x7c,0x04,0x96,0x50,0x84,0x76, -0x22,0x4d,0x14,0x19,0x61,0x30,0xba,0xbe,0xe6,0x59,0x19,0x49,0x7d,0x16,0x8c,0xac,0x5c,0x8e,0xdd,0x9d, -0x51,0x10,0xf6,0x0c,0x67,0x2c,0x2e,0x84,0xbc,0xa3,0x9b,0x19,0xd1,0x1d,0x01,0x6e,0x29,0x2b,0x1b,0x45, -0x1e,0x55,0x6b,0xd6,0xcf,0xae,0xaf,0xab,0xad,0xb8,0x4c,0x05,0x52,0xcf,0xaf,0xdc,0x80,0xa3,0xe3,0x4c, -0x04,0xb6,0x9d,0xfb,0xf8,0x5b,0x90,0x1f,0xa3,0x51,0x62,0x87,0x30,0x62,0x45,0x24,0x0f,0xd2,0xd4,0x9f, -0xe3,0x91,0xb7,0xb2,0x36,0x87,0x82,0x2f,0x06,0x27,0x45,0xb4,0x75,0xe9,0xf4,0x19,0xeb,0x97,0xb9,0xbf, -0xbb,0x95,0x29,0xd7,0xa3,0xd5,0x3c,0xbd,0x73,0xcd,0x4c,0x35,0x04,0x10,0x32,0xd6,0x0c,0xfa,0x6f,0xe0, -0xad,0x67,0x90,0x25,0xd9,0x80,0xd5,0x84,0x6b,0xca,0x16,0xed,0xe8,0xa9,0x18,0xfe,0x26,0x64,0x6d,0xe1, -0xa6,0xf3,0x2e,0xcc,0x67,0xc9,0x44,0x98,0x2f,0x37,0x50,0x7b,0x00,0x8d,0x03,0xb2,0x96,0x53,0x78,0x8f, -0x0f,0xbf,0x45,0x59,0x8e,0xfe,0x3d,0xc5,0x4b,0x66,0x79,0x7d,0x39,0x14,0x86,0x31,0xbd,0x19,0x48,0x23, -0x4a,0xcb,0x1a,0x1c,0xe4,0x1a,0x57,0x82,0x9e,0x93,0x03,0x8a,0x6c,0xfa,0xcd,0xf1,0x90,0x15,0x8a,0xc2, -0x4b,0xdc,0x06,0xe7,0xd1,0x05,0x71,0x1c,0xf8,0xf8,0x4d,0x6f,0xf9,0xf8,0x21,0x9d,0x2a,0xe3,0x6f,0x0c, -0xbe,0xcd,0x32,0x67,0xf9,0xf5,0x8a,0xab,0x82,0x2f,0xd4,0xdb,0x0a,0xd3,0x8b,0xf0,0x33,0xb6,0x4c,0x71, -0x6e,0x3c,0xe0,0x90,0xc5,0x26,0x84,0xfb,0x1f,0x1a,0x3e,0xf6,0x9d,0x45,0xb2,0x40,0xff,0x03,0x78,0xbd, -0x7e,0xa1,0x33,0x47,0xff,0x5c,0x42,0x3b,0xf9,0xf7,0x7e,0xcf,0x93,0xae,0x0b,0xa8,0x8a,0x54,0x44,0x44, -0xee,0x6f,0x7b,0xe7,0xc9,0x28,0x62,0x8e,0x88,0x7f,0x71,0x3c,0x56,0x0c,0x1a,0x85,0x46,0x5f,0x7f,0x0d, -0xbf,0x93,0x17,0x63,0xec,0x07,0xaa,0x1a,0x7f,0x60,0x72,0x23,0x78,0x16,0x07,0x0b,0x72,0x6c,0x0f,0x7f, -0x8f,0x92,0x79,0x98,0xe2,0x4a,0xe9,0x77,0xba,0x3b,0x70,0x5f,0xed,0x3c,0xff,0xe5,0xf5,0xe9,0xa7,0x97, -0x3f,0xef,0x1f,0xbd,0xfd,0xfb,0xcb,0xd3,0x8f,0xfb,0xaf,0x5f,0x9e,0x7e,0xf8,0xf4,0xf6,0xf5,0xdb,0xf7, -0xa8,0xd7,0x96,0x77,0xc4,0x6f,0xbe,0x96,0x74,0x3d,0x8a,0xec,0x8c,0xa5,0xc8,0x1a,0xf0,0x28,0x39,0xcc, -0x53,0x5d,0xa8,0x9f,0xcb,0xfd,0xcd,0x71,0x06,0xac,0x9e,0x81,0xea,0x6b,0x18,0xfe,0x88,0x9c,0x7f,0xf4, -0x21,0xe3,0x07,0x67,0x40,0xdf,0x48,0xfa,0x3e,0x6f,0x22,0x5a,0xe8,0x91,0xed,0x9d,0x9d,0xc7,0x61,0x27, -0xc5,0x0d,0x4c,0x45,0x0e,0x71,0x07,0x3d,0x5f,0x1d,0xa6,0x78,0x1b,0xc3,0xb8,0x5e,0xad,0x88,0x95,0x74, -0xb3,0x6a,0xe9,0x69,0xb5,0xb4,0x16,0x36,0x36,0xa3,0xd2,0x99,0x2b,0x3c,0xf4,0x56,0x4a,0x8f,0xaa,0xa5, -0x83,0xa2,0x74,0x40,0xa5,0xd1,0xf1,0x4b,0xcb,0x8f,0x60,0x92,0x06,0x83,0x51,0x1a,0x06,0x5f,0x07,0xb2, -0x8b,0x41,0xb9,0x8f,0xc1,0x7f,0x70,0x27,0xc5,0x79,0x50,0x29,0x1d,0x54,0x4b,0x27,0x45,0xe9,0x84,0x4a, -0x27,0x05,0x89,0x5a,0x89,0x4e,0x24,0x34,0x8e,0x45,0x1a,0xc1,0xdf,0xa6,0xd3,0xb2,0x50,0x85,0x7c,0x66, -0x58,0xfa,0x6b,0x4f,0x1f,0x41,0xba,0xeb,0x94,0x1a,0x78,0xa8,0xb5,0xc0,0x4e,0x37,0xd2,0x96,0xf3,0xd0, -0x93,0x1f,0x53,0xfd,0x63,0x04,0x1f,0x95,0x0a,0x02,0x59,0x41,0xf0,0x47,0xe1,0xe8,0x91,0xd1,0xb6,0x05, -0xd7,0xe0,0xa1,0xde,0xd6,0x6d,0xb0,0x55,0x1f,0x41,0x05,0x75,0x34,0x0b,0xc6,0xda,0xe0,0x2f,0x54,0x26, -0x3c,0x94,0x88,0xc6,0x33,0xf1,0xf7,0xa2,0x8c,0x04,0x00,0x3f,0xd4,0x4a,0x71,0xdd,0x33,0xbd,0xa1,0x4c, -0xff,0xb8,0xb0,0xb5,0x1a,0xc8,0x0a,0x82,0x55,0xed,0xda,0x89,0x80,0xa5,0x1e,0xea,0xe5,0x6f,0x83,0xc1, -0x4a,0x22,0x8c,0x44,0x6d,0x38,0xfe,0xb7,0x22,0xc0,0xe8,0xa1,0x56,0xe2,0x3e,0x04,0x18,0x49,0x02,0xd0, -0x28,0xde,0xa9,0xf3,0x23,0xd5,0xf9,0xd1,0x3d,0x3b,0x2f,0x95,0x55,0x52,0xdc,0x98,0x81,0x2f,0x3c,0x4a, -0xe8,0xdc,0xab,0xaa,0x95,0x63,0x94,0x74,0xff,0x2a,0xe8,0xf7,0x6e,0x06,0x14,0x84,0x02,0xef,0x21,0x61, -0x87,0x82,0xc4,0x36,0xb7,0xfe,0xf7,0x0f,0xc7,0xdd,0xf6,0x5f,0x82,0xf6,0xd9,0xc9,0xd5,0x93,0x9b,0x07, -0x5b,0x11,0xa9,0x4b,0x55,0xf3,0x9e,0x52,0x1e,0xbd,0x29,0x47,0xd9,0xfb,0xe0,0x7d,0x33,0xea,0xa4,0x7e, -0xef,0xc7,0xc7,0x9a,0xbb,0x69,0x0e,0x53,0xd9,0xec,0xc1,0x7d,0xc7,0x83,0xfd,0x61,0x0b,0x63,0x76,0x15, -0xbe,0xc9,0xb5,0x82,0x53,0x7b,0xc1,0xed,0xb5,0x05,0x47,0xf6,0x82,0x4f,0x6a,0x0b,0xee,0xa0,0x63,0x00, -0xb9,0x45,0xc9,0x5a,0x02,0x7b,0x2d,0x4f,0xad,0xb5,0x28,0x1e,0xa9,0x4c,0xb6,0x0a,0xd5,0x6a,0x01,0x6e, -0x4f,0xba,0xee,0x7d,0x49,0xb7,0x9e,0xe6,0x35,0xa4,0xab,0xa7,0xf9,0xd3,0x3b,0x90,0xce,0x3e,0x00,0xb5, -0xa4,0x2b,0x66,0xd5,0xb3,0x1a,0xda,0x15,0x10,0x3f,0xd9,0x88,0x67,0x23,0xc0,0xf6,0x5a,0xca,0xd9,0xf0, -0x5e,0x57,0x6a,0x64,0x29,0xb5,0x53,0x5b,0xea,0x2f,0x76,0x9a,0x55,0xab,0xf8,0xd1,0x5a,0xc5,0xfa,0xb9, -0x56,0x47,0xaf,0xbb,0x92,0xab,0x7b,0x2f,0x72,0x6d,0xdf,0x8b,0x5c,0x4f,0x6b,0x4b,0xfd,0x74,0x5b,0x72, -0x3d,0xbb,0x1b,0xb9,0xf0,0x50,0xfd,0x92,0x61,0x98,0xd9,0xec,0x71,0x13,0x49,0xf3,0xa5,0x73,0xd2,0x7a, -0x78,0x7d,0xdc,0xed,0x9d,0x0c,0xbf,0x74,0x86,0x98,0x72,0xf2,0xd8,0x85,0x4c,0xef,0x5f,0x0f,0xf0,0xc5, -0xb5,0x8f,0x18,0xe0,0xf8,0x27,0xa1,0xc8,0x18,0xd0,0x94,0x48,0xfd,0x12,0x1a,0x01,0xe4,0x90,0xbb,0xfb, -0x22,0xc4,0xb0,0xa6,0x2b,0xdb,0x74,0xdc,0x56,0xcf,0xd3,0x12,0x3c,0x7c,0xe7,0x75,0x1e,0xe2,0xfd,0x53, -0x0a,0x1d,0x94,0x4d,0x7d,0xcf,0x3a,0xeb,0x5e,0xcd,0x93,0x00,0x80,0x5c,0x74,0x2f,0x62,0x19,0x39,0xcb, -0x1c,0xcd,0x2d,0x13,0xa5,0x16,0x43,0xaf,0x8a,0xa1,0x57,0xce,0xbe,0x35,0xca,0xd3,0x3b,0xa1,0x3c,0x5d, -0x87,0x72,0x3a,0xac,0x45,0xba,0x8a,0x23,0xf5,0x02,0xa3,0xbe,0xbe,0xd5,0x69,0xdd,0x37,0x6b,0x28,0xe7, -0x57,0x0b,0xb9,0xb7,0x1f,0xa0,0xd1,0x9d,0x7a,0x3b,0x5a,0xdd,0xdb,0xd4,0xb5,0x8c,0xd2,0x1f,0x8a,0x6e, -0x70,0x27,0x74,0x4b,0xd0,0x25,0xc8,0x2b,0xb1,0x67,0xf8,0xda,0x7a,0x44,0x1e,0xf4,0xdf,0x6b,0xcf,0xd8, -0xdc,0xb4,0xe0,0xf8,0xa7,0xee,0x19,0x36,0x0c,0xfe,0xdd,0x76,0x56,0x2b,0x8e,0x7f,0xee,0xce,0x6a,0x2c, -0x84,0x3f,0x6f,0x87,0x9d,0xdd,0x69,0x45,0x94,0xa1,0xe1,0xb2,0xf6,0xff,0x63,0x8f,0xcd,0xee,0x84,0x74, -0x56,0xb7,0x8c,0xff,0x23,0x76,0xd8,0x8b,0x3b,0xf5,0xf5,0x62,0x55,0x5f,0xff,0x73,0xf6,0x57,0xf9,0xd2, -0x8c,0x77,0x52,0xd8,0xaf,0x8e,0x92,0x4f,0xd3,0x91,0x21,0x2a,0xf4,0x52,0xf5,0x88,0xb0,0xeb,0xf7,0xb6, -0x9e,0xc1,0x75,0x73,0xcf,0xdf,0xd9,0x7a,0x36,0xec,0xf5,0xc3,0xdd,0xde,0xd6,0x93,0x61,0xaf,0xfd,0xec, -0x71,0x33,0x6c,0x43,0x16,0x8c,0xce,0xde,0x53,0xc8,0xa1,0xef,0xa7,0xf8,0xdd,0xf5,0x32,0x1f,0xc0,0x21, -0x6f,0x73,0x13,0x8a,0x77,0x76,0x44,0x29,0x84,0x09,0xe1,0x17,0x42,0x8b,0xf2,0x9d,0x1d,0x04,0x0f,0x10, -0xbc,0xb3,0x43,0xd0,0xa2,0x91,0xbd,0x6d,0x2e,0x0d,0x85,0x09,0x70,0x9b,0x1b,0xda,0x29,0x8a,0xee,0x70, -0x53,0x89,0xdf,0x8c,0x5a,0xcd,0x5e,0x3b,0x72,0x1f,0xc3,0xff,0xa1,0x97,0x8f,0x53,0x2f,0xf6,0x9b,0x59, -0x8b,0xd5,0x10,0x55,0xda,0xdc,0x6f,0x06,0x98,0x16,0x14,0x69,0xe2,0x09,0xe5,0x2a,0xed,0x27,0xde,0xb4, -0x1f,0x7b,0xa3,0xfe,0xfc,0x06,0x29,0x02,0x5c,0xdf,0x51,0xf2,0x26,0xbb,0xb0,0x53,0x84,0xde,0x47,0x85, -0xe0,0xed,0x3c,0xf8,0x26,0xf2,0xa0,0x4d,0x4e,0x89,0x24,0x34,0xb4,0x98,0xb4,0x63,0x15,0xcd,0xc9,0xef, -0x6e,0xf8,0xc9,0x70,0xbe,0x95,0x00,0xce,0x11,0x7a,0xe0,0x98,0x0f,0xbb,0xfd,0xd0,0x87,0xb4,0xe6,0xb3, -0x56,0x33,0x6f,0xa7,0xee,0xd6,0xdc,0x7d,0xf8,0xac,0x9f,0x63,0xd2,0x76,0xab,0x99,0xb6,0x43,0x48,0xe9, -0xa7,0xf8,0xf9,0xb4,0x05,0xfd,0xcd,0xf1,0x13,0xca,0x6e,0xf9,0xcf,0x80,0x60,0x89,0x77,0x35,0xeb,0x03, -0x2e,0xfd,0xcc,0xbb,0xe8,0x07,0x84,0xb6,0xf5,0x4d,0x2b,0x45,0x5d,0x6e,0x61,0x8a,0xb2,0x58,0xc2,0x6a, -0x94,0x3a,0x4d,0x28,0x83,0x80,0x2a,0x60,0xac,0xe0,0xdf,0x45,0xbf,0xe7,0xa5,0xf0,0x6f,0x0a,0xff,0x46, -0xf0,0x0f,0xa5,0x10,0x0c,0x98,0xe9,0x41,0xc1,0xb9,0x0e,0x76,0x1b,0x22,0x95,0x20,0x58,0x90,0x0d,0x93, -0x5e,0x3c,0x61,0x6e,0x74,0xbd,0x2b,0xc4,0x46,0xca,0xf3,0x5d,0x55,0x8f,0x90,0x79,0xa3,0x8d,0x12,0x9f, -0x06,0x7a,0x05,0xc2,0x2b,0x07,0x3e,0x31,0xd9,0x92,0x7d,0xe7,0xf2,0x62,0xe1,0xb4,0xcc,0x3c,0x7e,0x28, -0x30,0xa3,0x84,0xfb,0xdd,0x21,0xfc,0xed,0x3b,0x4a,0xd7,0x11,0x75,0xa0,0x50,0x5d,0xd1,0xa0,0x4f,0xe7, -0x32,0x9a,0x4c,0xc3,0x9c,0xf5,0x2c,0xcd,0x1c,0x8c,0xf5,0x36,0x0f,0xbe,0xdb,0xb2,0xb0,0xaa,0x92,0xe6, -0x7e,0x6f,0xc3,0xaf,0xc2,0xa0,0x59,0xd5,0x5b,0xf8,0x0b,0x84,0xaf,0xcd,0x43,0xbf,0x9d,0x2c,0x8d,0x0f, -0x9b,0x8f,0x34,0xc3,0x03,0x7e,0x31,0x6b,0x0b,0x2c,0x9c,0x46,0x46,0xaf,0xf4,0xce,0x24,0xca,0x16,0xf0, -0xdd,0x6f,0xa0,0x9b,0x8a,0x81,0x23,0x6c,0x10,0x1e,0xb9,0x83,0xd4,0x30,0xe4,0xee,0xf0,0x33,0xaa,0xea, -0xc5,0x29,0x65,0xb8,0x35,0x5d,0x4c,0x31,0x60,0x1f,0xc6,0x95,0x0c,0x9b,0xce,0x28,0x99,0x68,0x21,0x0a, -0xd2,0xc2,0x5b,0x97,0x5e,0x10,0xc0,0xe9,0xfd,0x04,0xfd,0x14,0xfc,0x92,0xce,0x9b,0xdb,0xb0,0xfd,0x0c, -0xd0,0x58,0x2a,0x0c,0x26,0x45,0xe1,0x47,0xbb,0x84,0x74,0x83,0xfc,0xec,0x38,0xe8,0xdf,0x76,0x0b,0xdf, -0x17,0xf6,0x3a,0xdc,0xb5,0x4b,0xaa,0xa2,0x71,0x85,0xf6,0xc5,0x53,0x92,0xc4,0xf6,0x1b,0x4b,0xa8,0xec, -0x51,0x2b,0x6a,0x39,0x2e,0x74,0xb0,0x9d,0x86,0x8b,0x30,0xc8,0x1b,0x63,0x7a,0x34,0x16,0x7f,0x06,0x37, -0xbb,0x5b,0x54,0x2d,0x5a,0x24,0x61,0x93,0xf9,0xf9,0x5c,0x18,0x84,0x0a,0x4d,0xb8,0xea,0xc3,0x93,0x46, -0x0f,0x04,0x3f,0x15,0x80,0xe5,0xf2,0x52,0x83,0xee,0xde,0x15,0x28,0xa5,0xbd,0x5b,0xd6,0x80,0xa0,0x56, -0x24,0xee,0x51,0x07,0x9b,0xa2,0x72,0x1d,0xac,0x37,0xb0,0xb2,0x02,0x06,0x3f,0x65,0x48,0xb7,0xbc,0x6d, -0x74,0xd8,0x2f,0xdd,0x67,0x5e,0x1c,0x95,0x77,0xf1,0xd0,0x34,0x91,0x91,0xc3,0x49,0xd0,0x8f,0xf6,0x6c, -0x59,0x88,0x49,0x7d,0xce,0x07,0x9e,0x87,0xd2,0xa2,0x86,0x6c,0xab,0x6c,0x70,0x07,0xcb,0x34,0x4b,0x52, -0x04,0x23,0x0b,0x2b,0x01,0x5d,0xad,0xf4,0xcd,0x32,0x6c,0xf0,0x4f,0xde,0x35,0xda,0x68,0xe9,0xb6,0x08, -0xb1,0xe4,0x38,0x88,0x2f,0x82,0xac,0x0a,0x7f,0x48,0x80,0x46,0xa9,0x47,0x0d,0x52,0xa8,0xf3,0x1f,0xf5, -0x1e,0x35,0xd8,0x79,0x9d,0xff,0x68,0xa7,0xfb,0xa8,0xc1,0x9e,0x57,0x1f,0x41,0x21,0xc4,0x84,0x2b,0xb4, -0xe2,0x0c,0x10,0x8c,0xb1,0xac,0x76,0x7c,0x4b,0xfc,0x0f,0x61,0xd2,0xdf,0x05,0x7f,0x80,0xbf,0x3b,0xfe, -0x50,0x48,0x3c,0x6c,0xae,0xe9,0x06,0x00,0xde,0xaf,0x1b,0x70,0x5e,0xdc,0xa9,0x1b,0x00,0x7f,0xf7,0x6e, -0xd0,0xa1,0xb4,0xa6,0x07,0x00,0x73,0xbf,0x1e,0x7c,0x0a,0x27,0x77,0xea,0x01,0xc0,0xdf,0xbd,0x07,0x50, -0x68,0x0d,0xfe,0x00,0x71,0x3f,0xfc,0x5f,0xa7,0x18,0x88,0xfa,0x2e,0x3d,0xa0,0x12,0x77,0xef,0x03,0x15, -0x5b,0xd3,0x0b,0x82,0xb9,0x5f,0x3f,0x9e,0xcf,0xef,0xb8,0xa2,0xb1,0xc0,0xdd,0x7b,0xf1,0x7c,0xfd,0x54, -0x42,0x90,0xfb,0xf5,0x61,0x7f,0xbe,0x98,0x05,0x77,0xea,0x04,0x95,0xb8,0x7b,0x2f,0xa8,0xd8,0x9a,0x6e, -0x10,0xcc,0xfd,0xfa,0xf1,0x91,0x15,0x31,0xea,0x90,0x16,0xd9,0xcf,0x93,0x6f,0x36,0x34,0x7b,0xc5,0xf6, -0x43,0x16,0x89,0xb0,0xbe,0xe8,0xd8,0xd1,0xd1,0xe5,0x86,0x85,0x6d,0x65,0xe1,0x12,0x59,0x38,0xfb,0xd6, -0xcf,0x03,0xaf,0xd1,0xb1,0xd1,0xb3,0x48,0xe6,0x3e,0x95,0xc0,0x9c,0x15,0x66,0x91,0x6c,0x0d,0xd6,0x3e, -0x4f,0x7e,0x6b,0xa3,0x76,0x49,0x5b,0xba,0x7f,0x60,0xaf,0x60,0x32,0x9b,0x6d,0xf6,0x57,0x40,0xac,0x2f, -0x4b,0xc7,0x7c,0x1b,0xf5,0xd5,0xd0,0xcf,0xb6,0x84,0xf1,0x04,0x17,0x97,0xc4,0xc8,0x2d,0xa1,0xe7,0x1d, -0xcb,0x21,0x5e,0xb1,0x55,0x20,0x9f,0x21,0x69,0xc1,0x81,0xa0,0x49,0x82,0xa5,0x9c,0x49,0x3b,0x83,0x19, -0xc0,0x84,0x53,0x55,0x56,0x56,0x56,0x58,0x35,0xfc,0x11,0xb5,0xdd,0x1e,0x35,0x9e,0x97,0x95,0x2a,0x39, -0xf9,0x77,0xa1,0x79,0xc7,0x9a,0x6f,0x83,0xb2,0x8c,0x2e,0x51,0x54,0xc9,0x29,0xf7,0xc4,0xf3,0xf6,0xd5, -0xdd,0x0a,0xb9,0x71,0xa5,0xc3,0x5c,0xdd,0xef,0xa2,0xe5,0x9d,0x6a,0xe5,0x9b,0x45,0x99,0xbf,0x2c,0x5d, -0x20,0x2c,0xbe,0xd5,0xc2,0xad,0x6d,0x2f,0xf5,0x73,0xb8,0x22,0x2b,0x97,0xf7,0xcc,0x94,0x8a,0xc0,0xe2, -0x18,0xe7,0x0e,0xf7,0x0b,0xd4,0x5f,0xec,0xf0,0x46,0x13,0x7a,0x91,0xf0,0x32,0xec,0x87,0x2a,0x0c,0x0a, -0x6a,0x66,0x52,0x68,0x98,0x98,0x03,0x6c,0x6c,0xa3,0x2b,0x42,0x11,0x89,0x8e,0x42,0xd0,0x15,0xf1,0x52, -0xba,0x83,0x04,0xd2,0x12,0x19,0x77,0x44,0x5c,0xe4,0xb3,0x7f,0xa6,0x79,0x93,0x7e,0x2d,0x92,0xcb,0x26, -0x5c,0x4a,0xd0,0xc9,0xad,0xfa,0x0e,0xe8,0x9b,0x43,0x7b,0x37,0xe3,0xbd,0xbc,0xb5,0xed,0x4a,0xdd,0xbe, -0x26,0x02,0xfb,0x70,0x0f,0x0d,0x76,0xd3,0xe1,0x5f,0xba,0xfd,0xed,0x1f,0xbb,0x7d,0xb6,0x39,0xc8,0x83, -0xb8,0x09,0xf7,0xfa,0xc0,0xdd,0x42,0x10,0xd7,0xdd,0xa2,0xe4,0x8f,0x6f,0x1f,0xf7,0x7e,0xea,0xba,0xad, -0x66,0x02,0xf0,0xf0,0xab,0x0f,0xbf,0x51,0xee,0xf7,0x10,0xbd,0xc0,0x4f,0xfc,0x78,0x2b,0xf7,0x66,0x7e, -0x53,0x59,0x2d,0xcc,0x29,0xb3,0x25,0x00,0x76,0x7b,0xdb,0xdd,0x61,0xaf,0x3f,0xdf,0xdb,0x7e,0xda,0x1d, -0x36,0xe1,0xa3,0x5d,0x00,0xb6,0x49,0x7a,0xb8,0xf5,0xac,0xdb,0x9f,0x13,0x18,0x65,0xcf,0x29,0xa1,0xeb, -0x2d,0x7d,0x0d,0x10,0x32,0xdc,0xdd,0x67,0x58,0x51,0x39,0x51,0x95,0x2b,0x65,0x88,0x5a,0xc6,0x7a,0x2d, -0x80,0x42,0xb5,0x16,0x4a,0xb4,0xd5,0x82,0x19,0xa2,0x96,0x45,0x59,0x8b,0xa9,0x39,0x43,0x49,0xcd,0x8c, -0x24,0x35,0x13,0x17,0x6e,0xf2,0x07,0x15,0x88,0x25,0x42,0x2c,0x0b,0x88,0xb3,0x0a,0xc4,0x18,0x21,0xc6, -0x0a,0x62,0x40,0x9a,0xe4,0x73,0xd6,0x7a,0x17,0xea,0x47,0x0b,0x52,0xfc,0x38,0xa0,0xff,0x9f,0xa1,0xf2, -0x87,0xc7,0x40,0x9f,0xd0,0xe5,0x5e,0xe2,0x05,0x1e,0xbe,0xd8,0xdf,0x28,0x69,0x59,0x27,0x4f,0x68,0xe2, -0x92,0x4f,0x9f,0xd2,0xcc,0x2e,0xdb,0xbf,0x67,0x36,0x01,0x82,0x6e,0x99,0x85,0xc2,0x98,0x95,0x20,0xf5, -0x22,0x0a,0xcd,0xeb,0x09,0x89,0x71,0x56,0x82,0xa0,0xa8,0x91,0x98,0xe5,0xd5,0x60,0x85,0x7c,0x46,0x93, -0x1d,0x89,0xe7,0xc8,0x92,0x6c,0x27,0x35,0x45,0x3f,0x1d,0x4d,0x9f,0x51,0xad,0xaa,0x08,0x9d,0xcc,0x68, -0x42,0x20,0x4d,0x7a,0x34,0x0b,0xb2,0x7d,0x38,0x87,0xa3,0xd1,0x32,0x0f,0x45,0x54,0x91,0xcb,0xf1,0xa2, -0x8d,0xfa,0x74,0x9b,0x9b,0x4a,0x33,0x38,0x3d,0x8e,0x4e,0x36,0x37,0x9b,0xf8,0xc7,0xd7,0x0a,0x03,0x45, -0xea,0x0a,0x7b,0xd2,0xcd,0x28,0x96,0x19,0x52,0xc1,0x8d,0x2e,0x86,0x6a,0x9f,0x67,0x32,0x55,0x56,0xb8, -0xd1,0xd3,0x02,0x26,0x11,0xaa,0x24,0xba,0x55,0x4a,0xb2,0x7a,0xf7,0x00,0x5e,0xfa,0x21,0x8f,0x6a,0x75, -0xb8,0x23,0xa5,0xc3,0x3d,0xa8,0xb1,0xda,0x15,0xaa,0xc4,0xd9,0xc9,0xd0,0xf8,0x22,0x7c,0x84,0x45,0x71, -0xd1,0x20,0x21,0x2b,0xa7,0x1d,0x9b,0x17,0xd4,0x4f,0xa4,0x8a,0x4c,0xaa,0x2a,0x74,0x6a,0xba,0x1e,0x0a, -0xaa,0xd8,0xfe,0x4c,0x8a,0xa6,0xb4,0x2f,0x5d,0x18,0x55,0x10,0x9b,0xf4,0xbc,0x31,0x76,0xac,0x33,0x9a, -0x27,0xe3,0xaf,0x4e,0x49,0x60,0xc7,0x2a,0xb3,0xc2,0x48,0x4e,0x4c,0xd6,0x7a,0x69,0x02,0x39,0x9b,0x0a, -0x75,0x60,0x0c,0x91,0x6d,0x57,0x12,0x27,0x05,0x72,0x0f,0x23,0x4c,0x03,0x3f,0x95,0xef,0x9f,0xe5,0x42, -0xbd,0x5c,0xa2,0xe5,0x44,0xf1,0x3c,0x8a,0x69,0x50,0x99,0xbb,0x12,0xd2,0x31,0xc7,0x1d,0x46,0x66,0x82, -0x04,0x6d,0x73,0x0f,0xdc,0x7e,0x39,0xbf,0x5c,0x41,0x11,0xb7,0xdb,0x68,0x31,0x95,0x91,0x1b,0xe4,0x14, -0x49,0xcb,0xa1,0x65,0xb1,0xe9,0x72,0xb4,0xd9,0x2a,0x10,0x22,0x50,0x86,0x92,0xe6,0x64,0xc2,0xee,0x54, -0x91,0x4b,0x24,0x4e,0xd2,0xe0,0x92,0x2f,0x03,0x59,0x53,0x99,0x9e,0xb1,0x83,0x44,0x99,0x8c,0x48,0xe3, -0x29,0x7e,0x06,0x27,0x66,0xb6,0x46,0xfc,0x83,0x95,0x9f,0x12,0xe0,0x29,0xd1,0x44,0x96,0x1d,0xcd,0x97, -0xe9,0x6d,0x8a,0x22,0x9c,0x28,0xe9,0xf6,0xc5,0xfb,0xac,0x4d,0xb4,0x8a,0x72,0x5c,0x9b,0xc4,0x75,0xfd, -0x0c,0xb1,0x94,0x42,0x24,0xc5,0x00,0x54,0x44,0x95,0x91,0xec,0xc1,0x2a,0xc6,0xa8,0xd2,0x0d,0x05,0x7c, -0x4a,0x1a,0xdf,0x52,0x58,0x6c,0x45,0x92,0x13,0x05,0xa7,0xb4,0x9e,0xc6,0x34,0x65,0x04,0x89,0xb9,0x72, -0x51,0x74,0x2d,0x89,0xb9,0x24,0x51,0x58,0x62,0xc5,0x25,0xbf,0x86,0xdf,0xd7,0xc8,0x37,0xb9,0x28,0xc1, -0xa9,0xdb,0x04,0x59,0x89,0xdd,0xa2,0x14,0x03,0xc2,0xb2,0x2a,0x5b,0x62,0x18,0xcb,0x9d,0x8e,0x1a,0xb1, -0xda,0x65,0x44,0x99,0x66,0x15,0xa2,0x74,0x36,0xf0,0x01,0x25,0xec,0xbc,0xfa,0x15,0xbb,0x98,0x2a,0xac, -0x94,0xff,0x9b,0xef,0x0e,0xb7,0x6e,0xc2,0xcc,0x52,0x96,0x02,0x43,0xe9,0x2d,0x60,0x9f,0x16,0x1f,0xcc, -0xba,0x49,0x12,0xcf,0x61,0x16,0xf5,0xe5,0x1a,0x55,0x49,0x18,0xc5,0xa7,0x22,0x17,0xd5,0x3c,0x1d,0x84, -0xd0,0x87,0xe4,0x7b,0x59,0x38,0x9a,0x97,0xf7,0xb6,0xd2,0x56,0xba,0x72,0x0f,0xa5,0xb5,0x32,0x0a,0xe1, -0x40,0x32,0xb7,0xdf,0x5c,0xc5,0x24,0xc7,0x68,0x40,0x22,0x44,0x4c,0x8a,0xe6,0xc2,0xb5,0xf3,0x50,0xe5, -0xdb,0x27,0x9b,0xca,0xae,0x99,0x51,0x2a,0xbf,0x6e,0xf2,0x20,0x80,0x7d,0xd3,0xc6,0xad,0xc0,0xc5,0x50, -0xd9,0x61,0x1e,0xae,0x39,0xb3,0x8c,0x9d,0xee,0x16,0x94,0xd4,0x49,0x06,0x7b,0xc4,0x46,0x6f,0x20,0x03, -0xb1,0x91,0x0c,0x02,0x76,0x79,0x43,0x14,0x8d,0xa1,0x34,0x24,0xb5,0x53,0x45,0xe2,0xbc,0x30,0x63,0x16, -0xe0,0xe2,0x4c,0xf0,0xb4,0x1c,0x3a,0x0e,0x84,0xfb,0x08,0xe1,0xe4,0x31,0x8a,0xe3,0x30,0x25,0x63,0x8e, -0x5d,0xa8,0x4d,0xb3,0xed,0xd8,0xdc,0x14,0xad,0x6c,0x68,0xad,0x48,0x08,0x32,0x12,0x00,0x76,0xa9,0xda, -0x2a,0xe7,0xd3,0xf3,0xd4,0x7d,0x64,0x1b,0x52,0xd0,0xa2,0x82,0x09,0x69,0x0d,0x40,0xc2,0x24,0x44,0x1f, -0xe7,0xea,0x12,0x44,0xac,0x8d,0x7c,0x43,0x63,0xfa,0x06,0x7c,0xa6,0x4b,0x03,0x10,0xcb,0x5b,0x1b,0x59, -0x58,0x91,0xfe,0xf3,0xa5,0xd3,0x0f,0x7c,0x2b,0x9a,0xd0,0x88,0xae,0x27,0x6d,0x83,0x7b,0xb3,0x0c,0x4d, -0xa8,0xcc,0x06,0x75,0x18,0xe4,0x26,0xd4,0x85,0x0d,0xea,0xef,0x41,0xa9,0xc5,0xd4,0x06,0xf5,0x09,0xad, -0xf6,0x75,0xa8,0xa9,0x0d,0x8a,0xe4,0x91,0x26,0xdc,0xc8,0x06,0x87,0x22,0x3f,0x13,0x2c,0xb0,0x81,0x91, -0x48,0xcd,0x84,0x5b,0xd8,0xe0,0xd4,0xb8,0xdd,0x08,0x7b,0x54,0xb4,0xe5,0x28,0xb9,0x10,0x93,0x53,0x3e, -0x10,0xab,0xdd,0x70,0x71,0xa2,0x86,0x97,0x9d,0x6d,0x27,0xfe,0x4e,0xf7,0x71,0xda,0x11,0x86,0x49,0x83, -0x52,0x73,0x25,0x91,0x17,0x5f,0x8f,0x31,0x06,0xba,0x70,0x9e,0xff,0x7b,0xe7,0x5e,0x9c,0xc0,0x9d,0xba, -0xa3,0x26,0x1c,0x5e,0x13,0x3a,0x85,0xf9,0xd5,0xe6,0xe6,0x46,0x24,0xaf,0xc3,0xdd,0x41,0xac,0xbb,0x29, -0x70,0x1c,0x8f,0x91,0x81,0x5f,0x37,0x18,0x9d,0xcf,0x34,0x5d,0xd4,0x15,0x0f,0xf0,0x15,0x72,0xde,0xd2, -0x75,0x18,0x04,0xf7,0xc6,0x5e,0x0d,0x84,0x7f,0x2f,0xe5,0x54,0xdd,0x59,0x00,0x33,0x85,0xef,0xbe,0xad, -0xda,0x12,0xc2,0x5d,0x97,0xa5,0x08,0xb0,0x10,0x70,0xa3,0xe0,0x75,0xce,0x9e,0x3f,0x74,0xa4,0xe7,0x2d, -0x84,0xbc,0x11,0x41,0x57,0x72,0xb3,0x3f,0x37,0x4c,0xd3,0x49,0xdd,0x42,0x29,0xd1,0x0a,0x2e,0xf3,0xd6, -0xb1,0xba,0x1b,0xb5,0x27,0x8c,0x83,0x20,0x65,0xae,0xa2,0x2c,0x11,0xa2,0x9e,0x70,0x3f,0xa1,0x52,0xa1, -0x3f,0x13,0xd3,0x86,0x75,0x09,0x48,0x5c,0x72,0x67,0xdb,0x13,0xa3,0xef,0x6d,0x8d,0x7a,0x93,0x5b,0xd1, -0xbb,0xbe,0x44,0x2d,0xbd,0x0b,0x3b,0x57,0x0d,0x11,0xec,0xd7,0xac,0x64,0x84,0x39,0xd6,0x87,0x7f,0x76, -0xe7,0xe1,0x9f,0xdd,0x12,0x9d,0xd9,0x2d,0xc8,0xd9,0x5c,0xb6,0x15,0x7a,0xed,0x9e,0xfb,0x78,0xec,0x6e, -0xc9,0x4f,0x39,0x3d,0x6e,0x77,0x65,0x33,0x78,0xfa,0xe2,0xf8,0xe3,0xa0,0x6b,0x9a,0x66,0x84,0xd8,0x0d, -0xb4,0x3a,0xcd,0x4b,0x9a,0xc8,0xe7,0x90,0x6e,0x25,0xc6,0x4a,0x99,0x09,0x1f,0x77,0x4f,0xc8,0x77,0x70, -0x91,0xd0,0x3b,0x61,0x2e,0x09,0x8f,0x2d,0xbb,0x65,0x70,0xa5,0xc9,0xc8,0x3c,0x82,0x33,0xe9,0xb0,0x05, -0x7a,0xe7,0x05,0x7e,0xcf,0xa3,0xbd,0x28,0x92,0x7b,0x91,0x17,0x43,0x12,0x2c,0x7c,0x0f,0x5d,0xf2,0xcf, -0xd0,0x2d,0xbf,0x8f,0x92,0x22,0x94,0xf3,0xf4,0x06,0x51,0x07,0xcd,0x38,0xd9,0x90,0xb8,0x13,0x00,0x58, -0x49,0x6c,0x03,0x57,0x1e,0x98,0xac,0xd5,0xd4,0x29,0x2e,0x9c,0x4a,0xea,0xc8,0x85,0xca,0xe1,0x1a,0x0b, -0xd5,0xc3,0xf1,0x05,0x0d,0x64,0x9d,0x0b,0x5e,0x8e,0x07,0x7e,0xf9,0xe9,0xa0,0x78,0xa1,0xe0,0x25,0xb4, -0x71,0x80,0xd7,0xdf,0xf2,0xde,0x4a,0xb3,0xee,0xcc,0x3f,0x10,0x02,0xcc,0x8a,0x0c,0x71,0x70,0x56,0x12, -0x23,0xa1,0x59,0xd0,0x9c,0x24,0x48,0x13,0xfa,0x3f,0x1b,0x17,0xc5,0x24,0x4d,0x3a,0xeb,0x90,0xe7,0x75, -0x12,0x27,0x75,0xbd,0x2e,0x89,0x93,0xbc,0xb3,0x42,0xc4,0x24,0xd3,0x6e,0x94,0x63,0x14,0xc5,0x18,0x12, -0x91,0x36,0xaa,0xa3,0x3f,0xad,0xf4,0x4b,0x7b,0x2e,0x12,0x1d,0x9b,0x5a,0x3a,0x76,0x7d,0x2d,0xcc,0x3f, -0x2f,0xfc,0x69,0x5d,0xdf,0xbc,0x4b,0xff,0x42,0x5c,0xc9,0x7e,0x86,0x4b,0x73,0x90,0xbe,0xc6,0xc0,0x5a, -0x28,0x74,0x45,0x44,0xbb,0x78,0x7a,0x5c,0x12,0xbb,0x81,0x03,0x7f,0x98,0x27,0x0b,0x48,0xaf,0x23,0x41, -0xcf,0xc5,0xfa,0x4c,0xe8,0x5e,0x2d,0x74,0x17,0xa1,0x2f,0x34,0xca,0x5e,0xc2,0x97,0x49,0x3b,0x74,0xc0, -0x20,0x40,0x8c,0xb4,0x1b,0x0e,0xd5,0x53,0xa6,0x8a,0x7a,0x92,0x15,0x34,0xf9,0xb8,0x8a,0x26,0x9f,0xfd, -0x8f,0xb5,0x34,0x19,0xf9,0x9f,0xd7,0xd0,0x64,0x64,0xa3,0x09,0x4e,0x50,0xbd,0x8b,0xd8,0xc1,0x91,0x8d, -0x1c,0x08,0x6f,0x82,0x7d,0xd6,0xe8,0x30,0x12,0x5f,0xd5,0x2e,0xff,0x5a,0xe9,0xb2,0xf6,0x86,0x2b,0x3a, -0xfd,0xeb,0xaa,0x4e,0xff,0xcd,0xff,0xb5,0xb6,0xd3,0x5f,0xfd,0xbf,0xad,0xe9,0xf4,0x57,0x6b,0xa7,0x79, -0x64,0xb9,0xeb,0xa2,0x37,0x5f,0xad,0x9d,0x66,0xc0,0x6e,0x01,0xf6,0x37,0xad,0xd3,0x5f,0xc5,0x57,0xb5, -0xd3,0xdf,0x2b,0x9d,0x2e,0x5e,0x7c,0x45,0x9f,0xbf,0xaf,0xea,0xf3,0xb9,0xff,0xbd,0xb6,0xcf,0x87,0xfe, -0xf9,0x9a,0x3e,0x1f,0xae,0xe8,0x33,0x8f,0x21,0xaa,0xdc,0x63,0x55,0x2b,0xfa,0xcc,0x80,0x34,0xe1,0xcf, -0xb5,0x3e,0x1f,0x8a,0xaf,0x6a,0x9f,0xdf,0x57,0xfa,0xfc,0xa6,0xd4,0xe5,0xf7,0xab,0xba,0xfc,0xd6,0x7f, -0x5f,0xdb,0xe5,0x6f,0xfe,0xdb,0x35,0x5d,0xfe,0x56,0xe9,0xf2,0x0f,0x67,0xdd,0x2e,0x16,0x35,0x33,0x3a, -0xbd,0x67,0xfc,0xdf,0x8f,0x08,0x71,0x66,0x83,0x78,0x22,0xff,0x03,0x88,0xae,0x15,0x62,0x87,0x72,0xce, -0x2c,0x39,0xcf,0xb4,0xda,0xbb,0x5d,0x1b,0xc4,0x4f,0x5a,0xed,0x67,0x36,0x88,0x9e,0x42,0xfd,0xad,0x46, -0xf6,0x6f,0xe2,0xab,0x4a,0xf6,0x37,0x15,0xb2,0x2b,0x75,0x1b,0x41,0xf6,0x37,0xab,0xc8,0x7e,0x6a,0x77, -0x74,0xa0,0xb4,0x6d,0x9b,0x4b,0xd8,0xf9,0x17,0xee,0xe0,0xb4,0x93,0x96,0x8f,0xb5,0x53,0x3c,0x02,0x4f, -0x3b,0xd3,0x6a,0xfa,0x14,0xd3,0x47,0xd5,0xf4,0x11,0x9f,0x79,0x9f,0xfc,0x37,0xb5,0x43,0xfd,0xce,0xff, -0xb4,0x66,0xa8,0xdf,0xd5,0xcc,0xee,0x53,0xb4,0x78,0xf6,0xf0,0xef,0x54,0xfc,0x1d,0xf1,0x92,0x7d,0x57, -0x33,0xcb,0x4b,0xe8,0x2d,0xac,0x86,0xd7,0xf5,0xa9,0x58,0xf5,0x27,0x6d,0x88,0xde,0x89,0xaf,0xea,0x10, -0x7d,0xa8,0x0c,0x91,0x52,0x25,0x12,0x43,0xf4,0x61,0xd5,0x10,0xed,0xaf,0x1f,0xa2,0x31,0x9c,0x63,0x83, -0xfd,0xea,0x10,0xed,0xe3,0x10,0xed,0x57,0x87,0x68,0x1f,0x87,0x68,0xbf,0x3a,0x44,0xfb,0x72,0x88,0x5e, -0xfb,0x1f,0x6a,0x87,0xe8,0xc8,0x7f,0xbd,0x66,0x88,0x8e,0x6a,0x86,0x68,0x5f,0x0c,0xd1,0xbe,0x18,0xa2, -0x7d,0x39,0x44,0x47,0xd5,0x35,0xd0,0xa5,0x35,0xf0,0x5a,0x23,0xf0,0x91,0xf8,0x32,0x09,0x7c,0x2b,0x56, -0xd6,0x90,0x43,0x97,0x9e,0x21,0xd6,0x73,0xb2,0x75,0xa2,0x1e,0x62,0x2c,0xc9,0x78,0x80,0xd8,0xd4,0xfc, -0x0e,0x6c,0x6a,0x8d,0xac,0x02,0xe7,0x42,0x54,0xcb,0xee,0x65,0xf6,0x72,0x42,0x6b,0x00,0x9f,0x8d,0xad, -0xf9,0x42,0x7d,0x11,0x00,0x84,0x36,0xf8,0x38,0xc9,0x9a,0xdb,0x8f,0xe5,0xa3,0x2e,0x4c,0x24,0x17,0xfe, -0x97,0x49,0xcd,0xf0,0x2c,0x8a,0x6d,0xb9,0x73,0x3f,0x92,0x17,0xa0,0xad,0x6d,0xe0,0x7c,0x23,0x75,0xf9, -0xd8,0xda,0x1e,0x64,0x9a,0x9b,0x62,0x6f,0xde,0x4a,0x1e,0x6b,0xb0,0x74,0xe9,0x70,0x3d,0x01,0x02,0xc3, -0xeb,0x78,0x93,0x76,0xfc,0x58,0x2f,0x2f,0x40,0x7a,0x25,0xa9,0xa3,0xe1,0x0b,0x45,0x7a,0xfe,0xa9,0x87, -0xd8,0xdc,0xec,0x96,0xc5,0x96,0xc0,0x9d,0x0e,0x85,0xb7,0xed,0x64,0x11,0x8c,0x81,0xe9,0xc7,0x23,0xad, -0x5f,0x4e,0xea,0xb5,0x9b,0x69,0xe7,0x62,0xb7,0xb3,0x3d,0xec,0x6c,0xf7,0xe1,0x97,0x10,0x5d,0x54,0x6e, -0xc0,0x95,0x13,0x6d,0x56,0x3b,0x56,0x4b,0x5b,0x59,0x39,0x52,0x83,0xa5,0x46,0x0c,0xa0,0xf0,0xe3,0x99, -0x79,0x93,0xe3,0xe6,0xc7,0x36,0x21,0x94,0xd1,0xfc,0xb8,0xb6,0xf9,0x85,0xad,0xac,0x6a,0x7e,0xa1,0x35, -0xdf,0xec,0xb5,0x61,0x78,0xe1,0x9a,0x68,0x43,0xe1,0xc0,0x26,0xe1,0x32,0x50,0x58,0x75,0x39,0xb1,0x94, -0x55,0x28,0x9c,0x95,0x51,0xb8,0x70,0x1f,0x1f,0xd8,0x50,0x98,0xda,0xc4,0x67,0x6b,0xaf,0x11,0xf2,0x0e, -0x61,0x29,0xab,0x50,0xb8,0x28,0xa3,0x90,0xba,0x8f,0xa7,0x36,0x14,0x2e,0xed,0xb2,0x39,0x03,0x89,0xcb, -0x5a,0x24,0x3e,0xda,0x4b,0x2b,0x34,0x3e,0x96,0xd1,0x98,0xba,0x8f,0x2f,0x6d,0x68,0x7c,0xb6,0x8a,0xfe, -0x0c,0x2c,0x3e,0xd7,0x62,0x31,0xb2,0x16,0x56,0x48,0x8c,0xca,0x48,0x8c,0xdc,0xc7,0x9f,0x6d,0x48,0xfc, -0x6a,0x17,0x2c,0xae,0x65,0xe7,0x25,0x2f,0x6f,0x2d,0xad,0xd0,0xf8,0x5b,0x19,0x8d,0xc0,0x7d,0xfc,0x6b, -0x19,0x8d,0xbb,0xec,0xf8,0xb6,0x40,0x06,0x66,0x8c,0x15,0xfd,0xdd,0xb2,0xe6,0xd5,0xf2,0x36,0x2d,0xbd, -0x25,0x45,0x89,0xbb,0x9e,0x2c,0xe5,0xd7,0x97,0xb2,0xf1,0x8a,0x78,0x0c,0x9f,0xca,0x47,0x26,0x57,0x3e, -0x3b,0x69,0x30,0x65,0x90,0xd2,0xdb,0x92,0x70,0x4c,0x85,0x2a,0x05,0x4c,0xdc,0xc2,0x9e,0xc1,0x31,0x5c, -0x30,0x35,0x35,0x61,0x09,0xbb,0xaf,0x91,0x55,0x51,0x5a,0xe7,0x62,0xaf,0xb3,0x33,0x14,0x75,0x50,0x8a, -0x83,0xcf,0x17,0x01,0x3d,0x57,0x97,0x92,0x2f,0x31,0xb8,0x21,0x0a,0x80,0xd7,0x10,0x6d,0x1f,0x88,0x75, -0x41,0x3e,0x39,0xd3,0x64,0x6e,0xe8,0x73,0x48,0xd1,0x6a,0xf1,0x8c,0xaa,0x9f,0xad,0x81,0x5e,0xce,0x61, -0xf5,0xa6,0xee,0x86,0xf2,0x7c,0x24,0x4f,0xcb,0x66,0xe9,0x99,0x4a,0x23,0x0b,0x1d,0x96,0xc6,0x19,0x2e, -0x35,0x3a,0x52,0xf6,0x4b,0x8a,0x4f,0x24,0xa6,0x03,0x53,0x36,0xbf,0x28,0x7c,0xec,0x11,0x45,0x09,0xd6, -0xaf,0x01,0x2d,0x9c,0x9c,0x32,0xe0,0x3f,0xd6,0x01,0xfe,0x83,0x1e,0x90,0xd5,0xda,0x31,0x99,0x03,0xee, -0x55,0x02,0xbd,0x5c,0xc5,0x03,0xc4,0x7e,0xd3,0x0a,0x50,0x30,0x01,0x12,0xeb,0x76,0x84,0x4f,0x68,0x19, -0x3e,0x68,0x77,0xf0,0xe0,0x6e,0x6b,0x67,0xb6,0xbb,0xd5,0xd4,0xbf,0xd0,0x46,0xac,0x2d,0xca,0xfd,0x43, -0x2f,0x07,0x0b,0xb5,0xad,0x1f,0xe4,0x54,0x4e,0xfb,0x24,0xe6,0xa8,0xd6,0x39,0x98,0xcb,0x32,0x7e,0x85, -0x50,0x33,0xd2,0x78,0xce,0xe7,0xc2,0x65,0xd9,0xc1,0x1c,0x79,0x4b,0xe2,0xf9,0x04,0x9e,0xd2,0x9f,0x18, -0x7d,0xb9,0x2b,0xd0,0x36,0xb0,0x5e,0x5f,0x39,0x76,0x46,0xd5,0x0d,0x1f,0xee,0xea,0xae,0xb1,0x30,0xdd, -0xa2,0x83,0x17,0x1b,0x1a,0x78,0x73,0xd2,0xbf,0x9b,0x50,0x44,0x84,0x09,0x46,0x44,0xc8,0x3a,0xe8,0x41, -0x6d,0x73,0x73,0xb2,0xcb,0xbf,0x94,0x2f,0x35,0x02,0x10,0x31,0xee,0x67,0x68,0x79,0x17,0x13,0x47,0x83, -0xf6,0x77,0x85,0x5e,0xde,0x7c,0x2b,0x06,0x4c,0x14,0x7f,0xe6,0x0e,0x66,0x14,0x76,0x61,0xd6,0x42,0xdf, -0xff,0xde,0x5c,0xff,0x90,0xef,0xd3,0x6f,0xb2,0x8b,0xe6,0xcc,0x9b,0x78,0x01,0x9c,0xb1,0x85,0xed,0x65, -0x65,0x9e,0x99,0xe2,0xfd,0xda,0xf9,0x26,0xb5,0x2b,0x91,0xba,0x35,0x53,0xc2,0xdd,0x2a,0x28,0x75,0x8b, -0x19,0xa0,0xd5,0x73,0x8f,0x41,0x32,0x1a,0x63,0xce,0x0b,0xa8,0x00,0x34,0x9b,0xef,0xf5,0x50,0xe3,0x70, -0x20,0xe9,0xbd,0x2c,0xd3,0x7b,0xb8,0xf4,0xbb,0x7d,0x95,0xbb,0xd7,0x6b,0x57,0xc7,0x63,0xa9,0x0f,0xd8, -0x12,0x36,0xc0,0x2a,0xcc,0x72,0xb7,0xb3,0xd3,0xb2,0x95,0xc4,0x21,0x48,0xb4,0xf3,0x6c,0xa9,0xb1,0xbc, -0x82,0xe1,0xb5,0x2c,0x76,0x7a,0x1b,0x14,0x11,0x13,0x80,0xa0,0x78,0xbd,0xeb,0xb5,0x97,0x30,0x76,0x53, -0xf8,0x37,0xb2,0x16,0x11,0x0f,0x85,0x66,0xa1,0xa0,0x93,0x7a,0x5c,0xd0,0x5e,0x88,0x5f,0x0d,0xab,0x65, -0xb0,0x21,0x54,0x58,0xb4,0x95,0x79,0x63,0x16,0xc1,0x79,0x85,0x0d,0x64,0x34,0xb3,0x6c,0x05,0xe8,0xd1, -0xd4,0x2c,0x10,0x74,0x66,0x02,0x2f,0x7b,0x11,0x7a,0x41,0xad,0x16,0xc1,0x56,0xea,0xd0,0x12,0x2f,0x9b, -0x45,0x21,0x4a,0x20,0xb5,0xcb,0x9b,0x15,0x1a,0x12,0x53,0xa1,0x1c,0x52,0xc7,0x1a,0xd0,0xc9,0xb0,0xb2, -0x38,0xab,0x2b,0x96,0x75,0x83,0x4d,0x3d,0x00,0x9b,0x33,0xdd,0x54,0x58,0x84,0xa2,0x92,0x82,0xf4,0xcc, -0xb8,0xe7,0x77,0xe5,0xd9,0xce,0xc7,0xad,0xe1,0x70,0x4f,0x4f,0x7f,0xac,0xb6,0x96,0x5e,0x57,0xab,0x40, -0xaa,0xe9,0x5a,0x32,0x6a,0x8f,0xf9,0x70,0xc5,0x09,0x9d,0x55,0xfb,0x57,0xbc,0x79,0xea,0x1e,0xc2,0xa0, -0xdf,0xb2,0x93,0xd1,0xd0,0x54,0xbb,0x89,0xa0,0x44,0x7f,0x35,0xf7,0x94,0x55,0x46,0x81,0x1c,0x40,0x72, -0x85,0x95,0xe7,0xa2,0x50,0x35,0xc0,0xcc,0x0e,0xc2,0xf6,0xa5,0x8f,0x84,0x74,0xa8,0x4d,0xe6,0xa0,0x09, -0x09,0x1e,0x0c,0x13,0xfc,0x1b,0xc1,0xbf,0x40,0x87,0x9c,0x0d,0xb5,0xf9,0x85,0x90,0x33,0x80,0xc8,0xe0, -0xdf,0x45,0x19,0x32,0x18,0x9a,0x93,0x4a,0x64,0xaf,0xed,0x13,0x62,0x60,0x50,0xce,0x23,0x7b,0x6c,0xa0, -0x9f,0x54,0x1c,0xa5,0x77,0x75,0x74,0xd2,0x2e,0x1c,0x24,0x6a,0xdc,0x48,0xd2,0x01,0xbe,0x10,0xf6,0x8e, -0xa9,0x9f,0xc2,0xff,0x47,0x7e,0x24,0xbc,0x3d,0xa3,0xd1,0x71,0x02,0x13,0x23,0x2b,0x5e,0xc7,0xa5,0x09, -0x38,0x37,0xa1,0x06,0x22,0xe9,0xcc,0xfc,0x18,0x7a,0x95,0x74,0x32,0xf8,0x9b,0xc1,0xdf,0x0b,0xf8,0x7b, -0x51,0xcf,0xde,0x56,0x18,0xe1,0x40,0x2c,0x27,0x8d,0xbb,0x5d,0xcb,0x09,0x73,0xbf,0x4b,0xd6,0xe8,0x5a, -0x8c,0x2e,0x73,0x78,0x28,0x93,0x74,0x7d,0xa3,0xd5,0xd3,0x10,0xc7,0xe8,0x77,0xd0,0x72,0x46,0xb4,0xcc, -0x88,0x96,0x17,0xab,0x68,0xa9,0xe4,0x69,0x65,0x5a,0xa6,0x40,0xbb,0x94,0xc6,0x23,0x86,0xf9,0x84,0x23, -0x12,0xc3,0x9c,0xfa,0x97,0xd3,0xb2,0x6a,0xd9,0x6f,0xa1,0x25,0x4f,0xe0,0x5b,0xd3,0x92,0x66,0xb1,0x75, -0xad,0x35,0x14,0x35,0x49,0xcf,0xab,0x08,0x1f,0x20,0xb7,0xa3,0xf0,0x0e,0x3d,0xce,0xef,0xd3,0xe3,0x59, -0x72,0x69,0xf7,0x71,0xcd,0x0c,0xbc,0xc7,0xaa,0x16,0xe8,0xb3,0xa1,0xa4,0x85,0x62,0x6e,0xb8,0xf8,0xcc, -0xcc,0xee,0x71,0xc9,0x1f,0xa9,0xd4,0x5c,0xcb,0x56,0x2a,0xf1,0x02,0x2d,0x51,0xf0,0xb8,0xd1,0x45,0xb5, -0x3a,0x21,0xab,0xba,0x42,0x3f,0xb5,0xe9,0xad,0x39,0x11,0xa9,0x9b,0xf1,0xc6,0x78,0x93,0x27,0x97,0xb7, -0xf5,0x95,0x54,0x19,0x5a,0xf1,0x46,0x7f,0x6b,0x5d,0xdb,0x15,0x77,0x56,0x4d,0xa7,0x3e,0xe5,0xbb,0x22, -0xda,0x0d,0x04,0x13,0x18,0x10,0x54,0xe9,0xd1,0x7c,0x07,0xa3,0x2a,0x8f,0xee,0xfe,0x17,0xd5,0xc2,0x3a, -0xa8,0x9a,0x47,0x9a,0xac,0x56,0xab,0x7c,0x57,0x69,0xfa,0x65,0x95,0x23,0x59,0xe9,0x8e,0x49,0x1e,0xb2, -0xb0,0x21,0xcf,0xc6,0x70,0x65,0x9b,0x1f,0x01,0xad,0xf1,0xae,0x72,0x7b,0xea,0x0e,0xe2,0xdd,0x64,0x58, -0x54,0xa3,0xe2,0x0a,0xa9,0xfa,0x30,0x80,0x58,0x3f,0x2e,0x0f,0xc2,0x5e,0xd2,0xd2,0xf5,0xe3,0x38,0x19, -0x98,0x38,0x03,0x68,0x73,0x73,0x75,0xc5,0xe5,0x4a,0xdb,0xd5,0x2a,0x5b,0xa5,0x2a,0x6f,0x56,0xe9,0x66, -0x22,0xa5,0x6d,0x56,0xeb,0x86,0xb6,0x04,0x7e,0xf8,0xb5,0xaa,0x0f,0x74,0xf9,0xc4,0xa1,0xfc,0xb0,0xcc, -0x4d,0xe5,0x38,0x73,0x58,0x6b,0x07,0x8f,0x95,0xf2,0x68,0xb3,0x10,0x5a,0xb6,0xfe,0xd5,0xcd,0x2a,0xed, -0x60,0x43,0x01,0x44,0xc7,0xb8,0xd6,0x6f,0xbb,0xd4,0x05,0x15,0x5e,0x34,0x24,0x74,0x49,0x8f,0x15,0xbb, -0x52,0x93,0xc5,0x6b,0x31,0xcc,0x8f,0xa2,0xf3,0x10,0xa8,0xab,0x3b,0x8e,0x87,0x9d,0x40,0x5c,0xeb,0x6b, -0x14,0x66,0x6f,0x64,0x3c,0x05,0x4b,0x30,0x6a,0xe9,0x4d,0x69,0x3f,0x9e,0xa4,0xb8,0xe9,0x75,0x1e,0x37, -0x5e,0x45,0xb0,0xd4,0x92,0x6f,0x5b,0x80,0xcd,0xda,0x06,0x6d,0x58,0x6a,0xd9,0x49,0x1c,0xb2,0x5a,0xab, -0x61,0x0a,0x79,0x0b,0x84,0x6f,0x8c,0xe1,0xa8,0x68,0x59,0xdf,0x67,0x00,0x94,0xe9,0x8b,0xb6,0xb6,0xaf, -0xaf,0x9b,0xca,0x4c,0x20,0x2d,0xb6,0x08,0x21,0x6a,0xa2,0x6d,0x02,0x17,0x04,0xd7,0x0c,0xfc,0xd7,0x74, -0x8a,0x51,0x2d,0x44,0xc4,0x71,0x1b,0x8a,0xa4,0xa3,0x6b,0x95,0xde,0xac,0xc2,0x0e,0xb5,0x73,0x74,0x2e, -0xb2,0x68,0xdd,0x1d,0xc0,0xe1,0x1c,0x15,0x5c,0x64,0x86,0x51,0xd5,0xaa,0xcd,0x8e,0x4b,0x81,0xdc,0xfe, -0x80,0x76,0xa3,0x62,0x15,0x29,0xa7,0xec,0x30,0x21,0x86,0x26,0x32,0x5d,0xb4,0x8e,0x90,0x80,0xd2,0xaf, -0xfb,0xe6,0xe6,0x06,0x60,0xed,0x38,0x26,0x19,0xb5,0xda,0xd9,0xce,0x4f,0xca,0xe8,0xf4,0xee,0x54,0x8d, -0x1d,0xee,0x3c,0xd4,0x7c,0x36,0x4a,0x29,0x62,0x6a,0x6c,0xfc,0x9a,0xa8,0x10,0x6e,0x4f,0x62,0x40,0x45, -0xdb,0x42,0x3f,0xdb,0xb1,0xe1,0x53,0x32,0x3d,0xf8,0x9d,0x38,0x91,0xc8,0x61,0xb5,0x46,0x78,0xb4,0x5a, -0x23,0x5c,0x9a,0xb4,0x48,0x6b,0x1c,0x0a,0x3d,0x04,0xa8,0xbb,0xd2,0xe8,0xc9,0x4c,0xa6,0xe3,0xab,0x1a, -0xa7,0x42,0x38,0x33,0xbf,0xc2,0xdc,0xfe,0xf1,0xc9,0x4d,0x21,0xfa,0x03,0x9e,0xb0,0x64,0x6c,0x29,0x65, -0x7d,0x64,0x73,0x19,0x50,0x85,0x9d,0xc5,0x32,0x9b,0x35,0xb3,0xe3,0xe4,0x04,0x67,0x8b,0xde,0xf1,0x6c, -0x99,0xa1,0x8a,0x6c,0x38,0xe1,0x48,0x75,0x0e,0x30,0xa8,0x16,0xa2,0x16,0x66,0x29,0x7f,0xdc,0x18,0x6f, -0x98,0x83,0x8c,0x6b,0xa7,0xb2,0x6c,0x2d,0x23,0x4f,0x5b,0x94,0x89,0xa3,0xcd,0xd8,0xb8,0x1e,0x4f,0x40, -0x28,0xed,0x8c,0xe7,0x49,0x16,0x66,0xb9,0x26,0x6d,0x94,0xba,0xed,0xc5,0x90,0x54,0x7a,0x02,0xcc,0x64, -0x53,0xc9,0xbc,0x6f,0x23,0xe2,0x25,0x01,0x2a,0x07,0xf1,0x16,0x02,0x22,0xe4,0x58,0x54,0x2f,0x59,0x74, -0x85,0xd8,0x5a,0x3a,0xf4,0xef,0xd7,0x95,0x3b,0xf4,0xa0,0x6c,0x5d,0xfd,0xef,0xd2,0x85,0xfb,0x8c,0x86, -0xdd,0x08,0xfb,0x3f,0xb9,0x47,0xba,0xb3,0xa5,0x3f,0xfe,0xf9,0x22,0x5a,0xd1,0x79,0xb8,0xb8,0xd6,0x75, -0x1e,0xb9,0xed,0x40,0xdb,0x76,0xb5,0xcb,0x90,0x69,0xce,0xe3,0x5e,0x05,0x35,0x0c,0x42,0x52,0x74,0x9d, -0x77,0x6b,0x6a,0xe4,0xf4,0xc5,0x87,0xf7,0x47,0xa7,0x47,0xc0,0x92,0xbf,0x7e,0xf9,0xe9,0xf4,0xe5,0xdf, -0x5f,0xbe,0x3f,0x3a,0xc4,0xf6,0xee,0x6f,0x6f,0x96,0xdc,0xd3,0xde,0x4c,0x5c,0xd9,0x93,0x95,0x1b,0xb0, -0xab,0x6f,0xed,0xb1,0xda,0xda,0xe7,0x78,0x79,0x87,0xaa,0x50,0xeb,0x77,0x30,0xd9,0x9d,0xcb,0x3d,0x7e, -0x02,0x7b,0x7c,0x81,0x8f,0xd3,0x6a,0x3a,0x40,0xb2,0xf9,0xf1,0xe4,0xa4,0x83,0xd1,0x64,0xb2,0x45,0x30, -0x0e,0x87,0x8e,0xd3,0x77,0x3a,0x4e,0xcb,0x4c,0x75,0x3d,0xfa,0xe6,0x90,0x51,0xa9,0x7b,0xa3,0x8d,0x24, -0x30,0x00,0x85,0x21,0xa6,0x78,0x56,0x0a,0x6c,0x6f,0x5f,0x78,0xaf,0xbd,0xd5,0x3c,0x65,0xeb,0xa5,0xa4, -0x3c,0x35,0x61,0x7c,0x5d,0xbe,0x71,0xd8,0x3d,0x70,0x59,0x17,0xd9,0x9d,0x26,0x67,0xaa,0x26,0x67,0x5e, -0x09,0xfb,0x27,0x94,0x5a,0xfe,0x88,0xc5,0x2a,0xbd,0x10,0x5a,0x89,0x94,0x5b,0x16,0x25,0x45,0x1e,0xa5, -0x88,0x81,0xe6,0x69,0xab,0xb9,0x0f,0xb3,0x76,0x9e,0xba,0xde,0x30,0xf1,0xec,0x18,0xf6,0x56,0x70,0xc4, -0xda,0xc2,0x55,0xe5,0xeb,0xb8,0xee,0xbc,0x7a,0x6b,0x2f,0x5f,0xd9,0x6f,0x8c,0x5d,0xc4,0xf0,0x81,0x57, -0xb6,0x6a,0xe7,0x4b,0x8c,0xd5,0xd8,0xb4,0x60,0x77,0xad,0xa6,0xa8,0xf5,0x24,0x2f,0xe2,0x36,0x28,0x5b, -0x2b,0x6d,0x08,0x32,0x9d,0xb3,0xc8,0x4c,0xce,0x22,0xb0,0x70,0x16,0x99,0xb8,0x4c,0xa0,0xac,0x3d,0xd4, -0xc2,0xbf,0xe2,0xd5,0xe6,0xbb,0x79,0x85,0x72,0x8e,0xd9,0x12,0x1e,0xd7,0x3a,0x89,0x95,0x16,0x84,0xf2, -0x09,0x4c,0xc1,0xf2,0xfa,0x6f,0x5e,0x99,0xe1,0x87,0xf0,0x7a,0xa4,0xdf,0xa7,0xe4,0xba,0x0a,0x65,0xac, -0x55,0x0c,0xcf,0xa9,0xc2,0xb0,0x26,0xbf,0x45,0xf3,0x79,0x40,0xf1,0x30,0x6d,0x9a,0x73,0x2a,0x86,0x9f, -0xb0,0x04,0xf0,0x3b,0xdb,0xee,0x5a,0xdc,0x4d,0x73,0x5e,0xf6,0x85,0x18,0x4d,0xa4,0x23,0xc4,0x8f,0xb0, -0xba,0x3f,0xd0,0xdb,0xae,0xf2,0x85,0xb8,0x10,0xc1,0x3a,0xfb,0x8d,0x60,0x94,0x25,0xf3,0x65,0x1e,0x0e, -0x1a,0x28,0x52,0x02,0x26,0xb4,0x41,0x62,0x21,0xfc,0x21,0x4c,0x39,0xf0,0x27,0x9b,0x6f,0xc0,0x2f,0xcd, -0x6d,0x22,0x4f,0x57,0xe5,0x62,0x04,0x06,0x56,0xf8,0x17,0x79,0xfe,0xfd,0xed,0xa4,0x59,0x6d,0xbb,0xf6, -0xe1,0x6c,0xa0,0xa2,0x30,0xa5,0x25,0x6f,0x7c,0x2c,0xe8,0x10,0x5b,0xfc,0xa7,0x70,0x1e,0xe0,0x92,0x2b, -0xaa,0x7c,0xbe,0x9c,0xbe,0x8a,0xbe,0x19,0x77,0x59,0x44,0x2a,0xfc,0x63,0x91,0x0a,0xbd,0x2e,0xbb,0xef, -0x3f,0xcb,0xe9,0xd1,0x33,0x44,0x99,0x0f,0xdc,0x54,0x57,0x45,0x96,0xea,0xd2,0x9d,0xf9,0x06,0x66,0x5e, -0x93,0x43,0x7a,0x69,0x51,0xf5,0xb6,0x70,0xf6,0xec,0xfd,0x3f,0x24,0xc7,0xb0,0x8c,0x72,0x93,0x03,0x00 +0xeb,0x41,0x8c,0x75,0xcb,0x62,0x1d,0x71,0x52,0x8d,0xa5,0xd8,0x47,0x0c,0x2a,0x1e,0x4d,0x50,0xe5,0xd8, +0x98,0xee,0x62,0x64,0x1d,0x8e,0x71,0x87,0x98,0x32,0xea,0x21,0xa1,0xae,0xf3,0x7d,0x7c,0x25,0xba,0x13, +0xdf,0x97,0x49,0xbe,0x4f,0xc3,0x20,0x33,0x18,0xbf,0xf4,0x6c,0xf4,0x73,0x18,0xa4,0xd5,0x71,0xad,0x0e, +0x98,0x57,0xe8,0xe7,0xe2,0x7d,0xd4,0x98,0xd6,0x50,0x0d,0x0a,0x3c,0x63,0x1e,0xac,0x5c,0x23,0x51,0x3b, +0xc2,0x4b,0xa3,0x14,0x32,0xeb,0x19,0x9c,0x86,0x3e,0x91,0x0c,0x74,0x5e,0x25,0xe9,0x54,0x13,0xcc,0xdf, +0x1b,0x9f,0x33,0xaa,0xe7,0x0f,0x40,0x08,0x9d,0x22,0xfc,0x7e,0x74,0x32,0xf2,0x0e,0x7b,0x77,0x64,0x84, +0x6e,0x1a,0x2f,0xa8,0x1b,0xf3,0xf2,0xff,0xe9,0x6c,0x84,0x8e,0x3a,0x8c,0x4d,0x3a,0xe5,0x34,0xdc,0x01, +0xe6,0xe1,0x14,0x1b,0x95,0x9b,0x80,0x97,0xeb,0x00,0xb7,0xd9,0x99,0x61,0xd3,0x50,0x41,0xa9,0x1b,0x95, +0xe5,0x4a,0xfc,0x70,0x7c,0xb7,0xbb,0xb3,0xec,0xb3,0x47,0x85,0x2b,0x39,0xa2,0xd3,0x5e,0x80,0x8f,0x11, +0xd4,0x7c,0x70,0x63,0xb4,0x22,0xef,0xc8,0xd0,0x89,0x36,0x4f,0x38,0xe3,0x7e,0x2c,0x67,0x73,0x6d,0x19, +0x31,0x29,0xca,0x85,0x78,0xce,0xd5,0x96,0xca,0x98,0x8c,0x66,0x19,0x9c,0x16,0x40,0x30,0x83,0xa3,0x16, +0xb4,0x47,0x29,0x49,0x31,0x50,0x9a,0xc6,0x91,0xf0,0x5b,0x80,0x2e,0x9b,0x4e,0x49,0x51,0xb6,0x60,0x7b, +0xf1,0xfd,0x41,0x26,0x0f,0x08,0xe0,0x02,0x8e,0x34,0x7c,0x2a,0x43,0x18,0x76,0xd1,0xd0,0xa2,0x90,0xe3, +0x1d,0x2d,0xb3,0x64,0xca,0x91,0x47,0xf9,0x3c,0xd4,0x0d,0x3d,0x1c,0x74,0xbf,0xae,0x5a,0xa2,0x5a,0xc2, +0x8e,0x4c,0x83,0xea,0xda,0x1c,0x24,0x4c,0x3d,0xb9,0x52,0x05,0x7e,0x7e,0xc3,0x4e,0x6e,0x3b,0x5f,0x43, +0xba,0xc6,0x77,0x80,0x6c,0x2f,0xcb,0xee,0x13,0xd8,0x7b,0x64,0x40,0x16,0x08,0xf4,0x96,0x7a,0x19,0x8e, +0x48,0x89,0x19,0x1f,0x4f,0xd1,0x03,0x84,0xd0,0xa7,0x21,0x39,0x4f,0x60,0xbe,0x20,0x08,0x51,0xd6,0x46, +0xe1,0x04,0x12,0xb3,0x17,0x4a,0x03,0x47,0x02,0xa8,0x7c,0xe8,0x49,0x20,0xed,0x1f,0x7d,0x43,0x0f,0x8d, +0x5e,0xb3,0x92,0x60,0xc2,0x6e,0xc8,0x18,0x48,0x7b,0x86,0xa6,0x07,0x67,0x42,0x0f,0x06,0xe7,0x20,0x59, +0xc6,0xe4,0x99,0x30,0x77,0x45,0x4a,0x1a,0x5c,0xfe,0x9d,0x7d,0x85,0x0a,0xb4,0xcb,0x37,0x3c,0x56,0x31, +0x66,0x9b,0x07,0x9a,0xa7,0xe7,0xc1,0x37,0x5e,0x4e,0x8e,0xd7,0xeb,0x3d,0x03,0xbc,0x00,0x84,0xab,0xa4, +0x91,0x05,0xee,0xd6,0x40,0xd1,0xbc,0x0f,0xb0,0xcd,0xf9,0xed,0x39,0x1b,0x0c,0x4a,0x2e,0x38,0xea,0x00, +0x7d,0x04,0x50,0x47,0x80,0x75,0xe0,0x26,0xae,0x4c,0x4e,0x4d,0xbc,0x04,0x07,0x32,0xe6,0xa2,0x47,0x3e, +0x88,0x0a,0x8d,0xee,0xb4,0x33,0xf3,0x93,0xe3,0xee,0xc9,0x16,0x9a,0xa1,0xa4,0x9d,0x0c,0x3e,0x7a,0x27, +0x5b,0xc0,0xa8,0xc0,0xc7,0x05,0x7c,0x6c,0xf3,0xc7,0x3d,0x50,0x64,0x8e,0x09,0x0d,0x70,0x11,0x3f,0x8d, +0xa5,0xd7,0x29,0x51,0xe1,0xf6,0x71,0x47,0x0b,0x0a,0x92,0xd0,0x41,0x6c,0x00,0x88,0xfb,0x3c,0x75,0x5a, +0x9d,0x93,0x05,0xa9,0x05,0x1f,0x5b,0x6e,0x43,0xf1,0xd3,0xb6,0xfa,0x55,0xa6,0x5e,0xb7,0x64,0x84,0xe4, +0xcc,0x95,0xdf,0x7e,0x40,0xfe,0x4a,0x90,0x2d,0x92,0x59,0xea,0x5a,0x20,0xd8,0x25,0x02,0xd1,0xee,0x82, +0x1a,0x76,0x85,0x50,0xbe,0x3a,0x67,0xb5,0xcc,0x82,0xc9,0x0c,0xe8,0x9a,0xca,0x4b,0x29,0x3a,0x8b,0xb4, +0xba,0xb4,0x37,0x57,0x81,0x87,0xfd,0xbd,0x55,0x7b,0xac,0x33,0x9e,0x69,0xf9,0xcd,0x0d,0x77,0x03,0xf9, +0x9e,0xaa,0x26,0xbb,0xfe,0xc4,0x2a,0x9e,0x6b,0x1d,0x5d,0x3c,0x6c,0xc5,0x5d,0xe5,0x5a,0x91,0x57,0xa2, +0xcb,0x62,0xa1,0xa1,0xa4,0xe1,0x90,0xf7,0x76,0x6d,0xa9,0x68,0xf2,0x87,0x72,0x2b,0x15,0x81,0x94,0x18, +0x2a,0x69,0x61,0x51,0xc5,0xab,0xf2,0xde,0x17,0x78,0x1a,0x74,0xf1,0xbb,0x38,0xf7,0x64,0x85,0x85,0xa8, +0xa3,0xae,0x52,0xf3,0x65,0x2d,0xf0,0x4a,0xa5,0xcc,0xef,0x52,0x03,0xca,0xec,0xe3,0x76,0x28,0x6b,0xe0, +0xda,0x87,0xa5,0xce,0x7b,0x60,0x5d,0x2a,0x56,0x4a,0x28,0xb5,0x21,0xd4,0x3c,0xaa,0x95,0x0b,0x4d,0x89, +0x92,0x32,0x48,0x70,0xe2,0xca,0x43,0x00,0x1f,0xb9,0xcb,0x8b,0x52,0xbd,0x7d,0x0b,0xe6,0x55,0x5b,0x97, +0x45,0x9e,0xf2,0x22,0xd2,0xd4,0x93,0x51,0xf9,0x9a,0x73,0xd8,0x47,0x45,0xdb,0x28,0xc3,0xfe,0x2a,0x30, +0x74,0x32,0xbf,0x01,0x68,0x56,0x13,0x72,0x63,0x27,0xc4,0x22,0xd4,0x82,0x8a,0x34,0xbd,0x9e,0xf6,0x8f, +0x7c,0x84,0xa1,0x77,0x46,0xa9,0x37,0x0e,0x69,0x03,0xbd,0xab,0xfc,0x58,0x87,0x73,0xb9,0x8d,0x7c,0xb3, +0x58,0x20,0xb4,0xc9,0xa1,0x41,0xb6,0xde,0x49,0xf8,0x86,0x43,0x8e,0x16,0x48,0x30,0x4d,0x7c,0xb1,0x55, +0x2b,0x35,0x6e,0xb9,0x6e,0x55,0x42,0x79,0xe5,0xb0,0x65,0x91,0x58,0x23,0x02,0x38,0xf0,0x83,0xa1,0x73, +0xf0,0xe1,0xfd,0xfb,0x97,0x07,0x47,0x2f,0x5f,0x38,0x7d,0xe7,0xfd,0x87,0xa3,0x46,0xf1,0x0d,0x65,0xe2, +0x7c,0x61,0x29,0x72,0xf8,0x8f,0xf7,0x07,0x8f,0x24,0xbc,0xf8,0xc0,0x9d,0x6c,0x81,0x6e,0xb6,0xc4,0xd1, +0xc1,0x57,0x22,0x13,0x09,0xb8,0x1d,0x4d,0x1e,0x3e,0xeb,0x0e,0xb4,0xf4,0x89,0xb0,0x12,0x24,0xea,0xce, +0x57,0x67,0x2f,0x21,0x7b,0xfb,0xa9,0x99,0xbd,0xfd,0x54,0x65,0x2f,0xfc,0xc9,0x20,0xf0,0x17,0x2d,0x67, +0xd2,0x28,0xac,0x0d,0x97,0x64,0x7e,0x38,0xd3,0x52,0xe6,0x94,0x72,0xae,0xa5,0x8c,0x29,0x25,0x73,0x6e, +0xb0,0x96,0x99,0x77,0xe6,0x4d,0xcb,0x6a,0x1c,0xf4,0xb4,0x8d,0xc7,0xd3,0x60,0xaa,0x19,0x04,0x36,0x0d, +0x9b,0xb7,0xa9,0x69,0xf0,0x36,0x2d,0x3f,0x80,0x04,0x75,0x8f,0x1b,0xd2,0x04,0xce,0x56,0x07,0x1e,0x31, +0x38,0xf5,0xfb,0xcd,0x99,0xca,0x5c,0xa4,0x64,0x1b,0xe7,0x38,0xe8,0x58,0x4c,0xa6,0x61,0x58,0x03,0x4e, +0xe4,0x42,0xb3,0x56,0xd0,0x3a,0x73,0xc5,0xac,0x3d,0xf7,0x0d,0x26,0x4e,0xeb,0xce,0xb9,0xde,0x9d,0x99, +0x7f,0x6e,0x69,0xe2,0xbc,0xda,0xc4,0x39,0x9f,0x6e,0xa2,0x0d,0x6a,0xe2,0xc2,0x2f,0xcb,0x8a,0x8b,0x46, +0x2e,0xb4,0x46,0x2e,0xc4,0xa9,0x49,0xf1,0x22,0xae,0xb4,0xb7,0x9c,0x80,0x45,0x02,0x14,0xd9,0x34,0x70, +0xd5,0xad,0x58,0xdb,0xd9,0x8f,0x29,0xa4,0xcc,0x23,0x52,0x1e,0xb0,0xbd,0x30,0x05,0xc7,0xf1,0x49,0xad, +0xd6,0x86,0x19,0x3a,0x35,0xe0,0xf9,0x09,0x2b,0x0a,0xa3,0xa7,0x8e,0x7c,0xfd,0x9d,0xf3,0x8a,0xee,0x43, +0x57,0xe2,0xc5,0xb0,0x7f,0x29,0xdf,0x0e,0xd1,0x6b,0xac,0xce,0xb5,0x5e,0x5a,0xb8,0x56,0xc5,0x6a,0x5f, +0x1e,0x87,0x27,0x65,0x03,0x6a,0xd2,0x89,0x47,0xb1,0xf9,0xc8,0x30,0xa2,0x36,0x69,0x56,0x80,0x70,0xef, +0xc4,0x3d,0x3b,0x5f,0xf1,0x54,0x54,0x5b,0x56,0x51,0x26,0xaf,0x25,0x8b,0x0c,0xdc,0x51,0xa6,0xcc,0x77, +0xa6,0xcc,0x57,0x5f,0xd7,0x17,0x30,0xba,0xff,0xdd,0xde,0xfd,0xba,0x3e,0x7f,0xe5,0x3e,0x7f,0x3f,0x66, +0xef,0x82,0xc5,0xf0,0x6b,0xef,0x00,0xe6,0x14,0x20,0x3c,0x0e,0x18,0x8f,0x23,0xff,0x80,0xbd,0xa7,0xa2, +0xc7,0xb9,0x4f,0x3e,0xaa,0x4f,0x1e,0x0d,0x0f,0x58,0x41,0xb2,0x75,0xd0,0x59,0x42,0x0d,0x59,0xbf,0x64, +0xcc,0x7f,0xe4,0x7a,0x87,0xe5,0x75,0xac,0x40,0x80,0x6a,0xa5,0xd9,0x34,0x38,0x24,0x04,0x3f,0x95,0xc4, +0xf8,0x87,0x32,0x2c,0x81,0xab,0x7e,0x08,0xde,0xee,0xc0,0x10,0xec,0xdf,0x88,0x2e,0x21,0xd2,0xfb,0x7e, +0xa0,0x64,0x97,0xba,0xc4,0x6d,0xbf,0xda,0xbf,0x6f,0xd4,0x3f,0x35,0x53,0x84,0x10,0x88,0x71,0x23,0xd4, +0xa4,0x15,0xdb,0xb7,0xe2,0x31,0xca,0x0a,0x43,0x28,0x7d,0x33,0xd0,0xf8,0x08,0xd7,0x15,0xb8,0x3b,0x14, +0x6d,0x7e,0xe4,0x36,0x3f,0xf8,0x1f,0xf5,0x36,0xcb,0x17,0x91,0x63,0x71,0x85,0x46,0xda,0x7c,0xe8,0x44, +0x13,0x24,0xcf,0xb1,0x76,0x79,0xe6,0x74,0xfe,0x2d,0x16,0x22,0x22,0xf8,0x81,0xfd,0xfe,0xea,0xf3,0xc9, +0xef,0x0e,0xe2,0x5d,0xc2,0x81,0xee,0x45,0x83,0xb8,0xd5,0x72,0x75,0xa1,0x02,0x3a,0x88,0x65,0x6b,0xe1, +0x55,0xf6,0x7b,0x2e,0xba,0xda,0x34,0x8d,0x02,0xab,0x7a,0xbf,0xea,0x2e,0x8c,0xaa,0x63,0xac,0xda,0x2d, +0x85,0x16,0x5e,0x3e,0x28,0xd9,0x26,0x1b,0x6f,0xed,0xbc,0xd3,0x36,0x35,0xc1,0x8b,0x69,0x6e,0xec,0xe5, +0xbe,0x93,0xa7,0xcb,0xb0,0x5a,0x54,0xd9,0xcf,0xb9,0xe4,0x55,0xae,0x4e,0x80,0x5e,0x01,0x56,0xc6,0xda, +0x7a,0x7e,0x81,0xb7,0x43,0x6e,0x15,0x83,0x52,0xbe,0xb8,0x9c,0xba,0x03,0x4d,0xa3,0x78,0x43,0x73,0x52, +0x0a,0xfc,0x42,0x4c,0x0c,0x31,0x06,0xcf,0x42,0xe5,0xd0,0x9c,0x1c,0x4b,0xa1,0x40,0xb6,0xd5,0x2a,0xf4, +0xdd,0x75,0x8b,0x00,0x9f,0x80,0x29,0x57,0x69,0x76,0x2b,0x9b,0x06,0x23,0x13,0x53,0x3c,0xed,0x1a,0x5c, +0xe4,0x60,0x8a,0x57,0xdb,0x13,0x0f,0xd5,0xc4,0x7b,0x02,0x8d,0x76,0x7b,0x15,0x1a,0x94,0x5b,0x87,0x86, +0xc8,0xb4,0xa0,0x21,0x72,0xd6,0xa0,0x81,0xf1,0x37,0x4d,0x29,0xf8,0x2f,0xa9,0x2e,0x01,0x3f,0x76,0x2e, +0x91,0x5b,0x55,0x56,0x61,0x8e,0x50,0xfa,0x3c,0x19,0x90,0x02,0x78,0x8a,0x86,0x90,0x18,0x52,0xc2,0x26, +0xa5,0x40,0x08,0x32,0x7a,0x0e,0x2f,0x1b,0xbf,0x7c,0xfa,0x99,0x1d,0x95,0xc2,0xed,0x0d,0x0b,0x5e,0x66, +0x2a,0x5a,0x9d,0x8f,0x4d,0x68,0x0a,0x75,0xdc,0xcf,0xa3,0x04,0x8b,0x84,0x7c,0xd1,0x16,0x38,0x79,0x42, +0xa3,0x77,0x73,0x53,0xaa,0xf6,0x8e,0xe7,0x09,0x05,0x7d,0x13,0xdf,0xd4,0xd4,0xe7,0x70,0x74,0x08,0xbf, +0xc3,0xbc,0x29,0x5b,0xa2,0xd0,0x80,0x12,0xa6,0x93,0xc4,0x82,0x73,0x5e,0xa9,0x99,0x6d,0x44,0x67,0xdb, +0xa2,0x80,0xed,0xce,0x17,0x8c,0x16,0xad,0x25,0xa6,0x9c,0x98,0x1a,0x89,0x39,0x27,0xe6,0x38,0x9d,0x61, +0xf6,0xe9,0x12,0xa8,0x5c,0x97,0xfe,0x6a,0xb6,0x30,0xe8,0x03,0x2c,0x48,0xf3,0x8c,0x02,0xb6,0x38,0xb3, +0x3c,0x5f,0xf4,0x1d,0x8a,0x90,0x5e,0x4e,0xce,0x28,0x1d,0x56,0x14,0x03,0x61,0x94,0x3f,0xa0,0x8a,0x41, +0x31,0x49,0xec,0xd0,0xb0,0x19,0x95,0x10,0xc2,0x81,0x0d,0x02,0xb8,0x57,0xd6,0x72,0x25,0x8b,0x54,0xa8, +0x85,0xd8,0x01,0xa6,0x9d,0xa7,0x04,0x4b,0x1b,0x3d,0x4f,0xbb,0x48,0x7b,0xfa,0xc5,0x54,0xf9,0x31,0x42, +0x17,0xf2,0x05,0xd3,0xdd,0xa5,0x81,0xc7,0x08,0xa0,0x86,0x8d,0x49,0x61,0x4f,0x2b,0x7e,0x4b,0x8b,0x5a, +0xf1,0xc9,0x36,0xb5,0x9e,0x92,0x0b,0x40,0xc3,0xe2,0xfa,0x0f,0xbf,0x90,0xf3,0xef,0x7a,0xc4,0xf4,0x0f, +0x1e,0x90,0x83,0x34,0x74,0x29,0x01,0x1b,0x61,0xad,0xbf,0xdc,0x3a,0x11,0x29,0x1c,0xdc,0x0b,0xb4,0x74, +0xab,0x8a,0xd9,0x0a,0x96,0x9a,0x8e,0x77,0xb4,0x7d,0x1d,0xaa,0x5f,0xfd,0xbc,0x73,0x39,0x8b,0xc6,0xf4, +0x3a,0x85,0xb7,0x8e,0xde,0x13,0xcd,0x5c,0xab,0x61,0x06,0x2b,0xa2,0x17,0x27,0x58,0x8a,0xba,0x87,0x4f, +0xc3,0xc1,0x96,0x57,0x72,0x92,0x82,0xf6,0x37,0x6f,0xb1,0x43,0xb8,0x6f,0x6a,0xa5,0x0a,0xff,0x36,0x6c, +0xd4,0x51,0x56,0x37,0xd6,0x64,0xa5,0x85,0x6a,0xb0,0xb0,0x45,0x42,0x81,0x39,0x82,0xb6,0xe7,0x15,0x58, +0xa5,0x86,0x4c,0xa0,0x35,0xa6,0x7f,0x5d,0xb2,0xf9,0xeb,0x75,0xbb,0xfc,0x86,0x2c,0x25,0xb5,0x6c,0xcd, +0x5a,0xd2,0xb5,0x12,0xb6,0x54,0x16,0xc0,0xb6,0x26,0x6e,0xb4,0x94,0xf8,0xa8,0x8b,0x26,0x95,0x30,0x58, +0x58,0x94,0x99,0x05,0x78,0xee,0x94,0x00,0x95,0x61,0x57,0x19,0x56,0x64,0x18,0xe0,0x28,0xef,0x69,0x93, +0x6a,0x7c,0x09,0x1c,0xf5,0xef,0x0d,0xc8,0x59,0xd0,0x1e,0x4b,0x79,0x8d,0x01,0x29,0x15,0xe8,0x0d,0x68, +0xa1,0xad,0x5e,0x02,0xd5,0x35,0xe3,0x2b,0xef,0xac,0x85,0x4a,0xbc,0x9a,0xc8,0x4d,0x4b,0x11,0xad,0x85, +0x36,0xc5,0xac,0xb6,0x37,0x82,0x39,0x06,0xbc,0xb4,0x95,0x68,0xb3,0x8b,0xb4,0x72,0x29,0xb6,0x05,0xb2, +0x97,0x90,0xa6,0x28,0x15,0x8a,0x52,0xb2,0xbd,0x8c,0xb0,0xac,0x28,0x97,0xd1,0x4d,0x40,0x78,0xea,0x6a, +0x56,0x23,0xfa,0x7b,0x9e,0x6e,0x44,0x54,0x9a,0x43,0x7c,0x18,0x55,0xe6,0x0e,0x25,0x1b,0xa0,0xc0,0x30, +0xc1,0x4a,0x35,0x21,0x4d,0x96,0xc9,0x56,0x73,0x9b,0x4d,0x5b,0xcc,0x62,0x55,0x67,0x7e,0xa5,0xd1,0x2b, +0x19,0xad,0x6b,0x06,0x30,0x95,0x81,0xd6,0x40,0x3b,0xdc,0xdd,0xaa,0x6b,0x8f,0xc2,0x5a,0x0a,0x95,0xc0, +0x4b,0x15,0x48,0x87,0x1c,0x85,0x2b,0x07,0x56,0xd1,0x36,0x57,0x25,0x70,0x94,0x76,0x25,0x5c,0xd3,0xe8, +0x58,0xa8,0xb9,0xea,0xf7,0x19,0x4d,0xe3,0xb5,0x52,0x23,0xeb,0x89,0xd6,0x68,0x49,0xaa,0xcb,0x61,0xef, +0xc6,0xd3,0xae,0x8e,0x95,0x4a,0xe8,0x41,0x75,0x5d,0x1d,0xdb,0x95,0x3a,0x26,0x2a,0x0a,0x9e,0x3e,0x53, +0xe4,0xcb,0x5f,0xc1,0xd8,0xac,0x80,0x95,0x3e,0x55,0x74,0x60,0x07,0xe9,0xd9,0x47,0x1e,0xb1,0xec,0x90, +0x41,0x32,0x29,0x9b,0x9b,0xd6,0x33,0xd4,0xe2,0x3d,0xb1,0x32,0x92,0x5e,0x44,0x7e,0x9b,0x8f,0x4f,0x58, +0xd6,0x35,0xe0,0xd8,0xc0,0x0f,0x3a,0xc2,0x7e,0x8a,0x1e,0x86,0xe2,0xe0,0x22,0x9a,0x06,0xb0,0x2e,0x28, +0x4c,0xd7,0x3e,0x4c,0xd1,0x9c,0xc4,0x09,0xec,0xae,0xb1,0xb3,0x0c,0x28,0xd8,0x69,0x85,0x61,0x89,0x94, +0xc1,0x8c,0x5f,0x0a,0x19,0xed,0x45,0xfe,0x56,0x73,0x3c,0x4b,0x13,0x98,0x14,0xc7,0x8d,0x2f,0x5b,0x27, +0xcd,0xe3,0x2f,0x97,0x9d,0x93,0x96,0xbb,0x25,0xe3,0x18,0x5c,0x5f,0x6f,0xa1,0x85,0xd4,0xd7,0x28,0x5f, +0x01,0x90,0xa0,0x4b,0x3c,0xb7,0x39,0xec,0x77,0x1e,0xcb,0x57,0xaf,0x61,0x3d,0xf4,0x79,0x16,0x85,0x6e, +0xc3,0x92,0xa5,0xc5,0x26,0x40,0xa7,0x0b,0x40,0x5a,0x12,0x0e,0x62,0x0c,0x78,0x28,0x95,0xfc,0x16,0xcd, +0xe7,0xa2,0x95,0x61,0x23,0xbd,0xe8,0xcb,0x1a,0xdc,0xa1,0x56,0x07,0x30,0x13,0x57,0x82,0x64,0x7d,0x0c, +0xb3,0x40,0xf4,0x11,0x48,0x41,0xc2,0x36,0x26,0x74,0x9d,0x1b,0xd4,0x50,0x30,0xa9,0x86,0xd2,0x04,0x91, +0x22,0xca,0x23,0x13,0x12,0x69,0xf4,0x37,0x73,0x8f,0x55,0x16,0xc5,0x9f,0x31,0x33,0x3b,0xa2,0x45,0x3f, +0xea,0xa8,0x67,0xc0,0x12,0x04,0x13,0xb5,0x52,0x6d,0x27,0x0b,0xce,0x82,0x34,0x82,0x2a,0x29,0xfe,0x82, +0xee,0x46,0x5a,0xb2,0x69,0x61,0x33,0x52,0x76,0x65,0x5e,0xe6,0x05,0x6c,0xeb,0x88,0x0e,0xf8,0x49,0x75, +0x02,0xcd,0x3d,0x34,0xef,0xf0,0xca,0xa5,0x32,0x32,0x17,0xc5,0x55,0x36,0x73,0x21,0x93,0x0c,0x85,0x3e, +0x5c,0xc6,0x18,0xd1,0x24,0x4c,0xf3,0xef,0xcc,0x88,0x60,0xc0,0x41,0x12,0x54,0x66,0x28,0x39,0x20,0x47, +0xe2,0xf1,0x89,0x1f,0xb8,0x45,0x3b,0xc4,0xf6,0x72,0xcc,0x40,0xfc,0xf5,0x9e,0xe2,0xc5,0x51,0x08,0x45, +0x4a,0xc3,0x20,0x85,0x07,0xe2,0xc2,0x88,0x5c,0xe9,0x8b,0xe8,0x02,0xf9,0x14,0xca,0x03,0x2e,0x01,0x78, +0x2b,0x76,0x50,0x28,0xd3,0x26,0x51,0x86,0xbe,0x04,0xd0,0x40,0xf1,0x90,0x96,0x1d,0x75,0x98,0xf3,0x2c, +0x4a,0xce,0xb0,0x9e,0x14,0xe7,0x44,0x0b,0x8f,0xc2,0x3b,0x5b,0x00,0x2d,0x71,0x64,0xa8,0x4e,0x5d,0xc7, +0x77,0x73,0x93,0x1d,0xc9,0x92,0x10,0x02,0x7a,0x8f,0x27,0x0e,0x64,0xe2,0xf5,0x07,0xb3,0x1d,0x81,0x46, +0x49,0x53,0xb8,0xb6,0xd4,0x58,0x42,0xc8,0x82,0xc8,0xbb,0x45,0x81,0xf2,0x0d,0x8d,0xcc,0x98,0x8e,0x75, +0x94,0xbd,0xe0,0xce,0x4f,0xea,0x90,0x25,0x7a,0x47,0x59,0xd3,0xe9,0x0b,0x32,0x4d,0x9c,0x52,0x1d,0x36, +0x72,0xaf,0xac,0x0d,0x0b,0x70,0x78,0x8c,0xc6,0x18,0xad,0xc4,0x48,0xd4,0x48,0xc4,0x96,0xd8,0x93,0xf1, +0x58,0xcb,0x79,0xd4,0xd8,0xda,0x93,0x1d,0x51,0x79,0x7e,0x51,0xd1,0x42,0x39,0x7f,0x17,0xce,0x78,0x49, +0x25,0x1a,0xc5,0x11,0xbb,0xa4,0x60,0x53,0xaa,0x9e,0xd2,0x3e,0x9c,0x9d,0xc9,0xda,0xf7,0xbe,0xc4,0x8d, +0xc6,0x2e,0x8a,0x64,0xf6,0x04,0x84,0xa9,0x5b,0xdd,0x72,0x60,0xdb,0xc4,0xdc,0x2f,0xf1,0xee,0x16,0x15, +0x2e,0xc2,0x79,0x1c,0x25,0x4d,0x13,0xad,0x02,0x89,0x43,0x28,0xe2,0x1b,0x18,0x15,0xfa,0x13,0xac,0x20, +0x21,0x61,0xe3,0xdb,0xe0,0x1b,0xd7,0xa3,0xfb,0xbb,0x91,0x8d,0x9f,0x93,0xff,0x6b,0xc2,0x40,0x1b,0x8e, +0xe8,0x23,0xca,0x1a,0x69,0x4c,0x19,0xe0,0x43,0xfc,0x68,0x77,0xcb,0x08,0x67,0xb2,0xa2,0xff,0xb7,0xad, +0xf3,0xec,0xec,0xd6,0x95,0xc6,0x1a,0x4d,0xe3,0x55,0x24,0xe5,0x55,0x53,0x6e,0x5b,0x90,0x8b,0x33,0x15, +0x39,0x6f,0xd9,0xb8,0x28,0x45,0xac,0xee,0xea,0x8a,0x09,0x64,0x5d,0xf5,0x0c,0x6b,0xd4,0xfd,0x09,0xb9, +0x8c,0x95,0x55,0x13,0xc4,0x6d,0x6b,0xde,0xe8,0x9a,0xeb,0xd3,0xb6,0xbd,0xe9,0xeb,0x13,0x2e,0x84,0xea, +0x98,0xef,0xd0,0xe1,0xa8,0x38,0xc7,0x63,0xad,0x62,0x73,0x91,0x19,0x33,0xb8,0xb4,0x42,0x4f,0xa4,0x08, +0x67,0x19,0x33,0x1b,0x83,0xcd,0x03,0x4f,0xc3,0xe1,0xa0,0x75,0xd4,0x4e,0xd1,0x0b,0x85,0xdc,0x2f,0xf5, +0xf0,0x41,0x45,0xec,0x66,0xf6,0x0a,0x47,0xd7,0x66,0x60,0xc9,0x97,0xc1,0x7c,0x18,0x8a,0x1f,0x32,0x06, +0x56,0x79,0x4f,0x2b,0xef,0x8a,0x55,0x7e,0x84,0x9c,0x84,0xe3,0xc9,0x25,0x2d,0x9b,0xcc,0xa9,0xc5,0xea, +0x3d,0x62,0x5a,0x65,0x9c,0x67,0x60,0x8a,0x4f,0xa5,0xec,0xf7,0x1e,0xf2,0x5b,0xda,0x1b,0x19,0xf9,0x4c, +0x77,0x84,0xcf,0xfb,0xb6,0x08,0xe9,0x82,0xef,0x66,0xe5,0x0d,0xc1,0x68,0x22,0xb7,0x35,0x11,0x17,0x4d, +0xe4,0x5a,0x13,0xb1,0xd9,0x44,0xca,0x1a,0x7f,0xd4,0x86,0xb6,0xf9,0xb3,0xef,0xa1,0xc8,0xcf,0xf6,0xf2, +0x61,0xd6,0xcf,0xbd,0xa8,0x65,0x6b,0x42,0x1f,0x5c,0xd9,0x98,0x3e,0xeb,0xde,0x91,0x97,0xfc,0xd2,0xe0, +0x52,0xfb,0x57,0x04,0xdd,0x8f,0x6e,0x50,0x72,0x5a,0x34,0x53,0x59,0x0c,0x06,0x70,0xeb,0xe9,0x8d,0x31, +0xed,0xcd,0xcc,0x1f,0x51,0xc3,0xd8,0x1c,0xc7,0xf8,0x5d,0x02,0x7c,0xe6,0x8b,0xe4,0x52,0x9b,0x1a,0x91, +0x0c,0x5a,0x8d,0x2f,0xb6,0x00,0x1c,0xe2,0x49,0xfe,0x82,0x39,0x0c,0xbc,0xc6,0xf0,0xa1,0xa7,0x4e,0xb5, +0xa6,0xf2,0xf1,0x99,0xfb,0x22,0xe0,0xc9,0xf5,0x75,0xd4,0x91,0xc2,0x5c,0xe2,0x03,0xc4,0xdd,0x06,0xd6, +0xd1,0x12,0x36,0x54,0x11,0xa4,0x1a,0x00,0x31,0x4e,0x23,0x33,0xd1,0xf3,0xef,0x07,0xc8,0xf3,0x03,0xc1, +0x7d,0x9d,0x66,0xb0,0xb4,0xd2,0x60,0x4a,0x11,0x95,0xe4,0xf9,0xea,0xe7,0x90,0xca,0xd9,0x18,0x04,0x83, +0xfd,0xa1,0x6a,0xb2,0x99,0x52,0xef,0x9d,0x62,0x8a,0x5c,0x5f,0x77,0xcb,0xdd,0x7f,0x01,0xb5,0xbf,0x4b, +0x2e,0xb4,0x09,0xac,0x33,0x5e,0x03,0x0e,0x00,0x59,0xc1,0xd0,0xd7,0x71,0x94,0xbd,0xcf,0xfc,0x66,0xde, +0xaa,0x62,0xd6,0xb6,0x74,0xc1,0xdd,0x62,0x8e,0x03,0x67,0xd6,0x61,0x34,0x09,0xbd,0x0c,0x19,0xe0,0x66, +0xe6,0xc3,0x14,0xcb,0xf6,0x7a,0xf4,0xb3,0x87,0x33,0x3a,0x7b,0x5c,0x02,0xac,0x8c,0x2d,0x05,0x37,0x89, +0x6f,0xcc,0xe3,0x4e,0x1f,0xf6,0xd8,0xd8,0xe4,0x82,0x49,0xb4,0xcc,0x6e,0xcc,0x83,0x94,0xa1,0x39,0x5e, +0x03,0xed,0x82,0xfd,0xb6,0x56,0x61,0x19,0x82,0x02,0x8f,0xb4,0x9b,0xbd,0x76,0xe6,0x96,0x90,0xbb,0xa9, +0x4c,0x2e,0xa4,0xee,0x4b,0xdd,0xeb,0x5c,0x41,0xdc,0x5b,0x91,0x16,0xa3,0x20,0xd7,0x4d,0x36,0x26,0x2b, +0x20,0x34,0xc5,0x10,0x65,0xcd,0xdb,0xd1,0x59,0xe3,0x6b,0xcc,0xd7,0xbf,0x78,0xcf,0xef,0xec,0xa8,0x2b, +0xb8,0x2b,0x83,0x89,0x5b,0x20,0x37,0xea,0x72,0xdc,0xa2,0xb8,0x75,0x5a,0x73,0xc8,0x4e,0x85,0xb5,0x08, +0x17,0x5c,0x0d,0x29,0x20,0xe8,0xce,0x57,0x52,0xc9,0x85,0x8a,0xcf,0xa6,0x6a,0xbc,0xb6,0x2b,0xae,0xe2, +0xb8,0x27,0xa2,0x4c,0x69,0x58,0xc4,0xc3,0x66,0x1d,0xfb,0x58,0x5b,0x4e,0x65,0x54,0xd4,0xd0,0x8d,0xc8, +0xe7,0xfa,0x58,0x0d,0x4b,0xc7,0x3d,0x7a,0x21,0x63,0xa7,0x05,0xfa,0xa5,0x80,0x93,0x84,0xfb,0xbb,0x52, +0x01,0x36,0xe0,0xad,0x2f,0x13,0xfa,0xb5,0x74,0x18,0x9a,0x63,0xdf,0xda,0xee,0x77,0x8d,0xe5,0x23,0xa2, +0xa2,0x89,0x25,0x84,0x71,0x11,0xa8,0x7e,0x11,0x3d,0xa0,0xb4,0xa0,0x14,0x30,0x2f,0xaa,0xd0,0xb2,0xa8, +0xec,0xe5,0xc5,0x12,0x53,0xe5,0x8d,0x65,0x56,0xdb,0xa8,0xad,0x0c,0x2d,0xbc,0xb0,0x5d,0x5a,0x73,0xa5, +0x0a,0x4a,0x63,0xa6,0x5f,0xc5,0x2a,0xc3,0x86,0xe2,0x88,0xc2,0xc5,0x31,0xc9,0xa6,0x6d,0xc1,0xda,0x1b, +0x39,0x20,0xf4,0x9a,0x02,0xf5,0xe2,0x4e,0x29,0x43,0xe3,0x15,0xe1,0x75,0xc8,0x16,0xa0,0x08,0x2d,0x63, +0x29,0xf7,0xcb,0xc2,0x52,0xca,0x10,0xcc,0x70,0x58,0x92,0xa6,0x73,0x8e,0xc7,0x11,0x0e,0x79,0x23,0xc7, +0xa3,0x02,0x7f,0x09,0x35,0xe5,0x1a,0xd8,0xe5,0x82,0x21,0x49,0xb1,0x1b,0x23,0xff,0x14,0xf3,0xa1,0x2a, +0x4f,0x53,0x88,0x89,0x35,0xd0,0x94,0x21,0xfc,0xb4,0x19,0xa7,0xd5,0x8d,0xae,0x8e,0xb8,0xf6,0x8c,0x43, +0xfa,0xd5,0x74,0x52,0x9d,0xa1,0xeb,0x7a,0x79,0xfb,0x3e,0xae,0xe8,0x61,0xf9,0x7a,0x69,0xde,0x3e,0x2d, +0xa3,0x4c,0x5b,0x6d,0x2d,0x73,0xa2,0x7a,0xae,0x31,0x43,0xe6,0xc5,0xaa,0x38,0x4b,0xc4,0xec,0x53,0x45, +0x78,0xe6,0xb7,0x9f,0xde,0x94,0x6f,0x26,0xda,0xd9,0x14,0x52,0x76,0xe4,0xdb,0x4a,0xb6,0x7a,0x9e,0xc9, +0x16,0x6f,0x6e,0x3e,0x28,0xcb,0x57,0x76,0x7f,0x44,0x8d,0xcf,0xb6,0xff,0x44,0x5e,0xd3,0xe5,0xd4,0xf7, +0x05,0x36,0xeb,0x19,0xae,0x76,0xa4,0xcd,0x0a,0xba,0x67,0x17,0x9b,0x44,0x85,0x5f,0x60,0xac,0xcb,0x27, +0x5b,0xed,0xf1,0x5a,0xda,0x64,0xee,0x71,0xd6,0x96,0x9b,0x92,0x9b,0xa0,0xa5,0xb1,0xee,0xba,0x63,0xb9, +0x52,0x97,0x57,0xcf,0xac,0xdd,0x7e,0x67,0x2e,0x1f,0xeb,0xc5,0x66,0x60,0x67,0x1a,0xab,0x87,0x36,0x3a, +0xa2,0xac,0x9c,0x88,0x4a,0x3b,0xbb,0xca,0x63,0xde,0x83,0x93,0xdc,0x28,0x8e,0xd6,0xcd,0x4d,0x72,0xa8, +0x1c,0x8c,0xb2,0xa6,0x85,0x29,0x68,0xe7,0xee,0x1e,0x77,0x12,0x72,0x8e,0x66,0xb8,0x0f,0x24,0xf3,0x09, +0x05,0xca,0x51,0x67,0x33,0x86,0x8d,0x13,0x84,0x96,0x1c,0x22,0xf1,0x2e,0x76,0x4a,0xfc,0xb2,0xb0,0xd3, +0xe1,0x5f,0xde,0x67,0x0d,0xc5,0x97,0xe8,0x47,0x01,0x55,0xa0,0x36,0x7a,0xba,0x40,0xd0,0xbf,0x92,0x47, +0x03,0xc5,0x04,0xbf,0x9d,0xa9,0x7b,0xc5,0x42,0xde,0x62,0x44,0x6f,0xcc,0x90,0xbe,0xa3,0x89,0x1e,0xe4, +0xa8,0x3b,0x9e,0x29,0x6b,0x32,0x80,0x54,0x5d,0x8e,0xa7,0x8b,0x60,0x0c,0x98,0x9f,0x39,0x43,0x42,0x08, +0xa1,0x92,0x05,0xe4,0xec,0x0c,0x85,0xf8,0x4a,0xf0,0x60,0x40,0x70,0x27,0x54,0x7e,0x21,0x3f,0xb0,0x40, +0x71,0xae,0x84,0x2d,0x04,0x02,0x16,0xd0,0x4f,0x1c,0xa0,0xcd,0x98,0x42,0xfd,0x1d,0x4f,0xbf,0xd4,0xf5, +0x7b,0xf2,0x9b,0x77,0x82,0xfe,0x53,0xaf,0xb4,0xfd,0x41,0x01,0x29,0x5b,0x85,0x26,0x0a,0xe5,0x33,0x7c, +0xf1,0x12,0x7e,0x0c,0xb4,0xdd,0xfc,0x06,0xc6,0x15,0x83,0x30,0x3f,0xd0,0xf5,0xd4,0x78,0x5b,0x8d,0x3e, +0x1c,0x4a,0xe9,0xa0,0x1f,0x7a,0x74,0x91,0xd7,0x61,0x4a,0x47,0x02,0xde,0xcd,0xe1,0x66,0xee,0xcd,0xbc, +0xc4,0x4b,0xbd,0xb9,0x37,0xf1,0xc6,0xde,0xd2,0x5b,0x90,0xe0,0x38,0xf2,0x7b,0xbb,0xd5,0xc8,0x5c,0x31, +0x4b,0x8d,0x8b,0x20,0xbc,0x5d,0xb7,0x7f,0x8c,0x4e,0x87,0x58,0x72,0xd0,0x9c,0xc8,0x1f,0x63,0x3f,0xc2, +0x20,0x95,0xc3,0xb1,0x12,0x1a,0x8b,0xf0,0x65,0xee,0x70,0xd2,0x2f,0x66,0x65,0x21,0x52,0x5e,0xaa,0xd7, +0x2d,0x8a,0xe5,0xde,0x57,0x4a,0x48,0x68,0x35,0xd1,0xf5,0xe6,0xfe,0x52,0x6a,0x89,0xa5,0xbb,0xf3,0x41, +0xda,0x6a,0xb9,0xb9,0xbf,0x44,0x87,0x47,0x01,0xdb,0x48,0x91,0x94,0x3a,0x93,0x81,0x4f,0x83,0x61,0x73, +0x46,0x18,0x78,0x89,0xbf,0xbd,0x0b,0xeb,0xc9,0xc4,0x3f,0xf2,0x7a,0x84,0xb7,0x40,0x76,0xe1,0x07,0xc7, +0xb3,0x13,0xd8,0x9b,0x24,0x77,0x12,0x78,0x09,0xba,0x6c,0x0c,0x2f,0x1b,0xe8,0x04,0x9f,0x7a,0xa2,0xb3, +0xb6,0x37,0x82,0xb2,0x1a,0xb1,0x6b,0x9f,0x61,0xf8,0x69,0x87,0xc2,0x6f,0xf9,0x57,0x74,0xfe,0x19,0x02, +0x7b,0xef,0xca,0x5c,0x62,0xbd,0xca,0x7a,0x12,0x8d,0xac,0x58,0x4c,0x02,0xa2,0x7e,0x25,0x09,0x80,0xda, +0x65,0x64,0xe4,0x57,0xd7,0x90,0xc8,0x5e,0xb5,0x80,0x0c,0x90,0x15,0xab,0xc7,0x80,0x93,0x4b,0xa7,0x98, +0xf9,0x05,0x41,0x1d,0x79,0xc0,0xe9,0xaa,0x98,0x11,0xc6,0x7c,0x2b,0x14,0x28,0xaa,0x0f,0x6d,0x1b,0xa6, +0x03,0x63,0x18,0xa3,0xb2,0x81,0x4c,0x79,0x09,0xb0,0x84,0x7b,0x60,0x89,0x5e,0xbb,0xd7,0x75,0x59,0x87, +0x1d,0x5f,0xe9,0x66,0xd1,0x19,0x2c,0x15,0x3f,0x92,0xf3,0xa3,0xe0,0xea,0x02,0x5f,0xc6,0x3a,0x57,0xf7, +0xb6,0x6c,0x98,0x91,0x4f,0x74,0xf2,0x87,0xde,0xc9,0x93,0x5f,0x30,0x10,0x09,0xbf,0xc1,0xb5,0x32,0xa1, +0xdd,0x0e,0xf3,0x2f,0x1b,0x90,0xf2,0x1f,0x6b,0xbd,0xcb,0xd8,0x7e,0xe2,0x87,0x34,0x1e,0x92,0xed,0x0c, +0x56,0x29,0xac,0x08,0xef,0x5f,0x42,0x6d,0x85,0x16,0x82,0xf3,0xeb,0xdf,0x3e,0x1f,0x7c,0x04,0x96,0x50, +0x84,0x7a,0x22,0x4d,0x14,0x19,0x71,0x30,0xba,0xbe,0xe6,0x59,0x19,0x49,0x7d,0x16,0x8c,0xb4,0x5c,0x8e, +0xe5,0x9d,0x51,0x50,0xf6,0x0c,0x67,0x2c,0x2e,0x84,0xbc,0xa3,0x9b,0x19,0xd1,0x1d,0x01,0x6e,0x29,0x2b, +0x1b,0x45,0x1e,0x55,0x6b,0xd6,0xcf,0xae,0xaf,0xab,0xad,0xb8,0x4c,0x05,0x52,0xcf,0xaf,0xdc,0x80,0xa3, +0xe3,0x4c,0x04,0xba,0x9d,0xfb,0xf8,0x5b,0x90,0x1f,0xa3,0x53,0x62,0x87,0x30,0x82,0x45,0x24,0x0f,0xd2, +0xd4,0x9f,0xe3,0x91,0xb7,0xb2,0x36,0x87,0x82,0x31,0x06,0x27,0x45,0xf4,0x75,0xe9,0x04,0x1a,0xeb,0x97, +0xb9,0xbf,0xbb,0x95,0x29,0xd7,0xa3,0xd5,0x3c,0xbd,0x73,0xcd,0x4c,0x35,0x04,0x10,0x32,0xd6,0x0c,0xfa, +0x6f,0xe0,0xad,0x67,0x90,0x25,0xd9,0x80,0xd5,0x84,0x6b,0xca,0x16,0xed,0xe8,0xa9,0x18,0x0e,0x27,0x64, +0x6d,0xe1,0xa6,0xf3,0x2e,0xcc,0x67,0xc9,0x44,0x58,0x2f,0x37,0x50,0x7b,0x00,0x8d,0x03,0xb2,0x96,0x53, +0x78,0x93,0x0f,0xbf,0x45,0x59,0x8e,0xfe,0x3e,0xc5,0x4b,0x66,0x79,0x7d,0x39,0x14,0x96,0x31,0xbd,0x19, +0x48,0x23,0x4a,0xcb,0x1a,0x1c,0xe4,0x1a,0x57,0x82,0x9e,0x94,0x03,0x8a,0x74,0xfa,0xcd,0xf1,0x90,0x15, +0x8a,0xc2,0x4b,0xdc,0x06,0xe7,0xd1,0x05,0x71,0x1c,0xf8,0xf8,0x4d,0x6f,0xf9,0xf8,0x21,0x9d,0x2c,0xe3, +0x6f,0x0c,0xc6,0xcd,0x32,0x67,0xf9,0xf5,0x8a,0xab,0x82,0x2f,0xd4,0xdb,0x0a,0xd3,0x8b,0xf0,0x33,0xb6, +0x4c,0x71,0x6f,0x3c,0xe0,0x90,0xc5,0x26,0x84,0xfb,0x1f,0x1a,0x3e,0xf6,0x9d,0x45,0xb2,0x40,0x7f,0x04, +0x78,0xbd,0x7e,0xa1,0x33,0x47,0xff,0x5c,0x42,0x3b,0xf9,0xf7,0x7e,0xcf,0x93,0xae,0x0c,0xa8,0x8a,0x54, +0x44,0x48,0xee,0x6f,0x7b,0xe7,0xc9,0x28,0x62,0x8e,0x88,0x7f,0x71,0x7c,0x56,0x0c,0x22,0x85,0x46,0x5f, +0x7f,0x0d,0xbf,0x93,0x57,0x63,0xec,0x07,0xaa,0x1a,0x7f,0x60,0x72,0x23,0x78,0x16,0x07,0x0b,0x72,0x74, +0x0f,0x7f,0x8f,0x92,0x79,0x98,0xe2,0x4a,0xe9,0x77,0xba,0x3b,0x70,0x5f,0xed,0x3c,0xff,0xe5,0xf5,0xe9, +0xa7,0x97,0x3f,0xef,0x1f,0xbd,0xfd,0xfb,0xcb,0xd3,0x8f,0xfb,0xaf,0x5f,0x9e,0x7e,0xf8,0xf4,0xf6,0xf5, +0xdb,0xf7,0xa8,0xd7,0x96,0x77,0xc4,0x6f,0xbe,0x96,0x74,0x3d,0x8a,0xf4,0x8c,0xa5,0xc8,0x1a,0xf0,0x28, +0x39,0xcc,0x53,0x5d,0xa8,0x9f,0xcb,0xfd,0xcd,0x71,0x06,0xac,0x9e,0x81,0xea,0x6b,0x18,0x0e,0x89,0x9c, +0x81,0xf4,0x21,0xe3,0x07,0x67,0x40,0xdf,0x48,0xfa,0x3e,0x6f,0x22,0x5a,0x28,0x92,0xed,0x9d,0x9d,0xc7, +0x61,0x27,0xc5,0x0d,0x4c,0x45,0x12,0x71,0x07,0x3d,0x5f,0x1d,0xa6,0x78,0x1b,0xc3,0x38,0x5f,0xad,0x88, +0x95,0x74,0xb3,0x6a,0xe9,0x69,0xb5,0xb4,0x16,0x46,0x36,0xa3,0xd2,0x99,0x2b,0x3c,0xf6,0x56,0x4a,0x8f, +0xaa,0xa5,0x83,0xa2,0x74,0x40,0xa5,0xd1,0x11,0x4c,0xcb,0x8f,0x60,0x92,0x06,0x83,0x51,0x1a,0x06,0x5f, +0x07,0xb2,0x8b,0x41,0xb9,0x8f,0xc1,0x7f,0x70,0x27,0xc5,0x79,0x50,0x29,0x1d,0x54,0x4b,0x27,0x45,0xe9, +0x84,0x4a,0x27,0x05,0x89,0x5a,0x89,0x4e,0x24,0x34,0x8e,0x45,0x1a,0xc1,0xdf,0xa6,0xd3,0xb2,0x50,0x85, +0x7c,0x68,0x58,0xfa,0x6b,0x4f,0x1f,0x41,0xba,0xeb,0x94,0x1a,0x78,0xa8,0xb5,0xc0,0x4e,0x38,0xd2,0x96, +0xf3,0xd0,0x93,0x1f,0x53,0xfd,0x63,0x04,0x1f,0x95,0x0a,0x02,0x59,0x41,0xf0,0x47,0xe1,0xe8,0x91,0xd1, +0xb6,0x05,0xd7,0xe0,0xa1,0xde,0xd6,0x6d,0xb0,0x55,0x1f,0x41,0x05,0x75,0x34,0x0b,0xc6,0xda,0xe0,0x2f, +0x54,0x26,0x3c,0x96,0x88,0xc6,0x33,0xf1,0xf7,0xa2,0x8c,0x04,0x00,0x3f,0xd4,0x4a,0x71,0xdd,0x33,0xbd, +0xa1,0x4c,0xff,0xb8,0xb0,0xb5,0x1a,0xc8,0x0a,0x82,0x55,0xed,0xda,0x89,0x80,0xa5,0x1e,0xea,0xe5,0x6f, +0x83,0xc1,0x4a,0x22,0x8c,0x44,0x6d,0x38,0xfe,0xb7,0x22,0xc0,0xe8,0xa1,0x56,0xe2,0x3e,0x04,0x18,0x49, +0x02,0xd0,0x28,0xde,0xa9,0xf3,0x23,0xd5,0xf9,0xd1,0x3d,0x3b,0x2f,0x95,0x55,0x52,0xdc,0x98,0x81,0x2f, +0x3c,0x4a,0xe8,0xdc,0xab,0xaa,0x95,0x63,0xd4,0x74,0xff,0x2a,0xe8,0xf7,0x6e,0x06,0x14,0x94,0x02,0xef, +0x21,0x61,0x87,0x82,0xc6,0x36,0xb7,0xfe,0xf7,0x0f,0xc7,0xdd,0xf6,0x5f,0x82,0xf6,0xd9,0xc9,0xd5,0x93, +0x9b,0x07,0x5b,0x11,0xa9,0x4b,0x55,0xf3,0x9e,0x52,0x1e,0xbd,0x29,0x47,0xd9,0xfb,0xe0,0x7d,0x33,0xea, +0xa4,0x7e,0xef,0xc7,0xc7,0x9a,0xfb,0x69,0x0e,0x5b,0xd9,0xec,0xc1,0x7d,0xc7,0x83,0xfd,0x61,0x0b,0x63, +0x78,0x15,0xbe,0xca,0xb5,0x82,0x53,0x7b,0xc1,0xed,0xb5,0x05,0x47,0xf6,0x82,0x4f,0x6a,0x0b,0xee,0xa0, +0x63,0x00,0xb9,0x45,0xc9,0x5a,0x02,0x7b,0x2d,0x4f,0xad,0xb5,0x28,0x1e,0xa9,0x4c,0xb6,0x0a,0xd5,0x6a, +0x01,0x6e,0x4f,0xba,0xee,0x7d,0x49,0xb7,0x9e,0xe6,0x35,0xa4,0xab,0xa7,0xf9,0xd3,0x3b,0x90,0xce,0x3e, +0x00,0xb5,0xa4,0x2b,0x66,0xd5,0xb3,0x1a,0xda,0x15,0x10,0x3f,0xd9,0x88,0x67,0x23,0xc0,0xf6,0x5a,0xca, +0xd9,0xf0,0x5e,0x57,0x6a,0x64,0x29,0xb5,0x53,0x5b,0xea,0x2f,0x76,0x9a,0x55,0xab,0xf8,0xd1,0x5a,0xc5, +0xfa,0xb9,0x56,0x47,0xaf,0xbb,0x92,0xab,0x7b,0x2f,0x72,0x6d,0xdf,0x8b,0x5c,0x4f,0x6b,0x4b,0xfd,0x74, +0x5b,0x72,0x3d,0xbb,0x1b,0xb9,0xf0,0x50,0xfd,0x92,0x61,0xd8,0xd9,0xec,0x71,0x13,0x49,0xf3,0xa5,0x73, +0xd2,0x7a,0x78,0x7d,0xdc,0xed,0x9d,0x0c,0xbf,0x74,0x86,0x98,0x72,0xf2,0xd8,0x85,0x4c,0xef,0x5f,0x0f, +0xf0,0xc5,0xb5,0x8f,0x18,0xe0,0xf8,0x27,0xa1,0xc8,0x18,0xd0,0x94,0x48,0xfd,0x12,0x1a,0x01,0xe4,0x90, +0xfb,0xfb,0x22,0xe4,0xb0,0xa6,0x2b,0xdb,0x74,0xdc,0x56,0xcf,0xd3,0x12,0x3c,0x7c,0xe7,0x75,0x1e,0xe2, +0xfd,0x53,0x0a,0x1d,0x94,0x4d,0x7d,0xcf,0x3a,0xeb,0x5e,0xcd,0x93,0x00,0x80,0x5c,0x74,0x2f,0x62,0x19, +0x39,0xcb,0x1c,0xcd,0x2d,0x13,0xa5,0x16,0x43,0xaf,0x8a,0xa1,0x57,0xce,0xbe,0x35,0xca,0xd3,0x3b,0xa1, +0x3c,0x5d,0x87,0x72,0x3a,0xac,0x45,0xba,0x8a,0x23,0xf5,0x02,0xa3,0xc0,0xbe,0xd5,0x69,0xdd,0x37,0x6b, +0x28,0xe7,0x57,0x0b,0xb9,0xb7,0x1f,0xa0,0xd1,0x9d,0x7a,0x3b,0x5a,0xdd,0xdb,0xd4,0xb5,0x8c,0xd2,0x1f, +0x8a,0x6e,0x70,0x27,0x74,0x4b,0xd0,0x25,0xc8,0x2b,0xb1,0x67,0xf8,0xda,0x7a,0x44,0x1e,0xf4,0xdf,0x6b, +0xcf,0xd8,0xdc,0xb4,0xe0,0xf8,0xa7,0xee,0x19,0x36,0x0c,0xfe,0xdd,0x76,0x56,0x2b,0x8e,0x7f,0xee,0xce, +0x6a,0x2c,0x84,0x3f,0x6f,0x87,0x9d,0xdd,0x69,0x45,0x94,0xa1,0xe1,0xb2,0xf6,0xff,0x63,0x8f,0xcd,0xee, +0x84,0x74,0x56,0xb7,0x8c,0xff,0x23,0x76,0xd8,0x8b,0x3b,0xf5,0xf5,0x62,0x55,0x5f,0xff,0x73,0xf6,0x57, +0xf9,0xd2,0x8c,0x77,0x52,0xd8,0xaf,0x8e,0x92,0x4f,0xd3,0x91,0x21,0x2a,0xf4,0x52,0xf5,0x88,0xb0,0xeb, +0xf7,0xb6,0x9e,0xc1,0x75,0x73,0xcf,0xdf,0xd9,0x7a,0x36,0xec,0xf5,0xc3,0xdd,0xde,0xd6,0x93,0x61,0xaf, +0xfd,0xec,0x71,0x33,0x6c,0x43,0x16,0x8c,0xce,0xde,0x53,0xc8,0xa1,0xef,0xa7,0xf8,0xdd,0xf5,0x32,0x1f, +0xc0,0x21,0x6f,0x73,0x13,0x8a,0x77,0x76,0x44,0x29,0x84,0x09,0xe1,0x17,0x42,0x8b,0xf2,0x9d,0x1d,0x04, +0x0f,0x10,0xbc,0xb3,0x43,0xd0,0xa2,0x91,0xbd,0x6d,0x2e,0x0d,0x85,0x09,0x70,0x9b,0x1b,0xda,0x29,0x8a, +0xee,0x70,0x53,0x89,0xdf,0x8c,0x5a,0xcd,0x5e,0x3b,0x72,0x1f,0xc3,0xff,0xa1,0x97,0x8f,0x53,0x2f,0xf6, +0x9b,0x59,0x8b,0xd5,0x10,0x55,0xda,0xdc,0x6f,0x06,0x98,0x16,0x14,0x69,0xe2,0x09,0xe5,0x2a,0xed,0x27, +0xde,0xb4,0x1f,0x7b,0xa3,0xfe,0xfc,0x06,0x29,0x02,0x5c,0xdf,0x51,0xf2,0x26,0xbb,0xb0,0x53,0x84,0xde, +0x47,0x85,0xe0,0xed,0x3c,0xf8,0x26,0xf2,0xa0,0x4d,0x4e,0x89,0x24,0x34,0xb4,0x98,0xb4,0x63,0x15,0xdd, +0xc9,0xef,0x6e,0xf8,0xc9,0x70,0xbe,0x95,0x00,0xce,0x11,0x7a,0xe0,0x98,0x0f,0xbb,0xfd,0xd0,0x87,0xb4, +0xe6,0xb3,0x56,0x33,0x6f,0xa7,0xee,0xd6,0xdc,0x7d,0xf8,0xac,0x9f,0x63,0xd2,0x76,0xab,0x99,0xb6,0x43, +0x48,0xe9,0xa7,0xf8,0xf9,0xb4,0x05,0xfd,0xcd,0xf1,0x13,0xca,0x6e,0xf9,0xcf,0x80,0x60,0x89,0x77,0x35, +0xeb,0x03,0x2e,0xfd,0xcc,0xbb,0xe8,0x07,0x84,0xb6,0xf5,0x4d,0x2b,0x45,0x5d,0x6e,0x61,0x8a,0xb2,0x58, +0xc2,0x6a,0x94,0x3a,0x4d,0x28,0x83,0x80,0x2a,0x60,0xac,0xe0,0xdf,0x45,0xbf,0xe7,0xa5,0xf0,0x6f,0x0a, +0xff,0x46,0xf0,0x0f,0xa5,0x10,0x0c,0x98,0xe9,0x41,0xc2,0xb9,0x0e,0x76,0x1b,0x22,0x95,0x20,0x58,0x90, +0x0d,0x93,0x5e,0x3c,0x61,0x6e,0x74,0xbd,0x2b,0xc4,0x46,0xca,0xf3,0x5d,0x55,0x8f,0x90,0x79,0xa3,0x8d, +0x12,0x9f,0x06,0x7a,0x05,0xc2,0x2b,0x07,0x3e,0x31,0xd9,0x92,0x7d,0xe7,0xf2,0x62,0xe1,0xb4,0xcc,0x3c, +0x7e,0x28,0x30,0xa3,0x86,0xfb,0xdd,0x21,0xfc,0xed,0x3b,0x4a,0xd7,0x11,0x75,0xa0,0x50,0x5d,0xd1,0xa0, +0x4f,0xe7,0x32,0x9a,0x4c,0xc3,0x9c,0xf5,0x2c,0xcd,0x1c,0x8c,0xfd,0x36,0x0f,0xbe,0xdb,0xb2,0xb0,0xaa, +0x92,0xe6,0x7e,0x6f,0xc3,0xaf,0xc2,0xa0,0x59,0xd5,0x5b,0xf8,0x0b,0x84,0xaf,0xcd,0x43,0xbf,0x9d,0x2c, +0x8d,0x0f,0x9b,0x8f,0x34,0xc3,0x03,0x7e,0x31,0x6b,0x0b,0x2c,0x9c,0x46,0x46,0xaf,0xf4,0xce,0x24,0xca, +0x16,0xf0,0xdd,0x6f,0xa0,0x9b,0x8a,0x81,0x23,0x6c,0x10,0x1e,0xb9,0x83,0xd4,0x30,0xe4,0xee,0xf0,0x33, +0xaa,0xea,0xc5,0x29,0x65,0xb8,0x35,0x5d,0x4c,0x31,0x80,0x1f,0xc6,0x99,0x0c,0x9b,0xce,0x28,0x99,0x68, +0x21,0x0b,0xd2,0xc2,0x5b,0x97,0x5e,0x10,0xc0,0xe9,0xfd,0x04,0xfd,0x14,0xfc,0x92,0xce,0x9b,0xdb,0xb0, +0xfd,0x0c,0xd0,0x58,0x2a,0x0c,0x26,0x45,0xe1,0x47,0xbb,0x84,0x74,0x83,0xfc,0xec,0x38,0xe8,0xde,0x76, +0x0b,0xdf,0x17,0xf6,0x3a,0xdc,0xb5,0x4b,0xaa,0xa2,0x71,0x85,0xf6,0xc5,0x53,0x92,0xc4,0xf6,0x1b,0x4b, +0xa8,0xec,0x51,0x2b,0x6a,0x39,0x2e,0x74,0xb0,0x9d,0x86,0x8b,0x30,0xc8,0x1b,0x63,0x7a,0x34,0x16,0x7f, +0x06,0x37,0xbb,0x5b,0x54,0x2d,0x5a,0x24,0x61,0x93,0xf9,0xf9,0x5c,0x18,0x84,0x0a,0x4d,0xb8,0xea,0xc3, +0x93,0x46,0x0f,0x04,0x3f,0x15,0x80,0xe5,0xf2,0x52,0x83,0xee,0xde,0x15,0x28,0xa5,0xbd,0x5b,0xd6,0x80, +0xa0,0x56,0x24,0xee,0x51,0x07,0x9b,0xa2,0x72,0x1d,0xac,0x37,0xb0,0xb2,0x02,0x06,0x3f,0x65,0x48,0xb7, +0xbc,0x6d,0x74,0xd8,0x2f,0xdd,0x67,0x5e,0x1c,0x95,0x77,0xf1,0xd0,0x34,0x91,0x91,0xc3,0x49,0xd0,0x8f, +0xf6,0x6c,0x59,0x88,0x49,0x7d,0xce,0x07,0x9e,0x87,0xd2,0xa2,0x86,0x6c,0xab,0x6c,0x70,0x07,0xcb,0x34, +0x4b,0x52,0x04,0x23,0x0b,0x2b,0x01,0x5d,0xad,0xf4,0xcd,0x32,0x6c,0xf0,0x4f,0xde,0x35,0xda,0x68,0xe9, +0xb6,0x08,0xb1,0xe4,0x38,0x88,0x2f,0x82,0xac,0x0a,0x7f,0x48,0x80,0x46,0xa9,0x47,0x0d,0x52,0xa8,0xf3, +0x1f,0xf5,0x1e,0x35,0xd8,0x79,0x9d,0xff,0x68,0xa7,0xfb,0xa8,0xc1,0x9e,0x57,0x1f,0x41,0x21,0xc4,0x84, +0x2b,0xb4,0xe2,0x0c,0x10,0x8c,0xb1,0xac,0x76,0x7c,0x4b,0xfc,0x0f,0x61,0xd2,0xdf,0x05,0x7f,0x80,0xbf, +0x3b,0xfe,0x50,0x48,0x3c,0x6c,0xae,0xe9,0x06,0x00,0xde,0xaf,0x1b,0x70,0x5e,0xdc,0xa9,0x1b,0x00,0x7f, +0xf7,0x6e,0xd0,0xa1,0xb4,0xa6,0x07,0x00,0x73,0xbf,0x1e,0x7c,0x0a,0x27,0x77,0xea,0x01,0xc0,0xdf,0xbd, +0x07,0x50,0x68,0x0d,0xfe,0x00,0x71,0x3f,0xfc,0x5f,0xa7,0x18,0x98,0xfa,0x2e,0x3d,0xa0,0x12,0x77,0xef, +0x03,0x15,0x5b,0xd3,0x0b,0x82,0xb9,0x5f,0x3f,0x9e,0xcf,0xef,0xb8,0xa2,0xb1,0xc0,0xdd,0x7b,0xf1,0x7c, +0xfd,0x54,0x42,0x90,0xfb,0xf5,0x61,0x7f,0xbe,0x98,0x05,0x77,0xea,0x04,0x95,0xb8,0x7b,0x2f,0xa8,0xd8, +0x9a,0x6e,0x10,0xcc,0xfd,0xfa,0xf1,0x91,0x15,0x31,0xea,0x90,0x16,0xd9,0xcf,0x93,0x6f,0x36,0x34,0x7b, +0xc5,0xf6,0x43,0x16,0x89,0xb0,0xbe,0xe8,0xd8,0xd1,0xd1,0xe5,0x86,0x85,0x6d,0x65,0xe1,0x12,0x59,0x38, +0xfb,0xd6,0xcf,0x03,0xaf,0xd1,0xb1,0xd1,0xb3,0x48,0xe6,0x3e,0x95,0xc0,0x9c,0x15,0x66,0x91,0x6c,0x0d, +0xd6,0x3e,0x4f,0x7e,0x6b,0xa3,0x76,0x49,0x5b,0xba,0x7f,0x60,0xaf,0x60,0x32,0x9b,0x6d,0xf6,0x57,0x40, +0xac,0x2f,0x4b,0xc7,0x7c,0x1b,0xf5,0xd5,0xd0,0xcf,0xb6,0x84,0xf1,0x04,0x17,0x97,0xc4,0xc8,0x2d,0xa1, +0xe7,0x1d,0xcb,0x21,0x5e,0xb1,0x55,0x20,0x9f,0x21,0x69,0xc1,0x81,0xa0,0x49,0x82,0xa5,0x9c,0x49,0x3b, +0x83,0x19,0xc0,0x84,0x53,0x55,0x56,0x56,0x56,0x58,0x35,0xfc,0x11,0xb5,0xdd,0x1e,0x35,0x9e,0x97,0x95, +0x2a,0x39,0xf9,0x77,0xa1,0x79,0xc7,0x9a,0x6f,0x83,0xb2,0x8c,0x36,0x51,0x54,0xc9,0x29,0xf7,0xc4,0xf3, +0xf6,0xd5,0xdd,0x0a,0xb9,0x71,0xa5,0xc3,0x5c,0xdd,0xef,0xa2,0xe5,0x9d,0x6a,0xe5,0x9b,0x45,0x99,0xbf, +0x2c,0x5d,0x20,0x2c,0xbe,0xd5,0xc2,0xad,0x6d,0x2f,0xf5,0x73,0xb8,0x22,0x2b,0x97,0xf7,0xcc,0x94,0x8a, +0x40,0xe3,0x18,0xf7,0x0e,0xf7,0x0b,0xd4,0x5f,0xec,0xf0,0x46,0x13,0x7a,0x91,0xf0,0x32,0xec,0x87,0x83, +0x22,0x46,0x47,0xd4,0xa1,0x50,0x31,0x31,0xc7,0xd7,0xd8,0x46,0x57,0x84,0x22,0x32,0x1d,0x85,0xa4,0x2b, +0xe2,0xa7,0x74,0x07,0x09,0xa4,0x25,0x32,0x0e,0x89,0xb8,0xc8,0x67,0xff,0x4c,0xf3,0x26,0xfd,0x5a,0x24, +0x97,0x4d,0xb8,0x94,0xa0,0x93,0x5b,0xf5,0x1d,0xd0,0x37,0x87,0xfa,0x6e,0xc6,0x7b,0x79,0x6b,0xdb,0x95, +0xba,0x7d,0x4d,0x04,0xf6,0xe1,0x1e,0x1a,0xec,0xa6,0xc3,0xbf,0x74,0xfb,0xdb,0x3f,0x76,0xfb,0x6c,0x73, +0x90,0x07,0x71,0x13,0xee,0xf5,0x81,0xbb,0x85,0x20,0xae,0xbb,0x45,0xc9,0x1f,0xdf,0x3e,0xee,0xfd,0xd4, +0x75,0x5b,0xcd,0x04,0xe0,0xe1,0x57,0x1f,0x7e,0xa3,0xdc,0xef,0x21,0x7a,0x81,0x9f,0xf8,0xf1,0x56,0xee, +0xcd,0xfc,0xa6,0xb2,0x5a,0x98,0x53,0x66,0x4b,0x00,0xec,0xf6,0xb6,0xbb,0xc3,0x5e,0x7f,0xbe,0xb7,0xfd, +0xb4,0x3b,0x6c,0xc2,0x47,0xbb,0x00,0x6c,0x93,0xf4,0x70,0xeb,0x59,0xb7,0x3f,0x27,0x30,0xca,0x9e,0x53, +0x42,0xd7,0x5b,0xfa,0x1a,0x20,0x64,0xb8,0xbb,0xcf,0xb0,0xa2,0x72,0xa2,0x2a,0x57,0xca,0x10,0xb5,0x8c, +0xf5,0x5a,0x00,0x85,0x6a,0x2d,0x94,0x68,0xab,0x05,0x33,0x44,0x2d,0x8b,0xb2,0x16,0x53,0x73,0x86,0x92, +0x9a,0x19,0x49,0x6a,0x26,0x2e,0xdc,0xe4,0x0f,0x2a,0x10,0x4b,0x84,0x58,0x16,0x10,0x67,0x15,0x88,0x31, +0x42,0x8c,0x15,0xc4,0x80,0x34,0xc9,0xe7,0xac,0xf5,0x2e,0xd4,0x8f,0x16,0xa4,0xf8,0x71,0x40,0xff,0x3f, +0x43,0xe5,0x0f,0x8f,0x81,0x3e,0xa1,0xcb,0xbd,0xc4,0x0b,0x3c,0x7c,0xb1,0xbf,0x51,0xd2,0xb2,0x4e,0x9e, +0xd0,0xc4,0x25,0x9f,0x3e,0xa5,0x99,0x5d,0xb6,0x7f,0xcf,0x6c,0x02,0x04,0xdd,0x32,0x0b,0x85,0x31,0x2b, +0x41,0xea,0x45,0x14,0x9a,0xd7,0x13,0x12,0xe3,0xac,0x04,0x41,0x51,0x23,0x31,0xcb,0xab,0xc1,0x0a,0xf9, +0x8c,0x26,0x3b,0x12,0xcf,0x91,0x25,0xd9,0x4e,0x6a,0x8a,0x7e,0x3a,0x9a,0x3e,0xa3,0x5a,0x55,0x11,0x3a, +0x99,0xd1,0x84,0x40,0x9a,0xf4,0x68,0x16,0x64,0xfb,0x70,0x0e,0x47,0xa3,0x65,0x1e,0x8a,0xa8,0x22,0x97, +0xe3,0x45,0x1b,0xf5,0xe9,0x36,0x37,0x95,0x66,0x70,0x7a,0x1c,0x9d,0x6c,0x6e,0x36,0xf1,0x8f,0xaf,0x15, +0x06,0x8a,0xd4,0x15,0xf6,0xa4,0x9b,0x51,0x2c,0x33,0xa4,0x82,0x1b,0x5d,0x0c,0xdd,0x3e,0xcf,0x64,0xaa, +0xac,0x70,0xa3,0xa7,0x05,0x50,0x22,0x54,0x49,0x74,0xab,0x94,0x64,0xf5,0xee,0x01,0xbc,0xf4,0x43,0x1e, +0xd5,0xea,0x70,0x47,0x4a,0x87,0x7b,0x50,0x63,0xb5,0x2b,0x54,0x89,0xb3,0x93,0xa1,0xf1,0x45,0xf8,0x08, +0x8b,0xe2,0xa2,0x41,0x42,0x56,0x4e,0x3b,0x36,0x2f,0xa8,0x9f,0x48,0x15,0x99,0x54,0x55,0xe8,0xd4,0x74, +0x3d,0x14,0x54,0xb1,0xfd,0x99,0x14,0x4d,0x69,0x5f,0xba,0x30,0xaa,0x20,0x36,0xe9,0x79,0x63,0x2c,0x59, +0x67,0x34,0x4f,0xc6,0x5f,0x9d,0x92,0xc0,0x8e,0x55,0x66,0x85,0x91,0x9c,0x98,0xac,0xf5,0xd2,0x04,0x72, +0x36,0x15,0xea,0xc0,0x18,0x32,0xdb,0xae,0x24,0x4e,0x0a,0xe4,0x1e,0x46,0x9c,0x06,0x7e,0x2a,0xdf,0x3f, +0xcb,0x85,0x7a,0xb9,0x44,0xcb,0x89,0xe2,0x79,0x14,0xd3,0xa0,0x32,0x77,0x25,0xa4,0x63,0x8e,0x3b,0x8c, +0xcc,0x04,0x09,0xda,0xe6,0x1e,0xb8,0xfd,0x72,0x7e,0xb9,0x82,0x22,0x8e,0xb7,0xd1,0x62,0x2a,0x23,0x37, +0xc8,0x29,0x92,0x96,0x43,0xcd,0x62,0xd3,0xe5,0xe8,0xb3,0x55,0x20,0x44,0xa0,0x0c,0x25,0xcd,0xc9,0x84, +0xdd,0xa9,0x22,0x97,0x48,0x9c,0xa4,0xc1,0x25,0x5f,0x06,0xb2,0xa6,0x32,0x3d,0x63,0x07,0x89,0x32,0x19, +0x91,0xc6,0x53,0xfc,0x0c,0x4e,0xcc,0x6c,0x8d,0xf8,0x07,0x2b,0x3f,0x25,0xc0,0x53,0xa2,0x89,0x2c,0x3b, +0x9a,0x2f,0xd3,0xdb,0x14,0x45,0x38,0x51,0xd2,0xed,0x8b,0xf7,0x59,0x9b,0x68,0x15,0xe5,0xb8,0x36,0x89, +0xeb,0xfa,0x19,0x62,0x29,0x85,0x48,0x8a,0x01,0xa8,0x88,0x2a,0x23,0xd9,0x83,0x55,0x8c,0x51,0xa5,0x1b, +0x0a,0xf8,0x94,0x34,0xbe,0xa5,0xb0,0xd8,0x8a,0x24,0x27,0x0a,0x4e,0x69,0x3d,0x8d,0x69,0xca,0x08,0x12, +0x73,0xe5,0xa2,0xe8,0x5a,0x12,0x73,0x49,0xa2,0xb0,0xc4,0x8a,0x4b,0x7e,0x0d,0xbf,0xaf,0x91,0x6f,0x72, +0x51,0x82,0x53,0xb7,0x09,0xb2,0x12,0xbb,0x45,0x29,0x06,0x84,0x65,0x55,0xb6,0xc4,0x30,0x96,0x3b,0x1d, +0x35,0x62,0xb5,0xcb,0x88,0x32,0xcd,0x2a,0x44,0xe9,0x6c,0xe0,0x03,0x4a,0xd8,0x79,0xf5,0x2b,0x76,0x31, +0x55,0x58,0x29,0xff,0x37,0xdf,0x1d,0x6e,0xdd,0x84,0x99,0xa5,0x2c,0x05,0x86,0xd2,0x5b,0xc0,0x3e,0x2d, +0x3e,0x98,0x75,0x93,0x24,0x9e,0xc3,0x2c,0xea,0xcb,0x35,0xaa,0x92,0x30,0x8a,0x4f,0x45,0x2e,0xaa,0x79, +0x3a,0x08,0xa1,0x0f,0xc9,0xf7,0xb2,0x70,0x34,0x2f,0xef,0x6d,0xa5,0xad,0x74,0xe5,0x1e,0x4a,0x6b,0x65, +0x14,0xc2,0x81,0x64,0x6e,0xbf,0xb9,0x8a,0x51,0x8e,0xd1,0x80,0x44,0x88,0x98,0x14,0xcd,0x85,0x6b,0xe7, +0xa1,0xca,0xb7,0x4f,0x36,0x95,0x5d,0x33,0xa3,0x54,0x7e,0xdd,0xe4,0x41,0x00,0xfb,0xa6,0x8d,0x5b,0x81, +0x8b,0xa1,0xb3,0xc3,0x3c,0x5c,0x73,0x66,0x19,0x3b,0xdd,0x2d,0x28,0xa9,0x93,0x0c,0xf6,0x88,0x8d,0xde, +0x40,0x06,0x62,0x23,0x19,0x04,0xec,0xf2,0x86,0x28,0x1a,0x43,0x69,0x48,0x6a,0xa7,0x8a,0xc4,0x79,0x61, +0xc6,0x2c,0xc0,0xc5,0x99,0xe0,0x69,0x39,0x74,0x1c,0x08,0xf7,0x11,0xc2,0xc9,0x63,0x14,0xc7,0x61,0x4a, +0xc6,0x1c,0xbb,0x50,0x9b,0x66,0xdb,0xb1,0xb9,0x29,0x5a,0xd9,0xd0,0x5a,0x91,0x10,0x64,0x24,0x00,0xec, +0x52,0xb5,0x55,0xce,0xa7,0xe7,0xa9,0xfb,0xc8,0x36,0xa4,0xa0,0x45,0x05,0x13,0xd2,0x1a,0x80,0x84,0x49, +0x88,0x3e,0xce,0xd5,0x25,0x88,0x58,0x1b,0xf9,0x86,0xc6,0xf4,0x0d,0xf8,0x4c,0x97,0x06,0x20,0x96,0xb7, +0x36,0xb2,0xb0,0x22,0xfd,0xe7,0x4b,0xa7,0x1f,0xf8,0x56,0x34,0xa1,0x11,0x5d,0x4f,0xda,0x06,0xf7,0x66, +0x19,0x9a,0x50,0x99,0x0d,0xea,0x30,0xc8,0x4d,0xa8,0x0b,0x1b,0xd4,0xdf,0x83,0x52,0x8b,0xa9,0x0d,0xea, +0x13,0x5a,0xed,0xeb,0x50,0x53,0x1b,0x14,0xc9,0x23,0x4d,0xb8,0x91,0x0d,0x0e,0x45,0x7e,0x26,0x58,0x60, +0x03,0x23,0x91,0x9a,0x09,0xb7,0xb0,0xc1,0xa9,0x71,0xbb,0x11,0xf6,0xa8,0x68,0xcb,0x51,0x72,0x21,0x26, +0xa7,0x7c,0x20,0x56,0xbb,0xe1,0xe2,0x44,0x0d,0x2f,0x3b,0xdb,0x4e,0xfc,0x9d,0xee,0xe3,0xb4,0x23,0x0c, +0x93,0x06,0xa5,0xe6,0x4a,0x22,0x2f,0xbe,0x1e,0x63,0x4c,0x74,0xe1,0x3c,0xff,0xf7,0xce,0xbd,0x38,0x81, +0x3b,0x75,0x47,0x4d,0x38,0xbc,0x26,0x74,0x0a,0xf3,0xab,0xcd,0xcd,0x8d,0x48,0x5e,0x87,0xbb,0x83,0x58, +0x77,0x53,0xe0,0x38,0x1e,0x23,0x03,0xbf,0x6e,0x30,0x3a,0x9f,0x69,0xba,0xa8,0x2b,0x1e,0xe0,0x2b,0xe4, +0xbc,0xa5,0xeb,0x30,0x08,0xee,0x8d,0xbd,0x1a,0x08,0xff,0x5e,0xca,0xa9,0xba,0xb3,0x00,0x66,0x0a,0xdf, +0x7d,0x5b,0xb5,0x25,0x84,0xbb,0x2e,0x4b,0x11,0x60,0x21,0xe0,0x46,0xc1,0xeb,0x9c,0x3d,0x7f,0xe8,0x48, +0xcf,0x5b,0x08,0x79,0x23,0x82,0xae,0xe4,0x66,0x7f,0x6e,0x98,0xa6,0x93,0xba,0x85,0x52,0xa2,0x15,0x5c, +0xe6,0xad,0x63,0x75,0x37,0x6a,0x4f,0x18,0x07,0x41,0xca,0x5c,0x45,0x59,0x22,0x44,0x3d,0xe1,0x7e,0x42, +0xa5,0x42,0x7f,0x26,0xa6,0x0d,0xeb,0x12,0x90,0xb8,0xe4,0xce,0xb6,0x27,0x46,0xdf,0xdb,0x1a,0xf5,0x26, +0xb7,0xa2,0x77,0x7d,0x89,0x5a,0x7a,0x17,0x76,0xae,0x1a,0x22,0xd8,0xaf,0x59,0xc9,0x08,0x73,0xac,0x0f, +0xff,0xec,0xce,0xc3,0x3f,0xbb,0x25,0x3a,0xb3,0x5b,0x90,0xb3,0xb9,0x6c,0x2b,0xf4,0xda,0x3d,0xf7,0xf1, +0xd8,0xdd,0x92,0x9f,0x72,0x7a,0xdc,0xee,0xca,0x66,0xf0,0xf4,0xc5,0xf1,0xc7,0x41,0xd7,0x34,0xcd,0x08, +0xb1,0x1b,0x68,0x75,0x9a,0x97,0x34,0x91,0xcf,0x21,0xdd,0x4a,0x8c,0x95,0x32,0x13,0x3e,0xee,0x9e,0x90, +0xef,0xe0,0x22,0xa1,0x77,0xc2,0x5c,0x12,0x1e,0x5b,0x76,0xcb,0xe0,0x4a,0x93,0x91,0x79,0x04,0x67,0xd2, +0x61,0x0b,0xf4,0xce,0x0b,0xfc,0x9e,0x47,0x7b,0x51,0x24,0xf7,0x22,0x2f,0x86,0x24,0x58,0xf8,0x1e,0xba, +0xe4,0x9f,0xa1,0x5b,0x7e,0x1f,0x25,0x45,0x28,0xe7,0xe9,0x0d,0xa2,0x0e,0x9a,0x71,0xb2,0x21,0x71,0x27, +0x00,0xb0,0x92,0xd8,0x06,0xae,0x3c,0x30,0x59,0xab,0xa9,0x53,0x5c,0x38,0x95,0xd4,0x91,0x0b,0x95,0xc3, +0x35,0x16,0xaa,0x87,0xe3,0x0b,0x1a,0xc8,0x3a,0x17,0xbc,0x1c,0x0f,0xfc,0xf2,0xd3,0x41,0xf1,0x42,0xc1, +0x4b,0x68,0xe3,0x00,0xaf,0xbf,0xe5,0xbd,0x95,0x66,0xdd,0x99,0x7f,0x20,0x04,0x98,0x15,0x19,0xe2,0xe0, +0xac,0x24,0x46,0x42,0xb3,0xa0,0x39,0x49,0x90,0x26,0xf4,0x7f,0x36,0x2e,0x8a,0x49,0x9a,0x74,0xd6,0x21, +0xcf,0xeb,0x24,0x4e,0xea,0x7a,0x5d,0x12,0x27,0x79,0x67,0x85,0x88,0x49,0xa6,0xdd,0x28,0xc7,0x28,0x8a, +0x31,0x24,0x22,0x6d,0x54,0x47,0x7f,0x5a,0xe9,0x97,0xf6,0x5c,0x24,0x3a,0x36,0xb5,0x74,0xec,0xfa,0x5a, +0x98,0x7f,0x5e,0xf8,0xd3,0xba,0xbe,0x79,0x97,0xfe,0x85,0xb8,0x92,0xfd,0x0c,0x97,0xe6,0x20,0x7d,0x8d, +0x81,0xb5,0x50,0xe8,0x8a,0x88,0x76,0xf1,0xf4,0xb8,0x24,0x76,0x03,0x07,0xfe,0x30,0x4f,0x16,0x90,0x5e, +0x47,0x82,0x9e,0x8b,0xf5,0x99,0xd0,0xbd,0x5a,0xe8,0x2e,0x42,0x5f,0x68,0x94,0xbd,0x84,0x2f,0x93,0x76, +0xe8,0x80,0x41,0x80,0x18,0x69,0x37,0x1c,0xaa,0xa7,0x4c,0x15,0xf5,0x24,0x2b,0x68,0xf2,0x71,0x15,0x4d, +0x3e,0xfb,0x1f,0x6b,0x69,0x32,0xf2,0x3f,0xaf,0xa1,0xc9,0xc8,0x46,0x13,0x9c,0xa0,0x7a,0x17,0xb1,0x83, +0x23,0x1b,0x39,0x10,0xde,0x04,0xfb,0xac,0xd1,0x61,0x24,0xbe,0xaa,0x5d,0xfe,0xb5,0xd2,0x65,0xed,0x0d, +0x57,0x74,0xfa,0xd7,0x55,0x9d,0xfe,0x9b,0xff,0x6b,0x6d,0xa7,0xbf,0xfa,0x7f,0x5b,0xd3,0xe9,0xaf,0xd6, +0x4e,0xf3,0xc8,0x72,0xd7,0x45,0x6f,0xbe,0x5a,0x3b,0xcd,0x80,0xdd,0x02,0xec,0x6f,0x5a,0xa7,0xbf,0x8a, +0xaf,0x6a,0xa7,0xbf,0x57,0x3a,0x5d,0xbc,0xf8,0x8a,0x3e,0x7f,0x5f,0xd5,0xe7,0x73,0xff,0x7b,0x6d,0x9f, +0x0f,0xfd,0xf3,0x35,0x7d,0x3e,0x5c,0xd1,0x67,0x1e,0x43,0x54,0xb9,0xc7,0xaa,0x56,0xf4,0x99,0x01,0x69, +0xc2,0x9f,0x6b,0x7d,0x3e,0x14,0x5f,0xd5,0x3e,0xbf,0xaf,0xf4,0xf9,0x4d,0xa9,0xcb,0xef,0x57,0x75,0xf9, +0xad,0xff,0xbe,0xb6,0xcb,0xdf,0xfc,0xb7,0x6b,0xba,0xfc,0xad,0xd2,0xe5,0x1f,0xce,0xba,0x5d,0x2c,0x6a, +0x66,0x74,0x7a,0xcf,0xf8,0xbf,0x1f,0x11,0xe2,0xcc,0x06,0xf1,0x44,0xfe,0x07,0x10,0x5d,0x2b,0xc4,0x0e, +0xe5,0x9c,0x59,0x72,0x9e,0x69,0xb5,0x77,0xbb,0x36,0x88,0x9f,0xb4,0xda,0xcf,0x6c,0x10,0x3d,0x85,0xfa, +0x5b,0x8d,0xec,0xdf,0xc4,0x57,0x95,0xec,0x6f,0x2a,0x64,0x57,0xea,0x36,0x82,0xec,0x6f,0x56,0x91,0xfd, +0xd4,0xee,0xe8,0x40,0x69,0xdb,0x36,0x97,0xb0,0xf3,0x2f,0xdc,0xc1,0x69,0x27,0x2d,0x1f,0x6b,0xa7,0x78, +0x04,0x9e,0x76,0xa6,0xd5,0xf4,0x29,0xa6,0x8f,0xaa,0xe9,0x23,0x3e,0xf3,0x3e,0xf9,0x6f,0x6a,0x87,0xfa, +0x9d,0xff,0x69,0xcd,0x50,0xbf,0xab,0x99,0xdd,0xa7,0x68,0xf1,0xec,0xe1,0xdf,0xa9,0xf8,0x3b,0xe2,0x25, +0xfb,0xae,0x66,0x96,0x97,0xd0,0x5b,0x58,0x0d,0xaf,0xeb,0x53,0xb1,0xea,0x4f,0xda,0x10,0xbd,0x13,0x5f, +0xd5,0x21,0xfa,0x50,0x19,0x22,0xa5,0x4a,0x24,0x86,0xe8,0xc3,0xaa,0x21,0xda,0x5f,0x3f,0x44,0x63,0x38, +0xc7,0x06,0xfb,0xd5,0x21,0xda,0xc7,0x21,0xda,0xaf,0x0e,0xd1,0x3e,0x0e,0xd1,0x7e,0x75,0x88,0xf6,0xe5, +0x10,0xbd,0xf6,0x3f,0xd4,0x0e,0xd1,0x91,0xff,0x7a,0xcd,0x10,0x1d,0xd5,0x0c,0xd1,0xbe,0x18,0xa2,0x7d, +0x31,0x44,0xfb,0x72,0x88,0x8e,0xaa,0x6b,0xa0,0x4b,0x6b,0xe0,0xb5,0x46,0xe0,0x23,0xf1,0x65,0x12,0xf8, +0x56,0xac,0xac,0x21,0x87,0x2e,0x3d,0x43,0xac,0xe7,0x64,0xeb,0x44,0x3d,0xc4,0x58,0x92,0xf1,0x00,0xb1, +0xa9,0xf9,0x1d,0xd8,0xd4,0x1a,0x59,0x05,0xce,0x85,0xa8,0x96,0xdd,0xcb,0xec,0xe5,0x84,0xd6,0x00,0x3e, +0x1b,0x5b,0xf3,0x85,0xfa,0x22,0x00,0x08,0x6d,0xf0,0x71,0x92,0x35,0xb7,0x1f,0xcb,0x47,0x5d,0x98,0x48, +0x2e,0xfc,0x2f,0x93,0x9a,0xe1,0x59,0x14,0xdb,0x72,0xe7,0x7e,0x24,0x2f,0x40,0x5b,0xdb,0xc0,0xf9,0x46, +0xea,0xf2,0xb1,0xb5,0x3d,0xc8,0x34,0x37,0xc5,0xde,0xbc,0x95,0x3c,0xd6,0x60,0xe9,0xd2,0xe1,0x7a,0x02, +0x04,0x86,0xd7,0xf1,0x26,0xed,0xf8,0xb1,0x5e,0x5e,0x80,0xf4,0x4a,0x52,0x47,0xc3,0x17,0x8a,0xf4,0xfc, +0x53,0x0f,0xb1,0xb9,0xd9,0x2d,0x8b,0x2d,0x81,0x3b,0x1d,0x0a,0x6f,0xdb,0xc9,0x22,0x18,0x03,0xd3,0x8f, +0x47,0x5a,0xbf,0x9c,0xd4,0x6b,0x37,0xd3,0xce,0xc5,0x6e,0x67,0x7b,0xd8,0xd9,0xee,0xc3,0x2f,0x21,0xba, +0xa8,0xdc,0x80,0x2b,0x27,0xda,0xac,0x76,0xac,0x96,0xb6,0xb2,0x72,0xa4,0x06,0x4b,0x8d,0x18,0x40,0xe1, +0xc7,0x33,0xf3,0x26,0xc7,0xcd,0x8f,0x6d,0x42,0x28,0xa3,0xf9,0x71,0x6d,0xf3,0x0b,0x5b,0x59,0xd5,0xfc, +0x42,0x6b,0xbe,0xd9,0x6b,0xc3,0xf0,0xc2,0x35,0xd1,0x86,0xc2,0x81,0x4d,0xc2,0x65,0xa0,0xb0,0xea,0x72, +0x62,0x29,0xab,0x50,0x38,0x2b,0xa3,0x70,0xe1,0x3e,0x3e,0xb0,0xa1,0x30,0xb5,0x89,0xcf,0xd6,0x5e,0x23, +0xe4,0x1d,0xc2,0x52,0x56,0xa1,0x70,0x51,0x46,0x21,0x75,0x1f,0x4f,0x6d,0x28,0x5c,0xda,0x65,0x73,0x06, +0x12,0x97,0xb5,0x48,0x7c,0xb4,0x97,0x56,0x68,0x7c,0x2c,0xa3,0x31,0x75,0x1f,0x5f,0xda,0xd0,0xf8,0x6c, +0x15,0xfd,0x19,0x58,0x7c,0xae,0xc5,0x62,0x64,0x2d,0xac,0x90,0x18,0x95,0x91,0x18,0xb9,0x8f,0x3f,0xdb, +0x90,0xf8,0xd5,0x2e,0x58,0x5c,0xcb,0xce,0x4b,0x5e,0xde,0x5a,0x5a,0xa1,0xf1,0xb7,0x32,0x1a,0x81,0xfb, +0xf8,0xd7,0x32,0x1a,0x77,0xd9,0xf1,0x6d,0x81,0x0c,0xcc,0x18,0x2b,0xfa,0xbb,0x65,0xcd,0xab,0xe5,0x6d, +0x5a,0x7a,0x4b,0x8a,0x12,0x77,0x3d,0x59,0xca,0xaf,0x2f,0x65,0xe3,0x15,0xf1,0x18,0x3e,0x95,0x8f,0x4c, +0xae,0x7c,0x76,0xd2,0x60,0xca,0x20,0xa5,0xb7,0x25,0xe1,0x98,0x0a,0x55,0x0a,0x98,0xb8,0x85,0x3d,0x83, +0x63,0xb8,0x60,0x6a,0x6a,0xc2,0x12,0x76,0x5f,0x23,0xab,0xa2,0xb4,0xce,0xc5,0x5e,0x67,0x67,0x28,0xea, +0xa0,0x14,0x07,0x9f,0x2f,0x02,0x7a,0xae,0x2e,0x25,0x5f,0x62,0x70,0x43,0x14,0x00,0xaf,0x21,0xda,0x3e, +0x10,0xeb,0x82,0x7c,0x72,0xa6,0xc9,0xdc,0xd0,0xe7,0x90,0xa2,0xd5,0xe2,0x19,0x55,0x3f,0x5b,0x03,0xbd, +0x9c,0xc3,0xea,0x4d,0xdd,0x0d,0xe5,0xf9,0x48,0x9e,0x96,0xcd,0xd2,0x33,0x95,0x46,0x16,0x3a,0x2c,0x8d, +0x33,0x5c,0x6a,0x74,0xa4,0xec,0x97,0x14,0x9f,0x48,0x4c,0x07,0xa6,0x6c,0x7e,0x51,0xf8,0xd8,0x23,0x8a, +0x12,0xac,0x5f,0x03,0x5a,0x38,0x39,0x65,0xc0,0x7f,0xac,0x03,0xfc,0x07,0x3d,0x20,0xab,0xb5,0x63,0x32, +0x07,0xdc,0xab,0x04,0x7a,0xb9,0x8a,0x07,0x88,0xfd,0xa6,0x15,0xa0,0x60,0x02,0x24,0xd6,0xed,0x08,0x9f, +0xd0,0x32,0x7c,0xd0,0xee,0xe0,0xc1,0xdd,0xd6,0xce,0x6c,0x77,0xab,0xa9,0x7f,0xa1,0x8d,0x58,0x5b,0x94, +0xfb,0x87,0x5e,0x0e,0x16,0x6a,0x5b,0x3f,0xc8,0xa9,0x9c,0xf6,0x49,0xcc,0x51,0xad,0x73,0x30,0x97,0x65, +0xfc,0x0a,0xa1,0x66,0xa4,0xf1,0x9c,0xcf,0x85,0xcb,0xb2,0x83,0x39,0xf2,0x96,0xc4,0xf3,0x09,0x3c,0xa5, +0x3f,0x31,0xfa,0x72,0x57,0xa0,0x6d,0x60,0xbd,0xbe,0x72,0xec,0x8c,0xaa,0x1b,0x3e,0xdc,0xd5,0x5d,0x63, +0x61,0xba,0x45,0x07,0x2f,0x36,0x34,0xf0,0xe6,0xa4,0x7f,0x37,0xa1,0x88,0x08,0x13,0x8c,0x88,0x90,0x75, +0xd0,0x83,0xda,0xe6,0xe6,0x64,0x97,0x7f,0x29,0x5f,0x6a,0x04,0x20,0x62,0xdc,0xcf,0xd0,0xf2,0x2e,0x26, +0x8e,0x06,0xed,0xef,0x0a,0xbd,0xbc,0xf9,0x56,0x0c,0x98,0x28,0xfe,0xcc,0x1d,0xcc,0x28,0xec,0xc2,0xac, +0x85,0xbe,0xff,0xbd,0xb9,0xfe,0x21,0xdf,0xa7,0xdf,0x64,0x17,0xcd,0x99,0x37,0xf1,0x02,0x38,0x63,0x0b, +0xdb,0xcb,0xca,0x3c,0x33,0xc5,0xfb,0xb5,0xf3,0x4d,0x6a,0x57,0x22,0x75,0x6b,0xa6,0x84,0xbb,0x55,0x50, +0xea,0x16,0x33,0x40,0xab,0xe7,0x1e,0x83,0x64,0x34,0xc6,0x9c,0x17,0x50,0x01,0x68,0x36,0xdf,0xeb,0xa1, +0xc6,0xe1,0x40,0xd2,0x7b,0x59,0xa6,0xf7,0x70,0xe9,0x77,0xfb,0x2a,0x77,0xaf,0xd7,0xae,0x8e,0xc7,0x52, +0x1f,0xb0,0x25,0x6c,0x80,0x55,0x98,0xe5,0x6e,0x67,0xa7,0x65,0x2b,0x89,0x43,0x90,0x68,0xe7,0xd9,0x52, +0x63,0x79,0x05,0xc3,0x6b,0x59,0xec,0xf4,0x36,0x28,0x22,0x26,0x00,0x41,0xf1,0x7a,0xd7,0x6b,0x2f,0x61, +0xec,0xa6,0xf0,0x6f,0x64,0x2d,0x22,0x1e,0x0a,0xcd,0x42,0x41,0x27,0xf5,0xb8,0xa0,0xbd,0x10,0xbf,0x1a, +0x56,0xcb,0x60,0x43,0xa8,0xb0,0x68,0x2b,0xf3,0xc6,0x2c,0x82,0xf3,0x0a,0x1b,0xc8,0x68,0x66,0xd9,0x0a, +0xd0,0xa3,0xa9,0x59,0x20,0xe8,0xcc,0x04,0x5e,0xf6,0x22,0xf4,0x82,0x5a,0x2d,0x82,0xad,0xd4,0xa1,0x25, +0x5e,0x36,0x8b,0x42,0x94,0x40,0x6a,0x97,0x37,0x2b,0x34,0x24,0xa6,0x42,0x39,0xa4,0x8e,0x35,0xa0,0x93, +0x61,0x65,0x71,0x56,0x57,0x2c,0xeb,0x06,0x9b,0x7a,0x00,0x36,0x67,0xba,0xa9,0xb0,0x08,0x45,0x25,0x05, +0xe9,0x99,0x71,0xcf,0xef,0xca,0xb3,0x9d,0x8f,0x5b,0xc3,0xe1,0x9e,0x9e,0xfe,0x58,0x6d,0x2d,0xbd,0xae, +0x56,0x81,0x54,0xd3,0xb5,0x64,0xd4,0x1e,0xf3,0xe1,0x8a,0x13,0x3a,0xab,0xf6,0xaf,0x78,0xf3,0xd4,0x3d, +0x84,0x41,0xbf,0x65,0x27,0xa3,0xa1,0xa9,0x76,0x13,0x41,0x89,0xfe,0x6a,0xee,0x29,0xab,0x8c,0x02,0x39, +0x80,0xe4,0x0a,0x2b,0xcf,0x45,0xa1,0x6a,0x80,0x99,0x1d,0x84,0xed,0x4b,0x1f,0x09,0xe9,0x50,0x9b,0xcc, +0x41,0x13,0x12,0x3c,0x18,0x26,0xf8,0x37,0x82,0x7f,0x81,0x0e,0x39,0x1b,0x6a,0xf3,0x0b,0x21,0x67,0x00, +0x91,0xc1,0xbf,0x8b,0x32,0x64,0x30,0x34,0x27,0x95,0xc8,0x5e,0xdb,0x27,0xc4,0xc0,0xa0,0x9c,0x47,0xf6, +0xd8,0x40,0x3f,0xa9,0x38,0x4a,0xef,0xea,0xe8,0xa4,0x5d,0x38,0x48,0xd4,0xb8,0x91,0xa4,0x03,0x7c,0x21, +0xec,0x1d,0x53,0x3f,0x85,0xff,0x8f,0xfc,0x48,0x78,0x7b,0x46,0xa3,0xe3,0x04,0x26,0x46,0x56,0xbc,0x8e, +0x4b,0x13,0x70,0x6e,0x42,0x0d,0x44,0xd2,0x99,0xf9,0x31,0xf4,0x2a,0xe9,0x64,0xf0,0x37,0x83,0xbf,0x17, +0xf0,0xf7,0xa2,0x9e,0xbd,0xad,0x30,0xc2,0x81,0x58,0x4e,0x1a,0x77,0xbb,0x96,0x13,0xe6,0x7e,0x97,0xac, +0xd1,0xb5,0x18,0x5d,0xe6,0xf0,0x50,0x26,0xe9,0xfa,0x46,0xab,0xa7,0x21,0x8e,0xd1,0xef,0xa0,0xe5,0x8c, +0x68,0x99,0x11,0x2d,0x2f,0x56,0xd1,0x52,0xc9,0xd3,0xca,0xb4,0x4c,0x81,0x76,0x29,0x8d,0x47,0x0c,0xf3, +0x09,0x47,0x24,0x86,0x39,0xf5,0x2f,0xa7,0x65,0xd5,0xb2,0xdf,0x42,0x4b,0x9e,0xc0,0xb7,0xa6,0x25,0xcd, +0x62,0xeb,0x5a,0x6b,0x28,0x6a,0x92,0x9e,0x57,0x11,0x3e,0x40,0x6e,0x47,0xe1,0x1d,0x7a,0x9c,0xdf,0xa7, +0xc7,0xb3,0xe4,0xd2,0xee,0xe3,0x9a,0x19,0x78,0x8f,0x55,0x2d,0xd0,0x67,0x43,0x49,0x0b,0xc5,0xdc,0x70, +0xf1,0x99,0x99,0xdd,0xe3,0x92,0x3f,0x52,0xa9,0xb9,0x96,0xad,0x54,0xe2,0x05,0x5a,0xa2,0xe0,0x71,0xa3, +0x8b,0x6a,0x75,0x42,0x56,0x75,0x85,0x7e,0x6a,0xd3,0x5b,0x73,0x22,0x52,0x37,0xe3,0x8d,0xf1,0x26,0x4f, +0x2e,0x6f,0xeb,0x2b,0xa9,0x32,0xb4,0xe2,0x8d,0xfe,0xd6,0xba,0xb6,0x2b,0xee,0xac,0x9a,0x4e,0x7d,0xca, +0x77,0x45,0xb4,0x1b,0x08,0x26,0x30,0x20,0xa8,0xd2,0xa3,0xf9,0x0e,0x46,0x55,0x1e,0xdd,0xfd,0x2f,0xaa, +0x85,0x75,0x50,0x35,0x8f,0x34,0x59,0xad,0x56,0xf9,0xae,0xd2,0xf4,0xcb,0x2a,0x47,0xb2,0xd2,0x1d,0x93, +0x3c,0x64,0x61,0x43,0x9e,0x8d,0xe1,0xca,0x36,0x3f,0x02,0x5a,0xe3,0x5d,0xe5,0xf6,0xd4,0x1d,0xc4,0xbb, +0xc9,0xb0,0xa8,0x46,0xc5,0x15,0x52,0xf5,0x61,0x00,0xb1,0x7e,0x5c,0x1e,0x84,0xbd,0xa4,0xa5,0xeb,0xc7, +0x71,0x32,0x30,0x71,0x06,0xd0,0xe6,0xe6,0xea,0x8a,0xcb,0x95,0xb6,0xab,0x55,0xb6,0x4a,0x55,0xde,0xac, +0xd2,0xcd,0x44,0x4a,0xdb,0xac,0xd6,0x0d,0x6d,0x09,0xfc,0xf0,0x6b,0x55,0x1f,0xe8,0xf2,0x89,0x43,0xf9, +0x61,0x99,0x9b,0xca,0x71,0xe6,0xb0,0xd6,0x0e,0x1e,0x2b,0xe5,0xd1,0x66,0x21,0xb4,0x6c,0xfd,0xab,0x9b, +0x55,0xda,0xc1,0x86,0x02,0x88,0x8e,0x71,0xad,0xdf,0x76,0xa9,0x0b,0x2a,0xbc,0x68,0x48,0xe8,0x92,0x1e, +0x2b,0x76,0xa5,0x26,0x8b,0xd7,0x62,0x98,0x1f,0x45,0xe7,0x21,0x50,0x57,0x77,0x1c,0x0f,0x3b,0x81,0xb8, +0xd6,0xd7,0x28,0xcc,0xde,0xc8,0x78,0x0a,0x96,0x60,0xd4,0xd2,0x9b,0xd2,0x7e,0x3c,0x49,0x71,0xd3,0xeb, +0x3c,0x6e,0xbc,0x8a,0x60,0xa9,0x25,0xdf,0xb6,0x00,0x9b,0xb5,0x0d,0xda,0xb0,0xd4,0xb2,0x93,0x38,0x64, +0xb5,0x56,0xc3,0x14,0xf2,0x16,0x08,0xdf,0x18,0xc3,0x51,0xd1,0xb2,0xbe,0xcf,0x00,0x28,0xd3,0x17,0x6d, +0x6d,0x5f,0x5f,0x37,0x95,0x99,0x40,0x5a,0x6c,0x11,0x42,0xd4,0x44,0xdb,0x04,0x2e,0x08,0xae,0x19,0xf8, +0xaf,0xe9,0x14,0xa3,0x5a,0x88,0x88,0xe3,0x36,0x14,0x49,0x47,0xd7,0x2a,0xbd,0x59,0x85,0x1d,0x6a,0xe7, +0xe8,0x5c,0x64,0xd1,0xba,0x3b,0x80,0xc3,0x39,0x2a,0xb8,0xc8,0x0c,0xa3,0xaa,0x55,0x9b,0x1d,0x97,0x02, +0xb9,0xfd,0x01,0xed,0x46,0xc5,0x2a,0x52,0x4e,0xd9,0x61,0x42,0x0c,0x4d,0x64,0xba,0x68,0x1d,0x21,0x01, +0xa5,0x5f,0xf7,0xcd,0xcd,0x0d,0xc0,0xda,0x71,0x4c,0x32,0x6a,0xb5,0xb3,0x9d,0x9f,0x94,0xd1,0xe9,0xdd, +0xa9,0x1a,0x3b,0xdc,0x79,0xa8,0xf9,0x6c,0x94,0x52,0xc4,0xd4,0xd8,0xf8,0x35,0x51,0x21,0xdc,0x9e,0xc4, +0x80,0x8a,0xb6,0x85,0x7e,0xb6,0x63,0xc3,0xa7,0x64,0x7a,0xf0,0x3b,0x71,0x22,0x91,0xc3,0x6a,0x8d,0xf0, +0x68,0xb5,0x46,0xb8,0x34,0x69,0x91,0xd6,0x38,0x14,0x7a,0x08,0x50,0x77,0xa5,0xd1,0x93,0x99,0x4c,0xc7, +0x57,0x35,0x4e,0x85,0x70,0x66,0x7e,0x85,0xb9,0xfd,0xe3,0x93,0x9b,0x42,0xf4,0x07,0x3c,0x61,0xc9,0xd8, +0x52,0xca,0xfa,0xc8,0xe6,0x32,0xa0,0x0a,0x3b,0x8b,0x65,0x36,0x6b,0x66,0xc7,0xc9,0x09,0xce,0x16,0xbd, +0xe3,0xd9,0x32,0x43,0x15,0xd9,0x70,0xc2,0x91,0xea,0x1c,0x60,0x50,0x2d,0x44,0x2d,0xcc,0x52,0xfe,0xb8, +0x31,0xde,0x30,0x07,0x19,0xd7,0x4e,0x65,0xd9,0x5a,0x46,0x9e,0xb6,0x28,0x13,0x47,0x9b,0xb1,0x71,0x3d, +0x9e,0x80,0x50,0xda,0x19,0xcf,0x93,0x2c,0xcc,0x72,0x4d,0xda,0x28,0x75,0xdb,0x8b,0x21,0xa9,0xf4,0x04, +0x98,0xc9,0xa6,0x92,0x79,0xdf,0x46,0xc4,0x4b,0x02,0x54,0x0e,0xe2,0x2d,0x04,0x44,0xc8,0xb1,0xa8,0x5e, +0xb2,0xe8,0x0a,0xb1,0xb5,0x74,0xe8,0xdf,0xaf,0x2b,0x77,0xe8,0x41,0xd9,0xba,0xfa,0xdf,0xa5,0x0b,0xf7, +0x19,0x0d,0xbb,0x11,0xf6,0x7f,0x72,0x8f,0x74,0x67,0x4b,0x7f,0xfc,0xf3,0x45,0xb4,0xa2,0xf3,0x70,0x71, +0xad,0xeb,0x3c,0x72,0xdb,0x81,0xb6,0xed,0x6a,0x97,0x21,0xd3,0x9c,0xc7,0xbd,0x0a,0x6a,0x18,0x84,0xa4, +0xe8,0x3a,0xef,0xd6,0xd4,0xc8,0xe9,0x8b,0x0f,0xef,0x8f,0x4e,0x8f,0x80,0x25,0x7f,0xfd,0xf2,0xd3,0xe9, +0xcb,0xbf,0xbf,0x7c,0x7f,0x74,0x88,0xed,0xdd,0xdf,0xde,0x2c,0xb9,0xa7,0xbd,0x99,0xb8,0xb2,0x27,0x2b, +0x37,0x60,0x57,0xdf,0xda,0x63,0xb5,0xb5,0xcf,0xf1,0xf2,0x0e,0x55,0xa1,0xd6,0xef,0x60,0xb2,0x3b,0x97, +0x7b,0xfc,0x04,0xf6,0xf8,0x02,0x1f,0xa7,0xd5,0x74,0x80,0x64,0xf3,0xe3,0xc9,0x49,0x07,0xa3,0xc9,0x64, +0x8b,0x60,0x1c,0x0e,0x1d,0xa7,0xef,0x74,0x9c,0x96,0x99,0xea,0x7a,0xf4,0xcd,0x21,0xa3,0x52,0xf7,0x46, +0x1b,0x49,0x60,0x00,0x0a,0x43,0x4c,0xf1,0xac,0x14,0xd8,0xde,0xbe,0xf0,0x5e,0x7b,0xab,0x79,0xca,0xd6, +0x4b,0x49,0x79,0x6a,0xc2,0xf8,0xba,0x7c,0xe3,0xb0,0x7b,0xe0,0xb2,0x2e,0xb2,0x3b,0x4d,0xce,0x54,0x4d, +0xce,0xbc,0x12,0xf6,0x4f,0x28,0xb5,0xfc,0x11,0x8b,0x55,0x7a,0x21,0xb4,0x12,0x29,0xb7,0x2c,0x4a,0x8a, +0x3c,0x4a,0x11,0x03,0xcd,0xd3,0x56,0x73,0x1f,0x66,0xed,0x3c,0x75,0xbd,0x61,0xe2,0xd9,0x31,0xec,0xad, +0xe0,0x88,0xb5,0x85,0xab,0xca,0xd7,0x71,0xdd,0x79,0xf5,0xd6,0x5e,0xbe,0xb2,0xdf,0x18,0xbb,0x88,0xe1, +0x03,0xaf,0x6c,0xd5,0xce,0x97,0x18,0xab,0xb1,0x69,0xc1,0xee,0x5a,0x4d,0x51,0xeb,0x49,0x5e,0xc4,0x6d, +0x50,0xb6,0x56,0xda,0x10,0x64,0x3a,0x67,0x91,0x99,0x9c,0x45,0x60,0xe1,0x2c,0x32,0x71,0x99,0x40,0x59, +0x7b,0xa8,0x85,0x7f,0xc5,0xab,0xcd,0x77,0xf3,0x0a,0xe5,0x1c,0xb3,0x25,0x3c,0xae,0x75,0x12,0x2b,0x2d, +0x08,0xe5,0x13,0x98,0x82,0xe5,0xf5,0xdf,0xbc,0x32,0xc3,0x0f,0xe1,0xf5,0x48,0xbf,0x4f,0xc9,0x75,0x15, +0xca,0x58,0xab,0x18,0x9e,0x53,0x85,0x61,0x4d,0x7e,0x8b,0xe6,0xf3,0x80,0xe2,0x61,0xda,0x34,0xe7,0x54, +0x0c,0x3f,0x61,0x09,0xe0,0x77,0xb6,0xdd,0xb5,0xb8,0x9b,0xe6,0xbc,0xec,0x0b,0x31,0x9a,0x48,0x47,0x88, +0x1f,0x61,0x75,0x7f,0xa0,0xb7,0x5d,0xe5,0x0b,0x71,0x21,0x82,0x75,0xf6,0x1b,0xc1,0x28,0x4b,0xe6,0xcb, +0x3c,0x1c,0x34,0x50,0xa4,0x04,0x4c,0x68,0x83,0xc4,0x42,0xf8,0x43,0x98,0x72,0xe0,0x4f,0x36,0xdf,0x80, +0x5f,0x9a,0xdb,0x44,0x9e,0xae,0xca,0xc5,0x08,0x0c,0xac,0xf0,0x2f,0xf2,0xfc,0xfb,0xdb,0x49,0xb3,0xda, +0x76,0xed,0xc3,0xd9,0x40,0x45,0x61,0x4a,0x4b,0xde,0xf8,0x58,0xd0,0x21,0xb6,0xf8,0x4f,0xe1,0x3c,0xc0, +0x25,0x57,0x54,0xf9,0x7c,0x39,0x7d,0x15,0x7d,0x33,0xee,0xb2,0x88,0x54,0xf8,0xc7,0x22,0x15,0x7a,0x5d, +0x76,0xdf,0x7f,0x96,0xd3,0xa3,0x67,0x88,0x32,0x1f,0xb8,0xa9,0xae,0x8a,0x2c,0xd5,0xa5,0x3b,0xf3,0x0d, +0xcc,0xbc,0x26,0x87,0xf4,0xd2,0xa2,0xea,0x6d,0xe1,0xec,0xd9,0xfb,0x7f,0x7d,0x4c,0x16,0x02,0x82,0x93, +0x03,0x00 }; \ No newline at end of file diff --git a/code/espurna/system.ino b/code/espurna/system.ino index e6b5b9c5..fb1d1ed0 100644 --- a/code/espurna/system.ino +++ b/code/espurna/system.ino @@ -150,13 +150,6 @@ void systemSetup() { EEPROM.begin(EEPROM_SIZE); - #if DEBUG_SERIAL_SUPPORT - DEBUG_PORT.begin(SERIAL_BAUDRATE); - #if DEBUG_ESP_WIFI - DEBUG_PORT.setDebugOutput(true); - #endif - #endif - #if SPIFFS_SUPPORT SPIFFS.begin(); #endif diff --git a/code/espurna/thinkspeak.ino b/code/espurna/thinkspeak.ino index 35ad9a2d..04b0c85c 100644 --- a/code/espurna/thinkspeak.ino +++ b/code/espurna/thinkspeak.ino @@ -192,7 +192,7 @@ void _tspkPost(String data) { #endif // THINGSPEAK_USE_ASYNC -bool _tspkEnqueue(unsigned char index, char * payload) { +void _tspkEnqueue(unsigned char index, char * payload) { DEBUG_MSG_P(PSTR("[THINGSPEAK] Enqueuing field #%d with value %s\n"), index, payload); --index; if (_tspk_queue[index] != NULL) free(_tspk_queue[index]); @@ -230,7 +230,9 @@ bool tspkEnqueueRelay(unsigned char index, unsigned char status) { char payload[3] = {0}; itoa(status ? 1 : 0, payload, 10); _tspkEnqueue(id, payload); + return true; } + return false; } bool tspkEnqueueMeasurement(unsigned char index, char * payload) { @@ -238,7 +240,9 @@ bool tspkEnqueueMeasurement(unsigned char index, char * payload) { unsigned char id = getSetting("tspkMagnitude", index, 0).toInt(); if (id > 0) { _tspkEnqueue(id, payload); + return true; } + return false; } void tspkFlush() { diff --git a/code/espurna/utils.ino b/code/espurna/utils.ino index cd878831..56b9e88d 100644 --- a/code/espurna/utils.ino +++ b/code/espurna/utils.ino @@ -386,6 +386,9 @@ void info() { #if GUVAS12SD_SUPPORT DEBUG_MSG_P(PSTR(" GUVAS12SD")); #endif + #if HCSR04_SUPPORT + DEBUG_MSG_P(PSTR(" HCSR04")); + #endif #if HLW8012_SUPPORT DEBUG_MSG_P(PSTR(" HLW8012")); #endif @@ -404,6 +407,9 @@ void info() { #if SI7021_SUPPORT DEBUG_MSG_P(PSTR(" SI7021")); #endif + #if TMP3X_SUPPORT + DEBUG_MSG_P(PSTR(" TMP3X")); + #endif #if V9261F_SUPPORT DEBUG_MSG_P(PSTR(" V9261F")); #endif diff --git a/code/espurna/wifi.ino b/code/espurna/wifi.ino index 3b781f7f..554730a7 100644 --- a/code/espurna/wifi.ino +++ b/code/espurna/wifi.ino @@ -196,6 +196,27 @@ void _wifiInject() { } } +#if WIFI_AP_CAPTIVE + +DNSServer _wifi_dnsServer; + +void _wifiCaptivePortal(justwifi_messages_t code, char * parameter) { + + if (MESSAGE_ACCESSPOINT_CREATED == code) { + _wifi_dnsServer.setErrorReplyCode(DNSReplyCode::NoError); + _wifi_dnsServer.start(53, "*", WiFi.softAPIP()); + DEBUG_MSG_P(PSTR("[WIFI] Captive portal enabled\n")); + } + + if (MESSAGE_CONNECTED == code) { + _wifi_dnsServer.stop(); + DEBUG_MSG_P(PSTR("[WIFI] Captive portal disabled\n")); + } + +} + +#endif // WIFI_AP_CAPTIVE + #if DEBUG_SUPPORT void _wifiDebug(justwifi_messages_t code, char * parameter) { @@ -422,6 +443,9 @@ void wifiSetup() { _wifiConfigure(); // Message callbacks + #if WIFI_AP_CAPTIVE + wifiRegister(_wifiCaptivePortal); + #endif #if DEBUG_SUPPORT wifiRegister(_wifiDebug); #endif @@ -446,6 +470,12 @@ void wifiLoop() { jw.loop(); + #if WIFI_AP_CAPTIVE + if ((WiFi.getMode() & WIFI_AP) == WIFI_AP) { + _wifi_dnsServer.processNextRequest(); + } + #endif + if (_wifi_scan_client_id > 0) { _wifiScan(_wifi_scan_client_id); _wifi_scan_client_id = 0; diff --git a/code/html/custom.js b/code/html/custom.js index 4338ea11..1b5009ca 100644 --- a/code/html/custom.js +++ b/code/html/custom.js @@ -878,13 +878,15 @@ function initChannels(num) { var line = $(template).clone(); $("span.slider", line).attr("data", channel_id); $("input.slider", line).attr("data", channel_id).on("change", onChannelSliderChange); - $("label", line).html("Channel " + (channel_id + 1)); + $("label", line).html("Channel #" + channel_id); line.appendTo("#channels"); + } + + for (var i=0; i").attr("value",i).text("Channel #" + i)); - } } diff --git a/code/platformio.ini b/code/platformio.ini index a103cbaa..db3a4034 100644 --- a/code/platformio.ini +++ b/code/platformio.ini @@ -6,13 +6,16 @@ data_dir = espurna/data [common] # ------------------------------------------------------------------------------ # PLATFORM: -# !! DO NOT confuse platformio's Esp8266 development platform with Arduino core for ESP8266 +# !! DO NOT confuse platformio's ESP8266 development platform with Arduino core for ESP8266 +# We use platformIO 1.5.0 as default # -# we use platformIO 1.5.0 as default -# platform 1.6.0 = arduino core 2.4.0 is required for newer features/boards +# platformIO 1.5.0 = arduino core 2.3.0 +# platformIO 1.6.0 = arduino core 2.4.0 +# platformIO 1.7.0 = arduino core 2.4.1 # ------------------------------------------------------------------------------ platform_150 = espressif8266@1.5.0 platform_160 = espressif8266@1.6.0 +platform_170 = espressif8266@1.7.0 platform = ${common.platform_150} # ------------------------------------------------------------------------------ @@ -26,8 +29,13 @@ debug_flags = -DDEBUG_ESP_CORE -DDEBUG_ESP_SSL -DDEBUG_ESP_WIFI -DDEBUG_ESP_HTTP # build flags for 512k/1m ESP's are different because we use Linker Scripts to adjust flash split # 512 KB = 487 KB sketch, 20 KB eeprom # 1 MB = 999 KB sketch, 20 KB eeprom +# +# Available lwIP variants (macros): +# -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH v1.4 Higher Bandwidth (default) +# -DPIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY v2 Lower Memory +# -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH v2 Higher Bandwidth # ------------------------------------------------------------------------------ -build_flags = -g -DMQTT_MAX_PACKET_SIZE=400 ${env.ESPURNA_FLAGS} +build_flags = -g -DMQTT_MAX_PACKET_SIZE=400 ${env.ESPURNA_FLAGS} -DPIO_FRAMEWORK_ARDUINO_LWIP_HIGHER_BANDWIDTH build_flags_512k = ${common.build_flags} -Wl,-Tesp8266.flash.512k0.ld build_flags_1m = ${common.build_flags} -Wl,-Tesp8266.flash.1m0.ld @@ -50,13 +58,13 @@ lib_deps = Brzo I2C https://bitbucket.org/xoseperez/debounceevent.git#2.0.1 Embedis - https://github.com/plerup/espsoftwareserial#7077979 + https://github.com/plerup/espsoftwareserial#3.4.1 https://github.com/me-no-dev/ESPAsyncTCP#55cd520 https://github.com/me-no-dev/ESPAsyncWebServer#232b87a https://bitbucket.org/xoseperez/fauxmoesp.git#2.4.2 https://github.com/xoseperez/hlw8012.git#1.1.0 https://github.com/markszabo/IRremoteESP8266#v2.2.0 - https://bitbucket.org/xoseperez/justwifi.git#1.1.7 + https://bitbucket.org/xoseperez/justwifi.git#1.1.8 https://github.com/madpilot/mDNSResolver#4cfcda1 https://github.com/xoseperez/my92xx#3.0.1 https://bitbucket.org/xoseperez/nofuss.git#0.2.5 @@ -1874,6 +1882,35 @@ upload_port = "${env.ESPURNA_IP}" upload_flags = --auth=${env.ESPURNA_AUTH} --port 8266 extra_scripts = ${common.extra_scripts} +[env:zhilde-eu44-w] +platform = ${common.platform} +framework = arduino +board = esp01_1m +board_flash_mode = dout +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m} -DZHILDE_EU44_W +monitor_baud = 115200 +extra_scripts = ${common.extra_scripts} + +[env:zhilde-eu44-w-ota] +platform = ${common.platform} +framework = arduino +board = esp01_1m +board_flash_mode = dout +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m} -DZHILDE_EU44_W +upload_speed = 115200 +upload_port = "192.168.4.1" +upload_flags = --auth=fibonacci --port 8266 +monitor_baud = 115200 +extra_scripts = ${common.extra_scripts} + +# ------------------------------------------------------------------------------ +# GENERIC OTA ENVIRONMENTS +# ------------------------------------------------------------------------------ + [env:generic-esp01s-relay-40] platform = ${common.platform} framework = arduino diff --git a/pre-commit b/pre-commit index 90640b70..acc37a69 100755 --- a/pre-commit +++ b/pre-commit @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python """ Referencing current branch in github README.md [1] @@ -17,61 +17,107 @@ Copy this file to .git/hooks/ import os import sys import re -import subprocess - -BASE = os.path.dirname(os.path.realpath(__file__)) + "/../../" -README = BASE + "README.md" -remote = subprocess.check_output(["git", "remote", "-v"]).strip().split('\n')[0] -parts = re.split('[/\.: ]', remote) -REPO = parts[ len(parts) - 3] -USER = parts[ len(parts) - 4] -BRANCH = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"]).strip() - -def getVersion(): - file_name = BASE + "code/espurna/config/version.h" - lines = open(file_name).readlines() - for line in lines: - if "APP_VERSION" in line: - parts = line.split('"') - return parts[1] - return "unknown" -VERSION = getVersion() - -version = "[![version](https://img.shields.io/badge/version-{VERSION}-brightgreen.svg)](CHANGELOG.md)\n".format( - VERSION = VERSION -) - -branch = "![branch](https://img.shields.io/badge/branch-{BRANCH}-orange.svg)\n".format( - BRANCH = BRANCH -) - -travis = "[![travis](https://travis-ci.org/{USER}/{REPO}.svg?branch={BRANCH})]" \ - "(https://travis-ci.org/{USER}/{REPO})\n".format( - USER = USER, - REPO = REPO, - BRANCH = BRANCH -) - -codacy = "[![codacy](https://img.shields.io/codacy/grade/{HASH}/{BRANCH}.svg)]" \ - "(https://www.codacy.com/app/{USER}/{REPO}/dashboard)\n".format( - HASH = "c9496e25cf07434cba786b462cb15f49", - USER = USER, - REPO = REPO, - BRANCH = BRANCH -) - -lines = open(README).readlines() -with open(README, "w") as fh: - for line in lines: - if "![travis]" in line: - fh.write(travis) - elif "![version]" in line: - fh.write(version) - elif "![branch]" in line: - fh.write(branch) - elif "![codacy]" in line: - fh.write(codacy) - else: - fh.write(line) - -subprocess.check_output(["git", "add", README ]) + +from subprocess import call, check_output +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + +from fileinput import FileInput +# https://github.com/python/cpython/commit/6cb7b659#diff-78790b53ff259619377058acd4f74672 +if sys.version_info[0] < 3: + class FileInputCtx(FileInput): + def __enter__(self): + return self + + def __exit__(self, type, value, traceback): + self.close() + + FileInput = FileInputCtx + + +def run(cmd, cwd=None): + out = check_output(cmd, cwd=cwd) + out = out.decode("latin1").strip() + + return out + + +def parse_h_string(define, r_quotes=re.compile("\"(.*)\"")): + string = r_quotes.search(define).group(1) + return string + + +def git_parse_remote(cwd=None, remote="origin"): + remote_url = run([ + "git", "config", "--local", + "--get", "remote.{}.url".format(remote)], cwd) + + if remote_url.startswith("git"): + _, _, repo = remote_url.partition(":") + path = repo.replace(".git", "") + elif remote_url.startswith("https"): + parsed = urlparse(remote_url) + path = parsed.path[1:] + return path.split("/") + + +def git_branch(cwd=None): + return run(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd) + + +def espurna_get_version(base, version_h="code/espurna/config/version.h"): + version = "unknown" + + path = os.path.join(base, version_h) + with open(path, "r") as version_f: + for line in version_f: + if line.startswith("#define") and "APP_VERSION" in line: + version = parse_h_string(line) + break + + return version + +TEMPLATES = { + "![travis]": "[![travis](https://travis-ci.org/{USER}/{REPO}.svg?branch={BRANCH})]" \ + "(https://travis-ci.org/{USER}/{REPO})\n", + "![version]": "[![version](https://img.shields.io/badge/version-{VERSION}-brightgreen.svg)](CHANGELOG.md)\n", + "![branch]": "[![branch](https://img.shields.io/badge/branch-{BRANCH}-orange.svg)]" \ + "(https://github.org/{USER}/{REPO}/tree/{BRANCH}/)\n", + "![codacy]": "[![codacy](https://img.shields.io/codacy/grade/c9496e25cf07434cba786b462cb15f49/{BRANCH}.svg)]" \ + "(https://www.codacy.com/app/{USER}/{REPO}/dashboard)\n" +} + +README = "README.md" + + +if __name__ == "__main__": + base = os.getcwd() + + user, repo = git_parse_remote() + fmt = { + "USER": user, + "REPO": repo, + "BRANCH": git_branch(), + "VERSION": espurna_get_version(base) + } + templates = [ + (k, tmpl.format(**fmt)) + for k, tmpl in TEMPLATES.items() + ] + + def fmt_line(line): + for match, tmpl in templates: + if match in line: + return tmpl + + return line + + path = os.path.join(base, README) + + with FileInput(path, inplace=True) as readme: + for line in readme: + sys.stdout.write(fmt_line(line)) + + sys.exit(call(["git", "add", README]))