Merge pull request #3220 from Aircoookie/feature
Feature implementation
This commit is contained in:
commit
680afe972e
21
CHANGELOG.md
21
CHANGELOG.md
@ -1,5 +1,26 @@
|
|||||||
## WLED changelog
|
## WLED changelog
|
||||||
|
|
||||||
|
#### Build 2305280
|
||||||
|
- DDP protocol update (#3193)
|
||||||
|
- added PCF8574 I2C port expander support for Multi relay usermod
|
||||||
|
- MQTT multipacket (fragmented) message fix
|
||||||
|
- new ethernet board: @srg74 Ethernet Shield
|
||||||
|
- new 2D effects: Soap (#3184) & Octopus & Waving cell (credit @St3P40 https://github.com/80Stepko08)
|
||||||
|
- various fixes and enhancements
|
||||||
|
|
||||||
|
#### Build 2305090
|
||||||
|
- new ethernet board: @Wladi ABC! WLED Eth
|
||||||
|
- Battery usermod voltage calculation (#3116)
|
||||||
|
- custom palette editor (#3164)
|
||||||
|
- improvements in Dancing Shadows and Tartan effects
|
||||||
|
- UCS389x support
|
||||||
|
- switched to NeoPixelBus 2.7.5 (replaced NeoPixelBrightnessBus with NeoPixelBusLg)
|
||||||
|
- SPI bus clock selection (for LEDs) (#3173)
|
||||||
|
- DMX mode preset fix (#3134)
|
||||||
|
- iOS fix for scroll (#3182)
|
||||||
|
- Wordclock "Norddeutsch" fix (#3161)
|
||||||
|
- various fixes and enhancements
|
||||||
|
|
||||||
#### Build 2304090
|
#### Build 2304090
|
||||||
- updated Arduino ESP8266 core to 4.1.0 (newer compiler)
|
- updated Arduino ESP8266 core to 4.1.0 (newer compiler)
|
||||||
- updated NeoPixelBus to 2.7.3 (with support for UCS890x chipset)
|
- updated NeoPixelBus to 2.7.3 (with support for UCS890x chipset)
|
||||||
|
@ -178,14 +178,12 @@ lib_deps =
|
|||||||
https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7
|
https://github.com/Aircoookie/ESPAsyncWebServer.git @ ~2.0.7
|
||||||
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
|
#For use of the TTGO T-Display ESP32 Module with integrated TFT display uncomment the following line
|
||||||
#TFT_eSPI
|
#TFT_eSPI
|
||||||
#For use SSD1306 OLED display uncomment following
|
#For compatible OLED display uncomment following
|
||||||
#U8g2@~2.28.8
|
#U8g2 #@ ~2.33.15
|
||||||
#U8g2@~2.32.10
|
#For Dallas sensor uncomment following
|
||||||
#For Dallas sensor uncomment following 2 lines
|
#OneWire @ ~2.3.7
|
||||||
#OneWire@~2.3.5
|
|
||||||
#milesburton/DallasTemperature@^3.9.0
|
|
||||||
#For BME280 sensor uncomment following
|
#For BME280 sensor uncomment following
|
||||||
#BME280@~3.0.0
|
#BME280 @ ~3.0.0
|
||||||
; adafruit/Adafruit BMP280 Library @ 2.1.0
|
; adafruit/Adafruit BMP280 Library @ 2.1.0
|
||||||
; adafruit/Adafruit CCS811 Library @ 1.0.4
|
; adafruit/Adafruit CCS811 Library @ 1.0.4
|
||||||
; adafruit/Adafruit Si7021 Library @ 1.4.0
|
; adafruit/Adafruit Si7021 Library @ 1.4.0
|
||||||
|
@ -2805,7 +2805,7 @@ uint16_t mode_bouncing_balls(void) {
|
|||||||
// number of balls based on intensity setting to max of 7 (cycles colors)
|
// number of balls based on intensity setting to max of 7 (cycles colors)
|
||||||
// non-chosen color is a random color
|
// non-chosen color is a random color
|
||||||
uint16_t numBalls = (SEGMENT.intensity * (maxNumBalls - 1)) / 255 + 1; // minimum 1 ball
|
uint16_t numBalls = (SEGMENT.intensity * (maxNumBalls - 1)) / 255 + 1; // minimum 1 ball
|
||||||
const float gravity = -9.81; // standard value of gravity
|
const float gravity = -9.81f; // standard value of gravity
|
||||||
const bool hasCol2 = SEGCOLOR(2);
|
const bool hasCol2 = SEGCOLOR(2);
|
||||||
const unsigned long time = millis();
|
const unsigned long time = millis();
|
||||||
|
|
||||||
@ -4175,11 +4175,9 @@ static const char _data_FX_MODE_DANCING_SHADOWS[] PROGMEM = "Dancing Shadows@!,#
|
|||||||
By Stefan Seegel
|
By Stefan Seegel
|
||||||
*/
|
*/
|
||||||
uint16_t mode_washing_machine(void) {
|
uint16_t mode_washing_machine(void) {
|
||||||
float speed = tristate_square8(strip.now >> 7, 90, 15);
|
int speed = tristate_square8(strip.now >> 7, 90, 15);
|
||||||
float quot = 32.0f - ((float)SEGMENT.speed / 16.0f);
|
|
||||||
speed /= quot;
|
|
||||||
|
|
||||||
SEGENV.step += (speed * 128.0f);
|
SEGENV.step += (speed * 2048) / (512 - SEGMENT.speed);
|
||||||
|
|
||||||
for (int i = 0; i < SEGLEN; i++) {
|
for (int i = 0; i < SEGLEN; i++) {
|
||||||
uint8_t col = sin8(((SEGMENT.intensity / 25 + 1) * 255 * i / SEGLEN) + (SEGENV.step >> 7));
|
uint8_t col = sin8(((SEGMENT.intensity / 25 + 1) * 255 * i / SEGLEN) + (SEGENV.step >> 7));
|
||||||
@ -4593,7 +4591,7 @@ uint16_t mode_2DBlackHole(void) { // By: Stepko https://editor.soulma
|
|||||||
}
|
}
|
||||||
|
|
||||||
SEGMENT.fadeToBlackBy(16 + (SEGMENT.speed>>3)); // create fading trails
|
SEGMENT.fadeToBlackBy(16 + (SEGMENT.speed>>3)); // create fading trails
|
||||||
float t = (float)(millis())/128; // timebase
|
unsigned long t = millis()/128; // timebase
|
||||||
// outer stars
|
// outer stars
|
||||||
for (size_t i = 0; i < 8; i++) {
|
for (size_t i = 0; i < 8; i++) {
|
||||||
x = beatsin8(SEGMENT.custom1>>3, 0, cols - 1, 0, ((i % 2) ? 128 : 0) + t * i);
|
x = beatsin8(SEGMENT.custom1>>3, 0, cols - 1, 0, ((i % 2) ? 128 : 0) + t * i);
|
||||||
|
@ -152,12 +152,12 @@ bool Segment::allocateData(size_t len) {
|
|||||||
if (data && _dataLen == len) return true; //already allocated
|
if (data && _dataLen == len) return true; //already allocated
|
||||||
deallocateData();
|
deallocateData();
|
||||||
if (Segment::getUsedSegmentData() + len > MAX_SEGMENT_DATA) return false; //not enough memory
|
if (Segment::getUsedSegmentData() + len > MAX_SEGMENT_DATA) return false; //not enough memory
|
||||||
// if possible use SPI RAM on ESP32
|
// do not use SPI RAM on ESP32 since it is slow
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
//#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) && defined(WLED_USE_PSRAM)
|
||||||
if (psramFound())
|
//if (psramFound())
|
||||||
data = (byte*) ps_malloc(len);
|
// data = (byte*) ps_malloc(len);
|
||||||
else
|
//else
|
||||||
#endif
|
//#endif
|
||||||
data = (byte*) malloc(len);
|
data = (byte*) malloc(len);
|
||||||
if (!data) return false; //allocation failed
|
if (!data) return false; //allocation failed
|
||||||
Segment::addUsedSegmentData(len);
|
Segment::addUsedSegmentData(len);
|
||||||
|
@ -438,6 +438,7 @@ bool deserializeConfig(JsonObject doc, bool fromFS) {
|
|||||||
|
|
||||||
getStringFromJson(mqttDeviceTopic, if_mqtt[F("topics")][F("device")], 33); // "wled/test"
|
getStringFromJson(mqttDeviceTopic, if_mqtt[F("topics")][F("device")], 33); // "wled/test"
|
||||||
getStringFromJson(mqttGroupTopic, if_mqtt[F("topics")][F("group")], 33); // ""
|
getStringFromJson(mqttGroupTopic, if_mqtt[F("topics")][F("group")], 33); // ""
|
||||||
|
CJSON(retainMqttMsg, if_mqtt[F("rtn")]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_HUESYNC
|
#ifndef WLED_DISABLE_HUESYNC
|
||||||
@ -885,6 +886,7 @@ void serializeConfig() {
|
|||||||
if_mqtt[F("user")] = mqttUser;
|
if_mqtt[F("user")] = mqttUser;
|
||||||
if_mqtt[F("pskl")] = strlen(mqttPass);
|
if_mqtt[F("pskl")] = strlen(mqttPass);
|
||||||
if_mqtt[F("cid")] = mqttClientID;
|
if_mqtt[F("cid")] = mqttClientID;
|
||||||
|
if_mqtt[F("rtn")] = retainMqttMsg;
|
||||||
|
|
||||||
JsonObject if_mqtt_topics = if_mqtt.createNestedObject(F("topics"));
|
JsonObject if_mqtt_topics = if_mqtt.createNestedObject(F("topics"));
|
||||||
if_mqtt_topics[F("device")] = mqttDeviceTopic;
|
if_mqtt_topics[F("device")] = mqttDeviceTopic;
|
||||||
|
@ -72,7 +72,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div id="briwrap">
|
<div id="briwrap">
|
||||||
<p class="hd">Brightness</p>
|
<p class="hd">Brightness</p>
|
||||||
<div class="slider" style="left:24px;">
|
<div class="slider" style="padding-right:32px;">
|
||||||
<i class="icons slider-icon" onclick="tglTheme()" style="transform: translate(-32px,5px);"></i>
|
<i class="icons slider-icon" onclick="tglTheme()" style="transform: translate(-32px,5px);"></i>
|
||||||
<div class="sliderwrap il">
|
<div class="sliderwrap il">
|
||||||
<input id="sliderBri" onchange="setBri()" oninput="updateTrail(this)" max="255" min="1" type="range" value="128" />
|
<input id="sliderBri" onchange="setBri()" oninput="updateTrail(this)" max="255" min="1" type="range" value="128" />
|
||||||
|
@ -977,7 +977,7 @@ function genPalPrevCss(id)
|
|||||||
function generateListItemHtml(listName, id, name, clickAction, extraHtml = '', effectPar = '')
|
function generateListItemHtml(listName, id, name, clickAction, extraHtml = '', effectPar = '')
|
||||||
{
|
{
|
||||||
return `<div class="lstI${id==0?' sticky':''}" data-id="${id}" ${effectPar===''?'':'data-opt="'+effectPar+'" '}onClick="${clickAction}(${id})">`+
|
return `<div class="lstI${id==0?' sticky':''}" data-id="${id}" ${effectPar===''?'':'data-opt="'+effectPar+'" '}onClick="${clickAction}(${id})">`+
|
||||||
`<label class="radio schkl" onclick="event.preventDefault()">`+
|
`<label title="(${id})" class="radio schkl" onclick="event.preventDefault()">`+ // (#1984)
|
||||||
`<input type="radio" value="${id}" name="${listName}">`+
|
`<input type="radio" value="${id}" name="${listName}">`+
|
||||||
`<span class="radiomark"></span>`+
|
`<span class="radiomark"></span>`+
|
||||||
`<div class="lstIcontent">`+
|
`<div class="lstIcontent">`+
|
||||||
|
@ -202,6 +202,7 @@ Client ID: <input type="text" name="MQCID" maxlength="40"><br>
|
|||||||
Device Topic: <input type="text" name="MD" maxlength="32"><br>
|
Device Topic: <input type="text" name="MD" maxlength="32"><br>
|
||||||
Group Topic: <input type="text" name="MG" maxlength="32"><br>
|
Group Topic: <input type="text" name="MG" maxlength="32"><br>
|
||||||
Publish on button press: <input type="checkbox" name="BM"><br>
|
Publish on button press: <input type="checkbox" name="BM"><br>
|
||||||
|
Retain brightness & color messages: <input type="checkbox" name="RT"><br>
|
||||||
<i>Reboot required to apply changes. </i><a href="https://kno.wled.ge/interfaces/mqtt/" target="_blank">MQTT info</a>
|
<i>Reboot required to apply changes. </i><a href="https://kno.wled.ge/interfaces/mqtt/" target="_blank">MQTT info</a>
|
||||||
</div>
|
</div>
|
||||||
<h3>Philips Hue</h3>
|
<h3>Philips Hue</h3>
|
||||||
|
@ -1067,216 +1067,217 @@ const uint8_t PAGE_settings_ui[] PROGMEM = {
|
|||||||
|
|
||||||
|
|
||||||
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
// Autogenerated from wled00/data/settings_sync.htm, do not edit!!
|
||||||
const uint16_t PAGE_settings_sync_length = 3318;
|
const uint16_t PAGE_settings_sync_length = 3340;
|
||||||
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
const uint8_t PAGE_settings_sync[] PROGMEM = {
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x1a, 0x6b, 0x53, 0xdb, 0xb8,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xad, 0x1a, 0x6b, 0x53, 0xdb, 0xb8,
|
||||||
0xf6, 0xbb, 0x7f, 0x85, 0xf0, 0xce, 0x74, 0x93, 0x25, 0xe4, 0x01, 0x84, 0x52, 0x88, 0xdd, 0x0b,
|
0xf6, 0xbb, 0x7f, 0x85, 0xf0, 0xce, 0x74, 0x93, 0x25, 0xe4, 0x01, 0x84, 0x52, 0x88, 0xdd, 0x0b,
|
||||||
0x84, 0x42, 0xee, 0x2d, 0x34, 0x4d, 0xe8, 0xb6, 0x3b, 0x73, 0x67, 0x76, 0x14, 0x5b, 0x49, 0x04,
|
0x84, 0x42, 0xee, 0x2d, 0x34, 0x4d, 0xe8, 0xb6, 0x3b, 0x73, 0x67, 0x76, 0x14, 0x5b, 0x49, 0x04,
|
||||||
0xb6, 0xe5, 0xb5, 0x64, 0x1e, 0xd3, 0xed, 0x7f, 0xbf, 0xe7, 0x48, 0xb6, 0x93, 0x98, 0xbc, 0x7a,
|
0xb6, 0xe5, 0x95, 0x64, 0x1e, 0xd3, 0xed, 0x7f, 0xbf, 0xe7, 0xc8, 0x8f, 0x24, 0x26, 0xaf, 0xde,
|
||||||
0x67, 0x3f, 0x34, 0xd8, 0xd2, 0x39, 0x47, 0xe7, 0xfd, 0x90, 0xdb, 0xd9, 0xe9, 0x7e, 0xba, 0xb8,
|
0xd9, 0x0f, 0x0d, 0xb6, 0x74, 0xce, 0xd1, 0x79, 0x3f, 0xe4, 0x76, 0x76, 0xba, 0x9f, 0x2e, 0xee,
|
||||||
0xfb, 0xa3, 0x7f, 0x49, 0xa6, 0x2a, 0x0c, 0xdc, 0x0e, 0xfe, 0x92, 0x80, 0x46, 0x13, 0xc7, 0x66,
|
0xfe, 0xe8, 0x5f, 0x92, 0xa9, 0x0e, 0x03, 0xb7, 0x83, 0xbf, 0x24, 0xa0, 0xd1, 0xc4, 0xb1, 0x59,
|
||||||
0x91, 0x0d, 0xef, 0x8c, 0xfa, 0x6e, 0x27, 0x64, 0x8a, 0x92, 0x88, 0x86, 0xcc, 0xb1, 0x1f, 0x39,
|
0x64, 0xc3, 0x3b, 0xa3, 0xbe, 0xdb, 0x09, 0x99, 0xa6, 0x24, 0xa2, 0x21, 0x73, 0xec, 0x47, 0xce,
|
||||||
0x7b, 0x8a, 0x45, 0xa2, 0x6c, 0xe2, 0x89, 0x48, 0xb1, 0x48, 0x39, 0xf6, 0x13, 0xf7, 0xd5, 0xd4,
|
0x9e, 0x62, 0x21, 0xb5, 0x4d, 0x3c, 0x11, 0x69, 0x16, 0x69, 0xc7, 0x7e, 0xe2, 0xbe, 0x9e, 0x3a,
|
||||||
0x69, 0x37, 0x9b, 0xb6, 0x6b, 0x19, 0x50, 0xab, 0xb4, 0xe7, 0xb3, 0x47, 0xee, 0xb1, 0x3d, 0xfd,
|
0xed, 0x66, 0xd3, 0x76, 0xad, 0x14, 0xd4, 0x2a, 0xed, 0xf9, 0xec, 0x91, 0x7b, 0x6c, 0xcf, 0xbc,
|
||||||
0x52, 0xe3, 0x11, 0x57, 0x9c, 0x06, 0x7b, 0xd2, 0xa3, 0x01, 0x73, 0x5a, 0xb5, 0x90, 0x3e, 0xf3,
|
0xd4, 0x78, 0xc4, 0x35, 0xa7, 0xc1, 0x9e, 0xf2, 0x68, 0xc0, 0x9c, 0x56, 0x2d, 0xa4, 0xcf, 0x3c,
|
||||||
0x30, 0x0d, 0x8b, 0xf7, 0x54, 0xb2, 0x44, 0xbf, 0xd0, 0x11, 0xbc, 0x47, 0xc2, 0x26, 0x56, 0xe9,
|
0x4c, 0xc2, 0xe2, 0x3d, 0x51, 0x4c, 0x9a, 0x17, 0x3a, 0x82, 0xf7, 0x48, 0xd8, 0xc4, 0x2a, 0x1d,
|
||||||
0xe8, 0x8c, 0x21, 0x6f, 0x4a, 0x13, 0xc9, 0xe0, 0x90, 0x54, 0x8d, 0xf7, 0x8e, 0x61, 0x55, 0x71,
|
0x9d, 0x31, 0xe4, 0x4d, 0xa9, 0x54, 0x0c, 0x0e, 0x49, 0xf4, 0x78, 0xef, 0x18, 0x56, 0x35, 0xd7,
|
||||||
0x15, 0x30, 0x77, 0xf8, 0x12, 0x79, 0x64, 0xc8, 0x94, 0xe2, 0xd1, 0x44, 0x76, 0x1a, 0x66, 0xb1,
|
0x01, 0x73, 0x87, 0x2f, 0x91, 0x47, 0x86, 0x4c, 0x6b, 0x1e, 0x4d, 0x54, 0xa7, 0x91, 0x2e, 0x76,
|
||||||
0x23, 0xbd, 0x84, 0xc7, 0xca, 0xb5, 0x1e, 0x69, 0x42, 0x02, 0xe1, 0xf1, 0xb8, 0xe6, 0x3b, 0xbe,
|
0x94, 0x27, 0x79, 0xac, 0x5d, 0xeb, 0x91, 0x4a, 0x12, 0x08, 0x8f, 0xc7, 0x35, 0xdf, 0xf1, 0x85,
|
||||||
0xf0, 0xd2, 0x10, 0xd8, 0xac, 0xc1, 0x82, 0xb3, 0xd3, 0x3a, 0x1d, 0xa7, 0x91, 0xa7, 0xb8, 0x88,
|
0x97, 0x84, 0xc0, 0x66, 0x0d, 0x16, 0x9c, 0x9d, 0xd6, 0xe9, 0x38, 0x89, 0x3c, 0xcd, 0x45, 0x44,
|
||||||
0xc8, 0xa4, 0xe7, 0x57, 0x58, 0xf5, 0x7b, 0xc2, 0x54, 0x9a, 0x44, 0xc4, 0xaf, 0x4f, 0x98, 0xba,
|
0x26, 0x3d, 0xbf, 0xc2, 0xaa, 0xdf, 0x25, 0xd3, 0x89, 0x8c, 0x88, 0x5f, 0x9f, 0x30, 0x7d, 0x19,
|
||||||
0x0c, 0x18, 0x82, 0x9e, 0xbf, 0xe8, 0xad, 0x1f, 0x05, 0xa8, 0x12, 0x93, 0x49, 0xc0, 0x10, 0xda,
|
0x30, 0x04, 0x3d, 0x7f, 0x31, 0x5b, 0x3f, 0x0a, 0x50, 0x2d, 0x26, 0x93, 0x80, 0x21, 0x74, 0x8a,
|
||||||
0x20, 0xd5, 0xbd, 0x80, 0x4a, 0xf9, 0x91, 0x4b, 0x55, 0xcf, 0xb6, 0xec, 0x29, 0xf7, 0x99, 0x5d,
|
0x54, 0xf7, 0x02, 0xaa, 0xd4, 0x47, 0xae, 0x74, 0x3d, 0xdb, 0xb2, 0xa7, 0xdc, 0x67, 0x76, 0xb5,
|
||||||
0xad, 0xe1, 0xbe, 0x7d, 0x2b, 0xec, 0xdd, 0x35, 0x40, 0x33, 0xba, 0xd7, 0x95, 0xea, 0xf7, 0x27,
|
0x86, 0xfb, 0xf6, 0xad, 0xb0, 0x77, 0xd7, 0x00, 0xcd, 0xe8, 0x5e, 0x57, 0xaa, 0xdf, 0x9f, 0x78,
|
||||||
0x1e, 0xf9, 0xe2, 0xa9, 0x2e, 0x62, 0x16, 0x01, 0x80, 0x52, 0xb1, 0x3c, 0x69, 0x34, 0x1e, 0x22,
|
0xe4, 0x8b, 0xa7, 0xba, 0x88, 0x59, 0x04, 0x00, 0x5a, 0xc7, 0xea, 0xa4, 0xd1, 0x78, 0x88, 0x44,
|
||||||
0x51, 0x7f, 0x0a, 0x18, 0x32, 0xd5, 0xe0, 0xa0, 0xe5, 0x64, 0x4c, 0x3d, 0x26, 0x1b, 0xa9, 0x1f,
|
0xfd, 0x29, 0x60, 0xc8, 0x54, 0x83, 0x83, 0x96, 0xe5, 0x98, 0x7a, 0x4c, 0x35, 0x12, 0x3f, 0xde,
|
||||||
0xef, 0x45, 0x42, 0xf1, 0x31, 0x67, 0x49, 0x63, 0x9e, 0xd0, 0x79, 0x99, 0x50, 0x43, 0x66, 0xba,
|
0x8b, 0x84, 0xe6, 0x63, 0xce, 0x64, 0x63, 0x9e, 0xd0, 0x79, 0x99, 0x50, 0x43, 0x65, 0xba, 0xb1,
|
||||||
0xb1, 0x6b, 0xf6, 0x9f, 0x92, 0x05, 0xe3, 0x79, 0x68, 0xea, 0xdf, 0x03, 0xfc, 0xd1, 0x61, 0xfb,
|
0x6b, 0xf6, 0x9f, 0x8a, 0x05, 0xe3, 0x79, 0x68, 0xea, 0xdf, 0x03, 0xfc, 0xd1, 0x61, 0xfb, 0xd0,
|
||||||
0xd0, 0x71, 0xfc, 0xfa, 0x70, 0x5c, 0xef, 0xf6, 0xea, 0x8f, 0x34, 0x48, 0xd9, 0xfb, 0x56, 0xb6,
|
0x71, 0xfc, 0xfa, 0x70, 0x5c, 0xef, 0xf6, 0xea, 0x8f, 0x34, 0x48, 0xd8, 0xfb, 0x56, 0xb6, 0x70,
|
||||||
0x70, 0xf9, 0xc5, 0x2c, 0xbc, 0x79, 0x53, 0x59, 0x78, 0x77, 0x9a, 0xd5, 0x93, 0x76, 0xfb, 0xe8,
|
0xf9, 0x25, 0x5d, 0x78, 0xf3, 0xa6, 0xb2, 0xf0, 0xee, 0x34, 0xab, 0x27, 0xed, 0xf6, 0xd1, 0x71,
|
||||||
0xb8, 0x84, 0x07, 0x60, 0xcd, 0x7c, 0xe9, 0x6c, 0x11, 0x33, 0x7f, 0x77, 0x5a, 0xd5, 0x5a, 0x73,
|
0x09, 0x0f, 0xc0, 0x9a, 0xf9, 0xd2, 0xd9, 0x22, 0x66, 0xfe, 0xee, 0xb4, 0xaa, 0xb5, 0xe6, 0x26,
|
||||||
0x13, 0xf5, 0x56, 0x75, 0x8e, 0xcb, 0x40, 0x50, 0xff, 0xdf, 0xc3, 0x0a, 0xab, 0x29, 0x67, 0xa7,
|
0xea, 0xad, 0xea, 0x1c, 0x97, 0x81, 0xa0, 0xfe, 0xbf, 0x87, 0x15, 0x56, 0xd3, 0xce, 0x4e, 0xb3,
|
||||||
0x59, 0xfd, 0x1e, 0x30, 0x45, 0x04, 0xe0, 0x7b, 0x09, 0xa3, 0x8a, 0x65, 0x96, 0xaa, 0xd8, 0xc6,
|
0xfa, 0x3d, 0x60, 0x9a, 0x08, 0xc0, 0xf7, 0x24, 0xa3, 0x9a, 0x65, 0x96, 0xaa, 0xd8, 0xa9, 0xc9,
|
||||||
0xe4, 0x76, 0xf5, 0x54, 0xd4, 0x41, 0xe4, 0x33, 0xa5, 0x12, 0x3e, 0x4a, 0x15, 0xe8, 0x5a, 0x26,
|
0xed, 0xea, 0xa9, 0xa8, 0x83, 0xc8, 0x67, 0x5a, 0x4b, 0x3e, 0x4a, 0x34, 0xe8, 0x5a, 0x49, 0xcf,
|
||||||
0x9e, 0x5d, 0x63, 0xd5, 0x5a, 0x79, 0x5d, 0xbd, 0xc4, 0x0c, 0x94, 0xa2, 0xd8, 0xb3, 0x6a, 0xdc,
|
0xae, 0xb1, 0x6a, 0xad, 0xbc, 0xae, 0x5f, 0x62, 0x06, 0x4a, 0xd1, 0xec, 0x59, 0x37, 0xee, 0xe9,
|
||||||
0xd3, 0x47, 0x9a, 0x13, 0x78, 0x05, 0x48, 0x25, 0xf8, 0x98, 0x5d, 0x53, 0xd5, 0x9a, 0x5f, 0x1f,
|
0x23, 0xcd, 0x09, 0xbc, 0x02, 0xa4, 0x0a, 0x7c, 0xcc, 0xae, 0xe9, 0x6a, 0xcd, 0xaf, 0x8f, 0x84,
|
||||||
0x09, 0xff, 0xa5, 0x4e, 0x63, 0x50, 0xad, 0x7f, 0x31, 0xe5, 0x81, 0x5f, 0x11, 0x08, 0x4f, 0x7d,
|
0xff, 0x52, 0xa7, 0x31, 0xa8, 0xd6, 0xbf, 0x98, 0xf2, 0xc0, 0xaf, 0x08, 0x84, 0xa7, 0xbe, 0x7f,
|
||||||
0xff, 0xf2, 0x11, 0xb8, 0x40, 0x1b, 0xb3, 0x88, 0x25, 0x15, 0x1b, 0x79, 0xb6, 0x6b, 0x95, 0xaa,
|
0xf9, 0x08, 0x5c, 0xa0, 0x8d, 0x59, 0xc4, 0x64, 0xc5, 0x46, 0x9e, 0xed, 0x5a, 0xa5, 0xea, 0xb8,
|
||||||
0xe3, 0x7e, 0xbf, 0x62, 0xea, 0xf7, 0x4a, 0xb5, 0x06, 0x3e, 0xfa, 0x3b, 0x0d, 0x2a, 0xd5, 0x1f,
|
0xdf, 0xaf, 0x98, 0xfe, 0xbd, 0x52, 0xad, 0x81, 0x8f, 0xfe, 0x4e, 0x83, 0x4a, 0xf5, 0xc7, 0x72,
|
||||||
0xcb, 0x11, 0x58, 0x92, 0x88, 0x04, 0xf8, 0x04, 0x04, 0x08, 0x27, 0x29, 0x02, 0x56, 0x0f, 0xc4,
|
0x04, 0x26, 0xa5, 0x90, 0xc0, 0x27, 0x20, 0x40, 0x38, 0x29, 0x11, 0xb0, 0x7a, 0x20, 0x26, 0x15,
|
||||||
0xa4, 0x62, 0x5f, 0xe2, 0x3a, 0xc9, 0xb4, 0x00, 0x76, 0x24, 0x63, 0x1e, 0x30, 0x2d, 0x0f, 0xc4,
|
0xfb, 0x12, 0xd7, 0x49, 0xa6, 0x05, 0xb0, 0x23, 0x19, 0xf3, 0x80, 0x19, 0x79, 0x20, 0x7e, 0x24,
|
||||||
0x4f, 0x02, 0x72, 0x7f, 0xcc, 0xd6, 0xc5, 0x18, 0x63, 0x74, 0xcc, 0x27, 0x69, 0x42, 0xb5, 0xda,
|
0xc8, 0xfd, 0x31, 0x5b, 0x17, 0x63, 0x8c, 0xd1, 0x31, 0x9f, 0x24, 0x92, 0x1a, 0xb5, 0xa5, 0xf2,
|
||||||
0x8c, 0x3c, 0x64, 0x4c, 0x39, 0xfa, 0xcf, 0x7f, 0xa3, 0x5e, 0xe4, 0x89, 0x30, 0x06, 0xed, 0x31,
|
0x90, 0x31, 0xe5, 0xe8, 0x3f, 0xff, 0x8d, 0x7a, 0x91, 0x27, 0xc2, 0x18, 0xb4, 0xc7, 0x48, 0x4c,
|
||||||
0x12, 0xd3, 0x09, 0x23, 0x3e, 0x55, 0x74, 0x07, 0xbc, 0x61, 0x4e, 0xd3, 0x1f, 0x2e, 0xc0, 0x1d,
|
0x27, 0x8c, 0xf8, 0x54, 0xd3, 0x1d, 0xf0, 0x86, 0x39, 0x4d, 0x7f, 0xb8, 0x00, 0x77, 0x18, 0x0b,
|
||||||
0xc6, 0x22, 0xa9, 0xdc, 0x3b, 0xcd, 0xd3, 0xfb, 0xce, 0xf1, 0xe9, 0xfd, 0xee, 0x6e, 0x55, 0x7b,
|
0x59, 0xb9, 0x77, 0x9a, 0xa7, 0xf7, 0x9d, 0xe3, 0xd3, 0xfb, 0xdd, 0xdd, 0xaa, 0xf1, 0xe4, 0x2b,
|
||||||
0xf2, 0x95, 0xbd, 0x5b, 0xb9, 0xdf, 0x05, 0xb3, 0xd4, 0xbd, 0x29, 0xf3, 0x1e, 0x98, 0xef, 0x98,
|
0x7b, 0xb7, 0x72, 0xbf, 0x0b, 0x66, 0xa9, 0x7b, 0x53, 0xe6, 0x3d, 0x30, 0xdf, 0x49, 0x97, 0x87,
|
||||||
0xe5, 0xa1, 0x5d, 0x35, 0x26, 0x73, 0xdd, 0xfb, 0x37, 0x2d, 0xe3, 0xf5, 0x83, 0x15, 0xb0, 0x83,
|
0x76, 0x35, 0x35, 0x99, 0xeb, 0xde, 0xbf, 0x69, 0xa5, 0x5e, 0x3f, 0x58, 0x01, 0x3b, 0x58, 0x80,
|
||||||
0x05, 0xd8, 0xd9, 0xa9, 0x57, 0x78, 0x2a, 0x46, 0x2a, 0x78, 0x15, 0xd8, 0xb8, 0x59, 0x13, 0x0e,
|
0x9d, 0x9d, 0x7a, 0x85, 0xa7, 0x62, 0xa4, 0x82, 0x57, 0x81, 0x8d, 0x9b, 0x35, 0xe1, 0x40, 0x74,
|
||||||
0x44, 0x67, 0x89, 0x0b, 0xb6, 0xeb, 0x2c, 0x67, 0xe4, 0x37, 0x51, 0x53, 0xd9, 0xde, 0x60, 0xc9,
|
0x96, 0xb8, 0x60, 0xbb, 0xce, 0x72, 0x46, 0x7e, 0x13, 0x35, 0x9d, 0xed, 0x0d, 0x96, 0xec, 0x89,
|
||||||
0x9e, 0xf8, 0xcd, 0xd9, 0x3f, 0x2d, 0xf1, 0xea, 0xb0, 0x5a, 0x89, 0x23, 0x47, 0xcd, 0xd8, 0x19,
|
0xdf, 0x9c, 0xfd, 0xd3, 0x12, 0xaf, 0x0e, 0xab, 0x95, 0x38, 0x72, 0xf4, 0x8c, 0x9d, 0x61, 0xbf,
|
||||||
0xf6, 0x0b, 0x76, 0x16, 0x7c, 0xdb, 0x50, 0x79, 0x8e, 0x01, 0x47, 0xaa, 0x17, 0xb0, 0x8f, 0xcf,
|
0x60, 0x67, 0xc1, 0xb7, 0x53, 0x2a, 0xcf, 0x31, 0xe0, 0x28, 0xfd, 0x02, 0xf6, 0xf1, 0xb9, 0x8a,
|
||||||
0x65, 0x1c, 0xd0, 0x17, 0x87, 0xb9, 0xcd, 0xf7, 0x76, 0x24, 0x22, 0x66, 0x9f, 0xd8, 0x23, 0x48,
|
0x03, 0xfa, 0xe2, 0x30, 0xb7, 0xf9, 0xde, 0x8e, 0x44, 0xc4, 0xec, 0x13, 0x7b, 0x04, 0xc9, 0xe5,
|
||||||
0x2e, 0x0f, 0x60, 0x1e, 0xb7, 0x59, 0xf8, 0x74, 0x3f, 0x3f, 0x74, 0x4e, 0xd1, 0xb9, 0x33, 0x7c,
|
0x01, 0xcc, 0xe3, 0x36, 0x0b, 0x9f, 0xee, 0xe7, 0x87, 0xce, 0x29, 0x3a, 0x77, 0x86, 0xef, 0xea,
|
||||||
0x97, 0x4f, 0x5c, 0x79, 0xd3, 0x4a, 0x8c, 0xb9, 0xad, 0x07, 0x6e, 0xbc, 0x80, 0x52, 0xad, 0x7e,
|
0x89, 0x6b, 0x6f, 0x5a, 0x89, 0x31, 0xb7, 0xf5, 0xc0, 0x8d, 0x17, 0x50, 0xaa, 0xd5, 0xef, 0x1e,
|
||||||
0xf7, 0xa8, 0x64, 0x04, 0x03, 0xed, 0x64, 0x81, 0x17, 0x07, 0x97, 0x4e, 0x47, 0x10, 0x01, 0x0f,
|
0x55, 0x8c, 0x60, 0xa0, 0x9d, 0x2c, 0xf0, 0xe2, 0xe0, 0xd2, 0xe9, 0x08, 0x22, 0xe0, 0xe1, 0xd4,
|
||||||
0xa7, 0x1a, 0x04, 0x63, 0xb8, 0x04, 0x82, 0x4b, 0xf3, 0x20, 0x87, 0xcd, 0xc3, 0x32, 0x15, 0x5c,
|
0x80, 0x60, 0x0c, 0x97, 0x40, 0x70, 0x69, 0x1e, 0xe4, 0xb0, 0x79, 0x58, 0xa6, 0x82, 0x4b, 0x3f,
|
||||||
0xfa, 0x81, 0xf2, 0xd6, 0xd0, 0xf2, 0x73, 0xec, 0x01, 0x67, 0x36, 0x3a, 0xda, 0x89, 0xed, 0x38,
|
0x50, 0xde, 0x1a, 0x5a, 0x7e, 0x8e, 0x3d, 0xe0, 0xcc, 0x46, 0x47, 0x3b, 0xb1, 0x1d, 0x27, 0x4b,
|
||||||
0x59, 0x3a, 0x01, 0xc1, 0xb4, 0x5f, 0xd5, 0xe3, 0x44, 0x28, 0xe1, 0x89, 0x00, 0x04, 0xd4, 0x99,
|
0x27, 0x20, 0x98, 0xf1, 0xab, 0x7a, 0x2c, 0x85, 0x16, 0x9e, 0x08, 0x40, 0x40, 0x93, 0x49, 0x9b,
|
||||||
0xb4, 0x59, 0xab, 0xe8, 0x14, 0xeb, 0x20, 0x44, 0x30, 0x54, 0x22, 0x01, 0xef, 0xc2, 0x24, 0xda,
|
0xb5, 0x8a, 0x49, 0xb1, 0x0e, 0x42, 0x04, 0x43, 0x2d, 0x24, 0x78, 0x17, 0x26, 0xd1, 0x9e, 0x66,
|
||||||
0x53, 0x2c, 0xc4, 0x48, 0xf0, 0x7a, 0xa0, 0xb3, 0xea, 0xdf, 0x7f, 0x67, 0x60, 0x80, 0x1f, 0xc6,
|
0x21, 0x46, 0x82, 0xd7, 0x03, 0x9d, 0x55, 0xff, 0xfe, 0x3b, 0x03, 0x03, 0xfc, 0x30, 0x06, 0xc7,
|
||||||
0xe0, 0xb8, 0x1f, 0x80, 0x3e, 0xb9, 0x11, 0x3e, 0xab, 0x93, 0x7e, 0xc0, 0x90, 0x43, 0x86, 0x09,
|
0xfd, 0x00, 0xf4, 0xc9, 0x8d, 0xf0, 0x59, 0x9d, 0xf4, 0x03, 0x86, 0x1c, 0x32, 0x4c, 0x70, 0xe4,
|
||||||
0x8e, 0x7c, 0xfd, 0x78, 0xd9, 0x25, 0xbd, 0x3e, 0xb8, 0x66, 0x6d, 0x81, 0xa2, 0x5c, 0xa4, 0x58,
|
0xeb, 0xc7, 0xcb, 0x2e, 0xe9, 0xf5, 0xc1, 0x35, 0x6b, 0x0b, 0x14, 0xd5, 0x22, 0xc5, 0x9a, 0xa1,
|
||||||
0xd3, 0xd4, 0xaa, 0x55, 0x84, 0xd2, 0xf9, 0x01, 0xc9, 0xbf, 0xd7, 0x89, 0x13, 0xf2, 0xa6, 0xbd,
|
0x56, 0xad, 0x22, 0x94, 0xc9, 0x0f, 0x48, 0xfe, 0xbd, 0x49, 0x9c, 0x90, 0x37, 0xed, 0x5d, 0xb3,
|
||||||
0xab, 0xb7, 0x4f, 0x6c, 0xbb, 0xba, 0x3b, 0xcb, 0x81, 0x0d, 0x59, 0xbf, 0x97, 0xef, 0x63, 0xe7,
|
0x7d, 0x62, 0xdb, 0xd5, 0xdd, 0x59, 0x0e, 0x6c, 0xa8, 0xfa, 0xbd, 0x7a, 0x1f, 0x3b, 0x87, 0x76,
|
||||||
0xd0, 0xae, 0xed, 0xb4, 0xaa, 0x3f, 0xac, 0x4e, 0x23, 0x2b, 0x14, 0x1d, 0x6d, 0x51, 0xf7, 0x5f,
|
0x6d, 0xa7, 0x55, 0xfd, 0x61, 0x75, 0x1a, 0x59, 0xa1, 0xe8, 0x18, 0x8b, 0xba, 0xff, 0xe2, 0x21,
|
||||||
0x3c, 0xc4, 0x92, 0x43, 0xd2, 0x24, 0x80, 0xbc, 0xa1, 0x8d, 0xec, 0x49, 0x09, 0x39, 0x05, 0x00,
|
0x96, 0x1c, 0x92, 0xc8, 0x00, 0xf2, 0x86, 0x31, 0xb2, 0xa7, 0x14, 0xe4, 0x14, 0x00, 0x34, 0x00,
|
||||||
0x35, 0x40, 0xa7, 0x61, 0x4a, 0x24, 0xa6, 0x01, 0x08, 0x4a, 0x3c, 0xd9, 0xb1, 0x41, 0x5b, 0x50,
|
0x9d, 0x46, 0x5a, 0x22, 0x31, 0x0d, 0x40, 0x50, 0xe2, 0xc9, 0x8e, 0x0d, 0xda, 0x82, 0x72, 0x04,
|
||||||
0x8e, 0xc0, 0x61, 0x43, 0x8b, 0x70, 0x78, 0xc7, 0xa7, 0x3f, 0xa5, 0x9d, 0x95, 0xd0, 0xe1, 0xd8,
|
0x0e, 0x1b, 0x5a, 0x84, 0xc3, 0x3b, 0x3e, 0xfd, 0xa9, 0xec, 0xac, 0x84, 0x0e, 0xc7, 0x36, 0x81,
|
||||||
0x26, 0x50, 0xc0, 0xa6, 0x02, 0x76, 0x62, 0x21, 0xa1, 0x94, 0x42, 0x78, 0xa7, 0xa3, 0x90, 0x43,
|
0x02, 0x36, 0x15, 0xb0, 0x13, 0x0b, 0x05, 0xa5, 0x14, 0xc2, 0x3b, 0x19, 0x85, 0x1c, 0x4a, 0x19,
|
||||||
0x29, 0x43, 0xcf, 0x07, 0x54, 0x9f, 0x3f, 0x12, 0x5d, 0x23, 0x1c, 0x5b, 0x09, 0x50, 0xcf, 0x53,
|
0x7a, 0x3e, 0xa0, 0xfa, 0xfc, 0x91, 0x98, 0x1a, 0xe1, 0xd8, 0x5a, 0x80, 0x7a, 0x9e, 0xb2, 0x35,
|
||||||
0xb6, 0x66, 0x65, 0x8b, 0x53, 0x16, 0xc4, 0xe7, 0xb0, 0x06, 0xe9, 0x48, 0x61, 0x11, 0x82, 0xc4,
|
0x2b, 0x5b, 0x9c, 0xb2, 0x20, 0x3e, 0x87, 0x35, 0x48, 0x47, 0x1a, 0x8b, 0x10, 0x24, 0x2e, 0xc7,
|
||||||
0xe5, 0xd8, 0xe6, 0x05, 0xa9, 0x79, 0x01, 0xf7, 0x1e, 0x1c, 0xfb, 0x1a, 0x69, 0xbd, 0xef, 0x34,
|
0x4e, 0x5f, 0x90, 0x9a, 0x17, 0x70, 0xef, 0xc1, 0xb1, 0xaf, 0x91, 0xd6, 0xfb, 0x4e, 0x23, 0xdd,
|
||||||
0xcc, 0x06, 0xb0, 0x0a, 0x24, 0x0a, 0x1c, 0x6b, 0x05, 0xd2, 0x39, 0x22, 0x9d, 0x53, 0xef, 0x61,
|
0x00, 0x56, 0x81, 0x44, 0x81, 0x63, 0xad, 0x40, 0x3a, 0x47, 0xa4, 0x73, 0xea, 0x3d, 0xcc, 0xf0,
|
||||||
0x86, 0xb7, 0x70, 0x8a, 0xe1, 0xd4, 0x76, 0x87, 0xf4, 0x91, 0xcd, 0x40, 0xa6, 0x09, 0xd4, 0x7e,
|
0x16, 0x4e, 0x49, 0x39, 0xb5, 0xdd, 0x21, 0x7d, 0x64, 0x33, 0x90, 0xa9, 0x84, 0xda, 0x9f, 0xd2,
|
||||||
0x43, 0x7f, 0xba, 0x6f, 0x4a, 0x30, 0xa8, 0x38, 0x8d, 0x41, 0x3d, 0xfb, 0xb0, 0x74, 0xe0, 0x6a,
|
0x9f, 0xee, 0xa7, 0x25, 0x18, 0x54, 0x9c, 0xc4, 0xa0, 0x9e, 0x7d, 0x58, 0x3a, 0x70, 0x8d, 0x0d,
|
||||||
0x1b, 0x9e, 0x27, 0xa0, 0x1e, 0x70, 0x3d, 0x05, 0xcb, 0x07, 0xee, 0x97, 0x6e, 0x9f, 0xf4, 0x41,
|
0xcf, 0x25, 0xa8, 0x07, 0x5c, 0x4f, 0xc3, 0xf2, 0x81, 0xfb, 0xa5, 0xdb, 0x27, 0x7d, 0x50, 0xee,
|
||||||
0xb9, 0x27, 0xa4, 0xc3, 0xa3, 0x38, 0x55, 0x99, 0x7a, 0xbe, 0xf4, 0xed, 0x9c, 0xb9, 0x28, 0x0d,
|
0x09, 0xe9, 0xf0, 0x28, 0x4e, 0x74, 0xa6, 0x9e, 0x2f, 0x7d, 0x3b, 0x67, 0x2e, 0x4a, 0xc2, 0x11,
|
||||||
0x47, 0x2c, 0x01, 0x6d, 0xf1, 0xc8, 0xb1, 0x5b, 0xf0, 0x97, 0x3e, 0x3b, 0xf6, 0x51, 0xbb, 0x7d,
|
0x93, 0xa0, 0x2d, 0x1e, 0x39, 0x76, 0x0b, 0xfe, 0xd2, 0x67, 0xc7, 0x3e, 0x6a, 0xb7, 0x0f, 0xda,
|
||||||
0xd0, 0xb6, 0x73, 0xf5, 0xf8, 0xf0, 0x98, 0xb0, 0xbf, 0x52, 0x9e, 0x30, 0xb4, 0x42, 0xe2, 0xee,
|
0x76, 0xae, 0x1e, 0x1f, 0x1e, 0x25, 0xfb, 0x2b, 0xe1, 0x92, 0xa1, 0x15, 0xa4, 0xbb, 0x1f, 0xf9,
|
||||||
0x47, 0xfe, 0x22, 0xd5, 0xac, 0x7b, 0xf8, 0xb2, 0x6f, 0x93, 0xff, 0x9f, 0x2a, 0x8a, 0x60, 0x69,
|
0x8b, 0x54, 0xb3, 0xee, 0xe1, 0xcb, 0xbe, 0x4d, 0xfe, 0x7f, 0xaa, 0x28, 0x82, 0x65, 0xc4, 0x9a,
|
||||||
0xb1, 0x26, 0x89, 0x48, 0x63, 0xa9, 0x05, 0x58, 0x60, 0x1b, 0x92, 0x89, 0xb6, 0x35, 0xfe, 0x5d,
|
0x48, 0x91, 0xc4, 0xca, 0x08, 0xb0, 0xc0, 0x36, 0x24, 0x13, 0x63, 0x6b, 0xfc, 0xbb, 0x78, 0x8e,
|
||||||
0x3c, 0x47, 0x3b, 0x0a, 0xd0, 0x34, 0xc9, 0xe1, 0x44, 0xe7, 0x05, 0x97, 0x58, 0x8b, 0xd8, 0x83,
|
0x71, 0x14, 0xa0, 0x99, 0x26, 0x87, 0x13, 0x93, 0x17, 0x5c, 0x62, 0x2d, 0x62, 0x0f, 0x32, 0xec,
|
||||||
0x0c, 0x7b, 0xb0, 0x15, 0x76, 0x47, 0x61, 0x73, 0x44, 0xac, 0x6c, 0x33, 0xa4, 0xc9, 0x84, 0x47,
|
0xc1, 0x56, 0xd8, 0x1d, 0x8d, 0xcd, 0x11, 0xb1, 0xb2, 0xcd, 0x90, 0xca, 0x09, 0x8f, 0x4e, 0x9a,
|
||||||
0x27, 0x4d, 0x42, 0x53, 0x25, 0x70, 0x17, 0x18, 0x56, 0xc0, 0x78, 0x03, 0x7f, 0xe0, 0x5f, 0xab,
|
0x84, 0x26, 0x5a, 0xe0, 0x2e, 0x30, 0xac, 0x81, 0xf1, 0x06, 0xfe, 0xc0, 0xbf, 0x56, 0xf1, 0xb4,
|
||||||
0x78, 0xda, 0x2f, 0x9e, 0x0e, 0x8a, 0xa7, 0xc3, 0xe2, 0xa9, 0x6d, 0x15, 0x8f, 0x47, 0xc5, 0xd3,
|
0x5f, 0x3c, 0x1d, 0x14, 0x4f, 0x87, 0xc5, 0x53, 0xdb, 0x2a, 0x1e, 0x8f, 0x8a, 0xa7, 0xb7, 0xc5,
|
||||||
0xdb, 0xe2, 0xe9, 0xd8, 0x3c, 0x35, 0x34, 0x79, 0x73, 0xc4, 0x10, 0xca, 0xde, 0x49, 0x01, 0x90,
|
0xd3, 0x71, 0xfa, 0xd4, 0x30, 0xe4, 0xd3, 0x23, 0x86, 0x50, 0xf6, 0x4e, 0x0a, 0x80, 0x5c, 0xe3,
|
||||||
0x6b, 0xdc, 0x48, 0xa0, 0x53, 0xee, 0x48, 0x3c, 0x67, 0x92, 0xb5, 0x72, 0xff, 0x87, 0x27, 0xb7,
|
0xa9, 0x04, 0x26, 0xe5, 0x8e, 0xc4, 0x73, 0x26, 0x59, 0x2b, 0xf7, 0x7f, 0x78, 0x72, 0xcb, 0x28,
|
||||||
0x8c, 0xb2, 0x14, 0x63, 0xbf, 0x68, 0xfd, 0xe0, 0x71, 0x3b, 0x94, 0x83, 0xe2, 0x90, 0x83, 0xd7,
|
0x4b, 0x31, 0xf6, 0x8b, 0xd6, 0x0f, 0x1e, 0xb7, 0x43, 0x39, 0x28, 0x0e, 0x39, 0x78, 0x8d, 0xb1,
|
||||||
0x18, 0xcb, 0xf9, 0x3a, 0x2c, 0x50, 0x0e, 0xb7, 0x3c, 0xa4, 0x3d, 0xe3, 0xab, 0xbd, 0x25, 0xca,
|
0x9c, 0xaf, 0xc3, 0x02, 0xe5, 0x70, 0xcb, 0x43, 0xda, 0x33, 0xbe, 0xda, 0x5b, 0xa2, 0x1c, 0x15,
|
||||||
0x51, 0x71, 0xc8, 0xd1, 0xb6, 0x7c, 0xbd, 0x2d, 0x50, 0xde, 0x6e, 0x79, 0xc8, 0xf1, 0x8c, 0xaf,
|
0x87, 0x1c, 0x6d, 0xcb, 0xd7, 0xdb, 0x02, 0xe5, 0xed, 0x96, 0x87, 0x1c, 0xcf, 0xf8, 0x3a, 0xce,
|
||||||
0xe3, 0x1c, 0x65, 0xde, 0x58, 0x03, 0xe6, 0x31, 0xfe, 0xc8, 0x4e, 0xb6, 0x21, 0x36, 0x68, 0x15,
|
0x51, 0xe6, 0x8d, 0x35, 0x60, 0x1e, 0xe3, 0x8f, 0xec, 0x64, 0x1b, 0x62, 0x83, 0x56, 0x41, 0x6c,
|
||||||
0xc4, 0x06, 0x5b, 0xda, 0x6b, 0xb0, 0x9f, 0x73, 0x3c, 0xd8, 0xdf, 0x52, 0xc8, 0x41, 0x61, 0xaf,
|
0xb0, 0xa5, 0xbd, 0x06, 0xfb, 0x39, 0xc7, 0x83, 0xfd, 0x2d, 0x85, 0x1c, 0x14, 0xf6, 0x1a, 0x1c,
|
||||||
0xc1, 0xc1, 0x96, 0x87, 0x1c, 0xce, 0xf8, 0xda, 0xd2, 0x5e, 0x83, 0x76, 0x71, 0x48, 0x7b, 0x5b,
|
0x6c, 0x79, 0xc8, 0xe1, 0x8c, 0xaf, 0x2d, 0xed, 0x35, 0x68, 0x17, 0x87, 0xb4, 0xb7, 0xe5, 0xab,
|
||||||
0xbe, 0x0a, 0x7b, 0x0d, 0x8e, 0xb6, 0x3c, 0xe4, 0xed, 0x8c, 0xaf, 0x2d, 0xed, 0x35, 0x38, 0x2e,
|
0xb0, 0xd7, 0xe0, 0x68, 0xcb, 0x43, 0xde, 0xce, 0xf8, 0xda, 0xd2, 0x5e, 0x83, 0xe3, 0xe2, 0x90,
|
||||||
0x0e, 0x59, 0x34, 0x57, 0x43, 0x47, 0x37, 0x24, 0x54, 0x48, 0x3c, 0x85, 0xcd, 0x22, 0xf1, 0x94,
|
0x45, 0x73, 0x35, 0x4c, 0x74, 0x43, 0x42, 0x85, 0xc4, 0x53, 0xd8, 0x2c, 0x12, 0x4f, 0x92, 0xc6,
|
||||||
0xd0, 0x78, 0x15, 0xbd, 0x8c, 0x0e, 0xd4, 0x84, 0xf3, 0x84, 0x4f, 0xa6, 0x2a, 0x62, 0x52, 0xd6,
|
0xab, 0xe8, 0x65, 0x74, 0xa0, 0x26, 0x9c, 0x4b, 0x3e, 0x99, 0xea, 0x88, 0x29, 0x55, 0xeb, 0x34,
|
||||||
0x3a, 0x8d, 0x0c, 0xc9, 0xda, 0x0e, 0xfb, 0xc2, 0x76, 0x2f, 0x44, 0x20, 0x92, 0x19, 0x62, 0x8e,
|
0x32, 0x24, 0x6b, 0x3b, 0xec, 0x0b, 0xdb, 0xbd, 0x10, 0x81, 0x90, 0x33, 0xc4, 0x1c, 0x8f, 0x42,
|
||||||
0x47, 0x21, 0xa9, 0xae, 0xd2, 0x57, 0x86, 0xfc, 0xcd, 0x76, 0x2f, 0xc7, 0x63, 0xe6, 0x29, 0x39,
|
0x52, 0x5d, 0xa5, 0xaf, 0x0c, 0xf9, 0x9b, 0xed, 0x5e, 0x8e, 0xc7, 0xcc, 0xd3, 0x6a, 0x86, 0x8d,
|
||||||
0xc3, 0xc6, 0xc4, 0xb9, 0xee, 0xc4, 0xe1, 0x27, 0x18, 0x19, 0xa1, 0xf5, 0x99, 0x60, 0xc3, 0x4e,
|
0x89, 0x73, 0xdd, 0x89, 0xc3, 0x4f, 0x30, 0x32, 0x42, 0xeb, 0x33, 0xc1, 0x86, 0x9d, 0x88, 0x18,
|
||||||
0x44, 0x8c, 0xdd, 0x84, 0xac, 0x91, 0xf5, 0x38, 0x57, 0x90, 0x3c, 0x47, 0x22, 0x8d, 0x7c, 0x89,
|
0xbb, 0x09, 0x55, 0x23, 0xeb, 0x71, 0xae, 0x20, 0x79, 0x8e, 0x44, 0x12, 0xf9, 0x0a, 0xe9, 0x5b,
|
||||||
0xf4, 0x2d, 0xcc, 0x40, 0xc4, 0x4c, 0x3e, 0xa6, 0x1d, 0x91, 0xd8, 0x1b, 0xfb, 0x90, 0xb9, 0x3d,
|
0x98, 0x81, 0x48, 0x3a, 0xf9, 0xa4, 0xed, 0x88, 0xc2, 0xde, 0xd8, 0x87, 0xcc, 0xed, 0x69, 0x1c,
|
||||||
0x85, 0x23, 0x62, 0x34, 0x61, 0x27, 0x1b, 0x28, 0x76, 0x6d, 0x77, 0x0d, 0xa9, 0xac, 0xfa, 0xc5,
|
0x11, 0xa3, 0x09, 0x3b, 0xd9, 0x40, 0xb1, 0x6b, 0xbb, 0x6b, 0x48, 0x65, 0xd5, 0x2f, 0x96, 0xa0,
|
||||||
0x09, 0xa8, 0x94, 0x40, 0xe7, 0xdd, 0x1b, 0x6c, 0xa2, 0x77, 0x3e, 0x4f, 0xef, 0x2c, 0x60, 0xcf,
|
0x52, 0x02, 0x9d, 0x77, 0x6f, 0xb0, 0x89, 0xde, 0xf9, 0x3c, 0xbd, 0xb3, 0x80, 0x3d, 0xd3, 0x45,
|
||||||
0x74, 0x91, 0xea, 0x26, 0xfc, 0xb3, 0x79, 0xfc, 0x3e, 0x0c, 0x15, 0x3c, 0x96, 0xe4, 0x3a, 0x65,
|
0xaa, 0x9b, 0xf0, 0xcf, 0xe6, 0xf1, 0xfb, 0x30, 0x54, 0xf0, 0x58, 0x91, 0xeb, 0x84, 0x65, 0xe2,
|
||||||
0x99, 0x38, 0x3f, 0x47, 0xec, 0x7a, 0x9e, 0xd8, 0x0d, 0xf5, 0x12, 0xf1, 0x73, 0xf8, 0x37, 0x19,
|
0xfc, 0x1c, 0xb1, 0xeb, 0x79, 0x62, 0x37, 0xd4, 0x93, 0xe2, 0xe7, 0xf0, 0x6f, 0x32, 0x7c, 0xac,
|
||||||
0x3e, 0x56, 0xeb, 0x18, 0xda, 0x02, 0x98, 0xb5, 0x60, 0x2e, 0x4e, 0x68, 0x24, 0x43, 0x2e, 0xe5,
|
0xd6, 0x31, 0xb4, 0x05, 0x30, 0x6b, 0xc1, 0x5c, 0x2c, 0x69, 0xa4, 0x42, 0xae, 0xd4, 0x02, 0x85,
|
||||||
0x02, 0x85, 0xac, 0xd0, 0x0e, 0x96, 0x16, 0xda, 0x66, 0x56, 0x68, 0x0f, 0xe0, 0xc1, 0x5a, 0x59,
|
0xac, 0xd0, 0x0e, 0x96, 0x16, 0xda, 0x66, 0x56, 0x68, 0x0f, 0xe0, 0xc1, 0x5a, 0x59, 0x66, 0x8d,
|
||||||
0x66, 0xb5, 0xc7, 0x80, 0xd3, 0x8f, 0x84, 0x50, 0xc5, 0x16, 0x0c, 0xd9, 0x04, 0x26, 0xac, 0xe0,
|
0xc7, 0x80, 0xd3, 0x8f, 0x84, 0xd0, 0xc5, 0x16, 0x0c, 0xd9, 0x04, 0x26, 0xac, 0xe0, 0x25, 0x53,
|
||||||
0x25, 0x53, 0x80, 0xac, 0x77, 0x1a, 0x1c, 0x7b, 0x8e, 0x82, 0x90, 0x0c, 0x03, 0x5b, 0xd7, 0xe8,
|
0x80, 0xaa, 0x77, 0x1a, 0x1c, 0x7b, 0x8e, 0x82, 0x90, 0x0a, 0x03, 0xdb, 0xd4, 0xe8, 0x5e, 0xa4,
|
||||||
0x5e, 0x24, 0x15, 0x8d, 0x3c, 0x46, 0x70, 0x8e, 0xd2, 0x45, 0xfa, 0x32, 0xd2, 0xa5, 0x92, 0xe7,
|
0x34, 0x8d, 0x3c, 0x46, 0x70, 0x8e, 0x32, 0x45, 0xfa, 0x32, 0x32, 0xa5, 0x92, 0xe7, 0x1b, 0x01,
|
||||||
0x1b, 0x01, 0x6c, 0xac, 0x94, 0x39, 0x8b, 0xe0, 0xdb, 0x8f, 0x46, 0xe8, 0x1b, 0xfa, 0xc0, 0x88,
|
0x6c, 0xac, 0x94, 0x39, 0x8b, 0xe0, 0xdb, 0x8f, 0xa9, 0xd0, 0x37, 0xf4, 0x81, 0x11, 0x3d, 0xe5,
|
||||||
0x9a, 0x72, 0x39, 0x43, 0x87, 0x3a, 0xec, 0x89, 0x47, 0x96, 0x20, 0xd1, 0x0d, 0xaa, 0xbb, 0x3d,
|
0x6a, 0x86, 0x0e, 0x75, 0xd8, 0x13, 0x8f, 0x4c, 0x22, 0xd1, 0x0d, 0xaa, 0xbb, 0x3d, 0xc7, 0x0b,
|
||||||
0xc7, 0x0b, 0x11, 0xe0, 0xb2, 0xcc, 0xe4, 0x80, 0xd1, 0x40, 0xf1, 0x90, 0x69, 0xfe, 0xb2, 0x00,
|
0x11, 0xe0, 0xb2, 0xcc, 0xe4, 0x80, 0xd1, 0x40, 0xf3, 0x90, 0x19, 0xfe, 0xb2, 0x00, 0x27, 0xa8,
|
||||||
0x27, 0xa8, 0xdf, 0x24, 0xdb, 0xd8, 0xc4, 0xdf, 0x20, 0xf3, 0xd8, 0x2f, 0xd0, 0x22, 0x87, 0x94,
|
0x5f, 0x99, 0x6d, 0x6c, 0xe2, 0x6f, 0x90, 0x79, 0xec, 0x17, 0x68, 0x91, 0x43, 0xca, 0x61, 0xb2,
|
||||||
0xc3, 0x64, 0x97, 0x87, 0x50, 0x14, 0xbc, 0x6c, 0xe0, 0xea, 0xe6, 0x93, 0x5d, 0xa8, 0x1a, 0x7a,
|
0xcb, 0x43, 0x28, 0x0a, 0x5e, 0x36, 0x70, 0x75, 0xf3, 0xc9, 0x2e, 0x54, 0x0d, 0x3d, 0x88, 0x7b,
|
||||||
0x10, 0xf7, 0x96, 0xa9, 0x27, 0x91, 0x3c, 0x90, 0xee, 0xcd, 0x37, 0xa2, 0xf1, 0xb4, 0x6e, 0x61,
|
0xcb, 0xf4, 0x93, 0x90, 0x0f, 0xa4, 0x7b, 0xf3, 0x8d, 0x18, 0x3c, 0xa3, 0x5b, 0xd8, 0xbc, 0x03,
|
||||||
0xf3, 0x0e, 0xd0, 0x81, 0x96, 0x64, 0x01, 0x46, 0x92, 0x41, 0xee, 0xf6, 0x74, 0xa7, 0xa8, 0xad,
|
0x74, 0xa0, 0xa5, 0x58, 0x80, 0x91, 0x94, 0x22, 0x77, 0x7b, 0xa6, 0x53, 0x34, 0x56, 0x00, 0xdf,
|
||||||
0x00, 0xbe, 0x81, 0x73, 0x82, 0xbe, 0x31, 0x40, 0x41, 0x4d, 0xf8, 0x12, 0x33, 0x47, 0xd8, 0x38,
|
0xc0, 0x39, 0xc1, 0xdc, 0x18, 0xa0, 0xa0, 0x69, 0xf8, 0x92, 0x74, 0x8e, 0xb0, 0x71, 0x1c, 0x81,
|
||||||
0x8e, 0x40, 0x46, 0x68, 0xd5, 0x0f, 0x5a, 0xa4, 0x22, 0xcf, 0x2e, 0x6e, 0xab, 0x9d, 0x86, 0x81,
|
0x8c, 0xd0, 0xaa, 0x1f, 0xb4, 0x48, 0x45, 0x9d, 0x5d, 0xdc, 0x56, 0x3b, 0x8d, 0x14, 0xc2, 0x2d,
|
||||||
0x70, 0x4b, 0x90, 0x38, 0x95, 0xd8, 0xee, 0x59, 0xa2, 0xf6, 0x80, 0x95, 0x02, 0xa8, 0x4c, 0x0f,
|
0x41, 0xe2, 0x54, 0x62, 0xbb, 0x67, 0x52, 0xef, 0x01, 0x2b, 0x05, 0x50, 0x99, 0x1e, 0x78, 0x4d,
|
||||||
0xbc, 0xc6, 0x70, 0x02, 0xc3, 0xa3, 0x9d, 0x3f, 0x41, 0xbe, 0x4a, 0xa5, 0x12, 0x21, 0xc1, 0x1e,
|
0xca, 0x09, 0x0c, 0x8f, 0x76, 0xfe, 0x04, 0xf9, 0x2a, 0x51, 0x5a, 0x84, 0x04, 0x7b, 0xf4, 0x19,
|
||||||
0x7d, 0x46, 0xbf, 0x61, 0xf6, 0x8d, 0x98, 0xba, 0x6d, 0xc6, 0x74, 0x0b, 0x73, 0x9a, 0xbb, 0xa4,
|
0xfd, 0x46, 0xba, 0x9f, 0x8a, 0x69, 0xda, 0x66, 0x4c, 0xb7, 0x30, 0xa7, 0xb9, 0x4b, 0xda, 0xcd,
|
||||||
0xdd, 0xbc, 0xec, 0x6f, 0xd3, 0x17, 0xce, 0x4b, 0xb5, 0xc6, 0x7d, 0x75, 0x07, 0x7c, 0x93, 0x82,
|
0xcb, 0xfe, 0x36, 0x7d, 0xe1, 0xbc, 0x54, 0x6b, 0xdc, 0xd7, 0x74, 0xc0, 0x37, 0x09, 0x18, 0x11,
|
||||||
0x11, 0xb1, 0xcb, 0xdd, 0x60, 0x89, 0xcb, 0x3c, 0xb4, 0x86, 0x8a, 0xe2, 0x88, 0x11, 0x81, 0x1b,
|
0xbb, 0xdc, 0x0d, 0x96, 0xb8, 0xcc, 0x43, 0x6b, 0xa8, 0x29, 0x8e, 0x18, 0x11, 0xb8, 0x01, 0x0c,
|
||||||
0xc0, 0xd0, 0x57, 0xe6, 0xef, 0xcb, 0xda, 0x70, 0x3a, 0x3a, 0x78, 0xf7, 0xee, 0x5d, 0x89, 0x0d,
|
0x7d, 0x65, 0xfe, 0xbe, 0xac, 0x0d, 0xa7, 0xa3, 0x83, 0x77, 0xef, 0xde, 0x95, 0xd8, 0xb0, 0x5e,
|
||||||
0xeb, 0x75, 0x08, 0xe9, 0x88, 0x21, 0x17, 0xc8, 0x01, 0x11, 0x40, 0xbb, 0x43, 0xc9, 0x34, 0x61,
|
0x87, 0x90, 0x89, 0x18, 0x72, 0x81, 0x1c, 0x10, 0x01, 0xb4, 0x3b, 0x94, 0x4c, 0x25, 0x1b, 0x3b,
|
||||||
0x63, 0xa7, 0xb8, 0x56, 0x9a, 0x70, 0x35, 0x4d, 0x47, 0x75, 0x4f, 0x84, 0x8d, 0x8f, 0xcc, 0xff,
|
0xc5, 0xb5, 0xd2, 0x84, 0xeb, 0x69, 0x32, 0xaa, 0x7b, 0x22, 0x6c, 0x7c, 0x64, 0xfe, 0x87, 0xe7,
|
||||||
0xf0, 0x6c, 0x7e, 0xb1, 0x13, 0x87, 0xde, 0x12, 0x2f, 0xd9, 0xfe, 0x1c, 0x05, 0x34, 0x7a, 0xb0,
|
0xf4, 0x17, 0x3b, 0x71, 0xe8, 0x2d, 0xf1, 0x92, 0xed, 0xcf, 0x51, 0x40, 0xa3, 0x07, 0xdb, 0x35,
|
||||||
0x5d, 0xbd, 0xde, 0x69, 0x50, 0x77, 0x07, 0x8f, 0x1a, 0x3e, 0xf0, 0x18, 0x09, 0xee, 0x89, 0xf1,
|
0xeb, 0x9d, 0x06, 0x75, 0x77, 0xf0, 0xa8, 0xe1, 0x03, 0x8f, 0x91, 0xe0, 0x9e, 0x18, 0xef, 0x29,
|
||||||
0x9e, 0x84, 0xb3, 0x18, 0xc6, 0x88, 0x49, 0x13, 0xb3, 0xbc, 0xb0, 0xa2, 0x64, 0x5c, 0x0e, 0x8d,
|
0x38, 0x8b, 0x61, 0x8c, 0xa4, 0x69, 0x62, 0x96, 0x17, 0x56, 0x94, 0x8c, 0xcb, 0x61, 0x2a, 0x3f,
|
||||||
0xfc, 0xe8, 0x79, 0x52, 0xab, 0x80, 0xfa, 0x3e, 0x66, 0xd9, 0x92, 0x06, 0xba, 0x67, 0x65, 0x0d,
|
0x7a, 0x9e, 0x32, 0x2a, 0xa0, 0xbe, 0x8f, 0x59, 0xb6, 0xa4, 0x81, 0xee, 0x59, 0x59, 0x03, 0xd6,
|
||||||
0x58, 0x0b, 0x26, 0x6a, 0xb7, 0x9a, 0x25, 0x05, 0x68, 0x8a, 0x59, 0x48, 0x48, 0xe0, 0x06, 0x26,
|
0x82, 0x89, 0xda, 0xad, 0x66, 0x49, 0x01, 0x86, 0x62, 0x16, 0x12, 0x0a, 0xb8, 0x81, 0x49, 0xaf,
|
||||||
0xbd, 0x12, 0xcd, 0x6f, 0xdf, 0x96, 0x0f, 0x19, 0xb9, 0x5a, 0x5b, 0xed, 0x32, 0x4d, 0xe3, 0xca,
|
0x44, 0xf3, 0xdb, 0xb7, 0xe5, 0x43, 0x46, 0xae, 0xd6, 0x56, 0xbb, 0x4c, 0x33, 0x75, 0x65, 0x33,
|
||||||
0x7a, 0x18, 0x8c, 0x13, 0x2e, 0x12, 0xae, 0x5e, 0xca, 0x23, 0x46, 0xff, 0x8f, 0xb5, 0xa6, 0xda,
|
0x0c, 0xc6, 0x92, 0x0b, 0xc9, 0xf5, 0x4b, 0x79, 0xc4, 0xe8, 0xff, 0xb1, 0xd6, 0x54, 0xfb, 0xcd,
|
||||||
0x6f, 0x2e, 0xe3, 0x33, 0x84, 0x79, 0x77, 0x16, 0x66, 0x19, 0xa5, 0x2e, 0xba, 0x46, 0x39, 0x00,
|
0x65, 0x7c, 0x86, 0x30, 0xef, 0xce, 0xc2, 0x2c, 0xa3, 0xd4, 0x45, 0xd7, 0x28, 0x07, 0x80, 0xdb,
|
||||||
0xdc, 0x2e, 0x97, 0x98, 0x76, 0xfc, 0x55, 0x91, 0x04, 0x7d, 0xda, 0x10, 0x44, 0x85, 0x6c, 0x37,
|
0xe5, 0x0a, 0xd3, 0x8e, 0xbf, 0x2a, 0x92, 0xa0, 0x4f, 0x1b, 0x82, 0xa8, 0x90, 0xed, 0x06, 0x57,
|
||||||
0xb8, 0x3a, 0xb7, 0x56, 0x41, 0xed, 0x17, 0x50, 0x5d, 0x00, 0x5b, 0x05, 0x75, 0x90, 0x97, 0xf3,
|
0xe7, 0xd6, 0x2a, 0xa8, 0xfd, 0x02, 0xaa, 0x0b, 0x60, 0xab, 0xa0, 0x0e, 0xf2, 0x72, 0xbe, 0x32,
|
||||||
0x95, 0x11, 0xf9, 0x36, 0x87, 0x20, 0xbb, 0xe4, 0xeb, 0x94, 0x2b, 0xb6, 0x8a, 0xd4, 0x71, 0x01,
|
0x22, 0xdf, 0xe6, 0x10, 0x64, 0x97, 0x7c, 0x9d, 0x72, 0xcd, 0x56, 0x91, 0x3a, 0x2e, 0x00, 0xb3,
|
||||||
0x98, 0x55, 0xfa, 0x95, 0xac, 0xbd, 0x2b, 0x43, 0x6e, 0x22, 0x0d, 0x89, 0xc3, 0xd2, 0xe1, 0x46,
|
0x4a, 0xbf, 0x92, 0xb5, 0x77, 0x65, 0xc8, 0x4d, 0xa4, 0x21, 0x71, 0x58, 0x26, 0xdc, 0xc8, 0x1a,
|
||||||
0xd6, 0x88, 0xd2, 0x46, 0xcd, 0x85, 0x21, 0x4b, 0x80, 0xda, 0x6a, 0x60, 0x2b, 0x4f, 0x47, 0xb6,
|
0x51, 0xda, 0xa8, 0xb9, 0x30, 0x64, 0x12, 0xa8, 0xad, 0x06, 0xb6, 0xf2, 0x74, 0x64, 0xbb, 0x05,
|
||||||
0x5b, 0x00, 0x7d, 0x5d, 0xa9, 0x69, 0xb0, 0x46, 0x1f, 0x5c, 0x95, 0xad, 0xca, 0x3a, 0x94, 0x58,
|
0xd0, 0xd7, 0x95, 0x9a, 0x06, 0x6b, 0xf4, 0xc1, 0x55, 0xd9, 0xaa, 0xac, 0x43, 0x89, 0xb5, 0x18,
|
||||||
0x8b, 0xf1, 0xb5, 0xe2, 0xda, 0x96, 0xa1, 0x57, 0xed, 0xf9, 0xe1, 0x73, 0x03, 0x5c, 0xa7, 0x14,
|
0x5f, 0x2b, 0xae, 0x6d, 0x19, 0x7a, 0xd5, 0x9e, 0x1f, 0x3e, 0x37, 0xc0, 0x75, 0x4a, 0x91, 0x96,
|
||||||
0x69, 0xc6, 0xe3, 0x78, 0x34, 0x16, 0x18, 0x6e, 0xba, 0x1b, 0xbc, 0x83, 0xe2, 0x00, 0xd1, 0x56,
|
0x7a, 0x1c, 0x8f, 0xc6, 0x02, 0xc3, 0xcd, 0x74, 0x83, 0x77, 0x50, 0x1c, 0x20, 0xda, 0xca, 0x29,
|
||||||
0x4e, 0x11, 0x77, 0x1b, 0x52, 0x58, 0x73, 0xc1, 0xf3, 0x48, 0x68, 0x3a, 0xa7, 0x0f, 0x22, 0xf1,
|
0xe2, 0x6e, 0x43, 0x0a, 0x6b, 0x2e, 0x78, 0x1e, 0x09, 0xd3, 0xce, 0xe9, 0x83, 0x90, 0x1e, 0xd6,
|
||||||
0xb0, 0x7e, 0x3c, 0x93, 0x51, 0xd1, 0x33, 0x6e, 0x48, 0x59, 0x1f, 0xf2, 0xd6, 0x26, 0x73, 0xc5,
|
0x8f, 0x67, 0x32, 0x2a, 0x7a, 0xc6, 0x0d, 0x29, 0xeb, 0x43, 0xde, 0xda, 0x64, 0xae, 0x58, 0x54,
|
||||||
0xa2, 0x62, 0x91, 0x09, 0x0d, 0x43, 0x4a, 0x3c, 0x91, 0x60, 0xdf, 0x05, 0xfa, 0xd8, 0x40, 0x68,
|
0x2c, 0x32, 0xa1, 0x61, 0x48, 0x89, 0x27, 0x24, 0xf6, 0x5d, 0xa0, 0x8f, 0x0d, 0x84, 0x06, 0x57,
|
||||||
0x70, 0x95, 0x11, 0xca, 0x6b, 0x21, 0xc1, 0xfb, 0x01, 0x31, 0x1e, 0x83, 0x4a, 0x4b, 0xd2, 0x7d,
|
0x19, 0xa1, 0xbc, 0x16, 0x12, 0xbc, 0x1f, 0x10, 0xe3, 0x31, 0xa8, 0xb4, 0x24, 0xdd, 0xd7, 0x4f,
|
||||||
0xfd, 0xb4, 0x54, 0xba, 0xbd, 0xfd, 0x76, 0x3b, 0x0f, 0x2c, 0x7c, 0xb2, 0x66, 0x91, 0xb5, 0xa4,
|
0x4b, 0xa5, 0xdb, 0xdb, 0x6f, 0xb7, 0xf3, 0xc0, 0xc2, 0x27, 0x6b, 0x16, 0x59, 0x4b, 0x4a, 0x6e,
|
||||||
0xe4, 0x9a, 0x2e, 0xec, 0x77, 0xc1, 0x41, 0xe2, 0x33, 0x68, 0x5b, 0xb0, 0x9a, 0x9b, 0xfe, 0x40,
|
0xda, 0x85, 0xfd, 0x2e, 0x38, 0x48, 0x7c, 0x06, 0x6d, 0x0b, 0x56, 0xf3, 0xb4, 0x3f, 0x30, 0x05,
|
||||||
0x17, 0x08, 0xac, 0x0f, 0xb7, 0x42, 0x03, 0xcd, 0xd2, 0xbb, 0xbe, 0x92, 0x77, 0x3b, 0x2c, 0xcc,
|
0x02, 0xeb, 0xc3, 0xad, 0x30, 0x40, 0xb3, 0xf4, 0x6e, 0xae, 0xe4, 0xdd, 0x0e, 0x0b, 0xf3, 0x19,
|
||||||
0x67, 0x70, 0x0f, 0x9b, 0xe3, 0x93, 0x5f, 0xc6, 0x14, 0xbf, 0x74, 0xdc, 0x61, 0x5b, 0x30, 0xe6,
|
0xdc, 0xc3, 0xe6, 0xf8, 0xe4, 0x97, 0x31, 0xc5, 0x2f, 0x1d, 0x77, 0xd8, 0x16, 0x8c, 0xb9, 0x0c,
|
||||||
0x49, 0xf8, 0x44, 0x13, 0x06, 0x4d, 0x22, 0x0f, 0x7c, 0xe2, 0x0b, 0x26, 0xb1, 0xbb, 0x02, 0xa3,
|
0x9f, 0xa8, 0x64, 0xd0, 0x24, 0xf2, 0xc0, 0x27, 0xbe, 0x60, 0x0a, 0xbb, 0x2b, 0x30, 0x9a, 0x17,
|
||||||
0x79, 0x41, 0xea, 0xb3, 0xac, 0xf9, 0x93, 0x69, 0x8c, 0x79, 0xa3, 0x6e, 0x4a, 0x04, 0x0b, 0xe7,
|
0x24, 0x3e, 0xcb, 0x9a, 0x3f, 0x95, 0xc4, 0x98, 0x37, 0xea, 0x69, 0x89, 0x60, 0xe1, 0x5c, 0xad,
|
||||||
0x6a, 0xc5, 0xac, 0x3c, 0x99, 0xc3, 0xdd, 0xcb, 0x30, 0x0d, 0xa8, 0xca, 0x31, 0xcd, 0x87, 0x93,
|
0x98, 0x95, 0xa7, 0xf4, 0x70, 0xf7, 0x32, 0x4c, 0x02, 0xaa, 0x73, 0xcc, 0xf4, 0xc3, 0xc9, 0x06,
|
||||||
0x0d, 0xba, 0x3c, 0xcb, 0xba, 0x15, 0xcb, 0xe0, 0xf0, 0xe8, 0x31, 0xbb, 0x98, 0xd3, 0xfb, 0x25,
|
0x5d, 0x9e, 0x65, 0xdd, 0x8a, 0x95, 0xe2, 0xf0, 0xe8, 0x31, 0xbb, 0x98, 0x33, 0xfb, 0x25, 0x64,
|
||||||
0x64, 0xbc, 0xdc, 0x2e, 0x10, 0x7b, 0x5a, 0x81, 0x01, 0x8b, 0x26, 0x6a, 0x0a, 0x21, 0xbf, 0x5f,
|
0xbc, 0xdc, 0x2e, 0x10, 0x7b, 0x46, 0x81, 0x01, 0x8b, 0x26, 0x7a, 0x0a, 0x21, 0xbf, 0x5f, 0xd0,
|
||||||
0xd0, 0x91, 0x82, 0xb0, 0x8c, 0x11, 0xc3, 0x82, 0xc4, 0x1e, 0xcc, 0xa3, 0x41, 0x00, 0xed, 0x10,
|
0x51, 0x82, 0xb0, 0x8c, 0x91, 0x94, 0x05, 0x85, 0x3d, 0x98, 0x47, 0x83, 0x00, 0xda, 0x21, 0x86,
|
||||||
0x43, 0xb1, 0xa5, 0x5a, 0xb4, 0xd2, 0xd9, 0xab, 0x32, 0x9a, 0x9b, 0x20, 0x4f, 0xd7, 0x79, 0x1a,
|
0x62, 0x2b, 0xbd, 0x68, 0xa5, 0xb3, 0x57, 0x65, 0x34, 0x37, 0x41, 0x9e, 0xae, 0xf3, 0x34, 0x38,
|
||||||
0x9c, 0xaf, 0x56, 0xba, 0xab, 0x86, 0x52, 0x51, 0xf4, 0x7e, 0xd9, 0x15, 0x52, 0xc9, 0x80, 0x5a,
|
0x5f, 0xad, 0x4c, 0x57, 0x0d, 0xa5, 0xa2, 0xe8, 0xfd, 0xb2, 0x2b, 0xa4, 0x92, 0x01, 0x8d, 0x92,
|
||||||
0x49, 0x4b, 0x8c, 0xf0, 0xe6, 0x97, 0x77, 0xc7, 0xc7, 0xc7, 0xa7, 0xa4, 0x33, 0x72, 0x6f, 0x3e,
|
0x96, 0x18, 0xe1, 0xcd, 0x2f, 0xef, 0x8e, 0x8f, 0x8f, 0x4f, 0x49, 0x67, 0xe4, 0xde, 0x7c, 0xbe,
|
||||||
0xdf, 0xdd, 0x11, 0x1c, 0x53, 0xb0, 0x4f, 0xc6, 0xeb, 0x79, 0x82, 0xcc, 0x7a, 0x22, 0x8a, 0x30,
|
0xbb, 0x23, 0x38, 0xa6, 0x60, 0x9f, 0x8c, 0xd7, 0xf3, 0x04, 0x99, 0xf5, 0x44, 0x14, 0x61, 0x3a,
|
||||||
0x9d, 0x00, 0xf3, 0x20, 0x37, 0x4b, 0x22, 0x1a, 0x90, 0xa9, 0x90, 0x4a, 0xee, 0x98, 0x70, 0x42,
|
0x01, 0xe6, 0x41, 0x6e, 0x26, 0x23, 0x1a, 0x90, 0xa9, 0x50, 0x5a, 0xed, 0xa4, 0xe1, 0x84, 0x36,
|
||||||
0x1b, 0x86, 0xf4, 0x85, 0xf0, 0x10, 0xaa, 0x84, 0xd2, 0xb2, 0x01, 0x43, 0x31, 0x34, 0xb5, 0x50,
|
0x0c, 0xe9, 0x0b, 0xe1, 0x21, 0x54, 0x09, 0x6d, 0x64, 0x03, 0x86, 0x62, 0x68, 0x6a, 0xa1, 0x16,
|
||||||
0x8b, 0x23, 0xdd, 0xf0, 0x8f, 0xf5, 0xf5, 0x23, 0xd4, 0xcf, 0xd1, 0x1c, 0x87, 0x18, 0x3b, 0x64,
|
0x47, 0xa6, 0xe1, 0x1f, 0x9b, 0xeb, 0x47, 0xa8, 0x9f, 0xa3, 0x39, 0x0e, 0x31, 0x76, 0xc8, 0x88,
|
||||||
0xc4, 0x24, 0x16, 0x58, 0x09, 0xd9, 0x02, 0x86, 0x16, 0x6c, 0xbd, 0x48, 0x0a, 0x0d, 0x99, 0x88,
|
0x29, 0x2c, 0xb0, 0x0a, 0xb2, 0x05, 0x0c, 0x2d, 0xd8, 0x7a, 0x91, 0x04, 0x1a, 0x32, 0x11, 0x31,
|
||||||
0x18, 0x62, 0x01, 0x2d, 0x78, 0x91, 0x2c, 0x31, 0xea, 0xa3, 0x50, 0xdd, 0x08, 0x3a, 0xba, 0xf6,
|
0xc4, 0x02, 0x5a, 0xf0, 0xa2, 0x98, 0x4c, 0xd5, 0x47, 0xa1, 0xba, 0x11, 0x74, 0x74, 0xe3, 0x05,
|
||||||
0x02, 0xab, 0x02, 0x5e, 0x8f, 0xec, 0x28, 0x38, 0x27, 0x78, 0xa9, 0x15, 0x8c, 0x82, 0xb3, 0x30,
|
0x56, 0x05, 0xbc, 0x1e, 0xd9, 0xd1, 0x70, 0x4e, 0xf0, 0x52, 0x2b, 0x18, 0x05, 0x67, 0x61, 0xf0,
|
||||||
0x78, 0xf6, 0xc9, 0xe5, 0xb0, 0x8f, 0x5c, 0x03, 0x95, 0x50, 0x8b, 0x85, 0x94, 0x91, 0x3d, 0x6c,
|
0xec, 0x93, 0xcb, 0x61, 0x1f, 0xb9, 0x06, 0x2a, 0xa1, 0x11, 0x0b, 0x29, 0x23, 0x7b, 0xd8, 0x26,
|
||||||
0x13, 0x51, 0xbc, 0xea, 0xd2, 0xf6, 0x17, 0xb5, 0x50, 0xf6, 0x6a, 0x5c, 0x2b, 0xac, 0xf1, 0x0f,
|
0xa2, 0x78, 0xd5, 0xa5, 0xed, 0x2f, 0x6a, 0xa1, 0xec, 0xd5, 0xb8, 0x56, 0x58, 0xe3, 0x1f, 0xf0,
|
||||||
0xf8, 0xb4, 0xd6, 0xf4, 0x6b, 0x97, 0x9e, 0xb9, 0x33, 0x1e, 0xab, 0x0f, 0x75, 0xad, 0xac, 0xf9,
|
0x69, 0xa3, 0xe9, 0xd7, 0x2e, 0x3d, 0x73, 0x67, 0x3c, 0xd6, 0x1c, 0xea, 0x5a, 0x59, 0xf3, 0x8d,
|
||||||
0xc6, 0xb7, 0x4d, 0x6d, 0xe9, 0x67, 0xe3, 0x7c, 0xe7, 0x89, 0x78, 0x60, 0xc9, 0x52, 0xa7, 0xcd,
|
0x6f, 0x9b, 0xda, 0xd2, 0xcf, 0xa9, 0xf3, 0x9d, 0x4b, 0xf1, 0xc0, 0xe4, 0x52, 0xa7, 0xcd, 0x6a,
|
||||||
0x6a, 0xe3, 0xcd, 0xf0, 0x95, 0xd7, 0x2e, 0xbb, 0x46, 0xbc, 0xf9, 0xdc, 0xff, 0x34, 0x58, 0x99,
|
0xe3, 0xcd, 0xf0, 0x95, 0xd7, 0x2e, 0xbb, 0x46, 0xbc, 0xf9, 0xdc, 0xff, 0x34, 0x58, 0x99, 0x18,
|
||||||
0x18, 0xad, 0xe5, 0x97, 0x7e, 0x59, 0x67, 0x8c, 0x9a, 0xc8, 0x04, 0xf5, 0xc0, 0x4d, 0xa1, 0x10,
|
0xad, 0xe5, 0x97, 0x7e, 0x59, 0x67, 0x8c, 0x9a, 0xc8, 0x04, 0xf5, 0xc0, 0x4d, 0xa1, 0x10, 0x71,
|
||||||
0x71, 0x1a, 0x80, 0x0d, 0x13, 0x34, 0x28, 0xb6, 0xd9, 0xd0, 0xa8, 0x81, 0x55, 0xa0, 0x65, 0x03,
|
0x1a, 0x80, 0x0d, 0x25, 0x1a, 0x14, 0xdb, 0x6c, 0x68, 0xd4, 0xc0, 0x2a, 0xd0, 0xb2, 0x81, 0xb5,
|
||||||
0x6b, 0xa5, 0x38, 0xa1, 0x64, 0xf6, 0xc3, 0xdb, 0x70, 0x6d, 0xdf, 0x5b, 0x86, 0x20, 0xb9, 0xd1,
|
0x12, 0x9c, 0x50, 0x32, 0xfb, 0xe1, 0x6d, 0xb8, 0xb1, 0xef, 0x2d, 0x43, 0x90, 0xdc, 0x68, 0x86,
|
||||||
0x34, 0xa5, 0x18, 0x0e, 0x81, 0x4e, 0xdb, 0x27, 0x63, 0x81, 0xc8, 0x02, 0x36, 0x92, 0xdc, 0x3f,
|
0x52, 0x0c, 0x87, 0x40, 0xa7, 0xed, 0x93, 0xb1, 0x40, 0x64, 0x01, 0x1b, 0x32, 0xf7, 0x8f, 0x9d,
|
||||||
0x76, 0x72, 0xf7, 0x82, 0x8e, 0x3e, 0x59, 0x88, 0x5a, 0xeb, 0x75, 0xd8, 0xde, 0x7c, 0xfe, 0x32,
|
0xdc, 0xbd, 0xa0, 0xa3, 0x97, 0x0b, 0x51, 0x6b, 0xbd, 0x0e, 0xdb, 0x9b, 0xcf, 0x5f, 0x86, 0x97,
|
||||||
0xbc, 0x1c, 0x2c, 0x28, 0xe1, 0xb0, 0x69, 0x58, 0xef, 0x67, 0x67, 0x94, 0xf4, 0x97, 0x1f, 0x3d,
|
0x83, 0x05, 0x25, 0x1c, 0x36, 0x53, 0xd6, 0xfb, 0xd9, 0x19, 0x25, 0xfd, 0xe5, 0x47, 0xcf, 0x74,
|
||||||
0xd3, 0xe1, 0xe7, 0xfe, 0xd9, 0x70, 0x51, 0x8f, 0x47, 0x87, 0x86, 0xc4, 0x45, 0xc0, 0x51, 0xc4,
|
0xf8, 0xb9, 0x7f, 0x36, 0x5c, 0xd4, 0xe3, 0xd1, 0x61, 0x4a, 0xe2, 0x22, 0xe0, 0x28, 0x62, 0xaf,
|
||||||
0x5e, 0x77, 0x4d, 0xe2, 0xb8, 0xf9, 0x7c, 0xd1, 0xeb, 0x1a, 0x25, 0x96, 0x39, 0xe8, 0xea, 0x74,
|
0xbb, 0x26, 0x71, 0xdc, 0x7c, 0xbe, 0xe8, 0x75, 0x53, 0x25, 0x96, 0x39, 0xe8, 0x9a, 0x74, 0x41,
|
||||||
0x41, 0xee, 0x44, 0xcc, 0xbd, 0x75, 0x14, 0xba, 0xaf, 0x8c, 0xa8, 0x23, 0xf2, 0x0a, 0x6f, 0x57,
|
0xee, 0x44, 0xcc, 0xbd, 0x75, 0x14, 0xba, 0xaf, 0x8c, 0x68, 0x22, 0xf2, 0x0a, 0x6f, 0x57, 0x37,
|
||||||
0x37, 0x63, 0x5f, 0x2d, 0x4f, 0x5c, 0xfd, 0x74, 0x04, 0xe3, 0xdd, 0xb4, 0x3c, 0xb5, 0x6f, 0x70,
|
0x63, 0x5f, 0x2d, 0x4f, 0x5c, 0xfd, 0x64, 0x04, 0xe3, 0xdd, 0xb4, 0x3c, 0xb5, 0x6f, 0x70, 0xbd,
|
||||||
0xbd, 0xf3, 0xac, 0x0f, 0x87, 0xae, 0xd9, 0xda, 0x38, 0x79, 0x12, 0x3d, 0x1e, 0x6d, 0x5b, 0xde,
|
0xf3, 0x9b, 0xa2, 0x16, 0x69, 0x1c, 0xa6, 0x66, 0xd5, 0x90, 0xbc, 0x21, 0x26, 0x3e, 0x48, 0x08,
|
||||||
0xc3, 0xbf, 0x94, 0x5a, 0x52, 0xd9, 0xb5, 0x3f, 0xe4, 0x85, 0x3d, 0xcb, 0x28, 0x18, 0xbe, 0x73,
|
0x2f, 0x14, 0x06, 0xcf, 0x4d, 0x55, 0xed, 0xce, 0xce, 0x47, 0x58, 0x6b, 0xe3, 0x0c, 0x4b, 0xcc,
|
||||||
0xb3, 0x7e, 0x39, 0x8a, 0x61, 0xe9, 0x9f, 0x0c, 0xe2, 0xf9, 0x5b, 0x85, 0x75, 0xb1, 0xac, 0x4b,
|
0xa0, 0xb5, 0x6d, 0xa3, 0x10, 0xfe, 0xa5, 0xf5, 0x92, 0x1e, 0xc1, 0x78, 0x56, 0xde, 0x22, 0x64,
|
||||||
0x13, 0x9e, 0xad, 0xb5, 0xf3, 0x87, 0x48, 0xa1, 0x08, 0x44, 0x40, 0x1d, 0x32, 0x12, 0x3a, 0x36,
|
0xb9, 0x09, 0x13, 0xc1, 0xdc, 0xad, 0x41, 0x39, 0x1f, 0xc0, 0xd2, 0x3f, 0x99, 0x0e, 0xe6, 0xef,
|
||||||
0x34, 0x0e, 0xfe, 0x84, 0x91, 0x5e, 0x5f, 0xe7, 0x28, 0x5c, 0x09, 0xb0, 0x93, 0x20, 0x26, 0xdc,
|
0x27, 0xd6, 0x65, 0x05, 0x53, 0xe4, 0xf0, 0x6c, 0xa3, 0x9d, 0x3f, 0x44, 0x02, 0xe5, 0x24, 0x02,
|
||||||
0xe0, 0x34, 0xbd, 0xf6, 0xeb, 0xd9, 0x08, 0x9a, 0x96, 0x5f, 0x31, 0xb5, 0xe9, 0xb2, 0x64, 0xb2,
|
0xea, 0x90, 0xdb, 0x30, 0x44, 0x40, 0xe9, 0xfe, 0x84, 0x91, 0x5e, 0xdf, 0x64, 0x3b, 0x5c, 0x09,
|
||||||
0x23, 0x99, 0xc2, 0xd9, 0xa0, 0xdc, 0xba, 0x95, 0x4f, 0x9c, 0x7d, 0x01, 0x29, 0x1b, 0x39, 0x32,
|
0xd0, 0x0a, 0x24, 0x0d, 0x5c, 0x38, 0xcd, 0xac, 0xfd, 0x7a, 0x36, 0x82, 0xf6, 0xe7, 0x57, 0x4c,
|
||||||
0x44, 0x16, 0xc2, 0xf9, 0xfa, 0xe3, 0xda, 0x1e, 0x07, 0x66, 0x20, 0x97, 0x60, 0xcc, 0xbd, 0x94,
|
0x92, 0xa6, 0xc0, 0xa5, 0x79, 0x96, 0x4c, 0xe1, 0x6c, 0x50, 0x6e, 0xdd, 0xca, 0x67, 0xd7, 0xbe,
|
||||||
0x2e, 0xd6, 0xaf, 0x7b, 0xcb, 0xf1, 0x9a, 0xcd, 0x85, 0xee, 0x08, 0x9b, 0xa2, 0x4d, 0xf3, 0xca,
|
0x80, 0xe4, 0x8f, 0x1c, 0xa5, 0x44, 0x16, 0x12, 0xc3, 0xf5, 0xc7, 0xb5, 0xdd, 0x12, 0x4c, 0x53,
|
||||||
0x75, 0xdf, 0xf8, 0x09, 0xe4, 0x86, 0xa8, 0x06, 0x2e, 0x62, 0xe6, 0xf6, 0xb5, 0xae, 0x75, 0xad,
|
0x2e, 0xc1, 0xe8, 0x7d, 0x29, 0x5d, 0xd1, 0x5f, 0xf7, 0x96, 0xe3, 0x35, 0x9b, 0x0b, 0x7d, 0x16,
|
||||||
0x2f, 0xb8, 0x3e, 0x45, 0x8d, 0x4f, 0xe3, 0xf1, 0x86, 0x7b, 0xad, 0x6b, 0x68, 0xad, 0xc8, 0xdc,
|
0xb6, 0x57, 0x9b, 0x26, 0x9f, 0xeb, 0x7e, 0xea, 0x27, 0x90, 0x65, 0xa2, 0x1a, 0xb8, 0x48, 0x7a,
|
||||||
0xe5, 0x1d, 0xd9, 0x7c, 0xe7, 0x76, 0x7d, 0x01, 0x28, 0xfa, 0xc6, 0x0e, 0xd9, 0x42, 0xc5, 0x9d,
|
0x03, 0xb0, 0xd6, 0xb5, 0xae, 0xcd, 0x55, 0xd9, 0xa7, 0xa8, 0xf1, 0x69, 0x3c, 0xde, 0x70, 0x43,
|
||||||
0xe7, 0xf6, 0x38, 0x99, 0xbb, 0x7b, 0xcb, 0x80, 0x9b, 0xaf, 0x26, 0x9e, 0x59, 0x85, 0x5e, 0x9c,
|
0x76, 0x0d, 0x4d, 0x1a, 0x99, 0xbb, 0x06, 0x24, 0x9b, 0x6f, 0xef, 0xae, 0x2f, 0x00, 0xc5, 0xdc,
|
||||||
0x53, 0xa0, 0x9d, 0x72, 0x49, 0xbd, 0xa4, 0xff, 0xd6, 0xab, 0x21, 0xec, 0xa7, 0xd0, 0xf7, 0x57,
|
0xfd, 0x21, 0x5b, 0xa8, 0xb8, 0xf3, 0xdc, 0x1e, 0x27, 0x73, 0xb7, 0x78, 0x19, 0x70, 0xf3, 0xd5,
|
||||||
0xb7, 0x07, 0x39, 0xb6, 0xb5, 0x06, 0xfd, 0x60, 0x33, 0xfa, 0x0c, 0x3b, 0x4f, 0xe2, 0x7d, 0x7d,
|
0xec, 0x34, 0xab, 0xf5, 0x8b, 0x13, 0x0f, 0x34, 0x66, 0x2e, 0xa9, 0x97, 0xf4, 0xdf, 0x7a, 0x35,
|
||||||
0x65, 0x87, 0xae, 0x16, 0xa7, 0x72, 0x1a, 0xf0, 0xe8, 0x21, 0x4f, 0x0b, 0x22, 0x9a, 0x73, 0x5f,
|
0xce, 0xfd, 0x14, 0xfa, 0xfe, 0xea, 0x46, 0x23, 0xc7, 0xb6, 0xd6, 0xa0, 0x1f, 0x6c, 0x46, 0x9f,
|
||||||
0x50, 0xf5, 0x18, 0x3f, 0x33, 0xaa, 0x29, 0x14, 0x69, 0x49, 0x1f, 0xb3, 0x2b, 0x1f, 0xfc, 0x24,
|
0x61, 0xe7, 0xe5, 0xa0, 0x6f, 0x2e, 0xff, 0xd0, 0xd5, 0xe2, 0x44, 0x4d, 0x03, 0x1e, 0x3d, 0xe4,
|
||||||
0x5e, 0xe4, 0x65, 0xab, 0xf2, 0x04, 0x56, 0xcf, 0x1a, 0x9f, 0x3c, 0xd9, 0x47, 0x93, 0x6a, 0xae,
|
0x09, 0x46, 0x44, 0x73, 0xee, 0x0b, 0xaa, 0x1e, 0xe3, 0x07, 0x4b, 0x3d, 0x85, 0x72, 0xaf, 0xe8,
|
||||||
0x78, 0xe8, 0x27, 0x55, 0x8a, 0x1e, 0x04, 0xe3, 0x66, 0x54, 0x30, 0xc7, 0xe3, 0xd9, 0xd0, 0x66,
|
0x63, 0x76, 0x79, 0x84, 0x1f, 0xd7, 0x8b, 0x0c, 0x6f, 0x55, 0x9e, 0xc0, 0xea, 0x59, 0x0b, 0x95,
|
||||||
0x82, 0x01, 0xe8, 0xea, 0x88, 0xc4, 0x0f, 0x8d, 0x00, 0x59, 0x34, 0x3c, 0x07, 0xee, 0x90, 0x25,
|
0x97, 0x8d, 0x68, 0x52, 0xcd, 0x15, 0x0f, 0x9d, 0xa9, 0x4e, 0xd0, 0x83, 0x60, 0x70, 0x8d, 0x0a,
|
||||||
0x50, 0x64, 0x74, 0xd8, 0x9f, 0xd3, 0xd4, 0x27, 0x09, 0x34, 0x5f, 0xe5, 0xeb, 0x97, 0xf3, 0xee,
|
0xe6, 0x78, 0x3c, 0x1b, 0xff, 0xd2, 0x60, 0x00, 0xba, 0x26, 0x22, 0xf1, 0x93, 0x25, 0x40, 0x16,
|
||||||
0xab, 0xb1, 0xb0, 0xd5, 0x6a, 0x63, 0xee, 0xc4, 0x3f, 0xcd, 0xe6, 0xca, 0x91, 0xef, 0xa0, 0x09,
|
0xad, 0xd3, 0x81, 0x3b, 0x64, 0x12, 0xca, 0x95, 0x09, 0xfb, 0x73, 0x9a, 0xf8, 0x44, 0x42, 0x1b,
|
||||||
0xd9, 0x1d, 0x7f, 0x57, 0xc3, 0x1c, 0x1e, 0x35, 0x61, 0x50, 0xc3, 0xdf, 0x66, 0x73, 0xe5, 0x80,
|
0x57, 0xbe, 0xc8, 0x39, 0xef, 0xbe, 0x1a, 0x30, 0x5b, 0xad, 0x36, 0x66, 0x61, 0xfc, 0xd3, 0x6c,
|
||||||
0x66, 0x62, 0x05, 0x7f, 0x57, 0x13, 0x6a, 0xbf, 0x3d, 0x42, 0x18, 0xf8, 0x5d, 0x43, 0xe8, 0xdd,
|
0xae, 0x1c, 0x1e, 0x0f, 0x9a, 0x50, 0x27, 0xf0, 0x77, 0x35, 0xcc, 0xe1, 0x51, 0x13, 0x46, 0x3e,
|
||||||
0x7e, 0x0b, 0x06, 0x2d, 0xfc, 0x5d, 0x4d, 0xa8, 0xd5, 0xd4, 0xa7, 0xe9, 0x3f, 0x6b, 0x48, 0xb5,
|
0xfc, 0x6d, 0x36, 0x57, 0x8e, 0x7a, 0x69, 0xac, 0xe0, 0xef, 0x6a, 0x42, 0xed, 0xb7, 0x47, 0x08,
|
||||||
0x0c, 0x53, 0xad, 0x32, 0x57, 0x0b, 0xf3, 0x18, 0x24, 0xaf, 0xff, 0x30, 0x16, 0x63, 0x1b, 0x66,
|
0x03, 0xbf, 0x6b, 0x08, 0xbd, 0xdb, 0x6f, 0xc1, 0xc8, 0x86, 0xbf, 0xab, 0x09, 0xb5, 0x9a, 0xe6,
|
||||||
0x54, 0x85, 0x99, 0x1d, 0xcb, 0x73, 0x2f, 0x8c, 0x13, 0xf1, 0x58, 0x27, 0x43, 0x01, 0x33, 0xc8,
|
0x34, 0xf3, 0x67, 0x0d, 0xa9, 0x56, 0xca, 0x54, 0xab, 0xcc, 0xd5, 0xc2, 0x64, 0x07, 0xc9, 0xeb,
|
||||||
0x48, 0xd0, 0xc4, 0x37, 0x1d, 0x21, 0x26, 0xcb, 0x2c, 0x31, 0x92, 0x29, 0x04, 0xa5, 0xb6, 0x47,
|
0x3f, 0x8c, 0xc5, 0xd8, 0xd0, 0xa5, 0xaa, 0xc2, 0xcc, 0x8e, 0x85, 0xbe, 0x17, 0xc6, 0x52, 0x3c,
|
||||||
0x71, 0xf1, 0x88, 0xc5, 0x6a, 0xed, 0xa7, 0xd7, 0x9f, 0xf9, 0x8a, 0x6a, 0xcd, 0x7d, 0xa1, 0xc5,
|
0xd6, 0xc9, 0x50, 0xc0, 0x34, 0x33, 0x12, 0x54, 0xfa, 0x69, 0x6f, 0x89, 0xc9, 0x32, 0x4b, 0x8c,
|
||||||
0x2f, 0xc5, 0xf0, 0x07, 0xbf, 0x26, 0xe3, 0xa7, 0x65, 0xfc, 0x3f, 0x59, 0xff, 0x03, 0x7a, 0xb5,
|
0x64, 0x0a, 0x41, 0x69, 0xec, 0x51, 0x5c, 0x61, 0x62, 0xd9, 0x5b, 0xfb, 0x11, 0xf7, 0x67, 0xbe,
|
||||||
0xbc, 0x3e, 0xa3, 0x25, 0x00, 0x00
|
0xc7, 0x5a, 0x73, 0xdf, 0x7a, 0xf1, 0x9b, 0x33, 0xfc, 0xc1, 0xef, 0xd2, 0xf8, 0x91, 0x1a, 0xff,
|
||||||
|
0x77, 0xd7, 0xff, 0x00, 0x3d, 0x95, 0x0f, 0xad, 0xed, 0x25, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
3928
wled00/html_ui.h
3928
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@ -130,36 +130,43 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
JsonArray colarr = elem["col"];
|
JsonArray colarr = elem["col"];
|
||||||
if (!colarr.isNull())
|
if (!colarr.isNull())
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < 3; i++)
|
if (seg.getLightCapabilities() & 3) {
|
||||||
{
|
// segment has RGB or White
|
||||||
int rgbw[] = {0,0,0,0};
|
for (size_t i = 0; i < 3; i++)
|
||||||
bool colValid = false;
|
{
|
||||||
JsonArray colX = colarr[i];
|
int rgbw[] = {0,0,0,0};
|
||||||
if (colX.isNull()) {
|
bool colValid = false;
|
||||||
byte brgbw[] = {0,0,0,0};
|
JsonArray colX = colarr[i];
|
||||||
const char* hexCol = colarr[i];
|
if (colX.isNull()) {
|
||||||
if (hexCol == nullptr) { //Kelvin color temperature (or invalid), e.g 2400
|
byte brgbw[] = {0,0,0,0};
|
||||||
int kelvin = colarr[i] | -1;
|
const char* hexCol = colarr[i];
|
||||||
if (kelvin < 0) continue;
|
if (hexCol == nullptr) { //Kelvin color temperature (or invalid), e.g 2400
|
||||||
if (kelvin == 0) seg.setColor(i, 0);
|
int kelvin = colarr[i] | -1;
|
||||||
if (kelvin > 0) colorKtoRGB(kelvin, brgbw);
|
if (kelvin < 0) continue;
|
||||||
|
if (kelvin == 0) seg.setColor(i, 0);
|
||||||
|
if (kelvin > 0) colorKtoRGB(kelvin, brgbw);
|
||||||
|
colValid = true;
|
||||||
|
} else { //HEX string, e.g. "FFAA00"
|
||||||
|
colValid = colorFromHexString(brgbw, hexCol);
|
||||||
|
}
|
||||||
|
for (size_t c = 0; c < 4; c++) rgbw[c] = brgbw[c];
|
||||||
|
} else { //Array of ints (RGB or RGBW color), e.g. [255,160,0]
|
||||||
|
byte sz = colX.size();
|
||||||
|
if (sz == 0) continue; //do nothing on empty array
|
||||||
|
|
||||||
|
copyArray(colX, rgbw, 4);
|
||||||
colValid = true;
|
colValid = true;
|
||||||
} else { //HEX string, e.g. "FFAA00"
|
|
||||||
colValid = colorFromHexString(brgbw, hexCol);
|
|
||||||
}
|
}
|
||||||
for (size_t c = 0; c < 4; c++) rgbw[c] = brgbw[c];
|
|
||||||
} else { //Array of ints (RGB or RGBW color), e.g. [255,160,0]
|
|
||||||
byte sz = colX.size();
|
|
||||||
if (sz == 0) continue; //do nothing on empty array
|
|
||||||
|
|
||||||
copyArray(colX, rgbw, 4);
|
if (!colValid) continue;
|
||||||
colValid = true;
|
|
||||||
|
seg.setColor(i, RGBW32(rgbw[0],rgbw[1],rgbw[2],rgbw[3]));
|
||||||
|
if (seg.mode == FX_MODE_STATIC) strip.trigger(); //instant refresh
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
if (!colValid) continue;
|
// non RGB & non White segment (usually On/Off bus)
|
||||||
|
seg.setColor(0, ULTRAWHITE);
|
||||||
seg.setColor(i, RGBW32(rgbw[0],rgbw[1],rgbw[2],rgbw[3]));
|
seg.setColor(1, BLACK);
|
||||||
if (seg.mode == FX_MODE_STATIC) strip.trigger(); //instant refresh
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -202,7 +209,9 @@ bool deserializeSegment(JsonObject elem, byte it, byte presetId)
|
|||||||
getVal(elem["ix"], &seg.intensity);
|
getVal(elem["ix"], &seg.intensity);
|
||||||
|
|
||||||
uint8_t pal = seg.palette;
|
uint8_t pal = seg.palette;
|
||||||
if (getVal(elem["pal"], &pal)) seg.setPalette(pal);
|
if (seg.getLightCapabilities() & 1) { // ignore palette for White and On/Off segments
|
||||||
|
if (getVal(elem["pal"], &pal)) seg.setPalette(pal);
|
||||||
|
}
|
||||||
|
|
||||||
getVal(elem["c1"], &seg.custom1);
|
getVal(elem["c1"], &seg.custom1);
|
||||||
getVal(elem["c2"], &seg.custom2);
|
getVal(elem["c2"], &seg.custom2);
|
||||||
@ -713,7 +722,7 @@ void serializeInfo(JsonObject root)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
root[F("freeheap")] = ESP.getFreeHeap();
|
root[F("freeheap")] = ESP.getFreeHeap();
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM)
|
||||||
if (psramFound()) root[F("psram")] = ESP.getFreePsram();
|
if (psramFound()) root[F("psram")] = ESP.getFreePsram();
|
||||||
#endif
|
#endif
|
||||||
root[F("uptime")] = millis()/1000 + rolloverMillis*4294967;
|
root[F("uptime")] = millis()/1000 + rolloverMillis*4294967;
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
|
|
||||||
void parseMQTTBriPayload(char* payload)
|
void parseMQTTBriPayload(char* payload)
|
||||||
{
|
{
|
||||||
if (strstr(payload, "ON") || strstr(payload, "on") || strstr(payload, "true")) {bri = briLast; stateUpdated(1);}
|
if (strstr(payload, "ON") || strstr(payload, "on") || strstr(payload, "true")) {bri = briLast; stateUpdated(CALL_MODE_DIRECT_CHANGE);}
|
||||||
else if (strstr(payload, "T" ) || strstr(payload, "t" )) {toggleOnOff(); stateUpdated(1);}
|
else if (strstr(payload, "T" ) || strstr(payload, "t" )) {toggleOnOff(); stateUpdated(CALL_MODE_DIRECT_CHANGE);}
|
||||||
else {
|
else {
|
||||||
uint8_t in = strtoul(payload, NULL, 10);
|
uint8_t in = strtoul(payload, NULL, 10);
|
||||||
if (in == 0 && bri > 0) briLast = bri;
|
if (in == 0 && bri > 0) briLast = bri;
|
||||||
@ -142,22 +142,22 @@ void publishMqtt()
|
|||||||
sprintf_P(s, PSTR("%u"), bri);
|
sprintf_P(s, PSTR("%u"), bri);
|
||||||
strlcpy(subuf, mqttDeviceTopic, 33);
|
strlcpy(subuf, mqttDeviceTopic, 33);
|
||||||
strcat_P(subuf, PSTR("/g"));
|
strcat_P(subuf, PSTR("/g"));
|
||||||
mqtt->publish(subuf, 0, true, s); // retain message
|
mqtt->publish(subuf, 0, retainMqttMsg, s); // optionally retain message (#2263)
|
||||||
|
|
||||||
sprintf_P(s, PSTR("#%06X"), (col[3] << 24) | (col[0] << 16) | (col[1] << 8) | (col[2]));
|
sprintf_P(s, PSTR("#%06X"), (col[3] << 24) | (col[0] << 16) | (col[1] << 8) | (col[2]));
|
||||||
strlcpy(subuf, mqttDeviceTopic, 33);
|
strlcpy(subuf, mqttDeviceTopic, 33);
|
||||||
strcat_P(subuf, PSTR("/c"));
|
strcat_P(subuf, PSTR("/c"));
|
||||||
mqtt->publish(subuf, 0, true, s); // retain message
|
mqtt->publish(subuf, 0, retainMqttMsg, s); // optionally retain message (#2263)
|
||||||
|
|
||||||
strlcpy(subuf, mqttDeviceTopic, 33);
|
strlcpy(subuf, mqttDeviceTopic, 33);
|
||||||
strcat_P(subuf, PSTR("/status"));
|
strcat_P(subuf, PSTR("/status"));
|
||||||
mqtt->publish(subuf, 0, true, "online"); // retain message for a LWT
|
mqtt->publish(subuf, 0, true, "online"); // retain message for a LWT
|
||||||
|
|
||||||
char apires[1024]; // allocating 1024 bytes from stack can be risky
|
char apires[1024]; // allocating 1024 bytes from stack can be risky
|
||||||
XML_response(nullptr, apires);
|
XML_response(nullptr, apires);
|
||||||
strlcpy(subuf, mqttDeviceTopic, 33);
|
strlcpy(subuf, mqttDeviceTopic, 33);
|
||||||
strcat_P(subuf, PSTR("/v"));
|
strcat_P(subuf, PSTR("/v"));
|
||||||
mqtt->publish(subuf, 0, false, apires); // do not retain message
|
mqtt->publish(subuf, 0, retainMqttMsg, apires); // optionally retain message (#2263)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,16 +152,13 @@ int getSignalQuality(int rssi)
|
|||||||
//handle Ethernet connection event
|
//handle Ethernet connection event
|
||||||
void WiFiEvent(WiFiEvent_t event)
|
void WiFiEvent(WiFiEvent_t event)
|
||||||
{
|
{
|
||||||
#ifdef WLED_USE_ETHERNET
|
|
||||||
char hostname[25];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
switch (event) {
|
switch (event) {
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_ETHERNET)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_ETHERNET)
|
||||||
case SYSTEM_EVENT_ETH_START:
|
case SYSTEM_EVENT_ETH_START:
|
||||||
DEBUG_PRINTLN(F("ETH Started"));
|
DEBUG_PRINTLN(F("ETH Started"));
|
||||||
break;
|
break;
|
||||||
case SYSTEM_EVENT_ETH_CONNECTED:
|
case SYSTEM_EVENT_ETH_CONNECTED:
|
||||||
|
{
|
||||||
DEBUG_PRINTLN(F("ETH Connected"));
|
DEBUG_PRINTLN(F("ETH Connected"));
|
||||||
if (!apActive) {
|
if (!apActive) {
|
||||||
WiFi.disconnect(true);
|
WiFi.disconnect(true);
|
||||||
@ -172,10 +169,12 @@ void WiFiEvent(WiFiEvent_t event)
|
|||||||
ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE);
|
ETH.config(INADDR_NONE, INADDR_NONE, INADDR_NONE);
|
||||||
}
|
}
|
||||||
// convert the "serverDescription" into a valid DNS hostname (alphanumeric)
|
// convert the "serverDescription" into a valid DNS hostname (alphanumeric)
|
||||||
|
char hostname[64];
|
||||||
prepareHostname(hostname);
|
prepareHostname(hostname);
|
||||||
ETH.setHostname(hostname);
|
ETH.setHostname(hostname);
|
||||||
showWelcomePage = false;
|
showWelcomePage = false;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
case SYSTEM_EVENT_ETH_DISCONNECTED:
|
||||||
DEBUG_PRINTLN(F("ETH Disconnected"));
|
DEBUG_PRINTLN(F("ETH Disconnected"));
|
||||||
// This doesn't really affect ethernet per se,
|
// This doesn't really affect ethernet per se,
|
||||||
|
@ -52,7 +52,7 @@ static void doSaveState() {
|
|||||||
size_t len = measureJson(*fileDoc) + 1;
|
size_t len = measureJson(*fileDoc) + 1;
|
||||||
DEBUG_PRINTLN(len);
|
DEBUG_PRINTLN(len);
|
||||||
// if possible use SPI RAM on ESP32
|
// if possible use SPI RAM on ESP32
|
||||||
#ifdef WLED_USE_PSRAM
|
#if defined(BOARD_HAS_PSRAM) && defined(WLED_USE_PSRAM)
|
||||||
if (psramFound())
|
if (psramFound())
|
||||||
tmpRAMbuffer = (char*) ps_malloc(len);
|
tmpRAMbuffer = (char*) ps_malloc(len);
|
||||||
else
|
else
|
||||||
|
@ -350,6 +350,7 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage)
|
|||||||
strlcpy(mqttDeviceTopic, request->arg(F("MD")).c_str(), 33);
|
strlcpy(mqttDeviceTopic, request->arg(F("MD")).c_str(), 33);
|
||||||
strlcpy(mqttGroupTopic, request->arg(F("MG")).c_str(), 33);
|
strlcpy(mqttGroupTopic, request->arg(F("MG")).c_str(), 33);
|
||||||
buttonPublishMqtt = request->hasArg(F("BM"));
|
buttonPublishMqtt = request->hasArg(F("BM"));
|
||||||
|
retainMqttMsg = request->hasArg(F("RT"));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_HUESYNC
|
#ifndef WLED_DISABLE_HUESYNC
|
||||||
|
@ -188,12 +188,11 @@ void WLED::loop()
|
|||||||
DEBUG_PRINT(F("Runtime: ")); DEBUG_PRINTLN(millis());
|
DEBUG_PRINT(F("Runtime: ")); DEBUG_PRINTLN(millis());
|
||||||
DEBUG_PRINT(F("Unix time: ")); toki.printTime(toki.getTime());
|
DEBUG_PRINT(F("Unix time: ")); toki.printTime(toki.getTime());
|
||||||
DEBUG_PRINT(F("Free heap: ")); DEBUG_PRINTLN(ESP.getFreeHeap());
|
DEBUG_PRINT(F("Free heap: ")); DEBUG_PRINTLN(ESP.getFreeHeap());
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM)
|
||||||
if (psramFound()) {
|
if (psramFound()) {
|
||||||
DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB");
|
DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB");
|
||||||
DEBUG_PRINT(F("Free PSRAM: ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB");
|
DEBUG_PRINT(F("Free PSRAM: ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB");
|
||||||
} else
|
}
|
||||||
DEBUG_PRINTLN(F("No PSRAM"));
|
|
||||||
#endif
|
#endif
|
||||||
DEBUG_PRINT(F("Wifi state: ")); DEBUG_PRINTLN(WiFi.status());
|
DEBUG_PRINT(F("Wifi state: ")); DEBUG_PRINTLN(WiFi.status());
|
||||||
|
|
||||||
@ -321,25 +320,33 @@ void WLED::setup()
|
|||||||
#endif
|
#endif
|
||||||
DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap());
|
DEBUG_PRINT(F("heap ")); DEBUG_PRINTLN(ESP.getFreeHeap());
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM)
|
||||||
|
#if defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
|
// S3: reserve GPIO 33-37 for "octal" PSRAM
|
||||||
|
managed_pin_type pins[] = { {33, true}, {34, true}, {35, true}, {36, true}, {37, true} };
|
||||||
|
pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM);
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
|
||||||
|
// S2: reserve GPIO 26-32 for PSRAM (may fail due to isPinOk() but that will also prevent other allocation)
|
||||||
|
managed_pin_type pins[] = { {26, true}, {27, true}, {28, true}, {29, true}, {30, true}, {31, true}, {32, true} };
|
||||||
|
pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM);
|
||||||
|
#elif defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
|
// C3: reserve GPIO 12-17 for PSRAM (may fail due to isPinOk() but that will also prevent other allocation)
|
||||||
|
managed_pin_type pins[] = { {12, true}, {13, true}, {14, true}, {15, true}, {16, true}, {17, true} };
|
||||||
|
pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM);
|
||||||
|
#else
|
||||||
|
// GPIO16/GPIO17 reserved for SPI RAM
|
||||||
|
managed_pin_type pins[] = { {16, true}, {17, true} };
|
||||||
|
pinManager.allocateMultiplePins(pins, sizeof(pins)/sizeof(managed_pin_type), PinOwner::SPI_RAM);
|
||||||
|
#endif
|
||||||
|
#if defined(WLED_USE_PSRAM)
|
||||||
if (psramFound()) {
|
if (psramFound()) {
|
||||||
#if !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB");
|
||||||
// GPIO16/GPIO17 reserved for SPI RAM
|
DEBUG_PRINT(F("Free PSRAM : ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB");
|
||||||
managed_pin_type pins[2] = { {16, true}, {17, true} };
|
}
|
||||||
pinManager.allocateMultiplePins(pins, 2, PinOwner::SPI_RAM);
|
#else
|
||||||
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
DEBUG_PRINTLN(F("PSRAM not used."));
|
||||||
// S3: add GPIO 33-37 for "octal" PSRAM
|
#endif
|
||||||
managed_pin_type pins[5] = { {33, true}, {34, true}, {35, true}, {36, true}, {37, true} };
|
|
||||||
pinManager.allocateMultiplePins(pins, 5, PinOwner::SPI_RAM);
|
|
||||||
#endif
|
#endif
|
||||||
DEBUG_PRINT(F("Total PSRAM: ")); DEBUG_PRINT(ESP.getPsramSize()/1024); DEBUG_PRINTLN("kB");
|
|
||||||
DEBUG_PRINT(F("Free PSRAM : ")); DEBUG_PRINT(ESP.getFreePsram()/1024); DEBUG_PRINTLN("kB");
|
|
||||||
} else
|
|
||||||
DEBUG_PRINTLN(F("No PSRAM found."));
|
|
||||||
#endif
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) && !defined(WLED_USE_PSRAM)
|
|
||||||
DEBUG_PRINTLN(F("PSRAM not used."));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//DEBUG_PRINT(F("LEDs inited. heap usage ~"));
|
//DEBUG_PRINT(F("LEDs inited. heap usage ~"));
|
||||||
//DEBUG_PRINTLN(heapPreAlloc - ESP.getFreeHeap());
|
//DEBUG_PRINTLN(heapPreAlloc - ESP.getFreeHeap());
|
||||||
@ -429,8 +436,6 @@ void WLED::setup()
|
|||||||
if (Serial.available() > 0 && Serial.peek() == 'I') handleImprovPacket();
|
if (Serial.available() > 0 && Serial.peek() == 'I') handleImprovPacket();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
strip.service(); // why?
|
|
||||||
|
|
||||||
#ifndef WLED_DISABLE_OTA
|
#ifndef WLED_DISABLE_OTA
|
||||||
if (aOtaEnabled) {
|
if (aOtaEnabled) {
|
||||||
ArduinoOTA.onStart([]() {
|
ArduinoOTA.onStart([]() {
|
||||||
@ -480,7 +485,10 @@ void WLED::beginStrip()
|
|||||||
if (briS > 0) bri = briS;
|
if (briS > 0) bri = briS;
|
||||||
else if (bri == 0) bri = 128;
|
else if (bri == 0) bri = 128;
|
||||||
} else {
|
} else {
|
||||||
|
// fix for #3196
|
||||||
briLast = briS; bri = 0;
|
briLast = briS; bri = 0;
|
||||||
|
strip.fill(BLACK);
|
||||||
|
strip.show();
|
||||||
}
|
}
|
||||||
if (bootPreset > 0) {
|
if (bootPreset > 0) {
|
||||||
applyPreset(bootPreset, CALL_MODE_INIT);
|
applyPreset(bootPreset, CALL_MODE_INIT);
|
||||||
@ -591,7 +599,7 @@ bool WLED::initEthernet()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
For LAN8720 the most correct way is to perform clean reset each time before init
|
For LAN8720 the most correct way is to perform clean reset each time before init
|
||||||
applying LOW to power or nRST pin for at least 100 us (please refer to datasheet, page 59)
|
applying LOW to power or nRST pin for at least 100 us (please refer to datasheet, page 59)
|
||||||
ESP_IDF > V4 implements it (150 us, lan87xx_reset_hw(esp_eth_phy_t *phy) function in
|
ESP_IDF > V4 implements it (150 us, lan87xx_reset_hw(esp_eth_phy_t *phy) function in
|
||||||
@ -718,8 +726,6 @@ void WLED::initInterfaces()
|
|||||||
ArduinoOTA.begin();
|
ArduinoOTA.begin();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
strip.service();
|
|
||||||
|
|
||||||
// Set up mDNS responder:
|
// Set up mDNS responder:
|
||||||
if (strlen(cmDNS) > 0) {
|
if (strlen(cmDNS) > 0) {
|
||||||
// "end" must be called before "begin" is called a 2nd time
|
// "end" must be called before "begin" is called a 2nd time
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// version code in format yymmddb (b = daily build)
|
// version code in format yymmddb (b = daily build)
|
||||||
#define VERSION 2305090
|
#define VERSION 2305280
|
||||||
|
|
||||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||||
//#define WLED_USE_MY_CONFIG
|
//#define WLED_USE_MY_CONFIG
|
||||||
@ -145,7 +145,7 @@
|
|||||||
// The following is a construct to enable code to compile without it.
|
// The following is a construct to enable code to compile without it.
|
||||||
// There is a code thet will still not use PSRAM though:
|
// There is a code thet will still not use PSRAM though:
|
||||||
// AsyncJsonResponse is a derived class that implements DynamicJsonDocument (AsyncJson-v6.h)
|
// AsyncJsonResponse is a derived class that implements DynamicJsonDocument (AsyncJson-v6.h)
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM) && defined(WLED_USE_PSRAM)
|
||||||
struct PSRAM_Allocator {
|
struct PSRAM_Allocator {
|
||||||
void* allocate(size_t size) {
|
void* allocate(size_t size) {
|
||||||
if (psramFound()) return ps_malloc(size); // use PSRAM if it exists
|
if (psramFound()) return ps_malloc(size); // use PSRAM if it exists
|
||||||
@ -421,6 +421,7 @@ WLED_GLOBAL char mqttUser[41] _INIT(""); // optional: username
|
|||||||
WLED_GLOBAL char mqttPass[65] _INIT(""); // optional: password for MQTT auth
|
WLED_GLOBAL char mqttPass[65] _INIT(""); // optional: password for MQTT auth
|
||||||
WLED_GLOBAL char mqttClientID[41] _INIT(""); // override the client ID
|
WLED_GLOBAL char mqttClientID[41] _INIT(""); // override the client ID
|
||||||
WLED_GLOBAL uint16_t mqttPort _INIT(1883);
|
WLED_GLOBAL uint16_t mqttPort _INIT(1883);
|
||||||
|
WLED_GLOBAL bool retainMqttMsg _INIT(false); // retain brightness and color
|
||||||
#define WLED_MQTT_CONNECTED (mqtt != nullptr && mqtt->connected())
|
#define WLED_MQTT_CONNECTED (mqtt != nullptr && mqtt->connected())
|
||||||
#else
|
#else
|
||||||
#define WLED_MQTT_CONNECTED false
|
#define WLED_MQTT_CONNECTED false
|
||||||
|
@ -212,7 +212,7 @@ void appendGPIOinfo() {
|
|||||||
|
|
||||||
//Note: Using pin 3 (RX) disables Adalight / Serial JSON
|
//Note: Using pin 3 (RX) disables Adalight / Serial JSON
|
||||||
|
|
||||||
#if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM)
|
#if defined(ARDUINO_ARCH_ESP32) && defined(BOARD_HAS_PSRAM)
|
||||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||||
if (psramFound()) oappend(SET_F(",16,17")); // GPIO16 & GPIO17 reserved for SPI RAM on ESP32 (not on S2, S3 or C3)
|
if (psramFound()) oappend(SET_F(",16,17")); // GPIO16 & GPIO17 reserved for SPI RAM on ESP32 (not on S2, S3 or C3)
|
||||||
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||||
@ -561,6 +561,7 @@ void getSettingsJS(byte subPage, char* dest)
|
|||||||
sappends('s',"MD",mqttDeviceTopic);
|
sappends('s',"MD",mqttDeviceTopic);
|
||||||
sappends('s',SET_F("MG"),mqttGroupTopic);
|
sappends('s',SET_F("MG"),mqttGroupTopic);
|
||||||
sappend('c',SET_F("BM"),buttonPublishMqtt);
|
sappend('c',SET_F("BM"),buttonPublishMqtt);
|
||||||
|
sappend('c',SET_F("RT"),retainMqttMsg);
|
||||||
#else
|
#else
|
||||||
oappend(SET_F("toggle('MQTT');")); // hide MQTT settings
|
oappend(SET_F("toggle('MQTT');")); // hide MQTT settings
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user