Compare commits

...

13 Commits

Author SHA1 Message Date
Will Tatam
b2dac4ba38 fix ESPAsyncWebServer version reference 2025-12-14 14:03:26 +00:00
Blaz Kristan
2f6f0d2f3e WLED 0.14.4 2024-05-18 15:17:08 +02:00
Blaz Kristan
2aec21a6d0 Palette loading optimisation
- fixes #3978
- FX: Firenoise can use selected palette
2024-05-16 06:23:15 +02:00
Frank
ecc9443677 (0_14 branch only) adding compatibility for building with upstream arduinoFFT 2.xx
support compilation with new arduinoFFT versions 2.x
2024-05-11 14:45:42 +02:00
Blaž Kristan
197f47befe Merge pull request #3905 from w00000dy/main
Set stale lable to 'stale' and increase operations-per-run in stale.yml
2024-04-16 20:31:16 +02:00
Woody
6272969983 Set stale-pr-label & stale-issue-label to 'stale' in stale.yml
Hopefully this fixes the error messages that were thrown the last time the action was executed
2024-04-16 15:07:12 +02:00
Woody
b2e68db380 Increase operations-per-run in stale.yml again 2024-04-15 22:56:38 +02:00
Blaž Kristan
80ebcb2c28 Merge pull request #3901 from w00000dy/main
Increase operations-per-run in stale.yml
2024-04-14 15:47:31 +02:00
Woody
cd928bc586 Increase operations-per-run in stale.yml
Because of this we don't need to run this action 3 times a day
2024-04-14 13:14:03 +02:00
dependabot[bot]
d2b4d25317 Bump idna from 3.4 to 3.7 (#3895)
Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-13 19:38:03 +02:00
Woody
a418cd2a2a Activate stale (#3898)
* Update stale.yml

Update pr text
Schedule action 3 times a day

* Delete old .github/stale.yml

* Set exempt-all-milestones to true in stale.yml
2024-04-13 19:37:49 +02:00
Blaž Kristan
8358272b9a Merge pull request #3876 from w00000dy/main
Create new stale.yml
2024-04-10 19:42:52 +02:00
Woody
02405b4856 Create stale.yml 2024-04-03 12:32:18 +02:00
16 changed files with 276 additions and 321 deletions

20
.github/stale.yml vendored
View File

@@ -1,20 +0,0 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 120
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- keep
- enhancement
- confirmed
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
Hey! This issue has been open for quite some time without any new comments now.
It will be closed automatically in a week if no further activity occurs.
Thank you for using WLED!
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

30
.github/workflows/stale.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: 'Close stale issues and PRs'
on:
schedule:
- cron: '0 12 * * *'
workflow_dispatch:
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-stale: 120
days-before-close: 7
stale-issue-label: 'stale'
stale-pr-label: 'stale'
exempt-issue-labels: 'pinned,keep,enhancement,confirmed'
exempt-pr-labels: 'pinned,keep,enhancement,confirmed'
exempt-all-milestones: true
operations-per-run: 1000
stale-issue-message: >
Hey! This issue has been open for quite some time without any new comments now.
It will be closed automatically in a week if no further activity occurs.
Thank you for using WLED! ✨
stale-pr-message: >
Hey! This pull request has been open for quite some time without any new comments now.
It will be closed automatically in a week if no further activity occurs.
Thank you for contributing to WLED! ❤️

View File

@@ -1,5 +1,9 @@
## WLED changelog ## WLED changelog
#### Build 2405180
- WLED 0.14.4 release
- Fix for #3978
#### Build 2404040 #### Build 2404040
- WLED 0.14.3 release - WLED 0.14.3 release
- Fix for transition 0 (#3854, #3832, #3720) - Fix for transition 0 (#3854, #3832, #3720)

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "wled", "name": "wled",
"version": "0.14.3", "version": "0.14.4",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "wled", "name": "wled",
"version": "0.14.3", "version": "0.14.4",
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
"clean-css": "^4.2.3", "clean-css": "^4.2.3",

View File

@@ -1,6 +1,6 @@
{ {
"name": "wled", "name": "wled",
"version": "0.14.3", "version": "0.14.4",
"description": "Tools for WLED project", "description": "Tools for WLED project",
"main": "tools/cdata.js", "main": "tools/cdata.js",
"directories": { "directories": {

View File

@@ -180,7 +180,7 @@ lib_deps =
fastled/FastLED @ 3.6.0 fastled/FastLED @ 3.6.0
IRremoteESP8266 @ 2.8.2 IRremoteESP8266 @ 2.8.2
makuna/NeoPixelBus @ 2.7.5 makuna/NeoPixelBus @ 2.7.5
https://github.com/Aircoookie/ESPAsyncWebServer.git @ 2.2.1 https://github.com/Aircoookie/ESPAsyncWebServer.git#v2.2.1
#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 compatible OLED display uncomment following #For compatible OLED display uncomment following

View File

@@ -1,65 +0,0 @@
# Example PlatformIO Project Configuration Override
# ------------------------------------------------------------------------------
# Copy to platformio_override.ini to activate overrides
# ------------------------------------------------------------------------------
# Please visit documentation: https://docs.platformio.org/page/projectconf.html
[platformio]
default_envs = WLED_tasmota_1M
[env:WLED_tasmota_1M]
board = esp01_1m
platform = ${common.platform_wled_default}
platform_packages = ${common.platform_packages}
board_build.ldscript = ${common.ldscript_1m128k}
lib_deps = ${esp8266.lib_deps}
build_unflags = ${common.build_unflags}
build_flags = ${common.build_flags_esp8266}
; *********************************************************************
; *** Use custom settings from file my_config.h
-DWLED_USE_MY_CONFIG
; *********************************************************************
;
;
; *** To use the below defines/overrides, copy and paste each onto it's own line just below build_flags in the section above.
;
; disable specific features
; -D WLED_DISABLE_OTA
; -D WLED_DISABLE_ALEXA
; -D WLED_DISABLE_HUESYNC
; -D WLED_DISABLE_INFRARED
; -D WLED_DISABLE_WEBSOCKETS
; PIN defines - uncomment and change, if needed:
; -D LEDPIN=2
; -D BTNPIN=0
; -D TOUCHPIN=T0
; -D IRPIN=4
; -D RLYPIN=12
; -D RLYMDE=1
; digital LED strip types - uncomment only one ! - this will disable WS281x / SK681x support
; -D USE_APA102
; -D USE_WS2801
; -D USE_LPD8806
; PIN defines for 2 wire LEDs
-D CLKPIN=0
-D DATAPIN=2
; to drive analog LED strips (aka 5050) hardware configuration is no longer necessary
; configure the settings in the UI as follows (hard):
; for the Magic Home LED Controller use PWM pins 5,12,13,15
; for the H801 controller use PINs 15,13,12,14 (W2 = 04)
; for the BW-LT11 controller use PINs 12,4,14,5
;
; set the name of the module - make sure there is a quote-backslash-quote before the name and a backslash-quote-quote after the name
; -D SERVERNAME="\"WLED\""
;
; set the number of LEDs
; -D DEFAULT_LED_COUNT=30
;
; set milliampere limit when using ESP pin to power leds
; -D ABL_MILLIAMPS_DEFAULT=850
;
; enable IR by setting remote type
; -D IRTYPE=0 ;0 Remote disabled | 1 24-key RGB | 2 24-key with CT | 3 40-key blue | 4 40-key RGB | 5 21-key RGB | 6 6-key black | 7 9-key red | 8 JSON remote
;
; set default color order of your led strip
; -D DEFAULT_LED_COLOR_ORDER=COL_ORDER_GRB

View File

@@ -26,7 +26,7 @@ h11==0.14.0
# via # via
# uvicorn # uvicorn
# wsproto # wsproto
idna==3.4 idna==3.7
# via # via
# anyio # anyio
# requests # requests
@@ -50,6 +50,8 @@ starlette==0.23.1
# via platformio # via platformio
tabulate==0.9.0 tabulate==0.9.0
# via platformio # via platformio
typing-extensions==4.11.0
# via starlette
urllib3==1.26.18 urllib3==1.26.18
# via requests # via requests
uvicorn==0.20.0 uvicorn==0.20.0

View File

@@ -177,9 +177,6 @@ constexpr uint16_t samplesFFT_2 = 256; // meaningfull part of FFT resul
// These are the input and output vectors. Input vectors receive computed results from FFT. // These are the input and output vectors. Input vectors receive computed results from FFT.
static float vReal[samplesFFT] = {0.0f}; // FFT sample inputs / freq output - these are our raw result bins static float vReal[samplesFFT] = {0.0f}; // FFT sample inputs / freq output - these are our raw result bins
static float vImag[samplesFFT] = {0.0f}; // imaginary parts static float vImag[samplesFFT] = {0.0f}; // imaginary parts
#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT
static float windowWeighingFactors[samplesFFT] = {0.0f};
#endif
// Create FFT object // Create FFT object
#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT
@@ -198,9 +195,15 @@ static float windowWeighingFactors[samplesFFT] = {0.0f};
#include <arduinoFFT.h> #include <arduinoFFT.h>
#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT
static ArduinoFFT<float> FFT = ArduinoFFT<float>( vReal, vImag, samplesFFT, SAMPLE_RATE, windowWeighingFactors); #if defined(FFT_LIB_REV) && FFT_LIB_REV > 0x19
// arduinoFFT 2.x has a slightly different API
static ArduinoFFT<float> FFT = ArduinoFFT<float>( vReal, vImag, samplesFFT, SAMPLE_RATE, true);
#else #else
static arduinoFFT FFT = arduinoFFT(vReal, vImag, samplesFFT, SAMPLE_RATE); static float windowWeighingFactors[samplesFFT] = {0.0f}; // cache for FFT windowing factors
static ArduinoFFT<float> FFT = ArduinoFFT<float>( vReal, vImag, samplesFFT, SAMPLE_RATE, windowWeighingFactors);
#endif
#else
static arduinoFFT FFT = arduinoFFT(vReal, vImag, samplesFFT, SAMPLE_RATE);
#endif #endif
// Helper functions // Helper functions
@@ -300,7 +303,12 @@ void FFTcode(void * parameter)
#endif #endif
#ifdef UM_AUDIOREACTIVE_USE_NEW_FFT #ifdef UM_AUDIOREACTIVE_USE_NEW_FFT
#if defined(FFT_LIB_REV) && FFT_LIB_REV > 0x19
// arduinoFFT 2.x has a slightly different API
FFT.majorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant
#else
FFT.majorPeak(FFT_MajorPeak, FFT_Magnitude); // let the effects know which freq was most dominant FFT.majorPeak(FFT_MajorPeak, FFT_Magnitude); // let the effects know which freq was most dominant
#endif
#else #else
FFT.MajorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant FFT.MajorPeak(&FFT_MajorPeak, &FFT_Magnitude); // let the effects know which freq was most dominant
#endif #endif

View File

@@ -38,7 +38,7 @@ Alternatively, you can use the latest arduinoFFT development version.
ArduinoFFT `develop` library is slightly more accurate, and slightly faster than our customised library, however also needs additional 2kB RAM. ArduinoFFT `develop` library is slightly more accurate, and slightly faster than our customised library, however also needs additional 2kB RAM.
* `build_flags` = `-D USERMOD_AUDIOREACTIVE` `-D UM_AUDIOREACTIVE_USE_NEW_FFT` * `build_flags` = `-D USERMOD_AUDIOREACTIVE` `-D UM_AUDIOREACTIVE_USE_NEW_FFT`
* `lib_deps`= `https://github.com/kosme/arduinoFFT#develop @ 1.9.2` * `lib_deps`= `https://github.com/kosme/arduinoFFT#419d7b0`
## Configuration ## Configuration

View File

@@ -4863,25 +4863,25 @@ uint16_t mode_2Dfirenoise(void) { // firenoise2d. By Andrew Tuline
SEGMENT.fill(BLACK); SEGMENT.fill(BLACK);
} }
uint16_t xscale = SEGMENT.intensity*4; unsigned xscale = SEGMENT.intensity*4;
uint32_t yscale = SEGMENT.speed*8; unsigned yscale = SEGMENT.speed*8;
uint8_t indexx = 0; unsigned indexx = 0;
SEGPALETTE = CRGBPalette16( CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), CRGB(0,0,0), CRGBPalette16 pal = SEGMENT.check1 ? SEGPALETTE : CRGBPalette16(CRGB::Black, CRGB::Black, CRGB::Black, CRGB::Black,
CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::DarkOrange,
CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange, CRGB::DarkOrange,CRGB::DarkOrange, CRGB::Orange, CRGB::Orange,
CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow); CRGB::Yellow, CRGB::Orange, CRGB::Yellow, CRGB::Yellow);
for (int j=0; j < cols; j++) { for (int j=0; j < cols; j++) {
for (int i=0; i < rows; i++) { for (int i=0; i < rows; i++) {
indexx = inoise8(j*yscale*rows/255, i*xscale+millis()/4); // We're moving along our Perlin map. indexx = inoise8(j*yscale*rows/255, i*xscale+strip.now/4); // We're moving along our Perlin map.
SEGMENT.setPixelColorXY(j, i, ColorFromPalette(SEGPALETTE, min(i*(indexx)>>4, 255), i*255/cols, LINEARBLEND)); // With that value, look up the 8 bit colour palette value and assign it to the current LED. SEGMENT.setPixelColorXY(j, i, ColorFromPalette(pal, min(i*(indexx)>>4, 255U), i*255/cols, LINEARBLEND)); // With that value, look up the 8 bit colour palette value and assign it to the current LED.
} // for i } // for i
} // for j } // for j
return FRAMETIME; return FRAMETIME;
} // mode_2Dfirenoise() } // mode_2Dfirenoise()
static const char _data_FX_MODE_2DFIRENOISE[] PROGMEM = "Firenoise@X scale,Y scale;;!;2"; static const char _data_FX_MODE_2DFIRENOISE[] PROGMEM = "Firenoise@X scale,Y scale,,,,Palette;;!;2;pal=66";
////////////////////////////// //////////////////////////////

View File

@@ -91,7 +91,7 @@
//#define SEGCOLOR(x) strip._segments[strip.getCurrSegmentId()].currentColor(x, strip._segments[strip.getCurrSegmentId()].colors[x]) //#define SEGCOLOR(x) strip._segments[strip.getCurrSegmentId()].currentColor(x, strip._segments[strip.getCurrSegmentId()].colors[x])
//#define SEGLEN strip._segments[strip.getCurrSegmentId()].virtualLength() //#define SEGLEN strip._segments[strip.getCurrSegmentId()].virtualLength()
#define SEGCOLOR(x) strip.segColor(x) /* saves us a few kbytes of code */ #define SEGCOLOR(x) strip.segColor(x) /* saves us a few kbytes of code */
#define SEGPALETTE strip._currentPalette #define SEGPALETTE Segment::getCurrentPalette()
#define SEGLEN strip._virtualSegmentLength /* saves us a few kbytes of code */ #define SEGLEN strip._virtualSegmentLength /* saves us a few kbytes of code */
#define SPEED_FORMULA_L (5U + (50U*(255U - SEGMENT.speed))/SEGLEN) #define SPEED_FORMULA_L (5U + (50U*(255U - SEGMENT.speed))/SEGLEN)
@@ -414,6 +414,7 @@ typedef struct Segment {
static uint16_t _usedSegmentData; static uint16_t _usedSegmentData;
// perhaps this should be per segment, not static // perhaps this should be per segment, not static
static CRGBPalette16 _currentPalette; // palette used for current effect (includes transition, used in color_from_palette())
static CRGBPalette16 _randomPalette; // actual random palette static CRGBPalette16 _randomPalette; // actual random palette
static CRGBPalette16 _newRandomPalette; // target random palette static CRGBPalette16 _newRandomPalette; // target random palette
static unsigned long _lastPaletteChange; // last random palette change time in millis() static unsigned long _lastPaletteChange; // last random palette change time in millis()
@@ -530,6 +531,7 @@ typedef struct Segment {
static void modeBlend(bool blend) { _modeBlend = blend; } static void modeBlend(bool blend) { _modeBlend = blend; }
#endif #endif
static void handleRandomPalette(); static void handleRandomPalette();
inline static const CRGBPalette16 &getCurrentPalette(void) { return Segment::_currentPalette; }
void setUp(uint16_t i1, uint16_t i2, uint8_t grp=1, uint8_t spc=0, uint16_t ofs=UINT16_MAX, uint16_t i1Y=0, uint16_t i2Y=1, uint8_t segId = 255); void setUp(uint16_t i1, uint16_t i2, uint8_t grp=1, uint8_t spc=0, uint16_t ofs=UINT16_MAX, uint16_t i1Y=0, uint16_t i2Y=1, uint8_t segId = 255);
bool setColor(uint8_t slot, uint32_t c); //returns true if changed bool setColor(uint8_t slot, uint32_t c); //returns true if changed
@@ -567,7 +569,7 @@ typedef struct Segment {
uint8_t currentMode(void); uint8_t currentMode(void);
uint32_t currentColor(uint8_t slot); uint32_t currentColor(uint8_t slot);
CRGBPalette16 &loadPalette(CRGBPalette16 &tgt, uint8_t pal); CRGBPalette16 &loadPalette(CRGBPalette16 &tgt, uint8_t pal);
CRGBPalette16 &currentPalette(CRGBPalette16 &tgt, uint8_t paletteID); void setCurrentPalette(void);
// 1D strip // 1D strip
uint16_t virtualLength(void) const; uint16_t virtualLength(void) const;
@@ -693,7 +695,6 @@ class WS2812FX { // 96 bytes
panels(1), panels(1),
#endif #endif
// semi-private (just obscured) used in effect functions through macros // semi-private (just obscured) used in effect functions through macros
_currentPalette(CRGBPalette16(CRGB::Black)),
_colors_t{0,0,0}, _colors_t{0,0,0},
_virtualSegmentLength(0), _virtualSegmentLength(0),
// true private variables // true private variables
@@ -888,7 +889,6 @@ class WS2812FX { // 96 bytes
// end 2D support // end 2D support
void loadCustomPalettes(void); // loads custom palettes from JSON void loadCustomPalettes(void); // loads custom palettes from JSON
CRGBPalette16 _currentPalette; // palette used for current effect (includes transition)
std::vector<CRGBPalette16> customPalettes; // TODO: move custom palettes out of WS2812FX class std::vector<CRGBPalette16> customPalettes; // TODO: move custom palettes out of WS2812FX class
// using public variables to reduce code size increase due to inline function getSegment() (with bounds checking) // using public variables to reduce code size increase due to inline function getSegment() (with bounds checking)

View File

@@ -77,6 +77,7 @@ uint16_t Segment::_usedSegmentData = 0U; // amount of RAM all segments use for t
uint16_t Segment::maxWidth = DEFAULT_LED_COUNT; uint16_t Segment::maxWidth = DEFAULT_LED_COUNT;
uint16_t Segment::maxHeight = 1; uint16_t Segment::maxHeight = 1;
CRGBPalette16 Segment::_currentPalette = CRGBPalette16(CRGB::Black);
CRGBPalette16 Segment::_randomPalette = CRGBPalette16(DEFAULT_COLOR); CRGBPalette16 Segment::_randomPalette = CRGBPalette16(DEFAULT_COLOR);
CRGBPalette16 Segment::_newRandomPalette = CRGBPalette16(DEFAULT_COLOR); CRGBPalette16 Segment::_newRandomPalette = CRGBPalette16(DEFAULT_COLOR);
unsigned long Segment::_lastPaletteChange = 0; // perhaps it should be per segment unsigned long Segment::_lastPaletteChange = 0; // perhaps it should be per segment
@@ -201,7 +202,7 @@ void Segment::resetIfRequired() {
CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) { CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0; if (pal < 245 && pal > GRADIENT_PALETTE_COUNT+13) pal = 0;
if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0; if (pal > 245 && (strip.customPalettes.size() == 0 || 255U-pal > strip.customPalettes.size()-1)) pal = 0; // TODO remove strip dependency by moving customPalettes out of strip
//default palette. Differs depending on effect //default palette. Differs depending on effect
if (pal == 0) switch (mode) { if (pal == 0) switch (mode) {
case FX_MODE_FIRE_2012 : pal = 35; break; // heat palette case FX_MODE_FIRE_2012 : pal = 35; break; // heat palette
@@ -343,8 +344,8 @@ void Segment::handleTransition() {
// transition progression between 0-65535 // transition progression between 0-65535
uint16_t Segment::progress() { uint16_t Segment::progress() {
if (isInTransition()) { if (isInTransition()) {
unsigned long timeNow = millis(); unsigned diff = millis() - _t->_start;
if (_t->_dur > 0 && timeNow - _t->_start < _t->_dur) return (timeNow - _t->_start) * 0xFFFFU / _t->_dur; if (_t->_dur > 0 && diff < _t->_dur) return diff * 0xFFFFU / _t->_dur;
} }
return 0xFFFFU; return 0xFFFFU;
} }
@@ -448,18 +449,17 @@ uint32_t Segment::currentColor(uint8_t slot) {
#endif #endif
} }
CRGBPalette16 &Segment::currentPalette(CRGBPalette16 &targetPalette, uint8_t pal) { void Segment::setCurrentPalette() {
loadPalette(targetPalette, pal); loadPalette(_currentPalette, palette);
uint16_t prog = progress(); unsigned prog = progress();
if (strip.paletteFade && prog < 0xFFFFU) { if (strip.paletteFade && prog < 0xFFFFU) {
// blend palettes // blend palettes
// there are about 255 blend passes of 48 "blends" to completely blend two palettes (in _dur time) // there are about 255 blend passes of 48 "blends" to completely blend two palettes (in _dur time)
// minimum blend time is 100ms maximum is 65535ms // minimum blend time is 100ms maximum is 65535ms
uint16_t noOfBlends = ((255U * prog) / 0xFFFFU) - _t->_prevPaletteBlends; unsigned noOfBlends = ((255U * prog) / 0xFFFFU) - _t->_prevPaletteBlends;
for (int i=0; i<noOfBlends; i++, _t->_prevPaletteBlends++) nblendPaletteTowardPalette(_t->_palT, targetPalette, 48); for (unsigned i = 0; i < noOfBlends; i++, _t->_prevPaletteBlends++) nblendPaletteTowardPalette(_t->_palT, _currentPalette, 48);
targetPalette = _t->_palT; // copy transitioning/temporary palette _currentPalette = _t->_palT; // copy transitioning/temporary palette
} }
return targetPalette;
} }
// relies on WS2812FX::service() to call it max every 8ms or more (MIN_SHOW_DELAY) // relies on WS2812FX::service() to call it max every 8ms or more (MIN_SHOW_DELAY)
@@ -1078,11 +1078,7 @@ uint32_t Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_
uint8_t paletteIndex = i; uint8_t paletteIndex = i;
if (mapping && virtualLength() > 1) paletteIndex = (i*255)/(virtualLength() -1); if (mapping && virtualLength() > 1) paletteIndex = (i*255)/(virtualLength() -1);
if (!wrap && strip.paletteBlend != 3) paletteIndex = scale8(paletteIndex, 240); //cut off blend at palette "end" if (!wrap && strip.paletteBlend != 3) paletteIndex = scale8(paletteIndex, 240); //cut off blend at palette "end"
CRGBPalette16 curPal; CRGB fastled_col = ColorFromPalette(_currentPalette, paletteIndex, pbri, (strip.paletteBlend == 3)? NOBLEND:LINEARBLEND); // NOTE: paletteBlend should be global
curPal = currentPalette(curPal, palette);
//if (isInTransition()) curPal = _t->_palT;
//else loadPalette(curPal, palette);
CRGB fastled_col = ColorFromPalette(curPal, paletteIndex, pbri, (strip.paletteBlend == 3)? NOBLEND:LINEARBLEND); // NOTE: paletteBlend should be global
return RGBW32(fastled_col.r, fastled_col.g, fastled_col.b, 0); return RGBW32(fastled_col.r, fastled_col.g, fastled_col.b, 0);
} }
@@ -1187,7 +1183,7 @@ void WS2812FX::service() {
_colors_t[0] = seg.currentColor(0); _colors_t[0] = seg.currentColor(0);
_colors_t[1] = seg.currentColor(1); _colors_t[1] = seg.currentColor(1);
_colors_t[2] = seg.currentColor(2); _colors_t[2] = seg.currentColor(2);
seg.currentPalette(_currentPalette, seg.palette); // we need to pass reference seg.setCurrentPalette(); // load actual palette
if (!cctFromRgb || correctWB) busses.setSegmentCCT(seg.currentBri(true), correctWB); if (!cctFromRgb || correctWB) busses.setSegmentCCT(seg.currentBri(true), correctWB);
for (int c = 0; c < NUM_COLORS; c++) _colors_t[c] = gamma32(_colors_t[c]); for (int c = 0; c < NUM_COLORS; c++) _colors_t[c] = gamma32(_colors_t[c]);

View File

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

View File

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

View File

@@ -8,7 +8,7 @@
*/ */
// version code in format yymmddb (b = daily build) // version code in format yymmddb (b = daily build)
#define VERSION 2404040 #define VERSION 2405180
//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