Merge branch 'mdev' into ES8388S
This commit is contained in:
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.4.2",
|
||||
"version": "0.14.0.5.0",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "wled",
|
||||
"version": "0.14.0.4.2",
|
||||
"version": "0.14.0.5.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"clean-css": "^4.2.3",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wled",
|
||||
"version": "0.14.0.4.2",
|
||||
"version": "0.14.0.5.0",
|
||||
"description": "Tools for WLED project",
|
||||
"main": "tools/cdata.js",
|
||||
"directories": {
|
||||
|
||||
166
platformio.ini
166
platformio.ini
@@ -41,7 +41,7 @@
|
||||
; MoonModules entries
|
||||
; ===================
|
||||
|
||||
; default_envs = esp32_4MB_min, esp32_4MB_max, esp32_16MB_max, esp8266_4MB_min, esp32_4MB_PSRAM_max, esp32S3_8MB_max, wemos_shield_esp32_4MB_max, wemos_shield_esp32_16MB_max, esp32_pico_4MB_max
|
||||
; default_envs = esp32_4MB_min, esp32_4MB_max, esp32_16MB_max, esp8266_4MB_min, esp32_4MB_PSRAM_max, esp32S3_8MB_max, wemos_shield_esp32_4MB_max, wemos_shield_esp32_4MB_ICS4343x_max, wemos_shield_esp32_4MB_SPM1423_max, wemos_shield_esp32_4MB_LineIn_max, wemos_shield_esp32_16MB_max, esp32_pico_4MB_max
|
||||
; default_envs = esp32_4MB_min
|
||||
default_envs = esp32_4MB_max ; recommended default
|
||||
; default_envs = esp32_16MB_max
|
||||
@@ -52,6 +52,9 @@ default_envs = esp32_4MB_max ; recommended default
|
||||
; default_envs = esp32_4MB_PSRAM_max
|
||||
; default_envs = esp32S3_8MB_max
|
||||
; default_envs = wemos_shield_esp32_4MB_max
|
||||
; default_envs = wemos_shield_esp32_4MB_ICS4343x_max
|
||||
; default_envs = wemos_shield_esp32_4MB_SPM1423_max
|
||||
; default_envs = wemos_shield_esp32_4MB_LineIn_max
|
||||
; default_envs = wemos_shield_esp32_16MB_max
|
||||
; default_envs = esp32_pico_4MB_max
|
||||
|
||||
@@ -431,23 +434,33 @@ board = esp32-c3-devkitm-1
|
||||
;platform_packages =
|
||||
platform = ${esp32.platformV4}
|
||||
platform_packages = ${esp32.platformV4_packages}
|
||||
-D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0
|
||||
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
build_flags = ${common.build_flags} ${esp32c3.build_flags} #-D WLED_RELEASE_NAME=ESP32-C3
|
||||
-D WLED_WATCHDOG_TIMEOUT=0
|
||||
build_flags = ${common.build_flags} ${esp32c3.build_flags} -D WLED_RELEASE_NAME=ESP32-C3
|
||||
-D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0
|
||||
-D WLED_USE_MY_CONFIG
|
||||
; -D USERMOD_AUDIOREACTIVE
|
||||
-D USERMOD_CUSTOMEFFECTS
|
||||
upload_speed = 460800
|
||||
build_unflags = ${common.build_unflags}
|
||||
lib_deps = ${esp32c3.lib_deps}
|
||||
; https://github.com/blazoncek/arduinoFFT.git
|
||||
|
||||
[env:esp32s3dev_8MB]
|
||||
;; ESP32-S3-DevKitC-1 development board, with 8MB FLASH, no PSRAM
|
||||
board = esp32-s3-devkitc-1
|
||||
platform = espressif32@5.1.1
|
||||
platform_packages = platformio/framework-arduinoespressif32@3.20004.220825
|
||||
;platform = espressif32@5.1.1
|
||||
;platform_packages = platformio/framework-arduinoespressif32@3.20004.220825
|
||||
platform = ${esp32.platformV4}
|
||||
platform_packages = ${esp32.platformV4_packages}
|
||||
upload_speed = 921600
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} ${esp32s3.build_flags} -D CONFIG_LITTLEFS_FOR_IDF_3_2 -D WLED_WATCHDOG_TIMEOUT=0 -D ARDUINO_USB_MODE=1 -D ARDUINO_USB_CDC_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0
|
||||
-D WLED_RELEASE_NAME=ESP32-S3
|
||||
-D WLED_USE_MY_CONFIG
|
||||
-D USERMOD_AUDIOREACTIVE
|
||||
-D USERMOD_CUSTOMEFFECTS
|
||||
lib_deps = ${esp32s3.lib_deps}
|
||||
https://github.com/blazoncek/arduinoFFT.git
|
||||
board_build.partitions = tools/WLED_ESP32_8MB.csv
|
||||
board_build.f_flash = 80000000L
|
||||
board_build.flash_mode = qio
|
||||
@@ -516,13 +529,16 @@ build_flags = ${common.build_flags_esp8266} -D LEDPIN=12 -D IRPIN=-1 -D RLYPIN=2
|
||||
lib_deps = ${esp8266.lib_deps}
|
||||
|
||||
[env:lolin_s2_mini]
|
||||
platform = espressif32@5.1.1
|
||||
;platform = espressif32@5.1.1
|
||||
platform = ${esp32.platformV4}
|
||||
platform_packages = ${esp32.platformV4_packages}
|
||||
board = lolin_s2_mini
|
||||
board_build.partitions = tools/WLED_ESP32_4MB_1MB_FS.csv
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME=LolinS2
|
||||
build_flags = ${common.build_flags} ${esp32s2.build_flags} -D WLED_RELEASE_NAME=LolinS2
|
||||
-DBOARD_HAS_PSRAM
|
||||
-D ARDUINO_USB_CDC_ON_BOOT
|
||||
;-D ARDUINO_USB_CDC_ON_BOOT=0
|
||||
-D WLED_USE_PSRAM
|
||||
-D WLED_WATCHDOG_TIMEOUT=0
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
@@ -535,8 +551,13 @@ build_flags = ${common.build_flags} ${esp32s2.build_flags} #-D WLED_RELEASE_NAME
|
||||
-D HW_PIN_CLOCKSPI=7
|
||||
-D HW_PIN_DATASPI=11
|
||||
-D HW_PIN_MISOSPI=9
|
||||
; -D STATUSLED=15
|
||||
; -D STATUSLED=15
|
||||
-D WLED_USE_MY_CONFIG
|
||||
-D USERMOD_AUDIOREACTIVE
|
||||
-D USERMOD_CUSTOMEFFECTS
|
||||
|
||||
lib_deps = ${esp32s2.lib_deps}
|
||||
https://github.com/blazoncek/arduinoFFT.git
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# MoonModules configs
|
||||
@@ -556,6 +577,13 @@ build_flags_min =
|
||||
-D USERMOD_CUSTOMEFFECTS ; WLEDMM usermod
|
||||
; -D WLED_DEBUG ; lots of generic debug messages
|
||||
; -D SR_DEBUG ; some extra debug messages from audioreactive
|
||||
; -D MIC_LOGGER ; for sound input monitoring & debugging (use arduino serial plotter)
|
||||
; -D WLED_DISABLE_LOXONE
|
||||
; -D WLED_DISABLE_ALEXA
|
||||
; -D WLED_DISABLE_HUESYNC
|
||||
; -D WLED_DISABLE_MQTT
|
||||
; -D WLED_DISABLE_INFRARED
|
||||
; -D WLED_ENABLE_DMX
|
||||
|
||||
lib_deps_min =
|
||||
https://github.com/kosme/arduinoFFT#develop @ 1.9.2 ; used for USERMOD_AUDIOREACTIVE
|
||||
@@ -586,7 +614,7 @@ lib_deps_max =
|
||||
; base entries (without WLED_RELEASE_NAME)
|
||||
|
||||
; esp32_4MB_min_base: basis for min entries and for max_base
|
||||
[env:esp32_4MB_min_base]
|
||||
[esp32_4MB_min_base]
|
||||
board = esp32dev
|
||||
platform = ${esp32.platform}
|
||||
upload_speed = 460800 ; or 921600
|
||||
@@ -599,15 +627,15 @@ board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mh
|
||||
board_build.flash_mode = dio ; (dio = dual i/o; more compatible than qio = quad i/o)
|
||||
|
||||
;esp32_4MB_max_base: basis for max entries, uses esp32_4MB_min_base, build_flags_max and lib_deps_max
|
||||
[env:esp32_4MB_max_base]
|
||||
extends = env:esp32_4MB_min_base
|
||||
build_flags = ${env:esp32_4MB_min_base.build_flags} ${common_mm.build_flags_max}
|
||||
lib_deps = ${env:esp32_4MB_min_base.lib_deps} ${common_mm.lib_deps_max}
|
||||
board_build.partitions = ${env:esp32_4MB_min_base.board_build.partitions}
|
||||
[esp32_4MB_max_base]
|
||||
extends = esp32_4MB_min_base
|
||||
build_flags = ${esp32_4MB_min_base.build_flags} ${common_mm.build_flags_max}
|
||||
lib_deps = ${esp32_4MB_min_base.lib_deps} ${common_mm.lib_deps_max}
|
||||
board_build.partitions = ${esp32_4MB_min_base.board_build.partitions}
|
||||
; board_build.partitions = tools/WLED_ESP32-wrover_4MB.csv
|
||||
|
||||
;esp32_4MB_V4_max_base: basis for V4 entries, uses build_flags_min, build_flags_max, lib_deps_min and lib_deps_max
|
||||
[env:esp32_4MB_V4_min_base]
|
||||
[esp32_4MB_V4_min_base]
|
||||
board = esp32dev
|
||||
upload_speed = 460800 ; or 921600
|
||||
platform = ${esp32.platformV4}
|
||||
@@ -619,12 +647,13 @@ lib_deps = ${esp32.lib_depsV4} ${common_mm.lib_deps_min}
|
||||
board_build.partitions = ${esp32.default_partitions}
|
||||
board_build.f_flash = 80000000L ; use full 80MHz speed for flash (default = 40Mhz)
|
||||
board_build.flash_mode = dio ; (dio = dual i/o; more compatible than qio = quad i/o)
|
||||
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
|
||||
|
||||
[env:esp32_4MB_V4_max_base]
|
||||
extends = env:esp32_4MB_V4_min_base
|
||||
build_flags = ${env:esp32_4MB_V4_min_base.build_flags} ${common_mm.build_flags_max}
|
||||
lib_deps = ${env:esp32_4MB_V4_min_base.lib_deps} ${common_mm.lib_deps_max}
|
||||
board_build.partitions = ${env:esp32_4MB_V4_min_base.board_build.partitions}
|
||||
[esp32_4MB_V4_max_base]
|
||||
extends = esp32_4MB_V4_min_base
|
||||
build_flags = ${esp32_4MB_V4_min_base.build_flags} ${common_mm.build_flags_max}
|
||||
lib_deps = ${esp32_4MB_V4_min_base.lib_deps} ${common_mm.lib_deps_max}
|
||||
board_build.partitions = ${esp32_4MB_V4_min_base.board_build.partitions}
|
||||
;board_build.flash_mode = qio ; (dio = dual i/o; more compatible than qio = quad i/o)
|
||||
|
||||
; end of base entries
|
||||
@@ -633,8 +662,8 @@ board_build.partitions = ${env:esp32_4MB_V4_min_base.board_build.partitions}
|
||||
|
||||
; esp32_4MB_min: bin entry, uses esp32_4MB_min_base
|
||||
[env:esp32_4MB_min]
|
||||
extends = env:esp32_4MB_min_base
|
||||
build_flags = ${env:esp32_4MB_min_base.build_flags}
|
||||
extends = esp32_4MB_min_base
|
||||
build_flags = ${esp32_4MB_min_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_4MB_min ; This will be included in the firmware.bin filename
|
||||
; RAM: [== ] 24.1% (used 78900 bytes from 327680 bytes)
|
||||
; Flash: [======== ] 83.7% (used 1315729 bytes from 1572864 bytes)
|
||||
@@ -650,8 +679,8 @@ build_flags = ${env:esp32_4MB_min_base.build_flags}
|
||||
|
||||
; esp32_4MB_max: bin entry, uses esp32_4MB_max_base
|
||||
[env:esp32_4MB_max]
|
||||
extends = env:esp32_4MB_max_base
|
||||
build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
extends = esp32_4MB_max_base
|
||||
build_flags = ${esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_4MB_max ; This will be included in the firmware.bin filename
|
||||
; RAM: [== ] 24.4% (used 79804 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.7% (used 1394813 bytes from 1572864 bytes)
|
||||
@@ -661,16 +690,22 @@ build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
|
||||
; esp32_16MB_max: bin entry, uses esp32_4MB_max_base and adds 16MB settings
|
||||
[env:esp32_16MB_max]
|
||||
extends = env:esp32_4MB_max_base
|
||||
extends = esp32_4MB_max_base
|
||||
board = esp32_twilord ; "TwilightLord" ESP32 with 16MB Flash
|
||||
board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_twilord with 16MB flash
|
||||
build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
build_flags = ${esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_16MB_max ; This will be included in the firmware.bin filename
|
||||
; RAM: [== ] 24.4% (used 79804 bytes from 327680 bytes)
|
||||
; Flash: [======= ] 66.5% (used 1394813 bytes from 2097152 bytes)
|
||||
; -D WLED_DEBUG
|
||||
; -D SR_DEBUG
|
||||
; -D MIC_LOGGER
|
||||
; -D WLED_DISABLE_LOXONE
|
||||
; -D WLED_DISABLE_ALEXA
|
||||
; -D WLED_DISABLE_HUESYNC
|
||||
; -D WLED_DISABLE_MQTT
|
||||
; -D WLED_DISABLE_INFRARED
|
||||
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
|
||||
|
||||
; esp8266_4MB_min: bin entry for 8266, with 2D (WIP)
|
||||
[env:esp8266_4MB_min]
|
||||
@@ -684,6 +719,7 @@ build_flags = ${common.build_flags_esp8266}
|
||||
-D WLED_DISABLE_HUESYNC
|
||||
; -D WLED_DISABLE_2D
|
||||
; -D USERMOD_AUDIOREACTIVE
|
||||
; -D USERMOD_CUSTOMEFFECTS ; to be done
|
||||
-UWLED_USE_MY_CONFIG
|
||||
; monitor_filters = esp8266_exception_decoder
|
||||
; RAM: [====== ] 58.7% (used 48056 bytes from 81920 bytes)
|
||||
@@ -697,8 +733,8 @@ build_flags = ${common.build_flags_esp8266}
|
||||
|
||||
; esp32_4MB_V4_min: bin entry compiled with ESP-IDF 4.4.1, uses esp32_4MB_V4_min_base
|
||||
[env:esp32_4MB_V4_min]
|
||||
extends = env:esp32_4MB_V4_min_base
|
||||
build_flags = ${env:esp32_4MB_V4_min_base.build_flags}
|
||||
extends = esp32_4MB_V4_min_base
|
||||
build_flags = ${esp32_4MB_V4_min_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_4MB_V4_min ; This will be included in the firmware.bin filename
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
|
||||
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
|
||||
@@ -712,11 +748,12 @@ build_flags = ${env:esp32_4MB_V4_min_base.build_flags}
|
||||
; -D MIC_LOGGER
|
||||
; RAM: [== ] 24.2% (used 79372 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.8% (used 1396073 bytes from 1572864 bytes)
|
||||
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
|
||||
|
||||
; esp32_4MB_V4_max: bin entry compiled with ESP-IDF 4.4.1, uses esp32_4MB_V4_max_base
|
||||
[env:esp32_4MB_V4_max]
|
||||
extends = env:esp32_4MB_V4_max_base
|
||||
build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
extends = esp32_4MB_V4_max_base
|
||||
build_flags = ${esp32_4MB_V4_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_4MB_V4_max ; This will be included in the firmware.bin filename
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
|
||||
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
|
||||
@@ -729,26 +766,27 @@ build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
; Flash: [==========] 95.8% (used 1506893 bytes from 1572864 bytes)
|
||||
;-D WLED_DISABLE_MQTT ; RAM 216 bytes; FLASH 16496 bytes
|
||||
;-D WLED_DISABLE_INFRARED ;RAM 136 bytes; FLASH 24492 bytes
|
||||
;lib_ignore = IRremoteESP8266 ; use with WLED_DISABLE_INFRARED for faster compilation
|
||||
|
||||
; esp32_16MB_max: bin entry compiled with ESP-IDF 4.4.1, uses esp32_4MB_V4_max_base and adds 16MB settings
|
||||
[env:esp32_16MB_V4_max]
|
||||
extends = env:esp32_4MB_V4_max_base
|
||||
extends = esp32_4MB_V4_max_base
|
||||
board = esp32_twilord ; "TwilightLord" ESP32 with 16MB Flash
|
||||
board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_twilord with 16MB flash
|
||||
build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
build_flags = ${esp32_4MB_V4_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_16MB_V4_max ; This will be included in the firmware.bin filename
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
|
||||
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
|
||||
; RAM: [== ] 24.8% (used 81316 bytes from 327680 bytes)
|
||||
; Flash: [======= ] 72.9% (used 1528253 bytes from 2097152 bytes)
|
||||
|
||||
;; experiemtal environment for boards with PSRAM (needs ESP-IDF 4.4.1).
|
||||
;; experimental environment for boards with PSRAM (needs ESP-IDF 4.4.1).
|
||||
; esp32_4MB_PSRAM_max: bin entry, uses esp32_4MB_V4_max_base and adds specific settings
|
||||
[env:esp32_4MB_PSRAM_max]
|
||||
extends = env:esp32_4MB_V4_max_base
|
||||
extends = esp32_4MB_V4_max_base
|
||||
board = lolin_d32_pro
|
||||
;board = esp32cam
|
||||
build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
build_flags = ${esp32_4MB_V4_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_4MB_PSRAM_max
|
||||
-D WLED_WATCHDOG_TIMEOUT=0 #-D WLED_DISABLE_BROWNOUT_DET
|
||||
-D ARDUINO_USB_CDC_ON_BOOT=0 ; needed for arduino-esp32 >=2.0.4; avoids errors on startup
|
||||
@@ -770,9 +808,9 @@ build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
|
||||
; esp32S3_8MB_max: bin entry, uses esp32_4MB_V4_max_base and adds specific settings. Override of lib_deps using lib_deps_min and lib_deps_max
|
||||
[env:esp32S3_8MB_max]
|
||||
extends = env:esp32_4MB_V4_max_base
|
||||
extends = esp32_4MB_V4_max_base
|
||||
board = esp32-s3-devkitc-1
|
||||
build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
build_flags = ${esp32_4MB_V4_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32S3_8MB_max
|
||||
-D ARDUINO_USB_MODE=1 -D ARDUINO_USB_CDC_ON_BOOT=0 -D ARDUINO_USB_MSC_ON_BOOT=0 -D ARDUINO_USB_DFU_ON_BOOT=0
|
||||
-D WLED_WATCHDOG_TIMEOUT=0
|
||||
@@ -788,7 +826,7 @@ build_flags = ${env:esp32_4MB_V4_max_base.build_flags}
|
||||
-D HW_PIN_SDA=40
|
||||
-D HW_PIN_SCL=41
|
||||
-D AUDIOPIN=-1
|
||||
-D DMTYPE=1
|
||||
-D SR_DMTYPE=1
|
||||
-D I2S_SDPIN=16
|
||||
-D I2S_CKPIN=17
|
||||
-D I2S_WSPIN=47
|
||||
@@ -808,17 +846,14 @@ board_build.flash_mode = qio
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
;wemos_shield_esp32_4MB_max_base: base entry, uses esp32_4MB_max_base
|
||||
[env:wemos_shield_esp32_4MB_max_base]
|
||||
extends = env:esp32_4MB_max_base
|
||||
build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
[wemos_shield_esp32_4MB_max_base]
|
||||
extends = esp32_4MB_max_base
|
||||
build_flags = ${esp32_4MB_max_base.build_flags}
|
||||
-D LEDPIN=16
|
||||
-D RLYPIN=19
|
||||
-D BTNPIN=17
|
||||
-D IRPIN=18
|
||||
-D AUDIOPIN=-1
|
||||
-D DMTYPE=1 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=14 ;; for regular I2S microphone
|
||||
; -D DMTYPE=5 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=-1 ;; for I2S PDM microphone
|
||||
; -D DMTYPE=4 -D MCLK_PIN=0 -D I2S_SDPIN=25 -D I2S_WSPIN=15 -D I2S_CKPIN=14 ;; for audio Line-In shield
|
||||
-D TEMPERATURE_PIN=23
|
||||
-D FLD_PIN_SCL=22 -D FLD_PIN_SDA=21
|
||||
-D HW_PIN_SCL=22 -D HW_PIN_SDA=21
|
||||
@@ -833,27 +868,53 @@ build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
|
||||
;wemos_shield_esp32_4MB_max: bin entry, uses wemos_shield_esp32_4MB_max_base
|
||||
[env:wemos_shield_esp32_4MB_max]
|
||||
extends = env:wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${env:wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
extends = wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_max ; This will be included in the firmware.bin filename
|
||||
; -D SR_DMTYPE=1 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=14 ;; for regular I2S microphone softhack: can be removed because this is default in code
|
||||
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
|
||||
|
||||
[env:wemos_shield_esp32_4MB_ICS4343x_max]
|
||||
extends = wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_ICS4343x_max ; This will be included in the firmware.bin filename
|
||||
; -D SR_DMTYPE=1 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=14 ;; for regular I2S microphone softhack: can be removed because this is default in code
|
||||
-D SR_SQUELCH=10 -D SR_GAIN=30 -D SR_FREQ_PROF=5 ; ICS-43434 specific
|
||||
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
|
||||
|
||||
[env:wemos_shield_esp32_4MB_SPM1423_max]
|
||||
extends = wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_SPM1423_max ; This will be included in the firmware.bin filename
|
||||
-D SR_DMTYPE=5 -D I2S_SDPIN=32 -D I2S_WSPIN=15 -D I2S_CKPIN=-1 ; for I2S PDM microphone
|
||||
-D SR_SQUELCH=3 -D SR_GAIN=40 -D SR_FREQ_PROF=5 ; ICS-43434 SPM1423 specific
|
||||
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
|
||||
; Flash: [========= ] 88.6% (used 1393421 bytes from 1572864 bytes)
|
||||
|
||||
[env:wemos_shield_esp32_4MB_LineIn_max]
|
||||
extends = wemos_shield_esp32_4MB_max_base
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_4MB_LineIn_max ; This will be included in the firmware.bin filename
|
||||
-D SR_DMTYPE=4 -D MCLK_PIN=0 -D I2S_SDPIN=25 -D I2S_WSPIN=15 -D I2S_CKPIN=14 ; for audio Line-In shield
|
||||
-D SR_SQUELCH=2 -D SR_GAIN=40 -D SR_FREQ_PROF=1 ; CS5343 Line-In specific
|
||||
|
||||
;wemos_shield_esp32_16MB_max: bin entry, uses wemos_shield_esp32_4MB_max_base and adds 16MB settings
|
||||
[env:wemos_shield_esp32_16MB_max]
|
||||
extends = env:wemos_shield_esp32_4MB_max_base
|
||||
extends = wemos_shield_esp32_4MB_max_base
|
||||
board = esp32_twilord ; "TwilightLord" ESP32 with 16MB Flash
|
||||
board_build.partitions = tools/WLED_ESP32_16MB.csv ; for esp32_twilord with 16MB flash
|
||||
build_flags = ${env:wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
build_flags = ${wemos_shield_esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=wemos_shield_esp32_16MB_max ; This will be included in the firmware.bin filename
|
||||
; RAM: [== ] 24.4% (used 79820 bytes from 327680 bytes)
|
||||
; Flash: [======= ] 66.4% (used 1393421 bytes from 2097152 bytes)
|
||||
|
||||
; ESP32 WLED pico board with builtin ICS-43432 microphpone
|
||||
[env:esp32_pico_4MB_max]
|
||||
extends = env:esp32_4MB_max_base
|
||||
extends = esp32_4MB_max_base
|
||||
board = pico32
|
||||
build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
build_flags = ${esp32_4MB_max_base.build_flags}
|
||||
-D WLED_RELEASE_NAME=esp32_pico_4MB_max ; This will be included in the firmware.bin filename
|
||||
-D WLED_DISABLE_BROWNOUT_DET
|
||||
-D SERVERNAME='"WLED-pico32"'
|
||||
@@ -865,7 +926,8 @@ build_flags = ${env:esp32_4MB_max_base.build_flags}
|
||||
-D BTNPIN=-1
|
||||
-D IRPIN=-1
|
||||
-D HW_PIN_SCL=22 -D HW_PIN_SDA=21
|
||||
-D DMTYPE=1 -D I2S_SDPIN=25 -D I2S_WSPIN=15 -D I2S_CKPIN=14
|
||||
-D SR_DMTYPE=1 -D I2S_SDPIN=25 -D I2S_WSPIN=15 -D I2S_CKPIN=14
|
||||
-D SR_SQUELCH=5 -D SR_GAIN=30 -D SR_FREQ_PROF=5 ; ICS-43434 specific
|
||||
; -D MCLK_PIN=0
|
||||
; -D WLED_USE_MY_CONFIG
|
||||
; -D WLED_DISABLE_LOXONE
|
||||
|
||||
@@ -56,9 +56,17 @@ constexpr SRate_t SAMPLE_RATE = 22050; // Base sample rate in Hz - 22Kh
|
||||
|
||||
// globals
|
||||
static uint8_t inputLevel = 128; // UI slider value
|
||||
static uint8_t soundSquelch = 10; // squelch value for volume reactive routines (config value)
|
||||
static uint8_t sampleGain = 60; // sample gain (config value)
|
||||
static uint8_t soundAgc = 0; // Automagic gain control: 0 - none, 1 - normal, 2 - vivid, 3 - lazy (config value)
|
||||
#ifndef SR_SQUELCH
|
||||
uint8_t soundSquelch = 10; // squelch value for volume reactive routines (config value)
|
||||
#else
|
||||
uint8_t soundSquelch = SR_SQUELCH; // squelch value for volume reactive routines (config value)
|
||||
#endif
|
||||
#ifndef SR_GAIN
|
||||
uint8_t sampleGain = 60; // sample gain (config value)
|
||||
#else
|
||||
uint8_t sampleGain = SR_GAIN; // sample gain (config value)
|
||||
#endif
|
||||
static uint8_t soundAgc = 1; // Automagic gain control: 0 - none, 1 - normal, 2 - vivid, 3 - lazy (config value)
|
||||
static uint8_t audioSyncEnabled = 0; // bit field: bit 0 - send, bit 1 - receive (config value)
|
||||
static bool udpSyncConnected = false; // UDP connection status -> true if connected to multicast group
|
||||
|
||||
@@ -68,7 +76,11 @@ static uint16_t attackTime = 50; // int: attack time in millisecond
|
||||
static uint16_t decayTime = 300; // int: decay time in milliseconds. New default 300ms. Old default was 1.40sec
|
||||
// user settable options for FFTResult scaling
|
||||
static uint8_t FFTScalingMode = 3; // 0 none; 1 optimized logarithmic; 2 optimized linear; 3 optimized sqare root
|
||||
static uint8_t pinkIndex = 0; // 0: default; 1: line-in; 2: IMNP441
|
||||
#ifndef SR_FREQ_PROF
|
||||
static uint8_t pinkIndex = 0; // 0: default; 1: line-in; 2: IMNP441
|
||||
#else
|
||||
static uint8_t pinkIndex = SR_FREQ_PROF; // 0: default; 1: line-in; 2: IMNP441
|
||||
#endif
|
||||
|
||||
//
|
||||
// AGC presets
|
||||
@@ -167,7 +179,8 @@ static uint64_t sampleTime = 0;
|
||||
#define MAX_PINK 9 // 0 = standard, 1= line-in (pink moise only), 2..4 = IMNP441, 5..6 = ICS-43434, 6..7 = userdef, 9= flat (no pink noise adjustment)
|
||||
static const float fftResultPink[MAX_PINK+1][NUM_GEQ_CHANNELS] = {
|
||||
{ 1.70f, 1.71f, 1.73f, 1.78f, 1.68f, 1.56f, 1.55f, 1.63f, 1.79f, 1.62f, 1.80f, 2.06f, 2.47f, 3.35f, 6.83f, 9.55f }, // default from SR WLED
|
||||
{ 1.30f, 1.32f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.39f, 3.09f, 4.34f }, // Line-In - pink noise adjustment only, without microphone distortion
|
||||
// { 1.30f, 1.32f, 1.40f, 1.46f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.39f, 3.09f, 4.34f }, // Line-In Generic -> pink noise adjustment only
|
||||
{ 1.24f, 1.20f, 1.30f, 1.40f, 1.48f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.14f, 2.26f, 2.60f, 3.00f, 3.70f, 5.20f }, // Line-In CS5343
|
||||
|
||||
{ 1.82f, 1.72f, 1.70f, 1.50f, 1.52f, 1.57f, 1.68f, 1.80f, 1.89f, 2.00f, 2.11f, 2.21f, 2.30f, 2.90f, 3.86f, 6.29f}, // IMNP441 datasheet response profile * pink noise
|
||||
{ 2.80f, 2.20f, 1.30f, 1.15f, 1.55f, 2.45f, 4.20f, 2.80f, 3.20f, 3.60f, 4.20f, 4.90f, 5.70f, 6.05f,10.50f,14.85f}, // IMNP441 - big speaker, strong bass
|
||||
@@ -285,10 +298,11 @@ void FFTcode(void * parameter)
|
||||
// band pass filter - can reduce noise floor by a factor of 50
|
||||
// downside: frequencies below 100Hz will be ignored
|
||||
if (useBandPassFilter) {
|
||||
// low frequency cutoff parameter
|
||||
//constexpr float alpha = 0.04f; // 100hz
|
||||
constexpr float alpha = 0.03f; // 80hz
|
||||
//constexpr float alpha = 0.0225f; // 60hz
|
||||
// low frequency cutoff parameter - see https://dsp.stackexchange.com/questions/40462/exponential-moving-average-cut-off-frequency
|
||||
//constexpr float alpha = 0.04f; // 150Hz
|
||||
//constexpr float alpha = 0.03f; // 110Hz
|
||||
constexpr float alpha = 0.0225f; // 80hz
|
||||
//constexpr float alpha = 0.01693f;// 60hz
|
||||
// high frequency cutoff parameter
|
||||
//constexpr float beta1 = 0.75; // 11Khz
|
||||
//constexpr float beta1 = 0.82; // 15Khz
|
||||
@@ -597,10 +611,10 @@ class AudioReactive : public Usermod {
|
||||
#else
|
||||
int8_t audioPin = AUDIOPIN;
|
||||
#endif
|
||||
#ifndef DMTYPE // I2S mic type
|
||||
#ifndef SR_DMTYPE // I2S mic type
|
||||
uint8_t dmType = 1; // 0=none/disabled/analog; 1=generic I2S
|
||||
#else
|
||||
uint8_t dmType = DMTYPE;
|
||||
uint8_t dmType = SR_DMTYPE;
|
||||
#endif
|
||||
#ifndef I2S_SDPIN // aka DOUT
|
||||
int8_t i2ssdPin = 32;
|
||||
@@ -1194,6 +1208,7 @@ class AudioReactive : public Usermod {
|
||||
break;
|
||||
case 2:
|
||||
DEBUGSR_PRINTLN(F("AR: ES7243 Microphone (right channel only)."));
|
||||
//useBandPassFilter = true;
|
||||
audioSource = new ES7243(SAMPLE_RATE, BLOCK_SIZE);
|
||||
delay(100);
|
||||
if (audioSource) audioSource->initialize(sdaPin, sclPin, i2swsPin, i2ssdPin, i2sckPin, mclkPin);
|
||||
@@ -1206,6 +1221,7 @@ class AudioReactive : public Usermod {
|
||||
break;
|
||||
case 4:
|
||||
DEBUGSR_PRINT(F("AR: Generic I2S Microphone with Master Clock - ")); DEBUGSR_PRINTLN(F(I2S_MIC_CHANNEL_TEXT));
|
||||
//useBandPassFilter = true;
|
||||
audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, true, 1.0f/24.0f);
|
||||
//audioSource = new I2SSource(SAMPLE_RATE, BLOCK_SIZE, false, 1.0f/16.0f); // I2S SLAVE mode - does not work, unfortunately
|
||||
delay(100);
|
||||
@@ -1232,6 +1248,7 @@ class AudioReactive : public Usermod {
|
||||
case 0:
|
||||
default:
|
||||
DEBUGSR_PRINTLN(F("AR: Analog Microphone (left channel only)."));
|
||||
//useBandPassFilter = true;
|
||||
audioSource = new I2SAdcSource(SAMPLE_RATE, BLOCK_SIZE);
|
||||
delay(100);
|
||||
if (audioSource) audioSource->initialize(audioPin);
|
||||
@@ -1246,7 +1263,11 @@ class AudioReactive : public Usermod {
|
||||
if (enabled) disableSoundProcessing = false; // all good - enable audio processing
|
||||
|
||||
if((!audioSource) || (!audioSource->isInitialized())) { // audio source failed to initialize. Still stay "enabled", as there might be input arriving via UDP Sound Sync
|
||||
#ifdef WLED_DEBUG
|
||||
DEBUG_PRINTLN(F("AR: Failed to initialize sound input driver. Please check input PIN settings."));
|
||||
#else
|
||||
DEBUGSR_PRINTLN(F("AR: Failed to initialize sound input driver. Please check input PIN settings."));
|
||||
#endif
|
||||
disableSoundProcessing = true;
|
||||
}
|
||||
|
||||
@@ -1728,19 +1749,19 @@ class AudioReactive : public Usermod {
|
||||
pinArray.add(sdaPin);
|
||||
pinArray.add(sclPin);
|
||||
|
||||
JsonObject cfg = top.createNestedObject("cfg");
|
||||
JsonObject cfg = top.createNestedObject("config");
|
||||
cfg[F("squelch")] = soundSquelch;
|
||||
cfg[F("gain")] = sampleGain;
|
||||
cfg[F("AGC")] = soundAgc;
|
||||
|
||||
JsonObject dynLim = top.createNestedObject("dynamics");
|
||||
dynLim[F("Limiter")] = limiterOn;
|
||||
dynLim[F("Rise")] = attackTime;
|
||||
dynLim[F("Fall")] = decayTime;
|
||||
dynLim[F("limiter")] = limiterOn;
|
||||
dynLim[F("rise")] = attackTime;
|
||||
dynLim[F("fall")] = decayTime;
|
||||
|
||||
JsonObject freqScale = top.createNestedObject("Frequency");
|
||||
freqScale[F("Scale")] = FFTScalingMode;
|
||||
freqScale[F("Profile")] = pinkIndex;
|
||||
JsonObject freqScale = top.createNestedObject("frequency");
|
||||
freqScale[F("scale")] = FFTScalingMode;
|
||||
freqScale[F("profile")] = pinkIndex;
|
||||
|
||||
JsonObject sync = top.createNestedObject("sync");
|
||||
sync[F("port")] = audioSyncPort;
|
||||
@@ -1780,16 +1801,16 @@ class AudioReactive : public Usermod {
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][4], sdaPin);
|
||||
configComplete &= getJsonValue(top[FPSTR(_digitalmic)]["pin"][5], sclPin);
|
||||
|
||||
configComplete &= getJsonValue(top["cfg"][F("squelch")], soundSquelch);
|
||||
configComplete &= getJsonValue(top["cfg"][F("gain")], sampleGain);
|
||||
configComplete &= getJsonValue(top["cfg"][F("AGC")], soundAgc);
|
||||
configComplete &= getJsonValue(top["config"][F("squelch")], soundSquelch);
|
||||
configComplete &= getJsonValue(top["config"][F("gain")], sampleGain);
|
||||
configComplete &= getJsonValue(top["config"][F("AGC")], soundAgc);
|
||||
|
||||
configComplete &= getJsonValue(top["dynamics"][F("Limiter")], limiterOn);
|
||||
configComplete &= getJsonValue(top["dynamics"][F("Rise")], attackTime);
|
||||
configComplete &= getJsonValue(top["dynamics"][F("Fall")], decayTime);
|
||||
configComplete &= getJsonValue(top["dynamics"][F("limiter")], limiterOn);
|
||||
configComplete &= getJsonValue(top["dynamics"][F("rise")], attackTime);
|
||||
configComplete &= getJsonValue(top["dynamics"][F("fall")], decayTime);
|
||||
|
||||
configComplete &= getJsonValue(top["Frequency"][F("Scale")], FFTScalingMode);
|
||||
configComplete &= getJsonValue(top["Frequency"][F("Profile")], pinkIndex);
|
||||
configComplete &= getJsonValue(top["frequency"][F("scale")], FFTScalingMode);
|
||||
configComplete &= getJsonValue(top["frequency"][F("profile")], pinkIndex);
|
||||
|
||||
configComplete &= getJsonValue(top["sync"][F("port")], audioSyncPort);
|
||||
configComplete &= getJsonValue(top["sync"][F("mode")], audioSyncEnabled);
|
||||
@@ -1812,26 +1833,26 @@ class AudioReactive : public Usermod {
|
||||
oappend(SET_F("addOption(dd,'Generic I2S PDM',5);"));
|
||||
#endif
|
||||
oappend(SET_F("addOption(dd,'ES8388',6);"));
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','cfg:AGC');"));
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','config:AGC');"));
|
||||
oappend(SET_F("addOption(dd,'Off',0);"));
|
||||
oappend(SET_F("addOption(dd,'Normal',1);"));
|
||||
oappend(SET_F("addOption(dd,'Vivid',2);"));
|
||||
oappend(SET_F("addOption(dd,'Lazy',3);"));
|
||||
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','dynamics:Limiter');"));
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','dynamics:limiter');"));
|
||||
oappend(SET_F("addOption(dd,'Off',0);"));
|
||||
oappend(SET_F("addOption(dd,'On',1);"));
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Limiter',0,' On ');")); // 0 is field type, 1 is actual field
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Rise',1,'ms <i>(♪ effects only)</i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:Fall',1,'ms <i>(♪ effects only)</i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:limiter',0,' On ');")); // 0 is field type, 1 is actual field
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:rise',1,'ms <i>(♪ effects only)</i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:dynamics:fall',1,'ms <i>(♪ effects only)</i>');"));
|
||||
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','Frequency:Scale');"));
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','frequency:scale');"));
|
||||
oappend(SET_F("addOption(dd,'None',0);"));
|
||||
oappend(SET_F("addOption(dd,'Linear (Amplitude)',2);"));
|
||||
oappend(SET_F("addOption(dd,'Square Root (Energy)',3);"));
|
||||
oappend(SET_F("addOption(dd,'Logarithmic (Loudness)',1);"));
|
||||
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','Frequency:Profile');"));
|
||||
oappend(SET_F("dd=addDropdown('AudioReactive','frequency:profile');"));
|
||||
oappend(SET_F("addOption(dd,'Generic Microphone',0);"));
|
||||
oappend(SET_F("addOption(dd,'Generic Line-In',1);"));
|
||||
oappend(SET_F("addOption(dd,'IMNP441',2);"));
|
||||
@@ -1848,16 +1869,16 @@ class AudioReactive : public Usermod {
|
||||
oappend(SET_F("addOption(dd,'Send',1);"));
|
||||
oappend(SET_F("addOption(dd,'Receive',2);"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:type',1,'<i>requires reboot!</i>');")); // 0 is field type, 1 is actual field
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',0,'I2S SD');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',1,'I2S WS');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',2,'I2S SCK');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',0,'I2S Serial Data', '<i><span class=\"h\">sd/data/dout</span></i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',1,'I2S L/R Clock','<i><span class=\"h\">ws/clk/lrck</span></i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',2,'I2S Serial Clock','<i>sck/bclk</i>');"));
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK <br/><i>only use -1, 0, 1 or 3 for MCLK</i>');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK','<i>only use -1, 0, 1 or 3</i>');"));
|
||||
#else
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',3,'I2S Master CLK','');"));
|
||||
#endif
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',4,'I2C SDA');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',5,'I2C SCL');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',4,'I2C SDA',' ');"));
|
||||
oappend(SET_F("addInfo('AudioReactive:digitalmic:pin[]',5,'I2C SCL',' ');"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,11 +24,15 @@
|
||||
|
||||
// see https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/hw-reference/chip-series-comparison.html#related-documents
|
||||
// and https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/api-reference/peripherals/i2s.html#overview-of-all-modes
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32H2)
|
||||
#if defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C3) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C5) || defined(CONFIG_IDF_TARGET_ESP32C6) || defined(CONFIG_IDF_TARGET_ESP32H2) || defined(ESP8266) || defined(ESP8265)
|
||||
// there are two things in these MCUs that could lead to problems with audio processing:
|
||||
// * no floating point hardware (FPU) support - FFT uses float calculations. If done in software, a strong slow-down can be expected (between 8x and 20x)
|
||||
// * single core, so FFT task might slow down other things like LED updates
|
||||
#if !defined(SOC_I2S_NUM) || (SOC_I2S_NUM < 1)
|
||||
#error This audio reactive usermod does not support ESP32-C2, ESP32-C3 or ESP32-S2.
|
||||
#else
|
||||
#warning This audio reactive usermod does not support ESP32-C2, ESP32-C3 or ESP32-S2.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* ToDo: remove. ES7243 is controlled via compiler defines
|
||||
@@ -227,11 +231,23 @@ class I2SSource : public AudioSource {
|
||||
}
|
||||
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0)
|
||||
if ((_i2sMaster == false) && (_config.mode & I2S_MODE_SLAVE)) { // I2S slave mode (experimental).
|
||||
// Seems we need to drive clocks in slave mode
|
||||
_config.use_apll = true;
|
||||
_config.fixed_mclk = 512 * int(_config.sample_rate);
|
||||
}
|
||||
|
||||
if (mclkPin != I2S_PIN_NO_CHANGE) {
|
||||
_config.use_apll = true; // experimental - use aPLL clock source to improve sampling quality, and to avoid glitches.
|
||||
// //_config.fixed_mclk = 512 * _sampleRate;
|
||||
// //_config.fixed_mclk = 256 * _sampleRate;
|
||||
}
|
||||
|
||||
#if !defined(SOC_I2S_SUPPORTS_APLL)
|
||||
#warning this MCU does not have an APLL high accuracy clock for audio
|
||||
// S3: not supported; S2: supported; C3: not supported
|
||||
_config.use_apll = false; // APLL not supported on this MCU
|
||||
#endif
|
||||
#if defined(ARDUINO_ARCH_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S3) && !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3)
|
||||
if (ESP.getChipRevision() == 0) _config.use_apll = false; // APLL is broken on ESP32 revision 0
|
||||
#endif
|
||||
@@ -263,6 +279,8 @@ class I2SSource : public AudioSource {
|
||||
.data_in_num = i2ssdPin
|
||||
};
|
||||
|
||||
//DEBUGSR_PRINTF("[AR] I2S: SD=%d, WS=%d, SCK=%d, MCLK=%d\n", i2ssdPin, i2swsPin, i2sckPin, mclkPin);
|
||||
|
||||
esp_err_t err = i2s_driver_install(I2S_NUM_0, &_config, 0, nullptr);
|
||||
if (err != ESP_OK) {
|
||||
DEBUGSR_PRINTF("AR: Failed to install i2s driver: %d\n", err);
|
||||
@@ -274,7 +292,8 @@ class I2SSource : public AudioSource {
|
||||
if(_config.mode & I2S_MODE_MASTER) {
|
||||
if (_config.mode & I2S_MODE_PDM)
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in PDM MASTER mode."));
|
||||
else DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in MASTER mode."));
|
||||
else
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in MASTER mode."));
|
||||
} else
|
||||
DEBUGSR_PRINTLN(F("AR: I2S#0 driver installed in SLAVE mode."));
|
||||
|
||||
@@ -412,9 +431,22 @@ public:
|
||||
};
|
||||
|
||||
void initialize(int8_t sdaPin, int8_t sclPin, int8_t i2swsPin, int8_t i2ssdPin, int8_t i2sckPin, int8_t mclkPin) {
|
||||
// check that pins are valid
|
||||
if ((sdaPin < 0) || (sclPin < 0)) {
|
||||
DEBUGSR_PRINTF("\nAR: invalid ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((i2sckPin < 0) || (mclkPin < 0)) {
|
||||
DEBUGSR_PRINTF("\nAR: invalid I2S pin: SCK=%d, MCLK=%d\n", i2sckPin, mclkPin);
|
||||
return;
|
||||
}
|
||||
|
||||
// Reserve SDA and SCL pins of the I2C interface
|
||||
if (!pinManager.allocatePin(sdaPin, true, PinOwner::HW_I2C) ||
|
||||
!pinManager.allocatePin(sclPin, true, PinOwner::HW_I2C)) {
|
||||
PinManagerPinType es7243Pins[2] = { { sdaPin, true }, { sclPin, true } };
|
||||
if (!pinManager.allocateMultiplePins(es7243Pins, 2, PinOwner::HW_I2C)) {
|
||||
pinManager.deallocateMultiplePins(es7243Pins, 2, PinOwner::HW_I2C);
|
||||
DEBUGSR_PRINTF("\nAR: Failed to allocate ES7243 I2C pins: SDA=%d, SCL=%d\n", sdaPin, sclPin);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -428,8 +460,8 @@ public:
|
||||
|
||||
void deinitialize() {
|
||||
// Release SDA and SCL pins of the I2C interface
|
||||
pinManager.deallocatePin(pin_ES7243_SDA, PinOwner::HW_I2C);
|
||||
pinManager.deallocatePin(pin_ES7243_SCL, PinOwner::HW_I2C);
|
||||
PinManagerPinType es7243Pins[2] = { { pin_ES7243_SDA, true }, { pin_ES7243_SCL, true } };
|
||||
pinManager.deallocateMultiplePins(es7243Pins, 2, PinOwner::HW_I2C);
|
||||
I2SSource::deinitialize();
|
||||
}
|
||||
|
||||
@@ -495,6 +527,12 @@ public:
|
||||
|
||||
|
||||
|
||||
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0)
|
||||
#if !defined(SOC_I2S_SUPPORTS_ADC) && !defined(SOC_I2S_SUPPORTS_ADC_DAC)
|
||||
#warning this MCU does not support analog sound input
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_IDF_TARGET_ESP32S2) && !defined(CONFIG_IDF_TARGET_ESP32C3) && !defined(CONFIG_IDF_TARGET_ESP32S3)
|
||||
// ADC over I2S is only availeable in "classic" ESP32
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ All parameters are runtime configurable though some may require hard boot after
|
||||
|
||||
If you want to define default GPIOs during compile time use the following (default values in parentheses):
|
||||
|
||||
- `DMTYPE=x` : defines digital microphone type: 0=analog, 1=generic I2S, 2=ES7243 I2S, 3=SPH0645 I2S, 4=generic I2S with master clock, 5=PDM I2S
|
||||
- `SR_DMTYPE=x` : defines digital microphone type: 0=analog, 1=generic I2S, 2=ES7243 I2S, 3=SPH0645 I2S, 4=generic I2S with master clock, 5=PDM I2S
|
||||
- `AUDIOPIN=x` : GPIO for analog microphone/AUX-in (36)
|
||||
- `I2S_SDPIN=x` : GPIO for SD pin on digital mcrophone (32)
|
||||
- `I2S_WSPIN=x` : GPIO for WS pin on digital mcrophone (15)
|
||||
|
||||
@@ -1036,11 +1036,11 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
oappend(SET_F("addOption(dd,'SSD1305 128x64',5);"));
|
||||
oappend(SET_F("addOption(dd,'SSD1306 SPI',6);"));
|
||||
oappend(SET_F("addOption(dd,'SSD1306 SPI 128x64',7);"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',0,'I2C/SPI CLK (-1 use global)');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',1,'I2C/SPI DTA (-1 use global)');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',2,'SPI CS');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',3,'SPI DC');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',4,'SPI RST');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',0,'I2C/SPI CLK','<i>-1 use global</i>');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',1,'I2C/SPI DTA','<i>-1 use global</i>');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',2,'SPI CS',' ');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',3,'SPI DC',' ');"));
|
||||
oappend(SET_F("addInfo('4LineDisplay:pin[]',4,'SPI RST',' ');"));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
class RotaryEncoderUIUsermod : public Usermod {
|
||||
private:
|
||||
int fadeAmount = 10; // Amount to change every step (brightness)
|
||||
unsigned long currentTime;
|
||||
unsigned long loopTime;
|
||||
unsigned long currentTime = 0;
|
||||
unsigned long loopTime = 0;
|
||||
int8_t pinA = ENCODER_DT_PIN; // DT from encoder
|
||||
int8_t pinB = ENCODER_CLK_PIN; // CLK from encoder
|
||||
int8_t pinC = ENCODER_SW_PIN; // SW from encoder
|
||||
@@ -107,6 +107,7 @@ public:
|
||||
// tracking the owner tags....
|
||||
pinA = pinB = pinC = -1;
|
||||
enabled = false;
|
||||
DEBUG_PRINTLN(F("Failed to alocate GPIO pins for Usermod Rotary Encoder.")); //WLEDMM add debug info
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ static int re_qstringCmp(const void *ap, const void *bp) {
|
||||
class RotaryEncoderUIUsermod : public Usermod {
|
||||
private:
|
||||
int8_t fadeAmount = 5; // Amount to change every step (brightness)
|
||||
unsigned long loopTime;
|
||||
unsigned long loopTime = 0;
|
||||
|
||||
unsigned long buttonPressedTime = 0;
|
||||
unsigned long buttonWaitTime = 0;
|
||||
@@ -275,6 +275,7 @@ public:
|
||||
// tracking the owner tags....
|
||||
pinA = pinB = pinC = -1;
|
||||
enabled = false;
|
||||
DEBUG_PRINTLN(F("Failed to alocate GPIO pins for Usermod Rotary Encoder (ALT).")); //WLEDMM add debug info
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -327,9 +328,11 @@ public:
|
||||
*/
|
||||
void loop()
|
||||
{
|
||||
if (!enabled || strip.isUpdating()) return;
|
||||
if (!enabled) return;
|
||||
unsigned long currentTime = millis(); // get the current elapsed time
|
||||
|
||||
if (strip.isUpdating() && (currentTime - loopTime < 4)) return; // WLEDMM: be nice, but not too nice
|
||||
|
||||
// Initialize effectCurrentIndex and effectPaletteIndex to
|
||||
// current state. We do it here as (at least) effectCurrent
|
||||
// is not yet initialized when setup is called.
|
||||
@@ -342,7 +345,7 @@ public:
|
||||
currentEffectAndPaletteInitialized = false;
|
||||
}
|
||||
|
||||
if (currentTime >= (loopTime + 2)) // 2ms since last check of encoder = 500Hz
|
||||
if (currentTime - loopTime >= 2) // 2ms since last check of encoder = 500Hz
|
||||
{
|
||||
loopTime = currentTime; // Updates loopTime
|
||||
|
||||
@@ -642,8 +645,8 @@ public:
|
||||
}
|
||||
lampUdated();
|
||||
#ifdef USERMOD_FOUR_LINE_DISPLAY
|
||||
char lineBuffer[64];
|
||||
sprintf(lineBuffer, "%d", val);
|
||||
char lineBuffer[64] = { '\0' };
|
||||
snprintf(lineBuffer, 63, "%d", val); // WLEDMM: avoid string buffer overflow
|
||||
display->overlay(lineBuffer, 500, 10); // use star
|
||||
#endif
|
||||
}
|
||||
@@ -702,8 +705,8 @@ public:
|
||||
}
|
||||
lampUdated();
|
||||
#ifdef USERMOD_FOUR_LINE_DISPLAY
|
||||
char lineBuffer[64];
|
||||
sprintf(lineBuffer, "%d", currentHue1);
|
||||
char lineBuffer[64] = { '\0' };
|
||||
snprintf(lineBuffer, 63, "%d", currentHue1); // WLEDMM: avoid string buffer overflow
|
||||
display->overlay(lineBuffer, 500, 7); // use brush
|
||||
#endif
|
||||
}
|
||||
@@ -731,8 +734,8 @@ public:
|
||||
}
|
||||
lampUdated();
|
||||
#ifdef USERMOD_FOUR_LINE_DISPLAY
|
||||
char lineBuffer[64];
|
||||
sprintf(lineBuffer, "%d", currentSat1);
|
||||
char lineBuffer[64] = { '\0' };
|
||||
snprintf(lineBuffer, 63, "%d", currentSat1); // WLEDMM: avoid string buffer overflow
|
||||
display->overlay(lineBuffer, 500, 8); // use contrast
|
||||
#endif
|
||||
}
|
||||
@@ -748,7 +751,7 @@ public:
|
||||
#endif
|
||||
if (presetHigh && presetLow && presetHigh > presetLow) {
|
||||
StaticJsonDocument<64> root;
|
||||
char str[64];
|
||||
char str[64] = { '\0' };
|
||||
sprintf_P(str, PSTR("%d~%d~%s"), presetLow, presetHigh, increase?"":"-");
|
||||
root[F("ps")] = str;
|
||||
deserializeState(root.as<JsonObject>(), CALL_MODE_BUTTON_PRESET);
|
||||
@@ -763,7 +766,7 @@ public:
|
||||
*/
|
||||
lampUdated();
|
||||
#ifdef USERMOD_FOUR_LINE_DISPLAY
|
||||
sprintf(str, "%d", currentPreset);
|
||||
snprintf(str, 63, "%d", currentPreset); // WLEDMM: avoid string buffer overflow
|
||||
display->overlay(str, 500, 11); // use heart
|
||||
#endif
|
||||
}
|
||||
@@ -791,8 +794,8 @@ public:
|
||||
// }
|
||||
lampUdated();
|
||||
#ifdef USERMOD_FOUR_LINE_DISPLAY
|
||||
char lineBuffer[64];
|
||||
sprintf(lineBuffer, "%d", currentCCT);
|
||||
char lineBuffer[64] = { '\0' };
|
||||
snprintf(lineBuffer, 63, "%d", currentCCT); // WLEDMM: avoid string buffer overflow
|
||||
display->overlay(lineBuffer, 500, 10); // use star
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -633,7 +633,7 @@ typedef struct Segment {
|
||||
void drawCharacter(unsigned char chr, int16_t x, int16_t y, uint8_t w, uint8_t h, CRGB color) {}
|
||||
void wu_pixel(uint32_t x, uint32_t y, CRGB c) {}
|
||||
#endif
|
||||
CRGBPalette16 getAudioPalette(); //WLEDMM netmindz ar palette
|
||||
uint8_t * getAudioPalette(int pal); //WLEDMM netmindz ar palette
|
||||
} segment;
|
||||
//static int segSize = sizeof(Segment);
|
||||
|
||||
@@ -840,7 +840,7 @@ class WS2812FX { // 96 bytes
|
||||
#endif
|
||||
|
||||
void
|
||||
setUpMatrix(),
|
||||
setUpMatrix(bool reset = true), //WLEDMM: add reset option to switch on/off reset of customMappingTable
|
||||
setPixelColorXY(int x, int y, uint32_t c);
|
||||
|
||||
// outsmart the compiler :) by correctly overloading
|
||||
|
||||
@@ -34,12 +34,14 @@
|
||||
// note: matrix may be comprised of multiple panels each with different orientation
|
||||
// but ledmap takes care of that. ledmap is constructed upon initialization
|
||||
// so matrix should disable regular ledmap processing
|
||||
void WS2812FX::setUpMatrix() {
|
||||
void WS2812FX::setUpMatrix(bool reset) {
|
||||
#ifndef WLED_DISABLE_2D
|
||||
// erase old ledmap, just in case.
|
||||
if (customMappingTable != nullptr) delete[] customMappingTable;
|
||||
customMappingTable = nullptr;
|
||||
customMappingSize = 0;
|
||||
if (reset) { //WLEDMM: add reset option to switch on/off reset of customMappingTable
|
||||
if (customMappingTable != nullptr) delete[] customMappingTable;
|
||||
customMappingTable = nullptr;
|
||||
customMappingSize = 0;
|
||||
}
|
||||
|
||||
if (isMatrix) {
|
||||
matrixWidth = hPanels * panelW;
|
||||
@@ -53,8 +55,14 @@ void WS2812FX::setUpMatrix() {
|
||||
return;
|
||||
}
|
||||
|
||||
customMappingSize = matrixWidth * matrixHeight;
|
||||
customMappingTable = new uint16_t[customMappingSize];
|
||||
if (reset) { //WLEDMM: add reset option to switch on/off reset of customMappingTable
|
||||
customMappingSize = matrixWidth * matrixHeight;
|
||||
customMappingTable = new uint16_t[customMappingSize];
|
||||
//WLEDMM: init customMappingTable with a 1:1 mapping (for customMappingTable[customMappingTable[x]])
|
||||
for (uint16_t i=0; i<customMappingSize; i++) {
|
||||
customMappingTable[i] = i;
|
||||
}
|
||||
}
|
||||
|
||||
if (customMappingTable != nullptr) {
|
||||
uint16_t startL; // index in custom mapping array (logical strip)
|
||||
@@ -80,7 +88,7 @@ void WS2812FX::setUpMatrix() {
|
||||
x = (panel[h*j + i].vertical ? panel[h*j + i].bottomStart : panel[h*j + i].rightStart) ? W - k - 1 : k;
|
||||
x = (panel[h*j + i].serpentine && l%2) ? (W - x - 1) : x;
|
||||
offset = (panel[h*j + i].vertical ? y : x) + (panel[h*j + i].vertical ? x : y) * matrixWidth;
|
||||
customMappingTable[startL + offset] = startP + q;
|
||||
customMappingTable[customMappingTable[startL + offset]] = startP + q; //WLEDMM: allow for 2 transitions if reset = false (ledmap and logical to physical)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -279,7 +279,8 @@ CRGBPalette16 &Segment::loadPalette(CRGBPalette16 &targetPalette, uint8_t pal) {
|
||||
case 12: //Rainbow stripe colors
|
||||
targetPalette = RainbowStripeColors_p; break;
|
||||
case 71: //WLEDMM netmindz ar palette +1
|
||||
targetPalette = getAudioPalette(); break;
|
||||
case 72: //WLEDMM netmindz ar palette +1
|
||||
targetPalette.loadDynamicGradientPalette(getAudioPalette(pal)); break;
|
||||
default: //progmem palettes
|
||||
if (pal>245) {
|
||||
targetPalette = strip.customPalettes[255-pal]; // we checked bounds above
|
||||
@@ -1140,35 +1141,38 @@ uint32_t Segment::color_from_palette(uint16_t i, bool mapping, bool wrap, uint8_
|
||||
}
|
||||
|
||||
//WLEDMM netmindz ar palette
|
||||
CRGBPalette16 Segment::getAudioPalette() {
|
||||
uint8_t * Segment::getAudioPalette(int pal) {
|
||||
// https://forum.makerforums.info/t/hi-is-it-possible-to-define-a-gradient-palette-at-runtime-the-define-gradient-palette-uses-the/63339
|
||||
|
||||
um_data_t *um_data;
|
||||
if (!usermods.getUMData(&um_data, USERMOD_ID_AUDIOREACTIVE)) {
|
||||
um_data = simulateSound(SEGMENT.soundSim);
|
||||
}
|
||||
uint8_t *fftResult = (uint8_t*)um_data->u_data[2];
|
||||
uint8_t xyz[12]; // Needs to be 4 times however many colors are being used.
|
||||
// 3 colors = 12, 4 colors = 16, etc.
|
||||
|
||||
CRGB rgb = getCRGBForBand(0, fftResult);
|
||||
static uint8_t xyz[12]; // Needs to be 4 times however many colors are being used.
|
||||
// 3 colors = 12, 4 colors = 16, etc.
|
||||
|
||||
CRGB rgb = getCRGBForBand(0, fftResult, pal);
|
||||
|
||||
xyz[0] = 0; // anchor of first color - must be zero
|
||||
xyz[1] = rgb.r;
|
||||
xyz[2] = rgb.g;
|
||||
xyz[3] = rgb.b;
|
||||
|
||||
rgb = getCRGBForBand(4, fftResult);
|
||||
rgb = getCRGBForBand(4, fftResult, pal);
|
||||
xyz[4] = 128;
|
||||
xyz[5] = rgb.r;
|
||||
xyz[6] = rgb.g;
|
||||
xyz[7] = rgb.b;
|
||||
|
||||
rgb = getCRGBForBand(8, fftResult);
|
||||
rgb = getCRGBForBand(8, fftResult, pal);
|
||||
xyz[8] = 255; // anchor of last color - must be 255
|
||||
xyz[9] = rgb.r;
|
||||
xyz[10] = rgb.g;
|
||||
xyz[11] = rgb.b;
|
||||
|
||||
return CRGBPalette16(xyz);
|
||||
return xyz;
|
||||
}
|
||||
|
||||
|
||||
@@ -1818,7 +1822,7 @@ void WS2812FX::loadCustomPalettes()
|
||||
|
||||
//load custom mapping table from JSON file (called from finalizeInit() or deserializeState())
|
||||
void WS2812FX::deserializeMap(uint8_t n) {
|
||||
if (isMatrix) return; // 2D support creates its own ledmap
|
||||
// WLEDMM: also supports isMatrix
|
||||
|
||||
char fileName[32];
|
||||
strcpy_P(fileName, PSTR("/ledmap"));
|
||||
@@ -1829,9 +1833,14 @@ void WS2812FX::deserializeMap(uint8_t n) {
|
||||
if (!isFile) {
|
||||
// erase custom mapping if selecting nonexistent ledmap.json (n==0)
|
||||
if (!n && customMappingTable != nullptr) {
|
||||
customMappingSize = 0;
|
||||
delete[] customMappingTable;
|
||||
customMappingTable = nullptr;
|
||||
//WLEDMM: if isMatrix then not erase but back to matrix default
|
||||
if (isMatrix)
|
||||
setUpMatrix(true);
|
||||
else {
|
||||
customMappingSize = 0;
|
||||
delete[] customMappingTable;
|
||||
customMappingTable = nullptr;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -1855,12 +1864,19 @@ void WS2812FX::deserializeMap(uint8_t n) {
|
||||
|
||||
JsonArray map = doc[F("map")];
|
||||
if (!map.isNull() && map.size()) { // not an empty map
|
||||
customMappingSize = map.size();
|
||||
//WLEDMM: if isMatrix then customMap size is whole matrix
|
||||
if (isMatrix)
|
||||
customMappingSize = matrixWidth * matrixHeight;
|
||||
else
|
||||
customMappingSize = map.size();
|
||||
customMappingTable = new uint16_t[customMappingSize];
|
||||
for (uint16_t i=0; i<customMappingSize; i++) {
|
||||
for (uint16_t i=0; i<map.size(); i++) {
|
||||
customMappingTable[i] = (uint16_t) map[i];
|
||||
}
|
||||
setUpMatrix(false); //WLEDMM: apply logical to physical mapping after the ledmap
|
||||
}
|
||||
else
|
||||
setUpMatrix(true); //WLEDMM: if no map then back to matrix default
|
||||
|
||||
releaseJSONBufferLock();
|
||||
}
|
||||
@@ -1883,5 +1899,5 @@ const char JSON_palette_names[] PROGMEM = R"=====([
|
||||
"Magenta","Magred","Yelmag","Yelblu","Orange & Teal","Tiamat","April Night","Orangery","C9","Sakura",
|
||||
"Aurora","Atlantica","C9 2","C9 New","Temperature","Aurora 2","Retro Clown","Candy","Toxy Reaf","Fairy Reaf",
|
||||
"Semi Blue","Pink Candy","Red Reaf","Aqua Flash","Yelblu Hot","Lite Light","Red Flash","Blink Red","Red Shift","Red Tide",
|
||||
"Candy2","Audio Responsive"
|
||||
"Candy2","Audio Responsive Ratio","Audio Responsive Hue"
|
||||
])=====";
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
* Readability defines and their associated numerical values + compile-time constants
|
||||
*/
|
||||
|
||||
#define GRADIENT_PALETTE_COUNT 59 //WLEDMM netmindz ar palette +1
|
||||
#define GRADIENT_PALETTE_COUNT 60 //WLEDMM netmindz ar palette +2
|
||||
|
||||
//Defaults
|
||||
#define DEFAULT_CLIENT_SSID "Your_Network"
|
||||
|
||||
@@ -587,7 +587,7 @@ button {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#imgw {
|
||||
#info #imgw {
|
||||
/*display: inline-block;*/
|
||||
margin: 8px auto;
|
||||
}
|
||||
@@ -654,7 +654,7 @@ img {
|
||||
border-radius: 10px;
|
||||
background: var(--c-3);
|
||||
color: var(--c-f);
|
||||
padding: 4px 4px 2px;
|
||||
padding: 2px 4px;
|
||||
font-size: 14px;
|
||||
right: 3px;
|
||||
transition: visibility 0.25s ease, opacity 0.25s ease;
|
||||
@@ -780,7 +780,7 @@ input[type=range]::-moz-range-thumb {
|
||||
margin: 0;
|
||||
}
|
||||
.btn-icon {
|
||||
margin: -4px 4px 0 0;
|
||||
margin: -4px 4px -1px 0;
|
||||
vertical-align: middle;
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -911,7 +911,7 @@ input[type=text] {
|
||||
background: var(--c-3);
|
||||
color: var(--c-f);
|
||||
border: 0px solid var(--c-2);
|
||||
border-radius: 5px;
|
||||
border-radius: 10px;
|
||||
padding: 8px;
|
||||
/*margin: 6px 6px 6px 0;*/
|
||||
font-size: 19px;
|
||||
@@ -971,7 +971,7 @@ textarea {
|
||||
}
|
||||
|
||||
.ptxt {
|
||||
margin: 0 4px 4px !important;
|
||||
margin: -1px 4px 8px !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -1191,7 +1191,7 @@ TD .checkmark, TD .radiomark {
|
||||
/* segment & preset wrapper */
|
||||
.seg, .pres {
|
||||
background-color: var(--c-2);
|
||||
color: var(--c-f);
|
||||
/*color: var(--c-f);*/ /* seems to affect only the Add segment button, which should be same color as reset segments */
|
||||
border: 0px solid var(--c-f);
|
||||
text-align: left;
|
||||
transition: background-color 0.5s;
|
||||
@@ -1282,6 +1282,10 @@ TD .checkmark, TD .radiomark {
|
||||
background-color: var(--c-3);
|
||||
}
|
||||
|
||||
/*.selected .radiomark {
|
||||
border: 1px solid var(--c-3);
|
||||
}*/
|
||||
|
||||
/* selected list item */
|
||||
.lstI.selected {
|
||||
top: 0;
|
||||
@@ -1332,7 +1336,7 @@ TD .checkmark, TD .radiomark {
|
||||
/* list item palette preview */
|
||||
.lstIprev {
|
||||
width: 100%;
|
||||
height: 7px;
|
||||
height: 6px;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
@@ -1402,6 +1406,10 @@ TD .checkmark, TD .radiomark {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
.m6 {
|
||||
margin: 6px 0;
|
||||
}
|
||||
|
||||
.c {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1415,6 +1423,7 @@ TD .checkmark, TD .radiomark {
|
||||
color: red;
|
||||
}
|
||||
|
||||
/* horizontal divider (playlist entries) */
|
||||
.hrz {
|
||||
width: auto;
|
||||
height: 2px;
|
||||
|
||||
@@ -414,7 +414,7 @@ function presetError(empty)
|
||||
else
|
||||
cn += `Here is a backup of the last known good state:`;
|
||||
cn += `<textarea id="bck"></textarea><br>
|
||||
<button class="btn btn-p" onclick="cpBck()">Copy to clipboard</button>`;
|
||||
<button class="btn" onclick="cpBck()">Copy to clipboard</button>`;
|
||||
}
|
||||
cn += `</div>`;
|
||||
gId('pcont').innerHTML = cn;
|
||||
@@ -1699,7 +1699,7 @@ function makeSeg()
|
||||
<tr>
|
||||
<td><input class="noslide segn" id="seg${lu}s" type="number" min="0" max="${isM?mw-1:ledCount-1}" value="${ns}" oninput="updateLen(${lu})" onkeydown="segEnter(${lu})"></td>
|
||||
<td><input class="noslide segn" id="seg${lu}e" type="number" min="0" max="${ct}" value="${ct}" oninput="updateLen(${lu})" onkeydown="segEnter(${lu})"></td>
|
||||
<td><button class="btn btn-xs" onclick="setSeg(${lu});resetUtil();"><i class="icons bth-icon" id="segc${lu}"></i></button></td>
|
||||
<td><button class="btn btn-xs" onclick="setSeg(${lu});"><i class="icons bth-icon" id="segc${lu}"></i></button></td>
|
||||
</tr>
|
||||
${isM ? '<tr><td>Start Y</td><td>'+(cfg.comp.seglen?'Height':'Stop Y')+'</td></tr>'+
|
||||
'<tr>'+
|
||||
@@ -1719,7 +1719,7 @@ function resetUtil()
|
||||
// gId('segutil').innerHTML = '<button class="btn btn-s" onclick="makeSeg()"><i class="icons btn-icon"></i>segment</button>';
|
||||
gId('segutil').innerHTML = '<div class="seg btn btn-s" style="border-radius:24px;padding:0;">'
|
||||
+ '<label class="check schkl"><input type="checkbox" id="selall" onchange="selSegAll(this)"><span class="checkmark"></span></label>'
|
||||
+ '<div class="segname" onclick="makeSeg()"><i class="icons btn-icon"></i>segment</div></div>';
|
||||
+ '<div class="segname" onclick="makeSeg()"><i class="icons btn-icon"></i>Add segment</div></div>';
|
||||
}
|
||||
|
||||
var plJson = {"0":{
|
||||
@@ -1854,7 +1854,7 @@ ${makePlSel(plJson[i].end?plJson[i].end:0, true)}
|
||||
<input type="checkbox" id="p${i}sbchk">
|
||||
<span class="checkmark"></span>
|
||||
</label>`;
|
||||
if (Array.isArray(lastinfo.maps) && lastinfo.maps.length>1) {
|
||||
if (Array.isArray(lastinfo.maps) && lastinfo.maps.length>0) {
|
||||
content += `<div class="lbl-l">Ledmap: <div class="sel-p"><select class="sel-p" id="p${i}lmp"><option value="">Unchanged</option>`;
|
||||
for (const k of (lastinfo.maps||[])) content += `<option value="${k}"${(i>0 && pJson[i].ledmap==k)?" selected":""}>${k==0?'Default':'ledmap'+k+'.json'}</option>`;
|
||||
content += "</select></div></div>";
|
||||
@@ -1873,9 +1873,9 @@ ${makePlSel(plJson[i].end?plJson[i].end:0, true)}
|
||||
<span class="checkmark"></span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="po2" id="p${i}o2">API command<br><textarea class="apitxt" id="p${i}api"></textarea></div>
|
||||
<div class="po2" id="p${i}o2">API command<br><textarea class="apitxt noslide" id="p${i}api"></textarea></div>
|
||||
<div class="po1" id="p${i}o1">${content}</div>
|
||||
<div class="c">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" max=250 min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
||||
<div class="c m6">Save to ID <input class="noslide" id="p${i}id" type="number" oninput="checkUsed(${i})" max=250 min=1 value=${(i>0)?i:getLowestUnusedP()}></div>
|
||||
<div class="c">
|
||||
<button class="btn btn-p" onclick="saveP(${i},${pl})"><i class="icons btn-icon"></i>Save</button>
|
||||
${(i>0)?'<button class="btn btn-p" id="p'+i+'del" onclick="delP('+i+')"><i class="icons btn-icon"></i>Delete':'<button class="btn btn-p" onclick="resetPUtil()">Cancel'}</button>
|
||||
@@ -1936,7 +1936,8 @@ function makePlUtil()
|
||||
if (plJson[0].transition[0] < 0) plJson[0].transition[0] = tr;
|
||||
let p = gId('putil');
|
||||
p.classList.remove('staybot');
|
||||
p.innerHTML = `<div class="pres"><div class="segin expanded" id="seg100">${makeP(0,true)}</div></div>`;
|
||||
p.classList.add('pres');
|
||||
p.innerHTML = `<div class="presin expanded" id="seg100">${makeP(0,true)}</div></div>`;
|
||||
refreshPlE(0);
|
||||
gId('p0txt').focus();
|
||||
p.scrollIntoView({
|
||||
@@ -1952,8 +1953,8 @@ function resetPUtil()
|
||||
let p = gId('putil');
|
||||
p.classList.add('staybot');
|
||||
p.classList.remove('pres');
|
||||
p.innerHTML = `<button class="btn btn-s" onclick="makePUtil()" style="float:left;"><i class="icons btn-icon"></i>preset</button>`
|
||||
+ `<button class="btn btn-s" onclick="makePlUtil()" style="float:right;"><i class="icons btn-icon"></i>playlist</button>`;
|
||||
p.innerHTML = `<button class="btn btn-s" onclick="makePUtil()" style="float:left;"><i class="icons btn-icon"></i>Preset</button>`
|
||||
+ `<button class="btn btn-s" onclick="makePlUtil()" style="float:right;"><i class="icons btn-icon"></i>Playlist</button>`;
|
||||
}
|
||||
|
||||
function tglCs(i)
|
||||
@@ -2027,13 +2028,21 @@ function rptSeg(s)
|
||||
function setSeg(s)
|
||||
{
|
||||
var name = gId(`seg${s}t`).value;
|
||||
var start = parseInt(gId(`seg${s}s`).value);
|
||||
var stop = parseInt(gId(`seg${s}e`).value);
|
||||
let sX = gId(`seg${s}s`);
|
||||
let eX = gId(`seg${s}e`);
|
||||
var start = parseInt(sX.value);
|
||||
var stop = parseInt(eX.value);
|
||||
if (start<sX.min || start>sX.max) {sX.value=sX.min; return;} // prevent out of bounds
|
||||
if (stop<eX.min || stop>eX.max) {eX.value=eX.max; return;} // prevent out of bounds
|
||||
if ((cfg.comp.seglen && stop == 0) || (!cfg.comp.seglen && stop <= start)) {delSeg(s); return;}
|
||||
var obj = {"seg": {"id": s, "n": name, "start": start, "stop": (cfg.comp.seglen?start:0)+stop}};
|
||||
if (isM) {
|
||||
var startY = parseInt(gId(`seg${s}sY`).value);
|
||||
var stopY = parseInt(gId(`seg${s}eY`).value);
|
||||
let sY = gId(`seg${s}sY`);
|
||||
let eY = gId(`seg${s}eY`);
|
||||
var startY = parseInt(sY.value);
|
||||
var stopY = parseInt(eY.value);
|
||||
if (startY<sY.min || startY>sY.max) {sY.value=sY.min; return;} // prevent out of bounds
|
||||
if (stopY<eY.min || stop>eY.max) {eY.value=eY.max; return;} // prevent out of bounds
|
||||
obj.seg.startY = startY;
|
||||
obj.seg.stopY = (cfg.comp.seglen?startY:0)+stopY;
|
||||
}
|
||||
@@ -2046,6 +2055,7 @@ function setSeg(s)
|
||||
obj.seg.of = ofs;
|
||||
if (isM) obj.seg.tp = gId(`seg${s}tp`).checked;
|
||||
}
|
||||
resetUtil(); // close add segment dialog just in case
|
||||
requestJson(obj);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,9 +104,15 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
//WLEDMM util function
|
||||
function initCap(s) {
|
||||
if (typeof s !== 'string') return ''
|
||||
return s.charAt(0).toUpperCase() + s.slice(1)
|
||||
}
|
||||
function addField(k,f,o,a=false) { //key, field, (sub)object, isArray
|
||||
if (isO(o)) {
|
||||
urows += '<hr class="sml">';
|
||||
if (f!=='unknown' && !k.includes(":")) urows += `<p><u>${initCap(f)}</u></p>`; //WLEDMM show group title
|
||||
for (const [s,v] of Object.entries(o)) {
|
||||
// possibility to nest objects (only 1 level)
|
||||
if (f!=='unknown' && !k.includes(":")) addField(k+":"+f,s,v);
|
||||
@@ -135,8 +141,7 @@
|
||||
t = "text"; c = `value="${o}" style="width:250px;"`;
|
||||
break;
|
||||
}
|
||||
if (k.includes(":")) urows += k.substr(k.indexOf(":")+1);
|
||||
urows += ` ${f}: `;
|
||||
urows += ` ${initCap(f)} `; //WLEDMM only show field (key is shown in grouping)
|
||||
// https://stackoverflow.com/questions/11657123/posting-both-checked-and-unchecked-checkboxes
|
||||
if (t=="checkbox") urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="false">`;
|
||||
else if (!a) urows += `<input type="hidden" name="${k}:${f}${a?"[]":""}" value="${t}">`;
|
||||
@@ -179,11 +184,19 @@
|
||||
}
|
||||
}
|
||||
// https://stackoverflow.com/questions/26440494/insert-text-after-this-input-element-with-javascript
|
||||
function addInfo(name,el,txt) {
|
||||
//WLEDMM Add pre and post texts
|
||||
function addInfo(name,el,txt, txt2="") {
|
||||
let obj = d.getElementsByName(name);
|
||||
if (!obj.length) return;
|
||||
if (typeof el === "string" && obj[0]) obj[0].placeholder = el;
|
||||
else if (obj[el]) obj[el].insertAdjacentHTML('afterend', ' '+txt);
|
||||
else if (obj[el]) {
|
||||
if (txt2!="") {
|
||||
obj[el].insertAdjacentHTML('beforebegin', txt + ' ');
|
||||
obj[el].insertAdjacentHTML('afterend', ' '+txt2);
|
||||
}
|
||||
else
|
||||
obj[el].insertAdjacentHTML('afterend', ' '+txt);
|
||||
}
|
||||
}
|
||||
// load settings and insert values into DOM
|
||||
function ldS() {
|
||||
|
||||
@@ -334,7 +334,7 @@ int16_t extractModeDefaults(uint8_t mode, const char *segVar);
|
||||
uint16_t crc16(const unsigned char* data_p, size_t length);
|
||||
um_data_t* simulateSound(uint8_t simulationId);
|
||||
void enumerateLedmaps();
|
||||
CRGB getCRGBForBand(int x, uint8_t *fftResult); //WLEDMM netmindz ar palette
|
||||
CRGB getCRGBForBand(int x, uint8_t *fftResult, int pal); //WLEDMM netmindz ar palette
|
||||
|
||||
#ifdef WLED_ADD_EEPROM_SUPPORT
|
||||
//wled_eeprom.cpp
|
||||
|
||||
@@ -41,46 +41,46 @@ const char PAGE_dmxmap[] PROGMEM = R"=====()=====";
|
||||
#endif
|
||||
|
||||
// Autogenerated from wled00/data/update.htm, do not edit!!
|
||||
const uint16_t PAGE_update_length = 603;
|
||||
const uint16_t PAGE_update_length = 605;
|
||||
const uint8_t PAGE_update[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0x75, 0x53, 0xd1, 0x6e, 0xd3, 0x30,
|
||||
0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0x66, 0x0f, 0xc4, 0x0b, 0x23, 0xc9, 0x50, 0xd9,
|
||||
0x84, 0x90, 0x98, 0x36, 0x69, 0x1b, 0x88, 0x27, 0xe4, 0xc4, 0x37, 0x8d, 0xa9, 0x63, 0x67, 0xf6,
|
||||
0x4d, 0xab, 0x0a, 0xed, 0xdf, 0xb9, 0x76, 0xda, 0x81, 0x34, 0x78, 0x68, 0x55, 0xc7, 0xe7, 0x9e,
|
||||
0x9e, 0x7b, 0xce, 0x49, 0x79, 0x72, 0x79, 0xf3, 0xf1, 0xfe, 0xfb, 0xed, 0x15, 0xeb, 0x71, 0xb0,
|
||||
0x75, 0x79, 0xf8, 0x06, 0xa5, 0xeb, 0x72, 0x00, 0x54, 0xac, 0xf5, 0x0e, 0xc1, 0x61, 0xc5, 0x77,
|
||||
0x46, 0x63, 0x5f, 0x69, 0xd8, 0x9a, 0x16, 0x4e, 0xf3, 0x81, 0x33, 0xa7, 0x06, 0xa8, 0xf8, 0xd6,
|
||||
0xc0, 0x6e, 0xf4, 0x01, 0x79, 0x5d, 0x94, 0x68, 0xd0, 0x42, 0xfd, 0xed, 0xcb, 0xd5, 0x25, 0x7b,
|
||||
0x18, 0xb5, 0x42, 0x28, 0xe5, 0xfc, 0xa8, 0x8c, 0x6d, 0x30, 0x23, 0xd6, 0x45, 0x37, 0xb9, 0x16,
|
||||
0x8d, 0x77, 0x6c, 0xb5, 0x58, 0xfe, 0xda, 0x19, 0xa7, 0xfd, 0x4e, 0xf4, 0x26, 0xa2, 0x0f, 0x7b,
|
||||
0xd1, 0xa8, 0x76, 0xb3, 0x58, 0x3e, 0x3d, 0x43, 0x1e, 0x08, 0xa2, 0x7d, 0x3b, 0x0d, 0xa4, 0x40,
|
||||
0xac, 0x01, 0xaf, 0x2c, 0xa4, 0x9f, 0xab, 0xfd, 0x67, 0xbd, 0xe0, 0x53, 0xc7, 0x97, 0x22, 0xe2,
|
||||
0xde, 0x82, 0xd0, 0x26, 0x8e, 0x56, 0xed, 0x2b, 0xee, 0xbc, 0x03, 0xfe, 0xea, 0xbf, 0x23, 0x43,
|
||||
0x5c, 0xbf, 0x9c, 0x69, 0xac, 0x6f, 0x37, 0xfc, 0xa9, 0x28, 0xe5, 0x41, 0xe2, 0x41, 0x2a, 0x8b,
|
||||
0xa1, 0xad, 0xb8, 0x8c, 0x80, 0x68, 0xdc, 0x3a, 0xca, 0x28, 0x7e, 0xc6, 0x8b, 0xb1, 0x7a, 0xc7,
|
||||
0xeb, 0xbf, 0x90, 0x89, 0xaa, 0x2e, 0x3e, 0x98, 0x21, 0x19, 0xc0, 0xa6, 0x60, 0x17, 0x7c, 0xa6,
|
||||
0x6f, 0x63, 0xe4, 0xcb, 0xf7, 0x84, 0xcc, 0x88, 0x52, 0xce, 0x96, 0x36, 0x5e, 0xef, 0x99, 0x77,
|
||||
0xd6, 0x2b, 0x5d, 0xf1, 0x4f, 0x80, 0x5f, 0x17, 0x4b, 0xa2, 0xeb, 0xdf, 0xd4, 0xc5, 0xb5, 0xf7,
|
||||
0xee, 0xda, 0x6b, 0x96, 0xad, 0xbb, 0xf3, 0x1d, 0xee, 0x54, 0x80, 0x67, 0x0f, 0x09, 0x51, 0x76,
|
||||
0x3e, 0x0c, 0x8c, 0x32, 0xe9, 0x3d, 0xcd, 0xde, 0xde, 0xdc, 0xdd, 0x73, 0xa6, 0xb2, 0x4d, 0x24,
|
||||
0x72, 0xca, 0x38, 0xce, 0x0c, 0x5d, 0x91, 0x2f, 0xac, 0x00, 0x72, 0x70, 0x3f, 0x52, 0x38, 0xc3,
|
||||
0x64, 0xd1, 0x8c, 0x2a, 0xa0, 0x4c, 0xf3, 0xa7, 0x04, 0x53, 0x9c, 0x14, 0xc4, 0xa9, 0x19, 0x0c,
|
||||
0xa5, 0xfa, 0x90, 0x05, 0xc4, 0x51, 0x39, 0xd6, 0x5a, 0x15, 0x63, 0xc5, 0xa3, 0x19, 0x79, 0x7d,
|
||||
0x26, 0x5e, 0xbf, 0x15, 0x67, 0x82, 0x3e, 0xb4, 0x01, 0x5d, 0x52, 0xb2, 0x4d, 0xa8, 0x2f, 0xfd,
|
||||
0x2e, 0x4b, 0x67, 0xd8, 0x03, 0xb3, 0xf4, 0x87, 0x11, 0x59, 0x00, 0x0b, 0x2a, 0xc2, 0x39, 0x2b,
|
||||
0x15, 0x2b, 0xfa, 0x00, 0x5d, 0xc5, 0x7b, 0xc4, 0x31, 0x9e, 0x4b, 0xb9, 0x36, 0xd8, 0x4f, 0x8d,
|
||||
0x68, 0xfd, 0x20, 0x0f, 0xdb, 0x4d, 0x16, 0xa2, 0x4c, 0x1b, 0xca, 0xc3, 0x58, 0xe4, 0x0c, 0x55,
|
||||
0xa0, 0x98, 0x2a, 0xfe, 0xa3, 0xb1, 0xca, 0x6d, 0x48, 0x8c, 0x19, 0xd6, 0xac, 0xc8, 0xde, 0x1f,
|
||||
0x89, 0xe8, 0x89, 0x88, 0xbd, 0x01, 0xab, 0xa3, 0x30, 0xfe, 0xc0, 0x7b, 0xa4, 0x78, 0xc1, 0x2d,
|
||||
0xe2, 0x76, 0x7d, 0x91, 0x6d, 0xaf, 0x3a, 0x12, 0x79, 0x1a, 0x1f, 0x27, 0xb2, 0x32, 0x95, 0x53,
|
||||
0xaa, 0x3a, 0xad, 0x51, 0x1a, 0x37, 0x4e, 0xc8, 0x66, 0x7f, 0x3a, 0x63, 0xe1, 0x58, 0xe4, 0xa3,
|
||||
0x8b, 0x01, 0x1e, 0x27, 0x13, 0x40, 0xcf, 0xe8, 0x66, 0x42, 0xa4, 0x2e, 0xce, 0xf0, 0xd9, 0x37,
|
||||
0x22, 0x9b, 0x93, 0x39, 0x29, 0xe5, 0x7c, 0xfd, 0x0f, 0xe8, 0x7c, 0x48, 0x66, 0xb7, 0xd6, 0xb4,
|
||||
0x9b, 0x8a, 0xaf, 0x92, 0xd7, 0x2b, 0xaa, 0xf8, 0x9f, 0xa1, 0x1c, 0x4a, 0x5d, 0x6a, 0xb3, 0x2d,
|
||||
0x72, 0x76, 0xa9, 0xa0, 0x44, 0x53, 0x67, 0x76, 0x6a, 0x9d, 0x10, 0x82, 0xc0, 0x99, 0xfc, 0x36,
|
||||
0x6f, 0xcb, 0xb4, 0x67, 0xce, 0x23, 0x85, 0xe5, 0xe9, 0xe0, 0x03, 0x69, 0xed, 0x02, 0xc4, 0x3e,
|
||||
0x47, 0x32, 0xaa, 0x35, 0xb0, 0xf3, 0x65, 0x29, 0x89, 0x2f, 0xad, 0x9b, 0xda, 0x96, 0xaa, 0x97,
|
||||
0xde, 0xe9, 0xdf, 0x00, 0x3f, 0x0c, 0x61, 0xe9, 0x03, 0x00, 0x00
|
||||
0x14, 0x7d, 0xcf, 0x57, 0x78, 0x7e, 0x6a, 0x25, 0xe6, 0x0c, 0x04, 0x0f, 0x0c, 0x27, 0x43, 0x65,
|
||||
0x13, 0x42, 0x62, 0xda, 0xa4, 0x6d, 0x20, 0x9e, 0x90, 0x13, 0xdf, 0x34, 0xa6, 0x8e, 0x9d, 0xd9,
|
||||
0x37, 0xad, 0x2a, 0xb4, 0x7f, 0xe7, 0xda, 0x69, 0x01, 0x69, 0xf0, 0x12, 0xd5, 0xf1, 0xb9, 0xa7,
|
||||
0xe7, 0x9e, 0x73, 0x22, 0x4f, 0x2e, 0x6f, 0x3e, 0xdc, 0x7f, 0xbb, 0xbd, 0x62, 0x3d, 0x0e, 0xb6,
|
||||
0x96, 0x87, 0x27, 0x28, 0x5d, 0xcb, 0x01, 0x50, 0xb1, 0xd6, 0x3b, 0x04, 0x87, 0x15, 0xdf, 0x19,
|
||||
0x8d, 0x7d, 0xa5, 0x61, 0x6b, 0x5a, 0x38, 0xcd, 0x07, 0xce, 0x9c, 0x1a, 0xa0, 0xe2, 0x5b, 0x03,
|
||||
0xbb, 0xd1, 0x07, 0xe4, 0x75, 0x21, 0xd1, 0xa0, 0x85, 0xfa, 0xeb, 0xe7, 0xab, 0x4b, 0xf6, 0x30,
|
||||
0x6a, 0x85, 0x20, 0xcb, 0xf9, 0x95, 0x8c, 0x6d, 0x30, 0x23, 0xd6, 0x45, 0x37, 0xb9, 0x16, 0x8d,
|
||||
0x77, 0x6c, 0xb5, 0x58, 0xfe, 0xdc, 0x19, 0xa7, 0xfd, 0x4e, 0xf4, 0x26, 0xa2, 0x0f, 0x7b, 0xd1,
|
||||
0xa8, 0x76, 0xb3, 0x58, 0x3e, 0xfd, 0x86, 0x3c, 0x10, 0x44, 0xfb, 0x76, 0x1a, 0x48, 0x81, 0x58,
|
||||
0x03, 0x5e, 0x59, 0x48, 0x3f, 0x57, 0xfb, 0x4f, 0x7a, 0xc1, 0xa7, 0x8e, 0x2f, 0x45, 0xc4, 0xbd,
|
||||
0x05, 0xa1, 0x4d, 0x1c, 0xad, 0xda, 0x57, 0xdc, 0x79, 0x07, 0xfc, 0xc5, 0x7f, 0x47, 0x86, 0xb8,
|
||||
0x7e, 0x3e, 0xd3, 0x58, 0xdf, 0x6e, 0xf8, 0x53, 0x21, 0xcb, 0x83, 0xc4, 0x83, 0x54, 0x16, 0x43,
|
||||
0x5b, 0xf1, 0x32, 0x02, 0xa2, 0x71, 0xeb, 0x58, 0x46, 0xf1, 0x23, 0x5e, 0x8c, 0xd5, 0x5b, 0x5e,
|
||||
0xff, 0x85, 0x4c, 0x54, 0x75, 0xf1, 0xde, 0x0c, 0xc9, 0x00, 0x36, 0x05, 0xbb, 0xe0, 0x33, 0x7d,
|
||||
0x1b, 0x23, 0x5f, 0xbe, 0x23, 0x64, 0x46, 0xc8, 0x72, 0xb6, 0xb4, 0xf1, 0x7a, 0xcf, 0xbc, 0xb3,
|
||||
0x5e, 0xe9, 0x8a, 0x7f, 0x04, 0xfc, 0xb2, 0x58, 0x12, 0x5d, 0xff, 0xaa, 0x2e, 0xae, 0xbd, 0x77,
|
||||
0xd7, 0x5e, 0xb3, 0x6c, 0xdd, 0x9d, 0xef, 0x70, 0xa7, 0x02, 0xfc, 0xf6, 0x90, 0x10, 0xb2, 0xf3,
|
||||
0x61, 0x60, 0x94, 0x49, 0xef, 0x69, 0xf6, 0xf6, 0xe6, 0xee, 0x9e, 0x33, 0x95, 0x6d, 0x22, 0x91,
|
||||
0x53, 0xc6, 0x71, 0x66, 0xe8, 0x8a, 0x7c, 0x61, 0x05, 0x90, 0x83, 0xfb, 0x91, 0xc2, 0x19, 0x26,
|
||||
0x8b, 0x66, 0x54, 0x01, 0xcb, 0x34, 0x7f, 0x4a, 0x30, 0xc5, 0x49, 0x41, 0x9c, 0x9a, 0xc1, 0x50,
|
||||
0xaa, 0x0f, 0x59, 0x40, 0x1c, 0x95, 0x63, 0xad, 0x55, 0x31, 0x56, 0x3c, 0x9a, 0x91, 0xd7, 0x67,
|
||||
0xe2, 0xe5, 0x6b, 0x71, 0x26, 0xde, 0x88, 0x33, 0xda, 0x80, 0x2e, 0x29, 0xd9, 0x26, 0xd4, 0x97,
|
||||
0x7e, 0x97, 0xa5, 0x33, 0xec, 0x81, 0x59, 0xfa, 0xc3, 0x88, 0x2c, 0x80, 0x05, 0x15, 0xe1, 0x9c,
|
||||
0x49, 0xc5, 0x8a, 0x3e, 0x40, 0x57, 0xf1, 0x1e, 0x71, 0x8c, 0xe7, 0x65, 0xb9, 0x36, 0xd8, 0x4f,
|
||||
0x8d, 0x68, 0xfd, 0x50, 0x1e, 0xb6, 0x9b, 0x2c, 0xc4, 0x32, 0x6d, 0x58, 0x1e, 0xc6, 0x22, 0x67,
|
||||
0xa8, 0x02, 0xc5, 0x54, 0xf1, 0xef, 0x8d, 0x55, 0x6e, 0x43, 0x62, 0xcc, 0xb0, 0x66, 0x45, 0xf6,
|
||||
0xfe, 0x48, 0x44, 0x6f, 0x44, 0xec, 0x0d, 0x58, 0x1d, 0x85, 0xf1, 0x07, 0xde, 0x23, 0xc5, 0x33,
|
||||
0x6e, 0x11, 0xb7, 0xeb, 0x8b, 0x6c, 0x7b, 0xd5, 0x91, 0xc8, 0xd3, 0xf8, 0x38, 0x91, 0x95, 0xa9,
|
||||
0x9c, 0xa5, 0xaa, 0xd3, 0x1a, 0xd2, 0xb8, 0x71, 0x42, 0x36, 0xfb, 0xd3, 0x19, 0x0b, 0xc7, 0x22,
|
||||
0x1f, 0x5d, 0x0c, 0xf0, 0x38, 0x99, 0x00, 0x7a, 0x46, 0x37, 0x13, 0x22, 0x75, 0x71, 0x86, 0xcf,
|
||||
0xbe, 0x11, 0xd9, 0x9c, 0xcc, 0x89, 0x2c, 0xe7, 0xeb, 0x7f, 0x40, 0xe7, 0x43, 0x32, 0xbb, 0xb5,
|
||||
0xa6, 0xdd, 0x54, 0x7c, 0x95, 0xbc, 0x5e, 0x51, 0xc5, 0xff, 0x0c, 0xe5, 0x50, 0x6a, 0xa9, 0xcd,
|
||||
0xb6, 0xc8, 0xd9, 0xa5, 0x82, 0x12, 0x4d, 0x9d, 0xd9, 0xa9, 0x75, 0x42, 0x08, 0x02, 0x67, 0xf2,
|
||||
0xdb, 0xbc, 0x2d, 0xd3, 0x9e, 0x39, 0x8f, 0x14, 0x96, 0xa7, 0x83, 0x0f, 0xa4, 0xb5, 0x0b, 0x10,
|
||||
0xfb, 0x1c, 0xc9, 0xa8, 0xd6, 0xc0, 0xce, 0x97, 0xb2, 0x24, 0xbe, 0xb4, 0x6e, 0x6a, 0x5b, 0xaa,
|
||||
0x5e, 0xfa, 0xa6, 0x7f, 0x01, 0x6f, 0x15, 0x51, 0x11, 0xe9, 0x03, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1470,336 +1470,341 @@ const uint8_t PAGE_settings_time[] PROGMEM = {
|
||||
|
||||
|
||||
// Autogenerated from wled00/data/settings_sec.htm, do not edit!!
|
||||
const uint16_t PAGE_settings_sec_length = 2405;
|
||||
const uint16_t PAGE_settings_sec_length = 2406;
|
||||
const uint8_t PAGE_settings_sec[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xa5, 0x58, 0x6d, 0x73, 0xd3, 0x48,
|
||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x19, 0xaa, 0xb2, 0xd6, 0xa1, 0x48, 0x4e, 0xe0, 0xb6, 0x20, 0x44,
|
||||
0xe6, 0x12, 0x12, 0x96, 0x5c, 0x25, 0x24, 0x85, 0xcd, 0x72, 0x57, 0x1c, 0x45, 0x8d, 0xa5, 0xb1,
|
||||
0x35, 0x58, 0xd6, 0x68, 0x67, 0x46, 0x31, 0x3e, 0x76, 0xff, 0xfb, 0x3d, 0x3d, 0x92, 0x6c, 0x27,
|
||||
0x04, 0x28, 0xea, 0x3e, 0x24, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xda,
|
||||
0x39, 0xbd, 0x7a, 0x31, 0xfe, 0xf7, 0xf5, 0x19, 0xcb, 0xdd, 0xa2, 0x18, 0x1e, 0xd1, 0x7f, 0x56,
|
||||
0x88, 0x72, 0x96, 0x70, 0x59, 0x72, 0x3c, 0x4b, 0x91, 0x0d, 0x8f, 0x16, 0xd2, 0x09, 0x56, 0x8a,
|
||||
0x85, 0x4c, 0xf8, 0x8d, 0x92, 0xcb, 0x4a, 0x1b, 0xc7, 0x59, 0xaa, 0x4b, 0x27, 0x4b, 0x97, 0xf0,
|
||||
0xa5, 0xca, 0x5c, 0x9e, 0xfc, 0x7d, 0x30, 0xe0, 0xc3, 0x5e, 0xb3, 0xb5, 0x77, 0xe7, 0x5d, 0x26,
|
||||
0x6f, 0x54, 0x2a, 0xf7, 0xfc, 0x43, 0xa8, 0x4a, 0xe5, 0x94, 0x28, 0xf6, 0x6c, 0x2a, 0x0a, 0x99,
|
||||
0xec, 0x87, 0x0b, 0xf1, 0x59, 0x2d, 0xea, 0xc5, 0xfa, 0xb9, 0xb6, 0xd2, 0xf8, 0x07, 0x31, 0xc1,
|
||||
0x73, 0xa9, 0x39, 0xeb, 0xdd, 0x51, 0xdd, 0x1a, 0x94, 0xe6, 0xc2, 0x58, 0x09, 0x25, 0xb5, 0x9b,
|
||||
0xee, 0x3d, 0xc1, 0xaa, 0x53, 0xae, 0x90, 0xc3, 0x4b, 0x65, 0x53, 0x36, 0x92, 0xce, 0xa9, 0x72,
|
||||
0x66, 0x8f, 0xe2, 0x66, 0xf1, 0xc8, 0xa6, 0x46, 0x55, 0x6e, 0xd8, 0xbb, 0x11, 0x86, 0x15, 0x3a,
|
||||
0x55, 0x55, 0xe8, 0xd4, 0x42, 0xea, 0xda, 0x85, 0x59, 0x92, 0xe9, 0xb4, 0x5e, 0xc0, 0xdc, 0x10,
|
||||
0x2f, 0x92, 0x9d, 0xfd, 0x67, 0xd3, 0xba, 0x4c, 0x9d, 0xd2, 0x25, 0x7b, 0xd5, 0x0f, 0xbe, 0x2c,
|
||||
0x55, 0x99, 0xe9, 0x65, 0xa4, 0x2b, 0x59, 0xf6, 0x79, 0xee, 0x5c, 0x65, 0x0f, 0xe3, 0x78, 0x5e,
|
||||
0xea, 0x68, 0x59, 0xc8, 0x2c, 0x9a, 0xc9, 0x78, 0x2a, 0x85, 0xab, 0x8d, 0xb4, 0xb1, 0x6d, 0x75,
|
||||
0xc6, 0x0f, 0xac, 0x4c, 0x6b, 0xa3, 0xdc, 0x6a, 0xaf, 0x5b, 0xe2, 0xc1, 0x5f, 0x6b, 0xa1, 0x27,
|
||||
0x77, 0x85, 0xae, 0x0f, 0xf2, 0x90, 0x7f, 0xb4, 0xb2, 0x98, 0x6e, 0xef, 0x7e, 0xfb, 0xd5, 0xee,
|
||||
0xba, 0xca, 0x84, 0x93, 0xf7, 0xed, 0x9d, 0x9d, 0x67, 0x7d, 0x19, 0x7c, 0x31, 0x12, 0xf6, 0x94,
|
||||
0x8c, 0x8c, 0x73, 0x67, 0x85, 0x24, 0xcf, 0x4e, 0x56, 0xfe, 0xd5, 0x66, 0xab, 0xb2, 0x57, 0x93,
|
||||
0x4f, 0x5b, 0x9b, 0xe5, 0xee, 0x2e, 0xd7, 0x93, 0x4f, 0x32, 0x75, 0x3c, 0x49, 0xdc, 0xaa, 0x92,
|
||||
0x7a, 0x4a, 0x6b, 0x3b, 0xc7, 0xc6, 0x88, 0x55, 0xa4, 0xac, 0xff, 0xbc, 0x25, 0xa1, 0xd0, 0x22,
|
||||
0xfb, 0xe7, 0xa8, 0x2f, 0x43, 0x97, 0xec, 0x0c, 0x82, 0x2f, 0x85, 0x74, 0x4c, 0x27, 0x59, 0x94,
|
||||
0x1a, 0xc0, 0x21, 0x5b, 0xb5, 0x7d, 0xde, 0xc0, 0xce, 0x83, 0x67, 0x3a, 0x82, 0x97, 0xc7, 0xce,
|
||||
0x19, 0x35, 0xa9, 0x9d, 0xc4, 0x0b, 0x93, 0xf2, 0x50, 0x06, 0xe1, 0xdd, 0x75, 0xd2, 0x0d, 0xdf,
|
||||
0x9c, 0xfc, 0xec, 0xe2, 0x4f, 0xe2, 0x46, 0x74, 0x02, 0xbe, 0xda, 0x28, 0xec, 0xaa, 0x84, 0x08,
|
||||
0x17, 0x84, 0x59, 0x34, 0xd1, 0xd9, 0x2a, 0x12, 0x15, 0xf0, 0xc9, 0x5e, 0xe4, 0xaa, 0xc8, 0xfa,
|
||||
0x9a, 0xf6, 0x8b, 0x2c, 0x3b, 0xbb, 0x81, 0x15, 0x17, 0xca, 0x22, 0x19, 0xa5, 0xe9, 0x73, 0xb2,
|
||||
0x99, 0x87, 0xfd, 0x20, 0x19, 0x7e, 0xf9, 0x4d, 0xba, 0xdf, 0xfb, 0x41, 0x08, 0x99, 0x27, 0xe9,
|
||||
0xfc, 0xa5, 0x2a, 0x24, 0xe5, 0x58, 0x9f, 0x10, 0xe4, 0x93, 0x74, 0x9e, 0x4e, 0x67, 0x3c, 0xf8,
|
||||
0xe6, 0xdb, 0x0a, 0xd1, 0x96, 0x0e, 0x41, 0x0d, 0xfe, 0xba, 0x5f, 0x8f, 0x34, 0x46, 0x1b, 0xb8,
|
||||
0x07, 0x3d, 0xa8, 0x04, 0xab, 0x0b, 0x19, 0x15, 0x7a, 0xd6, 0xe7, 0x67, 0xb4, 0xce, 0x5a, 0xf0,
|
||||
0x10, 0x71, 0x36, 0x85, 0x68, 0x0f, 0x03, 0x52, 0xdf, 0x00, 0xae, 0x8b, 0x76, 0x1d, 0xe8, 0xe3,
|
||||
0x12, 0xfe, 0xee, 0x5f, 0x31, 0x19, 0xaa, 0x58, 0xeb, 0x50, 0x24, 0x27, 0xb0, 0x5b, 0x40, 0x22,
|
||||
0x73, 0x09, 0x09, 0x47, 0xae, 0x12, 0x92, 0xc2, 0x66, 0xb9, 0x2b, 0x8e, 0xa2, 0xc6, 0xd2, 0xd8,
|
||||
0x1a, 0x2c, 0x6b, 0xb4, 0x33, 0xa3, 0x18, 0x1f, 0xbb, 0xff, 0xfd, 0x9e, 0x1e, 0x49, 0xb6, 0x13,
|
||||
0x12, 0x28, 0xea, 0x3e, 0x24, 0xb6, 0x46, 0x33, 0xfd, 0xf2, 0x74, 0xf7, 0xd3, 0x3d, 0x3e, 0xdc,
|
||||
0x39, 0xb9, 0x7c, 0x39, 0xfe, 0xf7, 0xd5, 0x29, 0xcb, 0xdd, 0xa2, 0x18, 0x1e, 0xd2, 0x7f, 0x56,
|
||||
0x88, 0x72, 0x96, 0x70, 0x59, 0x72, 0x3c, 0x4b, 0x91, 0x0d, 0x0f, 0x17, 0xd2, 0x09, 0x56, 0x8a,
|
||||
0x85, 0x4c, 0xf8, 0xb5, 0x92, 0xcb, 0x4a, 0x1b, 0xc7, 0x59, 0xaa, 0x4b, 0x27, 0x4b, 0x97, 0xf0,
|
||||
0xa5, 0xca, 0x5c, 0x9e, 0xfc, 0x3a, 0x18, 0xf0, 0x61, 0xaf, 0xd9, 0xda, 0xbb, 0xf5, 0x2e, 0x93,
|
||||
0xd7, 0x2a, 0x95, 0xbb, 0xfe, 0x21, 0x54, 0xa5, 0x72, 0x4a, 0x14, 0xbb, 0x36, 0x15, 0x85, 0x4c,
|
||||
0xf6, 0xc2, 0x85, 0xf8, 0xa2, 0x16, 0xf5, 0x62, 0xfd, 0x5c, 0x5b, 0x69, 0xfc, 0x83, 0x98, 0xe0,
|
||||
0xb9, 0xd4, 0x9c, 0xf5, 0x6e, 0xa9, 0x6e, 0x0d, 0x4a, 0x73, 0x61, 0xac, 0x84, 0x92, 0xda, 0x4d,
|
||||
0x77, 0x9f, 0x62, 0xd5, 0x29, 0x57, 0xc8, 0xe1, 0x85, 0xb2, 0x29, 0x1b, 0x49, 0xe7, 0x54, 0x39,
|
||||
0xb3, 0x87, 0x71, 0xb3, 0x78, 0x68, 0x53, 0xa3, 0x2a, 0x37, 0xec, 0x5d, 0x0b, 0xc3, 0x0a, 0x9d,
|
||||
0xaa, 0x2a, 0x74, 0x6a, 0x21, 0x75, 0xed, 0xc2, 0x2c, 0xc9, 0x74, 0x5a, 0x2f, 0x60, 0x6e, 0x88,
|
||||
0x17, 0xc9, 0xce, 0xde, 0xc1, 0xb4, 0x2e, 0x53, 0xa7, 0x74, 0xc9, 0x5e, 0xf7, 0x83, 0xaf, 0x4b,
|
||||
0x55, 0x66, 0x7a, 0x19, 0xe9, 0x4a, 0x96, 0x7d, 0x9e, 0x3b, 0x57, 0xd9, 0xe7, 0x71, 0x3c, 0x2f,
|
||||
0x75, 0xb4, 0x2c, 0x64, 0x16, 0xcd, 0x64, 0x3c, 0x95, 0xc2, 0xd5, 0x46, 0xda, 0xd8, 0xb6, 0x3a,
|
||||
0xe3, 0x07, 0x56, 0xa6, 0xb5, 0x51, 0x6e, 0xb5, 0xdb, 0x2d, 0xf1, 0xe0, 0xaf, 0xb5, 0xd0, 0xe3,
|
||||
0xdb, 0x42, 0xd7, 0x07, 0x79, 0xc8, 0x3f, 0x59, 0x59, 0x4c, 0xb7, 0x77, 0xbf, 0xfb, 0x66, 0x77,
|
||||
0x5d, 0x65, 0xc2, 0xc9, 0xbb, 0xf6, 0xce, 0xce, 0xb2, 0xbe, 0x0c, 0xbe, 0x1a, 0x09, 0x7b, 0x4a,
|
||||
0x46, 0xc6, 0xb9, 0xd3, 0x42, 0x92, 0x67, 0xc7, 0x2b, 0xff, 0x6a, 0xb3, 0x55, 0xd9, 0xcb, 0xc9,
|
||||
0xe7, 0xad, 0xcd, 0xf2, 0xe1, 0x43, 0xae, 0x27, 0x9f, 0x65, 0xea, 0x78, 0x92, 0xb8, 0x55, 0x25,
|
||||
0xf5, 0x94, 0xd6, 0x76, 0x8e, 0x8c, 0x11, 0xab, 0x48, 0x59, 0xff, 0x79, 0x43, 0x42, 0xa1, 0x45,
|
||||
0xf6, 0xcf, 0x51, 0x5f, 0x86, 0x2e, 0xd9, 0x19, 0x04, 0x5f, 0x0b, 0xe9, 0x98, 0x4e, 0xb2, 0x28,
|
||||
0x35, 0x80, 0x43, 0xb6, 0x6a, 0xfb, 0xbc, 0x81, 0x9d, 0x07, 0x07, 0x3a, 0x82, 0x97, 0x47, 0xce,
|
||||
0x19, 0x35, 0xa9, 0x9d, 0xc4, 0x0b, 0x93, 0xf2, 0x50, 0x06, 0xe1, 0xed, 0x75, 0xd2, 0x0d, 0xdf,
|
||||
0x9c, 0xfc, 0xe2, 0xe2, 0xcf, 0xe2, 0x5a, 0x74, 0x02, 0xbe, 0xd9, 0x28, 0xec, 0xaa, 0x84, 0x08,
|
||||
0x17, 0x84, 0x59, 0x34, 0xd1, 0xd9, 0x2a, 0x12, 0x15, 0xf0, 0xc9, 0x5e, 0xe6, 0xaa, 0xc8, 0xfa,
|
||||
0x9a, 0xf6, 0x8b, 0x2c, 0x3b, 0xbd, 0x86, 0x15, 0xe7, 0xca, 0x22, 0x19, 0xa5, 0xe9, 0x73, 0xb2,
|
||||
0x99, 0x87, 0xfd, 0x20, 0x19, 0x7e, 0xfd, 0x87, 0x74, 0xbf, 0xf7, 0x83, 0x10, 0x32, 0x8f, 0xd3,
|
||||
0xf9, 0x2b, 0x55, 0x48, 0xca, 0xb1, 0x3e, 0x21, 0xc8, 0x27, 0xe9, 0x3c, 0x9d, 0xce, 0x78, 0x70,
|
||||
0xef, 0xdb, 0x0a, 0xd1, 0x96, 0x0e, 0x41, 0x0d, 0xfe, 0xba, 0x5b, 0x8f, 0x34, 0x46, 0x1b, 0xb8,
|
||||
0x07, 0x3d, 0xa8, 0x04, 0xab, 0x0b, 0x19, 0x15, 0x7a, 0xd6, 0xe7, 0xa7, 0xb4, 0xce, 0x5a, 0xf0,
|
||||
0x10, 0x71, 0x36, 0x85, 0x68, 0x0f, 0x03, 0x52, 0xdf, 0x00, 0xae, 0xf3, 0x76, 0x1d, 0xe8, 0xe3,
|
||||
0xe0, 0x54, 0xcd, 0x6a, 0x23, 0x3c, 0xda, 0x0d, 0x0c, 0x6c, 0x2a, 0x14, 0x65, 0xdd, 0x7f, 0xca,
|
||||
0xf3, 0x32, 0xd5, 0x8b, 0x0a, 0xa0, 0x4b, 0x56, 0x89, 0x99, 0x64, 0x48, 0x09, 0xb1, 0x83, 0x5c,
|
||||
0xd8, 0x0a, 0x90, 0xcd, 0xf5, 0x72, 0xac, 0x85, 0x75, 0x4d, 0x8c, 0xf6, 0x83, 0x2f, 0x94, 0xfb,
|
||||
0x3a, 0xf1, 0x5e, 0x38, 0x7a, 0xe1, 0xc3, 0xa2, 0x4a, 0x98, 0xfc, 0x6a, 0x7c, 0x79, 0x91, 0x48,
|
||||
0xf8, 0x92, 0x16, 0xc2, 0x5a, 0x72, 0x84, 0xbc, 0xea, 0xbb, 0xe7, 0xad, 0x2b, 0x87, 0x9c, 0xa4,
|
||||
0x21, 0x0a, 0x69, 0x21, 0x85, 0x19, 0x37, 0x95, 0xd3, 0x6f, 0x2b, 0xc8, 0xc7, 0xc6, 0xad, 0xe0,
|
||||
0xa4, 0x28, 0xd5, 0xc2, 0xdb, 0x9b, 0xf0, 0x52, 0x97, 0xf0, 0xac, 0xdd, 0x91, 0x00, 0xae, 0xee,
|
||||
0x50, 0xbf, 0x33, 0x10, 0x89, 0xbd, 0xad, 0xcf, 0xc8, 0x85, 0xbe, 0xa1, 0xc4, 0xf0, 0x8a, 0x00,
|
||||
0xec, 0xc1, 0xd3, 0xc1, 0x60, 0xcb, 0x9d, 0xba, 0x22, 0xd0, 0x28, 0x16, 0xe4, 0x4f, 0xe7, 0x4c,
|
||||
0x29, 0x97, 0xec, 0x5f, 0x97, 0x17, 0xaf, 0x50, 0x97, 0x6f, 0xe4, 0x1f, 0xb5, 0xb4, 0xee, 0xd9,
|
||||
0xb3, 0x32, 0xd5, 0x8b, 0x0a, 0xa0, 0x4b, 0x56, 0x89, 0x99, 0x64, 0x48, 0x09, 0xb1, 0x83, 0x5c,
|
||||
0xd8, 0x0a, 0x90, 0xcd, 0xf5, 0x72, 0xac, 0x85, 0x75, 0x4d, 0x8c, 0xf6, 0x82, 0xaf, 0x94, 0xfb,
|
||||
0x3a, 0xf1, 0x5e, 0x38, 0x7a, 0xe1, 0xc3, 0xa2, 0x4a, 0x98, 0xfc, 0x7a, 0x7c, 0x71, 0x9e, 0x48,
|
||||
0xf8, 0x92, 0x16, 0xc2, 0x5a, 0x72, 0x84, 0xbc, 0xea, 0xbb, 0x17, 0xad, 0x2b, 0xcf, 0x39, 0x49,
|
||||
0x43, 0x14, 0xd2, 0x42, 0x0a, 0x33, 0x6e, 0x2a, 0xa7, 0xdf, 0x56, 0x90, 0x8f, 0x8d, 0x5b, 0xc1,
|
||||
0x49, 0x51, 0xaa, 0x85, 0xb7, 0x37, 0xe1, 0xa5, 0x2e, 0xe1, 0x59, 0xbb, 0x23, 0x01, 0x5c, 0xdd,
|
||||
0xa1, 0x7e, 0x67, 0x20, 0x12, 0x7b, 0x5b, 0x9f, 0x91, 0x0b, 0x7d, 0x4d, 0x89, 0xe1, 0x15, 0x01,
|
||||
0xd8, 0xfd, 0x67, 0x83, 0xc1, 0x96, 0x3b, 0x75, 0x45, 0xa0, 0x51, 0x2c, 0xc8, 0x9f, 0xce, 0x99,
|
||||
0x52, 0x2e, 0xd9, 0xbf, 0x2e, 0xce, 0x5f, 0xa3, 0x2e, 0xdf, 0xca, 0x3f, 0x6a, 0x69, 0xdd, 0xc1,
|
||||
0x77, 0x02, 0xbf, 0xa5, 0x7a, 0x83, 0x8e, 0xcb, 0x95, 0x85, 0x76, 0x5b, 0x21, 0x52, 0x72, 0x8c,
|
||||
0xbc, 0x0b, 0xfd, 0x8a, 0x75, 0x28, 0x6b, 0x3b, 0x4c, 0x1e, 0x93, 0x15, 0xc1, 0x77, 0xe3, 0xbc,
|
||||
0x91, 0x2b, 0xb7, 0x05, 0x4b, 0x92, 0x91, 0xce, 0xc3, 0x9d, 0x4e, 0x40, 0x53, 0xc0, 0xd7, 0x57,
|
||||
0xa3, 0x31, 0x32, 0x3c, 0x6e, 0x1c, 0x42, 0x0c, 0xc8, 0x93, 0xd2, 0x7b, 0xf2, 0x52, 0x9b, 0xc5,
|
||||
0x29, 0x22, 0xf9, 0xac, 0xad, 0xca, 0xb2, 0x4d, 0xea, 0x3e, 0xa7, 0xf8, 0x22, 0x51, 0x22, 0x4a,
|
||||
0x18, 0xfb, 0x7e, 0xf0, 0x21, 0x6c, 0x50, 0xa7, 0x77, 0x65, 0x80, 0xf5, 0x1b, 0x51, 0xd4, 0xa0,
|
||||
0x48, 0x1e, 0xee, 0xec, 0x6f, 0x20, 0x4b, 0x73, 0x99, 0xce, 0x5f, 0xd7, 0x8b, 0x4d, 0x9d, 0xef,
|
||||
0xf4, 0x77, 0x24, 0xb9, 0x10, 0xcd, 0xe5, 0x2a, 0x42, 0xa8, 0xd2, 0xbc, 0x1f, 0xbf, 0x1f, 0xec,
|
||||
0x3d, 0xfd, 0x10, 0x07, 0x28, 0xf6, 0xf7, 0xfc, 0x04, 0xf6, 0xda, 0x4a, 0xa4, 0x54, 0x82, 0x63,
|
||||
0x31, 0xc1, 0xff, 0x33, 0x10, 0x39, 0x5c, 0xe4, 0xa3, 0x5c, 0x4d, 0x1d, 0x3e, 0x5f, 0x80, 0xd9,
|
||||
0x8d, 0x2e, 0xf0, 0xed, 0xb8, 0xa0, 0xe7, 0x6b, 0x01, 0xbe, 0xa6, 0x75, 0x51, 0xd9, 0x0b, 0x9d,
|
||||
0xce, 0xe9, 0x08, 0xc8, 0xdb, 0x17, 0xf1, 0xa8, 0x95, 0x74, 0x8d, 0x0c, 0x7d, 0x5b, 0xb5, 0x5f,
|
||||
0x4e, 0xf5, 0xb2, 0xf4, 0x72, 0x11, 0x10, 0xfe, 0x4a, 0x2f, 0x68, 0x03, 0xd8, 0x45, 0x2f, 0x2f,
|
||||
0xa4, 0x57, 0xe0, 0xbf, 0xfb, 0xdd, 0xfe, 0xdb, 0x1b, 0x35, 0xcb, 0xd7, 0xcb, 0xed, 0xd9, 0x73,
|
||||
0x04, 0xca, 0xd0, 0xe2, 0xa9, 0xa4, 0x0a, 0xe0, 0x1f, 0x90, 0xc4, 0x69, 0x51, 0x67, 0xd2, 0xf6,
|
||||
0xd7, 0xde, 0x05, 0xc1, 0x9f, 0x7f, 0xb6, 0x4f, 0x28, 0x57, 0xfa, 0x3c, 0x95, 0x53, 0x51, 0x17,
|
||||
0x0e, 0x45, 0x8f, 0x5a, 0xd8, 0x2a, 0x93, 0xdb, 0x35, 0x0e, 0xa8, 0xe4, 0x1d, 0xa6, 0x01, 0xf7,
|
||||
0x96, 0x4d, 0x02, 0x71, 0xe2, 0xfc, 0x8f, 0xfc, 0xa1, 0x24, 0x6a, 0xbd, 0x6f, 0x47, 0xf0, 0xb0,
|
||||
0xcf, 0xdf, 0x5d, 0x9c, 0x9d, 0x82, 0x44, 0x6d, 0xf6, 0x9c, 0xa3, 0x6e, 0xb0, 0xdb, 0x66, 0xc1,
|
||||
0x96, 0xbe, 0x11, 0x92, 0x8f, 0x53, 0x18, 0x0f, 0xb1, 0xa9, 0x65, 0x76, 0xf4, 0x1d, 0x5f, 0x36,
|
||||
0x30, 0x55, 0x3b, 0x9d, 0xea, 0x62, 0x77, 0xb7, 0xef, 0x7b, 0xd1, 0x20, 0xec, 0xfb, 0x66, 0x95,
|
||||
0xd0, 0x8e, 0x62, 0xe4, 0xb4, 0x01, 0x82, 0xa4, 0xfc, 0xdc, 0xc9, 0x05, 0xa5, 0x75, 0x7a, 0x5e,
|
||||
0x71, 0xef, 0x6a, 0xb3, 0x0d, 0xe7, 0x17, 0x15, 0x78, 0x84, 0xdc, 0x61, 0x97, 0x3a, 0x93, 0x11,
|
||||
0xbb, 0x46, 0xc5, 0x5a, 0xc9, 0x24, 0xc5, 0x91, 0x91, 0x6d, 0xec, 0xfc, 0x1a, 0x4c, 0x11, 0xde,
|
||||
0x92, 0x68, 0x6f, 0x4b, 0x0c, 0xbd, 0xb4, 0x20, 0xa0, 0x5d, 0x9e, 0xe5, 0x49, 0xfc, 0x73, 0xdf,
|
||||
0xfd, 0xd0, 0xfc, 0xf8, 0x43, 0xff, 0xfa, 0x90, 0xc3, 0xdd, 0x4d, 0xf3, 0x8a, 0x6d, 0xf4, 0xc9,
|
||||
0x3e, 0xaf, 0x92, 0x5f, 0xb9, 0xc7, 0xb7, 0x77, 0x14, 0xb7, 0x2d, 0xf7, 0xc8, 0x73, 0xc3, 0xf0,
|
||||
0x1f, 0x6a, 0x41, 0xcd, 0x9b, 0xd5, 0xa6, 0x40, 0x91, 0x7b, 0xba, 0x48, 0x2d, 0x38, 0xf4, 0x19,
|
||||
0x36, 0xfa, 0x0d, 0x47, 0x71, 0x33, 0x6c, 0x10, 0x99, 0x83, 0x23, 0x49, 0x73, 0xc2, 0x81, 0x16,
|
||||
0x1a, 0xfb, 0x14, 0x75, 0xd1, 0x63, 0x0a, 0xcf, 0xf4, 0xed, 0xa3, 0xe5, 0xed, 0x30, 0x32, 0x9a,
|
||||
0x72, 0x86, 0x51, 0x20, 0xd7, 0x78, 0x53, 0x69, 0x4b, 0x93, 0x41, 0xa6, 0x6e, 0x98, 0x27, 0x95,
|
||||
0x04, 0x1c, 0x07, 0x38, 0x96, 0xb7, 0xd7, 0x72, 0x59, 0x54, 0x27, 0x34, 0xa7, 0x20, 0x70, 0x0e,
|
||||
0xd1, 0xa0, 0x76, 0x93, 0xf0, 0xe6, 0x81, 0x43, 0x6b, 0x5a, 0xa8, 0x74, 0x9e, 0xf0, 0x57, 0xa4,
|
||||
0xf6, 0xf9, 0x51, 0xdc, 0xbc, 0x80, 0x69, 0x10, 0x31, 0xbc, 0xff, 0x4c, 0x6f, 0x7d, 0xe8, 0x84,
|
||||
0x0e, 0x51, 0x05, 0x6d, 0xce, 0xdd, 0x3a, 0x61, 0xeb, 0xc9, 0x42, 0xc1, 0xc6, 0x91, 0xb8, 0x91,
|
||||
0x9b, 0x2d, 0xb9, 0xe9, 0xc4, 0xe7, 0x07, 0xc3, 0xde, 0xa8, 0x9d, 0x1c, 0xd8, 0x2e, 0x7b, 0xeb,
|
||||
0xfb, 0x3c, 0xe5, 0x67, 0x5d, 0x01, 0x9b, 0x83, 0x61, 0x37, 0xd3, 0xb0, 0xeb, 0xf3, 0xd7, 0x87,
|
||||
0xec, 0x48, 0x95, 0x55, 0xed, 0x5a, 0xd1, 0x15, 0x9c, 0x5b, 0x6a, 0x93, 0x71, 0x0f, 0x12, 0xde,
|
||||
0xaf, 0x87, 0x26, 0xff, 0xdd, 0xaa, 0xff, 0xe2, 0xeb, 0x63, 0x80, 0x25, 0x3e, 0x23, 0xcf, 0x67,
|
||||
0x18, 0xc9, 0xfc, 0x93, 0x2a, 0xb7, 0x9e, 0x74, 0x89, 0xb2, 0xa1, 0x4c, 0x4e, 0xf8, 0x9a, 0x38,
|
||||
0x88, 0x09, 0x03, 0xc8, 0xaa, 0x84, 0x43, 0xfa, 0xe0, 0x8d, 0x27, 0x8b, 0xbf, 0x41, 0x0d, 0x29,
|
||||
0x5f, 0x20, 0xc1, 0xc0, 0xf4, 0x98, 0x9d, 0x8c, 0x4a, 0x39, 0xf3, 0x93, 0x16, 0x34, 0x6e, 0x27,
|
||||
0x9c, 0x60, 0x8f, 0x59, 0xa6, 0x66, 0xca, 0x31, 0x6c, 0x9b, 0x80, 0x49, 0x80, 0x89, 0x01, 0xfc,
|
||||
0x14, 0x12, 0x1f, 0x76, 0x28, 0xd3, 0x85, 0x36, 0x87, 0x0f, 0xa6, 0x82, 0xe6, 0xc7, 0xdd, 0x07,
|
||||
0x4f, 0x9f, 0x3c, 0x79, 0xf2, 0x8c, 0xbd, 0x2d, 0x65, 0x99, 0x9a, 0x55, 0xe5, 0x64, 0xc6, 0x9c,
|
||||
0x11, 0xa5, 0x5d, 0x28, 0x6b, 0xa9, 0x42, 0xd8, 0x09, 0x3a, 0x9e, 0x41, 0xad, 0x97, 0x8e, 0x2d,
|
||||
0x73, 0x49, 0xf5, 0x5b, 0x60, 0x6a, 0xa1, 0xa6, 0x09, 0x57, 0x43, 0x96, 0x69, 0xf6, 0xfa, 0x6a,
|
||||
0xcc, 0x40, 0x4a, 0x6c, 0xa5, 0x6b, 0xc3, 0x26, 0xa2, 0x9c, 0xe3, 0x25, 0xbd, 0xd0, 0x26, 0x64,
|
||||
0xa3, 0xf3, 0xcb, 0x90, 0x49, 0x97, 0x46, 0xac, 0x52, 0xe5, 0x4e, 0xaf, 0x0b, 0xac, 0xf1, 0x7f,
|
||||
0xc4, 0x5f, 0x6c, 0xa9, 0x0c, 0x24, 0x5a, 0xcb, 0xfa, 0x57, 0xe3, 0xe3, 0x80, 0x59, 0x3d, 0x75,
|
||||
0x4b, 0x61, 0x24, 0x6b, 0xc6, 0xae, 0x3b, 0xb8, 0x7b, 0xa0, 0x26, 0xfa, 0xf3, 0x1a, 0xee, 0xd7,
|
||||
0x57, 0x8d, 0x87, 0xd7, 0x08, 0x48, 0x95, 0x1b, 0x00, 0xf1, 0xcd, 0x48, 0x35, 0x07, 0xae, 0xae,
|
||||
0x6f, 0x45, 0xe5, 0xd1, 0x41, 0x8b, 0xd0, 0x58, 0x03, 0x41, 0x9a, 0x80, 0x19, 0xcc, 0x08, 0x19,
|
||||
0xf2, 0x9e, 0x75, 0x53, 0x25, 0xc3, 0x88, 0x65, 0xd1, 0xac, 0xc8, 0x41, 0x56, 0x4a, 0x42, 0x48,
|
||||
0x33, 0x51, 0x58, 0xdd, 0x62, 0xee, 0x72, 0x89, 0xe9, 0xc1, 0x18, 0xc0, 0xc2, 0x3a, 0x75, 0x70,
|
||||
0x15, 0x52, 0xc7, 0xb9, 0x5c, 0xaf, 0xd0, 0x7c, 0x50, 0x17, 0x19, 0x9b, 0x48, 0x1a, 0xa4, 0xcb,
|
||||
0x19, 0xc4, 0x78, 0x3c, 0xa1, 0x0e, 0xd3, 0x61, 0xab, 0x3c, 0x8b, 0x1a, 0x6c, 0x86, 0xbd, 0x53,
|
||||
0x65, 0x3b, 0x6b, 0x9a, 0x7d, 0xa5, 0x76, 0xc8, 0x02, 0x02, 0x3a, 0x64, 0x1a, 0x2a, 0xcd, 0x52,
|
||||
0x01, 0x73, 0x51, 0x32, 0xa4, 0x0a, 0x6a, 0x00, 0x76, 0xa4, 0x78, 0x30, 0x72, 0x8a, 0xc2, 0xcb,
|
||||
0x59, 0x73, 0x03, 0x58, 0xa3, 0x49, 0xc8, 0x4f, 0x1a, 0xdc, 0xd5, 0x26, 0xaf, 0xa9, 0x52, 0x90,
|
||||
0x70, 0xcd, 0x44, 0x43, 0x98, 0x83, 0x05, 0x56, 0x8d, 0x75, 0x5e, 0xb7, 0x9a, 0x7a, 0xf5, 0x05,
|
||||
0x85, 0x09, 0xdb, 0xb2, 0xc6, 0xa4, 0x6c, 0xe7, 0x28, 0x56, 0x43, 0xef, 0xdf, 0xa9, 0x2c, 0x57,
|
||||
0x4c, 0xa4, 0x29, 0x85, 0x0f, 0x98, 0xbc, 0x53, 0x2f, 0x15, 0xeb, 0xf8, 0x89, 0x4e, 0xd3, 0x49,
|
||||
0x99, 0x7d, 0x33, 0x86, 0x6d, 0x44, 0xde, 0xf1, 0x46, 0x1a, 0xfd, 0xbd, 0x14, 0x29, 0x28, 0x92,
|
||||
0x20, 0x87, 0x9c, 0x1f, 0x1c, 0x7c, 0x33, 0x6a, 0x63, 0x77, 0x5c, 0x14, 0x1b, 0xb5, 0xa2, 0xcc,
|
||||
0x58, 0x3b, 0x30, 0x22, 0xb7, 0xf0, 0x06, 0x80, 0x4b, 0x4a, 0x8c, 0x0e, 0x5b, 0x33, 0xfc, 0x3f,
|
||||
0xaa, 0xe1, 0x78, 0x0b, 0x6f, 0x0f, 0x1f, 0x30, 0x86, 0x31, 0x48, 0x0b, 0x87, 0x20, 0xcf, 0x7d,
|
||||
0x0c, 0x14, 0x65, 0x45, 0x2a, 0x69, 0x7c, 0x04, 0x7b, 0x36, 0xa3, 0x62, 0x97, 0xf9, 0xc4, 0x3e,
|
||||
0xf9, 0xa3, 0xe1, 0xa8, 0xcb, 0xf2, 0x86, 0x74, 0x40, 0x37, 0x8f, 0x86, 0x3f, 0xa0, 0xc8, 0xb7,
|
||||
0xc4, 0x76, 0xbd, 0x4b, 0x51, 0xd6, 0xa2, 0xf0, 0x61, 0xe9, 0x8e, 0xae, 0xb9, 0xcf, 0x0c, 0xcf,
|
||||
0x9a, 0x0c, 0x3e, 0x36, 0x59, 0xad, 0x4a, 0x8d, 0x4d, 0x3f, 0x2a, 0x9f, 0x63, 0x2a, 0x9f, 0xd6,
|
||||
0x26, 0x62, 0xd2, 0xba, 0x02, 0x11, 0xbe, 0xc1, 0x54, 0xa7, 0x4d, 0x6b, 0x94, 0xe8, 0x98, 0x7c,
|
||||
0xe2, 0x30, 0x46, 0x97, 0xf3, 0x86, 0xf1, 0xda, 0x91, 0x9d, 0xf5, 0x72, 0x24, 0x5c, 0xc2, 0xe3,
|
||||
0x16, 0x70, 0x74, 0x24, 0xb2, 0xb9, 0x6b, 0xcf, 0xa8, 0xbe, 0x76, 0x72, 0xef, 0x84, 0xb7, 0xcf,
|
||||
0x47, 0xb1, 0x58, 0x07, 0x62, 0xd8, 0x6b, 0xf5, 0xad, 0x5f, 0xfa, 0x2c, 0xdd, 0xb2, 0xda, 0x0f,
|
||||
0xed, 0x6d, 0xcc, 0xfd, 0x5c, 0xe6, 0x53, 0xae, 0xc2, 0x45, 0xb4, 0xd1, 0x37, 0x64, 0x1d, 0x74,
|
||||
0xbd, 0xfb, 0xb1, 0xfb, 0x65, 0x6b, 0x96, 0xcd, 0xa2, 0xd1, 0x34, 0x22, 0x29, 0xe1, 0x1d, 0xab,
|
||||
0x83, 0x5f, 0x86, 0x6f, 0xfd, 0xb6, 0x35, 0xa2, 0x4d, 0x52, 0x6e, 0x18, 0xeb, 0x9b, 0x50, 0x74,
|
||||
0x5e, 0xb2, 0x16, 0x0d, 0x40, 0xd3, 0x22, 0xd1, 0xdb, 0x40, 0x41, 0x78, 0x75, 0x30, 0xdc, 0xba,
|
||||
0x6b, 0xdc, 0x02, 0xa3, 0xc3, 0xe2, 0xf6, 0x8e, 0x0d, 0x22, 0xbd, 0xfb, 0x21, 0x39, 0xf8, 0x36,
|
||||
0x26, 0xdf, 0xe8, 0x9e, 0xf7, 0x62, 0x72, 0x10, 0x6e, 0x19, 0xff, 0x35, 0x20, 0x5b, 0x78, 0x50,
|
||||
0x05, 0xf5, 0xbe, 0x57, 0x42, 0x8d, 0x23, 0xd4, 0x26, 0x5a, 0x74, 0xe2, 0xdb, 0x17, 0x2c, 0x5f,
|
||||
0x9a, 0x57, 0xbf, 0x9f, 0xbd, 0x79, 0xf7, 0xe6, 0x7c, 0x7c, 0xd6, 0xf4, 0x0e, 0xd0, 0xad, 0xa1,
|
||||
0x3e, 0x73, 0xef, 0x89, 0xc8, 0x87, 0xa3, 0x47, 0x17, 0xb1, 0x86, 0x6a, 0x6f, 0xcb, 0x5b, 0x08,
|
||||
0x22, 0x8d, 0x3f, 0x6a, 0x74, 0x13, 0x34, 0xc1, 0xe9, 0x36, 0x8d, 0x30, 0x70, 0xb9, 0x91, 0x7b,
|
||||
0x9e, 0x18, 0xdb, 0xcb, 0x9e, 0x57, 0x77, 0x36, 0xba, 0x8e, 0xda, 0xba, 0x7c, 0x79, 0x0f, 0xdd,
|
||||
0xbc, 0x0b, 0xfd, 0x8a, 0x75, 0x28, 0x6b, 0x3b, 0x4c, 0x9e, 0x90, 0x15, 0xc1, 0x77, 0xe3, 0xbc,
|
||||
0x91, 0x2b, 0xb7, 0x05, 0x4b, 0x92, 0x91, 0xce, 0xc3, 0x9d, 0x4e, 0x40, 0x53, 0xc0, 0x57, 0x97,
|
||||
0xa3, 0x31, 0x32, 0x3c, 0x6e, 0x1c, 0x42, 0x0c, 0xc8, 0x93, 0xd2, 0x7b, 0xf2, 0x4a, 0x9b, 0xc5,
|
||||
0x09, 0x22, 0x79, 0xd0, 0x56, 0x65, 0xd9, 0x26, 0x75, 0x9f, 0x53, 0x7c, 0x91, 0x28, 0x11, 0x25,
|
||||
0x8c, 0xfd, 0x30, 0xf8, 0x18, 0x36, 0xa8, 0xd3, 0xbb, 0x32, 0xc0, 0xfa, 0xb5, 0x28, 0x6a, 0x50,
|
||||
0x24, 0x0f, 0x77, 0xf6, 0x36, 0x90, 0xa5, 0xb9, 0x4c, 0xe7, 0x6f, 0xea, 0xc5, 0xa6, 0xce, 0x77,
|
||||
0xfa, 0x3b, 0x92, 0x5c, 0x88, 0xe6, 0x72, 0x15, 0x21, 0x54, 0x69, 0xde, 0x8f, 0x3f, 0x0c, 0x76,
|
||||
0x9f, 0x7d, 0x8c, 0x03, 0x14, 0xfb, 0x07, 0x7e, 0x0c, 0x7b, 0x6d, 0x25, 0x52, 0x2a, 0xc1, 0xb1,
|
||||
0x98, 0xe0, 0xff, 0x29, 0x88, 0x1c, 0x2e, 0xf2, 0x51, 0xae, 0xa6, 0x0e, 0x9f, 0x2f, 0xc1, 0xec,
|
||||
0x46, 0x17, 0xf8, 0x76, 0x54, 0xd0, 0xf3, 0x95, 0x00, 0x5f, 0xd3, 0xba, 0xa8, 0xec, 0xb9, 0x4e,
|
||||
0xe7, 0x74, 0x04, 0xe4, 0xed, 0x8b, 0x78, 0xd4, 0x4a, 0xba, 0x42, 0x86, 0xbe, 0xab, 0xda, 0x2f,
|
||||
0x27, 0x7a, 0x59, 0x7a, 0xb9, 0x08, 0x08, 0x7f, 0xad, 0x17, 0xb4, 0x01, 0xec, 0xa2, 0x97, 0xe7,
|
||||
0xd2, 0x2b, 0xf0, 0xdf, 0xfd, 0x6e, 0xff, 0xed, 0xad, 0x9a, 0xe5, 0xeb, 0xe5, 0xf6, 0xec, 0x19,
|
||||
0x02, 0x65, 0x68, 0xf1, 0x44, 0x52, 0x05, 0xf0, 0x8f, 0x48, 0xe2, 0xb4, 0xa8, 0x33, 0x69, 0xfb,
|
||||
0x6b, 0xef, 0x82, 0xe0, 0xcf, 0x3f, 0xdb, 0x27, 0x94, 0x2b, 0x7d, 0x9e, 0xc8, 0xa9, 0xa8, 0x0b,
|
||||
0x87, 0xa2, 0x47, 0x2d, 0x6c, 0x95, 0xc9, 0xcd, 0x1a, 0x07, 0x54, 0xf2, 0x16, 0xd3, 0x80, 0x7b,
|
||||
0xcb, 0x26, 0x81, 0x38, 0x71, 0xfe, 0x27, 0xfe, 0x48, 0x12, 0xb5, 0xde, 0xb5, 0x23, 0x78, 0xd4,
|
||||
0xe7, 0xef, 0xcf, 0x4f, 0x4f, 0x40, 0xa2, 0x36, 0x7b, 0xc1, 0x51, 0x37, 0xd8, 0x6d, 0xb3, 0x60,
|
||||
0x4b, 0xdf, 0x08, 0xc9, 0xc7, 0x29, 0x8c, 0xcf, 0xb1, 0xa9, 0x65, 0x76, 0xf4, 0x1d, 0x5f, 0x36,
|
||||
0x30, 0x55, 0x3b, 0x9d, 0xea, 0xe2, 0xe1, 0xc3, 0xbe, 0xef, 0x45, 0x83, 0xb0, 0xef, 0x9b, 0x55,
|
||||
0x42, 0x3b, 0x8a, 0x91, 0xd3, 0x06, 0x08, 0x92, 0xf2, 0x33, 0x27, 0x17, 0x94, 0xd6, 0xe9, 0x59,
|
||||
0xc5, 0xbd, 0xab, 0xcd, 0x36, 0x9c, 0x5f, 0x54, 0xe0, 0x11, 0x72, 0x87, 0x5d, 0xe8, 0x4c, 0x46,
|
||||
0xec, 0x0a, 0x15, 0x6b, 0x25, 0x93, 0x14, 0x47, 0x46, 0xb6, 0xb1, 0xb3, 0x2b, 0x30, 0x45, 0x78,
|
||||
0x43, 0xa2, 0xbd, 0x29, 0x31, 0xf4, 0xd2, 0x82, 0x80, 0x76, 0x79, 0x96, 0x27, 0xf1, 0x2f, 0x7c,
|
||||
0xf7, 0x43, 0xf3, 0xe3, 0x8f, 0xfc, 0xeb, 0xe7, 0x1c, 0xee, 0x6e, 0x9a, 0x57, 0x6c, 0xa3, 0xcf,
|
||||
0xf6, 0x45, 0x95, 0xfc, 0xc6, 0x3d, 0xbe, 0xbd, 0xc3, 0xb8, 0x6d, 0xb9, 0x87, 0x9e, 0x1b, 0x86,
|
||||
0x7f, 0x57, 0x0b, 0x6a, 0xde, 0xac, 0x36, 0x05, 0x8a, 0xdc, 0xd3, 0x45, 0x6a, 0xc1, 0xa1, 0x07,
|
||||
0xd8, 0xe8, 0x37, 0x1c, 0xc6, 0xcd, 0xb0, 0x41, 0x64, 0x0e, 0x8e, 0x24, 0xcd, 0x09, 0x07, 0x5a,
|
||||
0x68, 0xec, 0x53, 0xd4, 0x45, 0x8f, 0x29, 0x3c, 0xd3, 0xb7, 0x4f, 0x96, 0xb7, 0xc3, 0xc8, 0x68,
|
||||
0xca, 0x19, 0x46, 0x81, 0x5c, 0xe3, 0x4d, 0xa5, 0x2d, 0x4d, 0x06, 0x99, 0xba, 0x66, 0x9e, 0x54,
|
||||
0x12, 0x70, 0x1c, 0xe0, 0x58, 0xde, 0x5c, 0xcb, 0x65, 0x51, 0x1d, 0xd3, 0x9c, 0x82, 0xc0, 0x39,
|
||||
0x44, 0x83, 0xda, 0x4d, 0xc2, 0x9b, 0x07, 0x0e, 0xad, 0x69, 0xa1, 0xd2, 0x79, 0xc2, 0x5f, 0x93,
|
||||
0xda, 0x17, 0x87, 0x71, 0xf3, 0x02, 0xa6, 0x41, 0xc4, 0xf0, 0xee, 0x33, 0xbd, 0xf5, 0xa1, 0x63,
|
||||
0x3a, 0x44, 0x15, 0xb4, 0x39, 0x77, 0xe3, 0x84, 0xad, 0x27, 0x0b, 0x05, 0x1b, 0x47, 0xe2, 0x5a,
|
||||
0x6e, 0xb6, 0xe4, 0xa6, 0x13, 0x9f, 0xef, 0x0f, 0x7b, 0xa3, 0x76, 0x72, 0x60, 0x0f, 0xd9, 0x3b,
|
||||
0xdf, 0xe7, 0x29, 0x3f, 0xeb, 0x0a, 0xd8, 0xec, 0x0f, 0xbb, 0x99, 0x86, 0x5d, 0x9d, 0xbd, 0x79,
|
||||
0xce, 0x0e, 0x55, 0x59, 0xd5, 0xae, 0x15, 0x5d, 0xc1, 0xb9, 0xa5, 0x36, 0x19, 0xf7, 0x20, 0xe1,
|
||||
0xfd, 0x7a, 0x68, 0xf2, 0xdf, 0xad, 0xfa, 0x2f, 0xbe, 0x3e, 0x01, 0x58, 0xe2, 0x0b, 0xf2, 0x7c,
|
||||
0x86, 0x91, 0xcc, 0x3f, 0xa9, 0x72, 0xeb, 0x49, 0x97, 0x28, 0x1b, 0xca, 0xe4, 0x84, 0xaf, 0x89,
|
||||
0x83, 0x98, 0x30, 0x80, 0xac, 0x4a, 0x38, 0xa4, 0x0f, 0xde, 0x78, 0xb2, 0xf8, 0x1b, 0xd4, 0x90,
|
||||
0xf2, 0x05, 0x12, 0x0c, 0x4c, 0x8f, 0xd9, 0xc9, 0xa8, 0x94, 0x33, 0x3f, 0x69, 0x41, 0xe3, 0x76,
|
||||
0xc2, 0x09, 0xf6, 0x84, 0x65, 0x6a, 0xa6, 0x1c, 0xc3, 0xb6, 0x09, 0x98, 0x04, 0x98, 0x18, 0xc0,
|
||||
0x4f, 0x21, 0xf1, 0x61, 0x87, 0x32, 0x5d, 0x68, 0xf3, 0xfc, 0xc1, 0x54, 0xd0, 0xfc, 0xf8, 0xf0,
|
||||
0xc1, 0xb3, 0xa7, 0x4f, 0x9f, 0x1e, 0xb0, 0x77, 0xa5, 0x2c, 0x53, 0xb3, 0xaa, 0x9c, 0xcc, 0x98,
|
||||
0x33, 0xa2, 0xb4, 0x0b, 0x65, 0x2d, 0x55, 0x08, 0x3b, 0x46, 0xc7, 0x33, 0xa8, 0xf5, 0xd2, 0xb1,
|
||||
0x65, 0x2e, 0xa9, 0x7e, 0x0b, 0x4c, 0x2d, 0xd4, 0x34, 0xe1, 0x6a, 0xc8, 0x32, 0xcd, 0xde, 0x5c,
|
||||
0x8e, 0x19, 0x48, 0x89, 0xad, 0x74, 0x6d, 0xd8, 0x44, 0x94, 0x73, 0xbc, 0xa4, 0x17, 0xda, 0x84,
|
||||
0x6c, 0x74, 0x76, 0x11, 0x32, 0xe9, 0xd2, 0x88, 0x55, 0xaa, 0xdc, 0xe9, 0x75, 0x81, 0x35, 0xfe,
|
||||
0x8f, 0xf8, 0x8b, 0x2d, 0x95, 0x81, 0x44, 0x6b, 0x59, 0xff, 0x72, 0x7c, 0x14, 0x30, 0xab, 0xa7,
|
||||
0x6e, 0x29, 0x8c, 0x64, 0xcd, 0xd8, 0x75, 0x0b, 0x77, 0x0f, 0xd4, 0x44, 0x7f, 0x59, 0xc3, 0xfd,
|
||||
0xe6, 0xb2, 0xf1, 0xf0, 0x0a, 0x01, 0xa9, 0x72, 0x03, 0x20, 0xee, 0x8d, 0x54, 0x73, 0xe0, 0xf2,
|
||||
0xea, 0x46, 0x54, 0x1e, 0xef, 0xb7, 0x08, 0x8d, 0x35, 0x10, 0xa4, 0x09, 0x98, 0xc1, 0x8c, 0x90,
|
||||
0x21, 0xef, 0x59, 0x37, 0x55, 0x32, 0x8c, 0x58, 0x16, 0xcd, 0x8a, 0x1c, 0x64, 0xa5, 0x24, 0x84,
|
||||
0x34, 0x13, 0x85, 0xd5, 0x2d, 0xe6, 0x2e, 0x97, 0x98, 0x1e, 0x8c, 0x01, 0x2c, 0xac, 0x53, 0x07,
|
||||
0x57, 0x21, 0x75, 0x9c, 0xcb, 0xf5, 0x0a, 0xcd, 0x07, 0x75, 0x91, 0xb1, 0x89, 0xa4, 0x41, 0xba,
|
||||
0x9c, 0x41, 0x8c, 0xc7, 0x13, 0xea, 0x30, 0x1d, 0xb6, 0xca, 0xb3, 0xa8, 0xc1, 0x66, 0xd8, 0x3b,
|
||||
0x51, 0xb6, 0xb3, 0xa6, 0xd9, 0x57, 0x6a, 0x87, 0x2c, 0x20, 0xa0, 0x43, 0xa6, 0xa1, 0xd2, 0x2c,
|
||||
0x15, 0x30, 0x17, 0x25, 0x43, 0xaa, 0xa0, 0x06, 0x60, 0x47, 0x8a, 0x07, 0x23, 0xa7, 0x28, 0xbc,
|
||||
0x9c, 0x35, 0x37, 0x80, 0x35, 0x9a, 0x84, 0xfc, 0xa4, 0xc1, 0x5d, 0x6d, 0xf2, 0x9a, 0x2a, 0x05,
|
||||
0x09, 0xd7, 0x4c, 0x34, 0x84, 0x39, 0x58, 0x60, 0xd5, 0x58, 0xe7, 0x75, 0xab, 0xa9, 0x57, 0x5f,
|
||||
0x50, 0x98, 0xb0, 0x2d, 0x6b, 0x4c, 0xca, 0x76, 0x0e, 0x63, 0x35, 0xf4, 0xfe, 0x9d, 0xc8, 0x72,
|
||||
0xc5, 0x44, 0x9a, 0x52, 0xf8, 0x80, 0xc9, 0x7b, 0xf5, 0x4a, 0xb1, 0x8e, 0x9f, 0xe8, 0x34, 0x9d,
|
||||
0x94, 0xd9, 0xbd, 0x31, 0x6c, 0x23, 0xf2, 0x9e, 0x37, 0xd2, 0xe8, 0xef, 0x95, 0x48, 0x41, 0x91,
|
||||
0x04, 0x39, 0xe4, 0xfc, 0xe0, 0xe0, 0xdb, 0x51, 0x1b, 0xbb, 0xa3, 0xa2, 0xd8, 0xa8, 0x15, 0x65,
|
||||
0xc6, 0xda, 0x81, 0x11, 0xb9, 0x85, 0x37, 0x00, 0x5c, 0x52, 0x62, 0x74, 0xd8, 0x9a, 0xe1, 0xff,
|
||||
0x51, 0x0d, 0x47, 0x5b, 0x78, 0x7b, 0xf8, 0x80, 0x31, 0x8c, 0x41, 0x5a, 0x38, 0x04, 0x79, 0xee,
|
||||
0x63, 0xa0, 0x28, 0x2b, 0x52, 0x49, 0xe3, 0x23, 0xd8, 0xb3, 0x19, 0x15, 0xbb, 0xcc, 0x27, 0xf6,
|
||||
0xc9, 0x1f, 0x0f, 0x47, 0x5d, 0x96, 0x37, 0xa4, 0x03, 0xba, 0x79, 0x3c, 0xfc, 0x01, 0x45, 0xbe,
|
||||
0x23, 0xb6, 0xeb, 0x5d, 0x88, 0xb2, 0x16, 0x85, 0x0f, 0x4b, 0x77, 0x74, 0xcd, 0x7d, 0x66, 0x78,
|
||||
0xda, 0x64, 0xf0, 0x91, 0xc9, 0x6a, 0x55, 0x6a, 0x6c, 0xfa, 0x51, 0xf9, 0x1c, 0x51, 0xf9, 0xb4,
|
||||
0x36, 0x11, 0x93, 0xd6, 0x15, 0x88, 0xf0, 0x2d, 0xa6, 0x3a, 0x6d, 0x5a, 0xa3, 0x44, 0xc7, 0xe4,
|
||||
0x13, 0x87, 0x31, 0xba, 0x9c, 0x37, 0x8c, 0xd7, 0x8e, 0xec, 0xac, 0x97, 0x23, 0xe1, 0x12, 0x1e,
|
||||
0xb7, 0x80, 0xa3, 0x23, 0x91, 0xcd, 0x5d, 0x7b, 0x46, 0xf5, 0xb5, 0x93, 0x7b, 0x27, 0xbc, 0x7d,
|
||||
0x3e, 0x8c, 0xc5, 0x3a, 0x10, 0xc3, 0x5e, 0xab, 0x6f, 0xfd, 0xd2, 0x67, 0xe9, 0x96, 0xd5, 0x7e,
|
||||
0x68, 0x6f, 0x63, 0xee, 0xe7, 0x32, 0x9f, 0x72, 0x15, 0x2e, 0xa2, 0x8d, 0xbe, 0x21, 0xeb, 0xa0,
|
||||
0xeb, 0xdd, 0x8d, 0xdd, 0x2f, 0x5b, 0xb3, 0x6c, 0x16, 0x8d, 0xa6, 0x11, 0x49, 0x09, 0x6f, 0x59,
|
||||
0x1d, 0xfc, 0x32, 0x7c, 0xe7, 0xb7, 0xad, 0x11, 0x6d, 0x92, 0x72, 0xc3, 0x58, 0xf7, 0x42, 0xd1,
|
||||
0x79, 0xc9, 0x5a, 0x34, 0x00, 0x4d, 0x8b, 0x44, 0x6f, 0x03, 0x05, 0xe1, 0xd5, 0xc1, 0x70, 0xe3,
|
||||
0xae, 0x71, 0x03, 0x8c, 0x0e, 0x8b, 0x9b, 0x3b, 0x36, 0x88, 0xf4, 0xee, 0x86, 0x64, 0xff, 0x7e,
|
||||
0x4c, 0xee, 0xe9, 0x9e, 0x77, 0x62, 0xb2, 0x1f, 0x6e, 0x19, 0xff, 0x2d, 0x20, 0x5b, 0x78, 0x50,
|
||||
0x05, 0xf5, 0xbe, 0x57, 0x42, 0x8d, 0x23, 0xd4, 0x26, 0x5a, 0x74, 0xe2, 0x9b, 0x17, 0x2c, 0x5f,
|
||||
0x9a, 0x97, 0xbf, 0x9f, 0xbe, 0x7d, 0xff, 0xf6, 0x6c, 0x7c, 0xda, 0xf4, 0x0e, 0xd0, 0xad, 0xa1,
|
||||
0x3e, 0x73, 0xe7, 0x89, 0xc8, 0x87, 0xa3, 0x47, 0x17, 0xb1, 0x86, 0x6a, 0x6f, 0xca, 0x5b, 0x08,
|
||||
0x22, 0x8d, 0x3f, 0x6a, 0x74, 0x13, 0x34, 0xc1, 0xe9, 0x36, 0x8d, 0x30, 0x70, 0xb9, 0x91, 0xbb,
|
||||
0x9e, 0x18, 0xdb, 0xcb, 0x9e, 0x57, 0x77, 0x3a, 0xba, 0x8a, 0xda, 0xba, 0x7c, 0x75, 0x07, 0xdd,
|
||||
0x87, 0x6b, 0xea, 0xb6, 0x9e, 0x1c, 0x89, 0x80, 0x27, 0x54, 0xf9, 0x19, 0x7a, 0x53, 0xd4, 0x55,
|
||||
0xcd, 0xf1, 0x04, 0x97, 0xac, 0xae, 0x54, 0xda, 0x72, 0xe8, 0x7e, 0xb5, 0x40, 0x1b, 0xce, 0xeb,
|
||||
0x49, 0x84, 0x9b, 0x63, 0x7c, 0xac, 0x4c, 0xaa, 0xb5, 0x9e, 0x2b, 0x19, 0xd3, 0x4c, 0x18, 0xa3,
|
||||
0x7b, 0x0b, 0x33, 0xa3, 0x1f, 0x53, 0x3e, 0x4e, 0x0a, 0xb4, 0x4c, 0x3e, 0xa4, 0x65, 0x4a, 0x85,
|
||||
0x1e, 0xbb, 0x91, 0x86, 0xc8, 0x86, 0x0d, 0xa2, 0xfd, 0xc7, 0xd1, 0x20, 0xc2, 0xdf, 0x9a, 0xb8,
|
||||
0x7e, 0x46, 0xc5, 0x52, 0xcd, 0x55, 0xec, 0xaf, 0x0f, 0x34, 0x35, 0x6b, 0x63, 0xf7, 0x40, 0x8d,
|
||||
0x7b, 0xa9, 0x91, 0x99, 0xa2, 0x5c, 0xed, 0xdd, 0x35, 0x60, 0x7b, 0x2b, 0xda, 0xb7, 0xa4, 0x8b,
|
||||
0x10, 0x68, 0x50, 0xc9, 0x86, 0x53, 0x6d, 0x25, 0x53, 0x05, 0xea, 0x71, 0x68, 0x0f, 0xf3, 0x75,
|
||||
0x05, 0xf7, 0x8e, 0x59, 0x5e, 0xa3, 0x7b, 0xf8, 0x55, 0xdf, 0x20, 0xd1, 0x07, 0x30, 0xfe, 0x9b,
|
||||
0x15, 0xee, 0xa3, 0x68, 0x5c, 0x9a, 0xd1, 0x04, 0x08, 0xc8, 0xc0, 0x91, 0xcd, 0x4f, 0x15, 0x7e,
|
||||
0x26, 0xde, 0xe9, 0x3c, 0xea, 0xf5, 0xd3, 0x80, 0x1d, 0x0c, 0xf6, 0x7f, 0xdd, 0x3b, 0x18, 0x1c,
|
||||
0x1c, 0xb0, 0x17, 0xb9, 0xc1, 0x65, 0x4f, 0x81, 0x44, 0x47, 0x69, 0xbe, 0xa4, 0xab, 0x72, 0xdb,
|
||||
0xb3, 0x2e, 0xd0, 0xcd, 0x70, 0x0b, 0x01, 0xf4, 0x30, 0xaa, 0x69, 0xb9, 0x3f, 0x05, 0xc6, 0xa4,
|
||||
0xd0, 0x93, 0x78, 0x81, 0x5b, 0xa2, 0x34, 0xf1, 0xc5, 0xf9, 0x8b, 0xb3, 0xd7, 0xa3, 0xb3, 0xaf,
|
||||
0x43, 0xd0, 0xbb, 0x3c, 0x1f, 0xb3, 0xa2, 0xd1, 0xe4, 0x1d, 0x44, 0x9f, 0xeb, 0x0c, 0x1d, 0x49,
|
||||
0x03, 0xaf, 0xe0, 0x86, 0xb5, 0xe8, 0x96, 0xe0, 0x55, 0x5c, 0xdb, 0xca, 0x8e, 0x10, 0xac, 0xaa,
|
||||
0x38, 0x95, 0xae, 0xbf, 0xd2, 0x32, 0x7f, 0x4b, 0x25, 0xc6, 0xa7, 0x2d, 0x0d, 0xbd, 0x52, 0xb9,
|
||||
0x10, 0x59, 0x34, 0x3f, 0x03, 0x7c, 0x77, 0xbe, 0xfd, 0x7a, 0xbc, 0xed, 0xfd, 0xd4, 0x7c, 0x1b,
|
||||
0x53, 0xd3, 0xc1, 0x07, 0x8d, 0xf5, 0x34, 0xe3, 0xd3, 0xcf, 0x8c, 0xff, 0x03, 0xa4, 0xa5, 0xac,
|
||||
0xc6, 0x76, 0x14, 0x00, 0x00
|
||||
0xcd, 0xd1, 0x04, 0x97, 0xac, 0xae, 0x54, 0xda, 0x72, 0xe8, 0x7e, 0xb5, 0x40, 0x1b, 0xce, 0xeb,
|
||||
0x49, 0x84, 0x9b, 0x63, 0x7c, 0xa4, 0x4c, 0xaa, 0xb5, 0x9e, 0x2b, 0x19, 0xd3, 0x4c, 0x18, 0xa3,
|
||||
0x7b, 0x0b, 0x33, 0xa3, 0x1f, 0x53, 0x3e, 0x4d, 0x0a, 0xb4, 0x4c, 0x3e, 0xa4, 0x65, 0x4a, 0x85,
|
||||
0x1e, 0xbb, 0x96, 0x86, 0xc8, 0x86, 0x0d, 0xa2, 0xbd, 0x27, 0xd1, 0x20, 0xfa, 0x35, 0x1a, 0xac,
|
||||
0x89, 0xeb, 0x67, 0x54, 0x2c, 0xd5, 0x5c, 0xc5, 0xfe, 0xfa, 0x40, 0x53, 0xb3, 0x36, 0x76, 0x17,
|
||||
0xd4, 0xb8, 0x9b, 0x1a, 0x99, 0x29, 0xca, 0xd5, 0xde, 0x6d, 0x03, 0xb6, 0xb7, 0xa2, 0x7d, 0x4b,
|
||||
0xba, 0x08, 0x81, 0x06, 0x95, 0x6c, 0x38, 0xd5, 0x56, 0x32, 0x55, 0xa0, 0x1e, 0x87, 0xf6, 0x30,
|
||||
0x5f, 0x57, 0x70, 0xef, 0x88, 0xe5, 0x35, 0xba, 0x87, 0x5f, 0xf5, 0x0d, 0x12, 0x7d, 0x00, 0xe3,
|
||||
0xbf, 0x59, 0xe1, 0x3e, 0x8a, 0xc6, 0xa5, 0x19, 0x4d, 0x80, 0x80, 0x0c, 0x1c, 0xd9, 0xfc, 0x54,
|
||||
0xe1, 0x67, 0xe2, 0x9d, 0xce, 0xa3, 0x5e, 0x3f, 0x0d, 0xd8, 0xfe, 0x60, 0xef, 0xb7, 0xdd, 0xfd,
|
||||
0xc1, 0xfe, 0x3e, 0x7b, 0x99, 0x1b, 0x5c, 0xf6, 0x14, 0x48, 0x74, 0x94, 0xe6, 0x4b, 0xba, 0x2a,
|
||||
0xb7, 0x3d, 0xeb, 0x1c, 0xdd, 0x0c, 0xb7, 0x10, 0x40, 0x0f, 0xa3, 0x9a, 0x96, 0xfb, 0x53, 0x60,
|
||||
0x4c, 0x0a, 0x3d, 0x89, 0x17, 0xb8, 0x25, 0x4a, 0x13, 0x9f, 0x9f, 0xbd, 0x3c, 0x7d, 0x33, 0x3a,
|
||||
0xfd, 0x36, 0x04, 0xbd, 0x8b, 0xb3, 0x31, 0x2b, 0x1a, 0x4d, 0xde, 0x41, 0xf4, 0xb9, 0xce, 0xd0,
|
||||
0x91, 0x34, 0xf0, 0x0a, 0x6e, 0x58, 0x8b, 0x6e, 0x09, 0x5e, 0xc5, 0xb5, 0xad, 0xec, 0x08, 0xc1,
|
||||
0xaa, 0x8a, 0x53, 0xe9, 0xfa, 0x2b, 0x2d, 0xf3, 0xb7, 0x54, 0x62, 0x7c, 0xda, 0xd2, 0xd0, 0x2b,
|
||||
0x95, 0x0b, 0x91, 0x45, 0xf3, 0x33, 0xc0, 0x77, 0xe7, 0xdb, 0x6f, 0xc7, 0xdb, 0xde, 0x4f, 0xcd,
|
||||
0xb7, 0x31, 0x35, 0x1d, 0x7c, 0xd0, 0x58, 0x4f, 0x33, 0x3e, 0xfd, 0xcc, 0xf8, 0x3f, 0xad, 0x72,
|
||||
0x6e, 0x5b, 0x76, 0x14, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
// Autogenerated from wled00/data/settings_um.htm, do not edit!!
|
||||
const uint16_t PAGE_settings_um_length = 2721;
|
||||
const uint16_t PAGE_settings_um_length = 2816;
|
||||
const uint8_t PAGE_settings_um[] PROGMEM = {
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x13, 0xcd, 0x59, 0x6d, 0x73, 0xdb, 0xb8,
|
||||
0x11, 0xfe, 0xae, 0x5f, 0x41, 0x23, 0x1e, 0x9b, 0x1c, 0xd3, 0x94, 0x9c, 0xdc, 0xcd, 0xe4, 0x24,
|
||||
0x81, 0x6e, 0xe2, 0xe4, 0x2e, 0x6a, 0x9c, 0xb3, 0xa7, 0xba, 0xbb, 0x4e, 0xc7, 0xf5, 0xc4, 0x14,
|
||||
0x09, 0x49, 0x88, 0x29, 0x80, 0x25, 0x41, 0xbf, 0x54, 0xd6, 0x7f, 0xef, 0xb3, 0x20, 0x29, 0x51,
|
||||
0x8e, 0x9d, 0xb9, 0xbb, 0xf6, 0x43, 0xbf, 0x58, 0x24, 0xb8, 0xbb, 0x58, 0x3c, 0xfb, 0x0e, 0x0f,
|
||||
0x77, 0xde, 0x9d, 0x9d, 0xfc, 0xf2, 0x8f, 0xf3, 0xf7, 0xce, 0xdc, 0x2c, 0xd2, 0x70, 0x58, 0xff,
|
||||
0x15, 0x51, 0xe2, 0xa4, 0x91, 0x9a, 0x71, 0x26, 0x14, 0x0b, 0x87, 0x0b, 0x61, 0x22, 0x27, 0x9e,
|
||||
0x47, 0x79, 0x21, 0x0c, 0x67, 0xa5, 0x99, 0x1e, 0xbe, 0x6e, 0x56, 0x3b, 0x2a, 0x5a, 0x08, 0xce,
|
||||
0x6e, 0xa4, 0xb8, 0xcd, 0x74, 0x6e, 0x98, 0x13, 0x6b, 0x65, 0x84, 0x02, 0xd9, 0xad, 0x4c, 0xcc,
|
||||
0x9c, 0x7f, 0xdf, 0xeb, 0xad, 0x49, 0x1f, 0x7d, 0x4a, 0xc4, 0x8d, 0x8c, 0xc5, 0xa1, 0x7d, 0xf1,
|
||||
0xa5, 0x92, 0x46, 0x46, 0xe9, 0x61, 0x11, 0x47, 0xa9, 0xe0, 0x47, 0xfe, 0x22, 0xba, 0x93, 0x8b,
|
||||
0x72, 0xb1, 0x7e, 0x2f, 0x0b, 0x91, 0xdb, 0x97, 0x68, 0x82, 0x77, 0xa5, 0xd9, 0x57, 0x3b, 0x87,
|
||||
0x43, 0x23, 0x4d, 0x2a, 0xc2, 0x5f, 0x41, 0xb9, 0xd0, 0x89, 0x33, 0x16, 0xc6, 0x48, 0x35, 0x2b,
|
||||
0x86, 0xdd, 0x6a, 0x7d, 0x58, 0xc4, 0xb9, 0xcc, 0x4c, 0xd8, 0xb9, 0x89, 0x72, 0x47, 0xdf, 0x2a,
|
||||
0x91, 0xfb, 0xa9, 0x8e, 0x65, 0xe6, 0x97, 0xb9, 0xbe, 0x2d, 0xfc, 0x84, 0x27, 0x3a, 0x2e, 0x17,
|
||||
0xd0, 0xcf, 0x2f, 0x17, 0x27, 0xd3, 0x19, 0x5f, 0xae, 0xfc, 0x4c, 0xaa, 0x82, 0x5f, 0x5c, 0xd2,
|
||||
0xef, 0x19, 0xfd, 0x82, 0x9e, 0xef, 0x1c, 0xf9, 0xaa, 0x5c, 0x7c, 0xe2, 0xbd, 0xc1, 0xb4, 0x54,
|
||||
0xb1, 0x91, 0x5a, 0x39, 0xb3, 0x51, 0xe2, 0x0a, 0x6f, 0x99, 0x0b, 0x53, 0xe6, 0xca, 0x49, 0x82,
|
||||
0x99, 0x30, 0xef, 0x53, 0x41, 0xa2, 0xde, 0xde, 0xdb, 0x4f, 0xab, 0x35, 0xa9, 0x2c, 0xce, 0x5a,
|
||||
0xa4, 0x62, 0x6f, 0x8f, 0xe9, 0xc9, 0x17, 0x11, 0x1b, 0xc6, 0xb9, 0xb9, 0xcf, 0x84, 0x9e, 0xd2,
|
||||
0xda, 0xce, 0x9b, 0x3c, 0x8f, 0xee, 0x03, 0x59, 0xd8, 0xdf, 0x2d, 0xfe, 0x0f, 0xae, 0xb7, 0xbc,
|
||||
0x95, 0x2a, 0xd1, 0xb7, 0x81, 0xce, 0x84, 0x72, 0xd9, 0xdc, 0x98, 0xac, 0xe8, 0x77, 0xbb, 0x33,
|
||||
0x69, 0xe6, 0xe5, 0x24, 0x88, 0xf5, 0xa2, 0xfb, 0x46, 0xe6, 0xb1, 0xd6, 0xfa, 0x5a, 0x8a, 0xee,
|
||||
0xdf, 0x4f, 0xdf, 0xbf, 0xeb, 0xde, 0xca, 0x6b, 0xd9, 0x6d, 0xd0, 0x78, 0x51, 0x56, 0xf0, 0x1c,
|
||||
0x16, 0xf5, 0x02, 0x6b, 0x49, 0x7f, 0xfb, 0x58, 0x7a, 0x77, 0x4d, 0xe5, 0xb3, 0xcf, 0x85, 0x48,
|
||||
0xa7, 0x6d, 0xea, 0x54, 0x47, 0xc9, 0x5f, 0xc7, 0xae, 0xf0, 0x0d, 0xdf, 0xe9, 0x79, 0xcb, 0x54,
|
||||
0x18, 0x47, 0xf1, 0x24, 0x88, 0x73, 0x11, 0x19, 0x51, 0x03, 0xe0, 0xb2, 0x0a, 0x75, 0xe6, 0x0d,
|
||||
0x54, 0x00, 0x61, 0x6f, 0x8c, 0xc9, 0xe5, 0xa4, 0x34, 0x02, 0x1f, 0xf2, 0x98, 0xf9, 0xc2, 0xf3,
|
||||
0x1f, 0xaf, 0x13, 0x0e, 0xd8, 0xce, 0x88, 0x3b, 0xd3, 0xfd, 0x12, 0xdd, 0x44, 0x8d, 0x80, 0xaf,
|
||||
0x08, 0xa3, 0xe2, 0x5e, 0x41, 0x84, 0xf1, 0xfc, 0x24, 0x98, 0xe8, 0xe4, 0x3e, 0x88, 0x32, 0x28,
|
||||
0x9d, 0x9c, 0xcc, 0x65, 0x9a, 0xb8, 0x8a, 0xe8, 0xa3, 0x24, 0x79, 0x7f, 0x03, 0x2d, 0x4e, 0x65,
|
||||
0x01, 0xc7, 0x13, 0xb9, 0xcb, 0x48, 0x67, 0xe6, 0xbb, 0x1e, 0x0f, 0x97, 0x49, 0x50, 0x2e, 0x3e,
|
||||
0x67, 0x64, 0xd6, 0x24, 0xc8, 0x8b, 0x9b, 0xa4, 0x7e, 0xd2, 0x9f, 0x1b, 0xab, 0x27, 0x01, 0x9c,
|
||||
0xf0, 0xf3, 0x2c, 0x93, 0x9a, 0xbf, 0xfa, 0xc1, 0xff, 0x49, 0x98, 0xdf, 0x5c, 0x6f, 0x30, 0xd5,
|
||||
0xb9, 0x4b, 0x27, 0x15, 0x70, 0x00, 0x31, 0xac, 0x38, 0x83, 0x54, 0xa8, 0x99, 0x99, 0x0f, 0xc4,
|
||||
0xc1, 0x81, 0x47, 0xcc, 0x41, 0x56, 0x16, 0x73, 0xb7, 0xfa, 0x76, 0x21, 0x2e, 0x3d, 0xeb, 0x3f,
|
||||
0xd5, 0x22, 0xa3, 0x35, 0x80, 0x71, 0x78, 0xc4, 0x79, 0xa5, 0xc0, 0x45, 0xef, 0x72, 0x6f, 0xaf,
|
||||
0x7a, 0x0c, 0x8a, 0xb9, 0x9c, 0x1a, 0x97, 0xce, 0x33, 0x9e, 0x06, 0xe3, 0x77, 0x6f, 0x48, 0x01,
|
||||
0xbe, 0x51, 0xa3, 0x5e, 0x3f, 0x39, 0x7d, 0x72, 0xfd, 0xd3, 0xd9, 0x78, 0xf4, 0x1c, 0xc3, 0xc7,
|
||||
0xa7, 0x39, 0x46, 0xe3, 0xb3, 0x47, 0x1f, 0x56, 0x4f, 0xc3, 0x26, 0xf2, 0x5c, 0xe7, 0xb0, 0x16,
|
||||
0x60, 0x43, 0x10, 0x17, 0x3a, 0x15, 0x41, 0xaa, 0x67, 0x2e, 0x7b, 0x4f, 0xeb, 0x4e, 0xed, 0x0b,
|
||||
0xf0, 0x13, 0x67, 0x2a, 0x53, 0x61, 0xad, 0x8a, 0xa8, 0xcd, 0x61, 0xfd, 0xd3, 0x7a, 0x1d, 0x8e,
|
||||
0x0d, 0xc6, 0xa9, 0x9c, 0x95, 0x79, 0x64, 0x9d, 0xa7, 0xb2, 0xaa, 0x33, 0x8d, 0xc0, 0x90, 0x04,
|
||||
0xff, 0x54, 0x23, 0x05, 0xd7, 0xcd, 0x80, 0xac, 0x70, 0xb2, 0x68, 0x26, 0x9c, 0x24, 0x32, 0xd1,
|
||||
0x0e, 0xbc, 0xad, 0xe5, 0x6f, 0x63, 0x78, 0x27, 0xa3, 0x0d, 0xfa, 0x88, 0x96, 0xda, 0x4d, 0x11,
|
||||
0x91, 0x56, 0x5e, 0x90, 0xe5, 0xda, 0xe8, 0x58, 0xa7, 0x7b, 0x7b, 0xae, 0x8d, 0xd2, 0x9e, 0xef,
|
||||
0xda, 0xe8, 0xe6, 0x44, 0x91, 0x8e, 0x8d, 0xce, 0x21, 0x95, 0x22, 0x73, 0x64, 0xc4, 0x82, 0xfc,
|
||||
0x20, 0x1e, 0x65, 0xcc, 0xf3, 0x1e, 0x1e, 0x6a, 0x32, 0xf0, 0x2f, 0x32, 0x28, 0xfc, 0x23, 0xe4,
|
||||
0x3b, 0x9f, 0x74, 0x22, 0x02, 0xe7, 0x3c, 0x15, 0x51, 0x21, 0x1c, 0x00, 0x21, 0x72, 0x87, 0x22,
|
||||
0xc9, 0x19, 0x9d, 0x43, 0x25, 0x7f, 0x4b, 0x62, 0xb1, 0x2d, 0xb1, 0x4a, 0x29, 0x9e, 0x07, 0xaa,
|
||||
0x04, 0xfa, 0xda, 0x54, 0x81, 0x3d, 0x28, 0x43, 0xb0, 0x72, 0xc1, 0xbc, 0x40, 0x2a, 0x00, 0xfa,
|
||||
0xe1, 0x97, 0x4f, 0xa7, 0x9c, 0xb1, 0xad, 0xbc, 0xf0, 0x63, 0x3b, 0x2f, 0x70, 0xce, 0x0f, 0x90,
|
||||
0x08, 0xc4, 0x0e, 0xe7, 0x6e, 0xef, 0x61, 0x3b, 0x81, 0x8c, 0x9e, 0x22, 0xe4, 0x5f, 0x11, 0xc6,
|
||||
0x73, 0x11, 0x5f, 0x53, 0x70, 0x7a, 0x4b, 0x4a, 0x78, 0x8a, 0x8b, 0x80, 0x12, 0x66, 0x90, 0x8b,
|
||||
0x2c, 0x8d, 0x62, 0x84, 0xcf, 0xc5, 0x25, 0xa2, 0x0c, 0x1a, 0x15, 0xe5, 0xa4, 0x30, 0xb9, 0x7b,
|
||||
0xf8, 0xca, 0x1b, 0xc8, 0xa9, 0xcb, 0xa0, 0xf1, 0x44, 0xe4, 0x40, 0x58, 0x04, 0x14, 0x89, 0xc8,
|
||||
0x50, 0xf0, 0x5e, 0xbc, 0xaa, 0x86, 0xb0, 0xe7, 0xbf, 0xf2, 0xbc, 0x25, 0xc5, 0x01, 0xc9, 0x95,
|
||||
0x88, 0x03, 0x39, 0xb4, 0x5e, 0x5f, 0x47, 0x81, 0x44, 0x14, 0x40, 0x90, 0xd9, 0xe1, 0xe4, 0xf6,
|
||||
0x17, 0xf2, 0xd2, 0x5b, 0xe2, 0x55, 0x04, 0x37, 0x51, 0x5a, 0x42, 0x4f, 0x22, 0xc5, 0x22, 0xe4,
|
||||
0xca, 0x29, 0xc4, 0x6e, 0x88, 0x80, 0xa5, 0xb9, 0x87, 0x63, 0xc1, 0x88, 0x3a, 0xe7, 0x2c, 0x95,
|
||||
0x0b, 0xc1, 0x06, 0x13, 0x24, 0x93, 0xeb, 0xd5, 0x13, 0xfc, 0x0f, 0x0f, 0xf5, 0xca, 0xf0, 0xf0,
|
||||
0x68, 0xfd, 0x1c, 0x6e, 0x1c, 0xf9, 0x2b, 0x79, 0xb9, 0x48, 0x1a, 0x71, 0xdb, 0x5f, 0x6c, 0xcc,
|
||||
0x13, 0x4b, 0x50, 0xe8, 0x85, 0x70, 0x0d, 0x0f, 0x0d, 0x76, 0xa1, 0x5a, 0x37, 0x42, 0xfe, 0xaa,
|
||||
0x25, 0xfb, 0x47, 0x3d, 0xcf, 0x3b, 0x66, 0xb0, 0xb9, 0x9a, 0x09, 0xd6, 0x67, 0x2f, 0xa6, 0xd3,
|
||||
0x29, 0x5b, 0xad, 0x44, 0x5a, 0x88, 0x65, 0x71, 0x2b, 0x4d, 0x3c, 0x77, 0x2b, 0x7c, 0xbd, 0x65,
|
||||
0x0c, 0xa7, 0x61, 0x08, 0x5e, 0xd6, 0xaf, 0x9e, 0x4e, 0x4e, 0xeb, 0x27, 0x0a, 0xd0, 0xcd, 0xe2,
|
||||
0xc7, 0x66, 0x15, 0x41, 0xc8, 0xfa, 0x56, 0xb1, 0x41, 0x22, 0xa6, 0x51, 0x99, 0x9a, 0x7e, 0x65,
|
||||
0xdd, 0x15, 0x61, 0xfc, 0x34, 0xbe, 0x7f, 0x0a, 0x51, 0xa3, 0x17, 0x91, 0xd1, 0xff, 0xf7, 0x98,
|
||||
0x6e, 0x5c, 0x18, 0xd1, 0x7a, 0x0e, 0xcd, 0xc8, 0xdf, 0xa1, 0x6d, 0x55, 0x3a, 0x3d, 0x02, 0x85,
|
||||
0x72, 0x90, 0xb9, 0x50, 0xbe, 0xbc, 0x44, 0x5e, 0x39, 0xb3, 0x05, 0x34, 0x40, 0x98, 0xe6, 0x52,
|
||||
0x10, 0xb1, 0x57, 0x13, 0x4b, 0xcf, 0xb3, 0x65, 0x9e, 0x2b, 0xbf, 0x91, 0x24, 0xbd, 0x01, 0x99,
|
||||
0xcc, 0x21, 0x47, 0x6f, 0xdc, 0xfa, 0x1b, 0x01, 0x41, 0x92, 0xb6, 0x6b, 0xb1, 0xac, 0x14, 0x20,
|
||||
0xcf, 0x37, 0xb0, 0x8c, 0x19, 0xca, 0xc6, 0x2c, 0x86, 0xdc, 0xfe, 0xc2, 0x5c, 0x86, 0xbc, 0x87,
|
||||
0x1c, 0xb4, 0x29, 0x03, 0xb4, 0xd6, 0xae, 0x00, 0x56, 0x25, 0xaf, 0xd1, 0xe3, 0x2b, 0xea, 0xe7,
|
||||
0x49, 0x9f, 0x51, 0xe5, 0x09, 0x35, 0xd6, 0xa7, 0xa5, 0xad, 0x37, 0x70, 0x22, 0xad, 0xff, 0x28,
|
||||
0x05, 0x6a, 0x23, 0x92, 0x82, 0x0f, 0xf0, 0xd0, 0xca, 0xac, 0x81, 0x55, 0x08, 0x69, 0xdb, 0x07,
|
||||
0x1d, 0xf0, 0xfd, 0xe1, 0x3c, 0x77, 0xe2, 0x34, 0x2a, 0x0a, 0xce, 0x8a, 0x45, 0xca, 0xc2, 0xfd,
|
||||
0xc1, 0x06, 0x73, 0xe9, 0xeb, 0x27, 0x30, 0x07, 0x37, 0x2b, 0xd5, 0xb5, 0x82, 0xc2, 0xe4, 0x80,
|
||||
0x86, 0x9c, 0x47, 0xaa, 0x38, 0x2d, 0x13, 0x7c, 0x84, 0x65, 0xbd, 0xe3, 0xd6, 0xde, 0x10, 0xe1,
|
||||
0xf5, 0x37, 0xef, 0x07, 0xf8, 0x7e, 0x60, 0xec, 0xea, 0xea, 0xe9, 0x83, 0xaa, 0x0d, 0xe6, 0x1a,
|
||||
0x87, 0xd5, 0x43, 0xd5, 0x1c, 0x56, 0xe3, 0xb0, 0xdb, 0xa7, 0xba, 0xd0, 0x97, 0x3e, 0x9a, 0x11,
|
||||
0x0b, 0x99, 0xcd, 0x7b, 0x85, 0x9f, 0x37, 0x9d, 0x95, 0x1a, 0xd4, 0x91, 0x9a, 0xd7, 0x41, 0x3a,
|
||||
0xd1, 0x28, 0x64, 0x91, 0x62, 0x7d, 0xb8, 0xb2, 0x4d, 0x97, 0x13, 0x7d, 0xc7, 0xfc, 0x82, 0xef,
|
||||
0x57, 0x61, 0xc1, 0x4c, 0x5e, 0x0a, 0xb6, 0x7f, 0xe0, 0xaa, 0x63, 0x56, 0xa5, 0x53, 0xb8, 0x7b,
|
||||
0x1f, 0x1e, 0x52, 0xb9, 0xfc, 0xc0, 0xca, 0xa8, 0xd3, 0x65, 0xbf, 0xe0, 0x57, 0x35, 0xd7, 0xee,
|
||||
0x52, 0xad, 0xd8, 0x95, 0x5f, 0xfb, 0x17, 0x37, 0x2d, 0x7f, 0x3a, 0x76, 0x81, 0xef, 0x95, 0x43,
|
||||
0x25, 0x17, 0x64, 0xad, 0xaa, 0xcb, 0x9c, 0x85, 0x54, 0x9c, 0x1d, 0x1e, 0xb1, 0x35, 0xf2, 0x10,
|
||||
0x01, 0xb5, 0xa4, 0x42, 0xe7, 0xd3, 0x27, 0xab, 0x38, 0xa8, 0xc5, 0x19, 0x67, 0x91, 0xba, 0x5f,
|
||||
0xd3, 0xdc, 0xdd, 0xa5, 0x6c, 0x7f, 0xf0, 0x28, 0x75, 0x70, 0xdb, 0x39, 0xd1, 0x31, 0xb6, 0x14,
|
||||
0x72, 0x6c, 0x78, 0xd6, 0xad, 0x77, 0xff, 0xe5, 0xf7, 0xbd, 0xec, 0x6e, 0xc0, 0xae, 0x56, 0x8f,
|
||||
0xec, 0x04, 0x5f, 0xac, 0xbd, 0x40, 0x34, 0x6a, 0x13, 0x45, 0x22, 0xee, 0xce, 0xa6, 0x96, 0xe0,
|
||||
0xe0, 0x08, 0xa5, 0xad, 0x26, 0xb9, 0x72, 0x76, 0x97, 0x66, 0xd5, 0x77, 0x70, 0xd6, 0x35, 0x7a,
|
||||
0x9c, 0xe7, 0xc7, 0xcd, 0xe7, 0xa1, 0x54, 0x59, 0x69, 0x1c, 0x42, 0x9f, 0xb3, 0xb9, 0x4c, 0x12,
|
||||
0xcc, 0x12, 0x4e, 0xd5, 0xb4, 0xef, 0x2e, 0xc5, 0xaa, 0x4f, 0xdc, 0xbb, 0x4b, 0x79, 0x4c, 0x81,
|
||||
0x07, 0x58, 0xa1, 0x63, 0xad, 0xf0, 0x34, 0x82, 0xf5, 0x58, 0x78, 0xd5, 0x97, 0x28, 0x9d, 0xff,
|
||||
0xb5, 0xb4, 0xdd, 0x65, 0xbe, 0x82, 0xb0, 0x8d, 0xda, 0x5b, 0x92, 0x76, 0x97, 0x16, 0x63, 0x4e,
|
||||
0x8a, 0xaf, 0x8d, 0x09, 0x86, 0x6f, 0x8b, 0xde, 0x5d, 0x16, 0x2b, 0xb4, 0x3d, 0x56, 0x50, 0xed,
|
||||
0x3b, 0xae, 0x99, 0xcb, 0xc2, 0xdf, 0xdf, 0x5d, 0x3e, 0x8f, 0xdc, 0x6a, 0xdf, 0xc3, 0x94, 0x32,
|
||||
0xc9, 0xc3, 0xab, 0xd5, 0x56, 0x54, 0xbe, 0xcb, 0x75, 0x86, 0x66, 0x46, 0x55, 0xd5, 0xfa, 0xb9,
|
||||
0x3e, 0x5a, 0xa4, 0x34, 0x27, 0x78, 0x88, 0xdb, 0xf6, 0x84, 0x51, 0xbc, 0xbd, 0xff, 0x19, 0x9a,
|
||||
0x36, 0x71, 0xe4, 0x5d, 0x1c, 0x5d, 0x52, 0x19, 0x97, 0xa8, 0x06, 0xa3, 0x9f, 0xcf, 0x7f, 0xfd,
|
||||
0x85, 0x4e, 0x26, 0x03, 0x13, 0xcd, 0x88, 0x0a, 0xe6, 0xad, 0xbc, 0xa3, 0x5a, 0x04, 0x00, 0x0f,
|
||||
0x0f, 0x9b, 0x82, 0x5f, 0x2f, 0x79, 0x95, 0x0a, 0x02, 0xaf, 0x16, 0xc1, 0x81, 0xb4, 0x85, 0x6d,
|
||||
0xb0, 0x1d, 0x83, 0x32, 0x88, 0x9a, 0x4e, 0x7c, 0x5d, 0x99, 0x0e, 0x0e, 0x74, 0xd5, 0x6c, 0x14,
|
||||
0xbc, 0xfd, 0x19, 0x31, 0x39, 0xa8, 0xba, 0xfa, 0x1d, 0x5e, 0x58, 0x59, 0x50, 0xce, 0x8a, 0x6e,
|
||||
0x2f, 0x58, 0x9f, 0x6e, 0x2f, 0x58, 0x87, 0x6d, 0x2d, 0x3c, 0x6a, 0xff, 0xab, 0x65, 0xbf, 0xa8,
|
||||
0x94, 0xf4, 0x56, 0x75, 0x47, 0xf4, 0x78, 0x48, 0xa0, 0x3e, 0xf2, 0x10, 0x24, 0xb6, 0x29, 0x95,
|
||||
0x01, 0x6a, 0x10, 0x40, 0xab, 0xb1, 0x6b, 0x52, 0x7f, 0x3d, 0x31, 0xf8, 0x48, 0xbe, 0x6a, 0x2d,
|
||||
0xa7, 0x4c, 0xd3, 0x2d, 0x23, 0x9d, 0x65, 0xf4, 0x54, 0x65, 0x19, 0x9b, 0x36, 0x89, 0x02, 0xa0,
|
||||
0x09, 0xaf, 0xe2, 0x18, 0x10, 0x68, 0xf2, 0x6b, 0xbb, 0x69, 0xcb, 0x87, 0xa4, 0x51, 0xc3, 0x89,
|
||||
0x6a, 0x04, 0x9c, 0x61, 0x04, 0x6e, 0x7c, 0xb1, 0x35, 0xb2, 0xc8, 0xcd, 0x74, 0x51, 0x25, 0x75,
|
||||
0x54, 0x53, 0xfa, 0xf0, 0x33, 0xba, 0xd1, 0xa2, 0x9d, 0xdf, 0x97, 0xed, 0x0f, 0xc8, 0xf1, 0x4d,
|
||||
0x19, 0x17, 0x01, 0x9d, 0x16, 0xe7, 0xa7, 0x05, 0xd8, 0x9a, 0xba, 0x53, 0x72, 0x1a, 0x91, 0x8c,
|
||||
0xc8, 0x11, 0xb9, 0xf1, 0xb6, 0xfd, 0x6e, 0xa4, 0xa6, 0xba, 0x39, 0x50, 0xa3, 0xfd, 0x13, 0x9e,
|
||||
0x45, 0xaa, 0x57, 0xbb, 0x93, 0xff, 0xc0, 0xb3, 0xd1, 0xd0, 0x6f, 0xe6, 0x55, 0xb3, 0xb7, 0x27,
|
||||
0x31, 0xc3, 0x1c, 0xd3, 0x9f, 0xc0, 0xc2, 0x39, 0xd7, 0x69, 0x82, 0xaa, 0x6b, 0xfa, 0x54, 0x7f,
|
||||
0xe8, 0x2b, 0x34, 0x44, 0x39, 0xc2, 0x3c, 0xf0, 0x26, 0xf9, 0x82, 0xef, 0xca, 0x50, 0xff, 0x8b,
|
||||
0xf9, 0x6d, 0x8a, 0xc6, 0x1a, 0xa7, 0x47, 0xd5, 0xdd, 0x53, 0x93, 0x22, 0x1b, 0xb0, 0x03, 0xa4,
|
||||
0xfa, 0xd6, 0x7c, 0x49, 0x1d, 0xf4, 0x72, 0x2a, 0x28, 0x65, 0x53, 0x97, 0x7e, 0x6c, 0x87, 0x5d,
|
||||
0xcc, 0xba, 0xec, 0xc0, 0x76, 0xd9, 0x94, 0x8a, 0x0f, 0x58, 0x37, 0x9e, 0xce, 0x82, 0x2f, 0x05,
|
||||
0x20, 0xf6, 0x97, 0x0b, 0x61, 0xe6, 0x3a, 0xe9, 0x33, 0x1c, 0x82, 0xad, 0xbc, 0xc0, 0xcc, 0x31,
|
||||
0xc3, 0x62, 0x66, 0x01, 0x10, 0xfa, 0xba, 0xe9, 0xc2, 0x91, 0x5a, 0xf2, 0x9c, 0xaa, 0xbc, 0x6d,
|
||||
0x57, 0x12, 0x59, 0x40, 0xe7, 0x7b, 0x4a, 0xb4, 0xa9, 0x54, 0x02, 0xe1, 0x25, 0xac, 0x30, 0x17,
|
||||
0x2d, 0xfc, 0x9a, 0x9f, 0xac, 0x5d, 0xdd, 0x09, 0x08, 0xcc, 0x69, 0xfe, 0xa6, 0x2d, 0xa9, 0x52,
|
||||
0x0a, 0x3a, 0x79, 0x9f, 0x6a, 0xa8, 0x25, 0x41, 0xf4, 0xd8, 0x4a, 0x89, 0xf8, 0x79, 0x3c, 0xa2,
|
||||
0x14, 0x22, 0xca, 0xe3, 0x39, 0xa6, 0x65, 0x25, 0x6e, 0x9d, 0x5f, 0xff, 0x76, 0x3a, 0xb6, 0xef,
|
||||
0xe7, 0x51, 0x1e, 0x2d, 0x48, 0x18, 0x41, 0x5f, 0x0d, 0x09, 0xad, 0x7a, 0x2b, 0x7c, 0xf5, 0x44,
|
||||
0xbd, 0xad, 0x77, 0x6a, 0x8f, 0x62, 0x98, 0x82, 0xd1, 0x62, 0x89, 0x4d, 0x02, 0xbf, 0x42, 0x19,
|
||||
0x0f, 0x87, 0xf3, 0x57, 0x21, 0xa5, 0xb0, 0x61, 0x17, 0x0f, 0x57, 0x7e, 0xab, 0x56, 0xae, 0xeb,
|
||||
0x35, 0x8c, 0x8f, 0xd9, 0x1c, 0xbe, 0xbc, 0xc3, 0x61, 0x4a, 0x46, 0x79, 0xc0, 0x4a, 0x68, 0x24,
|
||||
0x71, 0x56, 0x5f, 0xa8, 0x14, 0x8f, 0x26, 0x38, 0xa5, 0x31, 0xbe, 0xe9, 0x52, 0x25, 0x01, 0xa5,
|
||||
0xb4, 0xf3, 0x5c, 0x14, 0x85, 0x33, 0x94, 0xe1, 0x38, 0xba, 0x11, 0xc3, 0xae, 0x0c, 0x1d, 0xa3,
|
||||
0x9d, 0xfa, 0x52, 0x47, 0xfe, 0x1b, 0xf3, 0x5c, 0x55, 0x9f, 0x8a, 0x00, 0x53, 0x8f, 0xb5, 0xc3,
|
||||
0x2c, 0xd5, 0x93, 0x28, 0xfd, 0xe9, 0x7c, 0x74, 0x56, 0x7c, 0x6d, 0x8d, 0xb5, 0x16, 0xc7, 0x6c,
|
||||
0x02, 0xfc, 0xae, 0x91, 0xdb, 0x94, 0x86, 0x79, 0xfc, 0xa7, 0x06, 0xa9, 0xea, 0xfe, 0xa6, 0xbe,
|
||||
0x8d, 0xf8, 0x86, 0xa3, 0x34, 0x77, 0x19, 0xdd, 0x02, 0x26, 0x3e, 0xce, 0xf8, 0x6b, 0xe6, 0xa3,
|
||||
0x03, 0x82, 0x9f, 0xc0, 0x3e, 0xd4, 0xbf, 0xc3, 0xd0, 0xbf, 0xc3, 0x43, 0xfc, 0x36, 0xea, 0x62,
|
||||
0x6b, 0x40, 0x2d, 0x6e, 0xc6, 0xd4, 0xab, 0x0a, 0x0c, 0xa3, 0x82, 0xe6, 0xe7, 0x77, 0xd5, 0x99,
|
||||
0x9b, 0x81, 0xde, 0x96, 0x89, 0xdf, 0x00, 0x47, 0x22, 0xcd, 0xbd, 0xeb, 0xd1, 0xd4, 0x8f, 0x55,
|
||||
0x14, 0x8b, 0x85, 0x04, 0xcd, 0xaa, 0x33, 0xec, 0xd6, 0x37, 0x54, 0x43, 0xbb, 0x73, 0xf8, 0x17,
|
||||
0xb9, 0xa0, 0x8b, 0x2d, 0xa7, 0xcc, 0x53, 0x97, 0xd5, 0xdd, 0x35, 0x52, 0xa4, 0x37, 0x00, 0xa1,
|
||||
0x25, 0x80, 0x55, 0x45, 0x94, 0xa0, 0xa2, 0xe8, 0xe4, 0x1e, 0xd5, 0x88, 0x10, 0xe0, 0x0c, 0x31,
|
||||
0x83, 0x22, 0x03, 0x0f, 0x5a, 0x74, 0x1c, 0x89, 0x77, 0x7a, 0xfa, 0x5c, 0x34, 0xf5, 0x6c, 0x3c,
|
||||
0x45, 0xab, 0x61, 0xa3, 0x84, 0xb3, 0x4c, 0x17, 0x86, 0x81, 0xaf, 0xd2, 0x00, 0x2d, 0x07, 0xa9,
|
||||
0x4f, 0x7a, 0x93, 0x80, 0x44, 0xde, 0x34, 0x6d, 0x86, 0xd1, 0x18, 0x8e, 0x6f, 0x59, 0xd8, 0x69,
|
||||
0x2f, 0xce, 0x45, 0x9a, 0xbd, 0xa5, 0x6a, 0x56, 0x1a, 0x83, 0xa3, 0x57, 0xc5, 0xb4, 0x7a, 0x21,
|
||||
0x99, 0x71, 0x2a, 0xe3, 0x6b, 0xce, 0x3e, 0x90, 0x32, 0xc7, 0xc3, 0x6e, 0xf5, 0x01, 0x0a, 0x43,
|
||||
0xc2, 0x9a, 0xa7, 0xf3, 0x0c, 0xd3, 0x5b, 0x62, 0x7a, 0x1b, 0xc5, 0xd7, 0x1b, 0xbe, 0xad, 0x5d,
|
||||
0x2a, 0x7d, 0x59, 0xed, 0x69, 0x6b, 0x92, 0x1c, 0x0a, 0x16, 0x59, 0xa4, 0xec, 0xa9, 0xd3, 0xa2,
|
||||
0x28, 0xe3, 0x75, 0xd3, 0x63, 0x87, 0x92, 0xfe, 0x2c, 0x17, 0x42, 0x0d, 0x6a, 0x7b, 0xf6, 0xad,
|
||||
0x3f, 0x85, 0x7b, 0x2f, 0x8e, 0x7a, 0xbd, 0xde, 0x77, 0x03, 0xe7, 0x64, 0xfb, 0x76, 0x02, 0xa2,
|
||||
0x93, 0x1d, 0xb2, 0x08, 0x04, 0x86, 0x4e, 0x5b, 0x2e, 0xf9, 0xc6, 0xb6, 0x5c, 0x4c, 0x41, 0x8f,
|
||||
0xa4, 0x76, 0xf6, 0x5e, 0xfc, 0xf0, 0xfa, 0xf5, 0x6b, 0x92, 0x5a, 0xa6, 0x89, 0x8d, 0x14, 0x32,
|
||||
0xce, 0x76, 0x00, 0x05, 0xb5, 0xf4, 0x1a, 0x14, 0xc2, 0x96, 0x76, 0x68, 0xc7, 0x85, 0xd3, 0xa9,
|
||||
0x37, 0xda, 0x16, 0x5f, 0x45, 0xf6, 0xcb, 0xf6, 0x4d, 0x67, 0x99, 0xc1, 0x19, 0x5e, 0x86, 0x3f,
|
||||
0x59, 0x66, 0x67, 0x34, 0x2c, 0xca, 0x2c, 0x7c, 0x89, 0x0d, 0xf0, 0x73, 0xe2, 0x58, 0x61, 0x8e,
|
||||
0xfb, 0xe1, 0xef, 0x5e, 0x87, 0x60, 0x1a, 0xca, 0x6d, 0xfd, 0xeb, 0x01, 0x2c, 0x74, 0xe1, 0x42,
|
||||
0xf7, 0x74, 0xcd, 0xab, 0x66, 0x74, 0xc9, 0x4a, 0xd7, 0x3a, 0xef, 0xc7, 0xe7, 0xaf, 0x5e, 0xfa,
|
||||
0xd5, 0x9a, 0x70, 0x72, 0xf1, 0xaf, 0x52, 0x22, 0xce, 0xf1, 0x80, 0xd6, 0xd9, 0xec, 0x40, 0x1c,
|
||||
0x02, 0x9d, 0x44, 0x62, 0xdc, 0xed, 0x6f, 0xb5, 0x55, 0x75, 0x53, 0xb1, 0x69, 0x6b, 0x6d, 0xcf,
|
||||
0xfb, 0xdd, 0xeb, 0xb5, 0x1f, 0x62, 0x3e, 0x76, 0x3a, 0x30, 0xb9, 0x95, 0xcc, 0xf7, 0x5b, 0x2d,
|
||||
0x14, 0x4d, 0xb1, 0xde, 0xfe, 0xa6, 0x0f, 0x76, 0xda, 0x45, 0xc5, 0x32, 0x86, 0x0e, 0xe6, 0xe7,
|
||||
0x66, 0xbf, 0xce, 0xef, 0xdc, 0x10, 0x63, 0xb8, 0xf3, 0xad, 0xfd, 0x3a, 0xcf, 0x6d, 0x08, 0xc6,
|
||||
0xf0, 0xf1, 0x48, 0x54, 0xe3, 0x3c, 0x3e, 0x1f, 0xb5, 0xc0, 0xad, 0xb1, 0xed, 0xfc, 0x8f, 0xc0,
|
||||
0x6d, 0xb0, 0xed, 0xd0, 0xbd, 0xc1, 0x1f, 0x43, 0xd7, 0xde, 0x34, 0xfc, 0x29, 0x78, 0x2d, 0x67,
|
||||
0xe8, 0xd0, 0xa5, 0xc4, 0x1f, 0x04, 0xd8, 0xde, 0x63, 0xfc, 0x29, 0x84, 0x2d, 0xa7, 0xb5, 0xe9,
|
||||
0xc7, 0xdf, 0x7b, 0xcc, 0xce, 0xda, 0xa8, 0x1f, 0xbf, 0xbd, 0xe7, 0xf3, 0x46, 0xfd, 0xc8, 0xda,
|
||||
0x91, 0xd7, 0xa1, 0xd0, 0x43, 0x5d, 0x09, 0x9b, 0x0b, 0xcb, 0xa6, 0x58, 0x04, 0x41, 0x50, 0x93,
|
||||
0x51, 0xd0, 0x7d, 0x3b, 0xdb, 0xad, 0x13, 0x57, 0xe7, 0x0f, 0x65, 0xae, 0x2e, 0xa5, 0x68, 0xfc,
|
||||
0x50, 0x1a, 0xa7, 0x9c, 0x4e, 0xff, 0x82, 0xf9, 0x0f, 0x96, 0x86, 0x12, 0x65, 0x98, 0x19, 0x00,
|
||||
0x00
|
||||
0x11, 0xfe, 0xae, 0x5f, 0x41, 0x23, 0x1e, 0x9b, 0x1c, 0xd1, 0x94, 0x9c, 0xdc, 0xcd, 0xe4, 0x24,
|
||||
0x81, 0x6e, 0xe2, 0x24, 0x17, 0x35, 0xce, 0xd9, 0x53, 0x5d, 0xee, 0xa6, 0xe3, 0x7a, 0x62, 0x4a,
|
||||
0x84, 0x24, 0xc4, 0x14, 0xc0, 0x92, 0xa0, 0x5f, 0x2a, 0xeb, 0xbf, 0xf7, 0x59, 0x90, 0x94, 0x28,
|
||||
0xc7, 0xce, 0x5c, 0x32, 0xfd, 0xd0, 0x2f, 0x16, 0x09, 0xee, 0x2e, 0x16, 0xbb, 0xcf, 0xbe, 0xc1,
|
||||
0x83, 0x9d, 0x37, 0xa7, 0xc7, 0xbf, 0xff, 0xf3, 0xec, 0xad, 0x33, 0x37, 0x8b, 0x24, 0x1c, 0x54,
|
||||
0x7f, 0x45, 0x14, 0x3b, 0x49, 0xa4, 0x66, 0x9c, 0x09, 0xc5, 0xc2, 0xc1, 0x42, 0x98, 0xc8, 0x99,
|
||||
0xcc, 0xa3, 0x2c, 0x17, 0x86, 0xb3, 0xc2, 0x4c, 0x0f, 0x5e, 0xd6, 0xab, 0x2d, 0x15, 0x2d, 0x04,
|
||||
0x67, 0xd7, 0x52, 0xdc, 0xa4, 0x3a, 0x33, 0xcc, 0x99, 0x68, 0x65, 0x84, 0x02, 0xd9, 0x8d, 0x8c,
|
||||
0xcd, 0x9c, 0xff, 0xdc, 0xed, 0xae, 0x49, 0x1f, 0x7c, 0x8a, 0xc5, 0xb5, 0x9c, 0x88, 0x03, 0xfb,
|
||||
0xe2, 0x4b, 0x25, 0x8d, 0x8c, 0x92, 0x83, 0x7c, 0x12, 0x25, 0x82, 0x1f, 0xfa, 0x8b, 0xe8, 0x56,
|
||||
0x2e, 0x8a, 0xc5, 0xfa, 0xbd, 0xc8, 0x45, 0x66, 0x5f, 0xa2, 0x31, 0xde, 0x95, 0x66, 0x5f, 0xed,
|
||||
0x1c, 0x0e, 0x8c, 0x34, 0x89, 0x08, 0x3f, 0x81, 0x72, 0xa1, 0x63, 0x67, 0x24, 0x8c, 0x91, 0x6a,
|
||||
0x96, 0x0f, 0x3a, 0xe5, 0xfa, 0x20, 0x9f, 0x64, 0x32, 0x35, 0x61, 0xeb, 0x3a, 0xca, 0x1c, 0x7d,
|
||||
0xa3, 0x44, 0xe6, 0x27, 0x7a, 0x22, 0x53, 0xbf, 0xc8, 0xf4, 0x4d, 0xee, 0xc7, 0x3c, 0xd6, 0x93,
|
||||
0x62, 0x01, 0xfd, 0xfc, 0x62, 0x71, 0x3c, 0x9d, 0xf1, 0xe5, 0xca, 0x4f, 0xa5, 0xca, 0xf9, 0xf9,
|
||||
0x05, 0xfd, 0x9e, 0xd2, 0x2f, 0xe8, 0xf9, 0xce, 0xa1, 0xaf, 0x8a, 0xc5, 0x47, 0xde, 0xed, 0x4f,
|
||||
0x0b, 0x35, 0x31, 0x52, 0x2b, 0x67, 0x36, 0x8c, 0x5d, 0xe1, 0x2d, 0x33, 0x61, 0x8a, 0x4c, 0x39,
|
||||
0x71, 0x30, 0x13, 0xe6, 0x6d, 0x22, 0x48, 0xd4, 0xeb, 0x3b, 0xfb, 0x69, 0xb5, 0x26, 0x95, 0xf9,
|
||||
0x69, 0x83, 0x54, 0xec, 0xed, 0x31, 0x3d, 0xfe, 0x22, 0x26, 0x86, 0x71, 0x6e, 0xee, 0x52, 0xa1,
|
||||
0xa7, 0xb4, 0xb6, 0xf3, 0x2a, 0xcb, 0xa2, 0xbb, 0x40, 0xe6, 0xf6, 0x77, 0x8b, 0xff, 0xbd, 0xeb,
|
||||
0x2d, 0x6f, 0xa4, 0x8a, 0xf5, 0x4d, 0xa0, 0x53, 0xa1, 0x5c, 0x36, 0x37, 0x26, 0xcd, 0x7b, 0x9d,
|
||||
0xce, 0x4c, 0x9a, 0x79, 0x31, 0x0e, 0x26, 0x7a, 0xd1, 0x79, 0x25, 0xb3, 0x89, 0xd6, 0xfa, 0x4a,
|
||||
0x8a, 0xce, 0x9f, 0x27, 0x6f, 0xdf, 0x74, 0x6e, 0xe4, 0x95, 0xec, 0xd4, 0xd6, 0x78, 0x56, 0x94,
|
||||
0xe6, 0x39, 0xc8, 0xab, 0x05, 0xd6, 0x90, 0xfe, 0xfa, 0xa1, 0xf4, 0xce, 0x9a, 0xca, 0x67, 0x9f,
|
||||
0x73, 0x91, 0x4c, 0x9b, 0xd4, 0x89, 0x8e, 0xe2, 0xbf, 0x8f, 0x5c, 0xe1, 0x1b, 0xbe, 0xd3, 0xf5,
|
||||
0x96, 0x89, 0x30, 0x8e, 0xe2, 0x71, 0x30, 0xc9, 0x44, 0x64, 0x44, 0x65, 0x00, 0x97, 0x95, 0x56,
|
||||
0x67, 0x5e, 0x5f, 0x05, 0x10, 0xf6, 0xca, 0x98, 0x4c, 0x8e, 0x0b, 0x23, 0xf0, 0x21, 0x9b, 0x30,
|
||||
0x5f, 0x78, 0xfe, 0xc3, 0x75, 0xb2, 0x03, 0xb6, 0x33, 0xe2, 0xd6, 0x74, 0xbe, 0x44, 0xd7, 0x51,
|
||||
0x2d, 0xe0, 0x2b, 0xc2, 0x28, 0xbf, 0x53, 0x10, 0x61, 0x3c, 0x3f, 0x0e, 0xc6, 0x3a, 0xbe, 0x0b,
|
||||
0xa2, 0x14, 0x4a, 0xc7, 0xc7, 0x73, 0x99, 0xc4, 0xae, 0x22, 0xfa, 0x28, 0x8e, 0xdf, 0x5e, 0x43,
|
||||
0x8b, 0x13, 0x99, 0x03, 0x78, 0x22, 0x73, 0x19, 0xe9, 0xcc, 0x7c, 0xd7, 0xe3, 0xe1, 0x32, 0x0e,
|
||||
0x8a, 0xc5, 0xe7, 0x94, 0xdc, 0x1a, 0x07, 0x59, 0x7e, 0x1d, 0x57, 0x4f, 0xfa, 0x73, 0xed, 0xf5,
|
||||
0x38, 0x00, 0x08, 0x3f, 0xcf, 0x52, 0xa9, 0xf9, 0x8b, 0x5f, 0xfc, 0x5f, 0x85, 0xf9, 0xc3, 0xf5,
|
||||
0xfa, 0x53, 0x9d, 0xb9, 0x74, 0x52, 0x01, 0x00, 0x88, 0x41, 0xc9, 0x19, 0x24, 0x42, 0xcd, 0xcc,
|
||||
0xbc, 0x2f, 0xda, 0x6d, 0x8f, 0x98, 0x83, 0xb4, 0xc8, 0xe7, 0x6e, 0xf9, 0xed, 0x5c, 0x5c, 0x78,
|
||||
0x16, 0x3f, 0xe5, 0x22, 0xa3, 0x35, 0x18, 0xe3, 0xe0, 0x90, 0xf3, 0x52, 0x81, 0xf3, 0xee, 0xc5,
|
||||
0xde, 0x5e, 0xf9, 0x18, 0xe4, 0x73, 0x39, 0x35, 0x2e, 0x9d, 0x67, 0x34, 0x0d, 0x46, 0x6f, 0x5e,
|
||||
0x91, 0x02, 0x7c, 0xa3, 0x46, 0xb5, 0x7e, 0x7c, 0xf2, 0xe8, 0xfa, 0xc7, 0xd3, 0xd1, 0xf0, 0x29,
|
||||
0x86, 0x0f, 0x8f, 0x73, 0x0c, 0x47, 0xa7, 0x0f, 0x3e, 0xac, 0x1e, 0x37, 0x9b, 0xc8, 0x32, 0x9d,
|
||||
0xc1, 0x5b, 0x30, 0x1b, 0x82, 0x38, 0xd7, 0x89, 0x08, 0x12, 0x3d, 0x73, 0xd9, 0x5b, 0x5a, 0x77,
|
||||
0x2a, 0x2c, 0x00, 0x27, 0xce, 0x54, 0x26, 0xc2, 0x7a, 0x15, 0x51, 0x9b, 0xc1, 0xfb, 0x27, 0xd5,
|
||||
0x3a, 0x80, 0x0d, 0xc6, 0xa9, 0x9c, 0x15, 0x59, 0x64, 0xc1, 0x53, 0x7a, 0xd5, 0x99, 0x46, 0x60,
|
||||
0x88, 0x83, 0x7f, 0xa9, 0xa1, 0x02, 0x74, 0x53, 0x58, 0x56, 0x38, 0x69, 0x34, 0x13, 0x4e, 0x1c,
|
||||
0x99, 0x68, 0x07, 0x68, 0x6b, 0xe0, 0x6d, 0x04, 0x74, 0x32, 0xda, 0xa0, 0x87, 0x68, 0xa9, 0x60,
|
||||
0x8a, 0x88, 0xb4, 0xf2, 0x82, 0x34, 0xd3, 0x46, 0x4f, 0x74, 0xb2, 0xb7, 0xe7, 0xda, 0x28, 0xed,
|
||||
0xfa, 0xae, 0x8d, 0x6e, 0x4e, 0x14, 0xc9, 0xc8, 0xe8, 0x0c, 0x52, 0x29, 0x32, 0x87, 0x46, 0x2c,
|
||||
0x08, 0x07, 0x93, 0x61, 0xca, 0x3c, 0xef, 0xfe, 0xbe, 0x22, 0x03, 0xff, 0x22, 0x85, 0xc2, 0xef,
|
||||
0x20, 0xdf, 0xf9, 0xa8, 0x63, 0x11, 0x38, 0x67, 0x89, 0x88, 0x72, 0xe1, 0xc0, 0x10, 0x22, 0x73,
|
||||
0x28, 0x92, 0x9c, 0xe1, 0x19, 0x54, 0xf2, 0xb7, 0x24, 0xe6, 0xdb, 0x12, 0xcb, 0x94, 0xe2, 0x79,
|
||||
0xa0, 0x8a, 0xa1, 0xaf, 0x4d, 0x15, 0xd8, 0x83, 0x32, 0x04, 0x2b, 0x16, 0xcc, 0x0b, 0xa4, 0x82,
|
||||
0x41, 0xdf, 0xff, 0xfe, 0xf1, 0x84, 0x33, 0xb6, 0x95, 0x17, 0xde, 0x35, 0xf3, 0x02, 0xe7, 0xbc,
|
||||
0x8d, 0x44, 0x20, 0x76, 0x38, 0x77, 0xbb, 0xf7, 0xdb, 0x09, 0x64, 0xf8, 0x18, 0x21, 0xff, 0x8a,
|
||||
0x70, 0x32, 0x17, 0x93, 0x2b, 0x0a, 0x4e, 0x6f, 0x49, 0x09, 0x4f, 0x71, 0x11, 0x50, 0xc2, 0x0c,
|
||||
0x32, 0x91, 0x26, 0xd1, 0x04, 0xe1, 0x73, 0x7e, 0x81, 0x28, 0x83, 0x46, 0x79, 0x31, 0xce, 0x4d,
|
||||
0xe6, 0x1e, 0xbc, 0xf0, 0xfa, 0x72, 0xea, 0x32, 0x68, 0x3c, 0x16, 0x19, 0x2c, 0x2c, 0x02, 0x8a,
|
||||
0x44, 0x64, 0x28, 0xa0, 0x17, 0xaf, 0xaa, 0x26, 0xec, 0xfa, 0x2f, 0x3c, 0x6f, 0x49, 0x71, 0x40,
|
||||
0x72, 0x25, 0xe2, 0x40, 0x0e, 0x2c, 0xea, 0xab, 0x28, 0x90, 0x88, 0x02, 0x08, 0x32, 0x3b, 0x9c,
|
||||
0x60, 0x7f, 0x2e, 0x2f, 0xbc, 0x25, 0x5e, 0x45, 0x70, 0x1d, 0x25, 0x05, 0xf4, 0x24, 0x52, 0x2c,
|
||||
0x42, 0xae, 0x9c, 0x42, 0xec, 0x86, 0x08, 0xb6, 0x34, 0x77, 0x00, 0x16, 0x9c, 0xa8, 0x33, 0xce,
|
||||
0x12, 0xb9, 0x10, 0xac, 0x3f, 0x46, 0x32, 0xb9, 0x5a, 0x3d, 0xc2, 0x7f, 0x7f, 0x5f, 0xad, 0x0c,
|
||||
0x0e, 0x0e, 0xd7, 0xcf, 0xe1, 0x06, 0xc8, 0x5f, 0xc9, 0xcb, 0x44, 0x5c, 0x8b, 0xdb, 0xfe, 0x62,
|
||||
0x63, 0x9e, 0x58, 0x82, 0x5c, 0x2f, 0x84, 0x6b, 0x78, 0x68, 0xb0, 0x0b, 0xd5, 0xba, 0x21, 0xf2,
|
||||
0x57, 0x25, 0xd9, 0x3f, 0xec, 0x7a, 0xde, 0x11, 0x83, 0xcf, 0xd5, 0x4c, 0xb0, 0x1e, 0x7b, 0x36,
|
||||
0x9d, 0x4e, 0xd9, 0x6a, 0x25, 0x92, 0x5c, 0x2c, 0xf3, 0x1b, 0x69, 0x26, 0x73, 0xb7, 0xb4, 0xaf,
|
||||
0xb7, 0x9c, 0x00, 0x34, 0x0c, 0xc1, 0xcb, 0x7a, 0xe5, 0xd3, 0xf1, 0x49, 0xf5, 0x44, 0x01, 0xba,
|
||||
0x59, 0xfc, 0x50, 0xaf, 0x22, 0x08, 0x59, 0xcf, 0x2a, 0xd6, 0x8f, 0xc5, 0x34, 0x2a, 0x12, 0xd3,
|
||||
0x2b, 0xbd, 0xbb, 0x22, 0x1b, 0x3f, 0x6e, 0xdf, 0x1f, 0xb2, 0xa8, 0xd1, 0x8b, 0xc8, 0xe8, 0xff,
|
||||
0x7b, 0x9b, 0x6e, 0x20, 0x8c, 0x68, 0x3d, 0x83, 0x66, 0x84, 0x77, 0x68, 0x5b, 0x96, 0x4e, 0x8f,
|
||||
0x8c, 0x42, 0x39, 0xc8, 0x9c, 0x2b, 0x5f, 0x5e, 0x20, 0xaf, 0x9c, 0xda, 0x02, 0x1a, 0x20, 0x4c,
|
||||
0x33, 0x29, 0x88, 0xd8, 0xab, 0x88, 0xa5, 0xe7, 0xd9, 0x32, 0xcf, 0x95, 0x5f, 0x4b, 0x92, 0x5e,
|
||||
0x9f, 0x5c, 0xe6, 0x10, 0xd0, 0x6b, 0x58, 0x7f, 0x23, 0x20, 0x48, 0xd2, 0x76, 0x2d, 0x96, 0xa5,
|
||||
0x02, 0x84, 0x7c, 0x03, 0xcf, 0x98, 0x81, 0xac, 0xdd, 0x62, 0x08, 0xf6, 0xe7, 0xe6, 0x22, 0xe4,
|
||||
0x5d, 0xe4, 0xa0, 0x4d, 0x19, 0xa0, 0xb5, 0x66, 0x05, 0xb0, 0x2a, 0x79, 0xb5, 0x1e, 0x5f, 0x51,
|
||||
0x3f, 0x4d, 0xfa, 0x84, 0x2a, 0x8f, 0xa8, 0xb1, 0x3e, 0x2d, 0x6d, 0xdd, 0x48, 0x1d, 0x68, 0xb1,
|
||||
0x8e, 0xa3, 0x74, 0x93, 0x3e, 0x18, 0x8e, 0x89, 0xe4, 0xcc, 0x76, 0xd6, 0xbd, 0xc7, 0x11, 0x63,
|
||||
0x3d, 0xf8, 0x10, 0x9d, 0xde, 0x2b, 0xe3, 0x76, 0xbd, 0xc0, 0xe8, 0x4f, 0xa8, 0xa9, 0xd9, 0x31,
|
||||
0x80, 0xea, 0x7a, 0x6d, 0xf8, 0x38, 0x41, 0xc7, 0xe6, 0x1e, 0x36, 0x84, 0xa2, 0x56, 0xbc, 0x93,
|
||||
0x02, 0x05, 0x17, 0x99, 0xc6, 0x87, 0x47, 0xd0, 0x1f, 0xad, 0xbd, 0xa5, 0x90, 0x27, 0x6c, 0x73,
|
||||
0xd5, 0xe6, 0xfb, 0x83, 0x79, 0xe6, 0x4c, 0x92, 0x28, 0xcf, 0x39, 0xcb, 0x17, 0x09, 0x0b, 0xf7,
|
||||
0x7d, 0x56, 0xa8, 0x2b, 0x85, 0x23, 0x12, 0x64, 0x0d, 0xc1, 0x4d, 0xaa, 0x49, 0x52, 0xc4, 0x70,
|
||||
0x21, 0xb0, 0x40, 0x89, 0xb9, 0x62, 0xbd, 0x1c, 0xa4, 0xe1, 0xa0, 0x08, 0x77, 0x97, 0xb5, 0xfe,
|
||||
0xc6, 0x5b, 0x0d, 0x3a, 0x45, 0x38, 0xe8, 0xa4, 0xe1, 0x65, 0x59, 0x90, 0x4b, 0x3c, 0x48, 0x5f,
|
||||
0x3f, 0x82, 0x07, 0x28, 0xf1, 0xed, 0x9d, 0x8e, 0x1a, 0x47, 0x80, 0x08, 0xaf, 0xb7, 0x79, 0x6f,
|
||||
0xe3, 0x7b, 0xdb, 0xd8, 0xd5, 0xd5, 0xe3, 0x4e, 0x50, 0x1b, 0x3c, 0x68, 0x38, 0x42, 0x0f, 0x54,
|
||||
0xed, 0x08, 0x0d, 0x47, 0x6c, 0x1b, 0xe7, 0x5c, 0x5f, 0xf8, 0x68, 0x94, 0xac, 0x3b, 0x6d, 0x4e,
|
||||
0xce, 0xfd, 0xac, 0xb6, 0xbc, 0xea, 0x57, 0x59, 0x24, 0xab, 0x12, 0xc8, 0x58, 0xa3, 0xc8, 0x46,
|
||||
0x8a, 0xf5, 0x10, 0x66, 0x36, 0x95, 0x8f, 0xf5, 0x2d, 0xf3, 0x73, 0xbe, 0x5f, 0x86, 0x2c, 0x33,
|
||||
0x59, 0x21, 0xd8, 0x7e, 0xdb, 0x55, 0x47, 0xac, 0x4c, 0xf5, 0x08, 0xc5, 0x1e, 0xd0, 0x5b, 0x86,
|
||||
0x63, 0xdf, 0xca, 0xa8, 0x52, 0x79, 0x2f, 0xe7, 0x97, 0x15, 0xd7, 0xee, 0x52, 0xad, 0xd8, 0xa5,
|
||||
0x5f, 0x61, 0x9f, 0x9b, 0x06, 0xd6, 0x8f, 0x5c, 0xb2, 0xb5, 0x43, 0xed, 0x00, 0xc8, 0x1a, 0x1d,
|
||||
0x01, 0x73, 0x16, 0x52, 0x71, 0x76, 0x70, 0xc8, 0xd6, 0x0e, 0x84, 0x08, 0xa8, 0x25, 0x15, 0xba,
|
||||
0xb2, 0x1e, 0x39, 0xd7, 0x41, 0x9f, 0x90, 0x72, 0x16, 0xa9, 0xbb, 0x35, 0xcd, 0xed, 0x6d, 0xc2,
|
||||
0xf6, 0xfb, 0x0f, 0xd2, 0x1a, 0xb7, 0x5d, 0x1d, 0x1d, 0x63, 0x4b, 0x21, 0xc7, 0xa6, 0x8e, 0x6a,
|
||||
0x2c, 0xe8, 0x3d, 0xff, 0xb9, 0x9b, 0xde, 0xf6, 0xd9, 0xe5, 0xaa, 0xf6, 0xbf, 0xb3, 0xe5, 0x7a,
|
||||
0x07, 0xea, 0xaf, 0x0d, 0xc2, 0x79, 0x76, 0xb4, 0x86, 0x89, 0x54, 0x69, 0x61, 0x1c, 0x32, 0x28,
|
||||
0x67, 0x73, 0x19, 0xc7, 0x18, 0x5d, 0x9c, 0x72, 0x46, 0xd8, 0x5d, 0x8a, 0x55, 0x6f, 0x77, 0x69,
|
||||
0x56, 0x90, 0x74, 0x44, 0x71, 0x0e, 0x4b, 0x61, 0xdb, 0x4a, 0x87, 0x69, 0x04, 0x87, 0xb0, 0xf0,
|
||||
0xb2, 0x27, 0x9b, 0xa0, 0xfb, 0x51, 0x69, 0xbb, 0xcb, 0x6c, 0x05, 0x61, 0x9e, 0xff, 0xa8, 0xa4,
|
||||
0xdd, 0xa5, 0x35, 0x1b, 0x27, 0xc5, 0xd7, 0xfe, 0x01, 0xc3, 0xb7, 0x45, 0xef, 0x2e, 0xf3, 0x15,
|
||||
0xba, 0x2c, 0x2b, 0xa8, 0x82, 0x83, 0x6b, 0xe6, 0x32, 0xf7, 0xf7, 0x77, 0x29, 0x25, 0x97, 0x3e,
|
||||
0x24, 0x58, 0xc7, 0xe2, 0xf6, 0x74, 0x6a, 0x51, 0xdd, 0x46, 0x90, 0xee, 0x7b, 0x18, 0x8a, 0xc6,
|
||||
0x59, 0x78, 0xb9, 0xda, 0x8a, 0xd7, 0x37, 0x99, 0x4e, 0xd1, 0x3b, 0xa9, 0xb2, 0x39, 0x78, 0xaa,
|
||||
0x6d, 0x17, 0x09, 0x8d, 0x25, 0x1e, 0x22, 0xba, 0x39, 0xd0, 0xe4, 0xaf, 0xef, 0x7e, 0x83, 0xa6,
|
||||
0x75, 0x68, 0x78, 0xe7, 0x87, 0x17, 0xd4, 0x35, 0x48, 0x14, 0x9f, 0xe1, 0x6f, 0x67, 0x9f, 0x7e,
|
||||
0xa7, 0x93, 0xc9, 0xc0, 0x44, 0x33, 0xa2, 0x42, 0x66, 0x2b, 0x1d, 0x5e, 0x2e, 0xc2, 0x00, 0xf7,
|
||||
0xf7, 0x9b, 0xfe, 0xa2, 0x5a, 0xf2, 0x4a, 0x15, 0x04, 0x5e, 0xad, 0x05, 0xfb, 0xd2, 0xd6, 0xd1,
|
||||
0xfe, 0x76, 0x58, 0xc9, 0x20, 0xaa, 0x1b, 0xff, 0x75, 0x21, 0x6c, 0xb7, 0x75, 0xd9, 0xdb, 0xe4,
|
||||
0xbc, 0xf9, 0x19, 0x61, 0xd6, 0x2f, 0x87, 0x88, 0x1d, 0x9e, 0x5b, 0x59, 0x50, 0xce, 0x8a, 0x6e,
|
||||
0x2e, 0x58, 0x98, 0x36, 0x17, 0x2c, 0x06, 0x1b, 0x0b, 0x0f, 0xa6, 0x8d, 0x72, 0xd9, 0xcf, 0x4b,
|
||||
0x25, 0xbd, 0x55, 0xd5, 0x80, 0x3d, 0x9c, 0x49, 0xa8, 0x6d, 0x3d, 0x00, 0x89, 0xed, 0x81, 0x65,
|
||||
0x80, 0x92, 0x07, 0xa3, 0x55, 0xb6, 0xab, 0x2b, 0x4d, 0x35, 0xa0, 0xf8, 0xc8, 0xf5, 0x6a, 0x2d,
|
||||
0xa7, 0x48, 0x92, 0x2d, 0x27, 0x9d, 0xa6, 0xf4, 0x54, 0x26, 0x0e, 0x9b, 0x50, 0x89, 0x02, 0x46,
|
||||
0x13, 0x5e, 0xc9, 0xd1, 0x27, 0xa3, 0xc9, 0xaf, 0xfd, 0xa6, 0x2d, 0x1f, 0xf2, 0x40, 0x65, 0x4e,
|
||||
0x14, 0x3f, 0xd8, 0x19, 0x4e, 0xe0, 0xc6, 0x17, 0x5b, 0x13, 0x92, 0xdc, 0x0c, 0x33, 0x65, 0x0d,
|
||||
0xa1, 0xc4, 0x8f, 0x0f, 0xbf, 0xa1, 0xf9, 0xcd, 0x9b, 0xe5, 0x64, 0xd9, 0xfc, 0x80, 0x92, 0x52,
|
||||
0x77, 0x0d, 0x22, 0xa0, 0xd3, 0xe2, 0xfc, 0xb4, 0x00, 0x5f, 0x53, 0x33, 0x4c, 0xa0, 0x11, 0xf1,
|
||||
0x90, 0x80, 0xc8, 0x11, 0xac, 0x5b, 0x47, 0x1a, 0xaa, 0xa9, 0x5e, 0x97, 0x09, 0xa4, 0x2a, 0xeb,
|
||||
0x77, 0xfd, 0x38, 0xbc, 0xbc, 0xbe, 0xae, 0x54, 0x20, 0x10, 0x55, 0x75, 0x6a, 0x3d, 0x23, 0x9b,
|
||||
0xbd, 0x3d, 0x8d, 0xb9, 0xe9, 0x88, 0xfe, 0x04, 0xd6, 0xa6, 0x73, 0x9d, 0xc4, 0xa8, 0xf4, 0xa6,
|
||||
0xa7, 0xa1, 0x20, 0xb1, 0xc0, 0x93, 0xf2, 0xc8, 0xa5, 0x37, 0x84, 0x05, 0x46, 0x5e, 0xf3, 0x2a,
|
||||
0xfe, 0x02, 0x3a, 0x65, 0xa8, 0xf7, 0x76, 0xd9, 0x58, 0xe0, 0xec, 0x62, 0x2c, 0x66, 0x48, 0x84,
|
||||
0xbe, 0x6a, 0xb3, 0x3d, 0x35, 0xce, 0xd3, 0x3e, 0xe0, 0xfe, 0x24, 0x47, 0x34, 0xc5, 0x18, 0x00,
|
||||
0xe3, 0xa1, 0x47, 0xa8, 0x88, 0xdb, 0xa8, 0xc0, 0xbd, 0xef, 0xa1, 0x47, 0xb1, 0x68, 0x8e, 0xcf,
|
||||
0x34, 0x20, 0x2c, 0xa7, 0x82, 0xb2, 0x3e, 0x0d, 0x21, 0x47, 0x76, 0x96, 0xc7, 0x28, 0xcf, 0xda,
|
||||
0x76, 0x88, 0xa0, 0x6c, 0xde, 0x66, 0x9d, 0xc9, 0x74, 0x16, 0x7c, 0xc9, 0xe1, 0x52, 0x7f, 0xb9,
|
||||
0x10, 0x66, 0xae, 0xe3, 0x1e, 0x83, 0xbd, 0xd8, 0x0a, 0xc5, 0x79, 0x8e, 0x11, 0x1d, 0x23, 0x19,
|
||||
0x0c, 0xaf, 0xaf, 0xea, 0x21, 0x03, 0xa9, 0x2c, 0xcb, 0xa8, 0x89, 0xb1, 0xdd, 0x58, 0x2c, 0x73,
|
||||
0x98, 0xe7, 0x8e, 0x72, 0x75, 0x22, 0x95, 0xc0, 0xf9, 0x84, 0x15, 0xe6, 0x42, 0x93, 0x35, 0x3f,
|
||||
0xa1, 0xab, 0xbc, 0xf2, 0x10, 0x18, 0x43, 0xfd, 0x4d, 0xd7, 0x55, 0xa6, 0x30, 0xb8, 0xca, 0xa7,
|
||||
0x6a, 0x6e, 0x49, 0x10, 0xad, 0xb6, 0xd8, 0x22, 0x5e, 0x1f, 0x4e, 0x60, 0xb9, 0x88, 0xb2, 0xc9,
|
||||
0xdc, 0x37, 0x5c, 0x89, 0x1b, 0xe7, 0xd3, 0x3f, 0x4e, 0x46, 0xf6, 0xfd, 0x2c, 0xca, 0xa2, 0x05,
|
||||
0x09, 0x23, 0x2f, 0x97, 0x33, 0x50, 0xa3, 0x64, 0x0b, 0x5f, 0x3d, 0x52, 0xb2, 0xab, 0x9d, 0x9a,
|
||||
0x93, 0x26, 0x86, 0x7c, 0x74, 0x90, 0x94, 0x51, 0xd6, 0x69, 0x75, 0x9e, 0x85, 0x83, 0xf9, 0x8b,
|
||||
0x90, 0x52, 0xe6, 0xa0, 0x83, 0x87, 0x4b, 0xbf, 0x51, 0x6e, 0xd7, 0x25, 0x1f, 0xd1, 0xe3, 0xf5,
|
||||
0x29, 0x76, 0xd0, 0xe4, 0x20, 0xca, 0x29, 0xef, 0x58, 0x09, 0xb5, 0x24, 0xce, 0xaa, 0xfb, 0xa2,
|
||||
0xfc, 0xc1, 0x80, 0xaa, 0x34, 0xa6, 0x53, 0x5d, 0xa8, 0x38, 0xa0, 0x14, 0x7a, 0x96, 0x89, 0x3c,
|
||||
0x77, 0x06, 0x32, 0x1c, 0x45, 0xd7, 0x62, 0xd0, 0x91, 0xa1, 0x63, 0xb4, 0x53, 0xdd, 0x59, 0xc9,
|
||||
0xff, 0x60, 0x5c, 0x2d, 0x4b, 0x5c, 0x1e, 0x60, 0xa8, 0xb3, 0x7e, 0x98, 0x25, 0x7a, 0x1c, 0x25,
|
||||
0xbf, 0x9e, 0x0d, 0x4f, 0xf3, 0xaf, 0xbd, 0xb1, 0xd6, 0xe2, 0x88, 0x8d, 0x61, 0xbf, 0x2b, 0xe4,
|
||||
0x52, 0xa5, 0xe1, 0x1e, 0xff, 0xb1, 0x39, 0xb1, 0xbc, 0x9e, 0xaa, 0x2e, 0x5b, 0xbe, 0x01, 0x94,
|
||||
0xfa, 0xaa, 0xa6, 0x93, 0xc3, 0xc5, 0x47, 0x29, 0x7f, 0xc9, 0x7c, 0xf4, 0x62, 0xc0, 0x09, 0xfc,
|
||||
0x43, 0xe3, 0x09, 0x1c, 0xfd, 0x17, 0x10, 0xe2, 0x37, 0xad, 0x2e, 0xb6, 0xe6, 0xef, 0xfc, 0x7a,
|
||||
0x44, 0xbd, 0xa3, 0xc0, 0xac, 0x2d, 0xe8, 0x7a, 0xe0, 0x4d, 0x79, 0xe6, 0xfa, 0xbe, 0xc2, 0x96,
|
||||
0xa5, 0x3f, 0x60, 0x8e, 0x58, 0x9a, 0x3b, 0xd7, 0xa3, 0x4b, 0x0d, 0xac, 0xa2, 0x38, 0x2d, 0x24,
|
||||
0x68, 0x56, 0xad, 0x41, 0xa7, 0xba, 0x80, 0x1b, 0xd8, 0x9d, 0xc3, 0xbf, 0xc9, 0x05, 0xdd, 0xdb,
|
||||
0x39, 0x45, 0x96, 0xb8, 0xac, 0x1a, 0x1e, 0x90, 0x92, 0xbd, 0x3e, 0x08, 0x2d, 0x01, 0xbc, 0x2a,
|
||||
0xa2, 0x18, 0x15, 0x4c, 0xc7, 0x77, 0xa8, 0x7e, 0x64, 0x01, 0xce, 0x10, 0x33, 0x28, 0x6a, 0x40,
|
||||
0xd0, 0xa2, 0xe5, 0x48, 0xbc, 0xd3, 0xd3, 0xe7, 0xbc, 0xae, 0x9f, 0xa3, 0x29, 0xba, 0x15, 0x1b,
|
||||
0x25, 0x9c, 0xa5, 0x3a, 0x37, 0x0c, 0x7c, 0xa5, 0x06, 0xe8, 0x5a, 0x48, 0x7d, 0xd2, 0x9b, 0x04,
|
||||
0xc4, 0xf2, 0xba, 0xee, 0x54, 0x8c, 0xc6, 0xec, 0x7f, 0xc3, 0xc2, 0x56, 0x73, 0x71, 0x2e, 0x92,
|
||||
0xf4, 0x35, 0x55, 0xcf, 0xc2, 0x18, 0x1c, 0xbd, 0x2c, 0xde, 0xe5, 0x0b, 0xc9, 0x9c, 0xa0, 0x0f,
|
||||
0xbe, 0xe2, 0xec, 0x3d, 0x29, 0x73, 0x34, 0xe8, 0x94, 0x1f, 0xa0, 0x30, 0x24, 0xac, 0x79, 0x5a,
|
||||
0x4f, 0x30, 0xbd, 0x26, 0xa6, 0xd7, 0xd1, 0xe4, 0x6a, 0xc3, 0xb7, 0xb5, 0x4b, 0xa9, 0x2f, 0xab,
|
||||
0x90, 0xb6, 0x26, 0xc9, 0xa0, 0x60, 0x9e, 0x46, 0xca, 0x9e, 0x3a, 0xc9, 0xf3, 0x62, 0xb2, 0xee,
|
||||
0x9b, 0xec, 0xcc, 0xd5, 0x9b, 0x65, 0x42, 0xa8, 0x7e, 0xe5, 0xcf, 0x9e, 0xc5, 0x53, 0xb8, 0xf7,
|
||||
0xec, 0xb0, 0xdb, 0xed, 0xfe, 0xd4, 0x77, 0x8e, 0xb7, 0x2f, 0x5f, 0x20, 0x3a, 0xde, 0x21, 0x8f,
|
||||
0x40, 0x60, 0xe8, 0x34, 0xe5, 0x12, 0x36, 0xb6, 0xe5, 0x62, 0xc8, 0x7b, 0x20, 0xb5, 0xb5, 0xf7,
|
||||
0xec, 0x97, 0x97, 0x2f, 0x5f, 0x92, 0xd4, 0x22, 0x89, 0x6d, 0xa4, 0x90, 0x73, 0xb6, 0x03, 0x28,
|
||||
0xa8, 0xa4, 0x57, 0x46, 0x21, 0xdb, 0xd2, 0x0e, 0xcd, 0xb8, 0x70, 0x5a, 0xd5, 0x46, 0xdb, 0xe2,
|
||||
0xcb, 0xc8, 0x7e, 0xde, 0xbc, 0xc8, 0x2d, 0x52, 0x80, 0xe1, 0x79, 0xf8, 0xab, 0x65, 0x76, 0x86,
|
||||
0x83, 0xbc, 0x48, 0xc3, 0xe7, 0xd8, 0x00, 0x3f, 0xc7, 0x8e, 0x15, 0xe6, 0xb8, 0xef, 0xff, 0xf4,
|
||||
0x5a, 0x64, 0xa6, 0x81, 0xdc, 0xd6, 0xbf, 0x9a, 0x2f, 0x43, 0x17, 0x10, 0xba, 0xa3, 0x5b, 0x6c,
|
||||
0x35, 0xa3, 0x3b, 0x64, 0xba, 0xb5, 0x7a, 0x3b, 0x3a, 0x7b, 0xf1, 0xdc, 0x2f, 0xd7, 0x84, 0x93,
|
||||
0x89, 0x7f, 0x17, 0x12, 0x71, 0x8e, 0x07, 0x74, 0xdf, 0x66, 0x07, 0xe2, 0x10, 0xe8, 0x24, 0x12,
|
||||
0xd3, 0x7c, 0x6f, 0xab, 0x8d, 0xab, 0x9a, 0x98, 0x4d, 0x67, 0x6c, 0xdb, 0xe6, 0x9f, 0x5e, 0xae,
|
||||
0x71, 0x88, 0xf1, 0xdf, 0x69, 0xc1, 0xe5, 0x56, 0x32, 0xdf, 0x6f, 0xb4, 0x6c, 0x34, 0xa4, 0x7b,
|
||||
0xfb, 0x9b, 0x56, 0xda, 0x69, 0xd6, 0x2f, 0xcb, 0x18, 0x3a, 0xa3, 0xe3, 0x93, 0x7a, 0xbf, 0xd6,
|
||||
0x5f, 0xdc, 0xf0, 0xf8, 0xc4, 0x42, 0xec, 0xc9, 0xfd, 0x5a, 0x4f, 0x6d, 0x08, 0xc6, 0xf0, 0xe1,
|
||||
0x70, 0x56, 0xd9, 0x79, 0x74, 0x36, 0x6c, 0x18, 0xb7, 0xb2, 0x6d, 0xeb, 0x7f, 0x64, 0xdc, 0xda,
|
||||
0xb6, 0x2d, 0xba, 0x16, 0xf9, 0x3e, 0xeb, 0xda, 0x8b, 0x94, 0x1f, 0x32, 0xaf, 0xe5, 0x0c, 0x1d,
|
||||
0xba, 0x73, 0xf9, 0x4e, 0x03, 0xdb, 0x6b, 0x9a, 0x1f, 0xb2, 0xb0, 0xe5, 0xb4, 0x3e, 0xfd, 0xf0,
|
||||
0x57, 0x8f, 0xd9, 0x5a, 0x3b, 0xf5, 0xc3, 0xb7, 0xf7, 0x7c, 0xda, 0xa9, 0x1f, 0x58, 0x33, 0xf2,
|
||||
0x5a, 0x14, 0x7a, 0xa8, 0x2b, 0x61, 0x7d, 0x1f, 0x5b, 0x17, 0x8b, 0x20, 0x08, 0x2a, 0x32, 0x0a,
|
||||
0xba, 0x6f, 0x67, 0xbb, 0x75, 0xe2, 0x6a, 0x7d, 0x57, 0xe6, 0xea, 0x50, 0x8a, 0xc6, 0x0f, 0xa5,
|
||||
0x71, 0xca, 0xe9, 0xf4, 0x1f, 0xa6, 0xff, 0x02, 0x3f, 0x9e, 0x8f, 0x5c, 0x77, 0x1a, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
|
||||
3996
wled00/html_ui.h
3996
wled00/html_ui.h
File diff suppressed because it is too large
Load Diff
@@ -423,11 +423,7 @@ bool deserializeState(JsonObject root, byte callMode, byte presetId)
|
||||
|
||||
usermods.readFromJsonState(root);
|
||||
|
||||
//WLEDMM: if no ledmap loadLedmap=0 (which erases customMappingTable in deserializeMap if exists)
|
||||
if (root[F("ledmap")].isNull())
|
||||
loadLedmap = 0;
|
||||
else
|
||||
loadLedmap = root[F("ledmap")] | loadLedmap;
|
||||
loadLedmap = root[F("ledmap")] | loadLedmap;
|
||||
|
||||
byte ps = root[F("psave")];
|
||||
if (ps > 0 && ps < 251) savePreset(ps, nullptr, root);
|
||||
@@ -550,11 +546,6 @@ void serializeState(JsonObject root, bool forPreset, bool includeBri, bool segme
|
||||
root["bri"] = briLast;
|
||||
root[F("transition")] = transitionDelay/100; //in 100ms
|
||||
}
|
||||
//WLEDMM only add ledmap if defined, otherwise remove (then ledmap is 0 is assumed in deserializeState)
|
||||
if (loadLedmap>0)
|
||||
root[F("ledmap")] = loadLedmap;
|
||||
else
|
||||
root.remove(F("ledmap"));
|
||||
|
||||
if (!forPreset) {
|
||||
if (errorFlag) {root[F("error")] = errorFlag; errorFlag = ERR_NONE;} //prevent error message to persist on screen
|
||||
|
||||
@@ -915,7 +915,9 @@ const byte* const gGradientPalettes[] PROGMEM = {
|
||||
red_shift_gp, //68-55 Red Shift
|
||||
red_tide_gp, //69-56 Red Tide
|
||||
candy2_gp, //70-57 Candy2
|
||||
audio_responsive_gp, //71-58 AudioResponsive WLEDMM netmindz ar palette
|
||||
// Palette contents not actually used as built on the fly, just here to create menu option
|
||||
audio_responsive_gp, //71-58 AudioResponsive WLEDMM netmindz ar palette - placeholder1
|
||||
audio_responsive_gp, //72-59 AudioResponsive WLEDMM netmindz ar palette - placeholder2
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -294,7 +294,6 @@ void savePreset(byte index, const char* pname, JsonObject sObj)
|
||||
playlistSave = true;
|
||||
}
|
||||
}
|
||||
loadLedmap = sObj["ledmap"]; //WLEDMM: assign ledmap
|
||||
}
|
||||
|
||||
void deletePreset(byte index) {
|
||||
|
||||
@@ -516,17 +516,24 @@ void enumerateLedmaps() {
|
||||
}
|
||||
|
||||
//WLEDMM netmindz ar palette
|
||||
CRGB getCRGBForBand(int x, uint8_t *fftResult) {
|
||||
CRGB getCRGBForBand(int x, uint8_t *fftResult, int pal) {
|
||||
CRGB value;
|
||||
CHSV hsv;
|
||||
if(x == 0) {
|
||||
value = CRGB(fftResult[10]/2, fftResult[4]/2, fftResult[0]/2);
|
||||
if(pal == 71) { // bit hacky to use palette id here, but don't want to litter the code with lots of different methods. TODO: add enum for palette creation type
|
||||
if(x == 0) {
|
||||
value = CRGB(fftResult[10]/2, fftResult[4]/2, fftResult[0]/2);
|
||||
}
|
||||
else if(x == 255) {
|
||||
value = CRGB(fftResult[10]/2, fftResult[0]/2, fftResult[4]/2);
|
||||
}
|
||||
else {
|
||||
value = CRGB(fftResult[0]/2, fftResult[4]/2, fftResult[10]/2);
|
||||
}
|
||||
}
|
||||
else if(pal == 72) {
|
||||
int b = map(x, 0, 255, 0, 8); // convert palette position to lower half of freq band
|
||||
hsv = CHSV(fftResult[b], 255, map(fftResult[b], 0, 255, 30, 255)); // pick hue
|
||||
hsv2rgb_rainbow(hsv, value); // convert to R,G,B
|
||||
}
|
||||
else if(x == 255) {
|
||||
value = CRGB(fftResult[10]/2, fftResult[0]/2, fftResult[4]/2);
|
||||
}
|
||||
else {
|
||||
value = CRGB(fftResult[0]/2, fftResult[4]/2, fftResult[10]/2);
|
||||
}
|
||||
return value;
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
*/
|
||||
|
||||
// version code in format yymmddb (b = daily build)
|
||||
#define VERSION 2211181
|
||||
#define VERSION 2211201
|
||||
|
||||
//uncomment this if you have a "my_config.h" file you'd like to use
|
||||
//#define WLED_USE_MY_CONFIG
|
||||
|
||||
Reference in New Issue
Block a user