Usermod class vars part1: add enabled and _name for imu and dallas

usermod_mpu6050_imu.h and usermod_temperature.h:
- remove bool enabled = false/true (now default false)
- remove static const char _name[] and _enabled[]
- add constructor which calls superclass (temp?)
- replace _enabled with "enabled"
- remove const char PROGMEM init for  _name[] and _enabled[]

settings_um.htm:
- Add usermod table with class properties (name and enabled) -> WIP as not all UM's now and enable will be checkbox ? (compare with info tab...?)

fcn_declare.h
- add _name and enabled to Usermod class and add name to constructor

usermods_list.cpp
- add Usermod name to constructor for mpu6050 and temperature)
- to do add enabled is true to constructor
This commit is contained in:
Ewoud
2023-03-15 17:48:37 +01:00
parent 2de7971623
commit 7337efec02
6 changed files with 223 additions and 215 deletions

View File

@@ -45,13 +45,9 @@ class UsermodTemperature : public Usermod {
// temperature if flashed to a board without a sensor attached // temperature if flashed to a board without a sensor attached
byte sensorFound; byte sensorFound;
bool enabled = true;
bool HApublished = false; bool HApublished = false;
// strings to reduce flash memory usage (used more than twice) // strings to reduce flash memory usage (used more than twice)
static const char _name[];
static const char _enabled[];
static const char _readInterval[]; static const char _readInterval[];
static const char _parasite[]; static const char _parasite[];
static const char _parasitePin[]; static const char _parasitePin[];
@@ -163,6 +159,7 @@ class UsermodTemperature : public Usermod {
#endif #endif
public: public:
UsermodTemperature(const char *name):Usermod(name) {} //WLEDMM: this shouldn't be necessary (passthrough of constructor), maybe because Usermod is an abstract class
void setup() { void setup() {
int retries = 10; int retries = 10;
@@ -327,7 +324,7 @@ class UsermodTemperature : public Usermod {
void addToConfig(JsonObject &root) { void addToConfig(JsonObject &root) {
// we add JSON object: {"Temperature": {"pin": 0, "degC": true}} // we add JSON object: {"Temperature": {"pin": 0, "degC": true}}
JsonObject top = root.createNestedObject(FPSTR(_name)); // usermodname JsonObject top = root.createNestedObject(FPSTR(_name)); // usermodname
top[FPSTR(_enabled)] = enabled; top[FPSTR("enabled")] = enabled;
top["pin"] = temperaturePin; // usermodparam top["pin"] = temperaturePin; // usermodparam
top["degC"] = degC; // usermodparam top["degC"] = degC; // usermodparam
top[FPSTR(_readInterval)] = readingInterval / 1000; top[FPSTR(_readInterval)] = readingInterval / 1000;
@@ -352,7 +349,7 @@ class UsermodTemperature : public Usermod {
return false; return false;
} }
enabled = top[FPSTR(_enabled)] | enabled; enabled = top[FPSTR("enabled")] | enabled;
newTemperaturePin = top["pin"] | newTemperaturePin; newTemperaturePin = top["pin"] | newTemperaturePin;
degC = top["degC"] | degC; degC = top["degC"] | degC;
readingInterval = top[FPSTR(_readInterval)] | readingInterval/1000; readingInterval = top[FPSTR(_readInterval)] | readingInterval/1000;
@@ -398,8 +395,6 @@ class UsermodTemperature : public Usermod {
}; };
// strings to reduce flash memory usage (used more than twice) // strings to reduce flash memory usage (used more than twice)
const char UsermodTemperature::_name[] PROGMEM = "Temperature";
const char UsermodTemperature::_enabled[] PROGMEM = "enabled";
const char UsermodTemperature::_readInterval[] PROGMEM = "read-interval-s"; const char UsermodTemperature::_readInterval[] PROGMEM = "read-interval-s";
const char UsermodTemperature::_parasite[] PROGMEM = "parasite-pwr"; const char UsermodTemperature::_parasite[] PROGMEM = "parasite-pwr";
const char UsermodTemperature::_parasitePin[] PROGMEM = "parasite-pwr-pin"; const char UsermodTemperature::_parasitePin[] PROGMEM = "parasite-pwr-pin";

View File

@@ -93,7 +93,6 @@ void IRAM_ATTR dmpDataReady() {
class MPU6050Driver : public Usermod { class MPU6050Driver : public Usermod {
private: private:
MPU6050 mpu; MPU6050 mpu;
bool enabled = true;
bool initDone = false; bool initDone = false;
unsigned long lastUMRun = millis(); unsigned long lastUMRun = millis();
@@ -105,11 +104,11 @@ class MPU6050Driver : public Usermod {
uint8_t fifoBuffer[64]; // FIFO storage buffer uint8_t fifoBuffer[64]; // FIFO storage buffer
// strings to reduce flash memory usage (used more than twice) // strings to reduce flash memory usage (used more than twice)
static const char _name[];
static const char _enabled[];
static const char _INT_pin[]; static const char _INT_pin[];
public: public:
MPU6050Driver(const char *name):Usermod(name) {} //WLEDMM: this shouldn't be necessary (passthrough of constructor), maybe because Usermod is an abstract class
bool dmpReady = false; // set true if DMP init was successful // WLEDMM expose this info in public interface bool dmpReady = false; // set true if DMP init was successful // WLEDMM expose this info in public interface
// orientation/motion vars // orientation/motion vars
Quaternion qat; // [w, x, y, z] quaternion container Quaternion qat; // [w, x, y, z] quaternion container
@@ -128,7 +127,7 @@ class MPU6050Driver : public Usermod {
#endif #endif
void setup() { void setup() {
// WLEDMM begin // WLEDMM begin
if (!enabled) { if (!enabled) {
dmpReady = false; dmpReady = false;
return; return;
@@ -358,7 +357,7 @@ class MPU6050Driver : public Usermod {
void addToConfig(JsonObject& root) void addToConfig(JsonObject& root)
{ {
JsonObject top = root.createNestedObject(FPSTR(_name)); JsonObject top = root.createNestedObject(FPSTR(_name));
top[FPSTR(_enabled)] = enabled; top[FPSTR("enabled")] = enabled;
//JsonObject interruptPin = top.createNestedObject(FPSTR(_INT_pin)); //JsonObject interruptPin = top.createNestedObject(FPSTR(_INT_pin));
//interruptPin["pin"] = INTERRUPT_PIN; //interruptPin["pin"] = INTERRUPT_PIN;
DEBUG_PRINTLN(F("MPU6050 IMU config saved.")); DEBUG_PRINTLN(F("MPU6050 IMU config saved."));
@@ -390,7 +389,7 @@ class MPU6050Driver : public Usermod {
} }
bool configComplete = !top.isNull(); bool configComplete = !top.isNull();
configComplete &= getJsonValue(top[FPSTR(_enabled)], enabled); configComplete &= getJsonValue(top[FPSTR("enabled")], enabled);
//configComplete &= getJsonValue(top[FPSTR(_INT_pin)]["pin"], INTERRUPT_PIN); //configComplete &= getJsonValue(top[FPSTR(_INT_pin)]["pin"], INTERRUPT_PIN);
DEBUG_PRINT(FPSTR(_name)); DEBUG_PRINT(FPSTR(_name));
@@ -416,6 +415,4 @@ class MPU6050Driver : public Usermod {
}; };
// strings to reduce flash memory usage (used more than twice) // strings to reduce flash memory usage (used more than twice)
const char MPU6050Driver::_name[] PROGMEM = "mpu6050-IMU";
const char MPU6050Driver::_enabled[] PROGMEM = "enabled";
const char MPU6050Driver::_INT_pin[] PROGMEM = "interrupt_pin"; const char MPU6050Driver::_INT_pin[] PROGMEM = "interrupt_pin";

View File

@@ -332,6 +332,15 @@
} }
} }
if (userMod != null && urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults."; if (userMod != null && urows==="") urows = "Usermods configuration not found.<br>Press <i>Save</i> to initialize defaults.";
if (userMod == null) {
urows += `<hr>`;
urows += `<table>`;
urows += `<tr><th>Usermod</th><th>Enabled</th></tr>`
for (const [k,o] of Object.entries(umCfg)) {
urows += `<tr><td>${k}</td><td>${o.enabled}</td></tr>`;
}
urows += `</table>`;
}
} }
gId("um").innerHTML = urows; gId("um").innerHTML = urows;
@@ -361,6 +370,7 @@
<span id="lserr" style="color:red; display:none">&#9888; Could not load configuration.</span> <span id="lserr" style="color:red; display:none">&#9888; Could not load configuration.</span>
</div> </div>
<!-- WLEDMM: no gpios here as it is generated --> <!-- WLEDMM: no gpios here as it is generated -->
<hr>
<div id="um">Loading settings...</div> <div id="um">Loading settings...</div>
<div name="errorMessage"></div> <div name="errorMessage"></div>
<hr><button type="button" onclick="B()">Back</button><button type="submit">Save</button> <hr><button type="button" onclick="B()">Back</button><button type="submit">Save</button>

View File

@@ -261,8 +261,10 @@ const unsigned int um_data_size = sizeof(um_data_t); // 12 bytes
class Usermod { class Usermod {
protected: protected:
um_data_t *um_data; // um_data should be allocated using new in (derived) Usermod's setup() or constructor um_data_t *um_data; // um_data should be allocated using new in (derived) Usermod's setup() or constructor
bool enabled = false; //WLEDMM
const char *_name; //WLEDMM
public: public:
Usermod() { um_data = nullptr; } Usermod(const char *name = nullptr) { um_data = nullptr; _name = name;}
virtual ~Usermod() { if (um_data) delete um_data; } virtual ~Usermod() { if (um_data) delete um_data; }
virtual void setup() = 0; // pure virtual, has to be overriden virtual void setup() = 0; // pure virtual, has to be overriden
virtual void loop() = 0; // pure virtual, has to be overriden virtual void loop() = 0; // pure virtual, has to be overriden

View File

@@ -1688,203 +1688,207 @@ const uint8_t PAGE_settings_sec[] PROGMEM = {
// Autogenerated from wled00/data/settings_um.htm, do not edit!! // Autogenerated from wled00/data/settings_um.htm, do not edit!!
const uint16_t PAGE_settings_um_length = 3107; const uint16_t PAGE_settings_um_length = 3172;
const uint8_t PAGE_settings_um[] PROGMEM = { const uint8_t PAGE_settings_um[] PROGMEM = {
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x59, 0xef, 0x72, 0xdb, 0xc6, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x59, 0xed, 0x72, 0xdb, 0xc6,
0x11, 0xff, 0xae, 0xa7, 0x80, 0x2e, 0x1a, 0x09, 0x18, 0x42, 0x20, 0x15, 0x27, 0x33, 0x36, 0xc9, 0x15, 0xfd, 0xaf, 0xa7, 0x80, 0x36, 0x1e, 0x09, 0x18, 0x42, 0x20, 0x15, 0x27, 0x33, 0x36, 0x41,
0x83, 0x6a, 0xc9, 0x4e, 0xac, 0xd6, 0x8e, 0x34, 0x91, 0x9d, 0xa4, 0x23, 0xab, 0x16, 0x08, 0x1c, 0x40, 0xb5, 0x65, 0x27, 0x56, 0x6b, 0x47, 0x9a, 0xc8, 0x4e, 0xd2, 0x91, 0x55, 0x0b, 0x24, 0x96,
0xc9, 0xb3, 0xc0, 0x3b, 0x04, 0x38, 0xe8, 0x4f, 0x29, 0xbe, 0x45, 0xbf, 0xa7, 0xd3, 0xbe, 0x42, 0x24, 0x2c, 0x70, 0x17, 0x01, 0x16, 0xfa, 0x28, 0xc5, 0xb7, 0xe8, 0xff, 0x74, 0xda, 0x57, 0xe8,
0x1f, 0xac, 0x8f, 0xd0, 0xdf, 0xdd, 0x01, 0x20, 0x48, 0x4b, 0x72, 0xd2, 0x69, 0xa7, 0xfd, 0x22, 0x83, 0xf5, 0x11, 0x7a, 0xee, 0x2e, 0x00, 0x82, 0x34, 0x25, 0x27, 0x9d, 0x76, 0xda, 0x3f, 0x12,
0x81, 0x87, 0xbd, 0xbd, 0xfd, 0xf3, 0xdb, 0xbd, 0xdd, 0xc5, 0x70, 0xf3, 0xc5, 0xf1, 0xe1, 0xdb, 0xb8, 0xb8, 0x7b, 0xf7, 0x7e, 0x9c, 0x7b, 0xf6, 0xee, 0x62, 0xb0, 0xfd, 0xe2, 0xf8, 0xf0, 0xed,
0x3f, 0x9e, 0xbc, 0x74, 0xa6, 0x6a, 0x96, 0x86, 0xc3, 0xea, 0x2f, 0x8b, 0x12, 0x27, 0x8d, 0xc4, 0x1f, 0x4f, 0x5e, 0x5a, 0x53, 0x35, 0x4b, 0xc3, 0x41, 0xf5, 0x97, 0x47, 0xb1, 0x95, 0x46, 0x62,
0x84, 0x12, 0x26, 0x48, 0x38, 0x9c, 0x31, 0x15, 0x39, 0xf1, 0x34, 0xca, 0x0b, 0xa6, 0x28, 0x29, 0x12, 0x30, 0x2e, 0x58, 0x38, 0x98, 0x71, 0x15, 0x59, 0xa3, 0x69, 0x94, 0x17, 0x5c, 0x05, 0xac,
0xd5, 0x78, 0xf7, 0x69, 0xbd, 0xba, 0x21, 0xa2, 0x19, 0xa3, 0xe4, 0x8a, 0xb3, 0xeb, 0x4c, 0xe6, 0x54, 0xe3, 0xbd, 0x27, 0xf5, 0xe8, 0x96, 0x88, 0x66, 0x3c, 0x60, 0x57, 0x09, 0xbf, 0xce, 0x64,
0x8a, 0x38, 0xb1, 0x14, 0x8a, 0x09, 0x90, 0x5d, 0xf3, 0x44, 0x4d, 0xe9, 0xd7, 0xbd, 0x5e, 0x43, 0xae, 0x98, 0x35, 0x92, 0x42, 0x71, 0x01, 0xb1, 0xeb, 0x24, 0x56, 0xd3, 0xe0, 0xeb, 0x5e, 0xaf,
0xba, 0xf6, 0x2a, 0x61, 0x57, 0x3c, 0x66, 0xbb, 0xe6, 0x87, 0xcf, 0x05, 0x57, 0x3c, 0x4a, 0x77, 0x11, 0x5d, 0x7b, 0x15, 0xf3, 0xab, 0x64, 0xc4, 0xf7, 0xf4, 0x0f, 0x37, 0x11, 0x89, 0x4a, 0xa2,
0x8b, 0x38, 0x4a, 0x19, 0xdd, 0xf3, 0x67, 0xd1, 0x0d, 0x9f, 0x95, 0xb3, 0xe6, 0x77, 0x59, 0xb0, 0x74, 0xaf, 0x18, 0x45, 0x29, 0x0f, 0xf6, 0xdd, 0x59, 0x74, 0x93, 0xcc, 0xca, 0x59, 0xf3, 0xbb,
0xdc, 0xfc, 0x88, 0x46, 0xf8, 0x2d, 0x24, 0xf9, 0xe4, 0xe4, 0x70, 0xa8, 0xb8, 0x4a, 0x59, 0xf8, 0x2c, 0x78, 0xae, 0x7f, 0x44, 0x43, 0xfc, 0x16, 0x92, 0x7d, 0xb2, 0x72, 0x38, 0x50, 0x89, 0x4a,
0x0e, 0x94, 0x33, 0x99, 0x38, 0xa7, 0x4c, 0x29, 0x2e, 0x26, 0xc5, 0xb0, 0x6b, 0xd7, 0x87, 0x45, 0x79, 0xf8, 0x0e, 0x92, 0x33, 0x19, 0x5b, 0xa7, 0x5c, 0xa9, 0x44, 0x4c, 0x8a, 0x41, 0xd7, 0x8c,
0x9c, 0xf3, 0x4c, 0x85, 0x1b, 0x57, 0x51, 0xee, 0x24, 0x34, 0x91, 0x71, 0x39, 0x83, 0x34, 0x83, 0x0f, 0x8a, 0x51, 0x9e, 0x64, 0x2a, 0xdc, 0xba, 0x8a, 0x72, 0x2b, 0x0e, 0x62, 0x39, 0x2a, 0x67,
0x24, 0xc0, 0x59, 0x1f, 0x26, 0x19, 0x97, 0xf4, 0xc9, 0x33, 0x3f, 0x09, 0xca, 0xd9, 0x87, 0x8c, 0xb0, 0xc6, 0x8f, 0x3d, 0xac, 0xf5, 0x61, 0x92, 0x25, 0x32, 0x78, 0xfc, 0xd4, 0x8d, 0xbd, 0x72,
0x9e, 0x9d, 0xe3, 0x29, 0x2f, 0xae, 0x92, 0xea, 0x49, 0x5a, 0x82, 0xb3, 0xf3, 0x81, 0xde, 0x2d, 0xf6, 0x21, 0x0b, 0xce, 0xce, 0xf1, 0x94, 0x17, 0x57, 0x71, 0xf5, 0x24, 0x8d, 0xc0, 0xd9, 0xb9,
0xaf, 0x05, 0xcb, 0xfd, 0x54, 0xc6, 0x3c, 0xf3, 0xcb, 0x5c, 0x5e, 0x17, 0x7e, 0x39, 0x3b, 0x1c, 0x4f, 0xb3, 0xe5, 0xb5, 0xe0, 0xb9, 0x9b, 0xca, 0x51, 0x92, 0xb9, 0x65, 0x2e, 0xaf, 0x0b, 0xb7,
0x4f, 0xe8, 0x7c, 0xe1, 0x67, 0x5c, 0x14, 0x7a, 0x0f, 0xfe, 0x1f, 0xeb, 0xff, 0x20, 0xa2, 0x9b, 0x9c, 0x1d, 0x8e, 0x27, 0xc1, 0x7c, 0xe1, 0x66, 0x89, 0x28, 0x68, 0x0e, 0xfe, 0x1f, 0xd3, 0x7f,
0x7b, 0x83, 0x71, 0x29, 0x62, 0xc5, 0xa5, 0x70, 0x26, 0x47, 0x89, 0xcb, 0xbc, 0x79, 0xce, 0x54, 0x08, 0x05, 0xdb, 0xfb, 0xfe, 0xb8, 0x14, 0x23, 0x95, 0x48, 0x61, 0x4d, 0x8e, 0x62, 0x9b, 0x3b,
0x99, 0x0b, 0x27, 0x09, 0x26, 0x4c, 0xbd, 0x4c, 0x99, 0x16, 0xe4, 0xe0, 0xd6, 0xbc, 0x5a, 0x34, 0xf3, 0x9c, 0xab, 0x32, 0x17, 0x56, 0xec, 0x4d, 0xb8, 0x7a, 0x99, 0x72, 0x32, 0xe4, 0xf9, 0xad,
0xa4, 0xbc, 0x38, 0x6e, 0x91, 0xb2, 0xed, 0x6d, 0x22, 0x47, 0x1f, 0x59, 0xac, 0x08, 0xa5, 0xea, 0x7e, 0xb5, 0x68, 0x44, 0x93, 0xe2, 0xb8, 0x25, 0xca, 0x77, 0x76, 0x98, 0x1c, 0x7e, 0xe4, 0x23,
0x36, 0x63, 0x72, 0xac, 0xd7, 0x36, 0x9f, 0xe7, 0x79, 0x74, 0x1b, 0xf0, 0xc2, 0xfc, 0x5f, 0xd9, 0xc5, 0x82, 0x40, 0xdd, 0x66, 0x5c, 0x8e, 0x69, 0x6c, 0xfb, 0x59, 0x9e, 0x47, 0xb7, 0x5e, 0x52,
0xff, 0xca, 0xf5, 0xe6, 0xd7, 0x5c, 0x24, 0xf2, 0x3a, 0x90, 0x19, 0x13, 0x2e, 0x99, 0x2a, 0x95, 0xe8, 0xff, 0x2b, 0xf3, 0x5f, 0xd9, 0xce, 0xfc, 0x3a, 0x11, 0xb1, 0xbc, 0xf6, 0x64, 0xc6, 0x85,
0x15, 0xfd, 0x6e, 0x77, 0xc2, 0xd5, 0xb4, 0x1c, 0x05, 0xb1, 0x9c, 0x75, 0x9f, 0xf3, 0x3c, 0x96, 0xcd, 0xa6, 0x4a, 0x65, 0x45, 0xbf, 0xdb, 0x9d, 0x24, 0x6a, 0x5a, 0x0e, 0xbd, 0x91, 0x9c, 0x75,
0x52, 0x5e, 0x72, 0xd6, 0xfd, 0xf1, 0xf5, 0xcb, 0x17, 0xdd, 0x6b, 0x7e, 0xc9, 0xbb, 0xb5, 0xe5, 0x9f, 0x25, 0xf9, 0x48, 0x4a, 0x79, 0x99, 0xf0, 0xee, 0x8f, 0xaf, 0x5f, 0xbe, 0xe8, 0x5e, 0x27,
0xbe, 0x28, 0xad, 0x29, 0x77, 0x8b, 0x6a, 0x81, 0xb4, 0xb8, 0x1f, 0xac, 0x73, 0xef, 0x36, 0x54, 0x97, 0x49, 0xb7, 0x8e, 0xdc, 0x17, 0xa5, 0x09, 0xe5, 0x5e, 0x51, 0x0d, 0xb0, 0x96, 0xf6, 0xe7,
0x3e, 0xf9, 0x50, 0xb0, 0x74, 0xdc, 0xa6, 0x4e, 0x65, 0x94, 0xfc, 0xfe, 0xd4, 0x65, 0xbe, 0xa2, 0xeb, 0xda, 0xbb, 0x8d, 0x94, 0xcb, 0x3e, 0x14, 0x3c, 0x1d, 0xb7, 0xa5, 0x53, 0x19, 0xc5, 0xbf,
0x9b, 0x3d, 0x6f, 0x9e, 0x32, 0xe5, 0x08, 0x9a, 0x04, 0x71, 0xce, 0x22, 0xc5, 0x2a, 0x03, 0xb8, 0x3f, 0xb5, 0xb9, 0xab, 0x82, 0xed, 0x9e, 0x33, 0x4f, 0xb9, 0xb2, 0x44, 0x10, 0x7b, 0xa3, 0x9c,
0xc4, 0x7a, 0x88, 0x78, 0x03, 0x11, 0x80, 0xd9, 0x73, 0xa5, 0x72, 0x3e, 0x2a, 0x15, 0xc3, 0x8b, 0x47, 0x8a, 0x57, 0x01, 0xb0, 0x99, 0xc9, 0x10, 0x73, 0x7c, 0xe1, 0x41, 0xd9, 0x33, 0xa5, 0xf2,
0x3c, 0x26, 0x3e, 0xf3, 0xfc, 0xf5, 0x75, 0x6d, 0x07, 0x1c, 0xa7, 0xd8, 0x8d, 0xea, 0x7e, 0x8c, 0x64, 0x58, 0x2a, 0x8e, 0x17, 0xf9, 0x88, 0xb9, 0xdc, 0x71, 0xd7, 0xc7, 0x29, 0x0e, 0x58, 0x4e,
0xae, 0xa2, 0x9a, 0xc1, 0x27, 0x84, 0x51, 0x71, 0x2b, 0xc0, 0x42, 0x79, 0x70, 0xe6, 0x48, 0x26, 0xf1, 0x1b, 0xd5, 0xfd, 0x18, 0x5d, 0x45, 0xb5, 0x82, 0x4f, 0x04, 0xa3, 0xe2, 0x56, 0x40, 0x85,
0xb7, 0x41, 0x94, 0x41, 0xe8, 0xe4, 0x70, 0xca, 0xd3, 0xc4, 0x15, 0x9a, 0x3e, 0x4a, 0x92, 0x97, 0x72, 0x90, 0xcc, 0xa1, 0x8c, 0x6f, 0xbd, 0x28, 0x83, 0xd1, 0xf1, 0xe1, 0x34, 0x49, 0x63, 0x5b,
0x57, 0x90, 0xe2, 0x35, 0x2f, 0x00, 0x52, 0x96, 0xbb, 0x44, 0xcb, 0x4c, 0x7c, 0xd7, 0xa3, 0xe1, 0x90, 0x7c, 0x14, 0xc7, 0x2f, 0xaf, 0x60, 0xc5, 0xeb, 0xa4, 0x00, 0x48, 0x79, 0x6e, 0x33, 0xb2,
0xfc, 0x5b, 0xa6, 0x7e, 0x70, 0xbd, 0xc1, 0x58, 0xe6, 0xae, 0x16, 0x9d, 0xd1, 0xde, 0x80, 0x0d, 0x99, 0xb9, 0xb6, 0x13, 0x84, 0xf3, 0x6f, 0xb9, 0xfa, 0xc1, 0x76, 0xfc, 0xb1, 0xcc, 0x6d, 0x32,
0x2d, 0x40, 0x82, 0x94, 0x89, 0x89, 0x9a, 0x0e, 0x58, 0xa7, 0xe3, 0x69, 0xe7, 0x07, 0x59, 0x59, 0x9d, 0x07, 0x3d, 0x9f, 0x0f, 0x0c, 0x40, 0xbc, 0x94, 0x8b, 0x89, 0x9a, 0xfa, 0xbc, 0xd3, 0x71,
0x4c, 0x5d, 0xfb, 0xee, 0x8c, 0x9d, 0x7b, 0x06, 0x09, 0x76, 0x91, 0xe8, 0x35, 0x68, 0xb7, 0xbb, 0x28, 0xf9, 0x5e, 0x56, 0x16, 0x53, 0xdb, 0xbc, 0x3b, 0xe3, 0xe7, 0x8e, 0x46, 0x82, 0x19, 0x64,
0x47, 0xa9, 0xc5, 0xd9, 0x59, 0xef, 0x7c, 0x7b, 0xdb, 0x3e, 0x06, 0xc5, 0x94, 0x8f, 0x95, 0xeb, 0x34, 0x06, 0xef, 0xf6, 0xf6, 0x83, 0xc0, 0xe0, 0xec, 0xac, 0x77, 0xbe, 0xb3, 0x63, 0x1e, 0xbd,
0x2d, 0xee, 0x17, 0x86, 0xe5, 0xb9, 0xcc, 0x61, 0x03, 0x08, 0x83, 0x30, 0x2a, 0x64, 0xca, 0x82, 0x62, 0x9a, 0x8c, 0x95, 0xed, 0x2c, 0x36, 0x1b, 0xc3, 0xf3, 0x5c, 0xe6, 0x88, 0x01, 0x8c, 0x41,
0x54, 0x4e, 0x5c, 0xf2, 0x52, 0xaf, 0x3b, 0x95, 0x85, 0x61, 0x7d, 0x67, 0xcc, 0x53, 0x66, 0x6c, 0x19, 0x15, 0x32, 0xe5, 0x5e, 0x2a, 0x27, 0x36, 0x7b, 0x49, 0xe3, 0x56, 0x15, 0x61, 0x44, 0xdf,
0x85, 0xb8, 0xc9, 0x61, 0xd3, 0xd7, 0xd5, 0x3a, 0xe0, 0x82, 0x8d, 0x63, 0x3e, 0x29, 0xf3, 0xc8, 0x1a, 0x27, 0x29, 0xd7, 0xb1, 0x42, 0xdd, 0xe4, 0x88, 0xe9, 0xeb, 0x6a, 0x1c, 0x70, 0xc1, 0xc4,
0xb8, 0xc4, 0xda, 0xca, 0x19, 0x47, 0xd8, 0x90, 0x04, 0xef, 0xc5, 0x91, 0x00, 0x20, 0x32, 0xa8, 0x71, 0x32, 0x29, 0xf3, 0x48, 0xa7, 0xc4, 0xc4, 0xca, 0x1a, 0x47, 0x98, 0x10, 0x7b, 0xef, 0xc5,
0xc7, 0x9c, 0x2c, 0x9a, 0x30, 0x27, 0x89, 0x54, 0xb4, 0x09, 0x1f, 0xb6, 0xbc, 0x78, 0x0a, 0x9f, 0x91, 0x00, 0x20, 0x32, 0xb8, 0xc7, 0xad, 0x2c, 0x9a, 0x70, 0x2b, 0x8e, 0x54, 0xb4, 0x8d, 0x1c,
0x13, 0x7d, 0x40, 0x1f, 0x18, 0xac, 0x9c, 0x0f, 0x80, 0x1b, 0x7e, 0x41, 0x96, 0x4b, 0x25, 0x63, 0xb6, 0xb2, 0x78, 0x8a, 0x9c, 0x33, 0x5a, 0xa0, 0x0f, 0x0c, 0x56, 0xc9, 0x07, 0xc0, 0xb5, 0x3e,
0x99, 0x6e, 0x6f, 0xbb, 0x06, 0xf4, 0x3d, 0xdf, 0x35, 0x11, 0x42, 0x35, 0x45, 0x7a, 0xaa, 0x64, 0x2f, 0xcb, 0xa5, 0x92, 0x23, 0x99, 0xee, 0xec, 0xd8, 0x1a, 0xf4, 0x3d, 0xd7, 0xd6, 0x15, 0x12,
0x0e, 0xae, 0x1a, 0xef, 0x47, 0x8a, 0xcd, 0xb4, 0x75, 0xe3, 0xa3, 0x8c, 0x78, 0xde, 0xdd, 0x5d, 0x90, 0x44, 0x7a, 0xaa, 0x64, 0x0e, 0xad, 0x84, 0xf7, 0x23, 0xc5, 0x67, 0x14, 0xdd, 0xd1, 0x51,
0x45, 0x86, 0xfd, 0xb3, 0x0c, 0x02, 0x7f, 0x03, 0xfe, 0xce, 0x1b, 0x99, 0xb0, 0xc0, 0x39, 0x49, 0xc6, 0x1c, 0xe7, 0xee, 0xae, 0x12, 0xc3, 0xfc, 0x59, 0x06, 0x83, 0xbf, 0x81, 0x7e, 0xeb, 0x8d,
0x59, 0x54, 0x30, 0x07, 0x86, 0x60, 0xb9, 0xa3, 0xf1, 0xe9, 0x1c, 0x9d, 0x40, 0x24, 0x7f, 0x85, 0x8c, 0xb9, 0x67, 0x9d, 0xa4, 0x3c, 0x2a, 0xb8, 0x85, 0x40, 0xf0, 0xdc, 0x22, 0x7c, 0x5a, 0x47,
0x63, 0xb1, 0xca, 0xd1, 0x86, 0xa5, 0xe7, 0x81, 0x2a, 0x81, 0xbc, 0xed, 0x70, 0xfa, 0xa6, 0x1d, 0x27, 0x30, 0xc9, 0x5d, 0xd1, 0x58, 0xac, 0x6a, 0x34, 0x65, 0xe9, 0x38, 0x90, 0x8a, 0x61, 0x6f,
0x4e, 0x94, 0xd2, 0x0e, 0xe2, 0x87, 0x6d, 0x52, 0xea, 0xf6, 0xee, 0x56, 0xe3, 0xee, 0xe8, 0x3e, 0xbb, 0x9c, 0xbe, 0x69, 0x97, 0x53, 0x10, 0x04, 0x1d, 0xd4, 0x0f, 0xdf, 0x0e, 0x02, 0xbb, 0x77,
0x42, 0xfa, 0x09, 0x21, 0x74, 0x39, 0x81, 0xc7, 0x35, 0x31, 0x1f, 0xbb, 0x36, 0x5c, 0x3d, 0x8d, 0xb7, 0x5a, 0x77, 0x47, 0x9b, 0x04, 0x83, 0x4f, 0x04, 0xe1, 0xcb, 0x09, 0x32, 0x4e, 0xc2, 0xc9,
0x11, 0xed, 0x21, 0x75, 0x26, 0x7c, 0x79, 0x0e, 0xab, 0x1f, 0x9b, 0xa0, 0x0d, 0xa0, 0x44, 0xce, 0xd8, 0x36, 0xe5, 0xea, 0x10, 0x46, 0x28, 0x43, 0xea, 0x4c, 0xb8, 0xf2, 0x1c, 0x51, 0x3f, 0xd6,
0x99, 0x26, 0xf6, 0x2a, 0x62, 0xe9, 0x79, 0x26, 0x91, 0x50, 0xe1, 0xd7, 0x9c, 0xa4, 0x37, 0x60, 0x45, 0xeb, 0xc1, 0x89, 0x3c, 0xe1, 0x24, 0xec, 0x54, 0xc2, 0xd2, 0x71, 0x34, 0x91, 0x04, 0xc2,
0x29, 0x34, 0x06, 0x05, 0x01, 0x6e, 0x60, 0x65, 0x11, 0xe4, 0x2c, 0x4b, 0xa3, 0x18, 0x18, 0x3e, 0xad, 0x35, 0x49, 0xc7, 0xe7, 0x29, 0x3c, 0x86, 0x04, 0x03, 0x6e, 0x10, 0x65, 0xe1, 0xe5, 0x3c,
0x3b, 0x07, 0xd4, 0x89, 0x17, 0x14, 0xe5, 0xa8, 0x50, 0xb9, 0xbb, 0xfb, 0xc4, 0x70, 0x5a, 0x8d, 0x4b, 0xa3, 0x11, 0x30, 0x7c, 0x76, 0x0e, 0xa8, 0x33, 0xc7, 0x2b, 0xca, 0x61, 0xa1, 0x72, 0x7b,
0x7f, 0x69, 0x05, 0xd0, 0x49, 0x4a, 0x01, 0xa4, 0x6a, 0x28, 0x6b, 0x7c, 0x2a, 0xe0, 0x53, 0x9e, 0xef, 0xb1, 0xd6, 0xb4, 0x5a, 0xff, 0xd2, 0x18, 0x40, 0x24, 0xa5, 0x00, 0x52, 0x35, 0x90, 0x35,
0xa9, 0xf3, 0x90, 0xf6, 0xe0, 0xa1, 0x25, 0x52, 0xf5, 0x5a, 0x1b, 0xa4, 0x46, 0x24, 0xaf, 0x92, 0x3e, 0x15, 0xf0, 0x29, 0xcf, 0xd4, 0x79, 0x18, 0xf4, 0x90, 0xa1, 0x25, 0x52, 0x69, 0xac, 0x0d,
0x43, 0x7e, 0x42, 0xfd, 0x20, 0xe9, 0x43, 0xa2, 0xdc, 0x23, 0x46, 0xa3, 0xad, 0x3e, 0xba, 0x65, 0x52, 0x6d, 0x92, 0x53, 0xd9, 0x21, 0x3f, 0x91, 0xbe, 0x57, 0xf4, 0x3e, 0x53, 0x36, 0x98, 0xd1,
0x77, 0x5c, 0x01, 0x87, 0x51, 0xb6, 0xb4, 0x3d, 0x81, 0x9a, 0x80, 0x2e, 0xd9, 0x6c, 0xf2, 0xdd, 0x78, 0x4b, 0x4b, 0xb7, 0xe2, 0x8e, 0x2d, 0xe0, 0x30, 0xca, 0x96, 0xb1, 0x67, 0x70, 0x13, 0xd0,
0x3e, 0x21, 0x7d, 0xd6, 0x58, 0xa4, 0x7b, 0xf6, 0xfe, 0xc7, 0x0f, 0xe7, 0xdd, 0x89, 0x4f, 0x1c, 0x65, 0xdb, 0x0d, 0xdf, 0x1d, 0x30, 0xd6, 0xe7, 0x4d, 0x44, 0xba, 0x67, 0xef, 0x7f, 0xfc, 0x70,
0x98, 0xa5, 0x59, 0x75, 0xff, 0xf4, 0xfe, 0x7a, 0xbe, 0xb7, 0xf0, 0xee, 0xdc, 0xf7, 0x45, 0xc7, 0xde, 0x9d, 0xb8, 0xcc, 0x42, 0x58, 0x9a, 0x51, 0xfb, 0x4f, 0xef, 0xaf, 0xe7, 0xfb, 0x0b, 0xe7,
0x3e, 0x82, 0x06, 0x91, 0xc3, 0x02, 0x25, 0xdf, 0x21, 0xee, 0xf3, 0x43, 0xa0, 0xca, 0xf5, 0x5a, 0xce, 0x7e, 0x5f, 0x74, 0xcc, 0x23, 0x64, 0x50, 0x39, 0xdc, 0x53, 0xf2, 0x1d, 0xea, 0x3e, 0x3f,
0x47, 0x23, 0xde, 0xbe, 0xe1, 0x0c, 0xa9, 0x00, 0x09, 0xca, 0x87, 0xdf, 0x90, 0xb2, 0x1b, 0x9f, 0x04, 0xaa, 0x6c, 0xa7, 0xb5, 0x34, 0xea, 0xed, 0x9b, 0x84, 0x83, 0x0a, 0x40, 0x50, 0x2e, 0xf2,
0x0a, 0xcf, 0x9b, 0x9b, 0x24, 0xdf, 0xa1, 0x3b, 0xc3, 0x69, 0xee, 0xc4, 0x69, 0x54, 0x14, 0x94, 0x06, 0xca, 0x6e, 0x72, 0x2a, 0x1c, 0x67, 0xae, 0x49, 0xbe, 0x13, 0xec, 0x0e, 0xa6, 0xb9, 0x35,
0x14, 0xb3, 0x94, 0x84, 0x3b, 0x3e, 0x29, 0xc5, 0xa5, 0x80, 0x21, 0xe0, 0x2a, 0xaa, 0xee, 0xee, 0x4a, 0xa3, 0xa2, 0x08, 0x58, 0x31, 0x4b, 0x59, 0xb8, 0xeb, 0xb2, 0x52, 0x5c, 0x0a, 0x04, 0x02,
0x58, 0xc0, 0x45, 0x9c, 0x96, 0x09, 0x1c, 0x4d, 0xfa, 0x44, 0x83, 0xbb, 0xda, 0x7a, 0x31, 0xcc, 0xa9, 0x0a, 0xd4, 0xdd, 0x1d, 0xf7, 0x12, 0x31, 0x4a, 0xcb, 0x18, 0x89, 0x66, 0x7d, 0x46, 0xe0,
0xc2, 0x61, 0x19, 0x6e, 0xcd, 0x6b, 0x2d, 0x95, 0xb7, 0x18, 0x76, 0xcb, 0x70, 0xd8, 0xcd, 0xc2, 0xae, 0xa6, 0x5e, 0x0c, 0xb2, 0x70, 0x50, 0x86, 0x8f, 0xe6, 0xb5, 0x97, 0xca, 0x59, 0x0c, 0xba,
0x0b, 0x9b, 0x59, 0x2c, 0x6a, 0xa4, 0xcf, 0xef, 0x41, 0x0d, 0x84, 0x78, 0xfc, 0xa4, 0xfd, 0x96, 0x65, 0x38, 0xe8, 0x66, 0xe1, 0x85, 0x61, 0x16, 0x83, 0x1a, 0xe9, 0xa6, 0x1b, 0x50, 0x03, 0x23,
0x0a, 0x60, 0xe1, 0xf5, 0x97, 0xbf, 0x3b, 0x78, 0xdf, 0x51, 0x66, 0x75, 0x71, 0xbf, 0xab, 0xc4, 0x1e, 0x5e, 0xe9, 0xa0, 0xe5, 0x02, 0x54, 0x38, 0xfd, 0xe5, 0xef, 0x0e, 0xde, 0x77, 0x94, 0x1e,
0x12, 0x35, 0x1c, 0xee, 0xe2, 0x43, 0x51, 0xbb, 0x8b, 0xc3, 0x5d, 0xab, 0xc6, 0x39, 0xe3, 0xe7, 0x5d, 0x6c, 0x4e, 0x95, 0x58, 0xa2, 0x26, 0x45, 0xba, 0xd2, 0x81, 0xa8, 0xd3, 0x95, 0x22, 0x5d,
0x3e, 0x52, 0xb8, 0x71, 0xfa, 0x5c, 0xef, 0x48, 0xfd, 0xa2, 0xf6, 0x8f, 0x18, 0x14, 0xd7, 0x5c, 0xab, 0xc1, 0x39, 0x4b, 0xcf, 0x5d, 0x50, 0xb8, 0x4e, 0xfa, 0x9c, 0x66, 0x24, 0x6e, 0x51, 0xe7,
0xc5, 0x53, 0xb7, 0xf0, 0xe6, 0x31, 0x6c, 0x4c, 0x46, 0x12, 0x89, 0x2a, 0x12, 0xa4, 0x0f, 0x83, 0x47, 0xf8, 0xc5, 0x75, 0xa2, 0x46, 0x53, 0xbb, 0x70, 0xe6, 0x23, 0xc4, 0x98, 0x0d, 0x25, 0x88,
0xc5, 0x53, 0x16, 0x5f, 0x8e, 0xe4, 0x0d, 0x22, 0x94, 0xee, 0x5c, 0x45, 0x69, 0x89, 0xcb, 0x5b, 0x2a, 0x12, 0xac, 0x8f, 0x80, 0x8d, 0xa6, 0x7c, 0x74, 0x39, 0x94, 0x37, 0xcc, 0x4d, 0x82, 0xdd,
0xe5, 0x25, 0x23, 0x3b, 0x1d, 0x57, 0xec, 0xa3, 0x70, 0xd0, 0xef, 0x59, 0x02, 0x61, 0x91, 0x22, 0xab, 0x28, 0x2d, 0xb1, 0x79, 0xab, 0xbc, 0xe4, 0x6c, 0xb7, 0x63, 0x8b, 0x03, 0x34, 0x0e, 0xf4,
0x47, 0xb8, 0x18, 0x2e, 0x07, 0x86, 0x87, 0x28, 0x67, 0x23, 0x96, 0x93, 0x7e, 0x4a, 0x2f, 0xaa, 0x9e, 0xc7, 0x30, 0x16, 0x14, 0x39, 0xc4, 0xc6, 0x70, 0xe9, 0x6b, 0x1d, 0xa2, 0x9c, 0x0d, 0x79,
0x5d, 0x5b, 0x73, 0xb1, 0x20, 0x17, 0x7e, 0x15, 0x21, 0x54, 0xb5, 0x22, 0x62, 0xdf, 0x4d, 0xe1, 0xce, 0xfa, 0x49, 0x70, 0x51, 0xcd, 0x7a, 0x34, 0x17, 0x0b, 0x76, 0xe1, 0x56, 0x15, 0x12, 0xa8,
0x26, 0x07, 0x37, 0x3a, 0x25, 0x5f, 0xf7, 0x88, 0x33, 0xe3, 0x82, 0x92, 0xdd, 0x3d, 0xd2, 0x78, 0x56, 0x45, 0x1c, 0xd8, 0x09, 0xd2, 0x64, 0x61, 0x47, 0x0f, 0xd8, 0xd7, 0x3d, 0x66, 0xcd, 0x12,
0x8d, 0xec, 0x40, 0x5c, 0xc2, 0x05, 0x2e, 0x89, 0xbe, 0x21, 0x45, 0x82, 0xcd, 0x28, 0x89, 0xc4, 0x11, 0xb0, 0xbd, 0x7d, 0xd6, 0x64, 0x8d, 0xed, 0xc2, 0x5c, 0x96, 0x08, 0x6c, 0x12, 0x7d, 0x2d,
0x6d, 0x43, 0x73, 0x73, 0x93, 0x92, 0x9d, 0x4a, 0x82, 0x84, 0x8d, 0xa3, 0x32, 0x55, 0x5a, 0x7e, 0x0a, 0x82, 0xcd, 0x02, 0x16, 0x89, 0xdb, 0x46, 0xe6, 0xe6, 0x26, 0x65, 0xbb, 0x95, 0x05, 0x31,
0x7d, 0xc9, 0x68, 0xd9, 0x57, 0xa4, 0xc0, 0xf6, 0x5b, 0xd4, 0x23, 0xb6, 0xa2, 0xe9, 0x7f, 0xf9, 0x1f, 0x47, 0x65, 0xaa, 0xc8, 0x7e, 0xda, 0x64, 0xc8, 0xf6, 0x15, 0x2b, 0x30, 0xfd, 0x16, 0xfd,
0x75, 0x2f, 0xbb, 0x19, 0x90, 0x8b, 0x05, 0x2c, 0x5c, 0xfb, 0xdd, 0x59, 0x71, 0xb9, 0x03, 0xb1, 0x88, 0xe9, 0x68, 0xfa, 0x5f, 0x7e, 0xdd, 0xcb, 0x6e, 0x7c, 0x76, 0xb1, 0x40, 0x84, 0xeb, 0xbc,
0x1b, 0x43, 0x50, 0x5a, 0xec, 0x37, 0xf0, 0xe0, 0x22, 0x2b, 0x95, 0xa3, 0x0d, 0x49, 0xc9, 0x94, 0x5b, 0x2b, 0x29, 0xb7, 0x60, 0x76, 0x13, 0x88, 0x20, 0x28, 0x0e, 0x1a, 0x78, 0x24, 0x22, 0x2b,
0x27, 0x09, 0x0a, 0x2f, 0xc7, 0x56, 0x38, 0x5b, 0x73, 0xb6, 0xe8, 0x6f, 0xcd, 0xd5, 0x62, 0x6b, 0x95, 0x45, 0x81, 0x0c, 0xd8, 0x34, 0x89, 0x63, 0x34, 0x5e, 0x96, 0xe9, 0x70, 0x1e, 0xcd, 0xf9,
0x2e, 0xf7, 0x75, 0x16, 0x80, 0x85, 0x70, 0x72, 0x25, 0xc6, 0x38, 0x82, 0x23, 0x48, 0x78, 0xd1, 0xa2, 0xff, 0x68, 0xae, 0x16, 0x8f, 0xe6, 0xf2, 0x80, 0x58, 0x00, 0x11, 0xc2, 0xca, 0x95, 0x19,
0x97, 0x6d, 0xb0, 0xfd, 0xbb, 0xdc, 0xb6, 0xe6, 0xc5, 0x02, 0xcc, 0x3c, 0x5f, 0xb5, 0xe0, 0xa5, 0xe3, 0x08, 0x89, 0x60, 0xe1, 0x45, 0x5f, 0xb6, 0xc1, 0xf6, 0xef, 0x6a, 0x7b, 0x34, 0x2f, 0x16,
0xed, 0x8c, 0x20, 0x50, 0x53, 0x5e, 0x04, 0x9a, 0xc9, 0x63, 0x29, 0x69, 0xd0, 0x88, 0x80, 0x12, 0x50, 0xe6, 0xb8, 0xaa, 0x05, 0x2f, 0x8a, 0x33, 0x8a, 0x40, 0x4d, 0x93, 0xc2, 0x23, 0x25, 0x0f,
0x00, 0x08, 0x7e, 0xf4, 0xd4, 0xf0, 0xc2, 0x00, 0x9f, 0xd3, 0xdd, 0x3d, 0x80, 0x0e, 0xb5, 0xa2, 0x51, 0x92, 0xdf, 0x98, 0x80, 0x16, 0x00, 0x08, 0x7e, 0x70, 0xd5, 0xf0, 0xc2, 0x6c, 0xa9, 0xc1,
0xc1, 0x9b, 0xa9, 0x0e, 0x94, 0x5e, 0xab, 0x41, 0x99, 0x03, 0x94, 0xf9, 0xd0, 0x64, 0xa1, 0x0a, 0xde, 0x3e, 0x40, 0x87, 0x5e, 0x51, 0xe3, 0x4d, 0x77, 0x07, 0x8a, 0xc6, 0x6a, 0x50, 0xe6, 0x00,
0x97, 0x79, 0x75, 0xdb, 0x9e, 0xe5, 0xe7, 0x94, 0x72, 0xa4, 0x28, 0x45, 0xf3, 0xd6, 0xd9, 0x32, 0x65, 0x3e, 0xd0, 0x2c, 0x54, 0xe1, 0x32, 0xaf, 0x76, 0xdb, 0xb3, 0xfc, 0x3c, 0x08, 0x68, 0xcb,
0x33, 0x61, 0xdd, 0x28, 0xc5, 0x35, 0x5e, 0x38, 0xb2, 0x29, 0x28, 0x2b, 0x22, 0xb8, 0xce, 0x08, 0x51, 0x41, 0xde, 0x5a, 0x5b, 0x66, 0xba, 0xac, 0x1b, 0xa7, 0x52, 0xc2, 0x4b, 0x0a, 0x36, 0x85,
0x08, 0xc4, 0x41, 0x5b, 0x9b, 0xe7, 0x5a, 0x31, 0xa5, 0xb3, 0x9c, 0x4e, 0x4f, 0x4b, 0xa3, 0x12, 0x64, 0x25, 0x84, 0xd4, 0x69, 0x03, 0x81, 0x38, 0x78, 0x6b, 0x78, 0xae, 0x55, 0x53, 0xc4, 0x72,
0x27, 0xe1, 0x85, 0xae, 0x3e, 0xb1, 0xc1, 0xf3, 0xab, 0x45, 0x7d, 0x95, 0xf3, 0x7d, 0x12, 0x96, 0x44, 0x4f, 0xcb, 0xa0, 0x32, 0x2b, 0x4e, 0x0a, 0xea, 0x3e, 0x31, 0xc1, 0x71, 0xab, 0x41, 0xda,
0x02, 0x48, 0xe1, 0xc2, 0xc0, 0x37, 0x24, 0x1d, 0x5e, 0x73, 0x6c, 0xf6, 0x92, 0x8e, 0x4b, 0xf8, 0xca, 0xd3, 0x03, 0x16, 0x96, 0x02, 0x48, 0x49, 0x84, 0x86, 0x6f, 0xc8, 0x3a, 0x69, 0xad, 0xb1,
0x18, 0x2e, 0xaf, 0x18, 0xef, 0x93, 0x49, 0x2a, 0x47, 0x51, 0x4a, 0xfa, 0xf5, 0x49, 0xfe, 0x3d, 0x99, 0xcb, 0x3a, 0x36, 0x4b, 0xc6, 0x48, 0x79, 0xa5, 0xf8, 0x80, 0x4d, 0x52, 0x39, 0x8c, 0x52,
0xa7, 0xef, 0x37, 0xfb, 0xff, 0xf9, 0xcb, 0x2f, 0x7f, 0x23, 0xfd, 0xd6, 0xcf, 0xbf, 0xfc, 0x83, 0xd6, 0xaf, 0x57, 0x72, 0x37, 0xac, 0x7e, 0xd0, 0xcc, 0xff, 0xe7, 0x2f, 0xbf, 0xfc, 0x8d, 0xf5,
0x34, 0x52, 0x90, 0x61, 0xd7, 0x6a, 0x1c, 0x92, 0xc5, 0x72, 0xc9, 0xea, 0x87, 0x25, 0x13, 0xf4, 0x5b, 0x3f, 0xff, 0xf2, 0x0f, 0xd6, 0x58, 0xc1, 0x06, 0x5d, 0xe3, 0x71, 0xc8, 0x16, 0xcb, 0x21,
0xf7, 0x42, 0x63, 0x6b, 0x6e, 0x42, 0x81, 0x6a, 0x24, 0x36, 0x81, 0x06, 0x04, 0x3c, 0x8e, 0x95, 0xe3, 0x1f, 0x86, 0x74, 0xd1, 0x6f, 0x84, 0xc6, 0xa3, 0xb9, 0x2e, 0x85, 0x80, 0x90, 0xd8, 0x14,
0xad, 0x79, 0xba, 0x80, 0xeb, 0x9a, 0x93, 0x46, 0x39, 0x0e, 0x59, 0x49, 0xa6, 0x2f, 0x72, 0x99, 0x1a, 0x10, 0xf0, 0x30, 0x56, 0x80, 0xe8, 0x05, 0x52, 0xd7, 0xac, 0x34, 0xcc, 0xb1, 0xc8, 0x0a,
0xa1, 0x38, 0x10, 0x3a, 0x65, 0x3c, 0x5c, 0xed, 0x19, 0xf9, 0xa0, 0x85, 0xa4, 0xed, 0x3a, 0xb8, 0x99, 0xbe, 0xc8, 0x65, 0x86, 0xe6, 0x40, 0x10, 0x65, 0xdc, 0xdf, 0xed, 0x69, 0xfb, 0xe0, 0x85,
0x38, 0xb8, 0xfd, 0x0e, 0xa7, 0xd7, 0x79, 0xcb, 0x3b, 0xdb, 0x3b, 0x1f, 0x20, 0x9e, 0x24, 0xea, 0x0c, 0xda, 0x7d, 0x70, 0xf1, 0xfc, 0xf6, 0x3b, 0xac, 0x5e, 0xf3, 0x96, 0x73, 0xb6, 0x7f, 0xee,
0xdf, 0xa3, 0xef, 0x4e, 0xde, 0xbd, 0xd5, 0xd2, 0xca, 0x40, 0x45, 0x13, 0x4d, 0x05, 0x13, 0xdb, 0xa3, 0x9e, 0x24, 0xfa, 0xdf, 0xa3, 0xef, 0x4e, 0xde, 0xbd, 0x25, 0x6b, 0xa5, 0xa7, 0xa2, 0x09,
0xc0, 0xb4, 0x8b, 0x50, 0xea, 0xee, 0xae, 0x56, 0xa4, 0x59, 0xf2, 0xac, 0x08, 0x0c, 0x3f, 0x0d, 0x49, 0x21, 0xc4, 0xa6, 0x30, 0xcd, 0x20, 0x9c, 0xba, 0xbb, 0xab, 0x1d, 0x69, 0x86, 0x1c, 0x63,
0x22, 0x06, 0xd2, 0xc0, 0x78, 0xb0, 0x9a, 0xf3, 0x64, 0x10, 0xd5, 0xf5, 0x62, 0x03, 0xb3, 0x4e, 0x02, 0xc7, 0x4f, 0x8d, 0x08, 0x5f, 0x6a, 0x18, 0xfb, 0xab, 0x9c, 0x27, 0xbd, 0xa8, 0xee, 0x17,
0x87, 0x7b, 0x36, 0xc9, 0xd1, 0xf6, 0x6b, 0xe4, 0xc0, 0x81, 0xad, 0x3d, 0x37, 0x69, 0x6a, 0x78, 0x1b, 0x98, 0x75, 0x3a, 0xa9, 0x63, 0x48, 0x2e, 0x68, 0xbf, 0x06, 0x07, 0xfa, 0xa6, 0xf7, 0xdc,
0x41, 0x38, 0xc3, 0xba, 0xbd, 0x60, 0xd2, 0x49, 0x7b, 0xc1, 0xe4, 0x8a, 0xd6, 0xc2, 0x5a, 0x91, 0x0e, 0x12, 0xad, 0x0b, 0xc6, 0x69, 0xd5, 0xed, 0x01, 0x4d, 0x27, 0xed, 0x01, 0xcd, 0x15, 0xad,
0x6a, 0x97, 0xfd, 0xd4, 0x0a, 0xe9, 0x2d, 0xaa, 0x02, 0x64, 0xbd, 0x94, 0xd5, 0x75, 0xd9, 0x2e, 0x81, 0xb5, 0x26, 0xd5, 0x0c, 0xbb, 0x89, 0x31, 0xd2, 0x59, 0x54, 0x0d, 0xc8, 0x7a, 0x2b, 0x4b,
0x48, 0x4c, 0x91, 0x27, 0x83, 0x2c, 0xca, 0x61, 0xb4, 0xca, 0x76, 0x75, 0x64, 0x56, 0x75, 0xad, 0x7d, 0xd9, 0x1e, 0x44, 0x74, 0x93, 0x27, 0xbd, 0x2c, 0xca, 0x11, 0xb4, 0x2a, 0x76, 0x75, 0x65,
0x8f, 0xeb, 0x5a, 0x34, 0x7c, 0xca, 0x34, 0x5d, 0x71, 0xd2, 0xb1, 0x81, 0x8c, 0xcd, 0xea, 0xe6, 0x56, 0x7d, 0xad, 0x8b, 0xed, 0x5a, 0x34, 0x7a, 0xca, 0x34, 0x5d, 0x49, 0xd2, 0xb1, 0x86, 0x8c,
0xb6, 0xd3, 0x14, 0x30, 0x1a, 0xf3, 0xec, 0x8e, 0x81, 0x36, 0x9a, 0xfc, 0xd4, 0x6f, 0x16, 0x6a, 0x61, 0x75, 0xbd, 0xdb, 0x91, 0x04, 0x82, 0xc6, 0x1d, 0x33, 0xc3, 0xa7, 0xa0, 0xc9, 0x4f, 0xf3,
0x48, 0xd2, 0x95, 0x39, 0x51, 0xbf, 0xc0, 0xce, 0x70, 0x02, 0x55, 0xc0, 0x70, 0xbb, 0xb0, 0x96, 0x66, 0xa0, 0x06, 0x92, 0xae, 0xc2, 0x89, 0xfe, 0x05, 0x71, 0x46, 0x12, 0x02, 0x05, 0x0c, 0xb7,
0xcb, 0x92, 0xd9, 0x96, 0x01, 0x2c, 0x88, 0xf5, 0x8b, 0xef, 0x50, 0xdd, 0x15, 0xed, 0x8a, 0x60, 0x1b, 0x6b, 0xb9, 0x6c, 0x99, 0x4d, 0x1b, 0xc0, 0xbd, 0x11, 0xbd, 0xf8, 0x0e, 0xdd, 0x5d, 0xd1,
0xde, 0x7e, 0x01, 0xe0, 0x57, 0x8c, 0x29, 0x0b, 0xb4, 0xb6, 0xd0, 0x5f, 0x2f, 0x98, 0x00, 0xad, 0xee, 0x08, 0xe6, 0xed, 0x17, 0x00, 0x7e, 0xa5, 0x38, 0xe0, 0x1e, 0x79, 0x0b, 0xff, 0x69, 0x40,
0x83, 0xf6, 0x08, 0x01, 0x77, 0x43, 0x91, 0x51, 0x97, 0x2a, 0xe5, 0x50, 0xa8, 0xbe, 0xc0, 0xad, 0x17, 0x68, 0x5d, 0xb4, 0x47, 0x28, 0xb8, 0x9b, 0x00, 0x8c, 0xba, 0x74, 0x29, 0x87, 0x43, 0xf5,
0xc7, 0xf9, 0xfd, 0xc0, 0xf2, 0x06, 0xd6, 0xa5, 0x7c, 0xc0, 0x71, 0x96, 0xae, 0x57, 0xa9, 0x7e, 0x06, 0x6e, 0x32, 0x9e, 0x6e, 0x06, 0x96, 0xe3, 0x9b, 0x94, 0xa6, 0x7e, 0x8a, 0xb5, 0xa0, 0x16,
0x58, 0xaf, 0xef, 0xd3, 0x7b, 0x84, 0x65, 0xcb, 0xfc, 0xd4, 0x7e, 0x8d, 0x42, 0x7f, 0xa0, 0x6a, 0x8f, 0x54, 0x6d, 0x6b, 0xfd, 0x7d, 0xb2, 0xc1, 0x58, 0xbe, 0xe4, 0xa7, 0xf6, 0x6b, 0x34, 0xfa,
0xa1, 0xa5, 0x4e, 0x47, 0xd6, 0x20, 0xa2, 0x2d, 0xdf, 0xcd, 0xff, 0x9d, 0x7c, 0x9d, 0x55, 0x01, 0xbe, 0xaa, 0x8d, 0x96, 0x44, 0x47, 0x26, 0x20, 0xa2, 0x6d, 0xdf, 0xcd, 0xff, 0x9d, 0x7d, 0x9d,
0x93, 0xff, 0xb8, 0x80, 0x16, 0x2a, 0xf7, 0x4b, 0x57, 0xbd, 0x6b, 0x89, 0x16, 0xea, 0xfc, 0x5c, 0x55, 0x03, 0xe3, 0xff, 0xb8, 0x81, 0x06, 0x2a, 0x9b, 0xad, 0xab, 0xde, 0xb5, 0x4c, 0x0b, 0x89,
0x3d, 0x0f, 0x8d, 0x98, 0x29, 0x00, 0x3d, 0x93, 0x57, 0x15, 0x9e, 0xd1, 0xbd, 0xb1, 0xdd, 0xdd, 0x9f, 0xab, 0xe7, 0x81, 0x36, 0x33, 0x01, 0xa0, 0x67, 0xf2, 0xaa, 0xc2, 0x33, 0x4e, 0x6f, 0x7c,
0xb6, 0xc4, 0x51, 0x25, 0xf1, 0x32, 0xc7, 0x3c, 0x28, 0xad, 0xa4, 0x62, 0x20, 0xac, 0xb4, 0x78, 0x6f, 0xaf, 0x6d, 0x71, 0x54, 0x59, 0xbc, 0xe4, 0x98, 0x7b, 0xad, 0x95, 0x81, 0xf0, 0x85, 0xb1,
0xbc, 0x47, 0x5a, 0xf9, 0x88, 0xb4, 0xb2, 0x2d, 0xed, 0x58, 0x22, 0xdb, 0x9b, 0xa6, 0x7e, 0xad, 0x16, 0x8f, 0x1b, 0xac, 0x95, 0x0f, 0x58, 0x2b, 0xdb, 0xd6, 0x8e, 0x25, 0xd8, 0x5e, 0x1f, 0xea,
0x1d, 0x8c, 0x3e, 0xb4, 0xaf, 0x28, 0xbd, 0xbd, 0x5e, 0xc3, 0x36, 0x5d, 0xa7, 0x18, 0xcd, 0x20, 0xd7, 0x8e, 0x83, 0xd1, 0x87, 0xf6, 0x16, 0x45, 0xd3, 0xeb, 0x31, 0x4c, 0xa3, 0x3e, 0x45, 0x7b,
0x40, 0xc5, 0xa1, 0x67, 0x5b, 0xc1, 0x6a, 0xfd, 0xee, 0xce, 0x2c, 0xe3, 0xc2, 0x91, 0x9f, 0xd1, 0x06, 0x03, 0x2a, 0x0d, 0x3d, 0x73, 0x14, 0xac, 0xc6, 0xef, 0xee, 0xf4, 0x30, 0x36, 0x1c, 0xf9,
0x3a, 0xf9, 0xfe, 0xf8, 0x7f, 0xa0, 0xf4, 0x5a, 0xeb, 0x6b, 0x27, 0x22, 0xab, 0xca, 0x56, 0x8b, 0x19, 0xaf, 0xe3, 0xef, 0x8f, 0xff, 0x07, 0x4e, 0xaf, 0x1d, 0x7d, 0xcd, 0x8d, 0xc8, 0xaa, 0xb3,
0x6b, 0xda, 0xaa, 0xa0, 0xbe, 0x38, 0xb5, 0xca, 0x2d, 0x3d, 0x60, 0x99, 0x13, 0x59, 0xa0, 0xe7, 0xd5, 0xe0, 0x9a, 0xb7, 0xca, 0xab, 0x37, 0x4e, 0x72, 0xb9, 0xe5, 0x07, 0x22, 0x73, 0x22, 0x0b,
0x9d, 0xd7, 0x99, 0x58, 0xcf, 0x07, 0xf4, 0x84, 0x84, 0x60, 0x61, 0xf6, 0xa1, 0x40, 0x65, 0xc1, 0x9c, 0x79, 0xe7, 0x35, 0x13, 0xd3, 0xfd, 0x00, 0xdd, 0x90, 0x30, 0x0c, 0xcc, 0x3e, 0x14, 0xe8,
0x2a, 0xbd, 0x7c, 0xa1, 0x0f, 0xa6, 0xe8, 0xaa, 0x3a, 0x9d, 0xf3, 0x81, 0x6e, 0x7c, 0x98, 0xad, 0x2c, 0x78, 0xe5, 0x97, 0x2b, 0x68, 0xe1, 0x00, 0xa7, 0xaa, 0x4e, 0xe7, 0xdc, 0xa7, 0x83, 0x0f,
0x45, 0xd6, 0xca, 0x14, 0x64, 0x55, 0x64, 0xb1, 0x4d, 0x64, 0x8e, 0x4a, 0x78, 0x6f, 0x3d, 0x03, 0x37, 0xbd, 0xc8, 0x5a, 0x9b, 0x02, 0x56, 0x05, 0x8b, 0x6d, 0x83, 0x39, 0x2a, 0xe3, 0x9d, 0x75,
0xad, 0x29, 0xac, 0x6a, 0x85, 0xc5, 0x72, 0x0f, 0x0c, 0xf5, 0xdb, 0x15, 0x16, 0x8d, 0xc2, 0xa2, 0x06, 0x5a, 0x73, 0x58, 0xd5, 0x0e, 0x8b, 0xe5, 0x1c, 0x04, 0xea, 0xb7, 0x3b, 0x2c, 0x1a, 0x87,
0x0a, 0x2e, 0xe2, 0xe4, 0x7a, 0x90, 0x26, 0x45, 0x7a, 0xab, 0xef, 0xef, 0xbf, 0x92, 0xcf, 0x4f, 0x45, 0x55, 0x5c, 0xcc, 0xca, 0xe9, 0x22, 0x4d, 0x8a, 0xf4, 0x96, 0xf6, 0xef, 0xbf, 0xb2, 0xcf,
0x10, 0x9a, 0xb9, 0xc1, 0x43, 0xfc, 0x0a, 0x96, 0x5f, 0xb1, 0x44, 0xb3, 0xfb, 0x3b, 0xf1, 0xc5, 0xdf, 0x20, 0x34, 0xf7, 0x06, 0xf7, 0xe9, 0x2b, 0x78, 0x7e, 0xc5, 0x63, 0x52, 0xf7, 0x77, 0xe6,
0x8a, 0x65, 0x07, 0xd5, 0x8e, 0x70, 0x39, 0xd1, 0x32, 0x29, 0xb3, 0x0d, 0x26, 0x81, 0x5a, 0x07, 0x8a, 0x95, 0xc8, 0xfa, 0xd5, 0x8c, 0x70, 0x79, 0xa3, 0xa5, 0x29, 0xb3, 0x0d, 0x26, 0x81, 0x5e,
0x60, 0xf2, 0x2d, 0xcb, 0xea, 0xe4, 0x21, 0xfd, 0x6a, 0xe5, 0x14, 0x53, 0x6b, 0x7c, 0x2a, 0x6b, 0x07, 0x60, 0x72, 0x8d, 0xca, 0x6a, 0xe5, 0x41, 0xf0, 0xd5, 0xca, 0x2a, 0xba, 0xd7, 0xf8, 0xd4,
0xa2, 0xee, 0xc1, 0x77, 0xb5, 0xf8, 0x80, 0xc4, 0x6c, 0xf8, 0x0c, 0x95, 0xfd, 0x0b, 0xd2, 0x61, 0xd6, 0x58, 0x6d, 0xc0, 0x77, 0x35, 0x78, 0x8f, 0xc5, 0x7c, 0xf0, 0x14, 0x9d, 0xfd, 0x0b, 0xd6,
0xfd, 0x67, 0xc8, 0xe6, 0x78, 0xfe, 0xfe, 0x27, 0xdc, 0xea, 0xce, 0xdb, 0x9f, 0xee, 0xe1, 0xff, 0xe1, 0xfd, 0xa7, 0x60, 0x73, 0x3c, 0x7f, 0xff, 0x13, 0x76, 0x75, 0xeb, 0xed, 0x4f, 0x1b, 0xf4,
0x99, 0xf0, 0xb9, 0xcf, 0x1e, 0xcf, 0xc1, 0xd9, 0x5b, 0x2d, 0x3d, 0x8e, 0xc4, 0x58, 0x36, 0x6d, 0x7f, 0xa6, 0x7c, 0x36, 0xc5, 0xe3, 0x19, 0x34, 0x3b, 0xab, 0xad, 0xc7, 0x91, 0x18, 0xcb, 0xe6,
0x1c, 0x6a, 0xd3, 0xc7, 0xf3, 0x18, 0xaf, 0x8e, 0xd3, 0x75, 0x44, 0xd5, 0x6d, 0x36, 0xd3, 0x35, 0x18, 0x87, 0xde, 0xf4, 0x61, 0x1e, 0x4b, 0xab, 0xe5, 0xa8, 0x8f, 0xa8, 0x4e, 0x9b, 0xcd, 0xed,
0xb5, 0xbd, 0xcd, 0xcf, 0x7a, 0xe7, 0xfb, 0xfa, 0x4f, 0x60, 0xae, 0xd5, 0xa9, 0x4c, 0x13, 0xf4, 0x9a, 0xda, 0xd9, 0x49, 0xcf, 0x7a, 0xe7, 0x07, 0xf4, 0xc7, 0xd3, 0xdb, 0xea, 0x54, 0xa6, 0x31,
0xeb, 0xaa, 0x5f, 0xa5, 0x3d, 0x82, 0xcb, 0x5c, 0x68, 0x2a, 0xdc, 0x58, 0x10, 0x93, 0xe5, 0xea, 0xce, 0xeb, 0xaa, 0x5f, 0xd1, 0x1e, 0xc3, 0x66, 0x2e, 0x48, 0x0a, 0x3b, 0x16, 0xcc, 0xe4, 0xb9,
0x79, 0xf2, 0x11, 0x74, 0x42, 0xbd, 0x7a, 0xfb, 0xe6, 0xb5, 0x4b, 0xa2, 0xb1, 0x62, 0xb8, 0x9d, 0x7a, 0x16, 0x7f, 0x84, 0x9c, 0x50, 0xaf, 0xde, 0xbe, 0x79, 0x6d, 0xb3, 0x68, 0xac, 0x38, 0x76,
0x13, 0x14, 0xc9, 0xdb, 0x62, 0x54, 0x64, 0x03, 0xd2, 0x81, 0x03, 0xf4, 0x2e, 0xf9, 0xc8, 0xae, 0xe7, 0x18, 0x4d, 0xf2, 0x8e, 0x18, 0x16, 0x99, 0xcf, 0x3a, 0x48, 0x00, 0xcd, 0x92, 0x0f, 0xcc,
0x11, 0x83, 0x65, 0xd8, 0x88, 0x4d, 0x80, 0x67, 0x5f, 0x76, 0xea, 0xad, 0xde, 0x5a, 0xc3, 0xfa, 0x1a, 0x72, 0x44, 0x86, 0x0f, 0xf9, 0x04, 0x78, 0x76, 0x65, 0xa7, 0x9e, 0xea, 0xac, 0x1d, 0x58,
0xea, 0x40, 0x77, 0xca, 0x8d, 0xc6, 0xa8, 0x96, 0xa6, 0x2c, 0xcd, 0x88, 0xdf, 0xf3, 0x77, 0x86, 0x5f, 0x3d, 0xa7, 0x93, 0x72, 0xe3, 0x31, 0xba, 0xa5, 0x29, 0x4f, 0x33, 0xe6, 0xf6, 0xdc, 0xdd,
0xa8, 0x14, 0x14, 0xa8, 0x24, 0x62, 0x83, 0xc7, 0x97, 0x94, 0x34, 0x43, 0x9a, 0x69, 0xce, 0xc6, 0x01, 0x3a, 0x05, 0x05, 0x29, 0x89, 0xda, 0x48, 0x46, 0x97, 0x01, 0x6b, 0x2e, 0x69, 0xa6, 0x39,
0x74, 0xfb, 0xe7, 0x52, 0xaa, 0x41, 0x3d, 0x0d, 0x9c, 0xcd, 0x02, 0xf4, 0x95, 0xc1, 0xb5, 0x9e, 0x1f, 0x07, 0x3b, 0x3f, 0x97, 0x52, 0xf9, 0xf5, 0x6d, 0xe0, 0x6c, 0xe6, 0xe1, 0x5c, 0xe9, 0x5d,
0x02, 0x4d, 0x58, 0xb7, 0x9a, 0xf9, 0x15, 0xdd, 0x9d, 0x0e, 0xeb, 0xec, 0x58, 0x52, 0x52, 0x95, 0xd3, 0x2d, 0xd0, 0x84, 0x77, 0xab, 0x3b, 0xbf, 0xa2, 0xbb, 0xdb, 0xe1, 0x9d, 0x5d, 0x23, 0xca,
0x8b, 0x96, 0x2d, 0x09, 0xf7, 0x87, 0x5d, 0xfb, 0x18, 0xee, 0xb4, 0x67, 0x7c, 0x7a, 0xde, 0x32, 0xaa, 0x76, 0xd1, 0xa8, 0x65, 0xe1, 0xc1, 0xa0, 0x6b, 0x1e, 0xc3, 0xdd, 0xf6, 0x1d, 0x1f, 0xdd,
0x1f, 0x33, 0xdd, 0x00, 0xea, 0x99, 0xce, 0xbe, 0x19, 0x38, 0xe2, 0x04, 0xd2, 0x31, 0x33, 0x19, 0xb7, 0xcc, 0xc7, 0x9c, 0x0e, 0x80, 0x74, 0xa7, 0x73, 0xa0, 0x2f, 0x1c, 0xb1, 0x02, 0xfa, 0x61,
0xdd, 0xd8, 0x75, 0x48, 0x37, 0x1e, 0x4f, 0x82, 0x8f, 0x05, 0xd8, 0xf8, 0xf3, 0x19, 0x53, 0x53, 0xba, 0x93, 0xa1, 0x83, 0x5d, 0x87, 0x75, 0x47, 0xe3, 0x89, 0xf7, 0xb1, 0x80, 0x1a, 0x77, 0x3e,
0x99, 0xf4, 0x09, 0x5c, 0x43, 0x16, 0x5e, 0xa0, 0xa6, 0x0c, 0xe5, 0x08, 0x0d, 0x81, 0x59, 0x79, 0xe3, 0x6a, 0x2a, 0xe3, 0x3e, 0x43, 0x6a, 0xd8, 0xc2, 0xf1, 0xd4, 0x94, 0xa3, 0x1d, 0x09, 0x42,
0x89, 0x3c, 0x68, 0x32, 0x01, 0x6a, 0xd7, 0x3c, 0xd7, 0x2d, 0x86, 0x2e, 0x9e, 0x34, 0xde, 0xe1, 0x60, 0x56, 0x5e, 0x82, 0x07, 0x35, 0x13, 0xa0, 0x77, 0xcd, 0x73, 0x3a, 0x62, 0x50, 0xf3, 0x44,
0x89, 0x5b, 0xdd, 0xc1, 0xa5, 0x28, 0xb7, 0x89, 0xae, 0x9a, 0x35, 0x33, 0x74, 0xf3, 0xcb, 0xfd, 0x78, 0x47, 0x26, 0x6e, 0xe9, 0x04, 0x97, 0xa2, 0xdd, 0x66, 0xd4, 0x35, 0x93, 0x32, 0x9c, 0xe6,
0x73, 0x3b, 0x8d, 0x65, 0x41, 0x39, 0xf3, 0x97, 0x33, 0x1a, 0x5b, 0x2c, 0x03, 0x12, 0x03, 0xd3, 0x97, 0xf3, 0xe7, 0xe6, 0x36, 0x96, 0x7b, 0xe5, 0xcc, 0x5d, 0xde, 0xd1, 0x98, 0x66, 0x19, 0x90,
0x68, 0x23, 0x1f, 0xac, 0x4f, 0xb0, 0x0a, 0x16, 0xe5, 0xf1, 0x14, 0x99, 0x46, 0xb0, 0x6b, 0xe7, 0xf0, 0xf5, 0x41, 0x1b, 0x7c, 0xb0, 0x7e, 0x83, 0x55, 0xf0, 0x28, 0x1f, 0x4d, 0xc1, 0x34, 0x82,
0xdd, 0xf7, 0xaf, 0x4f, 0xcd, 0xef, 0x93, 0x28, 0x8f, 0x66, 0x05, 0xd2, 0xb0, 0x46, 0x90, 0x4b, 0x5f, 0x5b, 0xef, 0xbe, 0x7f, 0x7d, 0xaa, 0x7f, 0x9f, 0x44, 0x79, 0x34, 0x2b, 0x40, 0xc3, 0x84,
0xca, 0x19, 0xa0, 0xdb, 0x14, 0x4b, 0xed, 0x86, 0x62, 0x38, 0xfd, 0xb2, 0x1e, 0x3e, 0x17, 0x8e, 0x20, 0x9b, 0x95, 0x33, 0x40, 0xb7, 0x69, 0x96, 0xda, 0x07, 0x8a, 0xc1, 0xf4, 0xcb, 0xfa, 0xf2,
0x8b, 0x53, 0x9d, 0x37, 0x91, 0x88, 0x26, 0x2c, 0xf7, 0x86, 0x5d, 0xbc, 0x22, 0x7e, 0x33, 0x45, 0xb9, 0xb0, 0x6c, 0xac, 0x6a, 0xbd, 0x89, 0x44, 0x34, 0xe1, 0xb9, 0x33, 0xe8, 0xe2, 0x15, 0x73,
0x78, 0xdc, 0x3d, 0xe4, 0x73, 0x9e, 0x41, 0x48, 0xcc, 0x2c, 0xe7, 0x47, 0x1c, 0xe3, 0x3f, 0x3c, 0x9b, 0x5b, 0x84, 0x87, 0xd3, 0xc3, 0x3e, 0x97, 0x19, 0x94, 0xc4, 0xcc, 0x68, 0x7e, 0x20, 0x31,
0xb3, 0x68, 0xde, 0xf0, 0xba, 0x7d, 0x8d, 0x65, 0x2a, 0xf3, 0xbe, 0xcc, 0x23, 0x31, 0x41, 0x2f, 0xee, 0xfd, 0x77, 0x16, 0xcd, 0x9b, 0xa4, 0x3e, 0xbe, 0x8e, 0x64, 0x2a, 0xf3, 0xbe, 0xcc, 0x23,
0xe9, 0xc6, 0x53, 0xfd, 0x80, 0x6c, 0xf3, 0x73, 0xc9, 0x91, 0x72, 0xf0, 0x80, 0x46, 0x5e, 0x6d, 0x31, 0xc1, 0x59, 0xd2, 0x1e, 0x4d, 0xe9, 0x01, 0x6c, 0xf3, 0x73, 0x99, 0x80, 0x72, 0xf0, 0x80,
0x42, 0x0f, 0xfe, 0x6b, 0x18, 0x13, 0x3b, 0xeb, 0xf8, 0xd6, 0x34, 0x38, 0xce, 0xd1, 0x97, 0x87, 0x83, 0xbc, 0xda, 0x86, 0x1f, 0xc9, 0xaf, 0x51, 0xcc, 0xcc, 0x5d, 0xc7, 0xb7, 0xfa, 0x80, 0x63,
0xce, 0xb7, 0x27, 0x47, 0xc7, 0xb0, 0xc9, 0xab, 0x1f, 0xbd, 0x7a, 0xe6, 0x41, 0xfc, 0x66, 0xac, 0x1d, 0x7d, 0x79, 0x68, 0x7d, 0x7b, 0x72, 0x74, 0x8c, 0x98, 0xbc, 0xfa, 0xd1, 0xa9, 0xef, 0x3c,
0x80, 0xbe, 0xa8, 0x7f, 0xfa, 0xe2, 0x39, 0xb1, 0x0d, 0xbd, 0xbf, 0xbb, 0xe7, 0x6f, 0xee, 0x79, 0x98, 0xdb, 0x5c, 0x2b, 0xe0, 0x5c, 0xd4, 0x3f, 0x7d, 0xf1, 0x8c, 0x99, 0x03, 0xbd, 0xbb, 0xb7,
0x6b, 0xaf, 0x0f, 0x5f, 0xaf, 0xbd, 0xfe, 0x8d, 0x42, 0x9c, 0x9e, 0x1c, 0x7d, 0x5e, 0x88, 0x37, 0xef, 0x6e, 0xef, 0x3b, 0x6b, 0xaf, 0x0f, 0x5f, 0xaf, 0xbd, 0xfe, 0x8d, 0x46, 0x9c, 0x9e, 0x1c,
0xc7, 0xa7, 0x47, 0x8f, 0x49, 0xf1, 0xe6, 0xe8, 0xf4, 0xf8, 0x33, 0x52, 0xfe, 0x61, 0xf5, 0xbd, 0x7d, 0xde, 0x88, 0x37, 0xc7, 0xa7, 0x47, 0x0f, 0x59, 0xf1, 0xe6, 0xe8, 0xf4, 0xf8, 0x33, 0x56,
0xe7, 0xeb, 0x09, 0x92, 0x81, 0xa3, 0x67, 0x6f, 0x39, 0x3b, 0xe4, 0x41, 0x7e, 0xba, 0x67, 0xc8, 0xfe, 0x61, 0xf5, 0xbd, 0xe3, 0xd2, 0x0d, 0x92, 0x86, 0xa3, 0x63, 0x76, 0x39, 0x73, 0xc9, 0x03,
0x53, 0xd1, 0x09, 0x64, 0xca, 0x25, 0xac, 0x2e, 0xa0, 0x61, 0x38, 0x9c, 0x3e, 0x09, 0x75, 0x33, 0x7e, 0xda, 0x70, 0xc9, 0x53, 0xc9, 0x09, 0x30, 0xe5, 0x12, 0x56, 0x17, 0xf0, 0x30, 0x1c, 0x4c,
0x06, 0x20, 0x3d, 0x09, 0x87, 0x09, 0xbf, 0x6a, 0x37, 0x68, 0x26, 0xec, 0xa1, 0x0f, 0x96, 0xc3, 0x1f, 0x87, 0x74, 0x18, 0x03, 0x90, 0x1e, 0x87, 0x83, 0x38, 0xb9, 0x6a, 0x1f, 0xd0, 0x74, 0xd9,
0x0b, 0xbf, 0x35, 0xad, 0x69, 0x26, 0x46, 0xa8, 0x15, 0x70, 0x3b, 0x98, 0x7b, 0x11, 0x80, 0x25, 0xc3, 0x1f, 0x0c, 0x87, 0x17, 0x6e, 0xeb, 0xb6, 0xa6, 0xb9, 0x31, 0x42, 0xaf, 0xd0, 0x60, 0x56,
0xba, 0x33, 0x32, 0xdc, 0xeb, 0x53, 0x28, 0x69, 0x70, 0xbb, 0x3a, 0x23, 0x16, 0x52, 0x39, 0xa6, 0x33, 0x16, 0xa3, 0xc3, 0x91, 0x5e, 0xa0, 0x5e, 0x28, 0x60, 0x0d, 0x74, 0x57, 0xaf, 0x89, 0x85,
0x2a, 0x09, 0x74, 0x93, 0x77, 0x02, 0x2c, 0x14, 0xce, 0x90, 0x87, 0xa7, 0xd1, 0x15, 0xd3, 0x58, 0x54, 0x96, 0x6e, 0x4c, 0x3c, 0x3a, 0xe7, 0x9d, 0x00, 0x0e, 0x85, 0x35, 0x48, 0xc2, 0xd3, 0xe8,
0x70, 0x94, 0x74, 0xaa, 0x0f, 0x37, 0xfc, 0xcf, 0xcc, 0xa9, 0x86, 0x25, 0x45, 0x40, 0xbc, 0x85, 0x8a, 0x13, 0x1c, 0x2c, 0x25, 0xad, 0xea, 0xdb, 0x4d, 0xf2, 0x67, 0x6e, 0x55, 0xf7, 0x25, 0x85,
0x89, 0x5d, 0x1d, 0x2b, 0x48, 0x71, 0x82, 0xe5, 0x3a, 0xb3, 0xd9, 0x33, 0xab, 0xba, 0xe4, 0x91, 0x47, 0x77, 0xf0, 0xa6, 0x42, 0x9a, 0xdb, 0x33, 0x46, 0x9e, 0xb0, 0x65, 0x7e, 0x14, 0xed, 0x5c,
0x04, 0x51, 0x7f, 0x47, 0xe8, 0x16, 0x08, 0xed, 0xfd, 0x8c, 0x3e, 0x25, 0x4b, 0xd9, 0x5d, 0x09, 0x2b, 0x03, 0x70, 0x54, 0x4d, 0xeb, 0x1a, 0x1a, 0x74, 0xf1, 0x4c, 0xbf, 0x5f, 0x0a, 0xbd, 0xc5,
0xcf, 0x6e, 0x97, 0x33, 0x6a, 0x32, 0x69, 0xf5, 0x55, 0x41, 0x6a, 0x53, 0x23, 0x7f, 0x20, 0x88, 0x99, 0xdf, 0x5d, 0x08, 0x31, 0xff, 0x57, 0x46, 0xb2, 0x09, 0xa1, 0xd6, 0x1c, 0x57, 0x21, 0xc4,
0x90, 0x7a, 0x74, 0x02, 0xf8, 0x15, 0x99, 0xc3, 0x6f, 0x8f, 0xd1, 0xd9, 0xca, 0x98, 0xbb, 0xb8, 0x83, 0xf9, 0x41, 0xf2, 0x5a, 0x75, 0x35, 0x48, 0xba, 0x5b, 0xc7, 0xda, 0x6e, 0x65, 0xe0, 0x62,
0x3a, 0xd5, 0xa9, 0x95, 0x05, 0x59, 0xce, 0xf4, 0x14, 0xfe, 0x85, 0xd5, 0xcb, 0xd5, 0x1f, 0x0f, 0xa1, 0x89, 0x88, 0x0a, 0x1f, 0x7c, 0x2d, 0x78, 0x4e, 0x34, 0x6d, 0xa2, 0x57, 0x35, 0x59, 0x0f,
0x4e, 0xc7, 0x81, 0x99, 0xdf, 0xfc, 0x00, 0x95, 0x13, 0xae, 0x6e, 0x5d, 0x4f, 0x0f, 0xf0, 0xb1, 0xb0, 0x5d, 0xfd, 0x51, 0xa4, 0x5b, 0x80, 0xa7, 0x0e, 0xb2, 0xe0, 0x09, 0xf3, 0x9b, 0x2c, 0xd8,
0x5a, 0x94, 0xa3, 0x19, 0xd7, 0xf3, 0xfb, 0x0d, 0x74, 0xde, 0xf6, 0x4b, 0xd3, 0xd0, 0x9c, 0x1c, 0x12, 0xcb, 0xec, 0x94, 0xb3, 0x40, 0x6f, 0x0b, 0xd5, 0x27, 0x12, 0x49, 0xb8, 0x01, 0x19, 0x82,
0xfe, 0x8e, 0xcf, 0xf4, 0x07, 0x2a, 0x74, 0xe0, 0xa9, 0x6b, 0x7b, 0xc0, 0x20, 0x46, 0x63, 0xe8, 0x11, 0xc0, 0xa3, 0xc4, 0x66, 0xbf, 0x82, 0x06, 0xdd, 0xf6, 0x37, 0x01, 0xbe, 0x72, 0x67, 0x5f,
0x0d, 0x40, 0x68, 0x08, 0xe0, 0x55, 0xd4, 0x09, 0xe1, 0x50, 0x7f, 0x98, 0xd0, 0xd5, 0x02, 0xb4, 0x5c, 0x9d, 0xd2, 0x3e, 0xc1, 0xbd, 0x2c, 0xe7, 0xf4, 0x49, 0xe1, 0x85, 0xc9, 0x90, 0x4d, 0x5f,
0xa2, 0x04, 0xb9, 0x14, 0x4e, 0xd5, 0x75, 0xd0, 0x86, 0xc3, 0xf1, 0xbb, 0xaa, 0x88, 0x2a, 0xc7, 0x42, 0x4e, 0xc7, 0x9e, 0xbe, 0x8c, 0xfa, 0x01, 0xc9, 0x8b, 0x13, 0x75, 0x6b, 0x3b, 0xf4, 0x35,
0x9f, 0x8e, 0x89, 0x63, 0xb3, 0x27, 0x25, 0x19, 0x6a, 0x28, 0x82, 0x7d, 0x56, 0x02, 0xc4, 0x81, 0x02, 0xa3, 0x45, 0x39, 0x9c, 0x25, 0xf4, 0x31, 0x62, 0x6b, 0xd0, 0xad, 0x3e, 0x9b, 0x0d, 0xf4,
0x16, 0x5f, 0xcb, 0xad, 0x19, 0x68, 0xac, 0x54, 0xf1, 0xa1, 0x64, 0x06, 0x07, 0x90, 0x70, 0xa3, 0xca, 0xe1, 0xef, 0x92, 0x19, 0x7d, 0x6d, 0xb3, 0xca, 0x3c, 0xb5, 0xcd, 0x81, 0xd6, 0x1b, 0xe1,
0xbd, 0xa8, 0xc1, 0x73, 0x00, 0xba, 0x2a, 0x25, 0xad, 0xa4, 0x93, 0x65, 0x82, 0x7a, 0xa5, 0x85, 0x94, 0xeb, 0xf8, 0x10, 0xd4, 0x02, 0x80, 0x28, 0x9a, 0x9e, 0x70, 0x40, 0x5f, 0x59, 0xa8, 0xf5,
0x59, 0x26, 0x17, 0x8b, 0xb5, 0x7a, 0xcf, 0xc6, 0x03, 0x9b, 0x0e, 0xf4, 0xa6, 0x83, 0x28, 0xbe, 0x81, 0x57, 0x01, 0xc3, 0xc6, 0x00, 0x84, 0x52, 0x53, 0xb7, 0x65, 0x25, 0xf8, 0x5d, 0xb5, 0x77,
0x5c, 0xee, 0x5b, 0x39, 0xc5, 0xca, 0x4b, 0x2a, 0x34, 0x35, 0x24, 0x39, 0x04, 0x2c, 0xb2, 0x48, 0x15, 0x8a, 0x4f, 0xc7, 0xcc, 0x32, 0x5b, 0x41, 0xc0, 0x32, 0x34, 0x84, 0x0c, 0xf3, 0x8c, 0x05,
0x18, 0xad, 0xd3, 0xa2, 0x28, 0x63, 0xb2, 0x9a, 0xa6, 0x26, 0x39, 0x63, 0x62, 0x50, 0xf9, 0xb3, 0x28, 0x6a, 0x32, 0x9f, 0xec, 0x26, 0x05, 0x04, 0xfc, 0xaa, 0xd8, 0x95, 0xcc, 0x90, 0x00, 0x16,
0x2f, 0x24, 0x9c, 0x19, 0x6e, 0x7f, 0xb1, 0xd7, 0xeb, 0xf5, 0xbe, 0x1a, 0x38, 0x87, 0xab, 0xdf, 0x6e, 0xb5, 0x07, 0xa9, 0x12, 0x9e, 0x43, 0xae, 0xe2, 0xd7, 0x15, 0x6e, 0x5c, 0xb2, 0xed, 0x2b,
0x38, 0xc0, 0x3a, 0xd9, 0xd4, 0x1e, 0x01, 0xc3, 0xd0, 0x69, 0xf3, 0xd5, 0xd8, 0x58, 0xe5, 0x9b, 0x32, 0x66, 0xc9, 0x94, 0xa6, 0x70, 0xea, 0x39, 0x5b, 0xf7, 0x4c, 0x7a, 0x4e, 0x93, 0x9e, 0x47,
0xb3, 0x64, 0x8d, 0xeb, 0xc6, 0xf6, 0x17, 0xcf, 0x9e, 0x3e, 0x7d, 0xaa, 0xb9, 0x96, 0x69, 0x62, 0xa3, 0xcb, 0xe5, 0xbc, 0x95, 0x55, 0x8c, 0xbd, 0xac, 0xaa, 0x8b, 0x46, 0x24, 0x87, 0x81, 0x45,
0xa2, 0x41, 0x3b, 0x67, 0x35, 0x48, 0x82, 0x8a, 0x7b, 0x65, 0x14, 0x6d, 0x5b, 0x7d, 0x02, 0xb0, 0x16, 0x09, 0xed, 0x75, 0x5a, 0x14, 0xe5, 0x88, 0xad, 0x72, 0xee, 0x24, 0xe7, 0x5c, 0xf8, 0x55,
0x1f, 0x6e, 0xd4, 0x1f, 0x5f, 0x6a, 0x48, 0x07, 0x41, 0xd0, 0x22, 0xb3, 0xae, 0x34, 0x5f, 0x76, 0x3e, 0xfb, 0x42, 0x22, 0x99, 0xe1, 0xce, 0x17, 0xfb, 0xbd, 0x5e, 0xef, 0x2b, 0xdf, 0x3a, 0x5c,
0xde, 0x20, 0xb2, 0x22, 0x9d, 0x7b, 0xab, 0xd7, 0x3a, 0xe6, 0xff, 0x1b, 0xe6, 0x85, 0x29, 0x34, 0xfd, 0x60, 0x03, 0xd5, 0xf1, 0x36, 0x65, 0x04, 0x0a, 0x43, 0xab, 0xad, 0x97, 0xb0, 0xb1, 0xaa,
0x90, 0x70, 0x8c, 0x06, 0x9b, 0x46, 0x9e, 0xfe, 0xe0, 0xfb, 0x2f, 0xa7, 0xa0, 0x8d, 0x0b, 0x06, 0x37, 0xe7, 0xf1, 0x9a, 0xd6, 0xad, 0x9d, 0x2f, 0x9e, 0x3e, 0x79, 0xf2, 0x84, 0xb4, 0x96, 0x69,
0x1e, 0x00, 0x00 0xac, 0xeb, 0x9a, 0x92, 0xb3, 0x5a, 0xee, 0x5e, 0xa5, 0xbd, 0x0a, 0x0a, 0x51, 0x0f, 0xc5, 0x97,
0x56, 0x01, 0xfe, 0xc3, 0xad, 0xfa, 0x6b, 0x52, 0x0d, 0x6b, 0xcf, 0xf3, 0x2a, 0xd1, 0x25, 0x29,
0xe9, 0x4f, 0x55, 0x6f, 0xc0, 0x13, 0x11, 0x6d, 0x26, 0x2d, 0x4d, 0xff, 0x8d, 0x10, 0x23, 0x1c,
0x04, 0x26, 0x2c, 0x43, 0x80, 0x23, 0xf4, 0xd1, 0x17, 0xec, 0x7f, 0x01, 0x37, 0xe8, 0x30, 0x96,
0xd7, 0x1e, 0x00, 0x00
}; };

View File

@@ -219,7 +219,7 @@ void registerUsermods()
#endif #endif
#ifdef USERMOD_DALLASTEMPERATURE #ifdef USERMOD_DALLASTEMPERATURE
usermods.add(new UsermodTemperature()); usermods.add(new UsermodTemperature("Temperature"));
#endif #endif
#ifdef USERMOD_SN_PHOTORESISTOR #ifdef USERMOD_SN_PHOTORESISTOR
@@ -385,7 +385,7 @@ void registerUsermods()
#ifdef USERMOD_MPU6050_IMU #ifdef USERMOD_MPU6050_IMU
usermods.add(new MPU6050Driver()); usermods.add(new MPU6050Driver("mpu6050-IMU"));
#endif #endif
#ifdef USERMOD_GAMES #ifdef USERMOD_GAMES