From e1673e4c0ca89153e26d31cd783f0f8260c6d0fb Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 19 Aug 2024 14:50:26 +0300 Subject: [PATCH 001/179] fix(build): IDF release/v5.3 466a392a and initial changes --- .github/scripts/on-release.sh | 20 +- .github/workflows/push.yml | 43 +- .gitignore | 1 + CMakeLists.txt | 6 +- cores/esp32/Client.h | 2 + cores/esp32/HWCDC.cpp | 16 +- cores/esp32/HardwareSerial.cpp | 24 +- cores/esp32/HardwareSerial.h | 12 +- cores/esp32/esp32-hal-i2c-slave.c | 30 +- cores/esp32/esp32-hal-touch.c | 36 +- cores/esp32/esp32-hal-touch.h | 10 +- cores/esp32/esp32-hal-uart.c | 46 +- idf_component.yml | 2 +- .../SerialToSerialBT_Legacy.ino | 7 - .../SerialToSerialBT_SSP.ino | 5 - .../BluetoothSerial/src/BluetoothSerial.cpp | 15 - .../BluetoothSerial/src/BluetoothSerial.h | 5 - .../Serial_STD_Func_OnReceive.ino | 10 +- libraries/ESP_I2S/src/ESP_I2S.cpp | 2 +- libraries/ESP_I2S/src/ESP_I2S.h | 2 +- libraries/Ethernet/src/ETH.cpp | 5 + .../DiagnosticsSmokeTest.ino | 3 +- libraries/Network/src/NetworkClient.h | 2 - libraries/PPP/src/PPP.cpp | 2 +- package/package_esp32_index.template.json | 538 +++++++----------- platform.txt | 6 +- tests/validation/uart/uart.ino | 60 +- 27 files changed, 368 insertions(+), 542 deletions(-) diff --git a/.github/scripts/on-release.sh b/.github/scripts/on-release.sh index eb8f2be7b81..3c3cfc05895 100755 --- a/.github/scripts/on-release.sh +++ b/.github/scripts/on-release.sh @@ -219,12 +219,8 @@ find "$PKG_DIR" -name '*.git*' -type f -delete ## RVTC_NAME="riscv32-esp-elf-gcc" RVTC_NEW_NAME="esp-rv32" -X32TC_NAME="xtensa-esp32-elf-gcc" +X32TC_NAME="xtensa-esp-elf-gcc" X32TC_NEW_NAME="esp-x32" -XS2TC_NAME="xtensa-esp32s2-elf-gcc" -XS2TC_NEW_NAME="esp-xs2" -XS3TC_NAME="xtensa-esp32s3-elf-gcc" -XS3TC_NEW_NAME="esp-xs3" # Replace tools locations in platform.txt echo "Generating platform.txt..." @@ -233,9 +229,7 @@ sed "s/version=.*/version=$RELEASE_TAG/g" | \ sed 's/tools\.esp32-arduino-libs\.path\.windows=.*//g' | \ sed 's/{runtime\.platform\.path}.tools.esp32-arduino-libs/\{runtime.tools.esp32-arduino-libs.path\}/g' | \ sed 's/{runtime\.platform\.path}.tools.xtensa-esp-elf-gdb/\{runtime.tools.xtensa-esp-elf-gdb.path\}/g' | \ -sed "s/{runtime\.platform\.path}.tools.xtensa-esp32-elf/\\{runtime.tools.$X32TC_NEW_NAME.path\\}/g" | \ -sed "s/{runtime\.platform\.path}.tools.xtensa-esp32s2-elf/\\{runtime.tools.$XS2TC_NEW_NAME.path\\}/g" | \ -sed "s/{runtime\.platform\.path}.tools.xtensa-esp32s3-elf/\\{runtime.tools.$XS3TC_NEW_NAME.path\\}/g" | \ +sed "s/{runtime\.platform\.path}.tools.xtensa-esp-elf/\\{runtime.tools.$X32TC_NEW_NAME.path\\}/g" | \ sed 's/{runtime\.platform\.path}.tools.riscv32-esp-elf-gdb/\{runtime.tools.riscv32-esp-elf-gdb.path\}/g' | \ sed "s/{runtime\.platform\.path}.tools.riscv32-esp-elf/\\{runtime.tools.$RVTC_NEW_NAME.path\\}/g" | \ sed 's/{runtime\.platform\.path}.tools.esptool/\{runtime.tools.esptool_py.path\}/g' | \ @@ -355,15 +349,7 @@ rvtc_jq_arg="\ (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$X32TC_NAME\")).version = \"$RVTC_VERSION\" |\ (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\" |\ (.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).version = \"$RVTC_VERSION\" |\ - (.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\" |\ - (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS2TC_NAME\")).version = \"$RVTC_VERSION\" |\ - (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS2TC_NAME\")).name = \"$XS2TC_NEW_NAME\" |\ - (.packages[0].tools[] | select(.name==\"$XS2TC_NAME\")).version = \"$RVTC_VERSION\" |\ - (.packages[0].tools[] | select(.name==\"$XS2TC_NAME\")).name = \"$XS2TC_NEW_NAME\" |\ - (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS3TC_NAME\")).version = \"$RVTC_VERSION\" |\ - (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$XS3TC_NAME\")).name = \"$XS3TC_NEW_NAME\" |\ - (.packages[0].tools[] | select(.name==\"$XS3TC_NAME\")).version = \"$RVTC_VERSION\" |\ - (.packages[0].tools[] | select(.name==\"$XS3TC_NAME\")).name = \"$XS3TC_NEW_NAME\"" + (.packages[0].tools[] | select(.name==\"$X32TC_NAME\")).name = \"$X32TC_NEW_NAME\"" cat "$PACKAGE_JSON_TEMPLATE" | jq "$rvtc_jq_arg" > "$OUTPUT_DIR/package-$LIBS_PROJ_NAME-rvfix.json" PACKAGE_JSON_TEMPLATE="$OUTPUT_DIR/package-$LIBS_PROJ_NAME-rvfix.json" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 2f14a6fb62f..251d787dfd9 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -194,28 +194,29 @@ jobs: - name: Build Sketches run: bash ./.github/scripts/on-push.sh - # PlatformIO on Windows, Ubuntu and Mac - build-platformio: - name: PlatformIO on ${{ matrix.os }} - needs: gen-chunks - if: | - needs.gen-chunks.outputs.build_all == 'true' || - needs.gen-chunks.outputs.build_static_sketches == 'true' || - needs.gen-chunks.outputs.build_platformio == 'true' - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macOS-latest] + # # PlatformIO on Windows, Ubuntu and Mac + # build-platformio: + # name: PlatformIO on ${{ matrix.os }} + # needs: gen-chunks + # if: | + # needs.gen-chunks.outputs.build_all == 'true' || + # needs.gen-chunks.outputs.build_static_sketches == 'true' || + # needs.gen-chunks.outputs.build_platformio == 'true' + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # os: [ubuntu-latest, windows-latest, macOS-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Build Sketches - run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-python@v5 + # with: + # python-version: '3.x' + # - name: Build Sketches + # run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO + # ESP-IDF component build build-esp-idf-component: name: Build with ESP-IDF ${{ matrix.idf_ver }} for ${{ matrix.idf_target }} needs: gen-chunks @@ -231,7 +232,7 @@ jobs: # See https://hub.docker.com/r/espressif/idf/tags and # https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html # for details. - idf_ver: ["release-v5.1"] + idf_ver: ["release-v5.3"] idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"] container: espressif/idf:${{ matrix.idf_ver }} steps: diff --git a/.gitignore b/.gitignore index 1519de52764..d254d439834 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ tools/esp32-arduino-libs +tools/xtensa-esp-elf tools/xtensa-esp32-elf tools/xtensa-esp32s2-elf tools/xtensa-esp32s3-elf diff --git a/CMakeLists.txt b/CMakeLists.txt index a11d4809049..252059a8907 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,8 @@ # export ARDUINO_SKIP_IDF_VERSION_CHECK=1 # idf.py build -set(min_supported_idf_version "5.1.0") -set(max_supported_idf_version "5.1.99") +set(min_supported_idf_version "5.3.0") +set(max_supported_idf_version "5.3.99") set(idf_version "${IDF_VERSION_MAJOR}.${IDF_VERSION_MINOR}.${IDF_VERSION_PATCH}") if ("${idf_version}" AND NOT "$ENV{ARDUINO_SKIP_IDF_VERSION_CHECK}") @@ -293,7 +293,7 @@ endforeach() set(includedirs variants/${CONFIG_ARDUINO_VARIANT}/ cores/esp32/ ${ARDUINO_LIBRARIES_INCLUDEDIRS}) set(srcs ${CORE_SRCS} ${ARDUINO_LIBRARIES_SRCS}) set(priv_includes cores/esp32/libb64) -set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser espressif__network_provisioning) +set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support bt esp_hid usb esp_psram ${ARDUINO_LIBRARIES_REQUIRES}) if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThread) diff --git a/cores/esp32/Client.h b/cores/esp32/Client.h index ab013612401..4ea10d070fb 100644 --- a/cores/esp32/Client.h +++ b/cores/esp32/Client.h @@ -26,7 +26,9 @@ class Client : public Stream { public: virtual int connect(IPAddress ip, uint16_t port) = 0; + virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0; virtual int connect(const char *host, uint16_t port) = 0; + virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0; virtual size_t write(uint8_t) = 0; virtual size_t write(const uint8_t *buf, size_t size) = 0; virtual int available() = 0; diff --git a/cores/esp32/HWCDC.cpp b/cores/esp32/HWCDC.cpp index b0f653e889e..59709fd4f86 100644 --- a/cores/esp32/HWCDC.cpp +++ b/cores/esp32/HWCDC.cpp @@ -286,14 +286,14 @@ bool HWCDC::deinit(void *busptr) { running = true; // Setting USB D+ D- pins bool retCode = true; - retCode &= perimanClearPinBus(USB_DM_GPIO_NUM); - retCode &= perimanClearPinBus(USB_DP_GPIO_NUM); + retCode &= perimanClearPinBus(USB_INT_PHY0_DM_GPIO_NUM); + retCode &= perimanClearPinBus(USB_INT_PHY0_DP_GPIO_NUM); if (retCode) { // Force the host to re-enumerate (BUS_RESET) - pinMode(USB_DM_GPIO_NUM, OUTPUT_OPEN_DRAIN); - pinMode(USB_DP_GPIO_NUM, OUTPUT_OPEN_DRAIN); - digitalWrite(USB_DM_GPIO_NUM, LOW); - digitalWrite(USB_DP_GPIO_NUM, LOW); + pinMode(USB_INT_PHY0_DM_GPIO_NUM, OUTPUT_OPEN_DRAIN); + pinMode(USB_INT_PHY0_DP_GPIO_NUM, OUTPUT_OPEN_DRAIN); + digitalWrite(USB_INT_PHY0_DM_GPIO_NUM, LOW); + digitalWrite(USB_INT_PHY0_DP_GPIO_NUM, LOW); } // release the flag running = false; @@ -323,11 +323,11 @@ void HWCDC::begin(unsigned long baud) { // delay(10); // USB Host has to enumerate it again // Peripheral Manager setting for USB D+ D- pins - uint8_t pin = USB_DM_GPIO_NUM; + uint8_t pin = USB_INT_PHY0_DM_GPIO_NUM; if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_USB_DM, (void *)this, -1, -1)) { goto err; } - pin = USB_DP_GPIO_NUM; + pin = USB_INT_PHY0_DP_GPIO_NUM; if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_USB_DP, (void *)this, -1, -1)) { goto err; } diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index 1f064faada6..c1cf8200a32 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -26,23 +26,23 @@ void serialEvent(void) __attribute__((weak)); void serialEvent(void) {} -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 void serialEvent1(void) __attribute__((weak)); void serialEvent1(void) {} -#endif /* SOC_UART_NUM > 1 */ +#endif /* SOC_UART_HP_NUM > 1 */ -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 void serialEvent2(void) __attribute__((weak)); void serialEvent2(void) {} -#endif /* SOC_UART_NUM > 2 */ +#endif /* SOC_UART_HP_NUM > 2 */ #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) // There is always Seria0 for UART0 HardwareSerial Serial0(0); -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 HardwareSerial Serial1(1); #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 HardwareSerial Serial2(2); #endif @@ -72,12 +72,12 @@ void serialEventRun(void) { if (Serial0.available()) { serialEvent(); } -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 if (Serial1.available()) { serialEvent1(); } #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 if (Serial2.available()) { serialEvent2(); } @@ -279,8 +279,8 @@ void HardwareSerial::_uartEventTask(void *args) { } void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, int8_t txPin, bool invert, unsigned long timeout_ms, uint8_t rxfifo_full_thrhd) { - if (_uart_nr >= SOC_UART_NUM) { - log_e("Serial number is invalid, please use a number from 0 to %u", SOC_UART_NUM - 1); + if (_uart_nr >= SOC_UART_HP_NUM) { + log_e("Serial number is invalid, please use a number from 0 to %u", SOC_UART_HP_NUM - 1); return; } @@ -305,7 +305,7 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in txPin = _txPin < 0 ? (int8_t)SOC_TX0 : _txPin; } break; -#if SOC_UART_NUM > 1 // may save some flash bytes... +#if SOC_UART_HP_NUM > 1 // may save some flash bytes... case UART_NUM_1: if (rxPin < 0 && txPin < 0) { // do not change RX1/TX1 if it has already been set before @@ -314,7 +314,7 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in } break; #endif -#if SOC_UART_NUM > 2 // may save some flash bytes... +#if SOC_UART_HP_NUM > 2 // may save some flash bytes... case UART_NUM_2: if (rxPin < 0 && txPin < 0) { // do not change RX2/TX2 if it has already been set before diff --git a/cores/esp32/HardwareSerial.h b/cores/esp32/HardwareSerial.h index 3fd5e7dc99b..2d280b053de 100644 --- a/cores/esp32/HardwareSerial.h +++ b/cores/esp32/HardwareSerial.h @@ -146,7 +146,7 @@ typedef enum { // Default pins for UART1 are arbitrary, and defined here for convenience. -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 #ifndef RX1 #if CONFIG_IDF_TARGET_ESP32 #define RX1 (gpio_num_t)26 @@ -182,11 +182,11 @@ typedef enum { #define TX1 (gpio_num_t)1 #endif #endif -#endif /* SOC_UART_NUM > 1 */ +#endif /* SOC_UART_HP_NUM > 1 */ // Default pins for UART2 are arbitrary, and defined here for convenience. -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 #ifndef RX2 #if CONFIG_IDF_TARGET_ESP32 #define RX2 (gpio_num_t)4 @@ -202,7 +202,7 @@ typedef enum { #define TX2 (gpio_num_t)20 #endif #endif -#endif /* SOC_UART_NUM > 2 */ +#endif /* SOC_UART_HP_NUM > 2 */ typedef std::function OnReceiveCb; typedef std::function OnReceiveErrorCb; @@ -357,10 +357,10 @@ extern void serialEventRun(void) __attribute__((weak)); #endif // ARDUINO_USB_CDC_ON_BOOT // There is always Seria0 for UART0 extern HardwareSerial Serial0; -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 extern HardwareSerial Serial1; #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 extern HardwareSerial Serial2; #endif #endif //!defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index edae1e57c92..5504fd62adf 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -49,7 +49,7 @@ #define I2C_SLAVE_USE_RX_QUEUE 0 // 1: Queue, 0: RingBuffer -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 #define I2C_SCL_IDX(p) ((p == 0) ? I2CEXT0_SCL_OUT_IDX : ((p == 1) ? I2CEXT1_SCL_OUT_IDX : 0)) #define I2C_SDA_IDX(p) ((p == 0) ? I2CEXT0_SDA_OUT_IDX : ((p == 1) ? I2CEXT1_SDA_OUT_IDX : 0)) #else @@ -99,14 +99,14 @@ typedef union { uint32_t val; } i2c_slave_queue_event_t; -static i2c_slave_struct_t _i2c_bus_array[SOC_I2C_NUM] = { +static i2c_slave_struct_t _i2c_bus_array[SOC_HP_I2C_NUM] = { {&I2C0, 0, -1, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 #if !CONFIG_DISABLE_HAL_LOCKS , NULL #endif }, -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 {&I2C1, 1, -1, -1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0 #if !CONFIG_DISABLE_HAL_LOCKS , @@ -210,7 +210,7 @@ static bool i2cSlaveDetachBus(void *bus_i2c_num); //===================================================================================================================== esp_err_t i2cSlaveAttachCallbacks(uint8_t num, i2c_slave_request_cb_t request_callback, i2c_slave_receive_cb_t receive_callback, void *arg) { - if (num >= SOC_I2C_NUM) { + if (num >= SOC_HP_I2C_NUM) { log_e("Invalid port num: %u", num); return ESP_ERR_INVALID_ARG; } @@ -224,7 +224,7 @@ esp_err_t i2cSlaveAttachCallbacks(uint8_t num, i2c_slave_request_cb_t request_ca } esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t frequency, size_t rx_len, size_t tx_len) { - if (num >= SOC_I2C_NUM) { + if (num >= SOC_HP_I2C_NUM) { log_e("Invalid port num: %u", num); return ESP_ERR_INVALID_ARG; } @@ -309,14 +309,14 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t if (i2c->num == 0) { periph_ll_enable_clk_clear_rst(PERIPH_I2C0_MODULE); -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 } else { periph_ll_enable_clk_clear_rst(PERIPH_I2C1_MODULE); #endif } i2c_ll_slave_init(i2c->dev); - i2c_ll_set_fifo_mode(i2c->dev, true); + i2c_ll_slave_set_fifo_mode(i2c->dev, true); i2c_ll_set_slave_addr(i2c->dev, slaveID, false); i2c_ll_set_tout(i2c->dev, I2C_LL_MAX_TIMEOUT); i2c_slave_set_frequency(i2c, frequency); @@ -337,13 +337,13 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); - i2c_ll_set_fifo_mode(i2c->dev, true); + i2c_ll_slave_set_fifo_mode(i2c->dev, true); if (!i2c->intr_handle) { uint32_t flags = ESP_INTR_FLAG_LOWMED | ESP_INTR_FLAG_SHARED; if (i2c->num == 0) { ret = esp_intr_alloc(ETS_I2C_EXT0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 } else { ret = esp_intr_alloc(ETS_I2C_EXT1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); #endif @@ -375,7 +375,7 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t } esp_err_t i2cSlaveDeinit(uint8_t num) { - if (num >= SOC_I2C_NUM) { + if (num >= SOC_HP_I2C_NUM) { log_e("Invalid port num: %u", num); return ESP_ERR_INVALID_ARG; } @@ -398,7 +398,7 @@ esp_err_t i2cSlaveDeinit(uint8_t num) { } size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t timeout_ms) { - if (num >= SOC_I2C_NUM) { + if (num >= SOC_HP_I2C_NUM) { log_e("Invalid port num: %u", num); return 0; } @@ -515,16 +515,16 @@ static bool i2c_slave_set_frequency(i2c_slave_struct_t *i2c, uint32_t clk_speed) i2c_hal_clk_config_t clk_cal; #if SOC_I2C_SUPPORT_APB - i2c_ll_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); + i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/ #elif SOC_I2C_SUPPORT_XTAL - i2c_ll_cal_bus_clk(XTAL_CLK_FREQ, clk_speed, &clk_cal); + i2c_ll_master_cal_bus_clk(XTAL_CLK_FREQ, clk_speed, &clk_cal); i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */ #endif i2c_ll_set_txfifo_empty_thr(i2c->dev, a); i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a); - i2c_ll_set_bus_timing(i2c->dev, &clk_cal); - i2c_ll_set_filter(i2c->dev, 3); + i2c_ll_master_set_bus_timing(i2c->dev, &clk_cal); + i2c_ll_master_set_filter(i2c->dev, 3); return true; } diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c index d32b34d0173..764b7dbb73f 100644 --- a/cores/esp32/esp32-hal-touch.c +++ b/cores/esp32/esp32-hal-touch.c @@ -22,10 +22,10 @@ Internal Private Touch Data Structure and Functions */ -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 static uint16_t __touchSleepCycles = 0x1000; static uint16_t __touchMeasureCycles = 0x1000; -#elif SOC_TOUCH_VERSION_2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 static uint16_t __touchSleepCycles = TOUCH_PAD_SLEEP_CYCLE_DEFAULT; static uint16_t __touchMeasureCycles = TOUCH_PAD_MEASURE_CYCLE_DEFAULT; #endif @@ -37,7 +37,7 @@ typedef struct { voidFuncPtr fn; bool callWithArgs; void *arg; -#if SOC_TOUCH_VERSION_2 // Only for ESP32S2 and ESP32S3 +#if SOC_TOUCH_SENSOR_VERSION == 2 // Only for ESP32S2 and ESP32S3 bool lastStatusIsPressed; #endif } TouchInterruptHandle_t; @@ -51,7 +51,7 @@ static bool initialized = false; static bool channels_initialized[SOC_TOUCH_SENSOR_NUM] = {false}; static void ARDUINO_ISR_ATTR __touchISR(void *arg) { -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 uint32_t pad_intr = touch_pad_get_status(); //clear interrupt touch_pad_clear_status(); @@ -68,7 +68,7 @@ static void ARDUINO_ISR_ATTR __touchISR(void *arg) { } } } -#elif SOC_TOUCH_VERSION_2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 touch_pad_intr_mask_t evt = touch_pad_read_intr_status_mask(); uint8_t pad_num = touch_pad_get_current_meas_channel(); if (evt & TOUCH_PAD_INTR_MASK_ACTIVE) { @@ -93,9 +93,9 @@ static void ARDUINO_ISR_ATTR __touchISR(void *arg) { static void __touchSetCycles(uint16_t measure, uint16_t sleep) { __touchSleepCycles = sleep; __touchMeasureCycles = measure; -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 touch_pad_set_measurement_clock_cycles(measure); -#elif SOC_TOUCH_VERSION_2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 touch_pad_set_charge_discharge_times(measure); #endif touch_pad_set_measurement_interval(sleep); @@ -123,7 +123,7 @@ static void __touchInit() { esp_err_t err = ESP_OK; -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 err = touch_pad_init(); if (err != ESP_OK) { goto err; @@ -143,8 +143,8 @@ static void __touchInit() { if (err != ESP_OK) { goto err; } - touch_pad_intr_enable(); // returns ESP_OK -#elif SOC_TOUCH_VERSION_2 // ESP32S2, ESP32S3 + touch_pad_intr_enable(); // returns ESP_OK +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 err = touch_pad_init(); if (err != ESP_OK) { goto err; @@ -179,11 +179,11 @@ static void __touchChannelInit(int pad) { return; } -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; - touch_pad_config(pad, SOC_TOUCH_PAD_THRESHOLD_MAX); // returns ESP_OK -#elif SOC_TOUCH_VERSION_2 // ESP32S2, ESP32S3 + touch_pad_config(pad, TOUCH_PAD_THRESHOLD_MAX); // returns ESP_OK +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; touch_pad_config(pad); // returns ESP_OK @@ -238,7 +238,7 @@ static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Ar if (userFunc == NULL) { // detach ISR User Call __touchInterruptHandlers[pad].fn = NULL; - threshold = SOC_TOUCH_PAD_THRESHOLD_MAX; // deactivate the ISR with SOC_TOUCH_PAD_THRESHOLD_MAX + threshold = TOUCH_PAD_THRESHOLD_MAX; // deactivate the ISR with SOC_TOUCH_PAD_THRESHOLD_MAX } else { // attach ISR User Call __touchInit(); @@ -270,7 +270,7 @@ static void __touchDettachInterrupt(uint8_t pin) { External Public Touch API Functions */ -#if SOC_TOUCH_VERSION_1 // Only for ESP32 SoC +#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC void touchInterruptSetThresholdDirection(bool mustbeLower) { if (mustbeLower) { touch_pad_set_trigger_mode(TOUCH_TRIGGER_BELOW); @@ -278,7 +278,7 @@ void touchInterruptSetThresholdDirection(bool mustbeLower) { touch_pad_set_trigger_mode(TOUCH_TRIGGER_ABOVE); } } -#elif SOC_TOUCH_VERSION_2 // Only for ESP32S2 and ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // Only for ESP32S2 and ESP32S3 // returns true if touch pad has been and continues pressed and false otherwise bool touchInterruptGetLastStatus(uint8_t pin) { int8_t pad = digitalPinToTouchChannel(pin); @@ -307,10 +307,10 @@ void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold) { return; } } -#if SOC_TOUCH_VERSION_1 // Only for ESP32 SoC +#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC touch_pad_set_thresh(pad, threshold); -#elif SOC_TOUCH_VERSION_2 +#elif SOC_TOUCH_SENSOR_VERSION == 2 touch_pad_sleep_channel_enable(pad, true); touch_pad_sleep_set_threshold(pad, threshold); diff --git a/cores/esp32/esp32-hal-touch.h b/cores/esp32/esp32-hal-touch.h index db33ce3bc6a..115d6cdc9cf 100644 --- a/cores/esp32/esp32-hal-touch.h +++ b/cores/esp32/esp32-hal-touch.h @@ -29,13 +29,13 @@ extern "C" { #include "esp32-hal.h" -#if !defined(SOC_TOUCH_VERSION_1) && !defined(SOC_TOUCH_VERSION_2) +#if !SOC_TOUCH_SENSOR_SUPPORTED #error Touch IDF driver Not supported! #endif -#if SOC_TOUCH_VERSION_1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 typedef uint16_t touch_value_t; -#elif SOC_TOUCH_VERSION_2 // ESP32S2 ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2 ESP32S3 typedef uint32_t touch_value_t; #endif @@ -71,7 +71,7 @@ void touchDetachInterrupt(uint8_t pin); * Default if Lower. **/ -#if SOC_TOUCH_VERSION_1 // Only for ESP32 SoC +#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC void touchInterruptSetThresholdDirection(bool mustbeLower); #endif @@ -83,7 +83,7 @@ void touchInterruptSetThresholdDirection(bool mustbeLower); * as soon as the touchpad is touched and/or released **/ -#if SOC_TOUCH_VERSION_2 // Only for ESP32S2 and ESP32S3 +#if SOC_TOUCH_SENSOR_VERSION == 2 // Only for ESP32S2 and ESP32S3 // returns true if touch pad has been and continues pressed and false otherwise bool touchInterruptGetLastStatus(uint8_t pin); #endif diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 7608502d0f8..e4432f5110f 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -61,10 +61,10 @@ struct uart_struct_t { static uart_t _uart_bus_array[] = { {0, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 {1, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 {2, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif }; @@ -81,10 +81,10 @@ static uart_t _uart_bus_array[] = { static uart_t _uart_bus_array[] = { {NULL, 0, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 {NULL, 1, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 {NULL, 2, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif }; @@ -94,8 +94,8 @@ static uart_t _uart_bus_array[] = { // Negative Pin Number will keep it unmodified, thus this function can detach individual pins // This function will also unset the pins in the Peripheral Manager and set the pin to -1 after detaching static bool _uartDetachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t rtsPin) { - if (uart_num >= SOC_UART_NUM) { - log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_NUM - 1); + if (uart_num >= SOC_UART_HP_NUM) { + log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_HP_NUM - 1); return false; } // get UART information @@ -181,8 +181,8 @@ static bool _uartDetachBus_RTS(void *busptr) { // Attach function for UART // connects the IO Pad, set Paripheral Manager and internal UART structure data static bool _uartAttachPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t rtsPin) { - if (uart_num >= SOC_UART_NUM) { - log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_NUM - 1); + if (uart_num >= SOC_UART_HP_NUM) { + log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_HP_NUM - 1); return false; } // get UART information @@ -308,8 +308,8 @@ bool uartIsDriverInstalled(uart_t *uart) { // Negative Pin Number will keep it unmodified, thus this function can set individual pins // When pins are changed, it will detach the previous one bool uartSetPins(uint8_t uart_num, int8_t rxPin, int8_t txPin, int8_t ctsPin, int8_t rtsPin) { - if (uart_num >= SOC_UART_NUM) { - log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_NUM - 1); + if (uart_num >= SOC_UART_HP_NUM) { + log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_HP_NUM - 1); return false; } // get UART information @@ -378,7 +378,7 @@ bool _testUartBegin( uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rxPin, int8_t txPin, uint32_t rx_buffer_size, uint32_t tx_buffer_size, bool inverted, uint8_t rxfifo_full_thrhd ) { - if (uart_nr >= SOC_UART_NUM) { + if (uart_nr >= SOC_UART_HP_NUM) { return false; // no new driver has to be installed } uart_t *uart = &_uart_bus_array[uart_nr]; @@ -400,8 +400,8 @@ uart_t *uartBegin( uint8_t uart_nr, uint32_t baudrate, uint32_t config, int8_t rxPin, int8_t txPin, uint32_t rx_buffer_size, uint32_t tx_buffer_size, bool inverted, uint8_t rxfifo_full_thrhd ) { - if (uart_nr >= SOC_UART_NUM) { - log_e("UART number is invalid, please use number from 0 to %u", SOC_UART_NUM - 1); + if (uart_nr >= SOC_UART_HP_NUM) { + log_e("UART number is invalid, please use number from 0 to %u", SOC_UART_HP_NUM - 1); return NULL; // no new driver was installed } uart_t *uart = &_uart_bus_array[uart_nr]; @@ -604,8 +604,8 @@ bool uartSetRxFIFOFull(uart_t *uart, uint8_t numBytesFIFOFull) { } void uartEnd(uint8_t uart_num) { - if (uart_num >= SOC_UART_NUM) { - log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_NUM - 1); + if (uart_num >= SOC_UART_HP_NUM) { + log_e("Serial number is invalid, please use number from 0 to %u", SOC_UART_HP_NUM - 1); return; } // get UART information @@ -819,14 +819,14 @@ static void ARDUINO_ISR_ATTR uart0_write_char(char c) { uart_ll_write_txfifo(&UART0, (const uint8_t *)&c, 1); } -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 static void ARDUINO_ISR_ATTR uart1_write_char(char c) { while (uart_ll_get_txfifo_len(&UART1) == 0); uart_ll_write_txfifo(&UART1, (const uint8_t *)&c, 1); } #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 static void ARDUINO_ISR_ATTR uart2_write_char(char c) { while (uart_ll_get_txfifo_len(&UART2) == 0); uart_ll_write_txfifo(&UART2, (const uint8_t *)&c, 1); @@ -836,10 +836,10 @@ static void ARDUINO_ISR_ATTR uart2_write_char(char c) { void uart_install_putc() { switch (s_uart_debug_nr) { case 0: ets_install_putc1((void (*)(char)) & uart0_write_char); break; -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 case 1: ets_install_putc1((void (*)(char)) & uart1_write_char); break; #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 case 2: ets_install_putc1((void (*)(char)) & uart2_write_char); break; #endif default: ets_install_putc1(NULL); break; @@ -850,7 +850,7 @@ void uart_install_putc() { // Routines that take care of UART mode in the HardwareSerial Class code // used to set UART_MODE_RS485_HALF_DUPLEX auto RTS for TXD for ESP32 chips bool uartSetMode(uart_t *uart, uart_mode_t mode) { - if (uart == NULL || uart->num >= SOC_UART_NUM) { + if (uart == NULL || uart->num >= SOC_UART_HP_NUM) { return false; } @@ -861,7 +861,7 @@ bool uartSetMode(uart_t *uart, uart_mode_t mode) { } void uartSetDebug(uart_t *uart) { - if (uart == NULL || uart->num >= SOC_UART_NUM) { + if (uart == NULL || uart->num >= SOC_UART_HP_NUM) { s_uart_debug_nr = -1; } else { s_uart_debug_nr = uart->num; @@ -1103,7 +1103,7 @@ unsigned long uartDetectBaudrate(uart_t *uart) { */ // gets the right TX or RX SIGNAL, based on the UART number from gpio_sig_map.h -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 #define UART_TX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0TXD_OUT_IDX : (uartNumber == UART_NUM_1 ? U1TXD_OUT_IDX : U2TXD_OUT_IDX)) #define UART_RX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0RXD_IN_IDX : (uartNumber == UART_NUM_1 ? U1RXD_IN_IDX : U2RXD_IN_IDX)) #else @@ -1115,7 +1115,7 @@ unsigned long uartDetectBaudrate(uart_t *uart) { This creates a loop that lets us receive anything we send on the UART without external wires. */ void uart_internal_loopback(uint8_t uartNum, int8_t rxPin) { - if (uartNum > SOC_UART_NUM - 1 || !GPIO_IS_VALID_GPIO(rxPin)) { + if (uartNum > SOC_UART_HP_NUM - 1 || !GPIO_IS_VALID_GPIO(rxPin)) { return; } esp_rom_gpio_connect_out_signal(rxPin, UART_TX_SIGNAL(uartNum), false, false); diff --git a/idf_component.yml b/idf_component.yml index 2f74301ea10..e6831d71b44 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -42,7 +42,7 @@ files: - "platform.txt" - "programmers.txt" dependencies: - idf: ">=5.1,<5.2" + idf: ">=5.3,<5.4" # mdns 1.2.1 is necessary to build H2 with no WiFi espressif/mdns: version: "^1.2.3" diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/SerialToSerialBT_Legacy.ino b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/SerialToSerialBT_Legacy.ino index 343bd79c79b..d184a4ea769 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/SerialToSerialBT_Legacy.ino +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/SerialToSerialBT_Legacy.ino @@ -17,12 +17,6 @@ #error Serial Port Profile for Bluetooth is not available or not enabled. It is only available for the ESP32 chip. #endif -// Check Simple Secure Pairing -#if defined(CONFIG_BT_SSP_ENABLED) -#warning Legacy Pairing is disabled (CONFIG_BT_SSP_ENABLED is enabled. Disable it in menuconfig). -void setup() {} -void loop() {} -#else const char *deviceName = "ESP32_Legacy_example"; BluetoothSerial SerialBT; @@ -62,4 +56,3 @@ void loop() { delay(1); // Feed the watchdog } } -#endif diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/SerialToSerialBT_SSP.ino b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/SerialToSerialBT_SSP.ino index eb0c05e0038..e5d05eed14e 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/SerialToSerialBT_SSP.ino +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/SerialToSerialBT_SSP.ino @@ -22,11 +22,6 @@ #error Serial Port Profile for Bluetooth is not available or not enabled. It is only available for the ESP32 chip. #endif -// Check Simple Secure Pairing -#if !defined(CONFIG_BT_SSP_ENABLED) -#error Simple Secure Pairing for Bluetooth is not available or not enabled. -#endif - const char *deviceName = "ESP32_SSP_example"; // The following lines defines the method of pairing diff --git a/libraries/BluetoothSerial/src/BluetoothSerial.cpp b/libraries/BluetoothSerial/src/BluetoothSerial.cpp index bcb94db910f..12c09d68305 100644 --- a/libraries/BluetoothSerial/src/BluetoothSerial.cpp +++ b/libraries/BluetoothSerial/src/BluetoothSerial.cpp @@ -71,11 +71,9 @@ static esp_bd_addr_t _peer_bd_addr; static char _remote_name[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; static bool _isRemoteAddressSet; static bool _isMaster; -#ifdef CONFIG_BT_SSP_ENABLED static bool _enableSSP; static bool _IO_CAP_INPUT; static bool _IO_CAP_OUTPUT; -#endif esp_bt_pin_code_t _pin_code = {0}; uint8_t _pin_code_len = 0; // Number of valid Bytes in the esp_bt_pin_code_t array static esp_spp_sec_t _sec_mask; @@ -538,7 +536,6 @@ static void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *pa esp_bt_gap_pin_reply(param->pin_req.bda, true, _pin_code_len, _pin_code); } break; -#ifdef CONFIG_BT_SSP_ENABLED case ESP_BT_GAP_CFM_REQ_EVT: // Enum 6 - Security Simple Pairing User Confirmation request. log_i("ESP_BT_GAP_CFM_REQ_EVT Please compare the numeric value: %d", param->cfm_req.num_val); if (confirm_request_callback) { @@ -549,13 +546,10 @@ static void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *pa esp_bt_gap_ssp_confirm_reply(param->cfm_req.bda, false); } break; -#endif case ESP_BT_GAP_KEY_NOTIF_EVT: // Enum 7 - Security Simple Pairing Passkey Notification log_i("ESP_BT_GAP_KEY_NOTIF_EVT passkey:%d", param->key_notif.passkey); break; - -#ifdef CONFIG_BT_SSP_ENABLED case ESP_BT_GAP_KEY_REQ_EVT: // Enum 8 - Security Simple Pairing Passkey request log_i("ESP_BT_GAP_KEY_REQ_EVT Please enter passkey!"); if (key_request_callback) { @@ -566,7 +560,6 @@ static void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *pa esp_bt_gap_ssp_confirm_reply(param->cfm_req.bda, false); } break; -#endif case ESP_BT_GAP_READ_RSSI_DELTA_EVT: // Enum 9 - Read rssi event log_i("ESP_BT_GAP_READ_RSSI_DELTA_EVT Read rssi event"); @@ -707,7 +700,6 @@ static bool _init_bt(const char *deviceName, bt_mode mode) { log_i("device name set"); esp_bt_dev_set_device_name(deviceName); -#ifdef CONFIG_BT_SSP_ENABLED if (_enableSSP) { log_i("Simple Secure Pairing"); esp_bt_sp_param_t param_type = ESP_BT_SP_IOCAP_MODE; @@ -723,7 +715,6 @@ static bool _init_bt(const char *deviceName, bt_mode mode) { } esp_bt_gap_set_security_param(param_type, &iocap, sizeof(uint8_t)); } -#endif // the default BTA_DM_COD_LOUDSPEAKER does not work with the macOS BT stack esp_bt_cod_t cod; @@ -894,7 +885,6 @@ void BluetoothSerial::memrelease() { esp_bt_mem_release(ESP_BT_MODE_BTDM); } -#ifdef CONFIG_BT_SSP_ENABLED void BluetoothSerial::onConfirmRequest(ConfirmRequestCb cb) { confirm_request_callback = cb; } @@ -906,7 +896,6 @@ void BluetoothSerial::onKeyRequest(KeyRequestCb cb) { void BluetoothSerial::respondPasskey(uint32_t passkey) { esp_bt_gap_ssp_passkey_reply(current_bd_addr, true, passkey); } -#endif void BluetoothSerial::onAuthComplete(AuthCompleteCb cb) { auth_complete_callback = cb; @@ -921,7 +910,6 @@ esp_err_t BluetoothSerial::register_callback(esp_spp_cb_t callback) { return ESP_OK; } -#ifdef CONFIG_BT_SSP_ENABLED // Enable Simple Secure Pairing (using generated PIN) // This must be called before calling begin, otherwise has no effect! void BluetoothSerial::enableSSP() { @@ -957,8 +945,6 @@ void BluetoothSerial::disableSSP() { _enableSSP = false; } -#else - bool BluetoothSerial::setPin(const char *pin, uint8_t pin_code_len) { if (pin_code_len == 0 || pin_code_len > 16) { log_e("PIN code must be 1-16 Bytes long! Called with length %d", pin_code_len); @@ -968,7 +954,6 @@ bool BluetoothSerial::setPin(const char *pin, uint8_t pin_code_len) { memcpy(_pin_code, pin, pin_code_len); return (esp_bt_gap_set_pin(ESP_BT_PIN_TYPE_FIXED, _pin_code_len, _pin_code) == ESP_OK); } -#endif bool BluetoothSerial::connect(String remoteName) { bool retval = false; diff --git a/libraries/BluetoothSerial/src/BluetoothSerial.h b/libraries/BluetoothSerial/src/BluetoothSerial.h index 6b7ba419e00..d59fbf1f714 100644 --- a/libraries/BluetoothSerial/src/BluetoothSerial.h +++ b/libraries/BluetoothSerial/src/BluetoothSerial.h @@ -56,21 +56,16 @@ class BluetoothSerial : public Stream { void onData(BluetoothSerialDataCb cb); esp_err_t register_callback(esp_spp_cb_t callback); -#ifdef CONFIG_BT_SSP_ENABLED void onConfirmRequest(ConfirmRequestCb cb); void onKeyRequest(KeyRequestCb cb); void respondPasskey(uint32_t passkey); -#endif void onAuthComplete(AuthCompleteCb cb); void confirmReply(boolean confirm); -#ifdef CONFIG_BT_SSP_ENABLED void enableSSP(); void enableSSP(bool inputCapability, bool outputCapability); void disableSSP(); -#else bool setPin(const char *pin, uint8_t pin_code_len); -#endif bool connect(String remoteName); bool connect( uint8_t remoteAddress[], int channel = 0, esp_spp_sec_t sec_mask = (ESP_SPP_SEC_ENCRYPT | ESP_SPP_SEC_AUTHENTICATE), diff --git a/libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive/Serial_STD_Func_OnReceive.ino b/libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive/Serial_STD_Func_OnReceive.ino index eff21a1939e..3c5ff0ba6fc 100644 --- a/libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive/Serial_STD_Func_OnReceive.ino +++ b/libraries/ESP32/examples/Serial/Serial_STD_Func_OnReceive/Serial_STD_Func_OnReceive.ino @@ -11,7 +11,7 @@ */ // soc/soc_caps.h has information about each SoC target -// in this example, we use SOC_UART_NUM that goes from 1 to 3, +// in this example, we use SOC_UART_HP_NUM that goes from 1 to 3, // depending on the number of available UARTs in the ESP32xx // This makes the code transparent to what SoC is used. #include "soc/soc_caps.h" @@ -24,9 +24,9 @@ #define TXPIN 5 // GPIO 5 => TX for Serial1 or Serial2 // declare testingSerial (as reference) related to TEST_UART number defined above (only for Serial1 and Serial2) -#if SOC_UART_NUM > 1 && TEST_UART == 1 +#if SOC_UART_HP_NUM > 1 && TEST_UART == 1 HardwareSerial &testingSerial = Serial1; -#elif SOC_UART_NUM > 2 && TEST_UART == 2 +#elif SOC_UART_HP_NUM > 2 && TEST_UART == 2 HardwareSerial &testingSerial = Serial2; #endif @@ -36,11 +36,11 @@ void processOnReceiving(HardwareSerial &mySerial) { int8_t uart_num = -1; if (&mySerial == &Serial0) { uart_num = 0; -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 } else if (&mySerial == &Serial1) { uart_num = 1; #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 } else if (&mySerial == &Serial2) { uart_num = 2; #endif diff --git a/libraries/ESP_I2S/src/ESP_I2S.cpp b/libraries/ESP_I2S/src/ESP_I2S.cpp index 84050dfa6f8..50f76b41a3f 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.cpp +++ b/libraries/ESP_I2S/src/ESP_I2S.cpp @@ -819,7 +819,7 @@ size_t I2SClass::readBytes(char *buffer, size_t size) { return total_size; } -size_t I2SClass::write(uint8_t *buffer, size_t size) { +size_t I2SClass::write(const uint8_t *buffer, size_t size) { size_t written = 0; size_t bytes_sent = 0; last_error = ESP_FAIL; diff --git a/libraries/ESP_I2S/src/ESP_I2S.h b/libraries/ESP_I2S/src/ESP_I2S.h index c83e3815ddb..60ccf0d4265 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.h +++ b/libraries/ESP_I2S/src/ESP_I2S.h @@ -62,7 +62,7 @@ class I2SClass : public Stream { bool end(); size_t readBytes(char *buffer, size_t size); - size_t write(uint8_t *buffer, size_t size); + size_t write(const uint8_t *buffer, size_t size); i2s_chan_handle_t txChan(); uint32_t txSampleRate(); diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 4d215d80034..48e8460fe2d 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -170,6 +170,11 @@ bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, i Network.begin(); _ethernets[_eth_index] = this; +#if CONFIG_IDF_TARGET_ESP32 +#undef DEFAULT_RMII_CLK_GPIO +#define DEFAULT_RMII_CLK_GPIO (emac_rmii_clock_gpio_t)(CONFIG_ETH_RMII_CLK_IN_GPIO) +#endif + eth_esp32_emac_config_t mac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG(); mac_config.clock_config.rmii.clock_mode = (clock_mode) ? EMAC_CLK_OUT : EMAC_CLK_EXT_IN; mac_config.clock_config.rmii.clock_gpio = (1 == clock_mode) ? EMAC_APPL_CLK_OUT_GPIO diff --git a/libraries/Insights/examples/DiagnosticsSmokeTest/DiagnosticsSmokeTest.ino b/libraries/Insights/examples/DiagnosticsSmokeTest/DiagnosticsSmokeTest.ino index 2178c9bcd17..485da5b0bc2 100644 --- a/libraries/Insights/examples/DiagnosticsSmokeTest/DiagnosticsSmokeTest.ino +++ b/libraries/Insights/examples/DiagnosticsSmokeTest/DiagnosticsSmokeTest.ino @@ -36,7 +36,8 @@ static void smoke_test() { Insights.event(TAG, "[count][%d]", count); } else { log_e("[count][%d] [crash_count][%" PRIu32 "] [excvaddr][0x0f] Crashing...", count, s_reset_count); - *(int *)0x0F = 0x10; + //ToDo: find better way to crash + //*(int *)0x0F = 0x10; } } diff --git a/libraries/Network/src/NetworkClient.h b/libraries/Network/src/NetworkClient.h index 572292a7a99..7f37e0ff6e1 100644 --- a/libraries/Network/src/NetworkClient.h +++ b/libraries/Network/src/NetworkClient.h @@ -28,8 +28,6 @@ class NetworkClientRxBuffer; class ESPLwIPClient : public Client { public: - virtual int connect(IPAddress ip, uint16_t port, int32_t timeout) = 0; - virtual int connect(const char *host, uint16_t port, int32_t timeout) = 0; virtual void setConnectionTimeout(uint32_t milliseconds) = 0; }; diff --git a/libraries/PPP/src/PPP.cpp b/libraries/PPP/src/PPP.cpp index 8c25fe6aad5..bef283671da 100644 --- a/libraries/PPP/src/PPP.cpp +++ b/libraries/PPP/src/PPP.cpp @@ -279,7 +279,7 @@ bool PPPClass::begin(ppp_modem_model_t model, uint8_t uart_num, int baud_rate) { dte_config.uart_config.flow_control = _flow_ctrl; dte_config.uart_config.rx_buffer_size = _rx_buffer_size; dte_config.uart_config.tx_buffer_size = _tx_buffer_size; - dte_config.uart_config.port_num = _uart_num; + dte_config.uart_config.port_num = (uart_port_t)_uart_num; dte_config.uart_config.baud_rate = baud_rate; /* Configure the DCE */ diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 9f612b34646..8c585fa86ed 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,42 +42,32 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.1-c608177cf9" + "version": "idf-release_v5.3-466a392a" }, { "packager": "esp32", - "name": "xtensa-esp32-elf-gcc", - "version": "esp-12.2.0_20230208" - }, - { - "packager": "esp32", - "name": "xtensa-esp32s2-elf-gcc", - "version": "esp-12.2.0_20230208" - }, - { - "packager": "esp32", - "name": "xtensa-esp32s3-elf-gcc", - "version": "esp-12.2.0_20230208" + "name": "xtensa-esp-elf-gcc", + "version": "esp-13.2.0_20240530" }, { "packager": "esp32", "name": "xtensa-esp-elf-gdb", - "version": "12.1_20231023" + "version": "14.2_20240403" }, { "packager": "esp32", "name": "riscv32-esp-elf-gcc", - "version": "esp-12.2.0_20230208" + "version": "esp-13.2.0_20240530" }, { "packager": "esp32", "name": "riscv32-esp-elf-gdb", - "version": "12.1_20231023" + "version": "14.2_20240403" }, { "packager": "esp32", "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240726" + "version": "v0.12.0-esp32-20240318" }, { "packager": "esp32", @@ -105,490 +95,366 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.1-c608177cf9", + "version": "idf-release_v5.3-466a392a", "systems": [ { "host": "i686-mingw32", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "x86_64-mingw32", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "arm64-apple-darwin", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "x86_64-apple-darwin", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "i686-pc-linux-gnu", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://codeload.github.com/espressif/esp32-arduino-libs/zip/7b015a59844d511b72663a266e5793fb98eecaa1", - "archiveFileName": "esp32-arduino-libs-7b015a59844d511b72663a266e5793fb98eecaa1.zip", - "checksum": "SHA-256:392c411dc6b8253a3d067fda6c41a3f67ade2f99259a1a707630568e8f80f055", - "size": "310235817" - } - ] - }, - { - "name": "xtensa-esp32-elf-gcc", - "version": "esp-12.2.0_20230208", - "systems": [ - { - "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:e8d35938385447cf9c34735fee2a3b2b61cca6be07db77a45856a1c2a347e423", - "size": "111766903" - }, - { - "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:569988acfc2673369f222037c64bac96990cee08cebeebc4f8860e0d984f8bd9", - "size": "106473247" - }, - { - "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:6a844f16021e936cc9b87b203978356f57ab2144554f6f2a0f73ffa3d3d316c5", - "size": "105576049" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:743d6f03a89329bb09f9550d27fcab677f5cf06b4720793bbcef7883a932681d", - "size": "114870843" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "checksum": "SHA-256:4d32d764e984f3a570aacfb2f4957619540fb4629534d969b2e83997901334c3", - "size": "119424029" - }, - { - "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "checksum": "SHA-256:dc8fa7f4933bf5cb08e83bacce6160cc9dfe93d7aad1e8f92599bb81ff5b2e28", - "size": "106136827" - }, - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "checksum": "SHA-256:62bb6428d107ed3f44c212c77ecf24804b74c97327b0f0ad2029c656c6dbd6ee", - "size": "130847086" - }, - { - "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:8febfe4a6476efc69012390106c8c660a14418f025137b0513670c72124339cf", - "size": "134985117" - } - ] - }, - { - "name": "xtensa-esp32s2-elf-gcc", - "version": "esp-12.2.0_20230208", - "systems": [ - { - "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2ff838520a5003d2768b275f5bb5ead69dd2388c3b7cd9043cb59891ba43147f", - "size": "112199211" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:6d79d5b14fc7129a9b8208d54e19b05dedb565f50f7a96264c9df84b06ad3be0", - "size": "106953064" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:e5bd03b6ad19179b015a93ada9992adc3610036ebf6aeb0835a09c9aadb50a14", - "size": "106026829" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:fb45943557b2d201bbb1bdc7514a1872f9bb96c2dfb48b95abdba281cc792f75", - "size": "115288662" - }, - { - "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "checksum": "SHA-256:e965236cb80e45282d16f40184af183e013b63b177bd1884736c463eac636564", - "size": "119711811" - }, - { - "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "checksum": "SHA-256:78a55eec18650b21378d97494989ffe208748e0f49bb2b2d6756b264e1863919", - "size": "106540817" - }, - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "checksum": "SHA-256:1e6dac5162ab75f94b88c47ebeabb6600c652fb4f615ed07c1724d037c02fd19", - "size": "131273859" - }, - { - "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s2-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32s2-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:8a785cc4e0838cebe404f82c0ead7a0f9ac5fabc660a742e33a41ddac6326cc1", - "size": "135373049" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", + "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", + "size": "318864212" } ] }, { - "name": "xtensa-esp32s3-elf-gcc", - "version": "esp-12.2.0_20230208", + "name": "xtensa-esp-elf-gcc", + "version": "esp-13.2.0_20240530", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:61495ffe575e00c6998ae7274ff917658c04bded62ece0937c7042d6dcbf46de", - "size": "111971129" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-x86_64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:bce77e8480701d5a90545369d1b5848f6048eb39c0022d2446d1e33a8e127490", + "size": "208911713" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:9008d395be46fcfe68c7de6edc850fc1595f28323a28e7922e5c085bd310cb90", - "size": "106616800" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-aarch64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:7c9e3c1adc733d042ed87b92daa1d6396e1b441c1755f1fa14cb88855719ba88", + "size": "202519931" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:568857bdac7dea389dffc7fbc6871b4af299150a8ecf1bf965f224d2a1655edb", - "size": "105700326" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-arm-linux-gnueabi.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:d6955e8ea6af91574bf9213b92f32ca09eb8640103446b7fa19a63cfeeec5421", + "size": "202206516" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:d122738bcc6c2f52d05fa89b2fb1afe6a7894cda8a07a1879aca867a31507ed0", - "size": "115098400" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-i586-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:3666ee74ecb693ee6488f11469802630a7b0d32608184045a4f35cb413f59e3d", + "size": "213304863" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "checksum": "SHA-256:7defcddb98788b0991416ad2e0cb6a3b248b8030f22d5d76b8832117cc1494ca", - "size": "119883189" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-x86_64-apple-darwin.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-x86_64-apple-darwin.tar.gz", + "checksum": "SHA-256:948cf57b6eecc898b5f70e06ad08ba88c08b627be570ec631dfcd72f6295194a", + "size": "221357024" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "checksum": "SHA-256:b59e076f8e4b9ca99535d449f9fc4cbb443188051dce4ad934e38f16b095f8d9", - "size": "106464677" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.gz", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.gz", + "checksum": "SHA-256:6f03fdf0cc14a7f3900ee59977f62e8626d8b7c208506e52f1fd883ac223427a", + "size": "199689745" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "checksum": "SHA-256:3ddf51774817e815e5d41c312a90c1159226978fb45fd0d4f7085c567f8b73ab", - "size": "131134034" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-i686-w64-mingw32_hotfix.zip", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-i686-w64-mingw32_hotfix.zip", + "checksum": "SHA-256:d6b227c50e3c8e21d62502b3140e5ab74a4cb502c2b4169c36238b9858a8fb88", + "size": "266042967" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/xtensa-esp32s3-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp32s3-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:1d15ca65e3508388a86d8bed3048c46d07538f5bc88d3e4296f9c03152087cd1", - "size": "135381926" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/xtensa-esp-elf-13.2.0_20240530-x86_64-w64-mingw32_hotfix.zip", + "archiveFileName": "xtensa-esp-elf-13.2.0_20240530-x86_64-w64-mingw32_hotfix.zip", + "checksum": "SHA-256:155ee97b531236e6a7c763395c68ca793e55e74d2cb4d38a23057a153e01e7d0", + "size": "269831985" } ] }, { "name": "xtensa-esp-elf-gdb", - "version": "12.1_20231023", + "version": "14.2_20240403", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:d0743ec43cd92c35452a9097f7863281de4e72f04120d63cfbcf9d591a373529", - "size": "36942094" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:9d68472d4cba5cf8c2b79d94f86f92c828e76a632bd1e6be5e7706e5b304d36e", + "size": "31010320" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:bc1fac0366c6a08e26c45896ca21c8c90efc2cdd431b8ba084e8772e15502d0e", - "size": "37134601" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:bdabc3217994815fc311c4e16e588b78f6596b5ad4ffa46c80b40e982cfb1e66", + "size": "30954580" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:25efc51d52b71f097ccec763c5c885c8f5026b432fec4b5badd6a5f36fe34d04", - "size": "34579556" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:d54b8d703ba897b28c627da3d27106a3906dd01ba298778a67064710bc33c76d", + "size": "28697281" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:e0af0b3b4a6b29a843cd5f47e331a966d9258f7d825b4656c6251490f71b05b2", - "size": "35676578" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:64d3bc992ed8fdec383d49e8b803ac494605a38117c8293db8da055037de96b0", + "size": "29890994" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz", - "checksum": "SHA-256:bd146fd99a52b2d71c7ce0f62b9e18f3423d6cae7b2b2c954046b0dd7a23142f", - "size": "52863941" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz", + "checksum": "SHA-256:023e74b3fda793da4bc0509b02de776ee0dad6efaaac17bef5916fb7dc9c26b9", + "size": "44446611" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:5edc76565bf9d2fadf24e443ddf3df7567354f336a65d4af5b2ee805cdfcec24", - "size": "33504923" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz", + "checksum": "SHA-256:ea757c6bf8c25238f6d2fdcc6bbab25a1b00608a0f9e19b7ddd2f37ddbdc3fb1", + "size": "37021423" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip", - "checksum": "SHA-256:ea4f3ee6b95ad1ad2e07108a21a50037a3e64a420cdeb34b2ba95d612faed898", - "size": "31068749" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip", + "checksum": "SHA-256:322e8d9b700dc32d8158e3dc55fb85ec55de48d0bb7789375ee39a28d5d655e2", + "size": "26302466" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/xtensa-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip", - "archiveFileName": "xtensa-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:13bb97f39173948d1cfb6e651d9b335ea9d52f1fdd0dda1eda3a2d23d8c63644", - "size": "33514906" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/xtensa-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip", + "archiveFileName": "xtensa-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:a27a2fe20f192f8e0a51b8936428b4e1cf8935cfe008ee445cc49f6fc7f6db2e", + "size": "28366035" } ] }, { "name": "riscv32-esp-elf-gcc", - "version": "esp-12.2.0_20230208", + "version": "esp-13.2.0_20240530", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:1eb0d65990547ee9706b90406600cbc3638814d5feb7c1f7b44bb5416478a5bd", - "size": "257615266" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-x86_64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:e7fbfffbb19dcd3764a9848a141bf44e19ad0b48e0bd1515912345c26fe52fba", + "size": "294346758" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:921fcdc170c7fe5d6a0a30470ed1875c8926d910c19739fc950c8d1836e4c1c5", - "size": "253094184" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-aarch64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:a178a895b807ed2e87d5d62153c36a6aae048581f527c0eb152f0a02b8de9571", + "size": "288374597" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:f66e06312b58251c2121c1b1df1102565708573b86b2a9fe0c03ea1b0e9a7511", - "size": "252558021" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-arm-linux-gnueabi.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:4a2f176d0f5bc8a70645975e2a08ea94145fb69b7225c5cdcbd6024a4836aaf5", + "size": "287737495" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-i686-linux-gnu.tar.gz", - "checksum": "SHA-256:8abcac0331ef8973d1c705e77523364ebec7e98b37640d4a1d036912f3cbe946", - "size": "261248375" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-i586-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:7a6f02f1b2effafb18600bbf602818f6923fd320f000fb8659f34acbfda8812f", + "size": "299138540" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-x86_64-apple-darwin.tar.gz", - "checksum": "SHA-256:76a334bc75a4e3891c222c84d7968817f2d0699d2976fc2a1658e56395283bec", - "size": "268987133" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-x86_64-apple-darwin.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-x86_64-apple-darwin.tar.gz", + "checksum": "SHA-256:a193b4f025d0d836b0a9d9cbe760af1c53e53af66fc332fe98952bc4c456dd9a", + "size": "305025700" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-aarch64-apple-darwin.tar.gz", - "checksum": "SHA-256:f30571945b257a10a26901bba3c5892e07c192aacf9ed6e8fcd11ca36ed827d2", - "size": "252159713" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.gz", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-aarch64-apple-darwin.tar.gz", + "checksum": "SHA-256:7082dd2e2123dea5609a24092d19ac6612ae7e219df1d298de6b2f64cb4af0df", + "size": "285458443" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-i686-w64-mingw32.zip", - "checksum": "SHA-256:a5dfbb6dbf6fc6c6ea9beb2723af059ba3c5b2c86c2f0dc3b21afdc7bb229bf5", - "size": "324863847" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-i686-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-i686-w64-mingw32.zip", + "checksum": "SHA-256:590bfb10576702639825581cc00c445da6e577012840a787137417e80d15f46d", + "size": "366573064" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-12.2.0_20230208/riscv32-esp-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-12.2.0_20230208-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:9deae9e0013b2f7bbf017f9c8135755bfa89522f337c7dca35872bf12ec08176", - "size": "328092732" + "url": "https://github.com/espressif/crosstool-NG/releases/download/esp-13.2.0_20240530/riscv32-esp-elf-13.2.0_20240530-x86_64-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-13.2.0_20240530-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:413eb9f6adf8fdaf25544d014c850fc09eb38bb93a2fc5ebd107ab1b0de1bb3a", + "size": "369820297" } ] }, { "name": "riscv32-esp-elf-gdb", - "version": "12.1_20231023", + "version": "14.2_20240403", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-x86_64-linux-gnu.tar.gz", - "checksum": "SHA-256:2c78b806be176b1e449e07ff83429d38dfc39a13f89a127ac1ffa6c1230537a0", - "size": "36630145" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-x86_64-linux-gnu.tar.gz", + "checksum": "SHA-256:ce004bc0bbd71b246800d2d13b239218b272a38bd528e316f21f1af2db8a4b13", + "size": "30707431" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-aarch64-linux-gnu.tar.gz", - "checksum": "SHA-256:33f80117c8777aaff9179e27953e41764c5c46b3c576dc96a37ecc7a368807ec", - "size": "36980143" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-aarch64-linux-gnu.tar.gz", + "checksum": "SHA-256:ba10f2866c61410b88c65957274280b1a62e3bed05131654ed9b6758efe18e55", + "size": "30824065" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-arm-linux-gnueabi.tar.gz", - "checksum": "SHA-256:292e6ec0a9381c1480bbadf5caae25e86428b68fb5d030c9be7deda5e7f070e0", - "size": "34950318" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-arm-linux-gnueabi.tar.gz", + "checksum": "SHA-256:88539db5d987f28827efac7e26080a2803b9b539342ccd2963ccfdd56d7f08f7", + "size": "29000575" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-i586-linux-gnu.tar.gz", - "checksum": "SHA-256:68a25fbcfc6371ec4dbe503ec92211977eb2006f0c29e67dbce6b93c70c6b7ec", - "size": "35801607" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-i586-linux-gnu.tar.gz", + "checksum": "SHA-256:0e628ee37438ab6ba05eb889a76d09e50cb98e0020a16b8e2b935c5cf19b4ed2", + "size": "29947521" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-x86_64-apple-darwin14.tar.gz", - "checksum": "SHA-256:322c722e6c12225ed8cd97f95a0375105756dc5113d369958ce0858ad1a90257", - "size": "52618688" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-x86_64-apple-darwin14.tar.gz", + "checksum": "SHA-256:8f6bda832d70dad5860a639d55aba4237bd10cbac9f4822db1eece97357b34a9", + "size": "44196117" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-aarch64-apple-darwin21.1.tar.gz", - "checksum": "SHA-256:c2224b3a8d02451c530cf004c29653292d963a1b4021b4b472b862b6dbe97e0b", - "size": "33149392" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-aarch64-apple-darwin21.1.tar.gz", + "checksum": "SHA-256:d88b6116e86456c8480ce9bc95aed375a35c0d091f1da0a53b86be0e6ef3d320", + "size": "36794404" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-i686-w64-mingw32.zip", - "checksum": "SHA-256:4b42149a99dd87ee7e6dde25c99bad966c7f964253fa8f771593d7cef69f5602", - "size": "31635103" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-i686-w64-mingw32.zip", + "checksum": "SHA-256:d6e7ce05805b0d8d4dd138ad239b98a1adf8da98941867d60760eb1ae5361730", + "size": "26486295" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v12.1_20231023/riscv32-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip", - "archiveFileName": "riscv32-esp-elf-gdb-12.1_20231023-x86_64-w64-mingw32.zip", - "checksum": "SHA-256:728231546ad5006d34463f972658b2a89e52f660a42abab08a29bedd4a8046ad", - "size": "33400816" + "url": "https://github.com/espressif/binutils-gdb/releases/download/esp-gdb-v14.2_20240403/riscv32-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip", + "archiveFileName": "riscv32-esp-elf-gdb-14.2_20240403-x86_64-w64-mingw32.zip", + "checksum": "SHA-256:5c9f211dc46daf6b96fad09d709284a0f0186fef8947d9f6edd6bca5b5ad4317", + "size": "27942579" } ] }, { "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240726", + "version": "v0.12.0-esp32-20240318", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-linux-amd64-0.12.0-esp32-20240726.tar.gz", - "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20240726.tar.gz", - "checksum": "SHA-256:31fabbda5f39262ea4ed8cbba8adedc1d39838f01043cfab95435743c126ac56", - "size": "2368175" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-amd64-0.12.0-esp32-20240318.tar.gz", + "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20240318.tar.gz", + "checksum": "SHA-256:cf26c5cef4f6b04aa23cd2778675604e5a74a4ce4d8d17b854d05fbcb782d52c", + "size": "2252682" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-linux-arm64-0.12.0-esp32-20240726.tar.gz", - "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20240726.tar.gz", - "checksum": "SHA-256:05589effadc93440ecca4a8ecc64e78dc94185a4ab72bc54634751dd7b6060d0", - "size": "2239793" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-arm64-0.12.0-esp32-20240318.tar.gz", + "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20240318.tar.gz", + "checksum": "SHA-256:9b97a37aa2cab94424a778c25c0b4aa0f90d6ef9cda764a1d9289d061305f4b7", + "size": "2132904" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-linux-armel-0.12.0-esp32-20240726.tar.gz", - "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20240726.tar.gz", - "checksum": "SHA-256:25d241fd7467cc5aa8ec3256f2efca27d86bde7cf5577c32f742ad1cc598ad7d", - "size": "2388355" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-armel-0.12.0-esp32-20240318.tar.gz", + "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20240318.tar.gz", + "checksum": "SHA-256:b7e82776ec374983807d3389df09c632ad9bc8341f2075690b6b500319dfeaf4", + "size": "2271761" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-macos-0.12.0-esp32-20240726.tar.gz", - "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20240726.tar.gz", - "checksum": "SHA-256:c3fb8209dd046f83e9fe98b054649020991aea0ac95cf175a41967d446330148", - "size": "2478569" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-0.12.0-esp32-20240318.tar.gz", + "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20240318.tar.gz", + "checksum": "SHA-256:b16c3082c94df1079367c44d99f7a8605534cd48aabc18898e46e94a2c8c57e7", + "size": "2365588" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-macos-arm64-0.12.0-esp32-20240726.tar.gz", - "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20240726.tar.gz", - "checksum": "SHA-256:45b317f233ae7bf3059a93db925d8794affd393b170ef496da08fa3f2b360ac7", - "size": "2522358" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-arm64-0.12.0-esp32-20240318.tar.gz", + "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20240318.tar.gz", + "checksum": "SHA-256:534ec925ae6e35e869e4e4e6e4d2c4a1eb081f97ebcc2dd5efdc52d12f4c2f86", + "size": "2406377" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-win32-0.12.0-esp32-20240726.zip", - "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240726.zip", - "checksum": "SHA-256:9735c9ada83bab1ff2b306f06b96421572fa12d01a751e09e10f243222fd95c4", - "size": "2907592" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip", + "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240318.zip", + "checksum": "SHA-256:d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633", + "size": "2783915" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240726/openocd-esp32-win64-0.12.0-esp32-20240726.zip", - "archiveFileName": "openocd-esp32-win64-0.12.0-esp32-20240726.zip", - "checksum": "SHA-256:139d5ae128ea12023793e8bccdde7dd14383ad38c265cf66c9c6cc7c804e1333", - "size": "2907591" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip", + "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240318.zip", + "checksum": "SHA-256:d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633", + "size": "2783915" } ] }, diff --git a/platform.txt b/platform.txt index f3eb69f0862..57609e5dda3 100644 --- a/platform.txt +++ b/platform.txt @@ -3,9 +3,7 @@ version=3.0.4 tools.esp32-arduino-libs.path={runtime.platform.path}/tools/esp32-arduino-libs tools.esp32-arduino-libs.path.windows={runtime.platform.path}\tools\esp32-arduino-libs -tools.xtensa-esp32-elf-gcc.path={runtime.platform.path}/tools/xtensa-esp32-elf -tools.xtensa-esp32s2-elf-gcc.path={runtime.platform.path}/tools/xtensa-esp32s2-elf -tools.xtensa-esp32s3-elf-gcc.path={runtime.platform.path}/tools/xtensa-esp32s3-elf +tools.xtensa-esp-elf-gcc.path={runtime.platform.path}/tools/xtensa-esp-elf tools.xtensa-esp-elf-gdb.path={runtime.platform.path}/tools/xtensa-esp-elf-gdb tools.riscv32-esp-elf-gcc.path={runtime.platform.path}/tools/riscv32-esp-elf tools.riscv32-esp-elf-gdb.path={runtime.platform.path}/tools/riscv32-esp-elf-gdb @@ -27,7 +25,7 @@ tools.gen_esp32part.cmd.windows="{runtime.platform.path}\tools\gen_esp32part.exe tools.gen_insights_pkg.cmd=python3 "{runtime.platform.path}"/tools/gen_insights_package.py tools.gen_insights_pkg.cmd.windows="{runtime.platform.path}\tools\gen_insights_package.exe" -compiler.path={tools.{build.tarch}-{build.target}-elf-gcc.path}/bin/ +compiler.path={tools.{build.tarch}-esp-elf-gcc.path}/bin/ compiler.prefix={build.tarch}-{build.target}-elf- compiler.sdk.path={tools.esp32-arduino-libs.path}/{build.mcu} diff --git a/tests/validation/uart/uart.ino b/tests/validation/uart/uart.ino index 527d28241d9..a68ef879659 100644 --- a/tests/validation/uart/uart.ino +++ b/tests/validation/uart/uart.ino @@ -46,7 +46,7 @@ * */ -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 // Used for the pin swap test #define NEW_RX1 9 #define NEW_TX1 10 @@ -64,14 +64,14 @@ extern int8_t uart_get_TxPin(uint8_t uart_num); // This function starts all the available test UARTs void start_serial(unsigned long baudrate = 115200) { -#if SOC_UART_NUM >= 2 +#if SOC_UART_HP_NUM >= 2 Serial1.begin(baudrate); while (!Serial1) { delay(10); } #endif -#if SOC_UART_NUM >= 3 +#if SOC_UART_HP_NUM >= 3 Serial2.begin(baudrate); while (!Serial2) { delay(10); @@ -81,11 +81,11 @@ void start_serial(unsigned long baudrate = 115200) { // This function stops all the available test UARTs void stop_serial(bool hard_stop = false) { -#if SOC_UART_NUM >= 2 +#if SOC_UART_HP_NUM >= 2 Serial1.end(/*hard_stop*/); #endif -#if SOC_UART_NUM >= 3 +#if SOC_UART_HP_NUM >= 3 Serial2.end(/*hard_stop*/); #endif } @@ -93,14 +93,14 @@ void stop_serial(bool hard_stop = false) { // This function transmits a message and checks if it was received correctly void transmit_and_check_msg(const String msg_append, bool perform_assert = true) { delay(100); // Wait for some settings changes to take effect -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 Serial1.print("Hello from Serial1 (UART1) >>> via loopback >>> Serial1 (UART1) " + msg_append); Serial1.flush(); delay(100); if (perform_assert) { TEST_ASSERT_EQUAL_STRING(("Hello from Serial1 (UART1) >>> via loopback >>> Serial1 (UART1) " + msg_append).c_str(), recv_msg.c_str()); } -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 Serial1.print("Hello from Serial1 (UART1) >>> to >>> Serial2 (UART2) " + msg_append); Serial1.flush(); delay(100); @@ -126,9 +126,9 @@ void transmit_and_check_msg(const String msg_append, bool perform_assert = true) void task_delayed_msg(void *pvParameters) { HardwareSerial *selected_serial; -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 selected_serial = &Serial; -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 selected_serial = &Serial1; #endif @@ -143,14 +143,14 @@ void task_delayed_msg(void *pvParameters) { // This function is automatically called by unity before each test is run void setUp(void) { start_serial(115200); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 log_d("Setup internal loop-back from and back to Serial1 (UART1) TX >> Serial1 (UART1) RX"); Serial1.onReceive([]() { onReceive_cb(Serial1); }); uart_internal_loopback(1, RX1); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); Serial1.onReceive([]() { @@ -180,11 +180,11 @@ void onReceive_cb(HardwareSerial &selected_serial) { if (&selected_serial == &Serial) { uart_num = 0; -#if SOC_UART_NUM >= 2 +#if SOC_UART_HP_NUM >= 2 } else if (&selected_serial == &Serial1) { uart_num = 1; #endif -#if SOC_UART_NUM >= 3 +#if SOC_UART_HP_NUM >= 3 } else if (&selected_serial == &Serial2) { uart_num = 2; #endif @@ -225,7 +225,7 @@ void change_baudrate_test(void) { Serial1.updateBaudRate(9600); TEST_ASSERT_UINT_WITHIN(192, 9600, Serial1.baudRate()); -#if SOC_UART_NUM == 3 +#if SOC_UART_HP_NUM == 3 Serial2.updateBaudRate(9600); TEST_ASSERT_UINT_WITHIN(192, 9600, Serial2.baudRate()); #endif @@ -239,7 +239,7 @@ void change_baudrate_test(void) { //Baudrate error should be within 2% of the target baudrate TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial1.baudRate()); -#if SOC_UART_NUM == 3 +#if SOC_UART_HP_NUM == 3 TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial2.baudRate()); #endif @@ -419,20 +419,20 @@ void change_pins_test(void) { log_d("Disabling UART loopback"); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 esp_rom_gpio_connect_out_signal(SOC_RX0, SIG_GPIO_OUT_IDX, false, false); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 esp_rom_gpio_connect_out_signal(RX1, SIG_GPIO_OUT_IDX, false, false); esp_rom_gpio_connect_out_signal(RX2, SIG_GPIO_OUT_IDX, false, false); #endif log_d("Swapping UART pins"); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 Serial1.setPins(NEW_RX1, NEW_TX1); TEST_ASSERT_EQUAL(NEW_RX1, uart_get_RxPin(1)); TEST_ASSERT_EQUAL(NEW_TX1, uart_get_TxPin(1)); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 Serial1.setPins(RX2, TX2); Serial2.setPins(RX1, TX1); TEST_ASSERT_EQUAL(RX2, uart_get_RxPin(1)); @@ -445,9 +445,9 @@ void change_pins_test(void) { log_d("Re-enabling UART loopback"); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 uart_internal_loopback(1, NEW_RX1); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 uart_internal_loopback(1, RX1); uart_internal_loopback(2, RX2); #endif @@ -467,10 +467,10 @@ void auto_baudrate_test(void) { log_d("Stopping test serial. Using Serial2 for ESP32 and Serial1 for ESP32-S2."); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 selected_serial = &Serial1; uart_internal_loopback(0, RX1); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 selected_serial = &Serial2; #endif @@ -485,7 +485,7 @@ void auto_baudrate_test(void) { selected_serial->begin(0); baudrate = selected_serial->baudRate(); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 Serial.end(); Serial.begin(115200); #endif @@ -504,7 +504,7 @@ void periman_test(void) { Wire.begin(RX1, TX1); -#if SOC_UART_NUM == 3 +#if SOC_UART_HP_NUM == 3 Wire1.begin(RX2, TX2); #endif @@ -518,11 +518,11 @@ void periman_test(void) { Serial1.setPins(RX1, TX1); -#if SOC_UART_NUM == 3 +#if SOC_UART_HP_NUM == 3 Serial2.setPins(RX2, TX2); uart_internal_loopback(1, RX2); uart_internal_loopback(2, RX1); -#elif SOC_UART_NUM == 2 +#elif SOC_UART_HP_NUM == 2 uart_internal_loopback(1, RX1); #endif @@ -565,19 +565,19 @@ void setup() { while (!Serial) { delay(10); } - log_d("SOC_UART_NUM = %d", SOC_UART_NUM); + log_d("SOC_UART_HP_NUM = %d", SOC_UART_HP_NUM); // Begin needs to be called before setting up the loopback because it creates the serial object start_serial(115200); -#if SOC_UART_NUM == 2 +#if SOC_UART_HP_NUM == 2 log_d("Setup internal loop-back from and back to Serial1 (UART1) TX >> Serial1 (UART1) RX"); Serial1.onReceive([]() { onReceive_cb(Serial1); }); uart_internal_loopback(1, RX1); -#elif SOC_UART_NUM == 3 +#elif SOC_UART_HP_NUM == 3 log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); Serial1.onReceive([]() { From f77ce040db4504c91f918874bab5af52dfdb58a6 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 20 Aug 2024 00:51:23 +0300 Subject: [PATCH 002/179] fix(build): Fix many warnings --- cores/esp32/esp32-hal-cpu.c | 8 ++-- cores/esp32/esp32-hal-misc.c | 10 ++--- .../BluetoothSerial/src/BluetoothSerial.cpp | 2 +- libraries/ESP_I2S/src/ESP_I2S.cpp | 2 +- libraries/Ethernet/src/ETH.cpp | 4 +- libraries/SD_MMC/src/SD_MMC.cpp | 3 +- libraries/WiFi/src/WiFiGeneric.cpp | 43 ++++++++++--------- 7 files changed, 37 insertions(+), 35 deletions(-) diff --git a/cores/esp32/esp32-hal-cpu.c b/cores/esp32/esp32-hal-cpu.c index 7027c7cad9d..2420dfbeeb0 100644 --- a/cores/esp32/esp32-hal-cpu.c +++ b/cores/esp32/esp32-hal-cpu.c @@ -21,7 +21,7 @@ #include "soc/rtc.h" #if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) #include "soc/rtc_cntl_reg.h" -#include "soc/apb_ctrl_reg.h" +#include "soc/syscon_reg.h" #endif #include "soc/efuse_reg.h" #include "esp32-hal.h" @@ -30,13 +30,13 @@ #include "esp_system.h" #ifdef ESP_IDF_VERSION_MAJOR // IDF 4+ #if CONFIG_IDF_TARGET_ESP32 // ESP32/PICO-D4 -#include "freertos/xtensa_timer.h" +#include "xtensa_timer.h" #include "esp32/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32S2 -#include "freertos/xtensa_timer.h" +#include "xtensa_timer.h" #include "esp32s2/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32S3 -#include "freertos/xtensa_timer.h" +#include "xtensa_timer.h" #include "esp32s3/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32C2 #include "esp32c2/rom/rtc.h" diff --git a/cores/esp32/esp32-hal-misc.c b/cores/esp32/esp32-hal-misc.c index 82363b97bd0..7dfca6134b2 100644 --- a/cores/esp32/esp32-hal-misc.c +++ b/cores/esp32/esp32-hal-misc.c @@ -31,7 +31,7 @@ #include "soc/rtc.h" #if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) #include "soc/rtc_cntl_reg.h" -#include "soc/apb_ctrl_reg.h" +#include "soc/syscon_reg.h" #endif #include "esp_task_wdt.h" #include "esp32-hal.h" @@ -147,14 +147,14 @@ void feedLoopWDT() { #endif void enableCore0WDT() { - TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCPU(0); + TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCore(0); if (idle_0 == NULL || esp_task_wdt_add(idle_0) != ESP_OK) { log_e("Failed to add Core 0 IDLE task to WDT"); } } void disableCore0WDT() { - TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCPU(0); + TaskHandle_t idle_0 = xTaskGetIdleTaskHandleForCore(0); if (idle_0 == NULL || esp_task_wdt_delete(idle_0) != ESP_OK) { log_e("Failed to remove Core 0 IDLE task from WDT"); } @@ -162,14 +162,14 @@ void disableCore0WDT() { #ifndef CONFIG_FREERTOS_UNICORE void enableCore1WDT() { - TaskHandle_t idle_1 = xTaskGetIdleTaskHandleForCPU(1); + TaskHandle_t idle_1 = xTaskGetIdleTaskHandleForCore(1); if (idle_1 == NULL || esp_task_wdt_add(idle_1) != ESP_OK) { log_e("Failed to add Core 1 IDLE task to WDT"); } } void disableCore1WDT() { - TaskHandle_t idle_1 = xTaskGetIdleTaskHandleForCPU(1); + TaskHandle_t idle_1 = xTaskGetIdleTaskHandleForCore(1); if (idle_1 == NULL || esp_task_wdt_delete(idle_1) != ESP_OK) { log_e("Failed to remove Core 1 IDLE task from WDT"); } diff --git a/libraries/BluetoothSerial/src/BluetoothSerial.cpp b/libraries/BluetoothSerial/src/BluetoothSerial.cpp index 12c09d68305..3d00504c1b1 100644 --- a/libraries/BluetoothSerial/src/BluetoothSerial.cpp +++ b/libraries/BluetoothSerial/src/BluetoothSerial.cpp @@ -698,7 +698,7 @@ static bool _init_bt(const char *deviceName, bt_mode mode) { } log_i("device name set"); - esp_bt_dev_set_device_name(deviceName); + esp_bt_gap_set_device_name(deviceName); if (_enableSSP) { log_i("Simple Secure Pairing"); diff --git a/libraries/ESP_I2S/src/ESP_I2S.cpp b/libraries/ESP_I2S/src/ESP_I2S.cpp index 50f76b41a3f..8b136ba5c47 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.cpp +++ b/libraries/ESP_I2S/src/ESP_I2S.cpp @@ -12,7 +12,7 @@ #define I2S_READ_CHUNK_SIZE 1920 #define I2S_DEFAULT_CFG() \ - { .id = I2S_NUM_AUTO, .role = I2S_ROLE_MASTER, .dma_desc_num = 6, .dma_frame_num = 240, .auto_clear = true, } + { .id = I2S_NUM_AUTO, .role = I2S_ROLE_MASTER, .dma_desc_num = 6, .dma_frame_num = 240, .auto_clear = true, .auto_clear_before_cb = false, .intr_priority = 0 } #define I2S_STD_CHAN_CFG(_sample_rate, _data_bit_width, _slot_mode) \ { \ diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 48e8460fe2d..bc5a94484da 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -181,8 +181,8 @@ bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, i : (2 == clock_mode) ? EMAC_CLK_OUT_GPIO : (3 == clock_mode) ? EMAC_CLK_OUT_180_GPIO : EMAC_CLK_IN_GPIO; - mac_config.smi_mdc_gpio_num = digitalPinToGPIONumber(mdc); - mac_config.smi_mdio_gpio_num = digitalPinToGPIONumber(mdio); + mac_config.smi_gpio.mdc_num = digitalPinToGPIONumber(mdc); + mac_config.smi_gpio.mdio_num = digitalPinToGPIONumber(mdio); _pin_mcd = digitalPinToGPIONumber(mdc); _pin_mdio = digitalPinToGPIONumber(mdio); diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 13e5fcf27fc..024f8b4e3d7 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -175,7 +175,8 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ _mode1bit = mode1bit; esp_vfs_fat_sdmmc_mount_config_t mount_config = { - .format_if_mount_failed = format_if_mount_failed, .max_files = maxOpenFiles, .allocation_unit_size = 0, .disk_status_check_enable = false + .format_if_mount_failed = format_if_mount_failed, .max_files = maxOpenFiles, .allocation_unit_size = 0, .disk_status_check_enable = false, + .use_one_fat = false }; esp_err_t ret = esp_vfs_fat_sdmmc_mount(mountpoint, &host, &slot_config, &mount_config, &_card); diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index 6ddf384d009..ccc9518132b 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -39,6 +39,7 @@ extern "C" { #include #include #include +#include #include "lwip/ip_addr.h" #include "lwip/opt.h" #include "lwip/err.h" @@ -693,9 +694,9 @@ bool WiFiGenericClass::initiateFTM(uint8_t frm_count, uint16_t burst_period, uin */ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2, wifi_rx_ant_t rx_mode, wifi_tx_ant_t tx_mode) { - wifi_ant_gpio_config_t wifi_ant_io; + esp_phy_ant_gpio_config_t wifi_ant_io; - if (ESP_OK != esp_wifi_get_ant_gpio(&wifi_ant_io)) { + if (ESP_OK != esp_phy_get_ant_gpio(&wifi_ant_io)) { log_e("Failed to get antenna configuration"); return false; } @@ -705,56 +706,56 @@ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2 wifi_ant_io.gpio_cfg[1].gpio_num = gpio_ant2; wifi_ant_io.gpio_cfg[1].gpio_select = 1; - if (ESP_OK != esp_wifi_set_ant_gpio(&wifi_ant_io)) { + if (ESP_OK != esp_phy_set_ant_gpio(&wifi_ant_io)) { log_e("Failed to set antenna GPIO configuration"); return false; } // Set antenna default configuration - wifi_ant_config_t ant_config = { - .rx_ant_mode = WIFI_ANT_MODE_AUTO, - .rx_ant_default = WIFI_ANT_MAX, // Ignored in AUTO mode - .tx_ant_mode = WIFI_ANT_MODE_AUTO, + esp_phy_ant_config_t ant_config = { + .rx_ant_mode = ESP_PHY_ANT_MODE_AUTO, + .rx_ant_default = ESP_PHY_ANT_MAX, // Ignored in AUTO mode + .tx_ant_mode = ESP_PHY_ANT_MODE_AUTO, .enabled_ant0 = 1, .enabled_ant1 = 2, }; switch (rx_mode) { - case WIFI_RX_ANT0: ant_config.rx_ant_mode = WIFI_ANT_MODE_ANT0; break; - case WIFI_RX_ANT1: ant_config.rx_ant_mode = WIFI_ANT_MODE_ANT1; break; + case WIFI_RX_ANT0: ant_config.rx_ant_mode = ESP_PHY_ANT_MODE_ANT0; break; + case WIFI_RX_ANT1: ant_config.rx_ant_mode = ESP_PHY_ANT_MODE_ANT1; break; case WIFI_RX_ANT_AUTO: log_i("TX Antenna will be automatically selected"); - ant_config.rx_ant_default = WIFI_ANT_ANT0; - ant_config.rx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.rx_ant_default = ESP_PHY_ANT_ANT0; + ant_config.rx_ant_mode = ESP_PHY_ANT_MODE_AUTO; // Force TX for AUTO if RX is AUTO - ant_config.tx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.tx_ant_mode = ESP_PHY_ANT_MODE_AUTO; goto set_ant; break; default: log_e("Invalid default antenna! Falling back to AUTO"); - ant_config.rx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.rx_ant_mode = ESP_PHY_ANT_MODE_AUTO; break; } switch (tx_mode) { - case WIFI_TX_ANT0: ant_config.tx_ant_mode = WIFI_ANT_MODE_ANT0; break; - case WIFI_TX_ANT1: ant_config.tx_ant_mode = WIFI_ANT_MODE_ANT1; break; + case WIFI_TX_ANT0: ant_config.tx_ant_mode = ESP_PHY_ANT_MODE_ANT0; break; + case WIFI_TX_ANT1: ant_config.tx_ant_mode = ESP_PHY_ANT_MODE_ANT1; break; case WIFI_TX_ANT_AUTO: log_i("RX Antenna will be automatically selected"); - ant_config.rx_ant_default = WIFI_ANT_ANT0; - ant_config.tx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.rx_ant_default = ESP_PHY_ANT_ANT0; + ant_config.tx_ant_mode = ESP_PHY_ANT_MODE_AUTO; // Force RX for AUTO if RX is AUTO - ant_config.rx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.rx_ant_mode = ESP_PHY_ANT_MODE_AUTO; break; default: log_e("Invalid default antenna! Falling back to AUTO"); - ant_config.rx_ant_default = WIFI_ANT_ANT0; - ant_config.tx_ant_mode = WIFI_ANT_MODE_AUTO; + ant_config.rx_ant_default = ESP_PHY_ANT_ANT0; + ant_config.tx_ant_mode = ESP_PHY_ANT_MODE_AUTO; break; } set_ant: - if (ESP_OK != esp_wifi_set_ant(&ant_config)) { + if (ESP_OK != esp_phy_set_ant(&ant_config)) { log_e("Failed to set antenna configuration"); return false; } From 54f1c22672950c5b64af475b5ac4bc1ec9b5ad73 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 20 Aug 2024 01:16:59 +0300 Subject: [PATCH 003/179] fix(build): Fix warning in FFat --- libraries/FFat/src/FFat.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libraries/FFat/src/FFat.cpp b/libraries/FFat/src/FFat.cpp index 1227e172602..41d941b4726 100644 --- a/libraries/FFat/src/FFat.cpp +++ b/libraries/FFat/src/FFat.cpp @@ -46,7 +46,8 @@ bool F_Fat::begin(bool formatOnFail, const char *basePath, uint8_t maxOpenFiles, } esp_vfs_fat_mount_config_t conf = { - .format_if_mount_failed = formatOnFail, .max_files = maxOpenFiles, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false + .format_if_mount_failed = formatOnFail, .max_files = maxOpenFiles, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false, + .use_one_fat = false }; esp_err_t err = esp_vfs_fat_spiflash_mount_rw_wl(basePath, partitionLabel, &conf, &_wl_handle); if (err) { @@ -98,7 +99,8 @@ bool F_Fat::format(bool full_wipe, char *partitionLabel) { } // Now do a mount with format_if_fail (which it will) esp_vfs_fat_mount_config_t conf = { - .format_if_mount_failed = true, .max_files = 1, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false + .format_if_mount_failed = true, .max_files = 1, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false, + .use_one_fat = false }; result = esp_vfs_fat_spiflash_mount_rw_wl("/format_ffat", partitionLabel, &conf, &temp_handle); esp_vfs_fat_spiflash_unmount_rw_wl("/format_ffat", temp_handle); From c7e01e72a197f8a4982fb0a06838a51d6f72acb0 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 20 Aug 2024 13:02:29 +0300 Subject: [PATCH 004/179] add(build): Add initial ESP32-P4 skeleton Required to start compilation. Board is currently hidden and many options are removed --- boards.txt | 84 +++++++++++++++++++++++++++++++++ idf_component.yml | 1 + variants/esp32p4/pins_arduino.h | 30 ++++++++++++ 3 files changed, 115 insertions(+) create mode 100644 variants/esp32p4/pins_arduino.h diff --git a/boards.txt b/boards.txt index 7ea34347dfe..8b3d48df2fb 100644 --- a/boards.txt +++ b/boards.txt @@ -162,6 +162,90 @@ esp32c2.menu.EraseFlash.all.upload.erase_cmd=-e ############################################################## +esp32p4.name=ESP32P4 Dev Module +esp32p4.hide=true + +esp32p4.bootloader.tool=esptool_py +esp32p4.bootloader.tool.default=esptool_py + +esp32p4.upload.tool=esptool_py +esp32p4.upload.tool.default=esptool_py +esp32p4.upload.tool.network=esp_ota + +esp32p4.upload.maximum_size=1310720 +esp32p4.upload.maximum_data_size=327680 +esp32p4.upload.flags= +esp32p4.upload.extra_flags= +esp32p4.upload.use_1200bps_touch=false +esp32p4.upload.wait_for_upload_port=false + +esp32p4.serial.disableDTR=false +esp32p4.serial.disableRTS=false + +esp32p4.build.tarch=riscv32 +esp32p4.build.target=esp +esp32p4.build.mcu=esp32p4 +esp32p4.build.core=esp32 +esp32p4.build.variant=esp32p4 +esp32p4.build.board=ESP32P4_DEV +esp32p4.build.bootloader_addr=0x0 + +esp32p4.build.cdc_on_boot=0 +esp32p4.build.f_cpu=400000000L +esp32p4.build.flash_size=4MB +esp32p4.build.flash_freq=80m +esp32p4.build.img_freq=80m +esp32p4.build.flash_mode=qio +esp32p4.build.boot=qio +esp32p4.build.partitions=default +esp32p4.build.defines= + +## IDE 2.0 Seems to not update the value +esp32p4.menu.JTAGAdapter.default=Disabled +esp32p4.menu.JTAGAdapter.default.build.copy_jtag_files=0 + +esp32p4.menu.CDCOnBoot.default=Disabled +esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 +esp32p4.menu.CDCOnBoot.cdc=Enabled +esp32p4.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 + +esp32p4.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) +esp32p4.menu.PartitionScheme.default.build.partitions=default +esp32p4.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2) +esp32p4.menu.PartitionScheme.no_fs.build.partitions=no_fs +esp32p4.menu.PartitionScheme.no_fs.upload.maximum_size=2031616 +esp32p4.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS) +esp32p4.menu.PartitionScheme.huge_app.build.partitions=huge_app +esp32p4.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 +esp32p4.menu.PartitionScheme.custom=Custom +esp32p4.menu.PartitionScheme.custom.build.partitions= +esp32p4.menu.PartitionScheme.custom.upload.maximum_size=16777216 + +esp32p4.menu.UploadSpeed.921600=921600 +esp32p4.menu.UploadSpeed.921600.upload.speed=921600 +esp32p4.menu.UploadSpeed.115200=115200 +esp32p4.menu.UploadSpeed.115200.upload.speed=115200 + +esp32p4.menu.DebugLevel.none=None +esp32p4.menu.DebugLevel.none.build.code_debug=0 +esp32p4.menu.DebugLevel.error=Error +esp32p4.menu.DebugLevel.error.build.code_debug=1 +esp32p4.menu.DebugLevel.warn=Warn +esp32p4.menu.DebugLevel.warn.build.code_debug=2 +esp32p4.menu.DebugLevel.info=Info +esp32p4.menu.DebugLevel.info.build.code_debug=3 +esp32p4.menu.DebugLevel.debug=Debug +esp32p4.menu.DebugLevel.debug.build.code_debug=4 +esp32p4.menu.DebugLevel.verbose=Verbose +esp32p4.menu.DebugLevel.verbose.build.code_debug=5 + +esp32p4.menu.EraseFlash.none=Disabled +esp32p4.menu.EraseFlash.none.upload.erase_cmd= +esp32p4.menu.EraseFlash.all=Enabled +esp32p4.menu.EraseFlash.all.upload.erase_cmd=-e + +############################################################## + esp32h2.name=ESP32H2 Dev Module esp32h2.bootloader.tool=esptool_py diff --git a/idf_component.yml b/idf_component.yml index e6831d71b44..55f35376b1b 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -9,6 +9,7 @@ targets: - esp32c3 - esp32c6 - esp32h2 + - esp32p4 tags: - arduino files: diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h new file mode 100644 index 00000000000..87d0548cf3c --- /dev/null +++ b/variants/esp32p4/pins_arduino.h @@ -0,0 +1,30 @@ +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include +#include "soc/soc_caps.h" + +#define PIN_NEOPIXEL 44 +// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino +static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_NEOPIXEL; +#define BUILTIN_LED LED_BUILTIN // backward compatibility +#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN +// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API rgbLedWrite() +#define RGB_BUILTIN LED_BUILTIN +#define RGB_BRIGHTNESS 64 + +// BOOT_MODE 35 +// BOOT_MODE2 36 pullup + +static const uint8_t TX = 37; +static const uint8_t RX = 38; + +static const uint8_t SDA = 7; +static const uint8_t SCL = 8; + +static const uint8_t SS = 10; +static const uint8_t MOSI = 11; +static const uint8_t MISO = 12; +static const uint8_t SCK = 13; + +#endif /* Pins_Arduino_h */ From 4c4906f4703821d100bf353ec425057c7569f78b Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Wed, 28 Aug 2024 04:50:49 -0300 Subject: [PATCH 005/179] fix(uart): sleep retention (#10248) * fix(uart): sleep retention sets new flag from IDF 5.3 that causes error with Serial.begin(115200). * fix(typo): typo and commentaries * feat(uart): adds memset to make structure empty * fix(uart): missing parentesis - typo * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/esp32-hal-uart.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index e4432f5110f..c2065e806c4 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -497,6 +497,8 @@ uart_t *uartBegin( log_v("UART%d not installed. Starting installation", uart_nr); } uart_config_t uart_config; + memset(&uart_config, 0, sizeof(uart_config_t)); + uart_config.flags.backup_before_sleep = false; // new flag from IDF v5.3 uart_config.data_bits = (config & 0xc) >> 2; uart_config.parity = (config & 0x3); uart_config.stop_bits = (config & 0x30) >> 4; From 0b842442c96e963c2f35b8b65e8879b7af16d1e3 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 28 Aug 2024 16:11:35 +0300 Subject: [PATCH 006/179] Update core version to 3.1.0 --- cores/esp32/esp_arduino_version.h | 4 ++-- libraries/ArduinoOTA/library.properties | 2 +- libraries/AsyncUDP/library.properties | 2 +- libraries/BLE/library.properties | 2 +- libraries/BluetoothSerial/library.properties | 2 +- libraries/DNSServer/library.properties | 2 +- libraries/EEPROM/library.properties | 2 +- libraries/ESP32/library.properties | 2 +- libraries/ESP_I2S/library.properties | 2 +- libraries/ESP_NOW/library.properties | 2 +- libraries/ESP_SR/library.properties | 2 +- libraries/ESPmDNS/library.properties | 2 +- libraries/Ethernet/library.properties | 2 +- libraries/FFat/library.properties | 2 +- libraries/FS/library.properties | 2 +- libraries/HTTPClient/library.properties | 2 +- libraries/HTTPUpdate/library.properties | 2 +- libraries/HTTPUpdateServer/library.properties | 2 +- libraries/Insights/library.properties | 2 +- libraries/LittleFS/library.properties | 2 +- libraries/NetBIOS/library.properties | 2 +- libraries/Network/library.properties | 2 +- libraries/NetworkClientSecure/library.properties | 2 +- libraries/OpenThread/library.properties | 2 +- libraries/PPP/library.properties | 2 +- libraries/Preferences/library.properties | 2 +- libraries/RainMaker/library.properties | 2 +- libraries/SD/library.properties | 2 +- libraries/SD_MMC/library.properties | 2 +- libraries/SPI/library.properties | 2 +- libraries/SPIFFS/library.properties | 2 +- libraries/SimpleBLE/library.properties | 2 +- libraries/TFLiteMicro/library.properties | 2 +- libraries/Ticker/library.properties | 2 +- libraries/USB/library.properties | 2 +- libraries/Update/library.properties | 2 +- libraries/WebServer/library.properties | 2 +- libraries/WiFi/library.properties | 2 +- libraries/WiFiProv/library.properties | 2 +- libraries/Wire/library.properties | 2 +- package.json | 2 +- platform.txt | 2 +- 42 files changed, 43 insertions(+), 43 deletions(-) diff --git a/cores/esp32/esp_arduino_version.h b/cores/esp32/esp_arduino_version.h index adc8415dbd9..c2921b95fb8 100644 --- a/cores/esp32/esp_arduino_version.h +++ b/cores/esp32/esp_arduino_version.h @@ -21,9 +21,9 @@ extern "C" { /** Major version number (X.x.x) */ #define ESP_ARDUINO_VERSION_MAJOR 3 /** Minor version number (x.X.x) */ -#define ESP_ARDUINO_VERSION_MINOR 0 +#define ESP_ARDUINO_VERSION_MINOR 1 /** Patch version number (x.x.X) */ -#define ESP_ARDUINO_VERSION_PATCH 4 +#define ESP_ARDUINO_VERSION_PATCH 0 /** * Macro to convert ARDUINO version number into an integer diff --git a/libraries/ArduinoOTA/library.properties b/libraries/ArduinoOTA/library.properties index a8336230f79..54ad6eafb21 100644 --- a/libraries/ArduinoOTA/library.properties +++ b/libraries/ArduinoOTA/library.properties @@ -1,5 +1,5 @@ name=ArduinoOTA -version=3.0.4 +version=3.1.0 author=Ivan Grokhotkov and Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables Over The Air upgrades, via wifi and espota.py UDP request/TCP download. diff --git a/libraries/AsyncUDP/library.properties b/libraries/AsyncUDP/library.properties index 92332f78599..24457a39b90 100644 --- a/libraries/AsyncUDP/library.properties +++ b/libraries/AsyncUDP/library.properties @@ -1,5 +1,5 @@ name=ESP32 Async UDP -version=3.0.4 +version=3.1.0 author=Me-No-Dev maintainer=Me-No-Dev sentence=Async UDP Library for ESP32 diff --git a/libraries/BLE/library.properties b/libraries/BLE/library.properties index 82395a1f6d5..32ad36b5f44 100644 --- a/libraries/BLE/library.properties +++ b/libraries/BLE/library.properties @@ -1,5 +1,5 @@ name=BLE -version=3.0.4 +version=3.1.0 author=Neil Kolban maintainer=Dariusz Krempa sentence=BLE functions for ESP32 diff --git a/libraries/BluetoothSerial/library.properties b/libraries/BluetoothSerial/library.properties index a91e8455e05..6db3a01bb19 100644 --- a/libraries/BluetoothSerial/library.properties +++ b/libraries/BluetoothSerial/library.properties @@ -1,5 +1,5 @@ name=BluetoothSerial -version=3.0.4 +version=3.1.0 author=Evandro Copercini maintainer=Evandro Copercini sentence=Simple UART to Classical Bluetooth bridge for ESP32 diff --git a/libraries/DNSServer/library.properties b/libraries/DNSServer/library.properties index bb4ed950fad..077d9237f21 100644 --- a/libraries/DNSServer/library.properties +++ b/libraries/DNSServer/library.properties @@ -1,5 +1,5 @@ name=DNSServer -version=3.0.4 +version=3.1.0 author=Kristijan Novoselić maintainer=Kristijan Novoselić, sentence=A simple DNS server for ESP32. diff --git a/libraries/EEPROM/library.properties b/libraries/EEPROM/library.properties index 6297bedcb22..bf75d618898 100644 --- a/libraries/EEPROM/library.properties +++ b/libraries/EEPROM/library.properties @@ -1,5 +1,5 @@ name=EEPROM -version=3.0.4 +version=3.1.0 author=Ivan Grokhotkov maintainer=Paolo Becchi sentence=Enables reading and writing data a sequential, addressable FLASH storage diff --git a/libraries/ESP32/library.properties b/libraries/ESP32/library.properties index c0897f23eee..1bb1ed21750 100644 --- a/libraries/ESP32/library.properties +++ b/libraries/ESP32/library.properties @@ -1,5 +1,5 @@ name=ESP32 -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 sketches examples diff --git a/libraries/ESP_I2S/library.properties b/libraries/ESP_I2S/library.properties index ad0e4fbdc59..807f7daeb9d 100644 --- a/libraries/ESP_I2S/library.properties +++ b/libraries/ESP_I2S/library.properties @@ -1,5 +1,5 @@ name=ESP_I2S -version=3.0.4 +version=3.1.0 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP I2S communication diff --git a/libraries/ESP_NOW/library.properties b/libraries/ESP_NOW/library.properties index 1d1dc8926a1..42876f47f95 100644 --- a/libraries/ESP_NOW/library.properties +++ b/libraries/ESP_NOW/library.properties @@ -1,5 +1,5 @@ name=ESP_NOW -version=3.0.4 +version=3.1.0 author=me-no-dev maintainer=P-R-O-C-H-Y sentence=Library for ESP_NOW diff --git a/libraries/ESP_SR/library.properties b/libraries/ESP_SR/library.properties index bf3ab3a14ba..a81cff2fe9d 100644 --- a/libraries/ESP_SR/library.properties +++ b/libraries/ESP_SR/library.properties @@ -1,5 +1,5 @@ name=ESP_SR -version=3.0.4 +version=3.1.0 author=me-no-dev maintainer=me-no-dev sentence=Library for ESP Sound Recognition diff --git a/libraries/ESPmDNS/library.properties b/libraries/ESPmDNS/library.properties index 64ff66c3a1e..4f65114fd0b 100644 --- a/libraries/ESPmDNS/library.properties +++ b/libraries/ESPmDNS/library.properties @@ -1,5 +1,5 @@ name=ESPmDNS -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 mDNS Library diff --git a/libraries/Ethernet/library.properties b/libraries/Ethernet/library.properties index 1fc7df2192d..70aa24ec4aa 100644 --- a/libraries/Ethernet/library.properties +++ b/libraries/Ethernet/library.properties @@ -1,5 +1,5 @@ name=Ethernet -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 Ethernet. diff --git a/libraries/FFat/library.properties b/libraries/FFat/library.properties index 87dda7b1299..dae11e43aaf 100644 --- a/libraries/FFat/library.properties +++ b/libraries/FFat/library.properties @@ -1,5 +1,5 @@ name=FFat -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov, Larry Bernstone maintainer=Hristo Gochkov sentence=ESP32 FAT on Flash File System diff --git a/libraries/FS/library.properties b/libraries/FS/library.properties index 676faf43e99..009383ab0c8 100644 --- a/libraries/FS/library.properties +++ b/libraries/FS/library.properties @@ -1,5 +1,5 @@ name=FS -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 File System diff --git a/libraries/HTTPClient/library.properties b/libraries/HTTPClient/library.properties index 40da6a0cde9..203b8929d30 100644 --- a/libraries/HTTPClient/library.properties +++ b/libraries/HTTPClient/library.properties @@ -1,5 +1,5 @@ name=HTTPClient -version=3.0.4 +version=3.1.0 author=Markus Sattler maintainer=Markus Sattler sentence=HTTP Client for ESP32 diff --git a/libraries/HTTPUpdate/library.properties b/libraries/HTTPUpdate/library.properties index ab7e9b6f872..ac903dd71cf 100644 --- a/libraries/HTTPUpdate/library.properties +++ b/libraries/HTTPUpdate/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdate -version=3.0.4 +version=3.1.0 author=Markus Sattler maintainer=Markus Sattler sentence=Http Update for ESP32 diff --git a/libraries/HTTPUpdateServer/library.properties b/libraries/HTTPUpdateServer/library.properties index 249eb5ea173..b26bd2cad7b 100644 --- a/libraries/HTTPUpdateServer/library.properties +++ b/libraries/HTTPUpdateServer/library.properties @@ -1,5 +1,5 @@ name=HTTPUpdateServer -version=3.0.4 +version=3.1.0 author=Hristo Kapanakov maintainer= sentence=Simple HTTP Update server based on the WebServer diff --git a/libraries/Insights/library.properties b/libraries/Insights/library.properties index cabf05f2806..af213a1e70d 100644 --- a/libraries/Insights/library.properties +++ b/libraries/Insights/library.properties @@ -1,5 +1,5 @@ name=ESP Insights -version=3.0.4 +version=3.1.0 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=ESP Insights diff --git a/libraries/LittleFS/library.properties b/libraries/LittleFS/library.properties index f443b70bc2f..86c4c43eeca 100644 --- a/libraries/LittleFS/library.properties +++ b/libraries/LittleFS/library.properties @@ -1,5 +1,5 @@ name=LittleFS -version=3.0.4 +version=3.1.0 author= maintainer= sentence=LittleFS for esp32 diff --git a/libraries/NetBIOS/library.properties b/libraries/NetBIOS/library.properties index fdf9b63a0d2..42555781f75 100644 --- a/libraries/NetBIOS/library.properties +++ b/libraries/NetBIOS/library.properties @@ -1,5 +1,5 @@ name=NetBIOS -version=3.0.4 +version=3.1.0 author=Pablo@xpablo.cz maintainer=Hristo Gochkov sentence=Enables NBNS (NetBIOS) name resolution. diff --git a/libraries/Network/library.properties b/libraries/Network/library.properties index 49aadb7b874..8a1567e68a9 100644 --- a/libraries/Network/library.properties +++ b/libraries/Network/library.properties @@ -1,5 +1,5 @@ name=Networking -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=General network management library. diff --git a/libraries/NetworkClientSecure/library.properties b/libraries/NetworkClientSecure/library.properties index 2a0ca88ffbe..d810e852524 100644 --- a/libraries/NetworkClientSecure/library.properties +++ b/libraries/NetworkClientSecure/library.properties @@ -1,5 +1,5 @@ name=NetworkClientSecure -version=3.0.4 +version=3.1.0 author=Evandro Luis Copercini maintainer=Github Community sentence=Enables secure network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/OpenThread/library.properties b/libraries/OpenThread/library.properties index 6a16dabddd0..19d37749a92 100644 --- a/libraries/OpenThread/library.properties +++ b/libraries/OpenThread/library.properties @@ -1,5 +1,5 @@ name=OpenThread -version=3.0.4 +version=3.1.0 author=Rodrigo Garcia | GitHub @SuGlider maintainer=Rodrigo Garcia sentence=Library for OpenThread Network on ESP32. diff --git a/libraries/PPP/library.properties b/libraries/PPP/library.properties index 0403b576df2..e2b290cc893 100644 --- a/libraries/PPP/library.properties +++ b/libraries/PPP/library.properties @@ -1,5 +1,5 @@ name=PPP -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection using GSM Modem. diff --git a/libraries/Preferences/library.properties b/libraries/Preferences/library.properties index 8437425c04d..90cd20d75c3 100644 --- a/libraries/Preferences/library.properties +++ b/libraries/Preferences/library.properties @@ -1,5 +1,5 @@ name=Preferences -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides friendly access to ESP32's Non-Volatile Storage diff --git a/libraries/RainMaker/library.properties b/libraries/RainMaker/library.properties index e6bdd2f4579..0c3e6e26697 100644 --- a/libraries/RainMaker/library.properties +++ b/libraries/RainMaker/library.properties @@ -1,5 +1,5 @@ name=ESP RainMaker -version=3.0.4 +version=3.1.0 author=Sweety Mhaiske maintainer=Hristo Gochkov sentence=ESP RainMaker Support diff --git a/libraries/SD/library.properties b/libraries/SD/library.properties index 98d93943a7f..3fd1a3f8a3e 100644 --- a/libraries/SD/library.properties +++ b/libraries/SD/library.properties @@ -1,5 +1,5 @@ name=SD -version=3.0.4 +version=3.1.0 author=Arduino, SparkFun maintainer=Arduino sentence=Enables reading and writing on SD cards. For all Arduino boards. diff --git a/libraries/SD_MMC/library.properties b/libraries/SD_MMC/library.properties index 242fc62ecac..94586e8e1ec 100644 --- a/libraries/SD_MMC/library.properties +++ b/libraries/SD_MMC/library.properties @@ -1,5 +1,5 @@ name=SD_MMC -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SDMMC File System diff --git a/libraries/SPI/library.properties b/libraries/SPI/library.properties index 804f86e93c2..a7a7204db62 100644 --- a/libraries/SPI/library.properties +++ b/libraries/SPI/library.properties @@ -1,5 +1,5 @@ name=SPI -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables the communication with devices that use the Serial Peripheral Interface (SPI) Bus. For all Arduino boards, BUT Arduino DUE. diff --git a/libraries/SPIFFS/library.properties b/libraries/SPIFFS/library.properties index 9aaf1d9c575..132ff5fb7f1 100644 --- a/libraries/SPIFFS/library.properties +++ b/libraries/SPIFFS/library.properties @@ -1,5 +1,5 @@ name=SPIFFS -version=3.0.4 +version=3.1.0 author=Hristo Gochkov, Ivan Grokhtkov maintainer=Hristo Gochkov sentence=ESP32 SPIFFS File System diff --git a/libraries/SimpleBLE/library.properties b/libraries/SimpleBLE/library.properties index c49cd51b389..ae28a21c0df 100644 --- a/libraries/SimpleBLE/library.properties +++ b/libraries/SimpleBLE/library.properties @@ -1,5 +1,5 @@ name=SimpleBLE -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Provides really simple BLE advertizer with just on and off diff --git a/libraries/TFLiteMicro/library.properties b/libraries/TFLiteMicro/library.properties index 1a966476619..cde7d21bec1 100644 --- a/libraries/TFLiteMicro/library.properties +++ b/libraries/TFLiteMicro/library.properties @@ -1,5 +1,5 @@ name=TFLite Micro -version=3.0.4 +version=3.1.0 author=Sanket Wadekar maintainer=Sanket Wadekar sentence=TensorFlow Lite for Microcontrollers diff --git a/libraries/Ticker/library.properties b/libraries/Ticker/library.properties index 297e3221b1d..d6e9829c6ef 100644 --- a/libraries/Ticker/library.properties +++ b/libraries/Ticker/library.properties @@ -1,5 +1,5 @@ name=Ticker -version=3.0.4 +version=3.1.0 author=Bert Melis maintainer=Hristo Gochkov sentence=Allows to call functions with a given interval. diff --git a/libraries/USB/library.properties b/libraries/USB/library.properties index 209fca7ebc3..752acf3a803 100644 --- a/libraries/USB/library.properties +++ b/libraries/USB/library.properties @@ -1,5 +1,5 @@ name=USB -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32S2 USB Library diff --git a/libraries/Update/library.properties b/libraries/Update/library.properties index b70add08cad..9d480986b1e 100644 --- a/libraries/Update/library.properties +++ b/libraries/Update/library.properties @@ -1,5 +1,5 @@ name=Update -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=ESP32 Sketch Update Library diff --git a/libraries/WebServer/library.properties b/libraries/WebServer/library.properties index 10dc2ff1a4f..89e35e4713d 100644 --- a/libraries/WebServer/library.properties +++ b/libraries/WebServer/library.properties @@ -1,5 +1,5 @@ name=WebServer -version=3.0.4 +version=3.1.0 author=Ivan Grokhotkov maintainer=Ivan Grokhtkov sentence=Simple web server library diff --git a/libraries/WiFi/library.properties b/libraries/WiFi/library.properties index 5acbee86744..925616ea561 100644 --- a/libraries/WiFi/library.properties +++ b/libraries/WiFi/library.properties @@ -1,5 +1,5 @@ name=WiFi -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Enables network connection (local and Internet) using the ESP32 built-in WiFi. diff --git a/libraries/WiFiProv/library.properties b/libraries/WiFiProv/library.properties index 886697c9af9..20e27fc5097 100644 --- a/libraries/WiFiProv/library.properties +++ b/libraries/WiFiProv/library.properties @@ -1,5 +1,5 @@ name=WiFiProv -version=3.0.4 +version=3.1.0 author=Switi Mhaiske maintainer=Hristo Gochkov sentence=Enables provisioning. diff --git a/libraries/Wire/library.properties b/libraries/Wire/library.properties index 0c7fa749a7b..a2d79eee81b 100644 --- a/libraries/Wire/library.properties +++ b/libraries/Wire/library.properties @@ -1,5 +1,5 @@ name=Wire -version=3.0.4 +version=3.1.0 author=Hristo Gochkov maintainer=Hristo Gochkov sentence=Allows the communication between devices or sensors connected via Two Wire Interface Bus. For esp8266 boards. diff --git a/package.json b/package.json index 487bcc77a2c..2e53f41d4c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "framework-arduinoespressif32", - "version": "3.0.4", + "version": "3.1.0", "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-S and ESP32-C series of SoCs", "keywords": [ "framework", diff --git a/platform.txt b/platform.txt index e7b8391b9dc..ebc8d23a5c7 100644 --- a/platform.txt +++ b/platform.txt @@ -1,5 +1,5 @@ name=ESP32 Arduino -version=3.0.4 +version=3.1.0 tools.esp32-arduino-libs.path={runtime.platform.path}/tools/esp32-arduino-libs tools.esp32-arduino-libs.path.windows={runtime.platform.path}\tools\esp32-arduino-libs From 57518b821c338382945bc014c8ddfcb93741acf2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 28 Aug 2024 14:11:51 +0000 Subject: [PATCH 007/179] ci(pre-commit): Apply automatic fixes --- libraries/ESP_I2S/src/ESP_I2S.cpp | 7 +++++-- libraries/FFat/src/FFat.cpp | 8 +++++--- libraries/SD_MMC/src/SD_MMC.cpp | 5 ++++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libraries/ESP_I2S/src/ESP_I2S.cpp b/libraries/ESP_I2S/src/ESP_I2S.cpp index 8b136ba5c47..395c7b587ed 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.cpp +++ b/libraries/ESP_I2S/src/ESP_I2S.cpp @@ -11,8 +11,11 @@ #define I2S_READ_CHUNK_SIZE 1920 -#define I2S_DEFAULT_CFG() \ - { .id = I2S_NUM_AUTO, .role = I2S_ROLE_MASTER, .dma_desc_num = 6, .dma_frame_num = 240, .auto_clear = true, .auto_clear_before_cb = false, .intr_priority = 0 } +#define I2S_DEFAULT_CFG() \ + { \ + .id = I2S_NUM_AUTO, .role = I2S_ROLE_MASTER, .dma_desc_num = 6, .dma_frame_num = 240, .auto_clear = true, .auto_clear_before_cb = false, \ + .intr_priority = 0 \ + } #define I2S_STD_CHAN_CFG(_sample_rate, _data_bit_width, _slot_mode) \ { \ diff --git a/libraries/FFat/src/FFat.cpp b/libraries/FFat/src/FFat.cpp index 41d941b4726..003339152fe 100644 --- a/libraries/FFat/src/FFat.cpp +++ b/libraries/FFat/src/FFat.cpp @@ -46,7 +46,10 @@ bool F_Fat::begin(bool formatOnFail, const char *basePath, uint8_t maxOpenFiles, } esp_vfs_fat_mount_config_t conf = { - .format_if_mount_failed = formatOnFail, .max_files = maxOpenFiles, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false, + .format_if_mount_failed = formatOnFail, + .max_files = maxOpenFiles, + .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, + .disk_status_check_enable = false, .use_one_fat = false }; esp_err_t err = esp_vfs_fat_spiflash_mount_rw_wl(basePath, partitionLabel, &conf, &_wl_handle); @@ -99,8 +102,7 @@ bool F_Fat::format(bool full_wipe, char *partitionLabel) { } // Now do a mount with format_if_fail (which it will) esp_vfs_fat_mount_config_t conf = { - .format_if_mount_failed = true, .max_files = 1, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false, - .use_one_fat = false + .format_if_mount_failed = true, .max_files = 1, .allocation_unit_size = CONFIG_WL_SECTOR_SIZE, .disk_status_check_enable = false, .use_one_fat = false }; result = esp_vfs_fat_spiflash_mount_rw_wl("/format_ffat", partitionLabel, &conf, &temp_handle); esp_vfs_fat_spiflash_unmount_rw_wl("/format_ffat", temp_handle); diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 024f8b4e3d7..6bbcf44d010 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -175,7 +175,10 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ _mode1bit = mode1bit; esp_vfs_fat_sdmmc_mount_config_t mount_config = { - .format_if_mount_failed = format_if_mount_failed, .max_files = maxOpenFiles, .allocation_unit_size = 0, .disk_status_check_enable = false, + .format_if_mount_failed = format_if_mount_failed, + .max_files = maxOpenFiles, + .allocation_unit_size = 0, + .disk_status_check_enable = false, .use_one_fat = false }; From 564612dacc7310a10b9778c5389c15b0db4192eb Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 28 Aug 2024 22:45:33 +0300 Subject: [PATCH 008/179] IDF release/v5.3 0bbd7281 (#10258) --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 8c585fa86ed..d14b71a7491 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-466a392a" + "version": "idf-release_v5.3-0bbd7281" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-466a392a", + "version": "idf-release_v5.3-0bbd7281", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-466a392a.zip", - "checksum": "SHA-256:8c2d36bd4be5b6a9446efd3c2b2f93f544f4b2a22dab23c4991aec5711c72884", - "size": "318864212" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", + "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", + "size": "319140606" } ] }, From 67682088cabc60f2b4f6d459d5635245c9ff9ca6 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 18 Sep 2024 15:56:37 +0300 Subject: [PATCH 009/179] IDF release/v5.3 (#10272) * IDF release/v5.3 2c46030b * IDF release/v5.3 cc3203dc * IDF release/v5.3 4d0db704 --- package/package_esp32_index.template.json | 128 +++++++++++----------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index d14b71a7491..701e77b3b21 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-0bbd7281" + "version": "idf-release_v5.3-4d0db704" }, { "packager": "esp32", @@ -67,7 +67,7 @@ { "packager": "esp32", "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240318" + "version": "v0.12.0-esp32-20240821" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-0bbd7281", + "version": "idf-release_v5.3-4d0db704", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-0bbd7281.zip", - "checksum": "SHA-256:e436e8ba703cf78ec81d80e956d2ae4a5e754f280950520ad7c425bb56738a80", - "size": "319140606" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", + "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", + "size": "320072134" } ] }, @@ -405,56 +405,56 @@ }, { "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240318", + "version": "v0.12.0-esp32-20240821", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-amd64-0.12.0-esp32-20240318.tar.gz", - "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20240318.tar.gz", - "checksum": "SHA-256:cf26c5cef4f6b04aa23cd2778675604e5a74a4ce4d8d17b854d05fbcb782d52c", - "size": "2252682" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-amd64-0.12.0-esp32-20240821.tar.gz", + "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20240821.tar.gz", + "checksum": "SHA-256:f8c68541fa38307bc0c0763b7e1e3fe4e943d5d45da07d817a73b492e103b652", + "size": "2373094" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-arm64-0.12.0-esp32-20240318.tar.gz", - "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20240318.tar.gz", - "checksum": "SHA-256:9b97a37aa2cab94424a778c25c0b4aa0f90d6ef9cda764a1d9289d061305f4b7", - "size": "2132904" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-arm64-0.12.0-esp32-20240821.tar.gz", + "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20240821.tar.gz", + "checksum": "SHA-256:4d6e263d84e447354dc685848557d6c284dda7fe007ee451f729a7edfa7baad7", + "size": "2251272" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-linux-armel-0.12.0-esp32-20240318.tar.gz", - "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20240318.tar.gz", - "checksum": "SHA-256:b7e82776ec374983807d3389df09c632ad9bc8341f2075690b6b500319dfeaf4", - "size": "2271761" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-armel-0.12.0-esp32-20240821.tar.gz", + "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20240821.tar.gz", + "checksum": "SHA-256:9d45679f2c4cf450d5e2350047cf57bb76dde2487d30cebce0a72c9173b5c45b", + "size": "2390074" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-0.12.0-esp32-20240318.tar.gz", - "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20240318.tar.gz", - "checksum": "SHA-256:b16c3082c94df1079367c44d99f7a8605534cd48aabc18898e46e94a2c8c57e7", - "size": "2365588" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-macos-0.12.0-esp32-20240821.tar.gz", + "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20240821.tar.gz", + "checksum": "SHA-256:565c8fabc5f19a6e7a0864a294d74b307eec30b9291d16d3fc90e273f0330cb4", + "size": "2485320" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-macos-arm64-0.12.0-esp32-20240318.tar.gz", - "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20240318.tar.gz", - "checksum": "SHA-256:534ec925ae6e35e869e4e4e6e4d2c4a1eb081f97ebcc2dd5efdc52d12f4c2f86", - "size": "2406377" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-macos-arm64-0.12.0-esp32-20240821.tar.gz", + "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20240821.tar.gz", + "checksum": "SHA-256:68c5c7cf3d15b9810939a5edabc6ff2c9f4fc32262de91fc292a180bc5cc0637", + "size": "2530336" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip", - "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240318.zip", - "checksum": "SHA-256:d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633", - "size": "2783915" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-win32-0.12.0-esp32-20240821.zip", + "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240821.zip", + "checksum": "SHA-256:463fc2903ddaf03f86ff50836c5c63cc696550b0446140159eddfd2e85570c5d", + "size": "2916409" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240318/openocd-esp32-win32-0.12.0-esp32-20240318.zip", - "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240318.zip", - "checksum": "SHA-256:d379329eba052435173ab0d69c9b15bc164a6ce489e2a67cd11169d2dabff633", - "size": "2783915" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-win64-0.12.0-esp32-20240821.zip", + "archiveFileName": "openocd-esp32-win64-0.12.0-esp32-20240821.zip", + "checksum": "SHA-256:550f57369f1f1f6cc600b5dffa3378fd6164d8ea8db7c567cf41091771f090cb", + "size": "2916408" } ] }, From a4c33e3897facd6e6f85547c746d33e9019bb0b2 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 24 Sep 2024 15:18:28 -0300 Subject: [PATCH 010/179] feat(esp32p4): Add initial ESP32-P4 support (#10358) * feat(esp32p4): Initial changes required for ESP32-P4 * esp32-p4: Initial changes to build with Arduino Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> * fix(esp32p4): Fix lib builder errors * change(esp32p4): Unhide board * ci(esp32p4): Add ESP32-P4 to workflow * change(esptool): Update esptool to 4.8.0 * fix(build): Fix redefinition errors * fix(build): Remove old commands * change(esptool): Remove unsupported 32-bit tools * fix(get.py): Force exe generation * Revert "fix(get.py): Force exe generation" This reverts commit 979b16b3b19d02917ddccf0139c6913cca618714. * fix(get.py): Fix system check * change(tools): Push generated binaries to PR * ci(esp32p4): Add missing ESP32-P4 entries * fix(esp32p4): Add chip info * fix(esp32p4): Fix build commands * docs(esp32p4): Add missing references to P4 * fix(esp32p4): Fix clock sources definitions * fix(esp32p4): Set CPU frequency to 360 MHz so it is stable in all chips * refactor(esp32p4): Change preprocessor conditionals for maintainability Co-authored-by: me-no-dev * fix(esp32p4): Add missing menu options * fix(esp32p4): Mark as not in development json in readme * fix(esp32p4): Add P4 to ci.json files * ci(pre-commit): Apply automatic fixes * fix(get.py): Remove unused include * ci(pre-commit): Apply automatic fixes * change(tools): Push generated binaries to PR * ci(pre-commit): Apply automatic fixes * fix(ci.json): Fix formatting --------- Signed-off-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Co-authored-by: Jason2866 <24528715+Jason2866@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: me-no-dev Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .github/scripts/on-push.sh | 1 + .github/scripts/sketch_utils.sh | 4 + .github/workflows/lib.yml | 3 + .github/workflows/push.yml | 2 +- .github/workflows/tests.yml | 4 +- .github/workflows/tests_wokwi.yml | 2 +- README.md | 1 + boards.txt | 91 +- cores/esp32/Esp.cpp | 6 + cores/esp32/HardwareSerial.h | 12 + cores/esp32/chip-debug-report.cpp | 6 + cores/esp32/esp32-hal-adc.c | 10 +- cores/esp32/esp32-hal-cpu.c | 33 +- cores/esp32/esp32-hal-i2c-slave.c | 802 +++++++++--------- cores/esp32/esp32-hal-i2c.c | 17 +- cores/esp32/esp32-hal-ledc.c | 5 + cores/esp32/esp32-hal-matrix.c | 2 + cores/esp32/esp32-hal-misc.c | 4 +- cores/esp32/esp32-hal-psram.c | 2 + cores/esp32/esp32-hal-spi.c | 252 +++--- cores/esp32/esp32-hal-spi.h | 8 +- cores/esp32/esp32-hal-touch.c | 21 +- cores/esp32/esp32-hal-touch.h | 2 + cores/esp32/esp32-hal-uart.c | 20 +- docs/en/lib_builder.rst | 1 + idf_component.yml | 1 + .../ArduinoOTA/examples/BasicOTA/ci.json | 3 +- .../AsyncUDP/examples/AsyncUDPClient/ci.json | 3 +- .../examples/AsyncUDPMulticastServer/ci.json | 3 +- .../AsyncUDP/examples/AsyncUDPServer/ci.json | 3 +- .../BLE/examples/BLE5_extended_scan/ci.json | 1 + .../examples/BLE5_multi_advertising/ci.json | 2 +- .../BLE5_periodic_advertising/ci.json | 6 +- .../BLE/examples/BLE5_periodic_sync/ci.json | 4 + libraries/BLE/examples/Beacon_Scanner/ci.json | 4 + libraries/BLE/examples/Client/ci.json | 2 + .../BLE/examples/EddystoneTLM_Beacon/ci.json | 1 + .../BLE/examples/EddystoneURL_Beacon/ci.json | 1 + libraries/BLE/examples/Notify/ci.json | 2 + libraries/BLE/examples/Scan/ci.json | 1 + libraries/BLE/examples/Server/ci.json | 7 +- .../BLE/examples/Server_multiconnect/ci.json | 5 + libraries/BLE/examples/UART/ci.json | 4 + libraries/BLE/examples/Write/ci.json | 2 + libraries/BLE/examples/iBeacon/ci.json | 2 + .../examples/DiscoverConnect/ci.json | 1 + .../examples/GetLocalMAC/ci.json | 1 + .../examples/SerialToSerialBT/ci.json | 1 + .../examples/SerialToSerialBTM/ci.json | 1 + .../examples/SerialToSerialBT_Legacy/ci.json | 1 + .../examples/SerialToSerialBT_SSP/ci.json | 1 + .../bt_classic_device_discovery/ci.json | 1 + .../examples/bt_remove_paired_devices/ci.json | 1 + .../DNSServer/examples/CaptivePortal/ci.json | 3 +- .../examples/Camera/CameraWebServer/ci.json | 3 +- .../examples/DeepSleep/ExternalWakeUp/ci.json | 3 +- .../DeepSleep/SmoothBlink_ULP_Code/ci.json | 1 + .../examples/RMT/RMTLoopback/RMTLoopback.ino | 2 +- .../ResetReason/ResetReason/ResetReason.ino | 2 + .../ESP32/examples/Time/SimpleTime/ci.json | 3 +- .../examples/Zigbee/Zigbee_Light_Bulb/ci.json | 1 + .../Zigbee/Zigbee_Light_Switch/ci.json | 1 + .../Zigbee/Zigbee_Temperature_Sensor/ci.json | 1 + .../examples/Zigbee/Zigbee_Thermostat/ci.json | 1 + .../examples/ESP_NOW_Broadcast_Master/ci.json | 3 +- .../examples/ESP_NOW_Broadcast_Slave/ci.json | 3 +- .../ESP_NOW/examples/ESP_NOW_Network/ci.json | 3 +- .../ESP_NOW/examples/ESP_NOW_Serial/ci.json | 3 +- libraries/ESP_SR/examples/Basic/ci.json | 1 + .../ESPmDNS/examples/mDNS-SD_Extended/ci.json | 3 +- .../ESPmDNS/examples/mDNS_Web_Server/ci.json | 3 +- .../Ethernet/examples/ETH_WIFI_BRIDGE/ci.json | 3 +- libraries/Ethernet/src/ETH.cpp | 6 +- libraries/FFat/examples/FFat_time/ci.json | 3 +- .../HTTPClient/examples/Authorization/ci.json | 3 +- .../examples/BasicHttpClient/ci.json | 3 +- .../examples/BasicHttpsClient/ci.json | 3 +- .../examples/HTTPClientEnterprise/ci.json | 3 +- .../examples/ReuseConnection/ci.json | 3 +- .../examples/StreamHttpClient/ci.json | 3 +- .../HTTPUpdate/examples/httpUpdate/ci.json | 3 +- .../examples/httpUpdateSPIFFS/ci.json | 3 +- .../examples/httpUpdateSecure/ci.json | 3 +- .../examples/WebUpdater/ci.json | 3 +- .../examples/DiagnosticsSmokeTest/ci.json | 3 +- .../examples/MinimalDiagnostics/ci.json | 3 +- .../LittleFS/examples/LITTLEFS_time/ci.json | 3 +- libraries/NetBIOS/examples/ESP_NBNST/ci.json | 3 +- .../examples/WiFiClientInsecure/ci.json | 3 +- .../examples/WiFiClientPSK/ci.json | 3 +- .../examples/WiFiClientSecure/ci.json | 3 +- .../WiFiClientSecureEnterprise/ci.json | 3 +- .../WiFiClientSecureProtocolUpgrade/ci.json | 3 +- .../WiFiClientShowPeerCredentials/ci.json | 3 +- .../WiFiClientTrustOnFirstUse/ci.json | 3 +- .../examples/COAP/coap_lamp/ci.json | 1 + .../examples/COAP/coap_switch/ci.json | 7 +- .../OpenThread/examples/SimpleCLI/ci.json | 8 +- .../OpenThread/examples/SimpleNode/ci.json | 6 +- .../ExtendedRouterNode/ci.json | 8 +- .../SimpleThreadNetwork/LeaderNode/ci.json | 1 + .../SimpleThreadNetwork/RouterNode/ci.json | 1 + .../OpenThread/examples/ThreadScan/ci.json | 1 + .../OpenThread/examples/onReceive/ci.json | 1 + .../PPP/examples/PPP_WIFI_BRIDGE/ci.json | 3 +- libraries/PPP/src/PPP.cpp | 6 +- .../RainMaker/examples/RMakerCustom/ci.json | 3 +- .../examples/RMakerCustomAirCooler/ci.json | 3 +- .../examples/RMakerSonoffDualR3/ci.json | 3 +- .../RainMaker/examples/RMakerSwitch/ci.json | 3 +- libraries/SD/examples/SD_time/ci.json | 3 +- libraries/SD_MMC/examples/SD2USBMSC/ci.json | 1 + libraries/SD_MMC/examples/SDMMC_Test/ci.json | 1 + libraries/SD_MMC/examples/SDMMC_time/ci.json | 1 + libraries/SD_MMC/src/SD_MMC.cpp | 14 +- libraries/SPI/src/SPI.cpp | 2 +- libraries/SPIFFS/examples/SPIFFS_time/ci.json | 3 +- .../examples/SimpleBleDevice/ci.json | 1 + .../Update/examples/AWS_S3_OTA_Update/ci.json | 3 +- .../Update/examples/HTTPS_OTA_Update/ci.json | 3 +- .../HTTP_Client_AES_OTA_Update/ci.json | 3 +- .../HTTP_Server_AES_OTA_Update/ci.json | 3 +- .../Update/examples/OTAWebUpdater/ci.json | 3 +- .../examples/AdvancedWebServer/ci.json | 3 +- .../WebServer/examples/FSBrowser/ci.json | 3 +- libraries/WebServer/examples/Filters/ci.json | 3 +- .../WebServer/examples/HelloServer/ci.json | 3 +- .../examples/HttpAdvancedAuth/ci.json | 3 +- .../examples/HttpAuthCallback/ci.json | 3 +- .../examples/HttpAuthCallbackInline/ci.json | 3 +- .../WebServer/examples/HttpBasicAuth/ci.json | 3 +- .../examples/HttpBasicAuthSHA1/ci.json | 3 +- .../HttpBasicAuthSHA1orBearerToken/ci.json | 3 +- .../examples/MultiHomedServers/ci.json | 3 +- .../WebServer/examples/PathArgServer/ci.json | 3 +- .../WebServer/examples/SDWebServer/ci.json | 3 +- .../examples/SimpleAuthentification/ci.json | 3 +- .../WebServer/examples/UploadHugeFile/ci.json | 3 +- .../WebServer/examples/WebServer/ci.json | 3 +- .../WebServer/examples/WebUpdate/ci.json | 3 +- .../WiFi/examples/FTM/FTM_Initiator/ci.json | 3 +- .../WiFi/examples/FTM/FTM_Responder/ci.json | 3 +- .../WiFi/examples/SimpleWiFiServer/ci.json | 3 +- libraries/WiFi/examples/WPS/ci.json | 3 +- .../WiFi/examples/WiFiAccessPoint/ci.json | 3 +- .../WiFi/examples/WiFiBlueToothSwitch/ci.json | 1 + libraries/WiFi/examples/WiFiClient/ci.json | 3 +- .../WiFi/examples/WiFiClientBasic/ci.json | 3 +- .../WiFi/examples/WiFiClientConnect/ci.json | 3 +- .../examples/WiFiClientEnterprise/ci.json | 3 +- .../WiFi/examples/WiFiClientEvents/ci.json | 3 +- .../WiFi/examples/WiFiClientStaticIP/ci.json | 3 +- libraries/WiFi/examples/WiFiExtender/ci.json | 3 +- libraries/WiFi/examples/WiFiIPv6/ci.json | 3 +- libraries/WiFi/examples/WiFiMulti/ci.json | 3 +- .../WiFi/examples/WiFiMultiAdvanced/ci.json | 3 +- libraries/WiFi/examples/WiFiScan/ci.json | 3 +- libraries/WiFi/examples/WiFiScanAsync/ci.json | 3 +- .../WiFi/examples/WiFiScanDualAntenna/ci.json | 3 +- libraries/WiFi/examples/WiFiScanTime/ci.json | 3 +- .../WiFi/examples/WiFiSmartConfig/ci.json | 3 +- .../WiFi/examples/WiFiTelnetToSerial/ci.json | 3 +- libraries/WiFi/examples/WiFiUDPClient/ci.json | 3 +- libraries/WiFiProv/examples/WiFiProv/ci.json | 3 +- package/package_esp32_index.template.json | 56 +- platform.txt | 11 +- tools/get.exe | Bin 6930008 -> 6943192 bytes tools/get.py | 8 + tools/platformio-build.py | 2 +- 169 files changed, 1079 insertions(+), 706 deletions(-) diff --git a/.github/scripts/on-push.sh b/.github/scripts/on-push.sh index 08ff505f1c0..73d9eeee398 100755 --- a/.github/scripts/on-push.sh +++ b/.github/scripts/on-push.sh @@ -91,6 +91,7 @@ if [ "$BUILD_PIO" -eq 0 ]; then fi #build sketches for different targets + build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" diff --git a/.github/scripts/sketch_utils.sh b/.github/scripts/sketch_utils.sh index 813f61210cd..5af47dcb138 100755 --- a/.github/scripts/sketch_utils.sh +++ b/.github/scripts/sketch_utils.sh @@ -89,6 +89,7 @@ function build_sketch(){ # build_sketch [ex esp32c3_opts="PartitionScheme=huge_app,FlashMode=dio" esp32c6_opts="PartitionScheme=huge_app,FlashMode=dio" esp32h2_opts="PartitionScheme=huge_app,FlashMode=dio" + esp32p4_opts="PartitionScheme=huge_app,FlashMode=dio" # Select the common part of the FQBN based on the target. The rest will be # appended depending on the passed options. @@ -112,6 +113,9 @@ function build_sketch(){ # build_sketch [ex "esp32h2") fqbn="espressif:esp32:esp32h2:${options:-$esp32h2_opts}" ;; + "esp32p4") + fqbn="espressif:esp32:esp32p4:${options:-$esp32p4_opts}" + ;; esac # Make it look like a JSON array. diff --git a/.github/workflows/lib.yml b/.github/workflows/lib.yml index 894df61f4fd..7a7b863095d 100644 --- a/.github/workflows/lib.yml +++ b/.github/workflows/lib.yml @@ -42,6 +42,7 @@ jobs: - esp32s3 - esp32c6 - esp32h2 + - esp32p4 include: - target: esp32 @@ -56,6 +57,8 @@ jobs: fqbn: espressif:esp32:esp32c6 - target: esp32h2 fqbn: espressif:esp32:esp32h2 + - target: esp32p4 + fqbn: espressif:esp32:esp32p4 steps: diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index d5c12c6d3e9..8d25b1a234d 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -233,7 +233,7 @@ jobs: # https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html # for details. idf_ver: ["release-v5.3"] - idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"] + idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32p4"] container: espressif/idf:${{ matrix.idf_ver }} steps: - name: Check out arduino-esp32 as a component diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 26de19d8f10..1ae748923b5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -88,7 +88,7 @@ jobs: strategy: matrix: type: ${{ fromJson(needs.gen-matrix.outputs.build-types) }} - chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'] + chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4'] with: type: ${{ matrix.type }} chip: ${{ matrix.chip }} @@ -105,7 +105,7 @@ jobs: fail-fast: false matrix: type: ${{ fromJson(needs.gen-matrix.outputs.hw-types) }} - chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'] + chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4'] with: type: ${{ matrix.type }} chip: ${{ matrix.chip }} diff --git a/.github/workflows/tests_wokwi.yml b/.github/workflows/tests_wokwi.yml index f016cad25e0..14f85ee606e 100644 --- a/.github/workflows/tests_wokwi.yml +++ b/.github/workflows/tests_wokwi.yml @@ -165,7 +165,7 @@ jobs: fail-fast: false matrix: type: ['validation'] - chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2'] + chip: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4'] steps: - name: Report pending uses: actions/github-script@v7 diff --git a/README.md b/README.md index ee1880b8d05..d3dca34aafe 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ Here are the ESP32 series supported by the Arduino-ESP32 project: | ESP32-S3 | Yes | Yes | [ESP32-S3](https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf) | | ESP32-C6 | Yes | Yes | [ESP32-C6](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) | | ESP32-H2 | Yes | Yes | [ESP32-H2](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) | +| ESP32-P4 | No | No | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | > [!NOTE] > ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF diff --git a/boards.txt b/boards.txt index ad47e0df455..f95cf4c21d3 100644 --- a/boards.txt +++ b/boards.txt @@ -163,7 +163,6 @@ esp32c2.menu.EraseFlash.all.upload.erase_cmd=-e ############################################################## esp32p4.name=ESP32P4 Dev Module -esp32p4.hide=true esp32p4.bootloader.tool=esptool_py esp32p4.bootloader.tool.default=esptool_py @@ -188,10 +187,10 @@ esp32p4.build.mcu=esp32p4 esp32p4.build.core=esp32 esp32p4.build.variant=esp32p4 esp32p4.build.board=ESP32P4_DEV -esp32p4.build.bootloader_addr=0x0 +esp32p4.build.bootloader_addr=0x2000 esp32p4.build.cdc_on_boot=0 -esp32p4.build.f_cpu=400000000L +esp32p4.build.f_cpu=360000000L esp32p4.build.flash_size=4MB esp32p4.build.flash_freq=80m esp32p4.build.img_freq=80m @@ -203,6 +202,25 @@ esp32p4.build.defines= ## IDE 2.0 Seems to not update the value esp32p4.menu.JTAGAdapter.default=Disabled esp32p4.menu.JTAGAdapter.default.build.copy_jtag_files=0 +esp32p4.menu.JTAGAdapter.builtin=Integrated USB JTAG +esp32p4.menu.JTAGAdapter.builtin.build.openocdscript=esp32p4-builtin.cfg +esp32p4.menu.JTAGAdapter.builtin.build.copy_jtag_files=1 +esp32p4.menu.JTAGAdapter.external=FTDI Adapter +esp32p4.menu.JTAGAdapter.external.build.openocdscript=esp32p4-ftdi.cfg +esp32p4.menu.JTAGAdapter.external.build.copy_jtag_files=1 +esp32p4.menu.JTAGAdapter.bridge=ESP USB Bridge +esp32p4.menu.JTAGAdapter.bridge.build.openocdscript=esp32p4-bridge.cfg +esp32p4.menu.JTAGAdapter.bridge.build.copy_jtag_files=1 + +esp32p4.menu.CDCOnBoot.default=Disabled +esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 +esp32p4.menu.CDCOnBoot.cdc=Enabled +esp32p4.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 + +esp32p4.menu.PSRAM.disabled=Disabled +esp32p4.menu.PSRAM.disabled.build.defines= +esp32p4.menu.PSRAM.enabled=Enabled +esp32p4.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM esp32p4.menu.CDCOnBoot.default=Disabled esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 @@ -211,20 +229,87 @@ esp32p4.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 esp32p4.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) esp32p4.menu.PartitionScheme.default.build.partitions=default +esp32p4.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) +esp32p4.menu.PartitionScheme.defaultffat.build.partitions=default_ffat +esp32p4.menu.PartitionScheme.default_8MB=8M with spiffs (3MB APP/1.5MB SPIFFS) +esp32p4.menu.PartitionScheme.default_8MB.build.partitions=default_8MB +esp32p4.menu.PartitionScheme.default_8MB.upload.maximum_size=3342336 +esp32p4.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS) +esp32p4.menu.PartitionScheme.minimal.build.partitions=minimal esp32p4.menu.PartitionScheme.no_fs=No FS 4MB (2MB APP x2) esp32p4.menu.PartitionScheme.no_fs.build.partitions=no_fs esp32p4.menu.PartitionScheme.no_fs.upload.maximum_size=2031616 +esp32p4.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS) +esp32p4.menu.PartitionScheme.no_ota.build.partitions=no_ota +esp32p4.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 +esp32p4.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS) +esp32p4.menu.PartitionScheme.noota_3g.build.partitions=noota_3g +esp32p4.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576 +esp32p4.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS) +esp32p4.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat +esp32p4.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152 +esp32p4.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS) +esp32p4.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat +esp32p4.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576 esp32p4.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS) esp32p4.menu.PartitionScheme.huge_app.build.partitions=huge_app esp32p4.menu.PartitionScheme.huge_app.upload.maximum_size=3145728 +esp32p4.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS) +esp32p4.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs +esp32p4.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 +esp32p4.menu.PartitionScheme.fatflash=16M Flash (2MB APP/12.5MB FATFS) +esp32p4.menu.PartitionScheme.fatflash.build.partitions=ffat +esp32p4.menu.PartitionScheme.fatflash.upload.maximum_size=2097152 +esp32p4.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS) +esp32p4.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB +esp32p4.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728 esp32p4.menu.PartitionScheme.custom=Custom esp32p4.menu.PartitionScheme.custom.build.partitions= esp32p4.menu.PartitionScheme.custom.upload.maximum_size=16777216 +## From https://docs.espressif.com/projects/esp-idf/en/latest/esp32p4/api-reference/kconfig.html#config-esp-default-cpu-freq-mhz +esp32p4.menu.CPUFreq.360=360MHz +esp32p4.menu.CPUFreq.360.build.f_cpu=360000000L +esp32p4.menu.CPUFreq.40=40MHz +esp32p4.menu.CPUFreq.40.build.f_cpu=40000000L + +esp32p4.menu.FlashMode.qio=QIO +esp32p4.menu.FlashMode.qio.build.flash_mode=dio +esp32p4.menu.FlashMode.qio.build.boot=qio +esp32p4.menu.FlashMode.dio=DIO +esp32p4.menu.FlashMode.dio.build.flash_mode=dio +esp32p4.menu.FlashMode.dio.build.boot=dio + +esp32p4.menu.FlashFreq.80=80MHz +esp32p4.menu.FlashFreq.80.build.flash_freq=80m +esp32p4.menu.FlashFreq.40=40MHz +esp32p4.menu.FlashFreq.40.build.flash_freq=40m + +esp32p4.menu.FlashSize.4M=4MB (32Mb) +esp32p4.menu.FlashSize.4M.build.flash_size=4MB +esp32p4.menu.FlashSize.8M=8MB (64Mb) +esp32p4.menu.FlashSize.8M.build.flash_size=8MB +esp32p4.menu.FlashSize.8M.build.partitions=default_8MB +esp32p4.menu.FlashSize.2M=2MB (16Mb) +esp32p4.menu.FlashSize.2M.build.flash_size=2MB +esp32p4.menu.FlashSize.2M.build.partitions=minimal +esp32p4.menu.FlashSize.16M=16MB (128Mb) +esp32p4.menu.FlashSize.16M.build.flash_size=16MB + esp32p4.menu.UploadSpeed.921600=921600 esp32p4.menu.UploadSpeed.921600.upload.speed=921600 esp32p4.menu.UploadSpeed.115200=115200 esp32p4.menu.UploadSpeed.115200.upload.speed=115200 +esp32p4.menu.UploadSpeed.256000.windows=256000 +esp32p4.menu.UploadSpeed.256000.upload.speed=256000 +esp32p4.menu.UploadSpeed.230400.windows.upload.speed=256000 +esp32p4.menu.UploadSpeed.230400=230400 +esp32p4.menu.UploadSpeed.230400.upload.speed=230400 +esp32p4.menu.UploadSpeed.460800.linux=460800 +esp32p4.menu.UploadSpeed.460800.macosx=460800 +esp32p4.menu.UploadSpeed.460800.upload.speed=460800 +esp32p4.menu.UploadSpeed.512000.windows=512000 +esp32p4.menu.UploadSpeed.512000.upload.speed=512000 esp32p4.menu.DebugLevel.none=None esp32p4.menu.DebugLevel.none.build.code_debug=0 diff --git a/cores/esp32/Esp.cpp b/cores/esp32/Esp.cpp index 483e888f64f..6a6ed11e463 100644 --- a/cores/esp32/Esp.cpp +++ b/cores/esp32/Esp.cpp @@ -60,6 +60,9 @@ extern "C" { #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/spi_flash.h" #define ESP_FLASH_IMAGE_BASE 0x0000 // Esp32h2 is located at 0x0000 +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/spi_flash.h" +#define ESP_FLASH_IMAGE_BASE 0x2000 // Esp32p4 is located at 0x2000 #else #error Target CONFIG_IDF_TARGET is not supported #endif @@ -335,6 +338,8 @@ uint32_t EspClass::getFlashChipSpeed(void) { return magicFlashChipSpeed(fhdr.spi_speed); } +// FIXME for P4 +#if !defined(CONFIG_IDF_TARGET_ESP32P4) FlashMode_t EspClass::getFlashChipMode(void) { #if CONFIG_IDF_TARGET_ESP32S2 uint32_t spi_ctrl = REG_READ(PERIPHS_SPI_FLASH_CTRL); @@ -361,6 +366,7 @@ FlashMode_t EspClass::getFlashChipMode(void) { } return (FM_DOUT); } +#endif // if !defined(CONFIG_IDF_TARGET_ESP32P4) uint32_t EspClass::magicFlashChipSize(uint8_t byte) { /* diff --git a/cores/esp32/HardwareSerial.h b/cores/esp32/HardwareSerial.h index 23a8823dff7..fc5dd92440d 100644 --- a/cores/esp32/HardwareSerial.h +++ b/cores/esp32/HardwareSerial.h @@ -125,6 +125,8 @@ typedef enum { #define SOC_RX0 (gpio_num_t)17 #elif CONFIG_IDF_TARGET_ESP32H2 #define SOC_RX0 (gpio_num_t)23 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define SOC_RX0 (gpio_num_t)38 #endif #endif @@ -141,6 +143,8 @@ typedef enum { #define SOC_TX0 (gpio_num_t)16 #elif CONFIG_IDF_TARGET_ESP32H2 #define SOC_TX0 (gpio_num_t)24 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define SOC_TX0 (gpio_num_t)37 #endif #endif @@ -162,6 +166,8 @@ typedef enum { #define RX1 (gpio_num_t)4 #elif CONFIG_IDF_TARGET_ESP32H2 #define RX1 (gpio_num_t)0 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define RX1 (gpio_num_t)11 #endif #endif @@ -180,6 +186,8 @@ typedef enum { #define TX1 (gpio_num_t)5 #elif CONFIG_IDF_TARGET_ESP32H2 #define TX1 (gpio_num_t)1 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define TX1 (gpio_num_t)10 #endif #endif #endif /* SOC_UART_HP_NUM > 1 */ @@ -192,6 +200,8 @@ typedef enum { #define RX2 (gpio_num_t)4 #elif CONFIG_IDF_TARGET_ESP32S3 #define RX2 (gpio_num_t)19 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define RX2 (gpio_num_t)15 #endif #endif @@ -200,6 +210,8 @@ typedef enum { #define TX2 (gpio_num_t)25 #elif CONFIG_IDF_TARGET_ESP32S3 #define TX2 (gpio_num_t)20 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define TX2 (gpio_num_t)14 #endif #endif #endif /* SOC_UART_HP_NUM > 2 */ diff --git a/cores/esp32/chip-debug-report.cpp b/cores/esp32/chip-debug-report.cpp index 239ae3e97c9..daafef3cab9 100644 --- a/cores/esp32/chip-debug-report.cpp +++ b/cores/esp32/chip-debug-report.cpp @@ -64,6 +64,9 @@ static void printPkgVersion(void) { #elif CONFIG_IDF_TARGET_ESP32H2 uint32_t pkg_ver = REG_GET_FIELD(EFUSE_RD_MAC_SYS_4_REG, EFUSE_PKG_VERSION); chip_report_printf("%lu", pkg_ver); +#elif CONFIG_IDF_TARGET_ESP32P4 + uint32_t pkg_ver = REG_GET_FIELD(EFUSE_RD_MAC_SYS_2_REG, EFUSE_PKG_VERSION); + chip_report_printf("%lu", pkg_ver); #else chip_report_printf("Unknown"); #endif @@ -84,6 +87,7 @@ static void printChipInfo(void) { case CHIP_ESP32C3: chip_report_printf("ESP32-C3\n"); break; case CHIP_ESP32C6: chip_report_printf("ESP32-C6\n"); break; case CHIP_ESP32H2: chip_report_printf("ESP32-H2\n"); break; + case CHIP_ESP32P4: chip_report_printf("ESP32-P4\n"); break; default: chip_report_printf("Unknown %d\n", info.model); break; } printPkgVersion(); @@ -105,6 +109,8 @@ static void printChipInfo(void) { static void printFlashInfo(void) { #if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 #define ESP_FLASH_IMAGE_BASE 0x1000 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define ESP_FLASH_IMAGE_BASE 0x2000 #else #define ESP_FLASH_IMAGE_BASE 0x0000 #endif diff --git a/cores/esp32/esp32-hal-adc.c b/cores/esp32/esp32-hal-adc.c index ee9cd02a623..c7cc1f5d556 100644 --- a/cores/esp32/esp32-hal-adc.c +++ b/cores/esp32/esp32-hal-adc.c @@ -75,7 +75,7 @@ static bool adcDetachBus(void *pin) { if (err != ESP_OK) { return false; } -#elif !defined(CONFIG_IDF_TARGET_ESP32H2) +#elif (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle); if (err != ESP_OK) { return false; @@ -127,7 +127,7 @@ esp_err_t __analogChannelConfig(adc_bitwidth_t width, adc_attenuation_t atten, i log_e("adc_cali_create_scheme_curve_fitting failed with error: %d", err); return err; } -#elif !defined(CONFIG_IDF_TARGET_ESP32H2) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED +#elif (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED log_d("Deleting ADC_UNIT_%d line cali handle", adc_unit); err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle); if (err != ESP_OK) { @@ -310,7 +310,7 @@ uint32_t __analogReadMilliVolts(uint8_t pin) { .bitwidth = __analogWidth, }; err = adc_cali_create_scheme_curve_fitting(&cali_config, &adc_handle[adc_unit].adc_cali_handle); -#elif !defined(CONFIG_IDF_TARGET_ESP32H2) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED +#elif (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED adc_cali_line_fitting_config_t cali_config = { .unit_id = adc_unit, .bitwidth = __analogWidth, @@ -379,7 +379,7 @@ static bool adcContinuousDetachBus(void *adc_unit_number) { if (err != ESP_OK) { return false; } -#elif !defined(CONFIG_IDF_TARGET_ESP32H2) +#elif (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) err = adc_cali_delete_scheme_line_fitting(adc_handle[adc_unit].adc_cali_handle); if (err != ESP_OK) { return false; @@ -552,7 +552,7 @@ bool analogContinuous(const uint8_t pins[], size_t pins_count, uint32_t conversi .bitwidth = __adcContinuousWidth, }; err = adc_cali_create_scheme_curve_fitting(&cali_config, &adc_handle[adc_unit].adc_cali_handle); -#elif !defined(CONFIG_IDF_TARGET_ESP32H2) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED +#elif (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) //ADC_CALI_SCHEME_LINE_FITTING_SUPPORTED adc_cali_line_fitting_config_t cali_config = { .unit_id = adc_unit, .bitwidth = __adcContinuousWidth, diff --git a/cores/esp32/esp32-hal-cpu.c b/cores/esp32/esp32-hal-cpu.c index 2420dfbeeb0..f0a30b50afc 100644 --- a/cores/esp32/esp32-hal-cpu.c +++ b/cores/esp32/esp32-hal-cpu.c @@ -19,7 +19,7 @@ #include "esp_attr.h" #include "esp_log.h" #include "soc/rtc.h" -#if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) +#if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4) #include "soc/rtc_cntl_reg.h" #include "soc/syscon_reg.h" #endif @@ -46,6 +46,8 @@ #include "esp32c6/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/rtc.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/rtc.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif @@ -161,13 +163,13 @@ bool removeApbChangeCallback(void *arg, apb_change_cb_t cb) { } static uint32_t calculateApb(rtc_cpu_freq_config_t *conf) { -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2 - return APB_CLK_FREQ; -#else +#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 if (conf->freq_mhz >= 80) { return 80 * MHZ; } return (conf->source_freq_mhz * MHZ) / conf->div; +#else + return APB_CLK_FREQ; #endif } @@ -177,7 +179,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { rtc_cpu_freq_config_t conf, cconf; uint32_t capb, apb; //Get XTAL Frequency and calculate min CPU MHz -#ifndef CONFIG_IDF_TARGET_ESP32H2 +#if (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) rtc_xtal_freq_t xtal = rtc_clk_xtal_freq_get(); #endif #if CONFIG_IDF_TARGET_ESP32 @@ -193,7 +195,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { } } #endif -#ifndef CONFIG_IDF_TARGET_ESP32H2 +#if (!defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4)) if (cpu_freq_mhz > xtal && cpu_freq_mhz != 240 && cpu_freq_mhz != 160 && cpu_freq_mhz != 120 && cpu_freq_mhz != 80) { if (xtal >= RTC_XTAL_FREQ_40M) { log_e("Bad frequency: %u MHz! Options are: 240, 160, 120, 80, %u, %u and %u MHz", cpu_freq_mhz, xtal, xtal / 2, xtal / 4); @@ -235,7 +237,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { } //Make the frequency change rtc_clk_cpu_freq_set_config_fast(&conf); -#if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) +#if defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C3) if (capb != apb) { //Update REF_TICK (uncomment if REF_TICK is different than 1MHz) //if(conf.freq_mhz < 80){ @@ -248,11 +250,8 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { } #endif //Update FreeRTOS Tick Divisor -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 -#elif CONFIG_IDF_TARGET_ESP32S3 - -#else +#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 uint32_t fcpu = (conf.freq_mhz >= 80) ? (conf.freq_mhz * MHZ) : (apb); _xt_tick_divisor = fcpu / XT_TICK_PER_SEC; #endif @@ -263,13 +262,19 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { #ifdef SOC_CLK_APLL_SUPPORTED log_d( "%s: %u / %u = %u Mhz, APB: %u Hz", - (conf.source == RTC_CPU_FREQ_SRC_PLL) ? "PLL" - : ((conf.source == RTC_CPU_FREQ_SRC_APLL) ? "APLL" : ((conf.source == RTC_CPU_FREQ_SRC_XTAL) ? "XTAL" : "8M")), + (conf.source == SOC_CPU_CLK_SRC_PLL) ? "PLL" + : ((conf.source == SOC_CPU_CLK_SRC_APLL) ? "APLL" + : ((conf.source == SOC_CPU_CLK_SRC_XTAL) ? "XTAL" +#ifdef CONFIG_IDF_TARGET_ESP32P4 + : "17.5M"), +#else + : "8M")), +#endif conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); #else log_d( - "%s: %u / %u = %u Mhz, APB: %u Hz", (conf.source == RTC_CPU_FREQ_SRC_PLL) ? "PLL" : ((conf.source == RTC_CPU_FREQ_SRC_XTAL) ? "XTAL" : "17.5M"), + "%s: %u / %u = %u Mhz, APB: %u Hz", (conf.source == SOC_CPU_CLK_SRC_PLL) ? "PLL" : ((conf.source == SOC_CPU_CLK_SRC_XTAL) ? "XTAL" : "17.5M"), conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); #endif diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index 5504fd62adf..14da815455b 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -41,14 +41,32 @@ #include "esp_intr_alloc.h" #include "soc/i2c_reg.h" #include "soc/i2c_struct.h" +#include "soc/periph_defs.h" #include "hal/i2c_ll.h" #include "hal/clk_gate_ll.h" #include "esp32-hal-log.h" #include "esp32-hal-i2c-slave.h" #include "esp32-hal-periman.h" +#include "esp_private/periph_ctrl.h" + +#if SOC_PERIPH_CLK_CTRL_SHARED +#define I2C_CLOCK_SRC_ATOMIC() PERIPH_RCC_ATOMIC() +#else +#define I2C_CLOCK_SRC_ATOMIC() +#endif + +#if !SOC_RCC_IS_INDEPENDENT +#define I2C_RCC_ATOMIC() PERIPH_RCC_ATOMIC() +#else +#define I2C_RCC_ATOMIC() +#endif #define I2C_SLAVE_USE_RX_QUEUE 0 // 1: Queue, 0: RingBuffer +#ifdef CONFIG_IDF_TARGET_ESP32P4 +#define I2C_SCL_IDX(p) ((p == 0) ? I2C0_SCL_PAD_OUT_IDX : ((p == 1) ? I2C1_SCL_PAD_OUT_IDX : 0)) +#define I2C_SDA_IDX(p) ((p == 0) ? I2C0_SDA_PAD_OUT_IDX : ((p == 1) ? I2C1_SDA_PAD_OUT_IDX : 0)) +#else #if SOC_HP_I2C_NUM > 1 #define I2C_SCL_IDX(p) ((p == 0) ? I2CEXT0_SCL_OUT_IDX : ((p == 1) ? I2CEXT1_SCL_OUT_IDX : 0)) #define I2C_SDA_IDX(p) ((p == 0) ? I2CEXT0_SDA_OUT_IDX : ((p == 1) ? I2CEXT1_SDA_OUT_IDX : 0)) @@ -56,6 +74,7 @@ #define I2C_SCL_IDX(p) I2CEXT0_SCL_OUT_IDX #define I2C_SDA_IDX(p) I2CEXT0_SDA_OUT_IDX #endif +#endif // ifdef CONFIG_IDF_TARGET_ESP32P4 #if CONFIG_IDF_TARGET_ESP32 #define I2C_TXFIFO_WM_INT_ENA I2C_TXFIFO_EMPTY_INT_ENA @@ -173,19 +192,19 @@ static inline void i2c_ll_stretch_clr(i2c_dev_t *hw) { } static inline bool i2c_ll_slave_addressed(i2c_dev_t *hw) { -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2 - return hw->sr.slave_addressed; -#else +#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 return hw->status_reg.slave_addressed; +#else + return hw->sr.slave_addressed; #endif } static inline bool i2c_ll_slave_rw(i2c_dev_t *hw) //not exposed by hal_ll { -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32H2 - return hw->sr.slave_rw; -#else +#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 return hw->status_reg.slave_rw; +#else + return hw->sr.slave_rw; #endif } @@ -306,7 +325,7 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t frequency = 100000L; } frequency = (frequency * 5) / 4; - +#if !defined(CONFIG_IDF_TARGET_ESP32P4) if (i2c->num == 0) { periph_ll_enable_clk_clear_rst(PERIPH_I2C0_MODULE); #if SOC_HP_I2C_NUM > 1 @@ -314,6 +333,7 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t periph_ll_enable_clk_clear_rst(PERIPH_I2C1_MODULE); #endif } +#endif // !defined(CONFIG_IDF_TARGET_ESP32P4) i2c_ll_slave_init(i2c->dev); i2c_ll_slave_set_fifo_mode(i2c->dev, true); @@ -341,145 +361,155 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t if (!i2c->intr_handle) { uint32_t flags = ESP_INTR_FLAG_LOWMED | ESP_INTR_FLAG_SHARED; +#if !defined(CONFIG_IDF_TARGET_ESP32P4) if (i2c->num == 0) { ret = esp_intr_alloc(ETS_I2C_EXT0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); #if SOC_HP_I2C_NUM > 1 } else { ret = esp_intr_alloc(ETS_I2C_EXT1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); #endif - } +#endif // !defined(CONFIG_IDF_TARGET_ESP32P4) +#ifdef CONFIG_IDF_TARGET_ESP32P4 + if (i2c->num == 0) { + ret = esp_intr_alloc(ETS_I2C0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); +#if SOC_I2C_NUM > 1 + } else { + ret = esp_intr_alloc(ETS_I2C1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); +#endif +#endif // #ifdef CONFIG_IDF_TARGET_ESP32P4 + } - if (ret != ESP_OK) { - log_e("install interrupt handler Failed=%d", ret); - goto fail; + if (ret != ESP_OK) { + log_e("install interrupt handler Failed=%d", ret); + goto fail; + } } - } - i2c_ll_txfifo_rst(i2c->dev); - i2c_ll_rxfifo_rst(i2c->dev); - i2c_ll_slave_enable_rx_it(i2c->dev); - i2c_ll_set_stretch(i2c->dev, 0x3FF); - i2c_ll_update(i2c->dev); - if (!perimanSetPinBus(sda, ESP32_BUS_TYPE_I2C_SLAVE_SDA, (void *)(i2c->num + 1), i2c->num, -1) - || !perimanSetPinBus(scl, ESP32_BUS_TYPE_I2C_SLAVE_SCL, (void *)(i2c->num + 1), i2c->num, -1)) { - i2cSlaveDetachBus((void *)(i2c->num + 1)); - ret = ESP_FAIL; - } - I2C_SLAVE_MUTEX_UNLOCK(); - return ret; + i2c_ll_txfifo_rst(i2c->dev); + i2c_ll_rxfifo_rst(i2c->dev); + i2c_ll_slave_enable_rx_it(i2c->dev); + i2c_ll_set_stretch(i2c->dev, 0x3FF); + i2c_ll_update(i2c->dev); + if (!perimanSetPinBus(sda, ESP32_BUS_TYPE_I2C_SLAVE_SDA, (void *)(i2c->num + 1), i2c->num, -1) + || !perimanSetPinBus(scl, ESP32_BUS_TYPE_I2C_SLAVE_SCL, (void *)(i2c->num + 1), i2c->num, -1)) { + i2cSlaveDetachBus((void *)(i2c->num + 1)); + ret = ESP_FAIL; + } + I2C_SLAVE_MUTEX_UNLOCK(); + return ret; fail: - i2c_slave_free_resources(i2c); - I2C_SLAVE_MUTEX_UNLOCK(); - return ret; -} - -esp_err_t i2cSlaveDeinit(uint8_t num) { - if (num >= SOC_HP_I2C_NUM) { - log_e("Invalid port num: %u", num); - return ESP_ERR_INVALID_ARG; + i2c_slave_free_resources(i2c); + I2C_SLAVE_MUTEX_UNLOCK(); + return ret; } - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + esp_err_t i2cSlaveDeinit(uint8_t num) { + if (num >= SOC_HP_I2C_NUM) { + log_e("Invalid port num: %u", num); + return ESP_ERR_INVALID_ARG; + } + + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; #if !CONFIG_DISABLE_HAL_LOCKS - if (!i2c->lock) { - log_e("Lock is not initialized! Did you call i2c_slave_init()?"); - return ESP_ERR_NO_MEM; - } + if (!i2c->lock) { + log_e("Lock is not initialized! Did you call i2c_slave_init()?"); + return ESP_ERR_NO_MEM; + } #endif - I2C_SLAVE_MUTEX_LOCK(); - int scl = i2c->scl; - int sda = i2c->sda; - i2c_slave_free_resources(i2c); - perimanClearPinBus(scl); - perimanClearPinBus(sda); - I2C_SLAVE_MUTEX_UNLOCK(); - return ESP_OK; -} - -size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t timeout_ms) { - if (num >= SOC_HP_I2C_NUM) { - log_e("Invalid port num: %u", num); - return 0; - } - uint32_t to_queue = 0, to_fifo = 0; - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + I2C_SLAVE_MUTEX_LOCK(); + int scl = i2c->scl; + int sda = i2c->sda; + i2c_slave_free_resources(i2c); + perimanClearPinBus(scl); + perimanClearPinBus(sda); + I2C_SLAVE_MUTEX_UNLOCK(); + return ESP_OK; + } + + size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t timeout_ms) { + if (num >= SOC_HP_I2C_NUM) { + log_e("Invalid port num: %u", num); + return 0; + } + uint32_t to_queue = 0, to_fifo = 0; + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; #if !CONFIG_DISABLE_HAL_LOCKS - if (!i2c->lock) { - log_e("Lock is not initialized! Did you call i2c_slave_init()?"); - return ESP_ERR_NO_MEM; - } + if (!i2c->lock) { + log_e("Lock is not initialized! Did you call i2c_slave_init()?"); + return ESP_ERR_NO_MEM; + } #endif - if (!i2c->tx_queue) { - return 0; - } - I2C_SLAVE_MUTEX_LOCK(); + if (!i2c->tx_queue) { + return 0; + } + I2C_SLAVE_MUTEX_LOCK(); #if CONFIG_IDF_TARGET_ESP32 - i2c_ll_slave_disable_tx_it(i2c->dev); - uint32_t txfifo_len = 0; - i2c_ll_get_txfifo_len(i2c->dev, &txfifo_len); - if (txfifo_len < SOC_I2C_FIFO_LEN) { - i2c_ll_txfifo_rst(i2c->dev); - } + i2c_ll_slave_disable_tx_it(i2c->dev); + uint32_t txfifo_len = 0; + i2c_ll_get_txfifo_len(i2c->dev, &txfifo_len); + if (txfifo_len < SOC_I2C_FIFO_LEN) { + i2c_ll_txfifo_rst(i2c->dev); + } #endif - i2c_ll_get_txfifo_len(i2c->dev, &to_fifo); - if (to_fifo) { - if (len < to_fifo) { - to_fifo = len; - } - i2c_ll_write_txfifo(i2c->dev, (uint8_t *)buf, to_fifo); - buf += to_fifo; - len -= to_fifo; - //reset tx_queue - xQueueReset(i2c->tx_queue); - //write the rest of the bytes to the queue - if (len) { - to_queue = uxQueueSpacesAvailable(i2c->tx_queue); - if (len < to_queue) { - to_queue = len; + i2c_ll_get_txfifo_len(i2c->dev, &to_fifo); + if (to_fifo) { + if (len < to_fifo) { + to_fifo = len; } - for (size_t i = 0; i < to_queue; i++) { - if (xQueueSend(i2c->tx_queue, &buf[i], timeout_ms / portTICK_PERIOD_MS) != pdTRUE) { - xQueueReset(i2c->tx_queue); - to_queue = 0; - break; + i2c_ll_write_txfifo(i2c->dev, (uint8_t *)buf, to_fifo); + buf += to_fifo; + len -= to_fifo; + //reset tx_queue + xQueueReset(i2c->tx_queue); + //write the rest of the bytes to the queue + if (len) { + to_queue = uxQueueSpacesAvailable(i2c->tx_queue); + if (len < to_queue) { + to_queue = len; + } + for (size_t i = 0; i < to_queue; i++) { + if (xQueueSend(i2c->tx_queue, &buf[i], timeout_ms / portTICK_PERIOD_MS) != pdTRUE) { + xQueueReset(i2c->tx_queue); + to_queue = 0; + break; + } + } + //no need to enable TX_EMPTY if tx_queue is empty + if (to_queue) { + i2c_ll_slave_enable_tx_it(i2c->dev); } - } - //no need to enable TX_EMPTY if tx_queue is empty - if (to_queue) { - i2c_ll_slave_enable_tx_it(i2c->dev); } } + I2C_SLAVE_MUTEX_UNLOCK(); + return to_queue + to_fifo; } - I2C_SLAVE_MUTEX_UNLOCK(); - return to_queue + to_fifo; -} -//===================================================================================================================== -//-------------------------------------- Private Functions ------------------------------------------------------------ -//===================================================================================================================== + //===================================================================================================================== + //-------------------------------------- Private Functions ------------------------------------------------------------ + //===================================================================================================================== -static void i2c_slave_free_resources(i2c_slave_struct_t *i2c) { - i2c_slave_detach_gpio(i2c); - i2c_ll_set_slave_addr(i2c->dev, 0, false); - i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); - i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); + static void i2c_slave_free_resources(i2c_slave_struct_t * i2c) { + i2c_slave_detach_gpio(i2c); + i2c_ll_set_slave_addr(i2c->dev, 0, false); + i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); + i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); - if (i2c->intr_handle) { - esp_intr_free(i2c->intr_handle); - i2c->intr_handle = NULL; - } + if (i2c->intr_handle) { + esp_intr_free(i2c->intr_handle); + i2c->intr_handle = NULL; + } - if (i2c->task_handle) { - vTaskDelete(i2c->task_handle); - i2c->task_handle = NULL; - } + if (i2c->task_handle) { + vTaskDelete(i2c->task_handle); + i2c->task_handle = NULL; + } #if I2C_SLAVE_USE_RX_QUEUE - if (i2c->rx_queue) { - vQueueDelete(i2c->rx_queue); - i2c->rx_queue = NULL; - } + if (i2c->rx_queue) { + vQueueDelete(i2c->rx_queue); + i2c->rx_queue = NULL; + } #else if (i2c->rx_ring_buf) { vRingbufferDelete(i2c->rx_ring_buf); @@ -487,198 +517,202 @@ static void i2c_slave_free_resources(i2c_slave_struct_t *i2c) { } #endif - if (i2c->tx_queue) { - vQueueDelete(i2c->tx_queue); - i2c->tx_queue = NULL; - } - - if (i2c->event_queue) { - vQueueDelete(i2c->event_queue); - i2c->event_queue = NULL; - } + if (i2c->tx_queue) { + vQueueDelete(i2c->tx_queue); + i2c->tx_queue = NULL; + } - i2c->rx_data_count = 0; -} + if (i2c->event_queue) { + vQueueDelete(i2c->event_queue); + i2c->event_queue = NULL; + } -static bool i2c_slave_set_frequency(i2c_slave_struct_t *i2c, uint32_t clk_speed) { - if (i2c == NULL) { - log_e("no control buffer"); - return false; - } - if (clk_speed > 1100000UL) { - clk_speed = 1100000UL; + i2c->rx_data_count = 0; } - // Adjust Fifo thresholds based on frequency - uint32_t a = (clk_speed / 50000L) + 2; - log_d("Fifo thresholds: rx_fifo_full = %d, tx_fifo_empty = %d", SOC_I2C_FIFO_LEN - a, a); + static bool i2c_slave_set_frequency(i2c_slave_struct_t * i2c, uint32_t clk_speed) { + if (i2c == NULL) { + log_e("no control buffer"); + return false; + } + if (clk_speed > 1100000UL) { + clk_speed = 1100000UL; + } + + // Adjust Fifo thresholds based on frequency + uint32_t a = (clk_speed / 50000L) + 2; + log_d("Fifo thresholds: rx_fifo_full = %d, tx_fifo_empty = %d", SOC_I2C_FIFO_LEN - a, a); - i2c_hal_clk_config_t clk_cal; + i2c_hal_clk_config_t clk_cal; #if SOC_I2C_SUPPORT_APB - i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); - i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/ + i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); + I2C_CLOCK_SRC_ATOMIC() { + i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/ + } #elif SOC_I2C_SUPPORT_XTAL i2c_ll_master_cal_bus_clk(XTAL_CLK_FREQ, clk_speed, &clk_cal); - i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */ + I2C_CLOCK_SRC_ATOMIC() { + i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */ + } #endif - i2c_ll_set_txfifo_empty_thr(i2c->dev, a); - i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a); - i2c_ll_master_set_bus_timing(i2c->dev, &clk_cal); - i2c_ll_master_set_filter(i2c->dev, 3); - return true; -} + i2c_ll_set_txfifo_empty_thr(i2c->dev, a); + i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a); + i2c_ll_master_set_bus_timing(i2c->dev, &clk_cal); + i2c_ll_master_set_filter(i2c->dev, 3); + return true; + } -static void i2c_slave_delay_us(uint64_t us) { - uint64_t m = esp_timer_get_time(); - if (us) { - uint64_t e = (m + us); - if (m > e) { //overflow - while ((uint64_t)esp_timer_get_time() > e); + static void i2c_slave_delay_us(uint64_t us) { + uint64_t m = esp_timer_get_time(); + if (us) { + uint64_t e = (m + us); + if (m > e) { //overflow + while ((uint64_t)esp_timer_get_time() > e); + } + while ((uint64_t)esp_timer_get_time() < e); } - while ((uint64_t)esp_timer_get_time() < e); } -} -static void i2c_slave_gpio_mode(int8_t pin, gpio_mode_t mode) { - gpio_config_t conf = { - .pin_bit_mask = 1LL << pin, .mode = mode, .pull_up_en = GPIO_PULLUP_ENABLE, .pull_down_en = GPIO_PULLDOWN_DISABLE, .intr_type = GPIO_INTR_DISABLE - }; - gpio_config(&conf); -} + static void i2c_slave_gpio_mode(int8_t pin, gpio_mode_t mode) { + gpio_config_t conf = { + .pin_bit_mask = 1LL << pin, .mode = mode, .pull_up_en = GPIO_PULLUP_ENABLE, .pull_down_en = GPIO_PULLDOWN_DISABLE, .intr_type = GPIO_INTR_DISABLE + }; + gpio_config(&conf); + } -static bool i2c_slave_check_line_state(int8_t sda, int8_t scl) { - if (sda < 0 || scl < 0) { - return false; //return false since there is nothing to do - } - // if the bus is not 'clear' try the cycling SCL until SDA goes High or 9 cycles - gpio_set_level(sda, 1); - gpio_set_level(scl, 1); - i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); - i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); - gpio_set_level(scl, 1); - - if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state - log_w("invalid state sda(%d)=%d, scl(%d)=%d", sda, gpio_get_level(sda), scl, gpio_get_level(scl)); - for (uint8_t a = 0; a < 9; a++) { - i2c_slave_delay_us(5); - if (gpio_get_level(sda) && gpio_get_level(scl)) { // bus recovered - log_w("Recovered after %d Cycles", a); - gpio_set_level(sda, 0); // start + static bool i2c_slave_check_line_state(int8_t sda, int8_t scl) { + if (sda < 0 || scl < 0) { + return false; //return false since there is nothing to do + } + // if the bus is not 'clear' try the cycling SCL until SDA goes High or 9 cycles + gpio_set_level(sda, 1); + gpio_set_level(scl, 1); + i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); + i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); + gpio_set_level(scl, 1); + + if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state + log_w("invalid state sda(%d)=%d, scl(%d)=%d", sda, gpio_get_level(sda), scl, gpio_get_level(scl)); + for (uint8_t a = 0; a < 9; a++) { i2c_slave_delay_us(5); - for (uint8_t a = 0; a < 9; a++) { - gpio_set_level(scl, 1); + if (gpio_get_level(sda) && gpio_get_level(scl)) { // bus recovered + log_w("Recovered after %d Cycles", a); + gpio_set_level(sda, 0); // start i2c_slave_delay_us(5); - gpio_set_level(scl, 0); + for (uint8_t a = 0; a < 9; a++) { + gpio_set_level(scl, 1); + i2c_slave_delay_us(5); + gpio_set_level(scl, 0); + i2c_slave_delay_us(5); + } + gpio_set_level(scl, 1); i2c_slave_delay_us(5); + gpio_set_level(sda, 1); // stop + break; } - gpio_set_level(scl, 1); + gpio_set_level(scl, 0); i2c_slave_delay_us(5); - gpio_set_level(sda, 1); // stop - break; + gpio_set_level(scl, 1); } - gpio_set_level(scl, 0); - i2c_slave_delay_us(5); - gpio_set_level(scl, 1); } - } - - if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state - log_e("Bus Invalid State, Can't init sda=%d, scl=%d", gpio_get_level(sda), gpio_get_level(scl)); - return false; // bus is busy - } - return true; -} -static bool i2c_slave_attach_gpio(i2c_slave_struct_t *i2c, int8_t sda, int8_t scl) { - if (i2c == NULL) { - log_e("no control block"); - return false; + if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state + log_e("Bus Invalid State, Can't init sda=%d, scl=%d", gpio_get_level(sda), gpio_get_level(scl)); + return false; // bus is busy + } + return true; } - if ((sda < 0) || (scl < 0)) { - log_e("bad pins sda=%d, scl=%d", sda, scl); - return false; - } + static bool i2c_slave_attach_gpio(i2c_slave_struct_t * i2c, int8_t sda, int8_t scl) { + if (i2c == NULL) { + log_e("no control block"); + return false; + } - i2c->scl = scl; - gpio_set_level(scl, 1); - i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT_OUTPUT_OD); - gpio_matrix_out(scl, I2C_SCL_IDX(i2c->num), false, false); - gpio_matrix_in(scl, I2C_SCL_IDX(i2c->num), false); + if ((sda < 0) || (scl < 0)) { + log_e("bad pins sda=%d, scl=%d", sda, scl); + return false; + } - i2c->sda = sda; - gpio_set_level(sda, 1); - i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT_OUTPUT_OD); - gpio_matrix_out(sda, I2C_SDA_IDX(i2c->num), false, false); - gpio_matrix_in(sda, I2C_SDA_IDX(i2c->num), false); + i2c->scl = scl; + gpio_set_level(scl, 1); + i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT_OUTPUT_OD); + gpio_matrix_out(scl, I2C_SCL_IDX(i2c->num), false, false); + gpio_matrix_in(scl, I2C_SCL_IDX(i2c->num), false); - return true; -} + i2c->sda = sda; + gpio_set_level(sda, 1); + i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT_OUTPUT_OD); + gpio_matrix_out(sda, I2C_SDA_IDX(i2c->num), false, false); + gpio_matrix_in(sda, I2C_SDA_IDX(i2c->num), false); -static bool i2c_slave_detach_gpio(i2c_slave_struct_t *i2c) { - if (i2c == NULL) { - log_e("no control Block"); - return false; - } - if (i2c->scl >= 0) { - gpio_matrix_out(i2c->scl, 0x100, false, false); - gpio_matrix_in(0x30, I2C_SCL_IDX(i2c->num), false); - i2c_slave_gpio_mode(i2c->scl, GPIO_MODE_INPUT); - i2c->scl = -1; // un attached - } - if (i2c->sda >= 0) { - gpio_matrix_out(i2c->sda, 0x100, false, false); - gpio_matrix_in(0x30, I2C_SDA_IDX(i2c->num), false); - i2c_slave_gpio_mode(i2c->sda, GPIO_MODE_INPUT); - i2c->sda = -1; // un attached + return true; } - return true; -} -static bool i2c_slave_send_event(i2c_slave_struct_t *i2c, i2c_slave_queue_event_t *event) { - bool pxHigherPriorityTaskWoken = false; - if (i2c->event_queue) { - if (xQueueSendFromISR(i2c->event_queue, event, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { - //log_e("event_queue_full"); + static bool i2c_slave_detach_gpio(i2c_slave_struct_t * i2c) { + if (i2c == NULL) { + log_e("no control Block"); + return false; + } + if (i2c->scl >= 0) { + gpio_matrix_out(i2c->scl, 0x100, false, false); + gpio_matrix_in(0x30, I2C_SCL_IDX(i2c->num), false); + i2c_slave_gpio_mode(i2c->scl, GPIO_MODE_INPUT); + i2c->scl = -1; // un attached } + if (i2c->sda >= 0) { + gpio_matrix_out(i2c->sda, 0x100, false, false); + gpio_matrix_in(0x30, I2C_SDA_IDX(i2c->num), false); + i2c_slave_gpio_mode(i2c->sda, GPIO_MODE_INPUT); + i2c->sda = -1; // un attached + } + return true; } - return pxHigherPriorityTaskWoken; -} -static bool i2c_slave_handle_tx_fifo_empty(i2c_slave_struct_t *i2c) { - bool pxHigherPriorityTaskWoken = false; - uint32_t d = 0, moveCnt = 0; - i2c_ll_get_txfifo_len(i2c->dev, &moveCnt); - while (moveCnt > 0) { // read tx queue until Fifo is full or queue is empty - if (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE) { - i2c_ll_write_txfifo(i2c->dev, (uint8_t *)&d, 1); - moveCnt--; - } else { - i2c_ll_slave_disable_tx_it(i2c->dev); - break; + static bool i2c_slave_send_event(i2c_slave_struct_t * i2c, i2c_slave_queue_event_t * event) { + bool pxHigherPriorityTaskWoken = false; + if (i2c->event_queue) { + if (xQueueSendFromISR(i2c->event_queue, event, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { + //log_e("event_queue_full"); + } + } + return pxHigherPriorityTaskWoken; + } + + static bool i2c_slave_handle_tx_fifo_empty(i2c_slave_struct_t * i2c) { + bool pxHigherPriorityTaskWoken = false; + uint32_t d = 0, moveCnt = 0; + i2c_ll_get_txfifo_len(i2c->dev, &moveCnt); + while (moveCnt > 0) { // read tx queue until Fifo is full or queue is empty + if (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE) { + i2c_ll_write_txfifo(i2c->dev, (uint8_t *)&d, 1); + moveCnt--; + } else { + i2c_ll_slave_disable_tx_it(i2c->dev); + break; + } } + return pxHigherPriorityTaskWoken; } - return pxHigherPriorityTaskWoken; -} -static bool i2c_slave_handle_rx_fifo_full(i2c_slave_struct_t *i2c, uint32_t len) { + static bool i2c_slave_handle_rx_fifo_full(i2c_slave_struct_t * i2c, uint32_t len) { #if I2C_SLAVE_USE_RX_QUEUE - uint32_t d = 0; + uint32_t d = 0; #else uint8_t data[SOC_I2C_FIFO_LEN]; #endif - bool pxHigherPriorityTaskWoken = false; + bool pxHigherPriorityTaskWoken = false; #if I2C_SLAVE_USE_RX_QUEUE - while (len > 0) { - i2c_ll_read_rxfifo(i2c->dev, (uint8_t *)&d, 1); - if (xQueueSendFromISR(i2c->rx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { - log_e("rx_queue_full"); - } else { - i2c->rx_data_count++; - } - if (--len == 0) { - len = i2c_ll_get_rxfifo_cnt(i2c->dev); - } + while (len > 0) { + i2c_ll_read_rxfifo(i2c->dev, (uint8_t *)&d, 1); + if (xQueueSendFromISR(i2c->rx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { + log_e("rx_queue_full"); + } else { + i2c->rx_data_count++; + } + if (--len == 0) { + len = i2c_ll_get_rxfifo_cnt(i2c->dev); + } #else if (len) { i2c_ll_read_rxfifo(i2c->dev, data, len); @@ -688,109 +722,109 @@ static bool i2c_slave_handle_rx_fifo_full(i2c_slave_struct_t *i2c, uint32_t len) i2c->rx_data_count += len; } #endif + } + return pxHigherPriorityTaskWoken; } - return pxHigherPriorityTaskWoken; -} - -static void i2c_slave_isr_handler(void *arg) { - bool pxHigherPriorityTaskWoken = false; - i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)arg; // recover data - uint32_t activeInt = 0; - i2c_ll_get_intr_mask(i2c->dev, &activeInt); - i2c_ll_clear_intr_mask(i2c->dev, activeInt); - uint32_t rx_fifo_len = 0; - i2c_ll_get_rxfifo_cnt(i2c->dev, &rx_fifo_len); - bool slave_rw = i2c_ll_slave_rw(i2c->dev); + static void i2c_slave_isr_handler(void *arg) { + bool pxHigherPriorityTaskWoken = false; + i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)arg; // recover data - if (activeInt & I2C_RXFIFO_WM_INT_ENA) { // RX FiFo Full - pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - i2c_ll_slave_enable_rx_it(i2c->dev); //is this necessary? - } + uint32_t activeInt = 0; + i2c_ll_get_intr_mask(i2c->dev, &activeInt); + i2c_ll_clear_intr_mask(i2c->dev, activeInt); + uint32_t rx_fifo_len = 0; + i2c_ll_get_rxfifo_cnt(i2c->dev, &rx_fifo_len); + bool slave_rw = i2c_ll_slave_rw(i2c->dev); - if (activeInt & I2C_TRANS_COMPLETE_INT_ENA) { // STOP - if (rx_fifo_len) { //READ RX FIFO + if (activeInt & I2C_RXFIFO_WM_INT_ENA) { // RX FiFo Full pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + i2c_ll_slave_enable_rx_it(i2c->dev); //is this necessary? } - if (i2c->rx_data_count) { //WRITE or RepeatedStart - //SEND RX Event - i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_RX; - event.stop = !slave_rw; - event.param = i2c->rx_data_count; - pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); - //Zero RX count - i2c->rx_data_count = 0; - } - if (slave_rw) { // READ -#if CONFIG_IDF_TARGET_ESP32 - if (i2c->dev->status_reg.scl_main_state_last == 6) { - //SEND TX Event + + if (activeInt & I2C_TRANS_COMPLETE_INT_ENA) { // STOP + if (rx_fifo_len) { //READ RX FIFO + pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + } + if (i2c->rx_data_count) { //WRITE or RepeatedStart + //SEND RX Event i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_TX; + event.event = I2C_SLAVE_EVT_RX; + event.stop = !slave_rw; + event.param = i2c->rx_data_count; pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); + //Zero RX count + i2c->rx_data_count = 0; } + if (slave_rw) { // READ +#if CONFIG_IDF_TARGET_ESP32 + if (i2c->dev->status_reg.scl_main_state_last == 6) { + //SEND TX Event + i2c_slave_queue_event_t event; + event.event = I2C_SLAVE_EVT_TX; + pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); + } #else //reset TX data i2c_ll_txfifo_rst(i2c->dev); uint8_t d; while (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE); //flush partial write #endif + } } - } #ifndef CONFIG_IDF_TARGET_ESP32 - if (activeInt & I2C_SLAVE_STRETCH_INT_ENA) { // STRETCH - i2c_stretch_cause_t cause = i2c_ll_stretch_cause(i2c->dev); - if (cause == I2C_STRETCH_CAUSE_MASTER_READ) { - //on C3 RX data disappears with repeated start, so we need to get it here - if (rx_fifo_len) { + if (activeInt & I2C_SLAVE_STRETCH_INT_ENA) { // STRETCH + i2c_stretch_cause_t cause = i2c_ll_stretch_cause(i2c->dev); + if (cause == I2C_STRETCH_CAUSE_MASTER_READ) { + //on C3 RX data disappears with repeated start, so we need to get it here + if (rx_fifo_len) { + pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + } + //SEND TX Event + i2c_slave_queue_event_t event; + event.event = I2C_SLAVE_EVT_TX; + pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); + //will clear after execution + } else if (cause == I2C_STRETCH_CAUSE_TX_FIFO_EMPTY) { + pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); + i2c_ll_stretch_clr(i2c->dev); + } else if (cause == I2C_STRETCH_CAUSE_RX_FIFO_FULL) { pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + i2c_ll_stretch_clr(i2c->dev); } - //SEND TX Event - i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_TX; - pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); - //will clear after execution - } else if (cause == I2C_STRETCH_CAUSE_TX_FIFO_EMPTY) { - pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); - i2c_ll_stretch_clr(i2c->dev); - } else if (cause == I2C_STRETCH_CAUSE_RX_FIFO_FULL) { - pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - i2c_ll_stretch_clr(i2c->dev); } - } #endif - if (activeInt & I2C_TXFIFO_WM_INT_ENA) { // TX FiFo Empty - pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); - } + if (activeInt & I2C_TXFIFO_WM_INT_ENA) { // TX FiFo Empty + pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); + } - if (pxHigherPriorityTaskWoken) { - portYIELD_FROM_ISR(); + if (pxHigherPriorityTaskWoken) { + portYIELD_FROM_ISR(); + } } -} -static size_t i2c_slave_read_rx(i2c_slave_struct_t *i2c, uint8_t *data, size_t len) { - if (!len) { - return 0; - } -#if I2C_SLAVE_USE_RX_QUEUE - uint8_t d = 0; - BaseType_t res = pdTRUE; - for (size_t i = 0; i < len; i++) { - if (data) { - res = xQueueReceive(i2c->rx_queue, &data[i], 0); - } else { - res = xQueueReceive(i2c->rx_queue, &d, 0); + static size_t i2c_slave_read_rx(i2c_slave_struct_t * i2c, uint8_t * data, size_t len) { + if (!len) { + return 0; } - if (res != pdTRUE) { - log_e("Read Queue(%u) Failed", i); - len = i; - break; +#if I2C_SLAVE_USE_RX_QUEUE + uint8_t d = 0; + BaseType_t res = pdTRUE; + for (size_t i = 0; i < len; i++) { + if (data) { + res = xQueueReceive(i2c->rx_queue, &data[i], 0); + } else { + res = xQueueReceive(i2c->rx_queue, &d, 0); + } + if (res != pdTRUE) { + log_e("Read Queue(%u) Failed", i); + len = i; + break; + } } - } - return (data) ? len : 0; + return (data) ? len : 0; #else size_t dlen = 0, to_read = len, so_far = 0, available = 0; uint8_t *rx_data = NULL; @@ -817,55 +851,55 @@ static size_t i2c_slave_read_rx(i2c_slave_struct_t *i2c, uint8_t *data, size_t l } return (data) ? so_far : 0; #endif -} - -static void i2c_slave_task(void *pv_args) { - i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)pv_args; - i2c_slave_queue_event_t event; - size_t len = 0; - bool stop = false; - uint8_t *data = NULL; - for (;;) { - if (xQueueReceive(i2c->event_queue, &event, portMAX_DELAY) == pdTRUE) { - // Write - if (event.event == I2C_SLAVE_EVT_RX) { - len = event.param; - stop = event.stop; - data = (len > 0) ? (uint8_t *)malloc(len) : NULL; - - if (len && data == NULL) { - log_e("Malloc (%u) Failed", len); - } - len = i2c_slave_read_rx(i2c, data, len); - if (i2c->receive_callback) { - i2c->receive_callback(i2c->num, data, len, stop, i2c->arg); - } - free(data); + } - // Read - } else if (event.event == I2C_SLAVE_EVT_TX) { - if (i2c->request_callback) { - i2c->request_callback(i2c->num, i2c->arg); + static void i2c_slave_task(void *pv_args) { + i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)pv_args; + i2c_slave_queue_event_t event; + size_t len = 0; + bool stop = false; + uint8_t *data = NULL; + for (;;) { + if (xQueueReceive(i2c->event_queue, &event, portMAX_DELAY) == pdTRUE) { + // Write + if (event.event == I2C_SLAVE_EVT_RX) { + len = event.param; + stop = event.stop; + data = (len > 0) ? (uint8_t *)malloc(len) : NULL; + + if (len && data == NULL) { + log_e("Malloc (%u) Failed", len); + } + len = i2c_slave_read_rx(i2c, data, len); + if (i2c->receive_callback) { + i2c->receive_callback(i2c->num, data, len, stop, i2c->arg); + } + free(data); + + // Read + } else if (event.event == I2C_SLAVE_EVT_TX) { + if (i2c->request_callback) { + i2c->request_callback(i2c->num, i2c->arg); + } + i2c_ll_stretch_clr(i2c->dev); } - i2c_ll_stretch_clr(i2c->dev); } } + vTaskDelete(NULL); } - vTaskDelete(NULL); -} -static bool i2cSlaveDetachBus(void *bus_i2c_num) { - uint8_t num = (int)bus_i2c_num - 1; - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; - if (i2c->scl == -1 && i2c->sda == -1) { + static bool i2cSlaveDetachBus(void *bus_i2c_num) { + uint8_t num = (int)bus_i2c_num - 1; + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + if (i2c->scl == -1 && i2c->sda == -1) { + return true; + } + esp_err_t err = i2cSlaveDeinit(num); + if (err != ESP_OK) { + log_e("i2cSlaveDeinit failed with error: %d", err); + return false; + } return true; } - esp_err_t err = i2cSlaveDeinit(num); - if (err != ESP_OK) { - log_e("i2cSlaveDeinit failed with error: %d", err); - return false; - } - return true; -} #endif /* SOC_I2C_SUPPORT_SLAVE */ diff --git a/cores/esp32/esp32-hal-i2c.c b/cores/esp32/esp32-hal-i2c.c index 419ce66bb9b..359b2161201 100644 --- a/cores/esp32/esp32-hal-i2c.c +++ b/cores/esp32/esp32-hal-i2c.c @@ -29,6 +29,19 @@ #include "hal/i2c_ll.h" #include "driver/i2c.h" #include "esp32-hal-periman.h" +#include "esp_private/periph_ctrl.h" + +#if SOC_PERIPH_CLK_CTRL_SHARED +#define I2C_CLOCK_SRC_ATOMIC() PERIPH_RCC_ATOMIC() +#else +#define I2C_CLOCK_SRC_ATOMIC() +#endif + +#if !SOC_RCC_IS_INDEPENDENT +#define I2C_RCC_ATOMIC() PERIPH_RCC_ATOMIC() +#else +#define I2C_RCC_ATOMIC() +#endif #if SOC_I2C_SUPPORT_APB || SOC_I2C_SUPPORT_XTAL #include "esp_private/esp_clk.h" @@ -388,7 +401,9 @@ esp_err_t i2cSetClock(uint8_t i2c_num, uint32_t frequency) { periph_rtc_dig_clk8m_enable(); } #endif - i2c_hal_set_bus_timing(&(hal), frequency, i2c_clk_alloc[src_clk].clk, i2c_clk_alloc[src_clk].clk_freq); + I2C_CLOCK_SRC_ATOMIC() { + i2c_hal_set_bus_timing(&(hal), frequency, i2c_clk_alloc[src_clk].clk, i2c_clk_alloc[src_clk].clk_freq); + } bus[i2c_num].frequency = frequency; //Clock Stretching Timeout: 20b:esp32, 5b:esp32-c3, 24b:esp32-s2 i2c_set_timeout((i2c_port_t)i2c_num, I2C_LL_MAX_TIMEOUT); diff --git a/cores/esp32/esp32-hal-ledc.c b/cores/esp32/esp32-hal-ledc.c index 7d748f98a56..0a3ec5a60c7 100644 --- a/cores/esp32/esp32-hal-ledc.c +++ b/cores/esp32/esp32-hal-ledc.c @@ -323,11 +323,16 @@ bool ledcOutputInvert(uint8_t pin, bool out_invert) { ledc_channel_handle_t *bus = (ledc_channel_handle_t *)perimanGetPinBus(pin, ESP32_BUS_TYPE_LEDC); if (bus != NULL) { gpio_set_level(pin, out_invert); + +#ifdef CONFIG_IDF_TARGET_ESP32P4 + esp_rom_gpio_connect_out_signal(pin, LEDC_LS_SIG_OUT_PAD_OUT0_IDX + ((bus->channel) % 8), out_invert, 0); +#else #ifdef SOC_LEDC_SUPPORT_HS_MODE esp_rom_gpio_connect_out_signal(pin, ((bus->channel / 8 == 0) ? LEDC_HS_SIG_OUT0_IDX : LEDC_LS_SIG_OUT0_IDX) + ((bus->channel) % 8), out_invert, 0); #else esp_rom_gpio_connect_out_signal(pin, LEDC_LS_SIG_OUT0_IDX + ((bus->channel) % 8), out_invert, 0); #endif +#endif // ifdef CONFIG_IDF_TARGET_ESP32P4 return true; } return false; diff --git a/cores/esp32/esp32-hal-matrix.c b/cores/esp32/esp32-hal-matrix.c index fba044d0c85..7cddb4e04db 100644 --- a/cores/esp32/esp32-hal-matrix.c +++ b/cores/esp32/esp32-hal-matrix.c @@ -32,6 +32,8 @@ #include "esp32c6/rom/gpio.h" #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/gpio.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/gpio.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif diff --git a/cores/esp32/esp32-hal-misc.c b/cores/esp32/esp32-hal-misc.c index 7dfca6134b2..ab46eba3d09 100644 --- a/cores/esp32/esp32-hal-misc.c +++ b/cores/esp32/esp32-hal-misc.c @@ -29,7 +29,7 @@ #endif //CONFIG_BT_ENABLED #include #include "soc/rtc.h" -#if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) +#if !defined(CONFIG_IDF_TARGET_ESP32C2) && !defined(CONFIG_IDF_TARGET_ESP32C6) && !defined(CONFIG_IDF_TARGET_ESP32H2) && !defined(CONFIG_IDF_TARGET_ESP32P4) #include "soc/rtc_cntl_reg.h" #include "soc/syscon_reg.h" #endif @@ -53,6 +53,8 @@ #include "esp32c6/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/rtc.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/rtc.h" #else #error Target CONFIG_IDF_TARGET is not supported diff --git a/cores/esp32/esp32-hal-psram.c b/cores/esp32/esp32-hal-psram.c index 5a741908f07..f28095a6fd8 100644 --- a/cores/esp32/esp32-hal-psram.c +++ b/cores/esp32/esp32-hal-psram.c @@ -27,6 +27,8 @@ #include "esp32s2/rom/cache.h" #elif CONFIG_IDF_TARGET_ESP32S3 #include "esp32s3/rom/cache.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/cache.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif diff --git a/cores/esp32/esp32-hal-spi.c b/cores/esp32/esp32-hal-spi.c index 857c3d4bb2e..8c8ce0b7705 100644 --- a/cores/esp32/esp32-hal-spi.c +++ b/cores/esp32/esp32-hal-spi.c @@ -22,11 +22,13 @@ #include "esp_attr.h" #include "soc/spi_reg.h" #include "soc/spi_struct.h" +#include "soc/periph_defs.h" #include "soc/io_mux_reg.h" #include "soc/gpio_sig_map.h" #include "soc/rtc.h" #include "hal/clk_gate_ll.h" #include "esp32-hal-periman.h" +#include "esp_private/periph_ctrl.h" #include "esp_system.h" #include "esp_intr_alloc.h" @@ -55,6 +57,9 @@ #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/ets_sys.h" #include "esp32h2/rom/gpio.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/ets_sys.h" +#include "esp32p4/rom/gpio.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif @@ -96,6 +101,24 @@ struct spi_struct_t { #define SPI_FSPI_SS_IDX(n) ((n == 0) ? FSPICS0_OUT_IDX : ((n == 1) ? FSPICS1_OUT_IDX : 0)) #define SPI_SS_IDX(p, n) ((p == 0) ? SPI_FSPI_SS_IDX(n) : ((p == 1) ? SPI_HSPI_SS_IDX(n) : 0)) +#elif CONFIG_IDF_TARGET_ESP32P4 +// ESP32P4 +#define SPI_COUNT (2) // SPI2 and SPI3. SPI0 and SPI1 are reserved for flash and PSRAM + +#define SPI_CLK_IDX(p) ((p == 0) ? SPI2_CK_PAD_OUT_IDX : ((p == 1) ? SPI3_CK_PAD_OUT_IDX : 0)) +#define SPI_MISO_IDX(p) ((p == 0) ? SPI2_Q_PAD_OUT_IDX : ((p == 1) ? SPI3_QO_PAD_OUT_IDX : 0)) +#define SPI_MOSI_IDX(p) ((p == 0) ? SPI2_D_PAD_IN_IDX : ((p == 1) ? SPI3_D_PAD_IN_IDX : 0)) + +#define SPI_HSPI_SS_IDX(n) ((n == 0) ? SPI3_CS_PAD_OUT_IDX : ((n == 1) ? SPI3_CS1_PAD_OUT_IDX : ((n == 2) ? SPI3_CS2_PAD_OUT_IDX : 0))) + +#define SPI_FSPI_SS_IDX(n) \ + ((n == 0) ? SPI2_CS_PAD_OUT_IDX \ + : ((n == 1) ? SPI2_CS1_PAD_OUT_IDX \ + : ((n == 2) ? SPI2_CS2_PAD_OUT_IDX \ + : ((n == 3) ? SPI2_CS3_PAD_OUT_IDX : ((n == 4) ? SPI2_CS4_PAD_OUT_IDX : ((n == 5) ? SPI2_CS5_PAD_OUT_IDX : 0)))))) + +#define SPI_SS_IDX(p, n) ((p == 0) ? SPI_FSPI_SS_IDX(n) : ((p == 1) ? SPI_HSPI_SS_IDX(n) : 0)) + #elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 // ESP32C3 #define SPI_COUNT (1) @@ -125,13 +148,12 @@ struct spi_struct_t { #if CONFIG_DISABLE_HAL_LOCKS #define SPI_MUTEX_LOCK() #define SPI_MUTEX_UNLOCK() - -static spi_t _spi_bus_array[] = { ++ static spi_t _spi_bus_array[] = { #if CONFIG_IDF_TARGET_ESP32S2 {(volatile spi_dev_t *)(DR_REG_SPI1_BASE), 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 1, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 2, -1, -1, -1, -1} -#elif CONFIG_IDF_TARGET_ESP32S3 +#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32P4 {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 1, -1, -1, -1, -1} #elif CONFIG_IDF_TARGET_ESP32C2 {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 0, -1, -1, -1, -1} @@ -157,7 +179,7 @@ static spi_t _spi_bus_array[] = { {(volatile spi_dev_t *)(DR_REG_SPI1_BASE), NULL, 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), NULL, 1, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), NULL, 2, -1, -1, -1, -1} -#elif CONFIG_IDF_TARGET_ESP32S3 +#elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32P4 {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), NULL, 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), NULL, 1, -1, -1, -1, -1} #elif CONFIG_IDF_TARGET_ESP32C2 {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), NULL, 0, -1, -1, -1, -1} @@ -369,11 +391,10 @@ void spiEnableSSPins(spi_t *spi, uint8_t ss_mask) { return; } SPI_MUTEX_LOCK(); -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.val &= ~(ss_mask & SPI_SS_MASK_ALL); -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.val &= ~(ss_mask & SPI_SS_MASK_ALL); +#else + spi->dev->misc.val &= ~(ss_mask & SPI_SS_MASK_ALL); #endif SPI_MUTEX_UNLOCK(); } @@ -383,11 +404,10 @@ void spiDisableSSPins(spi_t *spi, uint8_t ss_mask) { return; } SPI_MUTEX_LOCK(); -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.val |= (ss_mask & SPI_SS_MASK_ALL); -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.val |= (ss_mask & SPI_SS_MASK_ALL); +#else + spi->dev->misc.val |= (ss_mask & SPI_SS_MASK_ALL); #endif SPI_MUTEX_UNLOCK(); } @@ -417,11 +437,10 @@ void spiSSSet(spi_t *spi) { return; } SPI_MUTEX_LOCK(); -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.cs_keep_active = 1; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.cs_keep_active = 1; +#else + spi->dev->misc.cs_keep_active = 1; #endif SPI_MUTEX_UNLOCK(); } @@ -431,11 +450,10 @@ void spiSSClear(spi_t *spi) { return; } SPI_MUTEX_LOCK(); -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.cs_keep_active = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.cs_keep_active = 0; +#else + spi->dev->misc.cs_keep_active = 0; #endif SPI_MUTEX_UNLOCK(); } @@ -460,11 +478,10 @@ uint8_t spiGetDataMode(spi_t *spi) { if (!spi) { return 0; } -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - bool idleEdge = spi->dev->misc.ck_idle_edge; -#else +#if CONFIG_IDF_TARGET_ESP32 bool idleEdge = spi->dev->pin.ck_idle_edge; +#else + bool idleEdge = spi->dev->misc.ck_idle_edge; #endif bool outEdge = spi->dev->user.ck_out_edge; if (idleEdge) { @@ -486,39 +503,35 @@ void spiSetDataMode(spi_t *spi, uint8_t dataMode) { SPI_MUTEX_LOCK(); switch (dataMode) { case SPI_MODE1: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 0; +#else + spi->dev->misc.ck_idle_edge = 0; #endif spi->dev->user.ck_out_edge = 1; break; case SPI_MODE2: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 1; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 1; +#else + spi->dev->misc.ck_idle_edge = 1; #endif spi->dev->user.ck_out_edge = 1; break; case SPI_MODE3: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 1; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 1; +#else + spi->dev->misc.ck_idle_edge = 1; #endif spi->dev->user.ck_out_edge = 0; break; case SPI_MODE0: default: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 0; +#else + spi->dev->misc.ck_idle_edge = 0; #endif spi->dev->user.ck_out_edge = 0; break; @@ -564,11 +577,10 @@ static void spiInitBus(spi_t *spi) { spi->dev->slave.trans_done = 0; #endif spi->dev->slave.val = 0; -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.val = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.val = 0; +#else + spi->dev->misc.val = 0; #endif spi->dev->user.val = 0; spi->dev->user1.val = 0; @@ -648,18 +660,18 @@ spi_t *spiStartBus(uint8_t spi_num, uint32_t clockDiv, uint8_t dataMode, uint8_t DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI01_CLK_EN); DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI01_RST); } -#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#elif defined(__PERIPH_CTRL_ALLOW_LEGACY_API) periph_ll_reset(PERIPH_SPI2_MODULE); periph_ll_enable_clk_clear_rst(PERIPH_SPI2_MODULE); #endif SPI_MUTEX_LOCK(); spiInitBus(spi); -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->clk_gate.clk_en = 1; spi->dev->clk_gate.mst_clk_sel = 1; spi->dev->clk_gate.mst_clk_active = 1; -#if !CONFIG_IDF_TARGET_ESP32C6 && !CONFIG_IDF_TARGET_ESP32H2 +#if defined(CONFIG_IDF_TARGET_ESP32S3) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32C3) spi->dev->dma_conf.tx_seg_trans_clr_en = 1; spi->dev->dma_conf.rx_seg_trans_clr_en = 1; spi->dev->dma_conf.dma_seg_trans_en = 0; @@ -670,7 +682,7 @@ spi_t *spiStartBus(uint8_t spi_num, uint32_t clockDiv, uint8_t dataMode, uint8_t spi->dev->user.doutdin = 1; int i; for (i = 0; i < 16; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = 0x00000000; #else spi->dev->data_buf[i] = 0x00000000; @@ -697,7 +709,7 @@ void spiWaitReady(spi_t *spi) { #if CONFIG_IDF_TARGET_ESP32S2 #define usr_mosi_dbitlen usr_mosi_bit_len #define usr_miso_dbitlen usr_miso_bit_len -#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#elif !defined(CONFIG_IDF_TARGET_ESP32) #define usr_mosi_dbitlen ms_data_bitlen #define usr_miso_dbitlen ms_data_bitlen #define mosi_dlen ms_dlen @@ -718,13 +730,13 @@ void spiWrite(spi_t *spi, const uint32_t *data, uint8_t len) { spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif for (i = 0; i < len; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i]; #else spi->dev->data_buf[i] = data[i]; #endif } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -745,20 +757,20 @@ void spiTransfer(spi_t *spi, uint32_t *data, uint8_t len) { spi->dev->mosi_dlen.usr_mosi_dbitlen = (len * 32) - 1; spi->dev->miso_dlen.usr_miso_dbitlen = (len * 32) - 1; for (i = 0; i < len; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i]; #else spi->dev->data_buf[i] = data[i]; #endif } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); for (i = 0; i < len; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data[i] = spi->dev->data_buf[i].val; #else data[i] = spi->dev->data_buf[i]; @@ -776,13 +788,13 @@ void spiWriteByte(spi_t *spi, uint8_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -798,18 +810,18 @@ uint8_t spiTransferByte(spi_t *spi, uint8_t data) { SPI_MUTEX_LOCK(); spi->dev->mosi_dlen.usr_mosi_dbitlen = 7; spi->dev->miso_dlen.usr_miso_dbitlen = 7; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val & 0xFF; #else data = spi->dev->data_buf[0] & 0xFF; @@ -839,12 +851,12 @@ void spiWriteWord(spi_t *spi, uint16_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -863,18 +875,18 @@ uint16_t spiTransferWord(spi_t *spi, uint16_t data) { SPI_MUTEX_LOCK(); spi->dev->mosi_dlen.usr_mosi_dbitlen = 15; spi->dev->miso_dlen.usr_miso_dbitlen = 15; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val; #else data = spi->dev->data_buf[0]; @@ -898,12 +910,12 @@ void spiWriteLong(spi_t *spi, uint32_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -922,18 +934,18 @@ uint32_t spiTransferLong(spi_t *spi, uint32_t data) { SPI_MUTEX_LOCK(); spi->dev->mosi_dlen.usr_mosi_dbitlen = 31; spi->dev->miso_dlen.usr_miso_dbitlen = 31; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val; #else data = spi->dev->data_buf[0]; @@ -972,14 +984,14 @@ static void __spiTransferBytes(spi_t *spi, const uint8_t *data, uint8_t *out, ui spi->dev->miso_dlen.usr_miso_dbitlen = ((bytes * 8) - 1); for (i = 0; i < words; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = wordsBuf[i]; //copy buffer to spi fifo #else spi->dev->data_buf[i] = wordsBuf[i]; //copy buffer to spi fifo #endif } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -989,7 +1001,7 @@ static void __spiTransferBytes(spi_t *spi, const uint8_t *data, uint8_t *out, ui if (out) { for (i = 0; i < words; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 wordsBuf[i] = spi->dev->data_buf[i].val; //copy spi fifo to buffer #else wordsBuf[i] = spi->dev->data_buf[i]; //copy spi fifo to buffer @@ -1061,39 +1073,35 @@ void spiTransaction(spi_t *spi, uint32_t clockDiv, uint8_t dataMode, uint8_t bit spi->dev->clock.val = clockDiv; switch (dataMode) { case SPI_MODE1: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 0; +#else + spi->dev->misc.ck_idle_edge = 0; #endif spi->dev->user.ck_out_edge = 1; break; case SPI_MODE2: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 1; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 1; +#else + spi->dev->misc.ck_idle_edge = 1; #endif spi->dev->user.ck_out_edge = 1; break; case SPI_MODE3: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 1; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 1; +#else + spi->dev->misc.ck_idle_edge = 1; #endif spi->dev->user.ck_out_edge = 0; break; case SPI_MODE0: default: -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 \ - || CONFIG_IDF_TARGET_ESP32H2 - spi->dev->misc.ck_idle_edge = 0; -#else +#if CONFIG_IDF_TARGET_ESP32 spi->dev->pin.ck_idle_edge = 0; +#else + spi->dev->misc.ck_idle_edge = 0; #endif spi->dev->user.ck_out_edge = 0; break; @@ -1105,7 +1113,7 @@ void spiTransaction(spi_t *spi, uint32_t clockDiv, uint8_t dataMode, uint8_t bit spi->dev->ctrl.wr_bit_order = 1; spi->dev->ctrl.rd_bit_order = 1; } -#if CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) // Sync new config with hardware, fixes https://github.com/espressif/arduino-esp32/issues/9221 spi->dev->cmd.update = 1; while (spi->dev->cmd.update); @@ -1134,12 +1142,12 @@ void ARDUINO_ISR_ATTR spiWriteByteNL(spi_t *spi, uint8_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1153,18 +1161,18 @@ uint8_t spiTransferByteNL(spi_t *spi, uint8_t data) { } spi->dev->mosi_dlen.usr_mosi_dbitlen = 7; spi->dev->miso_dlen.usr_miso_dbitlen = 7; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val & 0xFF; #else data = spi->dev->data_buf[0] & 0xFF; @@ -1183,12 +1191,12 @@ void ARDUINO_ISR_ATTR spiWriteShortNL(spi_t *spi, uint16_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1205,18 +1213,18 @@ uint16_t spiTransferShortNL(spi_t *spi, uint16_t data) { } spi->dev->mosi_dlen.usr_mosi_dbitlen = 15; spi->dev->miso_dlen.usr_miso_dbitlen = 15; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val & 0xFFFF; #else data = spi->dev->data_buf[0] & 0xFFFF; @@ -1238,12 +1246,12 @@ void ARDUINO_ISR_ATTR spiWriteLongNL(spi_t *spi, uint32_t data) { #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32 spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1260,18 +1268,18 @@ uint32_t spiTransferLongNL(spi_t *spi, uint32_t data) { } spi->dev->mosi_dlen.usr_mosi_dbitlen = 31; spi->dev->miso_dlen.usr_miso_dbitlen = 31; -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val; #else data = spi->dev->data_buf[0]; @@ -1302,13 +1310,13 @@ void spiWriteNL(spi_t *spi, const void *data_in, uint32_t len) { spi->dev->miso_dlen.usr_miso_dbitlen = 0; #endif for (size_t i = 0; i < c_longs; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i]; #else spi->dev->data_buf[i] = data[i]; #endif } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1341,7 +1349,7 @@ void spiTransferBytesNL(spi_t *spi, const void *data_in, uint8_t *data_out, uint spi->dev->miso_dlen.usr_miso_dbitlen = (c_len * 8) - 1; if (data) { for (size_t i = 0; i < c_longs; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i]; #else spi->dev->data_buf[i] = data[i]; @@ -1349,14 +1357,14 @@ void spiTransferBytesNL(spi_t *spi, const void *data_in, uint8_t *data_out, uint } } else { for (size_t i = 0; i < c_longs; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = 0xFFFFFFFF; #else spi->dev->data_buf[i] = 0xFFFFFFFF; #endif } } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1365,13 +1373,13 @@ void spiTransferBytesNL(spi_t *spi, const void *data_in, uint8_t *data_out, uint if (result) { if (c_len & 3) { for (size_t i = 0; i < (c_longs - 1); i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 result[i] = spi->dev->data_buf[i].val; #else result[i] = spi->dev->data_buf[i]; #endif } -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 uint32_t last_data = spi->dev->data_buf[c_longs - 1].val; #else uint32_t last_data = spi->dev->data_buf[c_longs - 1]; @@ -1383,7 +1391,7 @@ void spiTransferBytesNL(spi_t *spi, const void *data_in, uint8_t *data_out, uint } } else { for (size_t i = 0; i < c_longs; i++) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 result[i] = spi->dev->data_buf[i].val; #else result[i] = spi->dev->data_buf[i]; @@ -1425,18 +1433,18 @@ void spiTransferBitsNL(spi_t *spi, uint32_t data, uint32_t *out, uint8_t bits) { spi->dev->mosi_dlen.usr_mosi_dbitlen = (bits - 1); spi->dev->miso_dlen.usr_miso_dbitlen = (bits - 1); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[0].val = data; #else spi->dev->data_buf[0] = data; #endif -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif spi->dev->cmd.usr = 1; while (spi->dev->cmd.usr); -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 data = spi->dev->data_buf[0].val; #else data = spi->dev->data_buf[0]; @@ -1477,34 +1485,34 @@ void ARDUINO_ISR_ATTR spiWritePixelsNL(spi_t *spi, const void *data_in, uint32_t if (msb) { if (l_bytes && i == (c_longs - 1)) { if (l_bytes == 2) { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 MSB_16_SET(spi->dev->data_buf[i].val, data[i]); #else MSB_16_SET(spi->dev->data_buf[i], data[i]); #endif } else { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i] & 0xFF; #else spi->dev->data_buf[i] = data[i] & 0xFF; #endif } } else { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 MSB_PIX_SET(spi->dev->data_buf[i].val, data[i]); #else MSB_PIX_SET(spi->dev->data_buf[i], data[i]); #endif } } else { -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 spi->dev->data_buf[i].val = data[i]; #else spi->dev->data_buf[i] = data[i]; #endif } } -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) spi->dev->cmd.update = 1; while (spi->dev->cmd.update); #endif @@ -1528,7 +1536,7 @@ typedef union { uint32_t clkcnt_l : 6; /*it must be equal to spi_clkcnt_N.*/ uint32_t clkcnt_h : 6; /*it must be floor((spi_clkcnt_N+1)/2-1).*/ uint32_t clkcnt_n : 6; /*it is the divider of spi_clk. So spi_clk frequency is system/(spi_clkdiv_pre+1)/(spi_clkcnt_N+1)*/ -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) uint32_t clkdiv_pre : 4; /*it is pre-divider of spi_clk.*/ uint32_t reserved : 9; /*reserved*/ #else @@ -1573,7 +1581,7 @@ uint32_t spiFrequencyToClockDiv(uint32_t freq) { while (calPreVari++ <= 1) { calPre = (((apb_freq / (reg.clkcnt_n + 1)) / freq) - 1) + calPreVari; -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if !defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_IDF_TARGET_ESP32S2) if (calPre > 0xF) { reg.clkdiv_pre = 0xF; #else diff --git a/cores/esp32/esp32-hal-spi.h b/cores/esp32/esp32-hal-spi.h index a238cada87d..b77abff7854 100644 --- a/cores/esp32/esp32-hal-spi.h +++ b/cores/esp32/esp32-hal-spi.h @@ -28,10 +28,7 @@ extern "C" { #define SPI_HAS_TRANSACTION -#if CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32S3 -#define FSPI 0 -#define HSPI 1 -#elif CONFIG_IDF_TARGET_ESP32S2 +#ifdef CONFIG_IDF_TARGET_ESP32S2 #define FSPI 1 //SPI 1 bus. ESP32S2: for external memory only (can use the same data lines but different SS) #define HSPI 2 //SPI 2 bus. ESP32S2: external memory or device - it can be matrixed to any pins #define SPI2 2 // Another name for ESP32S2 SPI 2 @@ -40,6 +37,9 @@ extern "C" { #define FSPI 1 //SPI 1 bus attached to the flash (can use the same data lines but different SS) #define HSPI 2 //SPI 2 bus normally mapped to pins 12 - 15, but can be matrixed to any pins #define VSPI 3 //SPI 3 bus normally attached to pins 5, 18, 19 and 23, but can be matrixed to any pins +#else +#define FSPI 0 +#define HSPI 1 #endif // This defines are not representing the real Divider of the ESP32 diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c index 764b7dbb73f..4c0ed92656c 100644 --- a/cores/esp32/esp32-hal-touch.c +++ b/cores/esp32/esp32-hal-touch.c @@ -14,6 +14,10 @@ #include "soc/soc_caps.h" #if SOC_TOUCH_SENSOR_SUPPORTED +#if SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 +// ToDo: Implement touch sensor for ESP32P4 +#warning "Touch sensor not implemented for ESP32P4 yet" +#else #include "driver/touch_sensor.h" #include "esp32-hal-touch.h" #include "esp32-hal-periman.h" @@ -22,7 +26,7 @@ Internal Private Touch Data Structure and Functions */ -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 static uint16_t __touchSleepCycles = 0x1000; static uint16_t __touchMeasureCycles = 0x1000; #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 @@ -51,7 +55,7 @@ static bool initialized = false; static bool channels_initialized[SOC_TOUCH_SENSOR_NUM] = {false}; static void ARDUINO_ISR_ATTR __touchISR(void *arg) { -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 uint32_t pad_intr = touch_pad_get_status(); //clear interrupt touch_pad_clear_status(); @@ -93,7 +97,7 @@ static void ARDUINO_ISR_ATTR __touchISR(void *arg) { static void __touchSetCycles(uint16_t measure, uint16_t sleep) { __touchSleepCycles = sleep; __touchMeasureCycles = measure; -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 touch_pad_set_measurement_clock_cycles(measure); #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 touch_pad_set_charge_discharge_times(measure); @@ -123,7 +127,7 @@ static void __touchInit() { esp_err_t err = ESP_OK; -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 err = touch_pad_init(); if (err != ESP_OK) { goto err; @@ -143,7 +147,7 @@ static void __touchInit() { if (err != ESP_OK) { goto err; } - touch_pad_intr_enable(); // returns ESP_OK + touch_pad_intr_enable(); // returns ESP_OK #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 err = touch_pad_init(); if (err != ESP_OK) { @@ -179,11 +183,11 @@ static void __touchChannelInit(int pad) { return; } -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; touch_pad_config(pad, TOUCH_PAD_THRESHOLD_MAX); // returns ESP_OK -#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; touch_pad_config(pad); // returns ESP_OK @@ -270,7 +274,7 @@ static void __touchDettachInterrupt(uint8_t pin) { External Public Touch API Functions */ -#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC +#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC void touchInterruptSetThresholdDirection(bool mustbeLower) { if (mustbeLower) { touch_pad_set_trigger_mode(TOUCH_TRIGGER_BELOW); @@ -324,4 +328,5 @@ extern void touchAttachInterruptArg(uint8_t, voidArgFuncPtr, void *, touch_value extern void touchDetachInterrupt(uint8_t) __attribute__((weak, alias("__touchDettachInterrupt"))); extern void touchSetCycles(uint16_t, uint16_t) __attribute__((weak, alias("__touchSetCycles"))); +#endif /* SOC_TOUCH_SENSOR_VERSION == 3 */ #endif /* SOC_TOUCH_SENSOR_SUPPORTED */ diff --git a/cores/esp32/esp32-hal-touch.h b/cores/esp32/esp32-hal-touch.h index 115d6cdc9cf..cc140d81bb0 100644 --- a/cores/esp32/esp32-hal-touch.h +++ b/cores/esp32/esp32-hal-touch.h @@ -37,6 +37,8 @@ extern "C" { typedef uint16_t touch_value_t; #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2 ESP32S3 typedef uint32_t touch_value_t; +#elif SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 +typedef uint32_t touch_value_t; #endif /* diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 2af23e075cc..82c9d8808d0 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -625,7 +625,7 @@ void uartSetRxInvert(uart_t *uart, bool invert) { if (uart == NULL) { return; } -#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 // POTENTIAL ISSUE :: original code only set/reset rxd_inv bit // IDF or LL set/reset the whole inv_mask! // if (invert) @@ -898,7 +898,7 @@ int log_printfv(const char *format, va_list arg) { #endif */ #if (ARDUINO_USB_CDC_ON_BOOT == 1 && ARDUINO_USB_MODE == 0) || CONFIG_IDF_TARGET_ESP32C3 \ - || ((CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C6) && ARDUINO_USB_CDC_ON_BOOT == 1) + || ((CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32P4) && ARDUINO_USB_CDC_ON_BOOT == 1) vsnprintf(temp, len + 1, format, arg); ets_printf("%s", temp); #else @@ -1105,6 +1105,20 @@ unsigned long uartDetectBaudrate(uart_t *uart) { */ // gets the right TX or RX SIGNAL, based on the UART number from gpio_sig_map.h +#ifdef CONFIG_IDF_TARGET_ESP32P4 +#define UART_TX_SIGNAL(uartNumber) \ + (uartNumber == UART_NUM_0 \ + ? UART0_TXD_PAD_OUT_IDX \ + : (uartNumber == UART_NUM_1 \ + ? UART1_TXD_PAD_OUT_IDX \ + : (uartNumber == UART_NUM_2 ? UART2_TXD_PAD_OUT_IDX : (uartNumber == UART_NUM_3 ? UART3_TXD_PAD_OUT_IDX : UART4_TXD_PAD_OUT_IDX)))) +#define UART_RX_SIGNAL(uartNumber) \ + (uartNumber == UART_NUM_0 \ + ? UART0_RXD_PAD_IN_IDX \ + : (uartNumber == UART_NUM_1 \ + ? UART1_RXD_PAD_IN_IDX \ + : (uartNumber == UART_NUM_2 ? UART2_RXD_PAD_IN_IDX : (uartNumber == UART_NUM_3 ? UART3_RXD_PAD_IN_IDX : UART4_RXD_PAD_IN_IDX)))) +#else #if SOC_UART_HP_NUM > 2 #define UART_TX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0TXD_OUT_IDX : (uartNumber == UART_NUM_1 ? U1TXD_OUT_IDX : U2TXD_OUT_IDX)) #define UART_RX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0RXD_IN_IDX : (uartNumber == UART_NUM_1 ? U1RXD_IN_IDX : U2RXD_IN_IDX)) @@ -1112,6 +1126,8 @@ unsigned long uartDetectBaudrate(uart_t *uart) { #define UART_TX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0TXD_OUT_IDX : U1TXD_OUT_IDX) #define UART_RX_SIGNAL(uartNumber) (uartNumber == UART_NUM_0 ? U0RXD_IN_IDX : U1RXD_IN_IDX) #endif +#endif // ifdef CONFIG_IDF_TARGET_ESP32P4 + /* This function internally binds defined UARTs TX signal with defined RX pin of any UART (same or different). This creates a loop that lets us receive anything we send on the UART without external wires. diff --git a/docs/en/lib_builder.rst b/docs/en/lib_builder.rst index 3d28761ab2d..fc488566878 100644 --- a/docs/en/lib_builder.rst +++ b/docs/en/lib_builder.rst @@ -157,6 +157,7 @@ This build command will build for the ESP32-S3 target. You can specify other tar * esp32c3 * esp32c6 * esp32h2 +* esp32p4 Set Build Type ^^^^^^^^^^^^^^ diff --git a/idf_component.yml b/idf_component.yml index 4b3e582d256..3b83650bf5b 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -21,6 +21,7 @@ files: - "variants/esp32c3/**/*" - "variants/esp32c6/**/*" - "variants/esp32h2/**/*" + - "variants/esp32p4/**/*" exclude: - "docs/" - "docs/**/*" diff --git a/libraries/ArduinoOTA/examples/BasicOTA/ci.json b/libraries/ArduinoOTA/examples/BasicOTA/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ArduinoOTA/examples/BasicOTA/ci.json +++ b/libraries/ArduinoOTA/examples/BasicOTA/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/AsyncUDP/examples/AsyncUDPClient/ci.json b/libraries/AsyncUDP/examples/AsyncUDPClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/AsyncUDP/examples/AsyncUDPClient/ci.json +++ b/libraries/AsyncUDP/examples/AsyncUDPClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/AsyncUDP/examples/AsyncUDPMulticastServer/ci.json b/libraries/AsyncUDP/examples/AsyncUDPMulticastServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/AsyncUDP/examples/AsyncUDPMulticastServer/ci.json +++ b/libraries/AsyncUDP/examples/AsyncUDPMulticastServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/AsyncUDP/examples/AsyncUDPServer/ci.json b/libraries/AsyncUDP/examples/AsyncUDPServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/AsyncUDP/examples/AsyncUDPServer/ci.json +++ b/libraries/AsyncUDP/examples/AsyncUDPServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/BLE/examples/BLE5_extended_scan/ci.json b/libraries/BLE/examples/BLE5_extended_scan/ci.json index edef5051e09..e97e4cf7fea 100644 --- a/libraries/BLE/examples/BLE5_extended_scan/ci.json +++ b/libraries/BLE/examples/BLE5_extended_scan/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/BLE5_multi_advertising/ci.json b/libraries/BLE/examples/BLE5_multi_advertising/ci.json index edef5051e09..fc9f75986fe 100644 --- a/libraries/BLE/examples/BLE5_multi_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_multi_advertising/ci.json @@ -1,6 +1,6 @@ { "targets": { - "esp32": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json index edef5051e09..a034e239a3f 100644 --- a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json @@ -1,6 +1,10 @@ { "targets": { "esp32": false, - "esp32s2": false + "esp32c2": false, + "esp32c3": false, + "esp32p4": false, + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/BLE/examples/BLE5_periodic_sync/ci.json b/libraries/BLE/examples/BLE5_periodic_sync/ci.json index edef5051e09..715becda6cb 100644 --- a/libraries/BLE/examples/BLE5_periodic_sync/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_sync/ci.json @@ -1,6 +1,10 @@ { "targets": { "esp32": false, + "esp32c3": false, + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Beacon_Scanner/ci.json b/libraries/BLE/examples/Beacon_Scanner/ci.json index 1443137ab0d..ee810400be6 100644 --- a/libraries/BLE/examples/Beacon_Scanner/ci.json +++ b/libraries/BLE/examples/Beacon_Scanner/ci.json @@ -1,5 +1,9 @@ { "targets": { + "esp32c3": false, + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Client/ci.json b/libraries/BLE/examples/Client/ci.json index 1443137ab0d..eb6596c4a37 100644 --- a/libraries/BLE/examples/Client/ci.json +++ b/libraries/BLE/examples/Client/ci.json @@ -1,5 +1,7 @@ { "targets": { + "esp32c3": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json b/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json index 521ae8f5ff1..156dda6560c 100644 --- a/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json +++ b/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/EddystoneURL_Beacon/ci.json b/libraries/BLE/examples/EddystoneURL_Beacon/ci.json index 521ae8f5ff1..156dda6560c 100644 --- a/libraries/BLE/examples/EddystoneURL_Beacon/ci.json +++ b/libraries/BLE/examples/EddystoneURL_Beacon/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Notify/ci.json b/libraries/BLE/examples/Notify/ci.json index 1443137ab0d..156dda6560c 100644 --- a/libraries/BLE/examples/Notify/ci.json +++ b/libraries/BLE/examples/Notify/ci.json @@ -1,5 +1,7 @@ { "targets": { + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Scan/ci.json b/libraries/BLE/examples/Scan/ci.json index 1443137ab0d..fc9f75986fe 100644 --- a/libraries/BLE/examples/Scan/ci.json +++ b/libraries/BLE/examples/Scan/ci.json @@ -1,5 +1,6 @@ { "targets": { + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Server/ci.json b/libraries/BLE/examples/Server/ci.json index 1443137ab0d..a034e239a3f 100644 --- a/libraries/BLE/examples/Server/ci.json +++ b/libraries/BLE/examples/Server/ci.json @@ -1,5 +1,10 @@ { "targets": { - "esp32s2": false + "esp32": false, + "esp32c2": false, + "esp32c3": false, + "esp32p4": false, + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/BLE/examples/Server_multiconnect/ci.json b/libraries/BLE/examples/Server_multiconnect/ci.json index 1443137ab0d..715becda6cb 100644 --- a/libraries/BLE/examples/Server_multiconnect/ci.json +++ b/libraries/BLE/examples/Server_multiconnect/ci.json @@ -1,5 +1,10 @@ { "targets": { + "esp32": false, + "esp32c3": false, + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/UART/ci.json b/libraries/BLE/examples/UART/ci.json index 1443137ab0d..ee810400be6 100644 --- a/libraries/BLE/examples/UART/ci.json +++ b/libraries/BLE/examples/UART/ci.json @@ -1,5 +1,9 @@ { "targets": { + "esp32c3": false, + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/Write/ci.json b/libraries/BLE/examples/Write/ci.json index 1443137ab0d..eb6596c4a37 100644 --- a/libraries/BLE/examples/Write/ci.json +++ b/libraries/BLE/examples/Write/ci.json @@ -1,5 +1,7 @@ { "targets": { + "esp32c3": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BLE/examples/iBeacon/ci.json b/libraries/BLE/examples/iBeacon/ci.json index 1443137ab0d..156dda6560c 100644 --- a/libraries/BLE/examples/iBeacon/ci.json +++ b/libraries/BLE/examples/iBeacon/ci.json @@ -1,5 +1,7 @@ { "targets": { + "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json b/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json +++ b/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json b/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json +++ b/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json b/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json +++ b/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json b/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json +++ b/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/DNSServer/examples/CaptivePortal/ci.json b/libraries/DNSServer/examples/CaptivePortal/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/DNSServer/examples/CaptivePortal/ci.json +++ b/libraries/DNSServer/examples/CaptivePortal/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/ci.json b/libraries/ESP32/examples/Camera/CameraWebServer/ci.json index 25c42144223..cd679adefad 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/ci.json +++ b/libraries/ESP32/examples/Camera/CameraWebServer/ci.json @@ -2,6 +2,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/DeepSleep/ExternalWakeUp/ci.json b/libraries/ESP32/examples/DeepSleep/ExternalWakeUp/ci.json index 25c42144223..cd679adefad 100644 --- a/libraries/ESP32/examples/DeepSleep/ExternalWakeUp/ci.json +++ b/libraries/ESP32/examples/DeepSleep/ExternalWakeUp/ci.json @@ -2,6 +2,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code/ci.json b/libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code/ci.json +++ b/libraries/ESP32/examples/DeepSleep/SmoothBlink_ULP_Code/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP32/examples/RMT/RMTLoopback/RMTLoopback.ino b/libraries/ESP32/examples/RMT/RMTLoopback/RMTLoopback.ino index eada1c7ea6b..17e7af290bf 100644 --- a/libraries/ESP32/examples/RMT/RMTLoopback/RMTLoopback.ino +++ b/libraries/ESP32/examples/RMT/RMTLoopback/RMTLoopback.ino @@ -21,7 +21,7 @@ * */ -#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#if CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 // ESP32 C3 has only 2 channels for RX and 2 for TX, thus MAX RMT_MEM is 128 #define RMT_TX_PIN 4 #define RMT_RX_PIN 5 diff --git a/libraries/ESP32/examples/ResetReason/ResetReason/ResetReason.ino b/libraries/ESP32/examples/ResetReason/ResetReason/ResetReason.ino index 3c9dbb9b12f..0104c6422f2 100644 --- a/libraries/ESP32/examples/ResetReason/ResetReason/ResetReason.ino +++ b/libraries/ESP32/examples/ResetReason/ResetReason/ResetReason.ino @@ -26,6 +26,8 @@ #include "esp32c6/rom/rtc.h" #elif CONFIG_IDF_TARGET_ESP32H2 #include "esp32h2/rom/rtc.h" +#elif CONFIG_IDF_TARGET_ESP32P4 +#include "esp32p4/rom/rtc.h" #else #error Target CONFIG_IDF_TARGET is not supported #endif diff --git a/libraries/ESP32/examples/Time/SimpleTime/ci.json b/libraries/ESP32/examples/Time/SimpleTime/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESP32/examples/Time/SimpleTime/ci.json +++ b/libraries/ESP32/examples/Time/SimpleTime/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/ci.json b/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/ci.json index 7cfaa76784d..7b73237d754 100644 --- a/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/ci.json +++ b/libraries/ESP32/examples/Zigbee/Zigbee_Light_Bulb/ci.json @@ -4,6 +4,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP32/examples/Zigbee/Zigbee_Light_Switch/ci.json b/libraries/ESP32/examples/Zigbee/Zigbee_Light_Switch/ci.json index 7cfaa76784d..7b73237d754 100644 --- a/libraries/ESP32/examples/Zigbee/Zigbee_Light_Switch/ci.json +++ b/libraries/ESP32/examples/Zigbee/Zigbee_Light_Switch/ci.json @@ -4,6 +4,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP32/examples/Zigbee/Zigbee_Temperature_Sensor/ci.json b/libraries/ESP32/examples/Zigbee/Zigbee_Temperature_Sensor/ci.json index 7cfaa76784d..7b73237d754 100644 --- a/libraries/ESP32/examples/Zigbee/Zigbee_Temperature_Sensor/ci.json +++ b/libraries/ESP32/examples/Zigbee/Zigbee_Temperature_Sensor/ci.json @@ -4,6 +4,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP32/examples/Zigbee/Zigbee_Thermostat/ci.json b/libraries/ESP32/examples/Zigbee/Zigbee_Thermostat/ci.json index 7cfaa76784d..7b73237d754 100644 --- a/libraries/ESP32/examples/Zigbee/Zigbee_Thermostat/ci.json +++ b/libraries/ESP32/examples/Zigbee/Zigbee_Thermostat/ci.json @@ -4,6 +4,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP_SR/examples/Basic/ci.json b/libraries/ESP_SR/examples/Basic/ci.json index dca52699ab3..98703e79183 100644 --- a/libraries/ESP_SR/examples/Basic/ci.json +++ b/libraries/ESP_SR/examples/Basic/ci.json @@ -9,6 +9,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/ESPmDNS/examples/mDNS-SD_Extended/ci.json b/libraries/ESPmDNS/examples/mDNS-SD_Extended/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESPmDNS/examples/mDNS-SD_Extended/ci.json +++ b/libraries/ESPmDNS/examples/mDNS-SD_Extended/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESPmDNS/examples/mDNS_Web_Server/ci.json b/libraries/ESPmDNS/examples/mDNS_Web_Server/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/ESPmDNS/examples/mDNS_Web_Server/ci.json +++ b/libraries/ESPmDNS/examples/mDNS_Web_Server/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Ethernet/examples/ETH_WIFI_BRIDGE/ci.json b/libraries/Ethernet/examples/ETH_WIFI_BRIDGE/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Ethernet/examples/ETH_WIFI_BRIDGE/ci.json +++ b/libraries/Ethernet/examples/ETH_WIFI_BRIDGE/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index bc5a94484da..13f9c11f7fe 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -30,7 +30,9 @@ #include "driver/gpio.h" #include "driver/spi_master.h" #if CONFIG_ETH_USE_ESP32_EMAC +#if defined __has_include && __has_include("soc/emac_ext_struct.h") #include "soc/emac_ext_struct.h" +#endif /* __has_include("soc/emac_ext_struct.h" */ #include "soc/rtc.h" #endif /* CONFIG_ETH_USE_ESP32_EMAC */ #include "esp32-hal-periman.h" @@ -146,7 +148,7 @@ void ETHClass::setTaskStackSize(size_t size) { _task_stack_size = size; } -#if CONFIG_ETH_USE_ESP32_EMAC +#if (CONFIG_ETH_USE_ESP32_EMAC && !defined(CONFIG_IDF_TARGET_ESP32P4)) bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, int power, eth_clock_mode_t clock_mode) { esp_err_t ret = ESP_OK; if (_eth_index > 2) { @@ -898,7 +900,7 @@ void ETHClass::end(void) { #if ETH_SPI_SUPPORTS_CUSTOM _spi = NULL; #endif -#if CONFIG_ETH_USE_ESP32_EMAC +#if (CONFIG_ETH_USE_ESP32_EMAC && !defined(CONFIG_IDF_TARGET_ESP32P4)) perimanSetBusDeinit(ESP32_BUS_TYPE_ETHERNET_RMII, empty_ethDetachBus); perimanSetBusDeinit(ESP32_BUS_TYPE_ETHERNET_CLK, empty_ethDetachBus); perimanSetBusDeinit(ESP32_BUS_TYPE_ETHERNET_MCD, empty_ethDetachBus); diff --git a/libraries/FFat/examples/FFat_time/ci.json b/libraries/FFat/examples/FFat_time/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/FFat/examples/FFat_time/ci.json +++ b/libraries/FFat/examples/FFat_time/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/Authorization/ci.json b/libraries/HTTPClient/examples/Authorization/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/Authorization/ci.json +++ b/libraries/HTTPClient/examples/Authorization/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/BasicHttpClient/ci.json b/libraries/HTTPClient/examples/BasicHttpClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/BasicHttpClient/ci.json +++ b/libraries/HTTPClient/examples/BasicHttpClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/BasicHttpsClient/ci.json b/libraries/HTTPClient/examples/BasicHttpsClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/BasicHttpsClient/ci.json +++ b/libraries/HTTPClient/examples/BasicHttpsClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json +++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/ReuseConnection/ci.json b/libraries/HTTPClient/examples/ReuseConnection/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/ReuseConnection/ci.json +++ b/libraries/HTTPClient/examples/ReuseConnection/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPClient/examples/StreamHttpClient/ci.json b/libraries/HTTPClient/examples/StreamHttpClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPClient/examples/StreamHttpClient/ci.json +++ b/libraries/HTTPClient/examples/StreamHttpClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPUpdate/examples/httpUpdate/ci.json b/libraries/HTTPUpdate/examples/httpUpdate/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPUpdate/examples/httpUpdate/ci.json +++ b/libraries/HTTPUpdate/examples/httpUpdate/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPUpdate/examples/httpUpdateSPIFFS/ci.json b/libraries/HTTPUpdate/examples/httpUpdateSPIFFS/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPUpdate/examples/httpUpdateSPIFFS/ci.json +++ b/libraries/HTTPUpdate/examples/httpUpdateSPIFFS/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json b/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json +++ b/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/HTTPUpdateServer/examples/WebUpdater/ci.json b/libraries/HTTPUpdateServer/examples/WebUpdater/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/HTTPUpdateServer/examples/WebUpdater/ci.json +++ b/libraries/HTTPUpdateServer/examples/WebUpdater/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Insights/examples/DiagnosticsSmokeTest/ci.json b/libraries/Insights/examples/DiagnosticsSmokeTest/ci.json index 90f5ecfe4d2..0d8130e329a 100644 --- a/libraries/Insights/examples/DiagnosticsSmokeTest/ci.json +++ b/libraries/Insights/examples/DiagnosticsSmokeTest/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Insights/examples/MinimalDiagnostics/ci.json b/libraries/Insights/examples/MinimalDiagnostics/ci.json index 90f5ecfe4d2..0d8130e329a 100644 --- a/libraries/Insights/examples/MinimalDiagnostics/ci.json +++ b/libraries/Insights/examples/MinimalDiagnostics/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/LittleFS/examples/LITTLEFS_time/ci.json b/libraries/LittleFS/examples/LITTLEFS_time/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/LittleFS/examples/LITTLEFS_time/ci.json +++ b/libraries/LittleFS/examples/LITTLEFS_time/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetBIOS/examples/ESP_NBNST/ci.json b/libraries/NetBIOS/examples/ESP_NBNST/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetBIOS/examples/ESP_NBNST/ci.json +++ b/libraries/NetBIOS/examples/ESP_NBNST/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientInsecure/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientInsecure/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientInsecure/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientInsecure/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientPSK/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientPSK/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientPSK/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientPSK/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureProtocolUpgrade/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientShowPeerCredentials/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientTrustOnFirstUse/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/OpenThread/examples/COAP/coap_lamp/ci.json b/libraries/OpenThread/examples/COAP/coap_lamp/ci.json index c60d9179992..a034e239a3f 100644 --- a/libraries/OpenThread/examples/COAP/coap_lamp/ci.json +++ b/libraries/OpenThread/examples/COAP/coap_lamp/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c2": false, "esp32c3": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/OpenThread/examples/COAP/coap_switch/ci.json b/libraries/OpenThread/examples/COAP/coap_switch/ci.json index c60d9179992..715becda6cb 100644 --- a/libraries/OpenThread/examples/COAP/coap_switch/ci.json +++ b/libraries/OpenThread/examples/COAP/coap_switch/ci.json @@ -1,9 +1,10 @@ { "targets": { "esp32": false, - "esp32c2": false, "esp32c3": false, - "esp32s2": false, - "esp32s3": false + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, + "esp32s2": false } } diff --git a/libraries/OpenThread/examples/SimpleCLI/ci.json b/libraries/OpenThread/examples/SimpleCLI/ci.json index c60d9179992..ee810400be6 100644 --- a/libraries/OpenThread/examples/SimpleCLI/ci.json +++ b/libraries/OpenThread/examples/SimpleCLI/ci.json @@ -1,9 +1,9 @@ { "targets": { - "esp32": false, - "esp32c2": false, "esp32c3": false, - "esp32s2": false, - "esp32s3": false + "esp32c6": false, + "esp32h2": false, + "esp32p4": false, + "esp32s2": false } } diff --git a/libraries/OpenThread/examples/SimpleNode/ci.json b/libraries/OpenThread/examples/SimpleNode/ci.json index c60d9179992..eb6596c4a37 100644 --- a/libraries/OpenThread/examples/SimpleNode/ci.json +++ b/libraries/OpenThread/examples/SimpleNode/ci.json @@ -1,9 +1,7 @@ { "targets": { - "esp32": false, - "esp32c2": false, "esp32c3": false, - "esp32s2": false, - "esp32s3": false + "esp32p4": false, + "esp32s2": false } } diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json index c60d9179992..156dda6560c 100644 --- a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json +++ b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json @@ -1,9 +1,7 @@ { "targets": { - "esp32": false, - "esp32c2": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false + "esp32h2": false, + "esp32p4": false, + "esp32s2": false } } diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json index c60d9179992..a034e239a3f 100644 --- a/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json +++ b/libraries/OpenThread/examples/SimpleThreadNetwork/LeaderNode/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c2": false, "esp32c3": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json index c60d9179992..a034e239a3f 100644 --- a/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json +++ b/libraries/OpenThread/examples/SimpleThreadNetwork/RouterNode/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c2": false, "esp32c3": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/OpenThread/examples/ThreadScan/ci.json b/libraries/OpenThread/examples/ThreadScan/ci.json index c60d9179992..a034e239a3f 100644 --- a/libraries/OpenThread/examples/ThreadScan/ci.json +++ b/libraries/OpenThread/examples/ThreadScan/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c2": false, "esp32c3": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/OpenThread/examples/onReceive/ci.json b/libraries/OpenThread/examples/onReceive/ci.json index c60d9179992..a034e239a3f 100644 --- a/libraries/OpenThread/examples/onReceive/ci.json +++ b/libraries/OpenThread/examples/onReceive/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c2": false, "esp32c3": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/PPP/examples/PPP_WIFI_BRIDGE/ci.json b/libraries/PPP/examples/PPP_WIFI_BRIDGE/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/PPP/examples/PPP_WIFI_BRIDGE/ci.json +++ b/libraries/PPP/examples/PPP_WIFI_BRIDGE/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/PPP/src/PPP.cpp b/libraries/PPP/src/PPP.cpp index 28d6ddd8396..e77a78b77b7 100644 --- a/libraries/PPP/src/PPP.cpp +++ b/libraries/PPP/src/PPP.cpp @@ -7,6 +7,7 @@ #include #include "driver/uart.h" #include "hal/uart_ll.h" +#include "esp_private/uart_share_hw_ctrl.h" #define PPP_CMD_MODE_CHECK(x) \ if (_dce == NULL) { \ @@ -653,7 +654,10 @@ bool PPPClass::setBaudrate(int baudrate) { log_e("uart_get_sclk_freq failed with %d %s", err, esp_err_to_name(err)); return false; } - uart_ll_set_baudrate(UART_LL_GET_HW(_uart_num), (uint32_t)baudrate, sclk_freq); + + HP_UART_SRC_CLK_ATOMIC() { + uart_ll_set_baudrate(UART_LL_GET_HW(_uart_num), (uint32_t)baudrate, sclk_freq); + } return true; } diff --git a/libraries/RainMaker/examples/RMakerCustom/ci.json b/libraries/RainMaker/examples/RMakerCustom/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/RainMaker/examples/RMakerCustom/ci.json +++ b/libraries/RainMaker/examples/RMakerCustom/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/RainMaker/examples/RMakerCustomAirCooler/ci.json b/libraries/RainMaker/examples/RMakerCustomAirCooler/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/RainMaker/examples/RMakerCustomAirCooler/ci.json +++ b/libraries/RainMaker/examples/RMakerCustomAirCooler/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/RainMaker/examples/RMakerSonoffDualR3/ci.json b/libraries/RainMaker/examples/RMakerSonoffDualR3/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/RainMaker/examples/RMakerSonoffDualR3/ci.json +++ b/libraries/RainMaker/examples/RMakerSonoffDualR3/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/RainMaker/examples/RMakerSwitch/ci.json b/libraries/RainMaker/examples/RMakerSwitch/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/RainMaker/examples/RMakerSwitch/ci.json +++ b/libraries/RainMaker/examples/RMakerSwitch/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/SD/examples/SD_time/ci.json b/libraries/SD/examples/SD_time/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/SD/examples/SD_time/ci.json +++ b/libraries/SD/examples/SD_time/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/SD_MMC/examples/SD2USBMSC/ci.json b/libraries/SD_MMC/examples/SD2USBMSC/ci.json index 97ae5ee5616..715becda6cb 100644 --- a/libraries/SD_MMC/examples/SD2USBMSC/ci.json +++ b/libraries/SD_MMC/examples/SD2USBMSC/ci.json @@ -4,6 +4,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/SD_MMC/examples/SDMMC_Test/ci.json b/libraries/SD_MMC/examples/SDMMC_Test/ci.json index 35b6e255471..ee810400be6 100644 --- a/libraries/SD_MMC/examples/SDMMC_Test/ci.json +++ b/libraries/SD_MMC/examples/SDMMC_Test/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/SD_MMC/examples/SDMMC_time/ci.json b/libraries/SD_MMC/examples/SDMMC_time/ci.json index 35b6e255471..ee810400be6 100644 --- a/libraries/SD_MMC/examples/SDMMC_time/ci.json +++ b/libraries/SD_MMC/examples/SDMMC_time/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 6bbcf44d010..80cb150baa2 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -35,6 +35,7 @@ using namespace fs; SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { +#if !defined(CONFIG_IDF_TARGET_ESP32P4) #if defined(SOC_SDMMC_USE_GPIO_MATRIX) && defined(BOARD_HAS_SDMMC) _pin_clk = SDMMC_CLK; _pin_cmd = SDMMC_CMD; @@ -44,8 +45,9 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d2 = SDMMC_D2; _pin_d3 = SDMMC_D3; #endif // BOARD_HAS_1BIT_SDMMC +#endif // !defined(CONFIG_IDF_TARGET_ESP32P4) -#elif SOC_SDMMC_USE_IOMUX +#elif SOC_SDMMC_USE_IOMUX && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32) _pin_clk = SDMMC_SLOT1_IOMUX_PIN_NUM_CLK; _pin_cmd = SDMMC_SLOT1_IOMUX_PIN_NUM_CMD; _pin_d0 = SDMMC_SLOT1_IOMUX_PIN_NUM_D0; @@ -54,6 +56,16 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d2 = SDMMC_SLOT1_IOMUX_PIN_NUM_D2; _pin_d3 = SDMMC_SLOT1_IOMUX_PIN_NUM_D3; #endif // BOARD_HAS_1BIT_SDMMC + +#elif SOC_SDMMC_USE_IOMUX && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32P4) + _pin_clk = SDMMC_SLOT0_IOMUX_PIN_NUM_CLK; + _pin_cmd = SDMMC_SLOT0_IOMUX_PIN_NUM_CMD; + _pin_d0 = SDMMC_SLOT0_IOMUX_PIN_NUM_D0; +#ifndef BOARD_HAS_1BIT_SDMMC + _pin_d1 = SDMMC_SLOT0_IOMUX_PIN_NUM_D1; + _pin_d2 = SDMMC_SLOT0_IOMUX_PIN_NUM_D2; + _pin_d3 = SDMMC_SLOT0_IOMUX_PIN_NUM_D3; +#endif // BOARD_HAS_1BIT_SDMMC #endif } diff --git a/libraries/SPI/src/SPI.cpp b/libraries/SPI/src/SPI.cpp index 93c686a0d13..35e52f43e4d 100644 --- a/libraries/SPI/src/SPI.cpp +++ b/libraries/SPI/src/SPI.cpp @@ -83,7 +83,7 @@ void SPIClass::begin(int8_t sck, int8_t miso, int8_t mosi, int8_t ss) { _miso = (_spi_num == FSPI) ? MISO : -1; _mosi = (_spi_num == FSPI) ? MOSI : -1; _ss = (_spi_num == FSPI) ? SS : -1; -#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 +#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32P4 _sck = SCK; _miso = MISO; _mosi = MOSI; diff --git a/libraries/SPIFFS/examples/SPIFFS_time/ci.json b/libraries/SPIFFS/examples/SPIFFS_time/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/SPIFFS/examples/SPIFFS_time/ci.json +++ b/libraries/SPIFFS/examples/SPIFFS_time/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/SimpleBLE/examples/SimpleBleDevice/ci.json b/libraries/SimpleBLE/examples/SimpleBleDevice/ci.json index a571a89a877..eb6596c4a37 100644 --- a/libraries/SimpleBLE/examples/SimpleBleDevice/ci.json +++ b/libraries/SimpleBLE/examples/SimpleBleDevice/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32c3": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/Update/examples/AWS_S3_OTA_Update/ci.json b/libraries/Update/examples/AWS_S3_OTA_Update/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Update/examples/AWS_S3_OTA_Update/ci.json +++ b/libraries/Update/examples/AWS_S3_OTA_Update/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Update/examples/HTTPS_OTA_Update/ci.json b/libraries/Update/examples/HTTPS_OTA_Update/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Update/examples/HTTPS_OTA_Update/ci.json +++ b/libraries/Update/examples/HTTPS_OTA_Update/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Update/examples/HTTP_Client_AES_OTA_Update/ci.json b/libraries/Update/examples/HTTP_Client_AES_OTA_Update/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Update/examples/HTTP_Client_AES_OTA_Update/ci.json +++ b/libraries/Update/examples/HTTP_Client_AES_OTA_Update/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Update/examples/HTTP_Server_AES_OTA_Update/ci.json b/libraries/Update/examples/HTTP_Server_AES_OTA_Update/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Update/examples/HTTP_Server_AES_OTA_Update/ci.json +++ b/libraries/Update/examples/HTTP_Server_AES_OTA_Update/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Update/examples/OTAWebUpdater/ci.json b/libraries/Update/examples/OTAWebUpdater/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/Update/examples/OTAWebUpdater/ci.json +++ b/libraries/Update/examples/OTAWebUpdater/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/AdvancedWebServer/ci.json b/libraries/WebServer/examples/AdvancedWebServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/AdvancedWebServer/ci.json +++ b/libraries/WebServer/examples/AdvancedWebServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/FSBrowser/ci.json b/libraries/WebServer/examples/FSBrowser/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/FSBrowser/ci.json +++ b/libraries/WebServer/examples/FSBrowser/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/Filters/ci.json b/libraries/WebServer/examples/Filters/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/Filters/ci.json +++ b/libraries/WebServer/examples/Filters/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HelloServer/ci.json b/libraries/WebServer/examples/HelloServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HelloServer/ci.json +++ b/libraries/WebServer/examples/HelloServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpAdvancedAuth/ci.json b/libraries/WebServer/examples/HttpAdvancedAuth/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpAdvancedAuth/ci.json +++ b/libraries/WebServer/examples/HttpAdvancedAuth/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpAuthCallback/ci.json b/libraries/WebServer/examples/HttpAuthCallback/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpAuthCallback/ci.json +++ b/libraries/WebServer/examples/HttpAuthCallback/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpAuthCallbackInline/ci.json b/libraries/WebServer/examples/HttpAuthCallbackInline/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpAuthCallbackInline/ci.json +++ b/libraries/WebServer/examples/HttpAuthCallbackInline/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpBasicAuth/ci.json b/libraries/WebServer/examples/HttpBasicAuth/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpBasicAuth/ci.json +++ b/libraries/WebServer/examples/HttpBasicAuth/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpBasicAuthSHA1/ci.json b/libraries/WebServer/examples/HttpBasicAuthSHA1/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpBasicAuthSHA1/ci.json +++ b/libraries/WebServer/examples/HttpBasicAuthSHA1/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken/ci.json b/libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken/ci.json +++ b/libraries/WebServer/examples/HttpBasicAuthSHA1orBearerToken/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/MultiHomedServers/ci.json b/libraries/WebServer/examples/MultiHomedServers/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/MultiHomedServers/ci.json +++ b/libraries/WebServer/examples/MultiHomedServers/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/PathArgServer/ci.json b/libraries/WebServer/examples/PathArgServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/PathArgServer/ci.json +++ b/libraries/WebServer/examples/PathArgServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/SDWebServer/ci.json b/libraries/WebServer/examples/SDWebServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/SDWebServer/ci.json +++ b/libraries/WebServer/examples/SDWebServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/SimpleAuthentification/ci.json b/libraries/WebServer/examples/SimpleAuthentification/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/SimpleAuthentification/ci.json +++ b/libraries/WebServer/examples/SimpleAuthentification/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/UploadHugeFile/ci.json b/libraries/WebServer/examples/UploadHugeFile/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/UploadHugeFile/ci.json +++ b/libraries/WebServer/examples/UploadHugeFile/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/WebServer/ci.json b/libraries/WebServer/examples/WebServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/WebServer/ci.json +++ b/libraries/WebServer/examples/WebServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WebServer/examples/WebUpdate/ci.json b/libraries/WebServer/examples/WebUpdate/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WebServer/examples/WebUpdate/ci.json +++ b/libraries/WebServer/examples/WebUpdate/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/FTM/FTM_Initiator/ci.json b/libraries/WiFi/examples/FTM/FTM_Initiator/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/FTM/FTM_Initiator/ci.json +++ b/libraries/WiFi/examples/FTM/FTM_Initiator/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/FTM/FTM_Responder/ci.json b/libraries/WiFi/examples/FTM/FTM_Responder/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/FTM/FTM_Responder/ci.json +++ b/libraries/WiFi/examples/FTM/FTM_Responder/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/SimpleWiFiServer/ci.json b/libraries/WiFi/examples/SimpleWiFiServer/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/SimpleWiFiServer/ci.json +++ b/libraries/WiFi/examples/SimpleWiFiServer/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WPS/ci.json b/libraries/WiFi/examples/WPS/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WPS/ci.json +++ b/libraries/WiFi/examples/WPS/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiAccessPoint/ci.json b/libraries/WiFi/examples/WiFiAccessPoint/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiAccessPoint/ci.json +++ b/libraries/WiFi/examples/WiFiAccessPoint/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiBlueToothSwitch/ci.json b/libraries/WiFi/examples/WiFiBlueToothSwitch/ci.json index 521ae8f5ff1..156dda6560c 100644 --- a/libraries/WiFi/examples/WiFiBlueToothSwitch/ci.json +++ b/libraries/WiFi/examples/WiFiBlueToothSwitch/ci.json @@ -1,6 +1,7 @@ { "targets": { "esp32h2": false, + "esp32p4": false, "esp32s2": false } } diff --git a/libraries/WiFi/examples/WiFiClient/ci.json b/libraries/WiFi/examples/WiFiClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClient/ci.json +++ b/libraries/WiFi/examples/WiFiClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiClientBasic/ci.json b/libraries/WiFi/examples/WiFiClientBasic/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClientBasic/ci.json +++ b/libraries/WiFi/examples/WiFiClientBasic/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiClientConnect/ci.json b/libraries/WiFi/examples/WiFiClientConnect/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClientConnect/ci.json +++ b/libraries/WiFi/examples/WiFiClientConnect/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiClientEnterprise/ci.json b/libraries/WiFi/examples/WiFiClientEnterprise/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClientEnterprise/ci.json +++ b/libraries/WiFi/examples/WiFiClientEnterprise/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiClientEvents/ci.json b/libraries/WiFi/examples/WiFiClientEvents/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClientEvents/ci.json +++ b/libraries/WiFi/examples/WiFiClientEvents/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiClientStaticIP/ci.json b/libraries/WiFi/examples/WiFiClientStaticIP/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiClientStaticIP/ci.json +++ b/libraries/WiFi/examples/WiFiClientStaticIP/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiExtender/ci.json b/libraries/WiFi/examples/WiFiExtender/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiExtender/ci.json +++ b/libraries/WiFi/examples/WiFiExtender/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiIPv6/ci.json b/libraries/WiFi/examples/WiFiIPv6/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiIPv6/ci.json +++ b/libraries/WiFi/examples/WiFiIPv6/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiMulti/ci.json b/libraries/WiFi/examples/WiFiMulti/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiMulti/ci.json +++ b/libraries/WiFi/examples/WiFiMulti/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiMultiAdvanced/ci.json b/libraries/WiFi/examples/WiFiMultiAdvanced/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiMultiAdvanced/ci.json +++ b/libraries/WiFi/examples/WiFiMultiAdvanced/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiScan/ci.json b/libraries/WiFi/examples/WiFiScan/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiScan/ci.json +++ b/libraries/WiFi/examples/WiFiScan/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiScanAsync/ci.json b/libraries/WiFi/examples/WiFiScanAsync/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiScanAsync/ci.json +++ b/libraries/WiFi/examples/WiFiScanAsync/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiScanDualAntenna/ci.json b/libraries/WiFi/examples/WiFiScanDualAntenna/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiScanDualAntenna/ci.json +++ b/libraries/WiFi/examples/WiFiScanDualAntenna/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiScanTime/ci.json b/libraries/WiFi/examples/WiFiScanTime/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiScanTime/ci.json +++ b/libraries/WiFi/examples/WiFiScanTime/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiSmartConfig/ci.json b/libraries/WiFi/examples/WiFiSmartConfig/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiSmartConfig/ci.json +++ b/libraries/WiFi/examples/WiFiSmartConfig/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiTelnetToSerial/ci.json b/libraries/WiFi/examples/WiFiTelnetToSerial/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiTelnetToSerial/ci.json +++ b/libraries/WiFi/examples/WiFiTelnetToSerial/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFi/examples/WiFiUDPClient/ci.json b/libraries/WiFi/examples/WiFiUDPClient/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFi/examples/WiFiUDPClient/ci.json +++ b/libraries/WiFi/examples/WiFiUDPClient/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/WiFiProv/examples/WiFiProv/ci.json b/libraries/WiFiProv/examples/WiFiProv/ci.json index d8b3664bc65..ed63a39b4c0 100644 --- a/libraries/WiFiProv/examples/WiFiProv/ci.json +++ b/libraries/WiFiProv/examples/WiFiProv/ci.json @@ -1,5 +1,6 @@ { "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 701e77b3b21..21b3635bfcc 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -460,56 +460,42 @@ }, { "name": "esptool_py", - "version": "4.6", + "version": "4.8.0", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-src.tar.gz", - "archiveFileName": "esptool-v4.6-src.tar.gz", - "checksum": "SHA-256:22f9bad0cd1cea14e554ac1f4a6d8f67415ff7029a66ce9130756276e7264e5a", - "size": "99141" - }, - { - "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-src.tar.gz", - "archiveFileName": "esptool-v4.6-src.tar.gz", - "checksum": "SHA-256:22f9bad0cd1cea14e554ac1f4a6d8f67415ff7029a66ce9130756276e7264e5a", - "size": "99141" + "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-amd64.zip", + "archiveFileName": "esptool-v4.8.0-linux-amd64.zip", + "checksum": "SHA-256:e637adc204b74b980013e89dafce6e056401ec26c94e205b0158075a836c56c6", + "size": "64617780" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-src.tar.gz", - "archiveFileName": "esptool-v4.6-src.tar.gz", - "checksum": "SHA-256:22f9bad0cd1cea14e554ac1f4a6d8f67415ff7029a66ce9130756276e7264e5a", - "size": "99141" + "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-arm64.zip", + "archiveFileName": "esptool-v4.8.0-linux-arm64.zip", + "checksum": "SHA-256:c3a7749bed8d1929b0ad35743cc5557d60ecb81a10ffac28cb55ed1545e0223a", + "size": "54432155" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-src.tar.gz", - "archiveFileName": "esptool-v4.6-src.tar.gz", - "checksum": "SHA-256:22f9bad0cd1cea14e554ac1f4a6d8f67415ff7029a66ce9130756276e7264e5a", - "size": "99141" + "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-arm32.zip", + "archiveFileName": "esptool-v4.8.0-linux-arm32.zip", + "checksum": "SHA-256:b781a86b53a17d24e02996c0a7958f9b76f6873fc1cc07c64ab6326e19395570", + "size": "45858426" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-macos.tar.gz", - "archiveFileName": "esptool-v4.6-macos.tar.gz", - "checksum": "SHA-256:885ec69fcffdcb9e7c6eacd2589f13a45ce6bcb6742bea368ec3a73bcca6dd59", - "size": "5851297" + "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-macos.zip", + "archiveFileName": "esptool-v4.8.0-macos.zip", + "checksum": "SHA-256:73bba755d2da15ef18b8b8d8fe37c459d296648efb02d5449a3fc0035930306a", + "size": "29821710" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-win64.zip", - "archiveFileName": "esptool-v4.6-win64.zip", - "checksum": "SHA-256:c7c68cd1aa520cbfce488ff6a77818ece272272eb012831b9d9ab1280a7c393f", - "size": "6638480" - }, - { - "host": "i686-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/2.0.9/esptool-v4.6-win64.zip", - "archiveFileName": "esptool-v4.6-win64.zip", - "checksum": "SHA-256:c7c68cd1aa520cbfce488ff6a77818ece272272eb012831b9d9ab1280a7c393f", - "size": "6638480" + "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-win64.zip", + "archiveFileName": "esptool-v4.8.0-win64.zip", + "checksum": "SHA-256:5575beabfe8c1c1ea7c1a0f1bd42ee97ac3f4c4dae5fc74cda58be0e23016da3", + "size": "33608471" } ] }, diff --git a/platform.txt b/platform.txt index ebc8d23a5c7..b9c31d4337f 100644 --- a/platform.txt +++ b/platform.txt @@ -10,7 +10,7 @@ tools.riscv32-esp-elf-gdb.path={runtime.platform.path}/tools/riscv32-esp-elf-gdb tools.esptool_py.path={runtime.platform.path}/tools/esptool tools.esptool_py.cmd=esptool -tools.esptool_py.cmd.linux=esptool.py +tools.esptool_py.cmd.linux=esptool tools.esptool_py.cmd.windows=esptool.exe tools.esptool_py.network_cmd=python3 "{runtime.platform.path}/tools/espota.py" -r @@ -84,6 +84,7 @@ build.extra_flags.esp32c2=-DARDUINO_USB_CDC_ON_BOOT=0 build.extra_flags.esp32c3=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} build.extra_flags.esp32c6=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} build.extra_flags.esp32h2=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} +build.extra_flags.esp32p4=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} # This can be overriden in boards.txt build.zigbee_mode= @@ -101,7 +102,7 @@ build.code_debug=0 build.defines= build.loop_core= build.event_core= -build.extra_flags=-DARDUINO_HOST_OS="{runtime.os}" -DARDUINO_FQBN="{build.fqbn}" -DESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}} {build.zigbee_mode} +build.extra_flags=-DARDUINO_HOST_OS="{runtime.os}" -DARDUINO_FQBN="{build.fqbn}" -DESP32=ESP32 -DCORE_DEBUG_LEVEL={build.code_debug} {build.loop_core} {build.event_core} {build.defines} {build.extra_flags.{build.mcu}} {build.zigbee_mode} build.extra_libs= build.memory_type={build.boot}_qspi @@ -121,7 +122,6 @@ recipe.hooks.prebuild.3.pattern.windows=cmd /c if not exist "{build.path}\partit # Check if custom bootloader exist: source > variant > build.boot recipe.hooks.prebuild.4.pattern_args=--chip {build.mcu} elf2image --flash_mode {build.flash_mode} --flash_freq {build.img_freq} --flash_size {build.flash_size} -o recipe.hooks.prebuild.4.pattern=/usr/bin/env bash -c "[ -f "{build.source.path}"/bootloader.bin ] && cp -f "{build.source.path}"/bootloader.bin "{build.path}"/{build.project_name}.bootloader.bin || ( [ -f "{build.variant.path}"/{build.custom_bootloader}.bin ] && cp "{build.variant.path}"/{build.custom_bootloader}.bin "{build.path}"/{build.project_name}.bootloader.bin || "{tools.esptool_py.path}"/{tools.esptool_py.cmd} {recipe.hooks.prebuild.4.pattern_args} "{build.path}"/{build.project_name}.bootloader.bin "{compiler.sdk.path}"/bin/bootloader_{build.boot}_{build.boot_freq}.elf )" -recipe.hooks.prebuild.4.pattern.linux=/usr/bin/env bash -c "[ -f "{build.source.path}"/bootloader.bin ] && cp -f "{build.source.path}"/bootloader.bin "{build.path}"/{build.project_name}.bootloader.bin || ( [ -f "{build.variant.path}"/{build.custom_bootloader}.bin ] && cp "{build.variant.path}"/{build.custom_bootloader}.bin "{build.path}"/{build.project_name}.bootloader.bin || python3 "{tools.esptool_py.path}"/{tools.esptool_py.cmd} {recipe.hooks.prebuild.4.pattern_args} "{build.path}"/{build.project_name}.bootloader.bin "{compiler.sdk.path}"/bin/bootloader_{build.boot}_{build.boot_freq}.elf )" recipe.hooks.prebuild.4.pattern.windows=cmd /c IF EXIST "{build.source.path}\bootloader.bin" ( COPY /y "{build.source.path}\bootloader.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( IF EXIST "{build.variant.path}\{build.custom_bootloader}.bin" ( COPY "{build.variant.path}\{build.custom_bootloader}.bin" "{build.path}\{build.project_name}.bootloader.bin" ) ELSE ( "{tools.esptool_py.path}\{tools.esptool_py.cmd}" {recipe.hooks.prebuild.4.pattern_args} "{build.path}\{build.project_name}.bootloader.bin" "{compiler.sdk.path}\bin\bootloader_{build.boot}_{build.boot_freq}.elf" ) ) # Check if custom build options exist in the sketch folder @@ -162,7 +162,6 @@ recipe.objcopy.partitions.bin.pattern={tools.gen_esp32part.cmd} -q "{build.path} ## Create bin recipe.objcopy.bin.pattern_args=--chip {build.mcu} elf2image --flash_mode "{build.flash_mode}" --flash_freq "{build.img_freq}" --flash_size "{build.flash_size}" --elf-sha256-offset 0xb0 -o "{build.path}/{build.project_name}.bin" "{build.path}/{build.project_name}.elf" recipe.objcopy.bin.pattern="{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.objcopy.bin.pattern_args} -recipe.objcopy.bin.pattern.linux=python3 "{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.objcopy.bin.pattern_args} ## Create Insights Firmware Package recipe.hooks.objcopy.postobjcopy.1.pattern_args={build.path} {build.project_name} "{build.source.path}" @@ -176,7 +175,6 @@ recipe.hooks.objcopy.postobjcopy.2.pattern.windows=cmd /c if exist "{build.path} # Create merged binary recipe.hooks.objcopy.postobjcopy.3.pattern_args=--chip {build.mcu} merge_bin -o "{build.path}/{build.project_name}.merged.bin" --fill-flash-size {build.flash_size} --flash_mode keep --flash_freq keep --flash_size keep {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x10000 "{build.path}/{build.project_name}.bin" recipe.hooks.objcopy.postobjcopy.3.pattern="{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.hooks.objcopy.postobjcopy.3.pattern_args} -recipe.hooks.objcopy.postobjcopy.3.pattern.linux=python3 "{tools.esptool_py.path}/{tools.esptool_py.cmd}" {recipe.hooks.objcopy.postobjcopy.3.pattern_args} ## Save bin recipe.output.tmp_file={build.project_name}.bin @@ -286,7 +284,6 @@ tools.esptool_py.upload.params.verbose= tools.esptool_py.upload.params.quiet= tools.esptool_py.upload.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash {upload.erase_cmd} -z --flash_mode keep --flash_freq keep --flash_size keep {build.bootloader_addr} "{build.path}/{build.project_name}.bootloader.bin" 0x8000 "{build.path}/{build.project_name}.partitions.bin" 0xe000 "{runtime.platform.path}/tools/partitions/boot_app0.bin" 0x10000 "{build.path}/{build.project_name}.bin" {upload.extra_flags} tools.esptool_py.upload.pattern="{path}/{cmd}" {upload.pattern_args} -tools.esptool_py.upload.pattern.linux=python3 "{path}/{cmd}" {upload.pattern_args} ## Program Application ## ------------------- @@ -294,7 +291,6 @@ tools.esptool_py.program.params.verbose= tools.esptool_py.program.params.quiet= tools.esptool_py.program.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset write_flash -z --flash_mode keep --flash_freq keep --flash_size keep 0x10000 "{build.path}/{build.project_name}.bin" tools.esptool_py.program.pattern="{path}/{cmd}" {program.pattern_args} -tools.esptool_py.program.pattern.linux=python3 "{path}/{cmd}" {program.pattern_args} ## Erase Chip (before burning the bootloader) ## ------------------------------------------ @@ -303,7 +299,6 @@ tools.esptool_py.erase.params.verbose= tools.esptool_py.erase.params.quiet= tools.esptool_py.erase.pattern_args=--chip {build.mcu} --port "{serial.port}" --baud {upload.speed} {upload.flags} --before default_reset --after hard_reset erase_flash tools.esptool_py.erase.pattern="{path}/{cmd}" {erase.pattern_args} -tools.esptool_py.erase.pattern.linux=python3 "{path}/{cmd}" {erase.pattern_args} ## Burn Bootloader ## --------------- diff --git a/tools/get.exe b/tools/get.exe index 161cb193cae89e3dbc84006a7c7332e2683eb329..2082c7a4b68b6438c4f43a736a9d1b6aedda614f 100644 GIT binary patch delta 152918 zcmWjJ<6qwo8wK!eZP~VM+g{ePZG6J2W!v_$wQRe7)w1=?zPlg1U)PiCFF5C{zLi3* z?v+8-!GS~K?17RH!4)Bp7Ls(ql_1hbLn^_;E5ZK{qO}qn5~2A2FX62vkYAu$TT7s2 zg8(~%74O`QX~Q;sLy4QhENQK%mbQ-7L~|YInkvSTQo@AT^O%bZmzj8d7v4@jc6!w$ z9dZ`JLDo}k#f2utbGHmEQ34FBIVjrr7VGs=QD$pm&@4oV00yIqhQB>A!hPTS2VjvZ zuj_!6JebSwIt^TY9=v|Ce^%N(%kMox0Rflh2CBc*)PB)5b#xS_aAk;Rr86Va*6 zr7Pj#mZv&8QOmql(9dNw=bcG$$$m_E;h9MTWk069@G>VOWTPg-@DMW~y9jCEeYdb) zoo2R2KmA2EKau%HWW#o!kaAISK{v$^bu>3mlj~Y|g`;I+*z-4M6#_9KO5hSZJOO*C*bD4g^)=ngNvE@B;`U*7-q~3~p}Qtk zX_Y#a=)0t|1_3&>vwpT0e+ixbL%dh|gwjKD&i6Q{wUgWi=^L;ialkD)M z`ROtD61Q=o<~x~_Z^dQuWeGyMJ{Tt%^SH%vDbwqgj<#y+WsbI&)$cTAmO$G+`tA*9 zimx|;@0`SjiwUH;Xlipu_5bAt_v&pnoX)q4LW zUoNGJ&OILJ2P^jk#(n0Q&T%{Ik){m_-t@$9bh0X5_ni*_@Q8 zV1$DEww4)6v*#4_20+i{7@E;|KR%vaF3>|<@+m7gCXmSDk8ErGpPM-P#J&AdgCh~< zYDAHzRdwYudsC1RmT+dxD+lVP>Pkw>p*48&Xy(H-q>+Z;JK{L@qPL=z7(h-Q&51mz zX>}H~%nFf%^6|1`J1%>mKCXEn30+d*4xOZ|7@nD3<*?Mq0W5Oi#V&(N*HyQml&Nev ziw(YYjXyTC@M}40q-|z8hMx*xkN21*l${h1NAxZjRA=*ekK5N^%mnwSc@i^I;SXRW zS)?0Qw?*Br>sv_;7KnzU;c?ES7OdGIWP7C>G-*lN_jz>7l26Xg@uy(w#m=VUEsCb^ z!b`HRr7BQQ0v^;(Y&xlh7K>ece_|^^LS6QJ_Uj+|F6%Q32nbClL1Osciq6w`k!6fW z`wNxxQW3q>Drs)YMr^6>k4^bVNfJ>v>^QTt;-lW6ssxbEJA7maVk^q zrc19Nb^u8~9K5^l`iCnoauqE!DohU6+bz)-Fq*q+=pGr+=rl;SToTn7k zSs0`3ZL>}2d>{3rLAaM19LvGd; zkYJ#0r1kD7rr?S$S4Q%(tmzZ%f&(|n*_?9&qnc(Z-hoh)ZhzEOP_i@KB7*9YlR$!e zpJ=qgS|!A^O>{RGy-5sW=!w$-?qGRog2nPp{X&L6k24Z93);PlM5#t$hBHx$OAYge z_>@g^Otnj>*z35wwX>Y>*wOZrT2|`*IN~khc~E`o3e~fxhf@)QUHt1F!4UstpjxgAlQ#$RtF>#VpNT>>zHMgj=n-rXtVg z?Y_JB-DczvSehWRb1_U!;Z2(1*^-(dE|lorvI&~Ok)n+vxgODz(JG4ncZm0guvGhn z>>zE}ro5iuNC|wWyawL_sD-$ZXz|`~8|V~M*A4`Tm`JL$X8UV^ zbvP{8TpU%Kg!#H_uN$S2|XqZd*Ojc_^MDN2{U|IEl$aqi6@a}MO0;y)uM+luZ`CAh@{Uid2_ zMPuG-b`?ZJsTZ1d!s?@&j%C;E@2wD!KZF{JRjkbpR@@uTt}xb5NTw zhvUPKU6(ACD%#Dedw_7AvNuW^=-kClT1hBb=G@_2<}!7Lft{qqAv>rB9l&h8XU(31 zM0>He_mvG%*!$Nvd^cIJbp|7TQ-j>ex@0?+cE5;36FE5631wBW2U|9JBNHZQW;R_Q zB}ghIgC&W9pFjpoOhALjYGgt|Zr|f{{t|Qo(}=S4pGyumNx?f^{geq;c9>1zC(`v6 zOIxeRr>-F-AjEZ(yYkx>)!N0J{&aFgf0W>fxBJW!S1g7{6-*W;(|0svhEfBZ;F)W& z<qJ^6L5zXfPWQnxovT80P}fBw0Tf8CC>*MPtRYfM<+WM zPS(H4O~m=JZTvDJyXKQ_PDuJ!$ZjyCWi0>liN&U(tT+efzu}Vc;1D5I;h?CU=~_aS z8eZ68Z?Ft7M4Q;?h-YoEychlaCE90S-<{*`;da(D;9jKvNXQ!YgU0=H3LjBp)P;)$ z(w{N31IY8;+vkPSL8*8rXvB&8!7F~2{x4r1Mwwrm8HqvB&BLi9X}uZ}r$3)a^nH4o zsmnEfc%!?iEDc7#?##ZLeFwbh$qh{WT&Oz~@)A+wfkJMKSKTUtwwtjmTZKq|`g`)W z#kePTj+xksAoCV6;o|3S-mBqkb&dh6WkPzN0YIT~wUhO(asqZR_pi3n?SlUpx{~A7 zFoI}>X%~UqqdgO{i~MV-yWx&Hm+$F=82?p>2a(+)w0{nyDo3HTuw!-vQ&#%PM=m>W z{59;rb;v@2%i6YsAQ5Sb9{ezgku{c384AwdzZ=}->151FktDOEwJJAYYXQb^w0ep( zsX+I)%}VAxvogG8RUt{YPVNOA6(3IOAR^y){d&EFt9H4EjKxzJZ|oP2{Awe?w~X=R z&v8pbfA7;2Si@W&V^Ck`X>xB2q^>$9tuAL7t7h#~yZXmMx!B;hzI-trETy7B&t_XW?hAt!B z8T>Zs{9b>l8v#}IdhT3`)QD~916ofx0o_$I#PiE%F=AUOFJ*0>c+5o|v{Y*HaNpMW zy#JWXtK+Ix{4Qy>sG2Q+V?i@7odD7Hr&WK(FyefinzmgIazFpY*CZ>uV1FT507zOK zNmmh)FIhwoobc8z1jA$=XfVO~JS@Yu8giD5Tl4vplz8J09S zxYGgEy^-R-Gbbo>`8|pz7Yrym@BlqgDL~sX4Site(zG3)!Soi96Fp;rF?G?77fPl_ zp6klCzSVy46FPm4V4%|(dH7a*ru|rloJ6L^CD3EPDvPB(Oeuj2T^OWwTinroUQ zz8v({n^5E#^Y$jnS*vH&4%;Q1@z} zD;kK7A32WTh8FoMje!x#rK63MLu*O{ca{=(FvGuCrxMAK zTtJqFMqmr@n2%&tZGQ3OnAm@dg~SeP^ZfZlLOCHz1Q|ECyFZeQB!G8%{L1f@-6CNb z3eIZ7k@d_7`0c+um@JxP|PD=Z}@3Ff23r#ldF=N)4^rm zNf`T*Cd439@#AccX=7!bHlhN`ua2|j0et}!NjvE(u&i7ItOvgm&9Zb9tx#wf&x4_` ziCB!q!IG-RgOj6D=1~87Ur~ZM-WB|PRJo4rBdu@P{!e+LN5MXw~>p zhT$9Tp|^|4unwEc(}8BB3?_%q@{@NO)k=hPbDWDUAHG24kboSxZ;WUu7S2CaWC5E% z>HBo)m~?3)XzT%G0OA_FEI8}m(`aiK!xIa%kih&j6z(-{IDxOVzV~}`Oy-$umRD7r zeh%u*557ajXOxSDG}>oQxt{M86_>da+xh$4w9kxkGQOj=>WPPq*E4sgM1tQFD|Z?RH&pSN6GEPh-UVfW}En5N9*u9j#%hk`sZV z6*_`Q56C+PtRcJ+ypA&7!f8;ZERdZ7n+a^7YVrGD-i!7wJT#h|d$vHXFqVoOnK)5I zl9^~)BwpA~&b9Kv38n*@X-V#ppdP#NUNrxIu>yTNO2Sg(@W;_Eq@zs8B*b@N`HTvV zJfjgGtp)7azy^l9Sm!6GMYR~ga{I_0RYAnPCI=OiGnemZ9qmoNja%lNt;Ko-FLEV1 z`vCi%ep}ZX;$r}r?V5YtX{us|5c}5)>C;oqI=*0@=TyR#7*qT#Yk4QyG-e<$UkWL! zlXJ@YP)gf9zrb*bzaphSO9?5+x7u3crLS^KgOd zyAPYMdG)^y5W{}l*1URDe?&J+FbqaA9cH44CPWePHh-wVo=&S3^t?}EpULZV8k^Bp zUmglGJ$lR8Pho$NB{+{MZxwbXeK4;{$(&dX+B8=Qw{Zpuc_)Qwnv$ z7fMZO2;If zmaQIiCWM1I-W6@)f#r7{3yyE^sOo|6D87HBf#Gmok`z;1%R8`Sw({@8V3AbZ1 z3B>DL9I*^xUp;o6@6j8~w;*0C8{t}4v0#t?0+j}fMvJ^_UhqYvX zT~&R1b;$m4$uNXFM(ZP>vZsfDE`ERs2-}+H!orgKGW#cS{q2lC+Uy*_Y&YUm$Im#vI4Vda zBtwsKj%0x{EOkfyX2a=@N^6KKuSJ15$Fns!E{yIvyNswPi<*inj3NMABeboR353M*D@^hG1`3=5d4`_>&=uq z`0WfKJ$C$WJawV+ce*M!?Eg$(qMtL#S9cZhcB}|akJ(IlJDgY#XU*-5N9Q&ttGbU1T~kLt^QH7SDhQViVwurB-WT+5_flqMX#rbT^2hY|9e|bmjG*o2 z{Os*i1#M*2t0l7rLD|k6^ndzO^^86CJOT%bF1D9heDzg~mwVUAKplkbc&S-HBB6pX zzr4NK#2WwEqcAb?DsI2@$Ku@2o8ys>!wKQ|vry0Og%SFhoLz%~6}*}bnLi?4B+vXD z2^d8@K%RT!uEVd3$YssZn^I;Lmyeq%4(aN4EdRY_dCQ2*IxE{_hR4IV2>k{w`j`F- zITu*=igD4OZ}KJ`K(y3~S7f|$5QJZb+auAZ_UgIJuP6Qj7f388$*1QbaNr;RcY5uusxS4Y{5Ge+GU?C6JWxiGOxF^LY2n@$b23jb;GG_ z9Op}!*bY(mfZ7xmen(XOy^$*DHESvW6+)bv9tI*8yz%`~1{N z@}a7liYNGItSzo!TAvXedp0XOs-=fzWrjh<+$8JUFii_r|L1jN%F`$00?ra!X2tO5 zI?u=zPi%NzUwtP;m(|}yR3t*UY*wD3{bRLO5#b8}8vN0BNGp6>2<8jy7q~C*Ul6_^ zenI+z`~~F;>KC*x-@bhRg5J6R+}P^&^;yZ@qg$cwr4#|d&U7xLFSFH3H0LaOqjk;8)zVnBpvAI2LH~MG zLDh>|D-@!NC>idqU1+wm4YGO`3ZTc{rGgIIXNFqN#|&pwverBc||HkPl@A66Jir zSGu~Y2}iLho`}vLuuA12LL6pa_YCAZE6B_V>P>mN*@;i_;pQocwb)a4P03QjSgI~k7aW!d2rT@)PR^z=EDkvHXI(o4h~LCM zP`;F1pYeZ>R7I0GCrBz)u>(FM$SK-CL*c)|u-_D{7*ZxsWurwoq5a3irMn&kA+yB! zA%4kR5vKn|eH_~y5!NK84Ko5r z3Lzi}p4+Y>$^+k0-2Ur@3>X8z18z{Sl@h-Vv{ePZ2$sPInjr4)`f8$WMREz;yY9L* z!_=1k-<*(_kB3Ny5=+WjKhslQ!a?2*Ow77BDuy zR@3)u2^qxeYEmCaJq?t?FmfA~MDXR<;JVBtvX8UC-hmUhiyl$KoU)aczW$yz_sZ^Q zqt?x$GjKdf^=m;f;P2SacRljV2;q-#IC33wh~6~2TapP*Z>1;==wtl9yO5Ji+mKh6Ge z*m4a@nSQE-?^}VZ?~PA{%m=W6rY zTTj~&)U}mAvbT^5I-<>-r;bAg9uXF(2On!YcYnh!lKj&^$_;sc6>Nku)eED=-~Au5 z)Z3j<{4S74v-66_^$8U)*6PtF;f3VZCt&gqXSjwHBIgtoAWk=gjwnqi*ZpewO z>v?_O@`=b7vvj*No@AtKu$haDrL>6-aYUJXa2r@)iE%5!y6czq^^98KgTy%-s_?E$ zmOqeEV)vpeGqFQExg7JQ`(Vr!GYRy5o)lQb!|&p!O_gO%vNowJulEq~Ro+gt?PRur zHN8Cf(RC4Y?z&=@F<<_R8;1F06VpgWIFtIC&K)c0)`3rf2LIV)4_tzY0KrG?cS!*? zju&v=jJZ?)Iwkr*yW=RP&f$oWaXn~XjLS;-ttBI|QnGIxfrke&L@?j(FMW?zM>U-r zJ{?r;#bFz(U>47Zj}CbTB_)&W4C&BJS_kk~-_?VDw!F5_7pi(USMz>t#NkNZgsh`K z`25sKH8}0PeNZc`jCuFOT4Czdor`R+eHQRkizxLj;i(l<%crYKnOhXPx1{GoJz-RJ z@h=m3iy$SwGT!PF6AMusDm`0m+WSb3$`@3tJ0~%fjz_zus?#s7Df8BC-EU4xy|)%7 z^oQ+)*qd}$!G6Svp^Q@27_Fbom#bT{qd7Kb+kr@;n%$mzs>e)$?mhAG7QCCtkO3A; ze_NdF=yMg#vx4p=jFhDU=E>Ho53#gUBT!8vEjGnI&NiuZQc@J(;~cRJwvm^~(I771 zB4V@tMMbKdl(pK3n$m1iFG@}zkTm>{w_v~C;kBR zLj@ILd<=Z6g%XmIjB5&TQz#}gIt5Bjq&trx%T)H&9|wh(7Vkz4K8?^j13OV}x$Ga2MBPIS1E6o#=5u{&7NBRKDl{sR;w zC>YP!mi5f8KgSQS7&PxxA)b~R&f+S;@^I^MpXlIOfCMOG71Pg(uN&A~J(jhTQg_0A z>;6h4!`E*Po*Yxrb3dL8D5Zo=dq@)TYr9oy-@W1lUG_G6xuZRufO-oR{sm?TKL-Hu zNKd2C*V|PckU%`*Y{WvvcqTWY+g-n;UKg)e@jSQ8g1qasWN0rZWbu_z)S zHMGBD{!Z(&JoSRI&AR%$#irDAMU~u}TX$g$qS?xFgY2)XCWOBL2>b-wd4pVJnMFtP zDJi!>_FxHHr#M4^;|RLlHmR7lx8=4+J*sOWe>t@*&DRajW!4)U?zw5~TjhtL_B$0t zYdGWG_V*v3U-h=N_WPyX_KlHUSqGfh-Z3eLNIy%5x(Nc6H31dv?_lTeq|PtWCY;l8 z&dUr!64ETky@_|f11S7($jI_ydD-44Z6u_PCjot*A>jp}mA^tz4(UYH(s`Gr>2mH` zrC}l#WC?O6oDlK>SM{OUB`mcNrsp$zmiA=k-NGA@<`6VQllJB=ihXhVMbI3RGk2Lb zDE!Bo)tklPZekF|4a${HXc0UXkL?+^pd@w|R`Lz|;plW=V5d0dvl4@3J2fg56OJ}V zwT>bS*L(o5dEME!1AlWKy{`@Z@$YvHz}oZ?2G4%h$J<(4;J)DP&*^PaHl#KB^fNYy z(02IYb{2u4{{HIMkAK)OpEF`-j+h{!0{7RYYNRK1cLDU^tg2C!#d4{SEJ%}tt31{i z=zR}Q3_Ka8x09fk>{GeD%`{lIIqjQMA{$oAB{+WoTL-G`zn@sW6#=VNQsjtIkJU>0 zv2E@9kh1bT`L@sz90_+9Q;Cu05juJYQ>G3SQR^8H=PT>vqIl(p@D6HPpDqn+Ve-Yr z3%LKpt`BAvyS$aS4h|2mK)K7M+6s)hb}fziVmQ-_k604jfe{4S#$o)jX`>JQH})q` zPS9t-1H&&;Lu(}go3)K5V+Y@r^vij!pS~9&ms(2UmiQc)_wi5YS@57&N?v>(uLVM5 z!6Fl8GVZJYl4K*bz)1xQLPxQp`_m6j(EsD3Y{6}pixEZF68si?;a@n@5XD#K09_tG zgJwq%eX4Vqc_|VRbjb3X2G^9Kq9f=AUH$|dQ0#B~MLM~pXFzeUW)~T4sa%K<&#~&e zPzn!j{|Ta@eCP1kL$IZM+)qUJ@OKCbLW@AVH{&)U8PxwHb7Fl}zn={Hxd~pW?wd+( zTbVuOYO?LiYuOyH;cyV3_=BNB{Xu2FLweQF;mzGzX-(<%^4y1)w)j$21i<2=@dl{? zYDa3PGB8@f^keD9MYgBy<%@1Y2dC^tdsTejoc9F&{NQ}1U~2hA-w&t4E*cuCVj=8= z;(hlx!5?ykfo^_Gxcmf>s#G^$U5pQPc=E^DCqg&#n`G;_CK2~W8{|I(pUa9ULpJe% z+So_&qw_1An^kjCCuZYgXWyb!2p{(|V6UR~^oH_TT`<4aMFehk7uPcMvR#OB5s|xy zuKJ&RWAt>K*s7L$my!{YecV88xFclE6BU1i;E^sON`NwSm84TGK^0}fp5z@-s;XA* zdG%b4v}~L%ag}@9EvNQkQysBwpvPQAFwQAo4DQ=?aKAUW@8}aXl~yl0W6QVClI`LhvYj5Rrv+x-2p1@^$l2r*2VOzyw`B?ngtezGnWP zf}i=d9(RA$t@vhVRi^K!%K~YnP$>u^uPHK};<0f;C%U%#CHsBjNKKFepBZS(}E{L}n8IL|INZ%-Z*nziQkN;bUY zfV(T9k%&}w@fLJY2F+HP76#`gr{`9J$RU3lft`bINdr|aeZ|!=Qa0>1K)d>OlgaYf z^q|Ea;68v{LWVh82R*d6uK@DpS%7o?OJ>sof`Z*>yW;e}gP1FME|VPAitoc|5JSWZ zsij6(M5?0;L?cyY!iaw^DE^R5k|x|7?My{HnO6*;k_j-!;G?}N`!~!P3AL=FRMRf> zN-fTsj@%{H*v`W41LX1n3YTh=IXCFIBCk{W^RtagzwbGsdB(?a7gc2J+PDx}vZ;+N z9jvc7>!j1xJ=#q8ps}M9u~S5h*a*(T@Y^8YuorKp8;aOdO>?2OxR9k@X_C@QABiW0 zA%Zpw)}Pl_R5!T2xdgJbG~Nfy1Hzv^!pokZci(RZ0K_Y}>@avBl1k=#@B=o6s2D~B zait1e%p8l7DNXE0U1RLalesi8vN7BXkEjSN9hnf3(35mq#1lju3TilUmb~Bjq(`;n zPb048YdRqBl}?2H;mkb6$*A7PgT-g7zgn6u)K?QRj9ZnFgm2K&5~Y&v>EeSe8w4`56- zb{lct2UZE{1$g)H^a!nQxo_s-$Q;$a{>hyjXLgDkl3W3_kTxt0P&;y%Rm{B)p3!zq zg9tfvi0tB8Cc>sAb9>Vj&(EzbP5F$bJIct7CaDs2w(kx$bZBlRHGlqIp1Yb>Q3yg4RC3XYkP$i)ccn=<(2#| zqqm>^Uat0)u>{#t&HmM0eBtpOpAlB5OTV6o>nBBOFwFRvlPs5B=WjeKj^Th{)Sk_h zzgLsp3;OP(xK+l47^9cpv$Ic@xM(X!lyaz>$4xHT|S>i z`gmcylik+m@Bh6}_LrnlY9tMvo}XnZvl`85?((eH9PkCr1C{z{@Vqcb*H0 zW9b9yvU=eb@r?}7&eg3m|AsfK9ASkt$o0--L!5BZy?1olnf=&`N2s_)hz~S4BS10t z26ufkBIJj<;@kEv6|@)E)fW)?HgFknH?Ra0ga}a+UsMcqvGHM{M$p~i9PzLf5@S2x z75N2zw*M2onfr|z&@65WRX%HexIyfwm$n;zxAr0E-}999j|jK5)`2IoSC~V{jjK7T z?{r!#M{Z;J7w`LTHE`lvNz3%1+8`P2ha{13`6A~=`R(^9zcuCp*E!*iVy)GG<^)dw z9)B-`PnuD*&pB|P1TOq)^?6DS85{S29XU)^&W-ys?ePs9bxTAW42CkR$Zj5QF-Io` z=XrM%cn0~2`qA`5>XGrMe+yj8Edk9 zH_SNkidn%(`nGVw2?Ko35C$(i17`g|g(lj^Ib*F0fRz`h7Ph15U7{yjknZMV0B@E% z%?ZQWIt=GEb9_CN+f9k!$IyD0U6^?Y&HYICJD+iyI$tEOWDlbT1Qp}Mm_-V>s5VMD zrRUTa-_?dFKVUpYODm`=kI~LrvcTRj;AeAsE83&{+FLB>Svk#~9n>NyoBhk!h9hy0 zmLV(TIgPm;uVvW$r{ND*7>e9gnywtk>_3R#jbO#zg$eI=!DP_)V z{uj|dE~}R56@T;(T37m+alY*U%T%J9MwV%oU}+C`**Y*G8D~D-O!oCX$2aDkztnPD zPAtOlqGa`D+LS zW$Jjoqkl;N1s&VAKFrcLhp-~`(MEjOL*6W~Ms)VhQ3O$dF_)zwF8*!K z>C!gAZ~Fu|wL*~&F^RnVpT88X4Pn7@vmH4ue^uh+ShPQE)tDEsYqIxZ#PlBHzNz}n zee4Fqz9AxU`$P3puFTBfDC6trt88FM+m*!)4;TM+e7-w76`r0SHne4lRv2L;`Ixhe z-oYMIzDEL+a;tg&;|1~uNE~%Z1uq8&{0F7_6|ABRn!sbwaz~Z31+3&Cxa#cw+I%AA z>M9h{b3hbndp8_~JE`Ns%eF#~W3HIR#E1T7i5>ZAA9;YKMBIgA?UE;zgHgFFFWBu6 z@MFsmOqB60DJB<*aOY^@9V<$uuS-c@hQ0Filmdg34mYJhZLKm5C{IblK2m=(YjwwA zTk-?oES^6~ey*%{G`b#%}v68?+Ek1 z0U~J*u&gR$5iuf|w!ZwYoa7G9r|fenHG^o;SJ>vKn+;h_p84OJAV##lbEbkdaDO$H zDaUJ*l@SkW-Qf}v|6rvGOzKaWa~Nm|zk;n|$E)8bBx;Y-0ILA(k)G_jF~0|nF@wz? zEZrN5tGFE7M{Zx=33Ae^t@42~B7(lgI|s{I8wSvBk&_u^k{@!?;|YODEhALwetqH@9u(~QUY}PA$-h+R&HI)bb@9&YP^Vykv zbuX-+?B>5=0Ji?4TQs*bdCl(h*7UQ#dT_WOnC!z9GyfgE-y?Db3mbUbX5a6Xohe1E zAK#yp4N^0-m3?ahN`KRM~N9G_TK`D@+ zfiHxo%oM~am#8UJxWc8E1%Fq4QeQv%I9s0HKYLiWk4n;t5utkK&H#MvrM& zudXD8572mo#)rcN`d~Fo_DS*TZhz46uUdr>yQMsJQI7<~&gCl?8AcPsUcn&_2(2UJ z(Sej!JXIn@V23tqJ$ZzOVbMzqP_1WBe2@W+grqn$R|x;NUSX-2SKqqx85X=e0)n>F z0L&5}ptqQp580Jctk^N^3B&o8kAl+o-Pv?|=(We{-;YT$$H_h0slVv*kiE+vnE@A( zu4lJ?$aS4DD(Lyn)wz)mcY56RCeA&}aDL1P^C#Rq_Rq`zjj;32bKfL{0h!m(*dK;YY$g&*qLE0!>{kiiB%URRh(GIErE` z9k=LJj?f>{TML#!;A&J3nGG?T-l;8#g0Q2fLP-95kFucC7DhEEblrEdYh83!U8$*m zgSFBkV%dLlLw`^B^--^S=U?v=&U?&b_rh6~uSJ^A zk7_an^?Skg9vrL4wx|81nRS~@)jf~G*Ub<@@V7ZRdhh&O+;nL^tJRZJtAv@uz}GIN zu|?d*tg_y(X3~LB`cmo6t$(Yaq4&Ek!eX=i^3g$zAv{QDP5ENp3nPe~OHkK5J7SlE zy@;ft#)+)ZA`$kEj(X-tz57H~y$HBXYLy|lJN{T}%2H39owwuIMP;k(4`KPb-a_}r zXmUbBvM$T4vAkR}1KDvb0V4Y;0Bq61N}DBR+_-zemD4OoEf!Tj-Q;81k#f^}dHyi< z6-A>Ut-e_P-|+>dnV(~Bk@+iFY+h~D3IbYyb^NcI-zw^)FvXN=j|s<`O=5*zREF$I zjxYWb?~i*#k_pk<3v7i&H&E53_gz!!a_o9X_|%@qeU8(slxaA2)(;Mco!7A`z-g%+r& z7&txzG;FTVS9kK`5|Q6j^>}dnK}IKWQ_AyqDg(Tk1*76tyHPavCYizh=X1gzu5KTy zi(x{M!Z#yYgwMwbu|LQ` z<<*p#66d_IcZSLBo z$zZA+{(%!5CCHa*khJbU(0|<6pt&1Nh?@56wUY5;fYTnJ zlW;OuT=_maQ(lLBM&rIPfz`K)AvfeIhO{jau9z{FxAChU0RL@Xkq)YLIG=XjkbY+T z#a*=H0}|RdvG10*1>f{lU&Taalf+Y1R^0oqA7#@Bd6j7D%oAgAQ| zz?*nI`wt;mSN4{~p{-lWc8N$@-?-JvQRpU>x`p=NB~#jFf%+BXVRwhPWWDWBnLaZf z{fyhXf#RXVr0FH>0M&6Di8*;|V-Pw_UfZm6o znP<)w;G6z%8N{tDFHA!+8L{hUmo;+Z@&-R~MzBcUGQ6{C$aaASnt)zdL1-B+l%+=Z z&-T^HjB|7AEUp?@0$1qb{2EHDEnT4kqW!&y>?hIn#3b;AHxH}@)}#LRnQ2x36@t`i zCfptS10F$`F=(&pcHB6o6^yz5RI)$GQF2>@K&+#YtftP;y-mbX4{fQl{Ot%42??g? z+hH`FJxUn~42iiMx#YLUw~4ehXvXzv*lw1oY~M{gy5tI7z8 z0uN?~9|+~zG*+h%Sj<6Z*25ts*y3U`kC!;I@5`I`7CQGZHp~RHWyiQIRsdC=U+Kcs z>%A2`iTM~TFGGU&V8l||=P5&ZHcka3Sw>XWnAliFX=gKOBM9kl8B4KfA8z{>3} z1Wgb&g7a7xjN;<8Gi1#R>BN~l?b^x5e6+&C{?DvNs7aj&0UbTh6B{24hc2Hy6+Uo` zk@yibw@;Lh{!gkeFdzNB>^P!uzr~z!2CSq1W5p3Q<{{T*NnKZEl--XtiMCw{&lgjHJ{>A9RiJO#~lVEfyO_hu6p za4evfP~N1b@n=k~;VOJvvvYwnb`m`aUtgge8q&f6qX}%fq!`H6*Y4TohT@N^ zdlYFqPp_0dJS!RZl5PI$2ITV7aW(UVFe3ZVJDl(h>-JvDm32zMrG~R zD@oo+cB+_GME|7jg8bHG`sO>9xuul5Fb3B!Q4+Yl!hNUBJL9oUBytPHGrv*&7uxnK zQLAmOA^7gWh(I2_+t64*ptawXFsBi$)@RYPDQ6p&^F2=no$FsfA$ zSB|&z8*EkRFSBi0g+@DiI^|2;OvSRmc0pnSwUdk+i&ezwf80HtOFW6sjzTker`-1<4;0xgwqA$c>NWPGMA^Sr9h2jh47pgDRUueG2 zexdt9|ApZT;}@nc%wJf(uzq3t!v2Nh3+ETEFWg^vzVLqG`@;W4;EUiFp)bN;M81fA z5&I(kMdFL(7pX7OUu3?>ev$hk|3%@8;uoba%3oBzsD4rVqW(qWi{_Uft>R)@Q@oJh zF=oQi{j^%q{j||ops;*~VbZ9pwbj7ST79auwJ~5DXC}5Sr<+^X{%Ui;gM(U8#PE`#ZW?L!Qe7vXZ1 z9pE-xz5EQiGx#85+jNi1jKUXOy`)T(WR*0B-WnR_L2{FkhJ<;n28U@H zl~l^vbez5o=eZFJR0#@WiOM?v>8O`w0@k@I#xHlY)LM!XaT1MamFEv_*3Poj6(*xthRiFt#Pj(eXn1Aw_km)e_^+OLGuIW-+uppyC>?U={b@2 zcxTyWR5Q~#JhZ-r8EpJo?sU9hafb^(kJp7klq)KCuhaC2MU-vDRQF6j5LS4$_+p%9 zbKk>tAs_qN??n)0Zyemla;7H&WVMaO=~UCr4}w;uvT`)gXp^MkhNMvvGq7V#d6ptjU>23wEXPIPZZt-&W@wWP z+QpP}(7Gbh1m!2Xt9b|mRmGBHdvYyw-csXLtdw*!TKJ3nnzNT>$#zMPfeE0vEk0(AG+d;vX52cE{j{bu$R`ss5)O?9OZ ztfQmGRqN*TN$#E{CQx@^vAnV9sa5#|sVp>cP^&qkr}7`ABcC zQ*l>0qWQ8^*#oP^eB{9)E9hbid8YVgct6p{iCX1`+Gsd*q5TfF@+pehoBitDe)>6p z9OokJ!b|UXaHRos3}mGcb+k)%0}d5F+jU{LJ03>obTf4KiPEaUv2Qu>@V zuho1!c=5y_MA}cQZe4V2yFSRqyQ_-@tkU>)rf*6F*zJlH;xZ zzMY@BpO#wvyNvZZ*43Qu8GgQ=pSe9tA7iz~VGZjYtT%J|hgms&V>9a$obFD3euUK; zXCD8hH?ms&Y4y)4PH)YxYx$Y`t?^lox5{Z`<#Lu@!D@{Qf7f%VHSSzbUSIDwTH|l! zYt1)ne(`);YRzvRrx@oGJ0c@ty*5aaa`JsWvE8hLygt@UTEcWa$n z?Y8>U@-LSE;Ca<}t2)Hpt7MZB-URPZgM4t6n%p03RfBTC+VoeeN*-L!o9R=klMX*; z9a`?=c5Mf$;Z)mewuG;sY^aDIF^+V&W?=PE9b4}DG7b9t)M zk6fklKXkL|mm|Cg4_?iOmt}m&YgT$_({~6|0&|2l%jagq`() zE38A)o!n1cueF?S)0O-kA2Oci{(Oex@8oe=Y0U@Ke+T(caiIAwbtYGH@zvYZBvf~Y z7dEP^#|=_mRxN(_DK*31-L9?%FW#wcD=PNmHEP^GTA`fQ$G0_cylUr1*Qmwu(K
0B%e@fJaaId;=?OP_rRCmU`>SnfAUEcPoi=C;m z-m7k3dsWT$soUP(2b8Fq?NgV^e>F|_ zG$~OP+@o&KdsM^rtWk245;XvORL%CN%l95tvps64_S~pMHD!;Q?0eJ@?@{Yv&mF3n zs$X7JUGSoEN&DB|!rH>Rm31@gde&yvZLIgPKE(P6>*K7eSvRuY#`*y36RdZ$UctJO zbpz{ztm|0sVBN&}B&(W;FL3c&f4MqaZ)d%im9yh(`TlJU{LJ04m5bSW4=Yz=D;Kx* zW>#(v?@;@WWvusexm^C%<*awHUc=hR>D2Vysn*^uwT5;or?pe9 zlbveX?^Kg=ms(1@_&fFMkezCQ>{7om*`-$0F11*9Dj%^^{r+U9n&`XKf0Ey+7Tr#@ zBzCIRwo@(LooadRQqyUd>i(U|=k8Mb)Ba}em1dqq&D>kfJm}5bTg^PVnt9Zkx3KbP zHb2bDldbttR_@(qo~+G0ip@OQ%{-}^uVj6Um1jls^{iL3-pHz&@tRs>g3@*`nLiu^M#iZ2ULQfEp< zo$i-`@<@pOK+8;>tJldtWsGz}mevFEjAV3tree~|0>N;^6`{X{PpMd92>LyLN}ikl zP=0=GQ1{5c_DU-W1eX{t`4>d9JbqbZI{o1z{aZ2pA$?xdK>gC%fBvw^Or94A(jQT! z7y3m2*~w2U)juUTQ_Ja}7bq%emL3dwg7?@o&6%9fZK*JV>W{ICJYjc4B}}RC1{Tww zh$T}%uMMuFPttNDUR9toH7^*@!!pk~9{R(Y)PhhrK;H(}%iqDuKZ^+7D@&TENA+5_ z*=bg}`fpbY3o6Whe?>VZv*+i`E;#z1luEXYHpR zT^}|=X4k4J-S6i= zEh?yL`wx5zOY#fVf0Ju=mH*&TQd*T$RG3qNPDl=6Mi|0OUg)7eVKePs`5z*OjIf!! zSodP41b0);iC)7We3c6N8<{N3=-^B;xnyRMnM3AnJN+{a8T!Y+IP*u!C3S``AR=Dl zbXpK!4d_b$e|^*-TW4E0TR(e3LV}Hden?13uqE4)zaE}}cL|;C$+p!0{QM99Nyj+< zFZpTE8nms0F4r#CO6|6v`T3$pj|6DKKkUiJy!+PPndW+WLXW>E{MaM4hrNfb2j)DH zZp(npkWWKw6rTb5@Xv6>_o3C15SLqPLfTRJf0xjyf5ZFK41Cq2<5$+tHwm57e=6Rl zevRwuas+w1WE z_OmuY{I}QPU;Vi^VZp!f)qmwo|9AXZo#6T}YyW?~`p;MY`Rf1ISBDY?{ae@Xf9F?+ z69)cE66Mgn;pm^nA#{&8_UFX^1GI9thzwb)7k_mU+p!hL_9jl&@rITto3TteqU<>A z2E>SWB#kwE=*}>SvZJDn+y}PJVq2g^KZ30c^hYR)EzlM%x=6PDXo~_xfdUH@m=^u% zN7wz?qDFTEZr15JXND9d(kT{2NX(r(_uRSnydQV|UD@-?!1XFz4;)odgd&)ul*2nK zGk?1CGKV{N)S6b-7{XL1R@2Km^))A6OOzATk2%R&s+^*}?hMt^<#cVhJY36^Gqru? zeYI>kTiajWPw==iQhTiY81xe&>5SGMFF#%zE05L2%j30)@#!L5kc+e!zN>Ar@)JFfLj=i)eU~sLSvr3_)dx8uo+QZAeGo%@i6GDPL5_+q z6XbXw60?27=Vv}{DrvQ3dOcHdm@4e^5 z8G<|~O4b?c`A9}*KUBpzasFao5z!A`mS7GIxxC|@503*Y++Z4>37I~QWBI=KILCnCcE8;4Q zyhJ01X`~=tgOQiTHH+Q(s+e6;0rEVo$;9;!HBl6Eu& zvLzLEyzya5ye{Tp{w2Xm%86U|(f*3tEEs<&)T`2}S#{5Jrmbp2SQ19#rem9~U$X1MbewHHNM5n(mNdPF476F>^@7A))3Y0O(+Sj)6rg>D>IA;grg?{F`sg%}>Ld3o{pB``d-s8j{*f?AXxTb&5xh+BSUdB_ln6KPp8|)3GKBg%iUrotlOu_$~ z3JT>mI69xL>P;ck=&nWgSajE;dpx=)qI(kWAl6iIrk#4DuyED5GM~GZkNUZ(n+y4N zn)*}u>B8)6uAQN$=|V0)pDz_k?R_D%Fh6zk`pj(pcJ%5(VRky-9-{vB+|+;kTrrwC z4-7YQm*;Nfx7A>%Rku-&!t~5QtD7||NZm4>mX(*XA-B1F5?Bxn3CpcYo0Mc*k!N76 zeF*vJT3)5zkTuY`_bmDKmS;QeWOF^p*lxwFRzXo(re}#UWaiVvUd}S`Pw)iOKjU0~ z$W{GkT+=`0G5x1p*V{a1%napsh;L@ zfo865@=Y`vt=MLUMA_cYqQ1uDvv4a93sB-(v*FrESrBuZj_n0%bwviMUH7(CBEOvK zOtVA~LvFdmg0OiW88i%5(Rka6Xg-curik1W)0oCnT)wiGBrPJVha`Vr*#v?-AmpAh zt-Lkyb-uwjK%snfRhLxs=3=*Nd9nlZUtrpDO$XO zYnGERP@(5Ojzo$TLeGD7ITB0oEK4xp$jn}j>@vN{pVRb!BWiIbh|Pk@7v)LBW3r3U z4q6FNOvm)>dTvKXkxDZ8+90*-%INGawG#|?m1BaJ04tIl2c=V16Y```OOWCCoUn=& z19oF!CK$TWs#nn*(1ujfzaUWs>sW5cbz(-OZo$Y7zdP_?-_C#7Kz5_SHFq{ZN*-iF z4Fpruc!FBF@VOLT9zdacFyya1f>iCH^sLZ;(il?Oc-3b@Uxhg*;y`gJU_~H0HUrMV z4ft$B&LOU^4-iQbP-pG${#?JJe)DXC;64Qp0+w$#$uMmfcfG=&T5_ z6_9Wm??7aQPOI6(d?dtS&-Pi^z6wc7~I`!H$@(K}G z%9$O5LQl3ALme@^v--=*UN6DrFMbjDC9W3cb5|f`3SHO6BNTAOmgcfqH-BRQUhjV) zcwNgac!19050IYvkAsf%*%f?;`u;0nM9$-@H zDZi#HL8KG>Zo*^J5JM-jY0w0*)!}p8JP=LMLl$ZVA06ByYIp_ zs#$+umj`j(?{s(gPIsGwk6!NYlpTNj2ZOlOjjqR)j_M|SFK>kwM5D) zTQ~WyK=E)VF1S#I_5t67EF5O4n@q%3xx9*c?W>TX7dJFt+e+M1wvs{@@q2tj^HN(w zl)ayU>^-)j`!QdGckcQ+X76DJ@9Q+S(mS@cvNlV3eWLvaW#svHJ&aFA3lnxDSDJq+ z6izql&blGO!rK7Z8*bC8+Do=24B$mW;7q$tmB5lMUC*eW#;Vx>ehT;I<4! z8y*Vi7M6J~RYq-gI$)LUbda)POV=}zyD@q{NG_~5!;&yi9jh+U=;Q>-POaJXKo4;W zVo~&$R@1>;M8|2!`t7*}WLJSzaGu+8JU1BW(oyNq5o9{O3LR(!!`){a z0?l3(8Ut=r`d9g96#G$B1T97RBxjr*e5l3J_{6d?tVPmrWw}I~xc^I``#AMT_n~)` z$sohPT&{V_=t)nKmt;MQix}X9!RKU`6?8RU>>{e00}9wP^SK9hD-EA7Q@sN4BT!2#AR_f1lgF^CUgACWcWh0I>gtz>%>@CK zJPOUMgLOs5SSnn3?(*DqG_qy;ZL4l{+)!v?+r0Py@q@}4!-V`xY`%Yow5PzHr02e4 zdn*7$s(_22$6YRzV>MH*x@8S-dpY-*9U+5Kf+D=K*r=shl!^n}An>J_4ho%Oqg>t( zS@*+7>TuV&CptPDN5YFABS8KmHviN?0A%^Y0kRx-R~juxR9sKm%^s|duufoM@<-4v zU};iqQjQ(yIJ@fgdue}7={eq+RXP!8iy||4Rmdy0RPw5aqcaf&{4~f93aJTSjU+hX zGkMk1gt`?&Gu&kFGdviAs3iX!5&sKxa>mU%#u&qE7_xJ6LiPnpY&`Rgjc2xX`Bymm zud(SmFnJoAe+^~(-`Gb%%fG?qZwK%vNy0^{kFriQBXs^uPXoN*0svibx1|eCEdNBb3*oz5$6H>dkPHw~@yvLVe)r|y% z?YN(~$NX4$hj4t`hYiPWg?7_N%eS+gA|w7vCLSroWH7a;&@Eb*DHQVZb`^pdC1gW%!Z zezr$WyUsI4$wWQKej6h`I$h;}La9A#e~TR9v;~+#W?&iilHtA6Fz8gWX)araDdF-A z$1)*5xp05xDI-E}(ir^3z!2avjCV}eSPs8hKv<-lh&G~B2hY812$j2NjXW}w<78+% z-0ou$mipZ{ZzGG)>=hl{=|efrIwx|w&$`36`&cxa2PJhb=H?di%@$w9qYA-mz9@JGFcP>J(puLSzrN^m&7tzRUTjP z<5&p69n*`W8%aOmC*iM-D_B5mr2Le73Y_qHmp3z6JOO~0bTe6Me^JLp%8#)bMwQqn zPqR*>oy6XAWXRY&j}68nc@CTN*kn;BW27tPWT-M$U6j++me-B5<*^XZguKi)9nz^v zb!9bRclxxq_q__e<~C7#FQH}(QT>45c}R<~&v_PHX#yN92Opxxvn-|Z&orKSsA;1t zO|T4p2jTJ+Mmg3Wf1#6N3)^6@Ukl@hfrQXk0v%Pe>V|P-|4xb?edwhmB}kGNY&0BK zBC7)~EvnK2-CJ*>pGgxlvB9`4QJ*EIk8(fG+80^{8U^h}d3=z-gK{VYy)d0cPfArE zeI*JH9uDC=6^t&>7GZb#bVnb%D9xZxD)iNX4)N)joKBbNf0UPwQt8~14hiX0j*i0U z?1_$YLT$h!3M&7@_=!%D%C#`uV!lhsCgoI=g9Nc9Fk_FxSm?sFLUCq}{0nIm@x4dR zJzt0}hGoqqOu-)f9yBOZtP;b&0eOy*O0bdraKU|S814zUGSQWcF0H5EccnvkYQlha z^zcYl8_kYpA4Vod(j4@N{|xI?`hS`pQ-0EY>i%_>{_+0;r2vQhhk7+xhk7+yw|X^O zi1rBL2;8O#Lz{QE3M^ci0tZh;>gh3e?dVx6Dm@IsAL=-1q{&JFaTuBHq2{i?Fhb@*^#p^*aOUT zh696XXkzAZhMPaSv`7vn;fIMe60q-XqJjpR-FS6re3ATdpt7XZMbL>^)eA`CELAHN z=_r4z@oLFqb)M3xF)B(X7qqhAReUc@nz=qpiroCBUs`!Vxbd)2|9A++y>+Zcffs^* zOFs|X>&NeUNh=`hJqCTg4%Qs-urYTP{fYEFtaIt|jk#F+K^yGGjmu&*1QU+?Ph-?>vCZ)5y?Ly4*1&q%LVw3AdD2&6A$T$ zCT0<50?c>ihsbdiQwYdGRpLq(afQlsiOB@r_e*q_o+fgApwpvyd>(;OY(ata@UYH( zf>4a{Il$v@$26E|g{U@ka(Jmu>{q2PNYP?TO}_aYoqWDWC%sQYlyR^BB_94`57>WZ zkj9`>2fMo~-<0%JcafqKCH69QSKS5z1j(+4$TGFVAj!oQ%JgMz%RpZqkf+IXW`J^H z?tmt+Wf6H=J0xD3H|6k1dymJMAa<$F$>Ewfe(~WlsOWxz=Hv?T>+6eY12s}}pP(fS znlQH8RL8*ZGy~B2LjISC&8}9d<@JU+m*MozCMi-Tf!c0f6`=OrtFxaC)@?8rju&JNpOAmaak%aW z^%|By6Ipt1gr9^QHBFN~*HjxI5pQDMIYPcm*9zBXt}aBjyf{Y;fo6yQcRbMKSe@<@ zY$39i%3g&%WJz#&B8A~abLE+6VBG`IB~ zP%MOc1p)@|jK>w4G!4q5I&puE3>m$l?EoeC{WKNw4tj)r>Eku z71%Se>r5KZ#l*K1)EwRFfSHMYnAFUz1i&(upf}_Eg?1pNc%u*z;B^< zQn2j*jR#aYIErZDw?eo?4%oQTX&Ae=E++FsGu2bzqrVK%D(~ zw%#viB`(;d`X=1xZAI7@l3XT36!`}7qWkLG+LlVQV)7FWAgenIaBZR3r}@(T!yxRj zG#K0QoBJBn(zh`7pe<>n_*}e>et5rFnRKt9Ku;V70Pw4`a9%;z%?fnY9e>dsk%%uH zpOJw@MTo?}(!1Ff>JxupBfD1Qfj2R6p8pZvJ{fY5&T>Y`flw&d?w*M~tisO3IjVWs zt937F;DXe{^MiGt8u3^GNjNnfJ!b+w@sb)_pBlR8E!EP7w8QCHKu1QJaUqFj<5@VT zwip-xB_Xl^j>eW5YOBEc8z%YL4YKVtpd0JGX>?}*-V<$rq6UAGLW(;w`L{BS4AK#) z<4h`R@iPn5(|a&?8DxI96n|KRHyYM<7DE~D%RqG+v$oI?VTAo_*^gB2z_$nR9$Uo#%j?RVa$A8GRF)y-(xzOxTsVmB0HlB) z5PoGp{xx8p*U^8KB1k>fG2JT6zwk+-Gpyx+mO)NZ4@LS-QU!EQ;Yk~dSp@Oxw88-8 zQ+i=5B?t?Mcr>P{)r2=R_0i;G0x{uJEx9XvWvy=luC$s=1t!X&_(BjCdHB$tz~`=l zG=c{k#m%v_Dkiz0j3*=ww0fEdETI~KC<@B&C7DVo4Ss(iRlU9JI=ZdBB&uFU2&SAz z%maR~j^3lxRNROo)9+$#-|?10+_|gs3n_ps zNKZR30Vq-~Rw|p=Dosby!g`Uf0o3Z4a0!iso=kC&vxa8ITDc~03&Z||TlE^1O?5;F zd(l`+mzoga=&@{OsAJCrLdKw}$A25Q5j9*t0e_)^CCp1xQwwhF$@rrfSz|rtIXqw{ z13$Hgp2MGo!(UP3FrH?pt-m4L7V3`t#r7*@FK`sZZQ<}tTG)P7A`eUKLqH>ANBia^ zX!#}>SD?;-X=Mc?cP1KI!@3Wp?i>nrrhx#Q4nY`)`hAU0Ls?Vg3MAqR#39+5`p5qo z`hPv=q2u7L6hLL)70D_TS-}W5X{97!fGY__QmCPu)q09EUgFDbX;gq>lTewmZ({D2 zehrKbRaGp58Cew!6migV(2I{Ri;ESCnxh*ZZbfFfS1hfxrE10h7Art1$o**$=)z5Z zjNT#_nWO;UdhuR)y}m9D9IQnKAAXI3YJaiIrstOu1s!v$L@*to^p?cUN%#3v7bf0G z)kGFH>CRGC74hFR*|*h1LG(@wpmTy7q+z;{a#FbHfNc%3X<;IddwmAXTQsEjm?{`( z>2Bl{=I5v9MWov)2XQ7=WYzr*UaXPBAhwE$@7nR~MA-y%g4rCSRuRZu0ozt0)qhT+ z@DDnm>SIQT2F!GS61;5{?Q%FcG5-HA#D7%hY~CLV4x=({hty9I_xR@bk!!5#=>J;< z8~H=+n}3gJ!$dWonZ#GDFoU##Pu2|nZfIk?Y1K-C5Lw_w2B?`1v%@|tNj^j?_}ZO+ z-mq9!_{>55)A-+ndzEF$n{4?<;D64MF}pr^`#bd35pNTEJQEI(Li)#`5E|hC(BmIB zjO~5x^w>t3LqwVVAFuSHObT}W^yqTT#f1lBXyMFEr<9Q1Wa_ul@*YC4Qtc5W+mnE> zi%7>}G>JC?=mNd}7`UFkCga#%TVGoLS~NpJ@dCCqGWxk`XGRjwCH@se=YMHM+SL44 z@bEuTOke~cbEJYtses}s-_Le7}Ow>;1|38UGeo@7RCw9AREHa8y^dvqzMSQdP^okmjVM`L~i}j^0 zLD)+8{ZB}P_)yuG5`;*NDPh$AB9^?iB@Y^5&HId@Qgo16N;z#062eEcJ zG)Xw>QrwxrD|bF>n1697EF=#L+*@>Q@fuvi9SJcIq@hJFWka}>;k!B?Zs^!Pknb>v zQWMDcyI~eYn+@dqT`1{vk#8T7Z-xX~C;9#q<=N*aULibs(Cz<2f}w$b3Of0`*!~r@ zO@yJ;njx{Z+ux#qp0erp@USOQSe-;M6_WygvxhC3P15229Dga{C`lubL{bI``O~lT zQx;4@6$3F<2pQCwSJf6l!@Q%|{sbdiq@4{@+yl|6SSnTPe(0hDHOJ4YWJXh*K}O$g z$`-G3)+@9?Hs4__36_ERW>fgFRO*f(U=d2!K1toeq^>KevT&8S& zJO~|`MsO8Vz(K}R1w|5g$9jtoN6T*~i5!_j zvclp8TnLj?^sD~3w_Xc3Q_F&6ie@>a1wtUbOTglMVsjmSIaJG2F2ND<37!zSZ6}0# z2+U&g{(sR59NA_IVgY-8AJ#u(PqUBNa2OK06+XS6kHlVB7_&ya0W3_DZ~|q!1xIeQR*-TYQTou z(j|e=vXE6>5C~wz+ho}pAqb*vuJMuhV2meX*c zq)jFJpk#lezmaY9ZQDD_MdeP|up8MW?F|rDcdjstT=W;U-q?grU6_d?XP~VS$k&0> zFK)`UWUo!nUrBkWg%f^c?%LG&>2qf z{ePoN#Znj?rDq9ikSohvOziZ?Pb}87xj4y5Gf=SXi{7G=$h?5knn%3ca?XA0D3(1s z<{m{I6wkP-_UJpKxlXBr{KxZgMHk?jl%JazkHwD`U9k)R9q$`e*Q`4=3?SUG* zDTMwKuw#ZWMS!&E>>4djl9h3&v={*^Ab(bmN#8b*3?rut!Gei}^~E&Y{8FVZyLGq7 z%OsXtUY;0~%tNk7Iop29ZQkMFg%nAZ?zpB)X=hAuoYlqXDF zfr8?LbF@}ZDvP5aD@JW``pUeP zq@+nVtt0GUe7SdGcdm12m}VwL8YLSZ#q=`FkfHPqO$_Xchs*L?1G{o{`l>7QtTf`e z6K7At;p9nvPEBbl@$$vq17Xx^K0S~j)zHL1#LKpU;2;uT8|76B&;A^(E`L*yi{1jo z-GJ_|IebP139Ksb9cgH*8p`TaHXTUv_etdk?yY@IyRE#b-1+Kl#qWm}(a--?W^bu1 zOM044s*g@{>@n0XpL}QUk{dhW`B+7r46>IB?%)osG^vYIxK~oErlDD>H=Fb|C0}&e~q8R zFo{rsFjl^$hZ>^$ydrVoNaEomE+hk(31-Y+&&QYn_;Bj9ME1xOY5jWH596HNUr*da z_qzwnpN6;91T}O-jUh?AL1$`z8-^e2F+$;n4URA!a9cy%ru>O#Uw^~Yh}1kL@myT& zwN$TET3Slec=+!`4v)@x>(#qnJ3<H+VOHlJ89 zuF^8=DalBH_K*avDt|%y1u2JPg#mLxQF^s{80oXOuJC`Q#yTIyb@;#N1*_Ty`=A9Y zCj~2bvv*I2+j}ZklQsm*o_f6=$NXtAX=hSFWW0X!`T~HCh?T;?J^IEmIQyX%uRfp{ ztiVxRn%b2XY{y-@0*Cip%){EEWblF}vp}9iT#fw^n6t7)S$|yx!RoSTfFz4z#Xz2) z>d}4j72tYFQprfU@HfL1x>%$|^I>iVko00QxLZmqPJ1za&^cNx`7JHUjM6Y02P4gz zIEz3bffH!FV*%u@O8@ENd2#><55})`aY@%NaQp^;6c5PmqD-N{s-;3fc%o^QBm%mC znPwu!o_X!k?SJX(GgpOspfw0uuSZdT@@_whct%nD2|S#~15OI9ZR89O=qZj&T0X|> z_@K24g|by~Wr4^Krc41!Uj0KnkX$E>Y2~D0_JGJYz*xBOVmwP=QDZeKkB6cvt#=;c z)z|RwEj;`!JmB6R{I^xf82R_{@cVf952{2%F^|3W8h=6D#PkS~nYLyOr{lf!rx_MV z6GeOAWNpKCoI`fT&KMdVZO69k{q`XIW#DJRpJNZeU%zwSF`UEj_q6kb^AtSK+WQ8N zKq(vE+BUY7wXKrU@ec*xOV}GU7!5S&?@?t7TRHmK7#?MTgI-jyZ;x*Sr+`6L< zrZ_Y~O--D_oxm#PQW^JZ0PCR6V=IVu2&sa$TYs&j46}rwr6FFd;~p1bxl|O(jgzAD z>9#u3vf|aDf!G=hI^*3-I#CSP+6z}9f5qCzd@YD~)Bq}8`xyyIE?c<+tR z5bEv4!df79LBm(wJE3(IPPRP5UB_tOvLsak1`@9%PXks06c^h8Fj|29%p0I}btM4| z^nV3~KOhb*lqli)i4ORuK6~;cZ7C<`MXb>c#H#bz9$)F+Z*9*F*W|Y=Ez2_AfGxiN z+#9j|qz&xR!e`r^`|Mrm+OVx>6Q6D4ww_IVwhi3kw?BoA+~Pue zZs-;lNN`*3?3SvS-r+4(ynRoFnUa$dCVzcOD&q93sPJWI^N>RgQ=CK4lgL;X&rdci zafat&F%^{yUXst>0HLE)RC2_DaUbf;q(#6cEzQH7VN7bt<_)=5hYe3n+@S+Q$M8Oj zyK)qquy4D+L0NR@6hz0}PDU|Yxr>aIeSo2cymG-)rGYXs&-MUPyItR{G4?^JJ@z=^?Z5AaJ>}ru6*N!r> z&1<^@{1-?e+bD8e-xEXzUPb$_$hLvm-4d_(U!cD7BML+YK_wb4#CiT91HvfCk4Am) zvViNwpepU5Lr*gW!FNfeA^mN)FMqZ8q9gMy`4l%nX-y@0KIpcDsIl*(ZaYHS`jBdC z@&~#tsz!#?a?$M8er)M@N12rSNm`; zoYj7yB(a-~N{bvPaQBOPEf%baJWnY`u}d4e{v3cO*L>ts1!JVC=S}<4&4pJ|S5R(O zjrPfv4Dp6HluCnPhxKHA{C{A_4DfzDAhL4IidL@u0?&Aq*f4V zcLFzC={01O^fD#~pym%+{+&UQ#0y5HLz}7`5Q`pYj&Sn#wtP=^Oi_@UqHR-53%xr z8$zs5)5JCda-lhm8Q$+bWU+}%D%(I2!^B*ILcCD;$#!h&T)oh=W-rg@-IH*JS#@U< z^WW0;=(8o*(Vr*Yi9VbxOJqq;iiH+Mq9oWR9dK}}Wr9d{N!#5AaV`)oq?{vN- zAb(zIUz43|@221qIdX_9$!hZqu4PQEyEbMx?lvKo)&Dy&0)NUsNLCQH77p`2=t1P@ zCper8Lle3BLv0M0mI}unl;p60Zjqr5w+R0eHI@yJrdd&8YWn)snFV4}DQCyCF`MDf z;9(pOr?q%~{;<8ftv>%5y!~}eQW*fLCnD}l+1+RngPkWV6Pc*ezBDIU_aj`~oU&V95O-yQK<|M<1@1)}{4%IjqyFVwe|hG{+|{W|^H(GD()`r*>yf!$1P;!>hx(Pd%&Ya< zt}YzV*AYk5_0Fkvq2#C@Z`oj?%41VBK~o%1c^vW&QK_~`ZCf1tjsN?kp6i}eIh|%Q zoztNu>VLq5;wm?tS=%;k`axlGTyPO);XZ>Y8O(lBp}Q>JiJUK7%SS<)UrnLF#Kie7 z6reSd?I=(z4z zd$_nKR}69@lp7out1h1&6|v`B5+a#6FVNs=nt%PVhaM@6#J>xNPiSL~O+*nVMiFQV zP=qF$zlw)xO=y5c4k+P}Fd&o&L3yn(BEBctLi zg^|f|o7u?3IR8U1IiZHTS4cBxtu3_2{nHu$?9w6c}Ow6dwElQ9||kKj|^6{{{*y zx6kU33?SIa-vL#l*{0H6dp;)H?qNT~EUIxJ>)9(Z)h%&)wi4FDcq_porJ>?Rc(fP+ zPCZr>VCY}@nw~^8>7K?Psn^@=bANOlC5A1Ab{cwMka;5+8JxBoc3X*`mnCTZ8?;4d+ECnXK08&d z#W_jnV#l;1&>6?$#ZiP&z(H0#o@<)4JcRF4G4F&jjob1yPEDL89i(ZJK7Rz<;NzIL zizpTau!t>C7Ht;y9mUO0^Nu)Es)7|3`LY-09dRZj`e&huxDYa`_!_xW-U_GQE=7f`2pGipVxrwPd~h9BxNO8yV8mFDZ8>lJ~k?NQIkly`MZ) z;!oaI-aF8+w+ApiuI+Y zT+)Ro+sL4QlX@xpenoj_dn?<>CL?rce}H$P#t=M}rLZMGOqDXJ)OT3lmeVQ)Pky=K zuznD^$uoeb18qIhaA2%`{z-T%(w=fDJaX2eE&Tt@g8h*w>HL zJLlldFcAg@^@f`7FMnVp2ZZS|FUs^;3QtXvZ~v`v_6{8QTSz(Yyd(CGd277#7I4vb z@C{3@YH*-ZZZ0QdUE>V7t+=dE>_uGH+&B$eY&DMFQJMQgOja9b@Z(~8nX^;LDt+2I zJr*4U4J-Dm!Eq@LFM zum-tHN(aj(>t)OPW7|R{uIOjyH(0qc-Yjc9H<-sKeTRp@)!LNuz9j&{cH}WY&;o zsoDca8&olypLQ`;2bBZ3#thy$s-mEw8;GxidR8dJ``O$@KgTn|5~rOwXMz<(bf{VA6C9|)1`)qA*^047S(3I-C!?SFgi(F};)8ZpQrR@{-NfhLJe z{=VxJT@`acYahtj_GfWwW@OLLPm8y&Xwul@x3!qhqvAz!S_nvFr!++2W9Z=si0q5v ze=GAM3iBW0IE^oo7Ki?T2L}Gr3}Z-@f2Lyq{Pn?~Q^a3hqebP8W@$qWM;+7+&E5~c z1NN|e&FA&zbD$q{pwGD`)t6V+7c|2m z@heEfJl}QsWa=)n{6@=z74B+PI-HpXA<%U@Ol#YQUvpVYt9E>jno)J1L^G~;3}!%> zP@+PN&|S;(7d35@(nxM#TptQ@KSp|n;~BosEPoh-dT6X>ft(8??lcU4sGuR7o@N5X z;B4FQJTM93i1a+J-g_V1yP>^RL)Wz(7&7vN*p#iVXt0zIC-~)VF&;<9e2lpK(cMi<08~(Iusm+ofEBevL>)p zV1K~2aY~-;?jZEwWYzKq;Nxz4bGU!JXox8GTGVg2#Ji!wj_b4`jOiT4^85|$=lpH3 zGm_1>14#15Y8TLksYbD{y-(W|XK(fD1K-c47CJ zV8}5zHf{~p&pv66uMDeqFb%-`z-5KF=OpEb2f@L$`;Ek8Sb9=VLTZ zjt0B7W-!gbY!n%Y(BK0%=V(zZY9hULYX4Z|7jL8<^4PL2uw61Ril z1c253#sVVa8<4gjIk=A9#eoe%O{-#?pMWv4uz!o% z2MuemIXV$KC%vMznq^u5I*bpwzTJsKB$}Pay@q(eZ2?;k;uAMUd@7u@7Uy8i>r^8c zAX4wcMuUlAj$gn9a;rG$Z&}G0J#BWwt-7QO2E8^9aXc2hw$W-?Fhd5h>0202vye=2 z;9IwD;W6SeUyBd1L32xcEoocid0%(fvls_T_42XdE}tsIy*$N<=cJQR;Z4=qt=(#s zZ0%k*w|3W8w{{8e%XDkkC~xhW*Wn$1G~$hAkb(Z%68vggyY%{OoS7j|2z6iyM`oK$ zDLy++OyS#|T^tE;ZkHUXTs432uU`yPfNCh?Sr%p@Z=z>;jXxo`@h2p3FC!I za(X2kXer6*6?3SW8=PJV3zB^~OhK{_r%pXx!pYN)mN4J0Hc4$oZ?p`P6`=BDV@Qff z#*vheoI#=@$pbOPV-+hDOTrzjTEB!IU+9T}cpwJCq1clGi3rUcyAXd!n^0@*y%9h~ z+sv@L1lnz>mkLtbDOm_alDdghz6ny!3`nIxs==k?o*c;AX)cxFQrVk=^9{%-AoC@c z$@J1edOOQya$H6Qn%-7;OP;qBKq+(<3KapdEQduEoVUM z*Pt~4T1Q-~(8~td?J;%>8rZg+Mq5 zwf1Ks5umnxapNlq7cvbblsDhJz5EQ9k)2N(d3Tt4_imZV*mi#j336W{2{WJq!N#(K zmzAq5gEB86;oOTzvWW^)5>W_UmP=kBqS@u7o4t%AmkiItEDE?m)J3+AMQ33^p6`gP z3}bh|9Zh!}uhYid2xkC4A^dKeYWW9W3) z=p2_Yt4A9=ntXqD(1g=fl6gT>w9AJxitMd^_qGf3Z}Ciik1>~p>W7Bip`7pMLK#cG zFdccAA90#pLG>RaSwQj%l0_sx0n!)P8bYBaS+m^@&+9tO@H7D4!;QUxF(S&MDk?x_ zpo%!n=_IEU$DXQK;Ibxde7y$%n|^7dM5y z3%=y1h{)qv!Ys27@gImEL0rSGko|N`f;;Hj(Y}bZGO#~3g^vXu`_e|JxNSH)JX`N) z_=4N6+0>J^Q3TidngJ$Qe20o2V-*%}C&f5l1-6WUN^BLy#To}TBG<4bhV_&Ieu1+r zaaa{e5hZ`In94{Q0Fd$dV}~h?pp%M!?<9J@fb$E)nixo*13L5KQUCjHor7{IxpeYs zD=K{lcRzj#I{dCTI5J+<+%}$(a|&9*)o+%4!3++7AII0O$8NN@`yYarY;h28L|X6YDizna zh5cVkN3L$rUo?rr0dCYX>S4p-R;PnX?gCx*6ZC;Sg)Ly{0O&IL>hY`?TTN@aOhf?1#)&dZ8&M^$7wXHIxe4@0k?aq#j* zuI#&8ycXM;$Z2%;-XXFh6e`ANuG9|k!>qkq%$deitR~V{XhYt+d&&t(gYh?(G~w^h zy6oyMS6bGdUOa2l*0UqI{lGuXVrTY%FGjbT|EyAl`gDF%`r$#s4gRmQu_K|?SK-1W zZ)>ukzifjreuq2hK~T;*(>>!KuT7GvVYuJJ1aM}FevDypWnB8Tx^d9Gi^mW;x;DJY zBm|4#v=YdW=On8pXzE!)&)&=91`*l7ow;^hb#`FZUf%=mahkyuq#w*e>Nvs!{Z=@ zVfcNRO%aV)n4w%*EeTZzPe)`@uZ2~G;}lMIkD>y*)#x!K-~?+HYMX+Nn{h3{*pxqL zQ%K4jmL|*88mV*eUFL2mq%S5aKOv<9H;3}i!oQr^*t*-B)6Vx@>>XH9?zavdqNS5S zgI3-+eH&%P-&tCFpQZb~g2!#HbJze)@9>T;?*xg&s#l1tc=)1XpOMZ*=aa|mB zaBDxI_WkY9qZM#ttz3d;B5_BUoT^|{Uo{o|>3w*MPRtM+5xk>%S`hzIR6vhe7qOAU z{Xli3IU-$NikRW$v(T=r*YWR)72aThuv>9Ug(*LD{=-w+skUj!VL_SsFsVlc zDdQ3q73Bmo$F!N8oq@t0gnp@CXk_&r2c5S^Q{NqQn^M>Os*yGCd!k169(Z)Jia;sG0ePC7l7Y>f*W7N(jg*tnRUVU&9pRH5-(MXy z=j=*X1WJ;4(634Q5!86WG`~?d*>k42)V^nQ>{Q`D!{M&OKU2fldY*?E!Qb(9 z!scf!^c24Ru-`f{rAPL(hW3qL&+nYF)%YjkB>V0$7geKBly@c{>+{PE*gSt$`oPKy zh>D#Im3~#Lod&8eMGCx``8KpsY47V|RldII?|FqETLpbbO|HB3G<9D*#9ll}U!V8W z>MPzBY&sM5C9B7(GKyo04;k98a^TZmgOsDiwmY>Zk-o4gS;xlTk~Fhcd{>niXfblK z&*JA{54(8hp%$wo>?!N`sHMHH)gNB8Qr+KSNaOX_7Z)ZzGnMMRZ*}j>&PZk{LdOI1 zYH57l=~W~S&3N|g;Y27aPt`i?f_^Nu&a%qXq7TaQG_lqmQQOEqWO^1M&WO%KbM{4H z1;S|L(p{5JSMYkAyixm0#fZUi66wRbAQUN_l@T-rretX5CHG0vMZo4R=S}eH`FJjt zC&LIWzF~;j)OWfatE}JdZJ1PFh?yyt;|T;Ig0VB$q{){3&uFRzwPw%@oZf*3+`1vD z)l$&xKr`u{F!Gq6<9McDKG$6fgb*`PDd01!GDHe$TH=BR8KNb~DnnRHMKMg;zZVRh z4A6(V9(-s#LSE0+9gr0gO}&`Hke|HhK#9vc^{i31 zA!$9fB1lrqd2jDFn46%&+hrEFzt9*5Ie-hD?pNJ`zi<`mDzk3+z=v*hrNH+gUpj7& zyRS;7$+xdesmdoYpE0Y{er+esqM_+`x@!67*$ERd*RP7sNwYT;+M(%}p``+k{Omd+ z!RDIct%+yZT%8Tgr&)t%IA{v0Z?J)vVo{MiR8XfPWsBgndeVz6q@a~bx-~Wv*|WC| z?f5;=-+y0xGX0S6PRMRNUgP}J{M(o{28U7nZKk2fsf;YiGthSuIxvQE;0BU@?ZyFm z5LHnbmYZC$4VE_Z3*;GN*z*d98p}da^jF4JeKS59J37%!du5&v@ug_I`^2H1@G*u- z*5>^?r-3gey|FCnHS7H~j=JxvW18vqp|o&rzE>$ekl)8nj;SsQsAV}6d=B->iXeGC zOuJEf42L}DkUQ@APjPK>@9iIpir59`Fqe?^kJZYa%YOa;&_L^iv&KQ2&ehTppoiiDs zBM!GCdL7Wa_{){tWI?zqe&*`kbLz9YWih6xMd9zFf?=6^c5(0aQU$rZvzyVlYuy71 zE@*x{4w|F?U5BK4EL=Jlc{kU!w{;ISb(K|?A$s%V2m`kJum=b0s^v|K^h&J3?wB(y z>BS=Fen-Y!<6h%;^BP&A49U6!lJieyT^BC~XRxrXU&{KoFmyks_isJTXC-`d{lG`8 z@WJgJ<*PwjW8CH7qX!!Y%R#!=*}lYkkNsbvK8m4vNMyC9<*qRLejy8Ot#f4{1R9tk z-r(|G_39D1%7SMX^NQ|ZgNddS_*MEve|oJrSFBaHc}~{onM|!Z9Nh4dWnV9*(3q&n z_+=J>j?tuGDFn>e6qT94Zm4DAhWqxZT|{gSp4=uNMQh z*RyUeOJpzKI}Se=?ay0C=#wXFQHH(-HaBVH3&_Q!*=T=EmGXYp|IJC(cOLKd6SQbW z$m)CAHy;15#t9JErTk~U;&vz9D-r(VCsm9)<04ST4AZKIb*6+(7_FvSuh)+i%!D2F zhf@aLKdnfPwduFjt@tp&ji5o{G_5(QnXWMSHMY1|&x1Ace9LKgk~ciyZqWq#i#;sP z;K_66odNd7$KS*^vA)~GR9ip!#_jQlj+!2ZbMW|&@niljr1IAl$tb#d`OIZ|Gv_PMBXF-NglgmV?zj|Ip zO_9D_@G$W4yN^5AEw|OgO+n1^3>qrMOUc?V_zgI2m`EH^a0CNhLFQw zgr~&s8VALCYTe3<&A)JKTbc-3oKEYHZC%RSsb#^e^(gV}oE>J$+i-yZLX$@mYs~4{ zL&=Zz4i4I-?(~jufPhfIEfq)y%qIPKCC;oBd6q_Cfd-dA65*5+EfaXUdTcu z*Y%p5pRCV5RsC74O2DjkL0+aZZAZ&ytbtyv=u`{dG}svUs=A=b=_gU3xP2l?Yd*l> zkdxVsv)9mRA!ZC2cz0^c46V%`@^-=_{T0ZfApX_qiRi&VQ~rlpinFG0X-Qt|D&j}W z4TeO+IGeEU9g&3DoX-NLgNdn|=uc|Cgj_rnc-&6Bv?1wMv5iiC3(EOAPgfj#&sLmK z@{I;1ujLYUBV)Oi!mIPSK>s(|98oAQ>DnmQVES=T*t@GXsj@&O?+WOz9FjR+F{*bz zXEMc#DBUn|I#%igJO%L>+R-Z~CF%nxND2mSSrd3JzXBpg(g-&xr3j zP;y+HuJV?4`9f{Rme}*sFtF8F>ubT4LST4#&}NpI7-#J#D9*U08HvHOM9FdI^o zWPb+ReB$aXoTfjOGqHOKwfnL7=J2#-MQH6X_M>@UnS5fH95p-pQHC1KU5dTn;VNfM zoHpCWS{nOY+-E)q0)`&2WAAjLc8%{7qmLiocYnGvL}tAubFPFr+Lh4Gemu%j< z?r8>|30C<1Owf++;$i3$&xYmbI?TQPG`@)w{Xsq5+?S#6vctEl_n=V%B+AMkKM7Ci z)DmStHm*al-&2;1npPQ?Tvjs#5bR!!8@j_wE6yShp+w^75?_dCG^Ke(#hNP0*yepRK$c8INia(M*1j5u5VDTF{4WhC)&s#!Sc# zWLwc+%O}R_LKQ2{mI6A4u*SFg&_mGUc7nnD(Q56`TW4c1!+ePXscheCu`u|>NBWn` z(hu_Eu+|ii}>if>jxT};h1FM6N9gV?&@k> zOhvGVU=MwQPxQ2*fd>97s7>{lbtvJI@2Vk`%)+shR#3L?IiFJ<{OTw(t!II{CFVzl zYV0Fiu|9-ikMhFr%HC?5*$U|SDQYNMGMTiLmt6*v?l#UQNH)iw)|8t9kN3D0R>=zr z%qyXc3P{{{CX{zaN)(UMyrXdMk5)^L{0U~(i@{M5*I+Y+E|9wUO!)=OE_+Q8lACoV zDe!?c$gC_3GfXqqMAy)5z16Y=moCgnUkprq{Vqnq{v4FPY|^p+z1r+Oc+G9LLFQIZ z@Yd~U?|WUt$DQvHw;^QRcl%gqSIrybVO9krD-HDe- z*AR=~t6Nogk%{{U=UX#d8tQet4@NA?K{BHyp92qyW8nHaqM}cmhoFgFD;)3j=%(UM z+rmE6bjO8h;Qp{A=<{9ysRgJU)<=EGln7!sPUdV?^n@Bod)hXN;iv;|PcEtn`28zj z=kpls>Cj+=z{{Uu?uh9%l%$4{x7oiHEVqp-U2i#Y@EpyzPMr_7SH~6N(dt1pQ2wcD z`GDNvHuJe}CxyTl=fIv|(8l zxK#A1dJbJ;i)^buZ9&VGh3I-|-1YcaYyB0;*f9}Qjc>u^s=6zP1{e5qN%NIEDfpIO zaavqJ`!Bo)^~Rr9(75h;tkQdmmHM+^YXv+#UZa0@Lxpv=5W@Ny7|7+1sm^Lj73>lr|uOSwpF2-*0oT zJQm~1ci-c(RB0$*e6*7j9|$L5fjyK<2rZ*sS&OQIKF8aytFhY&)VhD$M56KfNFuL?5l7EhEut}x=pbH3S9ViM~a;;%IfnN#_eBI6iZD}L}i zQ2&$vQ6S|!gyGwpEQdHR{{CQ!`A7M#sn4=zA6VN4z)PaA*_rtZFWyQ6JJ+&$#|9F| z8lf5D9qd<0pWJ-q8PTvLY4G|7^eg#vdGh9mlJ}F7w2u{Q_XC%^Nn|WSdnt>u2k4Un zTb{0^HcaDj5Zs)xIn1O$?mf-v;b9q;v^;Vt$Gc{S)_ad4WC#^bUi&J$*1y>%I97k- zknyNHrb#;DQh3F%_``wAgd&`%E;o8DxdJ->vmwACfq%rP0^dJ6AfBQ?EW{%6gFF_` zRvXD@H1+;T)(0=d)y3)@d8N&yn`@1~hu2cRD4z6|e-feFY+gDUZlr|T^9D;x?5 z_O!-cFWkd@zB%c&$FdjtEw_oa3&D{p6=dHi@SBXKsxl2|`M!%6R)i)FJD`-({A}cV zJU#K4v|-xwlIzA@RKbZuxL?wa<%4c{XV1D!2g6o6q2GxuY)1GYJ_=fv>8l|S0h#Vk z#&le~T0F9K`O(LmPbA)vKCX3$k;(Y*7|MB{@ZqkVy_xzahQi~x7{S#u`JeB!3(jMn zw7&RQrZqiQ;<&Y?*$l!ayj*i74*9wL<*Vm49DejXJAY}`lBnP(mf!Qvqv=z~LNH6D?7Ixs7}Kp44)l?<;dX-9 ze5O>ANLxxinlP$4)O@u4#-6u)u^n$?m4gQS1c^DB(qTZCtAoXW&SS*;aZ;!*hw3yxVOL8pU!exH*jW?6Nw}C$<$G(R@ z?3@#Gr}=Q*zsQ&!bi7z}N3Y+c{T+&h->?9qMyjqqq}Xfxz}(JPZOzrtL~7KUDn9b2 z5R`nCw^-ONJ6_O~oC%1b=HYWzZU?ki*(=qIc#nSrjCL@TyO4{iuBdWP- z9Xw|vEZ7}abtYOQ+e7GZs=NRf6V@80Tjm{^4Uwq*4C`NnfpDJo{|aUmuJ!LR0$<)UsGLdQLq_FV7dD`8d4LLwg`{I^6%OT+U76jFC6a zL-56PmE?f?kDaO*8XRUO73Me4?Jt6JHV@Bcy32z#4VHhsz+qa*GG6TIXz;IQdq>bk zBapI9`875|v0QE86(aN-dJ-M*p2=N;&hv{(H_&-ph>ar`si zlf%nib8kcN#|K}&>{fP3LaWd?yg1Wll+e6j)RNTYtj4Y$4l9*ae|pL)55i`JfchG zZm~;X3248 zTu_WT`a9R+MkFNV{ytp8ESne`#es=D{fG_EOt@-Y*=G5S>A@1UQ zx&prX_3py`b}!)W+VSN2{QBVM2Gm>Oeh|8SdqlnP6B_taw)OkHV@fMD{rTNqT+8b* z`hydw)J|jFuI$xE=*F|}?w50QH^UkI2M0t@sk!^z7gy)|l;;V?l zH79mi(~2bI#(b8azpl><%2_p7Wla<&WziE>QOkGagAb0(e{VEg>kWs$f(pN9X{LO9 zT)O6l1TTbbSg;T|E-X({6!fatInFA{;8L=uTWi{_+L-*T{S@2tF~hm`or|RThlFj1 z7<0w7m@fTl=knE5N3=-nou~8h2`{^gycP09Ov9Z-`5Q&%Z7xzrjg^x@31D>_Q(LlA zN=&0x>k}{dqkf~FnoBU83%bpbtQ+qXGqycc8~v?e=h20^awv$Em+M`oBvXgY#l+Mo zhiP}v)Qmv(CtjgZY74C*JMK4yxz-cHpuJzeuI+^_%-O5T@3dNt%Rkk{?jcQ`&+Zm# zkx8@#L5Ajh-(puO?v=;P4O|KPZob9Vk=3^KC1<`gyX6C`4{ouo=0ic!HZ%Fgxdr${ zLYRGr$yKwHM|W8X%%0mWAAk6Rwxvs#=UT#$-_4&_K(Ij3xn+X-QO&P_C0Bv4%hIn} zmDW7@ld~?D1 zo&06DCbxGCNLJMOCgWvY>ROE;X^-Y3z1=BS&8t+-XBItuB|)?ViVV0fBQwZ+iVQx( zosU}*KemCmLh$s_4GPg+bU?)+kA3By7h+DflRC&fEyOU_c_jEt&g?MCUx%JLgh)6- zd4wu32S+#(vV?`q!Kgup+F_LC5TMJMU`Kej8L`(zTW&o_(MOo^qaS*4_@!{q~j2$Vd}$-lo@L$OgQ{tZjP8hQE-&E1S<(QM!;w zW(n_U4(LMO!w!YFo!(g9(GCq|gaS2(7F|97JBpAPm6nmLgMmg;9^Erabqm!j=g~~g z?swK{rq(6ib&#R*<5>2X92FYyEtZZ6?* zgz_&-nT9;8$4*(|uE)3NB)`Bc?+~dcTvPxBVl8$Ox#0yzO1dcg0o}-hz-&h0ux`My z*_^`R8zZR33fy)C&I}KJpoFEoLYVPNV_RF%u(bQ8Vka_y*#36Rwg4WalO`4K#8QSQ z1m6(*y``W{$3sKhb43cN2LpdQ>yWB6B*i1ij46dU-;5U;+lJ*v7TX@}Mx)iH;`UG` zis=GftKD84ElWW#5cActhd9<>9-z!7r-M4Jz3 zZHqf3osY;`rno_^TQ;~L*bgcDvV=ZFjFK=y>n}&9q^P}x(aeZ>)oDqEs>n#VA8O^s z4~ulKgrXlWo6QhmWfRA?`_(^al_<9$FQ->h@YzE7(_EhCG`c+=SIClrC-ieX(LqPB z_=89{;)U=|H~gVajCzdLHs=fS;PA&wYeT=oUHAzi$P=S0Vqu5I65|4cV9Lhxj9eB#Rc^OajR3`C3Ng|`lRMCW&cipC zTa24fs0c)MaKExonQ6+i zBr`eX*hX{deg6?M<1krtMfNu#LppUWO9TX#RKTAO5)&~qqU?w3#sjdI(hPYkfCIMz zYlf1g;`|%t@l(k1&4i#c)Yw`}_~Z=e3XJ$2IiyN*ETHr=UlVT15;%}xddY+%{D7fN#SSlYgfJ{y`j7b{1;kP4+toP2w3o;- zqJ$1P$vR)TQOHDl9AbQE15o?fjfAiL4?DFJ)Z@sa-5)`PFaH5*!VX4XqW=Pjh*dXK znXtq|L9+ILA-Swhi3?QqB@J<+|8<--R_Kry%X|HU9TXT?I;g1dpsNfxY@KAPp+x{| z|KD*^S}rQb1tCS>C+OjCX7G06#)rfGVm@=S_HkCDlA$rxkivr>bhmwIvxWN{I^X zZzg;|YW0w%(iX&RzxSh4R$Nmo)Xga8u8Ct2Q2QI1&?`rr>n=)!WCBNWKG6fm8lX)8&OEs1u4 z$G4UN%?8N*f`rdyU3{5Z`07dJEt`0#kp2V8LhN!KocV09K8nv_NU;taErzYHQ8}^AXImEm9wZ`H@|H{f6<8SuJC>B4G?Z76_W~vXv(vNh| zq5TWwVjLkpR6tfd`l!3{?1vmK3 zH8X_(>`)!-@bVGbmJmE0T*~E#ffy;vj`gUu#(`@iAf|RgQcEVyFq>3-JqCR7%(A&X!|8}IMn~|J+qHVb%_<+AwVBUg9mt{VMx#~cidNtO!vv_; z7Yp}KB0>Ah4L(BhPgbMc!t|cOt?2OfrS)$6>(^M+Q{>e0)_&1{~3jUC5CZrxs^0@;pB(nr4j6wu0~ztQoaCQ{B0Oa2d)q5YNQq{!x(QKt|lnK7n>B%6^#d3wV(86IUu zdmW-SVLw`8ox$e+Z%MEd>-_J3E~(tY`*kqp+tG>@L<$Krb=e=zT%IC@ZDGtNKzcixQrM}8S=!M#4c1eFZLW9P#I6!=dnMkbSTkCL)^8bHX@xKx_=zmeR{}47HcZ0M$rJ{LQ(G5mp#G~L@k?>%qCjvRQ4vHzD z3kt0NgBK>kul{w3fhKE5$eaB)0RpQG1%{e%hJP|f%I*g<#Xm?8;sUZJp2%y)|6I#5 zA9C*D6EI98PWejsEcjS>oKR7O&DKAzejFdXuW8;71I_9JD8m`Ww^JI zkT_<)WX}x?Hu#!|eDP_UXM1Hu6-uc_^wdC&|EZW7J(3F^jG%*~ASPK9g{4`UMI6*Cn)z)80&Kya@($jLBhZTZ8N(e!DD2;OTx}2*|Z{!J1w^% zhRFQHs}B`v24@#OSIrz9OyQa2`OuW(2mJkf#hU8nbv?5DQqaKcgtSi{QNSAQ7|fMc zc$v1wg7knFAz0_T5u2AY!WzKAe^g~}z9BjVZR&6?^-G#FJdvc&-|zui$i8-TSXi+h zZ{qcPej+BL`82)yCN{r1?|pi3WWwo)XVU4IXX5E-DbserHX|t8=qXrfTo3%LI^U)y zKgFgLLfa?))U^*Cc?DNP$iO)fF)ZUEL99Z;>FN;sD>c4pC&mWjaSO0X_186JC%YlXLXr#i^Oq{i?pRZ6Q0?yOq z${l3dOSVsZX(($QGf5tva!NzrMY15P72a(~Fq%~>^^UBm$$t^nh+IdcL`))5BAt-j z9m>cOh4KwAM(t|N-sz@xm7L3JollqC^pOxIZTXcV3u)GBhb;qb0E46e2DRXWQyDxB zx`~?_y^|SiX$5IqX%%T~Mulm7e)=A@HVGT1ebtB)Rt*s$mI?qbN_~ zsmih00Uct16;0ScHOj9118l;S6;#$>41RH9-zSa~f#VOy(zu_Rn zBLIal01DXv$VIP?&jTpj0AM@^RPWJbu|YApCI$gi`gjB)0sv$N(PTkndI~N@dkT!& zj_m26@t!5?z{S)|#DSW>V+;Rw$z^C>>xN(-1CkWJj9{10M=}vUKOu`Q_KQ-S> z8Gc=e*c8`CJ_M?zqKl3Ca~#Z9bVT?)3K0h4`cE^9m<>)Of%@(ohv4BHhlM2_5$KwZ zh%4~3I^bt>G{qaPG{yO4pZ-D>^nD7m8H=>A8EdofPhVxK|IPu&H+%?lcoo8nWmUMD zl~i~~gU$XA2LRWKr%#gxN1V9QK5w%(m?myk8kKGHrB- z;~xMkUsxhmoS zjp-b4!E3wywd0#|KwI5MlHgFMm0nJG8iGiT!cK;7ds_cs9sU;4$vsduqS=bA0fCB6 zSLDMTg{xWcMCcPw9hQ69S(rt{G`byH_<(@dJFeW2=@UX=u?`3?rkvVu_pSo`_=<&8 zSffD_vFPC?3|;57TS#as+J5%r?#L&vF)sx|(5H%g0a$F0)kFBPD%})*63-Yco@aEI z$tWMh>Zey7m#59GLKu%fLc;_FmHB1a6mK~7i6D$j`=(+|+mj|tzb8%14<=0ne&jAn z>j6Fkhg6ryxKzia{c0}}&@;W-4-pN(pab=i2vMI)+NYFiDGyX$0NhZ@2r8OY2fwIp zwuyzjS+fEnnhBW+w?zc81pW9WuZC$ym;xKu1g_(2CYk1@LH|Ss>o&z!uSx?1p{*L_ zD8ma7VTKKS;{>3r9o9{U7M=!EkCHWiWDq<+gh+K^BG6*2@grR^08^D4IZ~t$5Eizk zUdUp)K(n#cMEq$dR!}a8F)epi?~5idSDyfB4mBt;fOS<^MV-wd7QhYA{ls70e}{Tu zPYoNY@gv!RnWO_V^E0IdI(mY@0)}(oft1{ma6<}fdmx2dmwwqLzxERTGi5QrTO}{n z&2tNwLFKc0VC6sEsHhNrIGv{9lTZ~>11kzWe;otKU$aH>sHNzr$S`kzZcuy;hqSEe zBI{UP?OJ+7@I2PAnxNK5ZNTB$8idn437Qi;tCDsL@lvI;ISA8eHx=(>sT>KNv8ld< zBe*y6+HV$HMTTL!=&~@cZbKOe(Wmed5g&DkV+*ozM5?!OtCXJDRsN(tuL2@?U|6m6 zx;$Uci*YRBkEZ@+B^5EzfH*{{Q`kpoWKIHrn1sQbphY0&?b+`Mx2(6q(SY?AxIrap zZ2{w&$(qv{Txq#|Vv`gO$7WyIg)g;c2M|Q6-@Lq77SVRf8kAqhvn}o-^7`uPh9=h@ z8K*cN^Oo+2TtX(KkafP4h=U{VMu{&K1(rT*l4=1yDt8LX+bPr3QUw_cC62GDu4Z|+ z7gc1TzG{sd*nLV!U3j7}ee&RhX?w|UueF^f#D+^>C*nXg*{)?EU}v*e5$*ygT9An2 z1pGYTNCnLHqP63&1o0NWeM{T$g~H%Rf~-2kL92|}=ZE}N5qp}fLhIde$x-Z$GFb2A zRbNNK)xxjWijTkK+C)KUTK%(H%=$EuAh=0@$T%wzF!Y*Q-B=#DRIZ;g*s6wkSS{bd zd^yH`>O5IU!*fjvXj=xat-7iL!dSGtCk3Q}sS0sWR;RGjN<5{j@KFkWE|g-BzSPTn zQw*uf3;M(y^b0Qqc$*n3lp${`g5E zewXtAsL5t@9ZisjUm_CV1|nGMQ9I*NLrH^^fm&bm$EQ^9(pFVpsiic;dj79e82W!C z!~dqj#DEIt070+}ef#(&n;qA?yL@A}^qU zd_Z*!P(5^HzrS=Ld;(Pe1XR=<$mQsPTyFTtz6E(?PvI7bxRz+ah~-(k5GHaDL_`A; z$_%vAjnzI;1P=6`0zW`Vcz`o&17E+Y4{)IHIG>Oj_^Ee7c0e3 zG7wP77CLV|NQ1?Um7Hz~ofTNLC6 zaY{*W?Iw(!hDia(Pm~+!3F-jb3=!)r*fXJHTT_u$XOP$+N4)zS>~>y;wp6!w&$=7R z=t3_<=y9Fu9x>Mg%bk~j1pcYU0cy2gU#IGJ0R>K=Fysal27!XnpMpD3=l}|SK!Fcv z<{lGJ0a_fGaqK1lx~6cBBzC+Q=oMwwQO*P<+K{Cl!C-T=Wk>H|gF22)Y=Er-d})Oi z5_Dg7Lj#(|1srLB3r^kkAa9`-yMe`0Wa4YA{%b*IRpsD|gG{^Iis5f`9Lzm1K5)NH z-qAEgPlXhFE8He?^BQBvuhUP9Zs)SuFOuU#>&L)cjOaNND6M(T_R<7(n4_fiCUx;3 zv+`C9bY?u|F<`K6MQT2U9dC7Bt4svq`&~)`7=7MN zAhZj1Ngq{=(opnhO2O< z0N=3Zj=(U$eCbs>%4wjqjISUKi5=yQ{b8f@Dj2j{bk%C;2du{iJ+11Qay_U-TvsS_ zLkVfv$%v>*RupDV2P{DgSi&E$0s&yAM}V0`0W+<+y@5C_6C-DabknNRAD4mx8afeG zalnVmc`KyvpBfCH`L#q>_Y}t(U{Z^y3J`toq1Y;mimftu`xeb z&$$W%-QB%*OdoyG?QP+hccRnCHYMI==dggl4-h(;vavz9n{+=HLN)1&c2>@Sp~^Zo zafjb`7rQ=Hw$X5$Pe`y=riwc}5zC5!z1T=pi~0$Z0E3a@469#2n>KkhRmvcKNVhha zFkQDOW*!%1s*ta97zX_Y{)DvSWFCikgQwC3p8-20`kGQNFZmXGE5BBEdx7SV_1||= ztB%asd!W+Z_`{dSZw33VjxnAfl})40@E)JpQhKHFXMk@%+LnstmcYP5n7vQ{mmDB(cE_6z6OY<%SFNGi zM@gkeQbcqmFJt0>IUlih{-kapry=4QA2kEQImovD`PXh#AXcZ2BqvLCIe?*)f&)v^ zDLoS6dd8_uY;2}#x}8C9zm_grj2`)l?%-9yP=!Q$RST_SXn`SCX#>o-0C%5+RjNzb zKnJKhsR+sh)s*u=8W$gxr`*=9JX@v;c{-0=ZhYJ-O$eO1-_p*8HvG9n=_L7sPT0^W9CEu3A(I$Q&Ftc$iG` z3J3=lA;|#_!A?HlRCu;FwO}6>=z_MRBMqdcs@nj3Gl=cwBlT-Ul33ZqaqvTeeK%Jy z`v`TAZ{Evz30h?=kAlKqzDu9H7{IuLGaZW5%%w-gFjFD#UJij=E3Zq_EvE$pY**D0 zKUvqZ8>~#}NMqyq74SH?(I{7pD6_`Ix)vt#v+O7zHV2`JU#75)sj!94AnRFk+hDOG zG;yspgy!8Kp_ewkXEn;-@EbuMzJfx8$C&;`tEu>{3sV=GKzw8ksEXvW5naKml$Ca+fIOBVMZf^(x_szSzn zZ$xsNVKhPtHc%Q-fE^M*(ttkX#^Gn(ZDDu;p8z+=c%F6$UjH9+H| zanS>WUzD5huPq&6NrKZb#ikkJ6HeyNSA`<){Ah)|r@c2Eqhoz+Kcu>ADX%ndlz@o_ zX_L2L2~p*iZ|{x>4lz@27T7ImMYrHsg<$8-zMW?~>gh*Dp@{h!e)I5zR+ zS|&(bKyLgBzIZu`rRYM(sTaQ{P6J!6vWZ(djIF7xD@FXz;mbzfza409SWNCqDhnAK zSs&ZneYB170es*dLFs56vja@(CX!N!*$MX^wOUy?w@hTkb_SWsZQTH56Y~Ph9thKL zt*I@sk60f}RvAGFW~Eh`qm$H|1t+ecKQ=POl#Nn?uCqa9Q;;sVXPiW!7P=|gq^v%Q z6)TNZ*(U`@S?S}{snaW)14o@3V@((9KiZ%Vv>ffsm%QCDOhPY>{PZpoUKLFla^zY@ ziO_BMjFncs0635Gk3)Mqe=?UC)g=Rg-*M4kn^+3uMbCvG103qL-DqGbb`$Gn7@1J* zKra}YD=53m(@E`YQ!1MKP!61&dIC$U-T<}5(^AU;C#RSafKZRhU{XT+K!C0? z$krmKsS9jp(v6r!8^ZP&WgP+6i$N<~R(qmn#<(`A~5lDosZ#(XFAsEMdo{C1qv zKhjim>y=~9W;mt)4sbf_mwol|cWdU0i=8-*bros4$(}B)jnK*~af4vZXYy#xiWq&- zq^z!=6{>c!t$tcxD^WH+A)q0i_V6`bY@KRDNjH1vfD^@EJRX@6>(P|xtZlLp=@qBC%KEzjQi zA%i`zJFIQO@4HKaUI9B&9W*?=TYVe~tk*-m>*9a&Pf3nhDmU6gIN}FD5zURA%3|MUPTRh)zJt(7(K9^~_zatDk zmCR&;cjqZCWqtQ-gGxHJJk%uu*?^zP{hECD>zFxHA?qcIQXt2)a-_uch$)3k`Bl;hV&;T+c?yomhGofL2H~9S&bmWB^MM7dKlZ#!c+cVl zEIwwoZ&3NeizeiqKSmb$vgIHCR&8AGQo2=*u6n%G%p1C4m)*sW6yFw;_3^7S-n+s8 z*NEj{+=FQFpt8_M-NghR^l0IqUVcEr_Td-`+=nlgZ%Nc{@i2GR7gAxWi;r~Glm{Pb zcz~leL(g}X-)x$WJu0bNwOzL@9f(%AtgDB{z%cJ;h0@V{Mh3PZj^Zq zmxuA=TrD1UpOP~!iM?b`rwHsu?_IBu4OOBacDSVr#vp^@73%BA{Cr;jQsJk;_PG~I zD<^q7ufg@w6gfz~Pb=hMOQ%@uTfM6tAgcu+qhIYdTiG| zt-yig1vWY382X!cKfJKcWQD;GX0BC|PlXAKoB0tQ6hV?D% z_*-mP$s~64D}qeSoHgq&YFrcZU1*gZJ}UfFEKbR76VT6i&pwY&tC6F4)CcW{odzGu z@p&F7SaJ%K;D}_coWBxMlyF*dBZ%TvavSMF<~(`BDQ3D$a096(n9hH+(3!As?(d6I zB^{oA7jB+1%%4@geb*Iuv_B;ms_%i@VygPdh%QUT(ER@)>Z`+|dcKDhB$NeIYUxHA z77(OC6a<#;hNT+>k-h=~(%ll$BGNA1F5O5jp_CvED;>Y<=led-`_IhDnYlA(?$o_! zxF?%SDpg(0(uQ0o^^T4)&T3wf+PK>5XUN-)5p3%e$`@3gXcD~i)1b}H z?9BXFk_5Y_%@oQUKa1X|2h!DLn+|hAE{UJC737uD$h&RLBO0%W5mU7lyf(B^fYwv9 zRgvjpE%$lC2g2})-~wiLsXz2{!S`He`~!I98>XG1Ta^`suePm1r(}W&yS5(SKQ6Lw z>)uU`a(LKRNPTaEIxSn0{&^M^ebC_uHxz66BgcTX;XyY`1Z~H2s$*k^=8zXQ)lJGa z4>qQ#3@o!|q*n-U=%v1H(s+OL8xnYj3k{mR`$5{{P6TNfdl+etIj%~v8F!Cw7%u4c z-qpRgH?4@A%y#29s<+aL9f8A%oz~xJ!UW&~xN~>z?6*@@dVgHYe(O($Iz8w>q2S%9=24;}di@$qjea$yO*IOA?0 zKoabGe(!%jIKK2#wKQT-M&ewDMmu+MgTG-@z>uLeRz^R}hGxk}5}nv)}>~m|2N2fvS zek8Izwz^eN8Tsb=Z?y9{_niD0bIh)ZK~2ojj0lpf#tPlBJT|Kf=EV#EmX<~w%1D(f zl^ExB?m6LO5fP*gDABb%F}sw_ioU%18tpvAJ%>E0hapd``cDFHv3rn)sZQt%dLiUg ztrdFYHop360xSCDhNuT=lj*w>r~4C~ z^=?;tkS?iC&F8rQKk_dqT6oK0Ne!m4cT*DMY?bQdca{r7YJe(R!1U}iSkZidt0fw& z=zyz$80T*8xs&5l5oAn_)%GbdKQgA)N_`jNz4iCcfm%U7vR6lWAvXjOw66JX8E z$w?f{Gy?cs9U!EP9K0HgaZcl&t2n3>LdIG5d!+#1s&_M4(Jz3+>HrC4q~n!ijB`Er z9NXm#CHhH?Rr6AN=d2X?K%}?wmY1O2XkBMTJD=WFBkrT15M}_3^)ssO;%wG4T$AT7 zcVUd)2S!b}!Y+7J+gUg3S%B-*{AKj!sn-RMO1t%DJ@@sJZ2S7=spjkcLKP@+J)pK4i$+b^y){9+F=PhSqjG_Yfi|$4`J#Nxf2IWV2p8aP{@y z&0ot`-ulBlGceaG)+@xG0#-q<@zA96PN@Yp?}iWJh56bCY9D6m>6mirYStN4%Q$vV zbPV0NncB0n;dVTJ;Mak$*X#3u8#g$uxze4qi-z~TMWVco?i?}7R>l`AiR5Wz4fjw* zth|)&93PY=jGKNXLedNy-ggx};`MRk2vH_A_WhZNmG+?F-aAL)G}?-1#!d|*ZV|u! zbcKdGK1d^}U@?Bt5a_n`v#b**#1SX$e#Jv$nsy+5nRMvgh!NmFF6E(3;W4$m(wsBs z^pZke*6SI1WEgo|wcFw(PLCcLMG{o)20JxBMDq?IqpEiEotmL&-Vvm7)o!9w zGby?)#(5dUYIg;knz_+!Acid>PE$CvR`!xMk2<|s(6I>g-#IUA+fLio4 z`ft`EUhCproBHf}@v$ALwOt~C=H1rCPMi9WdVre0nYMM2(dN{`^=;`~z;`sQjhDDj zbN8@|t?S$Oa{)ilwDw-j-pvI=dzMRk9yaw~>ZzT*=uf>AvKC#I_Mo+w@9V{UEaFB4W0{_M`zo4`FS@d4V`<3WoP9$T^b-4qnuA|&;hevX1aP8)w?$? z;sEyrFzY2PqIB-FGBj?d}~kT^BOEX4k^W?-`n|6RA+MtKoDhiliMzD%9@6 zocy@abiK&l+THt3eoW|`@5o%+m<=2xa1A0u$damEr~`6wcv^d`sqsTk&F(X#WQ?<# zEn0BaO9HKGjuxCd;YLbkIgeVPJ?2g%kdnF1eCB9^xf3R2Yq~R^1zLITL;%_P(Yewb z%{6zziEPbuep0i`f@}?Qu6zTwPLiDMihPBVykW2EA75l^kTaNNjFUK!;_UhwWQ&9+ zLJ5egCeZig!I#8Wi_Q^o-%o@edzj{Xko8(BTjofws-NO=7x^Xj)Fo8j7iqd{!8)k8@g-Yy;Qa7uehvA%9+pP!ju`D(Ee%TUi8d9BO3wl?PZ-W>`}fv#*XYIN=n#FtU>didsTcChKHF+Gpb$Lge)c7Mae#4 zop%^BdR#<_LB2pkd=>I{akCTc!ezk;zx^0xgcl{I;zcu|FQAq$iQCGj(IiX%s%|Ea zn04NE%pl?<%f>hM>EyAdl-(Fk1QDgDMt(PL0L%EJ5UEu5?mRUXF^92|$JSIBN<;Gs zBt<}hLe`GS>$zi-+mFs>HfX)s6CLC=4!W%e*=~h4tKQvqx^zTd6QXZYoq=9tyDj?G z5-nY|OFwr4s5xEQBCiS1H!04yJxIV74OHz)&z%q=uPM+sSzWHlW zj!NO9Y&b99It%kMYVCohspDECyn8mH!x`C4;^vCaT>j6ZSGmryH*-AZSH z*KgQn;y=|x8`+W^6-9^pPQ%uWV%9Y_?P}2aQj2M;Jx4Om2KSL!O6uWL2~CCTivM>gSih9x%?h)uaDWw{ieA(D7>ms!N-wH61x@M}Rfk+hn_4Q!tD z1FG5bgEFra?ZHQOSXkJ(k9U-)--xPsIz^I zmynx8$qdi#8|@jI442$SyFTV*yg8P z^P?n95G74&RtC9~@I6Lr%-AS@V@dM3ob=$DDac&R>JKQ4rfcF$x>Tf;^aR*0i=yd# z?y^3HYk@V!l0Ok)Ygl*uV-9nQ7hu=lfJ=a)CX2}9nr&erg_xr~i?4BYZBqfnU zEse8z`i~Z=-MUxwKiF%AQ444H3tGKbhD4?@j?I$jf5;H{E)Zg)ShtWjCy*%0mMF@d z=)?5=kR@be@RcqVP$!c=h0BwC$SZKji#X&>WlVHkr~aWZn!4y8vh0!PTJ<8w+cQAf zpjDsE+GChrpLg6QM7M7sv?72tibW%gKkYDxCE_Igp`-qXZ<@kszk;kXaGMU^aDVsZ zSbZkUFZyy|vr9xkRHyK*Ku?~Ez;_!Ggdjon%P^V!>Xd%86=3IyMrX9hg{kt}l|ZTo z-_N3+@1!!?P}V8r&*2sgzBK9;BQ9zg>H};u{8b0IqWyFFDGFN#`Y1B45|T+`u3$;hDFPDdqv`&N1En{)g6B2K z8rPNl=Vf5jZhrKXqdVk0vENLQl5Xe?8^B}j&A-flZp2Z*;orNqUj!lE0N^*{U+8WW zZEh*-iE`KUY;Lm3j`5X zg}whRMBhol-o+`aVQ}B>L3}@|2(I-G?CjQ=SXM{Qn#CM4Y-wOpcLf^DlkGwNdLdj3 z00sE|3B1PPm?ULL;<|qx^E4eqQ{v&w+xP!5bSOpt>16(=^Ayy12d`lLPsN#Ia_wQ# zwo(RLcsdQEwXwOpfT+?yLr3}OnvH50;O28GKXlN?Ak^I*T$hZ~I*@m%&Hb6}6&HD7 z4E_<@@B#n%U4W9=za6>anf);$f-YhM`a`uRYUG5G+|`expmw)oEmpJGhmK8}$vX45 z#cNxRNeSYlx1npB+5}!vJM9?{PRHk*YK6CmT5LK^Gx`|4;~&$)?Am3XlyoI{!dhJ| z#WwHk#dJnkWk|+3d!Ykx{W(x8gw3T;|DSQB-BW$NkpPPFBm%*{r)EIM+X%T?XFh1e z_A5tO)znU{cOvAr$B>6 z9LA8npyg&e-)IL%bqE(z4S7+JU$Z~D78erz4tDW>_0)@h&hnUcaLrvnNQEeL%}A7p zaNHTN73uxuMC3`s_A?s&Bn2y}>m@;<;f2H({v^4J7~|pLJyH!owcrF*HCr57UZ7{h zFL^I;SdMT38BJMZ?Ig%<%Fu)p&+rvVEu@uCi#wc%&-}|NwLtW_R7^y3BRuEHdL!;| z8opi=fqoEo^46}fUBU}Lh#@yP;3>1rJB|UG5&XF|@ce6Bo;3WIwa@cIaKA!6Z6^In z9@m-JsFMA{+Qpx+8T_@HHIcQ7+R>$_c(NL&9dP&IJx|3HM3p; z>?vtCVn-X8ZYFaw-qQ9ZWp(%wCD;E9zzeLAm2%5#`gS%J^nm>1o4n-VDbds~#{zl> zoqYV~`N_XRfbVN@);=A0x9|IN2gZb6cC9IcM*f)13^ekDe_ho+@_qjdXs|5s8>NAN z{7SG#fQasY$o@YB?53UB@mD91>&=c`@~btODsbi+e4EeJUrBUDp*r0T+g`RdC89bf zX1nFkdO*Aoe3y^3xs?onsXH&4dJyv971u%-7yF|M z9RkJo;vS)_NZCcT{%|8rcyjegDFZSxM=hNPaR1xFq4beBXWC z8N<%=XyJpvKY$Aa#J}Io?nGIO+T(zC)<%p;C#T_Gcbh!^1e7v7GLDFR+?i6!67{g+ zg>}SF;H7Q?`*dD2Yp{Zb4wE8pEj`I#>c*vphbAPfW?1|Hmr%TKKfR&cL;(eOmu zh-t|9M*{wcok_$7rM6n}2hp$(3#K!R3IiB8PSRyR{#M2Vwo7X}-{RnY>>~K6Hos3* z@;@4Jf`Ft}=bD9Pu`Or1#Pk2e6#&Hy-mDB79_uD2n2d1Pa zij*O{$M8Vefd=L`M!(g?^{ey+zb${z{Q%38i#^E&`%`j!4IkP_kjI&6=aW6*b zhK<^ndB!78q()vB%ebN3`VEW00LBhGX+}AN&e{BRWb)QHE?WsWyl=6wxq`#{1P^?P zlbX(VLWs>Z>C+Yrk8MBx(|FRJ)e$d8!IQ<|HA#Wjn8Gdi5|=fm@G`x{Y+zH7nEyO4 zd8-qbjXqTX@SR|WkHiZ|o_4IkK@G_bE3==hPIx73rsT!@s~g|BxQq3QqI=cMERVJ| zdsa(a`Oh1Y4`0mRXKUwJH;|X=U#l;SruSbn;_7%^ETruCwbhueRPeu zFq-#Ljx9F@qq}>>X6&v8Q0bKvFPBs4_w+z-o8}u1hNy+2sfXxw~W^u1r`c>9H z%=U<0v-r1Yy1(3j5MC!Z#=%ED_|MHaCXZ?0M1$Sy#G5{`5U zw=Z%&3U6Fu{VIRFmYVV|XWrtqDaWLiIDCZ9+SehxAEyYew#(lL8dM4|8%2tMP!-wr(-IL1$-{E;#!7u|@Ij-3b24XW26TT<8pmW?mt%`rCx&Py;{Npl$+?-_mwnME7uS+boTKPx&a1X6r z2?7y7BIs$<9QRM-9t!@p_(PKDT#GB}p4;BD%IM$2+lNO!l7V_3mIp%Ze1)i+9#V>q zgyIuN4-bA>KUbj`6O1M~c#hS1$cSGex>MjCOj5XBPT);z&h*73w`%?`$Lh;tpB8Va zIO!qpCq1Y9H;-2V*bVXOn`1u-ruJSV*iz;pkQ051Xc1WrfYJ|~vG@EIYzsadj5c$Z zkQi%~DZNu&@vA7gC{1$=PwMM|K$IVQ%fgB+scKzAN!K=apzg1~^F{hJ!8DY28`9fI==fjN5>-s<-iH4tOVE9o8&GK}|LFx_akH)Br} z%ry8=GkV6Vg?u$3T0zw1sy28*=(+q)4p%Kp)gxavvN)tvg;?JaoMtH~}q zR{e1eTHWZW>j<@j-)GRPt>a5q-D}($DuJBC&(Ug@{$i`g(A?28rXC8xwovdGbl=9G zc-4<`x%bSXM-U2x9Ii&^T3zwV8kNxQoR5=lM!5 zMsMw@eefSt;t2;nimDcg8XrBA>3PCWH+Ux0Qz9spb?6h#XXXEBbr5RSe+FJhL#c-F zCtU51b~X2BUd^HeOOLk-gj0@MUFq~Jn_sDb-%tcb9tuXc51xtkj0y(E9JWJ=xrQ9P zEaE7vTkfs0QdahRe|^}#-asZQO&x1g>#@*aEym(?VN~UC$gsK#meE_GM_lmc-l`gG zDf`eC3Zx#IMxRh^@Nv->|Jd zp_E3Qg-7RFUXk=jTV6e0)uU|hIU|m~?K|U(4kxo%RCqKUzz?>5VzhLhw|I{@|5Cys zZ}eNs|FW=z<_`S#>}?+pb)xqzB(e`7J#hj#{b$P2^tM+ltFExX%tK;I>HqhD5r>XI z^litPTJ-IJcSSy((4_aoJmvhY5K!H*@q%f>5;Sh zJ!*oW5k$p?<4L7{+jE;Q>h@*-Vy=y;)h^U?*+VRJ5oE!RrwfA@ z8BrS7V>>SZoZZ6Uk!o3S!K8`-t4~jTK4wT1!BY*A_J#^e1Pq*2 za;(|zT0i#SAW;Kdm4?GU()M_8Z`zT0o)#6@ZCR%G&t|FEX&S8zNu~(^?%{SV-8jLs z_ZX~$AH=&Hz93_egmzG*e;0uLEr!P{atj)iub5d8INaw7B`YV@t;tj5w96-K3d<TvVLud3eTGw>s40Z4D$JTWBSzXbB#((o@)dD4%W4z$# z-y3yY{Mv_a&n?&dLR<;xRr#ZZYV{r^Jtg|JAJ6l3>&Ay>diXrN2;KaiqQdq5MrX1W z9b7T)txXHT|IDg{a=+7?uji6qD(TSRpFQ3E?*(%f*h4H37=4%q1u_ox{&hX@WomgP zvC69C(_;0xJa+u=jMM%3XNdbY!hEiQ~DB9&h@da6zfy!{5+28-K_uEPCJCUwSoHATZ*vlJYj_kUBa% z1^DZ|R6{q~>&@tdN0Gxm;1mfn{WzCqDVze$?em7L+DGpru0(pe_YS;K;`&$7Gd2>z zhvd=qHZ6qUcc%26;5)llfUf&YxaTb_FcIv$!1uF~=rq3HhY!|g$NIn`m|6KhSgnPc zb)0ebBvCGRp7DZqNat13E56ttW(xF_@Pq1n(YM3iNk??9rc0}|l>2Mm-VDY5Rm2~P zPfJ{$rapa^LD*Z9=CPn}bLIbb>2M?KZZ*+RJ;O*)5jot$yb(u`=G8ZbrJz=FmiKo= zOU)|3zxf5%Bk9H_c-}-Cv~o~(@f>wfalwSDy4paX4(N^_qYjvkHBkp_$AAFpfb;k@ z>VWqc{HagiSPA8})uIGz8EG+uwTyn;d{Am2#rclK`u$AC413sV#tdf|MP?G2vanM& z!khn1E5cjgO$fqU=;=$CL{^gqOyXl^88kJv^}3ddZ8xBi=Ugty_} zcL;Cezj+96)4%ZuZ}Y!Z2z{|Dd`ByVlvq41L9*_o&%LDGXd1q1#vtw|9xgaeHnBRo*#tW`E7|x ztO^w@PjpYu*Kwyql_2xkL*w1@&)ApTb{ieCe$e4Li#oTJM+Amq4{g&@8b^cRj^hJC zGu(E&9f}0=&kka7PQ@P@>+Ib%IdhhKw*>f-NbZI_{#4*h@f=CCgVO3D?yn`Kv#T71 z;|17=i5-MU3KEM02T3?_eRb6}a!-6t{DVfyq4ZNFMNv`&aiZ~vq|Gwr8+SZA(I%sF zF~aTN!+~w8yH}#4Gh4-+PvtM4kapYM7P@>;+wz(*sc$aP5rVe+Ju6s121&1WP*Rtb zJP6hJYhX)ioL82H4H%4}g8=T$RT;PQ&uv87HF>#vdl%b41*$U6?%l|aOm?-bm}Lkp ze#K|fF-mGC!3_e4wTfRb$!|k?=R{-oL_(UDrz0Cpv<}l^>QAME ztnd<@xwoyj52~gIzyE?e$K%`bqEMtZgO&x@xAQsdI=I0hwTiky0p2B6wfy1{O?5AA z9_$V4Qofc3mVUn?v3Zhk>MWr0OaN_db@0}!p?u?;&oYPe&zYS>e3xMtit=}aNQLrteJng`vhPe#!gmPhd-`X!7v}eDtfQFLmOUPl{@# zoPcEe#8$woVhU}s)`$I=E~OF?rVLZ0(i2wh0$f1ROZSy zjk5AJD4O(3fb*4j`oa>o)>BknW(R-8c$l~T!!d4{R-7KV;{(h*Gfy|u4N(PUN?JWgGV$9V+9 zUNkws0e8*wyda{Rq~^$$df$s-Q|isfRmoU_Z|P6viB1}^(+*PASzQDu^`^LS71yU; zFnS(4rw6uAj1Nn9V30}*BDV~aXpZbuHCw>fuW0gO3%+0KX(*Gu6~~^ft8VLS3)aaW z_GiSC`YA?n`siblpb`3uH@1yi3lPyfEMDeM*SO9m*^s3#U(w`~ z?xS9qMR7!Rfg15+wV0VPzo>V8m9K4H(E_O-lVDVjvM!U5T>x_OYs zm7VHm=^Oonc+wZt(h&=gj@z0{R;3@aynqxHT=&|}sn~sdVs_#|;*aw>Co4X$>~7O} zMtSCtrr1}mK8&bRNhl7GA*HreSHmz#0TzMW>VgTZ-e9;{zNeva{MMKEOQ$SspY+1@ zF{mp~pOikVa`$WAic!;|Z!75^%O?s@E9q^fTXlvslUm8DgD9A!&Q_f%&7=rdHhHw= zg>KPgq&s}M*wauTc1t{2)v*T_kTzjI{;YUkL+mS6FQ!$g1h8IBZ!_DfbD^0e=FBFK zwY;z>njCP4kAkgD+lzsN#c_uNihmTwc-n_Bddaaa=Q_ph#h#vnm4erVMFmDuBN!4T z1;2o#ttTn5Cl}ozd8*|F9$2UA>4Caib#*k8 zqg>h3set9h%c9AZ*YI2Yt-2k~3R3-SXloXcQjs zTcxeK9-7H^u#p6MF|H}9Uxr}UpbZItEZMDQ*DX#V$^=4_P)5-aodcXetErz)bO`Mv zWs7gYI#rL~YUjw-CAGSsS1Mt}$q1AK+rOA$@)k^uvkwD+sXY*o1YUl!{SMWYfpMp6 ztHXw5C^R9;Y-G9+M>aAINYc(rvhIsD6lr(7dJBTRvQ5U`32(nUO$V9o-X;fwi>7Ho zP9^rVA;ite;4ss?Py}r{c)&~CCQ}q?DhfKS?+=^OhSWX68~_7RXhz|{}wUfzMuaY(SRCqt}JJ`TGb2#5r*5iv-1go9Hh!)wW1}?dmky?8Mk6 z6TSWPWHMJr4ESTnSA41~wh$_{^N~nb?2nlY>_;YwezbZdw|C=T0*g#LN7}mWmjx^<_nT$ z%LB%sa7thx`)pzho%=@)YiF79`>8M6``%Zhdp7{-fW= z-V{mrR}){|Fl8x-9#doK!(MzZzp}JuUbz=j#{C8Ro>`Lhw~&E9Z*+BCt7^n}S0!!2 zfnt&}$WOgCj_~V)4n^yGB}Y7>SK)X|UU|imYj1!2;wc_o&S{G1Qjz$&C9WUy7czKr z$xEEhB>AnQkG_goau7Z`xI@?dw+{#9Ciz-}mK@yKuUkEW9rH_RG#Wowz-+0IDqu2- zJzu2h3s?3r&s(p30e6Gfp{8qZP(NP=0$*dXwl4yivr7*;>Nyz}Q2U;L3kuGcrWOW; zH*cT+l&_Fti;}K7I#bk{f|O}WN0s^dvUQrh(2`wAOeA6BR|ps{5(Ubf0cLYt z?XC9&1FlD5vxdq^JyvC z+)XmH&fX)?wm#IgZINf?%lhjn%&d>~*97-S6Za%tI)wU}afbzan~WTJL&AfW(JRUY zeVio zm@P5hdvGjQt1y#Ic{05|-J5M{mdD5CExn4Z-x>Fy$P=b_kGEK^`Q)>e2W;4>*BeRb zcD}PKEChNYSd?!FJn^E=TD-sHLSiiA*Q_$US2$*|(D$ZtEO2csXV+a_sRF&A*OxXIK(0{7mFjgGaI5AwaM~!|t@2zR}@C-Rp_BVaVSd zbWZ+VylO1?9v-<7|0K8+7Tlx2ltT^B0h(icbrv#$EGx z8gANggma{K!s&8XCkmHJcMNCNJm!JuL#F@~O*#T?>kbw&E7{XL?(1%S^$XXxh$_}p zqM)d@N6azqls5k1f<(xP*F-H&o!Q`V*koBpu-;KVo#eufp4a6sOI(OxUZgF*O~ZYE z5dz~W)KzuNIUSp>2Y}GI6q9+wHa*7ZC{UeB5|TaBO4QoqBwj2*Few+IbC8Ij>r)RIR_5kZT3ww!8tb1k#{;$$> z{Y-qspH&TSG%`n3Mky0Z`K+yfp8N?&c#(uIk57%a$Wqc87pN7SYb1I zCa1P!MR1Xv_cx@jIgc2p-I-S&>ye#Dk1uq3 z6Ydm@%9~XN;R0AT?YT3-*!M03L)>ka_Yu!5EulXtqvhTOnL<|C!(@rp=xkSMhE`sn zAPvt#cn2Pinqy%>{;qtKfkBca&ArVV=sFcPGetG)hcueFb3A@lJinJuTWZ&7hsSBe zFQ3+Sb!UFvF z7*c{h-N}MNajPDo?(lx+iOY6p$J(5!LkgGe?#}7OU33}^;Ktxx{dz3OJPqjk7t99b5eI$`vLXjGJs)8coNWX&#f z+PiyzGi)$ZoHWZ`Ule6S=~aTLCFH7{rRm<&bgHl*Bh9kae~H?l)>VWJ+3M;-NHTRu zyQ4Q2BQ2C_%MjidzzrR$>aoUCRMnaGn|}czs_KW8%D;dI4AxpBEk5_pN3t$W9NW7+ zrS_G2L-1Q-v?NySul}pD3WUCPT@J!Kmp30dV|}V2#^cd}31nR4g@v9c-7xk2z8vd5 zFQPO(rR+dZ7HZBpVLIW&>;YfK!}$YBC+aB!pp!s&IA-(6YrXOj5vJO_5PO{)x-O$| z`S{3#yUi|zj>n|~Q?0ZdcQx1sy7P;Wc??-ul}Ea37F|(Mw`MG1}Q#y z%K2XkfuItw2bV7WPb>UCElIimBn1CMu30~q{L2J*`5(~?T+xGhi6qkj%6Rz}CBbu} zLHaqXH27vepMAl7qWv`QC1HA?=2l(l-G7TV9)}K$7FZb|P5ys0t^a7m$*NIQ{MY3Z z_8Qp5K(5|@#HjxSZ>s-CEb}z{@op>ae}XmtqZN2IC@c$Hix;hWO`XDT6}K?LjgtXE zW>vH;OSegf4sRq(TVs12`Ax$Qo1zu?rDok%OQ#htIKr;Fv!&`d9%{te4N`@E=w;6NOp zU)OT}OMZD+gnm;~VjcS3hPFWs=~_`FB3-G)2qqL!7Wr$H<+RUJ1fkTJS%;40==zhm zD|1}VIHxL9l9{;Mm2AnA(Zg%_Om2?R$=SZ1dNlDzf>$%_si|HK_9pqiwI}y;*!vi5 z$mEblB5jwpUjS+>R9GEiVkg%hYYtqrCP>6GzbdG%8|?VuLW0`7uhAcyzmvrgHglHA zB_HMU$_p}y=D}%BeJAFVi>ONv?>qjM(P!ppUw@B2%Dw;^dm2dTMOoZQAMZ7&-izi8 z3+15GhAjGs_orI+dA};IrukjpT4xkv#6eqV!W3IyfPiMwr&`oA#wdWFLj%6^;2+DaZ{mKNl`E+NsBvmeHM#VFVa_u9IVTNe1E2Y8j@VUxoXG{N>eW-mjYv$BwjEdHccY%UC72 zY+jdu*GyGW^UfJ2Z{efV)f70x#6*>9NHG?pim8!-B8D)GUI8mQxJg(()t+j=y1Y(V z?h^WB&SlNI#cJ!-+hD7@(y>vdnLDH?^{19BS&_xhbZYcH6{-_a-6>I85R+XYRD6#o%8kN5 z%<6taW|SUeSW*_|X)VZ_6;XjmMYvhoaD~~3DAc4h_(|x&Ak4=sMtEtiZBB^o_}@5@ zpNz=|s;I|{xD&mA&zn-@%FQaz6qH%e(Vl5a@@kyiNzr?Kd};P$*}usKh^(tLYa|<< zHYn8uxT)z5o}E~Dze@JHbPr5o5syAHV(zAst^cMwZ@qHGrYvpb|5&Cg-1JHCx2~dpMD&`+SxOn0o*jHexjj-IGv(L5R^T zMllxN%~pzigG4B|FW_hfz3}1)bLH4eb>jImPlq~q^vM&oc^R6>Y6+ctGUvPI({4rW z#!Ji|hV)gh(H=^s(S+yE0t1Xg-nxn9{$>M-oe1HqjUyD#2F8S8+sq z&+|UxAE1oS_J&EjY3nw4ADiX9dBI;$k7>>H1AX*;Tq}}P0V9OlGDGAf|PQQem z3B+;Wnl*hv94OQ4K`d=WQ2bAi-XqeF0yJS~q-q?v^kvP6(p5DsTRut{oNHA+YbDQr&>?_UAHvJfaZR-J|kek=2vAgB!03^0UDPff_EpPnmYs&L^ z8>?^pO}_CTHBdj#S^I~I@_G%KciLWk|L|>^^+3+zvV+h=w6f;tA}B>qUmI#B*J-|?VqVlaq23Zm&YnChzMV6h7W%zu&5Hgk+>7sOpr)aZ+HLqUr!g)t{ z3{7StMp##u@3{G4kiE%K(9Yl`@h(oQ+{FG0NZ}9*A3q~->>Yu+BLk-Kk1vgt3OOCQsC5^cP zVn54&n^us0S{4(VHZpe2x#Z3H7f(n9&zYJPH@v7J*-za`nF5JPF+VM%nB&*Zv}nTp%gcm`a8zuNwmDXDbatTV&Bv{+2sk>ck;;IiGI6B0(DaD0)LB)dt;enbEz*<9A0nskK7Gj+M=R{jJuK?JV|Ib zb)rAt9tHua3X3%kC9?KP>`?B_-!k_JF2voMaRTx7s?FbFPw_xEWoQX-MIYLCnuE)A zqla#J)i`oAb`G8Dc$r50LqVzJkhgg$ILt4;h%7~0FyjceMOzfGWW^YK`pu&Jy#6uI z9Gmgu=+tOBUMlAFLvsi<*PN!YNo4zf!)iU zzS>a$Zj}AJORynY)f;?HL|SVegnepIrM@=Y01e}LjORcD=_V(z0o~cB_9Xx=ciD{7 z27;W~0{*<@U)6^qjeF`JS=T)85h0jzD2jF^;q2h-PyH!>;_%kIXg7%ULBY0`J5L%5 zNqSg_3GM%3burBb3)^k3JS# z<~x;eDhXwpBo>*kycVIp$IrfNaS2VHn3KXSYIULynUHdAm;KHY@TpI)_7k5_q5jBm z=t=D)(emmYbojn|{BHN@v$bOLHe&v9%ue)E{2{vqRCLytrC}KWh#sWZFF$M> zSFR{qJ+UbakUF=%TfpuAvg3lhjnf>Pz>K8oQ)nf@Y+skiJtwDM?sv2Fy`Og!lecX# zeD$Zc*iuvs>BXcLc82((xnes*hHk`{Scl%(z0+DchrXL~RP)2_?l~iT#(Yu3RoyUm zP=Rm@UDASFPhUoU8oU8yV4kP+oMF@tZOOVj0##uP`p+t%Y}b73VK=Awh=xxW2?%Jd zlrF?_{Ym7f{TpqV#E+v4g!kq~qLuq*iL@TXWyu=l#(WxycvhfC*4?s05otkml8JCT zZqtUeb?Qa_DxQ6Va>Kd)hDh(ck%ukhUFyQlaF;p4&e!+Jx&iplG3tK6!5VWEacrW`YW*0N5nUT9I9Fo9qs2XDeF}Ifu4mpB$XDtE%R+n;?xhL{WeRcnm3%Qtnh@9B$<&}SMz+qwpn=Qi?(hMvHBq7BuYm+Q^C01`}Fp6-nw?mgQwPh zPN#j-G!(9_Sq=|I>nJNL+=6%09M~lWoA93MlpPx@R}>|mdq)0TTHuQ6A(Gj7)rD{v6`_J^7xuzo0f`5ulr$)g2L~cfE-`WdDcDSm!+0Qh{f-(LMe>4*;9ymdewX5 z?v}O<6po8DFd~Bxf6x#F*9EnV`Q%U?GSTzpc|e*eYJ z`(5v}HV0Sfz@#8bB>aAC;;^gk(C2PtTAt*ZL{jfo9vvT+&>kOOT3sCFLb!~55fE$p zjVElHQ|9r@(ATa7$x{_}d$-bL-%s8RpflA;MFI%R<#qR*4ECY`@yraWIcx4?>x2LD~eRDg2WHPb*kP>TYJA?{T90rZ7#R( znba4yKl0~5^CSB2=Iv(&I7LyR;W9AJ9{0HrIX}{kyIpqFHg&NW_hois%(&lvs~DkN zK*L>IE%^z7w(sdwe1HExuh-pV zX6L=h?Jfllz-mi-!y;ym*J7oNeE)O>4drvTGOiaWJh$o;(He60SgRW zzAkCjTK4z2i!;Any~uG=C<=w(pSQDDs|lR`q}K@5B%(X{_N&&~VZ7%<1AIL+0eL|4 zBJ#`n9)FU!|Cf%pHY~oqPB!;# zLCWrxm~TVk#V!BpgckngRb>Wh_GAL_U8pJguxeu}Eb`%j3%?$f8~=#Gft~d3t;IfV zYZ=rpmsN26h{5)qjjRGIN?;~y)PqL$v&+agK%Uh zZmK9=_w0^8y46(K(S{cs?~ryeRVhIIo@*RlprYPLnagvz)DB_y;IHa4 zuR){=-gz}eLSmMoZ|SadnxJsHE9KDD3R9@D;LuSK^78Gc;I2a@eq5sNUBf|J=9#O` zDU?l|D26stwiQwthXC;it1WIfPiD|$1BnzR4r(Jx`(`Zt3v8FLO7eKkH_{0lz-0 z?9LE|m~5z1OMU$ZG=_Qx7CidpRG=9hvjf)nvZ+|N&;CwncC+E(sSUjW!0tT&xJ4Gg ztrP)`={OE(On2(DPyoUMKpu&j-vBfV0R9V>{>`{!a*JY%*S|``?x)}1DeA8$1;m&O zB`s=Qge)$635&T4VKrLv%%J{FU*2K8Z(@4~DsMHESipq5-#^YwA-iO-1LBbEV~%^z zQ<$W0Yr`^c-sWA$V<&yHk`(A_nnh+_lxmz3&qAT!Bo-{+B<))oLTWnh#pXIV=?-~i z`_6&bmw=oiyO5wV`!z&G-nzoRNze^d`IW&FJbS+@Gv%9Ss8Cnx?EVgg#%YCrO~-1{ z{+lxU;0KTfL#01=ooxJmbXE%D0#$>dlrnz9a;iQ51Be;AY}%*$Jz@a(wg1Si=dL_6(X z6Sv-cL^pAN)hIB9ZTvE~TVww`i?F;72&7_-*{{yjvc|FvDLLHH_ajmDwQ=)2IA0WV zv)&{S4aw8>&Y*y*XK6mqQuH?p66&g&oiSY-ICo`Q6IlRK=JTu+VpW_CGxon_rc54K zl`k4eNK{K`)K&Y3;e4i_E6q$%Iye;SikxjYl2<4f)syJHn91GO%uMkL7j_I0D%&w< zn8;gyxqrQ&qF%mH;U9KbN;YS%F8xl5sC=W&|Bqtsx)F5$*E{~Mg4t0LTcE%)*!#~@ z)Kr`w_~#gOCB&IEPHX&qm2=mX_J1YucU8}hQrU)xmSqU_1LdPN`E0HOT=0?TDQN5o z`sII6_5VRr{|A+Qg8KJ7@wamS%hspH?i{nPkolDPEhmr}TAup;L7n*Lm1=n^_Wn$T zy3Xz;EeU(o2mwtv@m!H{NZgFI&28e#e_;%s%$i2F(~K1{{j0N*F8;v6CQJ&y;vhoi z>ON}Ubkljj{~$i9QB>~lo1O=_AAYe2g}2P^QikKt?S2oOnRrv_Nl!vi+52ltFg$H` z^uqR5uq?w3I&e;=#=aQ$R8n8@=18)%80744smtatr*jKy{BQrGo?8SL$V3dClm1^? z)&J6ffUu{u+LK>L&)DDpmNUF7=<~q$|7O#1h`BEWh1fW}ZQA$LMrvgb^5&o~6%CeF zb+Gn#sDxUOPAxgiI!?CQe=F-caM^?Uxp04ZP^*~wB=Ar?yYJ_sAq)H}E%lrbP~{Zt zL(2b`2E>cGJ?Wkt5#qu?xY+hEj#*tt6pcI137)vY(Xc&a*l^Iq_Y^JhTC>c4zB@zf z3Vppl(0gbPmQKBn`JvfJi7NRm1Ym1f|!+HQJE< zQ(U-ylC=Y{v|z0z#?gan>NYu_eC*B6;{&VT&o-~HQ=avGs1HuHa#E4qz3>hN)xS*S zKT3j?1LTmo=>^oWQ)tJM5(q%o9v zE!s=<`}px>lDqC;u|AWcL21cZio^UIDqhNVDUDp8b&(`LIv%jY6Dx?5wy?ps&7=A) zXwS>0XizkzE^;IeJ6q6fwu3A?0R$bAWC!VbU1Qe<)fUha==>vWB~XJWCNI#5@d5~W zP7!}4AeD97X$N`ygAUs??5w0LY%i#xTp;{dLRnaztc$BXp>2p;rwrqYGcMgG9f&TR zBORzdo+BG@ixMIokcdSB!vz+OIF--NTybulroj6&nVQH3nvDEN2T<$$$Od-S|B?=r zn*1e$4k#?+u;eq?F98wV-F-kr_tz6USbcdv5YbI}14MKyKMKP3IzS11mKL8V>Dw*8 zP}2WrT1L6PWKv6M6{!J)#l2wTj1yH{;K0~*t+j(pN}38tNw#YVn0d$vNI`n!1t8s= z34MQ8Dk-hLXc*!iE_(sdcbM)*xOG;Zy0{Er26rIwSp{dDv2ZJAoFhsLI4;O8kfY^y z_M=+HMa~SaRW#H*nQ0c7)5t%n;@uLokwE#K4ccEJ3`Xk+A>8q`>gz5h$(v&Jo?z3F zqxMjAKrhhsHZ6EL8!wY!Y=Ztd$Y0^e7;Y-1{I{h4WGqYU0md>msA^zm5cxfap!)TD)5*MM(1cq`h>En(uhAr=@B!ldbBf9*(4^sx!a+7 zhD^jec@KRhp1LX{Zu|u?`q{i%8z{MK4b--)`KynuBv>@dUGnI|tHA&8%G*_U#xA_) z%|>v&K3`$8uB0{~Wb!C{iOffZe-{^#7sQB^T%s({#*bjY4pqd>y@)MqP zq^wMziPVf`Sl9YFG01rJ-hoDE>}RzMX>DD!RQx=q=f3d^9s{Yn8^bbngj7#eX;s`_ zJ$<&jXw@upBhpKG=agj`)OJtLCo@x1sJ@ve_) ztUc6rQS&FP^c3<^p!ot=%$jd|mFaruqP1pdKHPiJ3}?XjLO+|*U3i~FO{s$+ZCP~Y z^GcGPMY2Pf<)``$&-r>8EoWef=rJ=%@hQV)7Tt;zZ6XB(Tp#i9iwm z%fh7Cy)QVT68 zF=KEIOLD*wh|ma#rLces7*W&pm8pFkKl8nApUeCgi&DT#@EqOQJ#Kte@EU?l_lUHN za(JuT;j9*j);+_WvjsgmI&{xVn?F+X)#3vE*JyyuQA zhq0K)$oQunDEN4MHzCIk$M=2bkOH2X2LX?jt2JRV#rW!Gtky#L z!as|9n(~*|HwV8o&l2t&w2w(FqfSgm)T88Ec6PN=_#t2!)8CG$uImy(&sVY=uLcb# z6h67XKccMiN#Op~zV}x|tpyb`pG&9_=Y@X;u=j7HsR)9(?d8(*Im_h7u<9|Wcg%$M z2jQQolP>uOo3CGLut|7L)qZToAhK`#lp(^5De+qJ*B9$}Cff>!ygjkNFUrYU?yc^* zST6UWnLVj_@BBy8r#COvvT=94i~itjh8^bwzf$TDXB?Pq{f)2If-Td_WIF%)UDtrC z$)FEy+5`*!a6aH*{Tyo0XnAHX2t`18aGR)yn-wn8rJmioERLnuDyIHTI3V)5d8m@A z|6)_uj`sDZ05Tx>bG6Hw7L_-8%4XZa^O@*^_qG|+=3Sgr;aiuVrDnsuvDecB-_GQ9 z@({R#W+5u#92{l(>9qs*Bd-zPY+WRoQ=_GtgDgS99Lnfth1CDN>rcT&)KJ51RMYPgFQ5B4JBDFy{`XPeo^mM|(NY4pdT(2?qjy*0FiKe`1O$S`;$b|$Oc6^&)Yd)&Bjv7 z{B8qO?mzcgb}mJWmY5hLDt{m7)66+E0GFKAr4cc8ock@Tt!4hC_ zyBj+baN8L!@7(-cOp?#f2d$lln=1UUF5Y3xzU3N4sV^$koHVDb3E#S!r|&%dWlxLm zDbHHNh<4*A$xHndzu_=wq+Sj6DsQ!}6c^;R?u+h^(E^o84%I&421X(!q!7Fy)fOUT zmOk#a#RF~)o-ba#u)VH?8B6?8z3JnHGvE?7%DWbsG`Uf3v%{@%{EV;;@69dYBPS|fb@9K5JT z>!m-s@QKfjjp_ztf^{Xiv)P-yyX2VL9InMpP7t@s-r;;3?+pgRAMjtfjqXKPc(9c6 z*{$*IFz@bwUbkXHV`q&TFDPZ`Gu;`q%z)qxd5dRKEXRWHl|z?b?v)PGIk>4tI4|oq zqCdN#zcjR&yVwv(L>dSREA>CCoL@6-$iIQ-Lx(%S?*U1%<{^v4^RVZYGS1`idj% zZ2`Zl8i(_|+;zdDmu*(zpDnS~zScFXD~(=cxYPVuv=%Tk(HY9Y->`{jUP%-Z(fR4v zA5HxWyK36QKquN!MP)+`OSOeu=9F+Wed{M~Rse*H?R}hh+`RM~)x2bENsHeswz2!- zDiN`T=cKpu(CD+p!VGDw@EK{dU^$l`rH)G)25$x6_|D!n4nj7fS{MFjbi=^^^os(2 zgSY%(gO6lyH#EJfl8kA(>-3$P=Cbxq3%5RSGCl+r`&U`MJKFVvt!B^N*Pitzx?kMfSXQD!gbf=#TyPr>8bK6JJ_(e;V~Ffw>Pc54yw zseIYr>md2OChRXOWGP)|Pcy;&f@Md|w?(K5*a%IP`NLj5m`YkqQo9j77ykp_@=MwW zl+o;xQp-K!hnW=eMB3}+$r7II;oNvk|Ll?65kAWU6d4E0G)MgACSATDn+$ZYgRlzW zg<9S!l*r;^oi8YVCEb)~xQnta`rTw@*$cJwon`9la5sluwDZqyWoz8mRinI(vhGHU zqY*ehSCB5;HZ=To3>d%2XVn&z$t`6Vzj4|DahEO08cXut&d+>D<-LaQJn5`kdJfgN z`7tswnm;{yEmu9@wY`xZK~($hiN0@zeX2qa7I7xv^e%iH7zy%tc$_hWknYJU53o_r(61r z$^q0W$DPfhP?W{|oqGKa?@Xk~3<>_P#!XEsSDwl9SI)vq)LmsCpOen7OuEFs2vMQ- z7|4@BBt@mV7iN3T-3D-c5TY*G2{rD=J0H0VeVz=Koc_6Tzm3Hy+ppf@q&rSR2M&$KH*oI2mDcBYgRTwjOK*CQ?v`Y- zjc|kRwopeIMKS9~c48@|e`m`WJ`^lZSKNvY-xzeub@z0t86NOiNy@I?F;V~Xptf7s z55)5US(^20U|T7h+sP+2a?fUr|S6NA$h=lrU>EWomJ6>`TbkR}d{~EFMz= z{m1R%TuFO99M$2-*cNNZ`jR0aRna@K>Qzklr|*j1bZ)9K%iSO3Oj;#E+9zJ}1oN9u z+Wu-cR#>&FIkvHiauynCnVg_p2yi6DseFI%IzE!|rNa5|G-6&BO4hCCQ5UQh8ugJe z>d!fPqw3&OqUA7`wf zv)Fz(4=g2^q^uD;5o8KP&yq@@|t;EBo1B#s*^B1y5kJm(R|s zii=UiTYBEvif4+yRb#%41`}_6@K00pj?Z}&Q@v+MyoFnf#bj2z^Bh~k)NDp6L5^Vy zw@fWY%dHwWUcW=Ztgmc^m5BWH^3D**8oFt?puC<#G+QCz=<+cFhj>dkoP{Xil0;Oa zGyU!Je+EB$S-V(>oCbK+(Q;0!6uqyziOV3izj^4YF&x#MWQSd+kHse%unEF=Li+!H z*%e4TtBqpVn%xOS=PNdPEauVu1f3-`yrsY+x);UMrTXWeC6G(Vb-d9yJG(3SFB=-T zi~Qlqi#M|uhHWJ`_Kcu!Z*S#`JYvD9O?ZrX%Snx;E>4xDC@z<9s*bVDLQa9!MjkIM zgbAxv?;!St;(?MdaFTugk@!0PN1|K&5A}PVNiFI!D?PJv-H&C$iXU5F$BTL8c+)s` zH%E~=Q(?90A2^b+j7hSr%4Z`SenW$FUIuZgV_RAE`(wY!iF;-xuR!Xngw8psMtoAb znFT<(h)*hhoGuXdRlCOjIMsc>UBk8o!nU%MZ>(Y3l8<`9Dy3*zRmNz#4&JhDtf^%* zT_8H^H)yP>X8L2Qtw8G(1N`pixXJ)s>XL=|9R6%#*J4K4vW~*wvZ}%$blId|>_9x< zC4RuYib>C_oC&|FJ&Iy;`P($%jr$j-Kfy(DBhFx~3f*iow|MSvGlZt!t>x7oK)_8f z$4k47Cf2I>u>$;ghFQWdt;X;5P8mP6M5=a`#;HEoQiWlZJ;ukWc4Yu(Q&i?{DfROU zUf>*NNvinK!KLaW1LYNB(Dn(OBlMABik>PFEBZmGa-JC{R&s)^cc2a2&`=k#!)z_v zfiKI`oShy1lYZDmY4*EcaUdjh6)_!HGGMn+ji|2w1PTW+4X4V-f+5_E?5LAp9#Mr z#)<|f{yZTkzMp)>a`8YGS(#YB=|sH|Go5O^O(t$jmR^{a!e`3kDBgN`6);%MC#lKI zp>{~3elW`CC$nP0&I`o^5{qes$eyC35~r505x92#FMdtSCOW1}{iYJ;q#6HmWGYYY zc5emwpqTe4H0ld}n4^3RsAx^sFyN5LEp}$_4zhKgl9}OTZ~@e z51P~uMVjC&9I$=hW?t7Is`E2ys+kYL{B2U-7a2_cc`v(7SGhCmxz>EGa|Y@wa`!-+ zT6A+-U@5T?rijV=-@VE>E#mddQOEf1-)!EZu5d5y_u}IOir0@tt>GUv*rZDN-0cmP zNmh3)Kwaxl?|7DWd*yL1CB2uTQ1Km1yr&~IaPY;?642k$K_;S@@jGqh<51bT#SVbQ zn2a>=0+n`Gl!PaJv#g=X5JWnQa!oxxr@(yq`<;9 z4pdstV(tz3pFd?MWj*PoS`wy~Io^Dhv~OyexO-*-&de<_fv~BA&~V~^yS?N%Z>C|l zrJ|W8XBmFM@t4C>!E@W&d^6veEJLIsZ)&~5Y7`#l`?=Loa6h))>DR;g!k+hguV z1nc7J$Jw{uG>+FXapS1AG=iry-I){WjOdG-mtj84p1o(hxKL}wu~mAh>qQk$D&7uxGg zzPjJLOP(3DnSdT7ein;PMteOQm4I*2TAYr$VWP7fdCFb6-TP1N?b=UW*L%p9qg{?Q zE4E#6wV;l_kEONG4C$_yqe5w~=c8Ql?>*%MFdv(X<2+|y&|R-Ync?5N^>yLLWHITi zfQrxq{ACUf!hX!%#82PE`)^jF>q3D=Q1aoJR*ed_sF+bXrg(JEtejr>GD7m^O?I2# zO}^GIm~)a?{tYbsh%<|c2p|)&>^1H`LB*AsTR{BF3R<5rG_a)U$+HMK?TU_wI8PCl zmqU{;i)M_1=q7yP;GmZH#45K3%+rLbz}5*hQI>S%dew;DKM%WVcW!hpVux;YK>mdp zH)eJS_K5ra9uK};cb>{)L+6j${$tO<>N2%tksr!Ng`f2%yP^GHA+kR7b+NrK?T2x# z6ot8Ek@dao6W1NhllchGQ32)R6Or{TdM$#X-)0EEQSZw1!kD#esUq6alXXDSzFmSC z*RxjsQlff;8>oKOq<-pu2bJty!rgno>X5!x6Qr$jC{7OQcm-n|QXVt*=p2^5W&$#v zPyeFCqjh3H$Sf|!t(0B0XLT0RmPRtWcW&@V3yKf%Zm6c{j^>jOk&WoEdYR%4Ui44v zc6;Q|@01Od! z0f}H_+vy_6aASw^ExML9dPV{G3c*utj^@;?-N_u3I6sD7Nolc zhk8Tr>{HLrg% zfrN0yKCT`&q= z?hpL(p|uXXQ^lZTKP&syskPZgoy4pES>gq+Kjs;k2zqoKw$>?5+1$?R>p8bhyPD8| zYcIE0swi#f_WJJOC3zoRhp5F`y|Ft^c}m7hQLMFQ`(3Wym9;prfMB9 zotsR;i|GGKg*z54g4>{_~R%g{i*%8chhoH+Hwpy}Wi_?$J=cJ1GGV@C@tV_bhTNlDsfwEh>?x3r61u zGn$QM)}Ux1I(vsjag25(Qry-2#;f~%vo`p3kz@4%<7UKiXK6$!hCi|QQp99qGy&dT ze}9nURtMH~zx%9ZuMcX7Y8g8&M5|X6NQVv{XPV2RfH!^rCoBoZ>cf(eVlgu2? zHO<(4BQF8wt9LyV={3ItP0BXy7^YOI(J1ah67ixF`QQsULUB@MMSn7LIvdxb6G2`L z{@x8ettM=3*Nv@9l-B457r0txWPko`R}lJGW#tlnpC+e@A~GP{aG)7VNWeCb;IL+40A`q;if-2ieL?3Vme_3%xXx^E8_T!k7W^1PR)FTG> z4?7K0lcX2(Dm-8m*!c0Wo~ZEfMt!K5V#44rSqH9Q!ePrz3J%q8%{cxEb6i{KyCBMK zx6OZ5EXUmrnSDopx_3`(uU?x3ruQD#r}x3UO`&r&S2!b?vS_o*z_MZN>Bw6k>GEg?-Ib{F9 z<@e0Q{ySSmgt(_G4`b82vUYS0s6fCkBL0bpPLvY75q6t6&<*;yU~xpmG6rd;eSlx} zOO(~4>iP(8zcVE?Zs7n@viEEz+wysu6I^rpHclj2vKNjbFvTEIJU(8=e1RKaBLG>IdM=m9tWRI0f+!+$wdww3Npv7OAO0od3AlGI#9vL)pbNNNg@ z8dyMbo2y{9q@=jh6)Z_eGzIwE9`3;xW;8!*NElx>LxtLw6c#!vCZ~cAH?VmxHL9k^ zf7B>r{79tKE8Y$MczpbA(BM8Qf&q7L=b{4?UK=u%0t1F!(9D;+<2Z(Q%dta@dC+$z zdoKzH-_u{P$2H$O+Nt(ie~K&a1`X3Z+kiw2U! z%jK|X1!Z)a*vn-`JYZ;$drwDjT1|`EQ~}+M2Fcl1&|H^pZ-fhofs&AUlNr?sG7tq4 zLJxE5+=FyA7_lBl^I&lMoo7j6O z0!I3qpSeD!AH1&LmPsiyMu_>lFo`!KVa@?B5`i*HRsT{B1Jww7#G#i9WQuFT!VGDpkgx2cZM!*D0j8HzYY zfm1{4736|Z1F{G;oQ!2w3={L{8E4i~p z*bsQc6k4w2AK2WvIAeLo=NojGq_HuP^Wj^BCq@`^@mmlQC4~At<7O}_ zF?y%XB}DHS*<5qvrUnHU7lAggp5;#T80QzgGNby?5<($lAiMnRW_C)XpA=y_`l3`* zbN5IvS4`TA*}=4DY2S%o!4HMPAe8s#p}jyy(5TZVZP7X(Aq5*g0>7cjI9|CCp z#Jf-%8NFKL!pxl1bME)If6`<<_IJ16Z1xP^e~g%-U|Z}G+VRS9*6pm>Mv&IkK~P~d zTuSx;#j-}ug!ExmRH1P|s0rmux0Z6}hY>WAfR50mv&Kt7iq_!vkh zK+CSFV5eLsI9HH;?^I*G&Tretq)?~=QWciN(QSaVPk?@gM4g>QOfmfaiSv7tZ+LK1 zO`B5Tqmu-#&o}muOkc0Ash)o%*wFe;Q!L zwHgTQ%JdWd%~GMV zYYTbH6jvSe#H0d@J+6R7*A(HvJSMIJ!<1wE)&X-IGLK7-xXN0hn$F zfDu!`HMSNQ^bUYV0pC$aMgJ_W-OJ!w@=O1QB`o~4lofCCa5cxe3R1p*05y7UNwOfC zAgBvYh!l=u+TJIOi?2|idR~Zc9}kiE2qd`S5@}mI1HzM5HE!(v@#q$?5y~%=vpQYe zEo(1<7--i7;Un27;p2-BwtMPIK%zZWf6tHrGzOaN{OsR{UO?-3d7)w&B0hixhdQE+{yIa8Bgd9Wwds4GXL|z zC8Jn=i2+`8h5Xmdzl@s(e|S=^Bz|*)_Pe|=hj)6w#~a3M&OW#qC&$Z9@y6=6+=#ri zv9@83xrlA-5&o^dVLyt!${yX`~V+$I)j{1=i;|L$Z!zY{4`II!DcgI)E$AXs! zna6Bxd-|VkNLe!BXX8<)6Az;5V?kB#g|kQR+jb+7nj-P$Es0QtkN$Nzg5u-HP*0kp z=)Sh^Gs@4D@;RjBKTQM*6!YkX%In`5xpfq^+WuN8f4&vifxo)dIiTDoWLuGJ6WrmB zHn8sTi9o=oepoqIWXX+LgZgM^5?6X}$Qx_u`3ukM+0dO=KhNp4>mV2~AucO*zB_T*J?8~+r=|)}$jJl(-TMHTGn7ll8VO6N(+{iO z?jDD)3WcUg3O123*atGMr#QvOOU5zTotVVsR?-a~0=VJE z*-wnnAU}UBz*GnhDjo|1;DSlQ(U-ysxS;~LK7RzFnS8(J;rg@(kSkbtB|F9si#iJp z{>}HJ+%}zuw&MzX5&#_D=&Tl(1p2nzOd!(G+_B z8uk|a*a9>;*_!Ln1P0^#^zEFCYgC~mv&S$_zJaz3Y@wtTwKvxIQ{1k<&mcT7b1vw* z7IKj^)!;s9TbA>UrH{2%>hAbH(jr0BP)ZN^Ek}z@pb`=! z-2JI~9Iw7r0si`xURcC-+EeFJxn0C@0-#>rNLeW&6B3MdJ7c%I@9DkX%f7=Ds=8lj zld(q^e00Q3L-IMtCqdB_9PYtX&v&e0gjD}r<3_F*`4yoc8xo;x4)6qRYSsI<{Us-eN7nV>^4GPBorCkH*fEfU6Gwb z#-dz%66$n-7Su|5MW**)q>AjPpVC>{p(3lRh0wtmj5`aqQGpu`JO>DoSyx|6z^*t> zz$HhY;)kJg;6h!bM#7@e{}om-L;*&_xvqx{Ob9aU%-QDSTGvKKY(J2t8c8W5^Ae`? z!n(J866%caHFO;blnkNde<3M$^iyAe3#4H~Vy1ivAlBQ=z4fW0(T{ej{k2gwZkNBU zLe^7t9S)<&)N?Zaxf88c&Ho7~bY?OyBdBt_isK7+1EULLBqWQP-pgVDuo71<^lcw} zVAguTCNYNE(9|mf;8GsQ7%H!cV5wY>?|}O8PyeY7>a1QhVh{6GpM8cH!#X(E&5;zO zP)nq4!tgT!0%3ZWWQ5ZpPtsGy3aV|bNoUIK>?UU_fZ*f$jG3y$wdH&wQCOXr z&SUZvKkO$A@(py1r=j~UFxch1Mz!4+O^=J*?DNC*AyCwgQ`t;KmF@sG#nHJLV@z$O z|Anj|E&2>;2JUTa9pwdE^gQgMkX;OnO=jQF&@@>D$p{Jsph8E&DSNE8n%z*N@&#qD$X$J6`ird zA0JrHAINf@l$8~P|9yBCY13Kx&RF8`6yD>&$U=tkxS#QPI$7R)!lo=P=hVN7EK0MG zCu(PPtqm6Vaeku>_Q9&JlNe_@;NQ@B8yu11)Gu@8f)D+Z@Nkl#(5&7R8=Ctz81d%Y zpAqO!;&AVCS&w$srR|^}Y4_zRgF!D5M(hSB<=3K5x5o<>ZXMb=w@42>O+4G$0&R$T z+GkjCld<)NH)Jvc#GviJE12FJ&`Dz1?6Y_w#@Z)wAFYiqTaE8Yjq#)r#P+u4hGxBr zxU>5*j3Pb6{*;Al1Wsm$z;5zYGHEZVu@Er&Dh4)=$^wtVv+NLR=5T2a@k&ES4{Qzm-{s$b zF-qw`cSn6+?xvt+tv2}u{c z!08W1#ow0X-I}5o0L2)-St?z#jHC-H0AH4;@pbVSguie?e5m);G;JR?X?Loz@H0B` zG5U%QUQEw&gTbZy;NP4Og${_H^}Zga(Dn+G_P`p8P@|LAMkiE8C#L4@Hrsc}qP#&4 zGZGCh1*Xls+-An)wKRzf1xkl~CDOws7Y;Ka4K7nnE?uV06ei6w+-BC~$4cb242hS- ziR3mjw@og5O)hoyE~qBWkw>1$?Y1NcT)s$%!pGg&;Y1Iz*yfODYR`!7#eS7y-8ekK?qD_hun>J@~|Kub;7EZk6 zNxY;>yp+CMBsj8`ZS-|EX)gi})ApvCRdJ&eDex5zI4Cl!V+3w#hj`)vbq&#v6Zjzobmth7dzyjM&?R}V zhUj%C%&r0akQ};m>%i&IqvES&`EcZ~Vq4(Uk`i};NQqa<7Sal9b|Q+k7(F^g<31;{ zZ)h-Rcjqx#-8m6DB(*B~q2w8an{K}q9+S1u>TssBEUa}ZA2lI4S7x9K*af%Vg~ zIAQS2mMkoSOrp*2a|$RHL0n@YS@vD9S1gc@Vkg+n6qx-&UP&{s)A+nK6H zmw6Lt^8vRR9(gTWqEX`77m*HNtIDsu9s1H`e&OV`pu|g##D({3U(%}T1Pok+|Eedrc>xDx?KC`Rv)J7ccjKr z<|1G0xd6-Uj!JHqNpmg3vay>IwT@g1#AO1ZTh~ij54ALR=0TUO^haJ(K4C|r$Oekx z;azc=%iq`6D8s`tNBQB)qSg)@N5kDW#CJ{+;Z3r@E0M)zx`B!xLFdmXxyKkd-ABt} z?TC18(#}+~s$=9y2^RgB6`GtCT98H42TyiDtlJ>g9T3V5zFxr5SE-H3k8d2 zXVDD9lbsQ4^}Zyg?XPMqNWr3cS^52NO-Dp|gYTSayNeNTTvmP`e8K_Y)Zp7tv+8c- zi4PXd$;uywPdFpU>wR%d+m&io?TkFJz^$2CiS~%>2H!E$cCwmPH6u?laO;OG^8t9R zBVwV!_t3N*uVz)*$dd%znwJG#>4$qbB3c@JS4`XKYF4$3JSo7f`B^Ii@MA~BWrOb> z4}v~7;RmGA2ClADMWGq~WdsyB9eq^%c1fO~DVp9EQyPwci!Zs?aa4TT5KV878D2zp z4)lfu%kr{zm=C#h=OlsC+JIn>`S6kM94By^Z&^OIDf$fzKO~9{dhQlD?IqR>^f6d9 z7SF*!=~$~O5ro3{JatOgsMP#B${fP>Pq zItJknaQMRz{9zLQ&q zq~15kv>gf@p*5@FMw2;m@L1OOzFH`p6oqo|8xqxaVXV&wwxCP|HSUf`Qy*4hZZ9-&oW3 z=QS3(Ku22s{6$b%uc(28JeP)2LPIpUGbT?TzF9h5GpVG@>%eKjqhf-F=xj$!o?(2m zLb`L?z-jEGVzOm!`1a*_Irb&Bw z&8mHkg^Fl+MFZuIpqX>X}n)vvLTH2NwHz7hss;exNY z!Hbbuha>O+JA_1&ucb-**BT2^qpyI zjfJey39AurFZ{w8VdaFdvPEFj`=Xk*%h#;h7@Zgz@kV9Q^uzHS5pfN^1E%eZChd!+ z?SMH_H9EmFI?*)pBn4lQgRexu6r=EDC&Z8mT$-Qki(#`4Q0Mv+%DN34xFvyL>uKas zG0BoVdtQD2e%4h#mKODJT@ahGD z(DB4Lit9md(MVrx)<-SiO?&7piy@2^$PBFXYTb~?sW?8^&IYXAM#T$Ij}zJ>V+HGlo@Ni(Yu=YR|^NE zZUG;@-DWrUSF`o(ym>4PMPi;bGqiI$Utho3roYbP+2%GM6mNrT|;tkYFj$Ji33_`45JHNp7pNJ>tX` zyQ<#N%zc`HJy0>?)ooSpeC9qnkY-|RuO(o~mgRwNV%-_@f;Bxl4mc&={gjVpluElD zC{l%&y<$PkvZed(6TfOdfA`rUPEn87{yAq3XIkdiM^(7vE0#}8ihVgww`9nLN)^ z@bP?&CGs}i9lz|_M6F32co|)2{KO~jdbL0-#%MWacoKD za%V6!&2a_Rye`YQ)`$Nf-IVaXkq@5Wri}Yw)YuAU8n@ zhWt)|}Qj+A{Xq7R$bk%rVU|7Q@Beu%IlvwJimzp-8*cx>*Oe&c<0)LIJ zj_SAJRQRT9?gVP=MkoFrNVWCL?fcE2F=0!dufUxX^wNq2m0;OVE(sWwtMXHntu4u{z(0_sUobG=~%&YSS8Gx;qMmoc`ywda28>g;J-*@mAwbTj*LghzUS=K&~Nq1JQmR_Hlx>$z0xIfdswy63)<=RT|F ze%~`ZW7*PImRMhqRLo=}g)tBfTm> zLcT+Vo+b%FFdR-RJ)~Yjj_y4Z3=E8&4a75kfE3omnLz_jq^`qH8AbU!K-T?tlh8UH z<#<48|CHi%I^Z3g{0b%?u!UlNmfTU=KMO!h5-R>0@ebn$38AB0I7ol>i#%xNyr^6&c5DC8Xg$$sLp+W}(K29O2nX}wh{X%!P@5GuKqC` zy(X|CZHe&~>w2L;*)9MT<@WoWD$4WK*DRpcCz70uhet@5%_hu(YoMUiOwDCSdiC%N zsU{oTnXrvV=2de|lF(`h44wsKL&L_V=z&R557;UAMDh^1vukkUM=$Hww?n}Txi5ik z_kbVYZbLcWm?G~I?s!A)9}?;R=^z!KhP7oZML1QzIyxO#Wok)=2#XecD7WV%ws4Us zZ)6q1%-Hds2+tFtdm_?L1oeq9KM|5ABBT(8%7`<-LoiNSWyF#GM=-XTRnNNoeb%?( zU7kjPL1=jRGSxN^nnn3Up1AfW4)Dg{s0BZ9!B5=H6L<5(p+9lxPh9L17yHC1QPN}e zm!KIdVb}`9UCVg;#I?PyMjL1ln`--o-pI}u4EkEIZAk{zLRuyC+;$8HJ)9uxWq-*1 zd5fJ1g|a0ZA^yCT%Z+%8=M6ae7%k+E??2t%Lqjgg(z2vA_M1`YUoaK`-oMWj)BO>+ zC?Qnub$f*{9Ehj;BF0f9sNO5dQJ^+ryEw>+fNJqZcsDtLF*{^D;v>pWn)m8*;i$ei zE_QPCfHQFf3^)^S(0&Lr_C$QgASIk$jfjE*-a#EzIT}=K_Q=B#acx^Pj_m-uLY=%4 zqrAE6{|B!?P`@HwF?%z70;aeUw*=cpN!vDpr^u>wX<6CLtSqBembI~Cs19rx&~`sleMqK+Sj(VcLH@(eRXZw zoj^Ucf3m)9#bn@aL>0?D_hw;A51RQ%GP$L2LqK_*@pYOt<~QT%r>gU zroe1ta4O6;p0eF4ID{!HY0n<@G<(!Ds`RtAM>&BGYGo((oz7}y7xta5YGpU}o$hL7 z4?9c-M_RSArx$ojn4wp#e4e9YZ+62MROvn(e;xa(mHl{(e2K@%0Efu_c8GKWFRS`q z;pjMky>%c*$3Yw&2Xl0Mm9>muEr+Nk4CUxJjHBalj*hRf!mq3PM)06Gk_W{%cu;&( zKr^G>C{^EEUJsjyD&veM0xMzhvqY^}osV+GVUV4N*@cwoE$H&vP-z)h7VvKdTb ze=~^Ucs*IQdI}GcQ`roru^CKfGl*t0h+#9B!DcYiHiPiMECFto6w9_Sn{8nZ+rnJi z7QzGb1h`q!d^U&$Y!D0C?-!}gTE>blXGK@oiaLRnYV%br=4uvm4U4&!#azc?u2(zQ zz+!G>F*mW8n_0{)Eap}ga~q4foyFY2e`4-rF?X?;yIIUVEaqNI%m?NQ)&EU_xk6$p z%oX;r&+ccRJ-|MDP<+A(T*lu?pA=TyciH0=FMGU-;<1XyDZWMVZHgaN{2j%QEB=+@ zH!gd=8+IkkTxuQZRH+zTcD&`PSPu7=t6|yiEmy~K8gIDoDFIsyC@o-{0c8a2e=y)70lN$+D`1ZS? zV~3oLoE_v9l6cZ{)fELCGoX@y@3V)%BT1mE^V-OufmBuoQbh{84{}!(;6BJ*jdxgG zfcqeK4FT?h+%*Nn8Bj}r`yh910q%p`bp*H%a@Q5$KFD29fcqeKeF5%+f7}fOxDRqa zDqybx4F$LlayJs-KFHlzfcqeK6Yk!o0^A3=9~0m{$lXkU`yh970mlt^T!8x^cMAdT zgWN3zxDRr-65u|_{e-9LOT&Z9t-W>`*`G`Tr=1~vg3E2BKwc+Qpsf@LA3PXUJf#ff z1)S?CL+S6W8}LGK`DL&6e*vid6}21@+;)K4HpbhwPygV$8Abl1v1rQ64Vsor zZMlIH*nGtsSbtHb;k%j?=F%d}jXrR8^c0M-HXgGh_&BHW7i%F zPpNAgKolZ+r2e@8YZ8WQ#F?L8GNBM6H*`aNmKr40B z?Z~ANIoea?z~z*uWg92Z>uQ*sF1)C?@0!O?-thQ$H$47_;+GZwS8?A>kH2=)<8LT_ zTJbZA|E~CDf5opT?)%5%ng8*4cEwvN-cIqZiuY1{lHxInZ&rM(;@cJX-SYUew^jYO zJw8zJ!HSPkJW}zfB>up}qvn?>F!9)!3KNeQCI4Y%7Dp8SK=CgW|4#8UieFOvvf{TC z_ucXMtUDf$Rs2)o;epF{lA^kMe-uV5u0Qbi4>jK;xzi$X| zZ~VR~z`gPN9|7)--?s#~H-6t%M-%i8Ihr%89gnZ^c)dLyZ@kCjMfZBV_+F1M|H9*2 zzwr1^zj^%fZytZ{Pe*#u_m88Kt-ZJvB#apDLvd`j4})~Lu+W_xapQ28ncpsW2$@=% zBo>h;e|KoFY3)LXajQx?i=B@|7M0#+qmc$=u-TaTL6%W=kk9NOlU-;m?mEqEv9mLm z1X&h3gn8IQR;jIksV$pb+j!((*@+=b%|Q%z_2i^I#4bVtO-(_Pmzy@mopgDmCEZGf zT9TJ)n~mH*pS|S-48Hk^g_3By*AF1?ElA~Xe_LH4+3Tz3_zT;6T{m$lvS=xF+a#7n z?W!h?MG9>n=qzkloXSD`5;lvPfD~GG@R~XJQd9`tTiV`1EK-&--iD_A4+$t_Kv@Ar z3@9gHgaPI4eN7#Y%$XP(SwS|eZB95U+J&Y?A$gWU#Z2vwP$8TfRVId{vwv;3OC_Qtu7VBeVO%$;WoPZHj6<&HLzL8 z`5vWmh%*gsHUmk1BVxFnv@zAU{DBEdtvbb0UV@UVRBB65g6C1T^s{hQ*3@RPF*tX! z*=(F^HX{bJZf>(V<8VGC9y`i-Y)dKxf7@?G3?BQ0&E{ehYi+YdbAs$i*+D6@gEmwM zLAu@`LKYKJ=xH*`uz4VWl ztp)6DHX=IqCx-iWU!en7gMtI>f?F^?4MMF!wmg-p4ZRH_ATX=`({cMoK+w)SW?Xn~K;nD+z`s?JiD&t;E{Bl@9 zuAYd@Y`$INA=J2l7$jdvd%@tc$S!vn^)0s95g6qXVhI0BiQz0E&SJle!4WUB_ZxZ| zU^y|Ib*%9E)QmYRsZST;f5c{$y@$}`{%V_zM>tty_5Cm7aW=75_Aov7e=%oNdszxh z$=*zbDcL&FePpSSWvwTJfk|$VLY0j9ZL|wbz<|Gr7-I8gVhD#@Y&H?+6I*2mmCX*e z3HZi@n(g*hlaMCvAciq~r_G{pm1mdDCL{jrw%HW;&mNmi!#?(sf1_=Lv+T1APDP~N zPZc8A9-s;lf6@4iDj!LaeJ9aq+3_Dc02m6i~&ZxepK97be z{$L;eCiLZx_Qp#Q63*Cc39RlXn=L~({VXl6WmwlN-O- zY$d$*g6!d<*~3MFTlos*abHr_WWu0-Bu*l zf7#_WLZHi3;c}d4T(Jvo!l7NYE8K=|xklv>djGcBW^~nc>6XXMxxfu7gvq;`)ROf` zX#Sz(c_+>pe{WIA4KRY+c9o&_-Jycp5eV+HTkS%$^AkfnNn^9!u`OfwG^LIBKb+w^X@YCgMM=pL2) z#E?G~Acl0Jpv^+#WFh+~;$rcJgTi*f@$lFpcEOcV2-`*Nf)f_4a{|S{+&PWn_WDVP z|0U$mf7h8qFKHKwLY`QP_BIc>L}|O=WaI;7h#_xyh&En?$Ir_WjKhdf&fa<&qHuYe zO-HzX*j8dca;yqe4josK$|3wcVwanN)5yxiki}Gye%WODrK(+MCRC_qvssY8y1mnb zFr6B9xmcuKHK_--ViKYj6-4N-O$E0j^Qa@uf2(Q2e_gxO@(CCw>)F-KgO>HFy2BW> z8!$vyJ!->MqcH>B&_28)7yuht>|7+Qqp>t_m+8MIRNGjL2~8Pdz<-S3IAn{>7-IA0 z_VF!3Ab6Y@`k|#XW{+u1D*?Y5@PxfpXePO}eORLrJ)X4L7zBYf)U+6!K(w_hT!wJ; zf0XPsoe`~_fc>T!?d|Hv!mFRA>gQp)?-|+hakJ&KRB8ccbUF}R2&3&No8C9A=wvr_ z4d#qG+YK3qfxe4u*xKx~tG(emn1457xWe6?nz0H-(}UppHNj}rQ$?#@b`wHh)_I;b z+KjgLws*M&I=w&)nSLLtFf;>B6>diqe|yp1cn2J=pS|&9O!dA*=rQ)j zV=!Wkwb?k#HH@>jjlqaAp30$PCRptJdSpivsntsmswOc+$tY^}bj*EBW{8AligfIY zr9vG$)o#orjPBEHb{GTdbo)SNe<0*W+vO%BeUBlA1D-()BjZf_fG1-hpGD;`9T-at zxe<2^)`z|mv&cPC;_pTpI2Tqf8I9+bC5PfR6As|#W073Z+n=M3w^`*V%^*G++a=c#}e__57 zaKeBS0+yH_`I_3W9ol_k*S#Iu#oKHLbV#t-PMlmO+HBXJ2c>Css(e>G<)vxc{=YQs zNuQghE%N>ErfL1245nRekanFU+c=2Ru2VLQi^D*D+7^8e2HS6Kwi{#KcT^6k&i7Pd z$k%?b3m(9H%#UKb@y3|X*juihe~W1P6GIG-KU>vZ8iVT2+H5T1^EsQ1Ln3jWDqIBD z{e=p`@-NtI5+*G!+H4A9%OzsCbn&arqR?5t*(@4S?suETV0`?88n^{P=uf-g94PXa z9Y$7Tg9 z?6$pS==nFtF1P~2X1K-9ZA5e+PNyS=ks`glk1ZI&Gf)FJ z!s{|7!HA#TX94WmwqaHvf3wYYAcM?e?_me_kd+u*E}OmWE*wR6yCv(#V&fdNG2A96 z6&wfS$VG4xw$4p3l>6tAgNrw#TwZ%0yF!!YQs}fPl;3Xg0rY19n;k?u3KGMdQXyj4 zL1Ed!8MA{T)Yf^CcwFVSqaJ$+m&Z?9=L+|piOc2jt))Ef3(M+@f0*n(x`My|n`hAK zRBc`&I0WG(3;(m@?al~a8K1B1x^Ab_4jnN#Ft8t9tnG_PgC9J(eL7Rmp2Pb_3<(Sx z*t6&9@W8;Kr^AN~jfl8{0-vE1#yi2EoA~J;R3st+KRtt$L|np8hhR++2k}!nEgoya z&sF?%O&9!m2R{|le+PdS;K#{;TJUoUKOHg#e?G-elT5*%5ApLz=HSm<{G<&^9q|@^ zuHz> z2e(1z#a(0g$&(Lj@pBhHQFtZNHT?7}5d8T7Ka~mwe`4`-e+NIk3k82Z#!r>PXfA&4 z;iqpA^csGu7sWy2C#)FSj30dCG4yq%&<7Mk??w*2vM}^6qR>kRLJt6jZn6*E))l&h z7@DUFWkDe+Pp26=Z15|6PiGi5bV!X_eV!ls{QqmA=^G3f)MwZ$eH%jVYnOvU=1$`e zuNe5B|F69hf94PK-*+7UJty4%ujBXMb<+6nIBA0cKAr!TlivT2lfi$}$>_h~Wb$8k zGW-8_viPq#S^Za?Z2l`wcK>B3hyO1pr~gkUm;VnZxBqu1kN-C(um4vkpZ}7R-+$35 z;J@G$^#9@%@}GAK`_DN={AZn_{-2#<{-2!U{xePqfB%n8N&gQ{DgXCQY5#Xl8UMG= zL;llFS^p`god2X#-k<0^>`!ni_~V_5{%@R0{;!=!{3o2s{;!-W{^L$n|CdfR{})bm z|L0B(|7T83|EEqZ|0hmu|Hn=p|3^+;|A$UJ{|8Qe|NBk@|1sxL|9ehD|GQ2j|2s}& z|52xjNdJh_)PLA{%zwyf=0E5(_aAT`_wRRF`1d(2{d=8O{yokU{@qS%|1RfA|4yfk ze}~i7zukGtzs+gq-|DpYZ*lJb9}eGX%!d(OUbhilUvQv*8&kqkP5?^6OwV);*$`|hU&`<$Ia+tWwtU$yh7 z2jz`S{dYe5?o1~0lZ~6}to9S@fwj>U&LCtrJNJ1qH)QL6XoZgN)!F6kFdVG>;0N~u z-)s6}>uu%)%woZ?6Y!Avy-KQcF!DlckJYYUefPJq{$J_@f0RiW2b~`QC~~?TGrPJ+Rp^n!ptLMoOx{Q&w5L`&#lnhFN_O4&>UySxp9769GAxB zam6-2EsbaX-2B9d`;2F=W$w-GpBfvFvg1>a4I}gZ2eyIaCi~gn6f>C(y}~(bw_#cB zw#q)_>Q`Ate@Nh620gOzcDpw~qnahnsoiew3ap=6z1?02h6D1DWL!PRf(p5+FJ zeUf>VSP`lS7>OjLxOxarMRxMvDokmeMmvrcWbgfkCV=G>Zx9 zZgP2Qxl3I&*-i8iyAH7dyGF*@-ArD&X%Ae;teu7bO{3x7O9TH@u$XIpIiiF)2<7 zMmaYn6-!#2$G0&01I}nGVT%hbCdr;9gf(K^<$XCElvSBvHrD6;4%t&I&UA2tYImJ* zTP;{MD0BG(?l##KPgh7S15?2< ze|i9-Qj(JyYXNhcgfj8ypcHKTL)VsOKz3Dw!|Jz^77g+@lOjBsq!*N{R;?48J@%TK5)H-XQQS& zO3|0(;d8j_AU`1-vb&9`1|Z3`nBZd7e^ew)jcubh^tv>LQlX}=fv7cw0h!+FQMS>O z$s$(eAu!sU5}Mrj8L2iws!^i2*OK`8S`rXqu(kr0-=QT9<4!pvEY^WsuaX9Z4KQU1 zC+&7X6sFl3k$UxDx8+V4d7)tt0=>1{DF{M_GVDma%xb*3)r5g^B@!Rg7LLt>e`J-y z_r{VWG4?s&mQBK+I26lPn|jD#q(cP%vCgDp3b&P=ZIinJtf0WRYl*ENO-$qngAfnx z5bEiyAC!&*DTnZhc$M%{E;`fF9JdtM6;Wk^d?lKS@-mno%tcu!HZpsIW67U8VT{P! z*^Np>lT0PbcejV$&Ot`h@a*Xsf5M@6TP^ZbNJj=Ekwf(!VWVq=m=;Qg`ISkBS@<$J zvV||qtf`LNtXVR02HIutGfcXEk;9V$j$EN+bd41Hnn|OtkkFSAtc^{v1_ZVS1hzKL zOC+_X5!ISTVQU(Nt&PiQUkTP?^tF-EJ=TG}^5Z1XD2x!Q>2yUoy%0 zi(Jn9_X3UsGnz^5l1DG;f5O0WL?EjYj6;94+myv|m3a6|!Z?}xnSEnygvNanN495v zWQbR3w@23HaO7oO(>8To0j0}!b|VuO$C-}|JGYY;AC5D2{#+(#<61bE5qIt4M#e6o zhb#xb!nKU+9DQ~3+(9ru(iPXQUtf2}_)48z{S@{+nP zUV2)l>st$fv-O0qp*T&aSptt`)ncK;)$Q^UZlBQfpJda|-N|#@<|Vy@Qd9{-ON0Sg zRa77|=myd3+Rb-c@7;c9d8xH_Jze^vNony?`WZ@iR??-nqAX$$6lQcbXF8Js4%tX_ z+U6mtFn*)(FQlvUf22L5V4Q(1&`~jR=B!c5o-sd2k?}awGZGw|CoKFa&@5qC=*ax+ z&mi7wJV@bJz57RNTp&b$-Ns)GeDF-JN{xDLzdNK@T31MTf9kz|;*C=)K|5nK8ECID z?UrM|)&=01gj}8mPH@PUH;UPEWt!rucXM1#NMY)_a?n!(S(MjO zs6Z2&lHm!wK9>|#gi1;Bxuw|Dh;K@DDye~x+`y+;OzA^Ik9Zu9 zp|ykf21Ms0L4J0?)UP{I0rN;`ONTW{>4eZWA(ezSDb{z@%a9^DgdDBHgOWI(L@)9a zVx3Mm>2!-u%O`~}at&wUCqAd>mwCAoho&UCo^m4Oe?aoF6Zr!}Ig!x#$Q1K%CZ=sX zHpI`utZl;GXFtk*Xm}T7i(E)y$3!w+uyY7f#rvgSWPXW2^dS=EN9C|0gGTo}IOe?#zB^T)IDNm%>wa*{*z?H8M!k3#$lSb`h!gug9jo=JYkIuX%kf=xZ_f zbvXB^f20y@s(*qsHig&rghay!x5Xepxu|NQ2mqCh2)+1UyP0Sm=UGJ4pNb z-EsOAf=a<(IMWx-^#6u4ZMRd%hSq~Km9(B9e`dX36K7n=p~Xn=s}UWVONYmzZnCve zl6ZwQef&?h5#n7B*|X*ikp+jMu1)TcfTZ8|q`#IQXUZ=wux{lXM6&BM;Uu;{{Y^_V z{ygQ-?DY=ae{t@P_n(_NeUJ9vH*dX<63<+U;qZK8y!w2Trj%3JvL19-$*v{;w>@ALGCkzqQPWbBP&T_T0?GC zN2h|J5dIdp8bCNvDW1pr(|4-zef8v-H0f*P*iHoR`w!GcZZfqWiXRbDGGqcsUot=7 zu7XF)M={dDnW!@POe@NQb#W!5KR1c;auQKFnL<=fHfy4C@|jgsiodgp3fgB9e^!c0 zP%DM(Aj;8QboQE_1?=rl)T7k<8QoKU?Q&3#jNo~I-Th%#zvE$h0h{dkzSFc{ZdiA|}uk;_<#HWn!EBOA`FwplZE?e-jMR?BJ^YDHapM++7$jhA*E@rtg|A2Vvj-_io(n#KyO zxMkFAuJ4rbbuMTqr!Hu<3ZG`ByLxQ~zczkn@mt34+-n+hSn++075RUmyJl^k&+%D4 z!=^qoYmagL-eFeZmHS5RaW>6n*esi4huA!Oj2&i=e`wbh*aAE9zE(TJ7Wo2yd}py~ zvZL(S`+DstFLwTkAFUN6k0&ILW9)eC31;wPJB$1YP(I0?0_E|nZm_4Bi~5t0=owak zL0u!Bc-L?M{ogc@TTC9|msNbicj&X7yFx2pJd71JY)-ucxJ`;ROK~ zcy#D7iiIC+rBh?X>FlU-Nr+ISX5a;>=?Be$bp~Z)a+!>LnOqcH!}4e~gXuMs8O($N zEM}3&HK-rLmIN*9$1aw1wY%A9c~L~-e%EVt)p+hrKi+oZZSH?I!&WQ22?1S?F`p*p zwcL&fJ6yy*kIp%ci%&b+I_Iu|yc;w_(e~n)GnY$FZ5~D57MEl!Y$!6C9@V;}E_ag? z|Bfdj&LmwYj1*lIdm?uIfbm--AbPkrx4Gbwm^w8*zm;`r`2i0?)sLRtMkoZ2I$^+w zG7gEYq-=z(oDhGH-F9#=siL*Uv|Pfsi0?(x^d^eLxFj~Sp=n4FM(RC+f2h+6{@N32or-n zz;bDWr=Nvx_(zmulUubOyI@>XuW|KCb zUhP|H8J&O0lI!&evHQAsik{tJ@eEDD0U>AI2CvtjBmRaQad7NW$#Sx4zepMkyf!M- zza6q}i=Hd>`t`2Y%HEXfbto47NDJcB{;`Jw$US(NMkbT8b<44*`sVHOnU$bPy4XwY z;gebQs)NT*EkE}gOQ*hfVtsx6*4eXX)^EMge0P6opr07%>jVAyfo>1e;2sF zYlvzBcsZ&uYqun-w=1!Zdf~3|4oue4VguNJMPYx2`^BCan`GjNe%HLCOVch@#UZlm z0u_HGKx*8&_CQYH@s;3)*YcUW-o1v8%Yl>~j#V~WTmoS%7IGb;RgdIKrzYss>Q5~8 zbX^%|U9$Uin&g~Z@5B0{Zoo2UV3n3Gs%Tql6vh-YH?Ejpz#_M>r<1}Cb}}glJG?}D z7Sl3%c49MQ*A{1EC<$#PnrdR-Gwy3W`Za&=YwJd@+;ft$xSA9bI5=Q{10@>bw?ELY z|2$Ymt*~o~A0>vk!;1H;#JR8crl8)bTy=qio(}cAK7YGHtyr20obCxIz5vDlQYn5U z12gUzY8jFWEA5&e=)y)%GpV5GG7`HMxZpHy~{w8J<{4_3Qvz~uJ zTbbIJlgwC}sqN|*;YBtje}5WSx)y8@E$AxBl-TsHLGKg~GBfa*Wi!d_u)kolWBpw= zm&`C{QDcW*))G)IY8N!%EsZ@-W5;$fb64+8LpRe(H|(){<)m;Qqe_f8{PEwAyMx1( zeoc8@H-du`uBRN5YFlX)iSl|kj5(gXSa~ft zz&Q7G8Dq)d?LgTw`nFoGGV(E^%+lS6U+?muL1d6dcz%S(5t2(*IAoBgZFgdFS<1jc z4#^bTd_F5p`PhhQR+qh2L~`-~UIfB>t;{E4ONFh`{4g;5tViA-Q}M^Owyb|#<6AuL ziU4$O+{MW!(^4i!KDrctQj-%}l-x#|g}}H*zN|q5nPKJEG=yEEkA(2ruMW%)5TFLb#g_4zr?}s z5I2joP&2!MU$aoW_y{_7_Ufaf=p{nBYlMA{1yr;RN4J5H_!^dOn>K&7=@wdN3>(;~ z(9_Zl&3K5~L)&z+HV0nck-c9;?KqIu#-F2$i1g}w&s~q#gLU!la|6pQJJSt&40h?< z;N-CTj|TZ8K&Ra+1Ad*v0sKxS1*QRPpYjzT>%B^1C*`C}a3cNHbTSP%HpMTK>7=w< z6q^7CP~0^nAeRrICeMHNSBV9_W$^>RI$#zMGoz>oMtmCGl<)r(07~y6&FFnTVr=5r zM`Mu#C`-sJ$FhaM6f>E{_?2WfnI+)cF9|sS0N;tvk~XKoIK|0vZl9x;qZ-W_G@E(* zM62wlpjV9mN3ft=2;Scw_ujYXaYU7}K=L_B`E}(oK>3lb^$vd_20RQ|N}xKlLoP?V zgR{Ul5Ha=+y?5wZ#s|)1HkoT01kkt7DtSonnM|KNDpO8_5sziE8RA&(rh3yE-+YF0 z1wrxk4~*+S367y&hMsU*fozWAy{JiDeYPcx_|a;9l&@yq`}#-9M!@;!<5ofz07s;( z!ptZ>8n+Yail%?mxktiQs`myjT)Nfa4GCshWVPqgQ4&blXoZo2Ulw*ZTbY}Q2Ku?d zkx{Rc=S~84TYj4WeK0$Eaf2L&sLLba>3uy;kM-!6g(pwM5sw*fdfiqmQAi@1prA)^ z2@|Vv*jXW;L2+POkla&?0jT=(X*sF`>+6JsJ49V3M5%v=@L}mxxVeLY>)TnA9RlZWre^(SGzNnONmQ#SS_OSIo2ctsJWlO^---#_(jvk)h@G0dd{5j_ zKrF-~M}Bg&Z_43+k8tIW326XgfH_r~a|S`wjIMqO_N?qzLY+n+XBoCJr#t2X=oaXW zVc^M@wK;!qGGw@O0&ffnck_4xy#&%Ce&>k4ahR*)MKV z6Zs_dM^Dy=MM~(sZ`3Sa*eN!3R$})1dacAN%wbb_vSo5?T99l17znPd`jjP8C*E&u z$8qP}^UqWAU^x_9FK1^*q0X0AxuEk?G?9OYiUkfTEeS!91V-vZFE;nw485|f)UTe| z|Cy}IHc6Q%frg*Ny}B1~<9t2#NfghQ_J1bpvMuAOfNsQ-fYNmj;Q9ZM)1##yle6VV zUz%rjq8{=@-TksWgKm2hhwf8|)R(A^->;0P;9hG9^=2#d;xEZF7F|BR?rZz%UyOfe zQ-)Y0o|pI4zv$c%EspW5hQXJRQf*uez~u8V`B$iE0$Y zZETzwHMyRO+ORc!F_Avq*pLeYA_Z%w-J9EfW1E7{up37{<71IA4kTGPSzQB;{*W+k zN~VJAl1o}v71&QYqaG3KkhHNpW(a?B$uQBAt#@P9W z)a5tj#Qdhu8D{Te={6DcBACWmZkSqEM;0evKZM5o1{ZruF&TE`!89#^A4h-aLov5f z?2vI+9TA6|IxVj;49BzTK%UUbzZ!Zwx(Ca{z(DSd{@8J+hgRrG&o2s0US z`*aP-PMB3FV9lsYV1y3juyTLeJk#EgnbIO?4wP|Hy;00PmTPsW&ml9Z)+YBb0-sc` zpWh5+3eNppH0r)GCPg;BAF2Hbr{)J_NNV7NM2)>&9*x#t_@Tfy-M0#3d+PI>sPYV- zVxkIuF}=-U(r4MdFm%FTfEnN)zuxtsYMOo=4tdGmrvT}746?L*pjm(77fTvK65%p0 z_Ts$`)=Q|XA~9lxrjbOsl|m%H?X{L)RliFIXam;z73snczPKjP_bb)|IPxt@;VDf> zwH!4697#W)63F9>WkS`6`Ke54Cpza2oy2K(^aQ6eu~Q~yC=;Btefg~h@5uX82$Ux> z<)oDNA6Yr2ClMgiRTqD4__689y`&OoY8xqsd`kNIEU}v{&C+R=3eD1mLl$Fc&|DRx zRH$@e*@S^C7avWXj)AdUdzqfQ6-$|Mu8g?S=qNc!HWTGp*0X26_5w5#Z1K}$M$%|? zGxvIOJwAzvor=B9rPHz=oK!yhUs6|eB%YFsM4B9Ve<&nx*N*Gi&7k%x6x=vtcZ~9$@$lHK`sj|) z9E)@c*;gJHE^B|;9ixsIQD-{hL;b$Sj2}}RZ1(7;7ICp^Ma_y)zpL+>;)0BZ=^Z7P zOdJiYK}#jb<&tLMgy0?cwDJEU07Ipv^pwStxymis80|5#9S?$2s(b&%`S_NWH^hBC zHGOt#;9R zi)Z#-cc_1r9j(Lu72bdQ;Rl%v>OV0^9Lgo+0ow;+2cabUjLCU<7$>iw+TPxf)3$d5 zNJ$nE@UR<6vvA3CtGkwQBci-UwQs3R#r{kN4(B6V`CBUfKF?nql&BDYhvJ=~wUiD0 zuuMn{7RIe*WSM>CE7ePB@zpoi&R@Bb7A{{o|JthfOOobmavNO@ zBe;LXv{>a^_#Ithi=WZ!QX_14{1#8AR@dHIslImc^|z~Uq~#0eFTSyQ<^1aF^3F(n zLVy_o>z%bbM6Vc z=`sGNSgIJA61D8_lVZVksBS%UUZUQXg=c@wcFYM z+dGm+ilV3w%juSOEXpQn*>xR(wUs!w6f1FQH)8DiMCQ1>nIo4x?w)7&BvIaLgHSLp z1p>HEinfSdNI(&UZP6A*>)LJF{!;{K5hO+baE(QQ)+i9bMgMbApogaFdvA94ZjXPI z8#{O0xt+H&Z)V=dZ{C~bzbONs5?r5w>w|NuqA;bRFqLTywW3}hgFC&UZRr(5RbEis zV}`CS|^5msa+HpGV62rGZHQ8xB^p;G3f?9h(-l(KxHGRDg{5Akt6wxhD~ zn}_+>E%lbBDlh#lpJ0b~)XEVy!H(QeDwDj>{4YLP$+Jmz6zWI0@v7Q1`O%90IfWf# z$8RX?I6tmzJiMR+s8a?vhvvmb;_Vmw~bzUjFiuHTx^er$5NS zfS12AdwaR7EiJ({1=lKEb+~_AxCC6mUZJZlb=9e^YIfD(NG)~Mk*->N--6EF;!^A7 zGxKL2xz>(!$F0}YKI75g!V#WC13C!>8qW=-4TcjaH`P!Lm0Q|Th3Q8X5RcLQ`7iRI zC0xrUsaS$H1^4@fWn0f}2kUSzS6(Vv@W~8`_Xb>-aL6(gffB+{Ouc`l9>+nn1)&3V zPm4lg;hwKAp@x*6?a}!#_6{_YjkE)Vv%u(*4#dR8?P`h6gm9ERc0HaS+dYaZp^F zVwjqE2!4MmVLy=w+qHk5xb)=3i?g2F*#7u}$Dz$c@Lz!f#IB&&+v@dF0K*>#hrR^5 z2{dr%>(ZeEJydtpwiaqk+f>A7nSRpYm(+bOfM)|DL)>#4S z^4?%3^w2}&mL~g1cwo51qEz+!XcXdZx_cK2M6~yB>sb9~(D8qGYQJ#v5Z&zM1j<_6 zgQ_sUz_-r};fYB11dH-@Pk@a;ll!pA8Em4uk>)=H*TVyPB;7uO0+}RRDXAJcIod=)|2_pXoEEQSmey(;)O06X;)nf-4mj z;9p~EMMr37dL@6y43?v>!SeJiylyg+6>n$&nE=25nFR!4_%+!WLNP#Lk>x=*hoYfA z;CrtEGdX`P;I8kiHn=px$JT?OIsf2;=!0{fSUYFMj%a}j5_4pBV53d8YGBLUpOc1p zsnu+HBJizXokQzJ!@CL#x4hL2UIVJ_GAr0_a^G6rwith}+pR`0FMB>PyZwbN*0~+3^KHj&hr9zBp={e&(J1O1gPhoJHMxJFIT9x)8%9mz;%w}?va$${O?bVs zayo{Ct~LYLymeu5Vb6?Af75Ah@@+pF2D|~(kboGKYwNtWS*S^VLPN1+;W&F>eEcpOsYK}noxs#KvVs_?-gJq&y`5%Nr>zN z*cquWKLOZy!U|NA{g9=SWi^gOJ0pDr{X@3G|LfN`SOvoB+ z!7VTn#D&$oQyVxdG=4SFp-)S}BiYcaWA1cIUu~ws1wR=g!hjYt`0)K`r3Ix42)kaT1vo z3{Ija#bg#W2)Ak;7_Q?U$Tz#FtVw2;yh6|bR^iqi7j%QL(h@%T;nj5q6m~WC-4-|` zG<^077ohd4WIEuJ39n}pho1pSNLAC!tN@Z3-=csgD~{A72PCmzFU(jM<$SiKC}xvt zvg)j%!s>0G#smc}B0jG2b^D6rk&u7UVreJ$o4n@KotlIhFo$Nt0Rx&znXO900*(5h z4U`O-&z9!{2m6YBsV1CeU}5ydlK4f!EaS3rpgf!)RhDf%Z#P;!zmrU)xX70Voj8H2 z0U7n#Ab2Pm4J^qP4)^y-2wA{%Avgj)zaX~{_ycv;TMe=r!Pg+#BAo{iR{DQ(Vrcs* z6LNnk#AF}95q$G$ZGm@ z2DR3!p6+P`BS13ubOXTYOrM&u@NeEabsBf%`{m;9$7d@mIBD3aL3}A6=#aKgH|;qJ zIM#Tue|ZO_lsyO9_FBnmCruAshvF1F z8>#dyXrZgl>=ngxn8f`O7GJ~yvud%3#g{O#D`!<6jbv0VUcfA|7#Tiq)IXe)cpi%v z4#*wNY8CObT3yEg<`{p5H4o&~-q)l&7Js`FeUZjo(ygWqoJ|->Fm#MgWtbYO8|sGk zErn@s=sW6HRi@*)#Cr{BoF0=&@QLF~2j!i{s)T@~H7AWaQz>Sn&wY{S3~B<6L3$&? z^FU15v-UK$v=5Fh@pA##@oP46m_eiUWdaIdwCV)H7TXxaNZ)^*A(OA65%mBjU2bB) z4QG?n+UMtcqu>V`B#ov~y|9wg^O+W8%wl^#kw(I4phO<0+iCCgzGnPdjl-6euJm9= z%_J1hbcJZ=;O4QrV8}9^%whk~_gK%w074p(dQLWzgZ5-tS8m( z=(DkN*6CEh>K=d3#sGbWw6Lc~#dO@L2xg9RtX9!oTziXGt9zQL(xH$yco>9Uc2h|X z4i9$^A27d+*XaFTvp`-Gs)4$r2`f}KG;vHGpIuS{L;eCa7pi#f_jRqUL2E6@2Zg$} zqxnw-`B1~7Hm2V+@raGi0RJg_;2LM}A9DPcJ#XprfOCK6&RKN(=VP_6(h;SnvRv;k}Pc20O^;JT%lv9Wdw9_a@8)jr|c#gZLlU79oo91ilEqBu& zM9jSG{U(2EYm5%iN{Ek|X_N^oyW{-|myK(BpT2P(Ly5k>jVYtDp@?BeY3r`R)HWoI z8>%=NXl=ta0=*6C)N;m$+~rkxulOglG< za1FsV4A%%;W#qL}Z0Ftkg3(O7+`g9DPN|)TgjIiK#ty#M$aUY9t0K2tgTTy95EsL) zZHL2#$!&n^`1H8vrx` zBtya6RRKMwiCG^wEYxy+3d$>eFBd*f3JR4?U6esNIrm6@B3$uy`NWTij_faO#piD{-7l9bu5nZa2SM*fn>HyCb{h-O=5#-9x+MyN7otc8}D@3C+x}6%S}#+8x>*KA_JLd?f*W zOz5LhuiPE^AHo+F(6-Pifcu#ccUzg=7Z32z9Dfeib5liUfA_)BpU3ymfB>CQTHT|a zA#`MXh1D6|%!|1W#Ixko&?3|xQ^5W8j!tdY5ivi7Z{%_v*tsW^qe|Q8twzDCNiH3%}uou6B93d)Jfu&a@zi z3;_Q*>#CRE$5UEy9E!yYk%5Qo0D7Xu0c`NJuB$GSKS0Q!Hy{c)QmwTFFbS$MFRoJ3 zADI#@92V)Tt$I|B)BU(nRP5zuxw<1TnjpLuA+jD99h}2&p&J*g2^xam#=Y@|D5KSE zq9=cTTY^~+5UO~RlciAbVjx}oIyTpElE6^3aL{X5{3aGxu-MM}|98=eK|miMbSNr< znL)2BW)_O2zLno?REkB4~8}z@; zn6XwpuaUgdn4xeiQrmmEC@+svqa3}%5O|a#94v4L-z!Br11J3>B>XWJf09Nne~QK5 z;kJWR(y($Hy3b_WAaHtNgg;hFso2b9wkuuQ}>fUk$K1^PRMDzlRDd5>56`kI@>>B@k1rfAf#u0_}Y5QdOMZor0m!m>i_p^ zIfoynbNEOCC0YIknmx*L7-cy+4lX)(_L1ji?xrVu_lldSP)$HsRK+75%FLqUwLASk zQ8aXs&Uz@@lqV{O4`_cZFsc^c#K#3pR-FbHvq<_J+0WBYT&jL)@xod8uU9!rcO%uo zx9ve}T9IB`7vj_Dg1>1GVyXs(74r zRb5XTM--iz{q%Zc2sDLAQ52<01w_!KP1Ay+kf1oKBjQLvn%01<&CZw@+q>3yserDf zDo*9K)Q9{8=u`b4`Xl;0uYIzVx4cwV)%MQrngVJ)nxmO>&&=MrbMN?fbna(De*pdc zE&xR(L@_0GT*7~c<1kX{q@k2lj9wsbT18B&S^N%0vQbh}zeOJT22phfmvn}Y45~4_ zYeLVgAV6yc9g|X)>eP6HN;XrQl-VVPl65p|4kw?iKPz4f{2KGFwOq&Z7`Fz}rD7io zyW!MWIi~MBwetBkj=~lRTdwy|yi_Xo?&TK7g(VKs>%QKrSzr8tsb9*_Sy7<%q z33MB}A`kf;K!|oxF9V2s8X)OefwHUiFpRZc7EtdQfJV;*GR|aQ zGD20(n|JBh6p~!?fgE*k+wjcD3{^P_4cI|B9{Dm3U&Z{V)R&8?FB1tH>2#u#@~M6@ zw)~pvKS=eL5*GBAIw_y(Ka4H!QvFn_pH5iNPj^yY>XZ9?4L1sjak)6e*9S6X1^#}B zHwAz82CAH?-d?>fa3Iux@39SmD+5^wLaR9S7JDo}UmVD^7D~}63S1b-gc4@Kt5m&e za4^L4gN&@4%>0PztHLUHl4za}oGlcrPUt%S-p9o}MPhjZsZ|~hiHkzg0$ER?EJ{pegwtR0ZeNz^i2Ydm7b4AwQV_A`yU>oP~I5F`!Hep0i-2Q)7 zftkQpz$*JSY!eGxV7KvAut;Wn)XDIp=0W-N+qH17?z?bb_ZR*R%$bLPoPG$d0vzTd zl$65@^mAMsN9Y(H0eEO-x?uS{YHpo5yifQISinC9fU!Id|3t!~ge92_nUjw`l>6)H zL33ny{eK-jS<<)pUAfbz626GHD?WdJx{_ZjujPdnUoQVr+U`jBT*7A(Zb`U3@}^IO z0XG;x{_vF(@8(Zj96RU8m~`|??5O@on%wUIV%wdOW%wmUX%wvaY%w&gZ%w@M~%x1tif8|=ubKAxh zC%{ipv?71RjuSUoJ8dMT6x~ibNk@~9I+h%}jVO&JPZ}j13gRv$NFcy0K+8<2nNFQ+ zdg-ATAM8#qy7ktcd+Gmxo2RFob1Ktm`g@B72vT&KNvDT4atH#ui??sz?)$ypd(7W5 zV}C__ev-);pZ^gzJi`qqf73R$41?}X$K1-Q@7z`n-&rT$E^HOhm*aV-*e-3A)P2F3 zYL~al>b~eqw<}wf_NlE?>bd01w4d5~3ingH#@4LJ?VrZy3_fSYIrVf-Jl!%cX6SP< zgO>9r+v&4);hhXG^QliD>At!33^zA23)7#`8jg){+Hzeluman2fBib1r@GP+Zqwu9 zGb0*NZfw54zS4MmZTWpX&D`AFT)!zSF66S^435pP67}D>wes%rMtCuLxzX-Af!(oW z&}ezG&8@(~%d>A=z90d&h2O!1BAmG`KI#fTSQWvZ$NlEGmCLb}e~%lH*)n)$%j5>E zYw|2vbB`>1g%^2=e@{IyvCipF@>_ZSB0q(HGiZN`&+^m!3_tsz#Lw}k(Ocl()xGD@ ze?j#=gWik$S@ah9_f+q5=sSg;OAiYCJN$X{l=w@k=e(9my)WQB#xJ9HiWgwlIe8k2 zKK@e{sx$mu_uRX}wP6&&+V(x$WiSV8I+pJXpB?Ub%x-raf6*3hz$~`Zh8dQ&u?1d7 zxZA9)tWsrux4EapSw34*FRMY0z4J?1(+DL?jRAC|8%=VRzzHpT& zJw#d47tut}N(vo=dE zexkD8Rm<%$-0;-)RGA&HL)&qf<9P?H+adj;6W8fTuOn?M5X0Rg&8&cSo_3LWu85ap z?Ra+u3l6>Hcwnb7ZzL?WXszlk*A8sUu|F1)VeJ;)64GDN>rgFhPoWJOnf{C5M~SxG zrqksDf4T=S3-ph-qsqFjBYYfNOe$j;v@dMehD#>G#J!GVH|@ab)l^$ph|WTo#qkJp zbUec1+WO|LwfaVV@B+>?EKpm8UGV*ZA4s@oAb-L7tPVSbIl2NBi+aYeAVtuXZqrPm znyEk63E5_F(>FQ=JJZiJ5Iuk*29Q`jNAPQge>q<`t>_^mFXL;NhTW%TNnL0PZ-n%k4Jq)jO- zMDvDOC`51Yp3*a%9ghLwnPE8C@wzUzWG^%i4&@~bZx&OQDQV06j4V^ZO@PRH-}tqm zf9zt`2dmdLc8Ys}_Q27_!H?ilLsZ4~+md;QF56CkHAdDNV$#{V7uCzcYVhY``J*e@{*B z;rJ|69{2J(&eGp1UJjTa_ZNera!Mk;|MJ|R?Im00->@8EcA8g zP2l=)Pq++Z0?-L3ji?9WO(IO&b3$CMKA}%V&FWAa$pnlOnZP@wopR9NjPF#+usRMz zDh|Vd3I!(_$yj_(1xXP!YYQjDV!~0Go0=!UMjat3){R7K&poLct#MSye=-;^Ng$dK zNB>v?jfOV1icB#_1JsfU_0vu-5Pr&PDiphj(n4B0jtaNw7q5=JM^?7LMI5o{*zgK( zXCM6Vq~6gHpR9SbeJaSO7eSVR^wG6&(a~V+xhW4hIpK*|u4c3qcg1<5bv1$CUNSPa zVR91L9bd@BYr8<}QS;nte=QPJF0NWZb1&L#v?=(kvJS%82nkTWOZ}aQ0P|5{SSg52 z`~r9|0z@F39@gD)tfo*Tii9pE9;64KTr+|5*E2Cz_tTBFdIVB;Hg7DB(Z{sWYbVa^ z_VyJd0*H#i;wISl6(CfkQ^f3mAifA_S_}mGf%PZ=xk~zB@Q6H3f1dQ>2>s}=9@@m& z<1zKYomin=FJN~q2lt9-?qD>VBQ59D;^t_IxfH?ENdj#|y9*!#@kc-hmGi;P29>5> z1|<=L*>PP5mGm-?&4E!J7)v+6mCC-LIRX#7t0G*#D@DWdo3=g3cZ1gAk5%YAHsu>} zG(VmR^W6@-Je(p~e=7J#AvN2!I`SpD%M(h;Fn1t&zMNJq4Ha+myxZ=8;6ettne^(kngHiHwTu7~9sJ_x% zk&^sa4J8+ol4T+#IYl;R5co4kIgYSz8%KqH;i1vbKQfF=KP!LKN9G@x{p@|?Lguy1 zk%_TcO%e)34Hj~bkIZjO3sPZ!=zNJR8i99eNvsEqw7QNu^y7K40^SoTW&}+COR?>n z#fWbw^e51$e@^|tc7IFDehnGLc<+tSQ zlsIOdB?m7VWiw~YnuE)eoi>F&Bbmf-%3)SB^wf0vFrD_)PbPS3VDxkM4R~t_KDy6A z@z%zjaOdP#YD>G5Bu{)?Wj!tB>}_3>)VxTn8I%zAr!JU4!0Q+5S( znCGHpp>d%~a}O0+YIWV_u!Q%-^6IwMkq`ZHWHBA9=Xe&MoB-*7tEzT2wid_w$x75P zFL*#wf0-K29LrALn@h*;dy5mQT63dw56!ijl*5wjOl9_QBBTkU8^rAqNtY^ z7<7R|HFk|94^g%`PtPu-frsNDRN3mS)fHvV1r`m1t>oxwNQRJzSic&(LD|_oiy&`l zsXPLUy0G~M`{hWp+U1t#%`JiOS#qvAp%-pRDq_ey4W;{9a4(pvvN^r^s=BPZ<`yQ% zf51*Si44q>l0j}gKOC?C(6jjb!XzoQV4f25u@bXmyNMXxmPk1%WK5*pwsytU{f^k3 zsJH9U#^@?nY<+X!#TPXiFNeBahdq5CX->_Ra;yM`Oj8m}nyMzFU zvFg~(rJ4I&Iz36G!M{B?;i0qxjKpKp(k>e%nSNY|;XSMv+DUl5M=5wzSJW<)$cr+K z6gE;sr%HW{@MG2Zn&L=fLWj<;gvS+`VeMF@R;kc(vfi2Y`TuwRH=3t@8;Riff11a` z_R^Tzj95T5w&xfUWJue-C23a-A;3vlVft`a+;-n&b(SpMElvAEVW+q%{OY*&LGiD5+P;JJR$@zJMgYkS~Gxm(9VIujc-$%3#!w zbM^YBy4LH*W<7o`(+@`!K^l#)+-S5t-gW4{(rA3twH)13Y&5vnY&7J1f28J%u?6G@ zabBWSPc3J-Ci+?Y9IfeP`Z2=DU8RJ_|^N$USWLH*Q4 z>$V&R2FTxW@nTroAltf4e-Y+4DVXX)kt)81Mg7}gc;N|^5@m}?MhZ)>M}~is{@07o zDG95XRKls46{BLz;=6!6?~-x;OPqtkzX0?aFb8;?U60L512GWC^S#@TMMWt12woOx zuSJBi)}qv6TfrcN)e}{Ox@V0&R z7y}77P{5o?C{Y1th@%C2515Qm@P_+iTPYGA4jm zcvV)s)_7f3hv2k!xe3kJ$kEYqUMNS$IxltVqIYE$-g7k}_O1}_==Whmx(_9P0$;S5 zHq+J`Z;=1i)IB!Xf1|%nTrzqXWTJDGb*_8;u48sJ&-IH5iyP|UaIUSx3u|0*pWO|6 zw|y}h4{kEY%ITYWvhF~LiPoi^Sl@6Vgo#2e3y1?MVHIE+!4LR2UYerFr>)1IvD5j= z#qC)smxVeHgKa||0t6Cx2pfo?81AmuZ}Wg?|9G6ed~1*#f5&;)y!Lr}d%Jsw!;1um zc!RuKf)q)SAow@{cLWGv0pbn>IUqRL+n&4IyV>1i&n$pLW+jylmQqe2GfLvBM38-_ zQWTwKC4R_qY*#6^e>s)MFDG&)m6T|!q|k9bU(d`w?jWm@RCa56dV2ct zb@$ibtG}Kl{3wbk07k)^sdhz}V<6pukXXXGdzx0AKJQII8TU~!m# zoh4Y(9;t0Jw!zy3OWC8f?Z$SBr|liJoyJaz57@hEf4hy{6wlZX)E+eUP<+sSsHPh_ z#k2OqwY|pP+CF1nZNIUf(uV8yn2#7otRst$7>{0&>P1bm z#;ox(%eZP7mUtH;}perLwwShtW6nHwU>>TYp0FVwKK*U zdiQ|+O6{z1wsy`qN6!!1=W8XS1Y>@|xL{p0e=b_FwO6f6>#{M;_OOSTeorxGEM@I7 zdzkHIiFMU@%}T6YVf!G*>((1qitS%j3|r-l#Sh!**Gi0|1tO zZJ3VBv1>QWRo9$raFauYm3{&uhXf=85lb>;CIQiqVfYk3bE5260Qe;54PF8WlBQWN z*DTZY)23N#u%?aijA_2zEZgGEhQtp;O%$}ZHMwn9XFu|0B^vDF@(SMv?+(EAz5+o~ zre}aOEqZg}!l^fK(k}AGtreK1f4S;BPKX(f^aYwD2eX*w4GTu6QHOTp{%|m*!6*>a zenAZKMKOvZZMX!WLUj$hiB$y|OV-T}PKdNL!64%K=@rMdYFPP|GOy#5X#T+T*)tc- z(~}dYCNDt_c(^!m;@o7AGVP~39rrcIu}z%%*#=uNVSXwL&H57dqY%vae;ib5@nv4E zyBjfov;q_6T4peYCRF8Gw_HC{biRu z+~nnD(`i(eEO$fkb0?ulb*@^0Rzx4OwX$1TFc%t*i?a!!sh7F^-bI+7_kIsB1qx{k zuDk5VFm&GgZUSD!ai(`)e|>BG;eGoL96a>Mqs6z(>)ywXjz3!-zdbQ-T=Qe)Cab!e zP%jf;;QI%a4(eS79%iVP#+02Ba4Xe{Gwrx!B^Hx#rC4lEotJ?-#UVX$Tw+P!P$`I~ zAwB?HDg*IBh-cwG1os@=^T(0C$JsF4G4BZ6x50fB?%UzM1MWNFf4(bt-VOH|Ymg1F z2dp%N1MIhdmSn5gk z6qFhbo{*+$#&&2qe?`wgS*eX3Q3_C5O4%8uAjQR$T~W#l>_tl1EovnQUSbn>GR6b! zHGpdmgTGAwAe=iWFH#nl(yWa$9C#}N| zDHPKib^TbyhE;UzIwEGVVppxYTkIwC*Y(+^s{@t2QDv5+m+LyLCSKNIT>+(RR@?@s zDrd`;rJH5WobgJdwhUZjwrW@172PhcSX`gA+?$qF*Bdra6{v*ib?YX?F0Qx>P*E{W zbxbfocxbb1f9p%u%FPC6I?!=gQZ6h~q%c}q)z}A@4-33eU zqMD-C3Nk3Gr><(fVmFy}Otd?$U%&1&n!I9}0fD%F{g^&&xm2HcqX%zv;0dCcCg(6* zo0=1qA+azUg64*mIm=cB35On};{;$$%{mNF_cVVcW`I=5DW3D)%~ z7(MG&f4R17TVr~4PG4y>^_x{^0jsm>0EC5&=w~f!S)Z`0H!J`Who0~PGhs{N0E`8d zVkNce`~u)9VsqG5u?R3RYkby*?jJj*FB7tbZ{hbdjh6nXezj8se}{uvn!a$(oW5}K z?BvXt9wnJ)CnqmXoICT{nO>9Z@;9YhOU zb+u(&O;yL$4_n3g;uy^K)oa(U9}!r`Uqya0;;t-1{^Cho)vuNLRp5!&{7l#}l%n_` zW<1)Tu?vfZJRv$}Ubr}O=0a)unm@Yr=uG+AY@=cO1HfK^X%e!Q+5?!TdwQu+xBNU| ze}LJQ!B+t;KSlH6RBv1DQMU;QaTN#(AO(ON7R~mq%J#v(0nDy)-9Y-=&4sdK28At# zVgv!z-rg@CML>g4AYO!(w9^1y_&Q^{O{mN!rr%Bj%$wfeVEftd$*C+@HS0YT8aLt` zc{pbn%wjMH0ZFpAR{V?@EkWRX724zvf8dNA#M+^ezhMO0X%IaESlWdyVK9VG!*C-7 z5(z-=YlIS8fWzO$fFodWZn;ffuc(0lf~+J37f3OZih>9VI@k#Q`0?!Ha;RRqFb z$~1|K0th6-AHm=g5PS-S^*uObgK=4be-gtV#S?KE{tAWgZ*T9TLt&3LWd66Ha7FG@ zJa8gThRTO0ElO)Llh;Z4c=wk>e-@9wmn|2#oen&2p+RhuTeSv|)N*}A2OeHUim$VV zi}btf!pdVL)e;#BrCFrqKz^oPJyj}pNavZlK5x}6Ube?{P<8Z5Mc0V58A1ySe`Xo^Cor{$ zMd~`NHy{DPfaakdAe!awD#QK;?2pK91KDne*C0u+Sy6SMX`oI(R2w<7bqiRtE5@{9 zA)ngRPXs3voLJY`oo?K;psumrVZI4$wr`vqy#mY^#>&QaP62u2k@oc*Wa%A2yU|!` zE(i5&f~9KPoq=l9AqW-N7N_RTr{VYe*8)oVcoCl;3VbtxmwE@#o7$&))S`kXO z*Rk5`0m`^5UFdrSf6&Eon&Bd%SqPMEoEEW~qRw^X^XGI_G9VjF3sTsqLQw;j6pf1Y zUIppbvTBZw=+~$R;t@6o^>aX=SzhK<3*~X!Zrs$JX4UPCaR~9;O~^4JL>$vg*3HfJbS4fa zjD=jb)XsMB9G6x5K^@sSXs%759*2YSdcfkJZ_7v82d9822_4buf*iEXuI7&E?cr{X zH+ZvA;LoEBkq=BrodSeQ{n7wQZE?{TKM8EcLTeCze>%i1e{h=K1%@^LB&H=UOq0=w ze-xjx=IM!PbNY>GbK>%;GczFWtvLKO#9Ni{7Gx2q!k4W++y&|ZJt6@A05KS=mST#m z$!WOY|KoJLAnS6D#Ey}lD5~;7Ax2M9@tEjMg{F6aT@@JIo>;_*P1|rW-Z;S z64f|_vwjHJiikOf0NrR-e*?!{^V6>(5fu~ke{t+s8W1`V;e~h@6ZE7b9b!rTn;6{b zB`?1V!MAX7$Y7U1*)RQ}rWWM(&b~qKw6USShot7c0SvT$*$-2bAr(3(qtLx5FDfmN z{&3Z@@E}fFD?SE5gX|0&2t|dLBBdQles`7aaO2*bf ze}a^yw~P3e#WC(lYblmkOQSH4&mY6O2H*mkv^dC;ca>KB_CN6AYeVbOn`$f3O14s7 z5@5TZ5tGK;k0;P1Dj-SRsnHF*7!dd=Lu}F-B6JMEI z_LG%{J$4kZf&KWl_P8GYdiA7!Ygbj|qTa*l6AO zanTQA&se(v*iVG!cMZ$?i5lqs<$2IuvF(0RmCydq-K>2yxpPX!`Gne=NZF;7T-M zovdku`6Lgl25E~be>zlrNx_|&+DP)RVn=Xpgd$3M>Gv_XCWU(DbqszX>UD?2{5b@p z0Mq+f0xpe8rJ9UoK(*Y|onYMW-yM<-L78OIQWC(EQH1)+eOmTYRmUU@Vu$2Vg4)bY zqD-4w)xuWybhXN}D3!W0e?0?3xT|DvptRD|cf+zAX&?}70_@@YL5F)ik+J7d1Tanj zB6Do--U7%l?*r>Uo+ZpYet`?|eF_Dy|8c1I$^6hv-k-Q+4TC0tr0$Vx(!!R1GBMJzvx zYZS&Pj8m8h*nv`-+DHowdMjF9_p=9)7{LE?)aO1Xk1vj6A4dpcATU~J)(MO|BmL_T z7X*kA{~Cu(1;xove>qFlWuXax8yQ`s4W1KuFij1EXxrX3cd}uJmdaOe-jw)%*2_}G(|35IA@+b zJ#oprGzn5783p+7;26Z_L9Jg7#I0qJlZD2-5f@wo$B7SPy;0?Uj5b{R=i(uFbr$Dh z6vrryiydU&4>gz(MWX+Qn?$d!_Ei4g5QI4C(avT?8c7yTLIMYUmIj^4Ot}NP+$m`l zmZEbolwIdwe}I2U`3#_G{TWyFWaI{`vKs?=_bsNb#Tm$3cR)9EVN$RxOq}Y1)a9ul zB_)I$%y2=c_;$HZ2vh=490Wrrs&s8fO9py?qO;N%g}bt(yatWGt+0SzseZcZpc$-O zufP=IXgxIr!Hz>Xjj-b^%_H<#gkIq9-&5X3j6_s&2shlSYg_PyM4aZQAJX)3G$rAd;|o>@ zY8*iw`x!uuinb327K~!kt=h#d_XJ^`aGJ|#o^td&=5J$bwc(HO&~S(qje*c>H5(c$%~0yE6@-YV)(&z2B{xEz&AZL<{5gEa|c%?O!qX@TR>AA z1x;&FD}`1Pf1X@tXzBa%Qormw4$1HI5T_%33n2h*E7CM1 zSnPPjVpjzJ+7|K|h!c(@op0w|bU~Z5c$B}Lp9zyD!zvK{+u30CjEmJXHA5yWe@Zzg z)>FFaKq=5>>TWxI8RHWak2T%7@n_ygf#<-j!SsPy&^&SBfPy-h-WU<;Tbk@^!kk2g zsH0LKw)m+z-nean_T&;HN*+ zh%w5tN&gGxxrWHFfasP@%h|LdNBN*3skDCTWau|i2Aw&hrCX%dS_;bBRba~N=Mf6{%>@C7Pk zM^C%HBdB693pfw%3o@#W_K9Y#U?-BHcSpE+ zaN~*M!DLfJ#U&EMRI2FJOO$E-1yefB$ep}6IA2JU0jlsW@Lj&LdAf5uq_~UrI zz2~P793PVU2q>Zn>i8t^`%=I)LFwZ;lsP|1DzmTyn)nX4;H5>4f2cPglO3zYaYw*S zfclhNms%>QQYlYeOs~qQO4VP&eFry#p5FX3GH_Q}y1mC8T+A}f9rA!oFXmPiK*E^d zqojPvE$w4kw2P3(+SUq4%z^tM%ElmN7_Jd_n}`0^$yF7eKs;UC4%ZIk#EU!O+J&{V z)ZI)g?jdrg-$j1Wf4zrINF5r7gr^g2G18W7_olS)|LPrF#KCGkSQnh*egRs$tg%4X zrQPjNG)5P)Zuexg6hqR@1t5bV%tf1-yg#m$QS9-t`#y0&%nO9M$>xHfytw~V% zX<^NxQ=EftWY7|+>41SZs*R@8>2N16MC;5(Wxe0enm{U7e;tbzyN97uNw~KkZ1wl~ zYdH&zrp>SgVXqPHX1E6zu2+!`F%S~1-U;a%jiP=9%Wd`s>#BCMyIUti*9IOLQaK`h zdw*w72i>}17z8)cQEGqwfOF)Se!xL@@uYRDVpc(p^#@I~@0&NAI{I_B<7Dl9aU;`N zxgeL5p_Bi2e|*S>9?@v*tk0v*3+_60c$c3K_o5@mAR*zN!{9tpiQU3}fOa%tT|nJQ zu<5_R09Uop83useMz!q36t(8e^QVZ9&#Wv5e#NTYnD-L_k@81S$}$oAyEmrJlTwT| zBd_K^hmX{w1hj#Bul&u>{kU(+7IH{_O3qa*fm%i zsLPg0WH8@QrlvNOQi-m896jUtK@1L2_f3;EDyHdYQE@Y8R{{?#ZV;I^&91`@rpdoZ z({kqGf5l4|W-gdBColQ~UA~U|O{vFNv>Ss@V3B0FK`wUu;tuVi3!^S>0Pzh>&V<;7 zxGAi=Xu9QX4A9QSV;Bs`p{a=^IFiqh|M1&#Fvx({g1}TP+YbGW4o5RWlYxez8MxlR z1py52j$ADBVJ4Q*G73sINfF{dCVim9Xez{nfBdh5dlWfW07)s8-Ajjke)K>#qht?e z^N<*r?PR+^Cfm*8@PB~96uiwqTAcn5vOV{lmB_3oC-%F!g{GFIF0#Ezz3CDQN*aoc~LZ|q9Dtm-Iitg*=&b=L2WYHg@ zotn-fY5zl_oafQAD{zDE@^&VIIZYBFARO?J<2P@k1%jC zXku^!yT7+*goCj-S9Q^~?<#Ere_U&C1E7k45+?;*!FceS*!k^0tD__h1OH77u@erh-Q*D?5Q4E{xAPzpU!(dfQi60SKU8h>5t_C!U!3B=IQgp>r0Y8&nncq6nS zH%ca@LGnt?;4Xoe#$5t$0KHPZVf0G%^5~W770@fy%QoiR%;Ml$*305Hf4e#44K;2B zDMOT!^Kua8y%ZUQzJy!xWD@!%j4c*gsd~~KW+)=3ycFadp?!&M!L9@_h(b{9aazqJg~Br5xTGvE)9pY{qKRRbX>n!8_@ zX}HYt8e4uv|M*Iu#kE=-#InoMh`@(YCMMOJ} zx9P5-{c;4xMsH_2&=XRoyBHnDQN1VC{!`Kxs=dlIK#?a=#fMmmk6~<4YpH-DF{Z7e z=Y~v3Njt`X%7~O2A!VG9GC@cgi;yxFAZ0Q_%4C3)h-!I8TRrX9eo3R(rW%Yhl+!ts13X$$Y6LWq<5l`hNsUffEKVp0pO335xRqo0pL zPijj6?9~=yOL2bMjV~sUyfWpk0{E&imAs6SRKp_0G&i-DUPmmCA-3Ocqa}MC#23KC zOiQDBLDU0{KZM~wkWW#3N#VbNenaG0sjVwv36^NZ(Tp{5o!1WMZI$RIKg=4f2uKjQwz~c;y2XRF%9)jyI%iPT&abG-wa9@$? zmo&+JgwD@@e_foP4@U}8ev#sXy<-J;U>@-H*I=9*Y{|wiuEMqE@I4m4Bi}F6|_NG%)O&iH` zl1bX;f5{8yru_jbVbWoCkQFO$H>=ztTR3XJzfSU=7-KXAq;P+W+ti0k6T$(&NS(-6VP0UPo(aUGC+-I=!H2c+wXwAh;XFd5er;ky8W%?I(gqGTbasc9vxU~aOm ze;_YV(BF&RDQQ*tk(Np;p;e{-uY?ws@5Kul4V~XQ^{2xvkq<#Q(s0W|6Jpc{$aj)T zGM3RsfGmddG(p`QiizqSRU_bmfNwvB=x7iyTVRmvdB z6eD4p3V%0}FMfJ+oklu#D_mEhU(NR;Jnz)~7hB-#pF-Mhn7Q}I2wxH3He*?ke-haB zl)sD*CuQO9)gxYSqD^SeOO?Xk#*RKK9{gcDiFo`zP>X7p_zsKv*TQq>_>Q{#_;|KZ*v z*^f(UYHO3Z4A;v`xIXqu{pK>Je^?-Q9haB}cQlpJwxGY$yu#5Hm`&8#YXKD!OR_D_ zFbA(g!wyN}3l{mtZxZmSKuF7U!TvB4E*jj3a2Co-Vi&RfK+p2mJ-z$8ErfQ07~@Fd zxz4So`CjilbTAONgPv6bCr+9NnbM{75yiX78pw0Xh%m6r%XuWJ_T=>+{$@brhw-62uQy<7oA-dki=9^ z1KKCA%IK2U%GWh7+sca+FK?<|#+mU3@WMSmX9gv43geE!Fh{~mI-Zw;D-BnUdv4Op zv)HP_JufdDCcQyuH^sl^e+{ms(Z9b{0O`2^^8A;*0#m%g+5k(e%Ri^=lv)Kh;}uqA z$XjR)x`Q4b;EkaX1vJUDH|XWPA(p(GZVlgl$II|PceCCwNRKK@-Icuzdg0e!_wtLX zOXmPU0zCmwAa^?_2>ukM45KGYYsAaJ(;gU?ZS{fxM?kp0TL75TOkRaD%YQ{obBDbV zZvdW-L#x|XL8f&_yy2kkZA%KgG2BsTQ)UBql`9~xg0#Jzr0q`x()RG$4(xp>JJT1A zGVeYClX0#wU#-xYkw|3>j@oybx@fZzv|&Q}j`BGcp3EooryVucxQY9Sc=)eZLJE(s zMn?|2&dT=4u~b)ZP~}Fo+=4zRtKuthPy!g ztV-YR060iGcVGbrM?W2GVb+4@Dzrlbz1`5JzE>h$Evv*yVQ z=g(g#nWc&IlYW+3=@@4d3uTA4)CPe1@OQDc7>Ai*d=lF@jS0i%=C2abe&4cXaqPOU z0)F@@`qEYDLTQqt6MvIG)GtFLf%6B0?_s@q`OKxsQ-Xy4SL_LH5^aqBzouZuaP*Cb zjuo0tY)~X!hdC(Q)!P>HlbD0frfFnt7*;mZZIo0_BHjK162u*vaJ~uThxm_^36NW3 z3Y|?;V(}j-N$szdl=fH30LZ*_MvdNR%8!*;@<&P{8AB^bl7HNIB1xn7|HJs8kaW{1 z&1&fnHAVZ0rp7-2o)JS=pWKH~pE!vBffmOY$TJ@#V>w76c-s%%?`veC)thYUWct?l z0i2|~m~hZTqRFGt*d+3zK`=T*iWXB(UXz$`{sk5Q1b5U^Tk`E3iovMJBf+~O)t>>P zrY@!VTY+Q7E`L{Bi!nSRC#{p3?`dZIlYvKkw^K%N%!FqEoc2pypRLkaRrvJ~(gkPP zfyaj(!2R^1-cyF zBDX6Piy2IVE3YX`aaB)RC2#F@1*Qdb2~SyyFCS%EaF5}=rLs8rpC&w&zv9Vck$T0` z>IzHYNn5BxK|7QeGl6fSM@xzSTNF{^SKlg+-@eu!xyc(yTg5h%UT@ZBE#A&G>q~WH zBB3VR9)ICh1;2qLKA{v?9NNEE)Zb_{d7!1BI9C?d(C{3!@cal}w@3&d(_OxTKK%80 zr0Of3@|Q22!?LrYR8gO{V6y3Kd+ySW|}^^QHHMK2kiLch-6P7lI5s9vqPth5zyT2>XK!z2!{}A$tZNG^sRAhwh7wdaY zTz@gy#RHKF?Etlh#3zczgMojHKi<1WItzuI-PQ1LjZDw?|4Ly_>i$Y0st-sR{Gn6L zT5Y9k7kT`0upi7o%&Fi<9>mc`y_4sp9e%8#SV9sgZIf_D<&{HqXNAh!72?swJl z`mOn}q&377VS3-Rl+|E4cX?2H5}ty*=w3LhrbURk|>$slm~QsDlD zLJ+P3A?oS#)f-(R5NNGJ+`_$*ay3|C;u{pW0zxNAyD^U|t0<88Rly$URB*@ehkXEa zB^O%M_xSnV_vl%;q4KjzkXMxN8^>RO7m60RJxj5ILMa>a6spn|eqeI03H^eV!GAFa z|1*>>2D%Qri^Hag0AR7P@f2GUAdWByD7|yV(NS6WI?)c`moU>H z@lFz?&Xiv6cs&`Z$VY(Z@i`wpyOENJpXBv3Aa&TbXu%=3Ch^V0Cpd2N^8bRJ8Kknk z?o$~`3q7Mr>8EXP`XrEO90T$z4}XBc?|X_9gbyMwNroTnq|a*l17`@ugYP>|gx|0b zIZy=ibLMQ>>G?(g8c2k-2EDTVWaMY?ghXD{A+vJmO915UB|a8_p8_DdMut{jBT(^t zjyOev-y{fR*P!dGT2*u`q-nuZo=P@q7<6%^oZWT^Qz2H%mzQQz7!3i=OV(oTf&%Tj>*ei}a} z%4YDhUnJ`ayB4x_K{=705s~n>hlY$k+CYfE6|M1;$HhlhUqJfz{?9{@={P-g{R110 z5)ba;d4%F1BjT}OkUmDW&^X$oCwI{OfkaNusG6|JYFPzBHTQ7||7Ym_aACLdmrr~g z=qg1zIJZC0le@B{Mzout691e#RMLjIrZCjQstu%Vt zmbqH39;9sA(vT4;OB%1z9I~2Z4`-%F)jgu944uHzB~I?LaPEQ)a;GHZ21vjK@&FRt zA-UWk*b6SXOLDnfviYO`NiGi{27(K6iy*+jYvudC>h9@z(B8$7n3}HYdVKZOufA8+ zfBZM8>u(4?mnBL5@m*DtZc9umN=#--MXoAEMaE~fq82sy)+&jrUesmjaSn2cO0t?N zrex`kR6DFm*1%et7i9_m-<6ool20X;w9-%1V(Ok$Q|^kM28)CAohfGMd#E@B->FKr zI$Rv4(FQ8HYOXj!&uMrbEsnzTAj?$te^kecW3promG|;rg||bM@#?FS8f+tK*?2~|klWd&re|suf zC%5w3(xmi6E}pVZQ@{I}{6r0&58(4vsd$DR1bSb9{zdsAEH9p=(ifxBm#Fj{mA)L6 z8dQ3oN?(aeU!~GFsq{6X`>pcZ)*1S~5PZJ_-)FCicN4+$xgh_|SpIxacCoX}){EaF zJ|B+tA8+$!&<@AzF2k|oc^v=Ef7sZ;creB#8sqhg5<61-Hm&&O;uULf>#B8aTP{wr zqwI}mGCRhyPqpGykUP$XA$L8yEIY@}L;g+n7UZV^ z(QmU0fanWPl;Zo=NcjWnee(k-eTPjz=>(MCVBdsR2kHMJ`_?m^U1Hycf3`Q7Iwu{w z{D=Qrlce-bhczmevFvc8;o7woqrNdyw`y~9H;j^Nl#KZsbH-w6Y0av!yfMFOyGB*C zScli#s#p(8HP2YIpaU!Ity+fbm1?ZSnNhJ9d5Lcr3k$AWSy%|$xs7_=;hx2exx(}b zW3k~GHD}%MR!g3-ZXJDSe;JHB^}5Byjn&daoG380*Qj^Sz4Qz04%wy>9hfVhhZ|b zcqf4ec0KAd;z!543}g(fl4F#XfXI?(8A}%T>}7k2o>#4kXNasCzczvrHO@) z8@vKAJeOZ`Y96;2^HJY#e_#jY9E5)Ng& zH$Oj1%z?FcgUx}=Sp-fyHGo?U_79-n_N=9b>p4~Xv9+*}7GOMK0IC7S-8^@@ffAwg|s(Z#XjWNZ!!`lPbORh_Fno&;^#;WJl-HB7D*4Ni#12}wzD#lUJ zt{X4S+YZ%4h_q|004y7eKza4lTA7_9{Ctk~#g6O`mTEP}Bi6bF$ZL<@JpB%QkKL|C z@@eXk2ZTV4rEUX74h@tHJXlgu1`|bLG6+?L4?t02e@FFGrdcahEz|VVrYV*jo-?NT zpi!!bH#-s^hT4?04h1~?PQdB!v>8#~pkB|y=f?^pDVg#>Zu05|2%hN~c+_23a?8U) z1d`M6K37B~t>M`f{Jslw^!M~xH-F4}`W zTR%5@e`{ub=Gx2+6ZFKxGv*mT8$6gdr{>?Ane3@?Hmq?rsIer+I12`!1X@YDhTI*8 z2U}`N_p{$oHswvFsWjzZQXXi)XTdaJvywmU%WJ;;u+2)IgTzl?MCxJj>zD2!<8(-L z_*W!;9N!Pl%$kK66C~-wv+>M1Uxmr~d(GH;e{<$m@GhuGGl0d6=Z0b#-E{r*XO!kpYvaiSP!d)Ux9iESE5ga(xZ5V&k?Y`Rsgw#VBwb6;Jv_BLe?LF2Tyte zNcUtHkbp%rFBb#;<#2+;ZP80@h8 ze|%v__Yay6OBI`e3^#>FvuaDW<(gH?1MGy&ufe83j2@(=Z5Q|&&ehLM&zZCLW@e`f z@G6Fc2oC&3NPZr1kS3VviY}*QUEZAo264cXO$F1kYQhGGoQ5gnv|#S%Z`YUu_C=ck zD4-WNj6ehRQ#1MNg`I>y=5Tw(#Jy>De@&2I!(Z)3KFq z!2|hFQdQo>RaKf2QO>D}t)Rdn{n+nuaSTd?vfSM_) ziQ90X^=C-3e`s+~#Fi_pxMR2%BWi&1}j1uTY5Zdk9TonQ?9Z71}-?w6UrWNK*P^RWm1$0iKb@ymoWgHD{!m91M z!uSzJj)CijdI3=BZRCL_Fku^YXvMIa=NJ#kctiDFv(_!1=Pw{A6DF#V*4)v^Li?$Q z=pEs7{!DCu9ldy{L*3y>`Dl_Zf1g1Dk}&g<=W%~9#yvk95R(@j@IxdvsRcdrWFK%{ zf#h!?xKIL1dPd2~imW`>k{Q@G;+g9Bs_XGq8WN*vkZ4hS4Rss;7QF2d>}rU{i2#jE z1%F0kiKp5o;I1jH>HJVrngirD!3W(W>+kk-c z&{1K9xdIGr%rzEq%U!8>7O#;#OT_@s3Pa`!LzP$2HfFd}p@918aa_Rc!pbYqMXk%x z$P1h5THHXbb6D;rD^3e}P>q_6Mj7&LO6JSq@&Vce7&LE)s9C`z#3it+Lhf9KW_!v_7 z&@LIb=dYi<0R9Ylatv5Oy#cRW=<2qpXkG_O=V<&ZH8uxkEskV^odAvpr~ol3x82{d zfM3(Jl?{XlTFSVa!B~z>jS0GeR-vH?RfcP?z+S0@+zaO?`Vq_Hf37+WSYPPPU9-`9 z3`9f`ZL18iGr%bSPCsm-7@b3G@<>u{%8%b?>ZEl40w7V^lAFr5%(G3Doyrra@pH-n zX%le?l5tyZ%3Eqv+Lrf$3c(1}ob(_YmSIi1D>!4Was z(lR=E=qU+@GcUNmFo8Hi7sh&2uOK2|qeLC8+ZDEi`vch?`a7kEj?DtO4;x^yVpa1| z3lh+U9p$ldJnzeSKT&d*Y#WrmhJ*SbI7+a0(NOT!idFM$rFWEqTwx{ynqIifOJTRgCk}F$daAkP0ncVF#iOp$|6m%6SCvcD7zYjunpl(^9$Y8tnO4bB?21CjEkKqBZ zDs3Zr#{hBimg1>pz-KwJsoarjMNNXd4k&y}pl}6j;(LToC{KDRNC&+1vIaFC%F?DP zOON+^gIgIUH`Q%L)V~8Qz7MEn%BK3UdRGdfsjv^8e@fnvmxVns4E^M`u#ZAX_df)Bf*3SSwU}TY!ieHlhy_}7^6*jS@|o%CsGQ& zI$4+#o{_?jBCPKBYIpFA5N6~V>2l~9;WqiQ^*UNl$Was6Nw{wBjdrWPG`dLRL4x1? zQBdb#Jc9uV)O`pbdk}cXt@QM)afLB%x#)J2e{|-b^r3O!;)+!RA;d2YB8fPFCM#0w z@K+HSHrd%z9EM#NH<|o&%v_oc?VjRz|5fx8utp85I1(9_1;@J%xM9W7$%Y8ZSkXIj z#)}7Ik%M=E5MHWaSMwWn%g+RQQm^?n1>}BInl4ARy z&3>>Q53qxfAAtI4_5$P&u@@nqhP+Psm)OgY9}Gq?*ej6B1i4q)YmgfXa);ULkjt`j zKr6=K6?Tjr2U>^OH|YHdb`sv_Se|mH*lEa(urmPa^Zw8sz!;bua}iOEYVE1;w-XW13XLyIk(CdFLdS8?}(>1~3Lh7<%oq_B*Tstijs zCZW??AiaJa@b`TL7>>vPHV&FHe{IJE?dL9qi4ARXKu}U+h+ga(qTv9+j0Ba|Ue0#ZzZ{00gX^=1=g7Q~t8-9XJ z)5N_@rj^|f{U?r&`%S7&gd=iv=l88E#vD59qFU3pWzBYh^<#=)9U%3ybZ6;TE& zLIW$}Jk(3@$);A;fiVi7e%Bi&Lx;hVCCp@QWqVUf__KW(x1uvc+m5>w`XgNC7Rl=D1QU|e}q2t>vyH5IwzJ~ z2Oxg_9R40>Z==qFoeQ?c)XeoCBaaCVtwU%VaI3@&2SkTB1;EHIL+iekp*LhYOc*wMW}=Q;iAQzTjX*HC6ytCvD)yM zvtIK@ZcSaAn*MNVf6|e|VsQS&7@YqoprId}e;42kW8#Qk3FnZGi4Hg)33?WA)|zSn z=U)2J;72GY3jCjknB~8P$-h8379er}xlPeej!qf>SD5@xqy}iYe-{(71phTA{|1wP zi^=a{LIKf#e-~+w-^T=T#Q!}ee}KtNQ{W3f}&bCSF!uMT30JwRN-|!M!I@C(yXDdb6f4b}qJOSGPv4B{55MoLBSV2rY z2>VGxKff6CbI==XDrImVVK)q6-~@Jq5}_$-c^5u}Cq-z(oopb|Trhgu*ePaF?A+nD zXT{`BHj+E*_@)~vzZ0SCH$td^o+W<&XcwgTITHsq!Bw;?CZ6X0X)QgHPd9j_J8v8h(U{|1j0h)4#}9zW|wjyt^?ASM;Z&}xZdWkJA& zxaR938~`p{qgs!@E)HFvzA-g_Z+6POe==7%QydIkW$3=BTq}^r8_J86-2ceL$5uEn zcKqieQK6<4P1fKus^(<<%kE`}wIQkWvpF&};{!Bf?s(3U6P?S8h-5#%AsN*8ET&Jo zc6LyMf7DHo5+~?je2qb3@$sgN8*DDZtr{b+RH@elm1fOaaXcIN&UizjKov5!f0%Ap z>85!c97r;dW8J`He<=(Mp~KTU+%2B^H7V@K^E>kOol%bBjpIF2o+Y-JAgY(Zr~H8w zxPScDq`=f9qk)t#30nStLlGsmBwWefEm%bR!WVNh5 zdSG;4PR$MGQjkkzlhX6iTvny}e?4&)+|!ql{a59#IE#XDmS+mZShb>NC7>kvOs0qn zcsE7e(#uJzm4;e_QE6C@VlhyXvQkhl8`K*POCgW7a%_a+Eu)a%1MkP!UW&K8&Gy0n zekeWgOk)Sx3r`cpL3V*1qH>kJ2&EW{Nfa~8fcz`aHjKZ#!;Y|{^#2CNe_WpFbOSO` z%m!ngWO=AJ98pTK7oaI;<$@WVf!@wWrD45u>^zl>SR+BbH=*8JVJRC2m`?Dkz|qzZ z#o?4usv4yzRztBEir9#AmoOZ?un?TpFDw|&VsP++O}XXPotkSeR>XNCHRYw6i?`~6 zsIiTq=jGCpWjNv}tj}%9fA(#FXasTM<7qDO)p6j zg=r5+8150m88zlM>dpjdP@MulNiS6%D5v3Rke)z=nM0kype#3#f}?U=P5H^_o`$*P zJ@QkgQ>QyuewHrmnX8WLk+4ET-cQfpnENoe&@ys!x-fn7_Dyr{fA;L`%&qyUNwCSf zZ@rA%ymGgQ=(6l}(_ijqu?%!{lJ9tc_3%!1z`|3$M?$kHrB!@iJ1HmYSpv=*s z>@SJ~R{S7l>FncjWr(tif1?e-vZZ zp&n+%Dz>tCbB^w%Y}|x=57RnsnF&qiDYz9pI_3%)rwKyQRSO7(Nd+^3ImIr-;j3IY z8QiFN9?!qs2X*Ly{#tt?Kf4W$B>DT1BxWs_8kLBL^^&*hfA%#CXQ0Wi$CUoD9_H=V zU28BrJqHsJZLlS~z6x9GYh=seK(=_`@bNJ;4j9N4Fcl<{GIa76Ix{ZR-AVXq+oe0e zH86-M9#FD9=;$^NL^nlVW1bk zkq`JyA*r4ie|i`arD^{HZ9zJn8-+4Om1^7&rJjm$ zBV^GXsdfQ;1g)H)L)$+eg&V;q2hqHHxG{{+sDiz%*BiAGXeQJm6{o~NGd1YOddw1b zCk!y8Bc}U%v0{h?JY^%1!S_hLo=7_m69n?^t7 zz3UYD*R3NxtJR;PqFAvM&V|-2xn^z9LkjO3uREOWzHBNk8_K`Ov+baWEPX1`f?V>H zPeCL+QQYI7N?RH(-d_}ZGVvFrWxB)kG)1S_Sf)3X`uolJ!X?Wo3h{j!EnIqQkZC`~ z!X?DQe|6Y^p{Ch~G~;AG6*57b`O3a*g2pM!9or#wu~MooveKphjO9N>ES&AnS7e{L zv|6%j@l#*Xxb^DoPW*IUzK1pdo{ZS62OF*x_pn5tCN2oSgGBs#xVei%xcz92VED!2 z9&B0XbiE&zP&D~EsI6j`7_<;GZ$r(ILmmuwf6ebd%FzW8bdXad9L5CbjIU!(YlPh7 zm{b&3GyjWcuPI$rSDaZ-B93gjv2i4vy04Tra!lo<10lOD8V$yba0YK)KL>?6d z#ZsW2#G#J33*gK3?j869lK&BEc)S|jdb_WD>~Nyoepdnlr6lBZyLx0_Jnkc>M|->e zfA4LdE-SZQ`zeUIKF{%{BHuz>kH*#{yzPa46y7+(V=q(<9HfWo+RXCzF~?j5>)Tx| ztyv~`&A}O}ILjOkszw$nt*Rbdnp9lw{}&0>9Z7UhaIlujrru0|_yEZbVj;0DyO+FV zGvTE`9iDF{wgyNKB%1nG8sCBd(YFRsf6YJ6z*APa5@F9ukLMn@MYBL!KqGTk9qE>g| z^WeHS*3_Gz!~tMhpi6SXy^bA64KIR7h?q$yQf((7-9Eu4l!%x^zOms!bP9GM5 zQtT#vARweN8U|8XJ0M+^yaYVyfA|zxQeYb<#Wo}pC@}Gb2XXGF^& zu?$@_wF$#0&adE3M4^JgwOmS(bE+nfYQeXfRdY#-uYWN|_ zO)1bUJ35}xipa081KDQHfAI(Kn^|@64F<(+WfL!XiA6}n79kN|1k@Vf4#;at`yfY{ zZ;AF8{GXDUgvmeavko6X*((t~l9b;m5VP^uX3GsA#xhNg0~ZHlcZozOJQKeeCoaN` z^!&bnZng0bvHrjm{h$v6F3F0svSQa(M7%~9M+LrOJHjiVgE!L0e{|F@1=j*7xPI-u zscRoh7vAM}@I4;UVAvJ>WFS=Ng7`1R#A)9U{ru`&_*=3)@fzl}8`D#Tc|Y6v1G8dA z{ANltp`esM4CAza?`N8Ra<$~*ZzVVeWBDtXpufsrqv>9ox;1YWW(rfq!4IcyO<%u9 z8Gne%XJ+T8X9`zte?;$Qr>1TN?`}=~soT@HrY4Io1n;h2nZ998U&mi^VKozL@%M3= z61HbmU49K$_cjiF3X?OKoWtZzOy0&Mk5x`l8}UQ4WcZV^WccH;;NcuU6N!3~^8W`D z`Z3Y_G_e)Sy8-J5xTS6S87BC{DEc)K{h~u$M#d8l(vg0ue+n9vtnjNL@cL~)a5BVi zU2v~TKgRQS{f&&0k~0dPv1gTW4KF)G9{&~m8A(P>X}YA#_|YW&CmH=9)Ps+vi4ywg z&y}BO`lyzLoFXaDv+B4^|0JY7Y*bKjhdlWZ71%}%Pl zTqi^E)6r4ya6iv7*aCOs-8_q7dq>Bn)Y;&CyABKvV;@_755Rvw!|&*nOvs;9vcG6? z-7slQ$RAAdkJdZ-JC(L{l$G)+QesONusvlp_LP&lQ>(@eWvAYh1NLQ8@w73uDVfkW ze$<@U6HBzfQsGNFq!T7C)t-YVNKm(8qt2W?4ClWr8x7uef}$Lcb8U)X)CrbU1rNjH z@c3>pD7B6=qfUPUGm3*-qt2}$&1I?LASr@Do{ke0%iy=fjDq=hVQ?77kAjggG{(N|zye~L+4o3ejn*jr!4mCw<9iObs;>T4gP zmo|ZYRa9F~pY^(;_v^vY!T!Os!`CeSjI! zcfifBE>~Y7xt*5+B%Bx_!tsfAVSO9M8Riq_QJ*sE|I6JLUH&bHIn=Q{`ag-HJlRU3 zJpdAfiFbc;N+@CrFssE#C9j3aYHY(@wNZ@50fD(-iSVQYGNYnVdkZ|u&F$)4WO5J9 zCulxHa}68vu#xut@czu#*D<<&CHgBgoA-c>>l*G}3YtuOuq&PAiqSeE5WE@l$ji4$4AWRp$2K@calV>gcC+KM+B%b}<_ltgJX93OIQD?8c( zwVQun9}=fP-_}K?EecdEuxNok6x$2XhXQ@-LxEmEv_Q87+6L`Iu_}^cwypd9|KVIE zqbOFykmnqp%YXj!|KES1{!ttFOXK&3rs-Rwx~2(D=v8e+FY7v$jjB;L_?arF_-U3+ zex}Q5ep+RVpP6!&pSk3j$1^3&>d;D|T)=-^DUq%YuN2EgE?d=+l~TF1va7s{>zV54 z%I@-RE@!J_D|^a&bj>T3$31I(ugGoa<$a#9zTZ25(qmp~{c({;=?N|kq4cCEh+$ED zV2BY>x@VRTa(x%-qhdGe_S>2m6MODyVvlDnJ>~7&uiZ_RpGNDr*o)S^UJ3PQP~U$i z_M^Vv+k^TcVO-UY9{7^Dw5i8KZmkwXZsZ5GaOz7#HRhe^4=4qLnam5SkSl5g7>8;1G^hej9dgg!7;UmvJ|H90%$&Z}b=66pVd(}Pm@r@S_Z9R|o z*Jn=5+&Mu%7e6s0XKFW^A6>VpFcaNqc1nlh^xSIXg|Rso1XWOM*4z~@wxky|WUZq2 zND7rr{N5sIDWVW*k-ly;wGI8Q4o>MmehFO3+xUC>OwIOJ>Q!$ATVs~l(V~AF*|*%P zFI+5V&--3ggtl9$1XB351v?7R#k0W~zveTOZNFw;Rs0Bf)|Vzv+HOtY`H~&X+t-OP zH|(HRUA1eTN3+#zR|p>MR_)57S6No;@@h8iEVM;n;~aTHzgDR>gl9MEbx&5nYK(EE zTZudwPCjivw-`nB@bvNH^t^w)Fd4{&<6+&agvaH4<<*lXUz}WwR;tg`j`8%zcyoTV zdNj|I&(f&LO4SDoCLKR?s@{TIbrxAX9HM0ww16N`(_swrpiAvG{_xDSZ~G*eLBveh zVPN0(Xj{D1MNfJY#JV;oXe6_OW|upW915gbz^u`u=9OvybEsCe&{bI!%9&ZTp2pSk2* zICtjkxhu}pnRm~{=@mDsEN<#@FX^2o58}~!tRbsaf9}N@;`FJRN=JPr>#Ome9a;Va z#%+=AY6bZeO=ZMsP}YC&A+8qOU;%=0B3E}iH1F5cq|Dz211u)#NgVQOYfhHt^x=0HPwj@pV3bm}rp=OD^ z7)q>$RWOF?DX6YtF}K`ej#L0ekR*texiI%rp_ZWtzN>kDX|%PQ^9 z`xQIjQP7}8A4lZcRm?S+D5+;J1OPZvbsGu`?W)V*7G|Ic7f2s>>@?lN#AfVQBEA0^Vqy5ikYRIRu*2)djgS*$E30w1y(B^$yb zY8MH9z-|$PV$(sh+@*|j3gwE?bIL~YW0f9bm0s63w5H}5O&xdmIHcH9n`WF-y8~v% z=__=O@+5zW*(rq?X6RMtuYYe@`!M98erkgxs~NSlk|Oc%|f$?eds;mCAT16G8~yU)DPI3+@eFzmi4%X~5MPHeH?4dGBcA1p=6mizP8=1_-^-K> zJ(Rv6CP3-%rx1m55hs39dD5r4F7i~I3M1Ld19aMAn1^^lVJFYjR^>%f2s1VpgD{HC zdLX0NTE6Ydg;0rGYCznmK13|O#^ScFF)V=51P%)tgM;2oEnDFcVbD`fMlcL_^Q&U%^=+Hy`_K_8R)u-K-j;xzE<&T3rXhXc%;_ZM1+E~DlX{7bL) zEPxmu8VL3h%S;sXur&1`ah4eGhL;AZyPUDH63}ad< zuUoohl=Q4IY5;)t4V-8P61%qFLfu?SH+7NvOgVDq)byra9#WpV6T*yQKbAV1O)EAQPs#6Kp7IEazO#e&FS8zZ(733#9^b}{o0AW3RYJ@u_Oc!PI)?8E&dYkE^( zPjOveH#fkIHA9}lyY#x%G&Ufg-_~BzeqOtxeb9l^jI1-9CYzB}+VF0U#Ne|#-95$y zIPtC%1x^TC4?{>+H$!Da3ow66wB^{O{_>Y-r(yrb@8RaRVUNsE7FPkrXmI<(R2{i?ZU*2a@|i`y5uJ+)>k)>2M_kATWUV10jPLz_2x+6ql` zTibBc=xfW~FRi7U>Gd4LPrm1%2n9!4Kdd*Pz&9ISs63@^(B|FpRbWj%8hJ{@(Jn)6 z#YK2w3pE$+6ghb{xcG=1Yu+si;XDE@>#={?PI-0^!QwG~rn-EP=`a64 zCl@WuKnzZY2z(LqlXuUN$riUNR2%$V7N<6cWT22QVYLI%i;GS> zgmtJ_4+PezvqdgFG{RysJ*7d9Q?jQ9x7KlQxqj81g9D)u*ztdbTp{SR6iR$Xx6j*v z8s|E6$?t8)k2v2I1Jc{ACrJzPS=Od3ur-h00b|@K=woylS-o{&P{X=Yw1z+vj3_69 zHdC>sjxn}4c1jFpuOCgQMeKT;^z9Rdpr#(_cMUlTxi>bn8vN-t3;}b^CXhCKB}xnQ zqB8WxP~4(1NF!)z_#mn?(*C`LyK* z9bIAze~WIvO}Cw5(j54#R=rOrHOe+>oKI>L=R&1Xy|sUThtpA`5N#A7!XW}8XD$${ zJD*0bZSiOm%1RS49t>D@_^Vq-ZnE}waJ(D-&VQ+wr^L6?of*G z$joi$b-I_=OM1dhj*HjOXz`{#+&9SZxF}V(~7H*Ygi;m`)`t!Ak^Q`VMWaF z^3BhqT+@v5csB=YF$C=~ab^WRGn4$~|M+8WE28Zuoi%h}ZCm5td)KJF(bS={lm7=@U-i-TRX<&|Bc>LOEa$(_Wm(tg zibg~xDiJb_YsAA3fdC)$x+&zRWm~^|mC{voGVOG6=*e5X24|LD&QeChp7T!Ivk~!m363M*_ zql)KsW*=_tJOpU(n%_TS^Q%m~(%AHX#&&WE1-4ZR6B)~lsn)kt;M7ffw@*FvqKJPS zokkr3pkg4(c?FFH%2#m&hZ84Hq0P#En&jW?1W=eY38?;>*h#LdmH|^9ZU>}p*LaxU zwZ8)O#RG+2NE+jhcrdw$2>?I{eeVD58X{MQmwzE>T1ODRp+ia2^3P#x&1M?lV>K-( z^{=dDqI5G8SxcFvEMVb_D2G|H&CGvN9&cZsG1hWx`DRX}mJJz2L(TkpVFT*Arr*5Q z%tFC)>jhzM=+sWn4Fjrw?dB_;Ig1QG2Id?2CQ+AKFQL2(zftbn?YSF0UlHjw^X4n) zHO8PaB*&TlJf$vPWnqr@OmM7>B) z!_>1{_F>j6q8;xw^Pz>Z1;E*dpTQSK|5xj=LCxt|X&Tz!iVYC{P<06~{aE zaj!NX$V#UnVPk7o_w#OoJp74bGuQRk>BA|!GT#4Jbo-ia|EVROd_N#1StbT04px7t zaj=?2*qLQl!dTA173Xv(NxKRQ*He^TA{}X(^;14M1tvxI(8`InR+0n9nmN(++8Ro>lh_)HM{T0e+jrK1``+W2&6!9l| zt)|>zg?JC;o}?#y7;PA|pu$P(+0L4J>zV#FckKVO5y5I#=~;4j|B{KupNB!+LBr!L zoa{PWl~r|=$J>f5_v?L2b=8-&;4H02wjrC3j@6wGN0k&ar-fLrS$iZKnZF?`0zMRBkf%F%g!G9&oP(XJLJ}G_fj&nG^OW2Ah znU!%0`=WgQN*xiVe4N&Lj&79H;zU-QdE0-3KjT;UI|c)oas_wzTp4FyQ=dOyr{mu` zfg2gbcEVBJ3k>jN7EMHjl!DBsN+YHG_`%XIX!ZXE6?wprc$}40&2JM&6rY*>@OqP& z)P%I4w%VeqpQ+mhl}ac=KuCi`$if*otP!}#<| zlh5!P?AiQ;)|usRz^XE|Q0FIMQpfsT)TDa#^Mc`ZHVPCYKy*6SV59STg7w` z;f7x1#msQ^I83@CFU)3^3W&y*LUm;t(XkkC&fvd{ah!pPB75`|>5+iNC=GutO-{fA z+U#3JRkfuEd7N$*<{I249Z-^06mFR`GZ#s#Pvjgd2lHK-B=N?%`)#EGsoJ!At|4`*27k%?l3(3VMtn%R+;WjY%IL** zjeKK*yqt+khSLE9s8@*nc zyDSQ{s?+RyjR`-?WAX5rUx5lA@V#E0c_Q^RFIMkr8QY?C;7NUW&%$$`|2A|_3Ecss zD+TF`#0<_2mMig>>A=pSAu>T_8_rQJ_EREWQwV_uW|k@388RCK`ppPeg|$~hux&q_ zVsjGSE)jEr;|vb7eYcquJY6qx5#bq}cmjHy@H<%fPg^ZPZ`Sh1_K7-rk-Y;3#fn@9 zDtFf>tLX@n4PEm`@IwwGbB?%zu>d7R)jb8g9j){)nYUg1sQ_g@0-% ztOAjEpq~9A5*YFLs)vzDR3yL%9jUVD6Q9%-*`~_e+qX?Hdmxk>%bNateK zByjhvAvD^m!5^EDOEF3vE4Pi>lr(oRsFVhYULKm<{?M(9&vL7#>#3?Km&k&}^dkhQ zyDB(+pM9EEArOTD|Hm1ZJS!Zfz7whL!8ZJqb9<2EI1yzur8tz}7l|PrUc`&%n~l>~ zyG(=iLeOIfb+Rym6Fa*mG&J3hdta%ke%>Y|4Idn7$M@-Tf(*PcY zNa|y(-d8lot-GiYSiZlTF2;P9qf;$8=@NxUsrTodXW7x4@qips`iYXM?Xe#I2%axSMEfW0IpP>m65oPJkc;^+o#2ijHO7#S$vU|+Riu2w3)3iBO1Y~0 zKQRc2hnHV>>6(~(4!5HE_APqOT79YMEt@Fnnt!_nhY?yin{K5LfCvzP4|ogAb^i2P zD^$bw;58@;%9Ofh&hEo!`Pxmrc0D9*c0%yx^-fi4=R4pPggYwSXKj5ZnIOGlxcV_k z8CXvlT>n)?1@;Ndr|3Zbt(P~dA*Q)ujp-edY}yl3R47N#Te;b_bz8?vfgD9EcE~)Z;KQfLjke8|4*;;mAJBMTSKG`rP{2vGXfKVm2lco*rYC)4|S)HgWvFeGsK2!F-@noDAU-hmaDt)C zb<#vfZm4jau%|X7qYpwv%={|DXgV_nX$hM6Cejlm8~#Iu9qwUzE<>-m;EtkBHGTIB^^ql z1Ln=~-92{35A_H;p;TE0G^)-I^}3Bq}Sw`Hi$3{Ujx(%(zi3hwNzXm zpQsmU$?{U!q@@lt!%ml}bF>$z+i8MAjq~XF>QhkWTTgdJ&ATl37l{3DO!Rd?v5(xY zd&l=#Ua#&I30{Rh<$h$^{2by`>*9`9sY;5L=blN6tP5ez~T&h;I zkeRvlLP#=U0$-s4f&MXVZbr> zHy-8Mx4#icb00~g4&Q0e2_EFV5>7iYiYYlCUI*XlAbVS&lxoYDcbxYmH~HZLMzg&7 z!<756ufr%m`>MO40{bNK<8|rn89yKeaxAa&dfSFxQp0op5#P<$aba3yo7`hkY)PSi4?&E1uPM0txpWJ=MR$nq_(H z%%$>VWevx_Ut`~?EV`*9d`Hpb0mIGoB-VZjhb=NY3}?4?R={F^r=|UDYxnf&r#b%y zricXbJ#6_|sNj*C%)z%gp*>}eW=LS*gDPVIQ)_}>8SG{`O&coR_vqI}VJPk@J!R@# z=P1u(!;H!K){X8bkUq;|j0R*iD;HSEyptdaqp5a*9X)%#PVLtCMF+Nrc_%E$x~i5n z)cQ^0)Xyxi#iHr4>+!c!k?l!c=!2o<&RlM=P}aZ#|0vIa51Pv3uM<}tXBgI-R=@GBW}@%D);NROP?W z4bNxqq3OPDBTU)wvwB|E-ktFsT$kqX8o6(<4r%-y*0&I~rRuY4PUzR9v$?#tmV}(~ zs*SguMGI!@mw8{!%FPWLA^UJEKk#15>LbVk$k4J9MhsWn_(|yuENfZS(YQ!}am4x5 zM0Zb;P4RmxK3yuH)hD&WLOc0110O?xggT4WUx>h+5W0T&{!4Fycbc$*}t4owVuE;N4XUR>U zskd6f|9%u<=B!%m&=Nc-ufLT(c-$P$$0}P$Zv+pIJ7ug)OZZU?=Be1+fgrdVv(wp9 zO!C1>G_2h@(oEVUo2ChmMlHFodW0Bd(GC^l_;^r!JlK{#W*3j8y1}~bQRw54OlN6A zzBS=anX0wcBhLz*#7|X~E-*N*=lFB(yTh7wmOWs7Ze0I~PTQ_ki?AMuB17$t82lWC z8*p7wDf~-I7g@sr`PWVkW(1yyE0+!{^cUpNIk75Jc$3kO=5%Ck)m*C&PIS~IaBQQm zKbmv9RNHUAue4YD!^(0}sC#&H=;+fC0tp?~$x?*GMUf>+OGlXvATzy@ch=F_QCFMF z)>53}ZfHgg{tRJUzIc@%>iwO2Kgy{91+hfhB-yh_iP#Dr0J@2MAqWWwGq9os`2i&cR_v5g?*(FdzYHX) z9x&{)V$Y~uH|y)j#l?omIj_k-Qn~`S238iJSir#0N>fmijw1LI2TU8M4%Kw)AfkyM zb&{Ao9J;t$hNqmUrYIvCOX%v3s=LU9oUIsD;?=&6#`lEYCQ$K)K5%AeMGi^@FpR7y zLHq!lk(D+qWfu@(WMv341NM!qm>>NT50~PKxzF%*8QGuH~ zg?gTMPSS;Gb{iyEubP=sSBF0(RJA}5;a9oJ^90D>8>4r2xCONET_|)L!$L0cw>JEb z81n~b(&b$=ybw{RbZhd9QPm2nZ4-hLJ82a9TfLNe?KugVBu-$CzHsVWx_zw>b)1)b zs}@*9j^t=Y!_#6#j!08vlMg+=_)E$ffzTuH5$+l(kq0t?4{k5>kEfB&fBlUa+aisq zBzH%wNDC|09NlEU1a$^Sbq0d>>z!xP^leGOGq)v-!j5tR#y3{Tm%ejuEwvGGv7XNZ z?~|F5Fzu@OD{)tr##DDu{_jS1*wAzcc;QkyiEnct zm)BOPXoNY%|7qx461snNAC_A+n_;4L>qe)58OyrI`HfAB@e@a>d^%&dE3u%Z4p`zn z3qEttT{Svh!RUL^wqQzT!(lm(5jl0U+}n;JDs4$d0sK~Rg6f1~mz)f>M?_jXsj=e5 z?T8-<<&cMt;r;pj+=*X^?J$XN>Qx#DO|4#0LhNkG`n*;v9@Z~BzZW^kC-PU*90m)1 zm=33xaZ*T5k=7M_Lr1?vT3Wg@lF+cZdIENj$D1*S`+WM9033tY|Fxfeh5!M%7L0cF ze*F1$RNlKq#F2LUB|7_Y7>PjG&_IHp1*&Tv79I{>c_*;aAC`|tkB^18&sr$Q9!8(l z4k7nT2<@8CU68g5SUxn+)8H&59#&Hic~-oQ$~`Z&E_y5>CTX{bL2tK+Wo_S$A#2}_ z71mQPEHvOm6_cbTE^IL1iMkg3hIOc&M(Sog};n~~AJ-v|1m=f1yxw_Pf1LKawxIUPsZcLY7P_L|zX$iM5Y>N{{|+1ED^ zr5R|cGK`R+aA_vQ*>fPy?1IMDV6OXl{ipCWrj8r=W5%B{}TOI}SP z3FnP$Yte%td6!842zh@m=6}9)CX2BHvGWJYJXCt0X~$nsuQcbKCcct!hxG$7xZ6LS z!qAD$^T0_?qi+?Jh`NJN9j{m%tx}kxS&m15fe-5s%+B{!a$y6+>wkDZGFT2Y_Mr+W z%j7)c7oBZfqixen8&Vt60(URw25kyIghvxg&90teF4S|LS<>m}))&lIB~uI`8y*!2 z6-k-{^INaHVq@CBg0zXYp7uoRUSQJKpBT5E&7NHz4Eox}f4f;Vf@-p996HJjgViw; z_;dY}mxJ!#He#e0gw+q78|*lRDI^nnIs`GfOb!SstG3r~SI$}U=&fDaHEgKotWH@^ z?@RU>==qcwVbL%1cQ1$AxXh41%BPkvDrRh(h70M2$3|8%&4$gD%_lAb{wyBP-))Z! zGzz#_?~a<#UeI?GLnx8{>Q_Np$#cf_(GOs@Ey zu^e4Cz3Ok<9s(8Jhuwb}gu^J{&@^gUeia(|z&bp`TCqEirfXf4G8U>03Fk|D)R{LG zkY}%X((#iwK?<<)QH~ZEKkI5{TXSE%7Vcx^pX=)4HPL)3(RFAGY84%jNK~&L!;5SU zc>PJ4McM5q%8Xzm{4L|T!EftXucDTyR8}<^c705BEDLU{(ROZb@M?Ny)|ZSQpFgD@ zO`QafH5>#QIFa&96X?w?Kqk9Z+*=P|qDf7-hr`qhjh#Z@VA;5vPGETO&Slu_))%mT z^N;2&v5rblkI2nTKkHJ2ad*)+hU<_p7vK(e!$15T7(;NbnHoIVgnDZqeQd=7U8O*Z(d3#%dT?!vG`Y4j4j|GP~3S{gXmf^ggTkJ#-K4r&f+ zDr0qDTmR_-lV|HOeSPPl(?BBiRr`zflp(t$Fm-Po`$lJcW9(a-1Am%p!Vjm0jj3?| z#$9jG>TY=AGIk#ZTXm7mgwy7Gx1o!ow!>=k3cYon0^K%C+>++#0jVUAW~X~oEVZGb z{m)X)ANu77OWM#IL`Wv~Fk!9at)6c=YCMx}py=yq?I~T(q9qe=VWC$0KQkmsE0>i* zg=cfDh6;+~!I5v3ZapW;RJmIwYAgXUGhH-ut(^r~gXGc^FSf%hasi0jHobp*8H}Li zkC@DMXXEX|9keATwx(>&9}@)*y!s#QRbE)-5|~DR{bJW^a)hL|<6GYu$@@iR+~Lvh zgDLWbH0_)zG_>Mg3kqQo@&%3ge8d1M->!i@bpkd8HCxKjCG(9LtKK4nPUtqAHV>CA zVF01&P5KBzK_b#l*x@U7i`k9it|QTe?6EPQqi-bT#(8|Ju|iwkRc!CH=%xG~4AAo~ zU|M+5s6HOjQ-qv^wWne{tT5Q+#JxwwJw3AKBrU&(HP`=ST9{j8@$o*Sbk@XAaP%6C z%X1jnk_{>c#p;Y965nbi*ilGw;}-?i=LT66rMml*gu#E9{rYTVWCUZY(fONg*Qd0y z$G2Kn;6|McZ$y?q9<}n>YOr@>v~}QiL>O{0Ii!i8*#r^rfE7UEo3K^UDjCnHo%|dl zSYNk3Zqq+X^P{RTVc>N}*+8gaN8P+2-MG8EzDZxVF*)Y&EI#{{U&%QYgrk+Cmk}F&%hbQezJVQBVrfs#~P?_ zP}v;d_$+)q=fJ@DlP`IQyH@z7y=OoC4MUrW{~{z4x-YS2LzJ=MudIrd?2N2TWULjU zFWj$_JreBr8T!_E`U)LZf^Jz%8yLFvr?@T5NxoQEbh5z(Rx)Mm7WS@XW@0@QS~9#Y z-stkv$FSJBDW7Ao?A{zczIwd6yHdR_IJtQ=a3k&VM zmpm5|P&T|`^Et2}^|x`H;qbNv-SLMo(9b+sWz{n5pZ!`)%1GmdgoLxchxDs>@>Ip@ z%)h%=r8)ajc!|%|_v@09rfjdayjzJM282n^LDCNWX9IyP%(w|NjDrQ2QaXU&c@inI zES{n6Xq9FTr4~$_eQraAodqmHSrDq|tAj_#E8#Ijxl3WRD`#aY2{8`R4mWNrHE#bg z3+jG&&Zt|W)qZN}B&;`IT9xU39{u4AcEBaB{XYKuS@+QC6v@p;)ezQjdi>K6o&hq^ z=3G&n(MT2ZL?Y=;o_?J#iNKeMf}S!#2B{ARCq(y5nqQx8F>bZyy+VjG!F)9yLOE<_j3Hdwy+V~#T#Kc-d=(;)-7&+%Y`#-3 zOd@weI2GK9?QYuRY#ZVA_L6jF$&?@F)nRnG48B{<(8ghTSe?lNW`>xO$Vhw0uZwA- zY^4A}3DD?jwdkKp6otSAO1r&y%p>`8$hMWPXp_1b!s#1gJ3)=qFycP_d{(tUYb|)i zR;MR-^W_#^KHQQ31MReL?-z@L5;1Bz=nwzoYLx2ERE7jhn@q>(s2go*q=`s;xg6T3 zxc>$BNnyU97P%LJwE5!@*B=U!*8Z`Gj|~k(wZd3m3s&zj7fZht(S{0pR9e-^y@BX( zNRPgodLxbSyx~8_ePgHA1yU0l7dJBs&>dS{7o$23BuAR<&xg z70r{DM{2<8Z5zDEbjV%6XX1P{$^f|x7SmKhGBh;Tn7Ud%d~=PPD5zT)5E;?dzuYv= zJ2nye728=@oUl9%E(y*w4i>I#!e>0cWyEt0SHI9iq~4^w%5UXHEL!+8ixR?KXs}}@ z%4OW`#Z};e7U4Y#_xjdy^llI`0grM60RfSIRpVW>xbkr0ea6yeDWZB=P$^{Yj2;&* zFI$-{D0t-|MPTVUp^%?RjCkhnp%p{TZi^y(okD*PML4ahfk!D-a38iTK$F3EwCp^(-@h*6_k&wJD ze=N5)suc3uR*cHDo?Cjn-*Me*gQ2Zpyw&6~s^Lb(xJ;_9$}dz>20uw5J`yTMbGp~t z7!y_^3jC-xNs1?uqW2emp7283eXDwLEdtYiJ(`5-=PU4=+Fp%)uaSsbx(uwOdJJNX zmyzb{mY*JR&GqH2MO23FLLXYCen-;_u~4&aCtb1W<5&}lF*$-h2%hqQBBq8 zM`;Sfi@6vF11ssEav|+g+~cWESuU6})kWn_Crv~?t$&)r)z<;p|j_8EuW zz&{lU4bbF#)u)>ol7K!LNQjc}BSaPBvlJGOZf|)mFv;TU_@iyU3;seK$_) z1;lQeqRsNa%V{BoNV=jw*BCFP3e0;^AW2yqG*^Io8n{xVjK> zwD4~Ox}Q={G+;BDFy4PQtkZ%UjwQ7AB*avbDhuRorKbpe(zh{J{Jyrp|i8egW71VS4%JHsH_=uO+a#S*sUSroe0(}3+WcJ#Zh&3LbEJ^U`4t4@n( zjIO7H-qMGVjxUKnKTqhslj)BlrE7(!F4g&nL?x@9ZT>r>Om>l5G4_YRPnPrTy#?Vh z+SghZybwk9qF~e@{i4!83I@#PNISNe{^N|VEjO})gkeOYVZy3L{gF*mm;6*!XxL9$ zmjV@IVvxQuX$P27q&M86`Wm#M^u}n9&iyg&U2!**GLFMtW(g%p!gT4tF+-9S`iV43 zv`vTlE*`z5((rSK*%o|r;s9*e`xsQ8Z~O`owOtUJ1YWLT9XDc>=mFXYo$jDB&w>@s z4H_{ILsZwTR+@7@_*#1H&@%4)*b{^u0y4(5#= z5v=8a*@5bSX7FSfS<33C)g*RtvKoW?)XAlQLCTif`e{$<{@+}y!N@gOc|@VDNO;`J zbTM4>@5KY(Jt6;&Csnys&%5xHHHHw2JcwRF#t=|@v#Y0>dg^ileh2ETo^?j_aKNje zMTuKT>YicU2WqCrzeq*DVK+4z+LDScoC;T8yh5N^Vo&V$mctCcj`KA3uB7$cr;>8d zp)K+r(ZSj8-$JsVwwBtn8?P_GB^<-)4EG#oS!O7(k;=p&j_Eh-+k(R*?om+kVEyP0 z(Tk37D&-xrmr}9ZYh!-!iGQfeYR=!jG0^0!$&y^Er1rcT#JeBe-uCA*|B#HQP2Yix{OmigL1yI3I`Rff zT$Y^fm%U&FVpsImX07sPvl zz?ZMag25p-V~!fSxhe(Y46gOt;<&V~1ifaVL^j)vJr`<`gSei31>&u)+T!?{(8Q8? zikAW--9txt0(++ftn_(=tGpBWEs2(lVS~;SBpG|tO~2XXjWp8}Ugw02X=<~nh zr6et%DjHM6U!d4}oz}vfB?})_hWu$2yEH#{_kjg}+St2zWueB;9e5>W56M2S*|djK z9!$K#7-VS$APd){H!b+tWCR}mqCt7+Vx1Ul{hcgj!7 z@D7M1J;f*$LoE+k6;d+Sq!*uw5=Coawx;YhHjD0}7(Q;8gAjL;up9QSO_s@9P7vO&q{*+-(u$CLbqRVA&aEadZE(iJaQc~MJzWw|7V&UcrT)mba`B!e+i9W%dO3Uguq7S3!Qrf@g8n#us&ln)}Y8nZu{)Cbv zpg51AQ%03X^tp&8=1x>Ds<&n5H{~%Z*_4bW9qM5fTJq&u^78xAzaXeWr}7jQIp+Sb z=+3A_Xo+~|u;-~!YmxAme)!fbRFcxZyv~?421eQ!uNKmNJuw#M5}{*BcM2ad+EI3;Cq}#%_C7{9ZHyp#^eUe607kew z*Vnom5ZxZ<&eD;QqIFkiFgsyhtUXN^t6g$r<4NyBc{TF>sg zzTL;5mGw6qN}teRz4Cf?Vz7~_S#q%0kM-`oj5s{&0(uOMFDM~;Y`Yi9I8I7k${*v5 zFKo2d_XHo8K3B#=io4qDKbN$yOV|sanejKS!Zbh4V}-)4fRJDAB)8Ggnd4@Ja0Giy zaH8oJ5~8-ff^yqme;`k*r*sG>X~-D}m&y&R`icDTLUPpl$t^QBVurhc^s|nN`SZZc z@3r-FI0OIVo_Iep5kS2cHi;y28?rsJ2bP)tQ`1m-y;{JCVhmVA* zAg=&OXvmAUc|0oUmZN$>w03Tjn)(n9XI|%i!*26LePw z%pzG7e`f_YtlXynK~Gnsmk#z1O3zE-?bO%S)+O{$F9YWU>z2Yxzro5%tz6^$;~YbSpb#NKY*5`&`zANd0LiHr4MvI=N<-bc>9|M>``)4cn`y&}Z>Hu|n^p zP_c8El5VKIigY6Uz>%)Z5#UQ}Wxm zJ~4N%mW6Z&3(K}YBex!>jFTN-qt0}b=-&NdU{NrsW}MlHg0OzlzetIq$+nipS1!+s zwEU4|$}%O~nq9GNJ}^*D=!qaAP@%=og19=Xy-HdPu;kxcnXAPRxnK%xl@6j5JI@b@ zWEh2#H#&#lzfN|LA2y=JqT_QmEG9D_OmeNi`s}%sx`nfJ8{8ka+<`?%@fyYH5D`ms z*`Q=Lv&m%&3-Tparh_&-_r0!j%S_)Jj8B`i8h@ThYi45?7Nl(~+^cNaM$@*oBqL^1 z|D-$XRTE?t4Ls@A&$&|IGR=rrM(J0w2jRXi=~sXibC!1FDZr+}!cQ~3hdXIQ58%_n zQM1Jm$qyIc8|lfc!nxp}r;f6Jv zMal+dwJ=;Y$LGYy0--PNIP~V{=i8XuKTt;=$Nv!jh=B{)$uPC>8D_KRmzcUy+>_*w z(SwYj2Ooyv2L4iDj5)?1!?1}X3L+e_UVl(Zoivc6hDQYg^+>_DHK;4Y6RU;+U&uk8j%+CpzKO^*r`(yGGTK>*9=RB_lNvA@mWo zI>{P}5S*&$x+XEbCN2j=jBv(!W1W@-Vl+vJ1Bp-GiV&qtRXz3{ra~w3z6LM-q29ii z`lwZXW=0qBO*-@KPQ{Qy4~lgbWkl+}!-Tt}AjsvXKwcJZI|hZV z1m5TLjn1;g=k$I(CuI8BFHXGcut}nCn-btf#dbzp3x;sd_0|n*zQLyqFCPTu?!T3U zB$<`}>`Y%Zb0gF4_}IVC!S0IWwz{O-)~sQ53KCo)zuVMyDc#kuF$&@{aajC;lupO4 z`0l)YdrONiYxoP=+fd&T%oCMnbBZgaxEa z7ihBuCym2#WUp&Jp?PX266*X=j^E=NgCxUd6&UwNmHAFKCd?Ec6sDWzE)y%l+X{NQ z#&B+04AF^4)umFMySr3nUqxd43YQ3X5L_-1m+@;p{gq4y+rd`*v$cMga|lI4(jVQl zv@xcCXR-pju~cH4Vn7I6Nd91EIxXy@%>a`No4LNjha=QBYkBiahmxFK-N|pTOprg< zo0wj9m)X{P8fUhaKZD5&ElkGR=7p`glD;=hqYreE(UtiG1#t_Z$q>57YV`#CyyGpT zI6oQsJ+~Ef1U+B9AQDZSTL(>Li^G@|k{C6HqatX4qA|N+1$O4IY@xFHb^cKULxZhs zffTcHM&jrBHd~M;>*rzD63x#%`kj!j^u|PU{T!FC3S%oOuG*SB+Q~d0{(Mh3B0B*B zugDD)q*O8obEp%V3-fX(lLCrbs0ez|Dlj&_TWOEKj|h)>cI2N4bzs5iz7Zm<}GERyseH|fC>Bk`gHLGsd*s!DLx=`he#~Wb?Mo?l* zg!)|kO>T~>DknVBkpx5XHNKN*RokI=9OZe%sbMw;biZ{C(a8qq%T3eF#A$(+@b@K_ zSvcpx_k-@+Av%%iBGX^os?Vke&v-wjH2g<%Dr!N-exvun^N;yQ5!9*{PCotw?|kWWb=B@ z(5jDJwX3M z_>fW+_zxWY1D0Z)K9XB{n)bYJNrm8~G}!xoWq*%S-Lb^F<_rs%Rlc zCPIY8Y$0=Yt@-s=7`7m62)LXqAf+wv*!sQw-b6A)(Yo}Oon78AZ8eo3|Mq)pMkS37 z>dw_C31UG}Ns%;;vt9VKDpkT>$dnuO!K8J!;woO3G_403N{g<(nQ`U1BX&aMhO|Wg zEA^Eh(U@K?*pI$V-zCT6Z{gLG3xBytoGRRqiwQm&Eg4aK_d72>hZH^0+|&v(xtG#U zUbEm=M6B2+Zo1-Eg?Hs7J`zcvqg|^gRP-Vst)?b=%#ct1<{W((P1~bkPzCw!NmxsA zG>e)%|2a|_O!*iFM|i?h@*(f(&r!2?*$mw7I%|k`a{Dvi#g(qwr=?kE23a|ln6xzy|SV4gbwpnmXQ|^w5vf z320Fj90+y2{0r61-k3GaPkLdvg&roNq5wKQvrZ2TX3=)|YK_Ce~&h_Ox1QJy6)a^>JN*oSb8NHr;Q87 zJ9)f|KLu;Sh})Ti5{ z)XUx*<$kT@;VD%S*Rg_jpxfeINaEm4fp=qBX$C0i{(<^@DJUjQCyK`41lzoQ3!X zS?NB;ZKr%HNc;f3F$1qE!8nPsjraXDr!`p}SEx65`|UkqQ1|I0QsDsZM-rP4(0_N+ zRLAp(s&N;nINam;Vqm;_A?u-(Lqdogh(_wmH=Q)lYie+R_2p84C9M1dIV45fCC@<- zM?={ou3+{zNmk{_N_I`_c;k|Q+xU(#3E_mIq;p(~24of&t;Fn3^LyZNkae9Aq%VL;an!_?JL0rV2_=lFW6q%)lD1H~ zcc>+S{3)T7d3UAgXkRHK-iIkpd#$>3@857{K2wUthVqhH%*xf1WA5BAGCebNpKw1d z-zc6FYY`PAx;dq~B)~u6^{iRWp3U_QFJ(=Z5JKiBvUB_GKF;zjOI^8I=nWnY=OjjB z{A}$n7ZT?_B#D0^>e`0n-i4zl_aVmB3iVn3gyo#|cEIY{Ygc{T3Y4!9>6vWrAM6Wf z+f~~bEvJKb3f}m5$&L4tva#9tY?II_Ah=~lZ#Q~!8Y^Y^QM|VbXj&29`8FWJ&%{nK zZ4Rj{{*c)8!;a`NEk;ctO;m8@<6L4(`4O^Q#ds=tdo^n-$5UIU5k@=vE1s}K%F?sI z!`I-v0y-3wHznE1_{6O5I3oKk4lARoKQp!u zhvD_YJoyZn7n06*$@^L}oNuzX;OC3d?!jO6Awt>eS*zyHV(5k@9};(w1(C2X4DfE$ z(aWFmwb4eV0F$u??nh6;!kI6+j-F0;Y=fO-*1=>HLIER?v#Rv7ObRm>Z}0oe^rsJy zEBmwALQ+X1T3_3Q1``dT=VZ_1C6Z5zjcL7*n8N3YBiUiR@3tIu(^t%Ez@os5*`j~2 z>wX)0lz3g5H>CrI{Il*j(>@W;;g|6uVV*(TojLq*HQzdQbJ{Vl*YR{%)Aj6EAHaL> zMm?@k1OcD#XR>xq#&O#fVtjS^(dzAxzUg}Rit$OXsFl^50wQ9eH@$>+?KvWsMJX*V z6;wLk%#u#=^Qzv5=Q({3jJgZmA0fpoJXd~v%MW>O`al!uO26owFza?UFy>J)Ak9z@ z$S4AYyY5(MC%bRRGbMr?&6LXl4mOo_uLC(@0Wm#;OpdY3Xc07O*bN7jDmfhpheG#` z&79?Gu5kENoxlsmAyd>6>U}!REH2l&-Qo9|6*kP|fM|e2C3&CAw4NZAM9F)v z+KflJUg+xkEQs&$QJnB`(_TpYv*S(+68FlUBWk3yMe;Tk2R2T=s7kr`xy+%n?k%2E)g^C zg~%N<47RXTTiZ3>`g)yy33OO0pGH*&yrywuJ?00L4yVCQu+S=>%p2 z9i};hSrKuIKrmoq;Egkw8RQD+IfJP{1c0A2m;!VPWIBV1h)sxLVZe{oN|B@pco;A(-aoZNvaq)^b~Uy7uK{(LP);1_9}dyN)zKDg@*j2c z4N8>*pWMOW_*VZ02;R!h*z`YM3pjHJ6MYyeviFcDqx zGXe~F0rc1VJqp;&-k9Cg!P)#j2SG51FyM8d$OBAEx}sVB641HiB+m=ReD!GJ5U{|N~a*xtp_ z+|>2IvV!XVazX!aC}2lpGc#v%m;a3hE+EGX8W9tq(F;t4Xq|)%1D*obyuhT0BHy9u z@HB5|@>c^inGH~Tg9%7XTA=AYgMZw?+j`smuT38SRc|mkNEC4J1{1>~$pTSOQ@}$7 z1qO@>|BoEe!O_&g?0>NgRfAH9sQ*yN4vwyl#?CJPBcp+JXvwgkBH#(?PT=AYs->3u zSL}uiQZ1-OaU-6>CfJIsVEyK~#8EpT*#;X9zKG2Cn1laq4iTQV;ph9V^e}ztN z4p8ZTK3FoK6h8XDl(VtDnZy6wzXRHQz+|8oV95vCE0X}cFPIfX19165=R+Hy=?m?f zX~5GLI--++3}5JgiU3-Dp~L(d*zkppXeI#B586}G0J|TQTLe`7z_hSPVt~6Jl#B(w z_(9#=1D$@*+3pV<{gnyGse|+XIu33G%4!k+!y>p? z*_wO)*A!jA-XBcDZ+8t97>WPeA{Vfwz46}}{?9@&!iNq6-v2+H;^JUxWB$K@)dB7P zU_v1>Td1N;=Ko}Ng@)Afzs&vBPznz79}3mwAIj0$-0?qp2*80rBd!c^LcpY;aX{fY|_O*Ea%ifzW}F3$O-4S8MJ_EEsSRU=RqV zL|RINrg=d?NFbOB3HvkD*kJ`q1Hp8#*S~;?KrjvL$R%(c2xh||`wb;M|6OJ1(}KVx zz=t3(E^NvbU=Rf6#ux=*!+_@q{;40$KlINaFg9#H5il48=7W_Y1z>}rW#h3xW!nHx zFtmg_SwJTkOb;8U1_TC!sbN1@0pEkcw8GS$Pz}q!O~v>(7ToMsuC9)6puzZOxsmsS zDn#J^DU9gd7U|jZy04V?IpSAcN_y6J99i1Ia{x@ZpQlL6CU?dpY&fRq20$MsO zUn4*e0;YrwI|KMbz$}OZ7f{Vlz%m3(jTHC?n%0H|5<|hb_|E1|Zssok8-|MyP_7DS z2m#Z8HYy+@|g4to=-vI`p&{*iahhF0b5}-V6tR_(R z7b7fy#ZYK$e)*<_f$4~?Ay7%vzr!BZ&F#OzKoz5i(&xnFfbXc{#AoV7+4jA zNTdw|!&V23hJy)URn>sqaA|Zkl`tflL)a(T`VxZd^3xz2_ z<1ZWmX@3C%%*H~c4r~BH9Mp6JH2%T^koFg@fY~@Gxg-h@#6!(>K;tj;0BL`r1DK76 zlFEDl0rbECsHu?vHN)6}w7*!c56u3>0UCfH5lUAA8h_ymNc#)x!0cZr0|=6!8Y^i) zBMHobG6w_eH46iu_zj3l0yDsxmjm@l&={N70lR-?9wz`pGFS{;LyUkpdP){ptksiZ$x*AMhguOoF(W3}ZU< z0F0)9?qHV{x zIPX78tG)1JK@ZR|k?UO8%9u{ZfHYVrScY~Bo^^hxu>y^$GA^?>owx!>T(lKQVgyIN^tso1LecAKonqLCD6gGwi46Fp!V3iFX3y z?PM`Ss7}yFeR#0rGhyG%P}Q z4811m^QDT!KQn>$)HhgckITj!&jae#ybF5-(ii`~00#s3{PtvCdsebu0WOjiOg^X& za7mv_A?W~wtOD=3A@Rc+7MNbW9U|plQ#9~Q_cP=I5LR#1^Mi;v`E7;$ zY(;?;$rukZFfueSIWjacHZU|aGq=g7Y19)5IWjacHZU|aGnb~jX+I#I*i+xyM~q$SGb<>O7=Vll>? ze+%_;z13vt7ni3N&C%J6knXHBc5v!%Q*-<><{{Cz0a7`Of8UAQx1Gyz*VHq% zmu8FQVXulNwhGHgIZj(ZoN5kJ#2~{S2whJ^mx1frX^W zoR*3J4AL{9$jWicWa7$;b>sDe5+j-&f9Ah8z>`RfUjqf`d^Xn?BqB#}&yuffI^5{} z-Nbf9_Lh8iv7*w5vE)WmlXls}iO9gwjuU?`6hG+~Y{cmm*F=Kw{}ZOcjF44&%9>il z{QDuk1f?g@biSOga-&gN=8VG8vc@RwxnDt^?BBe*z?!@JJU1-Db(o!?v&J1Te})&t z_OF9>7qo6BYes47{7ga0$HNBB9#>-crr*e)=VLTj<}?01czs+j$qRhfdn>gc1wjHi zF*u1&%2^X6^+`OWSUoB<44isAsYn%bdx?9nT_PrsmHnhz?jz(#Gurl5JWsFb(e(ak jB}uuzAZIuX47bF&4G{z2IcTLUJ z)ysP&kjwAIkhL)2khB=niSXd^5N@c6I^YTr*vUcV;9=$9{{zud4h{)d_`gV4OA#c< ze=RLV-=qToN4zDkO+3s<3K)aINPC0vX8Ki9*E)*v`g0wuF=dmv2q{TU6FkUWdg(Y~ zuxx#)d5aw@F$$-3ZjDv;t^w)Z#S{yA1bLh27$81;dQtY(dx6)YB@q3o%JQ z$DS`kdYD<~z4U}2myhX>9^WIOH;1v99(Mof-6MTq9z&e^n|P^cMY)ZRh$==Nma8#3 zLQ+wAnP`M*gOPIV* zR9c8JR|hNUytH_sCdUipyw<`@lYWRk?IeBBy_PY8mG1q93fx{3Y;oFgUfQve*+%!{ zesMiuJqGN2dSJPC_^ekRW3?fEG}GE~HPyFt#rA((au0Pmh;0l2ePtIOSI~ob1n5sx z57lH)L&<-^Z)jM^LmkROpa*_q5Bd_KcMM?fh7Gi)3HvI^MQr>g!t@z17zi5>tRuQf zYE|U^O@#6k3Hh4{1Nk>J3K1r9c+l^X!Tw#~`)+3%YAmtfE+Iy2wRMY|*A#&c4<%CM zNz1}tr>EyJQ&Ogw-vy*pG2wd-C2Aq#glMrYE8#iyiMz0jd<&|Nh1`?oiVsQID2l2$ zLtgwecDc)Ha8w(Kbc*OX!k*=ha65@1R46%&SrX4`J5fG|&6Gtxr_G0x9g5DL8L~M5 z=Cp0;`Z(M2p5bz#Yx76tZ`JuzERj31CGgOOnko{RTQ<6ik zp4}wp9p=j)5*%eXc3RK6>66Pk4IXTL{M&YU4CK5ERH`;Jwc3|5Fis*`lU2*|G=UYj zG5K@*Nss?%$Nlv;C)V!dl&d_ugL2N`{mWFu`o*;kU2uzTt*u4{X2T<^mpsn_&pH*f zOYcpOCESICt3%CB?@8@SwT(`{u=)NZ+yh)xF-)w?rh3D&rN98$C0ULm9&JPY>bHuA zvv{ZX<2tkk55e9o0s;HEr6l!}*ZN%pk9c`9U5D1D`qct2>Z%=&oW|IYUQJPRvBA%> zhMxsK-9HMwuV`i^F7#bSAMT=o%y_qA9Ua~8MV5rZCxD6~Yb3FZ;h@ebSLeupGh~Z9 z3v(>Y`9M4$yN31|&T21H5Ygn~8#(fZ23K;*p$$pWNa*7fnW2W?hwNDDytw>N(H?VH zQ!z-F10CF}??SL=I7)e@16hZEY-b zd(^Bd)KxZ6^Cbt<9JBo4wp zdKNhrbBU9KgciLj`X3f@_&BaG@ya*)IO&t2z2TDS<{tWLDSFentfY}K-5NSB2h?_D zA_PBZa+LTJ1(k-=VBX@fx41R;)y5BZ=halJZ#=8_N_o+p8PaPD)A??3?OiAgieY8NR<43p&mYJfk-l zVrOkC{!nw~Z0h6{AI^(ZDigLZ!9|;eyz#xuP286+s^~`iTcurw_l7z9$86~LIEAwr zHk~c#-RXwA6aIcPxR^wkp6~2e#n?OI)~0bwMsUkjByKg$uw(-fkF~rQ4{qOwJH)Nle1?AwI!V03>}F(=pbfOluk);&&&|zfD2(467Kz~EO?P=Y%Lb@+9>Lx zD}ShqV-m1hW{*tNW1gYo+;LB7mbKEGlk7_C@!!RT(N{p7C{ zPV1`E=Qjm^)NYMc?!1~_mV!&Da<@D)`?sBG?bjAz%EuLa-p~-O2Us`a?rU;`;Lrnsy1!Se}hS#&uW@!^ckig zpvr47S(}y-XutWd;4=oC+MB)WXYI}ytNFMawF_4Nl~FAC3Fql?2g#Z2?1R>gS4W4l zjTPsv@q(J7zY%V6##iq@3X%T$Zn4;O*u5+>MnmN_+_XLJ64$)f&|Fe;Y-=<)g7p@5 zLCSKDj^V;dsJ2hD3M=g?H66l|HbIHLJ#?j~&ahi-;G1Hc##}+SXN#1oSG-O*``7YR z@@2UEqMN1$CfxyQdevpQVNrNyr?u`z%@{nN=JHlW*=^jZlHEz2R%6t6URf~6u>+&O zVM@Y(o8%Gm6Rhz{x$;I85-4@0MN(na^MI|Snm4PwHx0?wC^JJCmQDzZoFMSBkEAz+ zysM`fz@yl%z@cHz!%%T6J(>RXGt+)c=oQ>$q3ZX?(RG@LK zz!>+GqNB`I!%wf9?z{lU2N-O4R-MQfYRrQHobzIC5OKc>EG0BT4i95PG}2(B5ecN^ zyEtRra{lrT*U8B1)N*QTWy0RGeYZ$#)~u_(!kx!;r+ky(tYb?Hqa*^q*zOue7u!DH zS?L{tPL?Pf>wS?!hUbl>xUTdZqhSz6=zC1gaAA=;BDsDk+O8&1WcrqU&TEOH(5ZF@ zWJF8I873SYjJYk{IEc z-TmMgQ}lw8DNkQE#9w7yrZGM6-Eg}*V8nK#=ZC6R(5*9H2u+Q0Rqri$^beet#s5gb zwc?S&xif7{i;x5|LuD#b#_Y}7&(dOtXYtJ~7RT*_FnJc3p6bofd%2QvnfS+~Lb=6z z2oXJ)Inn9yyn7+Ma*j4u&Zxy2m~KttlX4V;Z|NuZ@SmbKtp4y^#Z5{@b%f6&11DSb zX9bychdRU;x2$_mkk(63wIjQL636_;$i;*upO?z?h)qf{iTtTI#N&pVq_Q;$zJ$Ff zWHcp~bX}1*x^A&%-G^M>nLk}fE>0%~ZtZOyMTiU;T~Aq}K0vi36K17hSH@6zRaE6afWP{#<=-vhd`4Yd_&xrE8y2u4NX7-_-DO9j zP4!2Hn0Z=s?V#e_CuMsQ;vcz{WvL`9y~<0$%DG|$W_cWHI6afQ5pY7R0KUw;XPd{I zsNd;Nxt2ZRLvrndS@2w?!B(?``7ZRb>a}E=)AYJU`|KM{q+xr7T1+;Tux@6@pSg$_5`y5Nxjn~nTt5@1FCM4gflDD`qvl2 z^(J#Gm*kg@28AGJ{IvBz69CQ8){N%1O28OZ9$d#MV zi+f4x`S9g|*JTlr-B-V23&Z7sVf>g<#9J+3Pn5Dn1@8yojRnPtpqJJJNpTIuv-c?+Xl_yN;QeM>6uGK@JJOek;gvYyDKu+Edh zg?-7%y|fo00ygF46G*;!{4XqV-U97UECT&0)mlfqC3IAerMUwWqJsC+nwG5d)K4dV zxsAonAU*{z!_r%Zytph1YD4p}aXtmsJpPOg#GxomSn4W)h zr1$@3F4h!|gkRLGVgG9ts=eDNH~PY;Pb}PQ9_jdAh*b3Qnm3(N9JD0(_F6GlBXE0q zPo^5Xsa_I<;ttTurxyOyuzonPHt)+s3Ki1BKKJ;^n4@ZVF;mEedVa=7+xm&$ZGaP~uo9TP`a~%953HL!W#o8@A6U`W&3HypMN~$(#n!r@1?T1g% z=J8ZzBocm&HsjuH?Q*4t!(ouLrEDgZ0dMo^3k}ucY%Y+$4d-Sl7XKJX%p=)nN$n|E zc12A80+BqWa*f(wl#a#3if@wmJ)OngSogaXsxW-&$E|acPQrr)WZY<~aQ4l&ggiVt zqapA*9-ieUnpkIG(|N8&ZRRS2N&ipkl#0b1C9H0^|f-5R-bd51y70tFEGTZ#Cri}c6@e3$4fjeEgpHo7l$?HMnc$vC_@YT*+ znF9NvoR;rHRFhi#hI3zLa=&k>2C-F2|0M@T)}j1V=0!2j*PBy2rEq5 zlk33WDsP8PePMO-G1Zj&$^U9&xTRvG6vM-6XjYrRs-fvumw2%2W1Ymf1irTPLF|!( z$^ihcUMzE#s6 zSZCYICK&YW8+Ws9Th}A_hOyu{%DWPLp9b8OH92QTYbJNE(ZBV`^=WGLrF=X{>DrFW zsSVh#Qqe3=JL@^TPJ9yGs*)oSRx>0_xPPGY*w%Wq?q%1d&B1Of*77euo2%b0?X%0+ zWNlWA8d4E12*TaBw0NqWT~oI;gi9h`mx2>6^cFyQs$E@|&g{%AnJPi_!zz5^+5vQk zw{F?C`_Z4Tnfu_carpMVt@ynzqN_4&;MY7WVi_TbcB@>&TK2Ji=57{lkE3@EO4c?V z-P*xPDUNthx61b|QA>Fk-!0O(8{O5YcwaR)BpQ}%FEtaSzYht_t9~`lc?VAozx;b~ zoi27^M9X-O&h{o-^71%fdtqpLdk2I!$=wpV6{ zz#4Vv@GRC$jkm_Q?3D z>kN~DRVfQs3_TR24CQR8D&P#@Kx%n{fT~#2Jia0`R7=yLPl)1`*hv-@hZ5*i0Y6O@)UdBNSSd`%Ilp9Dk+&LNv$}Mm2be#5!oErbd{3l++ z@9{8e>*U^@+T{Z4BN;TUpYb&ydlaE**m+ylHf}jR{a*^(goH{o=)$eC}Dnf`GZZji!-&OO{7d{4>CSu7#h@V$f87 zP;-hQ_8d(=uPt>wJ-j%I-n)9BX(rOObe;kB96KT-*2g+|{fAYHdl#t_G{uY2;9zZV zZp`wc!U1Ve4u64O6mJ5@xZ$o-Z5pY~i|vswHj}AN+j;=zAEL0!aUw#w1wWAAzh8}7ooLiNh)ey zmG$kK!w`{@lyQK}3w5~-v~`$By2$IVS^%lY{Q_(Pf*4^kd;#FOMS$uxts5US-HcIr zSMi%(V)2Kh_|_RLyJb_rfPwiVU2Rj1`8P_r;aqk6d|AAR1iu&R!mT7((@hR-Ps2y! zIop0(!P+=m_o~xbCN^!wf5^4@hhDW$)lbRnR%k`00oRvEsr##=!zHqadO^kF(wn98 zmppH6KGO!JYZgGws1Ug?TfP6OnUiGA&HmSM|DyOOY~aI1WNYTxy|70zUM#`amm-ZW zkJqW$?8cWs>f&RYToGxIAkuFHOcBhpib}>>em#YfiRDWFuxX0TCmFjsLc~Fj?#saTDD@G7ap|{s!=bd< zSQ@Q81&>1avh=XXdUXrrmNq4x7?0fDj#o_(T=(Rj1Xu!CR7_A)q!1s({h}B+cr2-s zzej+FwF5q!*ya48kQ+nBLgWi&8+jM){mT#2BZ7!Gqg-RH-b)#0bFxhqao0zWqEde~ z78w}SQm}&ZP|LL9-0AjXOOJ#~@>Jrz0wiNtoqQk1;FV9k@}uZul)mG&=MtBmZY0KE zsqSpC`VZ9-Z1m+*12XCWR>$sMABBMGxCdGV4sf1px+8GGzfa&krS6MN7U{6!5n7UleUUBLOo4I^Tbs|l90sIrz$)~@?V5kpbKa*d!MKJQEIvzSnS zBL&4oGG1<%ZncU9Kkqu7(s{kGjk~bo4}ivg(odDjzHQVGKLb4fWi0Iz%5`WnWLbmTd-uH84_*073^WUYoZ`Yh;%8^2M`A)@yg*v$d6o1^ie1=p6 ziN0fRoAPb*yN%Zo+`i`;6}-EnE#IWEWu7!q$ipm8J}LexF7No;h0(0S;^9DUFrY6( z$WW}tBNZitRusv78zh$Uz7Iyr94htC*B81uj9rv zt!QDYc8?YQ8Y{AwJkU?El!)~{LOWU{A??lB&+7kuFK0z*-?3%rKya%smZebcj(bw4 zNbbp)#7 z9EPf7XL8lIw1FjzW}z)m|LbIH)BbmyDPoY?LxYjygyfEuiH&vd0HOd+ncnS`)aJ5i zJhf(GVp5!QNfnVDDTL+RKNcdiExmdK48c@4pZx{R3J{!>!~jl&ho=nlfmRiX&<=x} zg7_GN@>UaB50>6f8#sT5j+HBsUdzSPd~LVf6H%4^32P|4)!64H#BE*C_GSfRObQ-1 zrt7O7dd)~ zaoRc$rI_jSr_>*Gpy`X4T$~j~PMJH@2u9}LJj;~m-UM>Xt~-7ZE76}I|18c?vCBbU zUyeKEcNw7p)-l1wLxA|{>p$QEkn}A!`gv&d$MY74=OvA(i0HM|lnGs6>WVo$25AV_ z955TsA)0OOhmUxz3?ZCE;uqpPa##9BH7tyf;x8vSXWDK7NJbk%5Ln%hSn(&+2>BPt z`FH+?tn=lm--}!+i1BL%^?%0J(I~A7|`(@Z)bM?FQH^i|2ddm;B zA74}M>q6i?Nj=~_!F*auY6JC`v?hH6Hl#+&qz_1)hp3z7B*Dd+yHQn8HOYx}{87T9N`CfbFMKu={CPUU2DY^tq}ds>lqDo zq9Z(EjYqDj@rB86KKm}p>FiTaU_i3JhlASu7lz&-<8w{1suw8nf!z^iO zM_ly5CHS0*(W>p{n?qe`f<@{-qe${C;f)3zY%(Isg)3 z%s1bGl*$90(JQvwz?4_;EPif3rG-;6ug()Lt*)->J9jZT!WIbip))>Dd+Rt+IaZ1; zoF*zmj-}C_Q4ZP+*1CQszp+PMkA|I0_AQ>S+pL%M4I88*TM|*spZLF-#i0xi{-!O# z2s(WmP~RNiOUgij>Wr#XzoQw-DPF1!$8K!|a2;MoohPUauY-ywq<1t(LJYS|e^lM5 zl_|eG5)@<0=J-M|@zt?C9Nbg%&x!iym%M#z2v?E4ra1oni%>P5<|uh*aub}+kU`-& zR3T6#WracA;@60zN{RSr-L5;CpQ&(7MBY8yhhiU77)txf!k?*)@9a{M=?R;oJiZ3~ zz^CGNsxzJik$(c$kP1{m4dG)~H2oaxJ$C>>th&O}WFnmb9*^+Bm6<@(ap~5REX8Kq z5K_n6AHH1Gty0fqufPGVP`vy&%Z;D*B`uYb5~kcKN~#1wzNNvW>UMAsVzhOqO%aLvT1jM_XXGb@7n+}-&@73PWSoi8%5`7e&J1=zx$ zPfF;cd{qA$_y--|+Vw6fuPtiZT&yeISP$2h^=l=E<&rcDvc{c99iL0C({*jq$@I`1 z^~aJnd@=K$*Q6p^ik9yqIb9c^>ah4ItwQm;GBtySBD`_UyK~cnMDz#gX0?O&nO={D+s< zg%OEyZ}-lu+ew)DSCZ_Xu7AIG|BOqiFkh43=$TZ`1}`$4xX;$7xSt&JEn{dOEf}np z|E|+&4*n5BFy6@y+nphR=s}6sjWYIMF+}8*?t<1xqSe-h{*$6v{-gSR!W9tHgA*O2 zsvqt~QIQn&36k5@B?+!U%o)p`e9b8r}L7l z9EPU4_qV!4z-+MQjtXd7bqK%>A>QGuI75Q-P)i>e?)wbH zd0);Y+nN54?LFYviLux(3P~|i38C_}=VLN6fPm5hQ2V;j3{O>#P6cEf657fT(gcdG z=wSe2t1ADR*R7>b4y8n<=|5mDx{Q&4l1vJ?{^a975wcnc1;xd}g80HYr6YoJ!Pub?Z!;HeuiwgwL zQ;fn?B&DOTR4zE_Tts#^hri>;){W$ACVAqf{#NB0`&o7*s*6$97M4>8^9C*!4?Xf@ zlbJBAO%%?Wep=(`0?%pr`tUGJ2;kyV$QCJ36b)y6K`&~xzkn=8?VOaq=^62C8#kyg zkh&goT3q1>Izm2ZiB3-l+IS*~>ng0!pZdB_L>=u^pnqu2n(+W#6>Wxy?f$O2)pfqQ zk2u|?_S@qT0rFV;oC(J{pK>Tzk}~D#ER!%7rM&+*S(o-jy>My^w=hE^)1-{V(`Vvf z?>I_=HkuS?)c~!qrB8VVSjI?g-JDnP|0a2kUBP6MIh%SX0Zok_+|dhj_&3S1(=CG= z#qm?F3cr5fCi^s>TFfX+87zc&Ss}zK*aRjx-x!yKI*BxmD0zWfXune1H!WuSx+mej z)F0jXKhpf%a30!^pB(uG%!fkuU8qD47Yf#~m}1`lw1Gf=+$tXq{;c!*f{%1xmErnW zL*XRC7*EO46(SCT`uDw#RD8wgy@Cuv=>3_^$>Rbc{5(kqQ_IFTif~119XWz1ytn-2 zU$G_%!(n{AGh)Sps5-Ad{r~OvT=%#W<;0TP?P`{Q9XviZRf^KQ1P5>|^e{8pHWSfW z(rx?1p8;ERRlUl(Ulvv$h-el|K`!<}sf+Sh_Y3F)*_ejLd$Qb6{#k6zLX7{P%AAFJ z|GWKF+4#9ga;2)%V%R_StH*Vi&A6~fhF+e@8lB(kdwg(N6wbS-U5JatuK}z-e3;ke zbWGxZCYE*g3M+hC2eZ`35cKXDNFOj=2ILWeztSAu;_O590nhkuE<9if0j|PJ?c}#X zCiaRkyt*k#i1M3ThF!KZe5%5M8XZ(Wky{`}h2}Y~Nixq~eke#}fAdu-J-Q)DD>38S zT7TEZva*p`FeOfybl>#NRNv+3rNaxW*XPb1ZY;%~fySf* zJhC$cZ{;vlcSJ?6ZZfOBCC|0tGx~{bnS<}LDto!tHv}|1QG-pfc~7N2FHH%o6rR#z zXG<~sXc;H{-_G6U%rVVW&zMi+uv$R7sTUwQENo4KjHVL~6Aj%Rw`DiawrPi?f=VGH z_MXz(%Pz;mPW2p{&_c~I!#A(lJk1BnQg>rVsHx!iAf;o4xGrvlMfk3-nkvP{TPuHS z+)?BTKR2y2Ldj5?uq*G4hbiCriQ6dpFmeFZeidNH%GumG)+ev#IkX*VNm+BEr@j?W zHqI*YVk;k&jc8-?GDMYEgk$cjnvNC7*)$sk0Vm}4jw*1Dvxm;7BT$Axbb~;KQH{-M znf3hrw*%|+nj3Y$IH#-i8jU*`YEfJ%O;M#k=1ho`ed&Hwp7(+npKM}q8PTkj!t8mX zW-vTYbO#2Elxjaa4NOxke#}%kO+RJYp@X#s=Db`<1^)nSp@ShH<8L&Mb9AWl`2I#^)QY@+c5w^Q8VhyoMZdlY z%KbOH0f~oQNX0R>PO}8%h(!5XuS33d;7KRjNo*{xC25MdqFtl=l%d^7qp{|AWb?bw zYNxRgY|kVX%HrhAbTqERqfG8W0J~Df3 z-$2#9P^y0(GUVz|Dq|EK?(&Xjf8}6f_XZMhoG_uF+b<{eL!5?MM2v(M%{%FJQRG_^ zl>(QJxctejNkX1JLU9FY`g_t{!nE|@kO1jKYb-E;*QAWj*7H|O%ZyL3gyoW^}KGb z<-4$U&OX#Ixh+gxcB8u!rU85WiCh)WN<;%Ky4Bv0mUp+kcwSuHtIN>ZCnSoDFr6c( zux`rpu}kY-5~Rsj+s@4|Rk9fJ+L|(3GdRx~kR`jfK2N>+KeMX=i}mO`!~!ymf7e_R z1Eb-nkIu#Mvr&@w<6~$L_`6oK_k$f$jATie7=|L4mSs>C*!XRt?4>wHs^BCt#=g|~ zHE%qK#PZs%wgqquSaVO$Fs#Z*xCOH`=7xcWi`1w*M~H}rItmoB4Xuc-kt=WK@N_ai z2a;I^H?Y8!u{?W#bQ>tfwP3wGFA`>j(d`@w)BYwF$87-=p_{9`p8;L%jm`bj$j7^T zjkg-om8x-CT3SVU`C_!syV)wh=^`xh0H*vMLLN zyjEt0A+bY+q`zMWM2skgBHyssllJr$koE5j@1W*#HxSq;KTnfb4HvE%EBk7(7M&QI zX8C!e40pnP;4r@Iy34)SneD*@5+f%y6UD8tJjk&^drl;nW*|u*FI*!nA@yUNx2h-* z?7ttOB%TA?7jHf*@rP6U9=me>_vDf=7d;%>sRWg6&kJ;lJro|a5Yz6GWRDyjTXC6$ zK3jE%!&lmOqgw+%j$RG_WFMU$5O-%8NRKzRIMy&zI|T=NH9u995IQy)YAEIUQvJhP z>!^OCf?5nY`>e|8oa*Tnh>2U@wp|84^1i;2OF7k>kx*oOP}h=GVY)7oSrp@9pG3-Q zldqoJ+p2kfw+UpVrXZshHU?$G8XOr(fGoaGYe^JGp9rn?T&r#Ze_W;F3+IG2#jSL; z95tZNG1#euTcqxW5aWbhVlate6ZbqQ+Pd|!0s$1?l=dY$iW|758a(OBWGW`{%AJK4 zP4Ch%Knr%h+iuv+OI5PD^N5AYI<4?Z+)o&>d_q5OpXtNCGp_SZs)u>+Am#^=a=c=V zc)5z@nphqX8c*rY|GSf#mCmD}nlcTWgO_fFz95b@==j3g5*R1k*+lrHZ#f}AakdPf z?B8{*?l_Fq`iaedQ+iuzx42(_AKj-43$rmoSiN(C64Sk4`7!r72lw7HK!`9NR;7vo zf(e2Jf(?QLf(wENf)7FfLI^?xLJUFzLJC3#LJmR!LJ2|zLJdL#LJL9%LJz_K!U)0y z!VJO!!V1C$!Vba#!U@6!!VSU$!VAI&!Ve+4;?6BawEuL#yTI_&@GxPWAu^cnXFeiqaV7ZQ( zcFM*BQCY|KAIt7Hm<-R*=rg>*9e>6Y*ZwS_aReSE;{AQZCp6S_D4zO7R*m_3 zvPANr2}@1fkGU>QkfWTYnxLxA(o=tDSFhW?-p%T&~^ye z>*&o&TVvNJ$!Q*xmXxi?P|_;Xlqis-+ahkUtDl9d?$&3m8_b%qef!Ymzz9+}p;QQG z;-zE6U#geRawR=8)1ZSt`*77@pD0;U`)1Y8#-|K0%VDL)=?Zw(YHZu@jg4)x@;+N4 zC|+~0N{)0Y9MZ9F#k~Yh7>@c%AEL23#PR$%R5W``b~090 z@Uj6){zlABglnTwSxiL&X}XIUddxzxq^h*=bgV4QRik%wmgWi>r3OlYUPU2uY~#9f zCv>NE6X&hh1FhFdt=IFd*Nv^$uE|1B+-=M)p07zX79}QKL%dY!qYW-p3S&7xizlYk zfrG>(O?TFhcw~wk-lpVF7#OcYWx_c&Iyk^G(+a}{&Qe`tlA)6MqK$AVX>sb>KakTr zgNz`jUY9R-NvK!Jz(OmGV4m9O0re1*BG^+c%t+AF(w$plmXm|5-@0Qr74i< zR*EEqCjmEJBq*FFNc#({T$9wQHZ|y|vKzZ9^sdA9Sf8 zZ#Ij7uKePDe(F4Yrb`wP8VpY_mAxYYmEDl5CYua`0y!1kzR+k4ZgS4D)7t7U_?LGdk5r&EY`_pW~t16{JgL#s@W&cf67>A`vo zWtpVCol#f#R)s%L>!ES-rSW1#D?tU(_N!3oZmNqAljaA|x}$t4$!K{{^_~sLcz8C< zigC4+K20;IU*Rn}3a(#P)aqs0iVfH}i zoBG3aAL8kYlH37cR-ld)s~c&36)$hSiLd7-&{7khd^G32a7k97_7O|3{zBLWU`)p@ zRPy^Txx6)(Iq}tI55M(M+5=cmTcPGzU#c>>4Tnt`vCs}1Llg{t3B6+ecNE z(@yUUmB`MW>X*rt9!~FFl??b>1MMjfoc<0AiEB;ww2K({J@L6qH^ANAyD!=qM`cUB z&Vl{m5n?4vOv`Ck_8y*=gHc!Jmcy>4tfq74!dA;2+tZv%1&~^2Fx;LoC(u8=bjQ|W zd16|*$X#jN74%@C@Wo75;$Umx7dW>uIvrc9vp2EVb1$J$AyoCLJ$O>};>IB4(!(J* zextz?U8y%UOQ%)k1nhV-HVtK;jh>x-NZ7nr`BuGHOfuy-$X2~f?xFAbn(%Modif7{ zcABi`U_Y5g9ce}l7sRg-?cGE<2@SM%vDgsmOfSCgxuNWN5j7lQO?O~V2Vp^-0~9HP|BVNWMYD1auF-Qr;Sj&e~@XRtHhDR^OXYRWBNOvk-185W3CS!x3!z3gqEv$&;DgV zRd2yf#Ue|t5$-+e4IbR&)tq=UD!RSKSEzl4*=u|_2V?E@RlHo+MV!nau|WRTbW_7k#XPi$Y3F4f6@49DLWamgpT9jdF;o`Y$l zDo1PH?l{DPrlvG=g|3{)pjC3rpebWZZRt-JZE6>?^omCjsvFm8i(Ys;=|vZy7~cN< zQvIpQZ@e(=bgETzW8$%Vd`-};j!k{hXW_!8rhG-vZEfxC7pi)L-)TK4K>P#>7`R!k zdqjJye7jJcT(5Ya>#kUsgW^!upixc+l;ty1)!YnKT4qz#M3~Amx;(Q_3Ec=b3SMoe z8D#7=>UF}c-v~L*9!rr{fP&(a97>AvK%e;wuUPBl91at;#B zg&e%((&BUFM88)!>^ENRK)rawla(DwZMysz^T`gU$mU?>&{pr<-_UH$}#V{=* zW4|mnjx&kHH7z0|zrY9kMLI3bdV3?kI5&bbg33&-Tr+jFn{SN%0G+1g*+u13y|cS7 z!&XmKKyDjfvonkCmGObK?ZIyI=ET_K4uSQT#-)V8=v&L?=-9$Wd(?wJW9s-;d)5Qv zqKy_FPj*H(-@@uz(c(XagGTpqw|Z6iw`^;bOBGowETF`npk9?BPXCmPvSU7CwFvV} z;egD&d@J`{4b3kV(7EMX$X_c<8Bl0ibuTaKP-U3bx8}W2+2~PyS=YA)R<|a)W+xI$ z(|sz^p}YR~q|#)I)w#peAe=l5)Ap+85E>inTAN60N|&rlm+VNVQol>CjIFz^{MnuJ zV7-W^tbN05#O4#jWG!DUY6%1Y-xSd|E2XNZ2Lm$^LfzLZ48D~!x~3+Kc~#Z0Tod2176 z$F!2(w_MX;$RddJ94U^v+!2jU*C3t}zAPD7Q3PzG_EUTX{!AHWij*r6@+}1DiiHZN zBXLU&b$~S@&h*hc2$5H^@_W%97-GH`tD@JE|17O}KJFmIDJExwNEELLGmCi=@7fqJ zB$Pf_G~%hwV@iW*FgANlUeW5z;EtR6-0r1y><22~T#FCCL3(Q)@(hasT8TQ};h>M# zw!L5Yv|cPx`h3i#@9s+t&N%rdX*Itttc^uNR)8An60^tmtd(z)Ux_NCDK{4N@6a_$ zai9IG#2*RlX>ybyaWZ_s^-?Z=^TCSsi#OeAgFkMYddJO|aNhyY}XAvgqC(v+za^sFu;opvQa zF^SmMGnVD2R9oTH^|v1bHdzYryA|O2CqPduuGyLGnZ=oj?fAA(HDgfqE1k=+rNX=1D&#sM>ZkD`{Q^p`R6c!mo$&9RlYer zMaAQrr(hzV!pGXD+K1jOs#!anTAW*}-_g5l!bG1qG0%dHyr{d*Hu6$@v|m@Kynvf$ zZbm?jx9j`Z>kDO`%d6tx+PvcJhgg=-+9L4T0Q8muv$_Id%b`^6vM*S-f@#dpLWUo) zuht_y*9$#+)2IJE0X_tuTmFlbzrP-N-z$WkDCwWEx?gLuPQGGPIu?W-?^hi?j!>Mea%XOd4SiZ07^B41N zZ;Wc_m~v`SlnLdro$O?s4ZthCKby~5p3VlrxE!tG#60^o1FeQ)4EA(5%Zx!?LD|qF z)cVA^ol}pn+I%d1wfnYPr#Y+Yg6WFNa~-ElK*Jy56*k^g!X`GAs3tmj*n02aX7z_x zzWX2FKkl`@aWoo#d8t*1SkL0zv=ICT#B~sWKX&!EXaaF!|Be3k`!6+vQ=13CzY4-f zQAFJ@6Z}om{UfgAjaYIp71lW)*;x*sYGhP!M0M9HFzYlZ>pKmnti46+5 zruyG)xwm*b26n1a!Cvd1PoZ^y7l_GjnCY6|ve)kzb-&2|;MM#c<8i{#@F$cAwQ8YB z<6^jFzWO##bSBOM*--tvg83FT8oxL`&=XO@0CS1n{iwpkUHaRIOD!eZlF;lA<%zy> ztU>wSv$zL1VWj>qdOeaDtBlbUwdI>3Nt&DXw6K@d|LAC_95y81=|LjY2Zr7+?lk!**nzTzUcS|yT zS|pki>M~po>uH&WBZ`_bK*(9h%DV6MzHhg)X|)=yUe2Uu`xSb`Tu9lvsBtxR)D}Ia z5xZgfG)B$7Y;sxKSt|VCyX&l@sj!Z8H5He*4oAJb&Q$Of? zz_@1QK>ffXfAefDLud;3xuvE=-O@MnVyo@|mnY%D&_0~sLAbFuBY?7z=m}j{9Km)m zj~5bBF_iqWUgbMKEx(~R(lR%nJEn+bVd-*#ARv$B{PN;kreu8upBM5{mbqkUao19y zi3Qg%_wxAtq2{OG2>=4A(mrvHUd5_Uh4wN&X<|==4%#;loj%Y2FC>f01i1fj#LuM6Q8NhA zpC<@zk`s0t7#Ojm92FnfbK%)t+!7t~XMPTHvXPHH`eQzDQ04~cdTISaUCKaQk{An2 zTXVH#QmUY1Rk~1;g4+_lOmL4zicu@sSJADo=Z z!bf9rV^Q=rtiy$lnM`VC7elWhD>wj7;K_+xrSiKs&^;cn6=Xq2Fc<^j}|DrXzA`X9X7AAat3#Zi@b{4BfV`0M;5LFtfCH35YviJ%V5p>_xY?l! zL9|!e2_78i2w8ACh?zPZMI}CJfxg8!&vN!r(v7oHru8jOD zhuy)T2W-$e$ec$d#Zu)Ij3}iJZ4i;s8!iKdf%EbutrQEFZ-M620spo}XTjLRz~t$? zy}mukf2Tx=hzwF%H{a~8FIrb$uSB+nKgXvS1XqnsBN&RF6aIx+HYsrb-R@B?Q~#An z??jRan76>fg3#y=iv{nQ`Bedz3bq%$R=vhvfk~6nIU_dl4rVet;!yXb69i`rV&%(NOD$k&raDR@^u#K78w> zuRuNWAX54M_4>{2w8>^4gS0w{jSng$$CfFS*TmEEAvL+nAaLC9o%C8(k744dT6he- zy*gTwdOLz)(!9a`a|o<+^Go!)Jwl%ae980--gLHg7#0p4kcI43XWS1~P!*CdEY=Pdst6~b4Yt6}Yt4A2N$SaQ5EF!o~%B%y`Cl+*B^x_xDBB*Z&uA0PKNl zeN~Hc<_xDsccB~gBzg$+7S5~s%WDTpQ9VP$#>$H!Ea-8_EcA% zwiqpNz=Z8X!df{7``+4qH*8wm3V4U{HS$N^Vqz2nf3#OMc=gd!CaY|n6@+xXl*#Os z6l+8&*30cYW-l+^GsrmahF>eS0Q~d`2i$t*Hg@;p-!F&|c2&6AbCh_e z2>)v2->4nm^7-{?s<&65|0i5;=gu6ZvGpeSJFhGlDW8TUTSAg)i-33wfn+uN4q1i@ zQE85Tp$t_p8Gs>s!hl38BHq!lVW==@3M5%#HFqnzHGs6%N#MTvKL9vD$G@Q^9$iF# z%a#&m3Le|!ZpP#9Gfxfk8Bgow(pa721b<6S8oascte6Tjla9 z>b0*zhF;vzd~GXnSJ_GmUBvJ54b4k!4N>-f7P9x)hVI9F4c_^{*D-q!Gk9O8v6bGj zwUxD5%Ig#DHz*^|zw2RqGFq6h8@bYdRH1ODQFqo25fNSBUEhmIiA=~d`JBN*;J+Yo5>s?Zp4qtd_1Kcm=>q9SN1$|pJF?BGK! zmc}QRjbSa4hAYb@+Qj`|3f;%)N4gKaqf7=F2Ig|jBOYaPf^Vtl4DYf#piY|{9ZCCj zV*M>k+Dq$(?P38IVp;7G84lNf@QlSkb{n9{#v-Ig0(yq+8F-XJH5{#VFG)V6PE=Nq%C3xmeuCUgBY$Iw z6lYn+AMzi|e+vci-GPF@onjq9yhc_H7WXRD&Wg_tC}7Xb=N{OtGc17iTBvwu{ABKt6w5E7X(!DC^WMU))g6Jsc_}l%X8P!$d>K5t-8^1L!pIj z^Wp=<4=QI26Y?*y`5w}Lo&tN4p8JmNtpE_I0xp6ccezlG)l9kSmNmTX<=kU-gbd0X zitx%}qn2h-Dh_Oez?Wh=D0GUAa(O>w-47qB!(Hc|=;&}92`}D5fc!^n{;7ii$nu8+ zWI67xG+K_RxSq6|Jy;!KoxsB6kDy(^(xlp?96Qi)cGc_m(wfqLbG$RFbRy0cMP~4- zkXLM}kz|0uc`Jm)>3#B zhFT7ZNebdtnA1RkrUj}CG-IU;se=%K=Gd+W1pO38bjlIjM_0hn!H-)t>*sceLbbyp znDaE3Dx>H;)TO>+_C753i$2+F%D<^}N_jVnro73*Qhu+0cSWM35f+W8ei*D7gk&}9 z#RLRkFDCR&NbTM_wGoH#9$$u4HxdxG<9^~U^JC#1!tre%Lih{HhQ5Zq#359jWbr>b zh)Rql@=vk(Gi>NE@iXj=V(%e}GeK@k2H5;dM`6e>2C?wi2AzTYKF&=_9hfEK(3F!= zOs|+b-NmwhW(yd=b}@K-r(6YB3+Ya^(W-j^v&+L?16+6|Qlq|OxGGv_&32&B_SRoz zQQ!hygaD|q#AmunErdtVOP)p#f`@ba*&aFVI?os-6ZIhbZH)Nnbd>`NrS`1-Epmj@ z7GMgQfo0fBhWAdxpi{}FxojDxgv&D=%Y^*o#k0qMjR?I-WAGOPLx9UL-Z5QcIs9q? zVUcno+K5seJomC8RPLfR^2kh%lcDW!yN^X!>UZC~jVwa5S9EZv59K)PoXG7y>u#Ss zegd*7&#qY~UBfqypK!pHIH=~)bIo#HAowJnqn;)epc%n%7%s_m)|W$zP$QlN zm7XJ)yF*zL0bQ5QLs?(}Q&-;V0p*jw@I|Y^3~@dm5bZ z1(%{kSv&!dm)}HLYJYLZMap~F45LcylV?~b(oSOUSu$j7p2G&?kvxyh1#GgYlQGhj zaxzpIt1imvYRl`!+45KjXhL3Qn-1wzrMj{juseO)+xuRHUUQqMy_ZlkhNynP?>wZ% z*ylV8t~3D-mV*z`<5`wc`DYr>Jk+#NmL^yRzk_i33ZoqBkAKifv4w3g*sq20!$3ml zD}j!xS#`rWvVSK)QkG>Lx2M>pEo(e`6Xp68reY&HMU6f|fCl&hY zK!^BrOiriEbbrcAN2zpfNr!}VDo00QboN9?IiWV-5e1e1Vf;j=Nab1>ZZY4bWRr3# z%0YtI5}2_^VJvjvTA?^INB)I0ium3m=bkS_7sImV5~g4eeh(UyDOQQ$-+(;FNF~_F zez@R1HVpR!T$$)fMwiyp@4M0=JT+lJJ9>B|tBqzyGan-pBWVtL#D9i$D*ZoAk10Rt zK6U>(OaJ(P0UmLP1&8HES%>9DTDRp!TZr}u!kFgWrilY_w{<;SnF0qVBK35no{E*E7TCza?yFIAEzFRG$reFIDC6+UqO-xY8nfUeIv%jFAoCy^vK~yph zj{*khZ5RNuWgF%-v~~nv%Uj%G&C{uIK#~!U0NgulkmgD8VT5UH&HjwI8a&A>LTdGtm*|Mah9r;igc8J)p)h!u{uxb)EE^dlM7l|@G8C+Ce2)* zB}Hz2(=V;OAl!J^sDC_!;@&z|qreNnzonlC?)Bq$y`&Y8^&W#hUk7Urc-WY`ivC3U z9@e>Z`NmwV{h$qYw|T=XSGy zk#)JSmx$ya5eIy2{^bIEM-WB|>xqZ-L=&@!GXdti@9%56IJGIx|2yF?T={*s_Q`tsN3C&6{#~q`k*uOc1+N=j3or z9KZN*8B}yXL3472`1SS0w1FC_xlhm%289^gZK`8nc$xv|d?Ei!#Aa8kWuK#eB-+h% zSm=3cg;avPRikrc(uqgCxERhW_TY#r4IagC)I+4o#rA+G&<08?&BqprkAZv!g(*~5 zQ63*)T5^x_{20^W9%M9Jp8>_mAZcWRyaKHnc$LrV7o_;1lpJoG z94y)u&~|_l z{C=7Wd51nm&{MN~1zIAHBN4rzh|^PX*b3~K*mWii`z}gBv$-51t+$+F{en#`5SSN> zrL{_RncnR73D^%v_m&VF0;GMQHQ=|`u{t_QRZ@4l}6r16%Kxvl18VQhgKd^R^=F3rQ}MA&PthdC`6K zZEZ`XSuy#E29VXA1-Q0Q?9+Vd{$UXISQ?D&_|1I{YUx`Td(f6NQhY96M?bt@tW3IB zP@pFc0|5BdSvaqt>t+SI>W;tYj!49pj?c)zq9R0MVCmg#3-t+qu#sIW^1z#zIM4qG zZ=Vb~NM|`C;~C(8qkgP z-ZZ*10Pl%5Kv4sKNg>4@nfzOsMh5AK)Nv-2wfLC@>ghe0y9_eFTZ%s{!W#{1JBy)= z_hq2N|2oujc9d`OEn9x=AAE|h{Xvhf{UH8Y!`|+ru~}Q_h%mzbwd_YKci`Itc#o}O zfaP^%PPwf>3o6Tya%od8T`nBNb^ubq4+y`qAO9LK&+F)aN)ezHm8=3n?E(HYiq zK+7N}sfQx{CaD5Cr|_hW#VmsOby{J7@+rNrl@f#nL_8W()M~;Tn)+z+F@c!ysg~Ro zzOvRg0asd0rUDb?P<$Z>i#&X2PvCP`K^nn>jpF85S{0LAP{tFI23kE$1eQ>ZKokY# z_mWJdlm@?lkgDEZb{*Z;UJ_L=BLq{1#w$AJd+l-UzNzi68jL)$k@@oISE?63C0zuGhkX-!N{G7hSsp|L#aE5LY-+K z0H;F`#-V;+^><3Pn~h!cAH!2^io? zLXi||=w`K^;*6L0a$6b|px7i-rtF)TyQN*wqo99U z?6T?kr9?r;oGKAa2PnNIadXmr{?vtucTzQxg-yD%lvPFiH%<0!HBk_~(*o$6;09@! zE~K0kE;?XagKS!u$m3q00rM6ODL$qO23oosIfeQ8>3I?9cFIAVi4|FOe}flmY> zV&c1YJUdY~0i9qr$EZ~Va#z5%l}LZJlPLUy4ygK=5uyPz-Jb++TSdDZ4o-~!{|oUS z)j6B@hl0bXOxq##Q^Y;K`F-RXt2+AsR>4O8Q2XZJBib-g&1WX@6)VgjZQzqNgTEWv z7;jp&k|0DDc##2Wro-&84@;5{(F(qH=btw$mK8p8Q2#XkH{o7oS@I@Z{t-OfgdWd?1Ei4tF(`yaH~{qc#|>k9UpqavQRWa)X8*@4y(p7{T|Yg#9CLBu z!5CUNGt((0q&J!Rt+c#{5Uf;t1j+U!AnYR2u^3I_jR3kp?>`2vr?1I4w%68|*1s0b zP*A*pEsczRZrYiV#B+&%1<`+bT9Gz2{}nv^PZSdv0SNgCzKu^XAwdL29*LY*4}|nU zy5n!)6$SGTp9O?o3k=vsfKUylj9ZC+^UPKXz6T-TmzICBOpl%Btu4BAcℜ$EH)MSXX$(^NI z%lA`F>-=s1+RZj0j7onG7eqf9DMR}`dqR}lE`5tj*iJbye|iYHR{j4^;*noeap8&G zE*p!C;uJlJ&rT8FEIz%W#$?!%g!*EAsY?*H5`O;^(jY!m_N4?NQe#ROwu-l@>yIMbI$sD7HVr$QEg5 z!xZ;GbSjog)w&yW55uXLt~Qni||Af*%{)Urfi{h zk6=51nmvENjCmRuP$bY@Cbox~g(jCNTOSWXN2U>6#T0Omu~b2k1m3aUqKV6!iT{8A z97n%e_0Ve;vT8kSRZ84_n8eZY+esov=8&wgcmWr}Bo+OtKklv9!p+pOAeo|B4rzf9 zNbeG`IG@;DhhGlW@{~((gnWW0L~h#&;T{6Bn7n^~v;qgXQMf`lJ{lQVSrEH$g!qW{ zT4aQqHILAu8yyTB1m`^{SO@ToXmK#!LZ^nS4pR;aAVdZc0!p-5aRX9#VJ^TAe+>nf z#*YZ$#Wb8jj8qD7g&{D00z{NLjDZ@k;kI;1AhaxGRTl&T81Xh)c18$-Xd7(19rbN} z%i4d+Y}sXHD+{)lB^>bE8MG0hyu0Nz94Kj1$v!CA-{@~-8-3gMj&f1C6E^Hdc1e2! z#MPZE%pw>4MXfhBp;H%TqR1I&YXtIj;Pi`|axK|w)ALtS9%|u)ADO#0HGcZs*$be= zTwkIILbR!_mqVKHRQxshR?-MM_=5n@24;W%=u)v121n^x!W!htG8Yp&J@ONaHEk|V za?%VGEc>Fjs3bBkptR-@FSnd?-#UtAkB+%VQ3u5{uBtuy&SLCB|d|c55xF+T2 zCdOm&qeWLN13<_7M%DEy9wB?u1X+8a#%>CszXa@5D^kw3pK_bG{PP$kU-2j~ z5!Xp*f2D|&j4^Uvy<28!6Se8wm|d7he8BMc3(X8-hWktq8F)d2C=h85U?Y) z06ZN7h$eKOZ{`hr8R=`@W@OSj#4ZW2UJ2NFB>E#HunqMP31@?d9>eJd{Du;VfW_N5 zKwIecWTLuC?=a>y#Mx&@L$#p`PYmS=6IY<1_~0C^)sxC%u4&HATuXaz@xgz>4Hx8i z;4WJonM zF%a>xZ6G*^#Mef7mBO<>N2`C!6y&0}Kyf#q`)dxLQ9%N$%6mr|+Ny@KI+aZalKg#A z`GI?DU(;?YZz^}bdRy`Pp+)rbf0fx=D$A0drjzQU(;Pd^;i;9PzwC)HSi%K!O)Uqi z%+!^evozf^GU9X=073%o2RQx4)U7Kx`=rfgV{sPGeg;}2oY&Wb<(_|8BYJ6rEow=^ zhz+VJ=A;fw;bu$W2Bo^dmdyX;!{=Y)=P*nnR3MC%Z|R|i=svGVTsV?=_=pS10A_+2 z^Vjn+W&l2%IxUesGDTXyUiQN{C->JA_t5?B!Sbi!Z8bp+9Z_RQ5^vC%+TVuZ$9jxV zxM71MOb6W75Vt9R;@N-KFf}4Ik4Zci7ke$$E0va((llQC$`uz8{X9*noJTaBf$0Tk zoWP5}-XKL92gC(0)P6;aFk7Tu_u= ztsX}D?5!*OU#YRqhjAVLFM7eMw!uDV!OBU&3f}D9)8Y1>%GIO|0kfxGug5WeT1?uR zR1g`j-@Lv6pd(_XFmR8)aSYCWsKu)fCaD^@wY0-R`n*k)f zm<;Zg(u&hwj30E47E69hOERN0%*Me;vnI|WP)Ohe8t+&DxvSEDx_F)(0K$XuYh7H@ z^$Q%o!5_r~vb!i#D6nd&P!OJIS|y2qE?}mah_Pp0yL5kh`ufaO;T~uWg4XL%)StZD zk0PE?6n_E_=kb7(LTej2!vlJXBa@bo@j51Mt`HoOcZ8F#J93JmEYA&$ITv!6Q)0hPSqjEoE)1q;&j4!S@pO##h?6Gx3a7 zGjB0X{)sJ1GE85}qU8QS&D-oT+!hV4vMkG-50rnr!}?f1ocqMKX!(BH!bHgruwmN7 zM9mM%O-%M7e;Pd)A=@Y{OwWJ(n}7nBXkU(?z9_cY5PKXH84Fw};mV9r6!lmPbZD?f zO1!+73KErR=dkfJ6Q|CnY>;@(brHAjsDmjEO;A%4r*J2*O1V_Vy&AwesPotgq8&o2 zpzVKFD=EV)A!uoc7wfpkMOZEs#d71M=zO}ZjVMd$F(o)Xb^wePU_bK)XkA@N00V!0LE#UGLklHJxPGDo{;AKNJV{&1$$1fL zbOW*Ke746|y7yb#bHg?H?MlnCj5lD5??3lOY(HrOd$jP`HfH+?o4^g)k|ut_joLnY zSGqQA>)FI-+qkV~6Q6AZxA^T(VI#M=(4HH*#RU@FmOHzpDyDaMOBHY5Q(>m$q=bJ- zpOT6={VFPa8QMJLP{S1G5cDK6*2VLa4NIKixmZj^<${;w^EW`~C>50)abVnsIx}ez zut`hvaAz2kTC#aV?$u$#QxkXSz|b+g&*H8e1t;v=?r%^Q9XbWkakrC^3tjD*<{2W| zdm?3i&D#`P>9lRev|bPElt}5_D^-8$n8n&Wo32&zc=)NRkq*|plzgSVF6N8^=R~(I z6RXaFbJc?oIC%WEvRIo%Nd>!FWXH9mjBNAT?g0MNuCe7Eg@>``>5NFkhVUg+M4`F4*g;4r57qe35=+g6M)JBHZrCL>~5q{?a@uqo6Ld+z)h4YW@Zr#qG^VU#R=u@m@?1l@ zwYOB?p=(_jVPXfHRlIUA{fTzTf&0}y+zV&5A1F!eW~0&~#|hm1qF##yYa-86ic##+ zhOR#c;K?-~xm3XzY3g~?zI1cpmDClK+f}1|awS8&;SHtIVAx?jSs#Bt*f9gV9}kG^ z+`tLxpPjq0aAWGmG(t{j{)lT)A10|4MB1Ie%~pC186~}p$pNVOgO-11P$cn!QR&d8 zDhI@(2bv?C{JkyTlO0nOq^4-w6w`ulF>^(1b4B62=jMeXLop(9aFr@vk&hD>=mveR zIe=;B36vv!YHF$rXH$O=Bk)|>)66fGO6Z0VE7UZx&465JPGg4mdktr7G_Bdo^Lh6qoMBeo*~I*}v_1N433l}7iFcw8C(9C964Yr?VDEk( zP|{8crlqFisO&9Gg4krGM~|_mQ`h*|!@F4O(^F20t`3&keBpm>i_0bmmvEB=N(t9# z5fUz!(fA2W(^$m?l(aFzhZsKvVMmKcv>AR-qv$)aC^CHsjKqqc&?L)_*;Xqx{8(b+ zc2Ea4@u(ihcxfq+P3iE>1MyheQrtV8FA2z>SK8NPC)>LzxI~T|qDr#bJcDZ)Q|qpc z8IHS6h-LNvPK~#I1$H{118%Ir<3>C&SQ0uKrLP1E!_Iu?HnNETCItsKYJ7 z|3r;t!=q_dRG6B+esyMnm{iKy@oday_%nDI$HQqYo}WK#?{2Hle+F-VU6WJ>KzA)b zB9Mvr`>}J-G0ET`vTY|rW%phWFBZkMt>!<3oJ#DwLYaTF7s1+BE1Foqi23<|Vd|=R zS=rHwxHk((N#WEDX3zx|W*XYI&8!{adCW9_Wfq;VWCtHVb@t@(R>FyhJ5zQyTEt-I z3Clz#snDCAB zClKJInGJtqk=zOQ?U9kU*|Vb}ulwy$u|hISQ6kWLpiqH(kp{mEYSpNJIoDsFxiNQj z>eBqx$hfS4n5gpD6iv_+ z2UH%1{6kc#ZBpA72Y=)LKB?!rCsj_TnM~(&Xo-J1Frm20O=s4&O`CpDm>d^egju-H zU`htFUsUKWi+3XD3)k{dkmgrYC@?W`z6%9tjbu9t6wA14LTYY?bKLpV)S?ljogvrw9g(c?#UH{oCxIx$Hl74r$Fzm}3)B#EDS^ngSG|iRQ23VOkR!V37k#I3x@RB?1w_MI-_K zoL~o^g+o3gJDgh1+<`Kk;jV4HRi2Q`z!f~qh8o{VYN*V_ z#KI8J3nReyas7(fu*3q%=C|7r?LsG_`C=9B=f<=~qk%}%_{k9LLQ@?PIHn4&BJjo% zcw;P;eI~>e#_UB}9ic{sP$O^PYTn4GcuQeqa@=M%GBM8o5Da+?s=uzs%Zm_005^YZ zMaVguwjOwrdGn{nD}8h?-8n}K{!v(N8*kd#tsa|rd$MN-PL&F`dV{A@RC!5|@SMtkc@ z`?SYPB#W&Iq+xfLpKMFzq1a=WluCczQ@()|HP9WGwx5@CFJfyr*GiJW$p!_6SOA3wKR}dFeg02+%<8{^0?X~QIwS)KcJg;X)o8Y5~s z9LRe1icED&oSvP6swq|`B04!BRQe6d4^hR@ zR{8r{$N!`Nu_}qN{#O-I40m6+k2(mL7r5#0DrJJB8i^B#NtsNqWVV0cjJ6`Oja4mK zZ$F3IkYYzXbRC&KFx`@{)iL_b zzpRk%7&1^)B6EY6LoXUkMIWm?i0rR;n_>e>vMaxq@D7TZQ^ft6Dx0a+LyA)G_VZsv zT@$1Dd5f25b7G3->o8Y&3nP?e*79KDc74#Z>f);Kn~{H`px2V-kD%4Rj*R0CV(h4m zI+~p%06OZhwqNKW!6+$3h{n6chS%BjIhLMCr;W|fOetD6bkr1c`5MU$47sPCH@COBzyH9ZYF?< zlC*+>gmHiSUVAhHVz)*Na)=doJm#{}ltCnN1E?)wyX#>_n00YPKS;zEUHe9i0 zFsd20=W50i!?KO44J!vd9_1r7!vn-rzhOA>90@-2H&nGn%5(Dzn%6LYmgDEj%GHD_ zuf^2rdeT>3UO}pA8%?@W9g-f9Dst)|AIaz-A5$P7Qy|Z&Ce@c$))zFxA@M74!#dw} z`C{rWv;0QOgB|W_RXSXm1}@NbJ4|cahF^18ORIK#j+#+*pF}IJcMN8Ln^2;HkI-Gq z^A|O3lhTN9pj;m^ayv$UMuzhlzRxU}gL8QtuSNZaOS~H@L|ms0ZcOLUm*;P2Kj&|Q$Vh^32ax2Q z)h?h7OO1SAd!M!`@Pqdow(XsaBSeTk?pRL@n45k^F zjUojR8hqjg-5r_xfz_k~TfnVN+V)4yu)H|4p*y2KNEHCX$vMGZ;&#xT0I<5>SU_Za z1JV{G2iLK?II%&fX|)U+wOcU|rrYi&Fbse&c(*oZ+O9)?=MykSHg-|_pkWPyqZ6TX z(kfc3S*8V`!~Brz+nv}&qSblaYVZdP3kW^%PYjIsR5+r{0G^gN0#^ zU%(A=tGMWI*~u6^ZFa-0x}*yVy*77oJQlpR(P~++LI%F+Tj)=-kW6vnTeoiEG2${` zix06ucT0O@E$Lh2d3QLn7&}V!^0DbIpUT9oJjICTxD!|5UDesG-D;I=?Or#xcGp+8 zb_vkSbZgfrZ|$1b;T?Z8qK#$Xf$`cB{Aydf^!jX^nZZ#AbzloeR+}s-K08h<;oFT} z9C2{2mx#JtH8ZfUUkp=#YAEAb7G@%AqGx%HKOwjACnUBo8=qha;e|?adL* z>`8${gl3Li2&7G@wf5c!prUPN*j)nsw$w`nsqK_31R_b@#8$ouT+R$|rGcx#x#XT4 z$lGbomEm03n}YKV@F>9ZCFjZX(m{GV%XxB~M};=Mt?-^a?nBY{~UiY_s@|R0^uCg+MkI;fZF!Ojjtrws!-m1^Y$`J1NjWMk)6i|U->YT zktg-;-7>qByne;|G9U-e#xjGKm8&d^JTGB`-RwndvWW;&5?1c~@B|lT=r`=;WSCvX zCO4RV;A=xF(p4O|DEH37pn2YHBP~PU9Z*Np9mngmF*kq08Ng2nzuTr-e(!2B zL*1>9)VR87m<<}H>eLU@I>t3eDU@{x^a!S`9tC)``0Stym#HM{g03jahbxNot$ugd zh55I5Ccnp+%R==-!|qT{_j93)C1041EX&90#MkFi<6<`rxfvH1x!eSxhZ6l#(+ z+uiWIuET!{PXpjR4D1c`5m6RZQGr&5RuQLpJIULLV^38qa9)-FCv;IPi5UrdWQnaG z&m>ZuO?W1G2u%RF1fs6wgJXI?z&f8VWhP%b5xPF`(ArSIVG$4^0r-}MGZ#;cm!#`6-Y)$Z_a2^_qz z#mRrPxt)e(Hndg;YM5%IBrYdkv9W55rh%IXj`T$ia6c6RC!>Zi6B&9OLq*ryT^%g` z4KAHyl4cK1!$(Q*c`)>znaB@@IPDdE=^zz=-yBMb=YZGTAN3mWtfA*1w$jn>Ph$ID zBYFZ&j=}$k=y#yG(NDA25HG}({S=$C*r0!JvbP3k4k1-_?#~G7ZxJudK!U8KOX!DU zG0lF4tQVl!fSsB?Em9G06J@74)}IzJ9*J;U_z+NhEJdh2+d>t5;=UA0i%X%nd)$`X z%{q1HZkyfu1FFM}D#Hxy69JDV@&BHBZ7? zsR*@1ie#Ds`?FsRQfPZ1lWbFAe}jKoXB?|5KKf4>m3f_@^l~KAQ~lERnO+{|&4FEV z6Dl+21WF(U>cIqlYdn;&uILr~(!rUafbYFA|18cmBjESFPcQX~z+XU~U@XWZ&%U%F z^v1prA72erlDQ`I)F2m(9ZW#2HjWygC-?X$$dPOy|4KTKSv!C9^+UMO?zn%9XjKER zZcW{pK_3jszUGw8K~5ObeOyWg_pU&Tqr5p<8hp7v)W(K5S6E6B|hO&!+2*E-KJKHP#l8<&^UIjyg*4ao8x zo+-n8v~mu4n6ex{RBOy_>Cv2u@5WRbr0TRkUdcsC6pJt=*}{tK8Ma?hEr2U>uu7UV z(VQllV{>!(*5Wj*1@9G^fJawk+jZOQm;5|zGy0?=Gw2RQ>v-zIwD%`O`VB-n3xBnh zRD>D}ejN1zrzfG-DoMqh!t1dNwh~ru861-eFseusSiebJUtff4smZ!+|L7&tC6xOn zFOPrdX*=Naj_X5T$03VwBHZH=@nfU^0u;A8aZO#XOz65{?-*TAA5__}iPUG4X!(@D z3t?cfb)C&&*YMoJT+7e(==2#JV}BJjDx%PuFx_zg({L)Os9HqF&suyFJhqg;!*;Ow z44WP{0XA4aRPwrx`6Al2Y~6ON;E&P%XKlA$ha)@8MIW|cq7mpv3X+>qg1Ck8_cb1I za#_wGz=|xVB!T~n@$X+SvY?EsiaII9#WVc>8@CL~X-Sewup!gpv{br|G!YcYDJ3OA z9azE=Th5680o#+!(@IuPg%1}q53?&>b~ zSP%QGj{`QqkcBv8LmaUYMl8ZH8)M93Ojv>wHo+;IV#-p?ScWq;!+)IRSg-=;Y~IA{ z=>;y?(%XF)KnOz^K?GxnA%O`@A%zTPkV64;Sio{quobL6cAj1Q2z+s;z{Q;3NqbP0 z;rx`l$<4dlH*XcF_tsX{MdY?-c4O{@R&ZT`+*iufZgs9)SEiO6B1xs~OP zuYEX|w)XaZzm|1dLuAuG&A9-8Aq85{a1 zvqQp&5D~_Nn2-=Agef5D_=`O81=ic-B&Ue1^`(EefBW=TfS^SRUcVooRG@%K- zrY-0tUDt#m%$iX$_-U3*ep)39Ppf7xI3;HxQ_AQx$A7M67jmT>-knljWJ-O$wOkO{ z>w2mG2~Ffg{xwbH{edO3G>CeiD4<^O2T?Dg-Y*7FAK>~n)CWZo^&;1Y{O$gBvF#m0 z42kWpS*2lr2mVIH@H?j1Ax6-$6ZKKC6C*~&F4T8n#tyFU7Pq0k+jsm?f5(imOT)Z9 zXun-UNKQNIIg znp}TCJczoB{_PmC9~8#K0kqsH##I|yzxa+N4vL3BcOSR_|Na+d%w1Ya;bHLz#^1&J zqWU56CDiZk9f{Sb=dgGbJ@<%HieI$;94H?VUw;PWd&TK>Ge*+CQE~JgM;sH6W6XVG zVv8|5#8=+2#c^>0BkmXGIqm)@R&^j`MNhI-5qQFjyj6nE1Emy>+Cyiga-8od|F<;A8~OM5cqvZz#bAI4Xqf7b~ zC1z}Bv5D$}A4H++N#70XksEqZHJqtppObQ1hufZFCl$Lm^~-@< zne(JqiF`?0Xa-fi=}hr&d>*XRv!PU>j`}sYo_b9v*#at z`N+XT&$nnjSiA)9Ca*z*qd=(LQ*f!GKy#Cmu^IOjB;uZheqEv1pgIEisi;G&iT z#aFPh6AXcFzC-uAPE^sJ5n3zT!`1I@;>vkLmm{FmH=mK;1C7G61+MgztA4EZ1FV(_ z3aAatoAP6#iub{Jnt%CJoP9$Njo5BwgP}MZ+w&&1f=-brEPe|kx6NnJb^vWd>u7Ih z3XczA@)(Bh%PrT7+(tdD zvbBG?wPGgvbBS@{EPj(yY%>9rX+j1$m_$F@J~mO6VbtpodVi=bG|@HfZ(Q)~e)l=@ zc_+@Urv6?> zq+*_m8Wjsv1b>~CKHqL=C0db}PM0*+mTVt9%fj~q5xSSF(VSbY)%;noy+(HZX{<+{^Lri^N(g0diB z3Kpc)ht;NiStdbl@;=IR5LNOJH=bqdX6ZwEUe6lC@PCmGewI0qzB$Gadb!_l40ur^ z9bx40bWrBaJX-VVXq1NhrL8P`*Q4&!R73&g*U5ZP2?J`#y%DlJRxD*iSsxPp>5j~& z{n=`eN*%aa6MX9S*P@ImSW1?3mIA)nx>SL({Dm#7?}(BJC`47SmIe{Nys~D1M<{am zm96&F^?#B_HS)?r7sf9eluKbZqY<0|n-t`zXmjR`@Srl8^e!Jmf0lQf!*27Ft7Ju1 zNlI;FY^;4q?Rm}%djr|Is||#RtR0U?0VxRg5TwyTv5LC%vDKUSuYJEF!A623^vIJD z*#+Pvm10T|zVy}t8dL&OBg^&qZ)n}PstC!9l7Do5<1#WxeqyV)%H?zP2ZtIP6a&Le3?LdN=YJ&9RlhJtH5xORHBHqlS93t8>QDA;_8hd6pq zc9t(yrMKX14EGb8^L`bG_g}25E_Nn~IqOG~Ox=p3Z0m0+hpftNby--l7G<#5K_v+Pm*Q3&mP0q}OFk;<;ahliUL6y1CiJ>LKQG2^n1ODHpOt3Q_cs05+5ekNXfM*^Q{wmd$zvzr6 z4n$wi=mO(qB-Vi2!!0Ye5b7E7M}Lb6W>{ii3B6&S-v@i%i%W(~bVk==LX^a|*klRl z6yk{?e$Mgk4>RrkElX_2o?)T8<1UC{ejes=j?O#*@rPLs+j}U!l8$_T1I29{DE?l$ z@;5h7{ANe82p?DfSnJh;)fy|qYSW|?>Iv!l^Q$+|yZWCt<*ZNo)6&1Z`hP!2%YQ<+ z_-N@*lI)XEh*>Z2lI+hTiJqr7^GPpQeF^q!wMxY&RQ$KYHjh<_ltJa3_8Ri!?^E$@ zD(>0Bmaf-;`un{akkwuNKEgBJ_8?lY4Dt;_94BP)XXyJlYS^RG$o#rD`R5zG2O+#~ zqwR%tF=mi1$Wi3KCgr~^Eq}5Yfd=14*eZI69BR{33y5bnedg$illl)N8WiGc2Uru`+BGa7y@LXw_g)i15u_>|K`elPv=Dknxr-+SF_t;tMgu*Du#mhpDdFx%bDA5(6b zSXbpHv@$d27je*n-#gU>QAQq4B%Mk^Xc^m&r6}X8j|_?~j>Cs1P3JA;!yLzbvw`Om zwQc@SH%z58MereR(xs2D_i^-~PRvFTZJTWGwjpPl$rMI796ED&VA59Dd`+QwD7PTg zR&RBRTwpL;J_Xj3laY1n;{4l#E#mBt4;1g zW0CJ;BV*$dntRydIOEXd=;NlnX;9}5rTR|@i$m$A-rg9^0&I!!rgBwLg~kp&LO#&n zDA1T*^Y}}v(G4mILD;-Xw5@7D3fVZ{>&Rr>)c8#Go_0v@_*;o-xsFv4niKF%;$qIF z{pZ|01I8O11-)?-DeIn-wf5v9-XuG!L}dJ=BgfL7tNOlvLF zOzKSA%;j9l)5Qp%*s0jd1ceq~gyrhshr3ED_Rqm9c|xi~cP{+Da9Km2N(BpEu2ozv?A7 zm-kOBM0?ZPsO8;9tKQB-?y<>>9}Sa*wXDZ8T581U-)^UQJfF0IlrIY93H0kt?eN;d z(){i8EB=E)+pK+4->1j3;2@_kV=^9-Jvhyk){{!kq|Z9f{MF;VfzzGU>% z!65Tz`3LSqVd}R}Httwi-f|VwpGtnK^?BQw+PC_|r$eXp-1*&}?89@hn-Mf8aStW0 zxfuCmEXi+?zIu0FRK8&wbE&}mc#ev&bY!zC0#F9QeFhd`GFJhh9V9Y)Fum zG1$0pdWz+goS79h=5b6_KKX)qRb`h{g=iR z`gGC!zV6Ufto`SbAfm5%TEPt(FP{wP?YGCj%F>#&7cF;=4G zrajqL4msztfmeRQN`*h@3lZk-8Zqz!FOoNh7Jc-U{hRSRrn9d~E$^{9-1$bK`+UUx z+kD!(!Ysc)XMX=kG%E+!X4+&6*Q-!mZ#5Cc4DW&2l25PnthCQ!p|xBNbJVVovi=B? za*ID>M6r=iK*hCf7i@XUf;OHrNFJN9t%VexmnQhca<-) zdb%1D)u2k3Xd{#NPc=m1pD)HYSXgiYxNQxHn_0z0*I=TSE}nN)kxnL zP{6AjPN{ok?k`ZCXxYv>;A_U&f+O4BhV$zK$bR%#(S;%ln(6_OIynj_M>8 zdhUNWtBRo@z0GZK`{fz}crYY9EZD`?Soz%>k7q^KbB~H-j$e6{&z6$bsd6+o4X%Eo z8Vq$)yU>Fe8t0Cv-yB}f(wum^gg=@<%ujc5Ex*aakSnkHiA!nGEo*MvEDP^B%hCx| zEwRCFG1Pdb$5&oT_0z^%gA-@|RQ+vz^pJJ_MROg}t&$AKRYAXQum!n#zP^XhT1$Bz z-C4&p^AX#zrbtYnNBCj%@us9s8GAB3=>F;L8xtCha%?Axf_Jm?4W01b@2oGpNod}b z1i!szV(QCOb#L?9`#}VM@~w!G9m+tknspl}55y^*#CaSWd*53Cxr&y)=+H+CUT_RnuV54)5t zs$`s&7{O=NS{XO?hD7ljt(lGf#0K=<+9MU|+23re!byi7uk*YZ2W{kX77ik6XsGf8 zJ#4lf{AiiF&ouk{vB}kEP7M2_EB|HBYND*yH%6=)w03DR1A^bzE#bYQsJqVJrnV>$ z4Qn@Q?gp*B;i2Aa$*+HYw8itw!tat}{ZcX6KWl4-IvD%x>T0(p0~BS=1pL9_nQ1?B zEx3sihY}fh9MkCXEQAqvaU7TKPLDFN;#XJ1X@N3kiDI*R+tN4 zVS+9$9M>z(y*YNbD=hhXoG*44PjN@*M-wYY+edSa*sINm%M8Tm*&?*5@#^?9BIM20 zggD|#rsN#Q@qD>Jd3N>6f85V~3UQ!tHSqrR;$EHmNsfHV+#JWHKl*B_>|lFFqE7cemMtIa13=Sn6aLaoV`eG-VklkM}P3&iqX>vO8*w7vdTUr$R@ zr~==t{D&vNQ^lFJ*{5#)5aAtTb#k`YNOg{m#bd+AmpwxiKCGN_SyxkqY7XAK=O|8B z?f@sNgL2R)epJ{~ZP(qu->$hY#bxLnPE#JBYEtg#opAKHGr^T*%EftvP5v=(KN3&T zP6>)IvCdwh+Kry8Ga-hL9vY+#ccO|vFg4MkN~@LdId^J;CBnmCuU7;yKG?g7AXKA2 z;~Ulh!#zalija0iSFECdym<|>F872H(~0u)|I{V4NBjK=G$pR13$wyR|NYj~FAFP3_x#*U<48H7l8GI4qm%{B z!fO)}>@*6HHlX*&u*(k44L=v9dtU1D8|gBZ8b$~{w!2`m#IpO~nW;m=x{s$sEot|y zG(7uXzl)B2DG8c=<|9p&=9vSPp(u9f*Q@PLdm#LsjQi(LCaAu~S>S01^VhTq?b4#w z(F%0Q+I!m|Z{y77)-+ddyB_xFiF^}r^MJC3rZ;&>S z&zO3IqXsny{b77fsB;FX3T}eA_&#g8vR@*x_-s~$eyR~j?R@N0Y~@{LJX!)0UG%7h zM)g%5l@>~@BzIGqccL3UFCK*~97?%&jH|jW32q!#5n^1w;ZENwfHyBnr4&tGe$x19 zBY;Cij;B}%_Z|Hz-~SeV?o36_!(yG@<%vo zihOI5JF2DeNk)%;KKcO5Y}$qictnxS# z1i`aBc7N694%aB#S(sIA9q^TgZlF}XcOn^v=$?df)JDk+F`VbIT~`U3FHKTVp}DS3 z;uB#=67I2fopuPsok#8y>1GxEYlz?-Cv%{h#2Tg45b>#+^2^9e$!kO%oJ)fxTdivt`4!6sTG%KDaip=?& zy`k7jLbRHA6B%wEI!RU0Ni|6tP)Y9F$v#Q$-lpVFzqcUfPdpoWVMs!}aC;|S0+NaW zBC+!cGDZJW#iE$_sUZjR3)y28hyzv25dIT2k)81IA)@bL%C+Iw9H>Kw@WMEm(t6Mq z8f=B_K3b8Wcp`{3!$6e0B;!hZu*o%0B@IKnO>ab+aHR!XT1>SCNt$`71s9_7rq{xw zNur8&Uw<~=wtKzd7L_cAZBP9P4%;*1somRgJ5)E?8Y?-dRJd3p)OXlfqmC9xg0E>V zFa?wJEL;!1F0f#GeEnW0NRB*5jW(EQb)H->N@4-uJc90+ti0{fF_F#!vw5`p0>e3e z-2&COVqSk0{bIsT?SGHT@XxSR)OVsZhL}(|LI~LD(z}!Sh^+v|nfoBZN%5 zNIXHNHMvWqx&KXcyK^O5Y#Xu1jo9{R57v8anjUmYQ4e-Vv!Wm#3`&vQ#}tF@s~+qv zFKmwK#M|x)hU$8NTEawjpyrY8xi`w&pB*#w%_|(UhrBS`5&8Cv{%0uTx9F&O%9va! zX*>=GGHkAV?TgeQvM1^+4&;|ZRGW@NY=J5_?x-8A5jJxXovK)_5myay5Vff=T@SY= zp@@{LCyr`wmSojXQA9@EVIp7TB<=3JlYSi|2{N)KDrnc!iZ+#GS!pv*C*HTlgSDxd zTz|twpW0?r&rv;(XF^2X$+IIU8r@?>nD(pCf(P;c0x6c+P<(&J!%jTGh;R>*+3-$} z>q;;3Jt&kS7CrEl!jg8Rvce4JrL#h7c7$%U+j~$cMepwr-snv8pw*eDGmom6Ckv)D zUSJW7boO9ti3A^0wM28w6P*)=MC8o#pHtM$Gu9(0TRYr6h+R?$futsR8S&q8j)SO^ zhUuSaCW;K_i>Kc12$8!M=|KU+`WWkZ@zLXglkT%R^`8u-w#iebhGVJ3^6z=f^{+1eR|F6aCw4RM=CP`?1A%Kh$9L6hwb3eT*HmdJ((K+_NTgwkEojBB9kmNG zQNEHS>h6%!3fq;$33-V!q@+9>y`-e|AVCaJLf*0l8oiv z`u5_VTF8wIt&*flv;zNggjp}*=6QoDistF%C=vGaqQPW$cR*R;Ul$aE@w#^S%wN1Q z#7~=ypnkcv18vn#d zv%WTEF~WK1n6dpZbN>3EAp*}lm%Cn#&m+9=A8Gf~kRUi$NIHCFo?I-KuNGg~fztIK zyFTs0pk%DZ<(%uScn|{v%EQgG?FJ`9(wDdnm)& z2`c~PUOHGRsb?dC{mEye{N^ntsflxGfN<>K$pv@}rnMDWFdzVi;$r)2V_?b}tz?_< zfOp?bI(e0~f&S?%|Bd;$BJ7P+P9tE;h}*8g?{eed|uW@{g*M>YOcrrZKGWO@=p^e~C()ov&;Ux?aehy^=1pj52 z!y0fU15iMNcF2yp?E=vx%7Y{9A0FN+nw^HJBjsNr_?Hm>-HDkts{hGY_3@L>wIA&e zOuuLoGWR42vmyzNr6EHQ6p{Z0;>W6_iaB2|u8nuTsllXd3`Nc)LqFfwwjLKr~@I9=SEG zXq4Wc-23D0I@EV074hRb{!X?7Im}q3L*-4+jc~}rYmCJt<%Xowx!{MPALpt5F#k2` zV$x5!GX838#pJ)+$bYI6IFQT^kua;%?}Qc(QJ}&l{<5ZjF&yt7isQWYU7ho1{X z{_{jBt+~>IF>SrbLJ&b{`d{ZVjMje(piBR-_li`ZmR{~*|FAigTVa1o%f|61 zx)928+s-&na37NDt|foV>NOI(tqX*VCM02Z(mm<{wIzA2a(261yIQU1iydz`u{%) z^~c6B{I4fzmGY$b<|%Hr5ekQiJj9nRrg)SqT(1r-rh>K+IH`#hQ)U|yOa4^5y%Tmi zbd5PoRywSE==%RCBmeL%X+tFzt|tG}`NTgl=jBiFxNWhLF8jr!9p2KYqIpMuqVcwx zN`~xk7k~EgcJfO0rxBDpbS@ET*7QyI@|7TT+vDCy<23mX7Gi0er50rWmmcS)mv8-~ zOYAmm8Hd=H<~h!`z!L5mq$cqo5)okGHNQs+Q!ZVo!9;QKSf2!+37?dMZ$3!}8lFsV6O|$Z_cHbW9nG#9b}RQ zMh;TU%cqRIJ{9J`&~O$^4C*qm0fmjavezVYQtGmwBNl zL_bAP(JpJ~SZD3RXIS8ZwLuR)Eh|I%g$Ux<;N2%gDRxAKx^=N56(+y>pfh!u8B4eBJ34;7gxD;>8#v!B8$gy5)~ zf-0|kbPnN`*V;!ed0-8IZ|RhivI+v8f*;kS<4pGPIWpm-9GNS2N-|iH>28#9Lkv_G zSSt3dokDtCOHX*}3RlE{mAJ(BC`9Y7wbS>kWk2b+d=}FOBFKWq!jgib!pwp?_)Tp~ zeLrmk_Gcm&iajv_^@%qhdYjJ{x}nqU7^uzfAQP`Qa*(Pw>>`>`zRr`8H>C&G9X0l9 zfa_w$P$7v^C|6!tr&HY(CnBvCM%5l7_8SGB5@ir^clSBiwM zqCu zF9Fm*E6N#>y<`YA@GM3Z$v?!_uzrNoMt=;5RUcFQn&-seU5sLsdx)i@dbAG)sw36M zn)>pb_Vn0*U;)j+Kz$If5Ji7H;Q`hs0qeW+oMu-Hp@>C8sO!zYQKiVX&b?l~F1-F> zy&KZu@HpXM%m;`-sW|A}Iu`=;!Sv0l-|#^)a;#JYRJ6{QkvpXV)*dwj->s>FeJ+fH zMZqB$QGH9yGD!h!Yaly(YvOq8RyrBfV`_cpfpFvpva&B3@l-zv!N{+&oY#q5F$d+`j?V9nu47nGcy6o} zJoLSVv02=}k>g>ZD~pLO*n_9y8O8EV)zf6y-)|~maPkW$;RX$eZnfdQl=j!u*kCoV zk#`NObY&w^9)(cgqjvt4q*xMQSgp7JTzmU*tRg^=0gu6|H4!EGC%26?_l;-6R@eYK z6MwYCp{)5B;L=hd(1)of;Kw!LuvmEIk~P*4^8iJg*oCs-?U&Byb$2>UIB?tQ#Y?LfG2YuyXB`bEbSiRelQSb9#2sJ)QQJ#~8(_d#rNr5- zgIwMVXtZv(BfmD>p-`uMST9NR+d!fZxyMqzIRq=f+X>A{MGgnw18eUGU>+i{zZ1Qo zmZ|3D4UfEW|q$Hd@xgckyInfiv1JI$ScA+zHc&9&yANX^CbgaC=~}^mrz%TYn2>2ee`VL}l!wXT|Vn0>#9p5Geo8Ve)y1 zbxs|r(pU>Jcr)@c{!HtGz1Q&60^MSsoP>jK(_He}5X-&d6&%3WbBm}*`8|T!sucl% zJnea-of&lbol-s7q}{dH$0^FiC%C2)5O4Vm9H^3OpLxNW3M}?Rp2~D2P-_J`C<(8> zZ@3RO^iEoG!oCH#)O}xEntD(C)&}txvmpQ?`KDhK#zj-JO4c8$zw{|+ENF!jVD12! zk@1%ncJh67)X++G(9oX!hDq9r}C3oJU?O$=z3fWC>@s>a<5$)(<^l82^n5hB#%fm^G1O zkNg{FSf?h`D;2!n7Bn~VAh_}m`knQ&AKcp>`y@wkv6*_XkBO>NQ_$lnY`zb|zMJ(jpJG}t)4Ey(Y3QF*P=R$BMrgg>4o0nlCo zzRur{>Z>{{PD%o%?;M>)uLe8|Y6|+zH9u>8cK)mr==51T(D}dfB|w+D;3uOGfZQ*K zWfi8u!r%l546nXB<_5MqaUG=uT$01`)<{1G#0s5kUbZffQ8uOFm0#EjD~G=Tv?>?S zs(3)FUIJS6hcy-wSEYFX&g0?Jg*NKU4%O<;j&HV~40^+)S4*be?2jQAf}v+#Er2># ztXvy3_NG}ak&ghX7lWbEo-L?Oc}oP=f6y2bxhSiG_{qt#PR}7@qwnV_Q$dY zPMiuoT2P~Mme_|t%b5K!z13i-y>|=B8)$iwRRJejEopeUKQ^!w3{CTD*=NfD_9PA* zf#V0T03ApJ+KK?1rvRN02KEdE+NbW1nG0lmY{*6c;s+Qvwf9~h}=$BEO^m0)NE zFj8Y+SVn`!`?rAVZr~-uUr(H7=YydLV0i98eCmLa;DC|1XH^uM(VwvCXO~Qsf9>1! zJ0eAO@{#{ia;Ychoij`OFsa{dU*kB10jiniN zQXLV$=3~}J<+dBnkb~PZ&ox%#8VXVN+e!`lcLA!qiAg~z&ph{94b@-n{NQk#bejOI zXkM1ECb2Cw#B6H^dsf+f2ULR9O0Akj3W2=_(uHjsL5^TDEbwBDVh{*Ch^l%Rr5g{e zhSg_Q0l$L@GF{{XuEr{IcTOOe!RJ^L1Q*X2WD1xYYr@C#9XSTJ!TLYZ$O1XTc+;yM zYb1iEz`(DO1bAkUzro;v$+m`!s{7qu5E;*x@TJ~f8QV9=82D0OFVr>@sR%*$_sZH5 z_c&{?_c(XEAuidSVw%B&8C3=vuRteY9jw1uHzkA&HZ5bTTxU=TC2M#-Acy#}W!r7- z#sP`-I7|0T#`Pen|5UdFwc0@KJx`z(1=Q9|E5UF4DZ~PW{XYe7pb!cabb*5T;;eJ` z5%>`08NLY3w^QKy!W;sw#*)M**mv`S2;qu6i@uu9P24w3>e!(=}UdRARastO?qrj7^jhb@e-d?HvH%KtZ@%&TQ zuE;SC*Pwh@L1uy=PbabpTs@$bST&6#1wYP|($+wO zlI&chdG2bIgFb-w226MtBS0Box6G28`Pz338Njl zb$~UGfHfuZcOcm-G+2{PE>u;jx-?Iwy7Xc-vH>0}k)N9f4Ss@Q*+EBDAeZ5_$yMJe zltEL#)%~hr3IwPDe!aIB!lR|p0^$P4qG*K|lR*mr0%*DNzaX_h@8Lcvo}CnpNF4ki zeqp3{y27p=kvXgzRRod(H(}RA08pBMF5wjMv^L$GpaeKY0hlkdYd`0ZW0jRrqgHJo{m!$lVnrC9&;8kt2YP$;}Knbxga_}({Uk^FtgxW`L) z=`szr_fI5xfJkHmVIly+qydCU9|)5?u$al+fuOw~!Z%l_oV%a?s)TPYQaNiV`I$gw zff@}wpm_*Y)hj3&5YpMS1>0_7@cDoo=6;6f>wNH{w4V|LG3ez60NV{do$NVIp{(5S z3F{zW+ZYEO2`ILB;LK_x4RHs+(-7bc24m~R^1mTpjPF@z(hB6aO)ziw&9_$lGz0Eq z?_>6Z!BDi_Jm=>F_B{EYPGE`FvbM2EJqT5Ay-jxjNXWJ9e)pS<-6Uiu{GpRbU05sB zsdopOkH|(kK%QWFrSqGSzv0Ma;I<2}1U#grUl#1LRpx2Y?F(_+y#;q^n!xN@#<6wU zwglVgRfoiDih+jV-x6q@qvDVh5EP~toFDlI5eW&d8cBqEV{_-lNo{w%?yf%JvFIKS z824D+wUF5$9_nME7E7GEz9!D|71;uw{%C3&O3?_~0ABPwE|{F)*i8yjf)2cC=c=cS_d$6*GTFnrMWASYW*0K6O)p`mvJ&05iH{1fe{obktLb>TXF5 z9^gg`U^jFjMO9Gq0H(KbP~rX^DV~Q>IiR<&EXbe42OwDQ+RX~e&@bD?cmJFL4Vm{t znJsF91O|%DrgqnEv(W+*G}*shTdNU@%!JqPyi`_peweu67*&K+fi%IsWY7xpV3330 z*VxK_U{`9Oj4~|SE5y-gH*++|wQM(q!V;oZa*O?$0~<;HTPVD*SK9VwE4@{WlA@8+ zP!<)>k-wwFkJ2zn>Jo5ZdKGfG zi3&nA)XQBI3P1?oIE{9 z8W18H`!XK51tuHNhc%wg#@3S&q0TvEJ9raLk(OYkk%;tx6!w|ec8dZuez3Su9bQT+ z(Wx{Eh~EHokw!x1OK@NB4xlvL0He=5%R2d!$72a+WS#^_Q!lLLflv@H@Rg0AwY6b54G=slT8v^GuN%4F2#z;>aKJ zv3ExwZ0QHPj=FCE$YLIt4!g#?m<1XJy8ANCn!`N?fCPQ1=VOgn5F<;JwfvD z(jU*@W{akPOt>sirtdzm1(6RF!RdQC8_PEMdAgB;AlW~?wRDJ?u)84&CZ5Yu-hPO7 z+hPDaAxsw=5BF|al+iME7@Ig#*ixW1wx5C(Kbjo9#hjOX{un!q93M|t%s|+iF0ugw zU|s0?{$%kpkbj7Ut^tzFj@GtPTC9V8j6cX1veIYb)~y4Q9q7&CpU6#up6ajSEsy(a zX}}nrOYMC=bw{qBn{_j%!9>&A)-lm1Z>60} zQ>#Ub@->KULRFqh@`+_14Gj1Zm(}mmugcIS= zL9NhVsbL1VsNydMDm7z6_bsF1Kv+OzhSdP8^ZgI_bU+D%;|@J>M&4B##(#jg>?i!h zHW%pudCDSE^q`Bm?pVs@5mqa4?t^Pg1^?qpJDDnt4*;PCivX0R03@hfZ=CCXRW}H9 zxHA4yzuYRQcY=8ryeWoonmpd+Lf7^gb`?@r)V$y2tdeH`o!lKB?W6l z$_U`#7wnnMdtc@4FDi;|UY_#koZOGo{4G_L6u?=kG?>DX^l-><+c0!*;SR>^gW=LG z2a}^orQy47_X&u<{AOjJII4hpw87KfeazSV%AO+w2{^4C&VM6phGk7l%|a>F6n|e@ z$BZTx>9f97l6ZDL@D8ez`iIL$C6mX^#di?jq!jkBPVUcdiH)Y9w?0vs@p3 zb!WMIWA>!VxksBbPvtG$Q1RUkh6Km(FL>{juLHlazEL0}P~uRti+uZNyk>CI<$La@ z*Rc3woJ2$JKOtpR6f9{+r{NQso zZz6wz?tBg(!l(DMOK)SA|7#&c=L7ST#G~~nfeXfmMAe7H+eCdmn&Xy|4ZJK?AKJ6> zu>s=YtFO%ogPN<2Nu0DpuF-PzK}{UBPA8o!TAy-fPaF#=-G6e2`xQiFq~+zOM+A1& zVp7Ngx)YL^vQD3Z(}2V*bUTzqLz~-2NzstVIO!pE1Oj-=+Y4=pv5cR~3|11>zeg4X z>&U`lm_aE*t~@M7%$-|#bQj+!Sjry5d2HQXN#8G*9i{?bLb$ceFuc82G(#H{onA4R z-Lb+Hm{l^MYJp(3`;n2}E^D)u`hcF=hK=vn3%?3-=^k~y5J$fC+-IH3Gj4v&_Ps;D zl2gy^Jwy=~&B4jVR0Gc`DEiw3Gg)SM(nu)h%i7O)5>FW^#zmS)K}n&qg^9=vzElPn z{@3T*6X8-4^##VweZET>(S$Q~5BO@DcKE`X zEa?tff9kJ^sI|Ed#L9{t>ygCw13%t=rG%O|MI0k;8j9u`sh;>4EWCbopkg;Cd;J{# zFhbU1t22`k7I9O7Ya~3_<(23*o7#Jxvm7sl!K_4E{#l?38#)~G)^c!t%zI3m<8)_2&?w;7`lLF}t zx!M}4%caxolIOokDXi8QACAQc{9txl3&Qe z^~_N-8g!vf*{I2niC<>Mp1M)c+{e?qJsQzlw^8+Nn7+4}>?iVGzX)SZrTa)8frUoE z^VeY|6Qt4hl-c}wOSaY8_)g`(#l`hTz}C~r=pw9s4(l4dubI$(Mi_QT!Whu*+R;VH8SXdZKTB5_Fo>i$-#{PrLb>|w~1m8Zc^gdt4kkqFo zzFLH>s^zd$cq)(P^yZVtpDgL0c&TL%Nky+L5~@gUzf32Nq{cRuEEJBLSNA*(bv6BT zpnWrlmeGo}_JH(Mo2ut2uN&V}xtu}Zw4{yv*qo%wi&VPUhR^j!Vs<~qsu zZ^tA^KRAZw_`CUi@zF$%0>>ZM#NSu-zHfo(*<}|iz{;(jmLx$xpI|ggF;|4*rfW3* zX;h;YAeMpdK!y+zkh^D3PuhEioAxWKT|E^rK^wx4_-X2+7Tk!H5F*oS*JihwBmJ|M z-ueaK>^eH?q-kl^eK;r?kYzHbThOOj;LRcj7LK?y82FeYfnMWcZqha5cSR>qg&6b?HCZmPYdd zo6I88s>D+GaAcRSyARQ#Q;+wIWzco@81(BaH(Rq?y68t2M@%@dX?593g_}!19D|N( zEv#zh(M5kc{}kieAUZX^I{`%l^M%fCZK)E=;lq(23aXk#bkX-OiMr8hsV*$1EFj!# z(`wgEgu9K4h#dy~p*5qbEQ=4fa>>w*)=70SJ2eC08f#!d6|JAD%20ebnM-u{VYcYh z>}u=W`GAwN){|KB%uC-7>)mzKkt}ZOVh~io+s$7%#a3PnM-DuBLmy1ihZnSo)3-Kv22v=xY&9+I+ zgo6X0KRBFRGVL+G>4^F&*91Ns?PWqY+Ah^a^CSm?E~|#IY;m}{Y-16LTTE9bwm2ZH zi|30mu9>1!_jU}V(XKTx1MpuhBbcA zfw^#eP26I>dSZ(c(?w%0pLHL;0va5-OQH?n7@4lt;YlR`HxIA)ZE?@rMhW)1A}M=0 z7$5VysNkK7X|+bK)k$73dNkw?JuSP}3SFz?zZicv_x->uI%H$S z{q|{@K`ZS6i+1b%1Kf)cmJxTJQ&+uK{k1xw3z_`6l>=N@h}np{$Z2z0h}oz+%c-kw z>(MY``{Do>8^V!0cX)8ddEuKo7khwv6{0Y@t$uJOdEuKkr@2-qa-pQt8aKSXcz}xu z$;q7)SU(av-HM&7H@_WtEUV1^*t`GP0E-K0Yx-GU+nN;Pz7LCn)8vac0ohEnO!7Z8 zW_vY$b8p;r!90_4KX@T!o3D8=K~EL3za657kZX#0YaWuL%=&;hov!V@lK6tBW2~;5 zxy~XTD6OTwpzFP`xT>e)D_sq9vLAHRX>Rqro$ndM^E@0QblJ`O=IIF2*y{`0-s6ko z&42H-ix#0`WGRQ3+th#duwFoQEJuitGSZfFnBS^*@@Sub(ry^DN8W$fvY~`#8$^58Y$>`ZNZacQK$iT9(ot#Heehi_dP6>%+ZT#c=8H>Z60 z&=wi4#@0B$nyrs6XY6Q;7*}I^9CQ-ltB|S*95iJ;pR5c`@R?OBRqG%7gMg=TU64G)ParR18&6bew9;OYg-7S0XG46 zzn4>6n_E=SM(TjZ&VgUR8w@>aa9ubyYhR9CUrp3Z`Rp&jnzQ1%v#hD-1GpHO#<-xy ze5{+SyB~7uc?XWo**E9FwQ5y`AfNP4-*jm zj#W82*w@~tU)f*oW4Nk_y&PuMr(#(vKQq0{)P^Rm-cof5lEhI}ZgIH;3F6qh(a|+q zv@SusIQA}djxBE3B}f{_-ihw1-tu$_Qp9Dqp#`e9v|Y{u#vPtoA#f7aTNsxhGF)sP z95>^lPgs`r#z7PpYl|D5JoG`|4tMRT*}9Ito#gt}23Iq6$cnz5=K9qZw?B1=k8X~4 zm9W9RnL4CHHz&JF*y8%94$08XiLMnkxK}PgP~1Hmob%-2lRCDL+wwmAZc86w1gYa-2Wtqy?OS(zC&oAMdIw>gTwb9D()7)y?Y zI}?+)KyF-A$ecQA%yp@4!O=l#+7<&h?R-Zq`r6xrDqcH(v_4bQXzj?jonrlN`s+L8 zws*?Ku|7%G(M`NO*k9IZOSCMPB;+}?bUhscu}zB4o~Ww>&n3T;aHOZo5?{7`D#d`) z&N@uZAj>qFO$!ccW;T_ zCOD+2ZtK+IauG+o-))D^=-#s&gx(3FJT-jxoak+eL#t!qstM$_#Bw;1Mf_U4DkI-5 zmmy6$HmNn+S73_MJMZ#|o(tbERL#jFTygRnmJO`M%<`q(p8NfE>d+4TJkr(D4rf`p zQLF`%o2UUQ9@_kp!Qth-jMTyx?}tXFM0X-B(JQ5&WtRxzR{Sh zXiUI+R`;b~y+MiP3=Q$Nr7)vx*CjPQana=l4e^epcShOnOE!Aq;>(d5;_XX`Mo(Rq zjPzRc`w+krZ55Jqbpsj_`Xw7mlZ}~AsQA;8yxt{j!@L571VAU^{KoNnPk4-BUVK6o z5HCA^95=cW7MRQj#G{aoC&rzeCEzupCs+kwv z=Vp82V;RfRPw))JH|Zvi1($41$ z8NdUdHR&TpPDfy{1;LZO*oD-6Jr{wq82a3o-0l84(%^#jxECxd%r|mL@rDSL8?k8VFP5wY@`qA(_;u zg#g_?;L-afY7Mn{w{gAUH}rHqZQkIw}jR^Z6KK|6(p_uZkY(1nlK=hFkqc9K+hE`0Ft)Us2)M&64LQ8*BW*=_I_!6 z+0|$grPY$+K6LHE#&@4GtJs&qaxWoqb2~$20#%XS(FrT!&vqo>wO`+6;$%a1f# zdY9q~n!fjPKu#VAb%viHF=++JpI7op61t$VE3%{t9pHnU-!ciTm@biVo|3%KZf?If zVH8EYPnp!30!DTC>0LhU+p)UrS>kB^xsU@pL?o>2XouLXv|`8_zU9vGg>mdfBd>ot zHDJI{0=K3~?OEzwn)MYQTuGi-3UNU85PDSmo+sD!sZJE91nf|(HePN*qf0bN`#Kr? z(dk*1ebVw@fc!4RaPc#y?oFGWkWh|R=fz3#Di)oPw5ZTNCVkzfqw?SdknMITe3+NE z(C7`$B=;n+J|4KCHrbIZ9%J`j@6UQ*?+Bnlz+VkSv@!~>WteOCx|g;C?MotH%%%oI zfBx(1{j<$j!Jlo)x&GRx*k7A$X#MGtxxrsOA`x1|ha_U|8+8-H3HW9Gz~|xpjj}dT znnZaZc7}o!(X~fJGbJ|KP}L_joUV7{WgVlUF-M4griHUl^hFy>dU^+1(mlC{;HN%l z>S})lEznz6O@6;bFm_+^giB~tks3(XjFo`&CJ|oEq9>JRuq*7t`nW-O<|l2xc_{f| z-yN#<@Z`0Zs%M0^CjZ$~I{$Ca&Ny9VSAR^=ba2D9OQ7%Sztw5#A@R-)hiw z?TqyjSz~%awj=M}s{3C*+PbdzgT|lp`ub9Kn8N7nU0Y!ywA7dty0Lmq^VQm19xzRs zx_{!NsL?Bsux7#^mz3w|CCEG1=jjk3h2UzGr?U6XU6jPLpH}*CBmIW>6V9=bRny1} z))Dt5Cu`rLm#5y$pCqEXWW-=>ZynkXXpW)OP!Aj!-kVy5&GipmV^9gJ1=LLsP&a8^ zZe&D_Y3vHgi8TMO6>vay@+z~mCAayyxD{cwVPPFE_b%O*lta~>bt16@hYD4ME?-A* zANbWFORYKg4J_F!D&|^n#5;qi2O7rOnVm#@IuX`3pUBbOsalD(@=im{uOuxhA9I^G z^YweFYkt1R?NhK}y5JrUCW^T6st{Cr|J^##d!2{`$D}(<=`y+zQ(0nk?ctNc&e9qc z(vFd;jw~g36;_$7^VJO>jzUsiA&TsL(iM~zUmqI;!DpXw8o1$a%Nx#y9kCr_h)&u< ze~$l9Cl)sG7!Ng)F$h zbk%WDJnvsXLODQD;E)pOz5}FF6r{WRC_zf;TtZGcj&6}o=?0M$0qIgYJr$0Q1CjhK zpYQAS`)BrHD4Y=KWmF|=hs2(xnDJF_Igsin{^FNx+Ig`W zmz2B0+@#sRP!Q;{;`^P@{H#1AI^>)u4hUX z`!TMDy8HcHl~_w5@!2|fbLU8O7tsi-dfKd-s!0Sq)y%LoseqM))PHel4x?N(X^4B; zEM#bu_k)Nkp2X)LN~OLx2O)UxB^fvWSh_h;avX{4Q{~7N#iRrh*RL*=UD3_vkDBim zvW3xUD}sa_NW6M0mLt^M%*#=+@_d2o?&;eD%3PpX72L#uiZzT!Tl-NnWwPzvFUcjm zcY)S#+>|{JJe!{Gah9swjQz~T7&z6p5Z#rkFF znR(<2dMfcnmi&<&D$VBIw{5S*paQi~J=mvgbX?X)t6EEBkpuVjIEYgtOe9uK2YCl~ zxF&_D)EL?A{ENc+S^k6j0ZB>N+VuW$ouWZ|_SkqqY2B`0ul~zu#tByDvJ3hpB*AB7 zMt{*1py_A?1pR80USSZo6K&p{GX`#bRLf$sJE^Tpmr@!?8+||c%TGtqJY)11VV+>y zTgTrKY8I>tHYR@X#MI}s_k>i_Th#{A3@k=|QRx(A%&S?jfz#mik!luvcFpz5%>N9Q zo+t9mj?sO}B4~?$TuZs~#g4CxrC+B=i7u_xVgUDoAW^qKEmj03u0OD@EDHClOBzpf zwLUPI-5X0Rg8OAa)MLeAes3YsS)Lq;KFYMxSXcJl`1pJdb%z5Bu6&NgzF!wQikki* z{ltZ86e6&H)k(m3BBS+dWD@ohF}s5bC;{g(}yiPBQT-PEdNZ>ld9)kvIwa6`!4dR(SuFN_y6s)oUY0en4*2;}@`Ro1KJlef&ps zn?CEJ_nhP4S3P{0hQuNHVN>}{+;{TpVJ~aW`gJhZq^_hIKc}6))7$=tLbWPS_@|O2 ztRFc$P3nK8B)4n!l-_I z0PKbyuurA`Nf{>oC-vZeQmX$+fn(gYl=QWfh6v4xpVTy~PFisDNDgP@6y0~ZJTjuk zNuYV6NVzH>+e^6`|Aw8?MX==K)8>w4wMSBk3ud4l(h$cvoRdPi>T1Ok>AtyZ0VY)q zPklo^MFUUM9AEO>wV&HbBoT7?tNJFr(VNn`Xd5pQHaTVSXsBMA6Fe#L9OTD<{E9>n zzsU=-7!yD|#WkM)8h`g1ub)$w<`|%NEyaEfNd+N`tY6gT?_EQ{mj<2eZ>J`KJ>i%4 z_eX?9e~i?*1KszG>e7bsN9+ReFr>7yT_?1?9oFXn`f9*;sg+S6dm7^taZ+LS&K^5E z7V+)dEB>dxR?Zd{e4}nHAz9WRLTD&SVkqRrhOL=;?tOU3=V0EsdE=h(_UW4+m725y z??*8`hkmU>7z&~GxBID3a93ymT9vwtx%*Fg>HWS48u)A5N`q;m-R(Zn>Q#cvWbad< zE$z=ynAOl7!Y739yvPI!dE1i0WcC~*QjHfBR)15==I=R01#q{H{B)qQaC;>XG0D4A zv8Q3BOHJ5nlVQ*)*@#7t+6Bshk7GG>LfzXW*q*U3jV=~y&))AwJHRd_FnzQ@;(ilU zcK8Gk?;VwN<^N^3Ur_lu38i!PboHpSh_E^?n=3JM>KCQzI`?4b72^`4Erg#2moCd0DD(=+B=0+-H5~#OF^9C4Ur!LdO|bUl z{YCVyb)W#|3@SV1ON4QQ1%Cho5juKKxOzunm;9JiXve_G<6Z!9uG!mtyG8@3yR#`w zJKF7gw>JuI5w@>`p0;hJ#>AtQ;7f7)ifB=XRyGU;?D8Qv2faJwOVgWe)%qFJtH8-x z`m50^wK4u}&Yr&&hNcD@PzSw0Q`iRLV`|WvHh~hDI@;{MlPA42@OJcmGMYoM{rx^` z?=&oH=!B?ORIojLU%1x?1_Y<=tMyvios;!0+n%#xilMUIC!f*THs?~9>Fe%N{iWQV z=Ga%eR~2TFu>T%CeS6R| zJ81Aqb?Co{Rtiio82=-K+TXwK7mU~a;_LtVMe05fgl4jr3g4fm1;Y15X=VGtijuWG zr^jT&E@}V2wye&TdI4*xa*|CMRP|2yJ|#NU_8hNwUT7(PUjyx9*Gl(a5scj@dcDPP znaus)=qf}Y1qKUtx8S7f2Sl8UVK``ksQpPa@a@F7cN89+wXce{1Z>WUuUo^g*Mo}e zmB$aHi(8Vc@ZSmf^7!%U5}NvF+5#_L_67)ojV<=SOVgr9?E}d%Txd62spNh2Ev<>) zx%BA)SQxpT+qYjS;ric2XWgq$xroUP(#w&pU!6ua(H&hUuX;6M!SDBl(3YN3QhPP! zUT-J)8G2cO+3W@ME4N);>OnT@03&!6BMm?GZ4}K6zuk)B%ezI(mTFIfgpYODvvgk= z4n?&nzy&s9c-OnR*Xil%Nrn8>(s}FIV}%lnlllc;PGqLz^w=Y(ei_?SYO%vp1;Hl1 z;|=YewU+7&i!qS*v6Mii$RN|vZL@FK8`wq`Jh*^+KJR)Z%^to}zoElkasx}PsfRZa zju#lJ%zIDQZQy45SHZ*{?#pM5IVsgTMqMh_Y^3iC!YUi(r(ual1GbruXFJtIxDxeV z)~2UB>#{pe*-8qD7pPIsB>JT>^lE!U)6pH>*KLZBDsS#fj0%X}^?kLZ$G_Xduyaoh zPy(>c%0Z>gG`s0Pmzd8PY6~AP%EorLh+kEE2BhwNIpXV*N=q0D=fdvugYA6I)%#iK zQWzr*-R<#Z>U9v5iQ4x=3s?n;VgjJcqbKscvG7YujDXPP?Q7Kw+xI|cJG4IKicRHB z{sC{nbDgwrg10EOe-KqnwJ+{)=Bffrq^^5u$2VUHrVOfSe=geBO#meQTT7fhb^V-d!u8m z0`FsNXk)Dd=`f$6p!U#$HGQtzJD7Ut8}Zutg)Mjs0)jFT`^ML`M1|=`?^*@YV2Wue zK2KsOmiv)_MQK{d*R?Ux|p{)N6_n=m#|FEG}pZzIBt*Qfm>`<%ve}03f|4^Y;?fxXARww+D z5x$w?+TgExTj!{>4g>XWC=ZZS2~}xBc7>|+Ap*i2JSomI5Xsty20GD*STTc zQ|)hHJvWj=HNiFR4 zuzAi{i1^reY#}uK7-mx4{Q~=yg}VOr!x4TSk1B%nsk{b)D&w)<&_wEbuN4N;9gm02 zr3)7=d-D-D+OBZy{&U2vPn70m-Z(SNL=~f%k{r0C#^kfpV@`)WU#}1c*h>JCdx?Y; z{q;4q-Q5RU|M1O?;4*ods)j+-j9w3W*!R=;|MfBC{9bqcy(!!x>2`eRwef4zuU$h_ z|08@(HW#XR#^I$9sM7R#r)5#PBCqRYv77dHBiT7E@yLvpv_2=gbW|dL1z*37{$wz0 ziTvC~o{2bYQ1i$uCxP(7(`Op6^x+E*dP?AFPrQL9o1mrJl5lfZlMc7E;(R%G z?}OMh>Rx&p=h-c>;Ihn%*Dn))p%R@}Rw`bJOmAz|O@)^JyTvLQ=WJulVH5hc!GfLK z!72QymwtL1W~0*i_`-&Yd{+c5x#w| zYbhkPX?eE1L4>$!KQM!d07N@~Fsmh&cfwDbyQ7LW$c_vt#3G3t_cji)*t-pBTWK_JG zK$WMzPy&`JNux?puq|N%yZF4wP+Ovno_4|w8z-EVNyd<%FFpn^e=IG}Jx^^JC(qt^1}tCPso3qs z1#?UB?e%(gOgKh}7E$O)@a^~Fx>SlEFQv&m#nykLn*`o+Wg7U|oPy6L=%&V0=xMSR zjU87hjsOvg*!l^&$v&`o{B2He7EYSDsbv>hTAS=f zV{5<~S%U|?pTH9Mt7YeU)?c0Qe!it1Jc4u$tCAb>xJRk?SWZ+nQ9sdGrPzxwT}BC8 zUkyB*Tm$cb+V&J5tlcm*ORxabIIL=tMii-FQ1aMW)>l?f#JgvfLz=0EWyT?oE0=qY zX3Odg=o1t5{p*eBC#QKb4WexPQ4@}z#EOc!GpC|#PVEaP!(OQ^mwKAOW3cl{8mhhU zptlo_!(v6dIud*j`f$=J#rl}Ec0(*s?@T}WmnU;7+U8WgaPrG5HQ91c6Y&@&oUda5H=PvY`p>JVBiGY&urEFM3HC*mo8U#k#JI&W z;&fg`DIn-Awm2!~*#AA&AxUF%0Dd72Ui-D$l^nLdmVR=SJ2NH4=G3onat?T{)=}bV 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 Ry6u*mCZ<5$`OnXr@qdjDlHLFS diff --git a/tools/get.py b/tools/get.py index 45f97d62f54..6f42cbaa577 100755 --- a/tools/get.py +++ b/tools/get.py @@ -177,6 +177,7 @@ def is_latest_version(destination, dirname, rename_to, cfile, checksum): def unpack(filename, destination, force_extract, checksum): # noqa: C901 + sys_name = platform.system() dirname = "" cfile = None # Compressed file file_is_corrupted = False @@ -223,6 +224,8 @@ def unpack(filename, destination, force_extract, checksum): # noqa: C901 rename_to = re.match(r"^([a-z][^\-]*\-*)+", dirname).group(0).strip("-") if rename_to == dirname and dirname.startswith("esp32-arduino-libs-"): rename_to = "esp32-arduino-libs" + elif rename_to == dirname and dirname.startswith("esptool-"): + rename_to = "esptool" if not force_extract: if is_latest_version(destination, dirname, rename_to, cfile, checksum): @@ -256,6 +259,11 @@ def unpack(filename, destination, force_extract, checksum): # noqa: C901 print("Renaming {0} to {1} ...".format(dirname, rename_to)) shutil.move(dirname, rename_to) + # Add execute permission to esptool on non-Windows platforms + if rename_to.startswith("esptool") and "CYGWIN_NT" not in sys_name and "Windows" not in sys_name: + st = os.stat(os.path.join(destination, rename_to, "esptool")) + os.chmod(os.path.join(destination, rename_to, "esptool"), st.st_mode | 0o111) + with open(os.path.join(destination, rename_to, ".package_checksum"), "w") as f: f.write(checksum) diff --git a/tools/platformio-build.py b/tools/platformio-build.py index 1ece3afddff..485879944eb 100644 --- a/tools/platformio-build.py +++ b/tools/platformio-build.py @@ -213,7 +213,7 @@ def add_tinyuf2_extra_image(): LIBSOURCE_DIRS=[join(FRAMEWORK_DIR, "libraries")], FLASH_EXTRA_IMAGES=[ ( - "0x1000" if build_mcu in ("esp32", "esp32s2") else "0x0000", + "0x1000" if build_mcu in ["esp32", "esp32s2"] else ("0x2000" if build_mcu in ["esp32p4"] else "0x0000"), get_bootloader_image(variants_dir), ), ("0x8000", join(env.subst("$BUILD_DIR"), "partitions.bin")), From 87c0e7763da8838a4af19ed1196632882e25fea4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 Sep 2024 18:19:40 +0000 Subject: [PATCH 011/179] change(tools): Push generated binaries to PR --- tools/get.exe | Bin 6943192 -> 6943192 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/get.exe b/tools/get.exe index 2082c7a4b68b6438c4f43a736a9d1b6aedda614f..5a1d7b8e90bdfc4b62f4342528b68561dfeee102 100644 GIT binary patch delta 38672 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 Lb~fNEE&TdF6Wwk$ delta 38673 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 Hhd=)V1SUr- From 9398d52ddc20f0fe1149280fbe6dbf423a37d5a3 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 25 Sep 2024 00:05:49 +0300 Subject: [PATCH 012/179] Update package_esp32_index.template.json --- package/package_esp32_index.template.json | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 21b3635bfcc..4df82b26bee 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:fba40f59a2c1ed89bb3fb17c655ea312c9d6a9c3be102fbcb25f27e96ddc2bc6", - "size": "320072134" + "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", + "size": "360076736" } ] }, From 4bb287eaf6cb23303bf22bcab228f0e35a3680d9 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 25 Sep 2024 17:38:21 -0300 Subject: [PATCH 013/179] fix(esp32p4): Fix compilation errors (#10371) * fix(esp32p4): Add missing touchpad definitions * fix(esp32p4): Add missing target in SPI example * fix(esp32p4): Start touch driver fix * fix(esp32p4): Skip touch examples while it is not implemented * fix(esp32p4): Add missing analog pin definitions * refactor(formatting): Fix formatting that was broken in P4 PR * fix(openthread): Add missing targets to skip * fix(esp32p4): Skip ethernet sketches * fix(esp32p4): Disable periman test while touch is not implemented * fix(esp32p4): Disable touch test while touch is not implemented * fix(esp32p4): Fix UART test * fix(esp32p4): Skip Wi-Fi test * fix(esp32): Skip unsupported example * fix(esp32p4): Fix skip files * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/esp32-hal-i2c-slave.c | 772 +++++++++--------- cores/esp32/esp32-hal-spi.c | 7 +- cores/esp32/esp32-hal-touch.c | 2 +- .../examples/BLE5_multi_advertising/ci.json | 1 + .../BLE5_periodic_advertising/ci.json | 5 +- .../BLE/examples/BLE5_periodic_sync/ci.json | 3 - libraries/BLE/examples/Beacon_Scanner/ci.json | 3 - libraries/BLE/examples/Client/ci.json | 1 - libraries/BLE/examples/Notify/ci.json | 1 - libraries/BLE/examples/Server/ci.json | 6 +- .../BLE/examples/Server_multiconnect/ci.json | 4 - libraries/BLE/examples/UART/ci.json | 3 - libraries/BLE/examples/Write/ci.json | 1 - libraries/BLE/examples/iBeacon/ci.json | 1 - .../examples/DeepSleep/TouchWakeUp/ci.json | 3 +- .../ESP32/examples/Touch/TouchButton/ci.json | 1 + .../examples/Touch/TouchButtonV2/ci.json | 3 +- .../examples/Touch/TouchInterrupt/ci.json | 3 +- .../ESP32/examples/Touch/TouchRead/ci.json | 3 +- .../Ethernet/examples/ETH_LAN8720/ci.json | 1 + .../Ethernet/examples/ETH_TLK110/ci.json | 1 + .../examples/COAP/coap_switch/ci.json | 6 +- .../OpenThread/examples/SimpleCLI/ci.json | 7 +- .../OpenThread/examples/SimpleNode/ci.json | 5 +- .../ExtendedRouterNode/ci.json | 7 +- .../SPI_Multiple_Buses/SPI_Multiple_Buses.ino | 2 +- tests/validation/periman/ci.json | 3 + tests/validation/touch/ci.json | 3 +- tests/validation/uart/uart.ino | 24 +- tests/validation/wifi/ci.json | 3 +- variants/esp32p4/pins_arduino.h | 30 + 31 files changed, 471 insertions(+), 444 deletions(-) diff --git a/cores/esp32/esp32-hal-i2c-slave.c b/cores/esp32/esp32-hal-i2c-slave.c index 14da815455b..85eddcdfcf4 100644 --- a/cores/esp32/esp32-hal-i2c-slave.c +++ b/cores/esp32/esp32-hal-i2c-slave.c @@ -361,155 +361,153 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t if (!i2c->intr_handle) { uint32_t flags = ESP_INTR_FLAG_LOWMED | ESP_INTR_FLAG_SHARED; -#if !defined(CONFIG_IDF_TARGET_ESP32P4) if (i2c->num == 0) { +#if !defined(CONFIG_IDF_TARGET_ESP32P4) ret = esp_intr_alloc(ETS_I2C_EXT0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); +#else + ret = esp_intr_alloc(ETS_I2C0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); +#endif #if SOC_HP_I2C_NUM > 1 } else { +#if !defined(CONFIG_IDF_TARGET_ESP32P4) ret = esp_intr_alloc(ETS_I2C_EXT1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); +#else + ret = esp_intr_alloc(ETS_I2C1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); #endif -#endif // !defined(CONFIG_IDF_TARGET_ESP32P4) -#ifdef CONFIG_IDF_TARGET_ESP32P4 - if (i2c->num == 0) { - ret = esp_intr_alloc(ETS_I2C0_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); -#if SOC_I2C_NUM > 1 - } else { - ret = esp_intr_alloc(ETS_I2C1_INTR_SOURCE, flags, &i2c_slave_isr_handler, i2c, &i2c->intr_handle); #endif -#endif // #ifdef CONFIG_IDF_TARGET_ESP32P4 - } - - if (ret != ESP_OK) { - log_e("install interrupt handler Failed=%d", ret); - goto fail; - } } - i2c_ll_txfifo_rst(i2c->dev); - i2c_ll_rxfifo_rst(i2c->dev); - i2c_ll_slave_enable_rx_it(i2c->dev); - i2c_ll_set_stretch(i2c->dev, 0x3FF); - i2c_ll_update(i2c->dev); - if (!perimanSetPinBus(sda, ESP32_BUS_TYPE_I2C_SLAVE_SDA, (void *)(i2c->num + 1), i2c->num, -1) - || !perimanSetPinBus(scl, ESP32_BUS_TYPE_I2C_SLAVE_SCL, (void *)(i2c->num + 1), i2c->num, -1)) { - i2cSlaveDetachBus((void *)(i2c->num + 1)); - ret = ESP_FAIL; + if (ret != ESP_OK) { + log_e("install interrupt handler Failed=%d", ret); + goto fail; } - I2C_SLAVE_MUTEX_UNLOCK(); - return ret; + } -fail: - i2c_slave_free_resources(i2c); - I2C_SLAVE_MUTEX_UNLOCK(); - return ret; + i2c_ll_txfifo_rst(i2c->dev); + i2c_ll_rxfifo_rst(i2c->dev); + i2c_ll_slave_enable_rx_it(i2c->dev); + i2c_ll_set_stretch(i2c->dev, 0x3FF); + i2c_ll_update(i2c->dev); + if (!perimanSetPinBus(sda, ESP32_BUS_TYPE_I2C_SLAVE_SDA, (void *)(i2c->num + 1), i2c->num, -1) + || !perimanSetPinBus(scl, ESP32_BUS_TYPE_I2C_SLAVE_SCL, (void *)(i2c->num + 1), i2c->num, -1)) { + i2cSlaveDetachBus((void *)(i2c->num + 1)); + ret = ESP_FAIL; } + I2C_SLAVE_MUTEX_UNLOCK(); + return ret; - esp_err_t i2cSlaveDeinit(uint8_t num) { - if (num >= SOC_HP_I2C_NUM) { - log_e("Invalid port num: %u", num); - return ESP_ERR_INVALID_ARG; - } +fail: + i2c_slave_free_resources(i2c); + I2C_SLAVE_MUTEX_UNLOCK(); + return ret; +} + +esp_err_t i2cSlaveDeinit(uint8_t num) { + if (num >= SOC_HP_I2C_NUM) { + log_e("Invalid port num: %u", num); + return ESP_ERR_INVALID_ARG; + } - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; #if !CONFIG_DISABLE_HAL_LOCKS - if (!i2c->lock) { - log_e("Lock is not initialized! Did you call i2c_slave_init()?"); - return ESP_ERR_NO_MEM; - } + if (!i2c->lock) { + log_e("Lock is not initialized! Did you call i2c_slave_init()?"); + return ESP_ERR_NO_MEM; + } #endif - I2C_SLAVE_MUTEX_LOCK(); - int scl = i2c->scl; - int sda = i2c->sda; - i2c_slave_free_resources(i2c); - perimanClearPinBus(scl); - perimanClearPinBus(sda); - I2C_SLAVE_MUTEX_UNLOCK(); - return ESP_OK; - } - - size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t timeout_ms) { - if (num >= SOC_HP_I2C_NUM) { - log_e("Invalid port num: %u", num); - return 0; - } - uint32_t to_queue = 0, to_fifo = 0; - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + I2C_SLAVE_MUTEX_LOCK(); + int scl = i2c->scl; + int sda = i2c->sda; + i2c_slave_free_resources(i2c); + perimanClearPinBus(scl); + perimanClearPinBus(sda); + I2C_SLAVE_MUTEX_UNLOCK(); + return ESP_OK; +} + +size_t i2cSlaveWrite(uint8_t num, const uint8_t *buf, uint32_t len, uint32_t timeout_ms) { + if (num >= SOC_HP_I2C_NUM) { + log_e("Invalid port num: %u", num); + return 0; + } + uint32_t to_queue = 0, to_fifo = 0; + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; #if !CONFIG_DISABLE_HAL_LOCKS - if (!i2c->lock) { - log_e("Lock is not initialized! Did you call i2c_slave_init()?"); - return ESP_ERR_NO_MEM; - } + if (!i2c->lock) { + log_e("Lock is not initialized! Did you call i2c_slave_init()?"); + return ESP_ERR_NO_MEM; + } #endif - if (!i2c->tx_queue) { - return 0; - } - I2C_SLAVE_MUTEX_LOCK(); + if (!i2c->tx_queue) { + return 0; + } + I2C_SLAVE_MUTEX_LOCK(); #if CONFIG_IDF_TARGET_ESP32 - i2c_ll_slave_disable_tx_it(i2c->dev); - uint32_t txfifo_len = 0; - i2c_ll_get_txfifo_len(i2c->dev, &txfifo_len); - if (txfifo_len < SOC_I2C_FIFO_LEN) { - i2c_ll_txfifo_rst(i2c->dev); - } + i2c_ll_slave_disable_tx_it(i2c->dev); + uint32_t txfifo_len = 0; + i2c_ll_get_txfifo_len(i2c->dev, &txfifo_len); + if (txfifo_len < SOC_I2C_FIFO_LEN) { + i2c_ll_txfifo_rst(i2c->dev); + } #endif - i2c_ll_get_txfifo_len(i2c->dev, &to_fifo); - if (to_fifo) { - if (len < to_fifo) { - to_fifo = len; + i2c_ll_get_txfifo_len(i2c->dev, &to_fifo); + if (to_fifo) { + if (len < to_fifo) { + to_fifo = len; + } + i2c_ll_write_txfifo(i2c->dev, (uint8_t *)buf, to_fifo); + buf += to_fifo; + len -= to_fifo; + //reset tx_queue + xQueueReset(i2c->tx_queue); + //write the rest of the bytes to the queue + if (len) { + to_queue = uxQueueSpacesAvailable(i2c->tx_queue); + if (len < to_queue) { + to_queue = len; } - i2c_ll_write_txfifo(i2c->dev, (uint8_t *)buf, to_fifo); - buf += to_fifo; - len -= to_fifo; - //reset tx_queue - xQueueReset(i2c->tx_queue); - //write the rest of the bytes to the queue - if (len) { - to_queue = uxQueueSpacesAvailable(i2c->tx_queue); - if (len < to_queue) { - to_queue = len; - } - for (size_t i = 0; i < to_queue; i++) { - if (xQueueSend(i2c->tx_queue, &buf[i], timeout_ms / portTICK_PERIOD_MS) != pdTRUE) { - xQueueReset(i2c->tx_queue); - to_queue = 0; - break; - } - } - //no need to enable TX_EMPTY if tx_queue is empty - if (to_queue) { - i2c_ll_slave_enable_tx_it(i2c->dev); + for (size_t i = 0; i < to_queue; i++) { + if (xQueueSend(i2c->tx_queue, &buf[i], timeout_ms / portTICK_PERIOD_MS) != pdTRUE) { + xQueueReset(i2c->tx_queue); + to_queue = 0; + break; } } + //no need to enable TX_EMPTY if tx_queue is empty + if (to_queue) { + i2c_ll_slave_enable_tx_it(i2c->dev); + } } - I2C_SLAVE_MUTEX_UNLOCK(); - return to_queue + to_fifo; } + I2C_SLAVE_MUTEX_UNLOCK(); + return to_queue + to_fifo; +} - //===================================================================================================================== - //-------------------------------------- Private Functions ------------------------------------------------------------ - //===================================================================================================================== +//===================================================================================================================== +//-------------------------------------- Private Functions ------------------------------------------------------------ +//===================================================================================================================== - static void i2c_slave_free_resources(i2c_slave_struct_t * i2c) { - i2c_slave_detach_gpio(i2c); - i2c_ll_set_slave_addr(i2c->dev, 0, false); - i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); - i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); +static void i2c_slave_free_resources(i2c_slave_struct_t *i2c) { + i2c_slave_detach_gpio(i2c); + i2c_ll_set_slave_addr(i2c->dev, 0, false); + i2c_ll_disable_intr_mask(i2c->dev, I2C_LL_INTR_MASK); + i2c_ll_clear_intr_mask(i2c->dev, I2C_LL_INTR_MASK); - if (i2c->intr_handle) { - esp_intr_free(i2c->intr_handle); - i2c->intr_handle = NULL; - } + if (i2c->intr_handle) { + esp_intr_free(i2c->intr_handle); + i2c->intr_handle = NULL; + } - if (i2c->task_handle) { - vTaskDelete(i2c->task_handle); - i2c->task_handle = NULL; - } + if (i2c->task_handle) { + vTaskDelete(i2c->task_handle); + i2c->task_handle = NULL; + } #if I2C_SLAVE_USE_RX_QUEUE - if (i2c->rx_queue) { - vQueueDelete(i2c->rx_queue); - i2c->rx_queue = NULL; - } + if (i2c->rx_queue) { + vQueueDelete(i2c->rx_queue); + i2c->rx_queue = NULL; + } #else if (i2c->rx_ring_buf) { vRingbufferDelete(i2c->rx_ring_buf); @@ -517,202 +515,202 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t } #endif - if (i2c->tx_queue) { - vQueueDelete(i2c->tx_queue); - i2c->tx_queue = NULL; - } - - if (i2c->event_queue) { - vQueueDelete(i2c->event_queue); - i2c->event_queue = NULL; - } + if (i2c->tx_queue) { + vQueueDelete(i2c->tx_queue); + i2c->tx_queue = NULL; + } - i2c->rx_data_count = 0; + if (i2c->event_queue) { + vQueueDelete(i2c->event_queue); + i2c->event_queue = NULL; } - static bool i2c_slave_set_frequency(i2c_slave_struct_t * i2c, uint32_t clk_speed) { - if (i2c == NULL) { - log_e("no control buffer"); - return false; - } - if (clk_speed > 1100000UL) { - clk_speed = 1100000UL; - } + i2c->rx_data_count = 0; +} + +static bool i2c_slave_set_frequency(i2c_slave_struct_t *i2c, uint32_t clk_speed) { + if (i2c == NULL) { + log_e("no control buffer"); + return false; + } + if (clk_speed > 1100000UL) { + clk_speed = 1100000UL; + } - // Adjust Fifo thresholds based on frequency - uint32_t a = (clk_speed / 50000L) + 2; - log_d("Fifo thresholds: rx_fifo_full = %d, tx_fifo_empty = %d", SOC_I2C_FIFO_LEN - a, a); + // Adjust Fifo thresholds based on frequency + uint32_t a = (clk_speed / 50000L) + 2; + log_d("Fifo thresholds: rx_fifo_full = %d, tx_fifo_empty = %d", SOC_I2C_FIFO_LEN - a, a); - i2c_hal_clk_config_t clk_cal; + i2c_hal_clk_config_t clk_cal; #if SOC_I2C_SUPPORT_APB - i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); - I2C_CLOCK_SRC_ATOMIC() { - i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/ - } + i2c_ll_master_cal_bus_clk(APB_CLK_FREQ, clk_speed, &clk_cal); + I2C_CLOCK_SRC_ATOMIC() { + i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_APB); /*!< I2C source clock from APB, 80M*/ + } #elif SOC_I2C_SUPPORT_XTAL i2c_ll_master_cal_bus_clk(XTAL_CLK_FREQ, clk_speed, &clk_cal); I2C_CLOCK_SRC_ATOMIC() { i2c_ll_set_source_clk(i2c->dev, SOC_MOD_CLK_XTAL); /*!< I2C source clock from XTAL, 40M */ } #endif - i2c_ll_set_txfifo_empty_thr(i2c->dev, a); - i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a); - i2c_ll_master_set_bus_timing(i2c->dev, &clk_cal); - i2c_ll_master_set_filter(i2c->dev, 3); - return true; - } + i2c_ll_set_txfifo_empty_thr(i2c->dev, a); + i2c_ll_set_rxfifo_full_thr(i2c->dev, SOC_I2C_FIFO_LEN - a); + i2c_ll_master_set_bus_timing(i2c->dev, &clk_cal); + i2c_ll_master_set_filter(i2c->dev, 3); + return true; +} - static void i2c_slave_delay_us(uint64_t us) { - uint64_t m = esp_timer_get_time(); - if (us) { - uint64_t e = (m + us); - if (m > e) { //overflow - while ((uint64_t)esp_timer_get_time() > e); - } - while ((uint64_t)esp_timer_get_time() < e); +static void i2c_slave_delay_us(uint64_t us) { + uint64_t m = esp_timer_get_time(); + if (us) { + uint64_t e = (m + us); + if (m > e) { //overflow + while ((uint64_t)esp_timer_get_time() > e); } + while ((uint64_t)esp_timer_get_time() < e); } +} - static void i2c_slave_gpio_mode(int8_t pin, gpio_mode_t mode) { - gpio_config_t conf = { - .pin_bit_mask = 1LL << pin, .mode = mode, .pull_up_en = GPIO_PULLUP_ENABLE, .pull_down_en = GPIO_PULLDOWN_DISABLE, .intr_type = GPIO_INTR_DISABLE - }; - gpio_config(&conf); - } +static void i2c_slave_gpio_mode(int8_t pin, gpio_mode_t mode) { + gpio_config_t conf = { + .pin_bit_mask = 1LL << pin, .mode = mode, .pull_up_en = GPIO_PULLUP_ENABLE, .pull_down_en = GPIO_PULLDOWN_DISABLE, .intr_type = GPIO_INTR_DISABLE + }; + gpio_config(&conf); +} - static bool i2c_slave_check_line_state(int8_t sda, int8_t scl) { - if (sda < 0 || scl < 0) { - return false; //return false since there is nothing to do - } - // if the bus is not 'clear' try the cycling SCL until SDA goes High or 9 cycles - gpio_set_level(sda, 1); - gpio_set_level(scl, 1); - i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); - i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); - gpio_set_level(scl, 1); - - if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state - log_w("invalid state sda(%d)=%d, scl(%d)=%d", sda, gpio_get_level(sda), scl, gpio_get_level(scl)); - for (uint8_t a = 0; a < 9; a++) { +static bool i2c_slave_check_line_state(int8_t sda, int8_t scl) { + if (sda < 0 || scl < 0) { + return false; //return false since there is nothing to do + } + // if the bus is not 'clear' try the cycling SCL until SDA goes High or 9 cycles + gpio_set_level(sda, 1); + gpio_set_level(scl, 1); + i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); + i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT | GPIO_MODE_DEF_OD); + gpio_set_level(scl, 1); + + if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state + log_w("invalid state sda(%d)=%d, scl(%d)=%d", sda, gpio_get_level(sda), scl, gpio_get_level(scl)); + for (uint8_t a = 0; a < 9; a++) { + i2c_slave_delay_us(5); + if (gpio_get_level(sda) && gpio_get_level(scl)) { // bus recovered + log_w("Recovered after %d Cycles", a); + gpio_set_level(sda, 0); // start i2c_slave_delay_us(5); - if (gpio_get_level(sda) && gpio_get_level(scl)) { // bus recovered - log_w("Recovered after %d Cycles", a); - gpio_set_level(sda, 0); // start - i2c_slave_delay_us(5); - for (uint8_t a = 0; a < 9; a++) { - gpio_set_level(scl, 1); - i2c_slave_delay_us(5); - gpio_set_level(scl, 0); - i2c_slave_delay_us(5); - } + for (uint8_t a = 0; a < 9; a++) { gpio_set_level(scl, 1); i2c_slave_delay_us(5); - gpio_set_level(sda, 1); // stop - break; + gpio_set_level(scl, 0); + i2c_slave_delay_us(5); } - gpio_set_level(scl, 0); - i2c_slave_delay_us(5); gpio_set_level(scl, 1); + i2c_slave_delay_us(5); + gpio_set_level(sda, 1); // stop + break; } + gpio_set_level(scl, 0); + i2c_slave_delay_us(5); + gpio_set_level(scl, 1); } + } - if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state - log_e("Bus Invalid State, Can't init sda=%d, scl=%d", gpio_get_level(sda), gpio_get_level(scl)); - return false; // bus is busy - } - return true; + if (!gpio_get_level(sda) || !gpio_get_level(scl)) { // bus in busy state + log_e("Bus Invalid State, Can't init sda=%d, scl=%d", gpio_get_level(sda), gpio_get_level(scl)); + return false; // bus is busy } + return true; +} - static bool i2c_slave_attach_gpio(i2c_slave_struct_t * i2c, int8_t sda, int8_t scl) { - if (i2c == NULL) { - log_e("no control block"); - return false; - } +static bool i2c_slave_attach_gpio(i2c_slave_struct_t *i2c, int8_t sda, int8_t scl) { + if (i2c == NULL) { + log_e("no control block"); + return false; + } - if ((sda < 0) || (scl < 0)) { - log_e("bad pins sda=%d, scl=%d", sda, scl); - return false; - } + if ((sda < 0) || (scl < 0)) { + log_e("bad pins sda=%d, scl=%d", sda, scl); + return false; + } - i2c->scl = scl; - gpio_set_level(scl, 1); - i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT_OUTPUT_OD); - gpio_matrix_out(scl, I2C_SCL_IDX(i2c->num), false, false); - gpio_matrix_in(scl, I2C_SCL_IDX(i2c->num), false); + i2c->scl = scl; + gpio_set_level(scl, 1); + i2c_slave_gpio_mode(scl, GPIO_MODE_INPUT_OUTPUT_OD); + gpio_matrix_out(scl, I2C_SCL_IDX(i2c->num), false, false); + gpio_matrix_in(scl, I2C_SCL_IDX(i2c->num), false); - i2c->sda = sda; - gpio_set_level(sda, 1); - i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT_OUTPUT_OD); - gpio_matrix_out(sda, I2C_SDA_IDX(i2c->num), false, false); - gpio_matrix_in(sda, I2C_SDA_IDX(i2c->num), false); + i2c->sda = sda; + gpio_set_level(sda, 1); + i2c_slave_gpio_mode(sda, GPIO_MODE_INPUT_OUTPUT_OD); + gpio_matrix_out(sda, I2C_SDA_IDX(i2c->num), false, false); + gpio_matrix_in(sda, I2C_SDA_IDX(i2c->num), false); - return true; + return true; +} + +static bool i2c_slave_detach_gpio(i2c_slave_struct_t *i2c) { + if (i2c == NULL) { + log_e("no control Block"); + return false; + } + if (i2c->scl >= 0) { + gpio_matrix_out(i2c->scl, 0x100, false, false); + gpio_matrix_in(0x30, I2C_SCL_IDX(i2c->num), false); + i2c_slave_gpio_mode(i2c->scl, GPIO_MODE_INPUT); + i2c->scl = -1; // un attached } + if (i2c->sda >= 0) { + gpio_matrix_out(i2c->sda, 0x100, false, false); + gpio_matrix_in(0x30, I2C_SDA_IDX(i2c->num), false); + i2c_slave_gpio_mode(i2c->sda, GPIO_MODE_INPUT); + i2c->sda = -1; // un attached + } + return true; +} - static bool i2c_slave_detach_gpio(i2c_slave_struct_t * i2c) { - if (i2c == NULL) { - log_e("no control Block"); - return false; - } - if (i2c->scl >= 0) { - gpio_matrix_out(i2c->scl, 0x100, false, false); - gpio_matrix_in(0x30, I2C_SCL_IDX(i2c->num), false); - i2c_slave_gpio_mode(i2c->scl, GPIO_MODE_INPUT); - i2c->scl = -1; // un attached +static bool i2c_slave_send_event(i2c_slave_struct_t *i2c, i2c_slave_queue_event_t *event) { + bool pxHigherPriorityTaskWoken = false; + if (i2c->event_queue) { + if (xQueueSendFromISR(i2c->event_queue, event, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { + //log_e("event_queue_full"); } - if (i2c->sda >= 0) { - gpio_matrix_out(i2c->sda, 0x100, false, false); - gpio_matrix_in(0x30, I2C_SDA_IDX(i2c->num), false); - i2c_slave_gpio_mode(i2c->sda, GPIO_MODE_INPUT); - i2c->sda = -1; // un attached - } - return true; } + return pxHigherPriorityTaskWoken; +} - static bool i2c_slave_send_event(i2c_slave_struct_t * i2c, i2c_slave_queue_event_t * event) { - bool pxHigherPriorityTaskWoken = false; - if (i2c->event_queue) { - if (xQueueSendFromISR(i2c->event_queue, event, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { - //log_e("event_queue_full"); - } - } - return pxHigherPriorityTaskWoken; - } - - static bool i2c_slave_handle_tx_fifo_empty(i2c_slave_struct_t * i2c) { - bool pxHigherPriorityTaskWoken = false; - uint32_t d = 0, moveCnt = 0; - i2c_ll_get_txfifo_len(i2c->dev, &moveCnt); - while (moveCnt > 0) { // read tx queue until Fifo is full or queue is empty - if (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE) { - i2c_ll_write_txfifo(i2c->dev, (uint8_t *)&d, 1); - moveCnt--; - } else { - i2c_ll_slave_disable_tx_it(i2c->dev); - break; - } +static bool i2c_slave_handle_tx_fifo_empty(i2c_slave_struct_t *i2c) { + bool pxHigherPriorityTaskWoken = false; + uint32_t d = 0, moveCnt = 0; + i2c_ll_get_txfifo_len(i2c->dev, &moveCnt); + while (moveCnt > 0) { // read tx queue until Fifo is full or queue is empty + if (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE) { + i2c_ll_write_txfifo(i2c->dev, (uint8_t *)&d, 1); + moveCnt--; + } else { + i2c_ll_slave_disable_tx_it(i2c->dev); + break; } - return pxHigherPriorityTaskWoken; } + return pxHigherPriorityTaskWoken; +} - static bool i2c_slave_handle_rx_fifo_full(i2c_slave_struct_t * i2c, uint32_t len) { +static bool i2c_slave_handle_rx_fifo_full(i2c_slave_struct_t *i2c, uint32_t len) { #if I2C_SLAVE_USE_RX_QUEUE - uint32_t d = 0; + uint32_t d = 0; #else uint8_t data[SOC_I2C_FIFO_LEN]; #endif - bool pxHigherPriorityTaskWoken = false; + bool pxHigherPriorityTaskWoken = false; #if I2C_SLAVE_USE_RX_QUEUE - while (len > 0) { - i2c_ll_read_rxfifo(i2c->dev, (uint8_t *)&d, 1); - if (xQueueSendFromISR(i2c->rx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { - log_e("rx_queue_full"); - } else { - i2c->rx_data_count++; - } - if (--len == 0) { - len = i2c_ll_get_rxfifo_cnt(i2c->dev); - } + while (len > 0) { + i2c_ll_read_rxfifo(i2c->dev, (uint8_t *)&d, 1); + if (xQueueSendFromISR(i2c->rx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) != pdTRUE) { + log_e("rx_queue_full"); + } else { + i2c->rx_data_count++; + } + if (--len == 0) { + len = i2c_ll_get_rxfifo_cnt(i2c->dev); + } #else if (len) { i2c_ll_read_rxfifo(i2c->dev, data, len); @@ -722,109 +720,109 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t i2c->rx_data_count += len; } #endif - } - return pxHigherPriorityTaskWoken; } + return pxHigherPriorityTaskWoken; +} + +static void i2c_slave_isr_handler(void *arg) { + bool pxHigherPriorityTaskWoken = false; + i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)arg; // recover data - static void i2c_slave_isr_handler(void *arg) { - bool pxHigherPriorityTaskWoken = false; - i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)arg; // recover data + uint32_t activeInt = 0; + i2c_ll_get_intr_mask(i2c->dev, &activeInt); + i2c_ll_clear_intr_mask(i2c->dev, activeInt); + uint32_t rx_fifo_len = 0; + i2c_ll_get_rxfifo_cnt(i2c->dev, &rx_fifo_len); + bool slave_rw = i2c_ll_slave_rw(i2c->dev); - uint32_t activeInt = 0; - i2c_ll_get_intr_mask(i2c->dev, &activeInt); - i2c_ll_clear_intr_mask(i2c->dev, activeInt); - uint32_t rx_fifo_len = 0; - i2c_ll_get_rxfifo_cnt(i2c->dev, &rx_fifo_len); - bool slave_rw = i2c_ll_slave_rw(i2c->dev); + if (activeInt & I2C_RXFIFO_WM_INT_ENA) { // RX FiFo Full + pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + i2c_ll_slave_enable_rx_it(i2c->dev); //is this necessary? + } - if (activeInt & I2C_RXFIFO_WM_INT_ENA) { // RX FiFo Full + if (activeInt & I2C_TRANS_COMPLETE_INT_ENA) { // STOP + if (rx_fifo_len) { //READ RX FIFO pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - i2c_ll_slave_enable_rx_it(i2c->dev); //is this necessary? } - - if (activeInt & I2C_TRANS_COMPLETE_INT_ENA) { // STOP - if (rx_fifo_len) { //READ RX FIFO - pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - } - if (i2c->rx_data_count) { //WRITE or RepeatedStart - //SEND RX Event + if (i2c->rx_data_count) { //WRITE or RepeatedStart + //SEND RX Event + i2c_slave_queue_event_t event; + event.event = I2C_SLAVE_EVT_RX; + event.stop = !slave_rw; + event.param = i2c->rx_data_count; + pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); + //Zero RX count + i2c->rx_data_count = 0; + } + if (slave_rw) { // READ +#if CONFIG_IDF_TARGET_ESP32 + if (i2c->dev->status_reg.scl_main_state_last == 6) { + //SEND TX Event i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_RX; - event.stop = !slave_rw; - event.param = i2c->rx_data_count; + event.event = I2C_SLAVE_EVT_TX; pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); - //Zero RX count - i2c->rx_data_count = 0; } - if (slave_rw) { // READ -#if CONFIG_IDF_TARGET_ESP32 - if (i2c->dev->status_reg.scl_main_state_last == 6) { - //SEND TX Event - i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_TX; - pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); - } #else //reset TX data i2c_ll_txfifo_rst(i2c->dev); uint8_t d; while (xQueueReceiveFromISR(i2c->tx_queue, &d, (BaseType_t *const)&pxHigherPriorityTaskWoken) == pdTRUE); //flush partial write #endif - } } + } #ifndef CONFIG_IDF_TARGET_ESP32 - if (activeInt & I2C_SLAVE_STRETCH_INT_ENA) { // STRETCH - i2c_stretch_cause_t cause = i2c_ll_stretch_cause(i2c->dev); - if (cause == I2C_STRETCH_CAUSE_MASTER_READ) { - //on C3 RX data disappears with repeated start, so we need to get it here - if (rx_fifo_len) { - pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - } - //SEND TX Event - i2c_slave_queue_event_t event; - event.event = I2C_SLAVE_EVT_TX; - pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); - //will clear after execution - } else if (cause == I2C_STRETCH_CAUSE_TX_FIFO_EMPTY) { - pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); - i2c_ll_stretch_clr(i2c->dev); - } else if (cause == I2C_STRETCH_CAUSE_RX_FIFO_FULL) { + if (activeInt & I2C_SLAVE_STRETCH_INT_ENA) { // STRETCH + i2c_stretch_cause_t cause = i2c_ll_stretch_cause(i2c->dev); + if (cause == I2C_STRETCH_CAUSE_MASTER_READ) { + //on C3 RX data disappears with repeated start, so we need to get it here + if (rx_fifo_len) { pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); - i2c_ll_stretch_clr(i2c->dev); } + //SEND TX Event + i2c_slave_queue_event_t event; + event.event = I2C_SLAVE_EVT_TX; + pxHigherPriorityTaskWoken |= i2c_slave_send_event(i2c, &event); + //will clear after execution + } else if (cause == I2C_STRETCH_CAUSE_TX_FIFO_EMPTY) { + pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); + i2c_ll_stretch_clr(i2c->dev); + } else if (cause == I2C_STRETCH_CAUSE_RX_FIFO_FULL) { + pxHigherPriorityTaskWoken |= i2c_slave_handle_rx_fifo_full(i2c, rx_fifo_len); + i2c_ll_stretch_clr(i2c->dev); } + } #endif - if (activeInt & I2C_TXFIFO_WM_INT_ENA) { // TX FiFo Empty - pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); - } + if (activeInt & I2C_TXFIFO_WM_INT_ENA) { // TX FiFo Empty + pxHigherPriorityTaskWoken |= i2c_slave_handle_tx_fifo_empty(i2c); + } - if (pxHigherPriorityTaskWoken) { - portYIELD_FROM_ISR(); - } + if (pxHigherPriorityTaskWoken) { + portYIELD_FROM_ISR(); } +} - static size_t i2c_slave_read_rx(i2c_slave_struct_t * i2c, uint8_t * data, size_t len) { - if (!len) { - return 0; - } +static size_t i2c_slave_read_rx(i2c_slave_struct_t *i2c, uint8_t *data, size_t len) { + if (!len) { + return 0; + } #if I2C_SLAVE_USE_RX_QUEUE - uint8_t d = 0; - BaseType_t res = pdTRUE; - for (size_t i = 0; i < len; i++) { - if (data) { - res = xQueueReceive(i2c->rx_queue, &data[i], 0); - } else { - res = xQueueReceive(i2c->rx_queue, &d, 0); - } - if (res != pdTRUE) { - log_e("Read Queue(%u) Failed", i); - len = i; - break; - } + uint8_t d = 0; + BaseType_t res = pdTRUE; + for (size_t i = 0; i < len; i++) { + if (data) { + res = xQueueReceive(i2c->rx_queue, &data[i], 0); + } else { + res = xQueueReceive(i2c->rx_queue, &d, 0); + } + if (res != pdTRUE) { + log_e("Read Queue(%u) Failed", i); + len = i; + break; } - return (data) ? len : 0; + } + return (data) ? len : 0; #else size_t dlen = 0, to_read = len, so_far = 0, available = 0; uint8_t *rx_data = NULL; @@ -851,55 +849,55 @@ esp_err_t i2cSlaveInit(uint8_t num, int sda, int scl, uint16_t slaveID, uint32_t } return (data) ? so_far : 0; #endif - } +} - static void i2c_slave_task(void *pv_args) { - i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)pv_args; - i2c_slave_queue_event_t event; - size_t len = 0; - bool stop = false; - uint8_t *data = NULL; - for (;;) { - if (xQueueReceive(i2c->event_queue, &event, portMAX_DELAY) == pdTRUE) { - // Write - if (event.event == I2C_SLAVE_EVT_RX) { - len = event.param; - stop = event.stop; - data = (len > 0) ? (uint8_t *)malloc(len) : NULL; - - if (len && data == NULL) { - log_e("Malloc (%u) Failed", len); - } - len = i2c_slave_read_rx(i2c, data, len); - if (i2c->receive_callback) { - i2c->receive_callback(i2c->num, data, len, stop, i2c->arg); - } - free(data); - - // Read - } else if (event.event == I2C_SLAVE_EVT_TX) { - if (i2c->request_callback) { - i2c->request_callback(i2c->num, i2c->arg); - } - i2c_ll_stretch_clr(i2c->dev); +static void i2c_slave_task(void *pv_args) { + i2c_slave_struct_t *i2c = (i2c_slave_struct_t *)pv_args; + i2c_slave_queue_event_t event; + size_t len = 0; + bool stop = false; + uint8_t *data = NULL; + for (;;) { + if (xQueueReceive(i2c->event_queue, &event, portMAX_DELAY) == pdTRUE) { + // Write + if (event.event == I2C_SLAVE_EVT_RX) { + len = event.param; + stop = event.stop; + data = (len > 0) ? (uint8_t *)malloc(len) : NULL; + + if (len && data == NULL) { + log_e("Malloc (%u) Failed", len); } + len = i2c_slave_read_rx(i2c, data, len); + if (i2c->receive_callback) { + i2c->receive_callback(i2c->num, data, len, stop, i2c->arg); + } + free(data); + + // Read + } else if (event.event == I2C_SLAVE_EVT_TX) { + if (i2c->request_callback) { + i2c->request_callback(i2c->num, i2c->arg); + } + i2c_ll_stretch_clr(i2c->dev); } } - vTaskDelete(NULL); } + vTaskDelete(NULL); +} - static bool i2cSlaveDetachBus(void *bus_i2c_num) { - uint8_t num = (int)bus_i2c_num - 1; - i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; - if (i2c->scl == -1 && i2c->sda == -1) { - return true; - } - esp_err_t err = i2cSlaveDeinit(num); - if (err != ESP_OK) { - log_e("i2cSlaveDeinit failed with error: %d", err); - return false; - } +static bool i2cSlaveDetachBus(void *bus_i2c_num) { + uint8_t num = (int)bus_i2c_num - 1; + i2c_slave_struct_t *i2c = &_i2c_bus_array[num]; + if (i2c->scl == -1 && i2c->sda == -1) { return true; } + esp_err_t err = i2cSlaveDeinit(num); + if (err != ESP_OK) { + log_e("i2cSlaveDeinit failed with error: %d", err); + return false; + } + return true; +} #endif /* SOC_I2C_SUPPORT_SLAVE */ diff --git a/cores/esp32/esp32-hal-spi.c b/cores/esp32/esp32-hal-spi.c index 8c8ce0b7705..af3fd7b5f06 100644 --- a/cores/esp32/esp32-hal-spi.c +++ b/cores/esp32/esp32-hal-spi.c @@ -148,13 +148,15 @@ struct spi_struct_t { #if CONFIG_DISABLE_HAL_LOCKS #define SPI_MUTEX_LOCK() #define SPI_MUTEX_UNLOCK() -+ static spi_t _spi_bus_array[] = { +// clang-format off +static spi_t _spi_bus_array[] = { #if CONFIG_IDF_TARGET_ESP32S2 {(volatile spi_dev_t *)(DR_REG_SPI1_BASE), 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 1, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 2, -1, -1, -1, -1} #elif CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32P4 - {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 0, -1, -1, -1, -1}, {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 1, -1, -1, -1, -1} + {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 0, -1, -1, -1, -1}, + {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 1, -1, -1, -1, -1} #elif CONFIG_IDF_TARGET_ESP32C2 {(volatile spi_dev_t *)(DR_REG_SPI2_BASE), 0, -1, -1, -1, -1} #elif CONFIG_IDF_TARGET_ESP32C3 @@ -168,6 +170,7 @@ struct spi_struct_t { {(volatile spi_dev_t *)(DR_REG_SPI3_BASE), 3, -1, -1, -1, -1} #endif }; +// clang-format on #else #define SPI_MUTEX_LOCK() \ do { \ diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c index 4c0ed92656c..93e0cb1c4ac 100644 --- a/cores/esp32/esp32-hal-touch.c +++ b/cores/esp32/esp32-hal-touch.c @@ -29,7 +29,7 @@ #if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 static uint16_t __touchSleepCycles = 0x1000; static uint16_t __touchMeasureCycles = 0x1000; -#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION >= 2 // ESP32S2, ESP32S3, ESP32P4 static uint16_t __touchSleepCycles = TOUCH_PAD_SLEEP_CYCLE_DEFAULT; static uint16_t __touchMeasureCycles = TOUCH_PAD_MEASURE_CYCLE_DEFAULT; #endif diff --git a/libraries/BLE/examples/BLE5_multi_advertising/ci.json b/libraries/BLE/examples/BLE5_multi_advertising/ci.json index fc9f75986fe..e97e4cf7fea 100644 --- a/libraries/BLE/examples/BLE5_multi_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_multi_advertising/ci.json @@ -1,5 +1,6 @@ { "targets": { + "esp32": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json index a034e239a3f..e97e4cf7fea 100644 --- a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json @@ -1,10 +1,7 @@ { "targets": { "esp32": false, - "esp32c2": false, - "esp32c3": false, "esp32p4": false, - "esp32s2": false, - "esp32s3": false + "esp32s2": false } } diff --git a/libraries/BLE/examples/BLE5_periodic_sync/ci.json b/libraries/BLE/examples/BLE5_periodic_sync/ci.json index 715becda6cb..e97e4cf7fea 100644 --- a/libraries/BLE/examples/BLE5_periodic_sync/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_sync/ci.json @@ -1,9 +1,6 @@ { "targets": { "esp32": false, - "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/Beacon_Scanner/ci.json b/libraries/BLE/examples/Beacon_Scanner/ci.json index ee810400be6..fc9f75986fe 100644 --- a/libraries/BLE/examples/Beacon_Scanner/ci.json +++ b/libraries/BLE/examples/Beacon_Scanner/ci.json @@ -1,8 +1,5 @@ { "targets": { - "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/Client/ci.json b/libraries/BLE/examples/Client/ci.json index eb6596c4a37..fc9f75986fe 100644 --- a/libraries/BLE/examples/Client/ci.json +++ b/libraries/BLE/examples/Client/ci.json @@ -1,6 +1,5 @@ { "targets": { - "esp32c3": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/Notify/ci.json b/libraries/BLE/examples/Notify/ci.json index 156dda6560c..fc9f75986fe 100644 --- a/libraries/BLE/examples/Notify/ci.json +++ b/libraries/BLE/examples/Notify/ci.json @@ -1,6 +1,5 @@ { "targets": { - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/Server/ci.json b/libraries/BLE/examples/Server/ci.json index a034e239a3f..fc9f75986fe 100644 --- a/libraries/BLE/examples/Server/ci.json +++ b/libraries/BLE/examples/Server/ci.json @@ -1,10 +1,6 @@ { "targets": { - "esp32": false, - "esp32c2": false, - "esp32c3": false, "esp32p4": false, - "esp32s2": false, - "esp32s3": false + "esp32s2": false } } diff --git a/libraries/BLE/examples/Server_multiconnect/ci.json b/libraries/BLE/examples/Server_multiconnect/ci.json index 715becda6cb..fc9f75986fe 100644 --- a/libraries/BLE/examples/Server_multiconnect/ci.json +++ b/libraries/BLE/examples/Server_multiconnect/ci.json @@ -1,9 +1,5 @@ { "targets": { - "esp32": false, - "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/UART/ci.json b/libraries/BLE/examples/UART/ci.json index ee810400be6..fc9f75986fe 100644 --- a/libraries/BLE/examples/UART/ci.json +++ b/libraries/BLE/examples/UART/ci.json @@ -1,8 +1,5 @@ { "targets": { - "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/Write/ci.json b/libraries/BLE/examples/Write/ci.json index eb6596c4a37..fc9f75986fe 100644 --- a/libraries/BLE/examples/Write/ci.json +++ b/libraries/BLE/examples/Write/ci.json @@ -1,6 +1,5 @@ { "targets": { - "esp32c3": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/BLE/examples/iBeacon/ci.json b/libraries/BLE/examples/iBeacon/ci.json index 156dda6560c..fc9f75986fe 100644 --- a/libraries/BLE/examples/iBeacon/ci.json +++ b/libraries/BLE/examples/iBeacon/ci.json @@ -1,6 +1,5 @@ { "targets": { - "esp32h2": false, "esp32p4": false, "esp32s2": false } diff --git a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json index 25c42144223..cd679adefad 100644 --- a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json +++ b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json @@ -2,6 +2,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/Touch/TouchButton/ci.json b/libraries/ESP32/examples/Touch/TouchButton/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/ESP32/examples/Touch/TouchButton/ci.json +++ b/libraries/ESP32/examples/Touch/TouchButton/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/ESP32/examples/Touch/TouchButtonV2/ci.json b/libraries/ESP32/examples/Touch/TouchButtonV2/ci.json index e7d65393dd6..d87f049685e 100644 --- a/libraries/ESP32/examples/Touch/TouchButtonV2/ci.json +++ b/libraries/ESP32/examples/Touch/TouchButtonV2/ci.json @@ -3,6 +3,7 @@ "esp32": false, "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json index 25c42144223..cd679adefad 100644 --- a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json +++ b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json @@ -2,6 +2,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/ESP32/examples/Touch/TouchRead/ci.json b/libraries/ESP32/examples/Touch/TouchRead/ci.json index 25c42144223..cd679adefad 100644 --- a/libraries/ESP32/examples/Touch/TouchRead/ci.json +++ b/libraries/ESP32/examples/Touch/TouchRead/ci.json @@ -2,6 +2,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/libraries/Ethernet/examples/ETH_LAN8720/ci.json b/libraries/Ethernet/examples/ETH_LAN8720/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/Ethernet/examples/ETH_LAN8720/ci.json +++ b/libraries/Ethernet/examples/ETH_LAN8720/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/Ethernet/examples/ETH_TLK110/ci.json b/libraries/Ethernet/examples/ETH_TLK110/ci.json index 1af543242e3..6afa60f44c4 100644 --- a/libraries/Ethernet/examples/ETH_TLK110/ci.json +++ b/libraries/Ethernet/examples/ETH_TLK110/ci.json @@ -3,6 +3,7 @@ "esp32c3": false, "esp32c6": false, "esp32h2": false, + "esp32p4": false, "esp32s2": false, "esp32s3": false } diff --git a/libraries/OpenThread/examples/COAP/coap_switch/ci.json b/libraries/OpenThread/examples/COAP/coap_switch/ci.json index 715becda6cb..a034e239a3f 100644 --- a/libraries/OpenThread/examples/COAP/coap_switch/ci.json +++ b/libraries/OpenThread/examples/COAP/coap_switch/ci.json @@ -1,10 +1,10 @@ { "targets": { "esp32": false, + "esp32c2": false, "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, - "esp32s2": false + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/OpenThread/examples/SimpleCLI/ci.json b/libraries/OpenThread/examples/SimpleCLI/ci.json index ee810400be6..a034e239a3f 100644 --- a/libraries/OpenThread/examples/SimpleCLI/ci.json +++ b/libraries/OpenThread/examples/SimpleCLI/ci.json @@ -1,9 +1,10 @@ { "targets": { + "esp32": false, + "esp32c2": false, "esp32c3": false, - "esp32c6": false, - "esp32h2": false, "esp32p4": false, - "esp32s2": false + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/OpenThread/examples/SimpleNode/ci.json b/libraries/OpenThread/examples/SimpleNode/ci.json index eb6596c4a37..a034e239a3f 100644 --- a/libraries/OpenThread/examples/SimpleNode/ci.json +++ b/libraries/OpenThread/examples/SimpleNode/ci.json @@ -1,7 +1,10 @@ { "targets": { + "esp32": false, + "esp32c2": false, "esp32c3": false, "esp32p4": false, - "esp32s2": false + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json index 156dda6560c..a034e239a3f 100644 --- a/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json +++ b/libraries/OpenThread/examples/SimpleThreadNetwork/ExtendedRouterNode/ci.json @@ -1,7 +1,10 @@ { "targets": { - "esp32h2": false, + "esp32": false, + "esp32c2": false, + "esp32c3": false, "esp32p4": false, - "esp32s2": false + "esp32s2": false, + "esp32s3": false } } diff --git a/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino b/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino index c73f6078c03..3d3d3e4e38e 100644 --- a/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino +++ b/libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino @@ -39,7 +39,7 @@ #define HSPI_SS 15 #endif -#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 || CONFIG_IDF_TARGET_ESP32P4 #define VSPI FSPI #endif diff --git a/tests/validation/periman/ci.json b/tests/validation/periman/ci.json index accee2b2135..22ff71c54ff 100644 --- a/tests/validation/periman/ci.json +++ b/tests/validation/periman/ci.json @@ -2,5 +2,8 @@ "platforms": { "qemu": false, "wokwi": false + }, + "targets": { + "esp32p4": false } } diff --git a/tests/validation/touch/ci.json b/tests/validation/touch/ci.json index 8d58dbf5250..d3129f16bae 100644 --- a/tests/validation/touch/ci.json +++ b/tests/validation/touch/ci.json @@ -6,6 +6,7 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/tests/validation/uart/uart.ino b/tests/validation/uart/uart.ino index a68ef879659..e5fa0a8285f 100644 --- a/tests/validation/uart/uart.ino +++ b/tests/validation/uart/uart.ino @@ -100,7 +100,7 @@ void transmit_and_check_msg(const String msg_append, bool perform_assert = true) if (perform_assert) { TEST_ASSERT_EQUAL_STRING(("Hello from Serial1 (UART1) >>> via loopback >>> Serial1 (UART1) " + msg_append).c_str(), recv_msg.c_str()); } -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 Serial1.print("Hello from Serial1 (UART1) >>> to >>> Serial2 (UART2) " + msg_append); Serial1.flush(); delay(100); @@ -128,7 +128,7 @@ void task_delayed_msg(void *pvParameters) { #if SOC_UART_HP_NUM == 2 selected_serial = &Serial; -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 selected_serial = &Serial1; #endif @@ -150,7 +150,7 @@ void setUp(void) { onReceive_cb(Serial1); }); uart_internal_loopback(1, RX1); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); Serial1.onReceive([]() { @@ -225,7 +225,7 @@ void change_baudrate_test(void) { Serial1.updateBaudRate(9600); TEST_ASSERT_UINT_WITHIN(192, 9600, Serial1.baudRate()); -#if SOC_UART_HP_NUM == 3 +#if SOC_UART_HP_NUM >= 3 Serial2.updateBaudRate(9600); TEST_ASSERT_UINT_WITHIN(192, 9600, Serial2.baudRate()); #endif @@ -239,7 +239,7 @@ void change_baudrate_test(void) { //Baudrate error should be within 2% of the target baudrate TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial1.baudRate()); -#if SOC_UART_HP_NUM == 3 +#if SOC_UART_HP_NUM >= 3 TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial2.baudRate()); #endif @@ -421,7 +421,7 @@ void change_pins_test(void) { #if SOC_UART_HP_NUM == 2 esp_rom_gpio_connect_out_signal(SOC_RX0, SIG_GPIO_OUT_IDX, false, false); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 esp_rom_gpio_connect_out_signal(RX1, SIG_GPIO_OUT_IDX, false, false); esp_rom_gpio_connect_out_signal(RX2, SIG_GPIO_OUT_IDX, false, false); #endif @@ -432,7 +432,7 @@ void change_pins_test(void) { Serial1.setPins(NEW_RX1, NEW_TX1); TEST_ASSERT_EQUAL(NEW_RX1, uart_get_RxPin(1)); TEST_ASSERT_EQUAL(NEW_TX1, uart_get_TxPin(1)); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 Serial1.setPins(RX2, TX2); Serial2.setPins(RX1, TX1); TEST_ASSERT_EQUAL(RX2, uart_get_RxPin(1)); @@ -447,7 +447,7 @@ void change_pins_test(void) { #if SOC_UART_HP_NUM == 2 uart_internal_loopback(1, NEW_RX1); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 uart_internal_loopback(1, RX1); uart_internal_loopback(2, RX2); #endif @@ -470,7 +470,7 @@ void auto_baudrate_test(void) { #if SOC_UART_HP_NUM == 2 selected_serial = &Serial1; uart_internal_loopback(0, RX1); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 selected_serial = &Serial2; #endif @@ -504,7 +504,7 @@ void periman_test(void) { Wire.begin(RX1, TX1); -#if SOC_UART_HP_NUM == 3 +#if SOC_UART_HP_NUM >= 3 Wire1.begin(RX2, TX2); #endif @@ -518,7 +518,7 @@ void periman_test(void) { Serial1.setPins(RX1, TX1); -#if SOC_UART_HP_NUM == 3 +#if SOC_UART_HP_NUM >= 3 Serial2.setPins(RX2, TX2); uart_internal_loopback(1, RX2); uart_internal_loopback(2, RX1); @@ -577,7 +577,7 @@ void setup() { onReceive_cb(Serial1); }); uart_internal_loopback(1, RX1); -#elif SOC_UART_HP_NUM == 3 +#elif SOC_UART_HP_NUM >= 3 log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); Serial1.onReceive([]() { diff --git a/tests/validation/wifi/ci.json b/tests/validation/wifi/ci.json index ff2c1d7c9ce..a51b5669598 100644 --- a/tests/validation/wifi/ci.json +++ b/tests/validation/wifi/ci.json @@ -22,6 +22,7 @@ "qemu": false }, "targets": { - "esp32h2": false + "esp32h2": false, + "esp32p4": false } } diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h index 87d0548cf3c..caba8995222 100644 --- a/variants/esp32p4/pins_arduino.h +++ b/variants/esp32p4/pins_arduino.h @@ -27,4 +27,34 @@ static const uint8_t MOSI = 11; static const uint8_t MISO = 12; static const uint8_t SCK = 13; +static const uint8_t A0 = 16; +static const uint8_t A1 = 17; +static const uint8_t A2 = 18; +static const uint8_t A3 = 19; +static const uint8_t A4 = 20; +static const uint8_t A5 = 21; +static const uint8_t A6 = 22; +static const uint8_t A7 = 23; +static const uint8_t A8 = 49; +static const uint8_t A9 = 50; +static const uint8_t A10 = 51; +static const uint8_t A11 = 52; +static const uint8_t A12 = 53; +static const uint8_t A13 = 54; + +static const uint8_t T0 = 2; +static const uint8_t T1 = 3; +static const uint8_t T2 = 4; +static const uint8_t T3 = 5; +static const uint8_t T4 = 6; +static const uint8_t T5 = 7; +static const uint8_t T6 = 8; +static const uint8_t T7 = 9; +static const uint8_t T8 = 10; +static const uint8_t T9 = 11; +static const uint8_t T10 = 12; +static const uint8_t T11 = 13; +static const uint8_t T12 = 14; +static const uint8_t T13 = 15; + #endif /* Pins_Arduino_h */ From 8422b745c24fe6739956d6a317f34ea8df5242e1 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 30 Sep 2024 09:27:10 -0300 Subject: [PATCH 014/179] Fix touch examples JSON for P4 --- libraries/ESP32/examples/Touch/TouchInterrupt/ci.json | 5 ++++- libraries/ESP32/examples/Touch/TouchRead/ci.json | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json index c0ecf9fc0a5..4363987f4d6 100644 --- a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json +++ b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json @@ -1,5 +1,8 @@ { "requires": [ "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y" - ] + ], + "targets": { + "esp32p4": false + } } diff --git a/libraries/ESP32/examples/Touch/TouchRead/ci.json b/libraries/ESP32/examples/Touch/TouchRead/ci.json index c0ecf9fc0a5..4363987f4d6 100644 --- a/libraries/ESP32/examples/Touch/TouchRead/ci.json +++ b/libraries/ESP32/examples/Touch/TouchRead/ci.json @@ -1,5 +1,8 @@ { "requires": [ "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y" - ] + ], + "targets": { + "esp32p4": false + } } From a76b22881a82621e7aaa464e66924690c3e9311c Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 30 Sep 2024 19:21:46 -0300 Subject: [PATCH 015/179] Fix ethernet examples JSON for P4 --- libraries/Ethernet/examples/ETH_LAN8720/ci.json | 5 ++++- libraries/Ethernet/examples/ETH_TLK110/ci.json | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/Ethernet/examples/ETH_LAN8720/ci.json b/libraries/Ethernet/examples/ETH_LAN8720/ci.json index dcdfd06db51..0eab13b8841 100644 --- a/libraries/Ethernet/examples/ETH_LAN8720/ci.json +++ b/libraries/Ethernet/examples/ETH_LAN8720/ci.json @@ -1,5 +1,8 @@ { "requires": [ "CONFIG_ETH_USE_ESP32_EMAC=y" - ] + ], + "targets": { + "esp32p4": false + } } diff --git a/libraries/Ethernet/examples/ETH_TLK110/ci.json b/libraries/Ethernet/examples/ETH_TLK110/ci.json index dcdfd06db51..0eab13b8841 100644 --- a/libraries/Ethernet/examples/ETH_TLK110/ci.json +++ b/libraries/Ethernet/examples/ETH_TLK110/ci.json @@ -1,5 +1,8 @@ { "requires": [ "CONFIG_ETH_USE_ESP32_EMAC=y" - ] + ], + "targets": { + "esp32p4": false + } } From c980fdc99691fc797f1d56a03ea18c4893c4d598 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 1 Oct 2024 12:34:44 +0300 Subject: [PATCH 016/179] Update early system init function declaration --- cores/esp32/esp32-hal-misc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-misc.c b/cores/esp32/esp32-hal-misc.c index acc908d2093..d3782c39aa3 100644 --- a/cores/esp32/esp32-hal-misc.c +++ b/cores/esp32/esp32-hal-misc.c @@ -254,7 +254,7 @@ extern bool btInUse(); #if CONFIG_SPIRAM_SUPPORT || CONFIG_SPIRAM #ifndef CONFIG_SPIRAM_BOOT_INIT -ESP_SYSTEM_INIT_FN(init_psram_new, BIT(0), 99) { +ESP_SYSTEM_INIT_FN(init_psram_new, CORE, BIT(0), 99) { return psramInit() ? ESP_OK : ESP_FAIL; } #endif From 482c0a3c26d9f69a6e4b3cc7da92a5545d16f27a Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 1 Oct 2024 15:43:05 +0300 Subject: [PATCH 017/179] fix(psram): Do not abort if PSRAM is not found Also add to heap in app_main --- cores/esp32/esp32-hal-misc.c | 8 +++++++- cores/esp32/esp32-hal-psram.c | 18 +++++++++++++----- cores/esp32/esp32-hal-psram.h | 1 + 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/cores/esp32/esp32-hal-misc.c b/cores/esp32/esp32-hal-misc.c index d3782c39aa3..1fb1d2af9df 100644 --- a/cores/esp32/esp32-hal-misc.c +++ b/cores/esp32/esp32-hal-misc.c @@ -255,7 +255,8 @@ extern bool btInUse(); #if CONFIG_SPIRAM_SUPPORT || CONFIG_SPIRAM #ifndef CONFIG_SPIRAM_BOOT_INIT ESP_SYSTEM_INIT_FN(init_psram_new, CORE, BIT(0), 99) { - return psramInit() ? ESP_OK : ESP_FAIL; + psramInit(); + return ESP_OK; } #endif #endif @@ -263,6 +264,11 @@ ESP_SYSTEM_INIT_FN(init_psram_new, CORE, BIT(0), 99) { void initArduino() { //init proper ref tick value for PLL (uncomment if REF_TICK is different than 1MHz) //ESP_REG(APB_CTRL_PLL_TICK_CONF_REG) = APB_CLK_FREQ / REF_CLK_FREQ - 1; +#if CONFIG_SPIRAM_SUPPORT || CONFIG_SPIRAM +#ifndef CONFIG_SPIRAM_BOOT_INIT + psramAddToHeap(); +#endif +#endif #ifdef CONFIG_APP_ROLLBACK_ENABLE if (!verifyRollbackLater()) { const esp_partition_t *running = esp_ota_get_running_partition(); diff --git a/cores/esp32/esp32-hal-psram.c b/cores/esp32/esp32-hal-psram.c index d2c5ab96fc3..6b0b631791b 100644 --- a/cores/esp32/esp32-hal-psram.c +++ b/cores/esp32/esp32-hal-psram.c @@ -81,17 +81,25 @@ bool psramInit() { ESP_EARLY_LOGE(TAG, "PSRAM test failed!"); return false; } + ESP_EARLY_LOGI(TAG, "PSRAM enabled"); +#endif /* CONFIG_SPIRAM_BOOT_INIT */ + spiramDetected = true; + return true; +} + +bool psramAddToHeap() { + if (!spiramDetected) { + log_e("PSRAM not initialized!"); + return false; + } if (esp_psram_extram_add_to_heap_allocator() != ESP_OK) { - spiramFailed = true; - ESP_EARLY_LOGE(TAG, "PSRAM could not be added to the heap!"); + log_e("PSRAM could not be added to the heap!"); return false; } #if CONFIG_SPIRAM_USE_MALLOC && !CONFIG_ARDUINO_ISR_IRAM heap_caps_malloc_extmem_enable(CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL); #endif - ESP_EARLY_LOGI(TAG, "PSRAM enabled"); -#endif /* CONFIG_SPIRAM_BOOT_INIT */ - spiramDetected = true; + log_i("PSRAM added to the heap."); return true; } diff --git a/cores/esp32/esp32-hal-psram.h b/cores/esp32/esp32-hal-psram.h index 0ba6763c69f..e82af1342c2 100644 --- a/cores/esp32/esp32-hal-psram.h +++ b/cores/esp32/esp32-hal-psram.h @@ -31,6 +31,7 @@ extern "C" { #endif bool psramInit(); +bool psramAddToHeap(); bool psramFound(); void *ps_malloc(size_t size); From 753e2032e731f7ca1a5318a735f9175babc0aa3f Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 1 Oct 2024 16:11:59 +0300 Subject: [PATCH 018/179] fix(psram): ESP32-S2 does not like to early debug log --- cores/esp32/esp32-hal-psram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-psram.c b/cores/esp32/esp32-hal-psram.c index 6b0b631791b..3c7a51c3343 100644 --- a/cores/esp32/esp32-hal-psram.c +++ b/cores/esp32/esp32-hal-psram.c @@ -81,7 +81,7 @@ bool psramInit() { ESP_EARLY_LOGE(TAG, "PSRAM test failed!"); return false; } - ESP_EARLY_LOGI(TAG, "PSRAM enabled"); + //ESP_EARLY_LOGI(TAG, "PSRAM enabled"); #endif /* CONFIG_SPIRAM_BOOT_INIT */ spiramDetected = true; return true; From 8af91fb4a7fb9554bf776977ebd432ef1de2a473 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 1 Oct 2024 12:50:04 +0300 Subject: [PATCH 019/179] Fix build of camera web server --- .../ESP32/examples/Camera/CameraWebServer/ci.json | 15 +++++++++++++++ .../Camera/CameraWebServer/partitions.csv | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/ci.json b/libraries/ESP32/examples/Camera/CameraWebServer/ci.json index 7e0f3c89986..35c3056dda8 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/ci.json +++ b/libraries/ESP32/examples/Camera/CameraWebServer/ci.json @@ -1,4 +1,19 @@ { + "fqbn": { + "esp32": [ + "espressif:esp32:esp32:PSRAM=enabled,PartitionScheme=custom,FlashMode=dio", + "espressif:esp32:esp32:PSRAM=disabled,PartitionScheme=custom,FlashMode=dio" + ], + "esp32s2": [ + "espressif:esp32:esp32s2:PSRAM=enabled,PartitionScheme=custom,FlashMode=dio", + "espressif:esp32:esp32s2:PSRAM=disabled,PartitionScheme=custom,FlashMode=dio" + ], + "esp32s3": [ + "espressif:esp32:esp32s3:PSRAM=opi,USBMode=default,PartitionScheme=custom,FlashMode=qio", + "espressif:esp32:esp32s3:PSRAM=enabled,USBMode=default,PartitionScheme=custom,FlashMode=qio", + "espressif:esp32:esp32s3:PSRAM=disabled,USBMode=default,PartitionScheme=custom,FlashMode=qio" + ] + }, "requires": [ "CONFIG_CAMERA_TASK_STACK_SIZE=[0-9]+" ] diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/partitions.csv b/libraries/ESP32/examples/Camera/CameraWebServer/partitions.csv index 4f76ca6d746..b9f18c465a7 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/partitions.csv +++ b/libraries/ESP32/examples/Camera/CameraWebServer/partitions.csv @@ -1,5 +1,6 @@ # Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, 0x9000, 0x5000, otadata, data, ota, 0xe000, 0x2000, -app0, app, ota_0, 0x10000, 0x3d0000, -fr, data, , 0x3e0000, 0x20000, +app0, app, ota_0, 0x10000, 0x3c0000, +fr, data, , 0x3d0000, 0x20000, +coredump, data, coredump,0x3f0000, 0x10000, From 58c0bbc0e9a30e7451bcae81a394c05f63541d33 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 2 Oct 2024 16:17:12 +0300 Subject: [PATCH 020/179] fix(usb): Add support for ESP32-P4 to esp32-hal-tinyusb --- CMakeLists.txt | 2 +- cores/esp32/esp32-hal-tinyusb.c | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ae2df0717b..707e3fe6233 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -343,7 +343,7 @@ function(maybe_add_component component_name) endif() endfunction() -if(IDF_TARGET MATCHES "esp32s2|esp32s3" AND CONFIG_TINYUSB_ENABLED) +if(IDF_TARGET MATCHES "esp32s2|esp32s3|esp32p4" AND CONFIG_TINYUSB_ENABLED) maybe_add_component(arduino_tinyusb) endif() if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA) diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index f7225425913..4247a299df0 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -10,12 +10,15 @@ #include "soc/soc.h" #include "soc/efuse_reg.h" +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 #include "soc/rtc_cntl_reg.h" #include "soc/usb_struct.h" #include "soc/usb_reg.h" #include "soc/usb_wrap_reg.h" #include "soc/usb_wrap_struct.h" #include "soc/usb_periph.h" +#endif + #include "soc/periph_defs.h" #include "soc/timer_group_struct.h" #include "soc/system_reg.h" @@ -34,8 +37,8 @@ #include "esp32-hal.h" #include "esp32-hal-periman.h" - #include "esp32-hal-tinyusb.h" + #if CONFIG_IDF_TARGET_ESP32S2 #include "esp32s2/rom/usb/usb_persist.h" #include "esp32s2/rom/usb/usb_dc.h" @@ -50,6 +53,7 @@ #include "esp32s3/rom/usb/usb_persist.h" #include "esp32s3/rom/usb/usb_dc.h" #include "esp32s3/rom/usb/chip_usb_dw_wrapper.h" +#elif CONFIG_IDF_TARGET_ESP32P4 #endif typedef enum { @@ -467,8 +471,10 @@ __attribute__((weak)) void tud_network_init_cb(void) {} /* * Private API * */ +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 static bool usb_persist_enabled = false; static restart_type_t usb_persist_mode = RESTART_NO_PERSIST; +#endif #if CONFIG_IDF_TARGET_ESP32S3 @@ -549,6 +555,7 @@ static void usb_switch_to_cdc_jtag() { } #endif +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 static void IRAM_ATTR usb_persist_shutdown_handler(void) { if (usb_persist_mode != RESTART_NO_PERSIST) { if (usb_persist_enabled) { @@ -580,8 +587,10 @@ static void IRAM_ATTR usb_persist_shutdown_handler(void) { } } } +#endif void usb_persist_restart(restart_type_t mode) { +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 if (mode < RESTART_TYPE_MAX && esp_register_shutdown_handler(usb_persist_shutdown_handler) == ESP_OK) { usb_persist_mode = mode; #if CONFIG_IDF_TARGET_ESP32S3 @@ -591,6 +600,7 @@ void usb_persist_restart(restart_type_t mode) { #endif esp_restart(); } +#endif } static bool tinyusb_reserve_in_endpoint(uint8_t endpoint) { @@ -674,8 +684,13 @@ static inline char nibble_to_hex_char(uint8_t b) { static void set_usb_serial_num(void) { /* Get the MAC address */ +#if CONFIG_IDF_TARGET_ESP32P4 + const uint32_t mac0 = REG_GET_FIELD(EFUSE_RD_MAC_SYS_0_REG, EFUSE_MAC_0); + const uint32_t mac1 = REG_GET_FIELD(EFUSE_RD_MAC_SYS_0_REG, EFUSE_MAC_1); +#else const uint32_t mac0 = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_0_REG, EFUSE_MAC_0); const uint32_t mac1 = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_1_REG, EFUSE_MAC_1); +#endif uint8_t mac_bytes[6]; memcpy(mac_bytes, &mac0, 4); memcpy(mac_bytes + 4, &mac1, 2); @@ -794,6 +809,7 @@ esp_err_t tinyusb_init(tinyusb_device_config_t *config) { return ESP_FAIL; } +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 bool usb_did_persist = (USB_WRAP.date.val == USBDC_PERSIST_ENA); //if(usb_did_persist && usb_persist_enabled){ @@ -806,7 +822,8 @@ esp_err_t tinyusb_init(tinyusb_device_config_t *config) { periph_ll_reset(PERIPH_USB_MODULE); periph_ll_enable_clk_clear_rst(PERIPH_USB_MODULE); } - +#endif + tinyusb_config_t tusb_cfg = { .external_phy = false // In the most cases you need to use a `false` value }; From b067cd6d7f92bd171546a42ec28d646c52a6053c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:25:15 +0200 Subject: [PATCH 021/179] fix(example): Skip zigbee build for P4 --- libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json | 3 ++- libraries/Zigbee/examples/Zigbee_Thermostat/ci.json | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json index 3aaf44eb376..f6e4a17c15d 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json index c916121b991..e51a291ca49 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json b/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json index 3aaf44eb376..f6e4a17c15d 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json index c916121b991..e51a291ca49 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json b/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json index 3aaf44eb376..f6e4a17c15d 100644 --- a/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json index 3aaf44eb376..f6e4a17c15d 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } diff --git a/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json b/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json index c916121b991..e51a291ca49 100644 --- a/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json @@ -11,6 +11,7 @@ "esp32": false, "esp32c3": false, "esp32s2": false, - "esp32s3": false + "esp32s3": false, + "esp32p4": false } } From c5047286a1d743e62d441b8bf23cf5aeda74bac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 2 Oct 2024 18:40:04 +0200 Subject: [PATCH 022/179] fix(example): Use requires instead of target in ci.json --- .../examples/Zigbee_Color_Dimmable_Light/ci.json | 10 +++------- .../Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json | 10 +++------- libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json | 10 +++------- libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json | 10 +++------- libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json | 10 +++------- .../Zigbee/examples/Zigbee_Temperature_Sensor/ci.json | 10 +++------- libraries/Zigbee/examples/Zigbee_Thermostat/ci.json | 10 +++------- 7 files changed, 21 insertions(+), 49 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json index f6e4a17c15d..d3573967de0 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee,ZigbeeMode=ed" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json index e51a291ca49..3a5d7026228 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee_zczr,ZigbeeMode=zczr" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json b/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json index f6e4a17c15d..d3573967de0 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee,ZigbeeMode=ed" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json index e51a291ca49..3a5d7026228 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee_zczr,ZigbeeMode=zczr" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json b/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json index f6e4a17c15d..d3573967de0 100644 --- a/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Scan_Networks/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee,ZigbeeMode=ed" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json index f6e4a17c15d..d3573967de0 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee,ZigbeeMode=ed" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } diff --git a/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json b/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json index e51a291ca49..3a5d7026228 100644 --- a/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json +++ b/libraries/Zigbee/examples/Zigbee_Thermostat/ci.json @@ -7,11 +7,7 @@ "espressif:esp32:esp32h2:PartitionScheme=zigbee_zczr,ZigbeeMode=zczr" ] }, - "targets": { - "esp32": false, - "esp32c3": false, - "esp32s2": false, - "esp32s3": false, - "esp32p4": false - } + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] } From c3aa74f60ab0d6377d17d5ef14a8ddd08c380be1 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 2 Oct 2024 19:26:33 +0300 Subject: [PATCH 023/179] fix(spiram): Fix OPI PSRAM init --- cores/esp32/esp32-hal-misc.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/cores/esp32/esp32-hal-misc.c b/cores/esp32/esp32-hal-misc.c index 1fb1d2af9df..0bce548bdd2 100644 --- a/cores/esp32/esp32-hal-misc.c +++ b/cores/esp32/esp32-hal-misc.c @@ -253,13 +253,11 @@ extern bool btInUse(); #endif #if CONFIG_SPIRAM_SUPPORT || CONFIG_SPIRAM -#ifndef CONFIG_SPIRAM_BOOT_INIT ESP_SYSTEM_INIT_FN(init_psram_new, CORE, BIT(0), 99) { psramInit(); return ESP_OK; } #endif -#endif void initArduino() { //init proper ref tick value for PLL (uncomment if REF_TICK is different than 1MHz) From 01b256ca1cd6d341b53758591eaa905818ff4aaa Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 2 Oct 2024 21:08:49 +0300 Subject: [PATCH 024/179] fix(usb): Enable TinyUSB mode for ESP32-P4 --- .github/scripts/sketch_utils.sh | 2 +- boards.txt | 27 ++++++++++++++++++++++----- platform.txt | 2 +- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.github/scripts/sketch_utils.sh b/.github/scripts/sketch_utils.sh index eae5c139428..b19a0ab67a9 100755 --- a/.github/scripts/sketch_utils.sh +++ b/.github/scripts/sketch_utils.sh @@ -91,7 +91,7 @@ function build_sketch(){ # build_sketch [ex esp32c3_opts="PartitionScheme=huge_app,FlashMode=dio" esp32c6_opts="PartitionScheme=huge_app,FlashMode=dio" esp32h2_opts="PartitionScheme=huge_app,FlashMode=dio" - esp32p4_opts="PartitionScheme=huge_app,FlashMode=dio" + esp32p4_opts="PartitionScheme=huge_app,FlashMode=dio,USBMode=default" # Select the common part of the FQBN based on the target. The rest will be # appended depending on the passed options. diff --git a/boards.txt b/boards.txt index 0ff823bd4e0..51b4adfd868 100644 --- a/boards.txt +++ b/boards.txt @@ -212,21 +212,38 @@ esp32p4.menu.JTAGAdapter.bridge=ESP USB Bridge esp32p4.menu.JTAGAdapter.bridge.build.openocdscript=esp32p4-bridge.cfg esp32p4.menu.JTAGAdapter.bridge.build.copy_jtag_files=1 -esp32p4.menu.CDCOnBoot.default=Disabled -esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 -esp32p4.menu.CDCOnBoot.cdc=Enabled -esp32p4.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 - esp32p4.menu.PSRAM.disabled=Disabled esp32p4.menu.PSRAM.disabled.build.defines= esp32p4.menu.PSRAM.enabled=Enabled esp32p4.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM +esp32p4.menu.USBMode.hwcdc=Hardware CDC and JTAG +esp32p4.menu.USBMode.hwcdc.build.usb_mode=1 +esp32p4.menu.USBMode.default=USB-OTG (TinyUSB) +esp32p4.menu.USBMode.default.build.usb_mode=0 + esp32p4.menu.CDCOnBoot.default=Disabled esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 esp32p4.menu.CDCOnBoot.cdc=Enabled esp32p4.menu.CDCOnBoot.cdc.build.cdc_on_boot=1 +esp32p4.menu.MSCOnBoot.default=Disabled +esp32p4.menu.MSCOnBoot.default.build.msc_on_boot=0 +esp32p4.menu.MSCOnBoot.msc=Enabled (Requires USB-OTG Mode) +esp32p4.menu.MSCOnBoot.msc.build.msc_on_boot=1 + +esp32p4.menu.DFUOnBoot.default=Disabled +esp32p4.menu.DFUOnBoot.default.build.dfu_on_boot=0 +esp32p4.menu.DFUOnBoot.dfu=Enabled (Requires USB-OTG Mode) +esp32p4.menu.DFUOnBoot.dfu.build.dfu_on_boot=1 + +esp32p4.menu.UploadMode.default=UART0 / Hardware CDC +esp32p4.menu.UploadMode.default.upload.use_1200bps_touch=false +esp32p4.menu.UploadMode.default.upload.wait_for_upload_port=false +esp32p4.menu.UploadMode.cdc=USB-OTG CDC (TinyUSB) +esp32p4.menu.UploadMode.cdc.upload.use_1200bps_touch=true +esp32p4.menu.UploadMode.cdc.upload.wait_for_upload_port=true + esp32p4.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS) esp32p4.menu.PartitionScheme.default.build.partitions=default esp32p4.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS) diff --git a/platform.txt b/platform.txt index b9c31d4337f..8d918d3dea7 100644 --- a/platform.txt +++ b/platform.txt @@ -84,7 +84,7 @@ build.extra_flags.esp32c2=-DARDUINO_USB_CDC_ON_BOOT=0 build.extra_flags.esp32c3=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} build.extra_flags.esp32c6=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} build.extra_flags.esp32h2=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} -build.extra_flags.esp32p4=-DARDUINO_USB_MODE=1 -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} +build.extra_flags.esp32p4=-DARDUINO_USB_MODE={build.usb_mode} -DARDUINO_USB_CDC_ON_BOOT={build.cdc_on_boot} -DARDUINO_USB_MSC_ON_BOOT={build.msc_on_boot} -DARDUINO_USB_DFU_ON_BOOT={build.dfu_on_boot} # This can be overriden in boards.txt build.zigbee_mode= From 157b4c864388fe8461471f2abaf85da70259537f Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 2 Oct 2024 22:26:26 +0300 Subject: [PATCH 025/179] IDF release/v5.3 (#10403) IDF release/v5.3 707d097b --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 4df82b26bee..ea85072b9cb 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-4d0db704" + "version": "idf-release_v5.3-707d097b" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-4d0db704", + "version": "idf-release_v5.3-707d097b", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-4d0db704.zip", - "checksum": "SHA-256:645b7579d22e7de73c87cce1d52629f9780de9f18be5b5b066ac0f2c210e9bef", - "size": "360076736" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", + "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", + "size": "399730073" } ] }, From 341dc18079245c62dc66d397825058a5b59805fd Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 3 Oct 2024 13:47:24 +0300 Subject: [PATCH 026/179] fix(usb): Add support for HighSpeed USB This commit adds support for HighSpeed USB as present on ESP32-P4 --- cores/esp32/USBCDC.cpp | 2 +- cores/esp32/USBMSC.cpp | 2 +- cores/esp32/esp32-hal-tinyusb.c | 10 +++++++++- cores/esp32/esp32-hal-tinyusb.h | 8 ++++++++ libraries/USB/src/USBHID.cpp | 2 +- libraries/USB/src/USBMIDI.cpp | 2 +- libraries/USB/src/USBVendor.cpp | 11 +++++++---- libraries/USB/src/USBVendor.h | 2 +- 8 files changed, 29 insertions(+), 10 deletions(-) diff --git a/cores/esp32/USBCDC.cpp b/cores/esp32/USBCDC.cpp index 2689086013a..795a17dc0b8 100644 --- a/cores/esp32/USBCDC.cpp +++ b/cores/esp32/USBCDC.cpp @@ -31,7 +31,7 @@ USBCDC *devices[MAX_USB_CDC_DEVICES] = {NULL, NULL}; static uint16_t load_cdc_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t str_index = tinyusb_add_string_descriptor("TinyUSB CDC"); uint8_t descriptor[TUD_CDC_DESC_LEN] = {// Interface number, string index, EP notification address and size, EP data address (out, in) and size. - TUD_CDC_DESCRIPTOR(*itf, str_index, 0x85, 64, 0x03, 0x84, 64) + TUD_CDC_DESCRIPTOR(*itf, str_index, 0x85, CFG_TUD_ENDOINT_SIZE, 0x03, 0x84, CFG_TUD_ENDOINT_SIZE) }; *itf += 2; memcpy(dst, descriptor, TUD_CDC_DESC_LEN); diff --git a/cores/esp32/USBMSC.cpp b/cores/esp32/USBMSC.cpp index eeaf3026535..aeb79883f0d 100644 --- a/cores/esp32/USBMSC.cpp +++ b/cores/esp32/USBMSC.cpp @@ -24,7 +24,7 @@ extern "C" uint16_t tusb_msc_load_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t ep_num = tinyusb_get_free_duplex_endpoint(); TU_VERIFY(ep_num != 0); uint8_t descriptor[TUD_MSC_DESC_LEN] = {// Interface number, string index, EP Out & EP In address, EP size - TUD_MSC_DESCRIPTOR(*itf, str_index, ep_num, (uint8_t)(0x80 | ep_num), 64) + TUD_MSC_DESCRIPTOR(*itf, str_index, ep_num, (uint8_t)(0x80 | ep_num), CFG_TUD_ENDOINT_SIZE) }; *itf += 1; memcpy(dst, descriptor, TUD_MSC_DESC_LEN); diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index 4247a299df0..c69fca08fc7 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -131,7 +131,11 @@ esp_err_t init_usb_hal(bool external_phy) { .controller = USB_PHY_CTRL_OTG, .target = USB_PHY_TARGET_INT, .otg_mode = USB_OTG_MODE_DEVICE, +#if CONFIG_IDF_TARGET_ESP32P4 + .otg_speed = USB_PHY_SPEED_HIGH, +#else .otg_speed = USB_PHY_SPEED_FULL, +#endif .ext_io_conf = NULL, .otg_io_conf = NULL, }; @@ -169,7 +173,11 @@ void deinit_usb_hal() { esp_err_t tinyusb_driver_install(const tinyusb_config_t *config) { init_usb_hal(config->external_phy); - if (!tusb_init()) { +#if CONFIG_IDF_TARGET_ESP32P4 + if (!tud_init(1)) { +#else + if (!tud_init(0)) { +#endif log_e("Can't initialize the TinyUSB stack."); return ESP_FAIL; } diff --git a/cores/esp32/esp32-hal-tinyusb.h b/cores/esp32/esp32-hal-tinyusb.h index 9e9d044f80e..0b42760e69f 100644 --- a/cores/esp32/esp32-hal-tinyusb.h +++ b/cores/esp32/esp32-hal-tinyusb.h @@ -31,6 +31,14 @@ extern "C" { #define USB_ESPRESSIF_VID 0x303A #define USB_STRING_DESCRIPTOR_ARRAY_SIZE 10 +#ifndef CFG_TUD_ENDOINT_SIZE +#if CONFIG_IDF_TARGET_ESP32P4 +#define CFG_TUD_ENDOINT_SIZE 512 +#else +#define CFG_TUD_ENDOINT_SIZE 64 +#endif +#endif + typedef struct { uint16_t vid; uint16_t pid; diff --git a/libraries/USB/src/USBHID.cpp b/libraries/USB/src/USBHID.cpp index 75f37ef5df3..4bc555b8e30 100644 --- a/libraries/USB/src/USBHID.cpp +++ b/libraries/USB/src/USBHID.cpp @@ -206,7 +206,7 @@ extern "C" uint16_t tusb_hid_load_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t descriptor[TUD_HID_INOUT_DESC_LEN] = { // HID Input & Output descriptor // Interface number, string index, protocol, report descriptor len, EP OUT & IN address, size & polling interval - TUD_HID_INOUT_DESCRIPTOR(*itf, str_index, tinyusb_interface_protocol, tinyusb_hid_device_descriptor_len, ep_out, (uint8_t)(0x80 | ep_in), 64, 1) + TUD_HID_INOUT_DESCRIPTOR(*itf, str_index, tinyusb_interface_protocol, tinyusb_hid_device_descriptor_len, ep_out, (uint8_t)(0x80 | ep_in), CFG_TUD_ENDOINT_SIZE, 1) }; *itf += 1; memcpy(dst, descriptor, TUD_HID_INOUT_DESC_LEN); diff --git a/libraries/USB/src/USBMIDI.cpp b/libraries/USB/src/USBMIDI.cpp index cfc40e7b154..8a9571855e1 100644 --- a/libraries/USB/src/USBMIDI.cpp +++ b/libraries/USB/src/USBMIDI.cpp @@ -24,7 +24,7 @@ extern "C" uint16_t tusb_midi_load_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t ep_out = tinyusb_get_free_out_endpoint(); TU_VERIFY(ep_out != 0); uint8_t descriptor[TUD_MIDI_DESC_LEN] = { - TUD_MIDI_DESCRIPTOR(*itf, str_index, ep_out, (uint8_t)(0x80 | ep_in), 64), + TUD_MIDI_DESCRIPTOR(*itf, str_index, ep_out, (uint8_t)(0x80 | ep_in), CFG_TUD_ENDOINT_SIZE), }; *itf += 2; memcpy(dst, descriptor, TUD_MIDI_DESC_LEN); diff --git a/libraries/USB/src/USBVendor.cpp b/libraries/USB/src/USBVendor.cpp index 293d5866945..70fac5770ae 100644 --- a/libraries/USB/src/USBVendor.cpp +++ b/libraries/USB/src/USBVendor.cpp @@ -24,7 +24,7 @@ esp_err_t arduino_usb_event_handler_register_with(esp_event_base_t event_base, i static USBVendor *_Vendor = NULL; static QueueHandle_t rx_queue = NULL; -static uint8_t USB_VENDOR_ENDPOINT_SIZE = 64; +static uint16_t USB_VENDOR_ENDPOINT_SIZE = CFG_TUD_ENDOINT_SIZE; uint16_t tusb_vendor_load_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t str_index = tinyusb_add_string_descriptor("TinyUSB Vendor"); @@ -68,10 +68,13 @@ extern "C" bool tinyusb_vendor_control_request_cb(uint8_t rhport, uint8_t stage, return false; } -USBVendor::USBVendor(uint8_t endpoint_size) : itf(0), cb(NULL) { +USBVendor::USBVendor(uint16_t endpoint_size) : itf(0), cb(NULL) { if (!_Vendor) { _Vendor = this; - if (endpoint_size <= 64) { + if (endpoint_size == 0) { + endpoint_size = CFG_TUD_ENDOINT_SIZE; + } + if (endpoint_size <= CFG_TUD_ENDOINT_SIZE) { USB_VENDOR_ENDPOINT_SIZE = endpoint_size; } tinyusb_enable_interface(USB_INTERFACE_VENDOR, TUD_VENDOR_DESC_LEN, tusb_vendor_load_descriptor); @@ -97,7 +100,7 @@ size_t USBVendor::setRxBufferSize(size_t rx_queue_len) { } void USBVendor::begin() { - setRxBufferSize(256); //default if not preset + setRxBufferSize(512); //default if not preset } void USBVendor::end() { diff --git a/libraries/USB/src/USBVendor.h b/libraries/USB/src/USBVendor.h index e3e22281939..4990e466321 100644 --- a/libraries/USB/src/USBVendor.h +++ b/libraries/USB/src/USBVendor.h @@ -74,7 +74,7 @@ class USBVendor : public Stream { arduino_usb_vendor_control_request_handler_t cb; public: - USBVendor(uint8_t endpoint_size = 64); + USBVendor(uint16_t endpoint_size = 0); void begin(void); void end(void); size_t setRxBufferSize(size_t); From 6d6a8f8d3207c0f34cb6ad66b92a071fe1215d0b Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 3 Oct 2024 16:35:39 +0300 Subject: [PATCH 027/179] IDF release/v5.3 707d097b (#10416) --- package/package_esp32_index.template.json | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index ea85072b9cb..ea66c5a816d 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:7af392cc8c0079f3eea5e49706f3ea296bd42c4ce89d48909a135310caa69c96", - "size": "399730073" + "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", + "size": "399729605" } ] }, From 765173372f5e1fde9285b4180982589e4289aa9b Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Fri, 4 Oct 2024 11:33:27 -0300 Subject: [PATCH 028/179] Add P4 to chip info --- cores/esp32/Esp.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/cores/esp32/Esp.cpp b/cores/esp32/Esp.cpp index 6a6ed11e463..aa189516469 100644 --- a/cores/esp32/Esp.cpp +++ b/cores/esp32/Esp.cpp @@ -300,6 +300,7 @@ const char *EspClass::getChipModel(void) { case CHIP_ESP32C2: return "ESP32-C2"; case CHIP_ESP32C6: return "ESP32-C6"; case CHIP_ESP32H2: return "ESP32-H2"; + case CHIP_ESP32P4: return "ESP32-P4"; default: return "UNKNOWN"; } #endif From 4d1c9bcfa33533946622a9359391150478f38290 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:54:04 -0300 Subject: [PATCH 029/179] Fix partitions for examples --- libraries/BLE/examples/BLE5_extended_scan/ci.json | 1 + libraries/BLE/examples/BLE5_multi_advertising/ci.json | 1 + libraries/BLE/examples/BLE5_periodic_advertising/ci.json | 1 + libraries/BLE/examples/BLE5_periodic_sync/ci.json | 1 + libraries/BLE/examples/Beacon_Scanner/ci.json | 1 + libraries/BLE/examples/Client/ci.json | 1 + libraries/BLE/examples/EddystoneTLM_Beacon/ci.json | 1 + libraries/BLE/examples/EddystoneURL_Beacon/ci.json | 1 + libraries/BLE/examples/Notify/ci.json | 1 + libraries/BLE/examples/Scan/ci.json | 1 + libraries/BLE/examples/Server/ci.json | 1 + libraries/BLE/examples/Server_multiconnect/ci.json | 1 + libraries/BLE/examples/UART/ci.json | 1 + libraries/BLE/examples/Write/ci.json | 1 + libraries/BLE/examples/iBeacon/ci.json | 1 + libraries/BluetoothSerial/examples/DiscoverConnect/ci.json | 1 + libraries/BluetoothSerial/examples/GetLocalMAC/ci.json | 1 + libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json | 1 + libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json | 1 + .../BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json | 1 + libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json | 1 + .../BluetoothSerial/examples/bt_classic_device_discovery/ci.json | 1 + .../BluetoothSerial/examples/bt_remove_paired_devices/ci.json | 1 + libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json | 1 + libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json | 1 + libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json | 1 + .../examples/WiFiClientSecureEnterprise/ci.json | 1 + 27 files changed, 27 insertions(+) diff --git a/libraries/BLE/examples/BLE5_extended_scan/ci.json b/libraries/BLE/examples/BLE5_extended_scan/ci.json index 9f7646a74a6..184cc25a2b0 100644 --- a/libraries/BLE/examples/BLE5_extended_scan/ci.json +++ b/libraries/BLE/examples/BLE5_extended_scan/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_50_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/BLE5_multi_advertising/ci.json b/libraries/BLE/examples/BLE5_multi_advertising/ci.json index 9f7646a74a6..184cc25a2b0 100644 --- a/libraries/BLE/examples/BLE5_multi_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_multi_advertising/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_50_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json index 9f7646a74a6..184cc25a2b0 100644 --- a/libraries/BLE/examples/BLE5_periodic_advertising/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_advertising/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_50_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/BLE5_periodic_sync/ci.json b/libraries/BLE/examples/BLE5_periodic_sync/ci.json index 9f7646a74a6..184cc25a2b0 100644 --- a/libraries/BLE/examples/BLE5_periodic_sync/ci.json +++ b/libraries/BLE/examples/BLE5_periodic_sync/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_50_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Beacon_Scanner/ci.json b/libraries/BLE/examples/Beacon_Scanner/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Beacon_Scanner/ci.json +++ b/libraries/BLE/examples/Beacon_Scanner/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Client/ci.json b/libraries/BLE/examples/Client/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Client/ci.json +++ b/libraries/BLE/examples/Client/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json b/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json +++ b/libraries/BLE/examples/EddystoneTLM_Beacon/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/EddystoneURL_Beacon/ci.json b/libraries/BLE/examples/EddystoneURL_Beacon/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/EddystoneURL_Beacon/ci.json +++ b/libraries/BLE/examples/EddystoneURL_Beacon/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Notify/ci.json b/libraries/BLE/examples/Notify/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Notify/ci.json +++ b/libraries/BLE/examples/Notify/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Scan/ci.json b/libraries/BLE/examples/Scan/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Scan/ci.json +++ b/libraries/BLE/examples/Scan/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Server/ci.json b/libraries/BLE/examples/Server/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Server/ci.json +++ b/libraries/BLE/examples/Server/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Server_multiconnect/ci.json b/libraries/BLE/examples/Server_multiconnect/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Server_multiconnect/ci.json +++ b/libraries/BLE/examples/Server_multiconnect/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/UART/ci.json b/libraries/BLE/examples/UART/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/UART/ci.json +++ b/libraries/BLE/examples/UART/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/Write/ci.json b/libraries/BLE/examples/Write/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/Write/ci.json +++ b/libraries/BLE/examples/Write/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BLE/examples/iBeacon/ci.json b/libraries/BLE/examples/iBeacon/ci.json index c23553ec084..abe13a7ebbb 100644 --- a/libraries/BLE/examples/iBeacon/ci.json +++ b/libraries/BLE/examples/iBeacon/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_BLE_SUPPORTED=y" ] diff --git a/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json b/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json +++ b/libraries/BluetoothSerial/examples/DiscoverConnect/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json b/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json +++ b/libraries/BluetoothSerial/examples/GetLocalMAC/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBTM/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_Legacy/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json +++ b/libraries/BluetoothSerial/examples/SerialToSerialBT_SSP/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json b/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json +++ b/libraries/BluetoothSerial/examples/bt_classic_device_discovery/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json b/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json index 98fda4381b1..b5097688f52 100644 --- a/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json +++ b/libraries/BluetoothSerial/examples/bt_remove_paired_devices/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_BT_SPP_ENABLED=y" ] diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json index 36babb82730..04eb62b977a 100644 --- a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json +++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_WIFI_SUPPORTED=y" ] diff --git a/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json b/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json index 36babb82730..04eb62b977a 100644 --- a/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json +++ b/libraries/HTTPUpdate/examples/httpUpdateSecure/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_WIFI_SUPPORTED=y" ] diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json index 36babb82730..04eb62b977a 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecure/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_WIFI_SUPPORTED=y" ] diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json index 36babb82730..04eb62b977a 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json @@ -1,4 +1,5 @@ { + "fqbn_append": "PartitionScheme=huge_app", "requires": [ "CONFIG_SOC_WIFI_SUPPORTED=y" ] From ba9a3a1dbd5247f662932d4d505b9b1da6ae369c Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 7 Oct 2024 10:58:41 -0300 Subject: [PATCH 030/179] fix(arduino): adds ESP32-P4 to the package description (#10426) * fix(arduino): adds ESP32-P4 to the package description Updates the Package description to add the P4 in 3.1.0 * fix(arduino): update readme title to add the P4 Adds ESP32-P$ to the list of supported SoC in README.md for Core 3.1.0 --- README.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d3dca34aafe..1ee43fa0537 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Arduino core for the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2 +# Arduino core for the ESP32, ESP32-P4, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2 [![Build Status](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml/badge.svg?branch=master&event=push)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml) [![External Libraries Test](https://github.com/espressif/arduino-esp32/actions/workflows/lib.yml/badge.svg?branch=master&event=schedule)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md) [![Hardware Tests](https://github.com/espressif/arduino-esp32/blob/gh-pages/runtime-tests-results/badge.svg)](https://github.com/espressif/arduino-esp32/actions/workflows/tests_results.yml) diff --git a/package.json b/package.json index 2e53f41d4c8..e13a446bd98 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "framework-arduinoespressif32", "version": "3.1.0", - "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-S and ESP32-C series of SoCs", + "description": "Arduino Wiring-based Framework for the Espressif ESP32, ESP32-P4, ESP32-S and ESP32-C series of SoCs", "keywords": [ "framework", "arduino", From af4099202dba9acbb2653f3579e6441e65556bf4 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 10 Oct 2024 17:22:39 +0300 Subject: [PATCH 031/179] IDF release/v5.3 (#10444) * IDF release/v5.3 707d097b * fix(camera): Remove support for face detection and recognition --- .../Camera/CameraWebServer/app_httpd.cpp | 520 +----------------- package/package_esp32_index.template.json | 32 +- 2 files changed, 37 insertions(+), 515 deletions(-) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp index af3d38ad544..6b62ee9b6cf 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp +++ b/libraries/ESP32/examples/Camera/CameraWebServer/app_httpd.cpp @@ -24,55 +24,6 @@ #include "esp32-hal-log.h" #endif -// Face Detection will not work on boards without (or with disabled) PSRAM -#ifdef BOARD_HAS_PSRAM -// Face Recognition takes upward from 15 seconds per frame on chips other than ESP32S3 -// Makes no sense to have it enabled for them -#if CONFIG_IDF_TARGET_ESP32S3 -#define CONFIG_ESP_FACE_RECOGNITION_ENABLED 1 -#define CONFIG_ESP_FACE_DETECT_ENABLED 1 -#else -#define CONFIG_ESP_FACE_RECOGNITION_ENABLED 0 -#define CONFIG_ESP_FACE_DETECT_ENABLED 0 -#endif -#else -#define CONFIG_ESP_FACE_DETECT_ENABLED 0 -#define CONFIG_ESP_FACE_RECOGNITION_ENABLED 0 -#endif - -#if CONFIG_ESP_FACE_DETECT_ENABLED - -#include -#include "human_face_detect_msr01.hpp" -#include "human_face_detect_mnp01.hpp" - -#define TWO_STAGE 1 /* very large firmware, very slow, reboots when streaming... - -#define FACE_ID_SAVE_NUMBER 7 -#endif - -#define FACE_COLOR_WHITE 0x00FFFFFF -#define FACE_COLOR_BLACK 0x00000000 -#define FACE_COLOR_RED 0x000000FF -#define FACE_COLOR_GREEN 0x0000FF00 -#define FACE_COLOR_BLUE 0x00FF0000 -#define FACE_COLOR_YELLOW (FACE_COLOR_RED | FACE_COLOR_GREEN) -#define FACE_COLOR_CYAN (FACE_COLOR_BLUE | FACE_COLOR_GREEN) -#define FACE_COLOR_PURPLE (FACE_COLOR_BLUE | FACE_COLOR_RED) -#endif - // Enable LED FLASH setting #define CONFIG_LED_ILLUMINATOR_ENABLED 1 @@ -100,32 +51,6 @@ static const char *_STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: % httpd_handle_t stream_httpd = NULL; httpd_handle_t camera_httpd = NULL; -#if CONFIG_ESP_FACE_DETECT_ENABLED - -static int8_t detection_enabled = 0; - -// #if TWO_STAGE -// static HumanFaceDetectMSR01 s1(0.1F, 0.5F, 10, 0.2F); -// static HumanFaceDetectMNP01 s2(0.5F, 0.3F, 5); -// #else -// static HumanFaceDetectMSR01 s1(0.3F, 0.5F, 10, 0.2F); -// #endif - -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED -static int8_t recognition_enabled = 0; -static int8_t is_enrolling = 0; - -#if QUANT_TYPE -// S16 model -FaceRecognition112V1S16 recognizer; -#else -// S8 model -FaceRecognition112V1S8 recognizer; -#endif -#endif - -#endif - typedef struct { size_t size; //number of values used for filtering size_t index; //current value index @@ -166,105 +91,6 @@ static int ra_filter_run(ra_filter_t *filter, int value) { } #endif -#if CONFIG_ESP_FACE_DETECT_ENABLED -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED -static void rgb_print(fb_data_t *fb, uint32_t color, const char *str) { - fb_gfx_print(fb, (fb->width - (strlen(str) * 14)) / 2, 10, color, str); -} - -static int rgb_printf(fb_data_t *fb, uint32_t color, const char *format, ...) { - char loc_buf[64]; - char *temp = loc_buf; - int len; - va_list arg; - va_list copy; - va_start(arg, format); - va_copy(copy, arg); - len = vsnprintf(loc_buf, sizeof(loc_buf), format, arg); - va_end(copy); - if (len >= sizeof(loc_buf)) { - temp = (char *)malloc(len + 1); - if (temp == NULL) { - return 0; - } - } - vsnprintf(temp, len + 1, format, arg); - va_end(arg); - rgb_print(fb, color, temp); - if (len > 64) { - free(temp); - } - return len; -} -#endif -static void draw_face_boxes(fb_data_t *fb, std::list *results, int face_id) { - int x, y, w, h; - uint32_t color = FACE_COLOR_YELLOW; - if (face_id < 0) { - color = FACE_COLOR_RED; - } else if (face_id > 0) { - color = FACE_COLOR_GREEN; - } - if (fb->bytes_per_pixel == 2) { - //color = ((color >> 8) & 0xF800) | ((color >> 3) & 0x07E0) | (color & 0x001F); - color = ((color >> 16) & 0x001F) | ((color >> 3) & 0x07E0) | ((color << 8) & 0xF800); - } - int i = 0; - for (std::list::iterator prediction = results->begin(); prediction != results->end(); prediction++, i++) { - // rectangle box - x = (int)prediction->box[0]; - y = (int)prediction->box[1]; - w = (int)prediction->box[2] - x + 1; - h = (int)prediction->box[3] - y + 1; - if ((x + w) > fb->width) { - w = fb->width - x; - } - if ((y + h) > fb->height) { - h = fb->height - y; - } - fb_gfx_drawFastHLine(fb, x, y, w, color); - fb_gfx_drawFastHLine(fb, x, y + h - 1, w, color); - fb_gfx_drawFastVLine(fb, x, y, h, color); - fb_gfx_drawFastVLine(fb, x + w - 1, y, h, color); -#if TWO_STAGE - // landmarks (left eye, mouth left, nose, right eye, mouth right) - int x0, y0, j; - for (j = 0; j < 10; j += 2) { - x0 = (int)prediction->keypoint[j]; - y0 = (int)prediction->keypoint[j + 1]; - fb_gfx_fillRect(fb, x0, y0, 3, 3, color); - } -#endif - } -} - -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED -static int run_face_recognition(fb_data_t *fb, std::list *results) { - std::vector landmarks = results->front().keypoint; - int id = -1; - - Tensor tensor; - tensor.set_element((uint8_t *)fb->data).set_shape({fb->height, fb->width, 3}).set_auto_free(false); - - int enrolled_count = recognizer.get_enrolled_id_num(); - - if (enrolled_count < FACE_ID_SAVE_NUMBER && is_enrolling) { - id = recognizer.enroll_id(tensor, landmarks, "", true); - log_i("Enrolled ID: %d", id); - rgb_printf(fb, FACE_COLOR_CYAN, "ID[%u]", id); - } - - face_info_t recognize = recognizer.recognize(tensor, landmarks); - if (recognize.id >= 0) { - rgb_printf(fb, FACE_COLOR_GREEN, "ID[%u]: %.2f", recognize.id, recognize.similarity); - } else { - rgb_print(fb, FACE_COLOR_RED, "Intruder Alert!"); - } - return recognize.id; -} -#endif -#endif - #if CONFIG_LED_ILLUMINATOR_ENABLED void enable_led(bool en) { // Turn LED On or Off int duty = en ? led_duty : 0; @@ -359,134 +185,28 @@ static esp_err_t capture_handler(httpd_req_t *req) { snprintf(ts, 32, "%lld.%06ld", fb->timestamp.tv_sec, fb->timestamp.tv_usec); httpd_resp_set_hdr(req, "X-Timestamp", (const char *)ts); -#if CONFIG_ESP_FACE_DETECT_ENABLED - size_t out_len, out_width, out_height; - uint8_t *out_buf; - bool s; -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - bool detected = false; -#endif - int face_id = 0; - if (!detection_enabled || fb->width > 400) { -#endif #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - size_t fb_len = 0; + size_t fb_len = 0; #endif - if (fb->format == PIXFORMAT_JPEG) { + if (fb->format == PIXFORMAT_JPEG) { #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fb_len = fb->len; + fb_len = fb->len; #endif - res = httpd_resp_send(req, (const char *)fb->buf, fb->len); - } else { - jpg_chunking_t jchunk = {req, 0}; - res = frame2jpg_cb(fb, 80, jpg_encode_stream, &jchunk) ? ESP_OK : ESP_FAIL; - httpd_resp_send_chunk(req, NULL, 0); -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fb_len = jchunk.len; -#endif - } - esp_camera_fb_return(fb); -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - int64_t fr_end = esp_timer_get_time(); -#endif - log_i("JPG: %uB %ums", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start) / 1000)); - return res; -#if CONFIG_ESP_FACE_DETECT_ENABLED - } - - jpg_chunking_t jchunk = {req, 0}; - - if (fb->format == PIXFORMAT_RGB565 -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - && !recognition_enabled -#endif - ) { -#if TWO_STAGE - HumanFaceDetectMSR01 s1(0.1F, 0.5F, 10, 0.2F); - HumanFaceDetectMNP01 s2(0.5F, 0.3F, 5); - std::list &candidates = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); - std::list &results = s2.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}, candidates); -#else - HumanFaceDetectMSR01 s1(0.3F, 0.5F, 10, 0.2F); - std::list &results = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); -#endif - if (results.size() > 0) { - fb_data_t rfb; - rfb.width = fb->width; - rfb.height = fb->height; - rfb.data = fb->buf; - rfb.bytes_per_pixel = 2; - rfb.format = FB_RGB565; -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - detected = true; -#endif - draw_face_boxes(&rfb, &results, face_id); - } - s = fmt2jpg_cb(fb->buf, fb->len, fb->width, fb->height, PIXFORMAT_RGB565, 90, jpg_encode_stream, &jchunk); - esp_camera_fb_return(fb); + res = httpd_resp_send(req, (const char *)fb->buf, fb->len); } else { - out_len = fb->width * fb->height * 3; - out_width = fb->width; - out_height = fb->height; - out_buf = (uint8_t *)malloc(out_len); - if (!out_buf) { - log_e("out_buf malloc failed"); - httpd_resp_send_500(req); - return ESP_FAIL; - } - s = fmt2rgb888(fb->buf, fb->len, fb->format, out_buf); - esp_camera_fb_return(fb); - if (!s) { - free(out_buf); - log_e("To rgb888 failed"); - httpd_resp_send_500(req); - return ESP_FAIL; - } - - fb_data_t rfb; - rfb.width = out_width; - rfb.height = out_height; - rfb.data = out_buf; - rfb.bytes_per_pixel = 3; - rfb.format = FB_BGR888; - -#if TWO_STAGE - HumanFaceDetectMSR01 s1(0.1F, 0.5F, 10, 0.2F); - HumanFaceDetectMNP01 s2(0.5F, 0.3F, 5); - std::list &candidates = s1.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}); - std::list &results = s2.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}, candidates); -#else - HumanFaceDetectMSR01 s1(0.3F, 0.5F, 10, 0.2F); - std::list &results = s1.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}); -#endif - - if (results.size() > 0) { + jpg_chunking_t jchunk = {req, 0}; + res = frame2jpg_cb(fb, 80, jpg_encode_stream, &jchunk) ? ESP_OK : ESP_FAIL; + httpd_resp_send_chunk(req, NULL, 0); #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - detected = true; + fb_len = jchunk.len; #endif -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - if (recognition_enabled) { - face_id = run_face_recognition(&rfb, &results); - } -#endif - draw_face_boxes(&rfb, &results, face_id); - } - - s = fmt2jpg_cb(out_buf, out_len, out_width, out_height, PIXFORMAT_RGB888, 90, jpg_encode_stream, &jchunk); - free(out_buf); - } - - if (!s) { - log_e("JPEG compression failed"); - httpd_resp_send_500(req); - return ESP_FAIL; } + esp_camera_fb_return(fb); #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO int64_t fr_end = esp_timer_get_time(); #endif - log_i("FACE: %uB %ums %s%d", (uint32_t)(jchunk.len), (uint32_t)((fr_end - fr_start) / 1000), detected ? "DETECTED " : "", face_id); + log_i("JPG: %uB %ums", (uint32_t)(fb_len), (uint32_t)((fr_end - fr_start) / 1000)); return res; -#endif } static esp_err_t stream_handler(httpd_req_t *req) { @@ -496,26 +216,6 @@ static esp_err_t stream_handler(httpd_req_t *req) { size_t _jpg_buf_len = 0; uint8_t *_jpg_buf = NULL; char *part_buf[128]; -#if CONFIG_ESP_FACE_DETECT_ENABLED -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - bool detected = false; - int64_t fr_ready = 0; - int64_t fr_recognize = 0; - int64_t fr_encode = 0; - int64_t fr_face = 0; - int64_t fr_start = 0; -#endif - int face_id = 0; - size_t out_len = 0, out_width = 0, out_height = 0; - uint8_t *out_buf = NULL; - bool s = false; -#if TWO_STAGE - HumanFaceDetectMSR01 s1(0.1F, 0.5F, 10, 0.2F); - HumanFaceDetectMNP01 s2(0.5F, 0.3F, 5); -#else - HumanFaceDetectMSR01 s1(0.3F, 0.5F, 10, 0.2F); -#endif -#endif static int64_t last_frame = 0; if (!last_frame) { @@ -536,13 +236,6 @@ static esp_err_t stream_handler(httpd_req_t *req) { #endif while (true) { -#if CONFIG_ESP_FACE_DETECT_ENABLED -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - detected = false; -#endif - face_id = 0; -#endif - fb = esp_camera_fb_get(); if (!fb) { log_e("Camera capture failed"); @@ -550,138 +243,18 @@ static esp_err_t stream_handler(httpd_req_t *req) { } else { _timestamp.tv_sec = fb->timestamp.tv_sec; _timestamp.tv_usec = fb->timestamp.tv_usec; -#if CONFIG_ESP_FACE_DETECT_ENABLED -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_start = esp_timer_get_time(); - fr_ready = fr_start; - fr_encode = fr_start; - fr_recognize = fr_start; - fr_face = fr_start; -#endif - if (!detection_enabled || fb->width > 400) { -#endif - if (fb->format != PIXFORMAT_JPEG) { - bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len); - esp_camera_fb_return(fb); - fb = NULL; - if (!jpeg_converted) { - log_e("JPEG compression failed"); - res = ESP_FAIL; - } - } else { - _jpg_buf_len = fb->len; - _jpg_buf = fb->buf; + if (fb->format != PIXFORMAT_JPEG) { + bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len); + esp_camera_fb_return(fb); + fb = NULL; + if (!jpeg_converted) { + log_e("JPEG compression failed"); + res = ESP_FAIL; } -#if CONFIG_ESP_FACE_DETECT_ENABLED } else { - if (fb->format == PIXFORMAT_RGB565 -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - && !recognition_enabled -#endif - ) { -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_ready = esp_timer_get_time(); -#endif -#if TWO_STAGE - std::list &candidates = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); - std::list &results = s2.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}, candidates); -#else - std::list &results = s1.infer((uint16_t *)fb->buf, {(int)fb->height, (int)fb->width, 3}); -#endif -#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_face = esp_timer_get_time(); - fr_recognize = fr_face; -#endif - if (results.size() > 0) { - fb_data_t rfb; - rfb.width = fb->width; - rfb.height = fb->height; - rfb.data = fb->buf; - rfb.bytes_per_pixel = 2; - rfb.format = FB_RGB565; -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - detected = true; -#endif - draw_face_boxes(&rfb, &results, face_id); - } - s = fmt2jpg(fb->buf, fb->len, fb->width, fb->height, PIXFORMAT_RGB565, 80, &_jpg_buf, &_jpg_buf_len); - esp_camera_fb_return(fb); - fb = NULL; - if (!s) { - log_e("fmt2jpg failed"); - res = ESP_FAIL; - } -#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_encode = esp_timer_get_time(); -#endif - } else { - out_len = fb->width * fb->height * 3; - out_width = fb->width; - out_height = fb->height; - out_buf = (uint8_t *)malloc(out_len); - if (!out_buf) { - log_e("out_buf malloc failed"); - res = ESP_FAIL; - } else { - s = fmt2rgb888(fb->buf, fb->len, fb->format, out_buf); - esp_camera_fb_return(fb); - fb = NULL; - if (!s) { - free(out_buf); - log_e("To rgb888 failed"); - res = ESP_FAIL; - } else { -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_ready = esp_timer_get_time(); -#endif - - fb_data_t rfb; - rfb.width = out_width; - rfb.height = out_height; - rfb.data = out_buf; - rfb.bytes_per_pixel = 3; - rfb.format = FB_BGR888; - -#if TWO_STAGE - std::list &candidates = s1.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}); - std::list &results = s2.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}, candidates); -#else - std::list &results = s1.infer((uint8_t *)out_buf, {(int)out_height, (int)out_width, 3}); -#endif - -#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_face = esp_timer_get_time(); - fr_recognize = fr_face; -#endif - - if (results.size() > 0) { -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - detected = true; -#endif -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - if (recognition_enabled) { - face_id = run_face_recognition(&rfb, &results); -#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_recognize = esp_timer_get_time(); -#endif - } -#endif - draw_face_boxes(&rfb, &results, face_id); - } - s = fmt2jpg(out_buf, out_len, out_width, out_height, PIXFORMAT_RGB888, 90, &_jpg_buf, &_jpg_buf_len); - free(out_buf); - if (!s) { - log_e("fmt2jpg failed"); - res = ESP_FAIL; - } -#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - fr_encode = esp_timer_get_time(); -#endif - } - } - } + _jpg_buf_len = fb->len; + _jpg_buf = fb->buf; } -#endif } if (res == ESP_OK) { res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY)); @@ -707,30 +280,14 @@ static esp_err_t stream_handler(httpd_req_t *req) { } int64_t fr_end = esp_timer_get_time(); -#if CONFIG_ESP_FACE_DETECT_ENABLED && ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO - int64_t ready_time = (fr_ready - fr_start) / 1000; - int64_t face_time = (fr_face - fr_ready) / 1000; - int64_t recognize_time = (fr_recognize - fr_face) / 1000; - int64_t encode_time = (fr_encode - fr_recognize) / 1000; - int64_t process_time = (fr_encode - fr_start) / 1000; -#endif - int64_t frame_time = fr_end - last_frame; frame_time /= 1000; #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO uint32_t avg_frame_time = ra_filter_run(&ra_filter, frame_time); #endif log_i( - "MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)" -#if CONFIG_ESP_FACE_DETECT_ENABLED - ", %u+%u+%u+%u=%u %s%d" -#endif - , - (uint32_t)(_jpg_buf_len), (uint32_t)frame_time, 1000.0 / (uint32_t)frame_time, avg_frame_time, 1000.0 / avg_frame_time -#if CONFIG_ESP_FACE_DETECT_ENABLED - , - (uint32_t)ready_time, (uint32_t)face_time, (uint32_t)recognize_time, (uint32_t)encode_time, (uint32_t)process_time, (detected) ? "DETECTED " : "", face_id -#endif + "MJPG: %uB %ums (%.1ffps), AVG: %ums (%.1ffps)", (uint32_t)(_jpg_buf_len), (uint32_t)frame_time, 1000.0 / (uint32_t)frame_time, avg_frame_time, + 1000.0 / avg_frame_time ); } @@ -841,28 +398,6 @@ static esp_err_t cmd_handler(httpd_req_t *req) { enable_led(true); } } -#endif - -#if CONFIG_ESP_FACE_DETECT_ENABLED - else if (!strcmp(variable, "face_detect")) { - detection_enabled = val; -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - if (!detection_enabled) { - recognition_enabled = 0; - } -#endif - } -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - else if (!strcmp(variable, "face_enroll")) { - is_enrolling = !is_enrolling; - log_i("Enrolling: %s", is_enrolling ? "true" : "false"); - } else if (!strcmp(variable, "face_recognize")) { - recognition_enabled = val; - if (recognition_enabled) { - detection_enabled = val; - } - } -#endif #endif else { log_i("Unknown command: %s", variable); @@ -947,13 +482,6 @@ static esp_err_t status_handler(httpd_req_t *req) { p += sprintf(p, ",\"led_intensity\":%u", led_duty); #else p += sprintf(p, ",\"led_intensity\":%d", -1); -#endif -#if CONFIG_ESP_FACE_DETECT_ENABLED - p += sprintf(p, ",\"face_detect\":%u", detection_enabled); -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - p += sprintf(p, ",\"face_enroll\":%u,", is_enrolling); - p += sprintf(p, "\"face_recognize\":%u", recognition_enabled); -#endif #endif *p++ = '}'; *p++ = 0; @@ -1289,12 +817,6 @@ void startCameraServer() { ra_filter_init(&ra_filter, 20); -#if CONFIG_ESP_FACE_RECOGNITION_ENABLED - recognizer.set_partition(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_ANY, "fr"); - - // load ids from flash partition - recognizer.set_ids_from_flash(); -#endif log_i("Starting web server on port: '%d'", config.server_port); if (httpd_start(&camera_httpd, &config) == ESP_OK) { httpd_register_uri_handler(camera_httpd, &index_uri); diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index ea66c5a816d..413419a9b1c 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:f8624bf7eab91e0a3bb3be4cc385fef5a05a725bc6ff978f3d4e2562f2805b1e", - "size": "399729605" + "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", + "size": "351074410" } ] }, From 81d2cbca961fd7718f7af350677cb5e6561d7784 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 10 Oct 2024 14:27:04 -0300 Subject: [PATCH 032/179] fix(uart): Add missing HP UARTs for ESP32-P4 (#10447) * fix(uart): Add missing HP UARTs for ESP32-P4 * fix(comment): Fix macro in comment * fix(uart): Fix macro guard --- cores/esp32/HardwareSerial.cpp | 32 ++++++++++++++++++++++++++++---- cores/esp32/HardwareSerial.h | 6 ++++++ cores/esp32/esp32-hal-uart.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 4 deletions(-) diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index f515e833925..a6a7573f6e3 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -27,11 +27,19 @@ void serialEvent(void) __attribute__((weak)); #if SOC_UART_HP_NUM > 1 void serialEvent1(void) __attribute__((weak)); -#endif /* SOC_UART_NUM > 1 */ +#endif /* SOC_UART_HP_NUM > 1 */ #if SOC_UART_HP_NUM > 2 void serialEvent2(void) __attribute__((weak)); -#endif /* SOC_UART_NUM > 2 */ +#endif /* SOC_UART_HP_NUM > 2 */ + +#if SOC_UART_HP_NUM > 3 +void serialEvent3(void) __attribute__((weak)); +#endif /* SOC_UART_HP_NUM > 3 */ + +#if SOC_UART_HP_NUM > 4 +void serialEvent4(void) __attribute__((weak)); +#endif /* SOC_UART_HP_NUM > 4 */ #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) // There is always Seria0 for UART0 @@ -42,6 +50,12 @@ HardwareSerial Serial1(1); #if SOC_UART_HP_NUM > 2 HardwareSerial Serial2(2); #endif +#if SOC_UART_HP_NUM > 3 +HardwareSerial Serial3(3); +#endif +#if SOC_UART_HP_NUM > 4 +HardwareSerial Serial4(4); +#endif #if HWCDC_SERIAL_IS_DEFINED == 1 // Hardware JTAG CDC Event extern void HWCDCSerialEvent(void) __attribute__((weak)); @@ -67,16 +81,26 @@ void serialEventRun(void) { if (serialEvent && Serial0.available()) { serialEvent(); } -#if SOC_UART_NUM > 1 +#if SOC_UART_HP_NUM > 1 if (serialEvent1 && Serial1.available()) { serialEvent1(); } #endif -#if SOC_UART_NUM > 2 +#if SOC_UART_HP_NUM > 2 if (serialEvent2 && Serial2.available()) { serialEvent2(); } #endif +#if SOC_UART_HP_NUM > 3 + if (serialEvent3 && Serial3.available()) { + serialEvent3(); + } +#endif +#if SOC_UART_HP_NUM > 4 + if (serialEvent4 && Serial4.available()) { + serialEvent4(); + } +#endif } #endif diff --git a/cores/esp32/HardwareSerial.h b/cores/esp32/HardwareSerial.h index fc5dd92440d..8eb7f2c91a6 100644 --- a/cores/esp32/HardwareSerial.h +++ b/cores/esp32/HardwareSerial.h @@ -375,6 +375,12 @@ extern HardwareSerial Serial1; #if SOC_UART_HP_NUM > 2 extern HardwareSerial Serial2; #endif +#if SOC_UART_HP_NUM > 3 +extern HardwareSerial Serial3; +#endif +#if SOC_UART_HP_NUM > 4 +extern HardwareSerial Serial4; +#endif #endif //!defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL) #endif // HardwareSerial_h diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 82c9d8808d0..706124c7451 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -67,6 +67,12 @@ static uart_t _uart_bus_array[] = { #if SOC_UART_HP_NUM > 2 {2, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif +#if SOC_UART_HP_NUM > 3 + {3, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, +#endif +#if SOC_UART_HP_NUM > 4 + {4, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, +#endif }; #else @@ -87,6 +93,12 @@ static uart_t _uart_bus_array[] = { #if SOC_UART_HP_NUM > 2 {NULL, 2, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, #endif +#if SOC_UART_HP_NUM > 3 + {NULL, 3, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, +#endif +#if SOC_UART_HP_NUM > 4 + {NULL, 4, false, 0, NULL, -1, -1, -1, -1, 0, 0, 0, 0, false, 0}, +#endif }; #endif @@ -835,6 +847,20 @@ static void ARDUINO_ISR_ATTR uart2_write_char(char c) { } #endif +#if SOC_UART_HP_NUM > 3 +static void ARDUINO_ISR_ATTR uart3_write_char(char c) { + while (uart_ll_get_txfifo_len(&UART3) == 0); + uart_ll_write_txfifo(&UART3, (const uint8_t *)&c, 1); +} +#endif + +#if SOC_UART_HP_NUM > 4 +static void ARDUINO_ISR_ATTR uart4_write_char(char c) { + while (uart_ll_get_txfifo_len(&UART4) == 0); + uart_ll_write_txfifo(&UART4, (const uint8_t *)&c, 1); +} +#endif + void uart_install_putc() { switch (s_uart_debug_nr) { case 0: ets_install_putc1((void (*)(char)) & uart0_write_char); break; @@ -843,6 +869,12 @@ void uart_install_putc() { #endif #if SOC_UART_HP_NUM > 2 case 2: ets_install_putc1((void (*)(char)) & uart2_write_char); break; +#endif +#if SOC_UART_HP_NUM > 3 + case 3: ets_install_putc1((void (*)(char)) & uart3_write_char); break; +#endif +#if SOC_UART_HP_NUM > 4 + case 4: ets_install_putc1((void (*)(char)) & uart4_write_char); break; #endif default: ets_install_putc1(NULL); break; } From 3733c87c832dd7d2743fda5a42b3ff866f4c47f8 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:33:49 +0200 Subject: [PATCH 033/179] replace outdated wrong `SOC_I2C_NUM` and use `SOC_HP_I2C_NUM` (#10452) * SOC_HP_I2C_NUM * SOC_HP_I2C_NUM --- libraries/Wire/src/Wire.cpp | 4 ++-- libraries/Wire/src/Wire.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index 8ac0c25595d..24b0eb7c0a3 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -646,8 +646,8 @@ void TwoWire::onRequestService(uint8_t num, void *arg) { #endif /* SOC_I2C_SUPPORT_SLAVE */ TwoWire Wire = TwoWire(0); -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 TwoWire Wire1 = TwoWire(1); -#endif /* SOC_I2C_NUM */ +#endif /* SOC_HP_I2C_NUM */ #endif /* SOC_I2C_SUPPORTED */ diff --git a/libraries/Wire/src/Wire.h b/libraries/Wire/src/Wire.h index cf720d48234..45f30c81ffc 100644 --- a/libraries/Wire/src/Wire.h +++ b/libraries/Wire/src/Wire.h @@ -144,9 +144,9 @@ class TwoWire : public HardwareI2C { }; extern TwoWire Wire; -#if SOC_I2C_NUM > 1 +#if SOC_HP_I2C_NUM > 1 extern TwoWire Wire1; -#endif /* SOC_I2C_NUM */ +#endif /* SOC_HP_I2C_NUM */ #endif /* SOC_I2C_SUPPORTED */ #endif /* TwoWire_h */ From 3edf5188250ddb4b4edbb44583b473105fb2e40f Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 15 Oct 2024 17:25:45 +0300 Subject: [PATCH 034/179] Add support for WiFi to ESP32-P4 (#10463) * feat(p4): Add support for WiFi to ESP32-P4 Implements support for external MCU connected through SDIO * fix(p4): Init SDIO host properly on Network boot esp-hosted has one function marked as "constructor" that did not run in the boot phase of the chip. This calls the function when network is started --- idf_component.yml | 20 ++++++++++++++------ libraries/Network/src/NetworkEvents.cpp | 2 +- libraries/Network/src/NetworkEvents.h | 13 ++++++++----- libraries/Network/src/NetworkManager.cpp | 7 +++++++ libraries/WiFi/src/AP.cpp | 2 +- libraries/WiFi/src/STA.cpp | 2 +- libraries/WiFi/src/WiFi.cpp | 2 +- libraries/WiFi/src/WiFi.h | 3 ++- libraries/WiFi/src/WiFiAP.cpp | 2 +- libraries/WiFi/src/WiFiAP.h | 2 +- libraries/WiFi/src/WiFiGeneric.cpp | 15 +++++++++++++-- libraries/WiFi/src/WiFiGeneric.h | 2 +- libraries/WiFi/src/WiFiMulti.cpp | 2 +- libraries/WiFi/src/WiFiMulti.h | 2 +- libraries/WiFi/src/WiFiSTA.cpp | 2 +- libraries/WiFi/src/WiFiSTA.h | 2 +- libraries/WiFi/src/WiFiScan.cpp | 2 +- libraries/WiFi/src/WiFiScan.h | 2 +- libraries/WiFi/src/WiFiType.h | 2 +- 19 files changed, 58 insertions(+), 28 deletions(-) diff --git a/idf_component.yml b/idf_component.yml index 3b83650bf5b..5570f5d47a5 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -56,11 +56,11 @@ dependencies: espressif/esp-zboss-lib: version: "^1.0.1" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/esp-zigbee-lib: version: "^1.0.1" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/esp-dsp: version: "^1.3.4" rules: @@ -68,23 +68,31 @@ dependencies: espressif/esp_rainmaker: version: "^1.0.0" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/rmaker_common: version: "^1.4.6" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/esp_insights: version: "^1.0.1" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/qrcode: version: "^0.1.0~1" rules: - - if: "target != esp32c2" + - if: "target not in [esp32c2, esp32p4]" espressif/esp-sr: version: "^1.4.2" rules: - if: "target in [esp32s3]" + espressif/esp_hosted: + version: "^0.0.22" + rules: + - if: "target == esp32p4" + espressif/esp_wifi_remote: + version: "^0.4.1" + rules: + - if: "target == esp32p4" espressif/libsodium: version: "^1.0.20~1" require: public diff --git a/libraries/Network/src/NetworkEvents.cpp b/libraries/Network/src/NetworkEvents.cpp index bb02282e9b3..4863e346a10 100644 --- a/libraries/Network/src/NetworkEvents.cpp +++ b/libraries/Network/src/NetworkEvents.cpp @@ -423,7 +423,7 @@ const char *NetworkEvents::eventName(arduino_event_id_t id) { case ARDUINO_EVENT_PPP_GOT_IP: return "PPP_GOT_IP"; case ARDUINO_EVENT_PPP_LOST_IP: return "PPP_LOST_IP"; case ARDUINO_EVENT_PPP_GOT_IP6: return "PPP_GOT_IP6"; -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED case ARDUINO_EVENT_WIFI_OFF: return "WIFI_OFF"; case ARDUINO_EVENT_WIFI_READY: return "WIFI_READY"; case ARDUINO_EVENT_WIFI_SCAN_DONE: return "SCAN_DONE"; diff --git a/libraries/Network/src/NetworkEvents.h b/libraries/Network/src/NetworkEvents.h index ac324d19841..b49951b1824 100644 --- a/libraries/Network/src/NetworkEvents.h +++ b/libraries/Network/src/NetworkEvents.h @@ -16,14 +16,15 @@ #include "freertos/queue.h" #include "freertos/semphr.h" #include "freertos/event_groups.h" +#include "sdkconfig.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" #include "esp_smartconfig.h" #include "network_provisioning/network_config.h" #endif -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED static const int WIFI_SCANNING_BIT = BIT0; static const int WIFI_SCAN_DONE_BIT = BIT1; #endif @@ -41,7 +42,7 @@ typedef enum { ARDUINO_EVENT_ETH_GOT_IP, ARDUINO_EVENT_ETH_LOST_IP, ARDUINO_EVENT_ETH_GOT_IP6, -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED ARDUINO_EVENT_WIFI_OFF, ARDUINO_EVENT_WIFI_READY, ARDUINO_EVENT_WIFI_SCAN_DONE, @@ -93,7 +94,7 @@ typedef union { ip_event_got_ip_t got_ip; ip_event_got_ip6_t got_ip6; esp_eth_handle_t eth_connected; -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED wifi_event_sta_scan_done_t wifi_scan_done; wifi_event_sta_authmode_change_t wifi_sta_authmode_change; wifi_event_sta_connected_t wifi_sta_connected; @@ -104,6 +105,8 @@ typedef union { wifi_event_ap_staconnected_t wifi_ap_staconnected; wifi_event_ap_stadisconnected_t wifi_ap_stadisconnected; wifi_event_ftm_report_t wifi_ftm_report; +#endif +#if SOC_WIFI_SUPPORTED wifi_sta_config_t prov_cred_recv; network_prov_wifi_sta_fail_reason_t prov_fail_reason; smartconfig_event_got_ssid_pswd_t sc_got_ssid_pswd; @@ -147,7 +150,7 @@ class NetworkEvents { friend class ESP_NetworkInterface; friend class ETHClass; friend class PPPClass; -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED friend class STAClass; friend class APClass; friend class WiFiGenericClass; diff --git a/libraries/Network/src/NetworkManager.cpp b/libraries/Network/src/NetworkManager.cpp index 88059a60562..b429c482825 100644 --- a/libraries/Network/src/NetworkManager.cpp +++ b/libraries/Network/src/NetworkManager.cpp @@ -10,6 +10,10 @@ #include "esp_mac.h" #include "netdb.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +extern "C" esp_err_t esp_hosted_init(void *); +#endif + NetworkManager::NetworkManager() {} NetworkInterface *getNetifByID(Network_Interface_ID id); @@ -18,6 +22,9 @@ bool NetworkManager::begin() { static bool initialized = false; if (!initialized) { initialized = true; +#if CONFIG_ESP_WIFI_REMOTE_ENABLED + esp_hosted_init(NULL); +#endif #if CONFIG_IDF_TARGET_ESP32 uint8_t mac[8]; if (esp_efuse_mac_get_default(mac) == ESP_OK) { diff --git a/libraries/WiFi/src/AP.cpp b/libraries/WiFi/src/AP.cpp index a61be662495..9cba6e90f10 100644 --- a/libraries/WiFi/src/AP.cpp +++ b/libraries/WiFi/src/AP.cpp @@ -7,7 +7,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" #include "WiFiAP.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include #include #include diff --git a/libraries/WiFi/src/STA.cpp b/libraries/WiFi/src/STA.cpp index 443d2621957..004ce161058 100644 --- a/libraries/WiFi/src/STA.cpp +++ b/libraries/WiFi/src/STA.cpp @@ -6,7 +6,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" #include "WiFiSTA.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include #include #include diff --git a/libraries/WiFi/src/WiFi.cpp b/libraries/WiFi/src/WiFi.cpp index a854cb0ceb7..7fb0ed16459 100644 --- a/libraries/WiFi/src/WiFi.cpp +++ b/libraries/WiFi/src/WiFi.cpp @@ -22,7 +22,7 @@ */ #include "WiFi.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED extern "C" { #include diff --git a/libraries/WiFi/src/WiFi.h b/libraries/WiFi/src/WiFi.h index a823dabd864..ea2efd97697 100644 --- a/libraries/WiFi/src/WiFi.h +++ b/libraries/WiFi/src/WiFi.h @@ -22,7 +22,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#include "sdkconfig.h" +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index fac84dc8512..7282daac995 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -25,7 +25,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" #include "WiFiAP.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include #include diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h index 9acd124c27e..4573e92ecf0 100644 --- a/libraries/WiFi/src/WiFiAP.h +++ b/libraries/WiFi/src/WiFiAP.h @@ -23,7 +23,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" #include "WiFiType.h" diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index ccc9518132b..d096c2e3d6e 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -24,7 +24,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED extern "C" { #include @@ -39,7 +39,9 @@ extern "C" { #include #include #include +#if SOC_WIFI_SUPPORTED #include +#endif #include "lwip/ip_addr.h" #include "lwip/opt.h" #include "lwip/err.h" @@ -103,6 +105,7 @@ static void _arduino_event_cb(void *arg, esp_event_base_t event_base, int32_t ev arduino_event.event_id = ARDUINO_EVENT_WIFI_FTM_REPORT; memcpy(&arduino_event.event_info.wifi_ftm_report, event_data, sizeof(wifi_event_ftm_report_t)); +#if !CONFIG_ESP_WIFI_REMOTE_ENABLED /* * SMART CONFIG * */ @@ -157,6 +160,7 @@ static void _arduino_event_cb(void *arg, esp_event_base_t event_base, int32_t ev } else if (event_base == NETWORK_PROV_EVENT && event_id == NETWORK_PROV_WIFI_CRED_SUCCESS) { log_v("Provisioning Success!"); arduino_event.event_id = ARDUINO_EVENT_PROV_CRED_SUCCESS; +#endif } if (arduino_event.event_id < ARDUINO_EVENT_MAX) { @@ -170,6 +174,7 @@ static bool initWiFiEvents() { return false; } +#if !CONFIG_ESP_WIFI_REMOTE_ENABLED if (esp_event_handler_instance_register(SC_EVENT, ESP_EVENT_ANY_ID, &_arduino_event_cb, NULL, NULL)) { log_e("event_handler_instance_register for SC_EVENT Failed!"); return false; @@ -179,6 +184,7 @@ static bool initWiFiEvents() { log_e("event_handler_instance_register for NETWORK_PROV_EVENT Failed!"); return false; } +#endif return true; } @@ -189,6 +195,7 @@ static bool deinitWiFiEvents() { return false; } +#if !CONFIG_ESP_WIFI_REMOTE_ENABLED if (esp_event_handler_unregister(SC_EVENT, ESP_EVENT_ANY_ID, &_arduino_event_cb)) { log_e("esp_event_handler_unregister for SC_EVENT Failed!"); return false; @@ -198,6 +205,7 @@ static bool deinitWiFiEvents() { log_e("esp_event_handler_unregister for NETWORK_PROV_EVENT Failed!"); return false; } +#endif return true; } @@ -370,6 +378,7 @@ void WiFiGenericClass::_eventCallback(arduino_event_t *event) { // log_d("Arduino Event: %d - %s", event->event_id, WiFi.eventName(event->event_id)); if (event->event_id == ARDUINO_EVENT_WIFI_SCAN_DONE) { WiFiScanClass::_scanDone(); +#if !CONFIG_ESP_WIFI_REMOTE_ENABLED } else if (event->event_id == ARDUINO_EVENT_SC_GOT_SSID_PSWD) { WiFi.begin( (const char *)event->event_info.sc_got_ssid_pswd.ssid, (const char *)event->event_info.sc_got_ssid_pswd.password, 0, @@ -378,6 +387,7 @@ void WiFiGenericClass::_eventCallback(arduino_event_t *event) { } else if (event->event_id == ARDUINO_EVENT_SC_SEND_ACK_DONE) { esp_smartconfig_stop(); WiFiSTAClass::_smartConfigDone = true; +#endif } } @@ -693,6 +703,7 @@ bool WiFiGenericClass::initiateFTM(uint8_t frm_count, uint16_t burst_period, uin * @return true on success */ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2, wifi_rx_ant_t rx_mode, wifi_tx_ant_t tx_mode) { +#if !CONFIG_ESP_WIFI_REMOTE_ENABLED esp_phy_ant_gpio_config_t wifi_ant_io; @@ -759,7 +770,7 @@ bool WiFiGenericClass::setDualAntennaConfig(uint8_t gpio_ant1, uint8_t gpio_ant2 log_e("Failed to set antenna configuration"); return false; } - +#endif return true; } diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index 2a5ca812999..fe929236a4b 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -23,7 +23,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_err.h" #include "esp_event.h" diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp index a438919f792..f99ce185252 100644 --- a/libraries/WiFi/src/WiFiMulti.cpp +++ b/libraries/WiFi/src/WiFiMulti.cpp @@ -24,7 +24,7 @@ */ #include "WiFiMulti.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include #include #include diff --git a/libraries/WiFi/src/WiFiMulti.h b/libraries/WiFi/src/WiFiMulti.h index 1e11ff13f51..bda053b32d2 100644 --- a/libraries/WiFi/src/WiFiMulti.h +++ b/libraries/WiFi/src/WiFiMulti.h @@ -26,7 +26,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFi.h" #include diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 1c1ce42c12f..18c8b7207a4 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -25,7 +25,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" #include "WiFiSTA.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include #include diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index 2c046c4c4b9..b3176ed17ca 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -23,7 +23,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFiType.h" #include "WiFiGeneric.h" diff --git a/libraries/WiFi/src/WiFiScan.cpp b/libraries/WiFi/src/WiFiScan.cpp index ffacc57f093..27d9edcc70c 100644 --- a/libraries/WiFi/src/WiFiScan.cpp +++ b/libraries/WiFi/src/WiFiScan.cpp @@ -25,7 +25,7 @@ #include "WiFi.h" #include "WiFiGeneric.h" #include "WiFiScan.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED extern "C" { #include diff --git a/libraries/WiFi/src/WiFiScan.h b/libraries/WiFi/src/WiFiScan.h index 0648885292f..5e1097f3ae2 100644 --- a/libraries/WiFi/src/WiFiScan.h +++ b/libraries/WiFi/src/WiFiScan.h @@ -23,7 +23,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFiType.h" #include "WiFiGeneric.h" diff --git a/libraries/WiFi/src/WiFiType.h b/libraries/WiFi/src/WiFiType.h index 1d721d33963..83eed72f4cb 100644 --- a/libraries/WiFi/src/WiFiType.h +++ b/libraries/WiFi/src/WiFiType.h @@ -22,7 +22,7 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" From c6bf1b48160935c789b84b64f71bd1da4b8c2ee3 Mon Sep 17 00:00:00 2001 From: Mahesh Tupe Date: Tue, 15 Oct 2024 20:36:20 +0530 Subject: [PATCH 035/179] Update esp-insights version (#10456) --- idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/idf_component.yml b/idf_component.yml index 5570f5d47a5..d1772d0ddb9 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -74,7 +74,7 @@ dependencies: rules: - if: "target not in [esp32c2, esp32p4]" espressif/esp_insights: - version: "^1.0.1" + version: "^1.2.1" rules: - if: "target not in [esp32c2, esp32p4]" espressif/qrcode: From a3f2568a198cac05a0c784856ba6b99e202ce2a9 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 15 Oct 2024 20:20:04 +0300 Subject: [PATCH 036/179] IDF release/v5.3 (#10465) * fix(usb): Update tinyusb init call * Update esp-insights version (#10456) * Add support for WiFi to ESP32-P4 (#10463) * feat(p4): Add support for WiFi to ESP32-P4 Implements support for external MCU connected through SDIO * fix(p4): Init SDIO host properly on Network boot esp-hosted has one function marked as "constructor" that did not run in the boot phase of the chip. This calls the function when network is started * Fix RainMaker dependent versions because Matter requires Insights 1.0.1 * IDF release/v5.3 707d097b * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: Mahesh Tupe Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/esp32-hal-tinyusb.c | 19 +++++++------- idf_component.yml | 27 ++++++++++++++----- package/package_esp32_index.template.json | 32 +++++++++++------------ 3 files changed, 46 insertions(+), 32 deletions(-) diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index c69fca08fc7..eca7e5d176c 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -174,9 +174,9 @@ void deinit_usb_hal() { esp_err_t tinyusb_driver_install(const tinyusb_config_t *config) { init_usb_hal(config->external_phy); #if CONFIG_IDF_TARGET_ESP32P4 - if (!tud_init(1)) { + if (!tusb_init(1, TUSB_ROLE_DEVICE)) { #else - if (!tud_init(0)) { + if (!tusb_init(0, TUSB_ROLE_DEVICE)) { #endif log_e("Can't initialize the TinyUSB stack."); return ESP_FAIL; @@ -287,15 +287,14 @@ enum { VENDOR_REQUEST_MICROSOFT = 2 }; -static uint8_t const tinyusb_bos_descriptor[] = { - // total length, number of device caps - TUD_BOS_DESCRIPTOR(BOS_TOTAL_LEN, 2), +static uint8_t const tinyusb_bos_descriptor[] = {// total length, number of device caps + TUD_BOS_DESCRIPTOR(BOS_TOTAL_LEN, 2), - // Vendor Code, iLandingPage - TUD_BOS_WEBUSB_DESCRIPTOR(VENDOR_REQUEST_WEBUSB, 1), + // Vendor Code, iLandingPage + TUD_BOS_WEBUSB_DESCRIPTOR(VENDOR_REQUEST_WEBUSB, 1), - // Microsoft OS 2.0 descriptor - TUD_BOS_MS_OS_20_DESCRIPTOR(MS_OS_20_DESC_LEN, VENDOR_REQUEST_MICROSOFT) + // Microsoft OS 2.0 descriptor + TUD_BOS_MS_OS_20_DESCRIPTOR(MS_OS_20_DESC_LEN, VENDOR_REQUEST_MICROSOFT) }; /* @@ -831,7 +830,7 @@ esp_err_t tinyusb_init(tinyusb_device_config_t *config) { periph_ll_enable_clk_clear_rst(PERIPH_USB_MODULE); } #endif - + tinyusb_config_t tusb_cfg = { .external_phy = false // In the most cases you need to use a `false` value }; diff --git a/idf_component.yml b/idf_component.yml index d1772d0ddb9..12bfe66e739 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -51,8 +51,6 @@ dependencies: require: public espressif/esp_modem: version: "^1.1.0" - espressif/network_provisioning: - version: "~1.0.0" espressif/esp-zboss-lib: version: "^1.0.1" rules: @@ -65,22 +63,39 @@ dependencies: version: "^1.3.4" rules: - if: "target != esp32c2" + # RainMaker Start (Fixed versions, because Matter supports only Insights 1.0.1) + espressif/network_provisioning: + version: "1.0.2" espressif/esp_rainmaker: - version: "^1.0.0" + version: "1.5.0" rules: - if: "target not in [esp32c2, esp32p4]" espressif/rmaker_common: - version: "^1.4.6" + version: "1.4.6" rules: - if: "target not in [esp32c2, esp32p4]" espressif/esp_insights: - version: "^1.2.1" + version: "1.0.1" + rules: + - if: "target not in [esp32c2, esp32p4]" + # New version breaks esp_insights 1.0.1 + espressif/esp_diag_data_store: + version: "1.0.1" + rules: + - if: "target not in [esp32c2, esp32p4]" + espressif/esp_diagnostics: + version: "1.0.2" + rules: + - if: "target not in [esp32c2, esp32p4]" + espressif/cbor: + version: "0.6.0~1" rules: - if: "target not in [esp32c2, esp32p4]" espressif/qrcode: - version: "^0.1.0~1" + version: "0.1.0~2" rules: - if: "target not in [esp32c2, esp32p4]" + # RainMaker End espressif/esp-sr: version: "^1.4.2" rules: diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 413419a9b1c..9227a89034d 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:b4d431c8e6e9eb26c78cb187b9082055544956a4dac8e224ff884f770e5f0e5a", - "size": "351074410" + "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", + "size": "350992761" } ] }, From f706c276711dd1d19fcb3390a6c1df92657be1bf Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 15 Oct 2024 20:42:26 +0300 Subject: [PATCH 037/179] Update TinyUSB init method --- cores/esp32/esp32-hal-tinyusb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cores/esp32/esp32-hal-tinyusb.c b/cores/esp32/esp32-hal-tinyusb.c index eca7e5d176c..f83e8b61bd2 100644 --- a/cores/esp32/esp32-hal-tinyusb.c +++ b/cores/esp32/esp32-hal-tinyusb.c @@ -173,10 +173,15 @@ void deinit_usb_hal() { esp_err_t tinyusb_driver_install(const tinyusb_config_t *config) { init_usb_hal(config->external_phy); + tusb_rhport_init_t tinit; + memset(&tinit, 0, sizeof(tusb_rhport_init_t)); + tinit.role = TUSB_ROLE_DEVICE; #if CONFIG_IDF_TARGET_ESP32P4 - if (!tusb_init(1, TUSB_ROLE_DEVICE)) { + tinit.speed = TUSB_SPEED_HIGH; + if (!tusb_init(1, &tinit)) { #else - if (!tusb_init(0, TUSB_ROLE_DEVICE)) { + tinit.speed = TUSB_SPEED_FULL; + if (!tusb_init(0, &tinit)) { #endif log_e("Can't initialize the TinyUSB stack."); return ESP_FAIL; From c676ce7dc0860056459e87eeb5a8bac8d730866d Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 15 Oct 2024 21:06:31 +0300 Subject: [PATCH 038/179] fix(p4): Move ESP-HOSTED init to WiFiGeneric @P-R-O-C-H-Y will add the configured pins to periman, so that they can not be assigned to anything else --- libraries/Network/src/NetworkManager.cpp | 7 ------ libraries/WiFi/src/WiFiGeneric.cpp | 32 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/libraries/Network/src/NetworkManager.cpp b/libraries/Network/src/NetworkManager.cpp index b429c482825..88059a60562 100644 --- a/libraries/Network/src/NetworkManager.cpp +++ b/libraries/Network/src/NetworkManager.cpp @@ -10,10 +10,6 @@ #include "esp_mac.h" #include "netdb.h" -#if CONFIG_ESP_WIFI_REMOTE_ENABLED -extern "C" esp_err_t esp_hosted_init(void *); -#endif - NetworkManager::NetworkManager() {} NetworkInterface *getNetifByID(Network_Interface_ID id); @@ -22,9 +18,6 @@ bool NetworkManager::begin() { static bool initialized = false; if (!initialized) { initialized = true; -#if CONFIG_ESP_WIFI_REMOTE_ENABLED - esp_hosted_init(NULL); -#endif #if CONFIG_IDF_TARGET_ESP32 uint8_t mac[8]; if (esp_efuse_mac_get_default(mac) == ESP_OK) { diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index d096c2e3d6e..f3b27365cb6 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -233,9 +233,41 @@ void WiFiGenericClass::useStaticBuffers(bool bufferMode) { extern "C" void phy_bbpll_en_usb(bool en); #endif +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +extern "C" esp_err_t esp_hosted_init(void *); + +static bool wifiHostedInit() { + static bool initialized = false; + if (!initialized) { + initialized = true; + if (esp_hosted_init(NULL) != ESP_OK) { + log_e("esp_hosted_init failed!"); + return false; + } + } + // Attach pins to periman here + // Slave chip model is CONFIG_IDF_SLAVE_TARGET + // CONFIG_ESP_SDIO_PIN_CMD + // CONFIG_ESP_SDIO_PIN_CLK + // CONFIG_ESP_SDIO_PIN_D0 + // CONFIG_ESP_SDIO_PIN_D1 + // CONFIG_ESP_SDIO_PIN_D2 + // CONFIG_ESP_SDIO_PIN_D3 + // CONFIG_ESP_SDIO_GPIO_RESET_SLAVE + + return true; +} +#endif + bool wifiLowLevelInit(bool persistent) { if (!lowLevelInitDone) { lowLevelInitDone = true; +#if CONFIG_ESP_WIFI_REMOTE_ENABLED + if (!wifiHostedInit()) { + lowLevelInitDone = false; + return lowLevelInitDone; + } +#endif if (!Network.begin()) { lowLevelInitDone = false; return lowLevelInitDone; From 9dea05b17f27551c26f455a9517da25b9c10ca7f Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 17 Oct 2024 02:38:25 +0300 Subject: [PATCH 039/179] IDF release/v5.3 707d097b (#10473) --- package/package_esp32_index.template.json | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 9227a89034d..89ec0cebf8e 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:8a3f8ba621b187a53635deef36e335aa72f18d15c89170a32ce401bedee946be", - "size": "350992761" + "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", + "size": "343593768" } ] }, From 612fc4c4bbc48d6f52725ac7d14798976650123f Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 17 Oct 2024 12:12:44 +0300 Subject: [PATCH 040/179] fix(pins): Adjust P4 SPI pins to ones that are available --- variants/esp32p4/pins_arduino.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h index caba8995222..f227de428ef 100644 --- a/variants/esp32p4/pins_arduino.h +++ b/variants/esp32p4/pins_arduino.h @@ -22,10 +22,10 @@ static const uint8_t RX = 38; static const uint8_t SDA = 7; static const uint8_t SCL = 8; -static const uint8_t SS = 10; -static const uint8_t MOSI = 11; -static const uint8_t MISO = 12; -static const uint8_t SCK = 13; +static const uint8_t SS = 27; +static const uint8_t MOSI = 46; +static const uint8_t MISO = 47; +static const uint8_t SCK = 48; static const uint8_t A0 = 16; static const uint8_t A1 = 17; From ee1bc6ba0a7a4bb59d3b1e45760acffaa9603e43 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 17 Oct 2024 14:30:48 +0300 Subject: [PATCH 041/179] Add RMII Ethernet support for ESP32-P4 (#10479) * fix(eth): Add ETH support for ESP32-P4 Also adds configuration to pins_arduino.h * fix(eth): Enable TLK110 Example on P4 * fix(eth): Fix Ethernet examples * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- boards.txt | 7 +++-- .../examples/ETH_LAN8720/ETH_LAN8720.ino | 12 ++++++-- .../examples/ETH_TLK110/ETH_TLK110.ino | 12 ++++++-- .../Ethernet/examples/ETH_TLK110/ci.json | 5 +--- .../ETH_W5500_Arduino_SPI.ino | 4 +-- .../ETH_W5500_IDF_SPI/ETH_W5500_IDF_SPI.ino | 4 +-- libraries/Ethernet/src/ETH.cpp | 28 +++++++++++++++++-- libraries/Ethernet/src/ETH.h | 26 +++++++++++++++++ variants/esp32p4/pins_arduino.h | 14 ++++++++++ 9 files changed, 96 insertions(+), 16 deletions(-) diff --git a/boards.txt b/boards.txt index fd71c2e80c2..62d66fdc828 100644 --- a/boards.txt +++ b/boards.txt @@ -188,7 +188,10 @@ esp32p4.build.variant=esp32p4 esp32p4.build.board=ESP32P4_DEV esp32p4.build.bootloader_addr=0x2000 +esp32p4.build.usb_mode=0 esp32p4.build.cdc_on_boot=0 +esp32p4.build.msc_on_boot=0 +esp32p4.build.dfu_on_boot=0 esp32p4.build.f_cpu=360000000L esp32p4.build.flash_size=4MB esp32p4.build.flash_freq=80m @@ -216,10 +219,10 @@ esp32p4.menu.PSRAM.disabled.build.defines= esp32p4.menu.PSRAM.enabled=Enabled esp32p4.menu.PSRAM.enabled.build.defines=-DBOARD_HAS_PSRAM -esp32p4.menu.USBMode.hwcdc=Hardware CDC and JTAG -esp32p4.menu.USBMode.hwcdc.build.usb_mode=1 esp32p4.menu.USBMode.default=USB-OTG (TinyUSB) esp32p4.menu.USBMode.default.build.usb_mode=0 +esp32p4.menu.USBMode.hwcdc=Hardware CDC and JTAG +esp32p4.menu.USBMode.hwcdc.build.usb_mode=1 esp32p4.menu.CDCOnBoot.default=Disabled esp32p4.menu.CDCOnBoot.default.build.cdc_on_boot=0 diff --git a/libraries/Ethernet/examples/ETH_LAN8720/ETH_LAN8720.ino b/libraries/Ethernet/examples/ETH_LAN8720/ETH_LAN8720.ino index 1453df63434..59a32750bf6 100644 --- a/libraries/Ethernet/examples/ETH_LAN8720/ETH_LAN8720.ino +++ b/libraries/Ethernet/examples/ETH_LAN8720/ETH_LAN8720.ino @@ -5,13 +5,21 @@ // Important to be defined BEFORE including ETH.h for ETH.begin() to work. // Example RMII LAN8720 (Olimex, etc.) -#ifndef ETH_PHY_TYPE -#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#ifndef ETH_PHY_MDC +#define ETH_PHY_TYPE ETH_PHY_LAN8720 +#if CONFIG_IDF_TARGET_ESP32 #define ETH_PHY_ADDR 0 #define ETH_PHY_MDC 23 #define ETH_PHY_MDIO 18 #define ETH_PHY_POWER -1 #define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN +#elif CONFIG_IDF_TARGET_ESP32P4 +#define ETH_PHY_ADDR 0 +#define ETH_PHY_MDC 31 +#define ETH_PHY_MDIO 52 +#define ETH_PHY_POWER 51 +#define ETH_CLK_MODE EMAC_CLK_EXT_IN +#endif #endif #include diff --git a/libraries/Ethernet/examples/ETH_TLK110/ETH_TLK110.ino b/libraries/Ethernet/examples/ETH_TLK110/ETH_TLK110.ino index 3252cd120f4..242281c3997 100644 --- a/libraries/Ethernet/examples/ETH_TLK110/ETH_TLK110.ino +++ b/libraries/Ethernet/examples/ETH_TLK110/ETH_TLK110.ino @@ -5,13 +5,21 @@ #include -#ifndef ETH_PHY_TYPE -#define ETH_PHY_TYPE ETH_PHY_TLK110 +#ifndef ETH_PHY_MDC +#define ETH_PHY_TYPE ETH_PHY_TLK110 +#if CONFIG_IDF_TARGET_ESP32 #define ETH_PHY_ADDR 31 #define ETH_PHY_MDC 23 #define ETH_PHY_MDIO 18 #define ETH_PHY_POWER 17 #define ETH_CLK_MODE ETH_CLOCK_GPIO0_IN +#elif CONFIG_IDF_TARGET_ESP32P4 +#define ETH_PHY_ADDR 1 +#define ETH_PHY_MDC 31 +#define ETH_PHY_MDIO 52 +#define ETH_PHY_POWER 51 +#define ETH_CLK_MODE EMAC_CLK_EXT_IN +#endif #endif static bool eth_connected = false; diff --git a/libraries/Ethernet/examples/ETH_TLK110/ci.json b/libraries/Ethernet/examples/ETH_TLK110/ci.json index 0eab13b8841..dcdfd06db51 100644 --- a/libraries/Ethernet/examples/ETH_TLK110/ci.json +++ b/libraries/Ethernet/examples/ETH_TLK110/ci.json @@ -1,8 +1,5 @@ { "requires": [ "CONFIG_ETH_USE_ESP32_EMAC=y" - ], - "targets": { - "esp32p4": false - } + ] } diff --git a/libraries/Ethernet/examples/ETH_W5500_Arduino_SPI/ETH_W5500_Arduino_SPI.ino b/libraries/Ethernet/examples/ETH_W5500_Arduino_SPI/ETH_W5500_Arduino_SPI.ino index d4bc78a1c07..d5d57333a55 100644 --- a/libraries/Ethernet/examples/ETH_W5500_Arduino_SPI/ETH_W5500_Arduino_SPI.ino +++ b/libraries/Ethernet/examples/ETH_W5500_Arduino_SPI/ETH_W5500_Arduino_SPI.ino @@ -9,7 +9,7 @@ // Set this to 1 to enable dual Ethernet support #define USE_TWO_ETH_PORTS 0 -#ifndef ETH_PHY_TYPE +#ifndef ETH_PHY_CS #define ETH_PHY_TYPE ETH_PHY_W5500 #define ETH_PHY_ADDR 1 #define ETH_PHY_CS 15 @@ -24,7 +24,7 @@ #if USE_TWO_ETH_PORTS // Second port on shared SPI bus -#ifndef ETH1_PHY_TYPE +#ifndef ETH1_PHY_CS #define ETH1_PHY_TYPE ETH_PHY_W5500 #define ETH1_PHY_ADDR 1 #define ETH1_PHY_CS 32 diff --git a/libraries/Ethernet/examples/ETH_W5500_IDF_SPI/ETH_W5500_IDF_SPI.ino b/libraries/Ethernet/examples/ETH_W5500_IDF_SPI/ETH_W5500_IDF_SPI.ino index 512bb78ff5e..dad54a745b7 100644 --- a/libraries/Ethernet/examples/ETH_W5500_IDF_SPI/ETH_W5500_IDF_SPI.ino +++ b/libraries/Ethernet/examples/ETH_W5500_IDF_SPI/ETH_W5500_IDF_SPI.ino @@ -8,7 +8,7 @@ // Set this to 1 to enable dual Ethernet support #define USE_TWO_ETH_PORTS 0 -#ifndef ETH_PHY_TYPE +#ifndef ETH_PHY_CS #define ETH_PHY_TYPE ETH_PHY_W5500 #define ETH_PHY_ADDR 1 #define ETH_PHY_CS 15 @@ -22,7 +22,7 @@ #if USE_TWO_ETH_PORTS // Second port on shared SPI bus -#ifndef ETH1_PHY_TYPE +#ifndef ETH1_PHY_CS #define ETH1_PHY_TYPE ETH_PHY_W5500 #define ETH1_PHY_ADDR 1 #define ETH1_PHY_CS 32 diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 13f9c11f7fe..4ef184ac97a 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -148,7 +148,27 @@ void ETHClass::setTaskStackSize(size_t size) { _task_stack_size = size; } -#if (CONFIG_ETH_USE_ESP32_EMAC && !defined(CONFIG_IDF_TARGET_ESP32P4)) +#if CONFIG_ETH_USE_ESP32_EMAC +#if CONFIG_IDF_TARGET_ESP32 +#define ETH_EMAC_DEFAULT_CONFIG() ETH_ESP32_EMAC_DEFAULT_CONFIG() +#elif CONFIG_IDF_TARGET_ESP32P4 +#define ETH_EMAC_DEFAULT_CONFIG() \ + { \ + .smi_gpio = {.mdc_num = 31, .mdio_num = 52}, .interface = EMAC_DATA_INTERFACE_RMII, \ + .clock_config = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t)ETH_RMII_CLK}}, .dma_burst_len = ETH_DMA_BURST_LEN_32, \ + .intr_priority = 0, \ + .emac_dataif_gpio = \ + {.rmii = \ + {.tx_en_num = ETH_RMII_TX_EN, \ + .txd0_num = ETH_RMII_TX0, \ + .txd1_num = ETH_RMII_TX1, \ + .crs_dv_num = ETH_RMII_CRS_DV, \ + .rxd0_num = ETH_RMII_RX0, \ + .rxd1_num = ETH_RMII_RX1_EN}}, \ + .clock_config_out_in = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t) - 1}}, \ + } +#endif + bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, int power, eth_clock_mode_t clock_mode) { esp_err_t ret = ESP_OK; if (_eth_index > 2) { @@ -177,12 +197,16 @@ bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, i #define DEFAULT_RMII_CLK_GPIO (emac_rmii_clock_gpio_t)(CONFIG_ETH_RMII_CLK_IN_GPIO) #endif - eth_esp32_emac_config_t mac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG(); + eth_esp32_emac_config_t mac_config = ETH_EMAC_DEFAULT_CONFIG(); +#if CONFIG_IDF_TARGET_ESP32 mac_config.clock_config.rmii.clock_mode = (clock_mode) ? EMAC_CLK_OUT : EMAC_CLK_EXT_IN; mac_config.clock_config.rmii.clock_gpio = (1 == clock_mode) ? EMAC_APPL_CLK_OUT_GPIO : (2 == clock_mode) ? EMAC_CLK_OUT_GPIO : (3 == clock_mode) ? EMAC_CLK_OUT_180_GPIO : EMAC_CLK_IN_GPIO; +#elif CONFIG_IDF_TARGET_ESP32P4 + mac_config.clock_config.rmii.clock_mode = (emac_rmii_clock_mode_t)clock_mode; +#endif mac_config.smi_gpio.mdc_num = digitalPinToGPIONumber(mdc); mac_config.smi_gpio.mdio_num = digitalPinToGPIONumber(mdio); diff --git a/libraries/Ethernet/src/ETH.h b/libraries/Ethernet/src/ETH.h index 14d2d042614..10d6b504c2a 100644 --- a/libraries/Ethernet/src/ETH.h +++ b/libraries/Ethernet/src/ETH.h @@ -75,6 +75,7 @@ #if CONFIG_ETH_USE_ESP32_EMAC #define ETH_PHY_IP101 ETH_PHY_TLK110 +#if CONFIG_IDF_TARGET_ESP32 typedef enum { ETH_CLOCK_GPIO0_IN, ETH_CLOCK_GPIO0_OUT, @@ -88,6 +89,31 @@ typedef enum { #define ETH_RMII_RX0 25 #define ETH_RMII_RX1_EN 26 #define ETH_RMII_CRS_DV 27 +#elif CONFIG_IDF_TARGET_ESP32P4 +typedef emac_rmii_clock_mode_t eth_clock_mode_t; +#include "pins_arduino.h" +#ifndef ETH_RMII_TX_EN +#define ETH_RMII_TX_EN 49 +#endif +#ifndef ETH_RMII_TX0 +#define ETH_RMII_TX0 34 +#endif +#ifndef ETH_RMII_TX1 +#define ETH_RMII_TX1 35 +#endif +#ifndef ETH_RMII_RX0 +#define ETH_RMII_RX0 29 +#endif +#ifndef ETH_RMII_RX1_EN +#define ETH_RMII_RX1_EN 30 +#endif +#ifndef ETH_RMII_CRS_DV +#define ETH_RMII_CRS_DV 28 +#endif +#ifndef ETH_RMII_CLK +#define ETH_RMII_CLK 50 +#endif +#endif #endif /* CONFIG_ETH_USE_ESP32_EMAC */ #ifndef ETH_PHY_SPI_FREQ_MHZ diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h index f227de428ef..980e7bdb527 100644 --- a/variants/esp32p4/pins_arduino.h +++ b/variants/esp32p4/pins_arduino.h @@ -57,4 +57,18 @@ static const uint8_t T11 = 13; static const uint8_t T12 = 14; static const uint8_t T13 = 15; +#define ETH_PHY_TYPE ETH_PHY_TLK110 +#define ETH_PHY_ADDR 1 +#define ETH_PHY_MDC 31 +#define ETH_PHY_MDIO 52 +#define ETH_PHY_POWER 51 +#define ETH_RMII_TX_EN 49 +#define ETH_RMII_TX0 34 +#define ETH_RMII_TX1 35 +#define ETH_RMII_RX0 29 +#define ETH_RMII_RX1_EN 30 +#define ETH_RMII_CRS_DV 28 +#define ETH_RMII_CLK 50 +#define ETH_CLK_MODE EMAC_CLK_EXT_IN + #endif /* Pins_Arduino_h */ From 9e48d9f2388a82d0b198f31c214b8becd0ecb204 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 17 Oct 2024 16:13:59 +0300 Subject: [PATCH 042/179] fix(spi): Fix P4 SPI Pin definitions Use GPIOs 36 or lower to avoid LDO power issues --- cores/esp32/esp32-hal-spi.c | 2 +- variants/esp32p4/pins_arduino.h | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cores/esp32/esp32-hal-spi.c b/cores/esp32/esp32-hal-spi.c index af3fd7b5f06..80928309670 100644 --- a/cores/esp32/esp32-hal-spi.c +++ b/cores/esp32/esp32-hal-spi.c @@ -65,7 +65,7 @@ #endif struct spi_struct_t { - spi_dev_t *dev; + volatile spi_dev_t *dev; #if !CONFIG_DISABLE_HAL_LOCKS SemaphoreHandle_t lock; #endif diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h index 980e7bdb527..792146f5ca2 100644 --- a/variants/esp32p4/pins_arduino.h +++ b/variants/esp32p4/pins_arduino.h @@ -22,10 +22,11 @@ static const uint8_t RX = 38; static const uint8_t SDA = 7; static const uint8_t SCL = 8; -static const uint8_t SS = 27; -static const uint8_t MOSI = 46; -static const uint8_t MISO = 47; -static const uint8_t SCK = 48; +// Use GPIOs 36 or lower on the P4 DevKit to avoid LDO power issues with high numbered GPIOs. +static const uint8_t SS = 26; +static const uint8_t MOSI = 32; +static const uint8_t MISO = 33; +static const uint8_t SCK = 36; static const uint8_t A0 = 16; static const uint8_t A1 = 17; From 8570b3d270470c6ff6582aca75a1d9df95364828 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:21:08 -0300 Subject: [PATCH 043/179] Fix formatting in ETH and USB --- libraries/Ethernet/src/ETH.cpp | 44 +++++++++++++++++++++++----------- libraries/USB/src/USBHID.cpp | 4 +++- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 4ef184ac97a..e04174fd490 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -152,22 +152,38 @@ void ETHClass::setTaskStackSize(size_t size) { #if CONFIG_IDF_TARGET_ESP32 #define ETH_EMAC_DEFAULT_CONFIG() ETH_ESP32_EMAC_DEFAULT_CONFIG() #elif CONFIG_IDF_TARGET_ESP32P4 -#define ETH_EMAC_DEFAULT_CONFIG() \ - { \ - .smi_gpio = {.mdc_num = 31, .mdio_num = 52}, .interface = EMAC_DATA_INTERFACE_RMII, \ - .clock_config = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t)ETH_RMII_CLK}}, .dma_burst_len = ETH_DMA_BURST_LEN_32, \ - .intr_priority = 0, \ - .emac_dataif_gpio = \ - {.rmii = \ - {.tx_en_num = ETH_RMII_TX_EN, \ - .txd0_num = ETH_RMII_TX0, \ - .txd1_num = ETH_RMII_TX1, \ - .crs_dv_num = ETH_RMII_CRS_DV, \ - .rxd0_num = ETH_RMII_RX0, \ - .rxd1_num = ETH_RMII_RX1_EN}}, \ - .clock_config_out_in = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t) - 1}}, \ +// clang-format off +#define ETH_EMAC_DEFAULT_CONFIG() \ + { \ + .smi_gpio = {.mdc_num = 31, .mdio_num = 52}, \ + .interface = EMAC_DATA_INTERFACE_RMII, \ + .clock_config = { \ + .rmii = { \ + .clock_mode = EMAC_CLK_EXT_IN, \ + .clock_gpio = (emac_rmii_clock_gpio_t)ETH_RMII_CLK \ + } \ + }, \ + .dma_burst_len = ETH_DMA_BURST_LEN_32, \ + .intr_priority = 0, \ + .emac_dataif_gpio = { \ + .rmii = { \ + .tx_en_num = ETH_RMII_TX_EN, \ + .txd0_num = ETH_RMII_TX0, \ + .txd1_num = ETH_RMII_TX1, \ + .crs_dv_num = ETH_RMII_CRS_DV, \ + .rxd0_num = ETH_RMII_RX0, \ + .rxd1_num = ETH_RMII_RX1_EN \ + } \ + }, \ + .clock_config_out_in = { \ + .rmii = { \ + .clock_mode = EMAC_CLK_EXT_IN, \ + .clock_gpio = (emac_rmii_clock_gpio_t) - 1 \ + } \ + }, \ } #endif +// clang-format on bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, int power, eth_clock_mode_t clock_mode) { esp_err_t ret = ESP_OK; diff --git a/libraries/USB/src/USBHID.cpp b/libraries/USB/src/USBHID.cpp index 4bc555b8e30..1d5d86fb3a3 100644 --- a/libraries/USB/src/USBHID.cpp +++ b/libraries/USB/src/USBHID.cpp @@ -206,7 +206,9 @@ extern "C" uint16_t tusb_hid_load_descriptor(uint8_t *dst, uint8_t *itf) { uint8_t descriptor[TUD_HID_INOUT_DESC_LEN] = { // HID Input & Output descriptor // Interface number, string index, protocol, report descriptor len, EP OUT & IN address, size & polling interval - TUD_HID_INOUT_DESCRIPTOR(*itf, str_index, tinyusb_interface_protocol, tinyusb_hid_device_descriptor_len, ep_out, (uint8_t)(0x80 | ep_in), CFG_TUD_ENDOINT_SIZE, 1) + TUD_HID_INOUT_DESCRIPTOR( + *itf, str_index, tinyusb_interface_protocol, tinyusb_hid_device_descriptor_len, ep_out, (uint8_t)(0x80 | ep_in), CFG_TUD_ENDOINT_SIZE, 1 + ) }; *itf += 1; memcpy(dst, descriptor, TUD_HID_INOUT_DESC_LEN); From edb4ee13d24688d50d2dd6b3979dac6d981f0d53 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 17 Oct 2024 19:46:14 +0300 Subject: [PATCH 044/179] IDF release/v5.3 707d097b (#10480) --- package/package_esp32_index.template.json | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 89ec0cebf8e..dc32ddae953 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:c75625cbb80f0f9ea437840c7ee00d937e4443af6903b6903bfe98928e36618e", - "size": "343593768" + "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", + "size": "343601720" } ] }, From 7cfe470d8d36e2ca45783f0e9b5a80bd3268e5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 21 Oct 2024 12:29:01 +0200 Subject: [PATCH 045/179] feat(touch): Support NG touch driver for P4 (#10448) * feat(touch): Support NG touch driver for P4 * fix(ci): Touch test + IDF compilation fixes * fix(ci): remove debug prints from touch test * fix(ci): Fix touch test for esp32 * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 5 + cores/esp32/esp32-hal-touch-ng.c | 453 ++++++++++++++++++ cores/esp32/esp32-hal-touch-ng.h | 91 ++++ cores/esp32/esp32-hal-touch.c | 27 +- cores/esp32/esp32-hal-touch.h | 4 +- cores/esp32/esp32-hal.h | 1 + cores/esp32/io_pin_remap.h | 2 +- .../DeepSleep/TouchWakeUp/TouchWakeUp.ino | 8 +- .../examples/DeepSleep/TouchWakeUp/ci.json | 3 +- .../Touch/TouchInterrupt/TouchInterrupt.ino | 5 + .../examples/Touch/TouchInterrupt/ci.json | 5 +- .../ESP32/examples/Touch/TouchRead/ci.json | 5 +- tests/validation/touch/ci.json | 5 +- tests/validation/touch/touch.ino | 75 ++- 14 files changed, 643 insertions(+), 46 deletions(-) create mode 100644 cores/esp32/esp32-hal-touch-ng.c create mode 100644 cores/esp32/esp32-hal-touch-ng.h diff --git a/CMakeLists.txt b/CMakeLists.txt index a06f815c9d8..6688a97803d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,7 @@ set(CORE_SRCS cores/esp32/esp32-hal-timer.c cores/esp32/esp32-hal-tinyusb.c cores/esp32/esp32-hal-touch.c + cores/esp32/esp32-hal-touch-ng.c cores/esp32/esp32-hal-uart.c cores/esp32/esp32-hal-rmt.c cores/esp32/Esp.cpp @@ -317,6 +318,10 @@ if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThre endif() endif() +if(IDF_TARGET STREQUAL "esp32p4") + list(APPEND requires esp_driver_touch_sens) +endif() + idf_component_register(INCLUDE_DIRS ${includedirs} PRIV_INCLUDE_DIRS ${priv_includes} SRCS ${srcs} REQUIRES ${requires} PRIV_REQUIRES ${priv_requires}) if(NOT CONFIG_FREERTOS_HZ EQUAL 1000 AND NOT "$ENV{ARDUINO_SKIP_TICK_CHECK}") diff --git a/cores/esp32/esp32-hal-touch-ng.c b/cores/esp32/esp32-hal-touch-ng.c new file mode 100644 index 00000000000..888a299ec0c --- /dev/null +++ b/cores/esp32/esp32-hal-touch-ng.c @@ -0,0 +1,453 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +#include "soc/soc_caps.h" + +#if SOC_TOUCH_SENSOR_SUPPORTED +#if SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 for now + +#include "driver/touch_sens.h" +#include "esp32-hal-touch-ng.h" +#include "esp32-hal-periman.h" + +/* + Internal Private Touch Data Structure and Functions +*/ + +typedef void (*voidFuncPtr)(void); +typedef void (*voidArgFuncPtr)(void *); + +typedef struct { + voidFuncPtr fn; + bool callWithArgs; + void *arg; + bool lastStatusIsPressed; +} TouchInterruptHandle_t; + +static TouchInterruptHandle_t __touchInterruptHandlers[SOC_TOUCH_SENSOR_NUM] = { + 0, +}; + +static uint8_t _sample_num = 1; +static uint32_t _div_num = 1; +static uint8_t _coarse_freq_tune = 1; +static uint8_t _fine_freq_tune = 1; +static uint8_t used_pads = 0; + +static uint32_t __touchSleepTime = 256; +static float __touchMeasureTime = 32.0f; + +static touch_sensor_config_t sensor_config; + +static bool initialized = false; +static bool enabled = false; +static bool running = false; +static bool channels_initialized[SOC_TOUCH_SENSOR_NUM] = {false}; + +static touch_sensor_handle_t touch_sensor_handle = NULL; +static touch_channel_handle_t touch_channel_handle[SOC_TOUCH_SENSOR_NUM] = {}; + +// Active threshold to benchmark ratio. (i.e., touch will be activated when data >= benchmark * (1 + ratio)) +static float s_thresh2bm_ratio = 0.015f; // 1.5% for all channels + +static bool ARDUINO_ISR_ATTR __touchOnActiveISR(touch_sensor_handle_t sens_handle, const touch_active_event_data_t *event, void *user_ctx) { + uint8_t pad_num = (uint8_t)event->chan_id; + __touchInterruptHandlers[pad_num].lastStatusIsPressed = true; + if (__touchInterruptHandlers[pad_num].fn) { + // keeping backward compatibility with "void cb(void)" and with new "void cb(void *)" + if (__touchInterruptHandlers[pad_num].callWithArgs) { + ((voidArgFuncPtr)__touchInterruptHandlers[pad_num].fn)(__touchInterruptHandlers[pad_num].arg); + } else { + __touchInterruptHandlers[pad_num].fn(); + } + } + return false; +} + +static bool ARDUINO_ISR_ATTR __touchOnInactiveISR(touch_sensor_handle_t sens_handle, const touch_inactive_event_data_t *event, void *user_ctx) { + uint8_t pad_num = (uint8_t)event->chan_id; + __touchInterruptHandlers[pad_num].lastStatusIsPressed = false; + if (__touchInterruptHandlers[pad_num].fn) { + // keeping backward compatibility with "void cb(void)" and with new "void cb(void *)" + if (__touchInterruptHandlers[pad_num].callWithArgs) { + ((voidArgFuncPtr)__touchInterruptHandlers[pad_num].fn)(__touchInterruptHandlers[pad_num].arg); + } else { + __touchInterruptHandlers[pad_num].fn(); + } + } + return false; +} + +bool touchStop() { + if (!running) { // Already stopped + return true; + } + if (touch_sensor_stop_continuous_scanning(touch_sensor_handle) != ESP_OK) { + log_e("Touch sensor stop scanning failed!"); + return false; + } + running = false; + return true; +} + +bool touchDisable() { + if (!enabled) { // Already disabled + return true; + } + if (!running && (touch_sensor_disable(touch_sensor_handle) != ESP_OK)) { + log_e("Touch sensor still running or disable failed!"); + return false; + } + enabled = false; + return true; +} + +bool touchStart() { + if (running) { // Already running + return true; + } + if (enabled && (touch_sensor_start_continuous_scanning(touch_sensor_handle) != ESP_OK)) { + log_e("Touch sensor not enabled or failed to start continuous scanning failed!"); + return false; + } + running = true; + return true; +} + +bool touchEnable() { + if (enabled) { // Already enabled + return true; + } + if (touch_sensor_enable(touch_sensor_handle) != ESP_OK) { + log_e("Touch sensor enable failed!"); + return false; + } + enabled = true; + return true; +} + +bool touchBenchmarkThreshold(uint8_t pad) { + if (!touchEnable()) { + return false; + } + + /* Scan the enabled touch channels for several times, to make sure the initial channel data is stable */ + for (int i = 0; i < 3; i++) { + if (touch_sensor_trigger_oneshot_scanning(touch_sensor_handle, 2000) != ESP_OK) { + log_e("Touch sensor trigger oneshot scanning failed!"); + return false; + } + } + + /* Disable the touch channel to rollback the state */ + if (!touchDisable()) { + return false; + } + + // Reconfigure passed pad with new threshold + uint32_t benchmark[_sample_num] = {}; + if (touch_channel_read_data(touch_channel_handle[pad], TOUCH_CHAN_DATA_TYPE_BENCHMARK, benchmark) != ESP_OK) { + log_e("Touch channel read data failed!"); + return false; + } + /* Calculate the proper active thresholds regarding the initial benchmark */ + touch_channel_config_t chan_cfg = {}; + for (int i = 0; i < _sample_num; i++) { + chan_cfg.active_thresh[i] = (uint32_t)(benchmark[i] * s_thresh2bm_ratio); + log_v("Configured [CH %d] sample %d: benchmark = %" PRIu32 ", threshold = %" PRIu32 "\t", pad, i, benchmark[i], chan_cfg.active_thresh[i]); + } + /* Update the channel configuration */ + if (touch_sensor_reconfig_channel(touch_channel_handle[pad], &chan_cfg) != ESP_OK) { + log_e("Touch sensor threshold reconfig channel failed!"); + return false; + } + return true; +} + +static bool touchDetachBus(void *pin) { + int8_t pad = digitalPinToTouchChannel((int)(pin - 1)); + channels_initialized[pad] = false; + //disable touch pad and delete the channel + touch_sensor_del_channel(touch_channel_handle[pad]); + used_pads--; + if (used_pads == 0) { + touchStop(); + touchDisable(); + if (touch_sensor_del_controller(touch_sensor_handle) != ESP_OK) //deinit touch module, as no pads are used + { + log_e("Touch module deinit failed!"); + return false; + } + initialized = false; + } + return true; +} + +static void __touchInit() { + if (initialized) { + return; + } + // Support only one sample configuration for now + touch_sensor_sample_config_t single_sample_cfg = TOUCH_SENSOR_V3_DEFAULT_SAMPLE_CONFIG(_div_num, _coarse_freq_tune, _fine_freq_tune); + touch_sensor_sample_config_t sample_cfg[_sample_num] = {}; + sample_cfg[0] = single_sample_cfg; + + /* Allocate new touch controller handle */ + touch_sensor_config_t sens_cfg = { + .power_on_wait_us = __touchSleepTime, + .meas_interval_us = __touchMeasureTime, + .max_meas_time_us = 0, + .output_mode = TOUCH_PAD_OUT_AS_CLOCK, + .sample_cfg_num = _sample_num, + .sample_cfg = sample_cfg, + }; + + // touch_sensor_config_t sens_cfg = TOUCH_SENSOR_DEFAULT_BASIC_CONFIG(_sample_num, sample_cfg); + if (touch_sensor_new_controller(&sens_cfg, &touch_sensor_handle) != ESP_OK) { + goto err; + } + + sensor_config = sens_cfg; + /* Configure the touch sensor filter */ + touch_sensor_filter_config_t filter_cfg = TOUCH_SENSOR_DEFAULT_FILTER_CONFIG(); + if (touch_sensor_config_filter(touch_sensor_handle, &filter_cfg) != ESP_OK) { + goto err; + } + + /* Register the touch sensor on_active and on_inactive callbacks */ + touch_event_callbacks_t callbacks = { + .on_active = __touchOnActiveISR, + .on_inactive = __touchOnInactiveISR, + .on_measure_done = NULL, + .on_scan_done = NULL, + .on_timeout = NULL, + .on_proximity_meas_done = NULL, + }; + if (touch_sensor_register_callbacks(touch_sensor_handle, &callbacks, NULL) != ESP_OK) { + goto err; + } + + initialized = true; + return; +err: + log_e(" Touch sensor initialization error."); + initialized = false; + return; +} + +static void __touchChannelInit(int pad) { + if (channels_initialized[pad]) { + return; + } + + // Initial setup with default Threshold + __touchInterruptHandlers[pad].fn = NULL; + + touch_channel_config_t chan_cfg = { + .active_thresh = {1000} // default threshold, will be updated after benchmark + }; + + if (!touchStop() || !touchDisable()) { + log_e("Touch sensor stop and disable failed!"); + return; + } + + if (touch_sensor_new_channel(touch_sensor_handle, pad, &chan_cfg, &touch_channel_handle[pad]) != ESP_OK) { + log_e("Touch sensor new channel failed!"); + return; + } + + // Benchmark active threshold and reconfigure pad + if (!touchBenchmarkThreshold(pad)) { + log_e("Touch sensor benchmark threshold failed!"); + return; + } + + channels_initialized[pad] = true; + used_pads++; + + if (!touchEnable() || !touchStart()) { + log_e("Touch sensor enable and start failed!"); + } +} + +static touch_value_t __touchRead(uint8_t pin) { + int8_t pad = digitalPinToTouchChannel(pin); + if (pad < 0) { + log_e(" No touch pad on selected pin!"); + return 0; + } + + if (perimanGetPinBus(pin, ESP32_BUS_TYPE_TOUCH) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_TOUCH, touchDetachBus); + if (!perimanClearPinBus(pin)) { + return 0; + } + __touchInit(); + __touchChannelInit(pad); + + if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_TOUCH, (void *)(pin + 1), -1, pad)) { + touchDetachBus((void *)(pin + 1)); + return 0; + } + } + + uint32_t touch_read[_sample_num] = {}; + touch_channel_read_data(touch_channel_handle[pad], TOUCH_CHAN_DATA_TYPE_SMOOTH, touch_read); + touch_value_t touch_value = touch_read[0]; // only one sample configuration for now + + return touch_value; +} + +static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Args, bool callWithArgs, touch_value_t threshold) { + int8_t pad = digitalPinToTouchChannel(pin); + if (pad < 0) { + log_e(" No touch pad on selected pin!"); + return; + } + + if (userFunc == NULL) { + // detach ISR User Call + __touchInterruptHandlers[pad].fn = NULL; + __touchInterruptHandlers[pad].callWithArgs = false; + __touchInterruptHandlers[pad].arg = NULL; + } else { + // attach ISR User Call + __touchInit(); + __touchChannelInit(pad); + __touchInterruptHandlers[pad].fn = userFunc; + __touchInterruptHandlers[pad].callWithArgs = callWithArgs; + __touchInterruptHandlers[pad].arg = Args; + } + + if (threshold != 0) { + if (!touchStop() || !touchDisable()) { + log_e("Touch sensor stop and disable failed!"); + return; + } + + touch_channel_config_t chan_cfg = {}; + for (int i = 0; i < _sample_num; i++) { + chan_cfg.active_thresh[i] = threshold; + } + + if (touch_sensor_reconfig_channel(touch_channel_handle[pad], &chan_cfg) != ESP_OK) { + log_e("Touch sensor threshold reconfig channel failed!"); + } + + if (!touchEnable() || !touchStart()) { + log_e("Touch sensor enable and start failed!"); + } + } +} + +// it keeps backwards compatibility +static void __touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), touch_value_t threshold) { + __touchConfigInterrupt(pin, userFunc, NULL, threshold, false); +} + +// new additional version of the API with User Args +static void __touchAttachArgsInterrupt(uint8_t pin, void (*userFunc)(void), void *args, touch_value_t threshold) { + __touchConfigInterrupt(pin, userFunc, args, threshold, true); +} + +// new additional API to detach touch ISR +static void __touchDettachInterrupt(uint8_t pin) { + __touchConfigInterrupt(pin, NULL, NULL, 0, false); // userFunc as NULL acts as detaching +} + +// /* +// External Public Touch API Functions +// */ + +bool touchInterruptGetLastStatus(uint8_t pin) { + int8_t pad = digitalPinToTouchChannel(pin); + if (pad < 0) { + return false; + } + + return __touchInterruptHandlers[pad].lastStatusIsPressed; +} + +void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold) { + int8_t pad = digitalPinToTouchChannel(pin); + if (pad < 0) { + log_e(" No touch pad on selected pin!"); + return; + } + + if (perimanGetPinBus(pin, ESP32_BUS_TYPE_TOUCH) == NULL) { + perimanSetBusDeinit(ESP32_BUS_TYPE_TOUCH, touchDetachBus); + __touchInit(); + __touchChannelInit(pad); + if (!perimanSetPinBus(pin, ESP32_BUS_TYPE_TOUCH, (void *)(pin + 1), -1, pad)) { + log_e("Failed to set bus to Peripheral manager"); + touchDetachBus((void *)(pin + 1)); + return; + } + } + + log_v("Touch sensor deep sleep wake-up configuration for pad %d with threshold %d", pad, threshold); + if (!touchStop() || !touchDisable()) { + log_e("Touch sensor stop and disable failed!"); + return; + } + + touch_sleep_config_t deep_slp_cfg = { + .slp_wakeup_lvl = TOUCH_DEEP_SLEEP_WAKEUP, + .deep_slp_chan = touch_channel_handle[pad], + .deep_slp_thresh = {threshold}, + .deep_slp_sens_cfg = NULL, // Use the original touch sensor configuration + }; + + // Register the deep sleep wake-up + if (touch_sensor_config_sleep_wakeup(touch_sensor_handle, &deep_slp_cfg) != ESP_OK) { + log_e("Touch sensor deep sleep wake-up failed!"); + return; + } + + if (!touchEnable() || !touchStart()) { + log_e("Touch sensor enable and start failed!"); + } +} + +void touchSetDefaultThreshold(float percentage) { + s_thresh2bm_ratio = (float)percentage / 100.0f; +} + +void touchSetTiming(float measure, uint32_t sleep) { + if (initialized) { + log_e("Touch sensor already initialized. Cannot set cycles."); + return; + } + __touchSleepTime = sleep; + __touchMeasureTime = measure; +} + +void touchSetConfig(uint32_t div_num, uint8_t coarse_freq_tune, uint8_t fine_freq_tune) { + if (initialized) { + log_e("Touch sensor already initialized. Cannot set configuration."); + return; + } + _div_num = div_num; + _coarse_freq_tune = coarse_freq_tune; + _fine_freq_tune = fine_freq_tune; +} + +extern touch_value_t touchRead(uint8_t) __attribute__((weak, alias("__touchRead"))); +extern void touchAttachInterrupt(uint8_t, voidFuncPtr, touch_value_t) __attribute__((weak, alias("__touchAttachInterrupt"))); +extern void touchAttachInterruptArg(uint8_t, voidArgFuncPtr, void *, touch_value_t) __attribute__((weak, alias("__touchAttachArgsInterrupt"))); +extern void touchDetachInterrupt(uint8_t) __attribute__((weak, alias("__touchDettachInterrupt"))); + +#endif /* SOC_TOUCH_SENSOR_VERSION == 3 */ +#endif /* SOC_TOUCH_SENSOR_SUPPORTED */ diff --git a/cores/esp32/esp32-hal-touch-ng.h b/cores/esp32/esp32-hal-touch-ng.h new file mode 100644 index 00000000000..0d4eb79ac58 --- /dev/null +++ b/cores/esp32/esp32-hal-touch-ng.h @@ -0,0 +1,91 @@ +/* + Arduino.h - Main include file for the Arduino SDK + Copyright (c) 2005-2013 Arduino Team. All right reserved. + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef MAIN_ESP32_HAL_TOUCH_NEW_H_ +#define MAIN_ESP32_HAL_TOUCH_NEW_H_ + +#include "soc/soc_caps.h" +#if SOC_TOUCH_SENSOR_SUPPORTED +#if SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 + +#ifdef __cplusplus +extern "C" { +#endif + +#include "esp32-hal.h" + +typedef uint32_t touch_value_t; + +/* + * Set time in us that measurement operation takes + * The result from touchRead, threshold and detection + * accuracy depend on these values. + * Note: must be called before setting up touch pads + **/ +void touchSetTiming(float measure, uint32_t sleep); + +/* + * Tune the touch pad frequency. + * Note: Must be called before setting up touch pads +*/ +void touchSetConfig(uint32_t _div_num, uint8_t coarse_freq_tune, uint8_t fine_freq_tune); + +/* + * Read touch pad value. + * You can use this method to chose a good threshold value + * to use as value for touchAttachInterrupt. + * */ +touch_value_t touchRead(uint8_t pin); + +/* + * Set function to be called if touch pad value rises by given increment (threshold). + * Use touchRead to determine a proper threshold between touched and untouched state. + * */ +void touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), touch_value_t threshold); +void touchAttachInterruptArg(uint8_t pin, void (*userFunc)(void *), void *arg, touch_value_t threshold); +void touchDetachInterrupt(uint8_t pin); + +/* + * Returns true when the latest ISR status for the Touchpad is that it is touched (Active) + * and false when the Touchpad is untoouched (Inactive). + * This function can be used in conjunction with ISR User callback in order to take action + * as soon as the touchpad is touched and/or released. + **/ +bool touchInterruptGetLastStatus(uint8_t pin); + +/* + * Set the default threshold for touch pads. + * The threshold is a percentage of the benchmark value. + * The default value is 1.5%. + **/ +void touchSetDefaultThreshold(float percentage); + +/* + * Setup touch pad wake up from deep sleep /light sleep with given threshold. + * When light sleep is used, all used touch pads will be able to wake up the chip. + **/ +void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold); + +#ifdef __cplusplus +} +#endif + +#endif /* SOC_TOUCH_SENSOR_VERSION == 3 */ +#endif /* SOC_TOUCH_SENSOR_SUPPORTED */ +#endif /* MAIN_ESP32_HAL_TOUCH_H_ */ diff --git a/cores/esp32/esp32-hal-touch.c b/cores/esp32/esp32-hal-touch.c index 93e0cb1c4ac..701bf6d16c9 100644 --- a/cores/esp32/esp32-hal-touch.c +++ b/cores/esp32/esp32-hal-touch.c @@ -14,10 +14,8 @@ #include "soc/soc_caps.h" #if SOC_TOUCH_SENSOR_SUPPORTED -#if SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 -// ToDo: Implement touch sensor for ESP32P4 -#warning "Touch sensor not implemented for ESP32P4 yet" -#else +#if SOC_TOUCH_SENSOR_VERSION <= 2 // ESP32, ESP32S2, ESP32S3 + #include "driver/touch_sensor.h" #include "esp32-hal-touch.h" #include "esp32-hal-periman.h" @@ -26,10 +24,10 @@ Internal Private Touch Data Structure and Functions */ -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 static uint16_t __touchSleepCycles = 0x1000; static uint16_t __touchMeasureCycles = 0x1000; -#elif SOC_TOUCH_SENSOR_VERSION >= 2 // ESP32S2, ESP32S3, ESP32P4 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 static uint16_t __touchSleepCycles = TOUCH_PAD_SLEEP_CYCLE_DEFAULT; static uint16_t __touchMeasureCycles = TOUCH_PAD_MEASURE_CYCLE_DEFAULT; #endif @@ -55,7 +53,7 @@ static bool initialized = false; static bool channels_initialized[SOC_TOUCH_SENSOR_NUM] = {false}; static void ARDUINO_ISR_ATTR __touchISR(void *arg) { -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 uint32_t pad_intr = touch_pad_get_status(); //clear interrupt touch_pad_clear_status(); @@ -97,7 +95,7 @@ static void ARDUINO_ISR_ATTR __touchISR(void *arg) { static void __touchSetCycles(uint16_t measure, uint16_t sleep) { __touchSleepCycles = sleep; __touchMeasureCycles = measure; -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 touch_pad_set_measurement_clock_cycles(measure); #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 touch_pad_set_charge_discharge_times(measure); @@ -127,7 +125,7 @@ static void __touchInit() { esp_err_t err = ESP_OK; -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 err = touch_pad_init(); if (err != ESP_OK) { goto err; @@ -147,7 +145,7 @@ static void __touchInit() { if (err != ESP_OK) { goto err; } - touch_pad_intr_enable(); // returns ESP_OK + touch_pad_intr_enable(); // returns ESP_OK #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 err = touch_pad_init(); if (err != ESP_OK) { @@ -169,7 +167,6 @@ static void __touchInit() { touch_pad_fsm_start(); // returns ESP_OK //ISR setup moved to __touchChannelInit #endif - initialized = true; return; err: @@ -183,11 +180,11 @@ static void __touchChannelInit(int pad) { return; } -#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 +#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; touch_pad_config(pad, TOUCH_PAD_THRESHOLD_MAX); // returns ESP_OK -#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 +#elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2, ESP32S3 // Initial no Threshold and setup __touchInterruptHandlers[pad].fn = NULL; touch_pad_config(pad); // returns ESP_OK @@ -274,7 +271,7 @@ static void __touchDettachInterrupt(uint8_t pin) { External Public Touch API Functions */ -#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC +#if SOC_TOUCH_SENSOR_VERSION == 1 // Only for ESP32 SoC void touchInterruptSetThresholdDirection(bool mustbeLower) { if (mustbeLower) { touch_pad_set_trigger_mode(TOUCH_TRIGGER_BELOW); @@ -328,5 +325,5 @@ extern void touchAttachInterruptArg(uint8_t, voidArgFuncPtr, void *, touch_value extern void touchDetachInterrupt(uint8_t) __attribute__((weak, alias("__touchDettachInterrupt"))); extern void touchSetCycles(uint16_t, uint16_t) __attribute__((weak, alias("__touchSetCycles"))); -#endif /* SOC_TOUCH_SENSOR_VERSION == 3 */ +#endif /* SOC_TOUCH_SENSOR_VERSION <= 2 */ #endif /* SOC_TOUCH_SENSOR_SUPPORTED */ diff --git a/cores/esp32/esp32-hal-touch.h b/cores/esp32/esp32-hal-touch.h index cc140d81bb0..4b06c7db766 100644 --- a/cores/esp32/esp32-hal-touch.h +++ b/cores/esp32/esp32-hal-touch.h @@ -22,6 +22,7 @@ #include "soc/soc_caps.h" #if SOC_TOUCH_SENSOR_SUPPORTED +#if SOC_TOUCH_SENSOR_VERSION <= 2 // ESP32 ESP32S2 ESP32S3 #ifdef __cplusplus extern "C" { @@ -37,8 +38,6 @@ extern "C" { typedef uint16_t touch_value_t; #elif SOC_TOUCH_SENSOR_VERSION == 2 // ESP32S2 ESP32S3 typedef uint32_t touch_value_t; -#elif SOC_TOUCH_SENSOR_VERSION == 3 // ESP32P4 -typedef uint32_t touch_value_t; #endif /* @@ -99,5 +98,6 @@ void touchSleepWakeUpEnable(uint8_t pin, touch_value_t threshold); } #endif +#endif /* SOC_TOUCH_SENSOR_VERSION <= 2 */ #endif /* SOC_TOUCH_SENSOR_SUPPORTED */ #endif /* MAIN_ESP32_HAL_TOUCH_H_ */ diff --git a/cores/esp32/esp32-hal.h b/cores/esp32/esp32-hal.h index 60350ae960b..d80bf2f15de 100644 --- a/cores/esp32/esp32-hal.h +++ b/cores/esp32/esp32-hal.h @@ -74,6 +74,7 @@ void yield(void); #include "esp32-hal-uart.h" #include "esp32-hal-gpio.h" #include "esp32-hal-touch.h" +#include "esp32-hal-touch-ng.h" #include "esp32-hal-dac.h" #include "esp32-hal-adc.h" #include "esp32-hal-spi.h" diff --git a/cores/esp32/io_pin_remap.h b/cores/esp32/io_pin_remap.h index 73789a585e3..10f11a5bf4c 100644 --- a/cores/esp32/io_pin_remap.h +++ b/cores/esp32/io_pin_remap.h @@ -106,7 +106,7 @@ int8_t gpioNumberToDigitalPin(int8_t gpioNumber); #define spiAttachMOSI(spi, mosi) spiAttachMOSI(spi, digitalPinToGPIONumber(mosi)) #define spiAttachSS(spi, cs_num, ss) spiAttachSS(spi, cs_num, digitalPinToGPIONumber(ss)) -// cores/esp32/esp32-hal-touch.h +// cores/esp32/esp32-hal-touch.h && cores/esp32/esp32-hal-touch-ng.h #define touchInterruptGetLastStatus(pin) touchInterruptGetLastStatus(digitalPinToGPIONumber(pin)) #define touchRead(pin) touchRead(digitalPinToGPIONumber(pin)) #define touchAttachInterruptArg(pin, userFunc, arg, threshold) touchAttachInterruptArg(digitalPinToGPIONumber(pin), userFunc, arg, threshold) diff --git a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/TouchWakeUp.ino b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/TouchWakeUp.ino index 5aacf1baaf0..9d2b248ba44 100644 --- a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/TouchWakeUp.ino +++ b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/TouchWakeUp.ino @@ -15,9 +15,11 @@ Pranav Cherukupalli */ #if CONFIG_IDF_TARGET_ESP32 -#define THRESHOLD 40 /* Greater the value, more the sensitivity */ -#else //ESP32-S2 and ESP32-S3 + default for other chips (to be adjusted) */ +#define THRESHOLD 40 /* Greater the value, more the sensitivity */ +#elif (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3) #define THRESHOLD 5000 /* Lower the value, more the sensitivity */ +#else // ESP32-P4 + default for other chips (to be adjusted) */ +#define THRESHOLD 500 /* Lower the value, more the sensitivity */ #endif RTC_DATA_ATTR int bootCount = 0; @@ -88,7 +90,7 @@ void setup() { touchSleepWakeUpEnable(T3, THRESHOLD); touchSleepWakeUpEnable(T7, THRESHOLD); -#else //ESP32-S2 + ESP32-S3 +#else //ESP32-S2 + ESP32-S3 + ESP32-P4 //Setup sleep wakeup on Touch Pad 3 (GPIO3) touchSleepWakeUpEnable(T3, THRESHOLD); diff --git a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json index cd679adefad..25c42144223 100644 --- a/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json +++ b/libraries/ESP32/examples/DeepSleep/TouchWakeUp/ci.json @@ -2,7 +2,6 @@ "targets": { "esp32c3": false, "esp32c6": false, - "esp32h2": false, - "esp32p4": false + "esp32h2": false } } diff --git a/libraries/ESP32/examples/Touch/TouchInterrupt/TouchInterrupt.ino b/libraries/ESP32/examples/Touch/TouchInterrupt/TouchInterrupt.ino index 0f0880902fb..3b4e5f0b9e9 100644 --- a/libraries/ESP32/examples/Touch/TouchInterrupt/TouchInterrupt.ino +++ b/libraries/ESP32/examples/Touch/TouchInterrupt/TouchInterrupt.ino @@ -3,7 +3,12 @@ This is an example how to use Touch Intrrerupts The bigger the threshold, the more sensible is the touch */ +#if CONFIG_IDF_TARGET_ESP32P4 +int threshold = 0; // when 0 is used, the benchmarked value will be used +#else int threshold = 40; +#endif + bool touch1detected = false; bool touch2detected = false; diff --git a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json index 4363987f4d6..c0ecf9fc0a5 100644 --- a/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json +++ b/libraries/ESP32/examples/Touch/TouchInterrupt/ci.json @@ -1,8 +1,5 @@ { "requires": [ "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y" - ], - "targets": { - "esp32p4": false - } + ] } diff --git a/libraries/ESP32/examples/Touch/TouchRead/ci.json b/libraries/ESP32/examples/Touch/TouchRead/ci.json index 4363987f4d6..c0ecf9fc0a5 100644 --- a/libraries/ESP32/examples/Touch/TouchRead/ci.json +++ b/libraries/ESP32/examples/Touch/TouchRead/ci.json @@ -1,8 +1,5 @@ { "requires": [ "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y" - ], - "targets": { - "esp32p4": false - } + ] } diff --git a/tests/validation/touch/ci.json b/tests/validation/touch/ci.json index 1abbabeae0c..855e9bd964d 100644 --- a/tests/validation/touch/ci.json +++ b/tests/validation/touch/ci.json @@ -5,8 +5,5 @@ }, "requires": [ "CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y" - ], - "targets": { - "esp32p4": false - } + ] } diff --git a/tests/validation/touch/touch.ino b/tests/validation/touch/touch.ino index 60f6e7f7966..97aac8a65e6 100644 --- a/tests/validation/touch/touch.ino +++ b/tests/validation/touch/touch.ino @@ -2,6 +2,10 @@ #include "soc/soc_caps.h" #include "driver/touch_pad.h" +#if SOC_TOUCH_SENSOR_VERSION == 3 +#include "hal/touch_sensor_ll.h" +#endif + #if CONFIG_IDF_TARGET_ESP32 #define TEST_TOUCH_CHANNEL (9) @@ -15,11 +19,7 @@ uint8_t TOUCH_GPIOS[] = {4, 2, 15, 13, 12, 14, 27, 33, 32}; #define NO_TOUCH_GPIO 25 -#define RELEASED_VALUE 75 //75+ read value to pass test -#define PRESSED_VALUE 20 //20- read value to pass test -#define INTERRUPT_THRESHOLD 40 - -#else //ESP32S2 and ESP32S3 +#elif (CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3) #define TEST_TOUCH_CHANNEL (12) //14 static touch_pad_t touch_list[TEST_TOUCH_CHANNEL] = { @@ -33,7 +33,25 @@ uint8_t TOUCH_GPIOS[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 /*,13,14*/}; #define NO_TOUCH_GPIO 17 -#if CONFIG_IDF_TARGET_ESP32S2 +#else //ESP32P4 + +#define TEST_TOUCH_CHANNEL (5) //14 +static touch_pad_t touch_list[TEST_TOUCH_CHANNEL] = { + TOUCH_PAD_NUM0, TOUCH_PAD_NUM1, TOUCH_PAD_NUM2, + TOUCH_PAD_NUM3, TOUCH_PAD_NUM4, /* TOUCH_PAD_NUM5, TOUCH_PAD_NUM6, + TOUCH_PAD_NUM7, TOUCH_PAD_NUM8, TOUCH_PAD_NUM9, TOUCH_PAD_NUM10, TOUCH_PAD_NUM11, TOUCH_PAD_NUM12, TOUCH_PAD_NUM13*/ +}; + +uint8_t TOUCH_GPIOS[] = {2, 3, 4, 5, 6 /*, 7, 8, 9, 10, 11, 12 ,13, 14, 15*/}; + +#define NO_TOUCH_GPIO 17 +#endif + +#if CONFIG_IDF_TARGET_ESP32 +#define RELEASED_VALUE 75 //75+ read value to pass test +#define PRESSED_VALUE 20 //20- read value to pass test +#define INTERRUPT_THRESHOLD 40 +#elif CONFIG_IDF_TARGET_ESP32S2 #define RELEASED_VALUE 10000 //10000- read value to pass test #define PRESSED_VALUE 42000 //40000+ read value to pass test #define INTERRUPT_THRESHOLD 30000 @@ -41,12 +59,13 @@ uint8_t TOUCH_GPIOS[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 /*,13,14*/}; #define RELEASED_VALUE 25000 //25000- read value to pass test #define PRESSED_VALUE 90000 //90000+ read value to pass test #define INTERRUPT_THRESHOLD 80000 +#elif CONFIG_IDF_TARGET_ESP32P4 +#define PRESSED_VALUE_DIFFERENCE 200 //200+ read value difference against the unpressed value +#define INTERRUPT_THRESHOLD 0 // Use benchmarked threshold #else #error Test not currently supported on this chip. Please adjust and try again! #endif -#endif - bool touch1detected = false; bool touch2detected = false; @@ -59,17 +78,25 @@ void gotTouch2() { } /* - * Change the slope to get larger value from touch sensor. + * Change the slope to get larger value from touch sensor. (Capacitor for ESP32P4) */ static void test_press_fake(touch_pad_t pad_num) { +#if SOC_TOUCH_SENSOR_VERSION <= 2 touch_pad_set_cnt_mode(pad_num, TOUCH_PAD_SLOPE_1, TOUCH_PAD_TIE_OPT_DEFAULT); +#else + touch_ll_set_internal_capacitor(0x7f); +#endif } /* - * Change the slope to get smaller value from touch sensor. + * Change the slope to get smaller value from touch sensor. (Capacitor for ESP32P4) */ static void test_release_fake(touch_pad_t pad_num) { +#if SOC_TOUCH_SENSOR_VERSION <= 2 touch_pad_set_cnt_mode(pad_num, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_DEFAULT); +#else + touch_ll_set_internal_capacitor(0); +#endif } /* These functions are intended to be called before and after each test. */ @@ -87,6 +114,7 @@ void tearDown(void) { */ void test_touch_read(void) { +#if SOC_TOUCH_SENSOR_VERSION <= 2 //TEST RELEASE STATE for (int i = 0; i < sizeof(TOUCH_GPIOS); i++) { #ifdef CONFIG_IDF_TARGET_ESP32 @@ -109,6 +137,29 @@ void test_touch_read(void) { TEST_ASSERT_GREATER_THAN(PRESSED_VALUE, touchRead(TOUCH_GPIOS[k])); #endif } +#else //TOUCH V3 + //TEST RELEASE STATE + touch_value_t touch_unpressed[sizeof(TOUCH_GPIOS)]; + for (int i = 0; i < sizeof(TOUCH_GPIOS); i++) { + touch_unpressed[i] = touchRead(TOUCH_GPIOS[i]); + } + + // TEST PRESS STATE + for (int j = 0; j < TEST_TOUCH_CHANNEL; j++) { + test_press_fake(touch_list[j]); + } + delay(100); + + touch_value_t touch_pressed[sizeof(TOUCH_GPIOS)]; + for (int k = 0; k < sizeof(TOUCH_GPIOS); k++) { + touch_pressed[k] = touchRead(TOUCH_GPIOS[k]); + } + + // COMPARE PRESSED > UNPRESSED + for (int l = 0; l < sizeof(TOUCH_GPIOS); l++) { + TEST_ASSERT_GREATER_THAN((touch_unpressed[l] + PRESSED_VALUE_DIFFERENCE), touch_pressed[l]); + } +#endif } void test_touch_interrtupt(void) { @@ -146,4 +197,6 @@ void setup() { UNITY_END(); } -void loop() {} +void loop() { + delay(10); +} From 83d35683c3736178de595a0ad0424ea3e8f5a4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:03:44 +0200 Subject: [PATCH 046/179] feat(sdmmc): Add SDMMC support for P4 + remove BUILTIN LED (#10460) * feat(sdmmc): Add support for P4 * fix(board): Remove builtin led * Update libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino Add missing note about power pin for P4 Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> * ci(pre-commit): Apply automatic fixes * feat(sdmmc): Option to set power channel * feat(sdmmc): Update pins_arduino.h * feat(sdmmc): remove sdmmc power from periman * fix(sdmmc): use corrent variable * fix(sdmmc): Remove periman * feat(sdmmc): Toggle power pin if defined * feat(sdmmc): setPowerChannel available only when supported * feat(sdmmc): Toggle sd power pin for 200ms * fix(example): Remove p4 pins as they are listed already * feat(sdmmc): Check if power channel is specified * ci(pre-commit): Apply automatic fixes * fix(ci): codespell fix --------- Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .../SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino | 20 ++-- .../SD_MMC/examples/SDMMC_time/SDMMC_time.ino | 1 + libraries/SD_MMC/src/SD_MMC.cpp | 106 ++++++++++++++++-- libraries/SD_MMC/src/SD_MMC.h | 6 + variants/esp32p4/pins_arduino.h | 28 +++-- 5 files changed, 138 insertions(+), 23 deletions(-) diff --git a/libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino b/libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino index 030caae759c..e03f5ceb25e 100644 --- a/libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino +++ b/libraries/SD_MMC/examples/SDMMC_Test/SDMMC_Test.ino @@ -14,6 +14,7 @@ * Connections for ║ ║ ╔═══╩═║═║═══╗ ║ ║ ║ * full-sized ║ ║ ║ ╔═╝ ║ ║ ║ ║ ║ * SD card ║ ║ ║ ║ ║ ║ ║ ║ ║ + * ESP32-P4 Func EV | 40 39 GND 43 3V3 GND 44 43 42 | SLOT 0 (IO_MUX) * ESP32-S3 DevKit | 21 47 GND 39 3V3 GND 40 41 42 | * ESP32-S3-USB-OTG | 38 37 GND 36 3V3 GND 35 34 33 | * ESP32 | 4 2 GND 14 3V3 GND 15 13 12 | @@ -42,6 +43,7 @@ #include "FS.h" #include "SD_MMC.h" +#ifdef CONFIG_IDF_TARGET_ESP32S3 // Default pins for ESP-S3 // Warning: ESP32-S3-WROOM-2 is using most of the default GPIOs (33-37) to interface with on-board OPI flash. // If the SD_MMC is initialized with default pins it will result in rebooting loop - please @@ -54,6 +56,7 @@ int d0 = 37; int d1 = 38; int d2 = 33; int d3 = 39; // GPIO 34 is not broken-out on ESP32-S3-DevKitC-1 v1.1 +#endif void listDir(fs::FS &fs, const char *dirname, uint8_t levels) { Serial.printf("Listing directory: %s\n", dirname); @@ -211,15 +214,16 @@ void testFileIO(fs::FS &fs, const char *path) { void setup() { Serial.begin(115200); /* - // If you want to change the pin assignment on ESP32-S3 uncomment this block and the appropriate + // If you want to change the pin assignment or you get an error that some pins + // are not assigned on ESP32-S3/ESP32-P4 uncomment this block and the appropriate // line depending if you want to use 1-bit or 4-bit line. - // Please note that ESP32 does not allow pin change and will always fail. + // Please note that ESP32 does not allow pin change and setPins() will always fail. //if(! SD_MMC.setPins(clk, cmd, d0)){ //if(! SD_MMC.setPins(clk, cmd, d0, d1, d2, d3)){ - Serial.println("Pin change failed!"); - return; - } - */ + // Serial.println("Pin change failed!"); + // return; + //} + */ if (!SD_MMC.begin()) { Serial.println("Card Mount Failed"); @@ -262,4 +266,6 @@ void setup() { Serial.printf("Used space: %lluMB\n", SD_MMC.usedBytes() / (1024 * 1024)); } -void loop() {} +void loop() { + delay(10); +} diff --git a/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino b/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino index bd9f150f3e8..d1e933e4f4b 100644 --- a/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino +++ b/libraries/SD_MMC/examples/SDMMC_time/SDMMC_time.ino @@ -14,6 +14,7 @@ * Connections for ║ ║ ╔═══╩═║═║═══╗ ║ ║ ║ * full-sized ║ ║ ║ ╔═╝ ║ ║ ║ ║ ║ * SD card ║ ║ ║ ║ ║ ║ ║ ║ ║ + * ESP32-P4 Func EV | 40 39 GND 43 3V3 GND 44 43 42 | SLOT 0 (IO_MUX) * ESP32-S3 DevKit | 21 47 GND 39 3V3 GND 40 41 42 | * ESP32-S3-USB-OTG | 38 37 GND 36 3V3 GND 35 34 33 | * ESP32 | 4 2 GND 14 3V3 GND 15 13 12 | diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 80cb150baa2..4a0962ff7e4 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -32,11 +32,14 @@ #include "ff.h" #include "esp32-hal-periman.h" +#if SOC_SDMMC_IO_POWER_EXTERNAL +#include "sd_pwr_ctrl_by_on_chip_ldo.h" +#endif + using namespace fs; SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { -#if !defined(CONFIG_IDF_TARGET_ESP32P4) -#if defined(SOC_SDMMC_USE_GPIO_MATRIX) && defined(BOARD_HAS_SDMMC) +#if defined(SOC_SDMMC_USE_GPIO_MATRIX) && defined(BOARD_HAS_SDMMC) && !defined(CONFIG_IDF_TARGET_ESP32P4) _pin_clk = SDMMC_CLK; _pin_cmd = SDMMC_CMD; _pin_d0 = SDMMC_D0; @@ -45,9 +48,8 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d2 = SDMMC_D2; _pin_d3 = SDMMC_D3; #endif // BOARD_HAS_1BIT_SDMMC -#endif // !defined(CONFIG_IDF_TARGET_ESP32P4) -#elif SOC_SDMMC_USE_IOMUX && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32) +#elif defined(SOC_SDMMC_USE_IOMUX) && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32) _pin_clk = SDMMC_SLOT1_IOMUX_PIN_NUM_CLK; _pin_cmd = SDMMC_SLOT1_IOMUX_PIN_NUM_CMD; _pin_d0 = SDMMC_SLOT1_IOMUX_PIN_NUM_D0; @@ -57,7 +59,9 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d3 = SDMMC_SLOT1_IOMUX_PIN_NUM_D3; #endif // BOARD_HAS_1BIT_SDMMC -#elif SOC_SDMMC_USE_IOMUX && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32P4) +// ESP32-P4 can use either IOMUX or GPIO matrix +#elif defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32P4) +#if defined(BOARD_SDMMC_SLOT) && (BOARD_SDMMC_SLOT == 0) _pin_clk = SDMMC_SLOT0_IOMUX_PIN_NUM_CLK; _pin_cmd = SDMMC_SLOT0_IOMUX_PIN_NUM_CMD; _pin_d0 = SDMMC_SLOT0_IOMUX_PIN_NUM_D0; @@ -66,6 +70,19 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d2 = SDMMC_SLOT0_IOMUX_PIN_NUM_D2; _pin_d3 = SDMMC_SLOT0_IOMUX_PIN_NUM_D3; #endif // BOARD_HAS_1BIT_SDMMC +#else + _pin_clk = SDMMC_CLK; + _pin_cmd = SDMMC_CMD; + _pin_d0 = SDMMC_D0; +#ifndef BOARD_HAS_1BIT_SDMMC + _pin_d1 = SDMMC_D1; + _pin_d2 = SDMMC_D2; + _pin_d3 = SDMMC_D3; +#endif // BOARD_HAS_1BIT_SDMMC +#endif // BOARD_SDMMC_SLOT_NO +#endif +#if defined(SOC_SDMMC_IO_POWER_EXTERNAL) && defined(BOARD_SDMMC_POWER_CHANNEL) + _power_channel = BOARD_SDMMC_POWER_CHANNEL; #endif } @@ -95,7 +112,7 @@ bool SDMMCFS::setPins(int clk, int cmd, int d0, int d1, int d2, int d3) { d2 = digitalPinToGPIONumber(d2); d3 = digitalPinToGPIONumber(d3); -#ifdef SOC_SDMMC_USE_GPIO_MATRIX +#if defined(SOC_SDMMC_USE_GPIO_MATRIX) && !defined(CONFIG_IDF_TARGET_ESP32P4) // SoC supports SDMMC pin configuration via GPIO matrix. Save the pins for later use in SDMMCFS::begin. _pin_clk = (int8_t)clk; _pin_cmd = (int8_t)cmd; @@ -116,11 +133,42 @@ bool SDMMCFS::setPins(int clk, int cmd, int d0, int d1, int d2, int d3) { return false; } return true; +#elif defined(CONFIG_IDF_TARGET_ESP32P4) +#if defined(BOARD_SDMMC_SLOT) && (BOARD_SDMMC_SLOT == 0) + // ESP32-P4 can use either IOMUX or GPIO matrix + bool pins_ok = + (clk == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_CLK) && (cmd == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_CMD) && (d0 == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_D0) + && (((d1 == -1) && (d2 == -1) && (d3 == -1)) || ((d1 == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_D1) && (d2 == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_D2) && (d3 == (int)SDMMC_SLOT0_IOMUX_PIN_NUM_D3))); + if (!pins_ok) { + log_e("SDMMCFS: specified pins are not supported when using IOMUX (SDMMC SLOT 0)."); + return false; + } + return true; +#else + _pin_clk = (int8_t)clk; + _pin_cmd = (int8_t)cmd; + _pin_d0 = (int8_t)d0; + _pin_d1 = (int8_t)d1; + _pin_d2 = (int8_t)d2; + _pin_d3 = (int8_t)d3; + return true; +#endif #else #error SoC not supported #endif } +#ifdef SOC_SDMMC_IO_POWER_EXTERNAL +bool SDMMCFS::setPowerChannel(int power_channel) { + if (_card != nullptr) { + log_e("SD_MMC.setPowerChannel must be called before SD_MMC.begin"); + return false; + } + _power_channel = power_channel; + return true; +} +#endif + bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_failed, int sdmmc_frequency, uint8_t maxOpenFiles) { if (_card) { return true; @@ -135,7 +183,9 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ } //mount sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT(); -#ifdef SOC_SDMMC_USE_GPIO_MATRIX +#if (defined(SOC_SDMMC_USE_GPIO_MATRIX) && !defined(CONFIG_IDF_TARGET_ESP32P4)) \ + || (defined(CONFIG_IDF_TARGET_ESP32P4) && ((defined(BOARD_SDMMC_SLOT) && (BOARD_SDMMC_SLOT == 1)) || !defined(BOARD_HAS_SDMMC))) + log_d("pin_cmd: %d, pin_clk: %d, pin_d0: %d, pin_d1: %d, pin_d2: %d, pin_d3: %d", _pin_cmd, _pin_clk, _pin_d0, _pin_d1, _pin_d2, _pin_d3); // SoC supports SDMMC pin configuration via GPIO matrix. // Check that the pins have been set either in the constructor or setPins function. if (_pin_cmd == -1 || _pin_clk == -1 || _pin_d0 == -1 || (!mode1bit && (_pin_d1 == -1 || _pin_d2 == -1 || _pin_d3 == -1))) { @@ -175,7 +225,18 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ sdmmc_host_t host = SDMMC_HOST_DEFAULT(); host.flags = SDMMC_HOST_FLAG_4BIT; +#if defined(CONFIG_IDF_TARGET_ESP32P4) && defined(BOARD_SDMMC_SLOT) && (BOARD_SDMMC_SLOT == 0) + host.slot = SDMMC_HOST_SLOT_0; + // reconfigure slot_config to remove all pins in order to use IO_MUX + slot_config = { + .cd = SDMMC_SLOT_NO_CD, + .wp = SDMMC_SLOT_NO_WP, + .width = 4, + .flags = 0, + }; +#else host.slot = SDMMC_HOST_SLOT_1; +#endif host.max_freq_khz = sdmmc_frequency; #ifdef BOARD_HAS_1BIT_SDMMC mode1bit = true; @@ -186,6 +247,34 @@ bool SDMMCFS::begin(const char *mountpoint, bool mode1bit, bool format_if_mount_ } _mode1bit = mode1bit; +#ifdef SOC_SDMMC_IO_POWER_EXTERNAL + if (_power_channel == -1) { + log_i("On-chip power channel specified, use external power for SDMMC"); + } else { + sd_pwr_ctrl_ldo_config_t ldo_config = { + .ldo_chan_id = _power_channel, + }; + sd_pwr_ctrl_handle_t pwr_ctrl_handle = NULL; + + if (sd_pwr_ctrl_new_on_chip_ldo(&ldo_config, &pwr_ctrl_handle) != ESP_OK) { + log_e("Failed to create a new on-chip LDO power control driver"); + return false; + } + host.pwr_ctrl_handle = pwr_ctrl_handle; + } +#endif + +#if defined(BOARD_SDMMC_POWER_PIN) +#ifndef BOARD_SDMMC_POWER_ON_LEVEL +#error "BOARD_SDMMC_POWER_ON_LEVEL not defined, please define it in pins_arduino.h" +#endif + pinMode(BOARD_SDMMC_POWER_PIN, OUTPUT); + digitalWrite(BOARD_SDMMC_POWER_PIN, !BOARD_SDMMC_POWER_ON_LEVEL); + delay(200); + digitalWrite(BOARD_SDMMC_POWER_PIN, BOARD_SDMMC_POWER_ON_LEVEL); + perimanSetPinBusExtraType(BOARD_SDMMC_POWER_PIN, "SDMMC_POWER"); +#endif + esp_vfs_fat_sdmmc_mount_config_t mount_config = { .format_if_mount_failed = format_if_mount_failed, .max_files = maxOpenFiles, @@ -252,6 +341,9 @@ void SDMMCFS::end() { perimanClearPinBus(_pin_d2); perimanClearPinBus(_pin_d3); } +#if defined(BOARD_SDMMC_POWER_PIN) + perimanClearPinBus(BOARD_SDMMC_POWER_PIN); +#endif } } diff --git a/libraries/SD_MMC/src/SD_MMC.h b/libraries/SD_MMC/src/SD_MMC.h index a2bc12aed64..b6fe13a0d24 100644 --- a/libraries/SD_MMC/src/SD_MMC.h +++ b/libraries/SD_MMC/src/SD_MMC.h @@ -44,6 +44,9 @@ class SDMMCFS : public FS { int8_t _pin_d1 = -1; int8_t _pin_d2 = -1; int8_t _pin_d3 = -1; +#ifdef SOC_SDMMC_IO_POWER_EXTERNAL + int8_t _power_channel = -1; +#endif uint8_t _pdrv = 0xFF; bool _mode1bit = false; @@ -51,6 +54,9 @@ class SDMMCFS : public FS { SDMMCFS(FSImplPtr impl); bool setPins(int clk, int cmd, int d0); bool setPins(int clk, int cmd, int d0, int d1, int d2, int d3); +#ifdef SOC_SDMMC_IO_POWER_EXTERNAL + bool setPowerChannel(int power_channel); +#endif bool begin( const char *mountpoint = "/sdcard", bool mode1bit = false, bool format_if_mount_failed = false, int sdmmc_frequency = BOARD_MAX_SDMMC_FREQ, uint8_t maxOpenFiles = 5 diff --git a/variants/esp32p4/pins_arduino.h b/variants/esp32p4/pins_arduino.h index 792146f5ca2..cbb1e871ae5 100644 --- a/variants/esp32p4/pins_arduino.h +++ b/variants/esp32p4/pins_arduino.h @@ -4,15 +4,6 @@ #include #include "soc/soc_caps.h" -#define PIN_NEOPIXEL 44 -// BUILTIN_LED can be used in new Arduino API digitalWrite() like in Blink.ino -static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT + PIN_NEOPIXEL; -#define BUILTIN_LED LED_BUILTIN // backward compatibility -#define LED_BUILTIN LED_BUILTIN // allow testing #ifdef LED_BUILTIN -// RGB_BUILTIN and RGB_BRIGHTNESS can be used in new Arduino API rgbLedWrite() -#define RGB_BUILTIN LED_BUILTIN -#define RGB_BRIGHTNESS 64 - // BOOT_MODE 35 // BOOT_MODE2 36 pullup @@ -58,6 +49,8 @@ static const uint8_t T11 = 13; static const uint8_t T12 = 14; static const uint8_t T13 = 15; +/* ESP32-P4 EV Function board specific definitions */ +//ETH #define ETH_PHY_TYPE ETH_PHY_TLK110 #define ETH_PHY_ADDR 1 #define ETH_PHY_MDC 31 @@ -72,4 +65,21 @@ static const uint8_t T13 = 15; #define ETH_RMII_CLK 50 #define ETH_CLK_MODE EMAC_CLK_EXT_IN +//SDMMC +#define BOARD_HAS_SDMMC +#define BOARD_SDMMC_SLOT 0 +#define BOARD_SDMMC_POWER_CHANNEL 4 +#define BOARD_SDMMC_POWER_PIN 45 +#define BOARD_SDMMC_POWER_ON_LEVEL LOW + +//WIFI - ESP32C6 +#define BOARD_HAS_SDIO_ESP_HOSTED +#define BOARD_SDIO_ESP_HOSTED_CLK 18 +#define BOARD_SDIO_ESP_HOSTED_CMD 19 +#define BOARD_SDIO_ESP_HOSTED_D0 14 +#define BOARD_SDIO_ESP_HOSTED_D1 15 +#define BOARD_SDIO_ESP_HOSTED_D2 16 +#define BOARD_SDIO_ESP_HOSTED_D3 17 +#define BOARD_SDIO_ESP_HOSTED_RESET 54 + #endif /* Pins_Arduino_h */ From f668557b547ddd25e464977bfbdc3d41afbdc319 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:22:02 -0300 Subject: [PATCH 047/179] Enable tests for ESP32P4 --- .github/scripts/tests_matrix.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/scripts/tests_matrix.sh b/.github/scripts/tests_matrix.sh index ca0b6eb8684..74fece91f8e 100644 --- a/.github/scripts/tests_matrix.sh +++ b/.github/scripts/tests_matrix.sh @@ -12,7 +12,7 @@ if [[ $IS_PR != 'true' ]] || [[ $PERFORMANCE_ENABLED == 'true' ]]; then #qemu_types+=",'performance'" fi -targets="'esp32','esp32s2','esp32s3','esp32c3','esp32c6','esp32h2'" +targets="'esp32','esp32s2','esp32s3','esp32c3','esp32c6','esp32h2','esp32p4'" mkdir -p info From c40444ab338e6c33c5160ee12dfe36246c482025 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 21 Oct 2024 10:42:43 -0300 Subject: [PATCH 048/179] feat(matter): initial commit with arduino matter lib (#10467) * feat(matter): initial commit with arduino matter lib * feat(matter): add matter library to cmakelists.txt * fix(matter): add correct guard for ci * fix(matter): using correct ci requirements in ci.json * fix(matter): using correct ci requirements in header files * fix(matter): using correct ci requirements header and examples * fix(typo): typo and commentaries * fix(typo): typo and commentaries * fix(typo): typo and commentaries * fix(commentary): longer explanation * feat(matter): api simplification with begin * feat(matter): testing flashmode=qio in CI * feat(matter): testing flashmode=qio in CI * fix(matter): changes CI FQBN * fix(matte): include all fqbn in ci.json using qio * fix(matter): revert ci and guard changes * fix(matter): typo and commentaties * feat(matter): adds a light toggle switch button * feat(matter): improved the button control * feat(matter): using switch instead of if() for attibute change * fix(matter): switch/case scope * fix(matter): problems found after pressing reset * feat(matter): improve example using preferences * fix(pre-commit): Fix and apply pre-commit hooks --------- Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- .pre-commit-config.yaml | 1 + CMakeLists.txt | 5 + .../MatterCommissionTest.ino | 65 +++++++ .../examples/MatterCommissionTest/ci.json | 7 + .../MatterComposedLights.ino | 94 ++++++++++ .../examples/MatterComposedLights/ci.json | 7 + .../MatterOnOffLight/MatterOnOffLight.ino | 138 +++++++++++++++ .../Matter/examples/MatterOnOffLight/ci.json | 7 + libraries/Matter/keywords.txt | 35 ++++ libraries/Matter/library.properties | 9 + libraries/Matter/src/Matter.cpp | 163 ++++++++++++++++++ libraries/Matter/src/Matter.h | 40 +++++ libraries/Matter/src/MatterEndPoint.h | 23 +++ libraries/Matter/src/MatterOnOffLight.cpp | 107 ++++++++++++ libraries/Matter/src/MatterOnOffLight.h | 34 ++++ 15 files changed, 735 insertions(+) create mode 100644 libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino create mode 100644 libraries/Matter/examples/MatterCommissionTest/ci.json create mode 100644 libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino create mode 100644 libraries/Matter/examples/MatterComposedLights/ci.json create mode 100644 libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino create mode 100644 libraries/Matter/examples/MatterOnOffLight/ci.json create mode 100644 libraries/Matter/keywords.txt create mode 100644 libraries/Matter/library.properties create mode 100644 libraries/Matter/src/Matter.cpp create mode 100644 libraries/Matter/src/Matter.h create mode 100644 libraries/Matter/src/MatterEndPoint.h create mode 100644 libraries/Matter/src/MatterOnOffLight.cpp create mode 100644 libraries/Matter/src/MatterOnOffLight.h diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0aff5b6f07b..6a949631bd9 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -26,6 +26,7 @@ repos: - id: trailing-whitespace args: [--markdown-linebreak-ext=md] - id: pretty-format-json + stages: [manual] args: [--autofix] types_or: [json] exclude: | diff --git a/CMakeLists.txt b/CMakeLists.txt index 6688a97803d..e552299b8aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,6 +94,7 @@ set(ARDUINO_ALL_LIBRARIES HTTPUpdate Insights LittleFS + Matter NetBIOS Network OpenThread @@ -165,6 +166,10 @@ set(ARDUINO_LIBRARY_OpenThread_SRCS libraries/OpenThread/src/OThreadCLI.cpp libraries/OpenThread/src/OThreadCLI_Util.cpp) +set(ARDUINO_LIBRARY_Matter_SRCS + libraries/Matter/src/MatterOnOffLight.cpp + libraries/Matter/src/Matter.cpp) + set(ARDUINO_LIBRARY_PPP_SRCS libraries/PPP/src/PPP.cpp libraries/PPP/src/ppp.c) diff --git a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino new file mode 100644 index 00000000000..a9afb0c4484 --- /dev/null +++ b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino @@ -0,0 +1,65 @@ +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// On/Off Light Endpoint +#include +MatterOnOffLight OnOffLight; + +// WiFi is manually set and started + +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void setup() { + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); +} + +void loop() { + // Check Matter Commissioning state + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + while (!Matter.isDeviceCommissioned()) { + delay(5000); + Serial.println("Matter Fabric not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi."); + Serial.println("====> Decommissioning in 30 seconds. <===="); + delay(30000); + Matter.decommission(); + Serial.println("Matter Node is decommissioned. Commsssioning widget shall start over."); +} diff --git a/libraries/Matter/examples/MatterCommissionTest/ci.json b/libraries/Matter/examples/MatterCommissionTest/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterCommissionTest/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino new file mode 100644 index 00000000000..63f154d4492 --- /dev/null +++ b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino @@ -0,0 +1,94 @@ +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// There will be 3 On/Off Light Endpoints in the same Node +#include +MatterOnOffLight OnOffLight1; +MatterOnOffLight OnOffLight2; +MatterOnOffLight OnOffLight3; + +// Matter Protocol Endpoint Callback for each Light Accessory +bool setLightOnOff1(bool state) { + Serial.printf("CB-Light1 changed state to: %s\r\n", state ? "ON" : "OFF"); + return true; +} + +bool setLightOnOff2(bool state) { + Serial.printf("CB-Light2 changed state to: %s\r\n", state ? "ON" : "OFF"); + return true; +} + +bool setLightOnOff3(bool state) { + Serial.printf("CB-Light3 changed state to: %s\r\n", state ? "ON" : "OFF"); + return true; +} + +// WiFi is manually set and started + +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void setup() { + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize all 3 Matter EndPoints + OnOffLight1.begin(); + OnOffLight2.begin(); + OnOffLight3.begin(); + OnOffLight1.onChangeOnOff(setLightOnOff1); + OnOffLight2.onChangeOnOff(setLightOnOff2); + OnOffLight3.onChangeOnOff(setLightOnOff3); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); +} + +void loop() { + // Check Matter Light Commissioning state + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + //displays the Light state every 3 seconds + Serial.println("======================"); + Serial.printf("Matter Light #1 is %s\r\n", OnOffLight1.getOnOff() ? "ON" : "OFF"); + Serial.printf("Matter Light #2 is %s\r\n", OnOffLight2.getOnOff() ? "ON" : "OFF"); + Serial.printf("Matter Light #3 is %s\r\n", OnOffLight3.getOnOff() ? "ON" : "OFF"); + delay(3000); +} diff --git a/libraries/Matter/examples/MatterComposedLights/ci.json b/libraries/Matter/examples/MatterComposedLights/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterComposedLights/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino new file mode 100644 index 00000000000..64981b23a66 --- /dev/null +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -0,0 +1,138 @@ +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// On/Off Light Endpoint +#include +MatterOnOffLight OnOffLight; + +// it will keep last OnOff state stored, using Preferences +Preferences lastStatePref; + +// set your board LED pin here +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the LED pin" +#endif + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// Matter Protocol Endpoint Callback +bool setLightOnOff(bool state) { + Serial.printf("User Callback :: New Light State = %s\r\n", state ? "ON" : "OFF"); + if (state) { + digitalWrite(ledPin, HIGH); + } else { + digitalWrite(ledPin, LOW); + } + // store last OnOff state for when the Light is restarted / power goes off + lastStatePref.putBool("lastOnOffState", state); + // This callback must return the success state to Matter core + return true; +} + +// WiFi is manually set and started + +const char *ssid = "Apartment B15"; // Change this to your WiFi SSID +const char *password = "flat-pony-body"; // Change this to your WiFi password + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + lastStatePref.begin("matterLight", false); + bool lastOnOffState = lastStatePref.getBool("lastOnOffState", true); + OnOffLight.begin(lastOnOffState); + OnOffLight.onChangeOnOff(setLightOnOff); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF"); + setLightOnOff(OnOffLight.getOnOff()); // configure the Light based on initial state + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light + +void loop() { + // Check Matter Light Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF"); + setLightOnOff(OnOffLight.getOnOff()); // configure the Light based on initial state + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A button is also used to control the light + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a Light toggle switch or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // Toggle button is released - toggle the light + Serial.println("User button released. Toggling Light!"); + OnOffLight.toggle(); // Matter Controller also can see the change + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + OnOffLight.setOnOff(false); // turn the light off + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/MatterOnOffLight/ci.json b/libraries/Matter/examples/MatterOnOffLight/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterOnOffLight/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt new file mode 100644 index 00000000000..7ff3e90f3b4 --- /dev/null +++ b/libraries/Matter/keywords.txt @@ -0,0 +1,35 @@ +####################################### +# Syntax Coloring Map For OpenThread +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### + +Matter KEYWORD1 +MatterOnOffLight KEYWORD1 +MatterEndPoint KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### + +begin KEYWORD2 +end KEYWORD2 +start KEYWORD2 +getManualPairingCode KEYWORD2 +getOnboardingQRCodeUrl KEYWORD2 +isDeviceCommissioned KEYWORD2 +isWiFiConnected KEYWORD2 +isThreadConnected KEYWORD2 +isDeviceConnected KEYWORD2 +decommission KEYWORD2 +attributeChangeCB KEYWORD2 +setOnOff KEYWORD2 +getOnOff KEYWORD2 +toggle KEYWORD2 +onChangeOnOff KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### diff --git a/libraries/Matter/library.properties b/libraries/Matter/library.properties new file mode 100644 index 00000000000..e08c750fb59 --- /dev/null +++ b/libraries/Matter/library.properties @@ -0,0 +1,9 @@ +name=Matter +version=3.1.0 +author=Rodrigo Garcia | GitHub @SuGlider +maintainer=Rodrigo Garcia +sentence=Library for supporting Matter environment on ESP32. +paragraph=This library implements Matter accessories using WiFi network. +category=Communication +url=https://github.com/espressif/arduino-esp32/ +architectures=esp32 diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp new file mode 100644 index 00000000000..49504babac0 --- /dev/null +++ b/libraries/Matter/src/Matter.cpp @@ -0,0 +1,163 @@ +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include "MatterEndPoint.h" + +using namespace esp_matter; +using namespace esp_matter::attribute; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +constexpr auto k_timeout_seconds = 300; + +static bool _matter_has_started = false; +static node::config_t node_config; +static node_t *deviceNode = NULL; + +typedef void *app_driver_handle_t; +esp_err_t matter_light_attribute_update( + app_driver_handle_t driver_handle, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val +); + +// This callback is called for every attribute update. The callback implementation shall +// handle the desired attributes and return an appropriate error code. If the attribute +// is not of your interest, please do not return an error code and strictly return ESP_OK. +static esp_err_t app_attribute_update_cb( + attribute::callback_type_t type, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val, void *priv_data +) { + esp_err_t err = ESP_OK; + MatterEndPoint *ep = (MatterEndPoint *)priv_data; // endpoint pointer to base class + switch (type) { + case PRE_UPDATE: // Callback before updating the value in the database + log_i("Attribute update callback: PRE_UPDATE"); + if (ep != NULL) { + err = ep->attributeChangeCB(endpoint_id, cluster_id, attribute_id, val) ? ESP_OK : ESP_FAIL; + } + break; + case POST_UPDATE: // Callback after updating the value in the database + log_i("Attribute update callback: POST_UPDATE"); + break; + case READ: // Callback for reading the attribute value. This is used when the `ATTRIBUTE_FLAG_OVERRIDE` is set. + log_i("Attribute update callback: READ"); + break; + case WRITE: // Callback for writing the attribute value. This is used when the `ATTRIBUTE_FLAG_OVERRIDE` is set. + log_i("Attribute update callback: WRITE"); + break; + default: log_i("Attribute update callback: Unknown type %d", type); + } + return err; +} + +// This callback is invoked when clients interact with the Identify Cluster. +// In the callback implementation, an endpoint can identify itself. (e.g., by flashing an LED or light). +static esp_err_t app_identification_cb(identification::callback_type_t type, uint16_t endpoint_id, uint8_t effect_id, uint8_t effect_variant, void *priv_data) { + log_i("Identification callback: type: %u, effect: %u, variant: %u", type, effect_id, effect_variant); + return ESP_OK; +} + +// This callback is invoked for all Matter events. The application can handle the events as required. +static void app_event_cb(const ChipDeviceEvent *event, intptr_t arg) { + switch (event->Type) { + case chip::DeviceLayer::DeviceEventType::kInterfaceIpAddressChanged: + log_i( + "Interface %s Address changed", event->InterfaceIpAddressChanged.Type == chip::DeviceLayer::InterfaceIpChangeType::kIpV4_Assigned ? "IPv4" : "IPV6" + ); + break; + case chip::DeviceLayer::DeviceEventType::kCommissioningComplete: log_i("Commissioning complete"); break; + case chip::DeviceLayer::DeviceEventType::kFailSafeTimerExpired: log_i("Commissioning failed, fail safe timer expired"); break; + case chip::DeviceLayer::DeviceEventType::kCommissioningSessionStarted: log_i("Commissioning session started"); break; + case chip::DeviceLayer::DeviceEventType::kCommissioningSessionStopped: log_i("Commissioning session stopped"); break; + case chip::DeviceLayer::DeviceEventType::kCommissioningWindowOpened: log_i("Commissioning window opened"); break; + case chip::DeviceLayer::DeviceEventType::kCommissioningWindowClosed: log_i("Commissioning window closed"); break; + case chip::DeviceLayer::DeviceEventType::kFabricRemoved: + { + log_i("Fabric removed successfully"); + if (chip::Server::GetInstance().GetFabricTable().FabricCount() == 0) { + log_i("No fabric left, opening commissioning window"); + chip::CommissioningWindowManager &commissionMgr = chip::Server::GetInstance().GetCommissioningWindowManager(); + constexpr auto kTimeoutSeconds = chip::System::Clock::Seconds16(k_timeout_seconds); + if (!commissionMgr.IsCommissioningWindowOpen()) { + // After removing last fabric, it does not remove the Wi-Fi credentials and still has IP connectivity so, only advertising on DNS-SD. + CHIP_ERROR err = commissionMgr.OpenBasicCommissioningWindow(kTimeoutSeconds, chip::CommissioningWindowAdvertisement::kDnssdOnly); + if (err != CHIP_NO_ERROR) { + log_e("Failed to open commissioning window, err:%" CHIP_ERROR_FORMAT, err.Format()); + } + } + } + break; + } + case chip::DeviceLayer::DeviceEventType::kFabricWillBeRemoved: log_i("Fabric will be removed"); break; + case chip::DeviceLayer::DeviceEventType::kFabricUpdated: log_i("Fabric is updated"); break; + case chip::DeviceLayer::DeviceEventType::kFabricCommitted: log_i("Fabric is committed"); break; + case chip::DeviceLayer::DeviceEventType::kBLEDeinitialized: log_i("BLE deinitialized and memory reclaimed"); break; + default: break; + } +} + +void ArduinoMatter::_init() { + if (_matter_has_started) { + return; + } + + // Create a Matter node and add the mandatory Root Node device type on endpoint 0 + // node handle can be used to add/modify other endpoints. + deviceNode = node::create(&node_config, app_attribute_update_cb, app_identification_cb); + if (deviceNode == nullptr) { + log_e("Failed to create Matter node"); + return; + } + + _matter_has_started = true; +} + +void ArduinoMatter::begin() { + if (!_matter_has_started) { + log_w("No Matter endpoint has been created. Please create an endpoint first."); + return; + } + + /* Matter start */ + esp_err_t err = esp_matter::start(app_event_cb); + if (err != ESP_OK) { + log_e("Failed to start Matter, err:%d", err); + _matter_has_started = false; + } +} + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +bool ArduinoMatter::isThreadConnected() { + return false; // Thread Network TBD +} +#endif + +bool ArduinoMatter::isDeviceCommissioned() { + return chip::Server::GetInstance().GetFabricTable().FabricCount() > 0; +} + +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION +bool ArduinoMatter::isWiFiConnected() { + return chip::DeviceLayer::ConnectivityMgr().IsWiFiStationConnected(); +} +#endif + +bool ArduinoMatter::isDeviceConnected() { + bool retCode = false; +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + retCode |= ArduinoMatter::isThreadConnected(); +#endif +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION + retCode |= ArduinoMatter::isWiFiConnected(); +#endif + return retCode; +} + +void ArduinoMatter::decommission() { + esp_matter::factory_reset(); +} + +// Global Matter Object +ArduinoMatter Matter; + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h new file mode 100644 index 00000000000..a1ce0f2f644 --- /dev/null +++ b/libraries/Matter/src/Matter.h @@ -0,0 +1,40 @@ +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +using namespace esp_matter; + +class ArduinoMatter { +public: + static inline String getManualPairingCode() { + // return the pairing code for manual pairing + return String("34970112332"); + } + static inline String getOnboardingQRCodeUrl() { + // return the URL for the QR code for onboarding + return String("https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT:Y.K9042C00KA0648G00"); + } + static void begin(); + static bool isDeviceCommissioned(); +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION + static bool isWiFiConnected(); +#endif +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + static bool isThreadConnected(); +#endif + static bool isDeviceConnected(); + static void decommission(); + + // list of Matter EndPoints Friend Classes + friend class MatterOnOffLight; + +protected: + static void _init(); +}; + +extern ArduinoMatter Matter; + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h new file mode 100644 index 00000000000..2be5bf5bb5d --- /dev/null +++ b/libraries/Matter/src/MatterEndPoint.h @@ -0,0 +1,23 @@ +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +// Matter Endpoint Base Class. Controls the endpoint ID and allows the child class to overwrite attribute change call +class MatterEndPoint { +public: + uint16_t getEndPointId() { + return endpoint_id; + } + void setEndPointId(uint16_t ep) { + endpoint_id = ep; + } + + virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; + +protected: + uint16_t endpoint_id = 0; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterOnOffLight.cpp b/libraries/Matter/src/MatterOnOffLight.cpp new file mode 100644 index 00000000000..7e8926ffdef --- /dev/null +++ b/libraries/Matter/src/MatterOnOffLight.cpp @@ -0,0 +1,107 @@ +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterOnOffLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_w("Matter On-Off Light device has not begun."); + return false; + } + + if (endpoint_id == getEndPointId()) { + if (cluster_id == OnOff::Id) { + if (attribute_id == OnOff::Attributes::OnOff::Id) { + if (_onChangeCB != NULL) { + ret = _onChangeCB(val->val.b); + log_d("OnOffLight state changed to %d", val->val.b); + if (ret == true) { + state = val->val.b; + } + } + } + } + } + return ret; +} + +MatterOnOffLight::MatterOnOffLight() {} + +MatterOnOffLight::~MatterOnOffLight() { + end(); +} + +bool MatterOnOffLight::begin(bool initialState) { + ArduinoMatter::_init(); + on_off_light::config_t light_config; + light_config.on_off.on_off = initialState; + state = initialState; + light_config.on_off.lighting.start_up_on_off = nullptr; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = on_off_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create on-off light endpoint"); + return false; + } + + setEndPointId(endpoint::get_id(endpoint)); + log_i("On-Off Light created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterOnOffLight::end() { + started = false; +} + +bool MatterOnOffLight::setOnOff(bool newState) { + if (!started) { + log_w("Matter On-Off Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (state == newState) { + return true; + } + + state = newState; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, OnOff::Id); + attribute_t *attribute = attribute::get(cluster, OnOff::Attributes::OnOff::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.b != state) { + val.val.b = state; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); + } + return true; +} + +bool MatterOnOffLight::getOnOff() { + return state; +} + +bool MatterOnOffLight::toggle() { + return setOnOff(!state); +} + +MatterOnOffLight::operator bool() { + return getOnOff(); +} + +void MatterOnOffLight::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterOnOffLight.h b/libraries/Matter/src/MatterOnOffLight.h new file mode 100644 index 00000000000..39220652e21 --- /dev/null +++ b/libraries/Matter/src/MatterOnOffLight.h @@ -0,0 +1,34 @@ +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterOnOffLight : public MatterEndPoint { +public: + MatterOnOffLight(); + ~MatterOnOffLight(); + virtual bool begin(bool initialState = false); // default initial state is off + void end(); // this will just stop processing Light Matter events + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current light state + bool toggle(); // returns true if successful + + operator bool(); // returns current light state + void operator=(bool state); // turns light on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // User Callback for whenever the Light state is changed by the Matter Controller + using EndPointCB = std::function; + void onChangeOnOff(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + bool state = false; // default initial state is off, but it can be changed by begin(bool) + EndPointCB _onChangeCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From f1f0e4d4f302f10c663beac581bda7bdb8039270 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 21 Oct 2024 14:43:54 -0300 Subject: [PATCH 049/179] Update MatterOnOffLight.ino --- .../Matter/examples/MatterOnOffLight/MatterOnOffLight.ino | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 64981b23a66..736e033e3d2 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -37,9 +37,8 @@ bool setLightOnOff(bool state) { } // WiFi is manually set and started - -const char *ssid = "Apartment B15"; // Change this to your WiFi SSID -const char *password = "flat-pony-body"; // Change this to your WiFi password +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password void setup() { // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch From 0045cfa658a4cbcbb800462b9e986966c32ed198 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 21 Oct 2024 19:23:28 -0300 Subject: [PATCH 050/179] fix(matter): change place of wifi credentials in code --- .../Matter/examples/MatterOnOffLight/MatterOnOffLight.ino | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 736e033e3d2..751bcb3d99e 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -22,6 +22,10 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE // set your board USER BUTTON pin here const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // Matter Protocol Endpoint Callback bool setLightOnOff(bool state) { Serial.printf("User Callback :: New Light State = %s\r\n", state ? "ON" : "OFF"); @@ -36,10 +40,6 @@ bool setLightOnOff(bool state) { return true; } -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - void setup() { // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch pinMode(buttonPin, INPUT_PULLUP); From 7a33a9eeffd9ff69aaad72aead4d79d532cc1235 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 21 Oct 2024 19:25:20 -0300 Subject: [PATCH 051/179] fix(matter): change the place of wifi credentials in the code --- .../MatterComposedLights/MatterComposedLights.ino | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino index 63f154d4492..5d4acb557f5 100644 --- a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino +++ b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino @@ -9,6 +9,10 @@ MatterOnOffLight OnOffLight1; MatterOnOffLight OnOffLight2; MatterOnOffLight OnOffLight3; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // Matter Protocol Endpoint Callback for each Light Accessory bool setLightOnOff1(bool state) { Serial.printf("CB-Light1 changed state to: %s\r\n", state ? "ON" : "OFF"); @@ -25,11 +29,6 @@ bool setLightOnOff3(bool state) { return true; } -// WiFi is manually set and started - -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - void setup() { Serial.begin(115200); while (!Serial) { From 8ac076c44c45a80b9f02ed197340241d6894fd41 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 21 Oct 2024 19:26:34 -0300 Subject: [PATCH 052/179] fix(matter): empty line removing - style --- .../examples/MatterCommissionTest/MatterCommissionTest.ino | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino index a9afb0c4484..48ec0355092 100644 --- a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino +++ b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino @@ -8,7 +8,6 @@ MatterOnOffLight OnOffLight; // WiFi is manually set and started - const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password From 20a28b58bc3fd5ff613e2860d65e0953446f264b Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 22 Oct 2024 12:13:04 +0300 Subject: [PATCH 053/179] fix(net): Do not use netif_index_to_name Causes error on recent IDF builds --- cores/esp32/IPAddress.cpp | 14 +++++++------- libraries/Network/src/NetworkInterface.cpp | 8 ++------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/cores/esp32/IPAddress.cpp b/cores/esp32/IPAddress.cpp index b4fc4c3f7e0..74fabaf0f9c 100644 --- a/cores/esp32/IPAddress.cpp +++ b/cores/esp32/IPAddress.cpp @@ -344,13 +344,13 @@ size_t IPAddress::printTo(Print &p, bool includeZone) const { n += p.print(':'); } } - // add a zone if zone-id is non-zero - if (_zone > 0 && includeZone) { - n += p.print('%'); - char if_name[NETIF_NAMESIZE]; - netif_index_to_name(_zone, if_name); - n += p.print(if_name); - } + // add a zone if zone-id is non-zero (causes exception on recent IDF builds) + // if (_zone > 0 && includeZone) { + // n += p.print('%'); + // char if_name[NETIF_NAMESIZE]; + // netif_index_to_name(_zone, if_name); + // n += p.print(if_name); + // } return n; } diff --git a/libraries/Network/src/NetworkInterface.cpp b/libraries/Network/src/NetworkInterface.cpp index f4bb1d48392..e699d609ca1 100644 --- a/libraries/Network/src/NetworkInterface.cpp +++ b/libraries/Network/src/NetworkInterface.cpp @@ -115,14 +115,10 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void *event_data) { setStatusBits(ESP_NETIF_HAS_LOCAL_IP6_BIT); } #if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_VERBOSE - char if_name[NETIF_NAMESIZE] = { - 0, - }; - netif_index_to_name(event->ip6_info.ip.zone, if_name); static const char *addr_types[] = {"UNKNOWN", "GLOBAL", "LINK_LOCAL", "SITE_LOCAL", "UNIQUE_LOCAL", "IPV4_MAPPED_IPV6"}; log_v( - "IF %s Got IPv6: Interface: %d, IP Index: %d, Type: %s, Zone: %d (%s), Address: " IPV6STR, desc(), _interface_id, event->ip_index, addr_types[addr_type], - event->ip6_info.ip.zone, if_name, IPV62STR(event->ip6_info.ip) + "IF %s Got IPv6: Interface: %d, IP Index: %d, Type: %s, Zone: %d, Address: " IPV6STR, desc(), _interface_id, event->ip_index, addr_types[addr_type], + event->ip6_info.ip.zone, IPV62STR(event->ip6_info.ip) ); #endif memcpy(&arduino_event.event_info.got_ip6, event_data, sizeof(ip_event_got_ip6_t)); From 774201ade36955bad468d616170006c8dbdf747f Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 22 Oct 2024 15:19:24 +0300 Subject: [PATCH 054/179] fix(build): Require main component to include all components --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e552299b8aa..5a8955248ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -312,7 +312,7 @@ endforeach() set(includedirs variants/${CONFIG_ARDUINO_VARIANT}/ cores/esp32/ ${ARDUINO_LIBRARIES_INCLUDEDIRS}) set(srcs ${CORE_SRCS} ${ARDUINO_LIBRARIES_SRCS}) set(priv_includes cores/esp32/libb64) -set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) +set(requires main spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support bt esp_hid usb esp_psram ${ARDUINO_LIBRARIES_REQUIRES}) if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThread) From 16314664269019a57665d221a39e655190224e06 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Tue, 22 Oct 2024 15:55:37 +0300 Subject: [PATCH 055/179] fix(build): Update required components and menu --- CMakeLists.txt | 8 +++++++- Kconfig.projbuild | 30 ++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a8955248ad..57220990c1f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -312,7 +312,7 @@ endforeach() set(includedirs variants/${CONFIG_ARDUINO_VARIANT}/ cores/esp32/ ${ARDUINO_LIBRARIES_INCLUDEDIRS}) set(srcs ${CORE_SRCS} ${ARDUINO_LIBRARIES_SRCS}) set(priv_includes cores/esp32/libb64) -set(requires main spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) +set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support bt esp_hid usb esp_psram ${ARDUINO_LIBRARIES_REQUIRES}) if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThread) @@ -372,3 +372,9 @@ endif() if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ArduinoOTA) maybe_add_component(esp_https_ota) endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_ESP_SR) + maybe_add_component(espressif__esp_sr) +endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_Matter) + maybe_add_component(espressif__esp_matter) +endif() diff --git a/Kconfig.projbuild b/Kconfig.projbuild index 2085a11ea7d..9966463f8c1 100644 --- a/Kconfig.projbuild +++ b/Kconfig.projbuild @@ -266,6 +266,11 @@ config ARDUINO_SELECTIVE_Wire depends on ARDUINO_SELECTIVE_COMPILATION default y +config ARDUINO_SELECTIVE_ESP_SR + bool "Enable ESP-SR" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + config ARDUINO_SELECTIVE_EEPROM bool "Enable EEPROM" depends on ARDUINO_SELECTIVE_COMPILATION @@ -286,6 +291,11 @@ config ARDUINO_SELECTIVE_Update depends on ARDUINO_SELECTIVE_COMPILATION default y +config ARDUINO_SELECTIVE_Zigbee + bool "Enable Zigbee" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + config ARDUINO_SELECTIVE_FS bool "Enable FS" depends on ARDUINO_SELECTIVE_COMPILATION @@ -358,6 +368,11 @@ config ARDUINO_SELECTIVE_HTTPClient select ARDUINO_SELECTIVE_NetworkClientSecure default y +config ARDUINO_SELECTIVE_Matter + bool "Enable Matter" + depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network + default y + config ARDUINO_SELECTIVE_NetBIOS bool "Enable NetBIOS" depends on ARDUINO_SELECTIVE_COMPILATION && ARDUINO_SELECTIVE_Network @@ -399,4 +414,19 @@ config ARDUINO_SELECTIVE_SimpleBLE depends on ARDUINO_SELECTIVE_COMPILATION default y +config ARDUINO_SELECTIVE_RainMaker + bool "Enable RainMaker" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + +config ARDUINO_SELECTIVE_OpenThread + bool "Enable OpenThread" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + +config ARDUINO_SELECTIVE_Insights + bool "Enable Insights" + depends on ARDUINO_SELECTIVE_COMPILATION + default y + endmenu From aefe8a55d35469a8d8e7022971c89627dc6a1015 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 22 Oct 2024 17:40:11 +0300 Subject: [PATCH 056/179] IDF release/v5.3 59550599 (#10498) --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index dc32ddae953..b1c7e23734c 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-707d097b" + "version": "idf-release_v5.3-59550599" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-707d097b", + "version": "idf-release_v5.3-59550599", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-707d097b.zip", - "checksum": "SHA-256:e09d25302eeb1d0e40001280c8fb17e87974496046b929536bb56a50007aa0eb", - "size": "343601720" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", + "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", + "size": "343729890" } ] }, From 0eee5c4a13c6808faef0c9476073d422ed326db4 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 22 Oct 2024 20:17:40 +0300 Subject: [PATCH 057/179] fix(arduino): Move extra_flags to flags (#10493) This will help external library developers --- platform.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/platform.txt b/platform.txt index c97c374e75d..00052ec807e 100644 --- a/platform.txt +++ b/platform.txt @@ -50,10 +50,10 @@ compiler.common_werror_flags=-Werror=return-type # Compile Flags compiler.cpreprocessor.flags="@{compiler.sdk.path}/flags/defines" "-I{build.source.path}" -iprefix "{compiler.sdk.path}/include/" "@{compiler.sdk.path}/flags/includes" "-I{compiler.sdk.path}/{build.memory_type}/include" -compiler.c.flags="@{compiler.sdk.path}/flags/c_flags" {compiler.warning_flags} {compiler.optimization_flags} {compiler.common_werror_flags} -compiler.cpp.flags="@{compiler.sdk.path}/flags/cpp_flags" {compiler.warning_flags} {compiler.optimization_flags} {compiler.common_werror_flags} -compiler.S.flags="@{compiler.sdk.path}/flags/S_flags" {compiler.warning_flags} {compiler.optimization_flags} -compiler.c.elf.flags="@{compiler.sdk.path}/flags/ld_flags" "@{compiler.sdk.path}/flags/ld_scripts" +compiler.c.flags=-MMD -c "@{compiler.sdk.path}/flags/c_flags" {compiler.warning_flags} {compiler.optimization_flags} {compiler.common_werror_flags} +compiler.cpp.flags=-MMD -c "@{compiler.sdk.path}/flags/cpp_flags" {compiler.warning_flags} {compiler.optimization_flags} {compiler.common_werror_flags} +compiler.S.flags=-MMD -c -x assembler-with-cpp "@{compiler.sdk.path}/flags/S_flags" {compiler.warning_flags} {compiler.optimization_flags} +compiler.c.elf.flags="-Wl,--Map={build.path}/{build.project_name}.map" "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-L{compiler.sdk.path}/{build.memory_type}" "-Wl,--wrap=esp_panic_handler" "@{compiler.sdk.path}/flags/ld_flags" "@{compiler.sdk.path}/flags/ld_scripts" compiler.c.elf.libs="@{compiler.sdk.path}/flags/ld_libs" compiler.ar.flags=cr @@ -67,10 +67,10 @@ compiler.ar.cmd={compiler.prefix}gcc-ar compiler.size.cmd={compiler.prefix}size # These can be overridden in platform.local.txt -compiler.c.extra_flags=-MMD -c -compiler.cpp.extra_flags=-MMD -c -compiler.S.extra_flags=-MMD -c -x assembler-with-cpp -compiler.c.elf.extra_flags="-Wl,--Map={build.path}/{build.project_name}.map" "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-L{compiler.sdk.path}/{build.memory_type}" "-Wl,--wrap=esp_panic_handler" +compiler.c.extra_flags= +compiler.cpp.extra_flags= +compiler.S.extra_flags= +compiler.c.elf.extra_flags= compiler.ar.extra_flags= compiler.objcopy.eep.extra_flags= compiler.elf2hex.extra_flags= From dc1a49e6f0c51eeae0179e909cc9cc3afa82d802 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 23 Oct 2024 02:04:03 +0300 Subject: [PATCH 058/179] IDF release/v5.3 (#10503) * fix(psram): Do not disable PSRAM when used as component Information: https://github.com/espressif/arduino-esp32/issues/10500 * IDF release/v5.3 59550599 --- cores/esp32/esp32-hal-psram.h | 3 ++- package/package_esp32_index.template.json | 32 +++++++++++------------ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/cores/esp32/esp32-hal-psram.h b/cores/esp32/esp32-hal-psram.h index e82af1342c2..69c1c625157 100644 --- a/cores/esp32/esp32-hal-psram.h +++ b/cores/esp32/esp32-hal-psram.h @@ -21,7 +21,8 @@ extern "C" { #include "sdkconfig.h" -#ifndef BOARD_HAS_PSRAM +// Clear flags in Arduino IDE when PSRAM is disabled +#if defined(ESP32_ARDUINO_LIB_BUILDER) && !defined(BOARD_HAS_PSRAM) #ifdef CONFIG_SPIRAM_SUPPORT #undef CONFIG_SPIRAM_SUPPORT #endif diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index b1c7e23734c..ad941e841f6 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d8edd2fcf990c5af4627c9446efd8c5badb34cfcccfcc3b63bb117d1da77bfae", - "size": "343729890" + "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", + "size": "343730097" } ] }, From 6e88445ba90e2eb8bdfb14f128b1d1773c0bdabb Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 23 Oct 2024 15:30:30 +0300 Subject: [PATCH 059/179] fix(i2s): Use separate variables when reading and writing (#10509) --- libraries/ESP_I2S/src/ESP_I2S.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/libraries/ESP_I2S/src/ESP_I2S.cpp b/libraries/ESP_I2S/src/ESP_I2S.cpp index 395c7b587ed..f4bd92b52d5 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.cpp +++ b/libraries/ESP_I2S/src/ESP_I2S.cpp @@ -806,17 +806,19 @@ bool I2SClass::configureRX(uint32_t rate, i2s_data_bit_width_t bits_cfg, i2s_slo size_t I2SClass::readBytes(char *buffer, size_t size) { size_t bytes_read = 0; + size_t bytes_to_read = 0; size_t total_size = 0; last_error = ESP_FAIL; if (rx_chan == NULL) { return total_size; } while (total_size < size) { - bytes_read = size - total_size; - if (rx_transform_buf != NULL && bytes_read > I2S_READ_CHUNK_SIZE) { - bytes_read = I2S_READ_CHUNK_SIZE; + bytes_read = 0; + bytes_to_read = size - total_size; + if (rx_transform_buf != NULL && bytes_to_read > I2S_READ_CHUNK_SIZE) { + bytes_to_read = I2S_READ_CHUNK_SIZE; } - I2S_ERROR_CHECK_RETURN(rx_fn(rx_chan, rx_transform_buf, (char *)(buffer + total_size), bytes_read, &bytes_read, _timeout), 0); + I2S_ERROR_CHECK_RETURN(rx_fn(rx_chan, rx_transform_buf, (char *)(buffer + total_size), bytes_to_read, &bytes_read, _timeout), 0); total_size += bytes_read; } return total_size; @@ -825,13 +827,15 @@ size_t I2SClass::readBytes(char *buffer, size_t size) { size_t I2SClass::write(const uint8_t *buffer, size_t size) { size_t written = 0; size_t bytes_sent = 0; + size_t bytes_to_send = 0; last_error = ESP_FAIL; if (tx_chan == NULL) { return written; } while (written < size) { - bytes_sent = size - written; - esp_err_t err = i2s_channel_write(tx_chan, (char *)(buffer + written), bytes_sent, &bytes_sent, _timeout); + bytes_sent = 0; + bytes_to_send = size - written; + esp_err_t err = i2s_channel_write(tx_chan, (char *)(buffer + written), bytes_to_send, &bytes_sent, _timeout); setWriteError(err); I2S_ERROR_CHECK_RETURN(err, written); written += bytes_sent; From 6dfd95898387bf10eb6348a22c2499073efb9f16 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Thu, 24 Oct 2024 00:46:01 +0300 Subject: [PATCH 060/179] fix(eth): Set default clock in pin value to zero (#10513) When Arduino is used as component, `CONFIG_ETH_RMII_CLK_IN_GPIO` might not be defined, so we set it to const `0` to clear the issue. --- libraries/Ethernet/src/ETH.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index e04174fd490..e3f2197221c 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -210,7 +210,7 @@ bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, i #if CONFIG_IDF_TARGET_ESP32 #undef DEFAULT_RMII_CLK_GPIO -#define DEFAULT_RMII_CLK_GPIO (emac_rmii_clock_gpio_t)(CONFIG_ETH_RMII_CLK_IN_GPIO) +#define DEFAULT_RMII_CLK_GPIO (emac_rmii_clock_gpio_t)(0) #endif eth_esp32_emac_config_t mac_config = ETH_EMAC_DEFAULT_CONFIG(); From a3ee37669eaecbff6ef7180c675bf83cd94c4dc6 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 24 Oct 2024 10:56:45 -0300 Subject: [PATCH 061/179] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1ee43fa0537..5b1b1865efa 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ Here are the ESP32 series supported by the Arduino-ESP32 project: | ESP32-S3 | Yes | Yes | [ESP32-S3](https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf) | | ESP32-C6 | Yes | Yes | [ESP32-C6](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) | | ESP32-H2 | Yes | Yes | [ESP32-H2](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) | -| ESP32-P4 | No | No | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | +| ESP32-P4 | No | Yes | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | > [!NOTE] > ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF From 9ac705e5f2889a9cb425e8d24bb90ba4b1e092a2 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Fri, 25 Oct 2024 14:53:35 +0300 Subject: [PATCH 062/179] IDF release/v5.3 a0f798cf (#10522) --- package/package_esp32_index.template.json | 128 +++++++++++----------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index ad941e841f6..aafaa211eba 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-59550599" + "version": "idf-release_v5.3-a0f798cf" }, { "packager": "esp32", @@ -67,7 +67,7 @@ { "packager": "esp32", "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240821" + "version": "v0.12.0-esp32-20241016" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-59550599", + "version": "idf-release_v5.3-a0f798cf", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-59550599.zip", - "checksum": "SHA-256:d2f18131dc7220c2d89ece7f8594fa3866523f8183612af37112ed0177f41af7", - "size": "343730097" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", + "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", + "size": "344062217" } ] }, @@ -405,56 +405,56 @@ }, { "name": "openocd-esp32", - "version": "v0.12.0-esp32-20240821", + "version": "v0.12.0-esp32-20241016", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-amd64-0.12.0-esp32-20240821.tar.gz", - "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20240821.tar.gz", - "checksum": "SHA-256:f8c68541fa38307bc0c0763b7e1e3fe4e943d5d45da07d817a73b492e103b652", - "size": "2373094" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-linux-amd64-0.12.0-esp32-20241016.tar.gz", + "archiveFileName": "openocd-esp32-linux-amd64-0.12.0-esp32-20241016.tar.gz", + "checksum": "SHA-256:e82b0f036dc99244bead5f09a86e91bb2365cbcd1122ac68261e5647942485df", + "size": "2398717" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-arm64-0.12.0-esp32-20240821.tar.gz", - "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20240821.tar.gz", - "checksum": "SHA-256:4d6e263d84e447354dc685848557d6c284dda7fe007ee451f729a7edfa7baad7", - "size": "2251272" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-linux-arm64-0.12.0-esp32-20241016.tar.gz", + "archiveFileName": "openocd-esp32-linux-arm64-0.12.0-esp32-20241016.tar.gz", + "checksum": "SHA-256:8f8daf5bd22ec5d2fa9257b0862ec33da18ee677e023fb9a9eb17f74ce208c76", + "size": "2271584" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-linux-armel-0.12.0-esp32-20240821.tar.gz", - "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20240821.tar.gz", - "checksum": "SHA-256:9d45679f2c4cf450d5e2350047cf57bb76dde2487d30cebce0a72c9173b5c45b", - "size": "2390074" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-linux-armel-0.12.0-esp32-20241016.tar.gz", + "archiveFileName": "openocd-esp32-linux-armel-0.12.0-esp32-20241016.tar.gz", + "checksum": "SHA-256:bc9c020ecf20e2000f76cffa44305fd5bc44d2e688ea78cce423399d33f19767", + "size": "2414206" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-macos-0.12.0-esp32-20240821.tar.gz", - "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20240821.tar.gz", - "checksum": "SHA-256:565c8fabc5f19a6e7a0864a294d74b307eec30b9291d16d3fc90e273f0330cb4", - "size": "2485320" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-macos-0.12.0-esp32-20241016.tar.gz", + "archiveFileName": "openocd-esp32-macos-0.12.0-esp32-20241016.tar.gz", + "checksum": "SHA-256:02a2dffe801a2d005fa9e614d80ff8173395b2cb0b5d3118d0229d094a9946a7", + "size": "2508089" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-macos-arm64-0.12.0-esp32-20240821.tar.gz", - "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20240821.tar.gz", - "checksum": "SHA-256:68c5c7cf3d15b9810939a5edabc6ff2c9f4fc32262de91fc292a180bc5cc0637", - "size": "2530336" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-macos-arm64-0.12.0-esp32-20241016.tar.gz", + "archiveFileName": "openocd-esp32-macos-arm64-0.12.0-esp32-20241016.tar.gz", + "checksum": "SHA-256:c382f9e884d6565cb6089bff5f200f4810994667d885f062c3d3c5625a0fa9d6", + "size": "2552569" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-win32-0.12.0-esp32-20240821.zip", - "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20240821.zip", - "checksum": "SHA-256:463fc2903ddaf03f86ff50836c5c63cc696550b0446140159eddfd2e85570c5d", - "size": "2916409" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-win32-0.12.0-esp32-20241016.zip", + "archiveFileName": "openocd-esp32-win32-0.12.0-esp32-20241016.zip", + "checksum": "SHA-256:3b5d615e0a72cc771a45dd469031312d5881c01d7b6bc9edb29b8b6bda8c2e90", + "size": "2946244" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20240821/openocd-esp32-win64-0.12.0-esp32-20240821.zip", - "archiveFileName": "openocd-esp32-win64-0.12.0-esp32-20240821.zip", - "checksum": "SHA-256:550f57369f1f1f6cc600b5dffa3378fd6164d8ea8db7c567cf41091771f090cb", - "size": "2916408" + "url": "https://github.com/espressif/openocd-esp32/releases/download/v0.12.0-esp32-20241016/openocd-esp32-win64-0.12.0-esp32-20241016.zip", + "archiveFileName": "openocd-esp32-win64-0.12.0-esp32-20241016.zip", + "checksum": "SHA-256:5e7b2fd1947d3a8625f6a11db7a2340cf2f41ff4c61284c022c7d7c32b18780a", + "size": "2946244" } ] }, From 38a4c29fedf3c0f681ce8850c107c9d0011a80ec Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Fri, 25 Oct 2024 14:57:21 +0300 Subject: [PATCH 063/179] feature(rtos): Add Tasks status print function (#10515) * feature(rtos): Add Tasks status print function * fix(cmake): Add the new cpp file to CMakeLists * fix(stats): Adjust size of Load column * fix(format): Fix print of runtime formatting * fix(stats): Add license, usage note and C++ guards * fix(stats): Fix formatting and variable names * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 1 + cores/esp32/Arduino.h | 1 + cores/esp32/freertos_stats.cpp | 111 +++++++++++++++++++++++++++++++++ cores/esp32/freertos_stats.h | 28 +++++++++ 4 files changed, 141 insertions(+) create mode 100644 cores/esp32/freertos_stats.cpp create mode 100644 cores/esp32/freertos_stats.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9964d85abd0..591b0b31568 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -49,6 +49,7 @@ set(CORE_SRCS cores/esp32/esp32-hal-uart.c cores/esp32/esp32-hal-rmt.c cores/esp32/Esp.cpp + cores/esp32/freertos_stats.cpp cores/esp32/FunctionalInterrupt.cpp cores/esp32/HardwareSerial.cpp cores/esp32/HEXBuilder.cpp diff --git a/cores/esp32/Arduino.h b/cores/esp32/Arduino.h index 2b115505cff..ab7e497dcf6 100644 --- a/cores/esp32/Arduino.h +++ b/cores/esp32/Arduino.h @@ -199,6 +199,7 @@ void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val); #include "Udp.h" #include "HardwareSerial.h" #include "Esp.h" +#include "freertos_stats.h" // Use float-compatible stl abs() and round(), we don't use Arduino macros to avoid issues with the C++ libraries using std::abs; diff --git a/cores/esp32/freertos_stats.cpp b/cores/esp32/freertos_stats.cpp new file mode 100644 index 00000000000..50a98bf502b --- /dev/null +++ b/cores/esp32/freertos_stats.cpp @@ -0,0 +1,111 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "freertos_stats.h" +#include "sdkconfig.h" + +#if CONFIG_FREERTOS_USE_TRACE_FACILITY +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/portable.h" +#endif /* CONFIG_FREERTOS_USE_TRACE_FACILITY */ + +void printRunningTasks(Print &printer) { +#if CONFIG_FREERTOS_USE_TRACE_FACILITY +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS +#define FREERTOS_TASK_NUMBER_MAX_NUM 256 // RunTime stats for how many Tasks to be stored + static configRUN_TIME_COUNTER_TYPE ulRunTimeCounters[FREERTOS_TASK_NUMBER_MAX_NUM]; + static configRUN_TIME_COUNTER_TYPE ulLastRunTime = 0; + configRUN_TIME_COUNTER_TYPE ulCurrentRunTime = 0, ulTaskRunTime = 0; +#endif + configRUN_TIME_COUNTER_TYPE ulTotalRunTime = 0; + TaskStatus_t *pxTaskStatusArray = NULL; + volatile UBaseType_t uxArraySize = 0, x = 0; + const char *taskStates[] = {"Running", "Ready", "Blocked", "Suspended", "Deleted", "Invalid"}; + + // Take a snapshot of the number of tasks in case it changes while this function is executing. + uxArraySize = uxTaskGetNumberOfTasks(); + + // Allocate a TaskStatus_t structure for each task. + pxTaskStatusArray = (TaskStatus_t *)pvPortMalloc(uxArraySize * sizeof(TaskStatus_t)); + + if (pxTaskStatusArray != NULL) { + // Generate raw status information about each task. + uxArraySize = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &ulTotalRunTime); + +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + ulCurrentRunTime = ulTotalRunTime - ulLastRunTime; + ulLastRunTime = ulTotalRunTime; +#endif + printer.printf( + "Tasks: %u" +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + ", Runtime: %lus, Period: %luus" +#endif + "\n", + uxArraySize +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + , + ulTotalRunTime / 1000000, ulCurrentRunTime +#endif + ); + printer.printf("Num\t Name" +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + "\tLoad" +#endif + "\tPrio\t Free" +#if CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID + "\tCore" +#endif + "\tState\r\n"); + for (x = 0; x < uxArraySize; x++) { +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + if (pxTaskStatusArray[x].xTaskNumber < FREERTOS_TASK_NUMBER_MAX_NUM) { + ulTaskRunTime = (pxTaskStatusArray[x].ulRunTimeCounter - ulRunTimeCounters[pxTaskStatusArray[x].xTaskNumber]); + ulRunTimeCounters[pxTaskStatusArray[x].xTaskNumber] = pxTaskStatusArray[x].ulRunTimeCounter; + ulTaskRunTime = (ulTaskRunTime * 100) / ulCurrentRunTime; // in percentage + } else { + ulTaskRunTime = 0; + } +#endif + printer.printf( + "%3u\t%16s" +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + "\t%3lu%%" +#endif + "\t%4u\t%5lu" +#if CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID + "\t%4c" +#endif + "\t%s\r\n", + pxTaskStatusArray[x].xTaskNumber, pxTaskStatusArray[x].pcTaskName, +#if CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS + ulTaskRunTime, +#endif + pxTaskStatusArray[x].uxCurrentPriority, pxTaskStatusArray[x].usStackHighWaterMark, +#if CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID + (pxTaskStatusArray[x].xCoreID == tskNO_AFFINITY) ? '*' : ('0' + pxTaskStatusArray[x].xCoreID), +#endif + taskStates[pxTaskStatusArray[x].eCurrentState] + ); + } + + // The array is no longer needed, free the memory it consumes. + vPortFree(pxTaskStatusArray); + printer.println(); + } +#else + printer.println("FreeRTOS trace facility is not enabled."); +#endif /* CONFIG_FREERTOS_USE_TRACE_FACILITY */ +} diff --git a/cores/esp32/freertos_stats.h b/cores/esp32/freertos_stats.h new file mode 100644 index 00000000000..ea9e1a55a21 --- /dev/null +++ b/cores/esp32/freertos_stats.h @@ -0,0 +1,28 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once + +#ifdef __cplusplus + +#include "Print.h" + +/* + * Executing this function will cause interrupts and + * the scheduler to be blocked for some time. + * Please use only for debugging purposes. + */ +void printRunningTasks(Print &printer); + +#endif From 9aeb1ba548636070495c132f7e7e82df78387c34 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Fri, 25 Oct 2024 09:07:37 -0300 Subject: [PATCH 064/179] ESP32-P4 UART Pin Definitions (#10521) * feat(uart): allow pins_arduino.h to define esp32-p4 uart pins ESP32-P4 has UART default pins only for UART0 and UART1. This PR allows the board definition from pins_arduino.h to define RX2 ... RX4 and TX2 ... TX4 if necessary. It also solves the issue of begin(baud) with no pins for UART2...4 by just sending a error message and returning. * feat(uart): removes the uart2 pin definitions - not existant * fix(uart): solves the case when uart has already been initialized * ci(pre-commit): Apply automatic fixes * fix(ci): uart definition for esp32-p4 uart2 rx,tx pins --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/HardwareSerial.cpp | 42 ++++++++++++++++++++++++++++++++++ cores/esp32/HardwareSerial.h | 4 ---- tests/validation/uart/uart.ino | 8 +++++++ 3 files changed, 50 insertions(+), 4 deletions(-) diff --git a/cores/esp32/HardwareSerial.cpp b/cores/esp32/HardwareSerial.cpp index a6a7573f6e3..fb93dad1c47 100644 --- a/cores/esp32/HardwareSerial.cpp +++ b/cores/esp32/HardwareSerial.cpp @@ -313,6 +313,11 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in // map logical pins to GPIO numbers rxPin = digitalPinToGPIONumber(rxPin); txPin = digitalPinToGPIONumber(txPin); + int8_t _rxPin = uart_get_RxPin(_uart_nr); + int8_t _txPin = uart_get_TxPin(_uart_nr); + + rxPin = rxPin < 0 ? _rxPin : rxPin; + txPin = txPin < 0 ? _txPin : txPin; HSERIAL_MUTEX_LOCK(); // First Time or after end() --> set default Pins @@ -341,14 +346,51 @@ void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, in case UART_NUM_2: if (rxPin < 0 && txPin < 0) { // do not change RX2/TX2 if it has already been set before +#ifdef RX2 rxPin = _rxPin < 0 ? (int8_t)RX2 : _rxPin; +#endif +#ifdef TX2 txPin = _txPin < 0 ? (int8_t)TX2 : _txPin; +#endif + } + break; +#endif +#if SOC_UART_HP_NUM > 3 // may save some flash bytes... + case UART_NUM_3: + if (rxPin < 0 && txPin < 0) { + // do not change RX2/TX2 if it has already been set before +#ifdef RX3 + rxPin = _rxPin < 0 ? (int8_t)RX3 : _rxPin; +#endif +#ifdef TX3 + txPin = _txPin < 0 ? (int8_t)TX3 : _txPin; +#endif + } + break; +#endif +#if SOC_UART_HP_NUM > 4 // may save some flash bytes... + case UART_NUM_4: + if (rxPin < 0 && txPin < 0) { + // do not change RX2/TX2 if it has already been set before +#ifdef RX4 + rxPin = _rxPin < 0 ? (int8_t)RX4 : _rxPin; +#endif +#ifdef TX4 + txPin = _txPin < 0 ? (int8_t)TX4 : _txPin; +#endif } break; #endif } } + // if no RX/TX pins are defined, it will not start the UART driver + if (rxPin < 0 && txPin < 0) { + log_e("No RX/TX pins defined. Please set RX/TX pins."); + HSERIAL_MUTEX_UNLOCK(); + return; + } + // IDF UART driver keeps Pin setting on restarting. Negative Pin number will keep it unmodified. // it will detach previous UART attached pins diff --git a/cores/esp32/HardwareSerial.h b/cores/esp32/HardwareSerial.h index 8eb7f2c91a6..a33d5def34d 100644 --- a/cores/esp32/HardwareSerial.h +++ b/cores/esp32/HardwareSerial.h @@ -200,8 +200,6 @@ typedef enum { #define RX2 (gpio_num_t)4 #elif CONFIG_IDF_TARGET_ESP32S3 #define RX2 (gpio_num_t)19 -#elif CONFIG_IDF_TARGET_ESP32P4 -#define RX2 (gpio_num_t)15 #endif #endif @@ -210,8 +208,6 @@ typedef enum { #define TX2 (gpio_num_t)25 #elif CONFIG_IDF_TARGET_ESP32S3 #define TX2 (gpio_num_t)20 -#elif CONFIG_IDF_TARGET_ESP32P4 -#define TX2 (gpio_num_t)14 #endif #endif #endif /* SOC_UART_HP_NUM > 2 */ diff --git a/tests/validation/uart/uart.ino b/tests/validation/uart/uart.ino index e5fa0a8285f..01c449867db 100644 --- a/tests/validation/uart/uart.ino +++ b/tests/validation/uart/uart.ino @@ -52,6 +52,14 @@ #define NEW_TX1 10 #endif +// ESP32-P4 has no UART pin definition for RX2, TX2, RX3, TX3, RX4, TX4 +#ifndef RX2 +#define RX2 RX1 +#endif +#ifndef TX2 +#define TX2 RX1 +#endif + /* Utility global variables */ static String recv_msg = ""; From a805e0696c6564d356b2a1dc616af08394d082d4 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Fri, 25 Oct 2024 14:49:05 -0300 Subject: [PATCH 065/179] feat(esptool): Update esptool to v4.8.1 (#10524) * feat(esptool): Update esptool to v4.8.1 * fix(archives): Fix checksums --- package/package_esp32_index.template.json | 44 +++++++++++------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index aafaa211eba..9681cf54c98 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -72,7 +72,7 @@ { "packager": "esp32", "name": "esptool_py", - "version": "4.6" + "version": "4.8.1" }, { "packager": "esp32", @@ -460,42 +460,42 @@ }, { "name": "esptool_py", - "version": "4.8.0", + "version": "4.8.1", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-amd64.zip", - "archiveFileName": "esptool-v4.8.0-linux-amd64.zip", - "checksum": "SHA-256:e637adc204b74b980013e89dafce6e056401ec26c94e205b0158075a836c56c6", - "size": "64617780" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-amd64.tar.gz", + "archiveFileName": "esptool-v4.8.1-linux-amd64.tar.gz", + "checksum": "SHA-256:aaaaa25e1c64442ae93604812376783dbc50f34536221b5897456e12f01e1bfd", + "size": "64635657" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-arm64.zip", - "archiveFileName": "esptool-v4.8.0-linux-arm64.zip", - "checksum": "SHA-256:c3a7749bed8d1929b0ad35743cc5557d60ecb81a10ffac28cb55ed1545e0223a", - "size": "54432155" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-arm64.tar.gz", + "archiveFileName": "esptool-v4.8.1-linux-arm64.tar.gz", + "checksum": "SHA-256:76170a9282bdc52fddd75e4498fd6bee55fe19088a34ab363b3aeff800d73f60", + "size": "54449306" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-linux-arm32.zip", - "archiveFileName": "esptool-v4.8.0-linux-arm32.zip", - "checksum": "SHA-256:b781a86b53a17d24e02996c0a7958f9b76f6873fc1cc07c64ab6326e19395570", - "size": "45858426" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-arm32.tar.gz", + "archiveFileName": "esptool-v4.8.1-linux-arm32.tar.gz", + "checksum": "SHA-256:26b842e22a66b3d01e830a4784686a69cfb107d774a4093327ec6bba7bb17794", + "size": "45868720" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-macos.zip", - "archiveFileName": "esptool-v4.8.0-macos.zip", - "checksum": "SHA-256:73bba755d2da15ef18b8b8d8fe37c459d296648efb02d5449a3fc0035930306a", - "size": "29821710" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-macos.tar.gz", + "archiveFileName": "esptool-v4.8.1-macos.tar.gz", + "checksum": "SHA-256:6e1fc5ea04490e849c925c48d5cee590164fcf9b9bd419a7b014c2fb48a13743", + "size": "29828542" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esptool/releases/download/v4.8.0/esptool-v4.8.0-win64.zip", - "archiveFileName": "esptool-v4.8.0-win64.zip", - "checksum": "SHA-256:5575beabfe8c1c1ea7c1a0f1bd42ee97ac3f4c4dae5fc74cda58be0e23016da3", - "size": "33608471" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-win64.zip", + "archiveFileName": "esptool-v4.8.1-win64.zip", + "checksum": "SHA-256:3e97fb990fdd721b923b478eaaa046967c7919dbc9cbd04c445307571177918a", + "size": "33612728" } ] }, From 87ad78d787ebd8cb1638642d6c70d2b335f0be90 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 29 Oct 2024 13:10:20 +0200 Subject: [PATCH 066/179] fix(bm): Board Manager install will fail on Windows (#10533) * fix(bm): Board Manager install will fail on Windows On some Windows installations, Board Manager will fail to install the RC2 core, because it could not find esptool for the given OS. * fix(package): EspTool for Mac is only ARM64 version cc: @lucasssvaz --- package/package_esp32_index.template.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 9681cf54c98..5f05469a185 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -484,12 +484,19 @@ "size": "45868720" }, { - "host": "x86_64-apple-darwin", + "host": "arm64-apple-darwin", "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-macos.tar.gz", "archiveFileName": "esptool-v4.8.1-macos.tar.gz", "checksum": "SHA-256:6e1fc5ea04490e849c925c48d5cee590164fcf9b9bd419a7b014c2fb48a13743", "size": "29828542" }, + { + "host": "i686-mingw32", + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-win64.zip", + "archiveFileName": "esptool-v4.8.1-win64.zip", + "checksum": "SHA-256:3e97fb990fdd721b923b478eaaa046967c7919dbc9cbd04c445307571177918a", + "size": "33612728" + }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-win64.zip", From de93e6e176b63973ee7f334b57924972aa4cc3b7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 22:45:41 +0000 Subject: [PATCH 067/179] change(tools): Push generated binaries to PR --- tools/get.exe | Bin 6943192 -> 7493296 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/get.exe b/tools/get.exe index 5a1d7b8e90bdfc4b62f4342528b68561dfeee102..4a5e209cacf8d7ea8767b1e83ac85ebc8bf2abfc 100644 GIT binary patch delta 1449483 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%0A*6?Mj}h#i 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�|6dSX+%p5wY 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≪ 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≀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 >xAeEcvb#xCPsuWy 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%0DmTpx~Alu~#pDgVJiSzSq)N z-2dFu+v|^q`1Cq{uresn;|GJ39y^CSH zal^81FbP(3sEerQ68G?Nd)R~y?%Vv=%kNo(b^Lz(A9nWaXyo@s)_NP~a8 zH18Rtqj~a8qWRz`q1EEh16Ah4qW`}^%vnE@_Op=x@9xVSwnGVdSIBnP1)u4! zXV!NRHHa^F^D--GpbxWd^p~0SIx*`IF=jF_s{(ZB?SaUwCmF%XH%#hO{eJ_DGvBNF z%Ots4yHTt2>Q>c4h_0LkQihq|= z|0xqMe|lTR%Rlwk`|8Rr4PM4Xew(i3s}Ecy!dnbSIs63Wa6#A7*AL4%kjw;)36-x+ zOi=S8ayDg1f^3UbGn&LPJNkmMf(|UQfz1$`IP1t4ETN8vuZx&g_|Z# zJ|)_lPx+{y4?bUvQw8Vg8Q9`$Yqy^$a_PP$g@afPe;k|n=YRb+W!(Qti|^{ z^rC6=_b!{X=iM~#qdo7&*?-4--p$lL-t%rU`e@F(Ior#4-i`DB?eMbNJxe&e?4w@B zE!|6cde6J*&{Myin;VYrqj*u>&b_9WaXWXfo@{#v9u;9LBBm}Lf=vAbnJT^L|ELJ~ z%5BW`d*)*~&ObWljela){d%kk?K;U6RBf8wIbE1msg~k z_VS8U>s}g>TF~SF_&mJaZY7A+i#?1YW$o@2sY~7TBDEF5IB^QEiqya!Mv)5W?ma^3 zibyQ)JP27{h%8^tmw#~{-l-;r#M%4p|KHBTYkta`|7xxJ^V63eD*x5pkpCL%6|u_G zF#pww<-abn{MSJ2?_ZSv>g30tKlJ%<+I-UVc0T9BjcVu3|39zGCk<-n%_nthC+Gj? z8S_bRcGu^Vo@L!g9e~}qPWk^AQk7+&)VE?LS%0gl2|mu00oTypURJ(b_iFwqj50 zNox;!Y&Vp4mv+0Yc3b(s_h!DyHz9bm?sosb&xX&JH#6UvH*em1^XB}{fL6N>rO^hj ze}>biL~GN7slOlpSLq|ryR$IUAG(Sv`PWRJd~4@m!hbUQ{+A=anve$~^6NSBP2n_l zw1Gma-}!>~?Iukb1DMgk0=0k0^w}(%Ls(09FCp|vE_&A%HzCtAP4JwNqbkk;Ou)|@b+4Gn_& zkAIQq`fiS!f7klb6qD)U-`c%=z+2>|>Bt0E@MsfRC3?`OFAcj7amDTio^K$_O2 z@Nc?9-TXsRTlz!_{)O;;Xy-nc=**zpDk22`wtvs|p|vPO#=nz+5|L_3mKwpomj-O< zC!G9NBA{^7Y)*29yJfgCgSIo$C)C|J(OYR93AgjQ8mAM{s!)ljCo>WILHdqJeS;i3 zuCEIcGaSu=#)jF5{c~zL4t`45(+GQa#BQ0+H=o`xh;rE#f}P=+QE3TZYXhBVz3#^2 z%zq&$Cf)I>_S9LeV@v}MvVD$NnM+&EBC~1KqWpOlf)Ou%#=qni?e)-1G=puTy}l*W z(_Y&%#V6m;MBkPvYp*|;O-VAbdLN`M&2vJ3xJ_gW6QXbbhT0;deo^(S;2IJ%}!1iJCQ=*D@_EtAmgaidEEYY~P_Ut7Zw{pk~l zkx$P;{QE;ik$Y-=iu|FLT7t@+e0lN3k4f7X(t1=ZYWv!0q~*th_^x&#xgA<>$^8-h zqn#~}1QC{Uj-?x6L9V-|0+yC?et%)!J!XEO8Q2nafah!Y&u~sSIH|q8wKt%c!cn|N z>l+x&^{=VC+I@Bf-}8O?3chFg%`5n)FF}NSSUw;10P<)V^7V*(*EEh{v%v5GPw5K8 zJo=$oo9Z!h1JR!lD$JaQjD>nyvt&^W>B!faAwpo!%-*Oh{!MQJ{?Cd`mE995W_i2PtCCfmpx;{6{9TEF+@ z-#^pbJ*2C&o*vRW9}wM3XjN$h(tY1#qWet+?;#DPjF3JnWfaXbn(>h!bE7Xy@A71H zY^EopVxG~trS6P|^Nf~?jGp<4`0?R~688fszXyUuiEc{uDbe6Gw|_=Napao``6xvG z+9X0AsSw<5uB&frWK0(2IhCOXg3auK$_t}BVo)AoR(Pjb}Ayu4G{bqIo((Pr+<^Sz>qZZ)AxujD=i|8 zMQy2`K%{+qj-NaUbu|GQF*eX$cTuTYh6D<2>i#3;o_<3v6_k7F z?Ueehvy{4roA%z6x>6x%w z_P!Er(Y~~uPJfnZdg58huB@eG?{Ud2d|%M^s4rh1Np@HFH&Q&+eRUJjsUkWjAf1yr zoxl5;1i1F~Gm>5D3(0KxxZeDpAaTNUp9A+2llcjI*R-pPQ^W{4{%0EKt9eE{3fvjJ zIi51=jv1X+tqTPREpy<{ZrNh2mg^N#f|hiJTg>CB5r0%j%xxLzd4-D7GFTz$OiK@i zWNcbOJ+aWTwfxK^BiHgZbHBn?q2*I1H4rUtFsc1&IpK+geU6r+OzM8L?B#uic{jOZ zbeA>j`wdXwH^%d3{iU8%@ZLY+MRPa~XtjtWIFe~yD&QhMglSzMUg9vZHB-POK0a(s zggigG(SMyMljS)H^SpUHKQre#p6B*|VV*n|KRR&pjU<<@25BYeYA%-F{Yy+7Xe++b zraO+|JW(P}62)a~jC4H*;|@M|6fd7U;*&7Sx(BB z);>6!l;}O1WFM72snK>d&d0)N%QbN&awPqte7g&9(N7-yENDN zHH=bLOqJ$3zn&&dL}~d97@Z%X4V}L*d7<{Uui7BLRMoJgP08P%0;t`Ps){?7;W(R& zQ)yw}rmCWpgYk2w%Du5Mq&){?@ido=%5AaD1oy@^5j;pcl~uzI#ySZejjiLTrIWnW zZ-2hSSi+(i}mN;G0;`bqC+K;Jj{cUQ*R2J8`Z9MP2o}nYub#6@R+%~IHEK{G!qfc8pF?5 z8XXM?+v)s?nNeCtt29c)6FCbCR0GyBzJJy*GbY3F&-7F0W;yz`(V;|MbF5d(=U4}% zC7gsp;>FEAv#W;5puOE>uiMq%PLbwSC8OnHdbZy)6(QZ`X{}OeRzhq>4L? zH%yY4-Wtr);r`b*DAGYp`Rr&eik;ngj(-N&QbajMFh1S;Rb+d6s_IZ%hQpOy{)Ixd zuswCd!C2h;Y`;Z2g+ZTS)k=UM3V+qz$dG54f>Vm07cP8Dd^@~aXhxP$v0@;^!U-9! zMv~k-a1ScF)I|`st!rBP}LKpEgx$GIR#PL ziWdWji*2gAjP3kW5HY!8!Pu%pKPQ#{RblU~UHA2xLCDd2Blv-UlYd;ep`_KOb-bN$ z($)V;V#qXpb32~L_>Sv=t~_SN8Ib&IflRt$yTR2Si*@a^J&L%$0J;Aa1hvkl^8|PX zNo(7IY>`V>vKOzqzKBKhe#RrTCm_Imb9YTF-^j9dIQ1+0m%d5eAmFX5ScUXy9sfE^ z#!HoY7C*@C<$X)IYJcr);`F~bYaA_->HEkduva?>%<`sNU;`4lz`6*5kq}}?2yv1z z>kDxTl2s$WS=kMzM=~ag>5-oTaE0JS81Idz6=^!owW(cg9q+sQ=e_Y>oBLlHFRbGz z%JntZZC$af_GqseJSf~(0dAqw6qnXWz}ltc%JYqFH`9RQKp?#rW5Vz>&D@?OL358Te~_PJ@rcd-9MG| zOuPEvIBDNblbE6VcAVFm!Dr)WbGmA+gC7U(80Wn~{YDs8xq6Q9Y*7Dke1{F{e;y}Q zfEfY&@_}^`0e|8WY`({);&=dl@sFm+RT+wWae3^8c97g&Ts4T_L6?=`_?grm%rUpX zEz_Xa1dT)PP406P7s?ukQ#ayycO%5iQQ)g&ZjaKM(e-F1NlJ)b_j2oPRCP3?s|nVFMlS?If!|Qz&uxAUg5@E?8clR zFyAOJ&li~cM({3V56q!Cf^wM2b6}LiO_+o7YQdD2!U$3L)>XiY1vk1`akGpSFWw-^ zORPBaGNF6y21Iu=t^W+?1V7q^6a1n^BKW9ABKY<$oZ#IW-e_9D-!d&iw9An9z(vyN z8uw@1Ab<66XJNKC@E5Jqc!sUxJx#|AQV!BCAN?5Kc&OICeU`FpX*i4h=v>}_Pvq49 z<9clGuHtlm5zguE>ZUu$P4`RTobGR-pWO0$KG*-+E7S-4`%APMUXM3Y1`d@DU=>HM zuZk`7Y~w9NbE*m8XT5vY8xAG#^#+{l+VT=#TYtSCxsZ=s%@x#X!zHRpkcKXthIyQZ zWq8-%`YYX;&+zJBDr}Lc3|A_tinNM4n39Cw{|;+!f12p?RJg>m9S!*~^m zzk+Mt888?vFNC2s42gZ2TfBDl4YC}^i5xSyF^3!@M)NaIwW$9MT>lrkb37Es8It6B zIF#pkUntM>Xn&sP+E89CS7F}ily^pKZhwa31WsAU(?M1Fv2llk#r7_Z>mLJs4?wCM zL&^qko^_cnyY$NTUW+M>=F>+GyWTlD>}jIw9(#crKs8$@K-i);)iMNV@epJb!O` zC=yc?o755!?EU>4CUfkKjZ$zT)(qwc8-*s<7h|n|5?jNHGaA+1r}>)8oRd@smH=|s z?StJXAVd5TjDLr}y3i+p_S{Q#Vf++Pf1dHF3w@|a=M=UB_}xEvaNGkOrYQ={bV6FF zy=!uP6zwng(IEnZq{>wZnYFw`1xWE)y1SQHbsXC8 z!!&ki8{m64#QJOa&Xt`YDN6(IM)c{6+3ri(KJsODFRWziC=kdSknK2o$Zgr}o5i&Da^PKgVCLalJami}`b2 zAm)c;BlD4HR|F8!lBwv({H_Xb=3B4uWq#O55A*-|B4_?1y*p!m-)nrCe{zHu^N)-W z%-`qD{4FDp5U3rQjxW-I1AkKIHVw!sfT3Di4AkKcz1#a5+`Zf65xjSM3$G(r5vh?W zc<0~E8qZgY)5S^P?p0icZ6UT&Kb|{BZN<%;V>t9hwS@*cHr;dX@xggg`@B0=vVGNo z+^%d2v)PYA3O9Jj~9qU!QWdSHIpiQuKkJREU24yy2o907Ex& zgs-6sx>`u>4$_yGGaWC&80v5!?Vs!C`u3y&=$8iKyp^E4EN_n&DuBU&-v12i#R^!!n_1NKF z>#tW*+11mCuE^>a(YSqjwe+>KYF#Q{&i&ySRjaxztX4LxR@lF7v2Zo%cCEV)d5f$M zc{{{*-8xA0ArEpC#e~8_`yU4KKG+Qku0`_zwhZ8{$9f)nntvyDDv#ZA%~_glH1G&l zcp?lI=(-4WfePN(4e!a7^B-WPTAaK*LwV}vx$e||(eTu-GM@Sc#+&b_8OQP$HKe|s zr*3gl>MfqsJ4Nc>i_~|B)N3%$422kMwZsvZZ-1V55zRO+TZ&yr7;OR1%;GS1#~IgO ze>m6ftpc|W<9`h-P7xY;{)6Var7=`=u~nGg2i}z}Wtga20mI#+$TmKTEFA70MWW%} z4svuA4WLovH!{6a4D+f%qlb$c^x4n2HSfh%3(kK&%jZAmxF@IX9l$$fziU57yxAJf zuv@6%3Ant@MfM|YN%?pedRcba&AnJ$dM3HXyC{C;?v`J<0O ze3~Zyt$z`q`&Jb-){0*ltvhKO_pE~Y9+OZSs*%e1_*oK2@(O#ucJ-sfxFoyr&7T`1 z-vi}nxlQ2FLVCM0xh|kJ7Fymfuf+B?In)-Rb)15zM_};XdcAg1q&|)gGI6Hjsi&`@ z{+e90!&3S8n|NN4_AVfQo|iq9tY;}s-kpnV)xp$ST~M|PaSz57{YNzzbm!FgW= zI|eNy=wM$^p2(N6uDcHi9!un^dmiKGpFEA=IY6}FS^R$TDkMn4gY0hkOLqy+a4$Sx z4}T#%?>Gt1yGJEFYQ$6Mg$FBj%Oh?)J-qO2=Xn0e@%-M6=P!6iq{a&mHaRT|+;~nq z<#-lxJlAnNGu?Q$Bc7&Vay&S}(-P^%^E)p*YL2HT$J73lgvWq*s=V;v*%&P^baT`5 zlpN2iv6xah?imz%BFt|$sfPXT@C)%0CPyUM+r_*C%^uyLx#nc7LFt zA2Gz|_LQdwfCnHnLQN+BnM~Qh4{+>EiuG{Ni)>Tv!n>HKQ`}1!QWa z@}qhhnm>7z+ub-aUx$^ngr?j@aevgi>(LkaR6VK4s-yJo3GyimD4}|PJ^%jiDD@`> z`<2b$AwIHsaFAOzcN``X3un`bn<$&K-dr{#&UTc|^@kg*d z;PiJ&MA{R%+QDV>MQ>l(yniy#Bb&sh zi2wREG}CniZ(piZE;~dR9=;t#q&6HPfqg_b3`Xh>5mU{F_+GSI(SRyPQw3A!9ioy2 zkuP!)_-OnB66tn`WOx-NjvRgnOJEq}m-#ye`!K)%KsWQlseY+j(~-Tm&iuL` zIx_!*Cne_hIVv%~R6`_I9)IyLf6+kBeDxq7=5Nz*=0C!j|MXLC=I-lQ0uhh=$6i{E;8MmUg52qIGQ?kbdj>eL_nR z?W#m?u=lf=grGK}_vCzj>c|S>==$BNEagsg`d(3hu1t|+@yky)p*!kLN^>odoM_bp zF;)BqhJwi9Y{K$FmKEM%A{5=zkTMmP^}5l3K-uy=t+aBVoHazEz7ieSzqudUL|HiJ zEtNyk*^p!=^9>y4bHn+!Nqi+OBP_;2=otw1#zSPx{igV#LPU(?AwwsQ>0gn7q(bF9 zY2J1Yjj=^8JUP+J89TF_JJ1OYmDnYVl=;+bS#|FEyYe%JWuUazpPNk%!ndDs9J&up zG$A^=;Oc9*HQk|Y{-4X ze#BYVJO$6(dSlvF7-xXNe?eoPSBN?C$hPB+MFR&4fomL^c+tsn(^t9#74H}E8zuhX zD& ztZ^Elq18BmV?x1K>Rcb~Wy3JdPJAsEumq`i5delI z2KJtK#=aIk*DNd{FDbgM-4jyK{g-DDpIu?O_8>6-;w&)yeayTm{-{4@xEdrjfAnw} zQsYeVd+$*Er-7a^z`F3%u`P&jq+Oq$c4<2oeq>P5tkSfXv7}?v__c}e!JG}RIhYG{ z^{DT?7Ik>8-`H_>_E(=*RJrDPW@omED^<;rxIUL{)%}Ov%*89ssiOyp1w7-y z`x%v@CAF4!@qVT`K>#xJ5-9Ljot8X_ajt;fk78$sd|&5ge>8V?Q1%$q59Vgg6+X8L zFn8v^hRE!1l+f%WyG!EM1arRMt96Vv4x;Q!{!zae0`dP<_xB8Z5PI~|bTtCUAY4x+ z_T4u7{@vUICK4v(MD}hZXUPJx>=NBZjY>qHKVCdZ`W|g#M!3AaS49+hT4DY>Vt%CR zy;l$WCnyF99x56wyg7FF{h_jhd2vh-F^9=G+R7eai9a(aYt;$aOIa%UM&+-DJ&dlm zm$8^U;xM@(FzldQPE#9!DaY|#LpK$CtDmrR(%v)*od39t*PAdhutGGjT4Y5@zm1L` zL5Ez}bXQj74PDEXQoU0$jviHXa0t%NXqd{(#v7oDqW@6;+O9PfSchPF<Mq8f4$B8SSnd~2c^-l|<6XTCx{Q$zT%5?FH?A`5EVZ=nL z@(RHgmx}an{>}U8mVQ4xd1ThZroFOYu4FX=eIAT3PkjFJpBU*ppE`8#XOKKujSJxE zO%KtuT|x#vO<>FMzCB8?9-NB#3G?^0C&URoTeE;{$qw`;UW2Vc)Dy?WqHjmdo)Aai zSMJTP>r)$tc7lmx#0ek2W5J@72FBOmKrA$CvEzTJ!7PN1>xakl@9raARwz zRWp^lXY?QDJ^p~iq>}mG+6f<*94uh(*i#GBF1d2|aqCI6XiMLq(^s%;O;G1a)$nTQ zK$fYa$3Cm*bQkAWz8|MEY4%9UkBtRjV`MQNhyuZMA-v6I+ga@@+YT$&-^shiZ^_(_ z;&RX~%T{&V9c?wAxKOjRU#*cz<@1Df1V&svryRAMd&rmP6h!YFPCGj}JL`0=uC3{% z$N3DX{gE$zdi;IdqjnqGvv}eLDl+b~_ z(fF2JaS5Xtk%gObZX>n$+iY>qqvTvv#;Ak#n*b;jL5%Y+arw>)`XKKIIztG;Oi+>i z--vdUnw1+DK{0anlL`LE|*uq+WZc|FqS`!!_1Z`1Gy+#_){ zHu#s_%Q56#>&pA}p-^x_;E;6l`#5*JkSq54OJ{q&`r`~W-yI5e)|BSgW-^&j*gJ#; z3HtPtL9sF>w$H_cHMp`-sxcG6t`(d|;|qqOiJ=)kD&uy_1^Hk@;-S+fCWK`Z)zWb_ z((%Id*ZaA=)LRP1E~$S2)@vl5a|pMLLx7T8aN_vf3SWEsc8nR~I!AMZU~ZU>)2LdV z1UDvJXTb--hb9hP#r+fM0E)Sa+?ACrEygxDwGAc!k5umOrj~STkI2W1*l@28&YP_u z_y?*J=-krE>&)lh;GBjE^(@cZ0ViEWhvBF@v1be3<;xmUN68C7B*=-wuAmUirhN8A zZH+j~g*ZPX&a@j;k}$dWkh76_&KELx9{``+Q{f>jh2}E1?<15wK5= z>a-}^c@N$>vrRgPs!fqs9kVB8om<&aUs#U9mG3aQf~CoFkGStx#jVHQ5oku|Q= z;f2!=(Q=j;zS5q3Q4DGMH9ubwfaW(TPZH)t=jA*av-Ku%Q`9demU*XJE0YOx9$Lra z*u#Ei+QAMWuwfvn1k*8H=X$jB(gPxn?C$J>GNHjj~Hm_=sJ3fnuLib-w?)= z80MPH`;M?xfxnzMRWhq=S0zoyw^CO!NVNkK|LP1BG&@#m)V+OP)>|OX;pwYKL|3KY z7(lBCu?zdOKyaag;4_}b*u&G0PeRSOug7Je%Bydn)NS$VtNo&A3Xy3D_I%0;3?R<7 zi6;XxC7*e{V_76P9jPv6QGysng9M6Q(x=oh={-~Vm*=v5dp=vDq&z8l!8VW4=cQ>MG*~IM^Pi4U$ykF#q*_4)Mq>ustfZUp9_m^rO2LmAEu0A#ShB-(4Cx;~D z56on1l5aVTk*2aZ)uX8xFL@Cn0l_-l*P37}h_3%WMhxCpRs3AO1t-wlzO;4-{9qUg zoNTqb)>0$~eN*k6p0 z$Fd>K-$JU|drwB@a~dLSAgUn$v`F`H8j)l2f&VUr^(U8kPq8YHQ|ry$0SHIF`b!{Z zv8bgkz!*-*-oUq@)9UK%fbF#0aRxBaHT;Hrh;9q1Cf^km`{c z;P)c!`98(?8p7{M+rOQ#k2HifD9W9()KT;51#j}IPEGcSdu$^7i#?|YQ}CAaFVuIq?IY$3-qXYP4z z+sxE#SZGzwl4oL?!JJ!#c7S5Zj&8|L?CwejcM9QjqO(0yHBpp08K_8L8CyA_U&~Sc zWEzD<{K|1-lq+eGiNHT~eoxbKpJ;Gt7*TY|c~)C0XB629!!~oiVp_r%m0Wv#5!bpZ zcxn5;T_j|-l`aM=1plP()y)NR0b8d6*MZ zY)RttDFky;i~V1m^E7GEG%18uCksu_Qf@tsG`J34E6zFSa~=T-oSUYs2wJTtEDdbn z?j`a?DSdy*`t9P{O7SZe+A~sN5U!AqKXZT&-(N>9%<;&Xt5op26}h>})WBxczB^q~ z<(@oQXt>b2F;eLzbYW~Q**9XxGqm`(0Ey<2>tk^j?Yqi-tfvx_uOX#JjM4>ni$%na z1U7g0Hk(SKTK)I4PldKfWVv7i>8KM`e2EtLF+7ZXx+Ju&$nT}<{1lxsFK=lB4aL93 z-6i;m+7x`)u?!+8wW)J@QO;+(>4I`{T}6of6P1@`HIOEh{D6;*UW^l4OULm+7avFc zuaAb`-U}f&Nyf}FL?Wn#^fEI{N>yjcqdzc?++R2BXSR!_kkJq&=u=)lu8cbyF!qvW2{W*FBNx8 zd&0nK0Wi)sInaIig#pzkAIwL>u;(fS@ek%ej%?eIH*dY8RD@T>j6MWDyl#lSLki!$ zrrukR0KC`Eh_?;d_X7ku^Nz2`ImGYkEjvj}3EsB?Rl*AHeKuqeIvqdHFTJiDkG}Xx zTYQ!$@uzaAW1}OePx%bg7fC#ol;#(IZ`yWhNvG5vfOs4aCKvOm`@d0Q$>q_*JTXwtJ*_$#8cm-=mRxPZKe4i1r$8{h-pcaR>jT$VJ zQ1JZ+2I3;sX|mc_uuxn}&IR}RkhV@aUUPag`!0J8VSP~vK_(@E&2Sa?7v!*BD9{_W z8>oa&bRUsF@M(29!2a3znb`z1qksrp5(95VF72gX8l}KqTb&YJrHEOKCUJpGh%Y-| zoc#bC@HljDl>l)}@bfhQy7-_=yV(mzj#~wYcYT5F#A7Rt>LrA&#Aeg#%0y(watR3p za9tt-krDl*yY3NR)Vp#KVjkclh+zj&it*TFyRcz({&xr`*b_tt>`7XaLt(hiKx)J+ zR_Hkq;aCZ(6uM*)%kbC~FOF!p0AsP#Kv7geA5erpLJWaRcpyI<{)Z;S+u-0eYIW;QmOL6$pY?5IZtfANv*yDmrv}N6D!9Lj{)ogC2QymAf{=3c3N|7 za0=0|b{g}e$GRJ-Q+$2u?o!Nu*bJSN)Utzv`VqR^Jg*!fS_O@^QGn8~-d}!WpGwzj z`i#)^dRLk#nXb7NV@5D&dtd%zVz(XrQi{cX63wM9@mcJ%MYy_uPI>VtFB#uwCQ*6+ zYmXu(o^Ry?3A9}y`lm9{l*ZHwd_9`#n)}KXL;`&Rv(e)pkJ^6QZ3iNKwoL0I$ZH+S zL++vN#BJ@em}-j0{+ zlPQ(?l9exsk3J{%t3%41S+4@b(SlZTsTdVXSH9@LHr zlt3aEQ%r+I;@W@g`sm)_e&`0$*im~7oYkMOTcct=lc+7oxe@DAqKNe{xHagmso%at zVg1zSs3{KZ29WS2tI6$He)YMh$vy38bh3WiATVg_09_P72#Pk)1ZE)llKbye{$sqX zyx*{}ENZ4r*yXnXiNJvbKgqvHd)ADTx;M0n=-d9soO!5*lXXw9hS zRArL)MH-$|*LG5ktO1S$oz@#EcFKx=KF~6~m^~>t$)SsA2N)V@F9o6`Yz4=IjrcOn8QGi8;J-bQ(1ld@!RZ#Ux<#;upO=ubA(5Zl*lV%pPQFJo)I0Th?vHp5NdSTjz=a*XqE;NrGgSV`;@`!_)mWL}}u3 zj4O$dc|gbu2xJ{Gt4Y85DoqtyG()7|7>=F9oAB2-YcQdxNHu1g!(A^Ye3`YF*!w9V zpGPS_fPa?3MVIvc^3H&Z{!3`O`s?xcmmmpZX28T=wbDXUbvZ%8BtDjIm=iBE zRvJl@-D*lw3;Tv7Dn>CT+PlEWu^qML52pNLzk_?hGA-<)RPy>VlE z(3ry$k^xI>V)Mw4CvB~wRFPqpnP1bN5^5fC9V=)@BxAD_CNTF*3>+GXxFiJ=L~u{$ zC(-grOM)03=-E;}6M(21iZKa>^iXiVUHD02MWtJuOIK$7=?v6-dgbtGcfXS?F@Agc z@j?*)GIDtK%e{zZMB`Dd-+0*S9+El*NyYB8g!aFYh|wG6-z^^>%N+vT4IFw#y7I}7 zudnjX5J$uPykqf~=zQ0G7J8%Spur;qwl2N5-x=F4WSt|Z-r=G^u|}f&o)XpLMpQEd zKZWqY!LP(p-cDqy7gyiKC_!nRjRC0J$o22R2CAatiWsfBKCIucOm@*Y0zYoJff}Mb zO92!{?MP&z(1}Lqlie@;qaNb70HzjuD)uin>`h!lInf&#l2M2w*8@Vl>5?nKx8 z4A^tE-F@Tm0p%}yR{a*CdXknJIU57zZ-`O`puyI}UySriN#a(%C9B|=auXKY`3_~u z77#mE8^hFt+)=_*UXL&4D+3JK3dU)`AAqO*h?eL=$iiVF?+8e4MtW+8pc=?1woGAw zi_yK>GZn}ZW@lxX+R{}gpRk$RTVk0UUjci_4L&bjJuuxgv`JtZiTZo4nfZ#t>I%S0 zqs?u#JISl1H>;++`?W5a=-IG+yCRS{&-qVo97%;j_mpyv_nxt`rQ9-1<0%? zke%tD*@=GbIWv`=G7`$QxI3Xbx=z)XB?gh_QXsbdcv}D!rs6J9JVjT52qs1qe?zuo z;wr;mz7d0zD1fD=NS((KBT_wdI{{EOW0SF1OLj9?Zaq` zS4IE$W>v_!{?$tu#)AHJj0_nozACr|5ruP~MJ$QvhgxyZq_UC6f4>Pz0EvU@Vv(}V z-zQwp%DATqhwYzW1EQw?v6Y3;2N2z+%Dq2+Xfk>BFx6_gQ8(auqJ?8Mi3crGG)ZB- z5WhC70{uk_Z_h_3zw&e6HfWO@L(UHUL`H15@uu1cDhR!oGcBS6s@Xw?ZCS7oR@Z=P zPK4~G>+v1qyGLnJ=?;qw09u7R`JetQ*(ApvM-L0coUEP9eJW055u%hWL&~f`Sa^+! zVZum>?|-c8*wrhzp@96i{Sv8>v)ki3bW$Mt0H|Bndl~l)dfV{==JgMS0<7!Fy+lkz z?y${s7>qM4rk@`OYMb5ZjFM0#1vLJ}B1(U0KeJm!47A_eO}xV+{N&i7{O#WBq`hNS z*8w!Ygev|QRZ030*Q?q;vaqr=5KeC|Z8Y_)NZ|K&lq)50p9DFouD6?9zp`zie49JN1*1r$zL{-~ zYF1;GY!+o!V)lLW;Pzxw@5CNRR!hrVx0_^H(2voT*!|F;0`pfe$m3A{-KW`bJzOIW zq?;bJ`auzgv?2UYS`@*I6KR-LS1|t(gS*Cz$MuZ*{vr+t}I`)so}hVc~4c7gij2dXg{@>{VTC+$7i(DvyeE2r~Nq zv&_>IJ1;#~rV;T2(!fKcStC(&nO*093VW@veFp@y?dF-Y?K=U1a+S3A#c|Y-KpP;s zPgrmT;OU0rBCs22c{ZHJh&d|5I9Yd9tJEL7W6INynEUeG+TOYj0(2oRH;5CoN>DwJ zojH3N?#+Dij34VO@hh4Q^S|SyBtCOiua&jdIK~zZ__8d~clx!iQ|}M?+x{$k!E620 zn!u=!loy994&hnl*vFnSBmF@BXKeR0b>me2v?tRcd1+yzV+AUknd^ z0uZ6T-qL%QG=0GJ#=zk%yT2EL#4aS=br}N?^1X^xMj2oCsc6+a|v1C?P5qWDL# zpdASr*aC$(4mCihmL z{r1-0ZlZEyZ!SC3xw+2A+_BRN!td0@YF5Sb5Zd

QXWDh^%LaMtv@GkgYZkWBxZD7xQz13FaeL5QXExP?Gmj zH9y0@Lf3Uu-pNK6Bhw??$}z#1?d(g`5rutybaFgMCc)WXLj2(nE zZqUty55Dtyjl@RjARt$5PQhNHYSC-No=@Y?lWuEfgt)=ier6WyhWk7dv?b2Gia(TO z4yWtxWmDiQmI?Pl{6nWhg75l+j>!vqKC_=km3JOTAj7p}8WJ(^l(}h}=ka;+qv_~K zB?@NO&7}}TwF_%BAurJ+h;Cb(!TFb2gvU4b zC_wsGFyh)rA+p6V4APlg3{4Mf|7EibUmh93$X>k**00??Y#*Vzu%R zXZ&fgM>qFHbsl;9jtFP;Ddv1>bYyY?Agaomfi=P#tq5+TePq<^{)!0JG?!2XMh)(| zU)DC+cpmOx9bYq_dG0*#IPOQatfdFhL}ET}w!pe_n{*EVvHeWX2or*#?9QEXIv8&S zHGFQJX5Z*Dt)eX!EM%)n2Ry_(4nCfe3_rmEK5*|X?RcX}6CoeP9GL^-><5VBB+qqj zK3cY4Q|mc*O_8|VG!#pF=a>BwP4?HsO-F(qC?*3irC!9mzySzD)o7&(JxuFF&rY$0 z*NbUV5245pAE2e)zl*}t%ocb%7H8ov?))@Igx3VrRHVYd9*I4hW=lLoDG*vAkB2-wI}y>0GO!!lit(AVD(<-9#*iYE)xtV%=O zCd3CI>ehvP@$rWVKKqvhXA=*XPN`o4vgHWmf{cWC1)uVGjUa6MdpZ_jwPlc=rPGPl zs_F(O=9|E-=)Hlu39;7Kn6g!)fFNW1{|HOX%oSU!7JE?Ufzi+N##0d=n6}Y*Blg0r zB3odOxFGB)uQ|w#jk!B_s5nQ&qGrs8<|+ctqAGNlJ2fcQSl6Lh%_7YwO^=EL^F6?h zL8*yTzBVoGOSKf)`1xn=-ddvu zxfV9FN4FAVtE_b!6{-D;JAH%wS_q(bFX2E^p!-0g+S!6o%jz7;rTF?cXc1B){*3Oa zv5f(Rw5go%?q)!ai5*sFP8PPpBK{)y2iCOaj3RP3LZfAP)2Ur zNO_bN%$!r2|7g1WIZKfUW9K9IzaLHFn>imRzW0cdtkv8f8q@ny%p*UcPwoS^)i4XA z!fsfgjwKY=lrLSJv6A^Xdb7xI&*dl>X89?f-Az~*vxh$8e|W;-2k|kXKNC#;jK5fo zFE&{-iO~{{l{}6%%T#DUAU|xBf*1WQ8`3tbusMeHpY|-Lomaf|Cs~XaO)tnY`k6zD zA7AvZi+-=crt>=dty9pMp6zofb7JlV+l&d2Y0Av8+3~lz zE*Z^ElyLFLr}W~aW@Hqpfm|Ks-7kb?DLiwp71=7;lHeQq)63(Hyl9>oL}HmM8j<>g z$AW|$s?&0sxvuy@aaAU+o+al6Js!GQdsnJbn=qf`g6 z6cNSQA^sscXw*iCJz4;-a^;HU&73m(dxG=p!U4;SEe3wqF3PkkwmK>$aZ;C9D@<9; znWRFD_V(-xm3dCk+EkD)m0&~PwUt$rllX`InwWCTn@{OxjQ@IpSP38;yNH-Qr#r=o z6Bop_jLP4ef)(MKs=|OLGG}3IU{O_bUww*1Vper@R2OHa=ahiUsYcvHAfM{6$3XN< z)Lhs*(HW#Hc;(CJ27{UUIi2i&n;SHIokX(Hx%2HkU9JsHqE4 zwduz7isPi^slfp_IzE#@aIzV~!rLr4`)sAI4^MIKTA26!+~cPPDz4;saLfqDq%F(- z6_o$RO$_5%H>pZf@3#eI<^4@dH8BeRS2yY;6E!1#-Qvw=9<+E}(>CKOsVMIwuZ?Ac zxx)I-B`$w<;A7;f_2d!lB%_?Oyq5F*kX;UYI2uAe80cUXfFz4wprU0WVungb^+J8^e; z^9V*tFx3p|_+P8vlyi9?MvgskK-I~<%8xH=2fSMU1?QeKaJYt!CWp`^L^3V{nITXq zfgOQX|AGrBnajC%{~Fi`=N`^z!BS`__T*sD zIa(~_J(@%s=P#{}-)!l-NwM;mN<)PP;!dLqlC*TTUb zEV)uk|960pU2o+1ODB*fordFf1bxX$6Jt^*Kl(?^$<|pwT~J)`bh;E%jk?j3Lo^wE zlAc{15I3`W%Y=r(={~%INqKPQ^r%<+_$W99oggdpNdbDBz3n@Zf}YK=m%SU9ZJvlm zyrzj7A@0#qdy`4FMlt6Zy?rjlj3f1r+_PPoLx_%G?_M?13WIlVxAeBHh;DGvf7Gxx zcUKsvN#kFz}&vk$o%&tMs;fEaJ~Nug9`sE+MQqR z(9JTwP1<;&G31=l)Aa!g-fC+w(;k)Hcpxo9(kfA5+QjWH=0*s>S7xI;kVXq^%O);d`EoEY24Ldghd2I)H`Rl1>jGv zi(6n@{jt%e2CpnHZ^((I&z~cd;yx}TDq4xQWe>5=vNAB%++!E#oX2uU*eN?m2{0EZ z%~#bCtC=y?W=Bs*#U)G)6!M_;DMn)Q@EJ+iQ*{R`j1wOv=UX&SnK5>gEwEuxE_8SW?mYbPn4iktzQp%?F{+k=Ixm!(`LpY%`5(X4sAXa|9WElp z!;(95V@OAPLFDs^Tv20X=EP+@SAf*}LBO;lZRgGXG1V9eqOZBSA~8h+`{_gNv;`9FURK)Ke@X85*172tRZZ`e^l5Splb5H3)vJ|5<7}yS1NQZtliW%SDkHxX!c@!0p9?g%MHP5= zN8jErmkWJ(Rr)dyM2(7P-_t=?*$`2q@V=rE$5i~N7c{>0hT!YeR;Ld@CBqE`NO{v9 zAHqFwomw;n2E0e8k7}>uuTR`p3J4BC&LW*6){c*ms-p8N&FoI04Bv6%oI+oq;O+fZ z!uab~zl{T9if!q(V*Q8bEB%*2#TKKdb(NS6mbaa~A7Cpcz}ONRA&7aKJ#*4}Q2XfVnHmVJWW zARDXz+ne*VJ9B^4@+|FJC9y+~H&JvY`fyq(%nF zOi9PR-+3=A6ozzGyxFC^SwDPYnU`O2I(U@UdYFJ_D>?e!F}qI@`|@}`>TO!!{nAak z&FWIb{`K)$OU(<#dv!{_Q(;qa`SZ5pVIg2lyWOu7<;Mh4#bg9kl9u$f6zYNY32qKR zUbkkHscp)qC0z^j>#}>sc|wn=jY5&X$;MmM7T-xGjB~CsL*G_CV4ph=uO=C`N;AHD zuO#jp66jVgx(8kE1)-G<3camV4DLF$iupFZzU+-Gd%s=vFTC*VMdKXg&{U|t=mRUz zNl+xw@4f(tyOT=1)BSNTU(|TBw9%N{Pigxl4`Y5LM1`^Pj^p153-G+xuVd5R_Q12m zirGO*`Lkt&`RD#f3~12P`!>D2sqIE0Y!U2`)`BascADI_eiEG6 z=wSy`cf`}YXqkx!$v%wqKlp}(s*LVvMt&zdpy&gumF?6;-exdYJ2M)c0zXTh3Uu#3 zJ?9hmcN7U!lc&(mw;#VT4@8@hMLXWcEqr-;pZlFVAqA{4h_k;jY_MFdFooAqmz-0M0oe&T)+5~W%d{=TR0DY_9nz)`G< zg7Ix~7t{VT*T#6cF(_m$#03B zKWuW6rfe9|)A2<{myroQNia-~(xwcUG)KUN`bDfM6ZY=MK6v+_l=8I1>XgNWniT0L z+A7Lm*ELQPmNM?v73bWiyYqj#T+mm62X-#hSx733O<4a$x;*j&_9%%y>?s&qDAAh? z2#qgaxkLFc%7R@&PqzNT@%FU$#9qJ%t#qxSRLMH4$pjKzkoNh(R*(-Zs=1`X3w>0< z89-hHK6%;0Xrnd0Fmpeq+oNEBbJB&+>?W)LIF*l0D=-zU*uyC2 zjDfx~oA+?2+Q`5KJoq9jwKzT|JJ^~8niZ!eq{G1nn6b+k;m&X3Y+hVm)Gv1Evp9X2 zRS;b@&m|&Tl(UPvAd)Q~aPT}m$~wFXdeh#)A4(y371B`ZQ;xXmf17b|X(Dkm45B0$ zrgl`52u`63y&50S4FW4^+yqEqMFe4Y5x0~B^KtTHegHU|SASJyTvAp3Jbsw}u?0h? zyyHy^YmkZ{6bvmMD-@=Ld}dX6tT!TZ3}_}ks8BUw83~geB6taP`C13AhqMys8KJ#` zpx1>?l8=e(24)rIpv(Q!DoX8^EsPgySB8gjCeCKCo&g-gAb~^zl(@2aJ=KNQ=RNNv9nRI`SS`$l^O2X;yxI?;wcphX*BDs2R#Q-<&TZya5!$rGc_GLT}6^P(?k z<-?@rxTOUW-xZHqD(p9>1CC%3p646S{6xIZ(WsPYfw?GNBwfq(5|uEX`g9MN7X{y; zPrpl^A1^RO-~L^?p_u-z^sbYw)Fcu@!3Pd9}&qQOM0PVDp& zhPC^3P6`Jm1G`&nR;C+5D7U1mr<8{v;l5r|bm(|3{5Hgg{4&T_?PfB&g6&KbAh2F9u6@A75D# zzY7woA23hdg9Ly(pv_#LqbdO-E&^xc)>BFFrXN-g+682VFQ6fNKz~;ztpjJ7`9~t+ zMNu}DGREv4asCQSE|$~d<1duT4MZ;SZ=oxj|DXqfhqjdr;H&O6^o#j5Xd(_4nS7-( zQL5Z3e@z*Et2N^(Br@sS38sTlBtL-m4KG>;5mhXJ0|hESn4H$nEIkuje_?rhoWn@A zIyd=Io$e6olvGeeV6r^qW~l?MF+Ye1eRwS>5M!E#XWO=d#yEnJ(|QRLo+JfL*? zq(<}tx+!Z*eYT}=gs(Zp8a3`LSS_3K!F4Fkz7*?0B&M`NkDD?NzF0!4_NZ!!hXoN6BNK7%Yau6>LtSF;Z zZ2ZRd5HDZ}D&Cn~RQN`0u)bq#KC`r)j==!eox5B^6a7iK1(6qyU=bMJ9&PY=Ajwvf zcCqXUE`mlFiRl-i>dkSu2iMXnHJF8f{_Egs;paE|ahyBefsgM>7pQsFu?t?DT>%>? zM*qgwr4ECw(Klt&u35~#xlkJ*K)-gd_9I<5yCUFl%TQM5U{VnoZTzf}9+aFBS73mx zvY)|APZDpNtjNV3NES89Ti(wi{#hKmtjaDU(u8bYS)f^3SveHLOzdW!s11iKkptt#6sOq7R~({M}bNi=vJ zh0Lel#0gV@bB+P?6P33|qvsXBD>oD%F>SnDCBv9RQaL3fb;8*~Ie}Jy#-3NQF7C*z zeYZe%9GDHCk8~=VTPPSkhNzSLSYU7D2+{74I|S2hn)4iVHgHL>E#=1?d;b;9oP}?J z6ulau*4D}zRWM+;OQA8_m(l4SLB2jt+1hz`a5l6=7*|m)4JI4s-E}clIsw6e#BAmF z0g6t2m>jna7oj%FbrrDgr&)pl2;xHsMNDE*GCqNA3JEjVU@N{f%zrZBDg!4sQ3M3ZwlLz6--lIO|5*IyuAEdY zYmB4k+1LB3tr6rXmGc+;dmZ>D0t)Z%8+Rp=L^TPAwK+~4ND&qZb?@(?(&t{K!e2h>_A zuBH^SKxZU3%sR@iX4C8-V&+*Yb; ziLczx9Tu0`X6h5?Lg#7bZ0z0aQSFEAd1f^iW@q{AiS07%4Y(s)YdpEn?AGyG1g#o9 zy~dpm&coNnS`Ay5awdf{gk60T?riRN&ly%VI*VLY#@AQdN$vor<&~;NTjyz!vyN5& zu;<}>$3>m?N~>IVfPBl{u9-m5OML@eDf5JH){&+wfY$@{VRgm#^jFb@Fs{ zTJf`TpG`?)$zTB@yV4oAzrLmnuqf#-H)Jhg*K=Fhzs&cQ?|nY9+e~t|@13{$#kGR3 zpgz8=jpD|-rj1xr@rBG5hP9=k9+s{kF!gc;r;!d;*1eIy3AE7x>ydBen>~rZ>dpE+ z2|N?mK=!B0I_a^?pj05@ zA?_s(E?^LFRz@&7fT>jE)p1-$Saou97bI`WuBWw*_Eu!L6m%*j;=*bssb@htR;HZe zYY>J8@N&Vl$DAiBqt>O%5NE3Xn5UexL?rE_t5y5Kqq2Pes}ic zye%^Ok9m{$_>Z?S!;#fohf-ng_vd3o-b^`__<}N?x)gWr3LYaDo>CrJm&UpV1DB?j z1{s&;{DyeGvl7QrVU3Zyi1P`!0O;EP@7BS<$i_Q-_)*vjc=@y)Su<&5`d%;?cE@Bq zN?;|zhX5an0E!Tb2#Oer1d0@j42m3z0_rmqB@`7DH53gLEz}n%Iw*Q51}H`-CMaeo z7ARII5EL5}I}`^LClnVHHxv&PFBBgXKa>EJAe0c4Fq8K6T1QiR0MD6SW15s3L;HvvF?Zka`W8mCGv~=dK{U;Zz%iwLRndJ4sz|eH`|EkOlTQ0d5iD-ui4pM zhxQoo#>l0BI3`<+oE9K8)wDC z=K9S)kP9H=Kj5Bv?|n^})7m^oZe?%QBiy^7^0<%HRTyL6Z7@I6^Xc^dt zw*ar=$fLC{@O|bHq_^1#?j8~i_=DMQ%*6%2$uGJ636E-{VWY6I_h(ebjH28I#@v!G znnqPIt$(P;i-(qTxAxBk5sB{Dmy8+7Pi|jsarc3j;WRF1e8kfHSN=)`T&uo!w>Qdj zJ+xI9Lr(eK{{vP)slN@HA$DjZ{$;^i*F)~v_eB~#M{K`#$~R>0-FLe0gytRqtXcx; zP5L$F4{*ymgl7|mUx9V@rjO~`F<)@V9G;QG0@9lhM!mb1=bGcb^RD}63E1~Jee}Nc z=~~|0d2?rCe>dVdta(5BbS-c0tot8=jKMSxd&;+@OTN*q&T(%R8oh!6F$yzs8wCmHYkbYEr=Sa?fP zw8EHr)3M%6syF`t76l)<@98asGlpysg;nq-+j7Z^P>Or9Jae0@#!vozZ$VazYGnVS zY%BiDkxRp#xNv1?mmIh$FPzcx5qzhP>9b1Q(3Co_x9nY6mxdq3#kTAMIWRFhi|qtuQVuw>v($aebcI1sE1~omQ!8U& zk$KBx=@zJBJan_^cThwAW~{^tgJ92ZkxOeme|e07l3OkGg`Th-27{0vlvM}h$luOJ zUfu%$vnG29q(RZ+rQ7egy;3f1bZ?_-*%iH$1vL|@DG=9N<6Ka1k*oB8`{S}Dpvy{S z_?gSQD0_t4Cfb5@cb6w#5;rh$1KKlqAxWTOdt1ZqWs=(F@}8Y<6<1e71F~fVTxnRe zf7SRM**T)kmYoe13b}rv^Y<;9CY{cTEgx`wFk>c!46i&g}#R3pQqw4gyLnjTKl0b9M<8f z0_>&$cFoC@{R^^WzicMhW=ZO4No{the<#^X*BFEq`)~xIG3p)#T5=TtL2X^Jjol1s z&_ck30>lIuf<=H6-pyIk?d|yBP`^<8Q_~gyyv)hcL}`+Ai-d?g-mW&w>S=raaTqeu zH_`|o+ZOiU8t3mPoeC}<6%LD~3cQrm;73AG5C)W6%0=Jx@J6XF31&hQ?Ed>ce+$g( z=k(uK1DOWm(D;2cu#&n(d^QN6l_BvB_^q|6Tb+TDpc0s{Rtb!IBb@QbhoVp#6n(G2 zP_g2t4T584tIfYD`+4}>W;rYR{sIY#TJ2Q7Q_9aJz`Xq_6b^fvM#+KU!Lh3E$g0N? zeVYsXkq6uI`ZeM{vf99bOy1ufW zcVs_xWPfoa89K5roKXkxV}W!7JZ5};G#pk}K9RYgx3H>AfB~?THjAb2;XsHRzD*Oo zf5piL&CT;}qVW;L()IKTro03s#{lrhha5@W!F~eh*!-hx{)gi7gW7;F{AG-P4?0=H z9(_p=G!b5~#PcxNd2H3of0#E%`vx$YdHDkiof9IHzaFxAYr@)>m_Aca-`1YK7Sgp( zAkk7Imfi*hM@DPO-OUAysmZeH+sfbUD_E>qV)Hnf3(}*>j(r8`+EwAm%=#tz4Rmuq zA^clJfOdvqcAlAuv-9o`VDiiAHa0F5LDMXk2Hg&Pe#?x{x0_|}e--eB%Pg=Y=z*HY zjBo**@ZO!BC)fgGjIz25=}#Ve6w9_$yDwyi&LW&(TIPi=WsPUC<4KSh>dCgigSQ~g z{RP`dd7vG0sU1HdLd8yMn9p}qvejp!Q2WCyOe?o<-&NWiEyj$Vpo#Bj|{)5xilZ(_akKRmwAK$q9$v~YGfUf5G zP4s@&S|W0xwLtIQ6@d&Vh^6Y;G=Y6~CQ=!@^(ABv32>{;hola)P-n8(WN7a#)z)UT zmjYY&Pch2@t9gSFFqpWSEl^@*Bj*a(u#v=H)V=KTRHThafBf_C6?+P5@rJ|hTn$Yo zqaCUi&Uh52i(_VQnB+TW^@g;q)c_wfoy+B?6C45OV##}C6uis9t|{K_;rtedf7W6} zO{sCH!Eu2;e~mDFfTpLQ`;x$yUymT|RJW8o9Y6sXg{maj!& z<7{klz`5Qb+M8@@Wqu<}3%2spG$=In=etqF@=sr1e{KH}P1<(gtG+h~l_X$?_C#5= zLqEd?vGfIe>$i&vfLT_Tmhs066g4P^gD$DCkImDfs5Nr993Cb*1<%j2soW8``Uz-5 z$M=rFqlOI#NQbFa0m3zYKcR*UQXnD$fS_)uQ9y281y|^+e+-C>i3p2t;y5g1@9D7i zJ&+u1e;;qBG)J2bgu_`Hc8_zGel7YQg8n!G9o21)Tp-|kC2@V6+2uFL0mbM7Soe^< zM-3hg#TE%NK@OL#Fv)$9>@7D^QnSnE@4=3oiXd5NkRw+c4W$fjnJ{({fq+ea{KS0e>S8_Kc`YQ==N?!-Og@9aRVMM#DI@R+)sbEZ70djul>m)KepR*&l956#*!0`sAQw_GD z0RQFL;9m})Y!;%d*wg-8IAg#&gq1e}R9_BfJn%Nod;4=REC_Xn|9Uo>nz4-i zf3AE85FbapjpJLT-FrS91}K=dt=L8w)+ETN<#$8Nqw?(>lyCofCzo$gwzZ;M3%?og zn@#fVG#kmcQ@DH!-GYonH`s*&7ZmeA$i4I;UC5mi5po^S_beM^%tVHrK1o)OQH6~F zt8}DE*&rWngvNO;lDw@pcLqFuijNj0e;~EV#n73>j|>G+}W zwhkt`^Xwoa(jBaNdZiq&!=!P-2-xd^Km_3#=#3Nf2m3xpz+R8V$$?4u+yrSLDcTua zp^5fp_8?-|`VR2Pde6Ylz77h_J3s=Enx<~K4KYxXh2~fmi6!o-%idZr)?81NRoOB=xs__-XQo12&3 z*{6RiPU(`&79q|v7jB>sGmh3!f1XEZUMlxN|EPZs0MCq)ws%H4kwa__u)PA_rVR$7 zVRh`M&j50@DDnRx7r+3-;rf`OtdXJ$KyWvQ{-YVI6eAZAFse_B>g!eHgs zs^uUGh^vD@5~iyqq}Zm+y-p4+Hrd z06TvP)Hd#7_~k4c*C({AYBWru(KLy$DLL2_Ad|I3DOvFqG_68!cfzgvvEhrdGfBV7 z%LiOJs>?(VsZt*aq$IA2e-CAEy@5!!%?7+~72(1*wmbw4u94N^v8LbHD%)UpuTx-e(i!amq7AfxwV-xl${fo6v7hvw>CpjKn^a*#$W zf-zV)koTY*8x?w)oy{={o$)6N+6>L-O&$mjtKP7>FTokZwnO&jf2A|~dTJ(laoh%#+XNvj@t245Y?QM(yB} z*P-A z9V}8DUma@de??P3Nmt|dO+=BnTvF@h@*{DIsX?|>fJ9Yjc0YLG0! zxy81Cl&;n*YAt(plz|BHKBf&sf_%W8rKYZc(g5iGOFjnh$mLCOvZ*p$?oXWy??Xnw z|5&!gVT)k3$}>-c_$K;Z7f?R{++Rz$FZw@3d<>##f1;egxD%8a98(bHjkiV72_`_0 zCV=RBAtFt%5%UbfNiiLMJpmj`7MKNhe@vOen&u!$0m_R*lF4e1N9+om{~%?s-cgAr zs^%n_$i@`^!b~|Z4hG`uf8an=hW4;$jz^W2`QO8Is9;NuM>Wb1EyZ`iJQcm8Ko%)O zCZ=7Ff13LA_AIp>a4ZvXENc=P^FWdL2oxDk?c#fk(v5odQSwaS!e_i^+dS#4PqZK{ z2*u~O0JN6>6YeaRXw$Ib7Ysx!EJZ>IDR9Dz02t4NWZny0Aq3ebji`yJCOyYf&pEa*1G zJk$s^HX@bKA?N`KXp1%kMnn2E4*rv-e}?v@e{Dm|Kpjo=oxld9D5MH@CDuXp^{a2jr+o=j&;K2&u5E|Mpdk#Fhj@JqzjJR^3M9& z5M9%P4{kgfRkZR$TzSN45Ye(8N&zhkZ7Zmm77j1*oRYn@Vbnki-JpQBfMTjxf2!wM z9B9=eJ?sGz2t4Z$6x-O)6oHUnAR)$1HtI5@nmGdMe%Rb& ztL214v{x%?YsfdO5lFY@0VL-FeE}cJZi>|lEsrU;6MWF_pq4`|e>ZxI_ZIXPjN-~i zze^L|5Z%4Rb>A4kv>98wzTW8OLQAuHgRvzKA;@LGI3K-HdTO{Q<09mBbo?U z5DFdsCHq4b=+rRxe|oVud*Ot4U&wy`hKz?j*)h1;h>-SYviffYu0qAiATWPrGOi*H zW}u%bPbx!F$qWX4y0X{5iH_IGZ}o{B`np?s;7}WZ9JG`h#L_ifpYR?Q%P<&J&IOgM z76vT{(_d*|ilyEmj;mh#F}eU$Kz$aAB||zCJ%Wm^prRY( zhBLAXKn|qbj3RRPl~=~vfnmnX0b;Ts(*atxqzm{bB;*-n%MPSI>p`?E9Z^J>w zv;_^QPxgc&fj6cx;}H^3{5fn&KkW5RHXg3(e->F?N%f*^b)%^VTH3K;F_!kJl`trx zFB?m;6%G=81B{3-hXoqYI<nx`$2daywW{E^WfxHCk`e2IuVJP+bGJDBcV}Cba1Gj^TTBRRphiuE zt5r~-%U*ba==%|Ux!xUNY{{6yJ`Z_XfCfDzu9wZ5`m*?H zh3I{YL_@UOf(Dqo8B=yi(;sVVyLN(yatN*n89-tpye5YYS=cKS#UuJU!-wmO2o{C=%ea3lmAGD*d@BO`w)Nh|LhR zM_|gM5Ii0P9oxF6tz9#_|h_X;420Q4`VRF4;Sy z24=yGdi=K!|25%1CRACQLI0SJ{Gx_zo>=jwyNTB2lgC-z#nAD!WKp&Ze^bz%OfQ)S z1XykiLIHg|$W$drBEF|=kxb(=xan@+|ImJtCoq`iPeY@@G%|DqdSO0QaT<`oJ%nAk zgu)Nl(_gj=7xNC1aG|2l1}M$fZOIf-Gqn=r7zd147UC|MA}~A$Z}P$!L!KdBHlqbz zr+bpUUm5Yv;JFaU{0HHTf8YO+9Q~^vgQ+m!OGKs6UqLuM!v47!UADMPhxPapXG<#f z{y;~WC`c1-1*A9;DW4+mW~cp!v5D&qE|j?b z;IdmPfy01~=d!_Ff0z_Tlp+*MgJ-|XZ)8t>fqjqIb)p}B9R1`!f3cq&3T{L%XRR%oTrXGf_dj_!| z4n!%*XJ2qKj3~1pqSHk@t**im?nWnY-yMpIGuXYwRaoE-ZkR?4ZwEVd#w2VQ${$c| z`3|1ZlkZS}MibI~e<;Z;2;5@9yxTC1dq8K&>Om0MU4@ILqq6F)G?5NYzL-rB-P$7p zLHlPfQb)Dh5eUd%UO$*7fCl}<{&di3_BeBaVrbTF-BY+o#R zqxvIoY4*?K$eAwru^Nf?rpi|q^%lq$209%u=hrIN;){WYbbqK=`XYk=;p1c?y?tzN zlC!fh!XdX#T%T@3qaF{U?nHIpRyg=ZfM6iSNs{?<8`~`y zE)p_QFXPB0g1n)qeX`k-DXBuBq!Ritf5aUpd#hj)F@vWWz;&G*c--ic zylq#L77arVUk`jG9tOZZUiLq>))p9@Ec@+c(t8GY9FICU=41~aqCpA*01M$ zo`&IjqjKG;;`&73{dvIqljegKP;Cr-2MHs@(n@02R1v&opS=9vt4VIJ<|e4-zRDs~ zGnL<(e>eAHaea-rzTD+KT{u4-ON0b?g=zDk#?}#@NinsJ|3B2W=3un8!{-FS^kXO) z$|;T;2w~pEzL;rl0ktYHkNdXf7s~8FSjT=OZQpN0H!i>P{f$q3R4Lt z_&;hyAs;xpvmV_}kJYp0I1HBTEBgLU(`|Y^iKcIocWwGUIS}uKFUarg_b~XP8Lbsl zS^Qp#foj{s5jtSsmtX4#g=x}0R&@py77D`o1N(9hMK=Kj%7?C?a^-AAc6DuQvVc)@ ze=`(yYNn#j1NClU4p~s-K*oX!F;c4Rp9CedyB;EoVQ8IQcaueC&&RDedw@ojUj2C* zLTq~~+SEeNv6*`?!pbQ620;RwL{F)r?;?1Dd9K|P6JOB14t5fan;#3hAroaMke9w( z*G>tZMMk_RJ4f=?hEXU(Un@2$oN+1ue=wU_0~1(5I&dM^)BI^9uRmJ}%^V2LTu~Vs zB?sch<(_UYrAjZwRc&o67OR#JOp zwH&m#A#BcPu@I{05rI%g>#CJQ2=(H8UWII`?i4G4?%oC5cWi@Uh%IsC_JN z?LlL?x;vQ^pfaPGLmi|~06I#df4oZ|mvX2!s1fK7N9a4d_Pd$}1Zt+?z;9ks+ehNj zT^&b4_a}87i5R;D7nK9411)Iy_`OO_(OoDEqt*oj5J*j?q`TGbqc)%`WMz`PO`=2n zT*(bO)LP}#KIcV^jsf+GrO_dd21qq1fw*L}2_-KXA-Ln^a7E~ZtX3$wf8~m$!fmKj z)NKxY+!{4DIiMsovq#NL?yhF0ew|808ID_ z+h6h{@K_Cssyu;0Trb&snScfWkWVg09Rnop$LiZPqB|Rej&O>Jf4Weh<%ct)k-bGS zbQnbCB}JKn=M?Xo>2sXe4k%3VCt#+FkO<(Us9_1&)aiaGh+PHjVD!*AR z53T58!OA{~jLF|W)DWv9VW>RLXviH5@Sdc z(9q>1ZyklAe`*Gh%K)SLAZ}itAJitHPUpW$bE5&te-*oJN7U9js!sQL#^@glf6x(i zGt1i%)s;W{g*k}^zpSVdoaI1}9VWg1lQ`5fQv3ApEl3;F3000uWr%4g3jfZODfv;K)HayJPO2Le-X#j1M9eDmBZ2uqiF}NBtZeK zB=mzb_a~*H&0#qy`c9JvF3bzQiVCiVf`feRh@$QW>~iEHU_nuB>`?Gz+0qK-f^_cY z`UhZ1SZ)Z*mNTO72Q1gpIxop-X%?S2ipJTD?NNLbQBu z!i|Bre-b$`+2ACfJz2>CG)8Jr(3#unT7~}B#29~TtgZ4c6Po2%lF3NZv?C$oc4+cL zpaOst?WVwRx175*I*njv-3Wl;(`a+~W1fWec@*z7oeUjO0%-h1lW(*8R)XpT4pk^k z2^1}kElm#exe34#os@|kCS`RNmbQ#Y3V`wge*$Gs4oW^m+MO8BOHkF`K^tkq)+h|u zZ4(5oC&e@@jkKqh+Eb~whZpTyg@tdR!av}J!)P1Cm0ubnX!IbVk*EN`K&a>*jV5CG zw@~@xdHKAQGD8GsZZx*z42U56IL_?qh%;h;D|Pl3YR~xC<dR&N+_(%#mSYdVV!4Q21&tcKue;YjCXj}0%T&>f-oorRKY_W8#fp9-nFbdjV z&qWbq6?NpT^O27H?R<9~`SbZmM^>JXbcD<$x7S2zUr8;X+|B2>6`k4J6RyI9Qb^cP zjE^tI6X`-~JV&msMz=BAcI<_N7kOH=;&z;kj3>0ON3?y0Zrj&#F4DeZ=VIEIf5Seh zj)pN!B|l${k_#f_;Wl~cY5ZCYJaIN0b_8T2C#7oq2mLU9t^ouGab?f#X@I`Kntk_e zOA{2{EbWGEXtfKAKJ^@~YWP|#{S5M9b=srnqDpU3xcIkNo&4j+^ahWWIRPY{-#|)y>vYBl?XW-y{O^8Ctf8oFXpqWkEheMP4ulG?v_@EreLEA)YVQdEh7vj)(>?j<3 z(DQwy++A4opuUmF%ZI4w1ETLqr01!;xZ9|>HN3b7AOQjK^42tg9ovgT_;%HJ!hx0e z>XKxxaNNTxH%Cw(hYoN+n}dbE9rL;-tj)xC&u_+#)aktA=vjjhe>y_bd-3MzEWUe7 zSJUb%--2kvMgtOPi(y{Eh=-nI<2J_{30{K2w4Wf6v>FynklX~AsH=wjeF-E z>Nb0Rqh9MAm-rw^e}>g3#W^)Vj^;EVJzjb^ETXaSbTeGUW$4w%cp2a!z%6RvS0Ua4 zm%X(hd|WDSs>PT#bt|X?vSt8T4S+Uuai3z@FZ(ZTUn=Mn zZ51eSQ;#@36xY`yLQfL(crTgaA)!=&33SABNV|^Sm|d2wf9_0_fD%8VbrR1}-ReHA zKPQCRoNiYDiR&w1c%kFL*j|?pq)r!OpXU#Q{u;XUw;V<$jlzA(p|il;gOxl?##9sf z1RY713b%;!Igw%~Lf_?M5K(#8m=BgghPc$^VYnK%_{A&XQkYT=vUvOGvJ+&AN~vb8 zFC`-7VNLkLe}8dxX#cP4Az8X%Z0%=c8ZL&?ab3MyR4uE3O1)A4wUJ`FgINU&Xg?J>>sRN-sz?+88@sx$Cx{o)6Nq%h(YMrAV z#c-Q`xZ@nWyNuqIJSqw?eoY-tOONI8V2n+@qQMxre;x)sVm$QCAAk7L-h#jQt1IAt z{5NpVrbL#XAgQ*L1416c`4sOeEbt6rZ|WM;(Njn>S5k3kNAeG@lMh2y$s-MLeA>*mcozGDnF>y<_frv1Q&jsf|Hza!UefIbep7ov+ZcW)<0;}F>!GI)-< z{6pDQA4i$0_(@lL!MH;Jvi$Bn57amp#?*YXDXQyj{Wua(wT;z9Ux)tAgNfJwijN@w zxP+^EnyK^8Qu}N9G9`!FU<=r-j@(9DV0xBA-HIVV$%=Xaqn4d|p9U&kW5Po80r>-rGS=|F+jr7VuSam4R3t89blCWbdX*lq>~L92z{?f9DBQt;jr> zsDBiyV^0;Q;`;+JhUQNE&0Bo)KrE*}iauAcK^vk2ng(NrQukuwa5%JZ)!xW8kR5ur zva}Tw=WnOiO9vZ-F6C=)y&wqx1ATe+G9({+9{xr8GLJIsc=-QLU%L7oU_hM_WBMp0 z5u>V%0#cJtbP+aFU-z)2f5?o%qG6aFX&7`eI6Cp8ehB=0GyA!$-44J1BecVZ_Q;lP z^K%>^9&*Q01uc%iSe;I$^3$IK+&DG(d#5;SeT}9A z5^f5w(Cy%gsg~P|%H7FJ3dmCxMBf)^_*)fAtve2dOC`5~0JPP6xW6N}++l*RgYMqk z;^r2%oZnkhTDzrnzWbtafs_loDNo78;PqfusCxS^&i8+{&-cYR-~Z5QzAq^n34<*5 zU&2=o(tN)qX1*^ee=<G^#Y*7BP*4RJxO%j>F2$VN;OSxK2m#!E-x3hYg^o*4)QZpwnA%Tv zL+=@G_r2E8AsUnLE)N5vv)ahUcS&Qv-lT8*j%*Q?e;}&H@5EP@eI5qMuj!ZbKfXGXE;Vool>-p#e%&4t&S<$u6i`d02FTceKD7A^lXF9I!+F_s9QD=l z&qg+=ardMsX7a86;c-N`Q_zxh-pX*syZ4BZJ&C$FqC;Aj^;MZ9aB(*taMAqZ>JCNS zV;9#aP;{sgYoC?_lEEc;TZ=&wEXSY|PUoWQf2~}F_m4Kp0jt6DvmEF%8hwm5alH`> z@>BvN+<=BLw&$6sJ@G<}57!JG7xG2Cf~0f*h|^cr>8pgTLdx_{Y)rd-S>mySD1EgS zdlH<1;g5%QMJ?s7XEwmV*mcgxIx>liVaBNdw!fokoLxgnV2rnMmR?eYyJ*Z+{I>D zO$_agozDYEXMZ$t7>}@))p$=9XBhF~f9hc9DEsGWv{A<2!QVy#Vtygs;54Zj9|?Q| zkZQS5bf=;S6tJ3QZ-L=68x8D* zRamg%j~mJQLx&VKWh4Tl(gB|ZZh>?YF;Vof;m#tRrKN2RsDIV6uf8>O<0aHFe-C9E zhx(%<_muWvxTDRV(~z4hh=zRMCrU%^WQO0N9krd1j6|5P(IvuS0AE&rA`2h&q05Fo z6rwowTTWUgeA|_@jQUn5EkK1ryP#1`onxfB*uSjdjDO8)Cnlor#Yo(VzTrm!QWZb$ zyhx-4_^eIcfg6EfKqF{t7#+3Pe}y}6HG|v?EuYBtJsqVxRw@F%pd#>N{%JI%%;usn zFO+7MeuF(bMHK0hSt4J*3-9mwMkiC|SzQ6K{JlZ;FCFhm``@$3Q0W$bQ!>7p3Y$5L_OHQDY1vVjeKe=52oSOzqF z?bn=4E$Tp_WQU*J%V9(hs{}092Vke@>*^{_o~ooJMc1Lq7p^KQ_QX3(Eup>9opQDY zq8M|z6N&a79Inp9&5L7 z!gKyBLnQ8^IwrM1x8)$ae-^>IoS7Ok#k0}Q2y61m6 z2F=(p2Cc^t!+(uIn=I%tXe&N$4=0Pppk4hL#-O>^hTdbhzZr#f$y<>av`HWT_ZYNp z{i69T?QYSTz?uWMe~?%7o+Q+Q7*Q)ctBAa!r_d|9VupeJ@O!hsj^Of(K=IJ$0Obll zsOAo_`_b50vk7_mCVGVnv3x7Yx49dgqPct6>ZEp$Xe0Xb3a=M^wdB}Ksb+_o41(SF zwdi|>{E2N&|L{ZTeOp5^>5i~NJ+FkTOA3aM)ESTxxXH-+f31iLFGEoNYvMl0XPW-2 zClsc)5}0g6torF3U*K`2k;jy&+mzg@(aVSD@THPc%NOYP98k}eC2_TEi*CNp)vFuO zgv2QHG_@c1Rf=_YmUeb`&U=KrByl0%Urt9>uN^vMK%lvA)%&ja-G|J~vypgP#p-a_ z;onq_kk!7`fBllEjIoIu5s)8LbKf-Xh001#;6fPa4=Q);$~W4bkUP*f$vjY#xNla7b4$$6=Y} z8>r1`tGO?g+B^&s*1X=qA3B}h%`yvG1+E+PeeGVse@Zv-?%+qBY@+^wv8UOvmbmW-^F|)`Yu3=?WhgyK#3{k*fL&9RX#{RCAP(P2 z>vqD`f54+g0gqB}Z%Fb%Ub8HU=L4X+_rEj<9n4p{yu<^lrU7zS%Y6BG<{9EWOTQ!u zD+D~GW+PgI6x^m_+ha2wz+2V$t6F;r6ozpJ#SYa~mNSIK(jr#s%VfI52WqDj4C8cbe)$Cls|&f5~l70Ox&|;v7cgAB@BC+CQR{%Makx zM#D>+n(^VOUIMR(T4WE{vJXq%Gti0|#+b@+9XwWE>ljeuuxx|Mw?XBF6gF+e$`z~} zXta`hO0k>}ea#fgjpe*Ty{S{w%}^SsQ5fdgwWw>l6m>?)ZBs0#c~P?Etms81En9vR zf4xJ)7{ii%J&cP2YQB*@SK7Xc;;uGyg;gtoiP=V^?Jwd^et~g@s<=ywWm6qR)2UV3 z?`d<$Mxry@c#N7Ox87j_*fqK@&<$qoaigN|10r`z$%@yptpITCPZaiWl8TGQq1MZ| z9o5OG{jEKG&i$|wSjLNL#-c`IQO#J?e<^JX6?LY&qRvE%Y7d@s4^aY7@}gSZ$xB8F zSX3(()kZ}rrq4+0QcOQ-57G5p=tId86jz=j&QMEUYwuwZ5lkPO|0|A_t~nnA#h8$L z9gw1L5C*Vx2)h?cGiXJ5MSAE0#9>Dqjnr5c2E}q$NvXZEuC~eX6U*!* zw086oeXpO#Mvf4De?<^OJ(>>2ga{Z1(Sp;ebnOC?_bD+Fz4shN@2!-1fr@%cTl5A- zbUn!*+cY0N>ZuLd$~V%44s>%-e{`!-D}|5H7BkK!c76rlUj`)9NzL9rm<9KJd`B4& zPJ6Z3diIO+%vZ}Tr`?IbuR>qLZL8;sh_y0mDMTtbfc5-alq9wMt=*;>%@tLJxPD=s zUdhR+5;1@_#n=@?yDa_k;^4~v9v7sspWmm@jc4NN5Qvz#jbc4+V~Wrz zZevMNLa`_Jm%}!=1*AP-f8z`IK=1^k!3{Bg-r~|^vWe&aovblh53O^|UpM-z9xE4n@oUv*W=o9;_1)dsr61-W<#61Q99$V?Le~Afu479oaFYL7x z^WmP|9X_nyO|s<{m;$e`2S?J1&3ZNqZbGd4{h7Lx_p=a_=h*X)E7iC)4~Xf9BYTJJ zcld|mh$cGxMpSOC!;b6rJ;3Io%SGQ4NHfEU&e9flg0wtA30H~h@&V(m;<`Fk1Bswx zm;M>9R$q(zVyo}Cf2Yd2q%F&x0RNLb8}Pd%`|=0FA(I^5W*yc7#iCYz7-}d=;x34y zEbg4Z_qDX{AnZH zX-fdEWcve0n3+X}aKb&FMewyHtnVPpXCb(aHl;oTPP&&a5$(N6T|6j38h zymQ(Ro*h2?f0k$Cd0tHuV)DG2CUmQ%kuEBTrmsGxZBHW40mcoru|` z3+Ut2%3s`)o zpzi@dyDZq$6R2;0jgr3<_O=?tWr?UbPbel2;ToWJQdu0|MG%B`f&32FejHC>Q2&hA zLya{&4i#mHCIW=rD*GQRa0HwMWcH)Y&mXhW?mO%#MqI0p74T^T)XIvA8%3LOE7y%T z2I5-jf3ycEMy-pM!q&o(OyKtUn<)3c&iq{|f7ov~>}}+86`t4}|{?YitI=dTIpLe>Wklx0?voTXuF2Yv=Qw zV9hMgw*#>MUkHFT2*47)<7RXqLd9kp2+=qBW%7^~uo+OvD(%siBM{YN7NT|whq_g^ zf7HyAap7)FSUJ_~fTt01`C*e&d>2pz}?QPlq>-*?IQ-7M*h`DoVXh|F8(pLf?XYSgl0+ub|noeZRr=23c)z zNtQ~{_c$sXVIx{N&A94J@dk~UjwWdYe}oSYe(=?Lw&6YwAn1Bqvpk>Du39d;e@@%5 z17d$H55s zPsFA}VKMEMHgf*92fmo*e%ytznzVy~Q%y#r!D61x=}*RjhWZY;``bYz?$e=Pe@Z|y zC0F7Knp z%RPHA33BmyzEyj=t>b|)8KcJG1`I7Y#zZgCF+fgCyc>^qQyftI4BK*d_H6bs$eU`j%U0;lp2GzTOf0}n zi00rOMb+tk7CcmfLh8P7M7Bs6AzOBe%W%Aq_e8%cpk?^@d43}vqoCGNf8=I3X!#hxiepf=HYLW_8M7~#9Nidf=C5xI_G5a-jlo{cB$Z{leiYR% z07*c$zxF=b06OjrHnrB!aerqpRJYSQ0+zXkbC}lsF$&ZFJj4AFTe#R*a}9_>Km5Xe zNP+va55x53GJE_zU+L4=egU0g16}jm-<1QY^^b$(GV`ROHY;kCT|Mk=8s+fYe{heKM(tg))C6;JH>E}YS969LgCy?>j3z;CaV3U15s zq$uiErtLS-YegNKnICkj2k}gu^0Nu*F8>&_s-*ax)eiskQ;Ov$(Yp{P-iici6H?^m z_Lu$BUtM}yJC8?>sRoLC9}I0&ca06CoF7TCb3cwVt^5MpQP58;U4v2KAVNHyW~A63 zhw5DK$gR6k{N(MdC4XX1K?*nx^2~DJnc~w%z$@?RIN3jaFM!|g*(p8?{epoD2XP~8 zn+lU<(oUEZui{Y-TQG`>LgDu#KQ#SpSHE?r4;)gRc=(El5C?)~f0a)1v#Z+?k>mMZ zL^#jna8)>C5a6YaivZ73+h=_THNB1-*Gg5P7=czPk-6?Ib3cZht9{^W-b)=uDfqE=^X=xNoE)u5?7sL)zm6fd=Yl-#ufXbp@p#LxV#r zN>ei;B~3s`>&XUr(! z(6XUr@v+wp;uFJBei~yAkBL(!$7#FU=xDxU*ieUR2Y-~P8ZEAKw2r(%{N%OE2rdLH zQ2;&s`1#KCQ1;IT8F5ZltewMZ&p+sO*o&YYg#M&Acw+W~jtzF< zNmvWGCVe8Uz2R?*zFWBk0U94F@3{Yrq?SjHd$R%0m|<7z9l(<4q$xEhsf`Ng7xPTN zvS-W;3QpaR^~xZxvB%M*3aWclkuPxHqJQE^rFhI0F=Oc?l!4l-twyd(no}~5FS-Im zrK0Afl0Imw@Xkz!%4g=_KQsIrAmFh(pb8ne?mq{)K5k<;}F-C0F*Mc+jRZmhx;!$tGO(*Hn%Krex2gc7O^cv@?<6i3(}u73oj z#6IkReORM?Snz#=uhDHo8}TUdlOEpF6U3)b8}MoqMc>0nDzr4Q6sNhG_%A%8R4fgn z0KS2V{>1kU`9WW!xH>4C_JzvqK2)gC-kjxbwWCNe8osv`m^@cijWHWS!@Zh;>#bfb zlY6kd8qjETF#wMdeg8((>A9la{(rqf&|@k9uw2@$`W~kSx*?Ra%=Nlyf$dv&~)wGsx*Nr z)fUlS0G09Zx|jA1zV=p{;i0FtZ&inNdJ!p+ACF2QmPi4;VwgfbUd8)O*|_dVaHmSA z$`>QxO3{)EQ_YJ1Y=RBX6t>a9lpw0(j`w@HlCT$#Y}^M4Ht!dF2iE`CO8_bH z!tPEVs#tP&O+j0?Dg0cb#!(`EY=Y)>+>!R-W$l)XNzmG8w4Jr%)}?b$o&IJWF zGwH7j;q?Y5iG&F7?aQa(7Ta~mz;YaPF4)YzG&DZ_a1;=YL93boRJTogHbOZ}k>ZZR zn++4tx(ZVJ$A9S3*QP`=-K1Au`W}J~4=@R>P}Bg*A7ylGj%2d-0o4q|v~)>aZ%v06 z6*ibAIq;?zzDa?bzIbDXn@oux)os5JZa`YFr^EflFbdQA;J-^9DE3L-Hlybr*5igG z>;uWrrF{*&7aV!CZMX>k9bbgR4hw3pB86G;xmvG%7k_E{$AS*H-H|s5M!n1D;QPSM zR&66jpo}O<5<;uJr;TDMF3LBe43)kH(DRYO z9FHoDF26a7Mh7uvKkm1Rq2PW)Bmsec!Fg(>_P*Yt(su~IKi`0EPwi@w;XZx?M_|u6 zp0i(@PJhE~)Z|H;nKG?LBZYP!N)a>n$fia)Fg9JbG{_eP<Hn^W>t0fquKjXnKPfk?RaLWQbH&J|YEIhF6yW2xV;*m=V zUw#Rg`U(yD49G!)o_G!+C}~x=eG5)nZIceqN{%)LTpdGZ z1`w^u(g5;x)Y$N(5H&Vfk(*s-Cb?`P2(oWb(oWoHAK20!lxIOSg#@&Vk`QO_VZbfQ zXGaYY<5^>wK|hLo4tJH_r*EwK)g6_THGh)vUu8Th`?DCh$PxF|_InNdZ1Xad>){H0OD{o)@}~*0pJ+S$F>W-Jk7csj@%>4ucVom3 zvT*199BE5#;7YVFS_4ZJI_1{Sl8(fc<7uCfwU)S?7!)05e_s$*?8B2W^}_@r>whd4 zk?PaBVjDa8o~}tk}7wYcapTZS}wdgBEk*Y!CKsITS2bqOC}-sKA2EHL(+;8W6M70MM34%KE)d} z0TV)9X9gY?j0}kOCt$_Ne7QL(sDHinwE_K6sabkDj2jj$3-Y}bU4Bsx*U?r-Pbun` zKr)8Px#t!CrMSfvhw5y;dSBNpVmI6Y)suVt&qF)i6R?eLd)M~K{G4ob`~4#+V&CEG z^@8pfp|xDi4pngHUT6b>4_cnw0B!5!GrR9Qv zNdkxkAdiLX%2~2Y>JfDL6U)MY&8`78L|}z4;J!x<$==XOscKA~L8=}z_^L?YCLZ8c zbpz<3H_*HGJy`))y~h@Ki|be~JTx|)BJQiLcuY3Xi5mDd!H?4nk0_?cKe4SBzBGtE zt@Uys{=Orl0;ZGBI*jx`a3GHK6(u!u%Hr(0O~j6 zLs7tz@@s7Y$q;&{lfV0x_VeFboH(J-ec<2*Ws}Q443TpN>dUiHdYOZM8#fvO9+C?3 zcz~I#zD;#n3p`{(*ukFMf>g(zsmdwbUg#d{m^s5N7p}#%0-guxn16Y3U82ix;z0z} z2?laZ<1rp{aBDn5rWjw}RCMyY5BjeOLEBamI_UwPXcIts+bfZbjc$|VPk@%>xlO8P zuv!&*+X2m^owf@-f@ie2?gCjAT!q8Oi!0wlWwT29$iO#Zz@=BKg9vIVaI=|M8(VoX zml7xOo%P)ph5F*k#ed~?gXBGDSZtB}9ty|;NaaVmfnh=K}gf17z7L# z(}t6q$C-(>8+q+cbqmyv_E+A3MBacN)ByK$Sdn(WFHLY-&WT<(+(^qOk#*IFVTMpG z8nnpd*kw%)KYM9XyZw3gd-Bp_Yq`;LG2bUsQ9qN(`gsDE%YUxEn+EV*pg%TsK_>Pr z9yg@4u>*gIYR$ogNN*nal%mF7k8%)n(5&rn_~1fojBRInrG5Dj1lb2jx!$z{U-Umv zEe9r5!*wU_$>o1wFIl$z4}51^{=g6H7>|u8rK9F?tCqb}+l7h$@CCc`9k_tbvllSJ zp;jTf;;Ag0Jb%}i`B9db9l11B={W^eo|65Kh2b7x{g?>#T>$mUQF_lpdZ)p6;xPqkW-2_=x5Za3Mr)VgrSi9Fp= z=guZyTS->eZ9`(#B84;9VDiHCgzmA|7SQn{IKJ%dOmr#EONU=3{IWvp9ffl?u{Y>|4n*nzv+ej(^}uMV<1gpaBYZ+N4|EbH)Yz@n^UBvXNY(XQ@kG`;S}^pEtog+ z#dQ@fe?sUXIWP`tSjuY%;wo5|KRq-jvavqeF~*}zItAq7{$KPGa7kAH#m3QeL`G}e z{C^8kV%l&X`mgi+FzlkH%G%6d3UMv^-wtA}&Yilsejk>Jpj8 z5!d7TORTgm+d8#UQ4M(9pSMUB7D>>$4N1HwlDbtASC_M0h{|YmL67ki5J?bkIcbJ0 z;f#4h$f;1e5FPBYq)KLQtKsosHcRuOtAFWm0Sa_#p}YLzV!5)2L)k%ANRPWrw0Sh%^&ENyr-{n7pWDMOHVVjuRqyqahjl3cz>JB zx^K;nNw|OABmI`1z80?Tw56w?-vf+utM`Z*KFkkRy3a1vuEwMv0m0qhdrzC(TIj7` zIN#8U66+k98=Og)$ifrDP$Z#qv!iH`*BK3nvGwQ>-PXDM=+X|<#a^oF6*=`Noea&6 zz$O0uz0j}WP|r9;`+g8B028;rjejzUeJcnO8@NIH2qZSy^BdufT|EhDC!D2Udy?e9 z=<}N0z}Je-ki_-#5(uwdFdVc-*DkIz*nPnT{S~zW_@_I8Ux_i|VYGICf_9b`Qm+eU zHx&gviJy|lm_;v|i<;mCT0KJ|y=X0J_GEn;htiC=uKFXiQ0CSs;qqNa;D7m4c&jv^ zJ~Ybd@2#)%Ts|SMx`Z?MKl4f!#z|`Lz?iloqqr;u145U8?D+(48EhSKO7x!A3Ca{j zEr$}nS1iYD>K3P1vRTQkRxH7JgP@Egs8C#2o*gV&B9@}KUw#DbhCR08$&b0!Y6E1P zyVqgaGH(pFQo5?yCHYI@;D5dfZxWz!C=5ur$zSX`)+|)$($Sk(`YatUmBZJ{Osxz& zA>@R^#bN00Bcqm{5rm$?yz8;->Nt{}0A1n)GhN}oL9k5pwa)FUi(7q58v!CPWV-?O zp_T2>sVV^hSqINtlz+NSnI0Qx(TxsH`$olby}waF+Mvj0TC(1Uy zK__dq|3}-Kz(-Lf4}ZWjnH-alq(dMO?kGW{K@9}gUzwOr7Ai+ZgU2#1F~u%-J68tRDB zNf>w`xs;0}qUd2z6x#zv5)(GCqeK@e9iaQ(Pa-FnJ=mfL^UrzMu^;hj8%f zqfwT-ae!+f>3{Q0lq7rtg`pf=mhZmQ-xa0ZZ!p5WO(^<;jLt5NWAlV`1E|3lW!?no zVsQdknKYcM>?QMS?dZ`tgi_-9k}<9tCCB3rC}}m0bTGouusV{2gfiDX`8LmRyvR{L zTA+FV>iukme%5$p()B8<7w7{vuK)*3Eyg1W{ynONrGE|_u1pKmvld|HW+f+3GPpo% z<9*+&t>in@2;uhvIlldgDd=wLq_m!lVC%yYADg)_j827<>FDEs_}OZp!pU!9_F~ zp7s@1oqvl4JYRi8M|t@IO1{j}vcAm~8Y}{!$b>$4yQ{nc)!13Wjj(%q)9b%XBT@5H zntl0#_2LRIK9?tct$q*%txwNRbT@`Cei>s*u4SH@4sGD1r@eV-Y}_p>0)(ju#954U zH+2$L&qV+9wy^zP^;9RUW_C9XQ}0BgDv5C2oqr6>g^eFk&Cl+qmGU-kZx1dSY%jY6 zhziLfOy|F#89kYWqED#n1sIIi=Lwjg4Hxf?WG|@&CvhfX&?VGcTRkwjOd*&V!0r)T z#|bFu`59!2D#lbgAcaIz6V7|=ENd(5a+|tgY*`R`O&G`;n8RRbwG7$}9U8*X0+sDi zwtrkDgo`cV7!PEg9^86VbI`|&f9&HI5-eva`|z5-#AzRX{U812oDRM@kzrZ%0I8_y zyHkSVr~HBMpP)fjFXMWA`6+Ut0h+J`xQ->t%LPmT&4z}CE>04PMH8|t*5oB3|5*5< z{eKZ)o>Z55N=ix^j#vb-x9mXfhuMLtE!k#@-w z_bV0{B|7JUBDlwqs89w%;Rd6+7S9Q$XUDl4VXkA?@D5f-4X%#Ha9ABhfCd#7k$+Uqm(GmT zYW0S2BJtV=w0e0H(k(WH>AQy*%WA`b@6X5YRTs3J^R)+&Bin=1zIa#|j`ha3*{gO# zVA5MlW}r-^&-TAIvJu^ViAEG=`wuh!8(K&3h}N|?Uj}mMk6ilW^Myg2&;i7w4Gdy$ z9p4PV7XkMd`WgNh>;io*et(XUnWU06bWErX`2ppfkO(A0og4KHR9Jl;8ZQ0tgAZ<| zF>O%yUE*UWhu-6@4N0x0gyE>TuGa=!&aKDcR=pvC{)cZ6Hr50Uz<0;l2aRdcK4{hq z_CeQEzLwwpp4L6YLw4;^Rs&SEj^W>XMbms_Kv&<^&;i#VPduPvD1YBJv-oPgALQHY z-qNH*W$AN~hI}-sPBU2LHCTxzw58z;&f}f1DVX-bJSG&ZsWld9r}`BgvOmo}Tuyj( zI?k*}l8RnOUxGE-{1S>}(lxd-$0A)vDK@{hh^Yf#U|c>U1Hm-l+3(=H8ynhLkb~>5 zy&$EXuoHQk!Xz(_Y=5A)3*?2zLppEDEVgEhzFrx$J;n;5sdY^_r zzMvSy$91NmvYxsp(cJ`uuNRyg;iY z(L!6vjteOJU7F;ICPWd8#b0fe#`U&n3-R3xI2WZow#@3K{Y#%uwm)ZSP%UzFXKzyo zpL=t?5!TddtbY*V_i95yBN8SQ+vdg^)I9hHu?SE``Vc@$8rKy+N2xm% ztrH4l2CMmOt5AC0L4&gDJWeXZh<_Rkwf}1{OoqSD;D6fmvBB`w+XlmWko~;y8}bp1 z`9BPXdbr>Dj=^v<{Ei0s<*!ix^YsS9lkXV}|AfDV9~cb3Lfs^IUJk!=;n_y0vkuDp z!1WP;D*^nQ;QsA*4TjE`0Hbfm{~1F}p?$-`Bg}9ei3L%8J4MGt$MzL?g}Barbc=$~Qa1+)X#Tdf3wU`?_jM zVF3FOf|e-$j;$%q;1mPUi*U#Bmg0Qxsre(W~P&G#vT%u>qQd?WFzCm%sR2x4zYhV zQ$uJ*Myt=USfGNK>0KNpmew(sO#!1yD5X7tk4vo;WgKMGQ=vm@m1*~GQrj@|rggM1 zD_J(!#mTXTEu@yFGqgi2#{kDxd7PQg41aP+IR#b^s5B@DnY+;1H`GA=XMLcW|o#j(?PGY zXL#Ts^mg5$}RZ=c?ijMhY9ayPflFheu3u zc(S=eh9Yd5zh4`vf9=%kEGYD~FoY2`Q#APQ5o$YaOn$$!W{z+bXb^li8S&~SDJkW^WM`4V%(`|)UOx%_YFWlxzy z(#zDF;fHL5R)<}`J>H;>q67Y5#6bph04gF{TH0`~4hH~gX7HS3=WCK4E@H|E=!*eg zZjFcjyxi;@?Y?}~+1q{jiu0cKVp>=D`d5X?P#MwiCwwCah7N;ERDXrd&?{C#Mc+Y+ ztX&nB!;7Wt=zyn6t2|UJe4`XL^TT*U@d|`06tAK$j0q`=2Z%#DQ<%s%OSorOnwZ(w zc{d&aM#Ip;_?g^|MrRLE3Ku=AOSp89R_AAK6TU>~s_Q@nFtVT#>t^IPK#C87?a9iW*dvjoM~_omszv8pFG-_zh*@f z!Hc(=9X%5LaQE(McSJ80Qm9AppsvGX=i+EHO*evjL^~S|f2JU7xkBlL+ z>Bwy8E$@B~TkkM@;|IXNw_B_l5sK4^PYsw4-EdCi!=&)NhXmz@?2LKIHweWCrUBRQ zhkqy-MSpN^dSvUlRo6$!c}=trzC{L1VR7$iaRJtZGvm4@$sP&|#A7SO6;i+KPRVzF&zO zZX^yY8!MxwG&%L=tf6Sp7~+Pu1}h#`enTc6%Wp&zENAj;MrLz4nQaI3f3ku=8#@AR zDK!x5z@T4uBc5UMPLNo?w9}e{A)Av5TPE=wIjKMe$s52fkLn?8imLY-UG{o!h->KJ z9e=RTuyA}Km|+8XpX11?gtK@D$DL8+xOq5&oPKd!87Ek1M*9Va@w9JCp*apO4X1to z#t0$uxE_3TSbTbU#H@he&I3S(}j^qP@&fMLt$hb zTqOC9>GAD10%6%$ow;*y7o;zldmiglX@8AblLU))=c04CDnoFop|l#0-oty^u|MH? z(%s%fPT#uqh{g3HCxpF&+~o+EAYrH8j@Oo^11f0*@&oz}Je`ch5Ktu+zXkJ7(1Z;kp6L5_q<<{J zH!r=mc{{ZYxV)6_-jLa_TATJ;Oyh-$I!#rvIc4dsPEfLxtRIuq+uQE3DoKgr-b*HCU~ zga@h2Wb2c%9O=kk%e`m9lkbWy98nV5h0=DNjoOJJS1ct_IoBmtz$*syynibIbb<^} zgjGwSfZ4@}Y%9NKVO-8bubu<2)KJ-JO0+*wh^(i=)YvLn>23$g2@e+K+LQ_D+RMLvJ%^ zvD*L!nzti+NM`nBcIjJD`hOLnptKF3>~4Q3KynBpe0J$8 zUVqrz`W7znqX`3m0w@I5k=o3gIqrL(+E5&s%?rDM+>42}VOQD$lCtm1^s}No*>6w% z*6z8LxHZ15)aMRBdC+Y4%zurudmc;FY|RTC zK-D%d^AYRNtiNxL$Bwj1N{;8r_eJTFt>np4Q91`dHSl*B{%T#FVOS@=M#DPUi2Ijl zkxrmF`lDj;S?8nqR?nSex9IQ;b!1-55k^*O`Mf4N$nK4W5snJcTni{FHBjARzw6KR zCMMV;OZr0#@kkdoaDQBLDDTYGL(QNyI;IeIK2N@xWS$QgUewwFv9PNncEke0mr4IntjjN-OYa208!d*ksliGQ}H80;n`goQGQ9i@dLjEv>3Vv?rbzs|Bh@~weJTRh=~!|pIRBSn7|B{BbjGo@9*jfzzj2oBZoRy4jRHF2dy+9^+nQe+=M zT}xV#mkb8Z)WT8^dLPll7m-8612b-btK6f#>e>O{N~1!r2i#}^FmQe5;p=%0X*+jM zx;J??I)88-+v)eW=_uOS^gDmTQ_Ub|H9p~*WQEtIJr=3V;zzT;-mvAP(9l(?!I8ok zC_{&hUpmq5_xg_7rE!VY)IIFLuaeAAnX$Y*T6yt|_T9zzp*o*oU(wq>9&! z7pGC!x9IR`=d@> zT{4&!qv#pblFlx=wPTXVa=B6iq~5hG zGPvT=NcfoGuAR_s*M2wm8eJ>IF$GwAU4Q&V%PxLH?_yh^i?b&XvE^}!fwP*sR_Cnp z(vKlI&h=1W7?tHt*QoGGp6_;+CF6eXWtQ|T^D=8efbVHRfQ6zJJkKoIQE&EBF#F?= zWeT5RHcQXcY2DYK$bT7M&- zGo%a;RuBT;Y6!3p3eMexfW!i&5Igo0IvEsqBlVR$L;@Rq^dCiwBGIXT=0b6m2gJoq8y49}s9BxUc`!SY{(F z6hDie5H=um?4vZ#wPXtS?_kjaMSr66^B957MFPF^H@{yspk<`i`cY%c)+ywUUq@gH zM?j1JcO{m)6}gAP8$$8p6nLjv{RjvzE18ARGp5A)McLxVxZUcSW;9|2CP8o1@%xRo z`s!PtQOEQ~1n=sDndCt<_ai$~px%zA^9chRX-9GPrb5kX9Xdzrl~}@HMt|}W%NJp^ zwKI7W7;3@&HSRxZxNQ-jQ%%Myf**67I~bPb2CZw$t_ z@>jv!f*D4(_HBn49WIxsSAQv58Hj{x^;PZa6TNIA8CO>M4zSz)?Yp}$ehPOwbbMCE za+;ORL?fAek&y5)oj#P6hH@4DWGKpozsbs+kPf}6b)WzLyxE1>h`+ z1aIC#VF^m$M_C*iX&}R5sPOV|fdxi{I_}|A=jWwRX9Cvw6RRWL26c?A&f?psP9FRy zw_%+SR_F96s1wHO92iA)o`xT#6V^c=Ca9B&ZAGy<-C0|S@S~hIL7g+K&YK7)hSiZ6 zoO=;Y1=cyl>U^ICb$?=6oxNF9rw(y`6YG?-I$N<$XIAG!R;M?@c@pb<%lPv5~ z){^-R+MyL1TW(;cH92ph{NQ?7h_k&6RmiSfKC-`yg8Cx6(cc2RauC%^sTV?uE$X^F>$DwC6tWYiK)n5q$>i}K`9z~wz?VUta| z3P0b#--$}wUSM@>Tk(v&_%e^iR4kAc+pppZKTEoMg$0YAh0z4b@_d)_b%UlYNii}h zU8+W&Bhj9@U0A&X0c5JylBJ1$TQ9%GeL5HW1YTEq0e`|aY$TCZVz@tojdf0l@cTUt#k)`UILN7Bs5I8lnVctVrK=|<688#dN6 zBP|WD0WY{6?dhFH48Uv2aqWj^g#G*^axaPa*~mIsOEN{b-!H6eAU8t5-S%Fk?VFZb z1dMjKzkkYhpc{)7llCY%48Nz`@h}C(a|CDRbWbxHc59%~Z94--K(H-4p#F&QX)bqj ze&xP=y|Y@y1Zftxznk+*`1g9}CcCs-$#)u=u~MDj&2UJrm)(9~Jt%ZSP@gykr76Rl z$a86BV?FZ*rK#WI0UMt2hS009zZJjP-1b#tJAbb(rcgQC)!RDQPIhNcoTM!iFDw(Z zo5BoIm#h?^Kq$I^{B_pDc+%ln){tGYECT-e!QYMWcN+y*xbCkQg0~;eLjlh-D59~P z(?F~<^MQi?yYMTmh6Xn2-lVx+U{rSJX%^DJ>a6b_FcNsshz+an{!YX1dx9E9&Q2nz zwtt37+l?(5_@!*1`}2VwwSWe?K^dFJBOopf4D_p0aiBfRPFOvz1@OBZ{=Ttb1j|(q zj*K-ZcV_DTHT{M$F>=MWwR}Eeoa7bFY}GBK%_66P)PI!O<=0?X$4i=J7T zdqiQRSIj)utKR)nZoX&fh-N}>{WMrS^?$C1M9d-Kk^qw@l{U-GtK^ zS2-IBEih$EEa5}6_5;tEj6rH7+waZs4oyeGaBhaY+O3E~Z(tu_> z>SIV#^-i3j4f&qT>Dp~y7?e3ppiDNhw3y6yF2^n* z_jIt|#&ED7#uyA5mIo2)2!P6hCr=JW^6BmYB#jKo`*mn;4as{1G^j!cB@XT4^9;wX z9LIz6IgVE8GR!!O`>Itae&s4{l{ub|(~NEAR*F8Z_xr*CA3|*t9)Fn16OBl`&v&DB zm&TISI_IPE_L(#zAI(q04F-9nUmwat%HUVoNY;=K$#&=^XgH%)!o4Hf?Wwg|$5goB1CciwVfy$2NpoC~`Og>BDq-xr8Y*gL}<#9RYX`|BVGN84V zq4l^9Ym|mow_vnxLQq|w)27QKp+VDSY7lBBhT6?KxU-!&xGy^CsNKX-+x9nx+N~V5 zx91uSmM;)Dn{)+m%WgAJ{elPTb`=NeFalp2t`F2McdTAj*T&DC1{!qmFeUcA+q;4j8Fp%`5ZxZtqAtkK5r zs5XB8i!QWWuzv-L`B`L~f#UJ|pQS-8I)wIU8{vtiWEFw}h;OmE)kg<5*vx?$%|Uak zAA%`;R-0QxLxSd(u}ffXeZjWqJu$s~?|Rvl&{&7mTcn#5pjxq;2d| z-)D#w>5yt8IHdIvL5R`!_0thULl_;g+3^9y*m+Ud?SDGB5)H9Q0mPCxVtb!qh%MoW zt)Fc)u<5>mVfD*18koOnSmo(hea7a)UZvz2P9pBpQ99T;fYQfo6ZpFhD@#KuI)IV} zYZynVkx!@Ih*GE1!V6_u;QF5Tuv6n~CK=VWmW*~N$}CP+)VD8Frq*v}1ubUv)+{b$>O}?Z0Qyw^M8uxP2RLeXH!AH;`7s{R>q4JM|v)UerN-e;LEMy|I?nDbSly zcaoFiHZ`%CD!j!ij3Xf1RXn=K*Pmxk-)Bz;!Be%66>VTeeF>=_)k}nw`nN{H%{(ix znW?un=^L-Ql6-#PYK-SK;uN6rv3%ru<;i|^Mt>uF;|ly@g*4X2XZc!hecy7J!3xDg%#6AqbgP{Gu};$#e6Me}-6_V`9+q|~LI?^r z3V#pSnP#=6G$oi05Bi=_vU<*Q{CTF%7pbv$>XLAyhJi1l1qSPN7-vuE80?J*!k{=d zfB|v>ItDG+h4rTx1{*jACuRgqlu$z9?UNjZw_Bp{jt=B60TfDtQ3we_VR0}DEjGe| z9EBMig()-GDjVE{t>2)vKDlM<@9OXWe1B4JeOPeoMKOWaQ-fP?u@!!NlC_@5TR%RX zE$UmS_4jLe>(N22x7ya`1={~5JgEK9p!UBD4{E=~+qd%ecZRd}ADYg-{swA4MQi_0 zVQg#F=4r4b|1To}h#>C>IA1l==Z0lrkTOg3g%;r9VLl5+M8ui3sNlHg~=lKyd!a z;C!sZS)#$|{TqXG>`V}xn+Q(LaeyQIMsS=A&P)a;Ux$;X!AYxUaGno_(~sbkAe{d7 z1ZNp`Tg55HECP zYJj@k`wKEQQ%KA6gI2B%`-KsmE&O*Qd$D3_5JCF;FN`JPx|#R%mp$+Rmx=lvV|qr` z(a&9V1Y>zn;{)r6apUTMnL32db*zbE{=1C5Y7K6F4ttl2^Ec`5j;~`J*Tr+}_v|^w z|4n7P%JFmb8W%3lPk#aSvHBe2)rOsCzeCQ`8;7Q_eQ>~edV`CEW%x$?c?R3ff1hM; zygh}rF^|2$#kptjjr-0A`_Q$_8Lh_^)ncn*3~4E>@8Wo%HX|pB(h+xKnD8{7YGl_} z8HHks{dBS)+K99C>|(F|V*eU(-x+&mja?X3Bg&x@#LUCa=zo0c&~(a)9pd{Hb6xMd zEM^{cPPAtp7Tj;MNUl>!_K2j-w~lrwme+QI5k2&!ov4Pp+}T7M(;X!9RPunMP7FA@ zlycZ&tWi70UGF_jOx;N--}{NFaNl(dHrQkPxnFl|zv$|;{pvT~;3?OuXGD30R_#Zsc7j#IbB?DmL>cRt-7IZArLXU>XC`&rGeYqxIt$T0 zBq)8o{w>{Dnt7LrralRh|A0iapMJA&|)0sagwQ-t`ikyKHgvmB!y!Fq5LDye0 z=r097$Kzo3ytY|;9&F#H*-x(cxrWJ(FFCm?yojB)NPnLuCmET(8{-S3rBse*IHeuw zO!-GbgyPNY)zm^w?3@?E#m>wSO*~*JovJZjW@9nhHfZu|f=N#?`!E3cX?eRqC0dzfzy-3Lc1qid26!KkR$cY!Gn-n017E?YP4l##{?}0a-?#*`;y-^nvDN* zQY!*Z5ojnGPL2^iIwVEAAFL}BKZ9devb2|I=D>; z&KXXgu0Q5LcfV^b8R}bSE6IcprSp@7imy3y`y`8}YNe>P^vSrxJbf?>4R!D%9-#HH zm$9|U#sFJ8A5Z>aGi&+gJ@BU5lNkjJ?-MX~xVaDQYN_y}Tsp-!wAaa&{wrnbsQ@n| z9e?sCOgsb|*&0gn7Sq%_0OZHs1mq|9QU22!Na88Bx3bCRPlyWw@@Wu|w-}Ih2&6y* za)bjpa1w#gRAI9QAypm(NV`!DUXrPd@27h6@-*bdFtEf0$*$ph;VNOq8>_6@SNL0N=x+6m!{)PAV0jnThpT2BSr;3rKy_ zn4gI9^&r45di5FrPvN8w8!5U%xw5`5Vi--%alWsVw}Ngv3UEO7J?^I3#Uq$8RPm0_ zHQbU!3?D0JJzj)v>>!Qt#a%;;Lp(Ldht^*ma>lITlu78_a z`!C5cU5e0)H3o)qjq-gOCD5*QBO<*k(B5c4Jd76Rc1k}i9@qu-zjtH(ixfhtqQh_w zKtE$%ag&GrtMF6Nk$tb`zmMCr9J88WuQ-UfOd?!vzn6L=tPkLU>6T92g@HlSdso6H zdSKUPJbZ+`@xWetdZRJ`-|!5p1b;xo2~aLa@^=kacDIeI(WD$lJs0J-7I4Yk_5>*d zU#!r8wS|M{`P`|d=}R2h&F^At!7y6FjkKH(7?}WLK%BoNT%J|7g|N8W@-$JD3qtX5 zvA~x81FD)b@~xg59P%yGq6C8{<+Jg$0hlPJO3ZppQNmIt%mYamO`etMT`5Z63-Esk z{n#{nJzy#5UD)1|oPC*LB~ZXRgs%MBOOJS1ePb-iz7fC~r4Nge&FUXQ)r4{ z-AJ?kKcwamLpP-bD9hBiihaOH=Zw@~GJk&#VmiOTlCeT8Qr{XqxZDAT_g~LuaL- z+OmK-0ijJnP!q0P1cn#g9G>MF6xnrgitk@~WoWbqHhPj8^^G?ge1{|~HIjen$TZrA z$7Lw{;E6h(xOM)}^$tBK#aCVp_AiRFd*&wEJ&z^vyeV_cxKJcZoG6{Q%VW%R@7+rVUhjX}?fWgrSMCqt<1TCN2%*oqv_R z`@hAfN~;v=ivWg|GXOie>q?s`cJ@~Ihb6iR5By~&`7*Z zxLv-_h%Nx#hu!iyE<-ZKgnfxw!ofZ}ELA8%(=%DDDQt>dY!S9pyVZX*cT?13_sF3e zO=WUdbNY_V8sRx_dfAHRS6+Fg2Yzy{QFytmQ#G_;@SY5D?=W{df_t{7yKj>$zFFAR zW3ib4P4fLm7PrE^u!>BG<@CIhgo@7QpGI%72o+u`V zrHLAWXpu_^hsNQ#0||`D;Yow-bU)#KhgwfzV=+~)+82}YG-KM+#i0$yeQ*8_8d%Bq ztW<$j+~0@rTEb_whR0&DF0#AmVc^@jg`{xIRHh8+ruRgT?mB-=q398!E(lkh-fnzt zvM)ALcxTL4nwSyi?5g~fph2VLVO8B)B`nJ3U&CKMf%wxZ9qxSeKkaog-&<@ zGG0{_E{)@M>Dzyt)Z;nQ9w>C(>yWz+N4vAsZ^n7LcFK{AIcU$fm`n)Z;*ltH;3#7T z3U+B{PHH*s+bzWvAt0_4g;BjoZrQHy@BT7tMzYb>Ao{CVHeb8j3;lUHLRjgdxo|v3 zzAwX$czrAMLwsHLJLG7NT8<~WXO0wtX_UZ$7bNtH9cEYbf$FJaz;5SUeFI~egsV#mT_g`()e}!Lk5PmPAaLiEr9sFK1 zbNrq+bNmXU{tNuF|6k$fkoEw6X%vQGk6p*Fw?6fHM-hHNL#{+{{4PXr{4Ph5*bGwg zAHeVP$ZLP$C+hgY{0m|D;rb{ZX-3{u>obRkEKYJHGDD%R`?H4HWDPZ2q}Fw~D)RpT zeg=Aj8MA0OW(V+d$dioFzQa^wPu-s*M-K)xM23c_p>Z^vqp>fXqp`&tK%?;Y+b^W5 z%%G*6_H*P1So??VsRy9_bZ9@9wV$iC|A5y1c&&f^;eWh+18YCGgZAz6lSUXFi$oSE zo>k1G<=rW?tHT_BCXeP25;3OmyFQ$#8}5x&IB@$E7&~#_8K7$;fui-$DB3$=9O>7> zIMN?QXcUd&(T18a!GLTh=QD;eOWTgtK>>=EPx=**Q)XB~K-w_6e#2y;+;uEK)TZf+ z5^aAu*`j0!ujB|%X@hX|$l!JQTPR1^7s?TiiO_oack#V9EO-U9kFQWeg*N4Byv6JL=!w zBZKMU4;joS_GVGk|~I z`wYGJHT2#va`av_a`ZNt0_goA{C=ZcDFnF#{3aX6$-N)20H-e$9|_U%tI+T}5WsH( z!*7FzU$cSZhq*%uzwYhfcQ@c?>}dTn{5Jev|BaKoPGJ2visLu6{r)Ru_?0sJoDZY) zF*Qev!lu#u-^FJeX}t+jyZE5XlYf7^T^{y?>bM9pgCR=i)PIcP9yT)q%I@n1;<1Ue zSDEZ%fmfipB@U?yV}@2MBWhw`qwo_etO^&k`3~DY&E}$gO(3D1vu4al7FoQgG(AON zC3;-vwhT1#WQLY9aY{wL&2ybHJyKUDJ%q=QZ2^IxwXyXEZ-9D6BYo~g2mF64R(bv8 z$Vr>J!&HSKpfZxpu>VOf1#OLi_|O?MLiqd8T_JW;qiAYU&ooj-n(LLX%sN)p%~aN3 z*&HbQ6jk>AavJcWy;raYc!#(e)B+4vrr*V13cmZa#oc|EgYVF;4agkMa=7bpRc`|B zJ|x}v^~&u59MYPpNbN(v*C~HJ1CJ6|5wq_r>91h)A^zwR0qU=wzRJE-JHUm$*U3N`$8O^+10l6dgj^dSyCo!3Mc(izPs@j(bL^h zii!CI+Ywnjm~Sbr7K%c{P!k*nrBy}AwNUdf=%=tbFPsVvL&1L~EcmQ0oY{;O0R6Ch zo*zkf$#r@&)=5z}>()y!-Mec9&KFGUS)}o#(T9%0vYanY= zNeIXVs0-12>~5x(Tj4NvHRjFvP;juB@<1Sb4FT6(+-TR=7=AS<4Gkgp~$XxLsJeix&S5wEsym&RTZNVX zWaT22kKupi4q>I2mFH4cepP_32vnB={rV{&el}J z6}A?pv9(I)NnNX{YGGi7O-4!!=MmHibb>p|EOLJxsE9gH)ePw2{3tpLk9{!~ru-CE zlY?=?arMwuJ-$Roy4Y6J2EKK+;EraWWl6138?W%oed<~5a=&^?yF8$Nqg{TZ?$$29 zR=wKgL3Ja$gsYGE)gkro{AwR1kz!ZR=vPJTYQ-5`o$4aJe4c*wuzof9N}EsgUEi)= zcc_1+*KMNAt1WfGExSS31l-(c>iDz3G+3ApxCHZ6U`hnOa1)HdI^gDj4!HH1c{bC) zBE@Xx@k6qaVvB`YhMDmgU30`&kO!6Cld?of#P3 zCq~)wg;_IAxuGy?)(imRyvv`^=~J>lxqW}8D1{D4Lf5`IjTHafbXk-~;fb^He#`{# zr$o8|t0&UlN--~tk0(E_DP0Wy8ec`aUpnFQ_!C_Jj>RMb8@~!glPV~USumau3W_^`ZQ-wVmQ-T z&|2wa?CX6#S*r4VhDHNbYZ3iA-)QBlK=pq$YqQTL?NM*ULx}Z(r!P<-m4pdA)MJuz zp>vdhPgdmTMR^SLUFCmbDby|=x9ZXKl-U6=IRJ)RDg{?*rznWuac5c3<;Z^_9d$_i zT*-Q-&>NK40OSi-8RX@}>LA~VY}9w7fV<}L0rz1H!CacjE?{Mfs>UcFvLQMw@@IF$CL%R(K0?_Eu;DZY*+clH|1rqiRyiU7^5R?qYoD zbyxI{4c9)__k)dDhNxYxgc&;EcimaWS?%}Vp36GOe_v^@|GxZN2ny5AkwN@8_E!k} zVt<8PtG_?+0d%^|8YZZc9GATYl5WToRz zxcV^=ml(eTKp*xe^n+&6+N{o>@bky9JVboa?vCR5V3btA{&pPWH0-UrMak=6nr#^G zXhR8#FBtEfhGGVyxYtL7AqG$#C#@tIJgLs%SDiTxd<|uiy%|D z2$IJ|kQrPAnaxFzd0Yf3;3A0g4EtTe<&UK(e>80W6;&#v1x?>i6u04`Wea|l5)KOt*VKnHX&9 zVUhL<>%X!{U)wS-2``shH(vHxKhg_SR}vhReIPhhr-OIrC~p?ov;Espa_+<;08BKfn&@!3z>v%B$G zo%U=Ny%&GQpWQ(3Me%17L;0Z7GbWY1#-$b1HDhWBdh{!C>QhjXc!rf{Q295!93+Rr zP)%}x@~ylaB!^X@n&bfG@9}bw9F~M?lEV>ADw%?k!`-2pSoA+tLW-JMt82x2UE1z3;Bgj22lzT)j_mtJT%XX-bp=t{!Z~{%>@xrEE zWV?R?++z;9Xm8rZwku&(8v2D>-lS_(gcqMJjUq#s?UJG%r%ZAq%?{6>0!ARJ6DI^s z)It-@n1$%g{<&}Zi z_*)2-Pp0yZ1G6!d)z72ymjbiVz{+P+`BQ<}xRJprpz{2{Y^=ocd--fEXS0z~HE-IL zx>Fs}OeZTKf}+T4X*i+oB}p}0*px^cnI~NR6@7?_Th7Og-6B=zTRm@6w>jje=@);4 z^}&vR-~;BnA9V@gvq$Qorq%#`O$@uGg1eDwR#;LiR7Jb2RKL?Mx2yXvX$z-XzuKZ- zp-R|-vZ6(oA4i&TezB=;Cgw{;jusXK$=0h9{nvN}tEtDXXibdQ8ylrxW$9Px`qfSP zRX_bILBHyxUm5kQ2IvO1USP3#Yu$g|9k`oT(n9HG*?hv!GBGkqHWql<_wy~qURN*J z4n&~#(37yj;`9}^v~e*QbYI)5$tg^UFqwY^6PCi3S#-ykTAGi{>k8x1Dc8a3EzBBuFKHPj7}4DR zr+={M3O2Y4;^AWsK_!+>eBdXhuAcIX(X>x2{qpW7emwZX)w zVb-@)Ek=s@ZFqk?$T%OE4ZaipgcEO}ba-+&lMapRm~`0aPuTMoh0OGQ-Zox(k^>LX zg7a{s*`>o)49kC#)(oCgZ>79vRkn0LnQI|A02!#{JOynG(l?#tPl{0WYnMeB&=GG_ zD9>HW&G(xyk$q7iO`+c?3oBVYW;Q#g20?KSkw(OU9PWP^5w|2qluW`#Gt(MLUW{Fh zljEk6aM53h*ryDOawhq!d>fSyefm6H^D|f8`1aT{e{;rHh8uFEE50bi!nq2j=O(5F zDuY#TXMsd#qnN%#i!x9ATLpaxMtUW8x+;sj+(@x|mFz%M1AZpw#V|6EOW(6)vyD&LSfizB`?XUvbYr(M>#ji0$0MQ8mS!l z$Zss}vLxR=Wz!iQk=J}J)gnyUvZyJ<5bR&$&U$kq>Mf=paa}KuFlJE#qt&l6kHE(> zfXr+Po$RhPGd~&@!yd*cLy-;4cT_4x9##+OM#-^Qu8)yRpB+_ zW!v{*`W^jo*;u0N&y)W6a3 z;!J-n%o>1ToGJc<9k0_$>>H#(u45YH2C=x_)m<_C(`?u+#mvbhLig%OQWYO<=|oHF z>>s zE&M6)S7)Gjm}~zOkA+5|b9N1G=1CYFF$I5To(V)1RGDEuJw|#%e`T~V4KNZxx+fp1 zg0?=TJjQX$MZ#UN*K4H8L9=H|CR-9XTE<- z4yclZRirCc&wLMTbMs|u$^2&>bPx>xEOB_|7h2q>L7tm{jh4(Wp+Nso5$KEUeNoPN z3kwS134RV`yqyI5U~x$(MF=hh0M$^t1}Ypz_($PSft#Q6h2_O{xV?I2zUA=bY_NL% zX@+-{?JtF(Gbu4Umilc*U@^$h2F8E-FC<0U3dPJyq397jCbW45jua)i5#T7p`Wg*D z5KHD!nlAQX?#sm~BsbEMbU59~yf&Ek&?ZR6|qHyaJRG5bN| zRX#IY;@V%s^|V39wTyfwPrgF9J~Eo&`Z5(pb6hbwLkGBi@(STPn&JBIvF+kobT66n zl($Cr?Ym@DAh%mJ#em^*9}cAxXm=X;MrUJ)Op%vTU3h z!4svzQWJM(UVvvKQgBHmwzY_=vAI*c4cf!0;>8ZjJT9y%C2^C@qu+WN4bll;3cTt$ zUl)Uu>{j*VKn1v;x2Re93aWjMgp{63JT84Z371%?WEhO=SxAV`M5BK}eWb00&hOBR zlec$FFLHAjy~q<8y;wr@Vtyg5RSL;sBx-SFETgs8>rcB#dk8j*NKBO7a4 zQ;T`Y_I&&|2iqJ+`yNt_3`8lLQ4D+spNiNqxvfb?+BHcAl8eLFA{T$!Z)im>#v3`g zSZrjjAlY`L7mpJ*1Ji%BVUFp^$i-q~D{}FOQ6m?*%It`1kc)3j?URe#N?ReWz@@YT z*O~YVT+JEyT;=#%K<1=`h#{D~I;;Sx#ZFj0b}6(>OfMG?RHIBZxAoe|2<1yXlV?Am zcG{h8OL@fR7ZZ$pxuN$ZC7x5~Hn&_ebBJYY+0@nH+A=*ywRwL(7MC`&wL=DUxOP5l z4y>KhL|QvH;M&=9HU>HzmPX*Ytz_Px{L1r*eC6QN71#a{zHWARg>^GCAb9Zj$CO>P zmMxbgwp{)-SX(XzwpR7f0R>xab z&pR|8OJKu+)j^@{StxrMMOq~e%2EA`2($V4R48#W68nEVsAu3a{Gx$oICd>C`YfYf zn+aZK;1hfSZHLgkLh%E%^F8%EZZQKoS=kmdhzkFg$JFiLb~~I*1k|4}_IcW3PN(7e zNXP}*HK(2JFy7eK7`CgC!p#E%`+76ZF$`z87Ei!Yu`-Rw+RYkefZf3PgtY{=kyB*O z0o^pD!wG*mqt(jFgx2M0eii33u1U0$A!7MDpBF_ku9Y&Oq{}@ z4Lj!YmJl9|bR7k4uOg8H6W97E{wI8tZ>MrK#Kc@uahX>A^{b3oFcmuVs4)^1rmkBSnhNDh78jiE%Zvaj0=5J45g6F5A z^fNmq_d+Z8AI9&96f<`U#k=TR!~$hT7t|c)#EFu9vN9=flc$Uh+{{+80ymw2?@U)sg$UeX%$|c$$N==22r-ZnoM9Iia z%WdiP){IBfSUMeP&Opb|K|=8h#K@X3#_eHi#^N{@m)4qbd(mAWu#*$CKOvdN(v5#= zp~3VlHdl^{GfFZ0268cYBx*nxFfFBBuvRj)WlyfQj8&Gr%+-?-STv`e3A%Nn=MGe# zt$HSw(E=h0QiNxAQsMFpKmz@qr3FJo_gw~|_(MYY9*ll_xNvzKl%VRaFzdi@l&F{c z6Bbi2TbHXHL{l_GKPLUJp#`E&7b1Tdr5t#PkaXs^LGVYJ5Ok#~b6+Q+{OeStHT5!S z097B+pE4>t#manc`i^8i;cV!dvmi4F->x;#K2Tob)e;?(}~KTPtY# zn-e2C)Zc8rLDS!aw$a~w^$T;Q;QE`t`bdBCUe-1BH=(WcH&5S8`kR>A4)r&oO5F3; z*53r@Ys4@zNIqCR01M^?t#e4{mBW#G=0+>>tA{WR+64@AN68yKk&KO<(vENZ@5FZr z#ACw*ku3kHGGA{>#892m9vFX2rFsa)zrv>a>P_*$EzneUi>9stKc+qSvxmfLi73A` z8(QTwYSTg+{h~;jUvX1U!>a-wiN%qelp|GBB%*yV#v`D=6f`FRU}8lJdqjLIubsCP z!O$i%Scl`4X4l6n#jJf~HiDkb^E5j!q=`0sLkxQI%^eZ?H@97L?eBjtJf;n$j)ks0 zL+(d!7?_Ae7Y>$Y^dma&&cVd3Ka#%rD~imfoI4W<7tT!mzH=| z<7(5^*fW0-RyPo`C&Ya|M&T&)p!>AZDxDUk3!?la8jUvC5tiv9e4xdD5UA4akI!*P z^*N~xImJJSg6*>J-^72v-H#h^*g;)md*&ct8!TE&;nL*U24|G8(UCkyIhCac;VZxh zFlV3;Hf7L%gCHCi4x9C!svuBp8LwGLc9h!zo;L^03;=0!?j$rGi6fNJ^<4AR=jNsHudXs`mGeJQeZ5}x3WthD>fL&{5x zw&ESGAsBV-u{*3Kb~LL5R6Ca#MgI;A(XFgD1qhTJ_P=X@oy)9q-K6{q-wVKnP4t!jOI|h|fbVd= znzl{|Sc$Z%X(L%%rD@T(+1|yKd2D6rPu}ugv2?s+J;EV&`SKmT47# z=zGuO{0a{V9)Ptkg~A8!5i=WI(G>Si`4b93W}J5pz4^Zz|41h@{)lWWg-u8EGpn8V zl`c_eXn?N3k`Jd0RYeOyld6+oO{>G7<4FZ2LYMRjuho-N5Z*sOjVe)DU8W|&O zf->zbV0Fr_{k^d5QNH(> zdE{PadSTYngXny7Fv)!bS1`FRnaO>vTwI#*V6&GpZH*ZftzpZ10t%gN4f&$*RHc7P zfvr5teifxnj4rquL}@jn3O0XXRx)cRoZ8t|7|1^|)4`QoqJ;5G2CUiK>>rc)>6Mzr zT|m|&f2%B1b-~N)XtY-Im!EI_@))V;N-ex44z>A(;&*YSuSPlJ{Sa4-yE?=}H_)p_ zbmPLc$H@8By^f@4G*o$u8LDL4rN>0w!yA|&DW<#+ z9n)S&!DCu=AB<&Tmdvm{g$Tr~V-@yO1q_x5h^qJavEEEp?Gae;71Mar_4s-*+WPPzuk$P1txzDwwAaS zRN4v*7Ba#>i+S6u65AZF3rPWJsA_ub#hx@oP;_(W$w0Ey|XSuvTKO_Ts1JqYuRx05LoK_!EvTW2QgHdZCbi zbs5HkY((*WCtRvyuOh5Xyv`=7b0kpbU92;!J%wN}zpF7ROuSPDq4j^9#;2fcr`(2w zh^Y6EmoQ~#5Qp0l1*Lq>qL$D(kjpuc##uRdj8e54DZMjK7YsEhFtcFW$&x$6Blw%F zM7I**{z(4awYO^dcb_Q?%D>wx{qA22V-0_7KVtngiJKL{o@Atajd3Kkogs!J;p-k4 zNOh+j_RI9a?vr=rU?6|hJ&yFzX1jD$On)HGeqe`qV3#9v7ZbrOrP*Y3RPL_53%2Xj zYCD>mN^y26Ts*K7O6=+T?Viq}1pS?`7=TmF)M@|<55@HJ=q)NGObtA-%N8@9P^FiP zXcs3XShQ!>)G`ZB)&sl5^rNC@S{&NM>B1_CDHx}^0_4C@3mJci^5IWQM2$L3DT?0) zqN&Tl%#ple>haC!5iEKyn^=aH%p)MaiNdHR^hXq|jbi5Ig&$kxY=y)6p}Pj_W(Lc- z272v{#CSuF9DO3a%r5uFG@W*-!JfK9bbBL2uWEwc0+7{YzO{=~Rpr1HUJyToSEs|P z>c+PDnTvNgV?=-VNtn_0M)l)HzrUhA{$d`^e_%C(?ZuGeL|GgIAMbZ2VeGoQYsH3( z_RO-!;*~CyNXS^cU-eZCDI%;_(AJBLHyqLhyZfg`yEL{@*|8O6){lsETQInV!JY|# z_u8d{c46cWvEiuuRD@lA^qiOq|DQ*tU-4O29KCzB0Rw;Js&|C2%*RD@i7t-vi^Ww! z@k4Zmde#}~$UG~!b6EoW9OUVh75Vs}&6vXYdGeg75K~cb@Dwx>8=>5? zO;NYnP{) z0U4k;sn~xp%I*rS|9lzBZS^dFE*ffyro(_N;*R*j_*K|bt3;33=!;iguF$bsx{XCp zKIVVyCPLGl#nfL!41OkUPv5Wn>WRTAp@oM5k$Y|n#(~TMJF*YO0MNi~qg$Z1ew5}f z{C@g25oR!anAmX4{e6U3<;8qQV(MNob(d)J2B`^@pUZVr_f;?-)3iWLjJ5<8+fUN+ z0bt}4n2su-;y}UU97Q1Zkn$WB+K(77NX~zTQK%4#5Az^z#g%Zusn$g?^Dv+Z9eG^z z@50$HKWTQDn(cCQcSq(qVKv6oS2q8q_j*seJS;+NfQf%q?0;EIy^3=zwGz9XXB=kn zA5ineLiy8CVzrTD^ldOkd#UuSQ2ZqwJkJ2R5*T4vn-0%MTrT|)mnE`TxFr(Oc9ef( z7}8QDjJUnwTPE20cUjy&L?}x?CuAM+T(h0wW~v?|hYqo4?y(D__Bc!mF3z-^%!|V6 zc*5r1WLS~kh^7N#<{@Dvo;)a%ytv8_LR%6heJW7?6sxU1q4;a8aXZvNeUt-Bd4{E>NQvu`~N$5K}KA(SP&l7z0~xdzJo_ z_h*kib+^OwXd?zOlIWbDb&a})3>SV8Rt`cY?AI&`xtqB`;ZvH<1wd6d!mEoJW$fozLNdRJm%lrn!cLPG@k zKc!Cqkq|FEKi!h6`knoR&1IU%w4?OJ9c5Ily`dg=lsLt^RY$~x#&p8^I+|3E(0+2+ z?mi9s$+$-4@y)U2#T9=SghZ+!v?hUuA&RcouDiN^bywDPSG>w8q?D#DR}09c zoT4%zAO*As(B}U<&pVT&E$Ht5=f{%C>kIlmLMd4w2?ru#H|Ueg_)YfprD_Xk#6TL;ubpLD&Dy+41|x#Kq#mWTbcpo@3jm% zgvfr-vJkT0A^ij6FWi4mwFDMRV>X6PGVYza`L1I{H;;tSuYqa0qc*^iA_p ztXWNnxC=!eAnrSzh`28y;x4+p>JImIUA|M3=DvIkmitCc~!ZQ`dQ3(u^AQ&cVo3`jJ{%mxxTyk`y*P<;z!pgI06`Uc<^-j(3POE_p4l2f zL46i|J)ph%LiK-7i1tbf^=p4Byi-Z%FqY32q3VCdN->ZH-#;$&}V-i0ys zk_CP?xpfE^{~>cCDo%{9;vWo`1LNcyF4hQxs_;~RUS{nS-1oJRh1JRo1dl0#ARyM0g8t%MQ98XYO#jz2 z`fmv345)u!7kYDcMCI4oZJP$nHcWoAeIlDOvIT;^0p{BvpkU*91mLqu(AUnt7qjR6 zaymrA`@ym`G}lU;EAfL!zbS(lep3Sf?+Z`u&h@g*3U1#Wo>W5@`yC}uOg`O7p7`J9 zKkR>)|0`=l^M7_-c>d3?z3Tk0%HIwA{J-VzlEQzJIJXvIwl)|z8l}IMGuVC0RL6*c z9wUt4h{Qn8hL|=)KzeUS9P}FEAZ_4kI7m)vM{XQ;1?>!s93+JbgP?ytpbz51rZZPq za*EBQ%0$)(d;~882~i`;N3lqGV(dM3;@ z+nyyXBzRuXpb`|w%b+%kdY^z3t(FW9z(L<44g!4SM;tUC*;afxsTKzn-O!;g$V@BN zxS^Db(&*LU{1+h3`&Z%3VXGA&f~^gFB>;av&{pHDdJ zBn%16hsjUkRHQ5D|6l&-y^7z)A3eP4xA8~sN&j#7BmXDAkv}^2F4vLstp)vvE|L|JH^KbTL2RDt_JK-pPMQ*U2`%x+;#7 zdUkfcx!QaUQS<%#_aR+0I^N8Qnsf`V*i`TRUQtVrW0fml%2an~CX?B#x}2{mJYR8_ z)VIrd{@EZx8Hd0*Ra)|C2u_~*EF$^RpFTuwl!sryQChpB3AGKmKicbH;+RJ9PSDOPVTcB^m%=PyK? zDq~-J%L342KzG5#OWh1%`OLQp5$ZL9K7fB(&ci?qGO2u@)Xk2>03YmZk&>({iKqrXl^*{O6F=C`k#z(k z(Sm`yBmbhN7G zUn@P&8ZL!~OZ%58bp)k{{vCQ>hr_NQ&;CQWo)9zC#cl50le4(Tq+8tiy)7R2bLUI& ziQgN^enxdW(HubLIyc($JP%|D(v#nJ1qhMzKe35f{K(j+*!iOUf}`pijUnTqr6yl$ zCmRD*E=rf+4Gw>6j-IIE{(D|~#q9N?de zt_{$H58DbS!*5qEco^-of+2qv032}_I``q8N%LQa9-SF0zNp^EWMpSBoDU~kFn20IlFwK>0#wNc?CE|a7YS;GI--IuuG_Io~+kfFN z+j2<3iiYq2SM;2{CG0r)@}UsRaV5{$tN6?QNAZ{aPnZ6(eN++tvXz^<@Rx1GLWm&; zvM9eg2Cy|@(;4%vwU)XEbD*DK4mUmWi;a>UjGWb_^ZVh}yCOr#^QPuwp zy^$Y%6y<+EOKtur^Y5^2)iBN#oLrqf$;tKCy=$Y~c>U=(0aJJaH-FUG$2Q7swm*&I z3%n6^H@+v~tFn&qMoRXLsF;z7i0P+NaZa+Gs}%D&RZA8JynZo-6SrYKRPmCKbGNXk zUdVYwLzPhr5OuWiORGXrn&|Mf!YU?Dg@;IjgtLFRAlEk$9084>KRWjjEbghVww*PK zbr`{!Qz^K!ggv#=`Z)BGNX~#~<)6fOm`tHqY0ZhT?5VW?UdkDXmh?h>jXe%y(f(B^ zwh-I_EjtkSE9}BJ&X$6^aG%7bpxBwbw>5>M6bw|?wBRV+^tR&spm&Yc-OcK@z=uV) zy-$Bc0w%j5%E>yWu&k_sV;$m;$44b|Bv|!eSvE0lDh`@cjUhfl(U*VYSU9El@0Da% zYBjmdv4VSo#?{2Xl!|%Z#4Sdh%GLvy)D2iWGuAOW53g|1m#gG_Cog?WwKAZcnX~o8 ze3}-y@hDwJrv1E0Y!v^B2^)~dvd6+_6YqcgKrJUrd0S11AuX@92g@#fbOb{>W}>5{ zb1wW)c4^2Kywgf|reZOaOSkaOhu~seH^hRNN5zEYSZgRo4&7KjnG9!DaZti zaE5WwT(ggj~B`=QvCALRWzZIyrADaUyZ?Bj$@6|H;;b< z`;c|a>Vab<^syS+8fy}^Z^xv2HCnp&ek{(ItpT%)^UmCu@EX!+4L8NeYrxd%IYMXo-p36|=arP^=E^%AcS|p{Nl%9V>fc zcHWWOs0z8f5AK-oJ|qfjLi>c)8Qy{kAaSDeUy1) z1eUEk%-I%i+(79rj!M@PThIO{e&^|7ctI_h}KoFNSOK8uqtd4!8I+qQ#z2i!%{@ z>mc3_yi5MJ$5>{_oesD794tajP`S8MeFpnQ}@WJ`6uoz6SXDCZ~T=-PxANe!>^i zB$_$@WJ-aj5+^44OD`!?xy*F0*Z2*e05CheG5#kg^(r2TSas{Iv@ht<=#W&r^LxB# zQS;7kaiS#bUX~wSd0Bq+UAXYSMmtbXE`T|8{;`;v8oeX^doZIk zg}>Ha4#(q15|42dcpsN}Aw@|lhe4s_&w{1UfRy6vScv`!R+O7AD!H>XvCRMLcT&=O zVg3JmIFaSl2gamN+uRLf(s7WmMh^XzwxWu0L`64_l>;>x*ED~kdf)g>m98ftAtZ zn?s(!6AZ@8{kssX$GCnWmRzlXi}*OhfY+#E{USpLmn?BzHf0!B@?~RyLl(uG^{fTo8JizmW`Lz!Rj)oYD2tX$^~TX0t2*fi%<8e+K4w!_T-> zvO|z3F0htpBH%wc3d4@}3>~Dfk&F03lrVi({g1p$VlfS5OxPLv878yesz1rQu2DsV zJVgBr)8<`Ui5q}bo~8PQ`V0KhW}LqIC@f{Z){4&BdqRItO2|k8BmIjd>#TrGute6O z0RLhOxi~?$dwJKZ`0nd}A@{SNfvNOi0O|)=4#g15a&rju$ecx_!DxM~e}w@|n8`nD4_}d39%C%mSb|=Q!>_Xc;BTSyxI3*`_2GQ- zd_@eV{7!!{mdB=)CkmeXS&xz*^UD;9+o5q3d|a{pI_ex2vezPRXRQ27vFN?qNI%Gi zluV1hiGL9T5RjqP|NJcOp9Lki9V}>0B5)vYKcA4b4Ioj_S1ue@sQ+Z8*>gWS4dRp_ByY=)5%e3Xp%}-VpT=bjLf&=wREa1Ai<%yv>@m z7W~J4w$z16M z>IWo!TQXme@6McWJi>;d|X)8M*TB?i+|Y>sSLYHe4BRtecZ4euixUyV;!j~>L8kOfv$Khjigc+m zhD25sO_MLLW2E8`Adn4*aP598QHh@bC!wNYw5R`#Fl;1=sIux$@Gch%gHTXc6n&_W zLnOp)9f$+W?P*ey{7l4w$qvzeMz(O)$jH2g!m#<~Q(Y{NED0w@1M*i~bXM4|5m2Sgs18*W?HUWed>m zDY$hf!>#;s4D3!EBoc-lEE6pEXQG|=%U!r?#q+uP)PGUHG#7!@W<5%i%;`ZQdB zAw5?{ukDyudqs$T?dwdx9&ML#^lzbGn5O%`p3>(0YdqdPN5W)B(mOd2Q zS=}cEp7EG3@D55q6LHih{XJ0o^?kf3aO7q^kl)~cU z%wt0FadPyOBdFqE^D4eX*_afzhFV{LFD4(AQV;`af9{DXcd^n>RLfvm#b_1)QvnTw zX$MA=F%#vNzr$tV{q6rnJ{-(qlGl0>M;;zb`|D_$=N;k99v~vw2O7%nl70`nR$icr zHkHzRd=cRem zF3S5CH~LEPg`Ba-0ewB_3tLm84LTuv{~WE= zJ+-&hJx2~FULQmHF?gpMD3yhO$x{?GyXqEAbL36=F@=jOEUGLNxAMy~p`F?JHSbzS zsBx<&f1u;|bwXC9(0ownw_6z0fElTGowDjT3w-`&izjKMRbOZ8UTn_IwZ&Q0+X9V+ zSz9f;TCMt8-q{UtZ_#TqpTO7y*X~7A9C@dHfI+R|H~jJ$C@nj;@UGu~(TKGaP}6D5 zDjM?}8dGe5VGV+Q7Yu94z1tQisP_aKEm;l1u8V@c!8X#2g!x1aj>QU)xGDZ(C+0{_ z7xxv4o2BthN(Cs9l(N&KW1%hLHj5{9oRC#3h?S0G*WraHX*7=6r~2I4y6Ru-iPdfU zD_!2|mihL0!Ld0#@ZA`HPwYe-zw@m8zo*19wPUf5h(2Kqi&ekX)))KSQfaq$i|Ewi zs7wzWhfZOKYrEKC|No(1r6+bAB3u~uH5&FM8diB~FFjRHPnmKD+rLlY_~ql39e2q) zuB9F4f6IA7>hOA%3^d~z&~)8l7hp4%re~q)h0c$EcMT_pQRM{qhw5m< z_=rPzw3we=S z@~F4dqw3J3t!?suqo%B_yz||6(3`1_N}w8f;gJ8OcapiQ_{%KJ(8@`^<}f=i4(=&D zCT)L?q!BFG6|`qc16G9n|6d6POJ8WAKvMHDInfm>3YHIdK=3QiCeN}uo7w2714>_o zjwYGwI4!cFsNy_&9u2>?Q4Vjr(o^BFP_XY~8FMV+qgso9xS+R1JTa+C$hyR@Ru}7I z_4Z`JQHABI?LXys16%re9kr^!S5oQA%H;e-kyh;AV)wNDk|NtZe_tTmJ#QupYEc4f zfj>P_(Bn!`^JI61`v*(&W+HL2FCf*^(zq!Xk?5&JjjImRF~zMvhTqd3YlaVfgT24t zNuCHzq+Z{D1%rW`9IYz*4RGsLxD^OcB0-jDQ%RARbUK*}YzxFopTC}n)6Ca6bez41 zFYbJ63I{|uU+aSppd*j|mV6cCWG7hh9C?erO`>O=eXum_rO-L|eObvs9?ld2IB^Q) zo!KXpU83T4J1po4fys;iJfEcz)P(`SK8SQl6!`dm6i238fwO&rBr;n*?!bGimhh4B4^3F*?mitqwlCQMb7Cc*Rd|;Nn%%Ql4C-XWDHHD zqnvMKwyI|25H#TUM(R|K$A@z0bFtf(5BKwbhak7+%ZK|#L%G0@U5-&Yy;j#ADD9|I zk!xxK|2sXSghL*z=)6$m2fi>LX0rpBUr8*aDi6W5^CNpu`Lr0>b)!TOYq7!zzNYYa zI@1~M38wwiz;yjeWLF7p#OeO{)PQ7sZN+NXNUONlLgh90VUnxv*CM$ z(glssSducBw(lNTR;_Q8PURjoRBFrvMrPCy*h=51Y*i?PpmY9|sX5-F47%o~Fgq^%~CCrp| zG6Qzf)W!j<9@D9K=Po=c><_)g%i6hgOdPQRuJyz0&@Jydffho26Tdt_XaTE#rY_3v z0-j9O90S@##vU9EG1`-KESNSMzOD$t{#wkqbYP5VrJs)n(`Fiba98V1Fe6&BGk(7S-|z^*I&#$T)mwSiign}^(|cqbOw3apM; z!pDZI&C%bRf&~2&L->*TO991y5znFk_B1@6^DT@tga)uDNuR`EeO}nf&sETB2DO?3 zt(H|qrT^M|hZ7B0Oy#H;SBdWu#)aq`7v5?04Eyv#3TMe3 zegt@pU{&A;X&S{Mc~jTa?bZ8@A(Nk-7%tnN9XKVvN$Ep zTpA3n@5Wpmt>p;DfxXfBh1LliRy%Kzl4l|%IY5RuN<2n!LY`F|x_sz;wprw%mve@> zXL?Gq1<%+9%qaCY9uuP61JfvdBDqEI6!3t4Y6@B?(ARx?O@W5v5)*v|Nr~>6K}Thr zp?s!V@EGD8t#NbD2#y+m0Ul|<#Jm3qIiF_3F(hwfrPXzU;=BeoTfQQ5?Ac%U>25OT zGzmpJ1;GF35ph)_KoDi>5AV5O#`tWpzz%pZb2i^HdXakQ)LPMK!S>O#-D zwh2M^AJ|Q40G6;Lm{xi>n(WZ#BM?u7t}{`b-YyvVtM1`U{Ig;-OqrM#^!ws zAHXPmY!QDF9Qq&z8|m9^L!07Nw%eQHHMS8zPOP4|FBS>P4p= zw`o`AviNe-E}ampMuUf=N+USVs_d&M;{fmx!L(7iqz3taB5)|mZ}3r##r+f#$xw)i zP;?LwYyk~cB@~?^LUzGY*&dI?(=!|q?k|XNTM*%XPjwfI(gCu+(91=Kq`ODS1ob_A zBtd2A3a&&`C*(4k`Y%p)(K?JpsVgr5Bn}6{X*$f&kTzhQ_K7>BKWAYxrY3-|v(q?^ zO>CL9MMuqlfvT3nHQlv{*2D0VsU^4E)S4^bdf+g(%z6>YYD*r_)NHtBu10eZ9!r!M zcH^WegrCEhSHZ#8v{l z?_OqY&^1*Gc1uo^v+lWk6V}^xYz?CCOBO5Eh1r5fz0t*~vk`Kj<*X#dcI0T?VV+0tbp63p3{QwQpdimvrfVA(kcL z0RV@O5in%E9<=4KMFuJ9Y!Bp(?Fco}%`Yf0229sssqYKQQUhnD9@oO@Kb{GH|J;BV8qP7gH!{ur=)p6TQaYOD?&w<(k&r9zhvSH0 z&smFx_1ce~xHY|jCu=hjr*f}nXtPBxi&27j9qy=J%uiimbk*30u>F_;$$Gc)D6yp`n!+=ciaPIT;r3CBC}+Ek-fi;8@a%d&i(^Nu~K0= zFy3scS!}S1-;nLaBzleFZi~208W9_9%jp=Sa1LV>Fc<+Sx3mbAR3#ejJg;prA>;GaR9 zJHNM}$co{B1pu(qQSVJSPFTrh;We@X5^g~A-?)t$AlG8tZ9k@PZey(3vuGf{I;PmD zui>4)VCgYO%Ut{D8e=TQPpgl7rph_9k@LcYmsOjV9X2i7VOq9-*SXskSDc$=pKOLJ zHM9aYSZ`~FZ@g;)M$W-+*Z2xFsz5sQH_bK&{+-V|zeJ!d3HI{XiS+=`yP{vP%PVuH)ZyAGnWTO>;{N3$Oo1NeCt~ZgfN-%z|GCH9@H~MfMYd0?2W9;s8 zCx`{Hj$@Y{wXyDk*uc9rDis`2;1d*aoKIj&e|O&bGhM{n#yeVLdDkEqM@-l3(48U(KQQ;#CUZtBOYrI34dp zDmvag-i2}Jp;Hrwy>S9H*=d7T_u!0c;#l%*^hTG9vPr*(y%&egfmX<4R1=0xbFIhL znsDoKx%F^=YCTeJeTuan`y{qbP+Hq&V#}V;5<~f=HkxS=p(Ov$(1&C^1%wne71CXJwGgjvg{#1y zV72l-*nTc{dHs{vkcrS)&%h7tSAP@wjwY-$u#kO!N3FsCPMdr-XnZqu8{sc=C37$< z-i0~b`E~PSyZf=63UuIqjqSGq>%_RI#frAo1eDvr*-Wt4Z+}OWyKh(eVTEq< zSEAZ~6}KVPwy9xyiW?WH?xhLOhS~Mp`4LeT5%yw~n~_nO5Yp^8fyoeDJhvr zES!%Oszmc_K%ho(uiz;RN`ukIUJIh%91Y-4L2Ie}DIJh#;U@g&O{?2p&!?D=!rxNz zR(D=PZzdrg=8`}~Oa6q}ytU?|R`G>5t)9Yv4~@&JYvL(KYLlh%Y`UrY3vXh2)y>8H zyaSr124JDhqOa1Q;4WN^Rd}d4M&+q=Op2N*)R;d+%I&tV7u@zwtnL?TiupxYiXQ(3 z$v^fM41YO>*($uOW(wAC7AJ`oaeFZBr<)lk{w3!9U1ncO-1vLMr5(dWc7V&F; zX=gn0g**uQQd~YIW?)LfROn(+SG zAS^R41|Gk@+_WnWtzJiMNO#B1%?&p+eFu{lGjBD;7kiADC1HyI^3|pSoIZskK&@9{5mt z_!>M~cQycNpa2gZ4>lGKs7e`*d~RubJx8O}SP|BNVA`6SNcuS53lN2E9!hn8{)egH zUNzwCLedq%neNU+v}>+G&;rP<=ht1hP7n*H5a5vGB7lc`k|>B1mLeQ6=fy)e;ZqF+ zBCh_FI@!X8o7?M3>%&=zyp-0L_!kNoxV%gPCK;fCd3-NYc*y<$(oB4K3Pf1B>gKjbXpQWSK*AQejXgR z#viz>Y=;d03fv3s2Wm6@zP9LE6OsHYC6s^2o8#qERD#>6Mb>7kQS=*s#RKAb=?Egn zoj}1QB*@}JvEnv&fkwjYC5|UjId?%)O@S7XvccK(oVt|PuIJ#J>w^8dW*=ur;Owc= zQ%(v8ZrGQ?iAiNE^xJIEu5>NtOm>~K-)U&_8SMA+>wZj{I}!d(p8F8oNw*J!f3^1e zWnE@XggTQ{A7b2Pc;}mc8wOQ7y(Jr94rJT-90*-%zra@f=!-;8>lm998~DF&W3_?z z@n)aE|KUgfz=u)3P2w&S0Md7Adm@IFm6EfP+zMJpmu{25O{vb3&Zi#AjHH^Jfv`tbx9`LA5r2O<60(M8R-s#bJuo z3WA=nKvv*1d{xs|WIF?g;VWF&vf&ekwI#tPAU|8WzE&xAwoYoE9UA-495(jfi4_UF z6IDmsueD|2KRxlEyWt-@?=h-r60EDA9jyj?QW;u^N^PfsJ3b-39qzkS?t3SjTFsSe z0zD84!Sp15un)z5sU-m67RSzDPSENZock>>&md2h1rd69PXl3_qZV=KAxfsSob;O; z$pj!CA;XMCf7Djol&@3S;(2^s@19R!s@nv)n=N+^MO&p8sdRzfRpep z2VRndlYq+Hv4>E+y3r9=07Mit)WL&3BUZp0esv4>EPX%d@ZY3UF$HKcx%JJ?7Q%9*p$@$r(_HQK?3MB-R)Q)v&zgd7J@ljsM3kW8v}x zcBz6(lL{|6yv${nF>pD8E)94&l--TxY|k{;;QMX6+1M0sfY)6d6-y*{P~|2{ypONA z?LOrEaVUMI%^Vdu8%jPn1$NT07^B>lyLy-O;#L?3)!VvvZ>8LyNKWm<(;Q- zpInP#dFSKM`zAHZRzD79W6VeZZ8vp8(Rgt;YW@{A$Ms;9XW-TUI%LX*Fh~*>3WTjFFzc8SSRk_PYdejK<7Y_+W~; z(whU(Uex#9p&$U;E*o8+av7n(Cej6{tjKmtJG{pM5N@4&{h3feYyw2E)wT|3ejg6 z<3`XuX>K7Px~G{!2t>9*!LtB;e1mDRa~>z2B(6L0X zZsJEa8^xb2`ZN5}J4s^dg$-^fbbZe|TS=hVP6}!AClRZqlXoPu{!KT3&(mU7Y*m(3 z{ewyNU$$nQ2`n*+UI9~0T}%CKlfEY*5oS}R-yaPu3Wxj!DJ*XS6Ns-Z+CaDteTyP3+;p-1TV=DBr5PNB!5h|Z{sF)m1FnUhVw~A-^0>2rcy&GWqYGZR_)+tO;SUvwU z^kgLIU0st;1%IR)rl7@^$05T%NXPGuEqVM_;}v5wXxfnRCz}|Bbym;Mb0Ief3cV< zIMYE}QniuOMf@CZe+=RIwMiIr9kl%czbvIM?Y3$7<@re{@YMo!YODv0OEhVCE&ehU zn=$4VjRBR%)q=W`uQ2E`UL5|SJr2(#y=*}`$rINF$H4i2sQC(w5cC2Rh?V}aOilXy z#uP44M{_aQ4&oU$-r)s9k5`EgJt^5j{jn@6o2B!yp&uU#{pde52j18H;h%;-9`d2CoYRHN zIMuVq%`6d$fDl|XiW0fxVd*}Q4GQ$bPVEBOU<8_fLp*6mb};u>^hT3V)36!oi2*lH z5EHGQSlT~~!VpIC6(*H#C9q!Uh}KLPwHS2kq<>8dZOjUo8>PS5QevEfDYi%P8?CC` zoZx8Dq{=jkbr=YV$zH^xNJ!>bDc3EA!J5jKQ)($W8K zDzCh(jl8b=AYpkc1`BKPt`#islz07rdK$HVTHe6lPYt1?vC}$ipn;T47)LJc!KfIW zG(6n;`e|s+la{?H!w~7Pf@$}s_5jKjXMbGMP7NK+>tuf2R)abLfUnRaIapq61MPhb za4$tZ-uVr40V)*hg%K+>tiCfqQv^n385|s0z-gc2?PC zoMo3}&@m9PUn8|8$ID9_@dhnzAnx~nl=&L@?#=A3rain>J|{g4OZyYWgeqVLi-R4L zflY?AM|v_yTOvc6*)w#M|1C72pc;oj;EBn~LBZ+!EAY1mCM&7-q=TG%c2uhI?bnt4 zUD(FF>M4{B5Dy2issVYp{jxkIWSWNt(~hUG3H*rJIPNAGxeeyzFK8#yUl1LC3ol!! z4{k!_E!I<>AnA>JnB_QMBlUY7Iq3x&&NdJUguxAT52GB=g6dXBxEwW>jY&n-mEg(m zzloVd^EI7Pep9}^PaH9*76*iMt^%#$-V9cZZ*zxOz%Kj-L;N~9)VCVZwf4O9BfgPE zUNmo8;BEB`o-w*TNPc@i36*VszTer+~F|YJ^Oh#K`ZN4X#E4N;M%p>dO74qvx z*HeJ4IBpfs7Xp*)Nxocz5-DnVw=lE9@X9fW-91BO(wG34D>D-%oNlFeCo(6G(&?GH zOQStQV=Uqki`XvckIWm+S9C9J?aOovaHOiz)?`~^IgcVvuqJRw(EH{ME7c|1Pk)+- z!9VZ|+^$ZFDL37sQ$!7aV^%w6HV+G>h~voDA4I)59NQ5P=SxUPM&B_Cd}R~eK~9a^ zdGe&p^d%(203=?PS~GRAer7+o7O2!MI$%VWunD-Bi_I=rXOk&YC)n=<`NDRcEEXzK z@E>C-=4DQzeWjldQt%2~f8$F?#4*}Xe^6n~m;;E#o=E-r{csO|rU2cRTQl!goC3P` zHO!{W@&|#n2X5wd1j;)F&vQ(8{A*7NHQ9$)s*uH*;O%#MMh9!i@wzNb;~JSK?d*Pj z*2A3EebKz{H`0%oIS@se#f#$^?}(ut(6lC>x(l3&;+N;ZT-{76H=slge^W7sEQr8% zb8g(%TT(a@(m(uvkc9M!Oh^|5IYA_$LPj>OmmP$%0mDyQBungb9<4I+T2)|6NXKHr z?NS8UP@tQVKRDayGiIw`kto<_f`CBl&Z#rj7-{xs-TrwwEggHGR3&)Ky{+!T1A^P! zVD%Jw;X8Ca0TyLGX7!jG;5#tu6KdhRBzWM{V}|*f8>R1m5@0XZcaFVd>Q&&M{-96( zs22FAVy0VtXG^qhwLj@rn@k6QiOd%q3lC%lZF)!EOI4_19l-RiR=63`vC8beadMTb z&UQ1Z^>R?BwU?<;2S|kzLnM6nMIg9L=en6Rsu(go7+#0Khoo(d@Hg*JleXxfAYKFj zn~ngsO>C5Z29bCO+Z1=WiiI5^8x4}d81iXOs`Z(6={Q%Dy=Rm%n3+>{`U-R^_xzz! zN_XH$3Mjm#AX^pK*M(24*ed<2kE~g{SrFs?0K=_CTHpw(Y=iZ!wtTT(a`z#lXfW+S z68V?ktqe-zHI>#PrM2yrru9KZBU7tL58y-kD%+laz*kMBrPSh!z@cE;1KnXmyj|&= z25!EZzUj~h(fX#M-B$84WraSO%IR+lI;)(*{co(iTK@|_=pue+u{zv&e&^1^eLsHH zzSBGQjT0}rR_+^j>&NF=@wkrKvdA&oy;mD!!~0!~5gC8vc)rW{qexsBR;{&~NwpS@ z6$^8Jyhb$Ozky#s26-l%yltOPrl6mCGpW`PQ9d9eO8C*9tRTvcZh?d|6bvDduR%w2 z=`CmI()(+18X${XkhhRn@dqZCJJ3J5(J?KxS^AuuAJ9<+a~wI^RCX;(U?M%;1JI$m z5!ep)y)6;JHy_4OyXR?1XpXgwZ*&x;UKYoH^tNIJplXY_Z-w-MtYkOvulqcsf>#OD zpoPLRl(h!-0HacmT|15$ha2r5hD7qeqDT&JU*NSX*RDQ@M_}t7R&w;bqcaLHlHTFR zoTl7ow2O{fi|*@f^(4Q#3A2Z8T|vyoW+suR))k6Ll}4Rymu}%|{K&PhGGm^KoZaYu zBW@J8O4qh2#Ry7XC#5(>+t;98yYehxRsRTmtNl*Eu~t!yI%*62tgq)^Mx}^QG+ry{ zFY+%xOj(zcbXofaclT8)_joN?Q-rlFab$3@pszIWZ~FA@Ozj`|B$|KfM0=)UfE-}t zIG{oH+)((zHA>(Y0FeSs43z9k@VJ0~{wPXScn>C3i6falX&!Kugk|dL+V~kXp8-Xkxfa^@SZV^Om17yo>J|LmXZQw1;I{4lgG(LD?>zhAD zy~hCUMm&KAqeqAVBJ%7b7PJ$1!)E>}H1k_MskO$^=Yi$D#pp4_I9gQCUL&x7^KyKr zv;yRpRBLQ9=7IESL{k(C1SPe@CDKUl3apF9_npFQ#YE;xx~`iXuf11(ZTay1s2GJS z$3x5U4{|vmI+TIZ9ruMK;cM?FLvv)jgDIZ9KY}}ff4$0+9}FD-jq^=Z=8H~^5%W#F z;(WXClgOr&!9aJP)KE#>dT9@T#_@{dHHKw?`MO(0^e-L5Oh6=K6^h*oMQG7Y$|ZU@ zrZ+5Dud-)yCTvS!)ozp>PRTZ`Y5Q*XIe zAY~K#2x6;Md`@E(bI=F8p&#k;`G;UJV|&v^6r@{m-GDB~YIA@mQ4u+zv>#UTomrS+ zFqALMAd49Ojl*vfi{a`K_?wB}W)<^`U2||i_v@uvu_>Ms z%9AcVg0HIkEBuCAdmEmAsfXs9vt25jgL$|ALir^v;-i@saUPJX1v=SnYEqR^ycaj{ zc(-{qWa!x`-4X|zXDlnG-7~rurCZ#KG#2+gfqz^jzCX%uc+I#}^v_LXiEYI=-QPkP z%nYe0$nGZh=gmgZ&(Lb}jq8}5(V~_p(Q_;ab*a0pqOAeV_wIOqb577bN+amo=FJeO z1`S*d<|`6FbQzv#?-m@T@u@+6sw!7w!X=M0V?-*IU7Nd)Dqy4AQg+q>5@t#jykSqt4rnJBaSo<^tm?tJ zIA)}OV|vtd$Bf?4O(Ehy32>tnfg6u8ylG~&umG0=`jl+DV!6^6v>c#I z-fX5a7L%&37;oKU&DHpw?SJlq-x-kw&s=l8-IM4sewjL(a$ zWWrb3rQRTD%;%+V`X^8^hB(m>8#v(^bH>q{!Y>{5STeVNCb{bZX@&{oF`YL0d9EbU zXSdZoA!sU}z{B57@OL}>-9?3F(SUEtO}lY5NNYSSsr65=B=b!wKE-@3kd(!+eY34@ zEKxrJt_!DxVuY!T>F>Y78`U)dI% z)T1PUL7x+U=EE5K;Rxqb*(&#hdiZ`6j&eVIp90q>;VA3j8s=a=3!k&$vsvoR-Ey?8SmA=)vH3V`-XH`kt>R{EeG15CRY!P#Ir8Pz;N>rGbz!f*j*Ebo$7gp1 zFTY7&pbO~>o{kCY3sPdk7G}IJ{0|y~uU=q$OQ1TkJ|H4cq_iVMOX>>JKRUg(TnesW z*(*JiZWr@6BD$cm8l=a^e+21!#ZyhX5i?c)4E$*0)qDzxP@bZ(USVSyL_K;wpk>XS zBbT){;**iNfoSkdY0kr@qCWAv4o)$V|6|O7hI)96J)x=63+GXFhqvkqe8fRQ#xftVnWLlPk)+>9W+Y50 zLO*Td6njx8)~ACELcuS{`LyN^nDjXU;KVh5qmQ|GEYK6R9W@0kTMAQ!D0aY; z?a5fRAS!Aotm{NcO{X%tpBWmGO}mAEWK-OMi1%{v^NL~cGkPkgsnc^H6$W0SXjn6Q`wsXrw4@rOB9`O0K3Je$p!TgL8TOQ#hA@tVaPd zcPb{x7G{DZ{d7__^OTC=D{QJnU@1-LxdhUobhs6> zY#qSTW7Fsvm2I>Yt4{*3?k2E^T7-YVHvpJ~IPBZxb0uU+%{omSN4Hskl=SldM7AUw zvP4x8Eo5Bfe~*5SX)&Ot5I;22&sUf#bIZ-O?X|;I{1PnL zne#1x`pvp@+epl(qKa2M1?M5Cd&b0oVA_ECQp~ei8%&$pLMB#n!4VvPFEj*gi6Ad# zj6`!m8!9-UIdmjmkRFUdgvw0CIE9hA$8Of~%hC8gTD0DblJEB>(Y&49?@;tbMJ&2d z1=G~>AVGNaJg+q$6YbJ@U|AY~WoZy9rF7*b7tLR1`C!*)Mi*G1x8+--`(gA~q!%V< zx1t)s_p45R-(WCl)3fk@8i8oImfu)di!9TZWTPzHj;YlO#TuiyPa5-cFo;v9|N zM#i&qP05&Y0AKxrp;GrIkeLdGAn;JaZ?UjJ37U1Z#_`U8f+ofem5%;GZRy3P2T&z1 zk4=87%&!yu8!^BDcL-+!dnBC}<2hv-SQ)_BwU5d1`u`aHoLnqppTwiMyWap*|z3}*3|RXnB8 zJ4|eYg z@i8Qq&}7O6qBjfnp@rP=e6|-*0L(Uv+mXx5rV8bN1s*ZC31o+VCiPM`xuwayU}&IM7eBHk z1k)BbqrudF$9(U^FBFZNp#!NkyPu0DnPfjAsWyVtuA3X8QGtK6=W>Fb9<_K1f`OOd z7o%9?cZI#py43v?`GFS{cgQ(LC}BL|)g^>p>O=HVPG7N)_BG}L?W+;@HJvOb_W@gG z^~B|V1ehIjaO{W(2dc$zptdfRLcz4L=LtixO_!d3JO@}Oe+cfQvd$WLL&J8zsJM^T zcH1;pUCHhGv+Du_d=q!{3^N95}VMqjeIok(Iw;w|{0k=ka zBQIpOT5u0QmrO}niEu+E6An~L>zSd}kqyK9n~ur>Ily5ntI#NYa3`SJF{vw%CzpA? z@pKM37H{CpA5XtPQ)PD z%(jhwGQY?yg`6H*X$A5O{CWncjVJ{^fGOR7@Ma1ZC?kmlM3MjdO}fi_;oT(Nr8zN5 zcZv7A)?Lc_gimFCLe96j1Ah4j${CXq$|qf0KI!)INq3b`8bJz#HEvWO+>Q!_>jZb< z6UbXm663yn9q~=_pYg+8IGZ%y{EIF;{Pv-!rN<3^;0;nyKm8$mh`T+b=>V2)AjM~Y ztx@-IuDuuRF7C-v#8$BDc`A&rH7EGYcSR~92p~`qks~W2F8%@Grb<>tBuE#hbWlZz z<|pLe`Rg#jc^)aM>SC6fwsuWk$MMueyi_X(|)=Pt<1xUQ#wE+2R zx@feiNd@ujec>xwenl7k?--_wMosik%yuPmj+t6jNl!u4_*98PkTW=g_URzur(4NG zxM6J~9(;8?xmVkd@Om}M%G4aMdlZO;qhLLM@qzWB zrmxCPKfOXz{~sduHv+!b$nc%^0m1kF@<}JlCk4w9(0PLI14|ITg9zVetpMLvx1z)< zoQ=w{d(lhAf^h(kAcQ~@;DgN90>oSk-}l3J)Nfq}&{QMqvTl;~TL?k7Go6_EE@`41 z8sI71FIgustx(yPH6hK}exEsip-Yfg%OIaHi;FUHchoOm5uR>qjDRO00-$bfL}J|q zMExdsYF2lECjf@=1XD63A!J#^o(NHovc)4@q+J~(u9MHX?o8L`4BHm?sqdOIER3>KBvD-TYK2is6^Qzeu@`V_;r1=5(r9xhFqbWfac{`ZnI-z`61pdkEql zC2_knLM;b5)Ki$oQ|Ur~u>LDz9bIP@zi$%H1m00HB}56om>7n4)evJ@FWvkQ3oE0- z9Hoo39PfIc0<0x}GFO^s|8oi=Ll&4HOzU-u`QgrjZ=q@g7&tIr<15grf@$mg2x@WT zmm)z(+we{bpqte5ER}MIG0JHG(6{W_icDHv4we$X%FhVdVUn_}{`B^W^JkZ^k&DSSc@=WF~c=%N(khbcJlZcOzNv0XAB z?7y9G^lOZn1{UJ}Q&jc&O@e7ZmOzI|06_Y$ZR?o3n~7qcxU(MQq7Djrj5b&XUu;=$ zZA-o*(xFH44*-i+ayxZReRwqf&AF!Q=Z++l@TPQxrPJW~>QrVdioIQ0d z?!Q!#s$?=+{`*iSqrvE4iq~%SDitbXprssy5LxTmliweHR2)*}#_3e<@4?P4mL23x zw8OO!)&EAieu%6)inl!@`&a5eE7M4&ng!iW*Ly26XI`JyCFW z?f&ss^e+v?>OL4Y^}gl^*(g`UDz;uE39_yCdvfbQTQ3@U`HDug@D_?%_|_YXT4Q_4FDTiunh_antV#qwQa-c6-m%Qys|iMXJtL^ki! z2xXO1ai%X9kebZdLfUH~cb=9-+gd%tz8HWSo0-tcu^#`8VY)u|Ji$;tFC%Qf!i@6# zYWRPDE2W8b=WC1IGp&ls-Z9Xkm{0jSRO4d`P8j!)Qfg2pp~`kgYux+~g`!HMxO~YM->W!_dS~!B!T*t1(o6aPB=N4;;pq^ro&HUgSh&`1>$s9Qii)SyrDT>Bk+qB;1?|*Li{V-+AFty`pT{U+I2kPga~cjR94yAJ;@-r?SkNcegUgo zKfg$+a;*`H>{BtrvwH%dmV;(day2a)Y!p$)WJ@ikdIv(NUiDCo{k-1inWI`5BQ}aJ zl(>TScq~j&l4Q#LlHyoBaqj>uP@QE~yx7Q_zAg)5o#Xj^ZN18Ztj6)*FkUat5xm7d zz$oqu^ezjs+P~d~Cv#;%stW9Xd<`}HXc4CB&s7w=i+1EQCz3g9Q44z5;|UaMu#&N^ zup68nEK-C;im*t}3~e}x5Qd_wy@E&30Dn2mro|K>ee=_ZrxulYy1gNjR7 zH}5=4`REo#Ee}gO!wS2fVD^Ra#NEanD(@*P=jO-A4ALkpc`DA3%e5NJSh5jFYN5z# zSsKN?xN#VRjNM9o%Rv@DfDdxSg0K4_k$(|W;0SMp_eEg)!aJu>oojhVL{)f4I@Y;9 z@naIJbB(Z%5!{0@pJ6hKJua`?wT{ro6U`^$o?DD)yM3LRu+qbXV6cN+h6Gm)<8h6Rc7uSMYLz9^aivGydh0V z3{tvTsge?$9apxV$+wMTS2 zxn1sdf>Ku6iu8Ko<#4xT%PP3sfe9sl6hJ6Rg2S&Z%fw%4EzybX9(Rjv$`L zyrJSQ)WuVx+P5*R&6(kqU2`U~YOLEt7SU%CYsim9+y^&SF|f}@k#VJ5CpA-!aiQpz zv#k^>G?RnrVIkAbf2EP;^(M!NE6vX!eq%(c3Daw2?iH7LR-GrCuh?U7E{y48%OuS) z45O2WNtcI-V48qmno@<>6CceKL=C?>_CA--z9q*S^6ZHie?mw{f&{B>zRb!~D50uQ zJjbs-g*9)-A+h`pWSTb!&-4ikId2i-%3EBDGJM`!ucR<-e~OF5o8Bu37nO&;wA&U7 zMdN#~z;BrKT8=rlh_U<8aKKj>a?vI|zu1wlZRg!8eA#ytQn6o2(*wm{es%R)DzBm|P>YBh?HSsLc8kwIN1DS}Oi(e)V zWa09}&y5+#f5PP}TjMRB;q`b+hquHLN~k==$+wm+)^RV)%n1^0G4ZQ+P{=1nTvEJ~ z$x{#~@q;PV>=LVIVa8BB{LXvsKo0dOtqQnnzT^o(RF`YSN+GDGEqjCvqn2PzU^o0y z?9LP%>KK0zUm4h$=K`T!IiCct*(qWqRf3~L1Fz4IfB5=5M84VB1STYDR>g7tEtGSo zPJZy#bFc${?C1|^5DzL@)fXm*;BOm7eD|r8VjRa*U4b6}UFRZJUCTchQi<`~CdK2%$rodo~C{voo+!RJ~C_ zEYQMfe`t*S>N+M76=;i1?y+|lW1*-DY@eI8@IOY7ewZvoRS_a(p<7TEs^cpPp!3vP z$9E(MJ=h4h%L_;lTFy$Z+~g}jF{l8C+9h~iro{}1Ws7+c4XkR?L?ivC+|bi|ro4 z^Ux5y**^&Y>La|FZ6D_t3u4mq?f7W6e=dqN)c8SYO!Y9&c87tVr#%=eiz)>usuYl@ ze_}*9A4{T2!4Pr?z{k^V597xmn*~3z?6*M^l|QY$b0;KeVVV(n{{F@`)&C%7)I93u>SLL{9vEK_X4uE$>jIp#Ohb7^Mt2=pDDyn9mR}HnlCU{21)EI|S zX;imSD-TUcJB(Ti!Vgc#amwnrcpJa;F$$*H4BSLsa(fWrojZ0x#TmudO1&2le>fU~ z-{HDSbu(>)DFsy2qIg$7bZ9YVB;XzY+H0_mFB?zA+EPoH-yOV*3PiIxCPvQ@?!>bS zvGTX1sBfC6Z*fuI5~98(hrbz1rHQaZ>HN|XgqU?I?Te`V;H>=nn|a4{827d?7tGF5PIS!e}j8m0{c&u(D}cZ1a;^-HX$J{AtAo2{2b`g1!VXB zIZiFjNi?LcFftVSG zME)@{q5kEbZb+bKB5i(dK!`R^9>{3(A8D>1hv#Y=rmzk~lq;@@B+5JS*8A67fhhAH z1hJeTAxj_yJG&sv&ki6IJ_E&0nJ{OE33HE<#ZiRWmWM>y7uZKcIh%;G3iG*q(m%A4 z*I-eB(hxazw%@&I8|8u@^zahQQle_Gftv}M!!v%_CW zhyQlO;SW|0zyFm1ba*XsV9#CspgsNQpyz}R`i0w+L*~nwuUOh997{U%d{dA(1p2oaux+VvPyO~o@o&m z4MAh(R7;VU(zIDULq-AeZ*Zk>7X2?Qv64kh;8))!3KZ=Gz4RpE{yGKq%r#;byxGc$ zJ*%A9(^ojLhDZS7m*QzNAi`|jj5!r|NPS850<#Zs`&q_de{6=}@WuEa#Z$=Z6V89u zm(ovNnwP=_{y`5JOBZFstM?BTV_^+7T#y`ZXR$(!l&fbI6|Gw|gt1*Hv>}K-csGG) z3Cr{`xr)-ap+ly$y?1E9Py672Y0F^1(&rJ+pn@Gae`I!%_hjk(SspwJiJ(FviG3(r zm1{EPn{2Xrf2L;$CcO=D4rVTu!7(X=FF()`9(iX5W~m7JEWs^-ZA>HpQHapQUKFnt z#6E*%pp{-qAxVaJJ|N$CAw^04b-}@se_1_4Dfw4Xik$o_6_Dq5YK!_B+C%^Kv}MyX z3^0&?j)JuuA<<(#Cktf$@uXx(kmZjDkg5E(EkY!5e=Ws){wkIKbvcup4&{=Kb<)c3 zq3HlznPbtATX@&lc6rEkBM6YU6pA}7SW^mw6+hR>*RCsD-0ND!7H1zEZ5m@1xK5@q z1&-$>M;giMndQ!I3R~?ku}ue)-I_gNlU?l^#bgHvNO~kO9t~^d@RkQW`19e}8V-9v znP9eTe;H9MZh=2{rC$ztFOY$@D;Y{`^%;AU`?m}2`nhSQvJ}p?SeIs4kOBvB2F2&( zi8E6;%tlC>KY$(k=bDb=DbSN)UVI%B^^Dmj?Ie{JWrac>pD_$fxs|Hs~!heuImk5(^9 znk-a6HWejG)L>8}fibZ`Q_xMSwF5y>P(g6Oh@&8CH$+7Ub~mIgN|_mObjF3>j5>@f zI?ASCcLG`111cah8gT2PK~}RtQtzB|t9r?TIB(t`@B4mybh^6g)?Lm$_uR8z{Ms>_%$uDK)6j46Qh1!ZRRYqSNjwVbkwhnF)`ol)u9l&H*LdS9@PeFGy+Ef0m%j zKyeMZ3}6Q9OW;zW{CK^SwKB<6W^lAjb2XG%-bKR20$sNxzmu84f`jXkGr%Oh44Gff z%t|1&^|<@>XyIKZoHz9AbfRuxLyj5!bZU9;bp~?Sab1TY-&e=_sA!QUsM2MUROsYr za^_dQAU6(p;3$DVMdi-SvABYAf7nr>OdZ}Rcz!VQzL{F4PVaQMD90pPxIOxd%F2tp zqQ9uzU$nHuU-Y8CXk~fPJN$$I1{$v-D+Wcv`2rMej0`YT3)_n?&&;%hrGB|a%k42W zgoo#d)0%LO)0_Pvy(sz(>|Le$mUsh_S{-iF#hOW$aDf`!tph@cx%COXI3coHCPs zySInm=>*@=8W`1jy{sjt18jcOf?BPAOeMdu1vt<752o|pnI>Yzf48-^s={Y@5<)vA zS6x)e6&v4*`Yn;)nC_Gd3{HPxdijKW?{40U>goJPGWaF0F+2b8yZOcUQ}VTuom=?} zJ6QRdatp0su;4N^t<@28L~ErD$+Kyyj%uhK5~V4Yg1m>ac;96>Ir-VVFThd-hEC*Y z=tf5r-ws>QHmNWpfBZ2vj{9MX<}qNR>f33&7FcxbeZ$1C_pf?&%P?|3?~!!gw~0K? z?yE%XEy%m($m6*Gy-GKiRI)u~Y3!b&+z7w$aM0?}S~H1M;{+2kVBM@YF`Al~1x@rd zVQp;{S`&V1;wK~C9Hcc-Z=@!MYYSz*rD`-=D7z|Xp*%P>f3i@9{rgO-S|lxNJO0!K zTx7BE-Y)jE!D%GB{qF#kb){vU;o|5fe1G)NtPF*@&u2I$oP@b1uW60H`4-;n*Y4(T zP;M}hf7UjG$nQl|RXikaJ~t$o(tkD6I>KdnVLlxj_BPfXILn~qN`OkjpKHyaIJGm> zU5itEvjqzFI-_gEmvu9qQzJgNg{in7f$uVO2>PDz0Hdt$9qf<`REmQar(QPz^-$}B@CCR?+nfVVbl3iu)H!k`Rl)->@M zf6ZN329la%Ed$L>@T+w2<-Bh@l12t3L?d>S6wK`AWo;Dmu_MXIO|Td_AAA(JJ^`Nx z;rcE3?!>?6PCa0NWf4u5D2(D)0)rNb_TzHz`8IzTcKYzLi9*h^H z(OD}qTo!(PC`s^-&cY{|s*wxdh#tQ?Lgm03hOZT>N9Uj?Cw!B(|3d>ldl;Yf#H$aR z;0+62O&m|@4UzyN$CA)uFh37gKIS?Uq%mY__%ySIG#9VaOxtt6bNb&QC7vLie=YIb z8_Vs@4Z(C*W<#*Rl~`qOye8bMA!wk>>~Ob+pwZP0E;Bx3PD!ip%$G;5T=|VVxgnV0 zN)T2V!Y2EWfIRZEmEZ8o0(j1#8KmTkt8610bIMvKx{_9vmbD0OLDr`l+j zW(~GwA45h8&GPo_S)xO}H^b(if2lSEQ(fsr@~czH`EzoTg0{9Ic@h4$OP@Ra_M{?d zpWSzK{=;@@Ool_U=w!rwu`Tbuey(nU8npYzWQ4C0C_xxqUo6Oi0o}il%s4Rk#ZqO+ zzzdb5YM^zkY5{ZVrweKY{>J-u>lgE06#YyO=kzm&dY|f==8#g*Y=S%>e=wl#WNLnt z!5VgmQa4e)qfyL0Zj)4pwb8+kYII6fp-XnBa!zS-l0!0yh8+4k8@gk%VFO*rg3qzj_{p{xsR_`Rw9M76?yLHM%uM9?k>_mf8& z{3bSP6OEdhRXOPbPmAiZe+X*8Zrwa@jXkf#$$JG5IPCc)BLCbC30V1ji!JYgEO#nW zqesVZ)OR2s{p`{ahjeEF;Fq|tG?jV&Y)9pu|Ng!x*p0#yLf3Jb@OM3z1y9!`3u{%} z6Fe10(SHXIZ(9V}+|8DMe_xPdnOz~kFKR{~E7_ckzvf;f1s&4ae_(y`72Mg^&L-eN zK7M;&MWm=%cdD)Y{sHn62IXq_-54x`@w(H>iv|#uDi_jC4rqxxnc?lKK=?v=AqPVG z2sH^^jPUF{%3Lh0su!ibs9y73xPJKb8~N?^L&I= z$El-Hd7-oZ+LD8|ayxc7+_QS*;HxR{vYLX@N9GuCityxemg*O?iL^uGo`gn-jFUAy zyn~_h06=Hwv{-Z=v-8)Ya|})h>Snujmgu@jl3nyCuXof%I3 zyibWyGEq~Cqtt@*1K82>Lx^$>qqEGscdwB`VEE^Dzy-Mv#H^R+VmS}q=Yk?-PxRv) z^5_iSI~h6u3V*t?z(|qV-X}?2`g9V%#s~;Z70j_95+m6}M7HIXWVw6d?mF&P#B+Ni zDl|T2`$1?J7CG680?ta3t3!k zCV|sMP=&9FL*RmVeCQjC4}Ae2JgRwqALwz8D?u7PIBXK6O~`FO&je@hV)Wgc?acox zhR3^mF-*S{btiVMhqo_mMwdUE|Na4@Y#$&{zE%fsf7|4g5gfpQV8SXqMn$&w#nYJ+ zHNUD1wf7V2m}llv%3F2+0Nz(gQI8JHq0<@qjo0wT$B`IkLIZ*W%<{#|j1QpCtp%uG zPJ6)gf6R=~eM4bwk8h341r||ks1uh)!)``+hD6c{vho#sO`I|Wo-wkV9=;sNa&$Xd zq;b8pB`wmpUPOE((W!#E$!`6gUs6D>glrFYN^ApP1#EKBRj4z1?6PjCE5b#MiR^$c zTAFO+`obq0K2O5uGWZOG&m#EP;PX59+z6k0f8p~odfTQLkkLqq{xjkqQ;M1Wg69eN zI01hoCRy-#x0ICRSpKTSMh9xeI-oJdLJ_9;Jc$|;6o~I4M^@F9SZ$zyyoHp;bM94` ztU;6?&*FXLBIL1h?%Ako@MVxV;hqu-S0r)U&~;Z!)5$^(0vP?CyIad)36kEXA(%m@ ze^1nD?4C;C+lcuV$`e`BNt9J65L*V@7J)Zn#3majT69W3pf#<)DPPkTZbgMsRBrUO zlN&cPx$zQ1L~h)SawFQP3YhSS_AsXRMU#jK5@ae$kaVXi(I`rKdXqE0@%MOdMp zwxT4rL9_L;)u^4mT}A89DQhAI`7*O}f4xYVx|9NZ40a#-nUjiOc`^J z_>+_$$i|7gT|TRhU%ZrKN=@%)=!AynT%h=s+W;`XT#vV#q{Z9OY_Pcr-FQ96t-UtIZX97a3~*~~xpHPlk}R1W7F zDm^|}s*0@vT5);l_%3|WT$#$nb>vMHoEtz4)f!OlB{H*Y6_FXmfb-bwBQDHv-yRU_x==i7e8m&vwX9WFaQ! z045JrT44q;_|W0W=iGg9k!4)M7Fl9w(Pyy8MENOFpiI>kLa7rEYWXGPcRv-2_zdSU zPA-b`rSUkQWMn5OO1Jm3Nw=j63tJeCzH@2Al& z-akIIfGAms^3Fi6>$_0?CrRAWU*|t82}1$9GB=_-qckBaR%z5w0Zcoc>NH5f6T|@6 zuDxoFQyzBTcdY>WWPZ^m<2kkDUujzM>-%ZS=31j}E?Y>7|Ko2lbJLV6Z;{6Q9q_B@dFO;w>2mC6%wSM;=5+_UHqJd6($<*~(UF&Dg3 z9;Z4@yPWcrf+GI~4m>%s!m)0DqIs5y1#6Y;81Md=0;Nv;q4&w43Pp3<1cw(;N%iC~j*J z#s)d9Yl`W|bL0lIBXs$fKzuQ6JRrfP6p$1;mJI}D7UD4ia4kZ$@%zpI7=@ovhhH7> zSW=oa8duW0D_K)mZ5D|<0^S= zA}R9-qDmzhycXlNSQk?6ZjJl7u9bAUb(b2sr{J^lVk6gdY5YgOH&gqLi%-zK>Edb3 ze^im3Md!+#O+J%0esxQP&I}?tbf2bV9)pxxjo9oaVsrW%jo4J3o7jA# z5t~gHXvAhmgxGk9u6W*L#HRZMA~tu^&G+79#KzebvAN?-A~rvb>YCWh?S$A|+6##d zph|l}Bl!C;LQ^^!)(iY{O7)TTa)&w- z=VW4BTEp(>T6viI5vt7MxNuS|1rt11A_X(VP%z%RjAQ56`ld(d3dJI&3Zf_2Cdv~E zM1Qg<1)Wl@4af>+%Y6QjMpx)$yX+cat%w(O%@`jt(w~|n`i(+EVwvkAU#%;#f5ZdC zBOM;K!R?Z2E{7Ybnv)m>AveMqNI_=nM=lp=hl5d{0*3SK(}HeD)5s%CkPFZbWaHOt zE)hKSJp2jdh{2=4t9hF8=kyf#)zw1{f%*hzMaa!}17pce7mLET7FX$-LCQz%D9+_wQJl}6 zL~&lAsL9UijHNpF#!;P4$|L2;?}YNa9z%Iz!fbW(|!0==Z)Dz`i^B_jQ#YLTV8~(sK2TY*vxLzSu0@l93k8e@mK6kIZXi zqg-?8anDnG7yp%!j03l!JI~!}?*)G)ZoIftQgQWPiBweH9ChcpYC?N=o}1dw*J+*% z`A2U?bm9NX4EZa`kpE%qgwN>8Q|H@TaKhUUb=!XyPsZr<6nu=K93Seic=+p#p=G?r%0H5xmE!cXz^M0>@V1)R@dI8_{Lj@ku?BOb%J$$PjvA(b?VtrL15$oN*$R1Ao zCHC-!PKflYF+}>^j1KJKBk}y;iuj)xb$&d{$o&~U>#i_zeFw#V^m|Wh-@leV^S)Pf z3sgKsexI(lgwAx+h{UTAC(Gx^$#VV6j7ZpvkSaf{_Eugdf2#c3PKm>^mx(xBb7Pb$ z|9)J1s$ATDV(v`_+R$+Wk<#opBAPt#GNaQk5S?BTJJ+{$MW?OybJFSmfS=}l{{n!V zi>LNgW3s%inNZ$e*-qN+lvhkNYQ*S8)A{m>&n1(6`TvTO3V%ono{K5=7q%G;HKlE) z&$+jmq1raHe=bSGpn;KXW)Jx^mj0Pxkm*+1X5ONkfBQ4rW?nXQvCZ7_XTqd!Z|HiP z*=Fdt&0GL0b{lfdl_EphtG?@_MANr{`%gt9ZC1>vr*E0@}ds>^@HvB>ACHG-*=Yy z>%U!V$?h9-w=M~aYzMpRHdx0(G30-lF3tph5+;3>tOWD&2$0(Z5p+bxy zs@ITT@XI zB#x-WR9lj*=@UzEc_o;y;x`81e~I8XIy{Cpe}@Dt-LCK|>VWMRJ3!6y&j&U6e;rPD zc3>S6GDlq#5;B|L%sc!BM#y04Ym|&fN(T3dlBs6CBO%jh*pvtfYlegzAng&6_5cTU0_46w z(AuA$t~rpGjTkZtS;9GL?=SyAEaAhjfBFY&tA7>?CrDeILlIrB2SS4qD7>BG_^K%t z{e@_iO%4tH3p-6NS$wdS1?V-2{+p0+jQ&F;y>rKW%V}9Th!VF@nNWC%D9y5jpUYLH z>hS+;>+F1hb$yAU9k-kkhb67UsMqa-*7r4Y0Xp0{G;K-}Jilx?R#-##F=Lace_oNe zJdNulpB_bvEj>fgVzXIr*wE|r;IIO6eetcrm@ui1+z5(RP}a{PsoqvjA1)VUVA5q$sVh_&U1JA#^T05N0@3(*Ed}As!?bbxq2s&o@Js*Gc(iMofAaD2$*1ko{_@EdL8>jE++Wy;^aG>J zGRTp^mqTCf5LDd+&2iXfGJN_u{dd%>LBEUvXP#zgat39*E9zHeKh4GZfBy;mnq-Hk z!iX;b7ZWUj3QEv%?IR?L2l#SKx*(6MFY&b8%`XmN-ZZ(m-g9VyQ%=aKZB_03YHu;i ziF3zk_z@T_r&b7_gZMlho{!>JFB2&_&K;-AS}eS07mVH0VsHua9CjVX2!OIc z|IF~+pFGJuElKX1M7d~Je+cmhIJ+Gz}1o8?&t@kuv&3k(i@=O^FvU3}n$w3;iuY`G6CCYcK z#B*Z&w#?a~tG;Mc{r0n>WZzd-iXr4aGYiL?En4mMyr+gzDNI3^fAZT^&ABCodMjrk zp-JkAnZr(nZ=ff{aAJfYAlp1qp>rT=|hX&q&XPtcwk0{MSgMEd8 z_g<&16K^?1RN0q0teco0DX_(-f zv_vIs$x3p8mc93t77IGHA<=;Cc+%ubKAltgp2fqCa(LfJe{}iuYz4%d+=LxHhU}@| zUJu(j%%+0z>9_Lr*Uef$V5LHcPTn#%$kpfr(EIJpfY8#ilgQ^WO+b{{yN{*v zrn5QqdASEVf3vO1-XDlhu|>=;hP}ENJ5vedMpO&ZwG}2x=_M%kupb`Is4P57l_8l? zsxbK*_Dym`WXVOz;5!O*qB#=mH zOcV4RD4V|>!nF%ZLU1WLt)0Gk7T?_2f;kDcnj7~c#=uQwLkj|8pnD+P&d||l zC5HW!_TyZm2&#B%IhD(HU4{v(Ze(>+;;DIBmG~~j3&9VAUeOf%O=}3MQO2>SM*XSK zqKC9Re~JTP^k+{Cf(#(F>MS9z|L;Gh;^N|!*Usw2pJ|H}f4zlDd6{6w(E6@4Kx_Y* z=nWBXl%65kYtfBH?r5HoE6+D_&)#6@**6Bp2>%JpcKsNOqEm{F-q$ z+H;ROr4zzuNH{z#kMrJ7=;A@%`vQfjen!DFf3LAbmK7BkJVVK+29GuZ9avI!){d-b z4GW(+^hYxno`qL0*1^?u%J2CTaAbF5420mVjt`jGyAmGV%$()cJY(X*xt#~h`~{!& z#jAyz;f=INEKbkGCW;M1X$&BlU_o!)F~op6{GysMmr5s!b4Z~;EJZzdYTgWB|$nNCtz@8+$yJvc*eUm$a@#V z%O$q_EZ+Mxd4mRw;UDP;_-fC=0Y%ame`0nJJArKw-oUs>!6Bac;A(Z z@46D{y#N<|G}oQrFja@Y#okfZj&OR{4sm+dJWVL2G5yUeiOGW5UCnLdX$<0t32@HUrP)md1wZX7_%s8Gt zCHy1765h>~@O#lCA8Seve~;Z;ijcaD>c5!PuXVb!M#C4=T#9nS{QYU11LqQ2$MaII z2K@Gq7VUYn@_64r5~6`vFKfQJf0U)C6|?-5z@PCLd^H4vuTs}ugRsE|;rXug=Bq_LoqA9U`%9IW{H2&ykcMp zC%RJBmeQ%pErL5??L^kpyxUla*1dym+20`lyn;fs?iC&KoDB2?ooWNIe7&9*hal8Wa&K*bcEl`5ze z_}gyXGw)Soa29gxBub1Vz$57$)@qC-co5?NZVH!Zxk2xxNP_X1#m?*|sT$;XcHA*P zs_9m_|IJRRGBoeyR1ObFe-sV<@XKi^O~-Fr-V9b#Pp5TWW`WD1RcNvqZn6PCmPcUL zg0*I>G`pwUrOgO}Nm8G<{FPcCBLQ0vvVg5V;Y=18&?kH`25coVC_p~|4E_u03cw)s ziNXdSMo@Zf7a);+UFObAFyac zXJC5OJ5!64aY&;rc%=MLN{HO8f9?#1l1qe?K#AW(kz^$UYcQYuTJB$Pol=ABNU>;YDe(YA8YN6PpgG z#^@dwSH-1NMY5U*1Ikf@;TzbuR^6Zu)%`}R4vS%x@QRtee}WRQU>zg!z8T2ZY}2^^ zVoe)@4z{dT@CZDXBJOaQaW^sUBlvp|Buj-U`$NIx{Dt>~Yyo7K~Y# z%~Ii4mMs0<2qSkVeEtoex8XAtK0)}bfsYG5e}PXGe|(;Y&zB?4H=ag&PVqD;9pY)| zXcl%F>-b3KD73N&l2W7{esxe6Sk`J@BNL8l0?Xeu8zosdc^{o?ffi4-cWN1mE-&Sf z=;C@v?QJb1)zp2RiYz}YNaHjUVZxJ_(7{gM4%H8KBC{bATx`;IlwG7MhqMe6m;SN4PS}Gd3nEQEwo=!@lzdot;{Tk}~ zVNw!pf0Fh6Urb5Fi~-6bt`n=HmI|nS-`M#(U3ROV)-9*rtt72mm>HON1LtjJ`Ci^Pv2-;PFp8nuiw z-;+*lZjSOV_UvkwSQ5J|e@c@FqiS0eBax-Rg*yF9V)NZ>4?X^NB;SoKZ#L9D-x#0o zhJS`~AWySdRLmnovV;&}7Y#t`xFXmyo@;}JKRMP^$$$PXP?_Hzi zVOrf1jU(LME0Tw4>=vZmdLAb2`G>tCd6*h&>A9AN37{|}prp3xe*jNu2k<-u_)-nv z1qkq%WIo$N#Fv5HN+(Ic~(p6KW~8s7IiJ#)}~%?!-0Ntnp#{Z2Cljfl$>be*1J z=t@25&?S1Vp{N)+&l28fzKVqM(zN7 ze~0(r`mQnYdeTnv3EkE6eDevt|E``-Xz)FhPw4F3G5Lgk{=%r`6S^JMpp;MO-#|EG z@(Fz%Gp(DUXuzW(lT@}eE)a`%se+m76l22&6|Nq~7LYF1} zZ$6>_%_kI>(4}qB|K<~liJ?PJVvZ8bas#s6{jUQj<)4R~u@xBCs6er}Gl9aLA16#m zSO-WHZmYC7R+?C>OB1MBq;m!CsbnR53IDS6;N0s%lQ%MsKm4Blpb{Uf38k_J8L_#f zBmRTM9!FL>`YAhdP**gA4(R~uP`-+eIjx4j^1{gmf0o3jl+Jf}q_|zIS0&kinY*bd z5ADYLEOhiJ3t?YO>60X%h426?A$P*f?3@gLVL`mF<)5&clYBazcjlD(+N3Et{KhHy zC()H|Djh}e0MxF9L_LoOflAP+3B`E2x9F4turv!Oy9plDjn=^&b^xi9S$(F4%rMgp zg;^lAf6c`)t}e_UTnOBqmq~VG3s5mOgI{eJevP|3Fz^MU8WjCw3*gRR$M7rW_7c}$ z1|=_J8pjI$nM@pPb$~QYYM^Ymfpa(d3q?`@7Eh@Z_2~VkHg*E&^cSM8w-qc!)b&U3 z(e}`wY9n_ILK_4j1%(0D&k_<(r&us06*H#If2I`hDojpbLbQ+r#!aUe^`YngV)=sgb>g~RUn8ZzVvY1Z z#~PVBr4pNS|2-bXVJe+E&l zfIA?d9fm6u_gVTREZT?o-@$h1eTr5T${mACK=3W1x@CBdJ9R1kq-)pD!i@n@zC}f+ z4`+7mNPe{$c4>#9+<^6B3Z8J7mQ$hI8MllUw(6L@y{-L{-OwDfWOo5?L#G`^7RA@_ zWB3ES?zN9=LNf3Lfv4p?_N+L1VLxrT^A_fQxWto}=LYm59hguccf z4EM?PzSHwFA_t7i?_}ovOis}?DWo|VVAP$WS0rNx-W5}{gP&%;=#Y*({Y5LC(n$~_ z*E*#-Jm9Na5hctg8C(^r>^TPE(>{b@4^wtLyZ`>dz;58`%OIufyWgTmf7+(-C{_-i zJEWZsX)nD|Bvn%-c4;TQ5}FUi?d3PwrLzKhmw%eMHia?C0s5A)o5(9P>>^$PhoK)F z4lD!tu}#zL8SIT$GE%f7ISi=cmwZ|Hil<57y_Y3WWZoy9CL_P77s`!84mc$_4+_}I zCuJ534M7X-HX&KYxVVkl`QKcqe-Bi(egIm!?B(kQ za276PhC7m+lS13DEwfY&;^8DBKfe;t7#kBCgRFs{Fq6ny5EFw%=!lt7;zye~sk%XXJg|NUc&W z;52$avtVmAl2^v&^1U*?!27<(v~+49{FNQg*9FAWv34G_ATX>YR3xlztS78ho@qr7 z$|gJSdl~AHmLs^(&18l{N`~1~D<}gY^G+e2n$7HtOQ7)hf6N&+DPWV{z?blJB;LE5 zT-mRo1pwInHNPxq2b6s+fKDRW`{5>K%Y!1+2%Z78EC3}0{#LDUJo5$sF=fiH1h{SsgZbWKT zd6EirzuLEZ!H>4`n_;K)AEEh1layCA>XB9wQBX8p%tmu&pH zNFHqvtfvLO=(G*kmI|0f=d>!UYCSrGg-*;)<&;fmJIH@}1yC+n3!$PJ9Crl==9~TS$S_t;xeK>%Ho3|OSS%xOUGm((ruOskT6Ql7dIMg(glnli=-YK@jzH0zwB5-&`bB ze@Qh+sWU=zcO`Jj7qIopBUMD%QhtNihZKPKz5wJ=4G2VDZP@|z8eTl7C+z_SAmjWW zf~GB=X1IAD+>`}6#QRnoR4f;$)(YP9hi)7x&H=cBCiY$dnA>U z3k{wh1_05(!$>$_vvxRw^~ODi{L3!E_xwcn{Jxw7c7_!QIx@N>I2Jacn=ilE(+k^J zj%7nvxB!DEWsax#K8#6t5AHU8D^&zTCiJFWcO|Eh4Lo>NF9-#;1`nHL^B+usf9x7p z3BW^?M?A5-Rh7Jp%U7qD}NGZ9oul+XTK~I8b2N#BI_(L8=qfAizXgvYdLy zzrPjemQxD)wHv`uhTXcw{UwIS`|=YQ$+0n@!BUQ?4)sB-KFPbB_76F=461g@X3^$n zxAf}vQgt;1X6hC|2Wt!+xDLCUf6V(vNmR6F_s+(5xbtZ6O2 zDsH?F)^Jirz(>x1}fAy3(WJ}Nek1g9xk=v^j6D%T?zN(Sa=G$7p6k(^br98g^p++J5^|%#xa2C*T6Hp27t+M$Wum05OBN?V-TFe6$0c7tj0bK4Lb2?SEC0f9{Ng zJ(=8*ge~q))W#S`!XE1$Az@=vuXCL-GZEAX4TC9t1Mxl!<-QsF_B*Vu@NPFa`LM(X{Ww+SrJ}NVxG2&lE6!?3ilU z`d<{SyZA*PP;=umXBWxyGJg$1l^MC5-JWJ{{zW7U@?H~h02KnT0JRQa0cscgAXFt$ zIL`v&0fuJ+6Yu~s^=0$=W27JK&ZpV#yv-qx2gd5qtW=J0fU(H}LG~=a=}93V1UE;aOdNl?u?IDj-t1QeSd{R+F}FBLC$(> zXR^qUZ%9Oe7L`e4&qt7ZnjYspb~EzJ3?Edwt@Oc@nFwrD0uza1352Oix0N^8w%yzo zSJ0l&p`i6lTw@O4tUdHGdVPJg_FMP{tisSj zPBwQ3#L{q%VN1v|BNg+{9(=A<6@xz*`8D2k_4LZ`1FO?@{B%lHqG_ur_j)GOZzgPp z^eXII{GudeJW2R4@QZunDax-PG&KAKq-E%cSgT=a=*r0^41aF*K8~-RF}R#S>#&S# zl)edS``>|Ix&NU@=qge;_^~5^PT981smfgdDQRot{>FoTkQb#bLB#|Ylh)F%UCa9p zV_|s0cI|^Pd-h{&&)zJ@?b&a$vAf1cHy@W6*|X!~dt>@fdrfTrV>chxf1iP|56TTq zTD0HOuwB|WX@An44!3C}JEZqGs79uEr=xaFM!s3h| z&=r*~c4@CN3s7o3ih;WH%fp;k%eSb`fiU7DKr|ienAB=P!TO1AMHmWn0Pp*n$-|bn zR{&JUTPxgCG_mI~nZzEDcw*$8WL@6jy%(RtU_X#~LVt9kbLuJFhi(ovzS;&vJ0tYX zYi%rka$Yok^5USXZp#k3a_Rf-2IBSpXMYZY@RMxUOE}KfHx+vIcc|ump8PZA>z1XBKaZP-7rJJ1_oMm z$I%d5z<(X&15(4&B*0Ri;T<-~UoH?HVb0sSsQWvKd6(uVC|HcYlK64Cu5(Z@X9EG^Hi5c6i_I2`m=e zzhNn5&-X^1e%2U?Bu>h90{z6mTWw4> z*lzqqh_48J*voMapd4lPkf{5(=3e61NWHU2fM&WW?|m(ig%C$Aqxz8Zr}s(ASFKDx0rgvJ5b*_r&Ht$!MSpx83)HN#g)A{}vQZ}XOEWUDz`nwA?TKq~@ishU*xCd@75F~|?WQd@_wDEQ48VexlS8 z-D8f$>@hDZecC!9_B0|NlgDoZbeM9c^Ery0{Eb*}=h04x7e1B<9|4LJl|yZ@#Otp* z@jAhX*Hl_^-?c;_9U)#z&wro3Dt~D?7jc@1#Oa~7UmnxpaWJNe6X)9LswL&lVkfKRSD!*t@e+>}^KuEjf$W3&2qVl)m7ORm$baNXG0(QVA$^JNB!8&S%)yg{K|Z9g zp3t686FKF?chIZ#_5FBHj~_sgnt*XDBw)UK7p(rJ@KXvZIY6Z;wo1A3=LmcGqOCjN z_g-gqwbJ}XD#zZMi*E&gX5@UlGU*2-?>m1Td7l(V-nT&AYCx%iuiV|jT2x4e?z=mc z3;pYlj5Xc_D^nrY0e|Yj&l8~s$BssI!=K;Bbi?K{HgnhYK7q0GNW+RwiSkOsPyBdjkdL*KTFbr{rCA`Gkm*1ZH} z1&kjk@iZ0i-pdT+H(6nqYSy92*2ddvrHU)Ksi@*ctDv+6Re!6=o_b?YN%b5wq}1SV zi>Kbqt`a@<7P>lY@*K(thD<_Aou@t>_NA1XlsY^gXJI`DsHdr8Y$*XDSl`E%QepF( zqCNH05AYninYCr2wi2|q>Oxvm@MQ|H3xns7F^G4Ahs-H;@J@ZdlnVbSvryJFz&*KY z6o^H@C6brX2!E~s7_+Pq989}w@CY`pES18caeui4FV}IYaGAjF!VD-$>=Iz3pt&3h z!0J-IBaQ#o(1(YUIB3KWeyIcebL{9SzTYYB7k#zvp)4~JDiO56B6Or^pND4JX29+~ zEWj)0o=UVvR|5-JWdQOY5cn|_ns#W;0y0OvMV8ue7JsKa&QOKEbrn!}et&+o#S06+ zJE@02;7k_O8i$I{7JMgE898Js{pArW(O8VrVjc~eyy8#;qsr!)44nJt7=zL3NvZ63 zAnX|ijM`bYIz3SnjH61(F;olWeg~sjz6nNid2}=qrILadv|>0=Qr&o1E+!v}qJRel z6t{j5Cx6I&ds*HvehDU!TF~Ev>7ATF23=)&sdT=84ET-O5=l>g&!j_3~GXr?vnBM3d@f~^xoU)Zq&zwj}Lnxqt zc~=zq=UON!5AUeP#VYudLVufW;`l5EXn&jh$U$@~h&Uv~dNbr0V!RpZy2X1lz%m-R zFEnAc?!I8le30on(+1Zf1#)UV1VONa2p6>?&Aq=;maI81TD0vcEw4JrsTx zYO{O4<9+qyL$Mhhb!Vq&uIkMDrhi!TzA1f|yl+Y)-ZxY3nOq6%K(#G%D1l-F>p1T{ zl8RDab`#kwcBkV24|r6A!2hArX8KC-oPpb)q@$oWip&;|$Cxetn8eH$y`q-aB~)!t zVV2h#GFdF40%WonCK33<>vLe}5%C#zc#d z&IX+5#JaI`Tq@`JVZd75JiDjf@4W=e%Y_D;6hLdOpXSt0SfLwfzca@eX^-_JYaPB7 zD!Vfk=jX!GR+SXF=<;9wCMv5Mzt=6bc@ax(ky*FiN!tZV*{bV&XUafSC2yIo?Y%FN zX?yPg?jJjXN;e0L8TfyILVvve0)R>#1XxBz0fZ{`8e{=}7 zydGN|!CKVzV{Gp`bBFe5NbTFJW-6lLcK;)0gth;2X0xRQ6JxV27=O~>Fnujr&j4SG zD{f;qE;4MAG6xt4hoBcrBjasns?`xQ285qeC#H8CbY73Bxpprz*OvSmd+m6#*XHS_ z+HJ_zWmh|_RSte^6(((kk@$vV{NV;{kE=@JT))jdfR-j^q;342iLHI~ijgW6?kqFT zzFV-`5MHTUWOql{5r1Db?#QO?bZjbO+)v%nI!hB(o~XQtDGrmk0&j!+C1#&pHiEGg zm;#uXOy0ZLgqO5g?rDlJnp>O50@{(1IJ?DAl84ifiSnq%sO=Mz&}p{MF)>60GeE`? z5wd;u>caLJAtb39Az7WfJN%`eCP_Dao`XC*TGR!3pdjb<#D6`1)rfL?x~|HxYKFaD zq{_kDN|+2Fh#t(arC_7@lhFSl%=K)I^~auzO5qqDj%n zF`Z3>(mYQ}kr>L2;~_k4Kc05PhQ{M9Zizz#Us4A|xPP`KBEyaSIS#LuCUwB8gQV`+ zt;~c~8s&Vn$+1%^+S#-kWLu^ybmC?cr|cky=t|1tEDo&Vy}vZBB5KLo;uJId~Cm zvuFrA7BPg~n8+r~M*#v%m5m-u9cDF@4K;MQtAFqsCah%mT5s00xigKC1q{qf4s3K- zT&lsKwDFk*eqR~vZn+02jK{j4(wW9@n7R+QFFVk6 zYrx$H)qNwYy|UNBI>l;5J0NLrpAllsgj7m16FSLENOv5%nGj#)z5gbq1@thyv?Ea4 zgMXyo2mtCo8+Dzp*Ahph7}W}$8V-flpE;jNs==b6#;Bq1Kc>h(jV6j*J@Y&%a@(zO z6xmBwzI0~g%O)#dFH<~4PLEposPC!68AY~e6nUJ+V~~3wkujYjvwWDpihlVHN6dR$ z81IJkSa}%eu@mUAgw##0XL|;L-bpCOI)A&1@-a))b)<#Q>q_#AF%K@=H+XONC<5y} zjq`^%@BKshgzRq$e@a!Y``o?cQHE;oEAc2w7^YUD+^V!OlMNFBwH3&u!uII)j~f9! zN;K=Ooe$Qw)&SMuGoRz-|iKOr)B~p;f&2 z3o~=1vda@yn{}V-aSVW%YL_2`IhdDOV3UGm-3w~gz3F7#V+@;S-6Px?xL1&B(7Lx* z+9B*YB&6&{%M6n-w%V=#jxcZ^0Dl8lhhbMDS`YKkwJ#^P){YzWKw_*2pT%kdP}IWb ze+9v+)3H}HUY#bRe?Ck`;Yp34&Wf1!f~KwrYWvmxRi3HiU1eia+)n+SvBOS%`n(aQ zG>>d0!y3^ZN7S=N)YR7-sb{r!c|2xH>;_a@7oAy7=M1-32+pZ zYcU*{RKDh;5w3-HfxgV9*NfToa){b%>r&qerm}W%!J$#__q5cQN$&xYt`6uXy_d

? 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

7a}(Xz!a|IkSmKVO97u8gCErOb!K1P}n;tZ54s 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

T!U(*2J$pP_g>^{j9e`KEoqnKvN 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

se) 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

CBEL)|?B%#0PxrU9b+^Cm^e|ki% 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 XiFmE`r|gq3izuqhHwg delta 894843 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

-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

V-YQTCvg#*-c|B9f1_5$LWcqsZ~ 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

dQ;F@aoB`kh|hTw-_|Ms8z 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 sphtlO6yKpctS7 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

    l7*F!E=)iJ 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

    (<6DfZJ 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

    #(T4_+9j?lt`)|C0)|pB_aYMAkBa@4BeeuK}u<) zOGH9ix`*zNZbrHpV1NN;hB@;)=iGar=l(VGti9G}z3=;pXV03w_7XbkB=Wg>Fte~f zqUrcc!Q1lt>Bbk9yZi@AmkW?Jii-HK<;P1F{}E^!6m5Un)`!F z#QU$g%LirH%*&Eaixjl<(mC5^=qAz3i5eR6}E;0XT3^`Y!UE8*L z5cu21Fr-)EnRjpf{T;bFJ-Tuufi-YHdg8BJ>gm~%iL@a+zqL=9=8}i5Xu%wcR+Dhd z)s=8Q|F~BEMYi>O4&fc&=hQ1}TI9YG#QSf54D2dJntlPu6phMLGnj*9x9g=dA4kZa ztpl_jXh)y&cJUg>xtNB9zN%p~>NCT`m!Sc!Mqa8)%p_K+4Hb z;_-rhSabR5yXyc+X(acq0_=I+gutkQNQZbR$&6FIQ-DGS;9~&J zkqWGy4x}K%U_JlG1I6*2v;L8c`G>D@mh-+F59*e6^d;)9dDw)U0+^jG&#jh)j}B`S zKy~6UgJMHY!SW9OOc1izbHxZVBnlQ|H5V+WH%iIXGJ4E!JHT#w2-yT)Q5Y5Jk+FuJmSG46*>U>k)nZspE8); zE(q*$9y9h;t5LYT(qpue^Os!T_28Y(m~@kvr2$CzJLvbGCzw8KW^CEFU8WDQW!act zY~W#HX9zAzXzV?`)dJ5Kty&rciLN~nkKZWD@QD=lbwV;VT{VgD^f6c)$lS8m6{jx6 zw;~GTLGW$yv1O}4LBMIGISq7l;pJ+&jZ-(F);*Yk5o4{J=#m5%{Z(@{@qAWS^&)+B zM@uKOfq&dD$E8{)0yJ}=Ikrp^Gv>JGYGu$KngsI7(gTZ0Dd}KuX`j_yM3IiQlE&E? zP}lQEFal%CCvKSy;L+g;D81a}*gF&Bw#hwMoW(p!Dh6}}EEKvzIJGkMuWem1C=E#j0aEm-c&I9gG-%-uBM9tH{+ z^a3};J=CfTHRU^LY@ic%GPbofK!RIMsGuViddR1BR>x5@r-=R>J0onpZ*kc*0!Mfe zju}Ty*a7o-UJ`W^$`Tp+wV}2KD-tl!y|mRls)MpF%}OcLM_ItzWX23!!z=|$Bb8aE#`egsp{Uf9JxZYe~)FE(&U~_#0e1rF2_7sYgB#!Zuqk?_LziZOq%2>qk+nyzd}qy7W+CK+MO`#7qU6@g1JJdsdsQJ#m@F3i3+QgVauK z+}o=52eC807|;90Yrlvz>PP5+G}Z&dvklyV1``X#r=a%!gfG0mBU6~UlsWsN**eV=EaU9jh)-{a zHGbL|04>W&c@-_U%x-|AdeV0DYW-q5vSsLV6dhT+b5abih;NHFhY(}T*RmV5uji9w z@s$DJUKP9~c2M3NgK!JQ@Pd^q=}rK3%nO~yy^)3h)tSo>RQ44ir^YKHXg zzbcy&!JmAgY)+5Pyo0$=xt4$Mq7G|8{^{)cIsP7+F8C^T( z+9x}`gBEDX>@u~;XavGNjRU3~y1K}|*-@+3hJ4leot8)O%@oNEKY3^4_ucK=ipu5o z%`jD!9V~44?tMR?A|_9#=nLbXYBpDra}ajzIo_lcCNDY-k9|G*s*~|s%Iq-U!oy9$ zeof>y$&pvGb;L+c&0w6E^KtGcO2&ypXSQD2{w6w^4bvAE734Vj%nS1-I5;`}wn{VJ zoqXDDe(^OI4tFxa)@k31QD>%XtHBmc0Rg4w1VdEG19~jLo(X;6kx>CNT%nQMrp1a$ zdnDhw&iR@Zp}EvZmG^3BQ0f+HOY)VCsFtmP!JH|lVzH=t&CZw0Qz4BwFIQ8A`xoe< zeKA|O53)4-oRRiOt&(+ICx||l4YtxTuCuTABzbnx9pohtCK@F3XDvG8E8A#~x&lOO zCW+2aNhJaxaEv)}Z2(RDkcdp>%d3y&eEH4Rta)7 zE0*Q{<)%Ma^nw>n+dfY2BD*`Hi+_{krUSdS_KZmOZGh3cLHAp_Lr|&g&+vKqKnl`d zV?|}XD*cVaoVhb}rFLH`N;kBw2?#;b#vE(+Yy|+4jtPae8m&$7esW)k>A=InIGdSu zVwGL|659DwS;}d-?}?cYA{_0G$=?~Lzmv{j-O^Gb!6b6dWxq-MBR5^*$Y{uNce;?; z2LG0v6z`Bdm>18+RSqYTb2MPWy11hXD(696mVPu^4|1jx9V)JHkMXYIqf(3 zN}pwxyvo;7xVYBMJ`|Hzs6$ISr16~}#6Uy)oQVufb_h&g41cIg^7imAaf>wb+kyx4 zGAg&malra=ZB-K&J^UsK1E0zUq|~WzRYwBrmbw?dxi1uvQ-vQ^D;OhN!i3Ogix+H& zWamyTPnC-WZMNUm=X7<#;Yk$E!bcmQA5XCrHhO|>>*BqKf^6TXmc4ztqy-&-C@Fh# zPF8`p%Ji6cs@={rJ%p3LjPYuFe6Nz6nixtAcs*}_!CE}{-6XP>ZK3Y4EsUnV-`i_a>VhUAvaDBpyzdCl8(XIWeH$Tb{ zi!PaCN7{q>l8cMhRjfRz)X7sA~sE z$(2lUL2;&x_qTrVN!wsy?@)!E0@M$vuww%m%hR_80VK)owcUs+BAz6l(Uo|!C+5jH z7@pA|y(Q&O4V7k+0zIig-j$ettsxq0CYlRL^>Y`=poR&CuQHA-b}Utf6QS+04j+D- z%+QP?sms>Oat1KpBHJPNT~KMh9KHPS;^)@ut-qGC1pKVcp41AQ7W{)^w;upNsTMDy zaDe@)LizizE{W_-$HY(pCzrdt24bnu(A(yA-V-+VpQr5&q29Hk0aiGq+?L#KNfaC>~gTsXh`b&KrM7nzx7 z{mf&S(;?hSy0nI}=QyI|BU}U!q9%xEbE@$@WZ+#cTPFRt4J6$D?c_A`u(u(#KP0(Y z$~+g?e?y6F(d#!=Wu}R%#|obIYa}G9T`8mr^`>-*!qrtUEudOB^T`ERZ^%nj}hW4rl=yDyO<;m>2Mu5*Fwjb7Wrv#cRD|t$x-8uYK6a2aKcmJU|FntrZ}RG ztIo_~-y8kod%+583}7Mt_p0no%^Y*sV)XLvY$J161M8EI=d(=`l@f`ME(Dh`+V#%7 zPeh;XU%z3=C~k$v6ob4o)tmT!jItQJmUNEVuTp-wj%%!oA6QgfS${v;G*z1`y3W5m zZ?=5@fEG@ECG$EYe&!;jer=}y_(fd6=PL7`E7j8(685Eq-?^;ugb-wLR8+bY75Eqs_@zP$H8ZU)$E#dxc zH^ZwYyI(6fabX#mu9H?2yg#)QYo}|S>v@M>HrLLCq@~P{+Ws=k7d2xrmdLootX1DN3*#8rB3`zyDBITh`=i{a&mt8D|*D zZ=7I#w4e}e%xJKYZSB(spVDP{CcGDi`r{OAvpQOv6c7lFui$?XZ!dZ_S^B=j>`k1R zu=L^7uZ+@Ff#jcHMB9@V5lq(53mFxaHQsEoG9sbF-GM#euPqI2@hA)FLjTE7fyv!J zZ9QvK*R`MP3M{C%1~W?|nLb)qPqf`?>!&ged}dQmCHN1=!kMLOEqUWo-ufNQMwV(M zeQy0GBvp9XVYgouDpS_B>RniM)V)`faD!aS^rd!oEs(;QyI|^5><_!^c_r|TsP9jJ5H+Qf7+FZ2PO5YK-q9kY!rgvP( zuk7X=q=n#Wrayyq7OuCv*M5hw7Cz_Qui}vf(oQcEKet*HNvN30w&@^lHi_0U3Cw+> z2F&INd!vrxC;Ut3P5>@P`l~9d9JIP<(4^ zt}RzrdEe&^;R1zj2$AZ}W%EgIF1glygK=1Ke)C^*sNXA{*;+c9tD{!qD+Q;7sRNea zOH+U}b)G8JTvy>zLn&l8Xzq$JFYD284=8_U{QJ<_ zSStgi*Iuu;$XbB#iI!j9@%wfeOzO_#x_4zUJAb~!9If8+OA(A}fsR?RKg8v|_L__b zYEUU0o@8~K>piEkGox?78l3AwfRoegNUkBRUo^-oT`&!kq@dxo7sVo<=ey@)(gv3c zBFo!=Z%rKCXo3yae>D5N(oF;YZ2RunzF!lm3y!WV9nO_dJ3X0bqX6yBukp9QxnmAi z1Cq{@PJ@+?CdM3v$G!HXc8dg^keP=QUV5ZndjhICzV0`K(sj=ei@8CzaHg=|mobb7l%$;VC+ zqiPKqlmw&}^V(J|E2lC*CQJpKs$Eni*wKMkXEh=T77J<=cFI3&-JGxkw~nBy4>Kw0 zyshTjt?=u5a?xXsxgyZ?~A2~L`Qy6XMlD!NLW01lf73%)-9;>3hL7W@u+wjo zR8Wh)E;!;kHq5@6bS^000>lq|C$^=5zGP(;>ZCmb$V zPQpE0!OE2dGO@=2n~tuuHtijbSFprc%^zePR8cjAfo3x3PcOCxGaGKq{06x&IiTNj zhE33aude-ysvK@J8hDBQj@aLV$BD+sZjrr8eh{SKk+W|P6mq=L?upEWV$9L7^^W1^RK0y5^l^LJO&6tL8#vG`<)O*;2iz`Z2Esk_(}8Rv}S zDufSn9mfnlxS{vD1uc>9u>kSP2DQO>5Z5S$RgV!{Fd$Hzh)RfC2Na6$>nj|uT|_L~ zHeOH8R_uu;kSHG=-}AJ=w3NcLVE{f!Dk=55D(d<&n?A4J9rn?!1W}|z#>~FY3N7|j zJRRs5l{DAq?F5iD;QBi=?)WTDO7JF#d>D{IWIdZ9N=%{hf*b^mBwTuhws-~y%Im;_ z_ea~kU^E=`0`0PU@h^TMVhT8XGkOG_*Yd@9Q9;MMgrjLqqEXL>V4d1%eneAju> zES}9S$8f7fTRlE1)cjneh*wH_?|o6|%mi)xj(vrKG_1{Xw9ISDe0N{%`*m=P2Gwg- zutrsgy2uVI`k5iPqJmG0n`~Ux{%i#i*{+}v|1F>XO_jvgecf^|fa~Jq{hv&~FF$`N zueUYm48&~P*`$;7vQ8(nB>#SwG^HGE>6MZs@doElY~Ye@uddv1hlA;zmU*GtM&3?* zKciT3*xo>z3+rJ_yF0w_i9G%V>%MQLD<1K$%@qAVJAU@6s@=n#^!5GGwpG?2({J39 zcgHTb`+nFz{b+Aj@EK5N8Q#9`J}MzWTDVVYi4tP8kM<%mUf8%T?W{GisU$JDD7kj< z(!b@XCUKSac2m}oU}>&)2x1G6`(u(dLN%JiyFnS=#A~m5&38*H8)|83bthRnd*c6^ zn{Ko!7kj3oL-5^J>EXApi4J$f%vV_pY`V|$J9MpmOfP z)FvmhEB#_>7-t0Wpt&s@JPmjh@6V_?=EFT#wb&+|IrVy>YO~#05H-QVICj!cYi<#xprckW?|UQE)JRrGV}((`cZii6^D%>>NBr^K;36rB?do=TQnY92jI>||SsRVZrJuiU8^-EtDIT#a4Qk%7^47|8T^CG@799~K zTlIS}Rxh{H(wK$z4jiaFPN{u{#LqS}WV2*P5v)p?Bm&MnnZ_>5r;%(KZxZZR%4vVE z-1ap$9ylid%UgR__4{M`7t)L;c{3m4obO-QjLiL}b%30`YX@52vH7~By)c!?9x7AN zfwP+>aFmzW(pYI$DEdyq5Cz_;#=r7ms~%D;waJDezSRi2ywoqZ>l0>k`mwkOe^Eo3 zpW-y>FynpZ}DR}fa8LjxT&Q*w#UK4Q+FjVP9 z=WqvGsvIWXZSU5|s=z0!)h@M9xHOy#q>MR5XB_jv=b0#R%z>}YAJVtS zy*bvKTnv&=SC^tslHPhc%SZ`sI?;rpo_P9CMr{HDEF;Og=JI9%$$vPeTq;wZqH7p3 zJ7H(bh2$~h^PBU6XJ?5;-g5s`0`iI~L<++r$Ko{u4=xlJN3YzkQVt4H-Bwi$m` z`|&l<{%&ZFfbx{YyjhQ?&HKyFc-t6sw{w2NqL$Cu7NJS`IO%slwIo6DR0?sMwCUt* zF>?zbz`ICuVv_wa+xul>QaNpaq(dDvQ6N=yuhE1g0V>KwLeg+WM`p`$EqqizDV{l0 z^qw`nxRLLT!6oUvv5zasbeluZCu^dWWbJ${zG}vquWTyYf7$1q)ZV!mzdTtOO#Y!W z%$%~DG3;xdKXOjDl9)YOWNS%;VRBi9J~EO4M&D@O(H}PyxDg5at&I!sIL@=-mGj;S zv)1CZgrb}dZuv}7x}~8(J4B*PDKqmybr4Guo!{fbKgb##ZKi$%UP)BOZdMoWve{fj zkL*ZDa4v0m;_-)0r3D}A`f5$Fr>ecb_{^LlZ@}r+gFmO)42|sLe>&4P(a2#^P4XuJ z@NVE3Zt2?zD2{3FEPO*f4B0xHvn;V1j{6e(016Rh(p5_EKDBmIxq4DW?kR%w=+e-2h(;V?~0uN;arZG3SuaIe@i(y!@K9ANi1WIu%m+L!k0 zzD!O+6Qv&=D}v;`YMNsY2s6>(|05a+#F}DEX|g{gy;m?epKgkD8IJrEkKlP8!%W5M zY^ms>p*mGwWXLez#1fbGOKi<->FW(*)JF{HJY=&Qi-x(;SE_v|z_%OA=1F#Jm4!tH zyJ=kSIGM;@*;#x3tmLyEG;~pugBUZ4ue!bF&lv`s+`qm11@trABg+igW2WW+f#VB@ zH~6`#4ru$@%uCl5tLDki2HW#v-%{`L;#kymXDZzFxW}N3^=z&BQE3`7P0TSa#QDV) zq@3kmQ0)4=EmJRDF}>i}^w(gS?}*_f5~1z8+v^awaX0nNt&+#)cjC;}Xsuh=fqC+= zS>kzcND$q$+r%o5Ce%oH)E5n0exYqqEof_--#OOL7L7GVHV$slvi&%?5Esg&O$_<$ z#`E37fcaTqNt{ej6~0i4ZwTwWYS z20WW+#FivPRRiAZFE}b;eb8eb%c3UsbW~;Qdkiej(6>XZQ=4LI;%s4{J_IA|x`ya! z7KM9l-8GjCxI{6~?NNr<%xZ;Lyub0CEUjyet;}B&%G(cKSEvcz8;GFIebsmH9wcd$ciKVY~7Bd)c>G%KL1-2g0A>9IUzh=j#9=V97)jJDL zP}i(eE4bu(tSvVTNOL*G4wRI~vEmre&7^{CWv9K1JdkIU171#PbU0P~B8_U0F@H(! zVWY+soh_ZVHEMU4m_NGn>;oiM&*`c$WY_CB{9kQN5e%NfOz$W>UOjlANbx3FA4iq^ z`>#)IG{Q=0v7c~(Vf?VKpV)*5D7-jIEer(1SRRJ`{6R{?=HFHv^ikUBq+{}Sq7&M( z=Qqy_MxUH!p5`5v9fp?W1@aV9H$wTs8iJJt{m11Ob4?#nwR3-Z3Mcw!njieqFH}I! za)rp;WLt5mRxYs`ka#b;N}@~T*DV#&^1;`KU)DSir&w{;$H)!Iyu63aE|WW;h4k}xhEVPs7r5*Lpy$pi~Kc| zOm#2Q;#>7C@F1eIjy`=AgOjZCY%hW1{u9;u_go5Z%mayo>@@$Xp0r!43feUEgMhuk zX{UhDSJ%0bg?{oH-C1UhUb18*7Gx`PiK?OtrgeD zk?-o??AdE6at#n!)6rc^;ECv}Kq1FjUl4n#4K-`|z!$ft)o(s%Y4nWw|HebNqK!8 z5)W1!pGpD#;P+iFGCB}fdfF(~)i#mu>+!wRiKkKlK`+EVR_2QMdcNSlVJ>ECuzTUE z8`Lqa;QGQdq%sh?Aw|l!>zl77${3Z;;Q;%gF={{-{mJw?8Ns8tR11 zw4d)%2lLs(12%pOS>>Gx-4ufNF4?)P1-CEirzZXh`Ey@%bcvM+EnXk&yeS%{M%DP6 z2Ll~<)O!2&Msk`A;R3ZwUwDfXx?xtzpa$zg@~Zt6XS5}S{4?FP?rUcXM~u6=|3|sU z31m0p?Vg?#&uwc+7ARt0&x|~~teVyKXK&hV4PJanq3+Xv|90cWX=ygwH|?9o!{gnK z*20=&i>KMYSsHWCX(LvxW^u(&wN+#6vbO=+7oXw0FDh(g-u`1U%*j*leH3e}J1l1? z_R#IB@q9!tw#&ts3LOul`|L;dmc45D#pjtLBD?dq30)$Cvoa>_Di*IKSH_WztbbK! zr7EV}aZfX*%L~gBx{fN}o_~8D|EhEG=cm#oRzXSauHSJXxLMr2B44iAuRcfB~VvbYduRlSf_uSYs9;x$Vg#ELEo>T3eokrq)t$8#O0N`1}U%#x|zC*c+6vM$?=Zq2#MgyOk#MT}-n*+|U$*b(^_Td$d0PQ3ve&we(O+*a6!+KMuRG@R6f-P(IC@j% zA6f6_2)jaMA9a*oA12`7TW+Kj$dHwWpN012#_#%sySFcmd(GODSD^!6>zf6U7mowX zM@6!aDvu>bOtE{gq++SALndkB05#dgJv+nKjpq-ByzUZ1=NBFfg;v1tHsc={F^0;P z-1h&6@@LuomluTd_pPO($ko7qIfY)}#)-@aFTMQgc6*d?{>qs-|FP-*Z*}OGjC z(Nx5v5xn^y%F(}iN+|fhth0L3W9%ME?S7r~!3mri@pld%rvv|^9e0(XaS;Xnn>1_k zI-X_t1l_w0^)MFxuN*J+Jyd}D6IGDBOEd-Dr=_?u=gk=crc`v}rfK7Y{W=>=-1bJO z{k&uYw7rD!R70>l$>k`@Hf_WiB_PPJ`B5gcnsLH-qsFVEj8W(NBDdruLaA!`^T%Op zbj_PmUB&8Oj0~IY$JDjuj1yJBd#bYcuqY=+*aC`Sfh>KL)2xyBBnJ149-`0Iu6kaYT!ogt)Z^$aUL-3VD0(I^4vS)R ze*g4m1k%zg4k2p&IrQZlaPR${Dt8vc72+O^$@1PXb)%*> zvQF)hb>qw>f{4DSb}{VN-P`G2{UWSL3-8iUd_N0D8xwKMmfk`#&2%!qB+uh;gxPzB zW~(^@ABOWuccFuDqBvmAZ|qZu`~2F@qB)~12+nT3vMFC$jD3GxZ!QJc!j}3a>DNNEaJqH-CIZunF{2zm z{$^eTxGE%bIiVu=7D?u}MA9b-|Lt{u^nJLtxgQ)FZ|4YHCA{6c@&aIKIh-NxHv#RV z(gcGOjXssA@^h^me-z2v_hbxKi>y#{-;M?vl+gOEA=Lw~9FC)#!~D^+>cOH(8=Aq} zlyeAK*Dn#kE=+p#W`Zkh6yy1^8!= zvMj#sgV-|}Db>VUhs38>O3lY$|kbqK>jP?=^*pstD0mBnr>$-#&ANN|8wzw zk5px3j#sJqY{CA2t^Uu1^=zulrSB5oe@OfvFd35kKsSDv7%mTC+LJMkj8}pgOsQB_ zkFmUL{x`D&rM`1QaqW$?{?m+c0Ad z5e?(wfmE%SbE6gh4)kCl^H$hcVo5*esQDkv5ox@?$n|WQGb6%yZ3eV|%m8+DM07?* zy*=;3Y_l9=|F;_(x^U0$mA4w+TEe71e^tMEWGd zU4f>7Vfm|neuBeA#LC`B258GTsV9Y#=wHc)KZd`y=&?K4{gl)CPn?!6&u7vroQ~vY zi65Uio>Wx|WvHmX(h~@+C4`o)IrMn$J=Mvpp(kE@0UG5zdcU`{MvcJ4QfB4pl{;rZ zMB_J#kv$LTXD0#6H5orsrDg^QiaiDHXKgoB_qkn4L*}z9Bopx4CermK2VK9M%=p`~ zio{u52OMlo8X}d%21e=SGynaaYVKs!gM9l*k+6r}t}824?+Z@1 zc|VU%^8WLHmtWZ?RK#4%nq*v`Om{~*2T|)es{~;GPjo2u8F$bsbsy)d&B^^C!<$Ys zvdnNo$n%uH2C|L#tawBeE8}|mx^Tg6(Uc6I{3M{qU2#L|wAJoE9lO&Lz~9%JWGc@N zr{yhP=krsaFd6eP*u)dhaKfM)KAvLPf<~5()BgA7i^-XP{uNs?VN>G8h%DlU_h}t| zqu+Ro*>@X);UI~R@#=*=lYDgJVCRc3eolMU9nbfOr1+hs-u!+PM!|Fc4x)zR@0`CL zp3At<8~*FXwLVJE-^o5n7ns-3vcId@tO}Pvo&x3)#CzzSWxNBzive-`xwX%|9gf?{fBhS$QoI(yfvb{{LU#}W$yoc z$HbG+`@abwG40aeZCipF#+A5?mn}-C*7I-eoI$mo`OnDR zUG}%-C5C+1yFKFh?B4G`g3m)pG<1qNT*|E0d#NJ-Z=`dK3hXtct;uol`mI-9BF@Jg zLwSb}$IA74f0XKQ(Ew4-w|OOV`^iqXMf%WmQdt2h^8aYY174>I<|!N$R;1CrpHA&) z;~!@99Uh)<9~TR+v-!Q4&l7BDWK-ktmrR;|ZnG`d>ap^CZT<_mXT$||h2^BYX3`G2 zD85)1X^$-o1yoLYdSMTl439s#MRicxm_rh+hE5+)O-GR|h67hD+F|s@b{a~ z{^Xjy30fB(vY*J_!Iju0z(gMwE1qANq>N7uByt8O%xq0o)tG);`|AR+h-G(gumo!nM)RNVICZQL5;V>~;4Yl)_?0;=O7*{VFOc^y?s z??)F#^-nqvkw7A^=o;g)*Lo2hZ&PIO)7|`X?~Z>vCz@`S1*E~W+An!Q$`M%{G9hfc zcs+*YLyP(Jv47NqMNGcq^C8$nr#r15M=jW7mut&KU$++}$`=hv-Ob@?sx@i6YqCUC z&bCM83oLaX!5bJl?%szl;S&ZoZl<|sPLp!+$O&X1ngQ504NXV}MW}pheJ_c8R?+5+ zD)!}m@054-PrW|VcaBfw(%~@M6@+F!EW!C+wc!g28YYu(Ox!un>6+fS4xcph75ynU z`P6Ye@Q(xiS){z9{$FDsv35D$mFj~%LZ5Ze@giL**-^=rx6XR2606)h`;YCe~31^v$7yOMPUV&;X#%; zI_BF4UC|;%M{S|eD$7S1E|UJditQ&uulmzGfQf3l6Q>Lzd_ci~{iyEwPI|LG+r0nB zv1XGof77w%j}_;Y_beTuNV$p=b4XJHdMe(4)xG$|En1`<51j~ANLHA_yG6@LaZrb1 z&XnHb55W`=V?+$wh{;JQzR5FWx$^j{P|TNIJenbxR)>%ewzIkSx?CLU{u$qBWD)>{ z?4j4N*UUTAf}dR=O^Diu--Kd%UF)#+G;(i8lc10g_~+^&n1FN?KzM7IH?uTGdTV2UdsQauv z1Vkkiqvshaa)DHU`h3|yG?hJ?!ZrnH^($b<7f^m@-UbkRPS0(yjSMp3XsmWe3`@^$ z(N_K_bQMDZ1Q9(v32Gj!c87a`B-7)}V1;11i9qZ_FpOuLC-nt# z;j2p%wqIsXj|>)s&Y&F@s?-863hSgQ1a2=Zp=8op)ko45D?RNsA6X(4P>#(6_%4t< zpW_~2r=G0s!HRiBI{|weiaEGW_?QUAg!tMMTp+Vex$BieF;vAR1Bp<`#Xi69HX`5S zrjHOy-}vk!%`JM6$i4w<;)APB80y|^N^1a%RA!UD7X~mj_=sO1N1vO|W33j!m#eV~ ze_g)|8iKh!OE-@OQ1|f~bFNqtONroc)O{FhLlkxnxT+)f1#vn~*io#E z5gQ07BV`N0EjncB_h=&2JU~y1D?p&6y^VnR3lE(kp?fPIusm;kf*&AO zTc#6G_c$jn3Wi`n;DkKaHiDoneUu3T?1dHqTSKtwB)YlJsC!wGg-ERE!*qOD_X|jb z9$~47l^C93b*`LIlOBTQBifxAE|A|`Qv$KJZ67*DV8f`?Jo_u^er3X~85=ErtD@71 zP{tQx$BLmCk0%al+X$$ImWyA)ov#;8*7}(ww?GEP0#5%_6i#S6;VP%Fo?&iCTgtUcz!#~5Cx$B z(q#z7D1%TH!iqc-fy8>%rN59B>kHb;Ex8Ni)@?Q3I<#FJYbFR^2R9K4RpQ>JxIjYo znO(3Lw}HF(*H}H&g>93dKnL0i8@Ncf1y5{vMo_KdVY6!F%q=*L_ zd@Z{{Sd8Pog(cW|ZqjtH@|rhmwJ|{;DSDee+X#i0mp53NP~OaGZ0_IUXk+t@kwtdw z47o?Pe2yKuOSU9}b$Q{&UjVE1f(L-Yx-ox*o(CHvEJ`hO*isR|dGG~wFG4&%jSZ#1 zmRvk+66M01A7iED9`VKE+etTMzakNwe=1<#imex`T9IHD00R7#gTb-&$C$zI!7bX>M`Bzh6o|Kg zVZ+4j2d*17{=|YEz}PALS(=_;RV zoigWNE|5nAVjS2gE=j|EhIJ05)hsrA=LlgBu{;3e zxe+$Q;pVz^*c56H-Ty*4ILCyI4|U9HG&U!m?fg$6qAm5tdZvcdg!TgI1cdl!Z6NYz zr?E{U@#$bJ0!}G)Z0AsUXR;(HR29vQ&HJAd+N8JWt!vYb*P$5H8s0kA->Uymf!Nfd zmP92+QkbhIJI`euIT5 zff)kvf4k*`b&RG21GZ?pC4{G7%^r!2F`m~A-fvuBj?UvU_eM`dRWwfBNe>ko*e3GT z4g*9PZaFj0yEAPDa44#|*&23s|FLBX{xlo8BCw_flY`H#I#=b6bc_~VN`EBxd4A%lI zJ$P^#KxtKT!do#OXbjBEeEtT8IXxP0g(wt}!Tp|AFi(6_3zo>j2hJdV_y5HMLit?) zEbG90lC$f*gzPQkPoCDpqbo}}45X6*_*kuAJ_&_Ca|#ZbNA+ewjj&%)*1l=p)*b6( z-Zvq6IKo8FLTxoTxQxiOnqJBA68?k1iBa%Nt4cScneg8cnW7DImsz))b6RFR^&NGB zzHVYEq*=<}G-Y^{I0SU#-GH+y7{F;~#szZu{?}l9`&sDyRQJg1A?!(yT@q97sg4{# zoJ!nKmb|}QV(BOwy!DS+zWK$i+fI%cYO7!&zKSw!6QOdHa1eK+Q$w|P-=HogA z*6kWLLiqg@s!R59Ru)oKvMnNDHvi@}a~vs85(tu;E_+)H_RInz>h&e|fO#()zwM`c zYID}jl)n@X(5JeVXtYbB7(D=J{xHPkDd4F=wq?L(O%`gLb3OgU;(E&>FYPl1n0$Ki zf`ec|!7?k(Zxu{I1@hr#=}OejUb3GAO62SW6{E7J6x7x#VrKp(Cih+3*ny@3tGHuGhmp^q){p zOCYq^Cpm{LxUytZERo&6{L zHw}1re&4Ad#2n@U;c4+`9;xK^GWtrKE~B~Bf(sb-<+iUb_uBo;n7V~FR5!#)&OFVw z)y}24sh96w-dx)OA1)oV7GFiu3$B`EzIX;<_#(i@r8Vk{%SlU5iL)m6$+2V*p>Bgy zvtFipK4iyPBe=hxebeq^QIG)T&X17q@&I`{s64_YadXuL##Z~fG+l{C{wtwhlw@t+ zx1S08cfB3Fu_QR&)_U^+G&yk^$+T4BwoaSbjLw%L5R6hKPX&lHne}CU_K1$gVG5%CkcXfd@)lF;5CI8D9NsUy7Y$6&1|Q zs;F;Uda+0=M;*9kg+EXHTnug0{)A$XH#DR5FZqiv=HrvlOM>8{glEDg?Oo6BwbW)5 z9EA3;5B3u#{g;ZVq1do1MM2l7_#;O!W3fVj-u)#T=LrpCfs_N=ff={*NKkGj`>?tdlGKUS8mqnQWTF}v+xKI?s|f!cfUg^X7=L( zu<`J~<;JKz?{6$cLDC>UK94|p0#lkwQQ4}1;iJNfe5=ComzY{%akWyE!gLJc^$rm8 zrG%dwW69sKhUEgEZ&Kb-h^yqJNChO|oV2B=$NO!0ed##A6qb>pGl zecK^}&M%Uf3wrU05lB8lR zn@?D|G1YZsX@wU8uzz=yslZpuAJ`_1CH9z76r6mrvMOver=#NLpXWiZL!qgGpbQLr zU8l@x*|)`p7ZT(20ed)_oTAp@lX{Hr@5ZwBCwaU{D?iC+9{R;b=SrAfQ}Q3$vE~Oz z;c_xe)TMBE>B=i?Qi}+0mNd5#LE!QutJ6z9 zau-ArzhRJ^mstD#r%tI{PNSxAubB7k)8I8|KBK4i%)32bY5FAKGx}(sWqPEjCcxSc zy55OX^Y$7wGLcHQ@gH9l=CckfN?UB#sO5%ac8<$P*QXiJ_@md(h5YUF>vtU!Wff># z1PP}+Z+s;9ko7V8DC%=}Rd#EC#@AghSs6&xg1RREDv$iX%S(&C4(1TIL7M$Aq>fwtzvD)`zBcBN zkQlfSgI3n}`A@peeD^u|{$zFy%>Rp}tB#7Q``RLs($bxRbTM8uBo0axs~zaQ8k6PjUxHcDZ=)t3%&p^Dv&> z4h4ZlVYi^6O$o1coZ(IUBudD?2kz*5kM6dOpBzK2#T2C>ytGj3YL>}-N71yk-Y@;J z!%K}Ok#6$DlL_^r7v1Z`{hJ$!j4RGSE>GXmEfEY=RzZ?-Mpio;Z&b8~l6hyEio@tt2;Yc^5hB71|_hHuDr( z+4qGs*zL$58yn)>G&#Ka>&4=Re=SYv2v_zG3sEx8-pw)ptDX#_2sdj~b$o8X-!zZf zG22I0R1SZ`crNDR!Cf*orUj&)g_#W+cB!&|D)JmM94BTK;T9mM?!;K7Iwq0L_clh9 zkNK5cwp4zCpb(m=QD_&H%pY->V^k<-g75@-`-)nKQ|L z?kFmz=-CI7D~A}+?+a>b&->@LC!>&EjDZf+8j zZeY>1ntyE`pGYUoU`fUg3Kt4r(zr(a7TOTEe)#bS-(##QPbXmN+0y*je8#s=t!aN) z706KOCfh$^7#;Q=6y9}`p)UlM5123f9t@DlfwFN${d)G3ouCE3=;ybn%;4jZ9$#m2 zj$d9PVu2DOK?;9qeS+f)E|12o{{+6d2m+USXUlXcO-Nq16VqR;pQjO1dBuxtW;Z*y z@@n##vZw14;dYqUS%VD(mY`Ay`JjGX|C4+2;o_}@tZbR>*f%RqdLBG>pkNm*Ff-Apxjtp{S+hIA z_lZ5!wsG8ov=0+9ce5zh-=UJS#kLy-55csb{>v>dR%Fw(1Cek#wUZfjR9n;;$~;OB7vm;^W2Yg$mjORotoT55Rq6KXuW=zv!dnd!tR5TftP-!pv;qTwRACxlN%ei%~?Mts7{%atGIB#M8!q1 zj6@qJk_CLH$46I72zqkZX_`c>1Zq02uk4V^f-!2Srm}^L@i&_8$jng@%^WBXK&Xf31S-m#88@bi18T zUcg9sI_CS^s(RvCGTpe7C9~qUCY5cD?jmjsGn=BapT#ACB_5l~-y5?~2K85AcVb+5 ze_4Q*O)C>gZ_O0Wd7)H1%GPMDy)PN-eq+w=5p%klZ@Roj3kntT96y$P8PR6vtxmVH zR{QnBUFELw#Q5;rP@%dfC0K$0r$%#L1N(&#-7?ypYGt6crpgH7@q^6WVp+>Vm$9>m z_t$B|JKH=;uw&N}m&&IlxoeHz=g(Q#jl!t_(~_X?k7#T2cqGq7o^q_QkkmClM?5R$ z`e|gYTa$n7+?vpHJ({BZ?j)W|I_O6U12dt8Uf?X@UW$-C7+;zwvE2T5@D?$i;TN{&;Od&*e@Om$SEHcltK4x_5lCfs;e#Sn|PmJE_cx8=hc8-nJHccK#OlIMN^Cp~Ak;smOd0&~`jXW084V+Uon6Xu>5)^&c$xFSf08)J7QnSKQ3 z#xRO3WCw%QY3V=9n0~qT6VSACF`zed#2*3WU9>P+pteX6(s854Tl>x48e|qfz>MLctovproI=jVE1jRRk zN(5crp5|`f2fuMDp5mp(m-Nuf%RYMn%N z1-N8_*D1pcEVX0VR|zs+xlXMJr}iT!kcU4EBhKoTAarcIcR`n}-9})M85m2H|CJIX z+OPu@b}81q^0Pt-Vu6pUr34A5mA-kJ;OoX1oFeE_E-kR90MA}ItEHHMdHJ5NF@d|v z*eahIs2v)+JPlI}2j0RTGz;iS_S_CXf8w5jJ^x^T6c6Gl-7#bWAE!{)lI~qROQ}&U zg5LbhvWdNH4WqfEnSl)s+G{0%%>HIIzuLR_a(97~00OdVym9s}CPk95il98+u0{;t z+@mI-4rk9znwgL6b};FXP~(vl*CCR&sFyXzkVCz3-Q; zxp^f-GqA9=!x1HjSIc46JGj5H$QOYbm@WkwXFLd)>aTykcR~Iyg0=|y+h&x59^Az_ z+5LRat!q}~>BSJgdIpNU3;ZPzRXiw;9Zp*bn^`|W>DlZ7u=b}^9dx#a@CF>vCaWXp~0 zBQC`>%yVANz#Om`O_d-ofBwaMnyvonDd`MM<6On`$&T+T)>1Pt^mg@x1kf-o`VIpa z)WxEMws#@-Qd^H694m#R!~jMd<=#EbtTsIGP6-nC^~bs*+`sBx2J?wJ^<-4^VAE+} z^yQvg@!YDP5(FO@!xEzhPdezmEUYzqqU0qzt#lETCG4R!0i@?e@Ldu9a9zOa6%W$W z2!lR3vCf{JZqIF6>;Nquv^MLb`D8Y3>mfA$fAe{l03s9Br;551yXK`2z4Q?;<)oW| znZVIio;nu5t)FWsCsZ9UFV?qIL{K0>fvIq)Rq4j(+be;wN#MpimLF^gWV*fV+U;^WbO zcrwR>Zj1-J2=^`=bE>eP;u7e|iMbS$hNz3qz&?K7%T|K?Eis$<&xP^t;16g06l4h? zSQ%CB6Yu9TQpWxZvP30F)*nxI25^Aia1M15R7`t-H~~aA!O&D!8KLX_)yN5_)h|ePa*yo}0CF zeO;iXMtInZLx1`w&ETDV%E5D*e_ccQya@Y(CfiYyGTIcby5oCo?+)Os{pK7>56=1I z<6y}nNq+0AXGr5_yeklF1~1G29;YS{HrCw&_1zgu(1}Ac>uU~y`=pG=kqLx_bvIvq zclwgX#37ya^-F>K;Eczf351z-H&1|rL_&c9>2fFmvdS6W=AS;YaaL)G9K&3PaAw``|_Vq|5v5(}@ zBlgrCFJ0t9)?5bKooh&^Eqf}kTnHEC6q&s&oeR%Dyf)^x>JbNyS<|-0Z)E>sYvL)! zX|!+Qbl5-V9vl5SoO|$H8_N6@wL|LYdz@W0%F_naXV*QZny#MZWTSH~%=?KW|CSrE zvV+RjuRziZ`8o)>pBP*3r`0oEEK0gL2d*|TZ6}&Jnr_=SE4S#xHJr~GS zhNj8XJr<@%(v3O;t-g{%gWlBF<$v*Vq7w=m zev;66@WmI|(&=u%GaFO+9}pkLQ+;xYBSo`5GFta0{~dg|;h~PrGv+cTKd-qH-0riN zv0ph&-#89%Mg5!e8k+*gm%KfoC}IUmoUC-Ha)HnOR<)}RXjtth`TL?8#yw?^_0cJE z&vPbA`-AiTpoxG~X=O!+SwhYgqL0jyB6fIq{gGQZIDrmtjQ4yY?5mpsqKzs9R$Yeg zjo=^cxmftX2(S>`Rr~|w5QgrXuS?bTlzDwl=vNK`MU+kqiI3VCUZx+m$lJ99r? z?F^okqWlsERthiVr1Z_~-M4oGG1k{#$}YqOL%$I@*Ca-M3dTjvn78K2k#R1xPtH2! z6lGo!+zjm(-)*Q^Q#fTz?G7m`nWphPH3+R9_u&M#?FY87;4T8P%iL~emD7ihgNfaei0C_e zqYRy@pSf#edasVptnY?(kCUYzKNp`RrF={?Os1WH*CbMJmVLSZNIBP{`%4hM{>*{) za+Z`@|nM&X7ZQC1g zilpr^(2>j66`MnDLzdNu5RqmMxSD%&D=K6$mO9O05cgXP$(}p2cJmiGc=NZ2W2brg zv8my)K%#9;_vg-i#BuWv%3kW-04h@Do3}ScRqd-PQ;*lCeJIlI-B%q>Uqko%^CW-s z>d@^FclgKb_ouzaC%X+=*lm0~ly8>90)69kPclZfF{dq3j3~zEV zcE8`A*af6R*E9~Mkh@|~Y=#Q!(5YXisusXchtL1&X@d0yd=zkhho>3G@Z`ZytEkMl zf8ggl_ z?|A^8LQI|SQqC@28ELGF$c7mtJAW7eGtn2wgiBX^>?_$W+O#4mH^}5%X-h@S>ooC2 zt*E~Ddu=%!O#~q0zTqtJ$RMk@DBHx#xS;FJtlDTGzBy}Q?P~Uam+!ih)M+#Atr7kM zbOsfWHba7u@cTRX3G4uAv`3=+(o)ha{3|xr1zejrulpbiS$U;ajZC!!!oy$Fp9!vA z4l%oZy88g8KX0H`4e&*tiP5pJz2>6PKXb&05!vf(^Owbw9GrBK50oIIRatvDy$f97 z?d)fm513|ZVMv?<^A!@}EtoVz>aWF&-3E2)db_dI*{d>brv9LbK@+lFe@XW@k6#=# z=cZM5kxAW3DZCo|qVcT=$YfShR_a~dTlAy4UX83A?_F)LJxGe)&e;qfxu9w|FhG*p6#-+;>aiS9q4KPs_X^ zP&%90pj-->+QBKbRr#eet&51ST$$%D^U2%KX!>v@aZ~_?HY6ScQVY4lmAdye{Vmr5 zYs8KRgi?;VX$F5jm}(hbeD(iLJ2y6`r72P9=-r@X3=%Zw_cKeRSV^kh~>z@OR8(R_M!{5}|ss^jcvhy+8h86Gsw3@YV`8Eo_xs5rF z+>BaRb$?;|Hy+n`AGrBe5Hb4=uJFpR#Gz+0<7cUxvG$q(`{DuJ;FVS(2e_$#2aEZU z)l4~68KQ^5gJm4#!ljTVESzYc#W~vfJ#K4BIHxG4Qlx*ry2m!y<&DD2m~pDQq;jQuFS#j+qv@ez?hQ^Fk0_c+T^#5PG#WSng&2fw2 zw82;;Z1al&9NhF053T_j?mj5C+KZ%FyYD`_MgCq;ZVNhba)ZvM_-F5__|q#W# zzs2iS332EBWASi9XO_Kvdr|YhS3$!6H!i|hKKzpq2~Es3Ic|;r?yHWiZm!P%?l_Us z*MKjwVu76#{6!y5X@2?Wqy+n@51*;I6dKsQcT%>g7CuAH3trh}-5~$g#_R?_9(QE} zhsYoIkaxb*5yz3>HLCkA*6T;<1^d_fV5(EIGAFefIR84}4BmUIhg~$2qGP;!!8`fU zrL_9?P*#ufdSKPIT>>oD#2L*s&Y#)|?5Z$!)Haiu&=&fKaG0zvds+xof4^q96{CB4y2%mi_Iu73 z=ZEXoLVf$12XVd*E?V%1`92-h9SZDMnfD-qv` zs9V4pr8%w3j{m<2pI)RZ!f8lw?Lw%>#OeCsk0za_7Q}R4znhSl)2AhX?;bs`O=vVB^XE)Orqn`ifR_A=Y{=rK(KgIki(pZ4Lgb<0$4ROzJ_)l#&cQb5=(&G{Pf*4M3T!Du zd-XjWnZ4G0^JuwBxh<2I>v1?6Ei0nAeaU;8+l=A7YqBH*VBx)>tb7mu{c-h~!j)3? zs59z>kDD9!L^V-^Ge*1byWB=Hv}cchhX+U;SAa?T_KfuIYau=j$41F}Ax(;B=N!@O zG(4?{Y_oYat?Extr(d9V<{1}#{4lw5{BzT56&cZ{QD=wk1e>J?& zZ|l4o_;nm&oZ^c~JFrd7d@$u0C)J^)LW$fzm1L1 zqsIkc8&l(^CXZl;(xDqMfksBAp(jFl;kI}(qd82z@l?|EtsA~Y6+XWERjCh#uW$TF zU~YmmZ1D8-@&@OEIsZxfH(sf&jhP6p#!*W$v-o$K0%@#SV-vyQ>3`{Db?6qgizp3w zG2dMuB*Ry^mw!_pdeWT#6O0zVB8PEK!n?QQV&KX%A2~ zXN2q`x~naDs?qZ3>c1)m+89TjWTn7Wz@PiMi8SZOnyY_oz1tZF6r*vhWY=i(8k&HV zWT$ceWBXcxp^}}?d$0O?+>oxLV;mc?5%yFdWL-+E7n?wK{Y0Ik*jGWsclYuPM!hUYJG@6Csm;Gja}hl2dg z5WkSmXaby)%<(Q6Wnr(G+1XRO%@zPi>&DG?_bT60u8P0f7O=w@Nl8qg#8fCrtSr|W z1XpDI2eFiro;?x>u2b&rfBz_r+=tisAJdt_%&PHK#vYrxrAv|0cY^`{H5)t3goBqVO{hlAn z#jR;)`iXa>#x3uN`6gdEN~Y?}xUWT7lI1{w4v9DVpMb>804p zE3EU|BUG1j%fs)*giOd!kwN>s&@%Fw>T$k-0Anftez{r?J|G343mEMLE&a<^(m9eYb0X+R@z^NRXybkB8x8lsh&ILr!F1K(WDxg|^b z*CWh2(IQ>LI}cJX?6xF;tx_RV7lV>oNm8THdjCm;X0Ces6){oRBdT8u!zQ$NQ3`YL zIW~@!ByoJC{RFV=@?x`fZ0*8kd5#y~(Q%`86z%We$@n68b#@IxO0E2I@auK-M;)Dj zp|o2M)UmZd*;@;0ENKybWg6nYN z{e+IWCCa6QK2Zeaq`$KVK5m-gUKFkJhqnBeap1TQhtu^^7iI%zXTxedKSlZHebB=& z;(_-7|E9nqUo9|_-%O48=mlgpHF5mVcSq{um7o<2OE)O=68@rzIby=&!-S$*5}y$z z8dxkLNPs1TzV+}(Z>Ut?MZ%(JY0_d#h?2vyIkV^2H$)O~oRK+t83VoT*#o^8O4JXp znbiaAiAui-M7mLa9}wco9uSg>91vp48W5^a9+0{qjx?%?8jw1`inP(Cic~Cv3d^ur>c%Xp@Kw6Q9*2ZsUZ5|RNeX%R6zGFiEu!qjl+XmcOBNmwgp*yvK85F zp=^!zC#itkpyM&BlUo-;6p%E4C1A&9Xe^G))rw~#_5nP#rwa*^K*-0vOxibYhLreh z$6_7aRx_f@irDxaoBlkxj{2opqN$_4T0ndh0mj#G3_E%|%CvUSfqER)^g`z{g!hH| z5nzFT=X!H*j?q0jBnZMrTu(ZIZjBFvF!+yfvfHjky#9DpTU|8jh%VyNSSmuk)(Lg` z90=ii=5eMJcA(qD4J#|16iH4}6L|Ye7?|d#?*cDua0~>VzEdU&q zTv#Dbug0gKTGyYb{r>SNvHCpq7%l6VhV;&|%`E}D+E#PjE>gxN`A@QyYcjU_I6zQd zOZL5;q)N*5a!h;r4e;t_^nILn(0#JCRjSN-MFumxAK2gX{Uwwo1oRqWeGWj-*6e7Kdk)uD|mZ- zHWTEeD$FT*oi5MV z2y|~1wp1Wb^GisTjp*4{1ZtMYbWi>S~)0W@80+C)$1IHZa%Je+O0qT z!kzX#;&1IJ^|&nUCS8;GCG=;_U#Ww)&qoh}p5Kkmw&}T`oW^hcQHe7Qjy9{Fd(~p-M z478|LheY4du6G&EgKtI^vocSPZ1ifu70Yi;$=Ru9(nUR6FNo84@dwpx>O(JjhwXf6 zNKsG(itm3rv^&@=j2(l2*R!>R4&8C(UJGv;H1-0!J|mW9MKH4`dKuO9;_jk78r?G07i|X?c&f50p*Nvrq$@!o}NYE;kDWMjBJR?1h zO#O*ys`VQbd!Aov0XP@4QR&R|r6iNF{-q&(5bh3qx8z?se&pH=IQb@h(nA!sdk9km z36mXB@B?omVQiy> z9UbDs*Bq~+vio9uK#Kbz>Ew&yirx5lOKgdWfw%*&Th}EOYIsRUek<$PU_QQ`*;#s2 zg<+o$^ym4w=Dq#Jqd~sYt$1{op|=JP3F!K~FZ3UUPiDTDh~ACla>Z61hTSAJC`~T6 zp7F<7PJo4D1r9-zpO^S-u|1pX-^Vx%>dG|dpAENVP-qziu!d)NK_T9J0Ff>(2soCR z3RL8Ez9_h0N@%pk^@8|5B_vC2SGrYiWFMITfg2lAMTW12Q!+l51XKQ+w{Kr__>q)K zy{RH7c;zULVE0s$aGK5s<1DnXnSO+U$PPDuVxJLY=~g5N2Qb>j_I;_qs_c}i>-(W> z|H9h&aA7(JFm(4|lyVK09o-Jj;gEB>rW)L754HN0ObWQ|Z=j^qyK%;yh~{4zm`ORE z)OwvPmgM3}s(p&%HVQnpxR2tzXE!|NtkN%UHFpHt27C3`92egIRJa%Wn$~QT_JxPQ z--A=o>i2K!d{%1nFTM8-MnBstp`ICW(dV3E9Zf$Tf!|mG(L7)OTKHB=rj~e1u{x5h zA{ibY`vXE*Mk8Y~O$BEx{CAg1QV6XesS|h7%bi}v+T*W8+ae<(l=M)Hetycw)YtsS zoR2xfnD>b_UXwW_{cXLhd3Bk7HQM2VX_d+Q7k-1Qnjb#YTAaZDu4pIbE#HH;FA(0n zSJ^okIY3TM&XLiE&GF0Xnjqorcfus6c`9x<>#weU<08gSG1gFm^|8Y`Iy zjpkr~)5SFVM7V(ZvBhtI_jxCi>07_8#qtLi_m@lWpUb?SKZRzG)q_%3UtRX0e>hlmn0EwpDDl zUM)QfCMNN8QVNlL)gpGdUL=40K&NgK3|iZ}x}8ZzFaO0|mlM#nbkyuIi>Qmyv*uDB zkxg!|P0j)Y4&3zC4sH~AJOS6n&l}I~XohkB28FqId3FV@+`)44F6#gM6?1Bx`&zvz z3nUeqOlBTSJ^CwlM@@x|Yt(bZ{-Ql?FLu}`-Q2L|;m2b&vr1&tbMGB5@SGIZbgH#f8b5xzQ~wtnH82^jDo%><`1sm*@!#jY zfR9Y~!X`#dv2<3=P9GsEv&5UL18eO8aKJmwue?O6^w1tT;~p^M_9en%=*ZyWquq7{ ztxEB5+Y#5UOU#L@tLNnWwHMc!H&mj|eg8L$$)l6F)Tq(+&OP5R5!QD{$eW~WL>$my z!rrcX2k+a1FDy)mbD|W4x3e?OEB_KEuExwRl%x>2_d9giUgEI2znvM#s1YUxo~zo9MQ!nXIN}tEfsy7M$ee8sPg?f;OpIH?#s4 zNFeiU8vbvLE{g`sOg}P-@MN7;^)8TUSAPZZ51c$KIVM@YJJ?Q}HL2jD9ugX7Q>Ag~ zK5+O@qjB~;OPS-OrRx{s%>((NKOow)so!iQpd*jw13tW7_T<9siU+M0{dgoo$^MJ- zhM;c>%bJ#ma4IsFHb=tmnDg#lA?8}ByUQ>Paj%L)m|(VA|J$E_jN6Mu0u*82bhANK zu>50XAmG=%Bd7^M(rePp`mwGO@h>+C^2)R;{I)f&iqx)Jia{B85ar3X1(G~GwMqWb z3SS1?PAB%E#c2>;#46l;K+CS@F=+eVlI5Q_#pi5RLHfX%Ta<%C7+VhC(fj^}n`y7bc;#3BCb8E|fysd-gT~1&?q=hQ9 zDSC9~Av5bl;>O--czFO10j#)Z-8W@;)~2_dO~+{Xj}fU+O`2Rz2&T^Cl7@I<42I zu`#Q@pvwO2-q-f-UMj=j3ec+EU{bl9Iqdp3wxA;o9yDV3a`kYTQ2hh2#TbE8G!s9(+cCR|8$IIr8@z>ziGMzul5b9?fFgS6DgjrzVrKW z=iuaS_Hcf9w^N+P)RLV^(r#rU>>$=8nPLQbPz+a8uVe#%kg;kjq^b?9s?L*qjIN`e zz&GRPPS9Z|>UFaR(WLz?ar72_k-xV-6<7ThirwgvX2AAJDeUGR#@#}|2J$nn+HR|q zkHy!+5F!<+*WA|7waUfDi`&$zgq+Nl-go8j6!tGjQv%0+4&D$7jvd@PA%7D!K1H&6 zPiu{TgLDF66D`x9ZyR`;lSH_0A0`dj_qR?Zd}eC20j>>I8^uAoqr5)Y9+7;!F(>-t zfU;=;zmPU{7CVWRWxjVF@spI?M!`QVLuzJH_K&W$LGy10!m&tnC}qP`SuEC{`=E;msl`Y_lBTwP~b-eK#h?vWE#z-+QVv}h)Tt=>gGW$`PpsnX%O5xkDRqgd)N zbV;<(QNXO9Rv5xi*2blm%utO-(SwWeZtf<>{Cwt8q8}t&{#+|`bOtAsUnoIxjW>@; zC7E3f4@wYO?iOrY%a869AdB^C7G56W%3$miB@0+Y)XSZ`Ev`zPYh?Ji3cuyRc$Tic zz}W;EjQK2Z_W^z28~r-=)N@Hf#5Bp<{`NpxdK@jh7%bO8 z!ANGbD6a!TQc+&U0cn1Ef}VnP5GUn1tXIa%mf;liY=~GZpSagtM)cbX9eLPsKN>yB zbs)eP5f{5IPcNCs`5ZkN@OvHG(!feZ;T*1&sA3-L$Jiy?v3!a=RW_CR3%{V5*7U!O z4V})IHz0?R`_~7RL<{7}C0*T$?*^p_3KzWUX~~-x;jQW>CsV8*pKcwyo+bTsPy3RI zdc&0%+Z}b|>s+4!@*vVAcX~;5to}_3*(0!`Dg03vV~ktVv?RGQ?9ks8&QAQnthd2cbhZG|_SP|68=yu{lzT+M@fvpa!VcOO z%s!kg;{d6Ii?Q~_;}NYRUD0V#_yL(6y7h#3Lo63TK}u6A03>|t3bTs;A1iar5 ziv@!w?Ro8LHIZvV|7s|xS{|Oz-=SsO&7+j{jDa0TWGmR(%9qW6)-b@()KJ}!+mO}} zPaF_86PM1ER^|!u*CAjnu!~K7`MxrIP$rTvrGV6gbBnc)MR;gH#!gOO6i7C*lOg=R zEfDk4#b?BS@4*%!D4mI)L;FYD`Dr(86?-WD-RVNgD?EVOJqZ;kTJ2wvXY}G{{AS%( zsLCRf9dYxA;(laAFiP_WT~eg5`=5O5lJbtczAKsSI|EPq)PFhwl;PWT7C54#7(RboLRM>_dj znm#iL)iZM)OHN6-sK9CVeRds25Sx^8@Gb#v-=_QLnqg|JM%w2>v?BvdpHvji*d#p< z_WI6t$uakQ2t?8Y@8w25ErL)f{PO=LoO0u64Qq-LP4;WbT$PutRsjEG%#UzNN0SV` zjW@r2W%BG8D8pCh5rUIu5&ZFCKm0P2|Eo2KQ!=-`PdE|f=snKKyTz^n-lDgZFA{ph zLODnf5@4c`_{VP>%?;~-Di7bt!mDtkNdQ)dN{9|o#OR>a`$4YWc(Z1t-fcce69t*} z$&o_k@J#wbu~QxWI1nIdsaEZEX84I=@#uqydmz9U3wupfd~*w#g~?#LHQsL35Ce&b?pYfPT+9s0vj@mn-1+Q9{6?;6U}bsV*WMl!wgw-qU_u(>11Ik-?r7Q>6ytGKI-}UXsW2>SCvns zWV1#9(d~Wu0D3CZ_cqFNz9Q{UYNIu(Wg09t7(j`ffBewkSTQCP*b|$JF~WQ!u&-45{EJ5qiAP@o z@%xsJ8FBk5a%4LR)h0{4lW-&HNY5jkWB!mk_VNtwg3#z9`%HOLiPJ}S(2zIQygBx< zMzKzJCS0+tZHuqu-XvEiTco@~y7570nP-Lz;f1HQoLTqDaP#_9Vwq$-HOwl3{4%L~ z_Wju+kR1rq{nCKMj^!x-O}b+E%Gv(cpxc{GgaV2-W-WO7NHx|&_PSDQh~IveWj#Zk z{qR7WPt8$s$xJC7vFYWHPMfc(Rz$gogzS#+gbz91maFDxq80NPO0s5rVOoH=*bl=t0 zKRX>dq7H4wBKJ$P%@hXE_e?&_@9R~_gvsA*D<_*K!_u){?5c$W9Pk_#r-0NSOuAi6zsgLC$2YyPWnk*&GiSbV4=daXLEW#J5rRZYP zK2TjUjI^s(^=Zg3mls8*7x%hhFlc2c@8#xe^+o5u5Tr{G6%ZnXF%w5_nOg^kv1;rn zX^|+$@-qd?NgVZ>eQFX-kju>_C&82w3A7^RLsYqgBHxq~5pwZ@gI=-dT9$1Ayf#~U z84P4&+ALz!DLUzIR8uftT?RxFYD$=Y31b%v4F(%#TnH8Mg+5QwWlk-Ll1FzXPYv-| z4M|KHP2&{Be9IsGq#*hp9`DY^_7hLv`^z6EU&d`h$~onTJ~r&DoHxluZz;A$*|&t$ z$Ei?%r*kLoIMchmnNJQ%V&7(S1&B3KfFbQG)?|jrt@4o@!2u~Ev2ylp3LGP9fLALI5 z=v~^v#{jF9JF@(9Isc}*b7}^}1Wjk2>$rL|CxY0GeRdrrKrA2@mcfZ9 z9g9>>mDd6Ss69UeDP)jJh+VpuIsFR)XeAEzuSPmSaE}}MM*?Hf&KEB6)OE2W^pn&A z$ul_oVbW#12Eq@rxw!O-^=r3<{7pf6?jr&(_Q=BIc@M+>VdI=k`G`%dp`ve*qL?(POiMaRl?EJDxVg&Vs3OQ9JrtQiY`$+=T>(b zr*5ybM1^4a*BBB1CsHYl*w!m};xn^pq0%Wk`gB3#rBX2QWi@Up*1vb&g9$Q6@8eCm zcPY|!B$@W+xtSR;%`o1bGENC)wuQX|UVNhKrvFAurYKXc8CAvI0DWl+!7Ao%h{MU{ zk?qJgqwkvq32$)I(q3|R@XIA8u!I#)YL2eIAi`wPBFQ|#VyPo;pj8e@Qt7D9%#48~ zsHDEMdUNYj!0BIt&065C#UXdW+hCf4c_x{Wo1J8wPos$g*J4#2_5KLKThP@4?0${+ z+Ls7+6egn~St08#{lKpAbhdc7#^6;-pq}%4Zxabjd;QRZVAKa$vfE*l4+;{O)C6H( zM%(DHtK;sYn*~su4D1xqV)9N)@8wI@X!Ln0Rn7@xwfzizeWR>KL8b*iWi~aQ;48_f zq<{}^$6hi78mduM$+?|j&(XaAv~x)tFj6842>I^Eh^)aHrX+J9Yxa7``zqMr+(-GN zm+a|}vJX}GQBIVNi78tC#X80cgI2_y*+H{@9B*_$*w$cBW}9{5^}9x17WvYGs`9x2 z;5iE<=nZ~GT!=DH{>J;{>Cfezewh;r zUutI9o+#eZ)!HW0y02r$<}Ru-XYWkjP&trO8Z6ck$11d0ru`J)Y78mYdB1l-*&t1X zyGyqEdcBhjv^#uwg85l8{;Z$jhy{Is-y5w7!Vn{kSAhR4U)4BfGjIYyAl|tj{#a&v z?}8>vKk&(ndayA4ks%obgov-O9*vP09>`d)83dk9qu)=l(aH@fe)fS2fWCh5?q*H? z$1`~Tj`yKh6SZnF7@zlg7h5}=&xK_kKgTroPM+`5mD7xv$qbuYgI6x@kaSNXIWjKH zg|?q=iLY-KuB8RXv)*u}jx+z$NPS>+OTSJ%96)>m|AbM2;h_cNvwWXDf z*W3|AoEqeZo6lxJnv!AVJPea@sjROSVDyqrQ%6I;d-|~(>4@oqTJsW=#~N7WBvgi7 z!v(grHfWFxs$zAurk7{N*`{=48>~IXqF~Wi8Ux#h7`HK!M1{W0_jFPib#!k@Mbh`_ zv}!{`wMm6DXK)}hf_u1m)x++_8iX;qp~)SncHeCX6&~XN>8F2h-ETWP%zw~s#=z-7 z+8UNXfriF4nQsU2g}@x=j3060#yMuWFJ{$8T8oEohF2pZY>?*%Ht`=M7klvj4_!c_zZBR?LTd4k`fZ&M!`Ov> zoXurc6r>z~Lgw6?j3+SbULob7m1`6iGv|C{Je8W&)A3QvxfdBv16f9K3HD7kjOQ4| z(`(5`pOVq>(Y5f3-{Qvnl+5`h8P72&Z!Ru>EhWb{mq)5(mU$a%Vdi1C{s`#Js20U6hy>xw9ESg}!D zLalD}aTOCM$Mtk-wL#ANlNo<_G2_=_7*Am26;pnU!dmeJqj++ycq$_w86U;evzYQ2 zG3GBbI=6OZR$p{ne?m^ib8E?y%h(~=UW5kaQ&3(ahVewkqlJ#w#v7*>)xwJ@FAjZN zVH8h)HjrO|y)C3h@pQZ&rjJXR`Xl2qgYqdTuLk3|yjDEND6U}EmSkL23!iDgPl@H% z$5lq?awH1fxC zWp-WYb?_)4Gg=QNGx{ReFKJBsNUPQF(DQg2Law9J82QQdP8!p1NhptHrO`T4!q^8n zkJqd1Wpg+Y39{zr45;|gYfjhx>a;z!lOOAREV=Y#tA zXl(xyqj@Mf?j;({L*;)Q4;9q7E&C&XJqefmwjMLoPi8HBWMTW($8(Hk2FhCcR#N?e z)My_^$+S;pt?@)j%`4Z$5wTF=FR z-tZ1RH>ae$;xn*k9`f``$9|3(cqgAj`Sc~?S*475{)Iz5CnI4f$nza^HYCSs(YXRo zp%BZl14)uFRf1l-)*(jGm2`f8!FQ5WDZCSzGtUJoD9?V{@0^3jO48RN2Xrc#JG@J2{0z#J(+B^P%^ zzDpcsir7$dqKriBZpAPqlPO?%GO(v2{X`JybFJ4I`F{#NgF?RUq?b15w^J+H$2XDk z4HskoL@EBic1@TwHKD?P8tIB{QH;|l@yw;JGb|B)7E6WgU262?3oWT(Zm6el5uj?| zM2VGT(-VmkRLNL7LYYjGnn=GqxqnCuCtambauUR_z2X-u;Ily&Y!PIwp))iwZZrB; zCc@95qIRg4oqRe*LU~x~C3J~VR-WwS74B8V zUEuIn#O-~?>TREBA0&dnx>EaJa}YRk1FmwrR{{`&5*vTdGoMt zo4Chr-Bu;^O5|?ZH>B!7)(axfzEPVzFYka4;@BCzo1OE2pYvlJaf&<8|C45zCHv|X z{`JPeAEu{8@SQ)KRYeCL;r%j+4Ljn`-I!qpcV7BczL`dB-D%7SxmRov>73SYt0 z$=t59Bfg(mnadrtWARqHjXjRt7}d4u_kpoztreC!oZ^w3ml}?|%P9j*i8SP67VgKOgR-TX~FM zd3AXdJB!EPwy$DkSLZ#v3(q*2_1!!2Jl&t&JXu=sn?9l{*k3DdeJabaOVkw1wFr2A zv+cqd?@MLF#Px4XoH5?tbdj`tQF^nohrgz`QLbOb-(Gko5VnreF#){p`@CoJWXpdH z4fU#j($V}*$1eQ%^l3YOixtn_^kls|!oO8%)8WTD-kdkzB{jkQkG%NimKyP-k~>~B z$T$1?C|$zIA>XwdpA&H|ahEg|3EFm_)1!%!a=*i6(aj>?bt}nCvKqXtwc6L1zZZX7 z_pAlnriXdw2NbvHw%e1pq-f>x1+$j?R=z2J(IZbB@;}UdJHPR+rp?cDKX{5aw5&YB z{rV-{O&hk1+k1YK8Ar8{;v;nDW8Vp`w_zGWHjXeqZ1SlojbRXF1A3ZG?6KJlYe zRYUsJ_Zv5sm;37F6yi(Rjm7)N>?6X;($Y(GH;C-4p0jp!dr9PG*{KrE-xKrF_f>Z; zc}6^SsCxg^djVnd?EKHdoyQ1OGsmrerve@mH~or|Exw_>bu)Sah%)7wa@LDIOD%^{BMCLI7QfmNKGD2*hZLF-gLN} zbX~h%^*CtmhpR;6k;R=9Z&qq+IzN~k&$*;M`%n9}Zh2P;_qRjbwz{vHe)%YpaQ<9iJ>FY7aB{?d?9c#r4wW+>F_S)DvPI zbkgQG+B}}g=61`yJ|y#3HNnn$*mTLtpV~I3M@DXF_>u7BEIAm{u}nMoiGb5-(lhP% z&X;V)yVMZ8n#<8Mi_uV{32AK@Cft@y|DBZTfg&-%vVd&Kyxu_s4=+`dlyn(DqU za`9{8@4p^AH+$Hb*fon?GJNnb?YO>Ydfn`#BD6yvCG_~2t>x`mUSPLpF5%O(Vn)*6 zT5a$6$%XCsH;C{zybAZbm0C^VHSJ{XB}TsO-A1;$zCKd-mqdKN$B8~%qWXM;n@w%G z3*J3Wn96Cd%fA&H>C7>I=XUOWC1r^_;LbTd>VDB0wrI9;LnP`-&*;-|*YAVY`SoZT?x-z261x!l@T) z8U$VS4f+N#D|>sjp9 zf{2S_`v)H-Zk^eGwRzpfquK`Z8&5xeXa}+F%~$_nVNVIVz1@6jQa18V6K=qnhWFkF z!g{e+?c?2fO}u!2uJq8*HpJ|8*WzU#1`sjMe=Tocl0|GO3IDQX|6=0o-#HsEEZa$3 zC>q~1{MISr=e*}lCf>L~tj|yC7T&m;7*KkB$)KiBiFU$&v4f;rUK7ps5_32$_h{R- z>Zs=Mj}UW4eY%wRUZ;JxbTY4J|J}s#OQ*9g9rPmp&PYu=Zn{sqO+Lr*km)gkv+m0x z2dm@S5r;oK{WfP8!RaFmNd114FwvY{@@@A6?IzP*17=9y5%ZiPZm)U!fjHA=ywd&C zMPjAr^@&Y?EF8E$sdhZaaW)a^X0Kz9D$alP=pIqJ{`tH&Kk9SOTOFEx%j%W3@R4oz zfv4YT?~l!vP2Bo|coNje)@8~=g7aXH+m&~(wO!{;idZ-1mR8uLXlyT2Q|^m^Gdj+d zN5sl@2W~%l`G8=*KfeBO<6`3D#Jhg3wo6Nfb-RCmsI)xMZz6|N@?{3AF;(L+^Jlwv+%f1V)gWGC2ir?u{oRAC+tX! zx-lNtRZN?ieILKybXb+*;aBSJQBtsTHXbW{dVSS8Ej++=A6Laqb$QLz@lO&#R@;5; zPmlC}v-TZWGNNW)Nx`={#HB6H#EAK=i2a#)INgsaGk9)Sqj@>KeR-|2#uH}u{~^#j zgtDsg{Gx|ROLp$c_B|{Iem6GDN?6yFe(H7{;>3O{zn>lrd=XviO<{hrUUN!TTp|26 z5PN*LW;M{R%AG-+FP=j5X*b-je}eg;FV4V!cjBx?hXZ1*{hma45i3gu5bI}7#tvYT zi-UZ95@-3!%WwI8Q%v`(XFd*>^NZWxeS@YsmF(zw%kS}aOYIcbd6@o~JcDQxUP_4n zo`C5R#`o|`^olJh?R>-cjms`y$9XGDs)|hr$9ld*&xme*=@qlEoWn0VbKkt0MEJgc zA=5pa-HnUjN^L(}-v6)18*#P_eM1I)Plo)a48Y%u!P^&!847$=3dy(-BJdR=@Ks5^ zd<0$5)92_Lw}4EK(xP-AQH)=Cg5JB0AJ|9|Cg8Nx=e2-Dgd~9L|3nfoG9^cr0lA>> zZ{c)u3ZLTvLpKse3W*E^(p=;o5nf3$a? z)*@&qe_!H^Aoukl{FeQehi_)};(KiK3^85Zk$#UX+Khft${?0AD<1eyW51G1*H*Ri!)mg9k z(|Lnue0snBNDeRUFi<5tNameB=&Br_7RzgG>veO=+(6#V)lU{ZAJd)J?dZAn+`@J| zQ5U-llV8~J92e$&|8J?$^r45j72aaSs=DPI157iz{*ttz7BVj5~Bi(b!p|+i>Hur`KOs_>ma?fxZ2? z)Q&qcdRx*{;xiHP=EuP^vJO7`o#*#&oU=Bl?}Ey{^?Zf}tqa+H%6fr+ZP4)+j?uj* zoeZp)w5#w}kG#N^W3QgyF`;{4-)iUOSqokS{8Ebd%(Pk^(CWs3D1mx#z)bBH<&(BH z0WB2G2E}qt_@7AW+P!SV1b>SfRYj-d?*8XrpDw(f@{-RkOiwBqxrSdpGw#F^%`m?7 zmij@3mp#8{)zOfj_UCwizR#CveMd~J9b&;<~s)O=FTSa z&ov29a`{c?y&rbEH#aF^a>)h%2|l!a+D-z?p?_V^dK`yWExo+RZpNW0cDQw?P4c(^M12++F#9^QgnCCFKKK?+wU) z6<*LnGx})U`qsC?S9A^-e06*GPLWk*z`omVr#377d-RFwxaVtZ8C!V!@clwtf8~!4 z8%lqjEsY&D|95PGtaY+qsh;zHirdRQbb0pkZ%~<_V zFnL)HulY{Vu#d3S=WkD;pm_C~D);(y_&X!xQ zgVMkdk=D&Y925A;Wzn4nzE1+u#%9dEv?({>*6xFs7gtyY6mb)r+BRI}AKEBn=8xF! z{$2mhvMAqhia&Wr#n4&fM)F5@%v3b1e8)?a-g-N{?R1_Qnj%|3nf8VSlWyfOz z9@@xwxkZgTCT9&eVwoK&f9>GK8!y~4^0;Y}BU9pE`813B#GUf=x=9DuTe_odln=yz z2M%-Xbk`31v@O={YItHS(Q_hq^LS3&#JCjQUvEyG?JtPrzMWxFHpIbO7d50~-w7St zacAx@`P;Slr`FoUsbY?X>+_=fsA}iS55xO}y^I(b7ao48+584MrMtu4WIj@~?7|7l zdD8u(eUqu7r<>1ubnEMz{!hZg&6~V`7}7uP-gomSJ&%USizfxP&T$J-?GX#UHC_}v zY}yF_7L!=PZ~VK6_m_?8mu{lY{HNebP-_=i|2CJ2Ah)^IGe%z75V&cVn>cE&U0}}g zBkj8Oo)EBN`nke}f~WrRmHXXWy^Zl7#j|g4_3{z^!RZ5|#w>H^bH|pguJ>qvInVk> zSa7@ZR=kaGd#|WkKABrq0$gkpw)+e%7_o*w;sL*7>BHSokJ|CC9oTkjl3xn%;+S3= z8~n42J0R{7=U)GI2PRi{47fY7G9ZHI@bP(`;^>uWHL?!98U%zEXWy}X@mJZ?3C~n( ze|h*fEWGA7!}M6`+L?jT!)6YD;eWc^r|EFtH%B@;Z~m|@Y6{PL_~W0SE_03y@|m98 zH~JvAb=4QY{%wcrssn!=Xx~@8-|*3&%>MP!eneijUo2{GQ~e*GMD0yi_@fnSZ!Ugd z8g6gyUCPiav~_FW;CI*-rT#qvx6ko+rz84;-q)=Wy-wOT1<`w$``pHV^l?iuy^D2L zJfh#{mT(5qTj$U3i0Er1z2t~K&+)`PM891-4S(<6T*PXQZgIA@3->ireRn=JI5*zy~n-!Sf9H1^6^-oFP35X!O2Rj|7ur32BObX zzSJT5&x7Z=WBrF!%|P_~3Nl|~da-sjD(_V86RiL3pXwjL`gy*8$O+MNgY2RaJ$KHW zVnkoLc%2#EZ#qyCf%$*wz7NY^Ft9$NFL+>u`Pclc#`P7v{_SVPzo5}D0iqYUSg*nS zH>jH-`bzU~0p{<0`yWJKv_SL*e`hoJfG?ugwZDVy;bc<}Twb&B1u{hc`QWlEh(0bs z_6_NiQ_;i+*Du?D;V{qb8tbRUoZX1tEN9;j#NT?}TrQ$7>N;>WuHT6_ zt|0wSl~}0|ef;*H`w_h?2H?;x|r`kA`U0qZBv$GI`$zpq&}rq^9z`YE=nl63J=?JTpX_uM%TsW2{#wkx zd2>^&&x?(6F#VP3I&7a^M;$=)9y?#-^5)5A;`S1J={PBW>UK}u9v8mYhUjb9p*4tJ zSG~0lqOXi~EJ5^f58Q0h?oV`2 zpWyy~^M>~THnNBE)M;2hVAFzZY!Bnx*du!D^Rc;zzWkEo1I#~Vz81-|{mRd1L@(ox z#O+s*Eywy?yebLzZ#r}5^*tvCjV~P@w$9HYWB7$@EiRN;CHhu1X!pu*+l(-Y`R<0= zpC5Pot?}$YybE^oiuuXYZmRU}w4gkmXe~K^KBsAbM*H`ttqbDU?I5abzZLAbQ9;-* z=`7qBagA90BdGdSe!2GO8qKJYBM)nBLac|s&~6-@7Zg4y?ZvmKLttfOjqQN2vK6)= zj!91fW&1z!PY)fm34l{Upy&q|a8|*#>g@$QO7U^a_fwdpBEGqXnYJd8iB6e{!dL0*~3Q(Au2=$AJs- zmiT}ou{Wsc>jo{(8B~h2fcsZ3P_xVnwh+kUeR~k!SqF3hy+Pi7Pmq`F24og4Al?nu zT?mw|Gh7N=xdHAx4k!``<9dSuO3XB;0EFkI)j3@1SoQb^?Me|m)9BOIdlY^tpt#Nt?~ht zuf0G)r7O^-I|Hr<7wGb!UY0<9&7qF-(5s=r%ag4xUR=WqJv?&xv712|ohEN6lwIx= zApNnIC7JzWQ|jSOqU5Bp4q}b%*@V8$ro|s*`;2h<_;qNc&!)kLgVJK({b)Pze2c26 zCo75tZ`Y?pyn53)?4t*(|A~};GySHW+Zec&v&z3Z>KdA#e11&uZY!^&9lJlruN?3CW6Izm-Y(aF9wuCgdireI zg@6Hfm)xLf%B6d1gwvk z6;OZC75|E!h5pw=Pw`_^YxwF&9dFE%;U3bp=-*BOn=l1Od8>P_Zfx5jFZ_ndJjU~w$5wBEU2hkgtp z{3hF+Jx-{!kt1_|Lbhf1*9M%wT-^C`8F6k|_05UOU&Lnb^HYY}nsCMTrv^L+-~F!o zR>W$C#%f*eZXeo>HUYTeeCiSr!Je>3FhYO+)X_0& zqb=*H-|~r5yxu%(MciBVb@;e{1cdtI=+}2YjVERmADbM1bYMR5`De4g%WQPSj;n%s zfy(>D?3)`JCvCk=^jXktMr_Js!uVVZk1u$xTkDEVHmdLy!UuCA29%(2UX*<3km0Kd z^1WUneBQ3x_6RRXHeGFqFMnF`9O2E%<_$*pyzQ6w8RBJM<~+mW+gfWEgs;}>wj1GH z!k!|0yj>`NAK`Vr9HaDtuh!K#{m7495WZm8==DbOeZTV<<3GQNL3oF!ANL!{SGMyJ z!po{WF5 z^mR55;kjEgjPZlQ?&I`L&W%KPVBey^5YIi#uf+3zg)iQ*2wy2_HQx|l`C;5$%zt|H z2&~^*SsM-Uy5;#5xPE`F>WJ|1u@8*&8~~b05xr!;c{=mGH z9Ha7o>ryXb`Q9W(8f%EpyD{(+esa*Dl{l zs(jsX{l<71=@(Qa9>e)x`-S-fACXc0=(f0)V*6h+xCySG;LuG*`8zc#L3n|-?+}D9 z+9ld!gg3di7nlFwg&w$knddhc;XM!T!1&I8z#rS!aSLPnDO9Y-nJSz*&S2Z8u{HUvvBiSlviZuWV2BmWg^G#|yN>?tR|m_b3Cf^l|1g!y3`;uRO1ksoQGXRCRY=}PTPzbC>g8}IK2i9327BmCE zMhpVcHzRE2APRlk!A=RwWDmQ999S|(0Gg=4K+ps(wNqhr>nmC*Ks5S(Nox@ZK;Nq1Bth+%0?;OZ8T3PM zqG+1}g3)&<+KmGJQTq02AQXL;v#8RGpmx{(zH9JpM{K^VtzF42;E@ z=7J%>2~JD0K^*!XhHE15NAJ>c%LIea_afXA03W@B#6t?}#}a^U=^z|^7s9hE{u(;) zawFek;O!2u$#kdrcLo3$9*uB+s6Xb{2P$p^NP%ny;#Wxc!VKfVD9A1rzZ{Q%0wMP) zE>vtHNXL&Zq8Iw}!B8Lu8Bok&(0F7}J;OmV^Ei+G*AFf|kn?A7F92pC1N0$3egUZI zc&IlZT~8^I!+QYI^_2QDOk_8Jonr-_PM&VFO&v}6T*dZo=hGt%;~R^_E$-Gs^n;~EHY6Uk&%f$ zz+mu;R!PG%q%kUStXLG2q6(6yM&s`YBQH&N{LXH=-*CszUT`RX3rDTLA!W@Su+K9Y z+!8a=ftxs64BQeRBe%qKQLTE@*SNlJ^|kI!Ne9zmF7DLx1OAcW(SksKu%5-$>|pUU z8(4hJPL{vsZ&rY27b{S+krkx*ht*HBi50Bb%?i=%VfWYUWru0@u_HA5*#gZ0c9iBI zJ4SPeJxFty9j7UOVGq%0*~2tC_6W@pcD!aAD?wArPSljK#hRn+WX&;Fs^&Orl;#90 zO>>eZ(VSwXYfjgbYR=RftvOpysX13KOLM+nuI2)3oTi*LUUQL^r@6$+*IZ_)HJe!) z%@x)}%@)=q%~jT9%~sYF%{A6k&2`o^%?;Lc%}v$}%`Mh{OwDc9EKLP_HY`U0lzpyd z9c!NE4r@LvPoZWHYk_7zYoTU6Yo&Szt4O_pRjl60TBZJ*wOYN4wMM;>wO0KPYn^%% zYrT3mYlC_Z`)~DL_9pc{_7?Si_BQna_73$y_Ad1y_HOlI_Fi=fd%s%CKB(5Q537%` zwd!rGBkEFrcB#6IeN=sveO!Hvby9ttbxM7Lby|Irbw+)Pbyj`4-Z}M|dgbb~^)9Q= z)w`xXU+<>+0;@t@&bp(%$hxb(#JZ=x%&JsxX5Cj`VLec9VLen|WmT!SvL30gu^y|h zv!1ALu&UKJSx?osSkKhAS=&>cub}L&)$3S)HR?O8H);-xn_tZ0=dWU^@>jDm z^VhI=`DNs^!e!qN8et!PM{NVgW`SEI@IzgSN7OBPRBz3Yn zMV+dD9;HrGOVsIVsX9X~Q;$~5)e5yztx{*Iv((w@9CdpBoP241Wd4ABaels9t=6a~ zswb%@tEZ@^s;8-^t7oWZs%NQZtLLZ-)N|GI)brJa>ILeB>P70s>Lu!>>Wut^d|AGL zE`>*_TfA(or%TVjJ<*=ed%t3@>gsP^@1`Yx_WZcDpO18An9qsE(|okr0w1(5G(Ti# z?}RRIdVA+_`q1Zm2d53|(|SUAAG;W{zI=^YU*&42zH`CgzQ}(?7d^Kx^6z-D@mOE_ zeDJXS*S;@G>ic$iWaGPTlbvsmqRzg^2L}0vRDfJx+As1#QL(S%s`b8`Hg5D?p*`z= z`y%EB_G8&T$Gyz@#v@Y7wDHq?Y3oNDbaUlE^I2HYEt=aHM%d0IZ|IM8p7g`)WWqal7{j~<$E*IDV;bWILUv*OUw zPc6nxK=V5sPxi~q=XJ{S8`60Wj`!JrAUytM+&sUaX#;7(M0Gr-gg{?n*!2 zQ=C5L7rvz`@?pype$!u{@H=<*tY7OT7yMdIxaMbl;oOF+Op#N5M+gS3i0^fA80SF9at- ztJm`OMzM&B{y&IfD+?lKr3Ie2Jd#~He`cj6G5T4PM^9F@Wc(z9%V2Di0?);m3Jc?V0dTJo$&J*Bsb6NPBbd%i)mb9*Yg&r+@qlu&w(U|Vzw*gHhM+Om2(_@LGq$Hx5 z5eY-tmwQZ-5bux5FH8^h7Bs-FD(_~vmDUc?AV94PHTuAZ1f(_wS@Wk?@QW`-AH_~2M-;+|A9K$jp^`fJ_qh5 zw%gCxZ&$vX=(BMjhG+b;zCP;3K_brIcIKSXhagOc;c|6?pLka(vGGkQj%!YyO7|Ff zl;C4N$B4=DhHn=xI1crHdJ5x59hp(0_P#)sr<_RHdO0}s(M24$3%HERf!{Y8wpjb3 z-MgDa>bO${4=>yzE=FXpjBI=x(~UWEn}EjO1YON_?GLt|e3z&Sd3mx=>^)*DUJu=) z_*W8*>TSt=Hvc|B%2kEnI=&m;zxj-=uYJD$MAvhDCM2yWdQ3QfxCX?0Yx9(#{oTp0 znZ6({zxMb!zu+Yi^nAl8^@dkO`d@s(^~P@rFZ_E)(Ej%%AACN9*L^?LUBuM-4`oTr zeL0rsKH@W#&liGz4JF+@UuxquVeCydceZIw(_le83TMJ4=^IjUYcB1_P<4j*N6Rzp8n)A zF72mH`*+jN72w6(*$Rrbl1uyV<2`!-c(mU&EILnbKZQI4e+`rlUO&U&z=vhv8~U}= z{^zvcHUMJ$3I^IQpMG8e_7j2ltN`Fwi$t1NPZ)vR#KuH_sSo%5c41_#HG3ZI-%sfQ zuKV*!4E>AYtrqqrS}3;`>JDD>@E#HU+y($^Ap8`yFIY}pE47rpQSoXmWp7%eeZ;)? z6#NU`cQf28q3Vyi22j^f9sOJhRbM))UUZcHDY{CX{`mmz5d(c6p}x}xub*LXD1~~4 zL0m>Zk3jo>)k8fVgUL?7Z~=yU)VqM0@P~a6qYxDx5IuY>Ye{9cw9D-12OSfyH|>F5 z!Kg}TlpW{~_6r8M2!^lUWts8+nxX^c#i-byH z`vf_hzUR3#!tbl3U>+VM7;Nv<2sm_P;JLXJ{A6S!P;CO?sThtI(A#4g;cs8Md3Yoy zC8JG$x<>drnQs13G4130aXUL{48yNZDK~4|@dK z_V~36HGee*@2^0Zn53zaS%UX0rk?PJnr_G~@pn%t7~adPfiQ#m^u}~qmO#{)f%PD# z2bN?V8=DERhHwWq4Hu=+7?*jFFN=oDG0?iu5)Vjjq=-NO<1Q>cPrSLez>=(g5{6}e zEP^nBsbL6P1@d4V*9nS~Sp(U2C=Xi?Ltk6d?X<)lC=K(%hc1?+Jt7z-ViAOy(D@+|bx=>+ zVO&NjCC`d1gIpm`Y>!!kcnI5GkAX3NANaB{Hv#6}roi0OR2DzC9)4eMcPM-e>f0hr z$UO^FHZb*M3#h9H%ODNQ$`n|MEP$1FBVZ+OBx6CrOyDSI)5rugN`drIY!9062^#>e z!SGLQzKz(Rk!J%Bv@=@+@dIrEXkTstFfTRah4W|#^DqNeQH>ZmrFH-;hT)`tA-^cd zkCFlL+Ya$pVNlZiVDD{1m4oK9-X4G*FjUl%>rc8F1p9Ik3^ldO;M^EED_a9+QA^DBKB`HLU8RkVDI28Y z!9KtwvQ|E}X23Sa0@%Vdwo#UUl@_u_@rbts(tdD)ws{ej)4?1#z{ckQ=^S9aI7Hdk z*j8H05Zz};v$r|a2cm0Y2AU{g5H$czU^$z3+EgN%eGo5b0l+dugLEGQ_3qsOSa~+W zJP_^^3_66zI%6{0`6tnDXiE8sQ5e&IFE`EiV7A zTWbg}grP6QId*FdT0>iF9n%8l+Z^U=4;*TmR@#@_>Z~c9E~a!^1k+6K0%3@!wHdJX zwgT2s7L`m{8k>N|?=3<7D~&+`q$`4<0Meqg#&M`mNC*Cdj@80{0<;iWgBCGXpoO<3 zXd%~2hG=ET8^s+4MBCZ|v{qWfvRJ`#Sc2AiTC8LA*}{i#MB!ZdcUni+#(}MsO+jn8%Lz29X;|4nS6^llUr)gHAn`g%U&!07 zqBktd6}m0Kb_DHz!U5WaVOy$%G}=C}{;$++i*9`ZAYkYo`QLrZBuKXqh7gJt>k7sf z!QgP!; z3^$Mi?eJ8WZs>ZpTw0E*Q>`Os+wB zT9|_tM;k$#fmiQ_poJ${ue3auAYDV)pN}z=2f}Oq((bfa47e1qj!O1sYM~Mm&VwfMGL|&&q`9|7e*U;A#!6*tQwSR0-*O zLD*44nQ;GqX|@{++AwW1bRSa=(+DGAyM}yOcBW9rP|vUq?L4h8UIcMX zB4Jxc`8t}x_RtWv2Y7`vj-E{_>HNK}n zP?#1#o&cr?Fuft(P+t2N*Rwc^iX zNdd(56TvY7;qll;wPmPlM@Wa-GolNIG>>7B{Rds17|!#P;5b-Ee(@039_>+7Q026R zYa(RVaBk<=2GX%+0J9p?N;va~$8$fZqBa~eIER@69F$Xmb<8wi<~Y5*Jg|sCw2>(cL_S?K8KMPL3VNeawx4SSH{{=&@d-`_g*t8yKu&Q2vJUzEX-`Qx> z)D$#*4|&2iZH5;3*|5)mA^V;M^C4S_>J~oaHy`T8iI}aCSZWt1YDtb z8^*DWa}n zkNbb_YY=WT3|;U4z8>5T;R`3h`oI6X&3}V%*U13P8}O%jlP&Cji)~>0hikNX#`7it zOmlh)lndpD=BAL&4$|4p!*kR4Hnt|f_NWzXkCvbu(hZmj+r)ipZ3y9@7Mx{oO15t( zH{G_kPXnOU40!XP?zs;K;vd7ndGLGL8q9=!4GimQx0zaW2O-T%7!K6d0WKFT6I=%~ z<-&c8CGeO9z%Cen3Ll^{v2l3}VJu5iUgrihIfKZN#5FngYAqC1QLb$K*nO(_$mSox5_Wylfe!nNnO)7|FM0m?d8~?v{2E@&&*KpFG7s5}FzLPYdatuy8v1Hdda^Q65qF1NL8qZ} z-m6$MU5Ea>H*_8Q2)`Z{WYVHe8qn>A9wWW}wd0M*oO^@F^7qm<{`B%dz8+t8BepWE zf3JWp;@^CK6V07pMz>wudoWLi%r$t2(*I4QySjq<{GH`H{*!cE|uC;air`)TV^i_wd_#)QXBSv7Jc15Qn7l9ID7XMTW3IgQEWKy z|2tjooNLl2ju1yyt3@CSxBoHDHPqJ)5JRTWy#LZIBJaT0`E9Q3F0EEPsq&;Nk=}vv zm6&VBTSd-V&RF<9u{Ecb9JqRk$nm#A#eC~wi(x-LRZFb zU5#;n{T0l6-z;DLbxs^*|7E4CRoSKL3B&#hmMI;LIVILxA$NDxiDw;pvASHm_cHfE zJRLv#TJvb)QG3qDI5^P%GWB$B4BHmm)2;RY7_x`0Aa5TOuJ=B|z5)OA0sA1xb=#jA z3qHuQ%Nt9jk@~Grd(*Ahf}1=tVne0Wt*a7$eYGwXz18Amp0IV+ijTOnVetoP{m8kl zM0Y*th}suqyd$muTtE7Wuc+!vV0};FdUIrmqW?_7TNi5 ziADKWksbA*$X_hVpNs7M@S#Qd(pA_ttJHekV*Zhx5B_|4cZt%8{_*!tWLB(F>vwB^ z>HdJM?IDrN^X1ie*jJsZN*eoo{plaBeog!nr03QOi9I4>f0Q-Kf6{g$ zYjJhG|6jS^NBF6+fpNKR1AT5CdcE2q_O5axd^(KyD7}_dV>dE_j3AR6F1cx{K9hZ4 zV@}V@i+bZdFHI#Q88yd_JRBVdC{*JTq|k3CfyV!YqYExTQMDVd)rxa#gKa!PW*geZLY45{RdV1xtX{8>zp{MFO!ykHKlQ*p z3WaGcE@|1&!CKoZEuAB!MQasZ*&ntNvGul#o)Fm=DpF=XhPy7-&iDxG7&FTmGu=|(Gcab}@tS(>BofWOXHVg0vlk(kT(90sv+$0{>x{>c z%r8rgU25i5hCIQFKzVv@3L`iE4Rrd;iXqnsM-u)U*wkgsetQ;w*^)Pz_YSrue>Acu zy{VqZ$LsXYp#{$e~|z1Hk+g%v}x$)_CLQZvco&*cz!vDnS<{@{t-y!msi<6 z)3JM4#deG+W1UrhA(g%5hW+dNr`k8gR{bh7cG4GnP5Uo9tp6E}VM~{ZKPhrLO!+E3 zMh$zdY|k>8a=T4tL+@9G*N#sizwN&mXJ-~FbKyjNby$>L*RPMDbO-{{AP6V|0@5WQ zT?$HvznHw-W|%*^3^zjMBGUHgxHU%S>`zqQuBuN`Y` zzbizm9a3p;3%VbEm)nKKEcSb+mVylFDMw{5RPje%FK?SF92xx>W(d-9xx9Q|Am?cF z&6T5d24H@EC$5k2T=nxytGs08uen0uA|DU_lO15!SN{|!P=YNfh~OpYZD#L z0~-jWUhP9Z`*o^uRMYHx)q3vi`2l_mhdMHoU&?#zr~gJ!38D;DOr^A^Qi8HHG8kn# zHD8$O_&YV6yw;sk(3Q?)wiJ=uOCL6M8}%pc1(w&KA;?qOYQ*z(E~-AJEy0NBkD9a! zF!1aL-l?6eOxNX@#j46ps2wA`akPwRXafEM8VAJdG6C-*8(8 zZulxUy=__?X;F=KROp&`%Uvp%03&`L~>bS07?k;`r<@Uc6+4eH$ zPIlqZ%bxp_-bvkYV=(iePnRtSo=b@P5Kn1UkAG=T&4Ar({HsNxD&+WepUjMw+XVk~ zi{^wPyOe=R)-viNU*^`*gl%rEW5+RoRh!q|@H=j0yPUJyKnojS0{t@M3E)ji6~o8Z z14$Y(I^5(oEzHeh)O)if+V%4r@h9|)0``pieh2l2Hx)Id+K!otNdGu&`v&v)=0Kya zuWPFRaJLXxdRnhL32V97_RK-hXC-_whz<7RfUuZZ0Eug}JoA$ItSvg;!5Z-J#QZ8P z9YhlE+_@e%Az$BRhuXa=8{>(}tQ(&dypkHh72r&^7vM`!G&AUDs=XFh{1}ry84#&a zJNmQrkitl>E+p23FpgO;a6E3C(|1OdW{_BnmC>O5AaW1OGpgFl?1D-3L^8+>G>%r3 zdRnKw6@N>xb-k~tAsu!tlMiG&mkA;K-VT|ug6W@OXQm?Bnlv+7h2rJBA|nC{kSYG< zry94EN-(B`|L0#D4eqztV`W zo4HQwcjx14ER3-b$oq;oz7E(oNO%0s93?=qD7YZAu-s7fIe~HE?TJH{IU@9g&3#>2 z!{%ipt7Gt2y@WoAw*=g&uceHm5VyH+8>z4by6K+;kVV_>sh5Qky$#mG1*)`-zg5#_ zgj7fN9?w^rYIk3I)N;hw+uUxLHjiBP{$#sf2>WwH>oJw9!1&-UYLBt_VW4zND2KOf zPIqLszexiYqvdK^J8*dXKtLm1B2PA=WV?2kGi?_kG&?Rl74~Ayxb>42y$0!bvWd(4 z|3mT0khAik5i?K%zB;eaW;FzbD2}{+W(J+wc-=`@?%;>tOeeenaX4L;P+^%6{g^Pd z$HeHgyYsjg2qrz6;;-VFigzR=sVhjY$>iYdf?i+RdTs5yapm61OA%>2nXYT)NC0QC zT5nNe#E0bz?9@_fJ(k&cB6X-)1+!AYj?Xs{)kMNy zmvmfOui4C%4*n%AI(}`$^8=ydvQB<7P3|=SdF#tU$%mFm8#*ps(n#?1^^IH+aq`xX zrhP6&cz}8Sz=`zhY^UzU=6ZR1ulAOJ1PN zYwLoUz+QlE+0ACxNUx&pngFrJLV?g7#=Bb=7timv` zh ztiJi*>jrI$5E+7)t>|1+A21{M@H4lSmIi3ZH7 zM5o6^b4GcWD%&i6-AIP}eI?Xtl6J2^?G0P#v-K|EaN?k&pAZPQY(e>i zp+_tqrcP~J;&F-96%JkLN(6qf5$K(^PDMES+rkMg0nv#p1m9mPpf~g^_2A+_EoMMV z`3BmsIo|sVai79Wp&D<4BIrey!`qY-u*PLSA>)Dv;znjg18OO6qCek)!aaac;Ypm(r#O5 z)R$c-U(gcB-erA%IVBHuN1dlR;t+uh{HHJ8RAax=gGkEF>gnH#5wA_jL!hLb#!lUj zb$y2%vT=@Oo?6sY2f+u=omczpwZ;&$ zc)gA_dRr_udE-8>(2pQYXEZE2Dk*AK-5a&Uc;!Q+Q(+uNF7%hpj0}#tvnDQ`zk574={BUp$oAc42*VNO0}?A`@bk;1+yVKO zaz5j5*Ul}(y||hAjLs|1!d;Gj%kO6fF|QN6E@EDkA?uLA*JC!cy(@cjupjBTk4`%P zNWHD5&c)YwJDfcWjHP@*Rpb`}%JSd*Yd(k(?tzTxA+NAyDiV?K6ul;~>?$|YV*Y5* zhO_Ji-*M?&&jQc4#m{866yRruoCuaXcTwAmzw4X7V76}Jd31!(ZG(_Ty+3$Sjea@n zP?^Xf6xlkI;m#Mse<%ITAS(3SA_fl-B53EYx%Un7?O1K4x3>fAE`hmh->r#&my(pe zr6o#%GqpjOz7KzNLA~)MqzvM|QY5ZI$juIr@smX#KfOD285N@?b2xpSA!K1IVL8e+ zi+h|h=WA*8&E3$V|L~lvN!r3CP%0ejaO@Z~H`!c0i^!s~ezfnj(D!zZWO)>bn3>dm z#S8v!HGLLT-jJEWp6QGU(|k)(-euIc+jSh;BMrr!yX^?luV~?h+=<9k45-@5X*Pxh ztzz)$?=AW5AddTRg_bSF_vx(;|L=oX-Cuc~uhjC~{wx$0dp^AguTsp?rh;< zak_M+u3Lp=fPd0>9qExo-zq@p!Kk}K9B(*Z+PfHT$p6=rDDJWh#9%wZNYi?Ci1%9( z%Mujv#XJjm3fpEWIZa{;7r4H8iXERBSTLtXj42A^>TRT0)+#ApMkkIf9SStnXec_6 z;M_|5qmu19$;H-84_H}&S|g3q{U7&1ooxkfd3w9+hkyN&zEo(<&A*7XyJcCGa`7>` z@wLw~tEyV>^?ob1n_VkYtwA}IpL+`~&qa}x%NrF=<&FCTyMejN`Ne{zu`*j`I|>Uc z+nT83>>J+tY(j_km;G97ffcTP;A-(a`WvyRW3HXU#*5#lz`~Z4Bkx^${RjBNlKeWg zlv953*mEi7=|oCr_{>cMsXZncO!i9SweP(bnl^+DaqKbuAsB^MFTD zRUKBEGoWN(?s(9AdYLDPcFtQ?qU9azWurM4?9?$9A#<9fs_A(3L)935jG_dn_U#fi4dTcWX>wRX> z^~^wHX-69>jB>JGPW@nJe=0ud=`-vGN`L}WSfhR_YgQhV$bIN@^wj=kfo4& zGB2Rvu%FO-O;TE#mk*7l?ey#B zrcWh;Kuq1h>={$MmwBdfL(BUMedAXPJhcPAuD$HC^f*W|HO4E2FBu+yJ@O-McqY38 zqXdaj;7~KMO+BK+ak1<+X*g>|)ULZ@kp#F}iGvS1R1q;`btV^HJFHY#Bxq7f3D88% z)}}^??j%q1R^+jLqOQFafN5zJogS_wnkf4}x6_NQ|A@EFAmGG0feAP>o`SxDr3=M2 zA$*!6vz-&7)l(&Yd2@ldHy!gbgc55q+{8aI(%+B??V^2F+}wyYaZti* zDAZ*uk**umE`C4ymj?*FvP)2@9pIYJOBF88*C?s=8=Iv4VzNj41}cv88ZgK%iYjfa zv*Whbn*5^m$x>@az-^_4tZPfhY>)qp4lSXRCd-M)~h`=t4GB&L$K;$(FGdJ8qMdJtRiaR*kfEwCOY4qBMy+@ESROPVa> zB5Rm*-mh`2oq%&Cg;xIS54?n`WO_DE&lYOsA%=uc^F7+ziav3?duXs(vTuDn^<>w# zF915)U+C})ox{z`aU_Rw?qUqkRM(y|Nbr+!ZZfA~SL~*jJD07Ao(vB>YAE~U)!gz) zGtE+Pk+M1L&vpGu=&dOOJhH zf2x~Ey>FCm?tZ=Apf;xT!D*|hc!V_xNw@tw&tdMs;nm%=gX*RTz?HNx;hUXK%g1PM z+`o=M$Lqr#CANw{|plRPLA%g$q#C_RiA95Dttvg`Sg!LX^q=34R$Vw+9l z+xK_k`1G}3k-g^c0+JS-X^OT*TfOF&IL=LWw?$R*p$0c4%U-H)d-vtbWQ;P#7wfvGJxvC7|h zura094uiRrs*T%>8U_NJ&cs0JpoGWU!oP5_LA$om_4VC zk}syB#+Qxw4l_N++xU4vWtaNfp3ur=2b)&Cl;-6j|74qb1D@S!WFU~sXxxh&7!muYGT*^|SWK3CtUFP2K}twqqsAyVo4Be# z+BeyRx}D^MBlD^8U=Z!=-D(82 z2ATu#rpz6#4ftnxojZFQAD!wP)BZHcn0>sw>7{l{>5i-$3iz>T)WUmd>X^bS>Qq(N z0#~4chwnF)Z=%;F4o}%8m#mq+;6A9XgKC}wuU~ZnPJtZNF2||U^E+`72dA&^_MbcK zIvZQ1j1L`*yBVB_8-G8LI)*AtpH@F=0;(w)JdTb%-Fjb~5$rT~8)j|e9-c}xyw#V4 zoAFht4QMw{zGjprBRw*~S-z8e>T?k|8|syc2QsyVo-J+-)*MoVeg+vOK%@}7mS1L2 zs15Ez?Vl~&t&jJy_ZKjnzMs064KQmpp;iY`<(u0OvYNZ#Pb@O;cAxsh6nz5y(V8YvPZ?HdG*@CeTMY(7oxqqN*#BWgi$2Hn`TzT z*NDuYj!CN zp(Z$tN>qI7Y-amwli~kxxl(kwRkVv2*{&xT z2Jgc=3yms~F*Y@J9!jN8GcP5InCVhK+qJ!Febnm4Hi5s+(=Y8sXi3l#_-~z`gx@z4 z&2MVdPqq9Hkq4(*SHPNgk2Rm%mVLv>_k+>?1DtTfSahWL)jyK38ey%Z#Yicf1w@7j zk{A^|1@9N;WgD%Qb0tJFpR@QsS!^0MY)fYRmxKVqWDmwfFg^eC?V4?y8poAvYP+7V!pZ zLgH-(c8yYKYVPO=r{UYTDg4M+Ib+vjjS!`}rEZg`YdE0lUwm+B7`ud%inGc^R6T=m zO4&T_KkTsv$lh(aT$MkXqpj=u z&noKzS_iJM1c^*$EzXB>w?{v#2y{_?tng$Is8Qvk%abSGoc=Wpy zx$U4TXCS6^t(R#}w5OA4mS6{OzxswUVrV(^Ao%!zfO^KY>?3u1)a_HP+ZObJo7n3m zxZ(V*g%$&0p?)nllT2(KRe)QL&^4G3s2hT;{#E0d76a=9;ke&F6yJb+S*m@?)Uwza zAbx*hzmjQWe6gBasb`MUp;86c|&b{9~j*Q`ICBvz09PyUGt;Ed6nSB zB&$nxkLSwFuxojw+Ct_R@Ewf$x_RYfJt7i&79r+x8b#eZem(oCa3TNbY<0po#Ke_n zv8l4ZhOD=Qh{f&8iGNHsWZB&U7!g6FNh9AiUIsVz8707C>Q>Fn549amx2p=G+8J++ z5}ez^n24GUeJ*?hASRljp{>*7%c$H!7}01>tzF2bWn2( zftlefjo2BNbh` zY1%ysK0JLM5Kws@I0P`pk+iE|6*9;^G5*0h)H9s89v#a^p*rjwGryu$_qc zJLmlSu4Hxpl+;T1ouoye^Trd$DWJWO8a$oa&xp6Zd~8-b!+Ni|Sn+N{sVsQI0-iT! z`gMZ9r{+@e{h3b?|4Z$Z4tFMWh4}`nYz!y^W6ZogCQySBIuG|Ni zW?io%9O|?T(y_Sb)HC1t7{8G6bs!|8dMykgfVNWT>BfPDuGJqIdv zvngZK3Ei>4mvU)H+8`aVt|m_f(IrpS5Zm!${Ayo1V#y-KeWlu{EXj3K$V;UYI-}3M z{%IpR90hsV#&lz=H6D68(6#N`+&X6PtKRzrl&m@JEA(b7XU+2hcNdMbytFW1(-RiB zBU9NN8W=aBjFQuLqKmm@rmrdJ|is1wB~^{S3Q;@k2cbmgcQ0UYgPxZr#&}&)OKk0S{v1P z%7E;+mnK#zVG0UaDh#7O#PmGUsC4O+(+)BBaIG0F>B9D5wXl?CH{p7oMQMMZMo`g2 z%Bq>d^!3D1r5ep}Yi_?F(~&nWgUrIber0^szL?J?%l^gu^Mjd%l>z+|SEyf_$^4ge zyPky$gPSex<8M9Ee(ly?VicOqWj~hu^8gbJZVaPX%Ob%rsI@Yuzs2j}?j6%8U;MIg zo*+TN>zAe%;7jNbWThP)F@y?Y5y*b6oj*W^OKgvKlAp~Nkq%G6vVrEYU5?|C`ZtfOs27kpbLa&k}O}bzXIhK&ED> zrqOh0P>(Z(4htXei%s7+iJdRvE*O>}X=1*NhC!k$k27#nBUZ&DkaTVCbtXY!VGd;@ z^hXYd;|~`M0ua}B2OBdhsOGYTSwJ3y2sP6j8cFc&1vO6cUrwFxu!2Jb(IeSszE)D6 ztf)x7z`wL+Krga|GYy8CPBNtfMP_rb)g=%GtxM?tJ4{V#cXXJvHHx@D6tEg~CQMSj ziOhR!cUW@2MJH}&l73FV(y>kZ4AE|D&y%DIzW1&~%%2ovKAIyk>X!o%KKIKjZk9`H z8V8Y_O>#~dJoiKyD$IC|X1t)NwC(}ZZ6|J#cy7P|-Lz(hJl|YjF9qc#_dK1m(O2gq zVHnh}TX>fSWn6D>g{0993)Tp3yFNQy z0M!GK6OEoSRBa^8zXlee{nFEf>BxZ9Gq6@Kv-#M7FAT=%t~l@&aJWb{Y}^j`wVRu3 zvWwCv*k{#SZnP!heR;og=sC}5Pn_LSq#hkM(V=Pit` z^Ezw$Jc+zcuh-qCVqgVlhO4Cu3vS;&9Rny-vIn3rpW2r=pwp!L2=x^aAfCX|k+#-q zr6H(}Zpll_jQpH7lO+i`!zTLt{2E!qTJiPa@Agw!ttA?GL0wrd<@W{!=J>QZTH_W4 zh|dp)hp)lTOCLGNc$NAz-@t?6t-^5kp$mGCprkm>R3B$PN_w}YT@N?NXYob>Gyrn^ zypY#46BeB`u(2?>@w$OCQ}Lqi#AM;;MV>fOj(i|i1ie({3QZiCIMx-{JgO_l-kNs} zoNxF1^%msoNFTC#qAos`2yYXHg>RY%6vf)~Cfm$cHWsoL3-NCamy=ChzbA~gR_U!C z86tB^`&c-ohM6%O2Q8jwSH1br2WVI_XirE*2f-RAZ7uU8%e9*5Ai^M~owRo2H>P_8 zf?Bfugd)8^{HDzCqMqPvyCu;(K!VVMM{x0ox zmHgu)X2D(-&t>+T`KUIFW?|3yZb?thT(}tMx!NeTdH?LhizCjwR+OvV3=_Sm;QLGx zs{mlW7LRa_VxgrQy_%Xb_&U?bdvRW%@xhUik&SN!(zjf_?fVl*3KbT-JY?-Axp?Q6 zRp$Cw)6;L6IpFbV5CljZ*gWniwQ2FZ3p^{unQ8RgJAx$Kxi)Vwp5iE)CYDYIM54rR z^0grNsVMvN9N*8o786?~%%3M>cGQMjQ-daD%xFPhi)ubDqCv5A2=5h)hNX%2g72?M z`w6^2IG1re0ph0%BIo!6wh_wI>uY@DOMhvbo+T|fxT8n12edTHq6bBxqrdj;Q}^wE z?f*hP9_=I)isCCAB}-NW8_LqZ$~hI5&5WyVt+h9zPW~7Oksq;E%TqOaJ!j5uR6s^H zTV8OWZiORO{X1S=T!hjqP*dMHU#C>1Tzp8O9MJu>Ewlv~E$@(V|JdcG_mDKC6QeJhQUa(AHHO1csoqN32I*s@Y!Dd%SLT4>|C?w4Myfa7z=BhL3g$1digYC$_U!Li-i*$y(0(?q$7`&~fv`cO zqiV*1$!lmMC|~GsC$4I#?uBKuy=t%5-U~}1Zk3M8wp(G|Z* z(_xDz`Pt;7Q6%2qGoU!qzb<2D26 zMv>YbfXz+qY)om*%Nj>&;EGkzJ6{-A83Qg-#Zw#~5wQ}3)>HC1~M1?R|eLnKy?Q~CIYHM@`k~bYB68-tGV&drY z_+P=}^X4FbE|EpaU?J|sUzg2~r%AU0m0{f8Wi@Wo^>%o$KXu-aiFpaL>G`^lD;KQjs~DHjY}*#DGAD3_!TsroHoS7P;Y&iY!; zTBz2nF((!i{$u|j&%S*elk^r=5{YyNjR?K-J)&cA*X4D<4qtC>U6L7J`*YzSWVl=h ztH{3@r(0e52)-?R{Y@yXX2DyMB=bQGnT8zfPrHi@0-j8m2&}@bkDuMfnYUkMY%^ksXTa*aB=i?;AMu zm&9_>DpP1olF!6}H(@LEg?9O9>5=Poq#)OJso+m=uXG+iC;0V==hdrjXvuqy*L+F* z5#aH*znU2WRq!rdCg3p9+5CKNYgzrGPS-9$bz{-6&Z9_(=;Twztk3i>$_xvMaM5Lf zlXx#4yOg;4Q!L)j_OIPdGf*Gnt3c$ICV{;7x3eT{h^r<+{=^V$G}<96Rb{>_5fRaf z=G4#pne7QaxYmaGd1aO$|6QB;njLNS2wnIGPCM=eiCv;e0S2!^g=xhQygaB$-@Ga9 zx@p?KHd8}oWQPL2fvE>A8NNPMI`#TH@gGrRslH`q{tJJnbi1aDKGgR@O03h*g;Ohg zc`a#lFlS=RQK(6}<~Sj*OwpQ4QL>_Boa6-+Xru>Y-cUn~qop(DZZyl1xZsk?X94ph zjouOz2TgJuz~MD2d2Z6}H(s`@H8G3KGUU;TTS$EirRC7D1m0x|HJOzkKnp%yaG=fj zn57YhdgUJFFXNWlfprt!Y(cX=AHfSz)n?usH@S^&P$c*@q;EKn~c1)hJ=~ z*|^;R9D6}kEfr|~^tzN4NSZXUHoIXm`jiuqKd#xL$d+|&@{nzr9jZR4TJ!H&i7vTP zp;la$xZd(C5zF%d*TkBx5ZfVZGIXy#vCtucs~O@w6g@O#o!(>bh{^$y7UcuO zt%%N+j6NV}=+AWk)^r^*Huv6ZRrid(X_R-r}2D@p97L}Onz(z#Nb^h`TJ>iB8g8nL%D0GM6 zNtuxUJFLW26tBV5M*O)(#UgTq9$xG|x<#5QEOjASZ@C5dlWiGNHwn0xHrh;APfHqp zL(9AK1+35(>3+#B{Re4mFY_+NA_dnc;6(*GF}?0FbbG~qf8EJO4E~I|Uy@vAzDA|` zM?@ZgljD{&1Sp!p?3PX@TP;`;HUbCEvZzYk&a|jXjH}jCE_};@Zl7+U|E5M5Jqo(s z`35=|)Ex#uIs4)%43B^B8+Wxa*Y9$q+&#F7HwMH|w03OZ#daTK&Q$02XGm#NWPGlZ z%RryVFV`CZ#GNvb&W>dwa`G5>{$p7*z*Lvla{%#WX?%6_sG;Wt_m>f#t|74gR=idY zyVhtx_yY;;z+5}9FBb}&-YC+%0de^&pcBNs_;cuSMGT+zXho44X?RvqX}h7%j>;Ij`Qg))(73+qmw`9s?4`6T!S{{&JjU zZUc5M=#mzUVTH;yQ>y3Pichvow^R1dL*sCU6#!HUqK1)cw3i3mC#lE^pBvaqkxGzI!@)VC(duysY-qys zTzbF*>Rja0cefKCzJg{Ziux#qkQ$tW_#c37Hu!jbw^EGn?ZwFNr9Bh1l((91*GTSy z6con|hxopz1VR`c5qY+dH*xEG zqki~rVy%bi$MHWVhVf|9G_%kc_uN9Z$>!SND{}ZZT%PWP!@GgFyP@b%q^*;eIa@%Z!OxT6lF z%u^q|g)=S4X4B*4C$D{UdyS!z4n?0q`_d;gbs;q-@}R!rWlFO@Z>dao7|`_U}> zAR1H?N*Z^OMd#59mwh?6x%wh?5hq@){7T%d^Te%m!KQU;7d0!tw<6;7nye+&n*|^| zpP6%+BlGSPGCD*0IH`%Xt&2(|Oa9_7o)Z7#7Ne_H{VrZwj>VlqMdkvemmp`2q8>sY z&@r#MLD-cuTwSCNs(Iu17Nr!_q2Xf_P5K(YG?^xl6J_scNNyp7w-Ab3z8aZCOtj#)a;;lHZYm>D=hBcrX4<5bigb5bTTP?K-uOq<) zX^1}=WD_^^(`(dAdAQrFyM zw<%>bp*tuShK@v!l{v4UPo=^%Qk^bja@7~~B9~gcLwpRvMT$MIY{_!-t^tJ=4F6kq z#M$lWu2zrAl4pLH#J*q523E&mlpGU56!Pfi6^Y(dgqu?PuNpPHfe}6yXwFw-4(5S} zmjZH5$NdfTgxd<}2rP@kQ<5GO8UKKacTl+M@WCu{QExApJZDqhAy zhG8?(Vn)T`Z|^qv;Wn6<(c7@5!o_@1X-eIqZXyABF z`-JDU(AM3`)FP2KdA4)>*A3?5;Muyx1plj_H2=t0lf1Jf5Fn3?&&CHZd_S)$x}tpy z*za0?F!50$ncot?T~%=ZthA24;9nGFZ!f&49{ppSqvfi0Y^=c{_2K0=;qf)`YrMku z(@827IVZQQdAf$KuIcua)qwhWLLKzJ6#_6j}NsV9dcW=p3wZc>T8by z7-qZ^eq`TpI z%*?Xi>4W0ODIs)r@a#&oEVkhN9r=qG*Xf!L=D*)YiYEqY_q8?x^Erx9cBN{?F|Lz> zxZ63+uSnU)qK@Ns0Q~BXz9N|v`A+@~=<~z!rL|D55GQvviz*I+c?~mVnYqU@d+b*N z=%S2(Rc5J}O4ZX#@m-l-L_ep)0Qdf^3xVCEpYC5$aknWT-*4XyYZ|HlaYD*7^RhB* zxIwR2T?v~4ahme=6|oPe^tys^Z5vM^;Q>24#6iXG z#}g)NKyZMRhEzhK3*&hsx2KVYU)`kleILtUua8dnOp&9~@^s|EPp_t3Ncfe%Ar1DT z#1oy>*k#45c#0Nyb|HwQA2EKKLFx!wFJ)Y9p2b`eZ;`<>=c8MzRQAfL_}K5bo~iT7 z%;x4gXz=jf5*qIC>-^YCHtGu?z{6e%)BK1MC4o0 zJLQhq=Y`LS#KCku8nSCFgEEYb6UsynBf%<*D{dZCf5^kxcf7T?$wS_}XC)=r1ZXhi zVMX6v0nzAm+(!CLJQ-ZpvI=Al<9#7MLd$?vRbM?6Aurm^Lb~kV_!!N1NAl#y_qKS4 z*xM_5Ir6Zl_`ANA-N7r__`&#g?^y>BFMm9t#zPX%KaJlh_vYRzxsFte{Qw`+3jetS zXV^=2<@1|vmyBhJ_83>Z3TN#WW#~AU-&5`d1`7YmtZ~{FUQz8B@R>u>ketQdwSQ)} z2hyL_>_phBs~E4o?TsH6r6{I-rbN-dV}D@j82NS#%2z-PMEPXLi~q3cq1XCyq8QaHsIeg zmSf@>7JyUwD!c2x4V-fO(YQ{_4;b)VmTtu)g89m}kN!I| zN(5JW)%i!@Ae!ZZwqnhFTsu#hEWj+5<9+md7^@dY(}VBP`zz>p4;DgxWnk(1aw5Mo z5ZWe7p7|4-=0OX2DAfP%`#w7^!jkm2)*}`l+V!XJ`QF1YRw<%R6o0O+8!s#-c4s|; z9Gh5#O-|`<$S@z3zm`=-kbNirCYtvSD~KVtxg%TYtsIhT5ce{8ZzBItdl31L73%|5 zHV|nsUat+FGt9dOZ4w6U0 ziDV*0n6?D*_NaHn6tMzUTsXKaxaL3Jsb9-zW>qHK&8iSo=;X-!D+BDzDg-(Hc>sj7 zoEDXU#zXT6_3BqkyH}mBxvwAJD+Te#AF>a%fzP{fytu4{uF7&g1$*$jk@?wh`mf~g zSsoK8e`Dg5{%_Gc!n3|cnJZR&^B-~y@hnzxQF5Wmy{OE`Y7lW#G6U?qvbvxh=_*j*LRgMPZ~ z;9B2Ub$`9`LH>sb$W_o5752TW$K$HAVBn$v^gLsUyJF+` zgUx~i|G#V%{nM2Czs#kwDyHB9WGOC8AOF+~D+OSA{LJs`zGB+^K^XyF| zR+Zv&3sy~0l^Z- zbh$DmK`zh#t5KO!1FQFcScBh*LonX|2?8=XQ0F1}$D}0rnhClhl2e+2*Oc|P!{PN0 zHab9eQH-z{6`7~}AI9EXO#O=+AKT!W3fN-BS`SRQ=XDondWe24Jslo*RtMWEt=hB~ zwo%bSc`LpVr%IhA0MnEAN;H3geOWn$=LU+)jis`p)*pE45>xt?4#<^!_ zI53R|ADk60Q}V`m4-|19L<+f=W3)$f?S6e_iM$s)*T>_fJFG(R_n^vQ>zh7#?EA;w zTLpKC1axs*!=?;&PPXMN?jY@jrSe~%qxG^r%;f^Mi*1M;9mj7zd_$*F8`x zDq(n4!Yq;`w-3^5Rynn9GtC@P08sBFEtW%*0nh_h4)Ypu?(ld5NzRe#i3Or6Gr6;}U$ zP5H6~!MQh1KDih#kLT3kQfK~Re0C*}DU-L4DYokZWO_f}=fN9Xpr)+HBd zYvg^a4}I`fBN<<2eue(5)={A`N_P9lq>@`1+h9%3DcEu z8gcJTO>CokO&LP^8F6qg!KVe^yq#ZN+E|C;A(b8oT#k;=HE3toj65Kie)&(Kg^(l3 zEF_w_#Nqab2vUd}ejY@WpXN}>cWYLEf7mc zfMNTji^5(i_VB z$k{D#uU5y1V1FV=_-k&*#+*=ozw^Ca_cJ_liq+Nlu#94T#V^bo1{;dq990+A1DTq^ ze*4D{&xk(k=j?Zozfum93y=V{l}sqNz4Kzj0Fwm;&voF-fJ{xt(0w@cL(mp|Pg*5~ zCR1I3ozdVKjbcCr91r=^96kuwu|bA3=v98~sNQtY3+ql*;9$kSwe#7i`|{qiQa=uv zr?Pxz{*P*#ypJrui&7rkiA{%B97F~Qp)tOykmWez@4_XEQz81cFHOOLUQv@r{CM^qH3t*2|U_ba=P0S^NzuC8Ra;Q4(_rTT+x+8v}NGdcfY zs%M{vc-$Ith3Wp_spT9$+meMm{mB$d`zJ{?DvZl?{k!DXnm47rn{OgH)PRX6uGn1* zZ&h7Ej4Kd-6SOz@^xtvO&hr5h5B4P;`4!QIjNDTl;2VvY5ZkX35$tslu}q7pmn>5P z?6jh{YN2vUvhd2&@^RM=o-^$>Oa$q)1ZlD8(IuHvM{*Hq@|T5z`|Hhni8T34-^Hw1 z{+!xy;_m;c`*)n+xhP%Cz84=_%JOEF;6PbsT-m(8?ytq^3^Lk6Ql3kJe>a_fKU zR0hg@bp5*nH@y)sy$KZSjPw_bQgunLN`Pj4gG;;GKI#Fx94n0Ywa&nh3#^Jcfkpz{ zk|)sfP{LN#2$d1r7#_tv(^L-4H^<+a&A=)%2^edjD{HsfWsq|W>Uf+?`K^$jN2 zf@$k~vpknG^^DO1As(s0REh>(Czh@7!Hs(clRrq_c~?isr2QN(>G9(x{ltpUOD7-? zOt)lT;`nChys-FbaJ6jpl5^&VUe#{QKlP2dUxRSTycmWLiM>y|c-~0rnGYuRJn#BR z(si2jeSg1a(7~lt^b6Br6)TQ{D%TX^CAO^89|nJrEYJJLF9v~FL^ z7`O^+;QEAXRea^7n{gPq2uZ&7hS7V$gttFXll;vM!QQxjmwOX*=sBR}QNEb9>it%4 z7LoTA?mbnyP+3v)-8_Ey;JSk)ZDZ0kjnWfolXv-6=1*o|eQ^YAJ9K}aVVP{3UAThRUePc`e{Twb4?hYvRCGZP(i)dj9OG033Z>RUzUrt-TEWa1Z>ipJ(T0t26dO zF}CF~*YV>mrA`&A(133XU~HEFV&0UnsH`*ozKSZLGD!WtK2g&y-7Y$<#AogiFt&wzbM(a+cVkc z-rVqS-E7DkGP6LOU>*%h@=GXfuExKul!x}Ri;#Ed6c|w+QH3&XJ>vNZO)ybGbU-71 zL{w9uyb;6`gUq@2lEPlW8qfTLkp*Z{nLHw9-%hTHPB-eto+OXJ{3AgybLt5=U8h_O zEtQQE`T+qG%OfG{fS94_H9!0|s4yL&7J}0yy%a4X^@`=fKrXS}ba=~|2GEZixyF#9 zY}gAQAHoFX@bpoHjm#2C1QFOluH~~IX&0#@AlDz*rikTXY}VlR56DK`^_T{fS53Oa zA|1&~FDb(MXj(b2)+LDkFr!KQkZ=&SbfR%dQHy}1lcy}qcveu48%cFzOEGGfaQI>< zsSwZW_O))AAi`%!l|`(t2|m1zde!1M>}vYyd0?PZ(Be{#4|XrBrhy?DL^vM*9)yCs zGTV<@m=&8-O^E$<9R6u{O-*%oNaprU|AzF&dHz9O^TPQ`$bQw2>iz2d{rxUyXB#1^ zF)Yc*ZnOi&vk^B8(iVAS&n5J*1wuX9vexaT<63IbqagQU#F`|uh9uRmW9I-9N zrl*X*M;sIN#h!l%IczV}LA{Fi1Ee3Bg_gxQG=lzOwILJ{O*B6t&`7uw#sWsZhc$sy zUc^F6G@^v_NtrwWOo4uGPu;;Z298Iu|1Y3*=tg8Aili|q0H2Q zJ%-&L`3D0!fzt+)^+4vM5-~K56o;)r6uweY)ajA+KroOJR{VXG35+c*8-wFWM#%zc#E~Pkh18&(?FsKvJ|97A zj?tW=PmdH;)}LY_g3?4vX(D7`q80>ZQORg?49ip)Jb`oyOoY9QBrqTZ!W5!dCE7uj zV_Z*UF7d+f+oJjrepmyHE}&(EKoJW!ID-}XF7gRR0>)y2Ym38&=E5+XFc^@)Jyb40 zddluFUTz2y=Lx3o!8Sv*V)z=V{(|$6Q-Vbh7t#sb-AIvp;3q;< z*5DlgE+Qv#7WigJeYB)K!zFYP>aY$TM{5;P+?|cv0OD&e(m}sUL>>76LwAB3Oj8Rg zjMBqcov>fh{Uy1DT(H4iC}2V^xJlq6C9WyR8Lle&MG^LF2jd8n*~5>CB2*IZz|+Ms2X4-+5sM!*8QG4uJRx2rxW&18 z+ChURD-xHYN{<3z7JTWL&)Z-#qTD%EJ1}iaV)F|2m#@7Lr z!!d&cqzJWVTEuCKRK$`d_XOXCU{-{a2MUPF~;t)0hob40O-#^1fhwf)kMC+ zh`@+Di21QdketGA-5#2LgyPnF1%^kiEf8Lo)(L;M#)RQBEhaQ~Id$D0XEl7$+^3I)Wpcs2&s) z8H=8=r?MdJ!|exct8Iaja6OfSgzi~mRimX~JlVuQuyjxaCn7+=$c@NA@&Ohp>N5~N zOxyz77UvjIr{szZrSu0Qm8s#nU;vL8wnpq8hyu1a z8GxT{BT)~I8DbLs+aAiw<xC z$(}bGyo21vJU9U@;AyX`dWIA1Xno zn1~<_0G4q?QF{MD9%>dfiKcEOJPaq;(VoKf#|5LJSs`~y;&mbvOj3(ehlEBkve2$|^m4NE*K_|ctKyM%i^a?SE;sbQ&E)2wgbCE)k z_#RG3WN{H=843sXpaXxEFcXo5;svNgc8GJ4^r2jBOhRR03hMdBahL6_WtVKNOonuDKdZPM|5-%!7O4F9R~DZLR;uDAi}>ff{j5m zwf#yOQ_wtUwGwERh#6}#k_GkHKIpR?mSvq$rqQO7}G8SM7#F5fbk~o12fhBV0E}io=L)89Ae5Cxor0Os|VAineaNCx=}C^+pE#*G=#fm@64v2$myf zl;Lm#l2m&Fph*x=BL`9O_75&`!U!XvZu)05Qj~dkkD>BF&&Dl7f5z~_C@k%{`Gsc3yf~o-ZYZh_1NiR_(gAiC(vT>!BKlcG4O$Q21;Kx@0{FlM${+5t z5k-NjDq;Z6fsh)C;<4xKfQ&&&5zZ*>6CR+Ef%7703-6j^R}`DQm}Zm=4AKGO$I<~T zgD23saI8=yMR`ac2nl%bt^jwf5yA=*K|!)2`QRvi7-2S)87mn<1DuWwkS%Zo2oA1O zT*hJ~dW+ap#+M>I!@5Dkgy;cCbl_OyJ0Y#maxleU#vbf-T$U((6z2)}lIjp=04qTU zc2A1D1&0e^tn55RNQAQ+C46VW{v+3&i-|=OoX7<;)ncS5e7O`RDYx}-t)+JMO1rOU6B#?IJ985 zNJ0TfGs^nTRovwa@Fw5Ue|kSfJ| zdxAxR{ZJ`%itY@$i*&<8eaFzl*gL@d*gEJmjOmGh1ymvm;L3@hiyTon;a!*D|6iAo z(ge}yg3J*IXePh_kO0g>B*Rg-Cxn*_iyu!Th)JM>krXH%j4t4-uyzsJZ$K1iA^>z) znNbyh9N086dth6k?NGFcPAV}7aI6x(6vY`x742d`OaQ1Yz85Ybiu{Bl7*dN}80C#_ zz_4Hv)Vh%ls9_90jD!|6qKr+6aufou;_V>rXiaYcfzKnx?HO2~cT}Lz815-@0P&DD zWjh00;Mg+2RZ4e&#vr7TyQpq^allcO{V9k)1$9N*+GEk;sw40;BZ(@(Sy4+EuSUuq zJfMLfJR|dBgSe(BTd?KPng;lsz}@y@z>OdekSwbItmoG$34p^o09D}hs9Spuc*i{x z1W`7Y0APze?b(9yYOw?n8TQ1NLn`h~i| z2%qo=Q`KU-163!yWa6g5tmDQaGXYBC-Z`@`te^pe4l2W*q=SMVR|n;Qkp^@GqJX;* zxdEa}bjN~5Il(b%fSBR-q78%yJ}Ez>g>oY9>IpEN8Fvy91UNaSOUNP4MD!jMMkGb% zk7aWwE7o}5SRn(zkuoqopgfTkXg;7DLnV+8F+oM?rHLpu0MOw7v;(FPhp;rjN<*7s zLV&@5h#4vf7({vidqlUm7qsv(wjw$ye1EKbWfmdEbR-UUdxk~)1iTTfhsyW>f6=rCgq(o%@&lI#0@aVoLdgPM3z%$fvC6PLNl9?@lyzX_ zQdItsaI^u8IWE!?CVV$^1R<{h%ghhV1Xv27T(sEaaM4_ zzVp=oO=41zJbZ0sMIqXB1feoxnG#4B%NXSk6aOz996~f0mA%)9Gx*U~M#2^JF!u|-jc}A0{_pIOngce5Re^X;nB*b1AkXWqA zs4O(x3KI^@qXYnDQIq!2ySuZb+Q+*9L8CsR3^BAYMxc(Md?n{8iZiGxs?%O9E(!;R zrW9frgT$j$fo4x#i{p-V0vs{!Ep{1wINsYxu(I(KQ43C;vegtQ4?V0Quz)hVi$GjrF#<5s4i-70Oav9?K_fYUPc-!jbSiZZJVhx6 ztwU*HD5uEsAYF()ppBELBe^RydR}oN&-yhL@l@v0Och<10hj=Sh2}5_hG`>xb?Vxs5*OQ3mj(99m#Sr;V1Z) z1b?w2!2ht=kpXy8I4xLQkrzc2K;MW$W8{QzO^`&iqyk`3bRv)@mS8-7=wy`n-8^;! zjZ$Od{Sx<>=oxwZ;wQGy6!kLUC3r4of4I+4u}M)nl2Mc7J~T~rsCY}rSISj8iB%)D zR8w?1k5Mm)?V+ZQFTd-fB=*6y`7IpZ`_ivk*gS`a%a~mCwTF1hz|t9c>N2U1xBPu^ zrPJ~rO>pLG(M)Ifv#)9Kd{+)hwJnqUu6mUkvBfxDNW=;rW);aMVpAO!5`pI>u(E5> zNoVD0OmLMBK^(<8-=wDrbExoYrkkYFzDnaY(j#}|uVT|O(lO%D6WO|-`an9B3nG%# zQI?dzMKSc*@qUh)09)EHrAUS@dsgb`(6*yYXOy*8{e97)IY-XU7;7D;l%*{hkyvYe zFILIa+@bL;YG1z2#IXnMX|nL4{4D`r$sCQHG{_cn)0#7`|d-7jt`$`%%|xORcwj=l>QUt!D^S92;bssdgZ}s zm*zdxz9sup{tx1>X4{*>A+w*Nf1*9u`%{m$B%6?bAK$XVQ~QTD9J&6)9+t51no&M7 z6?GfFcY(y6s|wk^steDmPGJ=2!b%F>3?TCSxnrjN~*d5$v3w<*h!zSX{OrwzZC z<<;jE=T+sE=hgX}b#dEdcxeZfn|v=mGYR48%}~&`D=+j-nzo}WA~M0{L1wUx7(CAw zv8F3dFd0er%lMW4E5mREGUBqWQf^IGs+LahpxT62_(8o1&z!ajUCk_^42$rv#mA=-9( z{?0eiw@ySSr_Q=!%&^|v%fQRT%gD>j%h1cz%Xo*koiB(xh&PBQi0@bWpAqbB=I6z} z4Zej1lwBMJln3@blXq1rMF*f zL$)7nKiGc0O|@;hExsMFO}wqQ{cziJo9TJ^&-y0q7y2*k{wV!1cv2TuR%@tWHqU#I zem=rAQZeE@vO7XEg1fEry!2;Alh#sgSY23YSWQ?(Si|3p(eCOZ#H~3 zeC}rUW)A${X4A+y)mhcKkFy`=-tCj^r|cWLiMDozw1gxqt9Vv1*R&ZW8z-Av)o}f{ zgS6*t+y1bdY-_J2yriHc&_Lf*-&nRfe|Bb0bXIh(dA50O!i}c2W?Ap3KC@bWw!lrW zwS8IRsOG|W((t+lJd4<84QP~6W2z=Gj;&#zO>xT!sSha#>66j!Rbr~Mt;_^=z>c#l zR-e-re>X74+iIy-=`cqxUNv9MBVOk;8$Vn7*7%p3GE+qt+$~?mHowTW_OS_9RaRx% z9M8T36loH22HYJ4;{C*Zz5Vh1hx>K= zp8MA4f#)RWkIx0py#fkk>}-nGO9f1hO^=Ofs^aIa=b*FDx!Bp*xd;13=Va%G0XbdP z;kv+v<0>}AaD^&`a)mmDQiU3Y3WbKgqQ1($vcB5BlD_J`cYXDJ#eG$M<$ZO1rS&Eo zrsh@0RmU|fl`PdYbIG&f`-A(I0r_3FH)=N~H@Y|0H!5pI5mjC${YH{ixpNJ3-m~6w z$Fs+CEVC?g5BK%=&CZ?AX##SuYPxK0^wx@R>u-y1;Z?Wgw{<^E{uu^U{d=}=E@nC- zW+N(Q+$?70*V5afZt39ZUH7UjxvinCu&qBZGO#G{O<-eSTwrBjc3{W6iL8pOk*v1+ zJMo32`J^wFE)QEBTFsVymQO9+k8qCEjyUQP=gnlFxL33;Xtx-*kStd%yIN}0r3H2c z#st0#%!CKF%|AIP37G40T>~~AkDWI@C_kUSatQ~%{g<|cdqzqaFq9F`$GE7rK3#@+ zzLYTHo0*uKm;qKaccpPDZ6$2=^-Q4t!rM}5R`t21!>ruY9pAIotn@*v<-_vw)`Y;6 z%sF36TRxXfG4q<40e6a)_*UROlp}J_CW%M6)q3z5fjNO0frWSO<}T)L=B}bGHLW?z z;>)ee{GM%r`4Sr4w%y9zhTU4-Pr4sikAJ~5ZG{cKG7maOdR@L$)^3@N4pRXpnCcEpq@U?KYRHqeh3x4$-->=*@`8i|ARmR8&?pRMhe= zZJ*PhU-^D?PJTn#i;Sp_c)MZbQk*+ILL;T7b{26g};MGBu3OJ=oHr3RZMAfeqsOM?EH%Bs^ZG|YWIrf3in1Qy!1AsPivzVUI#CQ*T5^_ z4gZS%ReFDcPq*(Y9`x_6oY|cpU3p)T+yvc_-ss;5-gt*s+$Q(w{G%CF_-sHtK1KXd zhL9 z^v-n74Ec!y>gJ`nU)H$ALulm_ZPmR?fnOBtIp;Z?N#fFi6O{+-9pZ%Hv$Re`lIpbV zi6WcUn{u0B4(UD!;pL7gZpi^!veFN6^cm`7aSW#FttmnS^y2E%mEuO~%R{s@bWhlw zw-Td-Ct!&(4n4x?j>T*jT@e9cP6p$IssXW0qfL=bUxzNAXrFSQ4B?L*%h|5h4%Y5t zB2Ekobbbj3i3|x0iMa{z+(fGctHhOr&Vi!=rh)tcn}M|fIfuUYsE$DkmsR&wXMPcC zhTjaNw50T;bfgSA3FQOq1Em8Z4xOjjryZv+-+u_64ju_!4ju@e51t5K4@L)n2_6n! z3jQ2C7d#%k7W^@ICU`V>C3w)nwa2|yWLa^-K z=d|-Q`aSw`deJ59xrc}ZgB`;L?FRh@-3Egqts=cuLSaJPz~q47fW)S`L-%R!`;V7v zmme=@E=Mm{7G3{39E#k2F0m6fH5Lt+5z?Cx@thI?rS`ci47{cb@Kig*zGl!uzH9i@P~zX;p4nZouPdn^>~ARnB0}U~b(w#TdnS+L(ls z)i1~9{H1k%VSQoQ?25M)IZWe^cfRk??d0q{*;#UOZjN7?J9G+^)EQ@X(r?aMS~+yM z5WmjZ&Au52?I`)ZkzQncMj{@Y^KqPPN3(fMZb5ERZiDf;tvx(RLQrgUT-fPTtx%~` zIi2XHQ^pfd&awASi8*5KK(4WG>O77#iXrg{7O?eCoUvClg9o3zWJLG;J_E)*{mEtIqqvJ`3mk z?*#4q-XYyd-l6`*Z3_}{rzuUn@dLU74{LjT16iTslYdiyWCdklU$QejbD z{-o=<#k=QE+O{o1pCr}}%&(hKxU;z1xhuNE53mlD4p*nY2=U>fhnK9JV1vCNn%R9rO!h)&RxNfF4$&Bm3 z|A6Q~_kjPvqo#T8^S)a^bC*@Q8EH+$+~~gN`THx&n_9ox+j%VaBJm-5590SRmLF@s z&f~e4nL6dW=R4)dPI>z>Se9LTsQ1@s0W14;wZ0-6Kj18M?t#TUBPx;}Qzbd7ecymcOLr?&WQL0A`B zcU}8v{@Fpq0f_EE`GD=L3O6{q4U@C z(D~STw*z+f#Pj#9^Onwa?F#P|S{0fV+WQ(MEbJ^9>KbbG=A91Q4;T)t4rC8P51U2}9NuFWefc{#VY>l_*%l3Y|>xCUx;r-gTg$ArHN&kS!{ zTl(=VsI_}(?Z~J*c5UXz^WSaPi{VER7t(?7&`9|yW=GPtSYR2kqo)_J(3kSl0?m`H zlg*Ru8cQ^brALHEzM%S;{`II7$dl$#3-wTo+i} z^jN5G9$cX~j6ZsH!EsF<+9dzEz)induvM^Gu)Si%e9?T_d`a}M<|yYv9Plyxp>5&$ z@`HWredxX~eZ%m+rM}O7bA96l?i*ekPd8jQo^NGAJ-{=SccCSVi(6TTCHGO{*#^^YYhx{deGU?DQSdFzi^DjH@cr3b$s z6Txt0ka_5dd(M@jV{|_fVCpi@CpsryO#GSP-o=JHxA+ws|48t;|2Uc=fHyyzBB(mg zjq7VdfLmUf@j+Q$OPY^>Z`0$6VOfZC-lj~zM6h#|-+R$7Ia}7>bOYZ>8RxrBlutaL z*q-p;CD_&8<#mqnYZaa89O#_S*&Yk5_uG+Lkd>5@l#!H{lx>%4muZ*w%U{Wt&6CaV z&g;&HznBPfM))N+PjxPIPCnV<5Bw3t3}g0Z_GJ#tl+wx9$kWJI5zB3e+j{27m!@T8 zYiX#-!ACYvo%)5Fv>C7Yy{5uEA465*x!&g)*z6o}!^FF_f`Bg;oQ0YdnlC21)C$sn zlRr5le{n{hbEaL!+g;A9QI`73Br%JI=a^~qH@q&<G8tb3ykA(Qgra)!I>q?e>f7>qtJ_En|1b-(W!U*Uwv9s z*>X$X7k|`YmnOGl`@=ln=AV`jm! zl0Ly#mY+sS>6UVJHQ0wOq?vI0y4y|t1*N=3<96e<9QsL-<$NwQR}jwho2pW z)h1ow{HS*K&PCqvVgMV|@w z%9l0!=))f|{TZ3s8%k){t#wSs`Z0KBkgNH%fYQejWXbJWsLNrsF*zxy&)GxAnrFc@ zY`Wn0u4k7nK$~6u$A)D0d1(9i4`W|od6G|h##@05ydOO~?zMk4T3w?_(-9BW7MOzp zi>C8txi@-s#{6qw^v)bgoXl|8dxeg)c%7(5v~N+CD(`Vq z`MaoS@)G}h`mSF5iku=MIaQ^45cOuRd7`;A1>328%HLu`>mY#+B(CZFpgHgQNj{vN zs&ht$HE#M^|K-^|UE6hQs>y+8%C*!7IsPWEcY9*nUAA^S#xPM^lR%&lIb_%j0q{Ei7k@fPsvKs#XD}&xs~;*2%~z9 zW~zcqUfZx+rQ@-@vpP+8)K5bl$vcK~y&G_>Nb37ebzir^MR&NTV6}v5oU*3|cs<>Q zBfK1=3_LN!+qu>3`&*)N-;&*O+RrC<-K--0GRB-%+;s!?@mD8VNbrO3ANS)p+0QtY zvP#}%yb88p$9Wr=6u*EQ;t!fbIE@EjmId*VXnr}JUa4LePL$x^m4Z=zEiLTDLweDBO}ik@_1SSzu{fm0mmRG9o{|fLkkkc#EX_>#~@Nwq#@Z$Z=Sx?{H}ErKR=PHWAw1 z1D_l~S}E9Sa-N20boXEijZR4Yn_WBr9+F7zqS6CcT229>_yLoPm%&_rh#@f%s$ z8paJ8#uKf4!RWEo_4ZauZofCXX{cwlP<v5DxXY)VBG)9JTT> zS1b5l;D8#fZ+C5@_J-z`+ajFzwYt#NNfSj?t>fntXj`L&1Ey}>%A-m1k=Q0(4$dg) zfp(jynzP7-tjUwCg?VE01*-Fac;3UEU`*nvrH?Tl-^nzCn#HWnpleH43|*^#=DQdM zEu)1?U71O+u6~E{`yMJb`K4xSvXBBy{)-^6jW&tmP}$2XNi4lGRX%v*NU!m0s0nZW zNnj+sw(^_v3q+6Vv^Y0k>g1PC- z%?Z(DeqG{_T)GyM%x(}d%oq}F=4BW*5v6c%)9!k=^}Z$kb%>MaqiFLc4;`M$IFD-{ z+i=Gf{ZoPrPsMU|fl5xewUHhNRmvFZc$~I4EpNdm}lV zKq%XhZ{y0*VYJb0B-?GoWK)$|Z=z#f@06cj<=9MTKGyEhw(WOhk&yeImdoLbggDil ze;((b5qTc7A8@TUU;U^(bD>V|#4J~E|7l{OYRJMeWS?duzr6_ov>* zq!a7L*-cnIo`)hNi^`%eYhwX1ZuFOT>#zE-R$UY#-I->B|7+dEYlC1n(fgDI{vtvz z^~D?>yA3eHohs73VRp~?c~!phG?J5-RH_-6eGuel%gEGx^k_)F=c^yulxwXP4@}xn z>g?l90Onw^Xv$(4KVpqGpJ~SS=4G)!n41*lAPR}qoQBtnbgP(*sa_RLy|i{y;bkS` zMTgo^WgedEoOq;slZ=|hHKKTF$+~anZqjAeA7gX_k6IoM_$6rD75IHx)jVn8w~IZ# z_Y|YAyJjMp8=+?rknN<1oVT)KPYv1P(-I`6* z_~)kXg5?D;z1~M6;sN4CCX(4|MyvAayFcD51tmY|GD<;bzM-MW zRT4AeXE(NE#c03xQ63|H6rDO++Lt}L*@rW_d1_GIvV|viNH@0m%>1Rs8qC$p=fZ0* z_{ryUMz8nIK_Z^v{SC9P%VN|PufBUI#$5+hbV+1$boDA91xUU!s*o&0N#xBdA$~CH z_%p!yjm#W^vbqMt{D{pZ+bfoLF0x%e2CS+6+PYYj>y)>PS(QVZ71QM2BT7`_(aXB_ zt@Qp``>~{Q>)z{%!)FxTTRcV@2Njo1yFXG(&SwIH!Y-8rQm>pkSzhTli3sK(HbT!& z^@drpjbgN_${Z^z%Nldu?9-)Y(kB^b5Hi1m$AI+=RrFEyIFPqP;gD zxZC#M>Qi}aCm-Yyg~8|s&&ho{vP?Xrds&=NPCCN}nz(Y`gk%nH#mpF8_u|ZZkL5#y zmbvw5X)IDj*>gUOuNYO93&rCYZ*1ZR+a}m)%5}U6o}%%o676`o|D{+vLR+3~O;t+n=^KsJ5csgy8-d}f;>v7|mzDcDef1*_eJ%7!&|Ph8 zcd3Fm6XYW9+`PMNpXLo_C(-5>t{m*=kqyluDJq71e?IUgcbun|n-TETJ|Yn&!Ol1R zRMst5+eQ!zPx<_|W|t5*-oO?tE0uQ8fH;!W)r_Vh`S+PX5M{*GgI2S`Mr5C;w0mrP6rm&e-*;1COsZ zL`!&>|FJ(`^b?+yKK{|oCXrE_+i4~EwDXgMs;03E$P?;-@X||yRSfxR$O1;2=IeYv zfh3K^v$zHA_Bj59E5nGvp^}FseO{wSmbXfnw{?w+9$e{G8(TSeH}jIw@JU`^Y6#I^ zlXvU14N?7Y#7zF+NW$hvd}9G!&z^Qk4NV%A*(4cvO|gsAnlZkrp>)1`ba5p-Zz2F~ zVDh+ur&>v`mtJViG%4DsGmIuFHrZapR!V>+h4P^G4K3fdN08ake(vj#PCsHn%8cpK zuefp4c5ty(@Rx7QaWSE+maAZuX5vTNXE4%7@u6`C?Y_E?pVPl)Of#;^WLPXtzi498 z=1Dm+ATSP6{bC?9qBg)s>-#e!? z$EXrNSqF1$e_$UbUOTw`%Q^0KyGlLg;qc^N!t;FL%yCX@x#$cc>SHa}(}FXaV=ee; zLAu%Du>I%%_vg&~a2S)pLl@%w4ZEf>I66FMuK9tdIOFf+Ov-r}Tuw@5uU2m7RZW53 zxv5v*v-^wSOXJ@bsh4cRagz;z1;PYFG|)ToeC&|0mL%6<4ACsZ^HWoXuBn`|D#-Wi`qyt> z_E4UJPY1aOMK)7bvT9|OdX@Xuv1+`$IS9qQCF{yLxvvY7s<#-+Fi7^JPCWicucxC# zABZmo;bd*Qe~1vvAbq6bI{gTG)yVSuI9usKW@%?hWnKZEDUTuCq(ZF&qvkVQpvD7y zY%4YVbE@o?6H)uK4zlMXlvDL>vTVFPC_%l5+XOpz+IRB7nz8a_t%e-%7S@|U1 zQhc@YvnMa{Hxn1iin6D91c{sJtHfVz@q$zgS%h3=8jV#1E9qDU^|YbQ)r^}TB4 zO6*75Ix{LRX7)ef0romPe`+0ZBlJfu#@{G%uPwAZN*`VJH3@Vq$NhcoNv0P~{_*B3 z{#qa1PiX5YmA4?Tnm0X}Z;*X_I{o_qfrE9Ubj6A2tE1eK*|$^DKk04@x;bJ-h1(j7 zte!mTX3DYW6HdcS7A5p=KTwFDVE-Bp@jeh}e4To7#gp@w0KOMk;7#eggWK78-n4mq za%(2O;2m|Yt=U5c{~@rRTJ>z?c5zbYlhnkv`}8SCjc%LSnNFL;BtwC~JwELCRu-%H zSA4%5{(kd)@7DFH^z-ZT(yiBXpF8;Mn5&B5kyd0iNx+YWm&W{@MYeBMSj~HOGYOC0 zZ>xlQbpG=dOkjqmyzcBik8b+o?P0TB$(1`XvU{B?JDd6Ur#flDH|sG133K_Ho>VwI za_gIC?yHWHC3#WKCAuYQ{9(0qyZtNS6syJ*hV{XWHlL5(9og(HJ={zkQ^CM2aur>QAs|4~}8CU>$Ucip{_a)Wd|wy@f; z>R=op(Jj(yK}GC)b@9%hW3(p{8;6nqA4}gI&({0C|8BKZZAz$ByGE0uHc`}Gt!hyt zwOg%`3SyqBE%sKcG^h@$+FC)4P@B-&E3r~FVl+YU%jf(0{gHpp>zwE08TWne`?~Ju zxqP;dW8X1*UpP_{MFJo3sg6s!7sGS+w>Tn5X$x{4HQY$%7&Zi;SH;zJzxA58Igf5= z=EbM}U)ZOM*PI2DDTJ9+8^}1MTE7#m zDtk@ohxssIO&LXio4&~O1_2J0{P>?wd+&;887gGO9yr2pEnkl|k-oxx-ze7A%6dR{ zfcY@0KXZ-yPI)jk*(B;W3t-fq+!v)vO}{uXQ+P?Cl%p*g7>T z+tJuO2!(wTq~i6}Ue2(&dGzg^sLu4K8lz_YjIZ{v%s_(GFEloqf4Cccg@-iu!YbqA z`=$(`)xKA}$?-}e_4*#AEGqR+dInkM862MWZpZ$n`WU=sd==9u`|0!C2Q~7Yq#;Kwar#_es@~XyI`Rkb~sbC)Zqd?E9 zzdrKs>{qgRRMWV0u|T$FbaqFSc9({H7udNO z%{AH$TOZTME@#RuWfwbFQ}bS|tc@eTS3-+7t5V4{d3LhP65lAoA{y>&eQdC}Ym!y` zthDk`^mg&sO>mOe!X*c}+%R#84$g&mrhb+8;bMLyX54J&Bc%>|InhT|qLaKeX=H56 zgs&HEztQOB-|V;c6_UI2Ds=Q#-@xXV!h6gf*ZoD#Bvf$SSW^)IiVWDfOSg?)=&9Nk z0zVUge!fd4cX&bc+BXSmc&bok>6zZn7O&bmq_wOtPO+j6`X1efC7QgGOXL1bq^?Fx5 z+Ffb*|M?%p=6#;*uYv6Mt9=0>U&M)xjxjq*>Y7fvrN+iOLreYkFlMY zdN_QU5}D6LMZ^i99+2LIYtY7;mPJIOJgpvx>ZV(ZTFKnGPWxT`Yzh)5F?Fz?pzD4224Q8C#t0 zk{OX`xpS#yy7Fe}!=$y`ZNLy;%By{M`ZM#k&5``s?eQBKpO|~_OYef7$F^jO?pR@| z;^C8b2dq!;NC3EE~U;Z0&ci?? zHoc*~$k3<9pW=V2E_tFZ)yA@$UIH$rH^(a}v*hdDlAjCUa^YNv*WlUT{h7#^;a4VT@rSBjJn%xC_%h<01N@l&$ygqBPTC6uSxG9EIO-mP0bA<7Gz zr5-*G>B41gxqW`$yI~DHoiUo0;^fzx{de+w3|l|>Y0;o=pXHu{-ETyj?k&-UW_HQU z#k>{aMU}RC`)ft{8L7LMFBwvA%`5%Au~6@I-c((I&$ivT_XqzKD+dD+>HOKDO4;ap zvUXItU>`I`2qaYgd%SdpU37QH1)ft*kdds2V+=~hSzjMRJ6$0JFf(HOa9vkd8fQs4 z|5x+~+n&+&121BH&9Am7^!sBb*&C4qxX<1A%IL4rwvI_>F){UKp0G`U-!2rCw2kv* z5X;EIesWy+%6}*3t`5Z<(@FbR`9orEtlBd~F+F}77xrhW#Jx~n|ovJyN{)hIrXZrISy4(_;WX>s~W0=7vi z7qVMh5@lO3m!4PMQDMP+dWpW|+VPVT>z6DRxl8bsyuiTahC{uX<9bBkAsfu(9+DMYjjj%LPga7XVR@a^b z{WBvOJrUh?wR)W0?n@*wT;?TF`3}yP8qWDNRXol6{GcTJbGL7?Q}Ywgxs2=6@9-Pf zrZ2xvdnm@J^u?s}?=@dvm=gQ5^W_FPPsNjC8E^f)h|Bd@|IT0h7VYr7F@7$`rM<%T z6RD&z!-Ak4CJ|!*~x}+(rkOmnggjbx@vmu^UpttvaR(GpUCMx=J;b$`&E=E zqifB0h1<>|{o56oQMz^3ZQb+(E|KC3ea6=ce!e!omiN=k7`T@GQ$0aEBl-#_Oep;; zN0V6@`2)Mr`2g`WgY%B!?D}r{(Nok@#;+X4yy?~)cAShGA{o4#R=VPRcYfc_6U_QE z_bu`Y=lZoTmqewnMN&nc2}kaTd=QFU7TFMVnb70ZayS+ITutG$wFzVTxB;+yysIB( z+%=(hUcSplw?hFi(qa*pdpUkzTNh_oyT!q&mB`H|5_I8_;WflhnK%gC=qMKAbD=L5 z^33RUtoW1Yab^*Bih8WLO9SSnh}$LZ&fJ^gCmkS2*vc#4O~yf89=Q&$7`X=x`17b- z!ARSs#F)5^8chd)xJ3Vq4K{jdIq7zPS~RmA_L3=YYlH}Z0=2#n>F0^`5Mknpd?aGZ z-DX|2Vi{ zX||Jf!P4OIRp1pn`}u>H-a+~^CEZTJr1&-ZPueHkZZP$K*AD-8Ekxw}d&JHBsMFZa z57$3PeUPk?s1g4lmaUh^!&$EJ<(_58o3^Fys8S&DB&F^@Xlag-mGQVe(;Z^BSC;n& zgTo3Lrc9@wE}zG$YX9$j>J*zihK0vqxz~AOe>pL-k3qNV56b2%giey96sGoV|7i@J zr>q~#91D7$b8%{}^YHvM#9vge_UwhPuuNZIDdseogyYY@r>kdsPa$!7@Tj+k#q^r5+c-~}J zmLymao}9pFrt7$imLO4?iX+VKxxC02$;eCVdLX|2B|4&O<`?i^h)u7OSm3ADM_uT$ zXsOHMdE#l0U;XFkF*<}65tNP05swxx6=h^JUN_X$c{Votjlrpw|nV@YveaYdJV>*>R zBIB=W;H6BK6!v&=L3G&7t+C1k>3|glI6xISChp@`~qTqv>$r5 z{CD6|klwYBxqO^1KAF3`n;fJfzZCmkx!8?BREo3}lUB+w<9c!{P7dPzDQd1)PgXl8Oock}9wjI}S zm(SR2+K(PSk=-{=2#tl#Vmu4TPh2gPx9z%x+|A6LtuB+exxF4=8hyDsh~=*M$PRm4 zN`E5D1~i*aZ|)v&pXTy7xB?=Pzwvf*XYd?WcH`gfG*chMY95t);oGE zx305{(CL0!vP!NQyBnq40Qo&~g31F~lKxsnL`WCkPxMUR-7_NjV_MNOT$m@|&7V!I za~~gH#0jl(vP}e0%^5q~gD~4%&aBvp&#P3}>kBBNa9X zcd(Ie%gI$1i4$$}BF;j00`zJ3PNYZsa_riRAFlpTx!4Mn)J1OdQRaEa;~k{G_0v`*?RNo_5lazneUd5YWj9Q$j0%^WEh)#0^o(sE&0aRril zgkaUIIM1D(+d_XdXW@)YD!V%uh31Dl)ievcJ57WFxg(rvn2_PVc+%TDg)p0yF257Y z>t6N0a-#_|`XQrm#lwJ{ofoYun{|#!bX&e1osod%b8P33{-$bNJ-MOE`Ro~{l}`xT zIUJhRQ?Peh^rJHrwHqFH3@o3FNA<+*`H8Uwk@h*EtlclprprisVr^Ron$I1q7ixkv zSRh_Ka>HlJ5%bJK!o8i<)Q}L;ekL*xM5uhX@OtOPcleo>X5r5b;95;kP%#i&-%rql z0$IXAoTdHG)rjd#l&^OpDs!B~-oW%r+mPhngN; zCX#oK1ltKSsJ;bk&4!~;#9*g9X1?ai+}cUvp8&35UnTPP@>;<4YPRj+N($VNM2VzQ zy!8*e4-cidSKg-0*M^-LffvT?FK`0c`w99Aa~P#SvEhHG9P)6@&?iadlTHK2aoBy> zg|RcRiMG&fv*86)Ye{CfW^>Z%0za;+&d^HYHMn_4?`-DgF}dQ_#XVNOht_QWV0DK& z?$LiuLxRt$c{h5TY_kqNMr~gkR$+&TjX#JD5m`7#?9){+5Znj!azeAb5(Bw3_ryk_K=O-?zyOI z2sLh7o@hn+zP!rUE4eNu(D$SOs0DuhnOJsH(9G{#dUB}Cd}DIrjD|MI5_8@Q!IzYpf0NAAQ!lqFATvC4@;%Bs`;XCf(+;dEiq&x!2XekFI+z~ zcyrDDw&|aow>J!L;9`Z=Snl{nli!@ZbR6#_g}8hs4}WUm82f~{>A`!?=V_CIvZ@ug z82yIeBm1M05B=*Dp_d;l5yB;@ES9+vGOp$O2fsu+1d9KS$t%PEy(y-9GJkpZU$@Z% zIgPxCoAjS%jjpnVWx3{EcY6Xr?XLDNGfmk_pA8R&{?g|BbjtyQy#zAg8WPO^xyqC- ze!MpSwR`8lvhvyGd?)ICP2Qs?MqhOo1hkckHe*6rBodqQ-R>lYTcE#CV1;iV+LJtD8#3(xp84=*m1b?^ zsr#~ONY=y}!qGRqIDoM&<|=6IuE7R4St2Po1k(U2$SkdOC{>okE2rOQB>lnqT1O3A zh#nvc`K$JQ?3L$Zd%P5*#18)`sAsa2H}gj5k;LxsvsCyC_a_fJC!=`;Zfl1|;plr@ zlxBaa#2i-ezu0s{(2mFZr2~D>94>d*cj?()WXyD;ZQxx8=+`w>L?}2ffY>v|zH#rT zxV-5yHbC~y?BmX{c5lNTD|Y^3A*eI&yf+u=&UkZ7i=M@P$YqH4*9R2L^N|QJ{`;jnxO=zGOx?B zJh)T-O5%fy=G}2(iG!t$3d(z1;B!GQ z?8MW1u4pl*xIMp%wMCpS9@|IG#?BYYt*Q;$nL7w=7Vy5~zD$?=Jt;qE2~SwB*~)udO!%$gc~3$E7ee`8WrOK5YCN zCC?KZGhNS7gqrF~+WPk7xnGu&gYePdfZcY2(OK^W;S2HPauGpjgW=8Jn8r|B;3)ev zv2c~;&T6U~r?;2C_g#~MC+hsq2;P5!>y#dSH~$h|@XvetTe0+qI`tVHqY+;`7tC8I8@LP`4~|YN!y?eBoZn zK3vbnGH6nkxK>8CO`$~0o;A@5wZ4i7i%Ep?p2O;W0p{hu<(m)zkQukgPn)pH*wx>`sgpS z_cxnXf!%D!<}W7&^eKC1-&nK*gL=4y$L>a~tW+W1YZeSk^^MJk;I*%pT)vRdxA-GA z1!eH!MPRd5HG|_cYZn0%x$$ON%5vU2#6bOVJ@Li4<+gV{H@E$FPTQLYAsLgd;nXw1 zXu7Pj_B}|%GP0KnnVt<16_GVmIlI<+v_MM=0U6cCV81Yu8dlq6@62~q;oBkL%SuVz z^X{!C0n45sUl0dR{XISJhez7SE~4C{eYTkQ>hj+u?Fvjh!F{W{F>s$b3Zq<$JsBsY z6?(8WR==Qj!oVzW3;A=zxzjL7PJ@iuJ0l|(Pf8+A+!p8oTiR{~;MA9nTC%?fgaC>s z+e-Itt!}s;QJmv*S`v;(CGzO9a)3UsUrwHmQO&Km)MuJcKC>*TwQaK8e{V$lN_}oyZ;6KJENg z;!DX)`0{vJGZ#=wFq`;i1_ZI8t_Qf`! z?^2~;x9@z!BDJT_s$ulqXYycs!1?}Sc zd=FXx3U^k_(l<_DmC1(^mkyf`ZJ)@)C^~RTEPH!cyBeg?|||A zY*n=|Z7nS%*r7anywg(p9H47q)Ou?2YZR+(WSi6O+_|rb+~MbR*G%jwDzny}izzVb z<0-gIc(wEwqV;kkcEkJG4=1ax20Xp$NLA1M9U)>;E}p}u^T6g1^%9?+0>AEWef{5%E$1SRuYf1CvX4Z z1JyJZxtamPJ)rnMZqX29dTv^N!V0$&*>l(e=Br;curg#L45RaXiaHzbOuK6}B-@g|z@CKOEuph0+X*e6fiZCI; zKxyR?nMut85eKU(W%Eycqd{8iJmNiAOf;NS?xwS~?hPQd41SJu!|74>-wv>~FhHCJ z!ZWtoA*VgHZw&oRxczlO+YTLSmSh5LL>jMj+|TKS#k%tQX~S{HJ6T>S7w2MB9u|~{ zQBBT=3eVAbFKqyTJcgJ7h8aJytcTB&AD<(t{ygrC}f`7SW&8f@kbYJA~-D8 z8n@xMRQEA+s|Qm2Yi}&p^pCAJ;TJ`M_=fzr+kZCIO^d>5yzzyPHKI89Evk|>(Uc3) zXw-JPLJ03BWQV3~wJkP?fP;x|P}*reO%%mi>d$~g&kF~8u}r231@Kxjpg)fSt2^OO z^+6!az$~tS#7->x5OR8aHD_kHmEe(K4gy3jB1qSzOHrX$kt~jXCC)WXTE0S%mJj}d z<`P!K%|P`n?O{0Vf>BbnZXxW>iJM|rku6aKb9m!>+!of^*Z=Q27?UuL!)_-3rFWb) z6-B^1Gz!_iSj_6|HUYu(orOVDkfw%2T4#6ukh8qdYp&6VQ7r0p!&Zbxu!H^!Vn9QF z)~G${D@$SSKC{60^ibBhgiz(z!^zvS*^>hT@?Z<v&G*C?|HW=~%2Be4IBS&;MRXnavF|7{N{?5NxUi_rJnfM^2D= zly&?7P=katsiuyPVo%VK;D2ckn^gZjTU}B4&Nq=E5ORr}Zq=kp;QyWg{+;R7MB!${ zVduo}fR2sxw&ML*x$Fl#c*TeaQiE?Jc-3Z_Xor`K9v`ic35Ul3gUcAUc$D$7~Up? z!|8j`C`NhOEC`uiCb~$|Y=MrgHX`J5tFGuiyNA#!1&5VJr-E0>U)q3aW^L8J!m-Xt zipGL4`YnO&dkI+GI37H|(9>uR5*E`!z#;d5DQ3uV=EN8lNDz+$LvJUpu!)$-%Y){13qYJ_RPWuCKzkrVgUF$Bd6Yu|yC|J_W(69M1Yz)1 zAHCHHGI|M~f6ZI@XC2Q^vq^g+4aeDxE0s;_o5&Y03U^OCskVf19V?4e=OcOA7q~TC zV1wo;GJ%_pm>)cqG@BG4mZRu4;eET1y(F7V(I(p$=Sxv+>0V9iL7yX;zo*{?Y1EdG&w4w#kw0?zh(pvI2;&yb<^KuV1Q&qDF7{e0c^`}?}aa~o`O-Lp9 zDE54YDM&c&%p6oAibcScNMqQGdclw;3UHZbe&h;ll`?Ivn~3;4XLz5Wr;X1?exb_C zM7*14A^cPD&RdR;B_y6%Z3T;8W3H6`D){?+@G4sI3;{oQI>7HprO5r0pZ7t&bQ{5H z46TL}BOFXM5paUqfRtkryS5{9GG5@#2Y-Z+ZFyP zMKR5NluB@oE=fm($U;?9Tn!;T^*zM!=UstTeaK(ja4%n^|}>RL@4>=8*qxRbLE|gz8zPE``_nzjjJhB?YEP6P)1cYmAOz3F9Mr z4bPgOzGI1m@ppUx{Czel%;A>au%(2Lq}wmSOM;F?z^Ss0){wbHh_J_wJ`JWRHa&m~=-?mPId1}8eq zr;^wsbYBzkjeB`2O?mod2+~!~x1qHz#ZGM$#@^5HLHuXnaJFXM<;l6V{~W2W$49W) zY&74DwK4i27gfSuFz18Z>QK$r1=Yo)z)pIz2nelAi|A;(?HRg`mu#EwaVp%oxkg8b zp|GTT=3V+OhkxWcdvs~dO`@lGtH)8?V7seXc%`uN*pI1Kb-sFd5(PE3x z5vTGRL4YBmIXbjLF4Z;XMd7+o`uNy0QltBG1fHT?Y`Su*1OJUJ^$#6ad2=$vM`~?vrX2}in z3t*z@9FBJg1H zqxm4Z4|-0LixbHi5lzCvAIAC_b__F=UWRwA6%$lPqw-ELQ1YzpKIZT+=0kbiz*TA- zaBHju;@5(C>;$1m6WuglNnmY!&|maTC&^)ukT4sbdobWy7*`^&)xuClo99 zEi_L9wnPvN9vLPfLi2im)^%ogo8}h+!%kVMJ-hW9vfpLeLa$VMq+5q9n$NG@2*+S3 zKkbjc$zvA1x1{6<-OUTX3E32GlDtrR4}ZR12zvqlfr1N8qtG--V`n^Q9|@?_L@2vu zcP4|T$eDKZQW?xm!V~N&TG3kQwBkddo^;AO)Is;p`ZtQuQ}hSP)dU1?&yT0J;)}&c zDR78Uw~F892)}&r+lYUDi(ytBNOo;0ZbZ*9{11+N5U|<3W|aJqq2{@V4>6cxQs-o; zcxu$dYa{H3fsPz+{RoQp25wHs2_2Un9>(7{k|8+FTD)-Qqq=e(TLeWnYNwer32Tcb zBNhxDa?z;bJ$ZjUTIZ^ENRt0<2wO=jrE zGC+T=d0pay5)L!r46QmHyN@*6vehb89zXj)^9bwy{_~#;_G@YKpxaDCjis~Na2Wsb zbwL_y0v)lJU$S4#_i2BB0|Rmtz+{ul>}S+GzxzWg;WeGuF5?>AP=@2%L3pJuLo!~$ zN}mm%D{kc5siV>O&pmixs;VCLQS@FnUBhny-yhn6Sm~ad)o@Hz=3e3!_Sl%iG0cO_ z-?XMPKXeKd!UfEev}mA1`v)@Iw{*=lP1T~7zxbGrEZ@Ymu#LBipHK2W4n8dnTDqZ) zt)iy|9RdDAxQ&}n&TLMYMywr%U`kh zB<)P@V`D8swVtN7u)_8X66gFc9S#AjJ%_eA|K=EqD^ zg#nOG^QNG-i2%`^x=tEkBhFn@lD@-rIPqFexKjyE z>Q?WxLAV^?S%;nziOA}obvo2t8%Ph%;oTl{cuNbSz>Ve$$ol2#7q=o-d2;NmQ zaZTuLeS31QAb(9CFL}|v2m3*0iarbrRKS|)Z~Q}sJ1uz!o;(tE3J=4)UkVRj*U+hv zQoiZLUAgYwMbRO37pmUOx#~L*byc87lKJ;cN$Piz5I(6u7L>~Bjo8Y%l`nu(updA-RX214l-q=rL7}SIHc|lB@H9|^T+THw22Ntdtk9p zjYmoKgmA~$&`3W;9;)YCKnEMVncF@wJif=?%|C=AILWCOxcYsc^ZTPldLKtVz*nxV z2N>+w)M*%CKNJ`eH<=0bYk$JY4ftP7;Jp?)nXr`adZ4Zd-?j~B?Yc=2ZNVT- zQsyBbXwh33e;3=J5Vj67dc4vdklXzsEB!f}Q@9=G#i$kq=N@v%UL4?#>GPP4S#uH` zmPZqwX5t?dBW9NpY=lCXe`O&b7zGiuCj2)?!d1V;fp{2fI!h@KP47uS|Yf}f@$5)qL zXTYfx`=L!l3RB3;R8Tioe`X(v2*r3&Qi30ACh7hA40C{hG2y-#l4BLGwp31e*eV|X z1OvCM?oesmTnO*Q1({1uUtJ z2xntWk=I5@MLhkdOg%_*G7wC$ssHz-h*p?!+K%bn4gbq!tet$)p>Z~@wG)JC+JddV za>wLd&3%lJ^06Gzf~e`3t4r!+`}>5B_?q6m_@(Hbh0$G|>Jul!S52~7k;loi{+!kX zB4hXW1Ym(vjc0RRO-x6rw{@|_a~&=WHA{NNbEecY$H(|yPA@fR$<$No-Mi;&YK(n> zKCirPIBUQ&W!qH^IH<0-&XP~8>@eE$r$h8jgW!-s@TrBH(D+3;AhJ=nXZ0P)Ek#66xCt-)tRn-pEYC;D>)NWCyCxycAm%e`jGQFgV=6v-Q*5bXq0|iO7as3FuKoQNAG>=YdoWbr4?lZ>uvX|aP}tL|xYey< z3~*>AwGAq!&QULXL$n5)k*=k0N4*!-VR<(~u+Uui>r?0z2%!n{3a8kc;mCNwND^JYl(L}-xp$NYT0tO-7$La z^ZmQWc9K^Z`}&ZV2BIFn~yh){8|z!8NCbrsexQrtd8)LfnQ`WGnBU=joxawwnJ z?xc7UF~486rF(=hTZTY&4o1QoqQ*zwB3;u6=4AX!(8_DKh#fl71$i;#zW#|5P@Ky- zj>$!&J|6B5vFI8+VC)Y6!o3F@b^I8i4}lc7sq17H_bRF>7dQ@tKY&1nLVs!2!w;V^ zc9Tc`^Fa=33hx-!1rZXS1z5J54s3Os)S=)Tc^f@>Tw%|PB5M9SZLxrirOwl9#o?tq zeA@{slJ7p&sS5ARB_Dk=r*s|zjNShCK&O+1kEvlF`62UNCy6WmJ8kA64l!KTPE18` z__Rm0bcj6bN#b5waV!b8aq?|(`VwKll8$w@UBU3f^C)Cv*y-&xWM$%i@st=c+DpS8~Y z-CCWc31WX>^AjwVD1kG2jkaIluCQ?#(>ZxG%1uD-Jt9%{jv|UeCqLg66jnT6Ab_NoFowY%RQ+G@%`&99@KuPAqfR5`+dI?LUs^AH^R<$+x{yQKLuD3fLt(I_X}P}6?^wUQxw5w7$E8zr$W9V< zyKY4TrQf3XqYSfu(}MSj{AqOsgH8FmP}c(~J8Sv=3nWbDL4yhK?VXOE-1{Vwb)n`R z-zbJ~50Fis*2|jwmUF1MKZhI(0`KcTailW;>fgs3KW(bSyL$u?9G`|P^piGkolJXZ z`sQJ&8k;=a*B(4CIJkm(jYt%NU~>nBIxUNM2+)PZe;gsRkrM?i>?JCp>}<&++rLl~ z$>TGy_+idNR;xIm+33c`->%xqKNC&x+fDjPip8%y(Hr5tKX`E3!#>FQr&QmZURqjw zCxt1(vg}38j~>hVci<2fi-E^l`?`fir4x23_6ae=MZ8WC75ZxHjTE)?;kTDgBPtr( zJZlHhs121w-@;F!muh~F9~Y$7DIDxV!zKiLJ1qPisK)}pP)qaXdtsX-yr%6?WAf6y z5I&N8u736xv;Vx;;F}}ZN+Ycnp1Ps>ckGUu@UQycauj?i`%nD& zX0)lgEqc-laI2oW%;yfrYYL>j4ZXZ2qJ>dTd?i5D>$iD};d!LEp9xmoODbx0ucP-ggkt`|aJW?~1YYu&P{0 zw|(~p90I-NRALi>S(ibP@{6O$PUX3f9?xoAPd&ie=>h6lwM!Zv6nL)CjGVgA!s0Wl zu2WMfxCZmSm;WKpGpX4i)!r{@s;;){ugj+?Z06oU<7UUrd$X=$Gzffo9(9_)Y!!N zPfU8=Q<3`GdJG%BJ1zV?wkH4m4l8%Apku*4*KQzc3-)o?2+lvXeCn6w-cvyZ&gwLfdrEvm zrN9{~U4e4S2>j_`Yw&TG%w22Xq{rqW_Vi6$ts{+6a)Hze(4MNPdw0GGNe5JEik`*B zG>Rwh1_{Eo5^&g>gipDiLVra+(L$1HPhg$ZOlr_jtu@coWtYrcn}_aQ;O{cYuw;9z zC7s)*7k@+CDD`pfa!`SD$w$R@pC`?co8KqDp}|u=dHRpmU4*Juon&}8$nt@D!i-~B zlZ=p$bDwjTaaek*fWo<(W`L%0vvV`1ggT`jnE8-~tY1C^ORHa=ifGESI3l_zOE0S3 z9iXLjqo%)qmKeJ75z(jzyGLA`u>renM3?wmqu3gw)&H88&RN|7ok=7k;6IWD3L*nL z$BgA2G4V9e-57lh>w{#gsz5OrXMv%{GW1g{FbNtdFk&vi--HAtd!fBPNJbi@dEe-U zBPI$lhHXTzx-~Doz*&G`;)$WH6xQB1sFF;NriKDr%Djk>s2W0^40FOznud+gN*0>nwONV^g)EgJmDrJD_nImHkV7q(ZPa- zQZCQ{(_%Ql)Dyq`$%PBPbK;nkN5J2!qajc3YB?OjjSo^$9|pm(gJ6R}@cWqt$S5|` zXN=&&VthF2L18hjG~BrW+56FgjXXBKJdsWrxitg~dCHp|sj76<7)h2GexGS4Or+s9b?)t#p(HWf?byU&8eAgxU-Ia z(}tXN!j7bs9>})|wV9hz)b;(B2aTPD(i*S_1x;Zed3sr}a~L z#Ijv3qkF9xsV)5$<(qN!$ewaBVFW9PPMwd8>Ys`zW{7>`4JKb`LSB?k1D+-L8?%H9 zRln|O$vS0LPNy|(d}Wx;1p*kCqu_f}&=Aey+lfS00aKZE&{8%!2P(8}_oH>^@4dtx zXcu)18)r-x&H>e*3n1>Vw-)f*@G!@{J=SC6|O}&{?iaQqCew5py(KO8eIHz-6bB;+ZNCP7(q^8VgD|EkMwL) z4~wG^w_P5lg~|;_;9I)%Aw3e}MzF+Z?)fn9SS|qO#&;whmWL#w?zVIVSkNe?IRr_P zwk6DJR=R(L#@!?p?|;!x77dm!aHeDIZ(C_EF^UFD{_^)NLuI314>Q5Js@|ePjkp{I zb}nx$AKouC3q!C4X5K2kfz3|uFo*Is;F1k^%80#TcJVR@l+(Xj>&D_cmetXaX7qr@g^hoA*Z z`shS3>+?lSHX!xNjz%`rhzag*khnAcRSxb5W*CFGe*2e{qHNO6hk$)VS9X03{IDC( z`L$klE-da5AO%aE=mc=9f%-b0$_^Y`f=aIO(ddqe41*@*=FF@oEwJV#zD1#~1`Dm% z^Zm{cXljVPg417U77#nE7qZp=cs9vw=(Ff#4uXiNA>az65iJU{bm^M+*LSe^l2h5~ z1y7B$Z+xuO_+i$N%T9MX5Ty0W!npkf($H|jzf(dT@0dNKBQ7G!kUiLUcbI*&Dc8xUG?km$A|T=q(r8k8xNpnm^@IpY&uROCMD5Z%0iB)F$G-e+fL(-zcH2*O_W0d*V84NwZEB2Gv}O1*n}8^}jL; z6B;rRqu)zwd{zAYlMuRAoqQ%&5yQ`&$aiAK*Lwl-r){g zr6rlotc98`ZeL^B=TnuJxHm-+QfEXNGdOB`+%5Z4A&k;O8=YDxotpk3;)zlc@0FW) zMGwOOU+!%+wR_p4rt-JF*6}~a@BGrYY&Wy&P;5ggJ}m_~XQ6vbgq>#>?{L5Ec^l=n zcXErrMqKDf&cW;v5r2%1n@_SgzPj*W1}l>A{uQmq)9Z>OmR6MNM=?d{7;puvy9Ui= zb#;)_1u!Kv%0~kIs`bhaFQ!eMExwEQP5F%>rKm^6q^1E1>15W`i8 zS$BR}fNU}pTGxK#>0OpWw+v>D71o<~EHg~cm@Ik0{$4h$4y$g*#9tKor*8q2XYyl! zh`)^Il>sJX?-glgc)zK{D^~74YT|`HSRJLYT3zd)3Mm=#Q%uhGxXUQjCQFWLwyPbVwO1 zwa}mBezs_$2oWn(O82b3o1e}LrbzDAZOMgA6g{C9MN7^SeiQB$YJo>7QvqtfQ^yFK z$ShvqcY>#5J9XYe1(QV~`d~_yXMI#0%rN!+ZM`Pe1x8U5fKNmA9U4dJ0N(TeH0P&U zRjMJMiZHL^=iy-5;CN=ly)98K!h(Ra^|t)-LFQ%A>TmF}jg_C1RP(QlXxUn*Ptw=E zrp*wKRYz!o;O@dYoQR zJ7d@&&51zhB}WV`9%K5PVq5*0Kh}s=JYazVO|!7EYqv0r?KMoyxu^_CvaaeB8a(0! zd1it`)MAYYgMpnqv^eK@xh?o_>~}_oW5lQ)6;Ye_u@tpoPR zN#0>BgYlqwV5d7e!6~`Gh|zJDws<%5 zG}HG=z^oEZAy+LVS({Xg+(uEP2W66zEDKV6`ySL(G|Wv!KsCWXq4;DF+mU@a& zjy5#rns|*gJ9n&CzjOuHv5OZ($2q+k&cvHFFWI9L=i`C&ansG%9$1ei4U5dQHmAMP z>?$!EnRaCadlnCrQ48)D2OD{{&g~fBD?m$LxbWmTKQZ{t`6OdNTz)_ z6sIudV;dYL;M=@J?$QONa)Mge{4Wy=Ka|DMN-I2#d5*8Q>LecXDV9_S zUK6dcqmB!yo!bF(zRkrqqoctQI_LM5HO&&IEaZtiYV?8b*aUP!Fjr;z^%h>6^d!E( z&I55Emdfv(!a;2A^g#}M3i~&l20#kmfu#bHP!s7l0U9tMR*oQDMnZdENY ztK^wVSn&m-&aA4#C|W zf)@AS|NNfkO(v6>WF}wPvwQ7lcOzLuBun@SxA61g^a4YFU6QpJPPt^M@2h2eyT3ca zH;;8`D14JH>t`(%8B2F3$iP>U;?p!@#}^GhXle|1sZn$ku6CdZIfD!Go$M`RN#o%N zlMllZJFo@eOan#AbpneIs*h!;#LXdQ$dbZG7v!U5GSb2&W9UZie*70|NMG%S}%46)CU% zOuj9VG5lS%)(w$6k)9_c2n{V0b^ABuEAGbhnaFBV3Mz#wJ)ukA--Qv$u~yBb<_QR| zF396x7J%a(Y%LM}#btz6zdpusupew7js8@>c;UXv|CJ_&WsD}@1=KD+wZDbBRlp0Q z#Dlf<_HtB6_m_KocD%G%S%qKhN%=NxIr39<_5leR4&wYS@YPLY~`AFnR@c##v`ttgtPb1EIl8h8dCgbw9O>oLaVJoP_prai5eggq-VrJ=@~ zzH}MpwzulB(TB$&tO>qe!oFe%h=l?{-53q&G=y3!k9@K$lg^Oj@HE4>r@y;0(gCDC z=;|m<(GQ<5H}Llut@z}|U|r_Jl}qAi;Ev0G{!5s7b}JcRo6+*j|PrM%$sxG|9N z8^?9$4cEMs@ek)LKNVQ}+B&h!SsWQLh=HKB)LK*D08L+ey=6&PLltOxOnGgnDVjZ2Br?2R9Qn{EGc{zu zV6$KO2+5_L8P=K%Cn?VVyQNQ)Y}yMWa*CQJ=L_cZym^263DI15<;%Ym{By>sZ!sIc zd@H0yru(L47$B=8e90au&W`-W*=SV}TpaX9AcTOCEHcv6`=p%lE#Sf#cm)nvfGbi~ z_-bVRXw=`-%YkFlQcxaT_`E|5ASW96wNL5W+!%n+Ig(`)^gl-wxzcTC_^-~|Q zI#cb&vgv|@R4(+kzD<3p?9P|GG( z-fz7yIa!9`u<-;kulF7F+&a`-KM;6Z5BdwN9m@Y{O+36Z5l~Jj(xWjPLpvv*Qn2qf zE=d6@$Q_9fas7oDoGY z)07-hCH<&SOSpT2qSt2;F(D@E3ObSdk1BFa>a~$6;yNzpU-5QZI`|S?^eJDW8p&++j#NxrU#c^!}!{jMEtO->On%Mjff&4Y}Koa@DpJwBWXZ*8~u z!FQbQnrI%venW{NCcN^rO)idjpZ8iCJOqn#iC|g?vPqPt9ekI`^Xp$C0U6QB-PT=R zdRFl50N?t0Uog$LTbMaQ0r8b)ILJ)FHNZYF!bXT5F#y6EG{$pHS+mOzEt*wlA`~ka z#a@;oQ7ArW^%rlfTZ3k6=+&g$xh;a<6s5MkQhSs}w7k?7I!6~l^E~<1g-+AmrrsKS zHPwdTV76Pz;U9~$c{gzJcD*xF9%(Km{%)B}4G4eBP!u@mYmA<`5c*_CW#~n$RAQ(I zUm+R?s0gm)btG5jm#`pov{zb)+;y{scery3%bH?1e1u?6h*s2is|iIA;TRqvKv>7C zX{H|UU+QtFUKC?gxVzFil15kGR=!wy5)yP!jb6RQ)*5^YANM(z|0yxv`w*6F{T-aB zGFf^iVPw4C$J{Gr52dUplRk0X`fp0feKQlF={5h&r~mtp`UX8s`h2)xSn`@beVNh! z?xpgt(5z^wytr|`Noj$7gho~sV?;Vw5Ya}{?Jh8Rk9qlpNH@>V`RfR+sY`WYVr}F; zeZ9*$=TGQ0qp!5qex}Di1Uk%*3yoE&ShvxUS>pfOM-NGYBwUb1bOQBidrql~}I9adU*o zHqyj!LOWS}VNZcS>qoTUd(sAM9ppu2`8(^!idNQ;vd|x2y|Sak6-n=XVjX~h&VIqzPwW!p2ek^Wr9L*kG5oAQ|urPcXMq!XSJ}FdON1Wq- zq1ES|RLvDd((#UT440*Lx#){!m1X= zX?d}$CD`qL$HZg2#X6_|*~6I*=d~=jh3$I@tpDmQl~HLo-xQDU=7~^>xADUAm2KAi zx*}&2DSf`Jz98M-S1X$f9`81#i9+nT|Mp~HW1xvs3;_-v0vcD+9W|%XC6kysSoC1E z+-pgKzdguR-+C|sunNzj%Dna+lKU(iajE6T1xa_pq_N@eV=nOF|DeQ@~<`o7+mQaW!k@t@NP(4Sli_g z)&k=vf{aP5A7LIRHbNcDiHN}$olk?mv&^pST9=`|bpzN9$!|kRF6=EA-KKonSF2L^ zwuQRhTN>%uQ2uD%w=f{xHxf7>9>1NCF4;GtMbN}=4?33Y7HBIsFLhnY_lO6_=h%|@ zcJ{&%klyb1GJ5O%E&bk6VNC=%C4$D9ye{{<$m~4`;V)Pn5NNP&`t;FFi4y^c_?3MV z>txUcz|fPwKyaR0x!w-6vZji?uDuHOozyf@roG$mAHMv}3GMaxiWecvaBF^!KQ+)q zbMonj7aCn_s>P!=51O7#q_bfOWbE-ub-;L7 zHnQWyUM};#Qr>;xTqRGjbORXoq)MB{cpCnUlC6)Kcey!tur=#eiZ)aKpmj|-6mthc zDR4FfoQ1-HmlqB}{yD)>AL(_)wpMc@2ztxNZTGC1`>|PvTl(m3Ghj{8xAR^bFl_ zSlGPx%|+0Bc`7plb)aaYKE2>tZ+3?Xp=jY1Y3~u+9^YDNBOy8Hh^^qr<%pp(aDLZw zUr%Yn3!ROV@es@7}AAmdJc$vnJwcV0fzs(m;&tp!4>MvvA+8`oag z_V7tZDEfj#oJH8Dj|`8vy!Tl}T3$GyFPkI>Am>N@=+ll}FSbolXYc>_UH)1@mH3Ye zk^Eg$wP;mcM~0EOu=^;vpN0JgjzqiZ!jYL~w|(@*N$1U>OtK}TIW4^GvZ^#`hfw!X zihhk8y$;sYYLiQ#zL8!t2FliFWkOwNfF)H1df z>R=zG$<-KFGaO9A_0W{VUd3AI1dob4{cg%?;PW3Z!PoGUml(kWm15=F{bE@L{#7#Q z&)SD-#G#5TIK1{yl>6zd$oUt^JzY5DwbHyWN}#0gOG*mh8FFG2J8%kq&pImebBtez zb(5l2+Hse^bv{$*wZVB2O_CVV@Yt+wq#&zo{uFcLCRlha(%k&OcA$4T>`|D7wSohB z=m6ng3#Ql4_GV~^U1@>q@zco)3r63XWx8s3NyRf{qdDl=#h2tfIQmrZN4jFQNv z8AmUX%+r9?(CG8~HVy~YxDNZd(7$?_dH*yEiRkqbOddtJa0(RVe;W4p9n#YlV|!7K zrDT{qK3IdE70YNZ+*RUd)M<2|k41giX=SggTGNIcn|?nTtptN`Ve6AH_IcXkC8uZ% z>}HWcIJqQA%J-DKR;JVbCdua$9hABC6q83gs&fFIL!*lL2>VNXny*}ZiQ!72H*C*VZm!btA6-K|bsT;pu0iu+54?177V|g6kR@h(bOOp4=6x#v^O$2C z;Cp0Q&Gb0e^-3jc?K)Cz+_e)J4m(}%@$5Xe?Vm~|TTjZ6Yji9?+^5kpnxsAs5uukg zny1r4cF8G{n2m>ankPZeGj&MQ=q+vW!|C*V8mOaL2{QiUsBOGebOn-^MMKda$ajXc zn#s3=0THsW4y6G#KTIRkSp_VZ)sknXMbIp5SsT z+7|V$$E$R+!$aCg(KOxB&9yJv?j0UgOGjcW_BX_4B1J8vj0gk8Q!CA0uH#PhJ8d;) z)GQ|3w&FyQiK7Jvfy(f)%C-sV>(@rV+iejCx#Lt6O$-NB)r#8#nA3#&6hQAw*yGx3 zsD#eCr0=QN2dL0UMvWpbcBP4^j}86v(|@-h&&od8e_0H>S|{p_2I$KQx5gNVL=!@T zfI19M(ZJlVdmZ2$ZCETBa`%XGnY6q$=8hgAS*-Hi`{rf46ord@JEpR^hyA`=#Jw{d zzHa*0TRwcvP0_akz4G=1&Yq!H7f6pIWHFn51YSZorE2^9mfbb4Ai}Mc#54`wjnQWZ z&};A6tu1<&%I-iV4)uI66l$Ecby=z6n>Bd%lBoB!)rR)6vyl{S{@?Al9&PmlM^?R; z$hBwjjK?zHaip~B4={TBeNXGI2l3|QO{7}E zbrXuUUE<;D9>I^-*69vif*F4~??$>u+!G?#MX9mZI&V0$LZV2oyn4k*U2iuEL2Nio z_+3#TC!PIKjlZ&$%5_0a>eD_RhtgndgtIIdw~n8YO z`hVq8?E>a+*38^M?F8(nq;O-&j!KyJ33^`SeE4eKZwiTdLTAvqE1rqYV^-Y|2YgE{ z8rtU8gCmP79BE#EIKK-+u0=betqnahu9ZG3JZ=S562vTb`J|lm&Sb8rd$OJ*PbrP} z@3}cv8l-;0KA2ezK6U*!zW!FPR@+^)y>1z-4;-!7uDzbD4z*TT!yxx=y4g3HyUkd3 zVZV9}jbq6=Gmbxh0d04hKHRk??f_c?RB9ruR4Fs%>%;!AQN2iGoc-}cGP1RvJw&up zq2Fk>Q;Q0H8sfj_n*V(B*bf-%WO#=i=c;dnNZhxEZVbz*SuRnc_ym89wI07J6FVO z$z{o(d$fLbHa2!0jiwkY%yrCTgQzdOmuJ`q8Ip-RK17Ngh-BjR6?a#rW_R38<( zF4?Jp;=U2P$lioNz_iCPab3~xK@c{4+&bxG0t=f6{Z0~S#I!I zSA|nx+!`I~#LA)j6rGSzCwa~O)c$iSZkK9*uIXGpcj9F+L{5cRI1Kb2*7Q-7pH|cK z_aasYeee~_(Z{T^dkwuvcPB83`-bV5$>oDnO`0L%Oc~s~_qB54rqa}96F;@*5fLlV zj3JJnkb020NoL7XU^qzKCjpA}8PzgM#+9o15zA2>$+vrDLhwg>Tt=;ygU_t?IAk_2 zfaTeR?xCB*XiF1;?I#;dEw&P^`jg6%>mGeVR0Dd@?P0DLO7a%RpQ^z{5%rSuu~f}` zI~gXh2X&-pV>fOF%{HEIx2UZrI;$A$WBDy8^XbAtyjg|bxO7>SKnuZZA`W_+bog|m ziK%HTseLQMBK!ql?S7h1gEhAKHSGvmqWOA|KlEGozz?pyS_wK@5l7F1RI#0X5#HpF zwrpo)XG*sB;b3RjvA5jo&Lz?_A?mbsD-v%^bnWjOLD^WxN$2Dfqlm@6qZU^p(h(Mc zQv_Ye-eSQ#tD6CEaW2AFLnt1>gv&h-4V%c26W_;Ek=5C!3|5>fQ5SYs9z>3hevD_F zUB~Rk>T%$R8D6;f;CMy0T6-o^o4hGd%e#SNcG^8nAwMU&-YE#0fzdW1h8T8A?0T@; zvFzQOFKbm>+SND-S@1rZSG3>E3Z39zURn3?o3TQ*YJmt)$|}34<|>DN<$6Ra!My<9 zZHjQXAmRRw;8}X8OUwoqMncrOw@#Qhf_)x-y0347m+RYW3wnX(bivC>NSeFpgIWM1uS?Gkyq0Ehl zfv*((;YrOAi}lSBpqVs?m`3%G4(crDt~nZyXfCwRas1!8PGsdYj1Y4s74j?PJmX|b zxp#DB&S>khS)2V7B^vFLP7TGC$e7g$k`qypeBEf+c47o&L?CuUv-fQm4&9~Az#i;~ z`+kK5%Be5MlO@IJxFXQ+X^W@`-Xlvvq%pYjpwo``%SS}Fe~r$`+alp=2^99d0M9?i zYZ1u9Y5GGnI%wZ{Appm>$eW*HCC?j29g-;>e}vGip$^= zp2#}KBh9ZmPgu9A_a8C8#z&b09_$C&ZHkO6cWU~zvv9cDNt5bIPql}3&H1G&J0Lht zipbu(wPhjNn+5Js^=ms0jUg6R6a_xaGIu8$joaToJse>zIO_e`w`y7F)?tN0I4c53 zYXbo*>169o0;w@Og;Z5%QR|yiDnQ{|&0&LxbuI?o~Jd^L* z;XcW0SuAAdxt{vnMzx5!)(KHBAj9)!hzo0PncYdKP0Rv|&)-ppwejW$_B+3JX?}-% zgdOb{Th)bUE%tb*#+*>B7~UM|H+ICm+Djs)iE=&;@$C5LU4wQBz|u@sB7g+KW{LCeu;<1c)>wDKr~ACXXy-`~@d0EjXXxJ=eL&aGr~irlw@t=Si+ z=gCXQe?T+Q#@fr(HASD3>1+ptQ1ny(t?6SjF`!3iu3Ff8aMG*xQ^Sz=F-~Q&h5fy~ zs$z3vmd8G&O|3>0#6Juzp{yjvcE2mlr1adJcFUx67XHF>VGyNiAG2WS<_Kf=5*}Ru zm(9X~CP<1S+39Gb2dyPSeWD;mp!uA~YO@IO?C-Dhm#3fy#Or52b5LaqX<_{&P`3ahVzP$U97$Y2>G zH{m|{;kzO%1B&>s-7`Kb^lO>$V#y;D2#~8Up$)ticCg(z|^MGH2||J{}X8(bRtr(Up+gaZm1{l7c3_XeL-s zYHm3L3&s-tnsyV8ysoy?9%fVIL<`Vz}H;9rRPfc53esE z{3F4KYOJtu;dfR?KfY^9VZD0?yd%baxf8D0v(oR&Fz7FY0#Iu|pU!#MU1TB| z?2QN~>epvhAAS!fK{P&u{$5Pbw!fwb$HEKIchc zqh^rL-XtrV=KUU)7Agy7-la<5oY<96L}%3}FKhyX)nf22&r+YkcQy!nZ@jl^M(O*d zF?ks0YQePg!s}MjZ_5e>g$_&l$OWO(=k*3T$c|z+82!?pcwjc8KxBB{@wW+Uo;j-M zRvt7+>gXNj0$T2L|8IFl(;9GRB8x&^uMX*KVJ!2{~BCBC5G$P%grcHOuf!M_QW%|@37I>CR?N&Af35bwLUh!VU7w(C4jG`m-}O}klX)DRQCE4K>QOPb>yWu@@}8oyP4H(q*ph&0F9$Hk`lCPuvb=o3GM#^i zt(3fB$E_H|wl3PDbB6p(f-C}cr3v5nt?oM>ncOGxE&|KC7uz!}fqqF)cNpf#YoEky zAHq2lElk4gPp4v}U);%s_0St3)2LO>Ec4hWyIcvOE6AK;q9~BPOA=$DCiAYPlil?7 zmoF)=sVjl<{mv1evjY#Omu~Zlquk^9&bx=r7YlX&QtXYTSM{=3B0-+9&8TiH*;>dA z{9!ODNW;cP?m(&Bz+UM^YC6tmT4n{lqhuI75AQ zKn|4jnHJ5O>Wrc34za7(uxt#ssB|E;to796^Rqbg2zxONZj?XNt-kRR%|7O+Izti` zMXfrJfRmBn>kL~GG@g@GWDf8dtP=4N>Im}tjT;ilkaKN5wsx-!+#!{!UZgTuh%~}q zAA@kBpJX0}#Z(El-W~^$GNZVFt19aKq5&L{&{XJOT(-UE4_2;ih=u*5vzU1C!aKIS>+oF$^Q)l0P%C2IW zHF6M++$Q1n$jS0M?-N1?flyoL56#Kp&Bf!`<4+#7{TGW87?%+jWv7YfyV8cw& z{&gR75#5YKT2+05pSLJQgKNQFA$DWvw71v~IV9z(k-3q#iqZj!ndIr8HT>;7c)1Du@n(*Jq-*H^Lj9?IV{Nnq)(_r?sOD8+YfWFDk@DIYcJZAfJ zH6Sezrk$Z5%{W~E9dA>x65as2^J?*3A_>Jes1V1cH+I;0UZndUsMtE5#rasj8Te+J zityPsbUxn8{6~zd;7S7*`D)-RoR24;DYwj>ZRFqi*o?l}Q-ZH!t2#7AQuapn+rd%CR9!2wZ)b+@M|Zm!sM8PCbQp9%Nvn)bdVw z{_8|ENc*5-hnJ$y`soOWXELA~v{p5+;yBJlvbNhDBQ5f)*EO`>wOV*@!3{Sl^-IN3 z;Iky1OS?jvtwNqc6GCPT<_X~bJI$XQm_t6WX+dv;77=9DwVjDvfVxQ7ipm&D2Sztm z%b_Sni7ZS@CnZKw&dqdS9(h%cDxF95H5)y`Kz8Em1QnL!8-)en1D&>PR%nm;^!|#9 z0d8cBTQ?dTkp&u-k(h+BK2pWh1poVYQz*OU(%hXp8G0zc^QWJ8vQ`EchGI>4Mb) z|H^)kI9)Uu7^HKm$aQ9Oy4byQcpzc%MTl=a{!tM{W?knQYJSUz zJwA0~n*@LXUT(fRzQovPk^ zUF*@u{s^#8>Q{Do`M-{=(|u>APuYa$O7aL+Fz}@qTk-4Y8Zc*M?4r-`eK#aG5eil$ zX+$pwQAD*)>;|#X{UM4BzCpz>$lvB1=pw>pyJ2wS?oN z=6`ATLl_j<97XIOja0by=eTPlhhv-NLd449uo6(Qf6baqy_Q|+&w4WDhM#gpdV{5~ z?-^s&tBnGAKDFh3`*s1yXb0~??~{u{=_83I?DIDl54zi4xoE{M~XbEfsy(l zg&)UH!X{|930JX{&P44G&L;MPp#`@`II9W5&0;h>pD^-|l?_aV4Ej9;iC=meMz$~oc!|s!O=16-hHJeA*UlMn=j9l^vi|yqYGI64TJ|@-ORcSN(FY!R&Pa%V zea2eoV2&nQ{?^rEYx&^gU@5p%fy}&&F?#+VY64$5nzjqV{W{sH!+o6bKPi2uvlHSR z=GNU$Ui>>Cl>)JlAySz^n9HeF=qVGaWBOQX4ryoK)G4XIb@QX?HY37_lupa;AHqSA z#6FK-D)kU&9^>AiEt~O+HNXl-=K_%(F`GPQ?-&S;JTiR{>N{{c!x(uKFczhpZU@aW z?XN+iVMx)WU!XtyWMA($c%6MLl=?|It@Ujj9Rqv24ij^;4q0c+l7P?c(=`%sHf%sy z@#I($@-}s?ipD}5SkSZR4(|n8%9~!?8Kzt+^Z)JZ*R;UYh z0E=9K@xI2`LZAWG9H(=1n~6*>wZClPaX08N^J0*e};M2|; zO_;NT34Fj^s&a9|+2|ma{0Gxybdp657QHXyZ^$_B-}C4za$_h4q-GNsFce;IFl%Hg zY};pl?*P=kj|L>DIXrc#C?0lc>wxeVENEw=vu7EaS-bZ#%+#pc)uwG}4c-(c8H`yq zmm`6@EzPj*D>v^0|9ANLts9>=@D)W-Ld$|<#PRz(cO~%E=#1L_pcB#kD1TFF*UKN! zj@oP=!YbzNch6jOFcH*Renz`bb+(4RjkW(^03@jVxwFS({DKx0YZz}knpmJ*{z}{I z?dZ6Qrh^J9QJ?`+A*{$c!6@m1X#apTugCd(v5J&Vd>S< zuG8@b9>NIz%^=({B)=?D3vlNf-KKWmQ7%V5zFOfkcvpy(eaa$$hN96L(U9Kxr=?iU z4>)z778#+)fFS0SpoKbVVSjbfLT6cGC$k8R2}RGq`cL-IAJZ`tZu|?U|7CWNfqN_` z*|%q5jXc!WZ+!X2Y`u}8t^s4p*mm1>6o8FW{Fnmrvr~MuGPas%A2|_U%JjRlt?{!T zSM2^iV-qX1uV0T(IOo3-%?egZxXX~R6IB{d#{|1%3GNXEMfy}vAeftgF(OM4;Z?f~ zG|vAC@g&8bYwx~B64c3G9_nnLZ#?hnv|b_mvWhh`X>#F(?_~cuv+%78!_M5tNT5x2 zuNYO>ezIxs%c8A70kV8spiq|lS`59()UZVhg^=o3D0@KVP!p^z!lO+N`Xli8#L@XR z>}1+;X5-hxitF2j9ZIex+U!$_vD?mk0+(m2?{_Jr_+&4F*GRN{|IjN&2ZY2<3p4Ef zNXGYlu?+5=5r=5RQ>-3W$a-t;BVcn8-*SR{tT*jUi;C8<3r5u$v=r93WWGis%((yE zz}Us4NZQ%xUKEo)_%Ql@__SCpAc}z>cLt zxG*Zpavro$!bPbok&(Qa&ssf6~Rzm1(0IMIF>|Y|p zxFc;!(Uf{d4l#Zs-0&rhpUlYV4rwS)m%xKC4w_twx03=H@p4S-J%g4k+!C?4QGZ_sc-3m(9H{s>fX~OqIVB$j(jjf zy-(DR6=8xQ9a@>`JCTjNFQ8azo1l;U!G^RiidKu>sU)^r9cq*}NbHWviNS;N@IKvJ zI-B>7!teL{B8RKYUao$P^_yd?bkjASH$EM=_bu#~Be~&@YB>|3z!mKSk+B;kancbj z@+Fo2H1QtjhW#U<|Bv>Vzp zlRnZ^D;@f;f5Axq^(ZIR13FYl9N-iDv6~y#i}{)@^pg!JY&|sXuj&>(#V#ml_LFv; zb3rG2Y%O~ddcPVbkPyuOw72(H*moK#)D92*VU`NK<2V%!NR2w(E+QtQPJM8wFn`N? zYrn_*C@O&JRbjfjh?3_0^_g`2)1l0`<0q}0Nky#?m`1=eAK@0n$m5Xg@pr~N+oc9x z!LI1hVP)yV`227Gzql_Hwl|5um2Zfn_zGKOr6=JgG3S*MkTv|t_gd{G^Y&Tv8Bf)G zEw;6su(;2Ph`aPgMQ-M2z5H<@wi@FMyH&n`Sou%-(%FB=u5ryOx)l}Q(`S;b=z<|s z-yCId3mfyQK4*Q7|6m!;)W<57g_n^d^Go(e0Zm@f&v@mT&r2VCzKMlX=Kt51@-yvc z*3USjZ^iP4KktCz9F$_@e*sMZ2NCDMK4V+OE1puTcx}?2b?4aGZfP? zL=H85GnH}>h&3DFc;wh7=^_b_Ou;n$Djvc>%`cJpXLQ2+g9$N5I7cK&KFJOV0ZBpR z5GGv$? zQ#8{wvozx@hss7w>cHhPhuH+yx^-o9%8ZlW>N(0GfLaCC977$uRz8nd=@gyytX8>N zCG*6`Iw`H(1{Lj!@`<#%BrUoK2pAjQViO}v3YkY78qe00v7$b_^eq9$rFe{pA#V6ot6$c8QyLOtX-fV-qY&ce^g9r!i)W0z*T$SK}=hJT67M^P-AvhY7>igKEAmU5i&Q1OVN3pi6| zFB|_*$E8d$C*k1H#YwkH@lV9$XIFHABo@s=V9wIjD^pB8kMrL**PZ5fnX>A|#t6_k zM<-Oru|kd|{VB(uQsjDe`B}K>7PP~GFmtQ@zbaZx)aQmZEgi};ge$!49 zK~urXkPcl8gnr0*0DrG(yV^6$GhWCti)oxyDT^qha3Eq(d6#y(_#*yt#&b!?M^7vZ zpsf6FJViZCJxe{#e5iE9_~Py^2OJ7^Y?l*BKTTyFOx_*7c)HlR>$(enOaYtvinlX} z^6O_-j?V89ZIfO^TtwaF-|gHH+!Z_yfqR=91z-v+1v6mhnc6UqRITSi5B1V(tH7l& z3tq}8sW2x(Towrz#`lX1lJyk0wvt>x`ujmDN%n}hbmygCj!NGD_3ACdJ+~4s3x8k8 zWTX-TSNX)F8YU-fG!^E-MM)?XCPB#lpTy(m_udS>nH22ilC7!lt*LrRB8U?x+dqUc z6Ks8pN#UT%k`JSue5v7M*vXN)(HEt+z}Vti2OVpdfL1%0+`y6bJ z+QW#y5vS#0j4M=)tTzyf*4+7!ch+j)p^Ge}h+)qdP^j8D3_oKd@<{%WMSxlP%}?5L zQ$gx1@7R_8v|cB_=u6T@u6Sd%fXok)fFA^S-*M}T zP^F6A5ELPURbCO90G1^n4gj;pmxIF>smA9shmR=(h<^>`PB(moBC<8hFQYdYhvI)fBmpcd^~s{S$lR6sAyEg;IU9I`)fbvr{yH-Y4!mpBNIOK znsl;Mg8Fr0N4kNj93B(BGi-#!OZ(|^MmqoKh8CBfRE0E6qf@lf{9upvbNV3NSb#B+plU)P>KTbi~N!_!80O6Gs2&(^w|FC zB3otN==XMfJRCL1+|kf~J*OIZt&*lb6{h;Z5XDqOm_ThTOcmd-Pi8xQmg+~ub(|`6 z6|E=MI`veYeZA6vSQSuMQTHiD$9}od`X003_C@D`vY>vYe)aZ{pM**?DydYSz_@Q) zgPC~_z4U5b|0UT+m2WFO7^SD5|2JYBS@O5!_P;x-wcnxqSyI#EghE;A{B(@wQ<^-T)?(008JS zNWW_OXuqb?cWtdRCMHRqrs`b4s~I?j61K1eK@}FI`?s+J)yWgE981UE*)U0KE-q+C zUO1MH&(Vs$JqE13Lglf}--UWBGI=a@;MqJ*P)gteKy zLH*?;UJw!*q(l&NbpY#fJ7&6xyE)iDpmZ}|UG3HLSy`aFwp|roh(2L@`WOKctj%0q zSrK&mw^V$n;kJpREC%3eCp>okt>h6B;`l^m5^^V>n~zAZVY2ed+~5{=x2s89aUWsibwEaP&k95 zmeHS!u50?}uQ4zdpE0)7TIkCEoloZW7TgtBsHI7)=UC6tiJ!+ zUme=t=&u}xFpH{YOxc@ROnfcO-Z{8Yj^GraZ-` z+p^64SmCXD(e3`H(CRLX3#voO@c`oMd(`K;H#PXG5C4cUYY)f%ty{L! zuJwUy9ws@AkUwwTe<-Ct^v>SQGbYnlu9GzFt@@QUSBlae#~1jlOt2051bi0RXVxH(^0@gujJCk_pWX2m8<4YZMR@=Cn2VtF9AW1Avx9 z(Z%&PC!_LwNc)=+82y_zlDTACd4ZX_5_8p1=a`oQ)*r}7iudRKNVvGTJbaN{HIdYP80730 z@E8P-bWJWqLm#Y6r7qB|m3-YAN`S6+9Z?3BgZ(Ge{;G#DOu3SV6uYQ9WQhjW=1_TQ)xGF>KfS;<~VYyxMd+CuJE zwoR7{GqEcx_1CQKYa~^lfE$+K;>@!27=6yi;<}S9GuI{4)&+NG%`EFZ|uce=J<;7j$_B&+gFiG-MJI&N)aqg3X&8kkO(}pP)bd>PE z+5B}zKY7Wj@6Yd~z;cr@)lmG&o6$PUAF!h^W9M>ltz(Gxv18#zA`HE|^>{-*%J|}=;MP_iL&UG1Ppy^-Pehy)A8Hen7VK9$>UhV!Ruf4^ohrsZjB4H#bXcDkSDV`>MS}RajOtd8Yj45v zElmJVaq~X!*}v*}T^s@{t*cp*!z`UT>e-IoOVhU1@KVb{-_=X!po%uO<{=)-ZU2%2 zQZxSR?IyB@TJm=KxW9B@@6w_l$%pQ@7CiR&te=6ni>V#0ZuWC?q9_*8DL{K=GVd6A z6MlUWj3TkVbklD7=rdSCkZZ1Im&}!Cp$f#5y8ir2Zh3cI5(AGEGAV^j+(upJj@vck zNXh+!e70EqGTkik;_YrntGKe*;#`?_G{f_R<1)1FakcyY4(0eyW`k=5e}+*4H7rdx zjmt~FRx9K0jT;X$Hegy0o zVkGk#@@kh?HPtw3YW7{F6*yv0jALuEx{=it+qwku9P-lGFW12a(_rkmO5TDmR?6NH z3N4wx@kLk_uT#D3=ApBn{mt>`o?P^n*Bx$D`{z-N?Pjx{9Hl^o)=?!?Q-^ta!`DtT zm^zDv*5t!<<)S>_?6Z=6oh&jOuYu76G`lwU*vM4VwA35Ri2&csm=1mN+v>Bj@))Ns z=#%c#ivEa0EHf)fdmAh+%fanHKK0SCh^6_$%Llcc6Y97l_=!oWzzbK zT~Ao{IO532T1D47$$L-DRB@UgNjQ%0ydm}`uv|;=EchsDu*yUS){Y1{aL&P?}CFBeO2hP|7T&!2-9Xo#fZ-BG* zW2fH1V$^Y~zu)YFUXw@IJ$$CNuY2h4!vcTwA%ezcCu7yOn&|V|q3y1Ljf+Go-N#T2C7y?=6|F zCFR8fY8VG#*{wI8)oQAWn4k%cs`~lOe{r}!sw1t-MQ%9_d*1b+&Pjha*n8Bt&qZ#q zLaptQeZ9-eWQs=eVyvJ(5 z(`0v zVxBiX?pc_6j5Tww8f|$L20Rx$-Wq$Y68K`JZWEO*Hwre^w@>sIzfO7_R`h9G1^b_V z$nG92erR8QpyHxCKQ1Te+5$CB#Ff;iA60`tUT^O@HFil#?x(0{Qr$Qd3M8TcL3n4k zh(6oxYX`&(^Nz9Mo-}R7%qpw%=HPW z5YM7E8>cW!u{u%LI&5Z~&(q}l{*!xXOF75bm?W&AtQQ)6EE?F zsnx^fau1#?|M*ZIoxAs6dZ};zi1Jvz25xAd!$~n_rssRc}}ZvSakc+QnXX@2)77A z9B(mGX`jUhzA-C5+N}xFHmTif#K2?=q=TAdgShqE7%umEaL{k*{0vm(9f}QZIOlAn ztum_ALrT2Jqi;oI37RVA7cI>9B4D%YS7R#Qqi!kZ)JzIA&M_XL zNAe#FUa|b_PWE2O_#a(sly3E3m``z@lm(Z(pQ3sJ6b0yqO$2R1gq2<)?1ru?%}vCN z;%ptIg3}lBBm)CtA=OQQA?J4Mq!S02p!n_26bngRY3I7)t4g#@?bllajb5oVR zw{8r?=37f?omwzrTz7!&4xp`H}yPN-4clXZHyNTWTRVVmOFm-oLZRT@-^ckgU6)wN3^A!!o>R!AaeFZ@9_$tW()!G^O_zWBsh%xW{&2D= zQ~N_(>lnvW=Yztw|5voyHTm;9k)A?wM{7#~uz6Z|x!EYxc%`-fXUoJzQkDdke`%KE z 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%0ApJGOE$Tkm1zYHa1=w%*Lj&EXwt|5olsUdj8n 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 Date: Tue, 5 Nov 2024 23:58:30 +0100 Subject: [PATCH 068/179] fix(IPaddress): IPv6 restore zone id (#10546) * IPv6 restore zone id This PR restores the IPv6 zone-id in String representation of IPv6 address as well as parsing. This follows https://github.com/espressif/arduino-esp32/commit/20a28b58bc3fd5ff613e2860d65e0953446f264b that disabled it due to a crash in `netif_index_to_name()`. The fixed code scans through `netif_list` to find the `netif` name and id. Note: zone-id are incremented by 1 compared to `netif` id. For example internal zoneid value `3` actually translates to `%st2` * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/IPAddress.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/cores/esp32/IPAddress.cpp b/cores/esp32/IPAddress.cpp index 74fabaf0f9c..1fd2a08e9c5 100644 --- a/cores/esp32/IPAddress.cpp +++ b/cores/esp32/IPAddress.cpp @@ -201,7 +201,13 @@ bool IPAddress::fromString6(const char *address) { colons++; acc = 0; } else if (c == '%') { - _zone = netif_name_to_index(address); + // netif_index_to_name crashes on latest esp-idf + // _zone = netif_name_to_index(address); + // in the interim, we parse the suffix as a zone number + while ((*address != '\0') && (!isdigit(*address))) { // skip all non-digit after '%' + address++; + } + _zone = atol(address) + 1; // increase by one by convention, so we can have zone '0' while (*address != '\0') { address++; } @@ -351,6 +357,19 @@ size_t IPAddress::printTo(Print &p, bool includeZone) const { // netif_index_to_name(_zone, if_name); // n += p.print(if_name); // } + // In the interim, we just output the index number + if (_zone > 0 && includeZone) { + n += p.print('%'); + // look for the interface name + for (netif *intf = netif_list; intf != nullptr; intf = intf->next) { + if (_zone - 1 == intf->num) { + n += p.print(intf->name[0]); + n += p.print(intf->name[1]); + break; + } + } + n += p.print(_zone - 1); + } return n; } From 69825a99f9dc35b58bc05bd4e7e04705260c3537 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 5 Nov 2024 19:59:27 -0300 Subject: [PATCH 069/179] feat(Matter): New Matter Endpoint - Dimmable Light (#10543) * feat(matter): source code folder organization * feat(matter): new matter endpoint dimmable light * feat(matter): dimmable friend class and adjusts log levels * feat(matter): adds new folder and source code to cmakelists.txt * fix(matter): identation in cmakelists.txt * feat(matter): adds license disclaimer to all source code * feat(matter): example code simplification * feat(matter): make it work with rgb and analog led * feat(matter): single user callback based on lambda function * feat(matter): commentaries and code improvement. update() and callbacks added. * feat(matter): adde new keywords to arduino settings * feat(matter): example code adjustment to use improved api * fix(matter): it shuold work even when no callback is set * feat(matter): matter.h includes all possible endpoint header files * feat(matter): adjusts all examples to only include matter.h * fix(matter): double declaration of ret - var scope issue * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 3 +- .../MatterCommissionTest.ino | 15 +- .../MatterComposedLights.ino | 21 +- .../MatterDimmableLight.ino | 170 ++++++++++++++++ .../examples/MatterDimmableLight/ci.json | 7 + .../MatterOnOffLight/MatterOnOffLight.ino | 21 +- libraries/Matter/keywords.txt | 8 +- libraries/Matter/src/Matter.cpp | 27 ++- libraries/Matter/src/Matter.h | 17 ++ libraries/Matter/src/MatterEndPoint.h | 16 +- .../MatterEndpoints/MatterDimmableLight.cpp | 184 ++++++++++++++++++ .../src/MatterEndpoints/MatterDimmableLight.h | 73 +++++++ .../MatterOnOffLight.cpp | 56 ++++-- .../{ => MatterEndpoints}/MatterOnOffLight.h | 26 ++- 14 files changed, 609 insertions(+), 35 deletions(-) create mode 100644 libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino create mode 100644 libraries/Matter/examples/MatterDimmableLight/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h rename libraries/Matter/src/{ => MatterEndpoints}/MatterOnOffLight.cpp (60%) rename libraries/Matter/src/{ => MatterEndpoints}/MatterOnOffLight.h (55%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 591b0b31568..1fd6274f9bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,7 +169,8 @@ set(ARDUINO_LIBRARY_OpenThread_SRCS libraries/OpenThread/src/OThreadCLI_Util.cpp) set(ARDUINO_LIBRARY_Matter_SRCS - libraries/Matter/src/MatterOnOffLight.cpp + libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp + libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino index 48ec0355092..9024479c881 100644 --- a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino +++ b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino @@ -1,10 +1,23 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // Matter Manager #include #include // List of Matter Endpoints for this Node // On/Off Light Endpoint -#include MatterOnOffLight OnOffLight; // WiFi is manually set and started diff --git a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino index 5d4acb557f5..85fcd9e8973 100644 --- a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino +++ b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino @@ -1,10 +1,23 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // Matter Manager #include #include // List of Matter Endpoints for this Node // There will be 3 On/Off Light Endpoints in the same Node -#include MatterOnOffLight OnOffLight1; MatterOnOffLight OnOffLight2; MatterOnOffLight OnOffLight3; @@ -56,9 +69,9 @@ void setup() { OnOffLight1.begin(); OnOffLight2.begin(); OnOffLight3.begin(); - OnOffLight1.onChangeOnOff(setLightOnOff1); - OnOffLight2.onChangeOnOff(setLightOnOff2); - OnOffLight3.onChangeOnOff(setLightOnOff3); + OnOffLight1.onChange(setLightOnOff1); + OnOffLight2.onChange(setLightOnOff2); + OnOffLight3.onChange(setLightOnOff3); // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino new file mode 100644 index 00000000000..ded0118b7d1 --- /dev/null +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -0,0 +1,170 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// Dimmable Light Endpoint +MatterDimmableLight DimmableLight; + +// it will keep last OnOff & Brightness state stored, using Preferences +Preferences lastStatePref; + +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Set the RGB LED Light based on the current state of the Dimmable Light +bool setLightState(bool state, uint8_t brightness) { + if (state) { +#ifdef RGB_BUILTIN + rgbLedWrite(ledPin, brightness, brightness, brightness); +#else + analogWrite(ledPin, brightness); +#endif + } else { + digitalWrite(ledPin, LOW); + } + // store last Brightness and OnOff state for when the Light is restarted / power goes off + lastStatePref.putUChar("lastBrightness", brightness); + lastStatePref.putBool("lastOnOffState", state); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + lastStatePref.begin("matterLight", false); + // default OnOff state is ON if not stored before + bool lastOnOffState = lastStatePref.getBool("lastOnOffState", true); + // default brightness ~= 6% (15/255) + uint8_t lastBrightness = lastStatePref.getUChar("lastBrightness", 15); + DimmableLight.begin(lastOnOffState, lastBrightness); + // set the callback function to handle the Light state change + DimmableLight.onChange(setLightState); + + // lambda functions are used to set the attribute change callbacks + DimmableLight.onChangeOnOff([](bool state) { + Serial.printf("Light OnOff changed to %s\r\n", state ? "ON" : "OFF"); + return true; + }); + DimmableLight.onChangeBrightness([](uint8_t level) { + Serial.printf("Light Brightness changed to %d\r\n", level); + return true; + }); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf("Initial state: %s | brightness: %d\r\n", DimmableLight ? "ON" : "OFF", DimmableLight.getBrightness()); + // configure the Light based on initial on-off state and brightness + DimmableLight.updateAccessory(); + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light + +void loop() { + // Check Matter Light Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf("Initial state: %s | brightness: %d\r\n", DimmableLight ? "ON" : "OFF", DimmableLight.getBrightness()); + // configure the Light based on initial on-off state and brightness + DimmableLight.updateAccessory(); + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A button is also used to control the light + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a Light toggle switch or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // Toggle button is released - toggle the light + Serial.println("User button released. Toggling Light!"); + DimmableLight.toggle(); // Matter Controller also can see the change + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + DimmableLight = false; // turn the light off + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/MatterDimmableLight/ci.json b/libraries/Matter/examples/MatterDimmableLight/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterDimmableLight/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 751bcb3d99e..675e9e989f2 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -1,3 +1,17 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + // Matter Manager #include #include @@ -5,7 +19,6 @@ // List of Matter Endpoints for this Node // On/Off Light Endpoint -#include MatterOnOffLight OnOffLight; // it will keep last OnOff state stored, using Preferences @@ -72,7 +85,7 @@ void setup() { lastStatePref.begin("matterLight", false); bool lastOnOffState = lastStatePref.getBool("lastOnOffState", true); OnOffLight.begin(lastOnOffState); - OnOffLight.onChangeOnOff(setLightOnOff); + OnOffLight.onChange(setLightOnOff); // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); @@ -80,7 +93,7 @@ void setup() { if (Matter.isDeviceCommissioned()) { Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF"); - setLightOnOff(OnOffLight.getOnOff()); // configure the Light based on initial state + OnOffLight.updateAccessory(); // configure the Light based on initial state } } // Button control @@ -107,7 +120,7 @@ void loop() { } } Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF"); - setLightOnOff(OnOffLight.getOnOff()); // configure the Light based on initial state + OnOffLight.updateAccessory(); // configure the Light based on initial state Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); } diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 7ff3e90f3b4..98abce410b1 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -7,7 +7,9 @@ ####################################### Matter KEYWORD1 +ArduinoMatter KEYWORD1 MatterOnOffLight KEYWORD1 +MatterDimmableLight KEYWORD1 MatterEndPoint KEYWORD1 ####################################### @@ -16,7 +18,6 @@ MatterEndPoint KEYWORD1 begin KEYWORD2 end KEYWORD2 -start KEYWORD2 getManualPairingCode KEYWORD2 getOnboardingQRCodeUrl KEYWORD2 isDeviceCommissioned KEYWORD2 @@ -27,8 +28,13 @@ decommission KEYWORD2 attributeChangeCB KEYWORD2 setOnOff KEYWORD2 getOnOff KEYWORD2 +setBrightness KEYWORD2 +getBrightness KEYWORD2 toggle KEYWORD2 +updateAccessory KEYWORD2 +onChange KEYWORD2 onChangeOnOff KEYWORD2 +onChangeBrightness KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 49504babac0..857438cce03 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -1,3 +1,17 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #include #ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL @@ -27,25 +41,26 @@ esp_err_t matter_light_attribute_update( static esp_err_t app_attribute_update_cb( attribute::callback_type_t type, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val, void *priv_data ) { + log_d("Attribute update callback: type: %u, endpoint: %u, cluster: %u, attribute: %u, val: %u", type, endpoint_id, cluster_id, attribute_id, val->val.u32); esp_err_t err = ESP_OK; MatterEndPoint *ep = (MatterEndPoint *)priv_data; // endpoint pointer to base class switch (type) { case PRE_UPDATE: // Callback before updating the value in the database - log_i("Attribute update callback: PRE_UPDATE"); + log_v("Attribute update callback: PRE_UPDATE"); if (ep != NULL) { err = ep->attributeChangeCB(endpoint_id, cluster_id, attribute_id, val) ? ESP_OK : ESP_FAIL; } break; case POST_UPDATE: // Callback after updating the value in the database - log_i("Attribute update callback: POST_UPDATE"); + log_v("Attribute update callback: POST_UPDATE"); break; case READ: // Callback for reading the attribute value. This is used when the `ATTRIBUTE_FLAG_OVERRIDE` is set. - log_i("Attribute update callback: READ"); + log_v("Attribute update callback: READ"); break; case WRITE: // Callback for writing the attribute value. This is used when the `ATTRIBUTE_FLAG_OVERRIDE` is set. - log_i("Attribute update callback: WRITE"); + log_v("Attribute update callback: WRITE"); break; - default: log_i("Attribute update callback: Unknown type %d", type); + default: log_v("Attribute update callback: Unknown type %d", type); } return err; } @@ -114,7 +129,7 @@ void ArduinoMatter::_init() { void ArduinoMatter::begin() { if (!_matter_has_started) { - log_w("No Matter endpoint has been created. Please create an endpoint first."); + log_e("No Matter endpoint has been created. Please create an endpoint first."); return; } diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index a1ce0f2f644..f88b7788016 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -1,9 +1,25 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #pragma once #include #ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL #include #include +#include +#include using namespace esp_matter; @@ -30,6 +46,7 @@ class ArduinoMatter { // list of Matter EndPoints Friend Classes friend class MatterOnOffLight; + friend class MatterDimmableLight; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index 2be5bf5bb5d..02577957e8e 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -1,3 +1,17 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #pragma once #include #ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL @@ -14,7 +28,7 @@ class MatterEndPoint { void setEndPointId(uint16_t ep) { endpoint_id = ep; } - + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; protected: diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp new file mode 100644 index 00000000000..7907ae3a90a --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp @@ -0,0 +1,184 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterDimmableLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter DimmableLight device has not begun."); + return false; + } + + log_d("Dimmable Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + + if (endpoint_id == getEndPointId()) { + switch (cluster_id) { + case OnOff::Id: + if (attribute_id == OnOff::Attributes::OnOff::Id) { + log_d("DimmableLight On/Off State changed to %d", val->val.b); + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(val->val.b, brightnessLevel); + } + if (ret == true) { + onOffState = val->val.b; + } + } + break; + case LevelControl::Id: + if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { + log_d("DimmableLight Brightness changed to %d", val->val.u8); + if (_onChangeBrightnessCB != NULL) { + ret &= _onChangeBrightnessCB(val->val.u8); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, val->val.u8); + } + if (ret == true) { + brightnessLevel = val->val.u8; + } + } + break; + } + } + return ret; +} + +MatterDimmableLight::MatterDimmableLight() {} + +MatterDimmableLight::~MatterDimmableLight() { + end(); +} + +bool MatterDimmableLight::begin(bool initialState, uint8_t brightness) { + ArduinoMatter::_init(); + dimmable_light::config_t light_config; + + light_config.on_off.on_off = initialState; + light_config.on_off.lighting.start_up_on_off = nullptr; + onOffState = initialState; + + light_config.level_control.current_level = brightness; + light_config.level_control.lighting.start_up_current_level = nullptr; + brightnessLevel = brightness; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = dimmable_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create dimmable light endpoint"); + return false; + } + + setEndPointId(endpoint::get_id(endpoint)); + log_i("Dimmable Light created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterDimmableLight::end() { + started = false; +} + +bool MatterDimmableLight::setOnOff(bool newState) { + if (!started) { + log_e("Matter Dimmable Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (onOffState == newState) { + return true; + } + + onOffState = newState; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, OnOff::Id); + attribute_t *attribute = attribute::get(cluster, OnOff::Attributes::OnOff::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.b != onOffState) { + val.val.b = onOffState; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); + } + return true; +} + +void MatterDimmableLight::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState, brightnessLevel); + } +} + +bool MatterDimmableLight::getOnOff() { + return onOffState; +} + +bool MatterDimmableLight::toggle() { + return setOnOff(!onOffState); +} + +bool MatterDimmableLight::setBrightness(uint8_t newBrightness) { + if (!started) { + log_w("Matter Dimmable Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (brightnessLevel == newBrightness) { + return true; + } + + brightnessLevel = newBrightness; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *attribute = attribute::get(cluster, LevelControl::Attributes::CurrentLevel::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.u8 != brightnessLevel) { + val.val.u8 = brightnessLevel; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); + } + return true; +} + +uint8_t MatterDimmableLight::getBrightness() { + return brightnessLevel; +} + +MatterDimmableLight::operator bool() { + return getOnOff(); +} + +void MatterDimmableLight::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h new file mode 100644 index 00000000000..fbfccde6105 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -0,0 +1,73 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterDimmableLight : public MatterEndPoint { +public: + static const uint8_t MAX_BRIGHTNESS = 255; + + MatterDimmableLight(); + ~MatterDimmableLight(); + // default initial state is off and brightness is 0 + virtual bool begin(bool initialState = false, uint8_t brightness = 0); + // this will just stop processing Light Matter events + void end(); + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current light state + bool toggle(); // returns true if successful + + bool setBrightness(uint8_t newBrightness); // returns true if successful + uint8_t getBrightness(); // returns current brightness + + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // User Callback for whenever the Light On/Off state is changed by the Matter Controller + using EndPointOnOffCB = std::function; + void onChangeOnOff(EndPointOnOffCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } + // User Callback for whenever the Light brightness value [0..255] is changed by the Matter Controller + using EndPointBrightnessCB = std::function; + void onChangeBrightness(EndPointBrightnessCB onChangeCB) { + _onChangeBrightnessCB = onChangeCB; + } + + // User Callback for whenever any parameter is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) + uint8_t brightnessLevel = 0; // default initial brightness is 0, but it can be changed by begin(bool, uint8_t) + EndPointOnOffCB _onChangeOnOffCB = NULL; + EndPointBrightnessCB _onChangeBrightnessCB = NULL; + EndPointCB _onChangeCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterOnOffLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp similarity index 60% rename from libraries/Matter/src/MatterOnOffLight.cpp rename to libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp index 7e8926ffdef..3f71ff1eb76 100644 --- a/libraries/Matter/src/MatterOnOffLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp @@ -1,9 +1,23 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #include #ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL #include #include -#include +#include using namespace esp_matter; using namespace esp_matter::endpoint; @@ -12,19 +26,24 @@ using namespace chip::app::Clusters; bool MatterOnOffLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { bool ret = true; if (!started) { - log_w("Matter On-Off Light device has not begun."); + log_e("Matter On-Off Light device has not begun."); return false; } + log_d("OnOff Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + if (endpoint_id == getEndPointId()) { + log_d("OnOffLight state changed to %d", val->val.b); if (cluster_id == OnOff::Id) { if (attribute_id == OnOff::Attributes::OnOff::Id) { + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } if (_onChangeCB != NULL) { - ret = _onChangeCB(val->val.b); - log_d("OnOffLight state changed to %d", val->val.b); - if (ret == true) { - state = val->val.b; - } + ret &= _onChangeCB(val->val.b); + } + if (ret == true) { + onOffState = val->val.b; } } } @@ -41,9 +60,10 @@ MatterOnOffLight::~MatterOnOffLight() { bool MatterOnOffLight::begin(bool initialState) { ArduinoMatter::_init(); on_off_light::config_t light_config; + light_config.on_off.on_off = initialState; - state = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; + onOffState = initialState; // endpoint handles can be used to add/modify clusters. endpoint_t *endpoint = on_off_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); @@ -62,18 +82,24 @@ void MatterOnOffLight::end() { started = false; } +void MatterOnOffLight::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState); + } +} + bool MatterOnOffLight::setOnOff(bool newState) { if (!started) { - log_w("Matter On-Off Light device has not begun."); + log_e("Matter On-Off Light device has not begun."); return false; } // avoid processing the a "no-change" - if (state == newState) { + if (onOffState == newState) { return true; } - state = newState; + onOffState = newState; endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); cluster_t *cluster = cluster::get(endpoint, OnOff::Id); @@ -82,19 +108,19 @@ bool MatterOnOffLight::setOnOff(bool newState) { esp_matter_attr_val_t val = esp_matter_invalid(NULL); attribute::get_val(attribute, &val); - if (val.val.b != state) { - val.val.b = state; + if (val.val.b != onOffState) { + val.val.b = onOffState; attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); } return true; } bool MatterOnOffLight::getOnOff() { - return state; + return onOffState; } bool MatterOnOffLight::toggle() { - return setOnOff(!state); + return setOnOff(!onOffState); } MatterOnOffLight::operator bool() { diff --git a/libraries/Matter/src/MatterOnOffLight.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h similarity index 55% rename from libraries/Matter/src/MatterOnOffLight.h rename to libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h index 39220652e21..6d140a9948e 100644 --- a/libraries/Matter/src/MatterOnOffLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h @@ -1,3 +1,17 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + #pragma once #include #ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL @@ -16,19 +30,27 @@ class MatterOnOffLight : public MatterEndPoint { bool getOnOff(); // returns current light state bool toggle(); // returns true if successful + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + operator bool(); // returns current light state void operator=(bool state); // turns light on or off // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); // User Callback for whenever the Light state is changed by the Matter Controller using EndPointCB = std::function; - void onChangeOnOff(EndPointCB onChangeCB) { + void onChange(EndPointCB onChangeCB) { _onChangeCB = onChangeCB; } + void onChangeOnOff(EndPointCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } protected: bool started = false; - bool state = false; // default initial state is off, but it can be changed by begin(bool) + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) EndPointCB _onChangeCB = NULL; + EndPointCB _onChangeOnOffCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 501f8a9a4eb77cd0d0751f063540af267a1ef98f Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 5 Nov 2024 20:01:11 -0300 Subject: [PATCH 070/179] fix(esptool): Bump esptool version to 4.9.dev1 on 3.1.x (#10570) --- package/package_esp32_index.template.json | 61 +++++++++++++---------- platform.txt | 1 - 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 5f05469a185..837c37bf432 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -72,7 +72,7 @@ { "packager": "esp32", "name": "esptool_py", - "version": "4.8.1" + "version": "4.9.dev1" }, { "packager": "esp32", @@ -460,49 +460,56 @@ }, { "name": "esptool_py", - "version": "4.8.1", + "version": "4.9.dev1", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-amd64.tar.gz", - "archiveFileName": "esptool-v4.8.1-linux-amd64.tar.gz", - "checksum": "SHA-256:aaaaa25e1c64442ae93604812376783dbc50f34536221b5897456e12f01e1bfd", - "size": "64635657" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-amd64.tar.gz", + "archiveFileName": "esptool-v4.9.dev1-linux-amd64.tar.gz", + "checksum": "SHA-256:21f6c2155f0ec9e5b475c8a4bf59803d8cfb4d74f4e488a80f97da3d77542bba", + "size": "64632960" + }, + { + "host": "arm-linux-gnueabihf", + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-arm32.tar.gz", + "archiveFileName": "esptool-v4.9.dev1-linux-arm32.tar.gz", + "checksum": "SHA-256:818477f10814b2bd82078fc6695663ac84220d3947722ce1880a6c867d5c2997", + "size": "46042432" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-arm64.tar.gz", - "archiveFileName": "esptool-v4.8.1-linux-arm64.tar.gz", - "checksum": "SHA-256:76170a9282bdc52fddd75e4498fd6bee55fe19088a34ab363b3aeff800d73f60", - "size": "54449306" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-arm64.tar.gz", + "archiveFileName": "esptool-v4.9.dev1-linux-arm64.tar.gz", + "checksum": "SHA-256:b377a130a4dca58f3a31c66ed0b9858cc057c998741222cccdb6e5a724651a1f", + "size": "54459357" }, { - "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-linux-arm32.tar.gz", - "archiveFileName": "esptool-v4.8.1-linux-arm32.tar.gz", - "checksum": "SHA-256:26b842e22a66b3d01e830a4784686a69cfb107d774a4093327ec6bba7bb17794", - "size": "45868720" + "host": "x86_64-apple-darwin", + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-macos-amd64.tar.gz", + "archiveFileName": "esptool-v4.9.dev1-macos-amd64.tar.gz", + "checksum": "SHA-256:25cc246b20230afc287ffdfe95f57b3fab23cec88a6dde3b5092ec05926b5431", + "size": "32386336" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-macos.tar.gz", - "archiveFileName": "esptool-v4.8.1-macos.tar.gz", - "checksum": "SHA-256:6e1fc5ea04490e849c925c48d5cee590164fcf9b9bd419a7b014c2fb48a13743", - "size": "29828542" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-macos-arm64.tar.gz", + "archiveFileName": "esptool-v4.9.dev1-macos-arm64.tar.gz", + "checksum": "SHA-256:b845d678db1d1559d82894e68366683a7fc3809371a5f5def67c30c9dee15912", + "size": "29841092" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-win64.zip", - "archiveFileName": "esptool-v4.8.1-win64.zip", - "checksum": "SHA-256:3e97fb990fdd721b923b478eaaa046967c7919dbc9cbd04c445307571177918a", - "size": "33612728" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-win64.zip", + "archiveFileName": "esptool-v4.9.dev1-win64.zip", + "checksum": "SHA-256:f649a212e086b06ca6ee595feffd7a4706696ea43a2cd1a4f49352829e8ac96e", + "size": "35812159" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC1/esptool-v4.8.1-win64.zip", - "archiveFileName": "esptool-v4.8.1-win64.zip", - "checksum": "SHA-256:3e97fb990fdd721b923b478eaaa046967c7919dbc9cbd04c445307571177918a", - "size": "33612728" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-win64.zip", + "archiveFileName": "esptool-v4.9.dev1-win64.zip", + "checksum": "SHA-256:f649a212e086b06ca6ee595feffd7a4706696ea43a2cd1a4f49352829e8ac96e", + "size": "35812159" } ] }, diff --git a/platform.txt b/platform.txt index 00052ec807e..b075e539866 100644 --- a/platform.txt +++ b/platform.txt @@ -10,7 +10,6 @@ tools.riscv32-esp-elf-gdb.path={runtime.platform.path}/tools/riscv32-esp-elf-gdb tools.esptool_py.path={runtime.platform.path}/tools/esptool tools.esptool_py.cmd=esptool -tools.esptool_py.cmd.linux=esptool tools.esptool_py.cmd.windows=esptool.exe tools.esptool_py.network_cmd=python3 "{runtime.platform.path}/tools/espota.py" -r From c0092206a6d37131ac269175a2bf317a4cf93fb1 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 6 Nov 2024 18:29:57 +0200 Subject: [PATCH 071/179] fix(wifi): Fix WiFiMulti on ESP32-P4 --- libraries/WiFi/src/WiFiMulti.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/WiFi/src/WiFiMulti.h b/libraries/WiFi/src/WiFiMulti.h index bda053b32d2..f3f823fa5d1 100644 --- a/libraries/WiFi/src/WiFiMulti.h +++ b/libraries/WiFi/src/WiFiMulti.h @@ -26,6 +26,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFi.h" From 32e2230de2616ed08cf094a85ac9c8ddbd628f8e Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 6 Nov 2024 19:31:29 -0300 Subject: [PATCH 072/179] fix(wifi): Fix requirements and guards for hosted Wi-Fi (#10579) * fix(wifi): Fix requirements and guards for hosted Wi-Fi * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Me No Dev --- .../ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json | 5 ++--- libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json | 5 ++--- libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json | 5 ++--- libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json | 5 ++--- libraries/ESP_NOW/src/ESP32_NOW.cpp | 7 +++++++ libraries/ESP_NOW/src/ESP32_NOW.h | 7 +++++++ libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp | 7 +++++++ libraries/ESP_NOW/src/ESP32_NOW_Serial.h | 7 +++++++ .../examples/HTTPClientEnterprise/HTTPClientEnterprise.ino | 6 ++++++ libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json | 5 ++--- .../WiFiClientSecureEnterprise.ino | 5 +++++ .../examples/WiFiClientSecureEnterprise/ci.json | 5 ++--- libraries/WiFi/examples/WPS/WPS.ino | 5 +++++ libraries/WiFi/examples/WPS/ci.json | 5 ++--- .../WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino | 5 +++++ libraries/WiFi/examples/WiFiSmartConfig/ci.json | 5 ++--- tests/validation/wifi/ci.json | 5 ++--- 17 files changed, 67 insertions(+), 27 deletions(-) diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json +++ b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/ESP_NOW/src/ESP32_NOW.cpp b/libraries/ESP_NOW/src/ESP32_NOW.cpp index 69b8ddd96a5..6fd3ff0a0b1 100644 --- a/libraries/ESP_NOW/src/ESP32_NOW.cpp +++ b/libraries/ESP_NOW/src/ESP32_NOW.cpp @@ -1,3 +1,8 @@ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support" +#else + #include "ESP32_NOW.h" #include #include "esp_system.h" @@ -406,3 +411,5 @@ size_t ESP_NOW_Peer::send(const uint8_t *data, int len) { ESP_NOW_Peer::operator bool() const { return added; } + +#endif diff --git a/libraries/ESP_NOW/src/ESP32_NOW.h b/libraries/ESP_NOW/src/ESP32_NOW.h index 1bbcabb2557..efba9243aee 100644 --- a/libraries/ESP_NOW/src/ESP32_NOW.h +++ b/libraries/ESP_NOW/src/ESP32_NOW.h @@ -1,5 +1,10 @@ #pragma once +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support" +#else + #include "esp_wifi_types.h" #include "Print.h" #include "esp_now.h" @@ -77,3 +82,5 @@ class ESP_NOW_Peer { }; extern ESP_NOW_Class ESP_NOW; + +#endif diff --git a/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp b/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp index 17740d1331a..5603da2ba13 100644 --- a/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp +++ b/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp @@ -1,3 +1,8 @@ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support" +#else + #include "ESP32_NOW_Serial.h" #include #include "esp_now.h" @@ -277,3 +282,5 @@ void ESP_NOW_Serial_Class::onSent(bool success) { } } } + +#endif diff --git a/libraries/ESP_NOW/src/ESP32_NOW_Serial.h b/libraries/ESP_NOW/src/ESP32_NOW_Serial.h index b1f41456320..7cc43d85ef8 100644 --- a/libraries/ESP_NOW/src/ESP32_NOW_Serial.h +++ b/libraries/ESP_NOW/src/ESP32_NOW_Serial.h @@ -1,5 +1,10 @@ #pragma once +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support" +#else + #include "esp_wifi_types.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" @@ -48,3 +53,5 @@ class ESP_NOW_Serial_Class : public Stream, public ESP_NOW_Peer { void onReceive(const uint8_t *data, size_t len, bool broadcast); void onSent(bool success); }; + +#endif diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino b/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino index 7f1d1dd3575..d8b66ac19d9 100644 --- a/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino +++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino @@ -3,6 +3,12 @@ /*|TESTED BOARDS: Devkit v1 DOIT, Devkitc v4 |*/ /*|CORE: June 2018 |*/ /*|----------------------------------------------------------|*/ + +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "WPA-Enterprise is only supported in SoCs with native Wi-Fi support" +#endif + #include #include #if __has_include("esp_eap_client.h") diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json index cbdd28f773d..04eb62b977a 100644 --- a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json +++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json @@ -1,7 +1,6 @@ { "fqbn_append": "PartitionScheme=huge_app", - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino index a7149e05e6e..b9e01d15682 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino @@ -13,6 +13,11 @@ // Note: this example is outdated and may not work! // For more examples see https://github.com/martinius96/ESP32-eduroam +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "WPA-Enterprise is only supported in SoCs with native Wi-Fi support" +#endif + #include #include #if __has_include("esp_eap_client.h") diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json index cbdd28f773d..04eb62b977a 100644 --- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json +++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json @@ -1,7 +1,6 @@ { "fqbn_append": "PartitionScheme=huge_app", - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/WiFi/examples/WPS/WPS.ino b/libraries/WiFi/examples/WPS/WPS.ino index fc353dcbfb8..aacdd14ddab 100644 --- a/libraries/WiFi/examples/WPS/WPS.ino +++ b/libraries/WiFi/examples/WPS/WPS.ino @@ -14,6 +14,11 @@ Author: Pranav Cherukupalli */ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "WPS is only supported in SoCs with native Wi-Fi support" +#endif + #include "WiFi.h" #include "esp_wps.h" /* diff --git a/libraries/WiFi/examples/WPS/ci.json b/libraries/WiFi/examples/WPS/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/WiFi/examples/WPS/ci.json +++ b/libraries/WiFi/examples/WPS/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino b/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino index 6d372bb1098..724355c6a37 100644 --- a/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino +++ b/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino @@ -1,3 +1,8 @@ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "SmartConfig is only supported in SoCs with native Wi-Fi support" +#endif + #include "WiFi.h" void setup() { diff --git a/libraries/WiFi/examples/WiFiSmartConfig/ci.json b/libraries/WiFi/examples/WiFiSmartConfig/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/WiFi/examples/WiFiSmartConfig/ci.json +++ b/libraries/WiFi/examples/WiFiSmartConfig/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/tests/validation/wifi/ci.json b/tests/validation/wifi/ci.json index 94819d60efc..36e91b221cb 100644 --- a/tests/validation/wifi/ci.json +++ b/tests/validation/wifi/ci.json @@ -21,8 +21,7 @@ "hardware": false, "qemu": false }, - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } From 1ecbbae7d3af11ab1a10986988ef9a4cf8411dc7 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 6 Nov 2024 21:25:38 -0300 Subject: [PATCH 073/179] fix(wifi): Guard missing sketches for hosted Wi-Fi --- .../examples/WiFiClientEnterprise/WiFiClientEnterprise.ino | 5 +++++ libraries/WiFi/examples/WiFiClientEnterprise/ci.json | 5 ++--- libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino | 5 +++++ libraries/WiFiProv/examples/WiFiProv/ci.json | 5 ++--- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libraries/WiFi/examples/WiFiClientEnterprise/WiFiClientEnterprise.ino b/libraries/WiFi/examples/WiFiClientEnterprise/WiFiClientEnterprise.ino index 75b7a4dcc06..198f97e2805 100644 --- a/libraries/WiFi/examples/WiFiClientEnterprise/WiFiClientEnterprise.ino +++ b/libraries/WiFi/examples/WiFiClientEnterprise/WiFiClientEnterprise.ino @@ -1,3 +1,8 @@ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "WPA-Enterprise is only supported in SoCs with native Wi-Fi support" +#endif + #include //Wifi library #define EAP_IDENTITY "login" //if connecting from another corporation, use identity@organization.domain in Eduroam #define EAP_USERNAME "login" //oftentimes just a repeat of the identity diff --git a/libraries/WiFi/examples/WiFiClientEnterprise/ci.json b/libraries/WiFi/examples/WiFiClientEnterprise/ci.json index 618e46bd244..36babb82730 100644 --- a/libraries/WiFi/examples/WiFiClientEnterprise/ci.json +++ b/libraries/WiFi/examples/WiFiClientEnterprise/ci.json @@ -1,6 +1,5 @@ { - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } diff --git a/libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino b/libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino index 59b8bfc359e..76025d75770 100644 --- a/libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino +++ b/libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino @@ -8,6 +8,11 @@ Note: This sketch takes up a lot of space for the app and may not be able to fla - for example "No OTA (2MB APP/2MB SPIFFS)" */ +#include "sdkconfig.h" +#if CONFIG_ESP_WIFI_REMOTE_ENABLED +#error "WiFiProv is only supported in SoCs with native Wi-Fi support" +#endif + #include "WiFiProv.h" #include "WiFi.h" diff --git a/libraries/WiFiProv/examples/WiFiProv/ci.json b/libraries/WiFiProv/examples/WiFiProv/ci.json index cbdd28f773d..04eb62b977a 100644 --- a/libraries/WiFiProv/examples/WiFiProv/ci.json +++ b/libraries/WiFiProv/examples/WiFiProv/ci.json @@ -1,7 +1,6 @@ { "fqbn_append": "PartitionScheme=huge_app", - "requires_any": [ - "CONFIG_SOC_WIFI_SUPPORTED=y", - "CONFIG_ESP_WIFI_REMOTE_ENABLED=y" + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y" ] } From f8d9ffb74a12e6de64d79c567f0a8a34169133d3 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 12 Nov 2024 11:29:52 +0200 Subject: [PATCH 074/179] fix(net): Allow to compile without IPv6 enabled (#10582) * fix(net): Allow to compile without IPv6 enabled cc: @Jason2866 * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/IPAddress.cpp | 20 ++++++ cores/esp32/IPAddress.h | 3 + libraries/AsyncUDP/src/AsyncUDP.cpp | 61 +++++++++++++++++++ libraries/AsyncUDP/src/AsyncUDP.h | 6 ++ libraries/Ethernet/src/ETH.cpp | 2 + libraries/Network/src/NetworkClient.cpp | 8 +++ libraries/Network/src/NetworkEvents.h | 4 ++ libraries/Network/src/NetworkInterface.cpp | 10 +++ libraries/Network/src/NetworkInterface.h | 2 + libraries/Network/src/NetworkManager.cpp | 6 ++ libraries/Network/src/NetworkServer.cpp | 23 +++++++ libraries/Network/src/NetworkUdp.cpp | 10 ++- .../NetworkClientSecure/src/ssl_client.cpp | 4 ++ libraries/WiFi/src/AP.cpp | 2 + libraries/WiFi/src/STA.cpp | 2 + libraries/WiFi/src/WiFiAP.cpp | 3 +- libraries/WiFi/src/WiFiAP.h | 3 + libraries/WiFi/src/WiFiGeneric.cpp | 6 ++ libraries/WiFi/src/WiFiGeneric.h | 3 + libraries/WiFi/src/WiFiMulti.cpp | 4 ++ libraries/WiFi/src/WiFiMulti.h | 2 + libraries/WiFi/src/WiFiSTA.cpp | 2 + libraries/WiFi/src/WiFiSTA.h | 3 + libraries/WiFi/src/WiFiScan.h | 1 + libraries/WiFi/src/WiFiType.h | 1 + libraries/WiFiProv/src/WiFiProv.cpp | 3 +- libraries/WiFiProv/src/WiFiProv.h | 3 +- 27 files changed, 192 insertions(+), 5 deletions(-) diff --git a/cores/esp32/IPAddress.cpp b/cores/esp32/IPAddress.cpp index 1fd2a08e9c5..299a625ff27 100644 --- a/cores/esp32/IPAddress.cpp +++ b/cores/esp32/IPAddress.cpp @@ -22,6 +22,10 @@ #include "lwip/netif.h" #include "StreamString.h" +#ifndef CONFIG_LWIP_IPV6 +#define IP6_NO_ZONE 0 +#endif + IPAddress::IPAddress() : IPAddress(IPv4) {} IPAddress::IPAddress(IPType ip_type) { @@ -387,6 +391,7 @@ IPAddress::IPAddress(const ip_addr_t *addr) { } void IPAddress::to_ip_addr_t(ip_addr_t *addr) const { +#if CONFIG_LWIP_IPV6 if (_type == IPv6) { addr->type = IPADDR_TYPE_V6; addr->u_addr.ip6.addr[0] = _address.dword[0]; @@ -400,9 +405,13 @@ void IPAddress::to_ip_addr_t(ip_addr_t *addr) const { addr->type = IPADDR_TYPE_V4; addr->u_addr.ip4.addr = _address.dword[IPADDRESS_V4_DWORD_INDEX]; } +#else + addr->addr = _address.dword[IPADDRESS_V4_DWORD_INDEX]; +#endif } IPAddress &IPAddress::from_ip_addr_t(const ip_addr_t *addr) { +#if CONFIG_LWIP_IPV6 if (addr->type == IPADDR_TYPE_V6) { _type = IPv6; _address.dword[0] = addr->u_addr.ip6.addr[0]; @@ -413,13 +422,21 @@ IPAddress &IPAddress::from_ip_addr_t(const ip_addr_t *addr) { _zone = addr->u_addr.ip6.zone; #endif /* LWIP_IPV6_SCOPES */ } else { +#endif _type = IPv4; memset(_address.bytes, 0, sizeof(_address.bytes)); +#if CONFIG_LWIP_IPV6 _address.dword[IPADDRESS_V4_DWORD_INDEX] = addr->u_addr.ip4.addr; +#else + _address.dword[IPADDRESS_V4_DWORD_INDEX] = addr->addr; +#endif +#if CONFIG_LWIP_IPV6 } +#endif return *this; } +#if CONFIG_LWIP_IPV6 esp_ip6_addr_type_t IPAddress::addr_type() const { if (_type != IPv6) { return ESP_IP6_ADDR_IS_UNKNOWN; @@ -428,6 +445,9 @@ esp_ip6_addr_type_t IPAddress::addr_type() const { to_ip_addr_t(&addr); return esp_netif_ip6_get_addr_type((esp_ip6_addr_t *)(&(addr.u_addr.ip6))); } +#endif +#if CONFIG_LWIP_IPV6 const IPAddress IN6ADDR_ANY(IPv6); +#endif const IPAddress INADDR_NONE(0, 0, 0, 0); diff --git a/cores/esp32/IPAddress.h b/cores/esp32/IPAddress.h index b88aeed3026..923f4dd5ca6 100644 --- a/cores/esp32/IPAddress.h +++ b/cores/esp32/IPAddress.h @@ -24,6 +24,7 @@ #include "WString.h" #include "lwip/ip_addr.h" #include "esp_netif_ip_addr.h" +#include "sdkconfig.h" #define IPADDRESS_V4_BYTES_INDEX 12 #define IPADDRESS_V4_DWORD_INDEX 3 @@ -115,7 +116,9 @@ class IPAddress : public Printable { IPAddress(const ip_addr_t *addr); void to_ip_addr_t(ip_addr_t *addr) const; IPAddress &from_ip_addr_t(const ip_addr_t *addr); +#if CONFIG_LWIP_IPV6 esp_ip6_addr_type_t addr_type() const; +#endif uint8_t zone() const { return (type() == IPv6) ? _zone : 0; } diff --git a/libraries/AsyncUDP/src/AsyncUDP.cpp b/libraries/AsyncUDP/src/AsyncUDP.cpp index 5549276de44..48714bce5c5 100644 --- a/libraries/AsyncUDP/src/AsyncUDP.cpp +++ b/libraries/AsyncUDP/src/AsyncUDP.cpp @@ -328,25 +328,36 @@ AsyncUDPPacket::AsyncUDPPacket(AsyncUDP *udp, pbuf *pb, const ip_addr_t *raddr, pbuf_ref(_pb); //memcpy(&_remoteIp, raddr, sizeof(ip_addr_t)); +#if CONFIG_LWIP_IPV6 _remoteIp.type = raddr->type; _localIp.type = _remoteIp.type; +#endif eth_hdr *eth = NULL; udp_hdr *udphdr = (udp_hdr *)(_data - UDP_HLEN); _localPort = ntohs(udphdr->dest); _remotePort = ntohs(udphdr->src); +#if CONFIG_LWIP_IPV6 if (_remoteIp.type == IPADDR_TYPE_V4) { +#endif eth = (eth_hdr *)(_data - UDP_HLEN - IP_HLEN - SIZEOF_ETH_HDR); struct ip_hdr *iphdr = (struct ip_hdr *)(_data - UDP_HLEN - IP_HLEN); +#if CONFIG_LWIP_IPV6 _localIp.u_addr.ip4.addr = iphdr->dest.addr; _remoteIp.u_addr.ip4.addr = iphdr->src.addr; +#else + _localIp.addr = iphdr->dest.addr; + _remoteIp.addr = iphdr->src.addr; +#endif +#if CONFIG_LWIP_IPV6 } else { eth = (eth_hdr *)(_data - UDP_HLEN - IP6_HLEN - SIZEOF_ETH_HDR); struct ip6_hdr *ip6hdr = (struct ip6_hdr *)(_data - UDP_HLEN - IP6_HLEN); memcpy(&_localIp.u_addr.ip6.addr, (uint8_t *)ip6hdr->dest.addr, 16); memcpy(&_remoteIp.u_addr.ip6.addr, (uint8_t *)ip6hdr->src.addr, 16); } +#endif memcpy(_remoteMac, eth->src.addr, 6); struct netif *netif = NULL; @@ -413,36 +424,48 @@ tcpip_adapter_if_t AsyncUDPPacket::interface() { } IPAddress AsyncUDPPacket::localIP() { +#if CONFIG_LWIP_IPV6 if (_localIp.type != IPADDR_TYPE_V4) { return IPAddress(); } return IPAddress(_localIp.u_addr.ip4.addr); +#else + return IPAddress(_localIp.addr); +#endif } +#if CONFIG_LWIP_IPV6 IPAddress AsyncUDPPacket::localIPv6() { if (_localIp.type != IPADDR_TYPE_V6) { return IPAddress(IPv6); } return IPAddress(IPv6, (const uint8_t *)_localIp.u_addr.ip6.addr, _localIp.u_addr.ip6.zone); } +#endif uint16_t AsyncUDPPacket::localPort() { return _localPort; } IPAddress AsyncUDPPacket::remoteIP() { +#if CONFIG_LWIP_IPV6 if (_remoteIp.type != IPADDR_TYPE_V4) { return IPAddress(); } return IPAddress(_remoteIp.u_addr.ip4.addr); +#else + return IPAddress(_remoteIp.addr); +#endif } +#if CONFIG_LWIP_IPV6 IPAddress AsyncUDPPacket::remoteIPv6() { if (_remoteIp.type != IPADDR_TYPE_V6) { return IPAddress(IPv6); } return IPAddress(IPv6, (const uint8_t *)_remoteIp.u_addr.ip6.addr, _remoteIp.u_addr.ip6.zone); } +#endif uint16_t AsyncUDPPacket::remotePort() { return _remotePort; @@ -453,14 +476,22 @@ void AsyncUDPPacket::remoteMac(uint8_t *mac) { } bool AsyncUDPPacket::isIPv6() { +#if CONFIG_LWIP_IPV6 return _localIp.type == IPADDR_TYPE_V6; +#else + return false; +#endif } bool AsyncUDPPacket::isBroadcast() { +#if CONFIG_LWIP_IPV6 if (_localIp.type == IPADDR_TYPE_V6) { return false; } uint32_t ip = _localIp.u_addr.ip4.addr; +#else + uint32_t ip = _localIp.addr; +#endif return ip == 0xFFFFFFFF || ip == 0 || (ip & 0xFF000000) == 0xFF000000; } @@ -571,6 +602,7 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap } netif = (struct netif *)nif; +#if CONFIG_LWIP_IPV6 if (addr->type == IPADDR_TYPE_V4) { if (join) { if (igmp_joingroup_netif(netif, (const ip4_addr *)&(addr->u_addr.ip4))) { @@ -592,7 +624,19 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap } } } +#else + if (join) { + if (igmp_joingroup_netif(netif, (const ip4_addr *)(addr))) { + return ESP_ERR_INVALID_STATE; + } + } else { + if (igmp_leavegroup_netif(netif, (const ip4_addr *)(addr))) { + return ESP_ERR_INVALID_STATE; + } + } +#endif } else { +#if CONFIG_LWIP_IPV6 if (addr->type == IPADDR_TYPE_V4) { if (join) { if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)&(addr->u_addr.ip4))) { @@ -614,6 +658,17 @@ static esp_err_t joinMulticastGroup(const ip_addr_t *addr, bool join, tcpip_adap } } } +#else + if (join) { + if (igmp_joingroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) { + return ESP_ERR_INVALID_STATE; + } + } else { + if (igmp_leavegroup((const ip4_addr *)IP4_ADDR_ANY, (const ip4_addr *)(addr))) { + return ESP_ERR_INVALID_STATE; + } + } +#endif } return ESP_OK; } @@ -722,18 +777,24 @@ size_t AsyncUDP::writeTo(const uint8_t *data, size_t len, const IPAddress addr, } IPAddress AsyncUDP::listenIP() { +#if CONFIG_LWIP_IPV6 if (!_pcb || _pcb->remote_ip.type != IPADDR_TYPE_V4) { return IPAddress(); } return IPAddress(_pcb->remote_ip.u_addr.ip4.addr); +#else + return IPAddress(_pcb->remote_ip.addr); +#endif } +#if CONFIG_LWIP_IPV6 IPAddress AsyncUDP::listenIPv6() { if (!_pcb || _pcb->remote_ip.type != IPADDR_TYPE_V6) { return IPAddress(IPv6); } return IPAddress(IPv6, (const uint8_t *)_pcb->remote_ip.u_addr.ip6.addr, _pcb->remote_ip.u_addr.ip6.zone); } +#endif size_t AsyncUDP::write(const uint8_t *data, size_t len) { return writeTo(data, len, &(_pcb->remote_ip), _pcb->remote_port); diff --git a/libraries/AsyncUDP/src/AsyncUDP.h b/libraries/AsyncUDP/src/AsyncUDP.h index 160fb7b1515..cd96d852542 100644 --- a/libraries/AsyncUDP/src/AsyncUDP.h +++ b/libraries/AsyncUDP/src/AsyncUDP.h @@ -79,10 +79,14 @@ class AsyncUDPPacket : public Stream { tcpip_adapter_if_t interface(); IPAddress localIP(); +#if CONFIG_LWIP_IPV6 IPAddress localIPv6(); +#endif uint16_t localPort(); IPAddress remoteIP(); +#if CONFIG_LWIP_IPV6 IPAddress remoteIPv6(); +#endif uint16_t remotePort(); void remoteMac(uint8_t *mac); @@ -146,7 +150,9 @@ class AsyncUDP : public Print { size_t broadcast(AsyncUDPMessage &message); IPAddress listenIP(); +#if CONFIG_LWIP_IPV6 IPAddress listenIPv6(); +#endif bool connected(); esp_err_t lastErr(); operator bool(); diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index e3f2197221c..1bd8f367c3d 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -74,6 +74,7 @@ static void onEthConnected(arduino_event_id_t event, arduino_event_info_t info) log_e("Could not find ETH interface with that handle!"); return; } +#if CONFIG_LWIP_IPV6 if (_ethernets[index]->getStatusBits() & ESP_NETIF_WANT_IP6_BIT) { esp_err_t err = esp_netif_create_ip6_linklocal(_ethernets[index]->netif()); if (err != ESP_OK) { @@ -82,6 +83,7 @@ static void onEthConnected(arduino_event_id_t event, arduino_event_info_t info) log_v("Enabled IPv6 Link Local on %s", _ethernets[index]->desc()); } } +#endif } } diff --git a/libraries/Network/src/NetworkClient.cpp b/libraries/Network/src/NetworkClient.cpp index 0782b74f2a9..b560158e03d 100644 --- a/libraries/Network/src/NetworkClient.cpp +++ b/libraries/Network/src/NetworkClient.cpp @@ -210,6 +210,7 @@ int NetworkClient::connect(IPAddress ip, uint16_t port, int32_t timeout_ms) { _timeout = timeout_ms; int sockfd = -1; +#if CONFIG_LWIP_IPV6 if (ip.type() == IPv6) { struct sockaddr_in6 *tmpaddr = (struct sockaddr_in6 *)&serveraddr; sockfd = socket(AF_INET6, SOCK_STREAM, 0); @@ -218,12 +219,15 @@ int NetworkClient::connect(IPAddress ip, uint16_t port, int32_t timeout_ms) { tmpaddr->sin6_port = htons(port); tmpaddr->sin6_scope_id = ip.zone(); } else { +#endif struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serveraddr; sockfd = socket(AF_INET, SOCK_STREAM, 0); tmpaddr->sin_family = AF_INET; tmpaddr->sin_addr.s_addr = ip; tmpaddr->sin_port = htons(port); +#if CONFIG_LWIP_IPV6 } +#endif if (sockfd < 0) { log_e("socket: %d", errno); return 0; @@ -590,6 +594,7 @@ IPAddress NetworkClient::remoteIP(int fd) const { return IPAddress((uint32_t)(s->sin_addr.s_addr)); } +#if CONFIG_LWIP_IPV6 // IPv6, but it might be IPv4 mapped address if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&addr; @@ -600,6 +605,7 @@ IPAddress NetworkClient::remoteIP(int fd) const { } } log_e("NetworkClient::remoteIP Not AF_INET or AF_INET6?"); +#endif return (IPAddress(0, 0, 0, 0)); } @@ -630,6 +636,7 @@ IPAddress NetworkClient::localIP(int fd) const { return IPAddress((uint32_t)(s->sin_addr.s_addr)); } +#if CONFIG_LWIP_IPV6 // IPv6, but it might be IPv4 mapped address if (((struct sockaddr *)&addr)->sa_family == AF_INET6) { struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&addr; @@ -640,6 +647,7 @@ IPAddress NetworkClient::localIP(int fd) const { } } log_e("NetworkClient::localIP Not AF_INET or AF_INET6?"); +#endif return (IPAddress(0, 0, 0, 0)); } diff --git a/libraries/Network/src/NetworkEvents.h b/libraries/Network/src/NetworkEvents.h index 12e0222a79a..a84ced88496 100644 --- a/libraries/Network/src/NetworkEvents.h +++ b/libraries/Network/src/NetworkEvents.h @@ -24,8 +24,10 @@ #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" #include "esp_smartconfig.h" +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI #include "network_provisioning/network_config.h" #endif +#endif #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED constexpr int WIFI_SCANNING_BIT = BIT0; @@ -111,7 +113,9 @@ typedef union { #endif #if SOC_WIFI_SUPPORTED wifi_sta_config_t prov_cred_recv; +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI network_prov_wifi_sta_fail_reason_t prov_fail_reason; +#endif smartconfig_event_got_ssid_pswd_t sc_got_ssid_pswd; #endif } arduino_event_info_t; diff --git a/libraries/Network/src/NetworkInterface.cpp b/libraries/Network/src/NetworkInterface.cpp index e699d609ca1..4f310821204 100644 --- a/libraries/Network/src/NetworkInterface.cpp +++ b/libraries/Network/src/NetworkInterface.cpp @@ -106,6 +106,7 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void *event_data) { } else if (_interface_id >= ESP_NETIF_ID_ETH && _interface_id < ESP_NETIF_ID_MAX) { arduino_event.event_id = ARDUINO_EVENT_ETH_LOST_IP; } +#if CONFIG_LWIP_IPV6 } else if (event_id == IP_EVENT_GOT_IP6) { ip_event_got_ip6_t *event = (ip_event_got_ip6_t *)event_data; esp_ip6_addr_type_t addr_type = esp_netif_ip6_get_addr_type(&event->ip6_info.ip); @@ -134,6 +135,7 @@ void NetworkInterface::_onIpEvent(int32_t event_id, void *event_data) { } else if (_interface_id >= ESP_NETIF_ID_ETH && _interface_id < ESP_NETIF_ID_MAX) { arduino_event.event_id = ARDUINO_EVENT_ETH_GOT_IP6; } +#endif /* CONFIG_LWIP_IPV6 */ #if SOC_WIFI_SUPPORTED } else if (event_id == IP_EVENT_AP_STAIPASSIGNED && _interface_id == ESP_NETIF_ID_AP) { setStatusBits(ESP_NETIF_HAS_IP_BIT); @@ -326,6 +328,7 @@ bool NetworkInterface::hasGlobalIPv6() const { } bool NetworkInterface::enableIPv6(bool en) { +#if CONFIG_LWIP_IPV6 if (en) { setStatusBits(ESP_NETIF_WANT_IP6_BIT); if (_esp_netif != NULL && connected()) { @@ -341,6 +344,9 @@ bool NetworkInterface::enableIPv6(bool en) { clearStatusBits(ESP_NETIF_WANT_IP6_BIT); } return true; +#else + return false; +#endif } bool NetworkInterface::dnsIP(uint8_t dns_no, IPAddress ip) { @@ -739,6 +745,7 @@ uint8_t NetworkInterface::subnetCIDR() const { return calculateSubnetCIDR(IPAddress(ip.netmask.addr)); } +#if CONFIG_LWIP_IPV6 IPAddress NetworkInterface::linkLocalIPv6() const { if (_esp_netif == NULL) { return IPAddress(IPv6); @@ -760,6 +767,7 @@ IPAddress NetworkInterface::globalIPv6() const { } return IPAddress(IPv6, (const uint8_t *)addr.addr, addr.zone); } +#endif size_t NetworkInterface::printTo(Print &out) const { size_t bytes = 0; @@ -834,6 +842,7 @@ size_t NetworkInterface::printTo(Print &out) const { bytes += out.print(dnsIP()); bytes += out.println(); +#if CONFIG_LWIP_IPV6 static const char *types[] = {"UNKNOWN", "GLOBAL", "LINK_LOCAL", "SITE_LOCAL", "UNIQUE_LOCAL", "IPV4_MAPPED_IPV6"}; esp_ip6_addr_t if_ip6[CONFIG_LWIP_IPV6_NUM_ADDRESSES]; int v6addrs = esp_netif_get_all_ip6(_esp_netif, if_ip6); @@ -845,6 +854,7 @@ size_t NetworkInterface::printTo(Print &out) const { bytes += out.print(types[esp_netif_ip6_get_addr_type(&if_ip6[i])]); bytes += out.println(); } +#endif return bytes; } diff --git a/libraries/Network/src/NetworkInterface.h b/libraries/Network/src/NetworkInterface.h index 323cf3bfc72..4f97181d4fd 100644 --- a/libraries/Network/src/NetworkInterface.h +++ b/libraries/Network/src/NetworkInterface.h @@ -70,8 +70,10 @@ class NetworkInterface : public Printable { IPAddress broadcastIP() const; IPAddress networkID() const; uint8_t subnetCIDR() const; +#if CONFIG_LWIP_IPV6 IPAddress linkLocalIPv6() const; IPAddress globalIPv6() const; +#endif size_t printTo(Print &out) const; diff --git a/libraries/Network/src/NetworkManager.cpp b/libraries/Network/src/NetworkManager.cpp index 88059a60562..12276b2e242 100644 --- a/libraries/Network/src/NetworkManager.cpp +++ b/libraries/Network/src/NetworkManager.cpp @@ -87,6 +87,7 @@ int NetworkManager::hostByName(const char *aHostname, IPAddress &aResult) { memset(&hints, 0, sizeof(hints)); hints.ai_socktype = SOCK_STREAM; +#if CONFIG_LWIP_IPV6 // **Workaround** // LWIP AF_UNSPEC always prefers IPv4 and doesn't check what network is // available. See https://github.com/espressif/esp-idf/issues/13255 @@ -106,22 +107,27 @@ int NetworkManager::hostByName(const char *aHostname, IPAddress &aResult) { } } // **End Workaround** +#endif hints.ai_family = AF_UNSPEC; err = lwip_getaddrinfo(aHostname, servname, &hints, &res); if (err == ERR_OK) { +#if CONFIG_LWIP_IPV6 if (res->ai_family == AF_INET6) { struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)res->ai_addr; // As an array of u8_t aResult = IPAddress(IPv6, ipv6->sin6_addr.s6_addr); log_d("DNS found IPv6 %s", aResult.toString().c_str()); } else { +#endif struct sockaddr_in *ipv4 = (struct sockaddr_in *)res->ai_addr; // As a single u32_t aResult = IPAddress(ipv4->sin_addr.s_addr); log_d("DNS found IPv4 %s", aResult.toString().c_str()); +#if CONFIG_LWIP_IPV6 } +#endif lwip_freeaddrinfo(res); return 1; diff --git a/libraries/Network/src/NetworkServer.cpp b/libraries/Network/src/NetworkServer.cpp index 4609757255e..ce8ef952ea7 100644 --- a/libraries/Network/src/NetworkServer.cpp +++ b/libraries/Network/src/NetworkServer.cpp @@ -46,8 +46,13 @@ NetworkClient NetworkServer::accept() { client_sock = _accepted_sockfd; _accepted_sockfd = -1; } else { +#if CONFIG_LWIP_IPV6 struct sockaddr_in6 _client; int cs = sizeof(struct sockaddr_in6); +#else + struct sockaddr_in _client; + int cs = sizeof(struct sockaddr_in); +#endif #ifdef ESP_IDF_VERSION_MAJOR client_sock = lwip_accept(sockfd, (struct sockaddr *)&_client, (socklen_t *)&cs); #else @@ -77,6 +82,7 @@ void NetworkServer::begin(uint16_t port, int enable) { if (port) { _port = port; } +#if CONFIG_LWIP_IPV6 struct sockaddr_in6 server; sockfd = socket(AF_INET6, SOCK_STREAM, 0); if (sockfd < 0) { @@ -93,6 +99,18 @@ void NetworkServer::begin(uint16_t port, int enable) { } memset(server.sin6_addr.s6_addr, 0x0, 16); server.sin6_port = htons(_port); +#else + struct sockaddr_in server; + memset(&server, 0x0, sizeof(sockaddr_in)); + server.sin_family = AF_INET; + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd < 0) { + return; + } + setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(int)); + memcpy((uint8_t *)&(server.sin_addr.s_addr), (uint8_t *)&_addr[0], 4); + server.sin_port = htons(_port); +#endif if (bind(sockfd, (struct sockaddr *)&server, sizeof(server)) < 0) { return; } @@ -117,8 +135,13 @@ bool NetworkServer::hasClient() { if (_accepted_sockfd >= 0) { return true; } +#if CONFIG_LWIP_IPV6 struct sockaddr_in6 _client; int cs = sizeof(struct sockaddr_in6); +#else + struct sockaddr _client; + int cs = sizeof(struct sockaddr); +#endif #ifdef ESP_IDF_VERSION_MAJOR _accepted_sockfd = lwip_accept(sockfd, (struct sockaddr *)&_client, (socklen_t *)&cs); #else diff --git a/libraries/Network/src/NetworkUdp.cpp b/libraries/Network/src/NetworkUdp.cpp index 73e0607c5ff..51579910ded 100644 --- a/libraries/Network/src/NetworkUdp.cpp +++ b/libraries/Network/src/NetworkUdp.cpp @@ -255,6 +255,7 @@ int NetworkUDP::endPacket() { log_e("could not send data: %d", errno); return 0; } +#if LWIP_IPV6 } else { struct sockaddr_in6 recipient; recipient.sin6_flowinfo = 0; @@ -267,6 +268,7 @@ int NetworkUDP::endPacket() { log_e("could not send data: %d", errno); return 0; } +#endif } return 1; } @@ -336,12 +338,16 @@ int NetworkUDP::parsePacket() { remote_ip.from_ip_addr_t(&addr); } remote_port = ntohs(si_other.sin6_port); + } else { + remote_ip = ip_addr_any.u_addr.ip4.addr; + remote_port = 0; } -#endif // LWIP_IPV6=1 +#else else { - remote_ip = ip_addr_any.u_addr.ip4.addr; + remote_ip = ip_addr_any.addr; remote_port = 0; } +#endif // LWIP_IPV6=1 if (len > 0) { rx_buffer = new (std::nothrow) cbuf(len); rx_buffer->write(buf, len); diff --git a/libraries/NetworkClientSecure/src/ssl_client.cpp b/libraries/NetworkClientSecure/src/ssl_client.cpp index 0f93f5cd7fe..19f75673133 100644 --- a/libraries/NetworkClientSecure/src/ssl_client.cpp +++ b/libraries/NetworkClientSecure/src/ssl_client.cpp @@ -83,6 +83,7 @@ int start_ssl_client( fcntl(ssl_client->socket, F_SETFL, fcntl(ssl_client->socket, F_GETFL, 0) | O_NONBLOCK); struct sockaddr_storage serv_addr = {}; +#if CONFIG_LWIP_IPV6 if (domain == AF_INET6) { struct sockaddr_in6 *tmpaddr = (struct sockaddr_in6 *)&serv_addr; tmpaddr->sin6_family = AF_INET6; @@ -92,11 +93,14 @@ int start_ssl_client( tmpaddr->sin6_port = htons(port); tmpaddr->sin6_scope_id = ip.zone(); } else { +#endif struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serv_addr; tmpaddr->sin_family = AF_INET; tmpaddr->sin_addr.s_addr = ip; tmpaddr->sin_port = htons(port); +#if CONFIG_LWIP_IPV6 } +#endif if (timeout <= 0) { timeout = 30000; // Milli seconds. diff --git a/libraries/WiFi/src/AP.cpp b/libraries/WiFi/src/AP.cpp index 9cba6e90f10..b713a6d3901 100644 --- a/libraries/WiFi/src/AP.cpp +++ b/libraries/WiFi/src/AP.cpp @@ -87,6 +87,7 @@ static void _onApArduinoEvent(arduino_event_t *ev) { } log_v("Arduino AP Event: %d - %s", ev->event_id, Network.eventName(ev->event_id)); if (ev->event_id == ARDUINO_EVENT_WIFI_AP_START) { +#if CONFIG_LWIP_IPV6 if (_ap_network_if->getStatusBits() & ESP_NETIF_WANT_IP6_BIT) { esp_err_t err = esp_netif_create_ip6_linklocal(_ap_network_if->netif()); if (err != ESP_OK) { @@ -95,6 +96,7 @@ static void _onApArduinoEvent(arduino_event_t *ev) { log_v("Enabled IPv6 Link Local on %s", _ap_network_if->desc()); } } +#endif } } diff --git a/libraries/WiFi/src/STA.cpp b/libraries/WiFi/src/STA.cpp index 004ce161058..a7163ba0434 100644 --- a/libraries/WiFi/src/STA.cpp +++ b/libraries/WiFi/src/STA.cpp @@ -118,6 +118,7 @@ static void _onStaArduinoEvent(arduino_event_t *ev) { _sta_network_if->_setStatus(WL_STOPPED); } else if (ev->event_id == ARDUINO_EVENT_WIFI_STA_CONNECTED) { _sta_network_if->_setStatus(WL_IDLE_STATUS); +#if CONFIG_LWIP_IPV6 if (_sta_network_if->getStatusBits() & ESP_NETIF_WANT_IP6_BIT) { esp_err_t err = esp_netif_create_ip6_linklocal(_sta_network_if->netif()); if (err != ESP_OK) { @@ -126,6 +127,7 @@ static void _onStaArduinoEvent(arduino_event_t *ev) { log_v("Enabled IPv6 Link Local on %s", _sta_network_if->desc()); } } +#endif } else if (ev->event_id == ARDUINO_EVENT_WIFI_STA_DISCONNECTED) { uint8_t reason = ev->event_info.wifi_sta_disconnected.reason; // Reason 0 causes crash, use reason 1 (UNSPECIFIED) instead diff --git a/libraries/WiFi/src/WiFiAP.cpp b/libraries/WiFi/src/WiFiAP.cpp index 7282daac995..bb15ff44625 100644 --- a/libraries/WiFi/src/WiFiAP.cpp +++ b/libraries/WiFi/src/WiFiAP.cpp @@ -177,6 +177,7 @@ bool WiFiAPClass::softAPsetHostname(const char *hostname) { return AP.setHostname(hostname); } +#if CONFIG_LWIP_IPV6 /** * Enable IPv6 on the softAP interface. * @return true on success @@ -193,5 +194,5 @@ bool WiFiAPClass::softAPenableIPv6(bool enable) { IPAddress WiFiAPClass::softAPlinkLocalIPv6() { return AP.linkLocalIPv6(); } - +#endif #endif /* SOC_WIFI_SUPPORTED */ diff --git a/libraries/WiFi/src/WiFiAP.h b/libraries/WiFi/src/WiFiAP.h index 4573e92ecf0..e80f91fa26c 100644 --- a/libraries/WiFi/src/WiFiAP.h +++ b/libraries/WiFi/src/WiFiAP.h @@ -23,6 +23,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" @@ -100,8 +101,10 @@ class WiFiAPClass { IPAddress softAPSubnetMask(); uint8_t softAPSubnetCIDR(); +#if CONFIG_LWIP_IPV6 bool softAPenableIPv6(bool enable = true); IPAddress softAPlinkLocalIPv6(); +#endif const char *softAPgetHostname(); bool softAPsetHostname(const char *hostname); diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index f3b27365cb6..a2697086e44 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -127,6 +127,7 @@ static void _arduino_event_cb(void *arg, esp_event_base_t event_base, int32_t ev log_v("SC Send Ack Done"); arduino_event.event_id = ARDUINO_EVENT_SC_SEND_ACK_DONE; +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI /* * Provisioning * */ @@ -160,6 +161,7 @@ static void _arduino_event_cb(void *arg, esp_event_base_t event_base, int32_t ev } else if (event_base == NETWORK_PROV_EVENT && event_id == NETWORK_PROV_WIFI_CRED_SUCCESS) { log_v("Provisioning Success!"); arduino_event.event_id = ARDUINO_EVENT_PROV_CRED_SUCCESS; +#endif #endif } @@ -180,10 +182,12 @@ static bool initWiFiEvents() { return false; } +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI if (esp_event_handler_instance_register(NETWORK_PROV_EVENT, ESP_EVENT_ANY_ID, &_arduino_event_cb, NULL, NULL)) { log_e("event_handler_instance_register for NETWORK_PROV_EVENT Failed!"); return false; } +#endif #endif return true; @@ -201,10 +205,12 @@ static bool deinitWiFiEvents() { return false; } +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI if (esp_event_handler_unregister(NETWORK_PROV_EVENT, ESP_EVENT_ANY_ID, &_arduino_event_cb)) { log_e("esp_event_handler_unregister for NETWORK_PROV_EVENT Failed!"); return false; } +#endif #endif return true; diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index fe929236a4b..27b41043abf 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -23,6 +23,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_err.h" @@ -33,7 +34,9 @@ #include "esp_smartconfig.h" #include "esp_netif_types.h" #include "esp_eth_driver.h" +#if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI #include "network_provisioning/manager.h" +#endif #include "lwip/ip_addr.h" #include "Network.h" diff --git a/libraries/WiFi/src/WiFiMulti.cpp b/libraries/WiFi/src/WiFiMulti.cpp index f99ce185252..c99bef5ac90 100644 --- a/libraries/WiFi/src/WiFiMulti.cpp +++ b/libraries/WiFi/src/WiFiMulti.cpp @@ -251,9 +251,11 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout, bool scanHidden) { bestBSSID[4], bestBSSID[5], bestNetwork.ssid, bestChannel, bestNetworkDb ); +#if CONFIG_LWIP_IPV6 if (ipv6_support == true) { WiFi.enableIPv6(); } +#endif WiFi.disconnect(); delay(10); WiFi.begin(bestNetwork.ssid, (_bAllowOpenAP && bestNetworkSec == WIFI_AUTH_OPEN) ? NULL : bestNetwork.passphrase, bestChannel, bestBSSID); @@ -318,9 +320,11 @@ uint8_t WiFiMulti::run(uint32_t connectTimeout, bool scanHidden) { return status; } +#if CONFIG_LWIP_IPV6 void WiFiMulti::enableIPv6(bool state) { ipv6_support = state; } +#endif void WiFiMulti::markAsFailed(int32_t i) { APlist[i].hasFailed = true; diff --git a/libraries/WiFi/src/WiFiMulti.h b/libraries/WiFi/src/WiFiMulti.h index f3f823fa5d1..d818f77899f 100644 --- a/libraries/WiFi/src/WiFiMulti.h +++ b/libraries/WiFi/src/WiFiMulti.h @@ -47,7 +47,9 @@ class WiFiMulti { bool addAP(const char *ssid, const char *passphrase = NULL); uint8_t run(uint32_t connectTimeout = 5000, bool scanHidden = false); +#if CONFIG_LWIP_IPV6 void enableIPv6(bool state); +#endif // Force (default: true) to only keep connected or to connect to an AP from the provided WiFiMulti list. // When bStrict is false, it will keep the last/current connected AP even if not in the WiFiMulti List. diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index 4923dd60a5e..b636e692a04 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -386,6 +386,7 @@ int8_t WiFiSTAClass::RSSI(void) { return STA.RSSI(); } +#if CONFIG_LWIP_IPV6 /** * Enable IPv6 on the station interface. * Should be called before WiFi.begin() @@ -411,6 +412,7 @@ IPAddress WiFiSTAClass::linkLocalIPv6() { IPAddress WiFiSTAClass::globalIPv6() { return STA.globalIPv6(); } +#endif bool WiFiSTAClass::_smartConfigStarted = false; bool WiFiSTAClass::_smartConfigDone = false; diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index b3176ed17ca..96a3aa59dbd 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -23,6 +23,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFiType.h" @@ -179,9 +180,11 @@ class WiFiSTAClass { IPAddress networkID(); uint8_t subnetCIDR(); +#if CONFIG_LWIP_IPV6 bool enableIPv6(bool en = true); IPAddress linkLocalIPv6(); IPAddress globalIPv6(); +#endif // ---------------------------------------------------------------------------------------------- // ---------------------------------------- Smart Config ---------------------------------------- diff --git a/libraries/WiFi/src/WiFiScan.h b/libraries/WiFi/src/WiFiScan.h index 5e1097f3ae2..7afd26bb76a 100644 --- a/libraries/WiFi/src/WiFiScan.h +++ b/libraries/WiFi/src/WiFiScan.h @@ -23,6 +23,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "WiFiType.h" diff --git a/libraries/WiFi/src/WiFiType.h b/libraries/WiFi/src/WiFiType.h index 83eed72f4cb..29af9ce2252 100644 --- a/libraries/WiFi/src/WiFiType.h +++ b/libraries/WiFi/src/WiFiType.h @@ -22,6 +22,7 @@ #pragma once #include "soc/soc_caps.h" +#include "sdkconfig.h" #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED #include "esp_wifi_types.h" diff --git a/libraries/WiFiProv/src/WiFiProv.cpp b/libraries/WiFiProv/src/WiFiProv.cpp index f4008d44ded..55fbd473f88 100644 --- a/libraries/WiFiProv/src/WiFiProv.cpp +++ b/libraries/WiFiProv/src/WiFiProv.cpp @@ -18,7 +18,8 @@ */ #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#include "sdkconfig.h" +#if SOC_WIFI_SUPPORTED && CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI #include #include diff --git a/libraries/WiFiProv/src/WiFiProv.h b/libraries/WiFiProv/src/WiFiProv.h index 44dda82ad0e..a4a3397ed06 100644 --- a/libraries/WiFiProv/src/WiFiProv.h +++ b/libraries/WiFiProv/src/WiFiProv.h @@ -20,7 +20,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_WIFI_SUPPORTED +#include "sdkconfig.h" +#if SOC_WIFI_SUPPORTED && CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI #include "WiFi.h" #include "HardwareSerial.h" From cc407185a3a64161006eaa924d2fa53077bd6e1f Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 12 Nov 2024 17:23:51 +0200 Subject: [PATCH 075/179] fix(build): Allow Arduino to compile in IDF without components (#10597) * fix(build): Allow Arduino to compile in IDF without components This adds guards for the rest of the extra components * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 10 +++++++--- libraries/ArduinoOTA/src/ArduinoOTA.cpp | 4 ++++ libraries/ESP_I2S/src/ESP_I2S.cpp | 4 ++++ libraries/ESP_I2S/src/ESP_I2S.h | 6 ++++++ libraries/ESPmDNS/src/ESPmDNS.cpp | 3 +++ libraries/ESPmDNS/src/ESPmDNS.h | 4 ++++ libraries/LittleFS/src/LittleFS.cpp | 11 ++++------- libraries/LittleFS/src/LittleFS.h | 5 +++++ libraries/PPP/src/PPP.cpp | 2 +- libraries/PPP/src/PPP.h | 9 ++++++--- libraries/PPP/src/ppp.c | 2 +- 11 files changed, 45 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8bee32a20e..ba41d9ae962 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,6 @@ set(ARDUINO_ALL_LIBRARIES ) set(ARDUINO_LIBRARY_ArduinoOTA_SRCS libraries/ArduinoOTA/src/ArduinoOTA.cpp) -set(ARDUINO_LIBRARY_ArduinoOTA_REQUIRES esp_https_ota) set(ARDUINO_LIBRARY_AsyncUDP_SRCS libraries/AsyncUDP/src/AsyncUDP.cpp) @@ -160,7 +159,6 @@ set(ARDUINO_LIBRARY_HTTPUpdate_SRCS libraries/HTTPUpdate/src/HTTPUpdate.cpp) set(ARDUINO_LIBRARY_Insights_SRCS libraries/Insights/src/Insights.cpp) set(ARDUINO_LIBRARY_LittleFS_SRCS libraries/LittleFS/src/LittleFS.cpp) -set(ARDUINO_LIBRARY_LittleFS_REQUIRES joltwallet__littlefs) set(ARDUINO_LIBRARY_NetBIOS_SRCS libraries/NetBIOS/src/NetBIOS.cpp) @@ -325,7 +323,7 @@ endforeach() set(includedirs variants/${CONFIG_ARDUINO_VARIANT}/ cores/esp32/ ${ARDUINO_LIBRARIES_INCLUDEDIRS}) set(srcs ${CORE_SRCS} ${ARDUINO_LIBRARIES_SRCS}) set(priv_includes cores/esp32/libb64) -set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver espressif__network_provisioning) +set(requires spi_flash esp_partition mbedtls wpa_supplicant esp_adc esp_eth http_parser esp_ringbuf esp_driver_gptimer esp_driver_usb_serial_jtag driver) set(priv_requires fatfs nvs_flash app_update spiffs bootloader_support bt esp_hid usb esp_psram ${ARDUINO_LIBRARIES_REQUIRES}) if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_OpenThread) @@ -391,3 +389,9 @@ endif() if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_Matter) maybe_add_component(espressif__esp_matter) endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_LittleFS) + maybe_add_component(joltwallet__littlefs) +endif() +if(NOT CONFIG_ARDUINO_SELECTIVE_COMPILATION OR CONFIG_ARDUINO_SELECTIVE_WiFiProv) + maybe_add_component(espressif__network_provisioning) +endif() diff --git a/libraries/ArduinoOTA/src/ArduinoOTA.cpp b/libraries/ArduinoOTA/src/ArduinoOTA.cpp index 160c55764fe..19bb0bfffb2 100644 --- a/libraries/ArduinoOTA/src/ArduinoOTA.cpp +++ b/libraries/ArduinoOTA/src/ArduinoOTA.cpp @@ -120,10 +120,12 @@ void ArduinoOTAClass::begin() { sprintf(tmp, "esp32-%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); _hostname = tmp; } +#ifdef CONFIG_MDNS_MAX_INTERFACES if (_mdnsEnabled) { MDNS.begin(_hostname.c_str()); MDNS.enableArduino(_port, (_password.length() > 0)); } +#endif _initialized = true; _state = OTA_IDLE; log_i("OTA server at: %s.local:%u", _hostname.c_str(), _port); @@ -358,9 +360,11 @@ void ArduinoOTAClass::_runUpdate() { void ArduinoOTAClass::end() { _initialized = false; _udp_ota.stop(); +#ifdef CONFIG_MDNS_MAX_INTERFACES if (_mdnsEnabled) { MDNS.end(); } +#endif _state = OTA_IDLE; log_i("OTA server stopped."); } diff --git a/libraries/ESP_I2S/src/ESP_I2S.cpp b/libraries/ESP_I2S/src/ESP_I2S.cpp index f4bd92b52d5..0ac1e176dc8 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.cpp +++ b/libraries/ESP_I2S/src/ESP_I2S.cpp @@ -7,7 +7,9 @@ #include "esp32-hal-periman.h" #include "wav_header.h" +#if ARDUINO_HAS_MP3_DECODER #include "mp3dec.h" +#endif #define I2S_READ_CHUNK_SIZE 1920 @@ -1014,6 +1016,7 @@ void I2SClass::playWAV(uint8_t *data, size_t len) { write(data + WAVE_HEADER_SIZE + data_offset, data_chunk->subchunk_size); } +#if ARDUINO_HAS_MP3_DECODER bool I2SClass::playMP3(uint8_t *src, size_t src_len) { int16_t outBuf[MAX_NCHAN * MAX_NGRAN * MAX_NSAMP]; uint8_t *readPtr = NULL; @@ -1051,5 +1054,6 @@ bool I2SClass::playMP3(uint8_t *src, size_t src_len) { MP3FreeDecoder(decoder); return true; } +#endif #endif /* SOC_I2S_SUPPORTED */ diff --git a/libraries/ESP_I2S/src/ESP_I2S.h b/libraries/ESP_I2S/src/ESP_I2S.h index 60ccf0d4265..b5c076bed04 100644 --- a/libraries/ESP_I2S/src/ESP_I2S.h +++ b/libraries/ESP_I2S/src/ESP_I2S.h @@ -1,5 +1,9 @@ #pragma once +#if defined __has_include && __has_include("mp3dec.h") +#define ARDUINO_HAS_MP3_DECODER 1 +#endif + #include "soc/soc_caps.h" #if SOC_I2S_SUPPORTED @@ -85,8 +89,10 @@ class I2SClass : public Stream { uint8_t *recordWAV(size_t rec_seconds, size_t *out_size); // Play short PCM WAV from memory void playWAV(uint8_t *data, size_t len); +#if ARDUINO_HAS_MP3_DECODER // Play short MP3 from memory bool playMP3(uint8_t *src, size_t src_len); +#endif private: esp_err_t last_error; diff --git a/libraries/ESPmDNS/src/ESPmDNS.cpp b/libraries/ESPmDNS/src/ESPmDNS.cpp index 546de43c20a..4c15ed3a5dd 100644 --- a/libraries/ESPmDNS/src/ESPmDNS.cpp +++ b/libraries/ESPmDNS/src/ESPmDNS.cpp @@ -39,6 +39,7 @@ License (MIT license): #endif #include "ESPmDNS.h" +#ifdef CONFIG_MDNS_MAX_INTERFACES #include #include "esp_mac.h" #include "soc/soc_caps.h" @@ -391,3 +392,5 @@ String MDNSResponder::txtKey(int idx, int txtIdx) { } MDNSResponder MDNS; + +#endif /* CONFIG_MDNS_MAX_INTERFACES */ diff --git a/libraries/ESPmDNS/src/ESPmDNS.h b/libraries/ESPmDNS/src/ESPmDNS.h index 04ac382cfdc..0336f476efe 100644 --- a/libraries/ESPmDNS/src/ESPmDNS.h +++ b/libraries/ESPmDNS/src/ESPmDNS.h @@ -41,6 +41,9 @@ License (MIT license): #ifndef ESP32MDNS_H #define ESP32MDNS_H +#include "sdkconfig.h" +#ifdef CONFIG_MDNS_MAX_INTERFACES + #include "Arduino.h" #include "mdns.h" #include "esp_interface.h" @@ -125,4 +128,5 @@ class MDNSResponder { extern MDNSResponder MDNS; +#endif /* CONFIG_MDNS_MAX_INTERFACES */ #endif //ESP32MDNS_H diff --git a/libraries/LittleFS/src/LittleFS.cpp b/libraries/LittleFS/src/LittleFS.cpp index e0e71aacf9c..e86caeb74cc 100644 --- a/libraries/LittleFS/src/LittleFS.cpp +++ b/libraries/LittleFS/src/LittleFS.cpp @@ -12,18 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include "LittleFS.h" + +#ifdef CONFIG_LITTLEFS_PAGE_SIZE #include "vfs_api.h" extern "C" { #include #include #include -} -#include "sdkconfig.h" -#include "LittleFS.h" - -#ifdef CONFIG_LITTLEFS_PAGE_SIZE -extern "C" { #include "esp_littlefs.h" } @@ -125,4 +122,4 @@ size_t LittleFSFS::usedBytes() { } LittleFSFS LittleFS; -#endif +#endif /* CONFIG_LITTLEFS_PAGE_SIZE */ diff --git a/libraries/LittleFS/src/LittleFS.h b/libraries/LittleFS/src/LittleFS.h index 47220b30b33..da4ab7d1f6f 100644 --- a/libraries/LittleFS/src/LittleFS.h +++ b/libraries/LittleFS/src/LittleFS.h @@ -14,6 +14,10 @@ #ifndef _LITTLEFS_H_ #define _LITTLEFS_H_ +#include "sdkconfig.h" + +#ifdef CONFIG_LITTLEFS_PAGE_SIZE + #include "FS.h" namespace fs { @@ -36,4 +40,5 @@ class LittleFSFS : public FS { extern fs::LittleFSFS LittleFS; +#endif /* CONFIG_LITTLEFS_PAGE_SIZE */ #endif diff --git a/libraries/PPP/src/PPP.cpp b/libraries/PPP/src/PPP.cpp index e77a78b77b7..77b70d3969c 100644 --- a/libraries/PPP/src/PPP.cpp +++ b/libraries/PPP/src/PPP.cpp @@ -1,6 +1,6 @@ #define ARDUINO_CORE_BUILD #include "PPP.h" -#if CONFIG_LWIP_PPP_SUPPORT +#if CONFIG_LWIP_PPP_SUPPORT && ARDUINO_HAS_ESP_MODEM #include "esp32-hal-periman.h" #include "esp_netif.h" #include "esp_netif_ppp.h" diff --git a/libraries/PPP/src/PPP.h b/libraries/PPP/src/PPP.h index 52eed57edbc..b8e1f7ad56f 100644 --- a/libraries/PPP/src/PPP.h +++ b/libraries/PPP/src/PPP.h @@ -1,7 +1,11 @@ #pragma once #include "sdkconfig.h" -#if CONFIG_LWIP_PPP_SUPPORT +#if defined __has_include && __has_include("esp_modem_c_api_types.h") +#define ARDUINO_HAS_ESP_MODEM 1 +#endif + +#if CONFIG_LWIP_PPP_SUPPORT && ARDUINO_HAS_ESP_MODEM #include "Network.h" #include "esp_modem_c_api_types.h" @@ -109,5 +113,4 @@ class PPPClass : public NetworkInterface { }; extern PPPClass PPP; - -#endif /* CONFIG_LWIP_PPP_SUPPORT */ +#endif /* CONFIG_LWIP_PPP_SUPPORT && ARDUINO_HAS_ESP_MODEM */ diff --git a/libraries/PPP/src/ppp.c b/libraries/PPP/src/ppp.c index db8ba0760bd..52896e76c8e 100644 --- a/libraries/PPP/src/ppp.c +++ b/libraries/PPP/src/ppp.c @@ -1,5 +1,5 @@ #include "sdkconfig.h" -#if CONFIG_LWIP_PPP_SUPPORT +#if CONFIG_LWIP_PPP_SUPPORT && defined __has_include && __has_include("esp_modem_api.h") #include "esp_modem_api.h" esp_err_t _esp_modem_at(esp_modem_dce_t *dce_wrap, const char *at, char *p_out, int timeout) { From 3822a688208eeff3cdcad9fc71601f0a0ff18011 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Wed, 13 Nov 2024 12:33:02 +0200 Subject: [PATCH 076/179] IDF release/v5.3 (#10599) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(zigbee): Bump zigbee version and use 1.6.0 (#10563) Co-authored-by: Me No Dev * fix(zigbee): Add require public for zigbee libs * fix(zigbee): Guard the Zigbee library * fix(zigbee): Fix removed cluster_role attribute (#10576) * fix(hosted): Update hosted configuration * fix(hosted): Fix Hosted deinit and protect reinit for now * IDF release/v5.3 a0f798cf * IDF release/v5.3 a0f798cf --------- Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com> --- idf_component.yml | 8 +++-- libraries/WiFi/src/WiFiGeneric.cpp | 35 +++++++++++++++---- libraries/Zigbee/src/ZigbeeCore.cpp | 4 +-- libraries/Zigbee/src/ZigbeeCore.h | 5 +-- libraries/Zigbee/src/ZigbeeEP.cpp | 5 ++- libraries/Zigbee/src/ZigbeeEP.h | 4 +-- libraries/Zigbee/src/ZigbeeHandlers.cpp | 4 +-- .../src/ep/ZigbeeColorDimmableLight.cpp | 4 +-- .../Zigbee/src/ep/ZigbeeColorDimmableLight.h | 5 +-- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp | 4 +-- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.h | 5 +-- libraries/Zigbee/src/ep/ZigbeeLight.cpp | 4 +-- libraries/Zigbee/src/ep/ZigbeeLight.h | 5 +-- libraries/Zigbee/src/ep/ZigbeeSwitch.cpp | 4 +-- libraries/Zigbee/src/ep/ZigbeeSwitch.h | 5 +-- libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp | 6 ++-- libraries/Zigbee/src/ep/ZigbeeTempSensor.h | 5 +-- libraries/Zigbee/src/ep/ZigbeeThermostat.cpp | 6 ++-- libraries/Zigbee/src/ep/ZigbeeThermostat.h | 5 +-- package/package_esp32_index.template.json | 32 ++++++++--------- 20 files changed, 92 insertions(+), 63 deletions(-) diff --git a/idf_component.yml b/idf_component.yml index 12bfe66e739..9c6bd159d42 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -52,11 +52,13 @@ dependencies: espressif/esp_modem: version: "^1.1.0" espressif/esp-zboss-lib: - version: "^1.0.1" + version: "==1.6.0" + require: public rules: - if: "target not in [esp32c2, esp32p4]" espressif/esp-zigbee-lib: - version: "^1.0.1" + version: "==1.6.0" + require: public rules: - if: "target not in [esp32c2, esp32p4]" espressif/esp-dsp: @@ -101,7 +103,7 @@ dependencies: rules: - if: "target in [esp32s3]" espressif/esp_hosted: - version: "^0.0.22" + version: "^0.0.25" rules: - if: "target == esp32p4" espressif/esp_wifi_remote: diff --git a/libraries/WiFi/src/WiFiGeneric.cpp b/libraries/WiFi/src/WiFiGeneric.cpp index a2697086e44..40e3b12c687 100644 --- a/libraries/WiFi/src/WiFiGeneric.cpp +++ b/libraries/WiFi/src/WiFiGeneric.cpp @@ -240,18 +240,34 @@ extern "C" void phy_bbpll_en_usb(bool en); #endif #if CONFIG_ESP_WIFI_REMOTE_ENABLED -extern "C" esp_err_t esp_hosted_init(void *); +extern "C" { +//#include "esp_hosted.h" +#include "esp_hosted_transport_config.h" +extern esp_err_t esp_hosted_init(); +extern esp_err_t esp_hosted_deinit(); +}; +static bool hosted_initialized = false; static bool wifiHostedInit() { - static bool initialized = false; - if (!initialized) { - initialized = true; - if (esp_hosted_init(NULL) != ESP_OK) { + if (!hosted_initialized) { + hosted_initialized = true; + struct esp_hosted_sdio_config conf = INIT_DEFAULT_HOST_SDIO_CONFIG(); + conf.pin_clk.pin = CONFIG_ESP_SDIO_PIN_CLK; + conf.pin_cmd.pin = CONFIG_ESP_SDIO_PIN_CMD; + conf.pin_d0.pin = CONFIG_ESP_SDIO_PIN_D0; + conf.pin_d1.pin = CONFIG_ESP_SDIO_PIN_D1; + conf.pin_d2.pin = CONFIG_ESP_SDIO_PIN_D2; + conf.pin_d3.pin = CONFIG_ESP_SDIO_PIN_D3; + //conf.pin_rst.pin = CONFIG_ESP_SDIO_GPIO_RESET_SLAVE; + // esp_hosted_sdio_set_config() will fail on second attempt but here temporarily to not cause exception on reinit + if (esp_hosted_sdio_set_config(&conf) != ESP_OK || esp_hosted_init() != ESP_OK) { log_e("esp_hosted_init failed!"); + hosted_initialized = false; return false; } + log_v("ESP-HOSTED initialized!"); } - // Attach pins to periman here + // Attach pins to PeriMan here // Slave chip model is CONFIG_IDF_SLAVE_TARGET // CONFIG_ESP_SDIO_PIN_CMD // CONFIG_ESP_SDIO_PIN_CLK @@ -337,6 +353,13 @@ static bool wifiLowLevelDeinit() { arduino_event_t arduino_event; arduino_event.event_id = ARDUINO_EVENT_WIFI_OFF; Network.postEvent(&arduino_event); +#if CONFIG_ESP_WIFI_REMOTE_ENABLED + if (hosted_initialized && esp_hosted_deinit() == ESP_OK) { + hosted_initialized = false; + log_v("ESP-HOSTED uninitialized!"); + // detach SDIO pins from PeriMan + } +#endif } } return !lowLevelInitDone; diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index 31f9ab1910f..dd84e2a63e4 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -1,7 +1,7 @@ /* Zigbee Core Functions */ #include "ZigbeeCore.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeHandlers.cpp" #include "Arduino.h" @@ -407,4 +407,4 @@ const char *ZigbeeCore::getDeviceTypeString(esp_zb_ha_standard_devices_t deviceI ZigbeeCore Zigbee = ZigbeeCore(); -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index 1044a9c737c..08ff059dd51 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "esp_zigbee_core.h" #include "zdo/esp_zigbee_zdo_common.h" @@ -122,4 +123,4 @@ class ZigbeeCore { extern ZigbeeCore Zigbee; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ZigbeeEP.cpp b/libraries/Zigbee/src/ZigbeeEP.cpp index 8597f4404c2..abb5c5ce3dc 100644 --- a/libraries/Zigbee/src/ZigbeeEP.cpp +++ b/libraries/Zigbee/src/ZigbeeEP.cpp @@ -2,7 +2,7 @@ #include "ZigbeeEP.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "esp_zigbee_cluster.h" #include "zcl/esp_zigbee_zcl_power_config.h" @@ -104,7 +104,6 @@ void ZigbeeEP::reportBatteryPercentage() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID; - report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_POWER_CONFIG; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; @@ -210,4 +209,4 @@ void ZigbeeEP::zbIdentify(const esp_zb_zcl_set_attr_value_message_t *message) { } } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ZigbeeEP.h b/libraries/Zigbee/src/ZigbeeEP.h index 3a86617e2f4..1c0c2d983ab 100644 --- a/libraries/Zigbee/src/ZigbeeEP.h +++ b/libraries/Zigbee/src/ZigbeeEP.h @@ -3,7 +3,7 @@ #pragma once #include "ZigbeeCore.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include @@ -126,4 +126,4 @@ class ZigbeeEP { friend class ZigbeeCore; }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ZigbeeHandlers.cpp b/libraries/Zigbee/src/ZigbeeHandlers.cpp index 9522b0ba1a8..881d7ca0c37 100644 --- a/libraries/Zigbee/src/ZigbeeHandlers.cpp +++ b/libraries/Zigbee/src/ZigbeeHandlers.cpp @@ -2,7 +2,7 @@ #include "ZigbeeCore.h" #include "Arduino.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED // forward declaration of all implemented handlers static esp_err_t zb_attribute_set_handler(const esp_zb_zcl_set_attr_value_message_t *message); @@ -138,4 +138,4 @@ static esp_err_t zb_cmd_default_resp_handler(const esp_zb_zcl_cmd_default_resp_m return ESP_OK; } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp index 841d9c7f122..08828f7c280 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp @@ -1,5 +1,5 @@ #include "ZigbeeColorDimmableLight.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED ZigbeeColorDimmableLight::ZigbeeColorDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_COLOR_DIMMABLE_LIGHT_DEVICE_ID; @@ -109,4 +109,4 @@ void ZigbeeColorDimmableLight::lightChanged() { } } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h index 992c2573654..1edb6b5468c 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -38,4 +39,4 @@ class ZigbeeColorDimmableLight : public ZigbeeEP { uint16_t _current_blue; }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp index d9a9e1c1014..8e72728f6a2 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp @@ -1,5 +1,5 @@ #include "ZigbeeColorDimmerSwitch.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED // Initialize the static instance pointer ZigbeeColorDimmerSwitch *ZigbeeColorDimmerSwitch::_instance = nullptr; @@ -400,4 +400,4 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t } } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h index 2263f3235ca..eb854b6c919 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -57,4 +58,4 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP { void calculateXY(uint8_t red, uint8_t green, uint8_t blue, uint16_t &x, uint16_t &y); }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeLight.cpp b/libraries/Zigbee/src/ep/ZigbeeLight.cpp index 1f59cd82325..6b602db35c1 100644 --- a/libraries/Zigbee/src/ep/ZigbeeLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeLight.cpp @@ -1,5 +1,5 @@ #include "ZigbeeLight.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED ZigbeeLight::ZigbeeLight(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_ON_OFF_LIGHT_DEVICE_ID; @@ -33,4 +33,4 @@ void ZigbeeLight::lightChanged() { } } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeLight.h b/libraries/Zigbee/src/ep/ZigbeeLight.h index 32e4e8c9bdc..1f57bbf66e5 100644 --- a/libraries/Zigbee/src/ep/ZigbeeLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeLight.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -30,4 +31,4 @@ class ZigbeeLight : public ZigbeeEP { bool _current_state; }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp index 17f0b6703c9..16af8008a8a 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp @@ -1,5 +1,5 @@ #include "ZigbeeSwitch.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED // Initialize the static instance pointer ZigbeeSwitch *ZigbeeSwitch::_instance = nullptr; @@ -230,4 +230,4 @@ void ZigbeeSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, } } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.h b/libraries/Zigbee/src/ep/ZigbeeSwitch.h index bbc6c0a91dc..a8d892f37e9 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -39,4 +40,4 @@ class ZigbeeSwitch : public ZigbeeEP { static void findCb(esp_zb_zdp_status_t zdo_status, uint16_t addr, uint8_t endpoint, void *user_ctx); }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp index a20f6255746..f7004d5ab92 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp @@ -1,5 +1,5 @@ #include "ZigbeeTempSensor.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED ZigbeeTempSensor::ZigbeeTempSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID; @@ -80,7 +80,6 @@ void ZigbeeTempSensor::reportTemperature() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID; - report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; @@ -121,7 +120,6 @@ void ZigbeeTempSensor::reportHumidity() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID; - report_attr_cmd.cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; @@ -161,4 +159,4 @@ void ZigbeeTempSensor::setHumidityReporting(uint16_t min_interval, uint16_t max_ esp_zb_zcl_update_reporting_info(&reporting_info); } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h index 0f2040ff917..d868034280d 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -41,4 +42,4 @@ class ZigbeeTempSensor : public ZigbeeEP { void reportHumidity(); }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp b/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp index b9805a37a19..4610e087563 100644 --- a/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeThermostat.cpp @@ -1,5 +1,5 @@ #include "ZigbeeThermostat.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED static float zb_s16_to_temperature(int16_t value) { return 1.0 * value / 100; @@ -185,7 +185,7 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t m int16_t report_change = (int16_t)delta * 100; esp_zb_zcl_config_report_record_t records[] = { { - .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, + .direction = ESP_ZB_ZCL_REPORT_DIRECTION_SEND, .attributeID = ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, .attrType = ESP_ZB_ZCL_ATTR_TYPE_S16, .min_interval = min_interval, @@ -202,4 +202,4 @@ void ZigbeeThermostat::setTemperatureReporting(uint16_t min_interval, uint16_t m esp_zb_lock_release(); } -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeThermostat.h b/libraries/Zigbee/src/ep/ZigbeeThermostat.h index 7d63cd9f726..fe797ffd7b6 100644 --- a/libraries/Zigbee/src/ep/ZigbeeThermostat.h +++ b/libraries/Zigbee/src/ep/ZigbeeThermostat.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -61,4 +62,4 @@ class ZigbeeThermostat : public ZigbeeEP { void zbAttributeRead(uint16_t cluster_id, const esp_zb_zcl_attribute_t *attribute) override; }; -#endif //SOC_IEEE802154_SUPPORTED +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 837c37bf432..6b5a6370a4f 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -101,57 +101,57 @@ "host": "i686-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "x86_64-mingw32", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "arm64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "x86_64-apple-darwin", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "x86_64-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "i686-pc-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "aarch64-linux-gnu", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" }, { "host": "arm-linux-gnueabihf", "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:cc0c44739a2ae9b4d17b0026907132592a3888fdf3bb910c2ad730931fc6c9dc", - "size": "344062217" + "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", + "size": "339750940" } ] }, From e9b3f2650e862bc3866f2aac412636b74de9d18f Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Thu, 14 Nov 2024 12:19:31 -0300 Subject: [PATCH 077/179] ci(pytest): Bump pytest-embedded to 1.12.0 for P4 fixes --- tests/requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/requirements.txt b/tests/requirements.txt index a7df8928665..cef0bf17881 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,7 +1,7 @@ cryptography==43.0.1 --only-binary cryptography pytest-cov==5.0.0 -pytest-embedded-serial-esp==1.11.8 -pytest-embedded-arduino==1.11.8 -pytest-embedded-wokwi==1.11.8 -pytest-embedded-qemu==1.11.8 +pytest-embedded-serial-esp==1.12.0 +pytest-embedded-arduino==1.12.0 +pytest-embedded-wokwi==1.12.0 +pytest-embedded-qemu==1.12.0 From 4a8ba4294ec9d21f64e42566710fca720a25aeda Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:18:06 +0100 Subject: [PATCH 078/179] fix weird formatting, no code change (#10617) * fix formatting * Disable formatter for these lines --------- Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- cores/esp32/esp32-hal-cpu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-cpu.c b/cores/esp32/esp32-hal-cpu.c index f0a30b50afc..40e2cf0fdf0 100644 --- a/cores/esp32/esp32-hal-cpu.c +++ b/cores/esp32/esp32-hal-cpu.c @@ -259,6 +259,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { if (apb_change_callbacks) { triggerApbChangeCallback(APB_AFTER_CHANGE, capb, apb); } + // clang-format off #ifdef SOC_CLK_APLL_SUPPORTED log_d( "%s: %u / %u = %u Mhz, APB: %u Hz", @@ -268,7 +269,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { #ifdef CONFIG_IDF_TARGET_ESP32P4 : "17.5M"), #else - : "8M")), + : "8M")), #endif conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); @@ -278,6 +279,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); #endif + // clang-format on return true; } From fe0f016b4f6476d83e0422e2d9193e8f08f93d9d Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 19 Nov 2024 07:18:23 -0300 Subject: [PATCH 079/179] Matter example patch (#10618) * feat(matter): adjust preferences labels in matter examples * feat(matter): adjust preferences labels in matter examples * fix(matter_example): extra blank space in code added by mistake * feat(matter_example): use const char * instead of #define * feat(matter_example): use const char * instead of #define * feat(matter_example): change Preferences names * fix(matter_example): missing semicolon in code --- .../MatterDimmableLight/MatterDimmableLight.ino | 14 ++++++++------ .../examples/MatterOnOffLight/MatterOnOffLight.ino | 9 +++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino index ded0118b7d1..5fd3152dacf 100644 --- a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -22,7 +22,9 @@ MatterDimmableLight DimmableLight; // it will keep last OnOff & Brightness state stored, using Preferences -Preferences lastStatePref; +Preferences matterPref; +const char *onOffPrefKey = "OnOffState"; +const char *brightnessPrefKey = "BrightnessState"; // set your board RGB LED pin here #ifdef RGB_BUILTIN @@ -51,8 +53,8 @@ bool setLightState(bool state, uint8_t brightness) { digitalWrite(ledPin, LOW); } // store last Brightness and OnOff state for when the Light is restarted / power goes off - lastStatePref.putUChar("lastBrightness", brightness); - lastStatePref.putBool("lastOnOffState", state); + matterPref.putUChar(brightnessPrefKey, brightness); + matterPref.putBool(onOffPrefKey, state); // This callback must return the success state to Matter core return true; } @@ -86,11 +88,11 @@ void setup() { delay(500); // Initialize Matter EndPoint - lastStatePref.begin("matterLight", false); + matterPref.begin("MatterPrefs", false); // default OnOff state is ON if not stored before - bool lastOnOffState = lastStatePref.getBool("lastOnOffState", true); + bool lastOnOffState = matterPref.getBool(onOffPrefKey, true); // default brightness ~= 6% (15/255) - uint8_t lastBrightness = lastStatePref.getUChar("lastBrightness", 15); + uint8_t lastBrightness = matterPref.getUChar(brightnessPrefKey, 15); DimmableLight.begin(lastOnOffState, lastBrightness); // set the callback function to handle the Light state change DimmableLight.onChange(setLightState); diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 675e9e989f2..8f4276643e2 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -22,7 +22,8 @@ MatterOnOffLight OnOffLight; // it will keep last OnOff state stored, using Preferences -Preferences lastStatePref; +Preferences matterPref; +const char *onOffPrefKey = "OnOffState"; // set your board LED pin here #ifdef LED_BUILTIN @@ -48,7 +49,7 @@ bool setLightOnOff(bool state) { digitalWrite(ledPin, LOW); } // store last OnOff state for when the Light is restarted / power goes off - lastStatePref.putBool("lastOnOffState", state); + matterPref.putBool(onOffPrefKey, state); // This callback must return the success state to Matter core return true; } @@ -82,8 +83,8 @@ void setup() { delay(500); // Initialize Matter EndPoint - lastStatePref.begin("matterLight", false); - bool lastOnOffState = lastStatePref.getBool("lastOnOffState", true); + matterPref.begin("MatterPrefs", false); + bool lastOnOffState = matterPref.getBool(onOffPrefKey, true); OnOffLight.begin(lastOnOffState); OnOffLight.onChange(setLightOnOff); From 2b6b5c74cead63e51e3fb5043647302109b5c6df Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 19 Nov 2024 07:18:43 -0300 Subject: [PATCH 080/179] feat(uart): adds Serial4 as a keyword - used by ESP32-P4 (#10619) * feat(uart): adds Serial4 as a keyword - used by ESP32-P4 * fix(keywords): added 2 new lines to keep consistancy --- libraries/ESP32/keywords.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libraries/ESP32/keywords.txt b/libraries/ESP32/keywords.txt index 6cfd3fcab4c..7e36360c840 100644 --- a/libraries/ESP32/keywords.txt +++ b/libraries/ESP32/keywords.txt @@ -6,6 +6,8 @@ # Datatypes (KEYWORD1) ####################################### +Serial4 KEYWORD1 + ####################################### # Methods and Functions (KEYWORD2) ####################################### From f5ce3f76755851537b846fb9eb402c7a30b0dc5b Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:19:02 +0100 Subject: [PATCH 081/179] Guard ethernet parts to make it possible to use without (#10609) * Update ETH.cpp * Update ETH.h * Update WiFiGeneric.h * Update NetworkEvents.h * remove unnecessary include "sdkconfig.h" * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- libraries/Ethernet/src/ETH.cpp | 3 +++ libraries/Ethernet/src/ETH.h | 4 ++++ libraries/Network/src/NetworkEvents.h | 6 +++++- libraries/WiFi/src/WiFiGeneric.h | 2 ++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/libraries/Ethernet/src/ETH.cpp b/libraries/Ethernet/src/ETH.cpp index 1bd8f367c3d..fa8a2b97122 100644 --- a/libraries/Ethernet/src/ETH.cpp +++ b/libraries/Ethernet/src/ETH.cpp @@ -22,6 +22,7 @@ #define ARDUINO_CORE_BUILD #include "ETH.h" +#if CONFIG_ETH_ENABLED #include "esp_system.h" #include "esp_event.h" #include "esp_eth.h" @@ -1056,3 +1057,5 @@ size_t ETHClass::printDriverInfo(Print &out) const { } ETHClass ETH; + +#endif /* CONFIG_ETH_ENABLED */ diff --git a/libraries/Ethernet/src/ETH.h b/libraries/Ethernet/src/ETH.h index 10d6b504c2a..582835cf8ac 100644 --- a/libraries/Ethernet/src/ETH.h +++ b/libraries/Ethernet/src/ETH.h @@ -18,6 +18,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "sdkconfig.h" +#if CONFIG_ETH_ENABLED + #ifndef _ETH_H_ #define _ETH_H_ @@ -249,3 +252,4 @@ class ETHClass : public NetworkInterface { extern ETHClass ETH; #endif /* _ETH_H_ */ +#endif /* CONFIG_ETH_ENABLED */ diff --git a/libraries/Network/src/NetworkEvents.h b/libraries/Network/src/NetworkEvents.h index a84ced88496..34a54cab092 100644 --- a/libraries/Network/src/NetworkEvents.h +++ b/libraries/Network/src/NetworkEvents.h @@ -5,18 +5,20 @@ */ #pragma once +#include "sdkconfig.h" #include "soc/soc_caps.h" #include "esp_err.h" #include "esp_event.h" #include "esp_netif_types.h" +#if CONFIG_ETH_ENABLED #include "esp_eth_driver.h" +#endif #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/queue.h" #include "freertos/semphr.h" #include "freertos/event_groups.h" -#include "sdkconfig.h" #if defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1 #include #endif // defined NETWORK_EVENTS_MUTEX && SOC_CPU_CORES_NUM > 1 @@ -98,7 +100,9 @@ typedef union { ip_event_ap_staipassigned_t wifi_ap_staipassigned; ip_event_got_ip_t got_ip; ip_event_got_ip6_t got_ip6; +#if CONFIG_ETH_ENABLED esp_eth_handle_t eth_connected; +#endif #if SOC_WIFI_SUPPORTED || CONFIG_ESP_WIFI_REMOTE_ENABLED wifi_event_sta_scan_done_t wifi_scan_done; wifi_event_sta_authmode_change_t wifi_sta_authmode_change; diff --git a/libraries/WiFi/src/WiFiGeneric.h b/libraries/WiFi/src/WiFiGeneric.h index 27b41043abf..ed216229ed4 100644 --- a/libraries/WiFi/src/WiFiGeneric.h +++ b/libraries/WiFi/src/WiFiGeneric.h @@ -33,7 +33,9 @@ #include "IPAddress.h" #include "esp_smartconfig.h" #include "esp_netif_types.h" +#if CONFIG_ETH_ENABLED #include "esp_eth_driver.h" +#endif #if CONFIG_NETWORK_PROV_NETWORK_TYPE_WIFI #include "network_provisioning/manager.h" #endif From d7b5bb111e9d957995d668285655803d92b877df Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:42:43 +0100 Subject: [PATCH 082/179] Guard WPA Enterprise support (#10616) * Guard WPA Enterprise support * guard `WIFI_ENTERPRISE_SUPPORT` * wrong part guarded * fix guard start and end * add guard enterprise --- libraries/WiFi/src/STA.cpp | 2 ++ libraries/WiFi/src/WiFiSTA.cpp | 2 ++ libraries/WiFi/src/WiFiSTA.h | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/libraries/WiFi/src/STA.cpp b/libraries/WiFi/src/STA.cpp index a7163ba0434..547a27d1c47 100644 --- a/libraries/WiFi/src/STA.cpp +++ b/libraries/WiFi/src/STA.cpp @@ -421,6 +421,7 @@ bool STAClass::connect(const char *ssid, const char *passphrase, int32_t channel return true; } +#if CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT /** * Start Wifi connection with a WPA2 Enterprise AP * if passphrase is set the most secure supported mode will be automatically selected @@ -519,6 +520,7 @@ bool STAClass::connect( return connect(wpa2_ssid, NULL, channel, bssid, tryConnect); //connect to wifi } +#endif /* CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT */ bool STAClass::disconnect(bool eraseap, unsigned long timeout) { if (eraseap) { diff --git a/libraries/WiFi/src/WiFiSTA.cpp b/libraries/WiFi/src/WiFiSTA.cpp index b636e692a04..b956e35ba26 100644 --- a/libraries/WiFi/src/WiFiSTA.cpp +++ b/libraries/WiFi/src/WiFiSTA.cpp @@ -63,6 +63,7 @@ wl_status_t WiFiSTAClass::status() { return STA.status(); } +#if CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT wl_status_t WiFiSTAClass::begin( const char *wpa2_ssid, wpa2_auth_method_t method, const char *wpa2_identity, const char *wpa2_username, const char *wpa2_password, const char *ca_pem, const char *client_crt, const char *client_key, int ttls_phase2_type, int32_t channel, const uint8_t *bssid, bool connect @@ -77,6 +78,7 @@ wl_status_t WiFiSTAClass::begin( return STA.status(); } +#endif /* CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT */ wl_status_t WiFiSTAClass::begin(const char *ssid, const char *passphrase, int32_t channel, const uint8_t *bssid, bool connect) { if (!STA.begin()) { diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index 96a3aa59dbd..3c8adbd8502 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -54,11 +54,13 @@ class STAClass : public NetworkInterface { bool connect(); bool connect(const char *ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t *bssid = NULL, bool connect = true); +#if CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT bool connect( const char *wpa2_ssid, wpa2_auth_method_t method, const char *wpa2_identity = NULL, const char *wpa2_username = NULL, const char *wpa2_password = NULL, const char *ca_pem = NULL, const char *client_crt = NULL, const char *client_key = NULL, int ttls_phase2_type = -1, int32_t channel = 0, const uint8_t *bssid = 0, bool connect = true ); +#endif /* CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT */ bool disconnect(bool eraseap = false, unsigned long timeout = 0); bool reconnect(); bool erase(); @@ -109,6 +111,7 @@ class WiFiSTAClass { public: STAClass STA; +#if CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT wl_status_t begin( const char *wpa2_ssid, wpa2_auth_method_t method, const char *wpa2_identity = NULL, const char *wpa2_username = NULL, const char *wpa2_password = NULL, const char *ca_pem = NULL, const char *client_crt = NULL, const char *client_key = NULL, int ttls_phase2_type = -1, int32_t channel = 0, @@ -124,6 +127,8 @@ class WiFiSTAClass { ttls_phase2_type, channel, bssid, connect ); } +#endif /* CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT */ + wl_status_t begin(const char *ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t *bssid = NULL, bool connect = true); wl_status_t begin(const String &ssid, const String &passphrase = (const char *)NULL, int32_t channel = 0, const uint8_t *bssid = NULL, bool connect = true) { return begin(ssid.c_str(), passphrase.c_str(), channel, bssid, connect); From 442679d22563f4071d0152114c0ba83fabd74744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:47:27 +0100 Subject: [PATCH 083/179] fix(Zigbee): Add missing direction to report commands (#10623) * fix(Zigbee): Add missing direction to report commands * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- libraries/Zigbee/src/ZigbeeEP.cpp | 1 + libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libraries/Zigbee/src/ZigbeeEP.cpp b/libraries/Zigbee/src/ZigbeeEP.cpp index abb5c5ce3dc..cd77b99996b 100644 --- a/libraries/Zigbee/src/ZigbeeEP.cpp +++ b/libraries/Zigbee/src/ZigbeeEP.cpp @@ -104,6 +104,7 @@ void ZigbeeEP::reportBatteryPercentage() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_POWER_CONFIG_BATTERY_PERCENTAGE_REMAINING_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_POWER_CONFIG; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp index f7004d5ab92..718c892f638 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp @@ -80,6 +80,7 @@ void ZigbeeTempSensor::reportTemperature() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; @@ -120,6 +121,7 @@ void ZigbeeTempSensor::reportHumidity() { esp_zb_zcl_report_attr_cmd_t report_attr_cmd; report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT; report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; From 268b31c3f69d2d60d52002cdcaa8203164b2df73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:51:47 +0100 Subject: [PATCH 084/179] feat(zigbee): Add setLight APIs to manually operate lights (#10626) * feat(zigbee): Add setLight APIs to manually operate lights * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .../Zigbee_Color_Dimmable_Light.ino | 6 ++ .../Zigbee_On_Off_Light.ino | 2 + .../src/ep/ZigbeeColorDimmableLight.cpp | 62 +++++++++++++++++++ .../Zigbee/src/ep/ZigbeeColorDimmableLight.h | 22 +++++++ libraries/Zigbee/src/ep/ZigbeeLight.cpp | 13 ++++ libraries/Zigbee/src/ep/ZigbeeLight.h | 9 ++- 6 files changed, 113 insertions(+), 1 deletion(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino index c03d26d3aba..7acf6e362df 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino @@ -41,6 +41,10 @@ ZigbeeColorDimmableLight zbColorLight = ZigbeeColorDimmableLight(ZIGBEE_LIGHT_EN /********************* RGB LED functions **************************/ void setRGBLight(bool state, uint8_t red, uint8_t green, uint8_t blue, uint8_t level) { + if (!state) { + rgbLedWrite(LED_PIN, 0, 0, 0); + return; + } float brightness = (float)level / 255; rgbLedWrite(LED_PIN, red * brightness, green * brightness, blue * brightness); } @@ -98,6 +102,8 @@ void loop() { Zigbee.factoryReset(); } } + // Increase blightness by 50 every time the button is pressed + zbColorLight.setLightLevel(zbColorLight.getLightLevel() + 50); } delay(100); } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino index 30e3cd2d109..53d43895365 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino @@ -81,6 +81,8 @@ void loop() { Zigbee.factoryReset(); } } + // Toggle light by pressing the button + zbLight.setLight(!zbLight.getLightState()); } delay(100); } diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp index 08828f7c280..f034daba54a 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp @@ -47,6 +47,24 @@ void ZigbeeColorDimmableLight::calculateRGB(uint16_t x, uint16_t y, uint8_t &red blue = (uint8_t)(b * (float)255); } +void ZigbeeColorDimmableLight::calculateXY(uint8_t red, uint8_t green, uint8_t blue, uint16_t &x, uint16_t &y) { + // Convert RGB to XYZ + float r = (float)red / 255.0f; + float g = (float)green / 255.0f; + float b = (float)blue / 255.0f; + + float X, Y, Z; + RGB_TO_XYZ(r, g, b, X, Y, Z); + + // Convert XYZ to xy chromaticity coordinates + float color_x = X / (X + Y + Z); + float color_y = Y / (X + Y + Z); + + // Convert normalized xy to 16-bit values + x = (uint16_t)(color_x * 65535.0f); + y = (uint16_t)(color_y * 65535.0f); +} + //set attribute method -> method overridden in child class void ZigbeeColorDimmableLight::zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) { //check the data and call right method @@ -109,4 +127,48 @@ void ZigbeeColorDimmableLight::lightChanged() { } } +void ZigbeeColorDimmableLight::setLight(bool state, uint8_t level, uint8_t red, uint8_t green, uint8_t blue) { + //Update all attributes + _current_state = state; + _current_level = level; + _current_red = red; + _current_green = green; + _current_blue = blue; + lightChanged(); + + log_v("Updating on/off light state to %d", state); + /* Update light clusters */ + esp_zb_lock_acquire(portMAX_DELAY); + //set on/off state + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, &_current_state, false + ); + //set level + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, &_current_level, false + ); + //set color + uint16_t color_x, color_y; + calculateXY(red, green, blue, color_x, color_y); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_X_ID, &color_x, false + ); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_COLOR_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_COLOR_CONTROL_CURRENT_Y_ID, &color_y, false + ); + esp_zb_lock_release(); +} + +void ZigbeeColorDimmableLight::setLightState(bool state) { + setLight(state, _current_level, _current_red, _current_green, _current_blue); +} + +void ZigbeeColorDimmableLight::setLightLevel(uint8_t level) { + setLight(_current_state, level, _current_red, _current_green, _current_blue); +} + +void ZigbeeColorDimmableLight::setLightColor(uint8_t red, uint8_t green, uint8_t blue) { + setLight(_current_state, _current_level, red, green, blue); +} + #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h index 1edb6b5468c..9fa59dcfffc 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.h @@ -21,9 +21,31 @@ class ZigbeeColorDimmableLight : public ZigbeeEP { lightChanged(); } + void setLightState(bool state); + void setLightLevel(uint8_t level); + void setLightColor(uint8_t red, uint8_t green, uint8_t blue); + void setLight(bool state, uint8_t level, uint8_t red, uint8_t green, uint8_t blue); + + bool getLightState() { + return _current_state; + } + uint8_t getLightLevel() { + return _current_level; + } + uint8_t getLightRed() { + return _current_red; + } + uint8_t getLightGreen() { + return _current_green; + } + uint8_t getLightBlue() { + return _current_blue; + } + private: void zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) override; void calculateRGB(uint16_t x, uint16_t y, uint8_t &red, uint8_t &green, uint8_t &blue); + void calculateXY(uint8_t red, uint8_t green, uint8_t blue, uint16_t &x, uint16_t &y); uint16_t getCurrentColorX(); uint16_t getCurrentColorY(); diff --git a/libraries/Zigbee/src/ep/ZigbeeLight.cpp b/libraries/Zigbee/src/ep/ZigbeeLight.cpp index 6b602db35c1..100efe34a86 100644 --- a/libraries/Zigbee/src/ep/ZigbeeLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeLight.cpp @@ -33,4 +33,17 @@ void ZigbeeLight::lightChanged() { } } +void ZigbeeLight::setLight(bool state) { + _current_state = state; + lightChanged(); + + log_v("Updating on/off light state to %d", state); + /* Update on/off light state */ + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, &_current_state, false + ); + esp_zb_lock_release(); +} + #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeLight.h b/libraries/Zigbee/src/ep/ZigbeeLight.h index 1f57bbf66e5..9b8fc409d4a 100644 --- a/libraries/Zigbee/src/ep/ZigbeeLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeLight.h @@ -14,13 +14,20 @@ class ZigbeeLight : public ZigbeeEP { ZigbeeLight(uint8_t endpoint); ~ZigbeeLight(); - // Use tp set a cb function to be called on light change + // Use to set a cb function to be called on light change void onLightChange(void (*callback)(bool)) { _on_light_change = callback; } + // Use to restore light state void restoreLight() { lightChanged(); } + // Use to control light state + void setLight(bool state); + // Use to get light state + bool getLightState() { + return _current_state; + } private: void zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) override; From ff613b3f29fd6702709996a702c5868ba93ca478 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:10:39 -0300 Subject: [PATCH 085/179] ci(uart): Disable UART test for P4 until it is fixed in Wokwi --- tests/validation/uart/ci.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/validation/uart/ci.json b/tests/validation/uart/ci.json index 54da33b6176..dc24acbaee2 100644 --- a/tests/validation/uart/ci.json +++ b/tests/validation/uart/ci.json @@ -1,5 +1,8 @@ { "platforms": { "qemu": false + }, + "targets": { + "esp32p4": false } } From 6bc3ce68febf553be3d569923870f44dedf66f9d Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Wed, 20 Nov 2024 17:02:34 -0300 Subject: [PATCH 086/179] feat(matter): New Matter Endpoint (#10628) * feat(matter): add new endpoint - color temperature light --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 2 + .../MatterDimmableLight.ino | 4 +- .../MatterOnOffLight/MatterOnOffLight.ino | 2 +- .../Matter_CW_WW_Light/Matter_CW_WW_Light.ino | 196 ++++++++++++++ .../examples/Matter_CW_WW_Light/ci.json | 7 + libraries/Matter/keywords.txt | 21 ++ libraries/Matter/src/Matter.h | 3 + .../MatterColorTemperatureLight.cpp | 245 ++++++++++++++++++ .../MatterColorTemperatureLight.h | 94 +++++++ .../MatterEndpoints/MatterDimmableLight.cpp | 6 + .../src/MatterEndpoints/MatterDimmableLight.h | 4 +- .../Matter/src/MatterUtil/ColorFormat.cpp | 203 +++++++++++++++ libraries/Matter/src/MatterUtil/ColorFormat.h | 47 ++++ 13 files changed, 829 insertions(+), 5 deletions(-) create mode 100644 libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino create mode 100644 libraries/Matter/examples/Matter_CW_WW_Light/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h create mode 100644 libraries/Matter/src/MatterUtil/ColorFormat.cpp create mode 100644 libraries/Matter/src/MatterUtil/ColorFormat.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ba41d9ae962..9ccfecc2dac 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -169,6 +169,8 @@ set(ARDUINO_LIBRARY_OpenThread_SRCS set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp + libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp + libraries/Matter/src/MatterUtil/ColorFormat.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino index 5fd3152dacf..cac511926aa 100644 --- a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -23,8 +23,8 @@ MatterDimmableLight DimmableLight; // it will keep last OnOff & Brightness state stored, using Preferences Preferences matterPref; -const char *onOffPrefKey = "OnOffState"; -const char *brightnessPrefKey = "BrightnessState"; +const char *onOffPrefKey = "OnOff"; +const char *brightnessPrefKey = "Brightness"; // set your board RGB LED pin here #ifdef RGB_BUILTIN diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 8f4276643e2..0bdd0eb19b7 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -23,7 +23,7 @@ MatterOnOffLight OnOffLight; // it will keep last OnOff state stored, using Preferences Preferences matterPref; -const char *onOffPrefKey = "OnOffState"; +const char *onOffPrefKey = "OnOff"; // set your board LED pin here #ifdef LED_BUILTIN diff --git a/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino b/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino new file mode 100644 index 00000000000..39392d90225 --- /dev/null +++ b/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino @@ -0,0 +1,196 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// Color Temperature CW/WW Light Endpoint +MatterColorTemperatureLight CW_WW_Light; + +// it will keep last OnOff & Brightness state stored, using Preferences +Preferences matterPref; +const char *onOffPrefKey = "OnOff"; +const char *brightnessPrefKey = "Brightness"; +const char *temperaturePrefKey = "Temperature"; + +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Set the RGB LED Light based on the current state of the Color Temperature Light +bool setLightState(bool state, uint8_t brightness, uint16_t temperature_Mireds) { + + if (state) { +#ifdef RGB_BUILTIN + CtColor_t ct = {temperature_Mireds}; + RgbColor_t rgb_ct = CTToRgb(ct); + // simple intensity correction + float brightnessPercent = (float)brightness / MatterColorTemperatureLight::MAX_BRIGHTNESS; + rgb_ct.r = brightnessPercent * rgb_ct.r; + rgb_ct.g = brightnessPercent * rgb_ct.g; + rgb_ct.b = brightnessPercent * rgb_ct.b; + // set the RGB LED + rgbLedWrite(ledPin, rgb_ct.r, rgb_ct.g, rgb_ct.b); +#else + // No Color RGB LED, just use the brightness to control the LED + analogWrite(ledPin, brightness); +#endif + } else { + digitalWrite(ledPin, LOW); + } + // store last Brightness and OnOff state for when the Light is restarted / power goes off + matterPref.putUChar(brightnessPrefKey, brightness); + matterPref.putBool(onOffPrefKey, state); + matterPref.putUShort(temperaturePrefKey, temperature_Mireds); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + matterPref.begin("MatterPrefs", false); + // default OnOff state is ON if not stored before + bool lastOnOffState = matterPref.getBool(onOffPrefKey, true); + // default brightness ~= 6% (15/255) + uint8_t lastBrightness = matterPref.getUChar(brightnessPrefKey, 15); + // default temperature ~= 454 Mireds (Warm White) + uint16_t lastTemperature = matterPref.getUShort(temperaturePrefKey, MatterColorTemperatureLight::WARM_WHITE_COLOR_TEMPERATURE); + CW_WW_Light.begin(lastOnOffState, lastBrightness, lastTemperature); + // set the callback function to handle the Light state change + CW_WW_Light.onChange(setLightState); + + // lambda functions are used to set the attribute change callbacks + CW_WW_Light.onChangeOnOff([](bool state) { + Serial.printf("Light OnOff changed to %s\r\n", state ? "ON" : "OFF"); + return true; + }); + CW_WW_Light.onChangeBrightness([](uint8_t level) { + Serial.printf("Light Brightness changed to %d\r\n", level); + return true; + }); + CW_WW_Light.onChangeColorTemperature([](uint16_t temperature) { + Serial.printf("Light Color Temperature changed to %d\r\n", temperature); + return true; + }); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf( + "Initial state: %s | brightness: %d | Color Temperature: %d mireds \r\n", CW_WW_Light ? "ON" : "OFF", CW_WW_Light.getBrightness(), + CW_WW_Light.getColorTemperature() + ); + // configure the Light based on initial on-off state and brightness + CW_WW_Light.updateAccessory(); + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light + +void loop() { + // Check Matter Light Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf( + "Initial state: %s | brightness: %d | Color Temperature: %d mireds \r\n", CW_WW_Light ? "ON" : "OFF", CW_WW_Light.getBrightness(), + CW_WW_Light.getColorTemperature() + ); + // configure the Light based on initial on-off state and brightness + CW_WW_Light.updateAccessory(); + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A button is also used to control the light + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a Light toggle switch or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // Toggle button is released - toggle the light + Serial.println("User button released. Toggling Light!"); + CW_WW_Light.toggle(); // Matter Controller also can see the change + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + CW_WW_Light = false; // turn the light off + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/Matter_CW_WW_Light/ci.json b/libraries/Matter/examples/Matter_CW_WW_Light/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/Matter_CW_WW_Light/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 98abce410b1..bcc99253e72 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -10,7 +10,12 @@ Matter KEYWORD1 ArduinoMatter KEYWORD1 MatterOnOffLight KEYWORD1 MatterDimmableLight KEYWORD1 +MatterColorTemperatureLight KEYWORD1 MatterEndPoint KEYWORD1 +CtColor_t KEYWORD1 +XyColor_t KEYWORD1 +HsvColor_t KEYWORD1 +RgbColor_t KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -30,12 +35,28 @@ setOnOff KEYWORD2 getOnOff KEYWORD2 setBrightness KEYWORD2 getBrightness KEYWORD2 +setColorTemperature KEYWORD2 +getColorTemperature KEYWORD2 toggle KEYWORD2 updateAccessory KEYWORD2 onChange KEYWORD2 onChangeOnOff KEYWORD2 onChangeBrightness KEYWORD2 +onChangeColorTemperature KEYWORD2 +XYToRgb KEYWORD2 +HsvToRgb KEYWORD2 +CTToRgb KEYWORD2 +RgbToHsv KEYWORD2 ####################################### # Constants (LITERAL1) ####################################### + +MAX_BRIGHTNESS LITERAL1 +MAX_COLOR_TEMPERATURE LITERAL1 +MIN_COLOR_TEMPERATURE LITERAL1 +COOL_WHITE_COLOR_TEMPERATURE LITERAL1 +DAYLIGHT_WHITE_COLOR_TEMPERATURE LITERAL1 +WHITE_COLOR_TEMPERATURE LITERAL1 +SOFT_WHITE_COLOR_TEMPERATURE LITERAL1 +WARM_WHITE_COLOR_TEMPERATURE LITERAL1 diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index f88b7788016..e9d8b715388 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -18,8 +18,10 @@ #include #include +#include #include #include +#include using namespace esp_matter; @@ -47,6 +49,7 @@ class ArduinoMatter { // list of Matter EndPoints Friend Classes friend class MatterOnOffLight; friend class MatterDimmableLight; + friend class MatterColorTemperatureLight; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp new file mode 100644 index 00000000000..7bbcb83dcfe --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp @@ -0,0 +1,245 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterColorTemperatureLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter CW_WW Light device has not begun."); + return false; + } + + log_d("CW_WW Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + + if (endpoint_id == getEndPointId()) { + switch (cluster_id) { + case OnOff::Id: + if (attribute_id == OnOff::Attributes::OnOff::Id) { + log_d("CW_WW Light On/Off State changed to %d", val->val.b); + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(val->val.b, brightnessLevel, colorTemperatureLevel); + } + if (ret == true) { + onOffState = val->val.b; + } + } + break; + case LevelControl::Id: + if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { + log_d("CW_WW Light Brightness changed to %d", val->val.u8); + if (_onChangeBrightnessCB != NULL) { + ret &= _onChangeBrightnessCB(val->val.u8); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, val->val.u8, colorTemperatureLevel); + } + if (ret == true) { + brightnessLevel = val->val.u8; + } + } + break; + case ColorControl::Id: + if (attribute_id == ColorControl::Attributes::ColorTemperatureMireds::Id) { + log_d("CW_WW Light Temperature changed to %d", val->val.u16); + if (_onChangeTemperatureCB != NULL) { + ret &= _onChangeTemperatureCB(val->val.u16); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, brightnessLevel, val->val.u16); + } + if (ret == true) { + colorTemperatureLevel = val->val.u16; + } + } + break; + } + } + return ret; +} + +MatterColorTemperatureLight::MatterColorTemperatureLight() {} + +MatterColorTemperatureLight::~MatterColorTemperatureLight() { + end(); +} + +bool MatterColorTemperatureLight::begin(bool initialState, uint8_t brightness, uint16_t ColorTemperature) { + ArduinoMatter::_init(); + color_temperature_light::config_t light_config; + + light_config.on_off.on_off = initialState; + light_config.on_off.lighting.start_up_on_off = nullptr; + onOffState = initialState; + + light_config.level_control.current_level = brightness; + light_config.level_control.lighting.start_up_current_level = nullptr; + brightnessLevel = brightness; + + light_config.color_control.color_mode = (uint8_t)ColorControl::ColorMode::kColorTemperature; + light_config.color_control.enhanced_color_mode = (uint8_t)ColorControl::ColorMode::kColorTemperature; + light_config.color_control.color_temperature.color_temperature_mireds = ColorTemperature; + light_config.color_control.color_temperature.startup_color_temperature_mireds = nullptr; + colorTemperatureLevel = ColorTemperature; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = color_temperature_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create CW_WW light endpoint"); + return false; + } + + setEndPointId(endpoint::get_id(endpoint)); + log_i("CW_WW Light created with endpoint_id %d", getEndPointId()); + + /* Mark deferred persistence for some attributes that might be changed rapidly */ + cluster_t *level_control_cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *current_level_attribute = attribute::get(level_control_cluster, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + + cluster_t *color_control_cluster = cluster::get(endpoint, ColorControl::Id); + attribute_t *color_temp_attribute = attribute::get(color_control_cluster, ColorControl::Attributes::ColorTemperatureMireds::Id); + attribute::set_deferred_persistence(color_temp_attribute); + + started = true; + return true; +} + +void MatterColorTemperatureLight::end() { + started = false; +} + +bool MatterColorTemperatureLight::setOnOff(bool newState) { + if (!started) { + log_e("Matter CW_WW Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (onOffState == newState) { + return true; + } + + onOffState = newState; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, OnOff::Id); + attribute_t *attribute = attribute::get(cluster, OnOff::Attributes::OnOff::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.b != onOffState) { + val.val.b = onOffState; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); + } + return true; +} + +void MatterColorTemperatureLight::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState, brightnessLevel, colorTemperatureLevel); + } +} + +bool MatterColorTemperatureLight::getOnOff() { + return onOffState; +} + +bool MatterColorTemperatureLight::toggle() { + return setOnOff(!onOffState); +} + +bool MatterColorTemperatureLight::setBrightness(uint8_t newBrightness) { + if (!started) { + log_w("Matter CW_WW Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (brightnessLevel == newBrightness) { + return true; + } + + brightnessLevel = newBrightness; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *attribute = attribute::get(cluster, LevelControl::Attributes::CurrentLevel::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.u8 != brightnessLevel) { + val.val.u8 = brightnessLevel; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); + } + return true; +} + +uint8_t MatterColorTemperatureLight::getBrightness() { + return brightnessLevel; +} + +bool MatterColorTemperatureLight::setColorTemperature(uint16_t newTemperature) { + if (!started) { + log_w("Matter CW_WW Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (colorTemperatureLevel == newTemperature) { + return true; + } + + colorTemperatureLevel = newTemperature; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, ColorControl::Id); + attribute_t *attribute = attribute::get(cluster, ColorControl::Attributes::ColorTemperatureMireds::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.u16 != colorTemperatureLevel) { + val.val.u16 = colorTemperatureLevel; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id, &val); + } + return true; +} + +uint16_t MatterColorTemperatureLight::getColorTemperature() { + return colorTemperatureLevel; +} + +MatterColorTemperatureLight::operator bool() { + return getOnOff(); +} + +void MatterColorTemperatureLight::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h new file mode 100644 index 00000000000..a37f362f475 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -0,0 +1,94 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterColorTemperatureLight : public MatterEndPoint { +public: + static const uint8_t MAX_BRIGHTNESS = 255; + static const uint16_t MAX_COLOR_TEMPERATURE = 500; + static const uint16_t MIN_COLOR_TEMPERATURE = 100; + // main color temperature values + static const uint16_t COOL_WHITE_COLOR_TEMPERATURE = 142; + static const uint16_t DAYLIGHT_WHITE_COLOR_TEMPERATURE = 181; + static const uint16_t WHITE_COLOR_TEMPERATURE = 250; + static const uint16_t SOFT_WHITE_COLOR_TEMPERATURE = 370; + static const uint16_t WARM_WHITE_COLOR_TEMPERATURE = 454; + + MatterColorTemperatureLight(); + ~MatterColorTemperatureLight(); + // default initial state is off, brightness is 64 (25%) and temperature is 370 (Soft White) + virtual bool begin(bool initialState = false, uint8_t brightness = 64, uint16_t colorTemperature = 370); + // this will just stop processing Light Matter events + void end(); + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current light state + bool toggle(); // returns true if successful + + bool setBrightness(uint8_t newBrightness); // returns true if successful + uint8_t getBrightness(); // returns current brightness + + bool setColorTemperature(uint16_t newTemperature); // returns true if successful + uint16_t getColorTemperature(); // returns current temperature + + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + + // User Callback for whenever the Light On/Off state is changed by the Matter Controller + using EndPointOnOffCB = std::function; + void onChangeOnOff(EndPointOnOffCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } + // User Callback for whenever the Light brightness value [0..255] is changed by the Matter Controller + using EndPointBrightnessCB = std::function; + void onChangeBrightness(EndPointBrightnessCB onChangeCB) { + _onChangeBrightnessCB = onChangeCB; + } + + // User Callbqck for whenever the Light temperature value is changed by the Matter Controller + using EndPointTemperatureCB = std::function; + void onChangeColorTemperature(EndPointTemperatureCB onChangeCB) { + _onChangeTemperatureCB = onChangeCB; + } + + // User Callback for whenever any parameter is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) + uint8_t brightnessLevel = 0; // default initial brightness is 0, but it can be changed by begin(bool, uint8_t) + uint16_t colorTemperatureLevel = 0; // default initial color temperature is 0, but it can be changed by begin(bool, uint8_t, uint16_t) + EndPointOnOffCB _onChangeOnOffCB = NULL; + EndPointBrightnessCB _onChangeBrightnessCB = NULL; + EndPointTemperatureCB _onChangeTemperatureCB = NULL; + EndPointCB _onChangeCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp index 7907ae3a90a..c3991e0c0f3 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp @@ -94,6 +94,12 @@ bool MatterDimmableLight::begin(bool initialState, uint8_t brightness) { setEndPointId(endpoint::get_id(endpoint)); log_i("Dimmable Light created with endpoint_id %d", getEndPointId()); + + /* Mark deferred persistence for some attributes that might be changed rapidly */ + cluster_t *level_control_cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *current_level_attribute = attribute::get(level_control_cluster, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + started = true; return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h index fbfccde6105..aacce883277 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -25,8 +25,8 @@ class MatterDimmableLight : public MatterEndPoint { MatterDimmableLight(); ~MatterDimmableLight(); - // default initial state is off and brightness is 0 - virtual bool begin(bool initialState = false, uint8_t brightness = 0); + // default initial state is off and brightness is 64 (25%) + virtual bool begin(bool initialState = false, uint8_t brightness = 64); // this will just stop processing Light Matter events void end(); diff --git a/libraries/Matter/src/MatterUtil/ColorFormat.cpp b/libraries/Matter/src/MatterUtil/ColorFormat.cpp new file mode 100644 index 00000000000..41d845dcdb9 --- /dev/null +++ b/libraries/Matter/src/MatterUtil/ColorFormat.cpp @@ -0,0 +1,203 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ColorFormat.h" + +#include + +// define a clamp macro to substitute the std::clamp macro which is available from C++17 onwards +#define clamp(a, min, max) ((a) < (min) ? (min) : ((a) > (max) ? (max) : (a))) + +RgbColor_t HsvToRgb(HsvColor_t hsv) { + RgbColor_t rgb; + + uint16_t i = hsv.h / 60; + uint16_t rgb_max = hsv.v; + uint16_t rgb_min = (uint16_t)(rgb_max * (100 - hsv.s)) / 100; + uint16_t diff = hsv.h % 60; + uint16_t rgb_adj = (uint16_t)((rgb_max - rgb_min) * diff) / 60; + + switch (i) { + case 0: + rgb.r = (uint8_t)rgb_max; + rgb.g = (uint8_t)(rgb_min + rgb_adj); + rgb.b = (uint8_t)rgb_min; + break; + case 1: + rgb.r = (uint8_t)(rgb_max - rgb_adj); + rgb.g = (uint8_t)rgb_max; + rgb.b = (uint8_t)rgb_min; + break; + case 2: + rgb.r = (uint8_t)rgb_min; + rgb.g = (uint8_t)rgb_max; + rgb.b = (uint8_t)(rgb_min + rgb_adj); + break; + case 3: + rgb.r = (uint8_t)rgb_min; + rgb.g = (uint8_t)(rgb_max - rgb_adj); + rgb.b = (uint8_t)rgb_max; + break; + case 4: + rgb.r = (uint8_t)(rgb_min + rgb_adj); + rgb.g = (uint8_t)rgb_min; + rgb.b = (uint8_t)rgb_max; + break; + default: + rgb.r = (uint8_t)rgb_max; + rgb.g = (uint8_t)rgb_min; + rgb.b = (uint8_t)(rgb_max - rgb_adj); + break; + } + + return rgb; +} + +HsvColor_t RgbToHsv(RgbColor_t rgb) { + HsvColor_t hsv; + + uint16_t rgb_max = rgb.r > rgb.g ? (rgb.r > rgb.b ? rgb.r : rgb.b) : (rgb.g > rgb.b ? rgb.g : rgb.b); + uint16_t rgb_min = rgb.r < rgb.g ? (rgb.r < rgb.b ? rgb.r : rgb.b) : (rgb.g < rgb.b ? rgb.g : rgb.b); + uint16_t diff = rgb_max - rgb_min; + + if (diff == 0) { + hsv.h = 0; + } else if (rgb_max == rgb.r) { + hsv.h = (uint8_t)(60 * ((rgb.g - rgb.b) * 100) / diff); + } else if (rgb_max == rgb.g) { + hsv.h = (uint8_t)(60 * (((rgb.b - rgb.r) * 100) / diff + 2 * 100)); + } else { + hsv.h = (uint8_t)(60 * (((rgb.r - rgb.g) * 100) / diff + 4 * 100)); + } + + if (rgb_max == 0) { + hsv.s = 0; + } else { + hsv.s = (uint8_t)((diff * 100) / rgb_max); + } + + hsv.v = (uint8_t)rgb_max; + if (hsv.h < 0) { + hsv.h += 360; + } + + return hsv; +} + +RgbColor_t XYToRgb(uint8_t Level, uint16_t current_X, uint16_t current_Y) { + // convert xyY color space to RGB + + // https://www.easyrgb.com/en/math.php + // https://en.wikipedia.org/wiki/SRGB + // refer https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space + + // The current_X/current_Y attribute contains the current value of the normalized chromaticity value of x/y. + // The value of x/y shall be related to the current_X/current_Y attribute by the relationship + // x = current_X/65536 + // y = current_Y/65536 + // z = 1-x-y + + RgbColor_t rgb; + + float x, y, z; + float X, Y, Z; + float r, g, b; + + x = ((float)current_X) / 65535.0f; + y = ((float)current_Y) / 65535.0f; + + z = 1.0f - x - y; + + // Calculate XYZ values + + // Y - given brightness in 0 - 1 range + Y = ((float)Level) / 254.0f; + X = (Y / y) * x; + Z = (Y / y) * z; + + // X, Y and Z input refer to a D65/2° standard illuminant. + // sR, sG and sB (standard RGB) output range = 0 ÷ 255 + // convert XYZ to RGB - CIE XYZ to sRGB + X = X / 100.0f; + Y = Y / 100.0f; + Z = Z / 100.0f; + + r = (X * 3.2406f) - (Y * 1.5372f) - (Z * 0.4986f); + g = -(X * 0.9689f) + (Y * 1.8758f) + (Z * 0.0415f); + b = (X * 0.0557f) - (Y * 0.2040f) + (Z * 1.0570f); + + // apply gamma 2.2 correction + r = (r <= 0.0031308f ? 12.92f * r : (1.055f) * pow(r, (1.0f / 2.4f)) - 0.055f); + g = (g <= 0.0031308f ? 12.92f * g : (1.055f) * pow(g, (1.0f / 2.4f)) - 0.055f); + b = (b <= 0.0031308f ? 12.92f * b : (1.055f) * pow(b, (1.0f / 2.4f)) - 0.055f); + + // Round off + r = clamp(r, 0, 1); + g = clamp(g, 0, 1); + b = clamp(b, 0, 1); + + // these rgb values are in the range of 0 to 1, convert to limit of HW specific LED + rgb.r = (uint8_t)(r * 255); + rgb.g = (uint8_t)(g * 255); + rgb.b = (uint8_t)(b * 255); + + return rgb; +} + +RgbColor_t CTToRgb(CtColor_t ct) { + RgbColor_t rgb = {0, 0, 0}; + float r, g, b; + + if (ct.ctMireds == 0) { + return rgb; + } + // Algorithm credits to Tanner Helland: https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html + + // Convert Mireds to centiKelvins. k = 1,000,000/mired + float ctCentiKelvin = 10000 / ct.ctMireds; + + // Red + if (ctCentiKelvin <= 66) { + r = 255; + } else { + r = 329.698727446f * pow(ctCentiKelvin - 60, -0.1332047592f); + } + + // Green + if (ctCentiKelvin <= 66) { + g = 99.4708025861f * log(ctCentiKelvin) - 161.1195681661f; + } else { + g = 288.1221695283f * pow(ctCentiKelvin - 60, -0.0755148492f); + } + + // Blue + if (ctCentiKelvin >= 66) { + b = 255; + } else { + if (ctCentiKelvin <= 19) { + b = 0; + } else { + b = 138.5177312231 * log(ctCentiKelvin - 10) - 305.0447927307; + } + } + rgb.r = (uint8_t)clamp(r, 0, 255); + rgb.g = (uint8_t)clamp(g, 0, 255); + rgb.b = (uint8_t)clamp(b, 0, 255); + + return rgb; +} diff --git a/libraries/Matter/src/MatterUtil/ColorFormat.h b/libraries/Matter/src/MatterUtil/ColorFormat.h new file mode 100644 index 00000000000..254a51c7144 --- /dev/null +++ b/libraries/Matter/src/MatterUtil/ColorFormat.h @@ -0,0 +1,47 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include + +struct RgbColor_t { + uint8_t r; + uint8_t g; + uint8_t b; +}; + +struct HsvColor_t { + int16_t h; + uint8_t s; + uint8_t v; +}; + +struct XyColor_t { + uint16_t x; + uint16_t y; +}; + +struct CtColor_t { + uint16_t ctMireds; +}; + +RgbColor_t XYToRgb(uint8_t Level, uint16_t current_X, uint16_t current_Y); +RgbColor_t HsvToRgb(HsvColor_t hsv); +RgbColor_t CTToRgb(CtColor_t ct); +HsvColor_t RgbToHsv(RgbColor_t rgb); From 962ab3aceaca593586031bf28bbe0e7467ecbe0f Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Sun, 24 Nov 2024 19:09:46 -0300 Subject: [PATCH 087/179] Adds a Minimum Code Matter Example (#10639) * feat(matter): add a new example for a minimum matter device --------- --- .../examples/MatterMinimum/MatterMinimum.ino | 81 +++++++++++++++++++ .../Matter/examples/MatterMinimum/ci.json | 7 ++ 2 files changed, 88 insertions(+) create mode 100644 libraries/Matter/examples/MatterMinimum/MatterMinimum.ino create mode 100644 libraries/Matter/examples/MatterMinimum/ci.json diff --git a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino new file mode 100644 index 00000000000..719c91db23b --- /dev/null +++ b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino @@ -0,0 +1,81 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is the smallest code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * It controls a GPIO that could be attached to a LED for visualization. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool matterCB(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void setup() { + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + } + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(matterCB); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + if (!Matter.isDeviceCommissioned()) { + log_i("Matter Node is not commissioned yet."); + log_i("Initiate the device discovery in your Matter environment."); + log_i("Commission it to your Matter hub with the manual pairing code or QR code"); + log_i("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + log_i("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + } +} + +void loop() { + delay(500); +} diff --git a/libraries/Matter/examples/MatterMinimum/ci.json b/libraries/Matter/examples/MatterMinimum/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterMinimum/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} From 6e57662599366fd8104ffaf040edb9816078e703 Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 Nov 2024 10:49:24 +0100 Subject: [PATCH 088/179] fix compile of P4 caused from missing ")" in debug macro (#10638) --- cores/esp32/esp32-hal-cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cores/esp32/esp32-hal-cpu.c b/cores/esp32/esp32-hal-cpu.c index 40e2cf0fdf0..e9baf3613c2 100644 --- a/cores/esp32/esp32-hal-cpu.c +++ b/cores/esp32/esp32-hal-cpu.c @@ -267,7 +267,7 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { : ((conf.source == SOC_CPU_CLK_SRC_APLL) ? "APLL" : ((conf.source == SOC_CPU_CLK_SRC_XTAL) ? "XTAL" #ifdef CONFIG_IDF_TARGET_ESP32P4 - : "17.5M"), + : "17.5M")), #else : "8M")), #endif From 9417a84918ff096eb9da41e993f27a905b574876 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 25 Nov 2024 08:13:01 -0300 Subject: [PATCH 089/179] feat(uart): [IDF 5.3] fixes HardwareSerial::updateBaudRate() using a baud rate higher 230400 - checks UART Clock Source (#10643) * fix(uart): fixes issue with update baudrate higher than 250000 * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- cores/esp32/esp32-hal-uart.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cores/esp32/esp32-hal-uart.c b/cores/esp32/esp32-hal-uart.c index 706124c7451..34a2660e3a3 100644 --- a/cores/esp32/esp32-hal-uart.c +++ b/cores/esp32/esp32-hal-uart.c @@ -33,7 +33,8 @@ #include "hal/gpio_hal.h" #include "esp_rom_gpio.h" -static int s_uart_debug_nr = 0; // UART number for debug output +static int s_uart_debug_nr = 0; // UART number for debug output +#define REF_TICK_BAUDRATE_LIMIT 250000 // this is maximum UART badrate using REF_TICK as clock struct uart_struct_t { @@ -522,7 +523,7 @@ uart_t *uartBegin( #if SOC_UART_SUPPORT_XTAL_CLK uart_config.source_clk = UART_SCLK_XTAL; // valid for C2, S3, C3, C6, H2 and P4 #elif SOC_UART_SUPPORT_REF_TICK - if (baudrate <= 250000) { + if (baudrate <= REF_TICK_BAUDRATE_LIMIT) { uart_config.source_clk = UART_SCLK_REF_TICK; // valid for ESP32, S2 - MAX supported baud rate is 250 Kbps } else { uart_config.source_clk = UART_SCLK_APB; // baudrate may change with the APB Frequency! @@ -804,6 +805,10 @@ void uartSetBaudRate(uart_t *uart, uint32_t baud_rate) { return; } UART_MUTEX_LOCK(); +#if !SOC_UART_SUPPORT_XTAL_CLK + soc_module_clk_t newClkSrc = baud_rate <= REF_TICK_BAUDRATE_LIMIT ? SOC_MOD_CLK_REF_TICK : SOC_MOD_CLK_APB; + uart_ll_set_sclk(UART_LL_GET_HW(uart->num), newClkSrc); +#endif if (uart_set_baudrate(uart->num, baud_rate) == ESP_OK) { uart->_baudrate = baud_rate; } else { From 1730e4e57e73a35abd11bd3b79b36c0b1fb91579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:13:28 +0100 Subject: [PATCH 090/179] fix(zigbee): Add connected(), minor fixes, example update (#10636) * fix(zigbee): Add connected and minor fixes, example update * fix(example): Use correct API call for connected * fix(zigbee): Increase timeout and add semaphore to begin * feat(zigbee): Add option to select debug libs for zigbee * fix(example): fix warning by double percentage symbol * fix(example): Fix serial prints for Windows os Co-authored-by: Rodrigo Garcia * ci(pre-commit): Apply automatic fixes * fix(example): Fix precommit spelling --------- Co-authored-by: Rodrigo Garcia Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- boards.txt | 19 ++++++- .../Zigbee_Color_Dimmable_Light.ino | 25 +++++++-- .../Zigbee_Color_Dimmer_Switch.ino | 9 ++- .../Zigbee_On_Off_Light.ino | 22 ++++++-- .../Zigbee_On_Off_Switch.ino | 17 +++--- .../Zigbee_Scan_Networks.ino | 15 +++-- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 28 +++++++--- .../Zigbee_Temperature_Sensor.ino | 24 ++++++-- .../Zigbee_Thermostat/Zigbee_Thermostat.ino | 15 +++-- libraries/Zigbee/keywords.txt | 55 ++++++++++++------- libraries/Zigbee/src/ZigbeeCore.cpp | 38 ++++++++++--- libraries/Zigbee/src/ZigbeeCore.h | 7 ++- libraries/Zigbee/src/ZigbeeEP.cpp | 2 - libraries/Zigbee/src/ZigbeeEP.h | 2 +- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.h | 8 --- 15 files changed, 198 insertions(+), 88 deletions(-) diff --git a/boards.txt b/boards.txt index e0523a326fe..92d6ae599c2 100644 --- a/boards.txt +++ b/boards.txt @@ -531,7 +531,15 @@ esp32h2.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_co esp32h2.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor) esp32h2.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP esp32h2.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port - +esp32h2.menu.ZigbeeMode.ed_debug=Zigbee ED (end device) - Debug +esp32h2.menu.ZigbeeMode.ed_debug.build.zigbee_mode=-DZIGBEE_MODE_ED +esp32h2.menu.ZigbeeMode.ed_debug.build.zigbee_libs=-lesp_zb_api_ed.debug -lesp_zb_cli_command -lzboss_stack.ed.debug -lzboss_port.debug +esp32h2.menu.ZigbeeMode.zczr_debug=Zigbee ZCZR (coordinator/router) - Debug +esp32h2.menu.ZigbeeMode.zczr_debug.build.zigbee_mode=-DZIGBEE_MODE_ZCZR +esp32h2.menu.ZigbeeMode.zczr_debug.build.zigbee_libs=-lesp_zb_api_zczr.debug -lesp_zb_cli_command -lzboss_stack.zczr.debug -lzboss_port.debug +esp32h2.menu.ZigbeeMode.rcp_debug=Zigbee RCP (radio co-processor) - Debug +esp32h2.menu.ZigbeeMode.rcp_debug.build.zigbee_mode=-DZIGBEE_MODE_RCP +esp32h2.menu.ZigbeeMode.rcp_debug.build.zigbee_libs=-lesp_zb_api_rcp.debug -lesp_zb_cli_command -lzboss_stack.rcp.debug -lzboss_port.debug ############################################################## @@ -723,6 +731,15 @@ esp32c6.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api_zczr -lesp_zb_cli_co esp32c6.menu.ZigbeeMode.rcp=Zigbee RCP (radio co-processor) esp32c6.menu.ZigbeeMode.rcp.build.zigbee_mode=-DZIGBEE_MODE_RCP esp32c6.menu.ZigbeeMode.rcp.build.zigbee_libs=-lesp_zb_api_rcp -lesp_zb_cli_command -lzboss_stack.rcp -lzboss_port +esp32c6.menu.ZigbeeMode.ed_debug=Zigbee ED (end device) - Debug +esp32c6.menu.ZigbeeMode.ed_debug.build.zigbee_mode=-DZIGBEE_MODE_ED +esp32c6.menu.ZigbeeMode.ed_debug.build.zigbee_libs=-lesp_zb_api_ed.debug -lesp_zb_cli_command -lzboss_stack.ed.debug -lzboss_port.debug +esp32c6.menu.ZigbeeMode.zczr_debug=Zigbee ZCZR (coordinator/router) - Debug +esp32c6.menu.ZigbeeMode.zczr_debug.build.zigbee_mode=-DZIGBEE_MODE_ZCZR +esp32c6.menu.ZigbeeMode.zczr_debug.build.zigbee_libs=-lesp_zb_api_zczr.debug -lesp_zb_cli_command -lzboss_stack.zczr.debug -lzboss_port.debug +esp32c6.menu.ZigbeeMode.rcp_debug=Zigbee RCP (radio co-processor) - Debug +esp32c6.menu.ZigbeeMode.rcp_debug.build.zigbee_mode=-DZIGBEE_MODE_RCP +esp32c6.menu.ZigbeeMode.rcp_debug.build.zigbee_libs=-lesp_zb_api_rcp.debug -lesp_zb_cli_command -lzboss_stack.rcp.debug -lzboss_port.debug ############################################################## diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino index 7acf6e362df..7ff7a020632 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino @@ -64,6 +64,11 @@ void identify(uint16_t time) { /********************* Arduino functions **************************/ void setup() { + Serial.begin(115200); + while (!Serial) { + delay(10); + } + // Init RMT and leave light OFF rgbLedWrite(LED_PIN, 0, 0, 0); @@ -80,12 +85,21 @@ void setup() { zbColorLight.setManufacturerAndModel("Espressif", "ZBColorLightBulb"); // Add endpoint to Zigbee Core - log_d("Adding ZigbeeLight endpoint to Zigbee Core"); + Serial.println("Adding ZigbeeLight endpoint to Zigbee Core"); Zigbee.addEndpoint(&zbColorLight); - // When all EPs are registered, start Zigbee. By default acts as ZIGBEE_END_DEVICE - log_d("Calling Zigbee.begin()"); - Zigbee.begin(); + // When all EPs are registered, start Zigbee in End Device mode + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); } void loop() { @@ -98,7 +112,8 @@ void loop() { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot - Serial.printf("Resetting Zigbee to factory settings, reboot.\n"); + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); Zigbee.factoryReset(); } } diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino index 6d6c7b163dd..00e3cd170ef 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino @@ -46,7 +46,6 @@ ZigbeeColorDimmerSwitch zbSwitch = ZigbeeColorDimmerSwitch(SWITCH_ENDPOINT_NUMBE /********************* Arduino functions **************************/ void setup() { - Serial.begin(115200); while (!Serial) { delay(10); @@ -68,11 +67,15 @@ void setup() { Zigbee.setRebootOpenNetwork(180); //When all EPs are registered, start Zigbee with ZIGBEE_COORDINATOR mode - Zigbee.begin(ZIGBEE_COORDINATOR); + if (!Zigbee.begin(ZIGBEE_COORDINATOR)) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } Serial.println("Waiting for Light to bound to the switch"); //Wait for switch to bound to a light: - while (!zbSwitch.isBound()) { + while (!zbSwitch.bound()) { Serial.printf("."); delay(500); } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino index 53d43895365..92c59044cae 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino @@ -45,6 +45,10 @@ void setLED(bool value) { /********************* Arduino functions **************************/ void setup() { + Serial.begin(115200); + while (!Serial) { + delay(10); + } // Init LED and turn it OFF (if LED_PIN == RGB_BUILTIN, the rgbLedWrite() will be used under the hood) pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); @@ -59,12 +63,21 @@ void setup() { zbLight.onLightChange(setLED); //Add endpoint to Zigbee Core - log_d("Adding ZigbeeLight endpoint to Zigbee Core"); + Serial.println("Adding ZigbeeLight endpoint to Zigbee Core"); Zigbee.addEndpoint(&zbLight); // When all EPs are registered, start Zigbee. By default acts as ZIGBEE_END_DEVICE - log_d("Calling Zigbee.begin()"); - Zigbee.begin(); + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); } void loop() { @@ -77,7 +90,8 @@ void loop() { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot - Serial.printf("Resetting Zigbee to factory settings, reboot.\n"); + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); Zigbee.factoryReset(); } } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino index 69cf6654a41..e38734a052a 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino @@ -70,6 +70,7 @@ ZigbeeSwitch zbSwitch = ZigbeeSwitch(SWITCH_ENDPOINT_NUMBER); static void onZbButton(SwitchData *button_func_pair) { if (button_func_pair->func == SWITCH_ONOFF_TOGGLE_CONTROL) { // Send toggle command to the light + Serial.println("Toggling light"); zbSwitch.lightToggle(); } } @@ -93,7 +94,6 @@ static void enableGpioInterrupt(bool enabled) { /********************* Arduino functions **************************/ void setup() { - Serial.begin(115200); while (!Serial) { delay(10); @@ -106,7 +106,7 @@ void setup() { zbSwitch.allowMultipleBinding(true); //Add endpoint to Zigbee Core - log_d("Adding ZigbeeSwitch endpoint to Zigbee Core"); + Serial.println("Adding ZigbeeSwitch endpoint to Zigbee Core"); Zigbee.addEndpoint(&zbSwitch); //Open network for 180 seconds after boot @@ -118,19 +118,22 @@ void setup() { /* create a queue to handle gpio event from isr */ gpio_evt_queue = xQueueCreate(10, sizeof(SwitchData)); if (gpio_evt_queue == 0) { - log_e("Queue was not created and must not be used"); - while (1); + Serial.println("Queue creating failed, rebooting..."); + ESP.restart(); } attachInterruptArg(buttonFunctionPair[i].pin, onGpioInterrupt, (void *)(buttonFunctionPair + i), FALLING); } // When all EPs are registered, start Zigbee with ZIGBEE_COORDINATOR mode - log_d("Calling Zigbee.begin()"); - Zigbee.begin(ZIGBEE_COORDINATOR); + if (!Zigbee.begin(ZIGBEE_COORDINATOR)) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } Serial.println("Waiting for Light to bound to the switch"); //Wait for switch to bound to a light: - while (!zbSwitch.isBound()) { + while (!zbSwitch.bound()) { Serial.printf("."); delay(500); } diff --git a/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino b/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino index 7d59fb2907d..c3a74e0aee5 100644 --- a/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino +++ b/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino @@ -32,7 +32,7 @@ #include "Zigbee.h" #ifdef ZIGBEE_MODE_ZCZR -zigbee_role_t role = ZIGBEE_ROUTER; // or can be ZIGBEE_COORDINATOR, but it wont scan itself +zigbee_role_t role = ZIGBEE_ROUTER; // or can be ZIGBEE_COORDINATOR, but it won't scan itself #else zigbee_role_t role = ZIGBEE_END_DEVICE; #endif @@ -81,14 +81,13 @@ void setup() { } // Initialize Zigbee stack without any EPs just for scanning - Zigbee.begin(role); - - // Waint until Zigbee stack is ready - while (!Zigbee.isStarted()) { - delay(100); + if (!Zigbee.begin(role)) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); } - Serial.println("Setup done"); + Serial.println("Setup done, starting Zigbee network scan..."); // Start Zigbee Network Scan with default parameters (all channels, scan time 5) Zigbee.scanNetworks(); } @@ -98,7 +97,7 @@ void loop() { int16_t ZigbeeScanStatus = Zigbee.scanComplete(); if (ZigbeeScanStatus < 0) { // it is busy scanning or got an error if (ZigbeeScanStatus == ZB_SCAN_FAILED) { - Serial.println("WiFi Scan has failed. Starting again."); + Serial.println("Zigbee scan has failed. Starting again."); Zigbee.scanNetworks(); } // other option is status ZB_SCAN_RUNNING - just wait. diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index 530995a8427..e13e6a877a6 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -27,7 +27,7 @@ */ #ifndef ZIGBEE_MODE_ED -#error "Zigbee coordinator mode is not selected in Tools->Zigbee mode" +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" #endif #include "Zigbee.h" @@ -56,14 +56,19 @@ void meausureAndSleep() { zbTempSensor.reportTemperature(); zbTempSensor.reportHumidity(); - log_d("Temperature: %.2f°C, Humidity: %.2f%", temperature, humidity); + Serial.printf("Reported temperature: %.2f°C, Humidity: %.2f%%\r\n", temperature, humidity); // Put device to deep sleep + Serial.println("Going to sleep now"); esp_deep_sleep_start(); } /********************* Arduino functions **************************/ void setup() { + Serial.begin(115200); + while (!Serial) { + delay(10); + } // Init button switch pinMode(BUTTON_PIN, INPUT_PULLUP); @@ -94,14 +99,20 @@ void setup() { zigbeeConfig.nwk_cfg.zed_cfg.keep_alive = 10000; // When all EPs are registered, start Zigbee in End Device mode - Zigbee.begin(&zigbeeConfig, false); - - // Wait for Zigbee to start - while (!Zigbee.isStarted()) { + if (!Zigbee.begin(&zigbeeConfig, false)) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); delay(100); } + Serial.println(); + Serial.println("Successfully connected to Zigbee network"); - // Delay 5s to allow establishing connection with coordinator, needed for sleepy devices + // Delay 5s (may be adjusted) to allow establishing proper connection with coordinator, needed for sleepy devices delay(5000); } @@ -115,7 +126,8 @@ void loop() { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot - Zigbee.factoryReset(); + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); } } } diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino index c5ca00decd6..255b074265e 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino @@ -27,7 +27,7 @@ */ #ifndef ZIGBEE_MODE_ED -#error "Zigbee coordinator mode is not selected in Tools->Zigbee mode" +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" #endif #include "Zigbee.h" @@ -42,7 +42,7 @@ static void temp_sensor_value_update(void *arg) { for (;;) { // Read temperature sensor value float tsens_value = temperatureRead(); - log_v("Temperature sensor value: %.2f°C", tsens_value); + Serial.printf("Updated temperature sensor value to %.2f°C\r\n", tsens_value); // Update temperature value in Temperature sensor EP zbTempSensor.setTemperature(tsens_value); delay(1000); @@ -51,12 +51,10 @@ static void temp_sensor_value_update(void *arg) { /********************* Arduino functions **************************/ void setup() { - Serial.begin(115200); while (!Serial) { delay(10); } - // Init button switch pinMode(BUTTON_PIN, INPUT_PULLUP); @@ -72,8 +70,21 @@ void setup() { // Add endpoint to Zigbee Core Zigbee.addEndpoint(&zbTempSensor); + Serial.println("Starting Zigbee..."); // When all EPs are registered, start Zigbee in End Device mode - Zigbee.begin(); + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } else { + Serial.println("Zigbee started successfully!"); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); // Start Temperature sensor reading task xTaskCreate(temp_sensor_value_update, "temp_sensor_update", 2048, NULL, 10, NULL); @@ -96,7 +107,8 @@ void loop() { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot - Serial.printf("Resetting Zigbee to factory settings, reboot.\n"); + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); Zigbee.factoryReset(); } } diff --git a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino index 565d9e64919..df02f891794 100644 --- a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino +++ b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino @@ -80,19 +80,22 @@ void setup() { Zigbee.setRebootOpenNetwork(180); // When all EPs are registered, start Zigbee with ZIGBEE_COORDINATOR mode - Zigbee.begin(ZIGBEE_COORDINATOR); - - Serial.println("Waiting for Temperature sensor to bound to the switch"); + if (!Zigbee.begin(ZIGBEE_COORDINATOR)) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } - //Wait for switch to bound to a light: - while (!zbThermostat.isBound()) { + Serial.println("Waiting for Temperature sensor to bound to the thermostat"); + while (!zbThermostat.bound()) { Serial.printf("."); delay(500); } + Serial.println(); + // Get temperature sensor configuration zbThermostat.getSensorSettings(); - Serial.println(); } void loop() { diff --git a/libraries/Zigbee/keywords.txt b/libraries/Zigbee/keywords.txt index 53ce5fffe2a..1a8b7ae85ba 100644 --- a/libraries/Zigbee/keywords.txt +++ b/libraries/Zigbee/keywords.txt @@ -30,14 +30,18 @@ zigbee_scan_result_t KEYWORD1 ####################################### # ZigbeeCore -isStarted KEYWORD2 +begin KEYWORD2 +started KEYWORD2 +connected KEYWORD2 +getRole KEYWORD2 addEndpoint KEYWORD2 setRadioConfig KEYWORD2 -setHostConfig KEYWORD2 getRadioConfig KEYWORD2 +setHostConfig KEYWORD2 getHostConfig KEYWORD2 setPrimaryChannelMask KEYWORD2 setRebootOpenNetwork KEYWORD2 +openNetwork KEYWORD2 scanNetworks KEYWORD2 scanComplete KEYWORD2 getScanResult KEYWORD2 @@ -45,21 +49,33 @@ scanDelete KEYWORD2 factoryReset KEYWORD2 # Common ZigbeeEP +setEpConfig KEYWORD2 setVersion KEYWORD2 -setManufacturerAndModel KEYWORD2 -is_bound KEYWORD2 +getEndpoint KEYWORD2 printBoundDevices KEYWORD2 +getBoundDevices KEYWORD2 +bound KEYWORD2 allowMultipleBinding KEYWORD2 +setManufacturerAndModel KEYWORD2 +setPowerSource KEYWORD2 +setBatteryPercentage KEYWORD2 +reportBatteryPercentage KEYWORD2 +readManufacturer KEYWORD2 +readModel KEYWORD2 +onIdentify KEYWORD2 # ZigbeeLight + ZigbeeColorDimmableLight -setOnOff KEYWORD2 -sceneControl KEYWORD2 -setOnOffTime KEYWORD2 -setOffWaitTime KEYWORD2 -setLevel KEYWORD2 -setColor KEYWORD2 -setColorSaturation KEYWORD2 -setColorHue KEYWORD2 +onLightChange KEYWORD2 +restoreLight KEYWORD2 +setLight KEYWORD2 +setLightState KEYWORD2 +setLightLevel KEYWORD2 +setLightColor KEYWORD2 +getLightState KEYWORD2 +getLightLevel KEYWORD2 +getLightRed KEYWORD2 +getLightGreen KEYWORD2 +getLightBlue KEYWORD2 # ZigbeeSwitch + ZigbeeColorDimmerSwitch lightToggle KEYWORD2 @@ -70,22 +86,23 @@ lightOnWithTimedOff KEYWORD2 lightOnWithSceneRecall KEYWORD2 setLightLevel KEYWORD2 setLightColor KEYWORD2 -setLightColorSaturation KEYWORD2 -setLightColorHue KEYWORD2 -# ZigbeeTempSensor +# ZigbeeTempSensor + humidity setTemperature KEYWORD2 setMinMaxValue KEYWORD2 setTolerance KEYWORD2 setReporting KEYWORD2 reportTemperature KEYWORD2 +addHumiditySensor KEYWORD2 +setHumidity KEYWORD2 +setHumidityReporting KEYWORD2 +reportHumidity KEYWORD2 # ZigbeeThermostat -temperatureRead KEYWORD2 -temperatureMin KEYWORD2 -temperatureMax KEYWORD2 -temperatureTolerance KEYWORD2 +onTempRecieve KEYWORD2 +onConfigRecieve KEYWORD2 getTemperature KEYWORD2 +getSensorSettings KEYWORD2 setTemperatureReporting KEYWORD2 ####################################### diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index dd84e2a63e4..38ef9b169d5 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -6,6 +6,8 @@ #include "ZigbeeHandlers.cpp" #include "Arduino.h" +#define ZB_INIT_TIMEOUT 10000 // 10 seconds + extern "C" void zb_set_ed_node_descriptor(bool power_src, bool rx_on_when_idle, bool alloc_addr); static bool edBatteryPowered = false; @@ -17,6 +19,13 @@ ZigbeeCore::ZigbeeCore() { _open_network = 0; _scan_status = ZB_SCAN_FAILED; _started = false; + _connected = false; + if (!lock) { + lock = xSemaphoreCreateBinary(); + if (lock == NULL) { + log_e("Semaphore creation failed"); + } + } } ZigbeeCore::~ZigbeeCore() {} @@ -25,10 +34,14 @@ static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id, bool ZigbeeCore::begin(esp_zb_cfg_t *role_cfg, bool erase_nvs) { if (!zigbeeInit(role_cfg, erase_nvs)) { + log_e("ZigbeeCore begin failed"); return false; } _role = (zigbee_role_t)role_cfg->esp_zb_role; - return true; + if (xSemaphoreTake(lock, ZB_INIT_TIMEOUT) != pdTRUE) { + log_e("ZigbeeCore begin timeout"); + } + return started(); } bool ZigbeeCore::begin(zigbee_role_t role, bool erase_nvs) { @@ -57,7 +70,10 @@ bool ZigbeeCore::begin(zigbee_role_t role, bool erase_nvs) { } default: log_e("Invalid Zigbee Role"); return false; } - return status; + if (!status || xSemaphoreTake(lock, ZB_INIT_TIMEOUT) != pdTRUE) { + log_e("ZigbeeCore begin failed or timeout"); + } + return started(); } void ZigbeeCore::addEndpoint(ZigbeeEP *ep) { @@ -167,7 +183,7 @@ void ZigbeeCore::setRebootOpenNetwork(uint8_t time) { } void ZigbeeCore::openNetwork(uint8_t time) { - if (isStarted()) { + if (started()) { log_v("Opening network for joining for %d seconds", time); esp_zb_bdb_open_network(time); } @@ -203,21 +219,24 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { } else { log_i("Start network steering"); esp_zb_bdb_start_top_level_commissioning(ESP_ZB_BDB_MODE_NETWORK_STEERING); + Zigbee._started = true; + xSemaphoreGive(Zigbee.lock); } - //----------------- - } else { log_i("Device rebooted"); Zigbee._started = true; + xSemaphoreGive(Zigbee.lock); if ((zigbee_role_t)Zigbee.getRole() == ZIGBEE_COORDINATOR && Zigbee._open_network > 0) { log_i("Opening network for joining for %d seconds", Zigbee._open_network); esp_zb_bdb_open_network(Zigbee._open_network); + } else { + Zigbee._connected = true; } } } else { /* commissioning failed */ log_e("Failed to initialize Zigbee stack (status: %s)", esp_err_to_name(err_status)); - esp_restart(); + xSemaphoreGive(Zigbee.lock); } break; case ESP_ZB_BDB_SIGNAL_FORMATION: // Coordinator @@ -243,6 +262,7 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { log_i("Network steering started"); } Zigbee._started = true; + xSemaphoreGive(Zigbee.lock); } else { if (err_status == ESP_OK) { esp_zb_ieee_addr_t extended_pan_id; @@ -252,7 +272,7 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { extended_pan_id[7], extended_pan_id[6], extended_pan_id[5], extended_pan_id[4], extended_pan_id[3], extended_pan_id[2], extended_pan_id[1], extended_pan_id[0], esp_zb_get_pan_id(), esp_zb_get_current_channel(), esp_zb_get_short_address() ); - Zigbee._started = true; + Zigbee._connected = true; } else { log_i("Network steering was not successful (status: %s)", esp_err_to_name(err_status)); esp_zb_scheduler_alarm((esp_zb_callback_t)bdb_start_top_level_commissioning_cb, ESP_ZB_BDB_MODE_NETWORK_STEERING, 1000); @@ -281,7 +301,7 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { // for each endpoint in the list call the findEndpoint function if not bounded or allowed to bind multiple devices for (std::list::iterator it = Zigbee.ep_objects.begin(); it != Zigbee.ep_objects.end(); ++it) { - if (!(*it)->isBound() || (*it)->epAllowMultipleBinding()) { + if (!(*it)->bound() || (*it)->epAllowMultipleBinding()) { (*it)->findEndpoint(&cmd_req); } } @@ -335,7 +355,7 @@ void ZigbeeCore::scanCompleteCallback(esp_zb_zdp_status_t zdo_status, uint8_t co } void ZigbeeCore::scanNetworks(u_int32_t channel_mask, u_int8_t scan_duration) { - if (!isStarted()) { + if (!started()) { log_e("Zigbee stack is not started, cannot scan networks"); return; } diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index 08ff059dd51..e068d74430e 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -70,9 +70,11 @@ class ZigbeeCore { esp_zb_ep_list_t *_zb_ep_list; zigbee_role_t _role; bool _started; + bool _connected; uint8_t _open_network; zigbee_scan_result_t *_scan_result; + SemaphoreHandle_t lock; bool zigbeeInit(esp_zb_cfg_t *zb_cfg, bool erase_nvs); static void scanCompleteCallback(esp_zb_zdp_status_t zdo_status, uint8_t count, esp_zb_network_descriptor_t *nwk_descriptor); @@ -88,9 +90,12 @@ class ZigbeeCore { bool begin(esp_zb_cfg_t *role_cfg, bool erase_nvs = false); // bool end(); - bool isStarted() { + bool started() { return _started; } + bool connected() { + return _connected; + } zigbee_role_t getRole() { return _role; } diff --git a/libraries/Zigbee/src/ZigbeeEP.cpp b/libraries/Zigbee/src/ZigbeeEP.cpp index cd77b99996b..0a947d3ab9e 100644 --- a/libraries/Zigbee/src/ZigbeeEP.cpp +++ b/libraries/Zigbee/src/ZigbeeEP.cpp @@ -19,14 +19,12 @@ ZigbeeEP::ZigbeeEP(uint8_t endpoint) { _ep_config.endpoint = 0; _cluster_list = nullptr; _on_identify = nullptr; -#if !CONFIG_DISABLE_HAL_LOCKS if (!lock) { lock = xSemaphoreCreateBinary(); if (lock == NULL) { log_e("Semaphore creation failed"); } } -#endif } ZigbeeEP::~ZigbeeEP() {} diff --git a/libraries/Zigbee/src/ZigbeeEP.h b/libraries/Zigbee/src/ZigbeeEP.h index 1c0c2d983ab..21ed7706d31 100644 --- a/libraries/Zigbee/src/ZigbeeEP.h +++ b/libraries/Zigbee/src/ZigbeeEP.h @@ -73,7 +73,7 @@ class ZigbeeEP { return _bound_devices; } - static bool isBound() { + static bool bound() { return _is_bound; } static void allowMultipleBinding(bool bind) { diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h index eb854b6c919..9b623d2f8ef 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h @@ -39,14 +39,6 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP { void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint16_t group_addr); void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, uint16_t short_addr); - void setLightColorSaturation(uint8_t value); - void setLightColorSaturation(uint8_t value, uint16_t group_addr); - void setLightColorSaturation(uint8_t value, uint8_t endpoint, uint16_t short_addr); - - void setLightColorHue(uint8_t value); - void setLightColorHue(uint8_t value, uint16_t group_addr); - void setLightColorHue(uint8_t value, uint8_t endpoint, uint16_t short_addr); - private: // save instance of the class in order to use it in static functions static ZigbeeColorDimmerSwitch *_instance; From eb1933fde97a8d0c10ff812ad3e9188a5f0d3bad Mon Sep 17 00:00:00 2001 From: Jason2866 <24528715+Jason2866@users.noreply.github.com> Date: Mon, 25 Nov 2024 12:15:51 +0100 Subject: [PATCH 091/179] Guard crypto parts in "Update" to save resources (#10630) * guard crypt update * guard update crypt * Update Updater.cpp * revert logic to disable * change disable logic * formatting * formatting * remove trailing space --- libraries/Update/src/Update.h | 20 ++++++++++++++- libraries/Update/src/Updater.cpp | 43 +++++++++++++++++++++++++++++--- 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/libraries/Update/src/Update.h b/libraries/Update/src/Update.h index 5832846fd28..9a4d3e02489 100644 --- a/libraries/Update/src/Update.h +++ b/libraries/Update/src/Update.h @@ -63,6 +63,7 @@ class UpdateClass { */ bool begin(size_t size = UPDATE_SIZE_UNKNOWN, int command = U_FLASH, int ledPin = -1, uint8_t ledOn = LOW, const char *label = NULL); +#ifndef UPDATE_NOCRYPT /* Setup decryption configuration Crypt Key is 32bytes(256bits) block of data, use the same key as used to encrypt image file @@ -71,6 +72,7 @@ class UpdateClass { Crypt Mode, used to select if image files should be decrypted or not */ bool setupCrypt(const uint8_t *cryptKey = 0, size_t cryptAddress = 0, uint8_t cryptConfig = 0xf, int cryptMode = U_AES_DECRYPT_AUTO); +#endif /* UPDATE_NOCRYPT */ /* Writes a buffer to the flash and increments the address @@ -99,6 +101,7 @@ class UpdateClass { */ bool end(bool evenIfRemaining = false); +#ifndef UPDATE_NOCRYPT /* sets AES256 key(32 bytes) used for decrypting image file */ @@ -122,6 +125,7 @@ class UpdateClass { void setCryptConfig(const uint8_t cryptConfig) { _cryptCfg = cryptConfig & 0x0f; } +#endif /* UPDATE_NOCRYPT */ /* Aborts the running update @@ -139,7 +143,13 @@ class UpdateClass { sets the expected MD5 for the firmware (hexString) If calc_post_decryption is true, the update library will calculate the MD5 after the decryption, if false the calculation occurs before the decryption */ - bool setMD5(const char *expected_md5, bool calc_post_decryption = true); + bool setMD5( + const char *expected_md5 +#ifndef UPDATE_NOCRYPT + , + bool calc_post_decryption = true +#endif /* #ifdef UPDATE_NOCRYPT */ + ); /* returns the MD5 String of the successfully ended firmware @@ -236,8 +246,10 @@ class UpdateClass { private: void _reset(); void _abort(uint8_t err); +#ifndef UPDATE_NOCRYPT void _cryptKeyTweak(size_t cryptAddress, uint8_t *tweaked_key); bool _decryptBuffer(); +#endif /* UPDATE_NOCRYPT */ bool _writeBuffer(); bool _verifyHeader(uint8_t data); bool _verifyEnd(); @@ -245,8 +257,10 @@ class UpdateClass { bool _chkDataInBlock(const uint8_t *data, size_t len) const; // check if block contains any data or is empty uint8_t _error; +#ifndef UPDATE_NOCRYPT uint8_t *_cryptKey; uint8_t *_cryptBuffer; +#endif /* UPDATE_NOCRYPT */ uint8_t *_buffer; uint8_t *_skipBuffer; size_t _bufferLen; @@ -258,15 +272,19 @@ class UpdateClass { const esp_partition_t *_partition; String _target_md5; +#ifndef UPDATE_NOCRYPT bool _target_md5_decrypted = true; +#endif /* UPDATE_NOCRYPT */ MD5Builder _md5; int _ledPin; uint8_t _ledOn; +#ifndef UPDATE_NOCRYPT uint8_t _cryptMode; size_t _cryptAddress; uint8_t _cryptCfg; +#endif /* UPDATE_NOCRYPT */ }; #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_UPDATE) diff --git a/libraries/Update/src/Updater.cpp b/libraries/Update/src/Updater.cpp index e92f84d4599..3b0c517431d 100644 --- a/libraries/Update/src/Updater.cpp +++ b/libraries/Update/src/Updater.cpp @@ -9,7 +9,9 @@ #include "spi_flash_mmap.h" #include "esp_ota_ops.h" #include "esp_image_format.h" +#ifndef UPDATE_NOCRYPT #include "mbedtls/aes.h" +#endif /* UPDATE_NOCRYPT */ static const char *_err2str(uint8_t _error) { if (_error == UPDATE_ERROR_OK) { @@ -38,8 +40,10 @@ static const char *_err2str(uint8_t _error) { return ("Bad Argument"); } else if (_error == UPDATE_ERROR_ABORT) { return ("Aborted"); +#ifndef UPDATE_NOCRYPT } else if (_error == UPDATE_ERROR_DECRYPT) { return ("Decryption error"); +#endif /* UPDATE_NOCRYPT */ } return ("UNKNOWN"); } @@ -67,8 +71,17 @@ bool UpdateClass::_enablePartition(const esp_partition_t *partition) { } UpdateClass::UpdateClass() - : _error(0), _cryptKey(0), _cryptBuffer(0), _buffer(0), _skipBuffer(0), _bufferLen(0), _size(0), _progress_callback(NULL), _progress(0), _paroffset(0), - _command(U_FLASH), _partition(NULL), _cryptMode(U_AES_DECRYPT_AUTO), _cryptAddress(0), _cryptCfg(0xf) {} + : _error(0), +#ifndef UPDATE_NOCRYPT + _cryptKey(0), _cryptBuffer(0), +#endif /* UPDATE_NOCRYPT */ + _buffer(0), _skipBuffer(0), _bufferLen(0), _size(0), _progress_callback(NULL), _progress(0), _paroffset(0), _command(U_FLASH), _partition(NULL) +#ifndef UPDATE_NOCRYPT + , + _cryptMode(U_AES_DECRYPT_AUTO), _cryptAddress(0), _cryptCfg(0xf) +#endif /* UPDATE_NOCRYPT */ +{ +} UpdateClass &UpdateClass::onProgress(THandlerFunction_Progress fn) { _progress_callback = fn; @@ -83,7 +96,9 @@ void UpdateClass::_reset() { delete[] _skipBuffer; } +#ifndef UPDATE_NOCRYPT _cryptBuffer = nullptr; +#endif /* UPDATE_NOCRYPT */ _buffer = nullptr; _skipBuffer = nullptr; _bufferLen = 0; @@ -175,6 +190,7 @@ bool UpdateClass::begin(size_t size, int command, int ledPin, uint8_t ledOn, con return true; } +#ifndef UPDATE_NOCRYPT bool UpdateClass::setupCrypt(const uint8_t *cryptKey, size_t cryptAddress, uint8_t cryptConfig, int cryptMode) { if (setCryptKey(cryptKey)) { if (setCryptMode(cryptMode)) { @@ -216,6 +232,7 @@ bool UpdateClass::setCryptMode(const int cryptMode) { } return true; } +#endif /* UPDATE_NOCRYPT */ void UpdateClass::_abort(uint8_t err) { _reset(); @@ -226,6 +243,7 @@ void UpdateClass::abort() { _abort(UPDATE_ERROR_ABORT); } +#ifndef UPDATE_NOCRYPT void UpdateClass::_cryptKeyTweak(size_t cryptAddress, uint8_t *tweaked_key) { memcpy(tweaked_key, _cryptKey, ENCRYPTED_KEY_SIZE); if (_cryptCfg == 0) { @@ -338,8 +356,10 @@ bool UpdateClass::_decryptBuffer() { } return true; } +#endif /* UPDATE_NOCRYPT */ bool UpdateClass::_writeBuffer() { +#ifndef UPDATE_NOCRYPT //first bytes of loading image, check to see if loading image needs decrypting if (!_progress) { _cryptMode &= U_AES_DECRYPT_MODE_MASK; @@ -360,6 +380,7 @@ bool UpdateClass::_writeBuffer() { return false; } } +#endif /* UPDATE_NOCRYPT */ //first bytes of new firmware uint8_t skip = 0; if (!_progress && _command == U_FLASH) { @@ -409,9 +430,13 @@ bool UpdateClass::_writeBuffer() { if (!_progress && _command == U_FLASH) { _buffer[0] = ESP_IMAGE_HEADER_MAGIC; } +#ifndef UPDATE_NOCRYPT if (_target_md5_decrypted) { +#endif /* UPDATE_NOCRYPT */ _md5.add(_buffer, _bufferLen); +#ifndef UPDATE_NOCRYPT } +#endif /* UPDATE_NOCRYPT */ _progress += _bufferLen; _bufferLen = 0; if (_progress_callback) { @@ -453,13 +478,21 @@ bool UpdateClass::_verifyEnd() { return false; } -bool UpdateClass::setMD5(const char *expected_md5, bool calc_post_decryption) { +bool UpdateClass::setMD5( + const char *expected_md5 +#ifndef UPDATE_NOCRYPT + , + bool calc_post_decryption +#endif /* UPDATE_NOCRYPT */ +) { if (strlen(expected_md5) != 32) { return false; } _target_md5 = expected_md5; _target_md5.toLowerCase(); +#ifndef UPDATE_NOCRYPT _target_md5_decrypted = calc_post_decryption; +#endif /* UPDATE_NOCRYPT */ return true; } @@ -532,12 +565,16 @@ size_t UpdateClass::writeStream(Stream &data) { return 0; } +#ifndef UPDATE_NOCRYPT if (_command == U_FLASH && !_cryptMode) { +#endif /* UPDATE_NOCRYPT */ if (!_verifyHeader(data.peek())) { _reset(); return 0; } +#ifndef UPDATE_NOCRYPT } +#endif /* UPDATE_NOCRYPT */ if (_ledPin != -1) { pinMode(_ledPin, OUTPUT); From 0f3191e34f9cd0a496b3add66006a21326103559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:39:59 +0100 Subject: [PATCH 092/179] fix(zigbee): Increase timeout, commision again on failure + setScanDuration (#10651) * fix(zigbee): Increase timeout, commision again on failure * fix(zigbee): Update library keywords --- libraries/Zigbee/keywords.txt | 2 ++ libraries/Zigbee/src/ZigbeeCore.cpp | 17 ++++++++++++++--- libraries/Zigbee/src/ZigbeeCore.h | 8 +++++++- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/libraries/Zigbee/keywords.txt b/libraries/Zigbee/keywords.txt index 1a8b7ae85ba..40e5dcec004 100644 --- a/libraries/Zigbee/keywords.txt +++ b/libraries/Zigbee/keywords.txt @@ -40,6 +40,8 @@ getRadioConfig KEYWORD2 setHostConfig KEYWORD2 getHostConfig KEYWORD2 setPrimaryChannelMask KEYWORD2 +setScanDuration KEYWORD2 +getScanDuration KEYWORD2 setRebootOpenNetwork KEYWORD2 openNetwork KEYWORD2 scanNetworks KEYWORD2 diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index 38ef9b169d5..442dc4b7ee0 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -6,7 +6,7 @@ #include "ZigbeeHandlers.cpp" #include "Arduino.h" -#define ZB_INIT_TIMEOUT 10000 // 10 seconds +#define ZB_INIT_TIMEOUT 30000 // 30 seconds extern "C" void zb_set_ed_node_descriptor(bool power_src, bool rx_on_when_idle, bool alloc_addr); static bool edBatteryPowered = false; @@ -20,6 +20,7 @@ ZigbeeCore::ZigbeeCore() { _scan_status = ZB_SCAN_FAILED; _started = false; _connected = false; + _scan_duration = 4; // maximum scan duration if (!lock) { lock = xSemaphoreCreateBinary(); if (lock == NULL) { @@ -90,6 +91,8 @@ void ZigbeeCore::addEndpoint(ZigbeeEP *ep) { } static void esp_zb_task(void *pvParameters) { + esp_zb_bdb_set_scan_duration(Zigbee.getScanDuration()); + /* initialize Zigbee stack */ ESP_ERROR_CHECK(esp_zb_start(false)); @@ -178,6 +181,14 @@ void ZigbeeCore::setPrimaryChannelMask(uint32_t mask) { _primary_channel_mask = mask; } +void ZigbeeCore::setScanDuration(uint8_t duration) { + if (duration < 1 || duration > 4) { + log_e("Invalid scan duration, must be between 1 and 4"); + return; + } + _scan_duration = duration; +} + void ZigbeeCore::setRebootOpenNetwork(uint8_t time) { _open_network = time; } @@ -235,8 +246,8 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { } } else { /* commissioning failed */ - log_e("Failed to initialize Zigbee stack (status: %s)", esp_err_to_name(err_status)); - xSemaphoreGive(Zigbee.lock); + log_w("Commissioning failed, trying again...", esp_err_to_name(err_status)); + esp_zb_scheduler_alarm((esp_zb_callback_t)bdb_start_top_level_commissioning_cb, ESP_ZB_BDB_MODE_INITIALIZATION, 500); } break; case ESP_ZB_BDB_SIGNAL_FORMATION: // Coordinator diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index e068d74430e..75fecd59198 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -66,6 +66,7 @@ class ZigbeeCore { esp_zb_host_config_t _host_config; uint32_t _primary_channel_mask; int16_t _scan_status; + uint8_t _scan_duration; esp_zb_ep_list_t *_zb_ep_list; zigbee_role_t _role; @@ -109,7 +110,12 @@ class ZigbeeCore { void setHostConfig(esp_zb_host_config_t config); esp_zb_host_config_t getHostConfig(); - void setPrimaryChannelMask(uint32_t mask); + void setPrimaryChannelMask(uint32_t mask); // By default all channels are scanned (11-26) -> mask 0x07FFF800 + void setScanDuration(uint8_t duration); // Can be set from 1 - 4. 1 is fastest, 4 is slowest + uint8_t getScanDuration() { + return _scan_duration; + } + void setRebootOpenNetwork(uint8_t time); void openNetwork(uint8_t time); From 414e4f3233ff015003048e1004275b853f7cf556 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 26 Nov 2024 17:14:38 -0300 Subject: [PATCH 093/179] feat(Matter): add new MatterColorLight endpoint (#10654) * feat(matter): adds Matter Color Light endpoint --- CMakeLists.txt | 3 +- cores/esp32/ColorFormat.c | 279 ++++++++++++++++ cores/esp32/ColorFormat.h | 70 ++++ libraries/ESP32/keywords.txt | 38 ++- .../Matter_CW_WW_Light/Matter_CW_WW_Light.ino | 5 +- .../Matter_ColorLight/Matter_ColorLight.ino | 183 +++++++++++ .../Matter/examples/Matter_ColorLight/ci.json | 7 + libraries/Matter/keywords.txt | 32 +- libraries/Matter/src/Matter.cpp | 1 - libraries/Matter/src/Matter.h | 4 +- .../src/MatterEndpoints/MatterColorLight.cpp | 307 ++++++++++++++++++ .../src/MatterEndpoints/MatterColorLight.h | 75 +++++ .../MatterColorTemperatureLight.h | 6 - .../Matter/src/MatterUtil/ColorFormat.cpp | 203 ------------ libraries/Matter/src/MatterUtil/ColorFormat.h | 47 --- 15 files changed, 978 insertions(+), 282 deletions(-) create mode 100644 cores/esp32/ColorFormat.c create mode 100644 cores/esp32/ColorFormat.h create mode 100644 libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino create mode 100644 libraries/Matter/examples/Matter_ColorLight/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterColorLight.h delete mode 100644 libraries/Matter/src/MatterUtil/ColorFormat.cpp delete mode 100644 libraries/Matter/src/MatterUtil/ColorFormat.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ccfecc2dac..8ab001c2d09 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,6 +25,7 @@ endif() set(CORE_SRCS cores/esp32/base64.cpp cores/esp32/cbuf.cpp + cores/esp32/ColorFormat.c cores/esp32/chip-debug-report.cpp cores/esp32/esp32-hal-adc.c cores/esp32/esp32-hal-bt.c @@ -170,7 +171,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp - libraries/Matter/src/MatterUtil/ColorFormat.cpp + libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/cores/esp32/ColorFormat.c b/cores/esp32/ColorFormat.c new file mode 100644 index 00000000000..a01123545b3 --- /dev/null +++ b/cores/esp32/ColorFormat.c @@ -0,0 +1,279 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ColorFormat.h" + +#include + +// define a clamp macro to substitute the std::clamp macro which is available from C++17 onwards +#define clamp(a, min, max) ((a) < (min) ? (min) : ((a) > (max) ? (max) : (a))) + +const espHsvColor_t HSV_BLACK = {0, 0, 0}; +const espHsvColor_t HSV_WHITE = {0, 0, 254}; +const espHsvColor_t HSV_RED = {0, 254, 254}; +const espHsvColor_t HSV_YELLOW = {42, 254, 254}; +const espHsvColor_t HSV_GREEN = {84, 254, 254}; +const espHsvColor_t HSV_CYAN = {127, 254, 254}; +const espHsvColor_t HSV_BLUE = {169, 254, 254}; +const espHsvColor_t HSV_MAGENTA = {211, 254, 254}; + +const espRgbColor_t RGB_BLACK = {0, 0, 0}; +const espRgbColor_t RGB_WHITE = {255, 255, 255}; +const espRgbColor_t RGB_RED = {255, 0, 0}; +const espRgbColor_t RGB_YELLOW = {255, 255, 0}; +const espRgbColor_t RGB_GREEN = {0, 255, 0}; +const espRgbColor_t RGB_CYAN = {0, 255, 255}; +const espRgbColor_t RGB_BLUE = {0, 0, 255}; +const espRgbColor_t RGB_MAGENTA = {255, 0, 255}; + +// main color temperature values +const espCtColor_t COOL_WHITE_COLOR_TEMPERATURE = {142}; +const espCtColor_t DAYLIGHT_WHITE_COLOR_TEMPERATURE = {181}; +const espCtColor_t WHITE_COLOR_TEMPERATURE = {250}; +const espCtColor_t SOFT_WHITE_COLOR_TEMPERATURE = {370}; +const espCtColor_t WARM_WHITE_COLOR_TEMPERATURE = {454}; + +espRgbColor_t espHsvToRgbColor(uint16_t h, uint8_t s, uint8_t v) { + espHsvColor_t hsv = {h, s, v}; + return espHsvColorToRgbColor(hsv); +} + +espRgbColor_t espHsvColorToRgbColor(espHsvColor_t hsv) { + espRgbColor_t rgb; + + uint8_t region, p, q, t; + uint32_t h, s, v, remainder; + + if (hsv.s == 0) { + rgb.r = rgb.g = rgb.b = hsv.v; + } else { + h = hsv.h; + s = hsv.s; + v = hsv.v; + + region = h / 43; + remainder = (h - (region * 43)) * 6; + p = (v * (255 - s)) >> 8; + q = (v * (255 - ((s * remainder) >> 8))) >> 8; + t = (v * (255 - ((s * (255 - remainder)) >> 8))) >> 8; + switch (region) { + case 0: rgb.r = v, rgb.g = t, rgb.b = p; break; + case 1: rgb.r = q, rgb.g = v, rgb.b = p; break; + case 2: rgb.r = p, rgb.g = v, rgb.b = t; break; + case 3: rgb.r = p, rgb.g = q, rgb.b = v; break; + case 4: rgb.r = t, rgb.g = p, rgb.b = v; break; + case 5: + default: rgb.r = v, rgb.g = p, rgb.b = q; break; + } + } + return rgb; +} + +espHsvColor_t espRgbToHsvColor(uint8_t r, uint8_t g, uint8_t b) { + espRgbColor_t rgb = {r, g, b}; + return espRgbColorToHsvColor(rgb); +} + +espHsvColor_t espRgbColorToHsvColor(espRgbColor_t rgb) { + espHsvColor_t hsv; + uint8_t rgbMin, rgbMax; + + rgbMin = rgb.r < rgb.g ? (rgb.r < rgb.b ? rgb.r : rgb.b) : (rgb.g < rgb.b ? rgb.g : rgb.b); + rgbMax = rgb.r > rgb.g ? (rgb.r > rgb.b ? rgb.r : rgb.b) : (rgb.g > rgb.b ? rgb.g : rgb.b); + + hsv.v = rgbMax; + if (hsv.v == 0) { + hsv.h = 0; + hsv.s = 0; + return hsv; + } + + hsv.s = 255 * (rgbMax - rgbMin) / hsv.v; + if (hsv.s == 0) { + hsv.h = 0; + return hsv; + } + if (rgbMax == rgb.r) { + hsv.h = 0 + 43 * (rgb.g - rgb.b) / (rgbMax - rgbMin); + } else if (rgbMax == rgb.g) { + hsv.h = 85 + 43 * (rgb.b - rgb.r) / (rgbMax - rgbMin); + } else { + hsv.h = 171 + 43 * (rgb.r - rgb.g) / (rgbMax - rgbMin); + } + return hsv; +} + +espRgbColor_t espXYColorToRgbColor(uint8_t Level, espXyColor_t xy) { + return espXYToRgbColor(Level, xy.x, xy.y); +} + +espRgbColor_t espXYToRgbColor(uint8_t Level, uint16_t current_X, uint16_t current_Y) { + // convert xyY color space to RGB + + // https://www.easyrgb.com/en/math.php + // https://en.wikipedia.org/wiki/SRGB + // refer https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space + + // The current_X/current_Y attribute contains the current value of the normalized chromaticity value of x/y. + // The value of x/y shall be related to the current_X/current_Y attribute by the relationship + // x = current_X/65536 + // y = current_Y/65536 + // z = 1-x-y + + espRgbColor_t rgb; + + float x, y, z; + float X, Y, Z; + float r, g, b; + + x = ((float)current_X) / 65535.0f; + y = ((float)current_Y) / 65535.0f; + + z = 1.0f - x - y; + + // Calculate XYZ values + + // Y - given brightness in 0 - 1 range + Y = ((float)Level) / 254.0f; + X = (Y / y) * x; + Z = (Y / y) * z; + + // X, Y and Z input refer to a D65/2° standard illuminant. + // sR, sG and sB (standard RGB) output range = 0 ÷ 255 + // convert XYZ to RGB - CIE XYZ to sRGB + X = X / 100.0f; + Y = Y / 100.0f; + Z = Z / 100.0f; + + r = (X * 3.2406f) - (Y * 1.5372f) - (Z * 0.4986f); + g = -(X * 0.9689f) + (Y * 1.8758f) + (Z * 0.0415f); + b = (X * 0.0557f) - (Y * 0.2040f) + (Z * 1.0570f); + + // apply gamma 2.2 correction + r = (r <= 0.0031308f ? 12.92f * r : (1.055f) * pow(r, (1.0f / 2.4f)) - 0.055f); + g = (g <= 0.0031308f ? 12.92f * g : (1.055f) * pow(g, (1.0f / 2.4f)) - 0.055f); + b = (b <= 0.0031308f ? 12.92f * b : (1.055f) * pow(b, (1.0f / 2.4f)) - 0.055f); + + // Round off + r = clamp(r, 0, 1); + g = clamp(g, 0, 1); + b = clamp(b, 0, 1); + + // these rgb values are in the range of 0 to 1, convert to limit of HW specific LED + rgb.r = (uint8_t)(r * 255); + rgb.g = (uint8_t)(g * 255); + rgb.b = (uint8_t)(b * 255); + + return rgb; +} + +espXyColor_t espRgbToXYColor(uint8_t r, uint8_t g, uint8_t b) { + espRgbColor_t rgb = {r, g, b}; + return espRgbColorToXYColor(rgb); +} + +espXyColor_t espRgbColorToXYColor(espRgbColor_t rgb) { + // convert RGB to xy color space + + // https://www.easyrgb.com/en/math.php + // https://en.wikipedia.org/wiki/SRGB + // refer https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space + + espXyColor_t xy; + + float r, g, b; + float X, Y, Z; + float x, y; + + r = ((float)rgb.r) / 255.0f; + g = ((float)rgb.g) / 255.0f; + b = ((float)rgb.b) / 255.0f; + + // convert RGB to XYZ - sRGB to CIE XYZ + r = (r <= 0.04045f ? r / 12.92f : pow((r + 0.055f) / 1.055f, 2.4f)); + g = (g <= 0.04045f ? g / 12.92f : pow((g + 0.055f) / 1.055f, 2.4f)); + b = (b <= 0.04045f ? b / 12.92f : pow((b + 0.055f) / 1.055f, 2.4f)); + + // https://gist.github.com/popcorn245/30afa0f98eea1c2fd34d + X = r * 0.649926f + g * 0.103455f + b * 0.197109f; + Y = r * 0.234327f + g * 0.743075f + b * 0.022598f; + Z = r * 0.0000000f + g * 0.053077f + b * 1.035763f; + + // sR, sG and sB (standard RGB) input range = 0 ÷ 255 + // X, Y and Z output refer to a D65/2° standard illuminant. + X = r * 0.4124564f + g * 0.3575761f + b * 0.1804375f; + Y = r * 0.2126729f + g * 0.7151522f + b * 0.0721750f; + Z = r * 0.0193339f + g * 0.1191920f + b * 0.9503041f; + + // Calculate xy values + x = X / (X + Y + Z); + y = Y / (X + Y + Z); + + // convert to 0-65535 range + xy.x = (uint16_t)(x * 65535); + xy.y = (uint16_t)(y * 65535); + return xy; +} + +espRgbColor_t espCTToRgbColor(uint16_t ct) { + espCtColor_t ctColor = {ct}; + return espCTColorToRgbColor(ctColor); +} + +espRgbColor_t espCTColorToRgbColor(espCtColor_t ct) { + espRgbColor_t rgb = {0, 0, 0}; + float r, g, b; + + if (ct.ctMireds == 0) { + return rgb; + } + // Algorithm credits to Tanner Helland: https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html + + // Convert Mireds to centiKelvins. k = 1,000,000/mired + float ctCentiKelvin = 10000 / ct.ctMireds; + + // Red + if (ctCentiKelvin <= 66) { + r = 255; + } else { + r = 329.698727446f * pow(ctCentiKelvin - 60, -0.1332047592f); + } + + // Green + if (ctCentiKelvin <= 66) { + g = 99.4708025861f * log(ctCentiKelvin) - 161.1195681661f; + } else { + g = 288.1221695283f * pow(ctCentiKelvin - 60, -0.0755148492f); + } + + // Blue + if (ctCentiKelvin >= 66) { + b = 255; + } else { + if (ctCentiKelvin <= 19) { + b = 0; + } else { + b = 138.5177312231 * log(ctCentiKelvin - 10) - 305.0447927307; + } + } + rgb.r = (uint8_t)clamp(r, 0, 255); + rgb.g = (uint8_t)clamp(g, 0, 255); + rgb.b = (uint8_t)clamp(b, 0, 255); + + return rgb; +} diff --git a/cores/esp32/ColorFormat.h b/cores/esp32/ColorFormat.h new file mode 100644 index 00000000000..0bb87145d16 --- /dev/null +++ b/cores/esp32/ColorFormat.h @@ -0,0 +1,70 @@ +/* + * + * Copyright (c) 2021 Project CHIP Authors + * All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#include +#ifdef __cplusplus +extern "C" { +#endif + +struct RgbColor_t { + uint8_t r; + uint8_t g; + uint8_t b; +}; + +struct HsvColor_t { + uint16_t h; + uint8_t s; + uint8_t v; +}; + +struct XyColor_t { + uint16_t x; + uint16_t y; +}; + +struct CtColor_t { + uint16_t ctMireds; +}; + +typedef struct RgbColor_t espRgbColor_t; +typedef struct HsvColor_t espHsvColor_t; +typedef struct XyColor_t espXyColor_t; +typedef struct CtColor_t espCtColor_t; + +espRgbColor_t espXYToRgbColor(uint8_t Level, uint16_t current_X, uint16_t current_Y); +espRgbColor_t espXYColorToRgb(uint8_t Level, espXyColor_t xy); +espXyColor_t espRgbColorToXYColor(espRgbColor_t rgb); +espXyColor_t espRgbToXYColor(uint8_t r, uint8_t g, uint8_t b); +espRgbColor_t espHsvColorToRgbColor(espHsvColor_t hsv); +espRgbColor_t espHsvToRgbColor(uint16_t h, uint8_t s, uint8_t v); +espRgbColor_t espCTColorToRgbColor(espCtColor_t ct); +espRgbColor_t espCTToRgbColor(uint16_t ct); +espHsvColor_t espRgbColorToHsvColor(espRgbColor_t rgb); +espHsvColor_t espRgbToHsvColor(uint8_t r, uint8_t g, uint8_t b); + +extern const espHsvColor_t HSV_BLACK, HSV_WHITE, HSV_RED, HSV_YELLOW, HSV_GREEN, HSV_CYAN, HSV_BLUE, HSV_MAGENTA; +extern const espCtColor_t COOL_WHITE_COLOR_TEMPERATURE, DAYLIGHT_WHITE_COLOR_TEMPERATURE, WHITE_COLOR_TEMPERATURE, SOFT_WHITE_COLOR_TEMPERATURE, + WARM_WHITE_COLOR_TEMPERATURE; +extern const espRgbColor_t RGB_BLACK, RGB_WHITE, RGB_RED, RGB_YELLOW, RGB_GREEN, RGB_CYAN, RGB_BLUE, RGB_MAGENTA; + +#ifdef __cplusplus +} +#endif diff --git a/libraries/ESP32/keywords.txt b/libraries/ESP32/keywords.txt index 7e36360c840..866e76babd8 100644 --- a/libraries/ESP32/keywords.txt +++ b/libraries/ESP32/keywords.txt @@ -6,14 +6,50 @@ # Datatypes (KEYWORD1) ####################################### -Serial4 KEYWORD1 +Serial4 KEYWORD1 +espCtColor_t KEYWORD1 +espXyColor_t KEYWORD1 +espHsvColor_t KEYWORD1 +espRgbColor_t KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) ####################################### +espXYToRgbColor KEYWORD2 +espXYColorToRgb KEYWORD2 +espRgbColorToXYColor KEYWORD2 +espRgbToXYColor KEYWORD2 +espHsvColorToRgbColor KEYWORD2 +espHsvToRgbColor KEYWORD2 +espCTColorToRgbColor KEYWORD2 +espCTToRgbColor KEYWORD2 +espRgbColorToHsvColor KEYWORD2 +espRgbToHsvColor KEYWORD2 + ####################################### # Constants (LITERAL1) ####################################### RGB_BUILTIN LITERAL1 +HSV_BLACK LITERAL1 +HSV_WHITE LITERAL1 +HSV_RED LITERAL1 +HSV_YELLOW LITERAL1 +HSV_GREEN LITERAL1 +HSV_CYAN LITERAL1 +HSV_BLUE LITERAL1 +HSV_MAGENTA LITERAL1 +COOL_WHITE_COLOR_TEMPERATURE LITERAL1 +DAYLIGHT_WHITE_COLOR_TEMPERATURE LITERAL1 +WHITE_COLOR_TEMPERATURE LITERAL1 +SOFT_WHITE_COLOR_TEMPERATURE LITERAL1 +WARM_WHITE_COLOR_TEMPERATURE LITERAL1 +RGB_BLACK LITERAL1 +RGB_WHITE LITERAL1 +RGB_RED LITERAL1 +RGB_YELLOW LITERAL1 +RGB_GREEN LITERAL1 +RGB_CYAN LITERAL1 +RGB_BLUE LITERAL1 +RGB_MAGENTA LITERAL1 diff --git a/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino b/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino index 39392d90225..0ff30f53ec0 100644 --- a/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino +++ b/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino @@ -47,8 +47,7 @@ bool setLightState(bool state, uint8_t brightness, uint16_t temperature_Mireds) if (state) { #ifdef RGB_BUILTIN - CtColor_t ct = {temperature_Mireds}; - RgbColor_t rgb_ct = CTToRgb(ct); + espRgbColor_t rgb_ct = espCTToRgbColor(temperature_Mireds); // simple intensity correction float brightnessPercent = (float)brightness / MatterColorTemperatureLight::MAX_BRIGHTNESS; rgb_ct.r = brightnessPercent * rgb_ct.r; @@ -106,7 +105,7 @@ void setup() { // default brightness ~= 6% (15/255) uint8_t lastBrightness = matterPref.getUChar(brightnessPrefKey, 15); // default temperature ~= 454 Mireds (Warm White) - uint16_t lastTemperature = matterPref.getUShort(temperaturePrefKey, MatterColorTemperatureLight::WARM_WHITE_COLOR_TEMPERATURE); + uint16_t lastTemperature = matterPref.getUShort(temperaturePrefKey, WARM_WHITE_COLOR_TEMPERATURE.ctMireds); CW_WW_Light.begin(lastOnOffState, lastBrightness, lastTemperature); // set the callback function to handle the Light state change CW_WW_Light.onChange(setLightState); diff --git a/libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino b/libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino new file mode 100644 index 00000000000..2b9c4e4033a --- /dev/null +++ b/libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino @@ -0,0 +1,183 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// Color Light Endpoint +MatterColorLight ColorLight; + +// it will keep last OnOff & HSV Color state stored, using Preferences +Preferences matterPref; +const char *onOffPrefKey = "OnOff"; +const char *hsvColorPrefKey = "HSV"; + +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Set the RGB LED Light based on the current state of the Color Light +bool setLightState(bool state, espHsvColor_t colorHSV) { + + if (state) { +#ifdef RGB_BUILTIN + espRgbColor_t rgbColor = espHsvColorToRgbColor(colorHSV); + // set the RGB LED + rgbLedWrite(ledPin, rgbColor.r, rgbColor.g, rgbColor.b); +#else + // No Color RGB LED, just use the HSV value (brightness) to control the LED + analogWrite(ledPin, colorHSV.v); +#endif + } else { + digitalWrite(ledPin, LOW); + } + // store last HSV Color and OnOff state for when the Light is restarted / power goes off + matterPref.putBool(onOffPrefKey, state); + matterPref.putUInt(hsvColorPrefKey, colorHSV.h << 16 | colorHSV.s << 8 | colorHSV.v); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + matterPref.begin("MatterPrefs", false); + // default OnOff state is ON if not stored before + bool lastOnOffState = matterPref.getBool(onOffPrefKey, true); + // default HSV color is blue HSV(169, 254, 254) + uint32_t prefHsvColor = matterPref.getUInt(hsvColorPrefKey, 169 << 16 | 254 << 8 | 254); + espHsvColor_t lastHsvColor = {uint8_t(prefHsvColor >> 16), uint8_t(prefHsvColor >> 8), uint8_t(prefHsvColor)}; + ColorLight.begin(lastOnOffState, lastHsvColor); + // set the callback function to handle the Light state change + ColorLight.onChange(setLightState); + + // lambda functions are used to set the attribute change callbacks + ColorLight.onChangeOnOff([](bool state) { + Serial.printf("Light OnOff changed to %s\r\n", state ? "ON" : "OFF"); + return true; + }); + ColorLight.onChangeColorHSV([](HsvColor_t hsvColor) { + Serial.printf("Light HSV Color changed to (%d,%d,%d)\r\n", hsvColor.h, hsvColor.s, hsvColor.v); + return true; + }); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf( + "Initial state: %s | RGB Color: (%d,%d,%d) \r\n", ColorLight ? "ON" : "OFF", ColorLight.getColorRGB().r, ColorLight.getColorRGB().g, + ColorLight.getColorRGB().b + ); + // configure the Light based on initial on-off state and its color + ColorLight.updateAccessory(); + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light + +void loop() { + // Check Matter Light Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf( + "Initial state: %s | RGB Color: (%d,%d,%d) \r\n", ColorLight ? "ON" : "OFF", ColorLight.getColorRGB().r, ColorLight.getColorRGB().g, + ColorLight.getColorRGB().b + ); + // configure the Light based on initial on-off state and its color + ColorLight.updateAccessory(); + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A button is also used to control the light + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a Light toggle switch or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // Toggle button is released - toggle the light + Serial.println("User button released. Toggling Light!"); + ColorLight.toggle(); // Matter Controller also can see the change + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + ColorLight = false; // turn the light off + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/Matter_ColorLight/ci.json b/libraries/Matter/examples/Matter_ColorLight/ci.json new file mode 100644 index 00000000000..d5f63487506 --- /dev/null +++ b/libraries/Matter/examples/Matter_ColorLight/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] + } diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index bcc99253e72..39a74e76583 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -1,5 +1,5 @@ ####################################### -# Syntax Coloring Map For OpenThread +# Syntax Coloring Map For Matter ####################################### ####################################### @@ -10,12 +10,9 @@ Matter KEYWORD1 ArduinoMatter KEYWORD1 MatterOnOffLight KEYWORD1 MatterDimmableLight KEYWORD1 -MatterColorTemperatureLight KEYWORD1 +MatterColorTemperatureLight KEYWORD1 +MatterColorLight KEYWORD1 MatterEndPoint KEYWORD1 -CtColor_t KEYWORD1 -XyColor_t KEYWORD1 -HsvColor_t KEYWORD1 -RgbColor_t KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -37,26 +34,23 @@ setBrightness KEYWORD2 getBrightness KEYWORD2 setColorTemperature KEYWORD2 getColorTemperature KEYWORD2 +setColorRGB KEYWORD2 +getColorRGB KEYWORD2 +setColorHSV KEYWORD2 +getColorHSV KEYWORD2 toggle KEYWORD2 updateAccessory KEYWORD2 onChange KEYWORD2 onChangeOnOff KEYWORD2 onChangeBrightness KEYWORD2 -onChangeColorTemperature KEYWORD2 -XYToRgb KEYWORD2 -HsvToRgb KEYWORD2 -CTToRgb KEYWORD2 -RgbToHsv KEYWORD2 +onChangeColorTemperature KEYWORD2 +onChangeColorHSV KEYWORD2 + ####################################### # Constants (LITERAL1) ####################################### -MAX_BRIGHTNESS LITERAL1 -MAX_COLOR_TEMPERATURE LITERAL1 -MIN_COLOR_TEMPERATURE LITERAL1 -COOL_WHITE_COLOR_TEMPERATURE LITERAL1 -DAYLIGHT_WHITE_COLOR_TEMPERATURE LITERAL1 -WHITE_COLOR_TEMPERATURE LITERAL1 -SOFT_WHITE_COLOR_TEMPERATURE LITERAL1 -WARM_WHITE_COLOR_TEMPERATURE LITERAL1 +MAX_BRIGHTNESS LITERAL1 +MAX_COLOR_TEMPERATURE LITERAL1 +MIN_COLOR_TEMPERATURE LITERAL1 diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 857438cce03..89ef87b4db3 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -17,7 +17,6 @@ #include #include -#include "MatterEndPoint.h" using namespace esp_matter; using namespace esp_matter::attribute; diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index e9d8b715388..4d269474187 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -18,10 +18,11 @@ #include #include -#include +#include #include #include #include +#include using namespace esp_matter; @@ -50,6 +51,7 @@ class ArduinoMatter { friend class MatterOnOffLight; friend class MatterDimmableLight; friend class MatterColorTemperatureLight; + friend class MatterColorLight; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp new file mode 100644 index 00000000000..b67cf6a23b1 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp @@ -0,0 +1,307 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +// endpoint for color light device +namespace esp_matter { +using namespace cluster; +namespace endpoint { +namespace rgb_color_light { +typedef struct config { + cluster::descriptor::config_t descriptor; + cluster::identify::config_t identify; + cluster::groups::config_t groups; + cluster::scenes_management::config_t scenes_management; + cluster::on_off::config_t on_off; + cluster::level_control::config_t level_control; + cluster::color_control::config_t color_control; +} config_t; + +uint32_t get_device_type_id() { + return ESP_MATTER_EXTENDED_COLOR_LIGHT_DEVICE_TYPE_ID; +} + +uint8_t get_device_type_version() { + return ESP_MATTER_EXTENDED_COLOR_LIGHT_DEVICE_TYPE_VERSION; +} + +esp_err_t add(endpoint_t *endpoint, config_t *config) { + if (!endpoint) { + log_e("Endpoint cannot be NULL"); + return ESP_ERR_INVALID_ARG; + } + esp_err_t err = add_device_type(endpoint, get_device_type_id(), get_device_type_version()); + if (err != ESP_OK) { + log_e("Failed to add device type id:%" PRIu32 ",err: %d", get_device_type_id(), err); + return err; + } + + descriptor::create(endpoint, &(config->descriptor), CLUSTER_FLAG_SERVER); + cluster_t *identify_cluster = identify::create(endpoint, &(config->identify), CLUSTER_FLAG_SERVER); + identify::command::create_trigger_effect(identify_cluster); + groups::create(endpoint, &(config->groups), CLUSTER_FLAG_SERVER); + cluster_t *scenes_cluster = scenes_management::create(endpoint, &(config->scenes_management), CLUSTER_FLAG_SERVER); + scenes_management::command::create_copy_scene(scenes_cluster); + scenes_management::command::create_copy_scene_response(scenes_cluster); + + on_off::create(endpoint, &(config->on_off), CLUSTER_FLAG_SERVER, on_off::feature::lighting::get_id()); + level_control::create( + endpoint, &(config->level_control), CLUSTER_FLAG_SERVER, level_control::feature::on_off::get_id() | level_control::feature::lighting::get_id() + ); + color_control::create(endpoint, &(config->color_control), CLUSTER_FLAG_SERVER, color_control::feature::hue_saturation::get_id()); + return ESP_OK; +} + +endpoint_t *create(node_t *node, config_t *config, uint8_t flags, void *priv_data) { + endpoint_t *endpoint = endpoint::create(node, flags, priv_data); + add(endpoint, config); + return endpoint; +} +} // namespace rgb_color_light +} // namespace endpoint +} // namespace esp_matter + +bool MatterColorLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter RGB Color Light device has not begun."); + return false; + } + + log_d( + "RGB Color Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u, type: %u", endpoint_id, cluster_id, attribute_id, val->val.u32, + val->type + ); + + if (endpoint_id == getEndPointId()) { + switch (cluster_id) { + case OnOff::Id: + if (attribute_id == OnOff::Attributes::OnOff::Id) { + log_d("RGB Color Light On/Off State changed to %d", val->val.b); + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(val->val.b, colorHSV); + } + if (ret == true) { + onOffState = val->val.b; + } + } + break; + case LevelControl::Id: + if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { + log_d("RGB Color Light Brightness changed to %d", val->val.u8); + if (_onChangeColorCB != NULL) { + ret &= _onChangeColorCB({colorHSV.h, colorHSV.s, val->val.u8}); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, {colorHSV.h, colorHSV.s, val->val.u8}); + } + if (ret == true) { + colorHSV.v = val->val.u8; + } + } + break; + case ColorControl::Id: + { + if (attribute_id != ColorControl::Attributes::CurrentHue::Id && attribute_id != ColorControl::Attributes::CurrentSaturation::Id) { + log_i("Color Control Attribute ID [%x] not processed.", attribute_id); + break; + } + espHsvColor_t hsvColor = {colorHSV.h, colorHSV.s, colorHSV.v}; + if (attribute_id == ColorControl::Attributes::CurrentHue::Id) { + log_d("RGB Light Hue changed to %d", val->val.u8); + hsvColor.h = val->val.u8; + } else { // attribute_id == ColorControl::Attributes::CurrentSaturation::Id) + log_d("RGB Light Saturation changed to %d", val->val.u8); + hsvColor.s = val->val.u8; + } + if (_onChangeColorCB != NULL) { + ret &= _onChangeColorCB(hsvColor); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, hsvColor); + } + if (ret == true) { + colorHSV = {hsvColor.h, hsvColor.s, hsvColor.v}; + } + break; + } + } + } + return ret; +} + +MatterColorLight::MatterColorLight() {} + +MatterColorLight::~MatterColorLight() { + end(); +} + +bool MatterColorLight::begin(bool initialState, espHsvColor_t _colorHSV) { + ArduinoMatter::_init(); + rgb_color_light::config_t light_config; + + light_config.on_off.on_off = initialState; + light_config.on_off.lighting.start_up_on_off = nullptr; + onOffState = initialState; + + light_config.level_control.current_level = _colorHSV.v; + light_config.level_control.lighting.start_up_current_level = nullptr; + + light_config.color_control.color_mode = (uint8_t)ColorControl::ColorMode::kCurrentHueAndCurrentSaturation; + light_config.color_control.enhanced_color_mode = (uint8_t)ColorControl::ColorMode::kCurrentHueAndCurrentSaturation; + light_config.color_control.hue_saturation.current_hue = _colorHSV.h; + light_config.color_control.hue_saturation.current_saturation = _colorHSV.s; + colorHSV = {_colorHSV.h, _colorHSV.s, _colorHSV.v}; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = rgb_color_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create RGB Color light endpoint"); + return false; + } + + setEndPointId(endpoint::get_id(endpoint)); + log_i("RGB Color Light created with endpoint_id %d", getEndPointId()); + + /* Mark deferred persistence for some attributes that might be changed rapidly */ + cluster_t *level_control_cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *current_level_attribute = attribute::get(level_control_cluster, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + + started = true; + return true; +} + +void MatterColorLight::end() { + started = false; +} + +bool MatterColorLight::setOnOff(bool newState) { + if (!started) { + log_e("Matter RGB Color Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (onOffState == newState) { + return true; + } + + onOffState = newState; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, OnOff::Id); + attribute_t *attribute = attribute::get(cluster, OnOff::Attributes::OnOff::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.b != onOffState) { + val.val.b = onOffState; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); + } + return true; +} + +void MatterColorLight::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState, colorHSV); + } +} + +bool MatterColorLight::getOnOff() { + return onOffState; +} + +bool MatterColorLight::toggle() { + return setOnOff(!onOffState); +} + +bool MatterColorLight::setColorRGB(espRgbColor_t _rgbColor) { + return setColorHSV(espRgbColorToHsvColor(_rgbColor)); +} + +espRgbColor_t MatterColorLight::getColorRGB() { + return espHsvColorToRgbColor(colorHSV); +} + +bool MatterColorLight::setColorHSV(espHsvColor_t _hsvColor) { + + if (!started) { + log_w("Matter RGB Color Light device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (colorHSV.h == _hsvColor.h && colorHSV.s == _hsvColor.s && colorHSV.v == _hsvColor.v) { + return true; + } + + colorHSV = {_hsvColor.h, _hsvColor.s, _hsvColor.v}; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, ColorControl::Id); + // update hue + attribute_t *attribute = attribute::get(cluster, ColorControl::Attributes::CurrentHue::Id); + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.h) { + val.val.u8 = colorHSV.h; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, &val); + } + // update saturation + attribute = attribute::get(cluster, ColorControl::Attributes::CurrentSaturation::Id); + val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.s) { + val.val.u8 = colorHSV.s; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, &val); + } + // update value (brightness) + cluster = cluster::get(endpoint, LevelControl::Id); + attribute = attribute::get(cluster, LevelControl::Attributes::CurrentLevel::Id); + val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.v) { + val.val.u8 = colorHSV.v; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); + } + return true; +} + +espHsvColor_t MatterColorLight::getColorHSV() { + return colorHSV; +} + +MatterColorLight::operator bool() { + return getOnOff(); +} + +void MatterColorLight::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h new file mode 100644 index 00000000000..13ff0decbc2 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h @@ -0,0 +1,75 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterColorLight : public MatterEndPoint { +public: + MatterColorLight(); + ~MatterColorLight(); + // default initial state is off, color is red 12% intensity HSV(0, 254, 31) + virtual bool begin(bool initialState = false, espHsvColor_t colorHSV = {0, 254, 31}); + // this will just stop processing Light Matter events + void end(); + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current light state + bool toggle(); // returns true if successful + + bool setColorRGB(espRgbColor_t rgbColor); // returns true if successful + espRgbColor_t getColorRGB(); // returns current RGB Color + bool setColorHSV(espHsvColor_t hsvColor); // returns true if successful + espHsvColor_t getColorHSV(); // returns current HSV Color + + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + + // User Callback for whenever the Light On/Off state is changed by the Matter Controller + using EndPointOnOffCB = std::function; + void onChangeOnOff(EndPointOnOffCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } + // User Callback for whenever the HSV Color value is changed by the Matter Controller + using EndPointRGBColorCB = std::function; + void onChangeColorHSV(EndPointRGBColorCB onChangeCB) { + _onChangeColorCB = onChangeCB; + } + + // User Callback for whenever any parameter is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) + espHsvColor_t colorHSV = {0}; // default initial color HSV is black, but it can be changed by begin(bool, espHsvColor_t) + EndPointOnOffCB _onChangeOnOffCB = NULL; + EndPointRGBColorCB _onChangeColorCB = NULL; + EndPointCB _onChangeCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h index a37f362f475..723849e354a 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -24,12 +24,6 @@ class MatterColorTemperatureLight : public MatterEndPoint { static const uint8_t MAX_BRIGHTNESS = 255; static const uint16_t MAX_COLOR_TEMPERATURE = 500; static const uint16_t MIN_COLOR_TEMPERATURE = 100; - // main color temperature values - static const uint16_t COOL_WHITE_COLOR_TEMPERATURE = 142; - static const uint16_t DAYLIGHT_WHITE_COLOR_TEMPERATURE = 181; - static const uint16_t WHITE_COLOR_TEMPERATURE = 250; - static const uint16_t SOFT_WHITE_COLOR_TEMPERATURE = 370; - static const uint16_t WARM_WHITE_COLOR_TEMPERATURE = 454; MatterColorTemperatureLight(); ~MatterColorTemperatureLight(); diff --git a/libraries/Matter/src/MatterUtil/ColorFormat.cpp b/libraries/Matter/src/MatterUtil/ColorFormat.cpp deleted file mode 100644 index 41d845dcdb9..00000000000 --- a/libraries/Matter/src/MatterUtil/ColorFormat.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* - * - * Copyright (c) 2021 Project CHIP Authors - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "ColorFormat.h" - -#include - -// define a clamp macro to substitute the std::clamp macro which is available from C++17 onwards -#define clamp(a, min, max) ((a) < (min) ? (min) : ((a) > (max) ? (max) : (a))) - -RgbColor_t HsvToRgb(HsvColor_t hsv) { - RgbColor_t rgb; - - uint16_t i = hsv.h / 60; - uint16_t rgb_max = hsv.v; - uint16_t rgb_min = (uint16_t)(rgb_max * (100 - hsv.s)) / 100; - uint16_t diff = hsv.h % 60; - uint16_t rgb_adj = (uint16_t)((rgb_max - rgb_min) * diff) / 60; - - switch (i) { - case 0: - rgb.r = (uint8_t)rgb_max; - rgb.g = (uint8_t)(rgb_min + rgb_adj); - rgb.b = (uint8_t)rgb_min; - break; - case 1: - rgb.r = (uint8_t)(rgb_max - rgb_adj); - rgb.g = (uint8_t)rgb_max; - rgb.b = (uint8_t)rgb_min; - break; - case 2: - rgb.r = (uint8_t)rgb_min; - rgb.g = (uint8_t)rgb_max; - rgb.b = (uint8_t)(rgb_min + rgb_adj); - break; - case 3: - rgb.r = (uint8_t)rgb_min; - rgb.g = (uint8_t)(rgb_max - rgb_adj); - rgb.b = (uint8_t)rgb_max; - break; - case 4: - rgb.r = (uint8_t)(rgb_min + rgb_adj); - rgb.g = (uint8_t)rgb_min; - rgb.b = (uint8_t)rgb_max; - break; - default: - rgb.r = (uint8_t)rgb_max; - rgb.g = (uint8_t)rgb_min; - rgb.b = (uint8_t)(rgb_max - rgb_adj); - break; - } - - return rgb; -} - -HsvColor_t RgbToHsv(RgbColor_t rgb) { - HsvColor_t hsv; - - uint16_t rgb_max = rgb.r > rgb.g ? (rgb.r > rgb.b ? rgb.r : rgb.b) : (rgb.g > rgb.b ? rgb.g : rgb.b); - uint16_t rgb_min = rgb.r < rgb.g ? (rgb.r < rgb.b ? rgb.r : rgb.b) : (rgb.g < rgb.b ? rgb.g : rgb.b); - uint16_t diff = rgb_max - rgb_min; - - if (diff == 0) { - hsv.h = 0; - } else if (rgb_max == rgb.r) { - hsv.h = (uint8_t)(60 * ((rgb.g - rgb.b) * 100) / diff); - } else if (rgb_max == rgb.g) { - hsv.h = (uint8_t)(60 * (((rgb.b - rgb.r) * 100) / diff + 2 * 100)); - } else { - hsv.h = (uint8_t)(60 * (((rgb.r - rgb.g) * 100) / diff + 4 * 100)); - } - - if (rgb_max == 0) { - hsv.s = 0; - } else { - hsv.s = (uint8_t)((diff * 100) / rgb_max); - } - - hsv.v = (uint8_t)rgb_max; - if (hsv.h < 0) { - hsv.h += 360; - } - - return hsv; -} - -RgbColor_t XYToRgb(uint8_t Level, uint16_t current_X, uint16_t current_Y) { - // convert xyY color space to RGB - - // https://www.easyrgb.com/en/math.php - // https://en.wikipedia.org/wiki/SRGB - // refer https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_xy_chromaticity_diagram_and_the_CIE_xyY_color_space - - // The current_X/current_Y attribute contains the current value of the normalized chromaticity value of x/y. - // The value of x/y shall be related to the current_X/current_Y attribute by the relationship - // x = current_X/65536 - // y = current_Y/65536 - // z = 1-x-y - - RgbColor_t rgb; - - float x, y, z; - float X, Y, Z; - float r, g, b; - - x = ((float)current_X) / 65535.0f; - y = ((float)current_Y) / 65535.0f; - - z = 1.0f - x - y; - - // Calculate XYZ values - - // Y - given brightness in 0 - 1 range - Y = ((float)Level) / 254.0f; - X = (Y / y) * x; - Z = (Y / y) * z; - - // X, Y and Z input refer to a D65/2° standard illuminant. - // sR, sG and sB (standard RGB) output range = 0 ÷ 255 - // convert XYZ to RGB - CIE XYZ to sRGB - X = X / 100.0f; - Y = Y / 100.0f; - Z = Z / 100.0f; - - r = (X * 3.2406f) - (Y * 1.5372f) - (Z * 0.4986f); - g = -(X * 0.9689f) + (Y * 1.8758f) + (Z * 0.0415f); - b = (X * 0.0557f) - (Y * 0.2040f) + (Z * 1.0570f); - - // apply gamma 2.2 correction - r = (r <= 0.0031308f ? 12.92f * r : (1.055f) * pow(r, (1.0f / 2.4f)) - 0.055f); - g = (g <= 0.0031308f ? 12.92f * g : (1.055f) * pow(g, (1.0f / 2.4f)) - 0.055f); - b = (b <= 0.0031308f ? 12.92f * b : (1.055f) * pow(b, (1.0f / 2.4f)) - 0.055f); - - // Round off - r = clamp(r, 0, 1); - g = clamp(g, 0, 1); - b = clamp(b, 0, 1); - - // these rgb values are in the range of 0 to 1, convert to limit of HW specific LED - rgb.r = (uint8_t)(r * 255); - rgb.g = (uint8_t)(g * 255); - rgb.b = (uint8_t)(b * 255); - - return rgb; -} - -RgbColor_t CTToRgb(CtColor_t ct) { - RgbColor_t rgb = {0, 0, 0}; - float r, g, b; - - if (ct.ctMireds == 0) { - return rgb; - } - // Algorithm credits to Tanner Helland: https://tannerhelland.com/2012/09/18/convert-temperature-rgb-algorithm-code.html - - // Convert Mireds to centiKelvins. k = 1,000,000/mired - float ctCentiKelvin = 10000 / ct.ctMireds; - - // Red - if (ctCentiKelvin <= 66) { - r = 255; - } else { - r = 329.698727446f * pow(ctCentiKelvin - 60, -0.1332047592f); - } - - // Green - if (ctCentiKelvin <= 66) { - g = 99.4708025861f * log(ctCentiKelvin) - 161.1195681661f; - } else { - g = 288.1221695283f * pow(ctCentiKelvin - 60, -0.0755148492f); - } - - // Blue - if (ctCentiKelvin >= 66) { - b = 255; - } else { - if (ctCentiKelvin <= 19) { - b = 0; - } else { - b = 138.5177312231 * log(ctCentiKelvin - 10) - 305.0447927307; - } - } - rgb.r = (uint8_t)clamp(r, 0, 255); - rgb.g = (uint8_t)clamp(g, 0, 255); - rgb.b = (uint8_t)clamp(b, 0, 255); - - return rgb; -} diff --git a/libraries/Matter/src/MatterUtil/ColorFormat.h b/libraries/Matter/src/MatterUtil/ColorFormat.h deleted file mode 100644 index 254a51c7144..00000000000 --- a/libraries/Matter/src/MatterUtil/ColorFormat.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * - * Copyright (c) 2021 Project CHIP Authors - * All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include - -struct RgbColor_t { - uint8_t r; - uint8_t g; - uint8_t b; -}; - -struct HsvColor_t { - int16_t h; - uint8_t s; - uint8_t v; -}; - -struct XyColor_t { - uint16_t x; - uint16_t y; -}; - -struct CtColor_t { - uint16_t ctMireds; -}; - -RgbColor_t XYToRgb(uint8_t Level, uint16_t current_X, uint16_t current_Y); -RgbColor_t HsvToRgb(HsvColor_t hsv); -RgbColor_t CTToRgb(CtColor_t ct); -HsvColor_t RgbToHsv(RgbColor_t rgb); From c2ce738caeeb63fa7fc66c2012254e9454c24f96 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 2 Dec 2024 19:13:17 -0300 Subject: [PATCH 094/179] feat(matter): New example => Wifi Prov within Matter as alternative for wireless network provisioning (#10658) * feat(matter): Arduino WiFi Prov example for Matter --- .../WiFiProvWithinMatter.ino | 122 ++++++++++++++++++ .../examples/WiFiProvWithinMatter/ci.json | 7 + 2 files changed, 129 insertions(+) create mode 100644 libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino create mode 100644 libraries/Matter/examples/WiFiProvWithinMatter/ci.json diff --git a/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino b/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino new file mode 100644 index 00000000000..eaf1f5096e5 --- /dev/null +++ b/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino @@ -0,0 +1,122 @@ +/* + Please read README.md file in this folder, or on the web: + https://github.com/espressif/arduino-esp32/tree/master/libraries/WiFiProv/examples/WiFiProv + + Note: This sketch takes up a lot of space for the app and may not be able to flash with default setting on some chips. + If you see Error like this: "Sketch too big" + In Arduino IDE go to: Tools > Partition scheme > chose anything that has more than 1.4MB APP + - for example "No OTA (2MB APP/2MB SPIFFS)" + + This example demonstrates that it is possible to provision WiFi using BLE or Software AP using + the ESP BLE Prov APP or ESP SoftAP Provisioning APP from Android Play or/and iOS APP Store + + Once the WiFi is provisioned, Matter will start its process as usual. + + This same Example could be used for any other WiFi Provisioning method. +*/ + +// Matter Manager +#include +#include +#include + +#if !CONFIG_BLUEDROID_ENABLED +#define USE_SOFT_AP // ESP32-S2 has no BLE, therefore, it shall use SoftAP Provisioning +#endif +//#define USE_SOFT_AP // Uncomment if you want to enforce using the Soft AP method instead of BLE + +const char *pop = "abcd1234"; // Proof of possession - otherwise called a PIN - string provided by the device, entered by the user in the phone app +const char *service_name = "PROV_123"; // Name of your device (the Espressif apps expects by default device name starting with "Prov_") +const char *service_key = NULL; // Password used for SofAP method (NULL = no password needed) +bool reset_provisioned = true; // When true the library will automatically delete previously provisioned data. + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool matterCB(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + Serial.begin(115200); + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + WiFi.begin(); // no SSID/PWD - get it from the Provisioning APP or from NVS (last successful connection) + + // BLE Provisioning using the ESP SoftAP Prov works fine for any BLE SoC, including ESP32, ESP32S3 and ESP32C3. +#if CONFIG_BLUEDROID_ENABLED && !defined(USE_SOFT_AP) + Serial.println("Begin Provisioning using BLE"); + // Sample uuid that user can pass during provisioning using BLE + uint8_t uuid[16] = {0xb4, 0xdf, 0x5a, 0x1c, 0x3f, 0x6b, 0xf4, 0xbf, 0xea, 0x4a, 0x82, 0x03, 0x04, 0x90, 0x1a, 0x02}; + WiFiProv.beginProvision( + NETWORK_PROV_SCHEME_BLE, NETWORK_PROV_SCHEME_HANDLER_FREE_BLE, NETWORK_PROV_SECURITY_1, pop, service_name, service_key, uuid, reset_provisioned + ); + Serial.println("You may use this BLE QRCode:"); + WiFiProv.printQR(service_name, pop, "ble"); +#else + Serial.println("Begin Provisioning using Soft AP"); + WiFiProv.beginProvision(NETWORK_PROV_SCHEME_SOFTAP, NETWORK_PROV_SCHEME_HANDLER_NONE, NETWORK_PROV_SECURITY_1, pop, service_name, service_key); + Serial.println("You may use this WiFi QRCode:"); + WiFiProv.printQR(service_name, pop, "softap"); +#endif + + // Wait for WiFi connection + uint32_t counter = 0; + while (WiFi.status() != WL_CONNECTED) { + // resets the device after 10 minutes + if (counter > 2 * 60 * 10) { + Serial.println("\r\n================================================"); + Serial.println("Already 10 minutes past. The device will reboot."); + Serial.println("================================================\r\n"); + Serial.flush(); // wait until the Serial has sent the whole message. + ESP.restart(); + } + // WiFi searching feedback + Serial.print("."); + delay(500); + // adds a new line every 30 seconds + counter++; + if (!(counter % 60)) { + Serial.println(); + } + } + + // WiFi shall be connected by now + Serial.println(); + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(matterCB); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + while (!Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + Serial.println(); + // waits 30 seconds for Matter Commissioning, keeping it blocked until done + delay(30000); + } +} + +void loop() { + delay(500); +} diff --git a/libraries/Matter/examples/WiFiProvWithinMatter/ci.json b/libraries/Matter/examples/WiFiProvWithinMatter/ci.json new file mode 100644 index 00000000000..0665800b12b --- /dev/null +++ b/libraries/Matter/examples/WiFiProvWithinMatter/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} From 9d8df8b3152b8a469cb1fe8ca095f8cc4bc08cd1 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 2 Dec 2024 19:26:13 -0300 Subject: [PATCH 095/179] feat(matter): Adds Matter Enhanced Color Light Endpoint (CW/WW/RGB) (#10657) * feat(matter): created enhanced color light new matter endpoint and example --- CMakeLists.txt | 1 + .../MatterEnhancedColorLight.ino | 205 +++++++++ .../examples/MatterEnhancedColorLight/ci.json | 7 + libraries/Matter/keywords.txt | 1 + libraries/Matter/src/Matter.h | 2 + .../MatterColorTemperatureLight.h | 1 + .../MatterEnhancedColorLight.cpp | 389 ++++++++++++++++++ .../MatterEnhancedColorLight.h | 102 +++++ 8 files changed, 708 insertions(+) create mode 100644 libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino create mode 100644 libraries/Matter/examples/MatterEnhancedColorLight/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ab001c2d09..9bbef502143 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -172,6 +172,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp + libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino new file mode 100644 index 00000000000..afba203b708 --- /dev/null +++ b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino @@ -0,0 +1,205 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// Color Light Endpoint +MatterEnhancedColorLight EnhancedColorLight; + +// It will use HSV color to control all Matter Attribute Changes +HsvColor_t currentHSVColor = {0, 0, 0}; + +// it will keep last OnOff & HSV Color state stored, using Preferences +Preferences matterPref; +const char *onOffPrefKey = "OnOff"; +const char *hsvColorPrefKey = "HSV"; + +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Set the RGB LED Light based on the current state of the Enhanced Color Light +bool setLightState(bool state, espHsvColor_t colorHSV, uint8_t brighteness, uint16_t temperature_Mireds) { + + if (state) { +#ifdef RGB_BUILTIN + // currentHSVColor keeps final color result + espRgbColor_t rgbColor = espHsvColorToRgbColor(currentHSVColor); + // set the RGB LED + rgbLedWrite(ledPin, rgbColor.r, rgbColor.g, rgbColor.b); +#else + // No Color RGB LED, just use the HSV value (brightness) to control the LED + analogWrite(ledPin, colorHSV.v); +#endif + } else { + digitalWrite(ledPin, LOW); + } + // store last HSV Color and OnOff state for when the Light is restarted / power goes off + matterPref.putBool(onOffPrefKey, state); + matterPref.putUInt(hsvColorPrefKey, currentHSVColor.h << 16 | currentHSVColor.s << 8 | currentHSVColor.v); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + matterPref.begin("MatterPrefs", false); + // default OnOff state is ON if not stored before + bool lastOnOffState = matterPref.getBool(onOffPrefKey, true); + // default HSV color is (21, 216, 25) - Warm White Color at 10% intensity + uint32_t prefHsvColor = matterPref.getUInt(hsvColorPrefKey, 21 << 16 | 216 << 8 | 25); + currentHSVColor = {uint8_t(prefHsvColor >> 16), uint8_t(prefHsvColor >> 8), uint8_t(prefHsvColor)}; + EnhancedColorLight.begin(lastOnOffState, currentHSVColor); + // set the callback function to handle the Light state change + EnhancedColorLight.onChange(setLightState); + + // lambda functions are used to set the attribute change callbacks + EnhancedColorLight.onChangeOnOff([](bool state) { + Serial.printf("Light OnOff changed to %s\r\n", state ? "ON" : "OFF"); + return true; + }); + EnhancedColorLight.onChangeColorTemperature([](uint16_t colorTemperature) { + Serial.printf("Light Color Temperature changed to %d\r\n", colorTemperature); + // get correspondent Hue and Saturation of the color temperature + HsvColor_t hsvTemperature = espRgbColorToHsvColor(espCTToRgbColor(colorTemperature)); + // keep previous the brightness and just change the Hue and Saturation + currentHSVColor.h = hsvTemperature.h; + currentHSVColor.s = hsvTemperature.s; + return true; + }); + EnhancedColorLight.onChangeBrightness([](uint8_t brightness) { + Serial.printf("Light brightness changed to %d\r\n", brightness); + // change current brightness (HSV value) + currentHSVColor.v = brightness; + return true; + }); + EnhancedColorLight.onChangeColorHSV([](HsvColor_t hsvColor) { + Serial.printf("Light HSV Color changed to (%d,%d,%d)\r\n", hsvColor.h, hsvColor.s, hsvColor.v); + // keep the current brightness and just change Hue and Saturation + currentHSVColor.h = hsvColor.h; + currentHSVColor.s = hsvColor.s; + return true; + }); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf( + "Initial state: %s | RGB Color: (%d,%d,%d) \r\n", EnhancedColorLight ? "ON" : "OFF", EnhancedColorLight.getColorRGB().r, + EnhancedColorLight.getColorRGB().g, EnhancedColorLight.getColorRGB().b + ); + // configure the Light based on initial on-off state and its color + EnhancedColorLight.updateAccessory(); + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light + +void loop() { + // Check Matter Light Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Light Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf( + "Initial state: %s | RGB Color: (%d,%d,%d) \r\n", EnhancedColorLight ? "ON" : "OFF", EnhancedColorLight.getColorRGB().r, + EnhancedColorLight.getColorRGB().g, EnhancedColorLight.getColorRGB().b + ); + // configure the Light based on initial on-off state and its color + EnhancedColorLight.updateAccessory(); + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A button is also used to control the light + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a Light toggle switch or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // Toggle button is released - toggle the light + Serial.println("User button released. Toggling Light!"); + EnhancedColorLight.toggle(); // Matter Controller also can see the change + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + EnhancedColorLight = false; // turn the light off + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/ci.json b/libraries/Matter/examples/MatterEnhancedColorLight/ci.json new file mode 100644 index 00000000000..0665800b12b --- /dev/null +++ b/libraries/Matter/examples/MatterEnhancedColorLight/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 39a74e76583..663cc2e8327 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -12,6 +12,7 @@ MatterOnOffLight KEYWORD1 MatterDimmableLight KEYWORD1 MatterColorTemperatureLight KEYWORD1 MatterColorLight KEYWORD1 +MatterEnhancedColorLight KEYWORD1 MatterEndPoint KEYWORD1 ####################################### diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 4d269474187..5c68572640a 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -23,6 +23,7 @@ #include #include #include +#include using namespace esp_matter; @@ -52,6 +53,7 @@ class ArduinoMatter { friend class MatterDimmableLight; friend class MatterColorTemperatureLight; friend class MatterColorLight; + friend class MatterEnhancedColorLight; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h index 723849e354a..e886a184182 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -57,6 +57,7 @@ class MatterColorTemperatureLight : public MatterEndPoint { void onChangeOnOff(EndPointOnOffCB onChangeCB) { _onChangeOnOffCB = onChangeCB; } + // User Callback for whenever the Light brightness value [0..255] is changed by the Matter Controller using EndPointBrightnessCB = std::function; void onChangeBrightness(EndPointBrightnessCB onChangeCB) { diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp new file mode 100644 index 00000000000..423a6a7d2ef --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp @@ -0,0 +1,389 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +// endpoint for enhanced color light device +namespace esp_matter { +using namespace cluster; +namespace endpoint { +namespace enhanced_color_light { +typedef struct config { + cluster::descriptor::config_t descriptor; + cluster::identify::config_t identify; + cluster::groups::config_t groups; + cluster::scenes_management::config_t scenes_management; + cluster::on_off::config_t on_off; + cluster::level_control::config_t level_control; + cluster::color_control::config_t color_control; +} config_t; + +uint32_t get_device_type_id() { + return ESP_MATTER_EXTENDED_COLOR_LIGHT_DEVICE_TYPE_ID; +} + +uint8_t get_device_type_version() { + return ESP_MATTER_EXTENDED_COLOR_LIGHT_DEVICE_TYPE_VERSION; +} + +esp_err_t add(endpoint_t *endpoint, config_t *config) { + if (!endpoint) { + log_e("Endpoint cannot be NULL"); + return ESP_ERR_INVALID_ARG; + } + esp_err_t err = add_device_type(endpoint, get_device_type_id(), get_device_type_version()); + if (err != ESP_OK) { + log_e("Failed to add device type id:%" PRIu32 ",err: %d", get_device_type_id(), err); + return err; + } + + descriptor::create(endpoint, &(config->descriptor), CLUSTER_FLAG_SERVER); + cluster_t *identify_cluster = identify::create(endpoint, &(config->identify), CLUSTER_FLAG_SERVER); + identify::command::create_trigger_effect(identify_cluster); + groups::create(endpoint, &(config->groups), CLUSTER_FLAG_SERVER); + cluster_t *scenes_cluster = scenes_management::create(endpoint, &(config->scenes_management), CLUSTER_FLAG_SERVER); + scenes_management::command::create_copy_scene(scenes_cluster); + scenes_management::command::create_copy_scene_response(scenes_cluster); + + on_off::create(endpoint, &(config->on_off), CLUSTER_FLAG_SERVER, on_off::feature::lighting::get_id()); + level_control::create( + endpoint, &(config->level_control), CLUSTER_FLAG_SERVER, level_control::feature::on_off::get_id() | level_control::feature::lighting::get_id() + ); + color_control::create( + endpoint, &(config->color_control), CLUSTER_FLAG_SERVER, + color_control::feature::hue_saturation::get_id() | color_control::feature::color_temperature::get_id() + ); + return ESP_OK; +} + +endpoint_t *create(node_t *node, config_t *config, uint8_t flags, void *priv_data) { + endpoint_t *endpoint = endpoint::create(node, flags, priv_data); + add(endpoint, config); + return endpoint; +} +} // namespace enhanced_color_light +} // namespace endpoint +} // namespace esp_matter + +bool MatterEnhancedColorLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Enhanced ColorLight device has not begun."); + return false; + } + + log_d( + "Enhanced ColorAttr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u, type: %u", endpoint_id, cluster_id, attribute_id, val->val.u32, + val->type + ); + + if (endpoint_id == getEndPointId()) { + switch (cluster_id) { + case OnOff::Id: + if (attribute_id == OnOff::Attributes::OnOff::Id) { + log_d("Enhanced ColorLight On/Off State changed to %d", val->val.b); + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(val->val.b, colorHSV, brightnessLevel, colorTemperatureLevel); + } + if (ret == true) { + onOffState = val->val.b; + } + } + break; + case LevelControl::Id: + if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { + log_d("Enhanced ColorLight Brightness changed to %d", val->val.u8); + if (_onChangeBrightnessCB != NULL) { + ret &= _onChangeBrightnessCB(val->val.u8); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, colorHSV, val->val.u8, colorTemperatureLevel); + } + if (ret == true) { + colorHSV.v = val->val.u8; + } + } + break; + case ColorControl::Id: + { + if (attribute_id == ColorControl::Attributes::ColorTemperatureMireds::Id) { + log_d("Enhanced ColorLight Temperature changed to %d", val->val.u16); + if (_onChangeTemperatureCB != NULL) { + ret &= _onChangeTemperatureCB(val->val.u16); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, colorHSV, brightnessLevel, val->val.u16); + } + if (ret == true) { + colorTemperatureLevel = val->val.u16; + } + break; + } + if (attribute_id != ColorControl::Attributes::CurrentHue::Id && attribute_id != ColorControl::Attributes::CurrentSaturation::Id) { + log_i("Color Control Attribute ID [%x] not processed.", attribute_id); + break; + } + espHsvColor_t hsvColor = {colorHSV.h, colorHSV.s, colorHSV.v}; + if (attribute_id == ColorControl::Attributes::CurrentHue::Id) { + log_d("Enhanced ColorLight Hue changed to %d", val->val.u8); + hsvColor.h = val->val.u8; + } else { // attribute_id == ColorControl::Attributes::CurrentSaturation::Id) + log_d("Enhanced ColorLight Saturation changed to %d", val->val.u8); + hsvColor.s = val->val.u8; + } + if (_onChangeColorCB != NULL) { + ret &= _onChangeColorCB(hsvColor); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(onOffState, hsvColor, brightnessLevel, colorTemperatureLevel); + } + if (ret == true) { + colorHSV = {hsvColor.h, hsvColor.s, hsvColor.v}; + } + break; + } + } + } + return ret; +} + +MatterEnhancedColorLight::MatterEnhancedColorLight() {} + +MatterEnhancedColorLight::~MatterEnhancedColorLight() { + end(); +} + +bool MatterEnhancedColorLight::begin(bool initialState, espHsvColor_t _colorHSV, uint8_t brightness, uint16_t ColorTemperature) { + ArduinoMatter::_init(); + enhanced_color_light::config_t light_config; + + light_config.on_off.on_off = initialState; + light_config.on_off.lighting.start_up_on_off = nullptr; + onOffState = initialState; + + light_config.level_control.current_level = brightness; + light_config.level_control.lighting.start_up_current_level = nullptr; + + light_config.color_control.enhanced_color_mode = (uint8_t)ColorControl::ColorMode::kColorTemperature; + light_config.color_control.color_temperature.color_temperature_mireds = ColorTemperature; + light_config.color_control.color_temperature.startup_color_temperature_mireds = nullptr; + colorTemperatureLevel = ColorTemperature; + + light_config.color_control.color_mode = (uint8_t)ColorControl::ColorMode::kCurrentHueAndCurrentSaturation; + light_config.color_control.hue_saturation.current_hue = _colorHSV.h; + light_config.color_control.hue_saturation.current_saturation = _colorHSV.s; + colorHSV = {_colorHSV.h, _colorHSV.s, _colorHSV.v}; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = enhanced_color_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Enhanced ColorLight endpoint"); + return false; + } + + setEndPointId(endpoint::get_id(endpoint)); + log_i("Enhanced ColorLight created with endpoint_id %d", getEndPointId()); + + /* Mark deferred persistence for some attributes that might be changed rapidly */ + cluster_t *level_control_cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *current_level_attribute = attribute::get(level_control_cluster, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + + started = true; + return true; +} + +void MatterEnhancedColorLight::end() { + started = false; +} + +bool MatterEnhancedColorLight::setOnOff(bool newState) { + if (!started) { + log_e("Matter Enhanced ColorLight device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (onOffState == newState) { + return true; + } + + onOffState = newState; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, OnOff::Id); + attribute_t *attribute = attribute::get(cluster, OnOff::Attributes::OnOff::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.b != onOffState) { + val.val.b = onOffState; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); + } + return true; +} + +void MatterEnhancedColorLight::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState, colorHSV, brightnessLevel, colorTemperatureLevel); + } +} + +bool MatterEnhancedColorLight::getOnOff() { + return onOffState; +} + +bool MatterEnhancedColorLight::toggle() { + return setOnOff(!onOffState); +} + +bool MatterEnhancedColorLight::setBrightness(uint8_t newBrightness) { + if (!started) { + log_w("Matter Enhanced ColorLight device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (brightnessLevel == newBrightness) { + return true; + } + + brightnessLevel = newBrightness; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, LevelControl::Id); + attribute_t *attribute = attribute::get(cluster, LevelControl::Attributes::CurrentLevel::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.u8 != brightnessLevel) { + val.val.u8 = brightnessLevel; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); + } + return true; +} + +uint8_t MatterEnhancedColorLight::getBrightness() { + return brightnessLevel; +} + +bool MatterEnhancedColorLight::setColorTemperature(uint16_t newTemperature) { + if (!started) { + log_w("Matter Enhanced ColorLight device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (colorTemperatureLevel == newTemperature) { + return true; + } + + colorTemperatureLevel = newTemperature; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, ColorControl::Id); + attribute_t *attribute = attribute::get(cluster, ColorControl::Attributes::ColorTemperatureMireds::Id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + if (val.val.u16 != colorTemperatureLevel) { + val.val.u16 = colorTemperatureLevel; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id, &val); + } + return true; +} + +uint16_t MatterEnhancedColorLight::getColorTemperature() { + return colorTemperatureLevel; +} + +bool MatterEnhancedColorLight::setColorRGB(espRgbColor_t _rgbColor) { + return setColorHSV(espRgbColorToHsvColor(_rgbColor)); +} + +espRgbColor_t MatterEnhancedColorLight::getColorRGB() { + return espHsvColorToRgbColor(colorHSV); +} + +bool MatterEnhancedColorLight::setColorHSV(espHsvColor_t _hsvColor) { + + if (!started) { + log_w("Matter Enhanced ColorLight device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (colorHSV.h == _hsvColor.h && colorHSV.s == _hsvColor.s && colorHSV.v == _hsvColor.v) { + return true; + } + + colorHSV = {_hsvColor.h, _hsvColor.s, _hsvColor.v}; + + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + cluster_t *cluster = cluster::get(endpoint, ColorControl::Id); + // update hue + attribute_t *attribute = attribute::get(cluster, ColorControl::Attributes::CurrentHue::Id); + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.h) { + val.val.u8 = colorHSV.h; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::CurrentHue::Id, &val); + } + // update saturation + attribute = attribute::get(cluster, ColorControl::Attributes::CurrentSaturation::Id); + val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.s) { + val.val.u8 = colorHSV.s; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::CurrentSaturation::Id, &val); + } + // update value (brightness) + cluster = cluster::get(endpoint, LevelControl::Id); + attribute = attribute::get(cluster, LevelControl::Attributes::CurrentLevel::Id); + val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + if (val.val.u8 != colorHSV.v) { + val.val.u8 = colorHSV.v; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); + } + return true; +} + +espHsvColor_t MatterEnhancedColorLight::getColorHSV() { + return colorHSV; +} + +MatterEnhancedColorLight::operator bool() { + return getOnOff(); +} + +void MatterEnhancedColorLight::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h new file mode 100644 index 00000000000..66ed1943b8d --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h @@ -0,0 +1,102 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterEnhancedColorLight : public MatterEndPoint { +public: + static const uint8_t MAX_BRIGHTNESS = 255; + static const uint16_t MAX_COLOR_TEMPERATURE = 500; + static const uint16_t MIN_COLOR_TEMPERATURE = 100; + + MatterEnhancedColorLight(); + ~MatterEnhancedColorLight(); + // default initial state is off, brightness = 25 (10%), HSV(21, 216, 25), color temperature is 454 (Warm White) + virtual bool begin(bool initialState = false, espHsvColor_t colorHSV = {21, 216, 25}, uint8_t newBrightness = 25, uint16_t colorTemperature = 454); + // this will just stop processing Light Matter events + void end(); + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current light state + bool toggle(); // returns true if successful + + bool setColorTemperature(uint16_t newTemperature); // returns true if successful + uint16_t getColorTemperature(); // returns current temperature + + bool setBrightness(uint8_t newBrightness); // returns true if successful + uint8_t getBrightness(); // returns current brightness + + bool setColorRGB(espRgbColor_t rgbColor); // returns true if successful + espRgbColor_t getColorRGB(); // returns current RGB Color + bool setColorHSV(espHsvColor_t hsvColor); // returns true if successful + espHsvColor_t getColorHSV(); // returns current HSV Color + + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + + // User Callback for whenever the Light On/Off state is changed by the Matter Controller + using EndPointOnOffCB = std::function; + void onChangeOnOff(EndPointOnOffCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } + + // User Callback for whenever the Light brightness value [0..255] is changed by the Matter Controller + using EndPointBrightnessCB = std::function; + void onChangeBrightness(EndPointBrightnessCB onChangeCB) { + _onChangeBrightnessCB = onChangeCB; + } + + // User Callback for whenever the HSV Color value is changed by the Matter Controller + using EndPointRGBColorCB = std::function; + void onChangeColorHSV(EndPointRGBColorCB onChangeCB) { + _onChangeColorCB = onChangeCB; + } + + // User Callbqck for whenever the Light temperature value is changed by the Matter Controller + using EndPointTemperatureCB = std::function; + void onChangeColorTemperature(EndPointTemperatureCB onChangeCB) { + _onChangeTemperatureCB = onChangeCB; + } + + // User Callback for whenever any parameter is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) + uint8_t brightnessLevel = 0; // default initial brightness is 0, but it can be changed by begin(bool, uint8_t) + espHsvColor_t colorHSV = {0}; // default initial color HSV is black, but it can be changed by begin(bool, uint8_t, espHsvColor_t) + uint16_t colorTemperatureLevel = 0; // default initial color temperature is 0, but it can be changed by begin(bool, uint8_t, espHsvColor_t, uint16_t) + EndPointOnOffCB _onChangeOnOffCB = NULL; + EndPointBrightnessCB _onChangeBrightnessCB = NULL; + EndPointRGBColorCB _onChangeColorCB = NULL; + EndPointTemperatureCB _onChangeTemperatureCB = NULL; + EndPointCB _onChangeCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From af84da6f6aa9db3ea6a74a3e734aa43574e72508 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 3 Dec 2024 03:08:51 -0300 Subject: [PATCH 096/179] feat(matter): Adds a new Matter Endpoint: Generic Switch (smart button) (#10662) * feat(matter): adds new matter generic switch endpoint * fix(matter): no need of arduino preferences here * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 1 + .../MatterSmartButon/MatterSmartButon.ino | 115 ++++++++++++++++++ .../Matter/examples/MatterSmartButon/ci.json | 7 ++ libraries/Matter/keywords.txt | 3 +- libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterGenericSwitch.cpp | 100 +++++++++++++++ .../src/MatterEndpoints/MatterGenericSwitch.h | 39 ++++++ 7 files changed, 266 insertions(+), 1 deletion(-) create mode 100644 libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino create mode 100644 libraries/Matter/examples/MatterSmartButon/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bbef502143..59035e50774 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,6 +168,7 @@ set(ARDUINO_LIBRARY_OpenThread_SRCS libraries/OpenThread/src/OThreadCLI_Util.cpp) set(ARDUINO_LIBRARY_Matter_SRCS + libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp diff --git a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino new file mode 100644 index 00000000000..1d71f2123a6 --- /dev/null +++ b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino @@ -0,0 +1,115 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Generic Switch Endpoint - works as a smart button with a single click +MatterGenericSwitch SmartButton; + +// set your board USER BUTTON pin here +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize the Matter EndPoint + SmartButton.begin(); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the Matter Fabric + +void loop() { + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Generic Switch Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A builtin button is used to trigger a command to the Matter Controller + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a smart button or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // builtin button is released - send a click event to the Matter Controller + Serial.println("User button released. Sending Click to the Matter Controller!"); + // Matter Controller will receive an event and, if programmed, it will trigger an action + SmartButton.click(); + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + } + } +} diff --git a/libraries/Matter/examples/MatterSmartButon/ci.json b/libraries/Matter/examples/MatterSmartButon/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterSmartButon/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 663cc2e8327..597bbac657b 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -8,6 +8,7 @@ Matter KEYWORD1 ArduinoMatter KEYWORD1 +MatterGenericSwitch KEYWORD1 MatterOnOffLight KEYWORD1 MatterDimmableLight KEYWORD1 MatterColorTemperatureLight KEYWORD1 @@ -46,7 +47,7 @@ onChangeOnOff KEYWORD2 onChangeBrightness KEYWORD2 onChangeColorTemperature KEYWORD2 onChangeColorHSV KEYWORD2 - +click KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 5c68572640a..9136eead048 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,7 @@ class ArduinoMatter { static void decommission(); // list of Matter EndPoints Friend Classes + friend class MatterGenericSwitch; friend class MatterOnOffLight; friend class MatterDimmableLight; friend class MatterColorTemperatureLight; diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp new file mode 100644 index 00000000000..f5c6c9d750f --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp @@ -0,0 +1,100 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace esp_matter::cluster; +using namespace chip::app::Clusters; + +MatterGenericSwitch::MatterGenericSwitch() {} + +MatterGenericSwitch::~MatterGenericSwitch() { + end(); +} + +bool MatterGenericSwitch::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + if (!started) { + log_e("Matter Generic Switch device has not begun."); + return false; + } + + log_d("Generic Switch Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return true; +} + +bool MatterGenericSwitch::begin() { + ArduinoMatter::_init(); + generic_switch::config_t switch_config; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = generic_switch::create(node::get(), &switch_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Generic swtich endpoint"); + return false; + } + // Add group cluster to the switch endpoint + cluster::groups::config_t groups_config; + cluster::groups::create(endpoint, &groups_config, CLUSTER_FLAG_SERVER | CLUSTER_FLAG_CLIENT); + + cluster_t *aCluster = cluster::get(endpoint, Descriptor::Id); + esp_matter::cluster::descriptor::feature::taglist::add(aCluster); + + cluster::fixed_label::config_t fl_config; + cluster::fixed_label::create(endpoint, &fl_config, CLUSTER_FLAG_SERVER); + + cluster::user_label::config_t ul_config; + cluster::user_label::create(endpoint, &ul_config, CLUSTER_FLAG_SERVER); + + aCluster = cluster::get(endpoint, Switch::Id); + switch_cluster::feature::momentary_switch::add(aCluster); + switch_cluster::event::create_initial_press(aCluster); + + switch_cluster::feature::momentary_switch::add(aCluster); + + switch_cluster::attribute::create_current_position(aCluster, 0); + switch_cluster::attribute::create_number_of_positions(aCluster, 2); + + setEndPointId(endpoint::get_id(endpoint)); + log_i("Generic Switch created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterGenericSwitch::end() { + started = false; +} + +void MatterGenericSwitch::click() { + if (!started) { + log_e("Matter Generic Switch device has not begun."); + return; + } + + int switch_endpoint_id = getEndPointId(); + uint8_t newPosition = 1; + // Press moves Position from 0 (off) to 1 (on) + chip::DeviceLayer::SystemLayer().ScheduleLambda([switch_endpoint_id, newPosition]() { + // InitialPress event takes newPosition as event data + switch_cluster::event::send_initial_press(switch_endpoint_id, newPosition); + }); +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h new file mode 100644 index 00000000000..14118462932 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h @@ -0,0 +1,39 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +// Matter Generic Switch Endpoint that works as a single click smart button +class MatterGenericSwitch : public MatterEndPoint { +public: + MatterGenericSwitch(); + ~MatterGenericSwitch(); + virtual bool begin(); + void end(); // this will just stop processing Matter events + + // send a simple click event to the Matter Controller + void click(); + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + bool started = false; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 4eeff9bc57489f7c6b62c6152051426c015d3938 Mon Sep 17 00:00:00 2001 From: "kshitij.patil" Date: Tue, 3 Dec 2024 19:41:34 +0530 Subject: [PATCH 097/179] fix: Split provisioning into two parts for better synchronization --- .../examples/RMakerSwitch/RMakerSwitch.ino | 6 +++++ libraries/WiFiProv/src/WiFiProv.cpp | 27 ++++++++++++------- libraries/WiFiProv/src/WiFiProv.h | 7 +++++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino index 9c65881889d..21fe9cb064b 100644 --- a/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino +++ b/libraries/RainMaker/examples/RMakerSwitch/RMakerSwitch.ino @@ -94,6 +94,12 @@ void setup() { RMaker.enableSystemService(SYSTEM_SERV_FLAGS_ALL, 2, 2, 2); +#if CONFIG_IDF_TARGET_ESP32S2 + WiFiProv.initProvision(NETWORK_PROV_SCHEME_SOFTAP, NETWORK_PROV_SCHEME_HANDLER_NONE); +#else + WiFiProv.initProvision(NETWORK_PROV_SCHEME_BLE, NETWORK_PROV_SCHEME_HANDLER_FREE_BTDM); +#endif + RMaker.start(); WiFi.onEvent(sysProvEvent); // Will call sysProvEvent() from another thread. diff --git a/libraries/WiFiProv/src/WiFiProv.cpp b/libraries/WiFiProv/src/WiFiProv.cpp index 55fbd473f88..fb67377a2ee 100644 --- a/libraries/WiFiProv/src/WiFiProv.cpp +++ b/libraries/WiFiProv/src/WiFiProv.cpp @@ -1,4 +1,4 @@ -/* + /* WiFiProv.cpp - WiFiProv class for provisioning All rights reserved. @@ -72,13 +72,11 @@ static void get_device_service_name(prov_scheme_t prov_scheme, char *service_nam #endif } -void WiFiProvClass ::beginProvision( - prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, network_prov_security_t security, const char *pop, const char *service_name, - const char *service_key, uint8_t *uuid, bool reset_provisioned -) { - bool provisioned = false; - static char service_name_temp[32]; - +void WiFiProvClass ::initProvision(prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, bool reset_provisioned) { + if (this->provInitDone) { + log_i("provInit was already done!"); + return; + } network_prov_mgr_config_t config; #if CONFIG_BLUEDROID_ENABLED if (prov_scheme == NETWORK_PROV_SCHEME_BLE) { @@ -118,11 +116,22 @@ void WiFiProvClass ::beginProvision( if (reset_provisioned) { log_i("Resetting provisioned data."); network_prov_mgr_reset_wifi_provisioning(); - } else if (network_prov_mgr_is_wifi_provisioned(&provisioned) != ESP_OK) { + } else if (network_prov_mgr_is_wifi_provisioned(&(this->provisioned)) != ESP_OK) { log_e("network_prov_mgr_is_wifi_provisioned failed!"); network_prov_mgr_deinit(); return; } + this->provInitDone = true; +} + +void WiFiProvClass ::beginProvision( + prov_scheme_t prov_scheme, scheme_handler_t scheme_handler, network_prov_security_t security, const char *pop, const char *service_name, + const char *service_key, uint8_t *uuid, bool reset_provisioned +) { + if (!this->provInitDone) { + WiFiProvClass ::initProvision( prov_scheme, scheme_handler, reset_provisioned); + } + static char service_name_temp[32]; if (provisioned == false) { #if CONFIG_BLUEDROID_ENABLED if (prov_scheme == NETWORK_PROV_SCHEME_BLE) { diff --git a/libraries/WiFiProv/src/WiFiProv.h b/libraries/WiFiProv/src/WiFiProv.h index a4a3397ed06..53af27f7c80 100644 --- a/libraries/WiFiProv/src/WiFiProv.h +++ b/libraries/WiFiProv/src/WiFiProv.h @@ -47,7 +47,14 @@ typedef enum { //Provisioning class class WiFiProvClass { +private: + bool provInitDone = false; + bool provisioned = false; public: + void initProvision( + prov_scheme_t prov_scheme = NETWORK_PROV_SCHEME_SOFTAP, scheme_handler_t scheme_handler = NETWORK_PROV_SCHEME_HANDLER_NONE, + bool reset_provisioned = false + ); void beginProvision( prov_scheme_t prov_scheme = NETWORK_PROV_SCHEME_SOFTAP, scheme_handler_t scheme_handler = NETWORK_PROV_SCHEME_HANDLER_NONE, network_prov_security_t security = NETWORK_PROV_SECURITY_1, const char *pop = "abcd1234", const char *service_name = NULL, const char *service_key = NULL, From e159bf6e4632a10ce56cbcc02a1e375456dac5bf Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 9 Dec 2024 06:27:56 -0300 Subject: [PATCH 098/179] refactor(uart): Refactor UART test to work with any number of UARTs (#10593) * refactor(uart): Refactor UART test to work with any number of UARTs Co-authored-by: Rodrigo Garcia * fix(uart): Set CPU freq on ESP32 * ci(pre-commit): Apply automatic fixes * fix(spelling): Fix codespell error --------- Co-authored-by: Rodrigo Garcia Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- tests/validation/uart/diagram.esp32.json | 24 ++ tests/validation/uart/uart.ino | 501 ++++++++++------------- 2 files changed, 240 insertions(+), 285 deletions(-) create mode 100644 tests/validation/uart/diagram.esp32.json diff --git a/tests/validation/uart/diagram.esp32.json b/tests/validation/uart/diagram.esp32.json new file mode 100644 index 00000000000..a31c06d8313 --- /dev/null +++ b/tests/validation/uart/diagram.esp32.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "author": "lucasssvaz", + "editor": "wokwi", + "parts": [ + { + "type": "board-esp32-devkit-c-v4", + "id": "esp", + "attrs": { "cpuFrequency": "40" } + } + ], + "connections": [ + [ + "esp:TX", + "$serialMonitor:RX", + "" + ], + [ + "esp:RX", + "$serialMonitor:TX", + "" + ] + ] +} diff --git a/tests/validation/uart/uart.ino b/tests/validation/uart/uart.ino index 01c449867db..27bd95da7f8 100644 --- a/tests/validation/uart/uart.ino +++ b/tests/validation/uart/uart.ino @@ -2,25 +2,20 @@ * * This test is using UART0 (Serial) only for reporting test status and helping with the auto * baudrate detection test. - * UART1 (Serial1) and UART2 (Serial2), where available, are used for testing. + * The other serials are used for testing. */ -#include -#include "HardwareSerial.h" -#include "esp_rom_gpio.h" -#include "Wire.h" - // Default pins: -// | Name | ESP32 | S2 | S3 | C3 | C6 | H2 | -// UART0 RX | SOC_RX0 | 3 | 44 | 44 | 20 | 17 | 23 | -// UART0 TX | SOC_TX0 | 1 | 43 | 43 | 21 | 16 | 24 | -// UART1 RX | RX1 | 26 | 4 | 15 | 18 | 4 | 0 | -// UART1 TX | TX1 | 27 | 5 | 16 | 19 | 5 | 1 | -// UART2 RX | RX2 | 4 | -- | 19 | -- | -- | -- | -// UART2 TX | TX2 | 25 | -- | 20 | -- | -- | -- | +// | Name | ESP32 | S2 | S3 | C3 | C6 | H2 | P4 | +// UART0 RX | SOC_RX0 | 3 | 44 | 44 | 20 | 17 | 23 | 38 | +// UART0 TX | SOC_TX0 | 1 | 43 | 43 | 21 | 16 | 24 | 37 | +// UART1 RX | RX1 | 26 | 4 | 15 | 18 | 4 | 0 | 11 | +// UART1 TX | TX1 | 27 | 5 | 16 | 19 | 5 | 1 | 10 | +// UART2 RX | RX2 | 4 | -- | 19 | -- | -- | -- | -- | +// UART2 TX | TX2 | 25 | -- | 20 | -- | -- | -- | -- | /* - * For 2 UARTS: + * For each UART: * * terminal * | ^ @@ -30,119 +25,95 @@ * report status * | * TX <---> RX - * UART1 - * - * For 3 UARTS: - * - * =====terminal====== - * ^ | ^ ^ - * | v UART0 | | - * | RX TX | - * | | - * ^ report status ^ - * | | - * | TX ---> RX | - * UART2 RX <--- TX UART1 - * + * UARTx */ -#if SOC_UART_HP_NUM == 2 -// Used for the pin swap test -#define NEW_RX1 9 -#define NEW_TX1 10 -#endif +#include +#include +#include "HardwareSerial.h" +#include "esp_rom_gpio.h" +#include "Wire.h" -// ESP32-P4 has no UART pin definition for RX2, TX2, RX3, TX3, RX4, TX4 -#ifndef RX2 -#define RX2 RX1 -#endif -#ifndef TX2 -#define TX2 RX1 -#endif +/* Utility defines */ -/* Utility global variables */ +#define TEST_UART_NUM (uart_test_configs.size()) -static String recv_msg = ""; -static int peeked_char = -1; +/* Utility classes */ -/* Utility functions */ +class UARTTestConfig { +public: + int uart_num; + HardwareSerial &serial; + int peeked_char; + int8_t default_rx_pin; + int8_t default_tx_pin; + String recv_msg; -extern int8_t uart_get_RxPin(uint8_t uart_num); -extern int8_t uart_get_TxPin(uint8_t uart_num); + UARTTestConfig(int num, HardwareSerial &serial_ref, int8_t rx_pin, int8_t tx_pin) + : uart_num(num), serial(serial_ref), peeked_char(-1), default_rx_pin(rx_pin), default_tx_pin(tx_pin), recv_msg("") {} -// This function starts all the available test UARTs -void start_serial(unsigned long baudrate = 115200) { -#if SOC_UART_HP_NUM >= 2 - Serial1.begin(baudrate); - while (!Serial1) { - delay(10); + void begin(unsigned long baudrate) { + serial.begin(baudrate, SERIAL_8N1, default_rx_pin, default_tx_pin); + while (!serial) { + delay(10); + } } -#endif -#if SOC_UART_HP_NUM >= 3 - Serial2.begin(baudrate); - while (!Serial2) { - delay(10); + void end() { + serial.end(); } -#endif -} - -// This function stops all the available test UARTs -void stop_serial(bool hard_stop = false) { -#if SOC_UART_HP_NUM >= 2 - Serial1.end(/*hard_stop*/); -#endif - -#if SOC_UART_HP_NUM >= 3 - Serial2.end(/*hard_stop*/); -#endif -} -// This function transmits a message and checks if it was received correctly -void transmit_and_check_msg(const String msg_append, bool perform_assert = true) { - delay(100); // Wait for some settings changes to take effect -#if SOC_UART_HP_NUM == 2 - Serial1.print("Hello from Serial1 (UART1) >>> via loopback >>> Serial1 (UART1) " + msg_append); - Serial1.flush(); - delay(100); - if (perform_assert) { - TEST_ASSERT_EQUAL_STRING(("Hello from Serial1 (UART1) >>> via loopback >>> Serial1 (UART1) " + msg_append).c_str(), recv_msg.c_str()); + void reset_buffers() { + recv_msg = ""; + peeked_char = -1; } -#elif SOC_UART_HP_NUM >= 3 - Serial1.print("Hello from Serial1 (UART1) >>> to >>> Serial2 (UART2) " + msg_append); - Serial1.flush(); - delay(100); - if (perform_assert) { - TEST_ASSERT_EQUAL_STRING(("Hello from Serial1 (UART1) >>> to >>> Serial2 (UART2) " + msg_append).c_str(), recv_msg.c_str()); + + void transmit_and_check_msg(const String &msg_append, bool perform_assert = true) { + reset_buffers(); + delay(100); + serial.print("Hello from Serial" + String(uart_num) + " " + msg_append); + serial.flush(); + delay(100); + if (perform_assert) { + TEST_ASSERT_EQUAL_STRING(("Hello from Serial" + String(uart_num) + " " + msg_append).c_str(), recv_msg.c_str()); + log_d("UART%d received message: %s\n", uart_num, recv_msg.c_str()); + } } - Serial2.print("Hello from Serial2 (UART2) >>> to >>> Serial1 (UART1) " + msg_append); - Serial2.flush(); - delay(100); - if (perform_assert) { - TEST_ASSERT_EQUAL_STRING(("Hello from Serial2 (UART2) >>> to >>> Serial1 (UART1) " + msg_append).c_str(), recv_msg.c_str()); + void onReceive() { + char c; + size_t available = serial.available(); + if (peeked_char == -1) { + peeked_char = serial.peek(); + } + while (available--) { + c = (char)serial.read(); + recv_msg += c; + } } -#else - log_d("No UARTs available for transmission"); - TEST_FAIL(); -#endif -} +}; + +/* Utility global variables */ + +[[maybe_unused]] +static const int NEW_RX1 = 9; +[[maybe_unused]] +static const int NEW_TX1 = 10; +std::vector uart_test_configs; + +/* Utility functions */ + +extern "C" int8_t uart_get_RxPin(uint8_t uart_num); +extern "C" int8_t uart_get_TxPin(uint8_t uart_num); /* Tasks */ // This task is used to send a message after a delay to test the auto baudrate detection void task_delayed_msg(void *pvParameters) { - HardwareSerial *selected_serial; - -#if SOC_UART_HP_NUM == 2 - selected_serial = &Serial; -#elif SOC_UART_HP_NUM >= 3 - selected_serial = &Serial1; -#endif - + HardwareSerial &selected_serial = uart_test_configs.size() == 1 ? Serial : Serial1; delay(2000); - selected_serial->println("Hello from Serial1 to detect baudrate"); - selected_serial->flush(); + selected_serial.println("Hello to detect baudrate"); + selected_serial.flush(); vTaskDelete(NULL); } @@ -150,67 +121,23 @@ void task_delayed_msg(void *pvParameters) { // This function is automatically called by unity before each test is run void setUp(void) { - start_serial(115200); -#if SOC_UART_HP_NUM == 2 - log_d("Setup internal loop-back from and back to Serial1 (UART1) TX >> Serial1 (UART1) RX"); - - Serial1.onReceive([]() { - onReceive_cb(Serial1); - }); - uart_internal_loopback(1, RX1); -#elif SOC_UART_HP_NUM >= 3 - log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); - - Serial1.onReceive([]() { - onReceive_cb(Serial1); - }); - Serial2.onReceive([]() { - onReceive_cb(Serial2); - }); - uart_internal_loopback(1, RX2); - uart_internal_loopback(2, RX1); -#endif + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + //log_d("Setup internal loop-back from and back to UART%d TX >> UART%d RX", config.uart_num, config.uart_num); + config.begin(115200); + config.serial.onReceive([&config]() { + config.onReceive(); + }); + uart_internal_loopback(config.uart_num, uart_get_RxPin(config.uart_num)); + } } // This function is automatically called by unity after each test is run void tearDown(void) { - stop_serial(); -} - -/* Callback functions */ - -// This is a callback function that will be activated on UART RX events -void onReceive_cb(HardwareSerial &selected_serial) { - int uart_num = -1; - char c; - - (void)uart_num; // Avoid compiler warning when debug level is set to none - - if (&selected_serial == &Serial) { - uart_num = 0; -#if SOC_UART_HP_NUM >= 2 - } else if (&selected_serial == &Serial1) { - uart_num = 1; -#endif -#if SOC_UART_HP_NUM >= 3 - } else if (&selected_serial == &Serial2) { - uart_num = 2; -#endif - } - - recv_msg = ""; - size_t available = selected_serial.available(); - - if (available != 0) { - peeked_char = selected_serial.peek(); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + config.end(); } - - while (available--) { - c = (char)selected_serial.read(); - recv_msg += c; - } - - log_d("UART %d received message: %s\n", uart_num, recv_msg.c_str()); } /* Test functions */ @@ -219,40 +146,33 @@ void onReceive_cb(HardwareSerial &selected_serial) { void basic_transmission_test(void) { log_d("Performing basic transmission test"); - transmit_and_check_msg(""); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + config.transmit_and_check_msg(""); + } Serial.println("Basic transmission test successful"); } // This test checks if the baudrate can be changed and if the message can be transmitted and received correctly after the change void change_baudrate_test(void) { - //Test first using the updateBaudRate method and then using the begin method - log_d("Changing baudrate to 9600"); - - //Baudrate error should be within 2% of the target baudrate - Serial1.updateBaudRate(9600); - TEST_ASSERT_UINT_WITHIN(192, 9600, Serial1.baudRate()); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + log_d("Changing baudrate of UART%d to 9600", config.uart_num); -#if SOC_UART_HP_NUM >= 3 - Serial2.updateBaudRate(9600); - TEST_ASSERT_UINT_WITHIN(192, 9600, Serial2.baudRate()); -#endif - - log_d("Sending string using 9600 baudrate"); - transmit_and_check_msg("using 9600 baudrate"); + //Baudrate error should be within 2% of the target baudrate + config.serial.updateBaudRate(9600); + TEST_ASSERT_UINT_WITHIN(192, 9600, config.serial.baudRate()); - log_d("Changing baudrate back to 115200"); - start_serial(115200); + log_d("Sending string on UART%d using 9600 baudrate", config.uart_num); + config.transmit_and_check_msg("using 9600 baudrate"); - //Baudrate error should be within 2% of the target baudrate - TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial1.baudRate()); + config.serial.begin(115200); + TEST_ASSERT_UINT_WITHIN(2304, 115200, config.serial.baudRate()); -#if SOC_UART_HP_NUM >= 3 - TEST_ASSERT_UINT_WITHIN(2304, 115200, Serial2.baudRate()); -#endif - - log_d("Sending string using 115200 baudrate"); - transmit_and_check_msg("using 115200 baudrate"); + log_d("Sending string on UART%d using 115200 baudrate", config.uart_num); + config.transmit_and_check_msg("using 115200 baudrate"); + } Serial.println("Change baudrate test successful"); } @@ -269,7 +189,7 @@ void resize_buffers_test(void) { ret = Serial1.setTxBufferSize(256); TEST_ASSERT_EQUAL(0, ret); - stop_serial(); + Serial1.end(); log_d("Trying to resize RX buffer while stopped."); ret = Serial1.setRxBufferSize(256); @@ -285,7 +205,12 @@ void resize_buffers_test(void) { // This test checks if the begin function can be called when the UART is already running void begin_when_running_test(void) { log_d("Trying to set up serial twice"); - start_serial(115200); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + // Calling twice should not crash + config.begin(115200); + config.begin(115200); + } Serial.println("Begin when running test successful"); } @@ -293,9 +218,12 @@ void begin_when_running_test(void) { void end_when_stopped_test(void) { log_d("Trying to end serial twice"); - // Calling end(true) twice should not crash - stop_serial(true); - stop_serial(true); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + // Calling twice should not crash + config.end(); + config.end(); + } Serial.println("End when stopped test successful"); } @@ -319,7 +247,7 @@ void enabled_uart_calls_test(void) { TEST_ASSERT_EQUAL(true, boolean_ret); log_d("Checking if Serial 1 is peekable while running"); - TEST_ASSERT_GREATER_OR_EQUAL(0, peeked_char); + TEST_ASSERT_GREATER_OR_EQUAL(0, uart_test_configs[0]->peeked_char); log_d("Checking if Serial 1 can read bytes while running"); integer_ret = Serial1.readBytes(test_buf, 1); @@ -355,7 +283,10 @@ void disabled_uart_calls_test(void) { int integer_ret; uint8_t test_buf[1]; - stop_serial(); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + config.end(); + } log_d("Checking if Serial 1 can set the RX timeout when stopped"); boolean_ret = Serial1.setRxTimeout(1); @@ -423,44 +354,35 @@ void disabled_uart_calls_test(void) { // This test checks if the pins can be changed and if the message can be transmitted and received correctly after the change void change_pins_test(void) { - //stop_serial(); - log_d("Disabling UART loopback"); -#if SOC_UART_HP_NUM == 2 - esp_rom_gpio_connect_out_signal(SOC_RX0, SIG_GPIO_OUT_IDX, false, false); -#elif SOC_UART_HP_NUM >= 3 - esp_rom_gpio_connect_out_signal(RX1, SIG_GPIO_OUT_IDX, false, false); - esp_rom_gpio_connect_out_signal(RX2, SIG_GPIO_OUT_IDX, false, false); -#endif - - log_d("Swapping UART pins"); - -#if SOC_UART_HP_NUM == 2 - Serial1.setPins(NEW_RX1, NEW_TX1); - TEST_ASSERT_EQUAL(NEW_RX1, uart_get_RxPin(1)); - TEST_ASSERT_EQUAL(NEW_TX1, uart_get_TxPin(1)); -#elif SOC_UART_HP_NUM >= 3 - Serial1.setPins(RX2, TX2); - Serial2.setPins(RX1, TX1); - TEST_ASSERT_EQUAL(RX2, uart_get_RxPin(1)); - TEST_ASSERT_EQUAL(TX2, uart_get_TxPin(1)); - TEST_ASSERT_EQUAL(RX1, uart_get_RxPin(2)); - TEST_ASSERT_EQUAL(TX1, uart_get_TxPin(2)); -#endif - - start_serial(115200); - - log_d("Re-enabling UART loopback"); - -#if SOC_UART_HP_NUM == 2 - uart_internal_loopback(1, NEW_RX1); -#elif SOC_UART_HP_NUM >= 3 - uart_internal_loopback(1, RX1); - uart_internal_loopback(2, RX2); -#endif + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + esp_rom_gpio_connect_out_signal(config.default_rx_pin, SIG_GPIO_OUT_IDX, false, false); + } - transmit_and_check_msg("using new pins"); + log_d("Swapping UART pins and testing transmission"); + + if (TEST_UART_NUM == 1) { + UARTTestConfig &config = *uart_test_configs[0]; + config.serial.setPins(NEW_RX1, NEW_TX1); + TEST_ASSERT_EQUAL(NEW_RX1, uart_get_RxPin(config.uart_num)); + TEST_ASSERT_EQUAL(NEW_TX1, uart_get_TxPin(config.uart_num)); + + uart_internal_loopback(config.uart_num, NEW_RX1); + config.transmit_and_check_msg("using new pins"); + } else { + for (int i = 0; i < TEST_UART_NUM; i++) { + UARTTestConfig &config = *uart_test_configs[i]; + UARTTestConfig &next_uart = *uart_test_configs[(i + 1) % TEST_UART_NUM]; + config.serial.setPins(next_uart.default_rx_pin, next_uart.default_tx_pin); + TEST_ASSERT_EQUAL(uart_get_RxPin(config.uart_num), next_uart.default_rx_pin); + TEST_ASSERT_EQUAL(uart_get_TxPin(config.uart_num), next_uart.default_tx_pin); + + uart_internal_loopback(config.uart_num, next_uart.default_rx_pin); + config.transmit_and_check_msg("using new pins"); + } + } Serial.println("Change pins test successful"); } @@ -475,12 +397,15 @@ void auto_baudrate_test(void) { log_d("Stopping test serial. Using Serial2 for ESP32 and Serial1 for ESP32-S2."); -#if SOC_UART_HP_NUM == 2 - selected_serial = &Serial1; - uart_internal_loopback(0, RX1); -#elif SOC_UART_HP_NUM >= 3 - selected_serial = &Serial2; + if (TEST_UART_NUM == 1) { + selected_serial = &Serial1; + uart_internal_loopback(0, RX1); + } else { +#ifdef RX2 + selected_serial = &Serial2; + uart_internal_loopback(1, RX2); #endif + } //selected_serial->end(false); @@ -493,10 +418,10 @@ void auto_baudrate_test(void) { selected_serial->begin(0); baudrate = selected_serial->baudRate(); -#if SOC_UART_HP_NUM == 2 - Serial.end(); - Serial.begin(115200); -#endif + if (TEST_UART_NUM == 1) { + Serial.end(); + Serial.begin(115200); + } TEST_ASSERT_UINT_WITHIN(2304, 115200, baudrate); @@ -510,32 +435,23 @@ void periman_test(void) { log_d("Setting up I2C on the same pins as UART"); - Wire.begin(RX1, TX1); - -#if SOC_UART_HP_NUM >= 3 - Wire1.begin(RX2, TX2); -#endif - - recv_msg = ""; - - log_d("Trying to send message using UART with I2C enabled"); - transmit_and_check_msg("while used by I2C", false); - TEST_ASSERT_EQUAL_STRING("", recv_msg.c_str()); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + Wire.begin(config.default_rx_pin, config.default_tx_pin); + config.recv_msg = ""; - log_d("Disabling I2C and re-enabling UART"); + log_d("Trying to send message using UART%d with I2C enabled", config.uart_num); + config.transmit_and_check_msg("while used by I2C", false); + TEST_ASSERT_EQUAL_STRING("", config.recv_msg.c_str()); - Serial1.setPins(RX1, TX1); + log_d("Disabling I2C and re-enabling UART%d", config.uart_num); -#if SOC_UART_HP_NUM >= 3 - Serial2.setPins(RX2, TX2); - uart_internal_loopback(1, RX2); - uart_internal_loopback(2, RX1); -#elif SOC_UART_HP_NUM == 2 - uart_internal_loopback(1, RX1); -#endif + config.serial.setPins(config.default_rx_pin, config.default_tx_pin); + uart_internal_loopback(config.uart_num, config.default_rx_pin); - log_d("Trying to send message using UART with I2C disabled"); - transmit_and_check_msg("while I2C is disabled"); + log_d("Trying to send message using UART%d with I2C disabled", config.uart_num); + config.transmit_and_check_msg("while I2C is disabled"); + } Serial.println("Peripheral manager test successful"); } @@ -551,8 +467,11 @@ void change_cpu_frequency_test(void) { Serial.updateBaudRate(115200); - log_d("Trying to send message with the new CPU frequency"); - transmit_and_check_msg("with new CPU frequency"); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + log_d("Trying to send message with the new CPU frequency on UART%d", config.uart_num); + config.transmit_and_check_msg("with new CPU frequency"); + } log_d("Changing CPU frequency back to %dMHz", old_freq); Serial.flush(); @@ -560,8 +479,11 @@ void change_cpu_frequency_test(void) { Serial.updateBaudRate(115200); - log_d("Trying to send message with the original CPU frequency"); - transmit_and_check_msg("with the original CPU frequency"); + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + log_d("Trying to send message with the original CPU frequency on UART%d", config.uart_num); + config.transmit_and_check_msg("with the original CPU frequency"); + } Serial.println("Change CPU frequency test successful"); } @@ -573,30 +495,39 @@ void setup() { while (!Serial) { delay(10); } - log_d("SOC_UART_HP_NUM = %d", SOC_UART_HP_NUM); - - // Begin needs to be called before setting up the loopback because it creates the serial object - start_serial(115200); - -#if SOC_UART_HP_NUM == 2 - log_d("Setup internal loop-back from and back to Serial1 (UART1) TX >> Serial1 (UART1) RX"); - - Serial1.onReceive([]() { - onReceive_cb(Serial1); - }); - uart_internal_loopback(1, RX1); -#elif SOC_UART_HP_NUM >= 3 - log_d("Setup internal loop-back between Serial1 (UART1) <<--->> Serial2 (UART2)"); - - Serial1.onReceive([]() { - onReceive_cb(Serial1); - }); - Serial2.onReceive([]() { - onReceive_cb(Serial2); - }); - uart_internal_loopback(1, RX2); - uart_internal_loopback(2, RX1); + + uart_test_configs = { +#if SOC_UART_HP_NUM >= 2 && defined(RX1) && defined(TX1) + // inverting RX1<->TX1 because ESP32-P4 has a problem with loopback on RX1 :: GPIO11 <-- UART_TX SGINAL + new UARTTestConfig(1, Serial1, TX1, RX1), +#endif +#if SOC_UART_HP_NUM >= 3 && defined(RX2) && defined(TX2) + new UARTTestConfig(2, Serial2, RX2, TX2), +#endif +#if SOC_UART_HP_NUM >= 4 && defined(RX3) && defined(TX3) + new UARTTestConfig(3, Serial3, RX3, TX3), #endif +#if SOC_UART_HP_NUM >= 5 && defined(RX4) && defined(TX4) + new UARTTestConfig(4, Serial4, RX4, TX4) +#endif + }; + + if (TEST_UART_NUM == 0) { + log_e("This test requires at least one UART besides UART0 configured"); + abort(); + } + + log_d("TEST_UART_NUM = %d", TEST_UART_NUM); + + for (auto *ref : uart_test_configs) { + UARTTestConfig &config = *ref; + config.begin(115200); + log_d("Setup internal loop-back from and back to UART%d TX >> UART%d RX", config.uart_num, config.uart_num); + config.serial.onReceive([&config]() { + config.onReceive(); + }); + uart_internal_loopback(config.uart_num, uart_get_RxPin(config.uart_num)); + } log_d("Setup done. Starting tests"); From 92dd841ffc161d88ca492f4dee3bb1b5f76548c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:30:15 +0100 Subject: [PATCH 099/179] feat(Zigbee): Recall bounded devices after reboot + IEEE address option for commands (#10676) * feat(zigbee): Recall bound devices after reboot * fix(zigbee): Add missing locks + allow printBoundDevices to Serial * fix(Zigbee): Add locks to temp sensor setReporting * fix(Zigbee): remove unnecessary space in formatting * fix(Zigbee): proper parameter in printBoundDevices * feat(Zigbee): factory reset when removed from network * fix(zigbee): Update comment * fix(zigbee): fix serial and add missing factoryReset to example * ci(pre-commit): Apply automatic fixes --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- .../Zigbee_Color_Dimmer_Switch.ino | 2 +- .../Zigbee_On_Off_Switch.ino | 15 +- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 1 + libraries/Zigbee/src/ZigbeeCore.cpp | 77 ++++++++- libraries/Zigbee/src/ZigbeeCore.h | 2 + libraries/Zigbee/src/ZigbeeEP.cpp | 56 +++++-- libraries/Zigbee/src/ZigbeeEP.h | 14 +- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp | 147 +++++++++++++++--- .../Zigbee/src/ep/ZigbeeColorDimmerSwitch.h | 5 + libraries/Zigbee/src/ep/ZigbeeSwitch.cpp | 109 +++++++++++-- libraries/Zigbee/src/ep/ZigbeeSwitch.h | 3 + libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp | 4 + 12 files changed, 376 insertions(+), 59 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino index 00e3cd170ef..15e120a1dbd 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino @@ -145,6 +145,6 @@ void loop() { static uint32_t last_print = 0; if (millis() - last_print > 30000) { last_print = millis(); - zbSwitch.printBoundDevices(); + zbSwitch.printBoundDevices(Serial); } } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino index e38734a052a..e12b8aaf9ea 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino @@ -138,17 +138,16 @@ void setup() { delay(500); } - // Optional: read manufacturer and model name from the bound light + // Optional: List all bound devices and read manufacturer and model name std::list boundLights = zbSwitch.getBoundDevices(); - //List all bound lights for (const auto &device : boundLights) { - Serial.printf("Device on endpoint %d, short address: 0x%x\n", device->endpoint, device->short_addr); + Serial.printf("Device on endpoint %d, short address: 0x%x\r\n", device->endpoint, device->short_addr); Serial.printf( - "IEEE Address: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\n", device->ieee_addr[0], device->ieee_addr[1], device->ieee_addr[2], device->ieee_addr[3], - device->ieee_addr[4], device->ieee_addr[5], device->ieee_addr[6], device->ieee_addr[7] + "IEEE Address: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X\r\n", device->ieee_addr[7], device->ieee_addr[6], device->ieee_addr[5], device->ieee_addr[4], + device->ieee_addr[3], device->ieee_addr[2], device->ieee_addr[1], device->ieee_addr[0] ); - Serial.printf("Light manufacturer: %s", zbSwitch.readManufacturer(device->endpoint, device->short_addr)); - Serial.printf("Light model: %s", zbSwitch.readModel(device->endpoint, device->short_addr)); + Serial.printf("Light manufacturer: %s\r\n", zbSwitch.readManufacturer(device->endpoint, device->short_addr, device->ieee_addr)); + Serial.printf("Light model: %s\r\n", zbSwitch.readModel(device->endpoint, device->short_addr, device->ieee_addr)); } Serial.println(); @@ -191,6 +190,6 @@ void loop() { static uint32_t lastPrint = 0; if (millis() - lastPrint > 10000) { lastPrint = millis(); - zbSwitch.printBoundDevices(); + zbSwitch.printBoundDevices(Serial); } } diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index e13e6a877a6..0c2f9b56690 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -128,6 +128,7 @@ void loop() { // If key pressed for more than 3secs, factory reset Zigbee and reboot Serial.println("Resetting Zigbee to factory and rebooting in 1s."); delay(1000); + Zigbee.factoryReset(); } } } diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index 442dc4b7ee0..b1dc6211362 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -243,6 +243,7 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { } else { Zigbee._connected = true; } + Zigbee.searchBindings(); } } else { /* commissioning failed */ @@ -309,7 +310,6 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { Bit 6 – Security capability Bit 7 – Reserved */ - // for each endpoint in the list call the findEndpoint function if not bounded or allowed to bind multiple devices for (std::list::iterator it = Zigbee.ep_objects.begin(); it != Zigbee.ep_objects.end(); ++it) { if (!(*it)->bound() || (*it)->epAllowMultipleBinding()) { @@ -329,6 +329,12 @@ void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct) { } } break; + case ESP_ZB_ZDO_SIGNAL_LEAVE: // End Device + Router + // Device was removed from the network, factory reset the device + if ((zigbee_role_t)Zigbee.getRole() != ZIGBEE_COORDINATOR) { + Zigbee.factoryReset(); + } + break; default: log_v("ZDO signal: %s (0x%x), status: %s", esp_zb_zdo_signal_to_string(sig_type), sig_type, esp_err_to_name(err_status)); break; } } @@ -391,6 +397,75 @@ void ZigbeeCore::scanDelete() { _scan_status = ZB_SCAN_FAILED; } +// Recall bounded devices from the binding table after reboot +void ZigbeeCore::bindingTableCb(const esp_zb_zdo_binding_table_info_t *table_info, void *user_ctx) { + bool done = true; + esp_zb_zdo_mgmt_bind_param_t *req = (esp_zb_zdo_mgmt_bind_param_t *)user_ctx; + esp_zb_zdp_status_t zdo_status = (esp_zb_zdp_status_t)table_info->status; + log_d("Binding table callback for address 0x%04x with status %d", req->dst_addr, zdo_status); + if (zdo_status == ESP_ZB_ZDP_STATUS_SUCCESS) { + // Print binding table log simple + log_d("Binding table info: total %d, index %d, count %d", table_info->total, table_info->index, table_info->count); + + if (table_info->total == 0) { + log_d("No binding table entries found"); + free(req); + return; + } + + esp_zb_zdo_binding_table_record_t *record = table_info->record; + for (int i = 0; i < table_info->count; i++) { + log_d( + "Binding table record: src_endp %d, dst_endp %d, cluster_id 0x%04x, dst_addr_mode %d", record->src_endp, record->dst_endp, record->cluster_id, + record->dst_addr_mode + ); + + zb_device_params_t *device = (zb_device_params_t *)calloc(1, sizeof(zb_device_params_t)); + device->endpoint = record->dst_endp; + if (record->dst_addr_mode == ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT || record->dst_addr_mode == ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT) { + device->short_addr = record->dst_address.addr_short; + } else { //ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT + memcpy(device->ieee_addr, record->dst_address.addr_long, sizeof(esp_zb_ieee_addr_t)); + } + + // Add to list of bound devices of proper endpoint + for (std::list::iterator it = Zigbee.ep_objects.begin(); it != Zigbee.ep_objects.end(); ++it) { + if ((*it)->getEndpoint() == record->src_endp) { + (*it)->addBoundDevice(device); + log_d( + "Device bound to EP %d -> device endpoint: %d, short addr: 0x%04x, ieee addr: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", record->src_endp, + device->endpoint, device->short_addr, device->ieee_addr[7], device->ieee_addr[6], device->ieee_addr[5], device->ieee_addr[4], device->ieee_addr[3], + device->ieee_addr[2], device->ieee_addr[1], device->ieee_addr[0] + ); + } + } + record = record->next; + } + + // Continue reading the binding table + if (table_info->index + table_info->count < table_info->total) { + /* There are unreported binding table entries, request for them. */ + req->start_index = table_info->index + table_info->count; + esp_zb_zdo_binding_table_req(req, bindingTableCb, req); + done = false; + } + } + + if (done) { + // Print bound devices + log_d("Filling bounded devices finished"); + free(req); + } +} + +void ZigbeeCore::searchBindings() { + esp_zb_zdo_mgmt_bind_param_t *mb_req = (esp_zb_zdo_mgmt_bind_param_t *)malloc(sizeof(esp_zb_zdo_mgmt_bind_param_t)); + mb_req->dst_addr = esp_zb_get_short_address(); + mb_req->start_index = 0; + log_d("Requesting binding table for address 0x%04x", mb_req->dst_addr); + esp_zb_zdo_binding_table_req(mb_req, bindingTableCb, (void *)mb_req); +} + // Function to convert enum value to string const char *ZigbeeCore::getDeviceTypeString(esp_zb_ha_standard_devices_t deviceId) { switch (deviceId) { diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index 75fecd59198..6729b7cc9f4 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -80,6 +80,8 @@ class ZigbeeCore { bool zigbeeInit(esp_zb_cfg_t *zb_cfg, bool erase_nvs); static void scanCompleteCallback(esp_zb_zdp_status_t zdo_status, uint8_t count, esp_zb_network_descriptor_t *nwk_descriptor); const char *getDeviceTypeString(esp_zb_ha_standard_devices_t deviceId); + void searchBindings(); + static void bindingTableCb(const esp_zb_zdo_binding_table_info_t *table_info, void *user_ctx); public: ZigbeeCore(); diff --git a/libraries/Zigbee/src/ZigbeeEP.cpp b/libraries/Zigbee/src/ZigbeeEP.cpp index 0a947d3ab9e..dbfe8596268 100644 --- a/libraries/Zigbee/src/ZigbeeEP.cpp +++ b/libraries/Zigbee/src/ZigbeeEP.cpp @@ -7,6 +7,8 @@ #include "esp_zigbee_cluster.h" #include "zcl/esp_zigbee_zcl_power_config.h" +#define ZB_CMD_TIMEOUT 10000 // 10 seconds + bool ZigbeeEP::_is_bound = false; bool ZigbeeEP::_allow_multiple_binding = false; @@ -112,13 +114,20 @@ void ZigbeeEP::reportBatteryPercentage() { log_v("Battery percentage reported"); } -char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr) { +char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer Manufacture Name & Model Identifier */ esp_zb_zcl_read_attr_cmd_t read_req; - read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + + if (short_addr != 0) { + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + } else { + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + } + read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; - read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_BASIC; uint16_t attributes[] = { @@ -130,22 +139,31 @@ char *ZigbeeEP::readManufacturer(uint8_t endpoint, uint16_t short_addr) { // clear read manufacturer _read_manufacturer = nullptr; + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); //Wait for response or timeout - if (xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE) { + if (xSemaphoreTake(lock, ZB_CMD_TIMEOUT) != pdTRUE) { log_e("Error while reading manufacturer"); } return _read_manufacturer; } -char *ZigbeeEP::readModel(uint8_t endpoint, uint16_t short_addr) { +char *ZigbeeEP::readModel(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr) { /* Read peer Manufacture Name & Model Identifier */ esp_zb_zcl_read_attr_cmd_t read_req; - read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + + if (short_addr != 0) { + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; + read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; + } else { + read_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + memcpy(read_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + } + read_req.zcl_basic_cmd.src_endpoint = _endpoint; read_req.zcl_basic_cmd.dst_endpoint = endpoint; - read_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_BASIC; uint16_t attributes[] = { @@ -157,11 +175,12 @@ char *ZigbeeEP::readModel(uint8_t endpoint, uint16_t short_addr) { // clear read model _read_model = nullptr; + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_read_attr_cmd_req(&read_req); + esp_zb_lock_release(); //Wait for response or timeout - //Semaphore take - if (xSemaphoreTake(lock, portMAX_DELAY) != pdTRUE) { + if (xSemaphoreTake(lock, ZB_CMD_TIMEOUT) != pdTRUE) { log_e("Error while reading model"); } return _read_model; @@ -171,8 +190,23 @@ void ZigbeeEP::printBoundDevices() { log_i("Bound devices:"); for ([[maybe_unused]] const auto &device : _bound_devices) { - log_i("Device on endpoint %d, short address: 0x%x", device->endpoint, device->short_addr); - print_ieee_addr(device->ieee_addr); + log_i( + "Device on endpoint %d, short address: 0x%x, ieee address: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", device->endpoint, device->short_addr, + device->ieee_addr[7], device->ieee_addr[6], device->ieee_addr[5], device->ieee_addr[4], device->ieee_addr[3], device->ieee_addr[2], device->ieee_addr[1], + device->ieee_addr[0] + ); + } +} + +void ZigbeeEP::printBoundDevices(Print &print) { + print.println("Bound devices:"); + for ([[maybe_unused]] + const auto &device : _bound_devices) { + print.printf( + "Device on endpoint %d, short address: 0x%x, ieee address: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\r\n", device->endpoint, device->short_addr, + device->ieee_addr[7], device->ieee_addr[6], device->ieee_addr[5], device->ieee_addr[4], device->ieee_addr[3], device->ieee_addr[2], device->ieee_addr[1], + device->ieee_addr[0] + ); } } diff --git a/libraries/Zigbee/src/ZigbeeEP.h b/libraries/Zigbee/src/ZigbeeEP.h index 21ed7706d31..522c84620ff 100644 --- a/libraries/Zigbee/src/ZigbeeEP.h +++ b/libraries/Zigbee/src/ZigbeeEP.h @@ -9,8 +9,6 @@ /* Useful defines */ #define ZB_ARRAY_LENTH(arr) (sizeof(arr) / sizeof(arr[0])) -#define print_ieee_addr(addr) \ - log_i("IEEE Address: %02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", addr[0], addr[1], addr[2], addr[3], addr[4], addr[5], addr[6], addr[7]) #define XYZ_TO_RGB(X, Y, Z, r, g, b) \ { \ r = (float)(3.240479 * (X) - 1.537150 * (Y) - 0.498535 * (Z)); \ @@ -69,6 +67,8 @@ class ZigbeeEP { } void printBoundDevices(); + void printBoundDevices(Print &print); + std::list getBoundDevices() const { return _bound_devices; } @@ -87,8 +87,8 @@ class ZigbeeEP { void reportBatteryPercentage(); // Methods to read manufacturer and model name from selected endpoint and short address - char *readManufacturer(uint8_t endpoint, uint16_t short_addr); - char *readModel(uint8_t endpoint, uint16_t short_addr); + char *readManufacturer(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr); + char *readModel(uint8_t endpoint, uint16_t short_addr, esp_zb_ieee_addr_t ieee_addr); bool epAllowMultipleBinding() { return _allow_multiple_binding; @@ -108,7 +108,6 @@ class ZigbeeEP { } private: - static bool _allow_multiple_binding; char *_read_manufacturer; char *_read_model; void (*_on_identify)(uint16_t time); @@ -119,10 +118,15 @@ class ZigbeeEP { esp_zb_endpoint_config_t _ep_config; esp_zb_cluster_list_t *_cluster_list; static bool _is_bound; + static bool _allow_multiple_binding; std::list _bound_devices; SemaphoreHandle_t lock; zb_power_source_t _power_source; + void addBoundDevice(zb_device_params_t *device) { + _bound_devices.push_back(device); + _is_bound = true; + } friend class ZigbeeCore; }; diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp index 8e72728f6a2..4fd492a5477 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp @@ -98,10 +98,10 @@ void ZigbeeColorDimmerSwitch::lightToggle() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command"); - //esp_zb_lock_acquire(portMAX_DELAY); + log_v("Sending 'light toggle' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); - //esp_zb_lock_release(); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -114,7 +114,7 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command to group address 0x%x", group_addr); + log_v("Sending 'light toggle' command to group address 0x%x", group_addr); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -131,7 +131,27 @@ void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light toggle' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeColorDimmerSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light toggle' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -146,7 +166,7 @@ void ZigbeeColorDimmerSwitch::lightOn() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command"); + log_v("Sending 'light on' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -162,7 +182,7 @@ void ZigbeeColorDimmerSwitch::lightOn(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command to group address 0x%x", group_addr); + log_v("Sending 'light on' command to group address 0x%x", group_addr); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -179,7 +199,27 @@ void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light on' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeColorDimmerSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light on' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -194,7 +234,7 @@ void ZigbeeColorDimmerSwitch::lightOff() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command"); + log_v("Sending 'light off' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -210,7 +250,7 @@ void ZigbeeColorDimmerSwitch::lightOff(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command to group address 0x%x", group_addr); + log_v("Sending 'light off' command to group address 0x%x", group_addr); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -227,7 +267,27 @@ void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light off' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeColorDimmerSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light off' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -243,7 +303,7 @@ void ZigbeeColorDimmerSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effe cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.effect_id = effect_id; cmd_req.effect_variant = effect_variant; - log_i("Sending 'light off with effect' command"); + log_v("Sending 'light off with effect' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_off_with_effect_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -257,7 +317,7 @@ void ZigbeeColorDimmerSwitch::lightOnWithSceneRecall() { esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req; cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; - log_i("Sending 'light on with scene recall' command"); + log_v("Sending 'light on with scene recall' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -274,7 +334,7 @@ void ZigbeeColorDimmerSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16 cmd_req.on_off_control = on_off_control; //TODO: Test how it works, then maybe change API cmd_req.on_time = time_on; cmd_req.off_wait_time = time_off; - log_i("Sending 'light on with time off' command"); + log_v("Sending 'light on with time off' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_on_with_timed_off_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -290,7 +350,7 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level) { cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.level = level; cmd_req.transition_time = 0xffff; - log_i("Sending 'set light level' command"); + log_v("Sending 'set light level' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_level_move_to_level_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -307,7 +367,7 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint16_t group_addr) cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.level = level; cmd_req.transition_time = 0xffff; - log_i("Sending 'set light level' command to group address 0x%x", group_addr); + log_v("Sending 'set light level' command to group address 0x%x", group_addr); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_level_move_to_level_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -325,7 +385,28 @@ void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, uin cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.level = level; cmd_req.transition_time = 0xffff; - log_i("Sending 'set light level' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'set light level' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_level_move_to_level_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeColorDimmerSwitch::setLightLevel(uint8_t level, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_move_to_level_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + cmd_req.level = level; + cmd_req.transition_time = 0xffff; + log_v( + "Sending 'set light level' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], + ieee_addr[5], ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_level_move_to_level_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -346,7 +427,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t cmd_req.color_x = color_x; cmd_req.color_y = color_y; cmd_req.transition_time = 0; - log_i("Sending 'set light color' command"); + log_v("Sending 'set light color' command"); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_color_move_to_color_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -368,7 +449,7 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t cmd_req.color_x = color_x; cmd_req.color_y = color_y; cmd_req.transition_time = 0; - log_i("Sending 'set light color' command to group address 0x%x", group_addr); + log_v("Sending 'set light color' command to group address 0x%x", group_addr); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_color_move_to_color_cmd_req(&cmd_req); esp_zb_lock_release(); @@ -391,7 +472,33 @@ void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t cmd_req.color_x = color_x; cmd_req.color_y = color_y; cmd_req.transition_time = 0; - log_i("Sending 'set light color' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'set light color' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_color_move_to_color_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeColorDimmerSwitch::setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + //Convert RGB to XY + uint16_t color_x, color_y; + calculateXY(red, green, blue, color_x, color_y); + + esp_zb_zcl_color_move_to_color_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + cmd_req.color_x = color_x; + cmd_req.color_y = color_y; + cmd_req.transition_time = 0; + log_v( + "Sending 'set light color' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], + ieee_addr[5], ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_color_move_to_color_cmd_req(&cmd_req); esp_zb_lock_release(); diff --git a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h index 9b623d2f8ef..8e2a4d9e1a3 100644 --- a/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.h @@ -18,14 +18,17 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP { void lightToggle(); void lightToggle(uint16_t group_addr); void lightToggle(uint8_t endpoint, uint16_t short_addr); + void lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOn(); void lightOn(uint16_t group_addr); void lightOn(uint8_t endpoint, uint16_t short_addr); + void lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOff(); void lightOff(uint16_t group_addr); void lightOff(uint8_t endpoint, uint16_t short_addr); + void lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant); void lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off); @@ -34,10 +37,12 @@ class ZigbeeColorDimmerSwitch : public ZigbeeEP { void setLightLevel(uint8_t level); void setLightLevel(uint8_t level, uint16_t group_addr); void setLightLevel(uint8_t level, uint8_t endpoint, uint16_t short_addr); + void setLightLevel(uint8_t level, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void setLightColor(uint8_t red, uint8_t green, uint8_t blue); void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint16_t group_addr); void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, uint16_t short_addr); + void setLightColor(uint8_t red, uint8_t green, uint8_t blue, uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); private: // save instance of the class in order to use it in static functions diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp index 16af8008a8a..f6b36d7f0d4 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.cpp @@ -59,7 +59,6 @@ void ZigbeeSwitch::findEndpoint(esp_zb_zdo_match_desc_req_param_t *cmd_req) { .num_out_clusters = 1, .cluster_list = cluster_list, }; - esp_zb_zdo_match_cluster(&on_off_req, findCb, &_endpoint); } @@ -70,8 +69,10 @@ void ZigbeeSwitch::lightToggle() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command"); + log_v("Sending 'light toggle' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -84,8 +85,10 @@ void ZigbeeSwitch::lightToggle(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command to group address 0x%x", group_addr); + log_v("Sending 'light toggle' command to group address 0x%x", group_addr); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -99,8 +102,30 @@ void ZigbeeSwitch::lightToggle(uint8_t endpoint, uint16_t short_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; - log_i("Sending 'light toggle' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light toggle' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeSwitch::lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_TOGGLE_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light toggle' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -112,8 +137,10 @@ void ZigbeeSwitch::lightOn() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command"); + log_v("Sending 'light on' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -126,8 +153,10 @@ void ZigbeeSwitch::lightOn(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command to group address 0x%x", group_addr); + log_v("Sending 'light on' command to group address 0x%x", group_addr); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -141,8 +170,30 @@ void ZigbeeSwitch::lightOn(uint8_t endpoint, uint16_t short_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; - log_i("Sending 'light on' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light on' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeSwitch::lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_ON_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light on' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -154,8 +205,10 @@ void ZigbeeSwitch::lightOff() { cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command"); + log_v("Sending 'light off' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -168,8 +221,10 @@ void ZigbeeSwitch::lightOff(uint16_t group_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = group_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_GROUP_ENDP_NOT_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command to group address 0x%x", group_addr); + log_v("Sending 'light off' command to group address 0x%x", group_addr); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -183,8 +238,30 @@ void ZigbeeSwitch::lightOff(uint8_t endpoint, uint16_t short_addr) { cmd_req.zcl_basic_cmd.dst_addr_u.addr_short = short_addr; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT; cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; - log_i("Sending 'light off' command to endpoint %d, address 0x%x", endpoint, short_addr); + log_v("Sending 'light off' command to endpoint %d, address 0x%x", endpoint, short_addr); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); + } else { + log_e("Light not bound"); + } +} + +void ZigbeeSwitch::lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr) { + if (_is_bound) { + esp_zb_zcl_on_off_cmd_t cmd_req; + cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; + cmd_req.zcl_basic_cmd.dst_endpoint = endpoint; + cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_64_ENDP_PRESENT; + cmd_req.on_off_cmd_id = ESP_ZB_ZCL_CMD_ON_OFF_OFF_ID; + memcpy(cmd_req.zcl_basic_cmd.dst_addr_u.addr_long, ieee_addr, sizeof(esp_zb_ieee_addr_t)); + log_v( + "Sending 'light off' command to endpoint %d, ieee address %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", endpoint, ieee_addr[7], ieee_addr[6], ieee_addr[5], + ieee_addr[4], ieee_addr[3], ieee_addr[2], ieee_addr[1], ieee_addr[0] + ); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -197,8 +274,10 @@ void ZigbeeSwitch::lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant) cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; cmd_req.effect_id = effect_id; cmd_req.effect_variant = effect_variant; - log_i("Sending 'light off with effect' command"); + log_v("Sending 'light off with effect' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_off_with_effect_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -209,8 +288,10 @@ void ZigbeeSwitch::lightOnWithSceneRecall() { esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_t cmd_req; cmd_req.zcl_basic_cmd.src_endpoint = _endpoint; cmd_req.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; - log_i("Sending 'light on with scene recall' command"); + log_v("Sending 'light on with scene recall' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_on_with_recall_global_scene_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } @@ -223,8 +304,10 @@ void ZigbeeSwitch::lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, cmd_req.on_off_control = on_off_control; //TODO: Test how it works, then maybe change API cmd_req.on_time = time_on; cmd_req.off_wait_time = time_off; - log_i("Sending 'light on with time off' command"); + log_v("Sending 'light on with time off' command"); + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_on_off_on_with_timed_off_cmd_req(&cmd_req); + esp_zb_lock_release(); } else { log_e("Light not bound"); } diff --git a/libraries/Zigbee/src/ep/ZigbeeSwitch.h b/libraries/Zigbee/src/ep/ZigbeeSwitch.h index a8d892f37e9..62264641378 100644 --- a/libraries/Zigbee/src/ep/ZigbeeSwitch.h +++ b/libraries/Zigbee/src/ep/ZigbeeSwitch.h @@ -18,14 +18,17 @@ class ZigbeeSwitch : public ZigbeeEP { void lightToggle(); void lightToggle(uint16_t group_addr); void lightToggle(uint8_t endpoint, uint16_t short_addr); + void lightToggle(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOn(); void lightOn(uint16_t group_addr); void lightOn(uint8_t endpoint, uint16_t short_addr); + void lightOn(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOff(); void lightOff(uint16_t group_addr); void lightOff(uint8_t endpoint, uint16_t short_addr); + void lightOff(uint8_t endpoint, esp_zb_ieee_addr_t ieee_addr); void lightOffWithEffect(uint8_t effect_id, uint8_t effect_variant); void lightOnWithTimedOff(uint8_t on_off_control, uint16_t time_on, uint16_t time_off); diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp index 718c892f638..3dfac0489dd 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp @@ -60,7 +60,9 @@ void ZigbeeTempSensor::setReporting(uint16_t min_interval, uint16_t max_interval }, .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, }; + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_update_reporting_info(&reporting_info); + esp_zb_lock_release(); } void ZigbeeTempSensor::setTemperature(float temperature) { @@ -158,7 +160,9 @@ void ZigbeeTempSensor::setHumidityReporting(uint16_t min_interval, uint16_t max_ }, .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, }; + esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_update_reporting_info(&reporting_info); + esp_zb_lock_release(); } #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED From 76d1f9e64385d61df2b444ed23d8b47881193988 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 9 Dec 2024 10:00:41 -0300 Subject: [PATCH 100/179] ci(pre-commit): Bump hooks versions and fix leftover files (#10680) * update(hooks): Bump pre-commit hooks versions * fix(formatting): Fix python script formatting * fix(formatting): Fix leftover files on protected folders --- .github/ISSUE_TEMPLATE/Issue-report.yml | 24 +- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/scripts/merge_packages.py | 78 +++--- .github/workflows/allboards.yml | 18 +- .github/workflows/boards.yml | 14 +- .github/workflows/build_py_tools.yml | 42 ++-- .github/workflows/dangerjs.yml | 20 +- .github/workflows/docs_build.yml | 57 +++-- .github/workflows/docs_deploy.yml | 80 +++--- .github/workflows/gh-pages.yml | 21 +- .github/workflows/lib.yml | 14 +- .github/workflows/pre-commit.yml | 2 +- .github/workflows/publishlib.yml | 2 +- .github/workflows/publishsizes-2.x.yml | 7 +- .github/workflows/publishsizes.yml | 4 +- .github/workflows/push.yml | 227 +++++++++--------- .github/workflows/release.yml | 24 +- .github/workflows/tests.yml | 32 +-- .github/workflows/tests_build.yml | 4 +- .github/workflows/tests_hw.yml | 4 +- .github/workflows/tests_qemu.yml | 4 +- .github/workflows/tests_results.yml | 16 +- .github/workflows/tests_wokwi.yml | 4 +- .pre-commit-config.yaml | 8 +- .../MatterEndpoints/MatterGenericSwitch.cpp | 2 +- .../performance/psramspeed/test_psramspeed.py | 2 +- tests/performance/ramspeed/test_ramspeed.py | 2 +- tools/gen_esp32part.py | 2 +- 28 files changed, 363 insertions(+), 353 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/Issue-report.yml b/.github/ISSUE_TEMPLATE/Issue-report.yml index d5b756085c7..d1b8c166b9a 100644 --- a/.github/ISSUE_TEMPLATE/Issue-report.yml +++ b/.github/ISSUE_TEMPLATE/Issue-report.yml @@ -5,7 +5,7 @@ body: - type: markdown attributes: value: | - * Before reporting a new issue please check and search in [List of existing issues](https://github.com/espressif/arduino-esp32/issues?q=is%3Aissue) + * Before reporting a new issue please check and search in [List of existing issues](https://github.com/espressif/arduino-esp32/issues?q=is%3Aissue) * Please check [Online Documentation](https://docs.espressif.com/projects/arduino-esp32/en/latest/index.html) * Take a look on [Troubleshooting guide](https://docs.espressif.com/projects/arduino-esp32/en/latest/troubleshooting.html) * If still experiencing the issue, please provide as many details as possible below about your hardware, computer setup and code. @@ -24,7 +24,7 @@ body: description: What development board or other hardware is the chip attached to? placeholder: ex. DevKitC, plain module on breadboard, etc. If your hardware is custom or unusual, please attach a photo. validations: - required: true + required: true - type: textarea id: other-hw attributes: @@ -60,7 +60,7 @@ body: - v2.0.8 - v2.0.7 - v2.0.6 - - v2.0.5 + - v2.0.5 - v2.0.4 - v2.0.3 - v2.0.2 @@ -77,7 +77,7 @@ body: description: What IDE are you using? placeholder: eg. Arduino IDE, PlatformIO, Sloeber... validations: - required: true + required: true - type: input id: os attributes: @@ -95,13 +95,13 @@ body: validations: required: true - type: dropdown - id: PSRAM + id: PSRAM attributes: label: PSRAM enabled description: Is PSRAM enabled? options: - - 'yes' - - 'no' + - "yes" + - "no" validations: required: true - type: input @@ -116,8 +116,8 @@ body: id: Description attributes: label: Description - description: Please describe your problem here and expected behaviour - placeholder: ex. Can't connect/weird behaviour/wrong function/missing parameter.. + description: Please describe your problem here and expected behavior + placeholder: ex. Can't connect/weird behavior/wrong function/missing parameter.. validations: required: true - type: textarea @@ -128,7 +128,7 @@ body: placeholder: ex. Related part of the code to replicate the issue render: cpp validations: - required: true + required: true - type: textarea id: Debug attributes: @@ -137,11 +137,11 @@ body: placeholder: Enable Core debug level - Debug on tools menu of Arduino IDE, then put the serial output here. render: plain validations: - required: true + required: true - type: textarea id: other-remarks attributes: - label: Other Steps to Reproduce + label: Other Steps to Reproduce description: Is there any other information you can think of which will help us reproduce this problem? Any additional info can be added as well. placeholder: ex. I also tried on other OS, HW...it works correctly on that setup. - type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2a9b0ef82e0..03b3a76df1e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,4 +5,4 @@ contact_links: about: Community channel for questions and help - name: ESP32 Forum - Arduino url: https://esp32.com/viewforum.php?f=19 - about: Official Forum for questions \ No newline at end of file + about: Official Forum for questions diff --git a/.github/scripts/merge_packages.py b/.github/scripts/merge_packages.py index 96999c17fd7..7e4f47ca8b3 100755 --- a/.github/scripts/merge_packages.py +++ b/.github/scripts/merge_packages.py @@ -1,50 +1,58 @@ #!/usr/bin/env python + # This script merges two Arduino Board Manager package json files. # Usage: # python merge_packages.py package_esp8266com_index.json version/new/package_esp8266com_index.json # Written by Ivan Grokhotkov, 2015 # + from __future__ import print_function -#from distutils.version import LooseVersion + +# from distutils.version import LooseVersion from packaging.version import Version import re import json import sys + def load_package(filename): - pkg = json.load(open(filename))['packages'][0] - print("Loaded package {0} from {1}".format(pkg['name'], filename), file=sys.stderr) - print("{0} platform(s), {1} tools".format(len(pkg['platforms']), len(pkg['tools'])), file=sys.stderr) + pkg = json.load(open(filename))["packages"][0] + print("Loaded package {0} from {1}".format(pkg["name"], filename), file=sys.stderr) + print("{0} platform(s), {1} tools".format(len(pkg["platforms"]), len(pkg["tools"])), file=sys.stderr) return pkg + def merge_objects(versions, obj): for o in obj: - name = o['name'].encode('ascii') - ver = o['version'].encode('ascii') - if not name in versions: + name = o["name"].encode("ascii") + ver = o["version"].encode("ascii") + if name not in versions: print("found new object, {0}".format(name), file=sys.stderr) versions[name] = {} - if not ver in versions[name]: + if ver not in versions[name]: print("found new version {0} for object {1}".format(ver, name), file=sys.stderr) versions[name][ver] = o return versions -# Normalize ESP release version string (x.x.x) by adding '-rc' (x.x.x-rc9223372036854775807) to ensure having REL above any RC -# Dummy approach, functional anyway for current ESP package versioning (unlike NormalizedVersion/LooseVersion/StrictVersion & similar crap) + +# Normalize ESP release version string (x.x.x) by adding '-rc' (x.x.x-rc9223372036854775807) +# to ensure having REL above any RC +# Dummy approach, functional anyway for current ESP package versioning +# (unlike NormalizedVersion/LooseVersion/StrictVersion & similar crap) def pkgVersionNormalized(versionString): verStr = str(versionString) - verParts = re.split('\.|-rc|-alpha', verStr, flags=re.IGNORECASE) - + verParts = re.split(r"\.|-rc|-alpha", verStr, flags=re.IGNORECASE) + if len(verParts) == 3: - if (sys.version_info > (3, 0)): # Python 3 - verStr = str(versionString) + '-rc' + str(sys.maxsize) - else: # Python 2 - verStr = str(versionString) + '-rc' + str(sys.maxint) - + if sys.version_info > (3, 0): # Python 3 + verStr = str(versionString) + "-rc" + str(sys.maxsize) + else: # Python 2 + verStr = str(versionString) + "-rc" + str(sys.maxint) + elif len(verParts) != 4: print("pkgVersionNormalized WARNING: unexpected version format: {0})".format(verStr), file=sys.stderr) - + return verStr @@ -54,31 +62,37 @@ def main(args): return 1 tools = {} - platforms = {} + platforms = {} pkg1 = load_package(args[1]) - tools = merge_objects(tools, pkg1['tools']); - platforms = merge_objects(platforms, pkg1['platforms']); + tools = merge_objects(tools, pkg1["tools"]) + platforms = merge_objects(platforms, pkg1["platforms"]) pkg2 = load_package(args[2]) - tools = merge_objects(tools, pkg2['tools']); - platforms = merge_objects(platforms, pkg2['platforms']); + tools = merge_objects(tools, pkg2["tools"]) + platforms = merge_objects(platforms, pkg2["platforms"]) - pkg1['tools'] = [] - pkg1['platforms'] = [] + pkg1["tools"] = [] + pkg1["platforms"] = [] for name in tools: for version in tools[name]: print("Adding tool {0}-{1}".format(name, version), file=sys.stderr) - pkg1['tools'].append(tools[name][version]) + pkg1["tools"].append(tools[name][version]) for name in platforms: for version in platforms[name]: print("Adding platform {0}-{1}".format(name, version), file=sys.stderr) - pkg1['platforms'].append(platforms[name][version]) - - #pkg1['platforms'] = sorted(pkg1['platforms'], key=lambda k: LooseVersion(pkgVersionNormalized(k['version'])), reverse=True) - pkg1['platforms'] = sorted(pkg1['platforms'], key=lambda k: Version(pkgVersionNormalized(k['version'])), reverse=True) + pkg1["platforms"].append(platforms[name][version]) + + # pkg1["platforms"] = sorted( + # pkg1["platforms"], key=lambda k: LooseVersion(pkgVersionNormalized(k["version"])), reverse=True + # ) + + pkg1["platforms"] = sorted( + pkg1["platforms"], key=lambda k: Version(pkgVersionNormalized(k["version"])), reverse=True + ) + + json.dump({"packages": [pkg1]}, sys.stdout, indent=2) - json.dump({'packages':[pkg1]}, sys.stdout, indent=2) -if __name__ == '__main__': +if __name__ == "__main__": sys.exit(main(sys.argv)) diff --git a/.github/workflows/allboards.yml b/.github/workflows/allboards.yml index 4a2d4349ac3..8c4dadcd03e 100644 --- a/.github/workflows/allboards.yml +++ b/.github/workflows/allboards.yml @@ -1,6 +1,6 @@ name: Boards Test - Remote trigger -# The workflow will run on remote dispath with event-type set to "test-boards" +# The workflow will run on remote dispatch with event-type set to "test-boards" on: repository_dispatch: types: [test-boards] @@ -20,8 +20,7 @@ jobs: ref: ${{ github.event.client_payload.branch }} - name: Get boards fqbns - run: - bash .github/scripts/find_all_boards.sh + run: bash .github/scripts/find_all_boards.sh setup-chunks: needs: find-boards @@ -43,8 +42,7 @@ jobs: - id: set-test-chunks name: Set Chunks - run: - echo "test-chunks<> $GITHUB_OUTPUT + run: echo "test-chunks<> $GITHUB_OUTPUT echo "$( jq -nc '${{ needs.find-boards.outputs.fqbns }} | [_nwise( ${{ needs.find-boards.outputs.board-count }}/15 | ceil)]')" >> $GITHUB_OUTPUT @@ -61,7 +59,7 @@ jobs: strategy: fail-fast: false - matrix: + matrix: chunk: ${{ fromJSON(needs.setup-chunks.outputs['test-chunks']) }} steps: @@ -71,9 +69,8 @@ jobs: ref: ${{ github.event.client_payload.branch }} - name: Echo FQBNS to file - run: - echo "$FQBN" > fqbns.json - env: + run: echo "$FQBN" > fqbns.json + env: FQBN: ${{ toJSON(matrix.chunk) }} - name: Compile sketch @@ -88,5 +85,4 @@ jobs: enable-warnings-report: false cli-compile-flags: | - --warnings="all" - sketch-paths: - "- ./libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino" + sketch-paths: "- ./libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino" diff --git a/.github/workflows/boards.yml b/.github/workflows/boards.yml index a309e4ed2ce..a51c794cfb4 100644 --- a/.github/workflows/boards.yml +++ b/.github/workflows/boards.yml @@ -4,9 +4,9 @@ name: Boards Test on: pull_request: paths: - - 'boards.txt' - - 'libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino' - - '.github/workflows/boards.yml' + - "boards.txt" + - "libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino" + - ".github/workflows/boards.yml" env: # It's convenient to set variables for values used multiple times in the workflow @@ -28,8 +28,7 @@ jobs: uses: dcarbone/install-jq-action@v1.0.1 - name: Get board name - run: - bash .github/scripts/find_new_boards.sh ${{ github.repository }} ${{github.base_ref}} + run: bash .github/scripts/find_new_boards.sh ${{ github.repository }} ${{github.base_ref}} test-boards: needs: find-boards @@ -72,7 +71,7 @@ jobs: ./tools/openocd-esp32 ./tools/riscv32-* ./tools/xtensa-* - + - name: Compile sketch uses: P-R-O-C-H-Y/compile-sketches@main with: @@ -85,6 +84,5 @@ jobs: cli-compile-flags: | - --warnings="all" exit-on-fail: true - sketch-paths: - "- ./libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino" + sketch-paths: "- ./libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino" verbose: true diff --git a/.github/workflows/build_py_tools.yml b/.github/workflows/build_py_tools.yml index 37742d15224..48e7f2c82d3 100644 --- a/.github/workflows/build_py_tools.yml +++ b/.github/workflows/build_py_tools.yml @@ -3,11 +3,11 @@ name: Build Python Tools on: pull_request: paths: - - '.github/workflows/build_py_tools.yml' - - 'tools/get.py' - - 'tools/espota.py' - - 'tools/gen_esp32part.py' - - 'tools/gen_insights_package.py' + - ".github/workflows/build_py_tools.yml" + - "tools/get.py" + - "tools/espota.py" + - "tools/gen_esp32part.py" + - "tools/gen_insights_package.py" jobs: find-changed-tools: @@ -33,8 +33,8 @@ jobs: uses: tj-actions/changed-files@v41 id: verify-changed-files with: - fetch_depth: '2' - since_last_remote_commit: 'true' + fetch_depth: "2" + since_last_remote_commit: "true" files: | tools/get.py tools/espota.py @@ -57,20 +57,20 @@ jobs: matrix: os: [windows-latest, macos-latest, ubuntu-20.04, ARM] include: - - os: windows-latest - TARGET: win64 - EXTEN: .exe - SEPARATOR: ';' - - os: macos-latest - TARGET: macos - SEPARATOR: ':' - - os: ubuntu-20.04 - TARGET: linux-amd64 - SEPARATOR: ':' - - os: ARM - CONTAINER: python:3.8-bullseye - TARGET: arm - SEPARATOR: ':' + - os: windows-latest + TARGET: win64 + EXTEN: .exe + SEPARATOR: ";" + - os: macos-latest + TARGET: macos + SEPARATOR: ":" + - os: ubuntu-20.04 + TARGET: linux-amd64 + SEPARATOR: ":" + - os: ARM + CONTAINER: python:3.8-bullseye + TARGET: arm + SEPARATOR: ":" container: ${{ matrix.CONTAINER }} # use python container on ARM env: DISTPATH: pytools-${{ matrix.TARGET }} diff --git a/.github/workflows/dangerjs.yml b/.github/workflows/dangerjs.yml index 75c046731f3..f4bdad3c16e 100644 --- a/.github/workflows/dangerjs.yml +++ b/.github/workflows/dangerjs.yml @@ -11,14 +11,14 @@ jobs: pull-request-style-linter: runs-on: ubuntu-latest steps: - - name: Check out PR head - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha }} + - name: Check out PR head + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha }} - - name: DangerJS pull request linter - uses: espressif/shared-github-dangerjs@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - rule-max-commits: 'false' - commit-messages-min-summary-length: '10' + - name: DangerJS pull request linter + uses: espressif/shared-github-dangerjs@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + rule-max-commits: "false" + commit-messages-min-summary-length: "10" diff --git a/.github/workflows/docs_build.yml b/.github/workflows/docs_build.yml index ffa5a0b4580..d2f12e1f7b5 100644 --- a/.github/workflows/docs_build.yml +++ b/.github/workflows/docs_build.yml @@ -3,18 +3,17 @@ name: Documentation Build and Deploy CI on: push: branches: - - master - - release/v2.x + - master + - release/v2.x paths: - - 'docs/**' - - '.github/workflows/docs_build.yml' + - "docs/**" + - ".github/workflows/docs_build.yml" pull_request: paths: - - 'docs/**' - - '.github/workflows/docs_build.yml' + - "docs/**" + - ".github/workflows/docs_build.yml" jobs: - build-docs: name: Build ESP-Docs runs-on: ubuntu-22.04 @@ -22,25 +21,25 @@ jobs: run: shell: bash steps: - - uses: actions/checkout@v4 - with: - submodules: true - - uses: actions/setup-python@v5 - with: - cache-dependency-path: docs/requirements.txt - cache: 'pip' - python-version: '3.10' - - name: Build - run: | - sudo apt update - sudo apt install python3-pip python3-setuptools - # GitHub CI installs pip3 and setuptools outside the path. - # Update the path to include them and run. - cd ./docs - PATH=/home/runner/.local/bin:$PATH pip3 install -r requirements.txt --prefer-binary - PATH=/home/runner/.local/bin:$PATH SPHINXOPTS="-W" build-docs -l en - - name: Archive Docs - uses: actions/upload-artifact@v4 - with: - name: docs - path: docs + - uses: actions/checkout@v4 + with: + submodules: true + - uses: actions/setup-python@v5 + with: + cache-dependency-path: docs/requirements.txt + cache: "pip" + python-version: "3.10" + - name: Build + run: | + sudo apt update + sudo apt install python3-pip python3-setuptools + # GitHub CI installs pip3 and setuptools outside the path. + # Update the path to include them and run. + cd ./docs + PATH=/home/runner/.local/bin:$PATH pip3 install -r requirements.txt --prefer-binary + PATH=/home/runner/.local/bin:$PATH SPHINXOPTS="-W" build-docs -l en + - name: Archive Docs + uses: actions/upload-artifact@v4 + with: + name: docs + path: docs diff --git a/.github/workflows/docs_deploy.yml b/.github/workflows/docs_deploy.yml index 5393f7e8a20..b558fd21aa5 100644 --- a/.github/workflows/docs_deploy.yml +++ b/.github/workflows/docs_deploy.yml @@ -7,11 +7,11 @@ on: - completed push: branches: - - release/v2.x - - master + - release/v2.x + - master paths: - - 'docs/**' - - '.github/workflows/docs_deploy.yml' + - "docs/**" + - ".github/workflows/docs_deploy.yml" jobs: deploy-prod-docs: @@ -21,39 +21,39 @@ jobs: run: shell: bash steps: - - name: Check if release workflow is successful - if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion != 'success' }} - run: | - echo "Release workflow failed. Exiting..." - exit 1 - - uses: actions/checkout@v4 - with: - submodules: true - - uses: actions/setup-python@v5 - with: - cache-dependency-path: docs/requirements.txt - cache: 'pip' - python-version: '3.10' - - name: Deploy Documentation - env: - # Deploy to production server - # DOCS_BUILD_DIR: "./docs/_build/" - DOCS_DEPLOY_PRIVATEKEY: ${{ secrets.DOCS_KEY }} - DOCS_DEPLOY_PATH: ${{ secrets.DOCS_PATH }} - DOCS_DEPLOY_SERVER: ${{ secrets.DOCS_SERVER }} - DOCS_DEPLOY_SERVER_USER: ${{ secrets.DOCS_USER }} - DOCS_DEPLOY_URL_BASE: ${{ secrets.DOCS_URL }} - run: | - sudo apt update - sudo apt install python3-pip python3-setuptools - source ./docs/utils.sh - add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER - export GIT_VER=$(git describe --always) - echo "PIP install requirements..." - pip3 install --user -r ./docs/requirements.txt - echo "Building the Docs..." - cd ./docs && build-docs -l en - echo "Deploy the Docs..." - export DOCS_BUILD_DIR=$GITHUB_WORKSPACE/docs/ - cd $GITHUB_WORKSPACE/docs - deploy-docs + - name: Check if release workflow is successful + if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion != 'success' }} + run: | + echo "Release workflow failed. Exiting..." + exit 1 + - uses: actions/checkout@v4 + with: + submodules: true + - uses: actions/setup-python@v5 + with: + cache-dependency-path: docs/requirements.txt + cache: "pip" + python-version: "3.10" + - name: Deploy Documentation + env: + # Deploy to production server + # DOCS_BUILD_DIR: "./docs/_build/" + DOCS_DEPLOY_PRIVATEKEY: ${{ secrets.DOCS_KEY }} + DOCS_DEPLOY_PATH: ${{ secrets.DOCS_PATH }} + DOCS_DEPLOY_SERVER: ${{ secrets.DOCS_SERVER }} + DOCS_DEPLOY_SERVER_USER: ${{ secrets.DOCS_USER }} + DOCS_DEPLOY_URL_BASE: ${{ secrets.DOCS_URL }} + run: | + sudo apt update + sudo apt install python3-pip python3-setuptools + source ./docs/utils.sh + add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER + export GIT_VER=$(git describe --always) + echo "PIP install requirements..." + pip3 install --user -r ./docs/requirements.txt + echo "Building the Docs..." + cd ./docs && build-docs -l en + echo "Deploy the Docs..." + export DOCS_BUILD_DIR=$GITHUB_WORKSPACE/docs/ + cd $GITHUB_WORKSPACE/docs + deploy-docs diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 5d8e1794a8a..47480e8239a 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -3,21 +3,20 @@ name: GitHub Pages CI on: push: branches: - - master - - pages + - master + - pages paths: - - 'README.md' - - '.github/scripts/on-pages.sh' - - '.github/workflows/gh-pages.yml' + - "README.md" + - ".github/scripts/on-pages.sh" + - ".github/workflows/gh-pages.yml" jobs: - build-pages: name: Build GitHub Pages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: Copy Files - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: bash ./.github/scripts/on-pages.sh + - uses: actions/checkout@v4 + - name: Copy Files + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: bash ./.github/scripts/on-pages.sh diff --git a/.github/workflows/lib.yml b/.github/workflows/lib.yml index 7a7b863095d..1197308c921 100644 --- a/.github/workflows/lib.yml +++ b/.github/workflows/lib.yml @@ -7,7 +7,7 @@ on: # Schedule weekly builds on every Sunday at 4 am schedule: - - cron: '0 4 * * SUN' + - cron: "0 4 * * SUN" concurrency: group: libs-${{ github.event.pull_request.number || github.ref }} @@ -27,7 +27,6 @@ jobs: contains(github.event.pull_request.labels.*.name, 'lib_test') || (github.event_name == 'schedule' && github.repository == 'espressif/arduino-esp32') runs-on: ubuntu-latest - env: REPOSITORY: | - source-path: '.' @@ -60,7 +59,6 @@ jobs: - target: esp32p4 fqbn: espressif:esp32:esp32p4 - steps: # This step makes the contents of the repository available to the workflow - name: Checkout repository @@ -88,7 +86,7 @@ jobs: path: ${{ env.SKETCHES_REPORTS_PATH }} report-to-file: - needs: compile-sketch # Wait for the compile job to finish to get the data for the report + needs: compile-sketch # Wait for the compile job to finish to get the data for the report if: github.event_name == 'schedule' # Only run the job when the workflow is triggered by a schedule runs-on: ubuntu-latest steps: @@ -97,11 +95,10 @@ jobs: uses: actions/checkout@v4 with: token: ${{ env.GITHUB_TOKEN }} - fetch-depth: '0' + fetch-depth: "0" - name: Switch branch - run: - git checkout remotes/origin/gh-pages + run: git checkout remotes/origin/gh-pages # This step is needed to get the size data produced by the compile jobs - name: Download sketches reports artifact @@ -118,8 +115,7 @@ jobs: destination-file: ${{ env.RESULT_LIBRARY_TEST_FILE }} - name: Append file with action URL - run: - echo "/ [GitHub Action Link](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})" >> ${{ env.RESULT_LIBRARY_TEST_FILE }} + run: echo "/ [GitHub Action Link](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})" >> ${{ env.RESULT_LIBRARY_TEST_FILE }} - name: Push to github repo run: | diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 8257e78c822..dc009e445da 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-python@v5 with: cache-dependency-path: tools/pre-commit/requirements.txt - cache: 'pip' + cache: "pip" python-version: "3.x" - name: Get Python version hash diff --git a/.github/workflows/publishlib.yml b/.github/workflows/publishlib.yml index 7fd932f5309..62393b80915 100644 --- a/.github/workflows/publishlib.yml +++ b/.github/workflows/publishlib.yml @@ -47,7 +47,7 @@ jobs: uses: juliangruber/read-file-action@v1 with: path: ./artifacts/workflows/pr_num.txt - + - name: Report results uses: P-R-O-C-H-Y/report-size-deltas@libs with: diff --git a/.github/workflows/publishsizes-2.x.yml b/.github/workflows/publishsizes-2.x.yml index bdd2fc311e4..ffbd751838c 100644 --- a/.github/workflows/publishsizes-2.x.yml +++ b/.github/workflows/publishsizes-2.x.yml @@ -11,11 +11,11 @@ env: jobs: sizes-test-results: - name: Sizes Comparsion Results + name: Sizes Comparison Results runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 # This step checks out the repository's code at gh-pages branch + uses: actions/checkout@v4 # This step checks out the repository's code at gh-pages branch with: ref: gh-pages @@ -41,8 +41,7 @@ jobs: destination-file: ${{ env.RESULT_SIZES_TEST_FILE }} - name: Append file with action URL - run: - echo "/ [GitHub Action Link](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})" >> ${{ env.RESULT_SIZES_TEST_FILE }} + run: echo "/ [GitHub Action Link](https://github.com/${{github.repository}}/actions/runs/${{github.run_id}})" >> ${{ env.RESULT_SIZES_TEST_FILE }} - name: Push to github repo run: | diff --git a/.github/workflows/publishsizes.yml b/.github/workflows/publishsizes.yml index ce4e94cd5e5..6c6d75eccce 100644 --- a/.github/workflows/publishsizes.yml +++ b/.github/workflows/publishsizes.yml @@ -14,7 +14,7 @@ env: jobs: sizes-test-results: - name: Sizes Comparsion Results + name: Sizes Comparison Results runs-on: ubuntu-latest if: | github.event.workflow_run.event == 'pull_request' && @@ -22,7 +22,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v4 # This step checks out the repository's code at gh-pages branch + uses: actions/checkout@v4 # This step checks out the repository's code at gh-pages branch with: ref: gh-pages diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index beee735c368..0859551d589 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -4,30 +4,30 @@ on: workflow_dispatch: push: branches: - - master - - release/* + - master + - release/* pull_request: paths: - - 'cores/**' - - 'libraries/**' - - '!libraries/**.md' - - '!libraries/**.txt' - - '!libraries/**.properties' - - '!libraries/**.py' - - 'package/**' - - 'tools/**.py' - - 'platform.txt' - - 'programmers.txt' - - 'idf_component.yml' - - 'Kconfig.projbuild' - - 'package.json' - - 'CMakeLists.txt' - - '.github/workflows/push.yml' - - '.github/scripts/**' - - '!.github/scripts/find_*' - - '!.github/scripts/on-release.sh' - - '!.github/scripts/tests_*' - - '!.github/scripts/upload_*' + - "cores/**" + - "libraries/**" + - "!libraries/**.md" + - "!libraries/**.txt" + - "!libraries/**.properties" + - "!libraries/**.py" + - "package/**" + - "tools/**.py" + - "platform.txt" + - "programmers.txt" + - "idf_component.yml" + - "Kconfig.projbuild" + - "package.json" + - "CMakeLists.txt" + - ".github/workflows/push.yml" + - ".github/scripts/**" + - "!.github/scripts/find_*" + - "!.github/scripts/on-release.sh" + - "!.github/scripts/tests_*" + - "!.github/scripts/upload_*" - "variants/esp32/**/*" - "variants/esp32s2/**/*" - "variants/esp32s3/**/*" @@ -49,8 +49,8 @@ jobs: runs-on: ubuntu-latest if: ${{ !(github.event_name == 'pull_request' && startsWith(github.head_ref, 'release/')) }} steps: - - uses: actions/checkout@v4 - - run: bash ./.github/scripts/check-cmakelists.sh + - uses: actions/checkout@v4 + - run: bash ./.github/scripts/check-cmakelists.sh gen-chunks: name: Generate chunks @@ -65,16 +65,16 @@ jobs: chunk_count: ${{ steps.set-chunks.outputs.chunk_count }} chunks: ${{ steps.set-chunks.outputs.chunks }} steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 2 + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 2 - - name: Get changed files - id: changed-files - uses: tj-actions/changed-files@v44 - with: - files_yaml: | + - name: Get changed files + id: changed-files + uses: tj-actions/changed-files@v44 + with: + files_yaml: | core: - '.github/**' - '!.github/scripts/install-platformio-esp32.sh' @@ -115,31 +115,31 @@ jobs: - '.github/scripts/install-platformio-esp32.sh' - 'tools/platformio-build.py' - - name: Set chunks - id: set-chunks - env: - LIB_FILES: ${{ steps.changed-files.outputs.libraries_all_changed_files }} - IS_PR: ${{ github.event_name == 'pull_request' }} - MAX_CHUNKS: ${{ env.MAX_CHUNKS }} - BUILD_PLATFORMIO: ${{ steps.changed-files.outputs.platformio_any_changed == 'true' }} - BUILD_IDF: ${{ steps.changed-files.outputs.idf_any_changed == 'true' }} - BUILD_LIBRARIES: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }} - BUILD_STATIC_SKETCHES: ${{ steps.changed-files.outputs.static_sketeches_any_changed == 'true' }} - FS_CHANGED: ${{ steps.changed-files.outputs.fs_any_changed == 'true' }} - NETWORKING_CHANGED: ${{ steps.changed-files.outputs.networking_any_changed == 'true' }} - CORE_CHANGED: ${{ steps.changed-files.outputs.core_any_changed == 'true' }} - LIB_CHANGED: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }} - run: | - bash ./.github/scripts/set_push_chunks.sh + - name: Set chunks + id: set-chunks + env: + LIB_FILES: ${{ steps.changed-files.outputs.libraries_all_changed_files }} + IS_PR: ${{ github.event_name == 'pull_request' }} + MAX_CHUNKS: ${{ env.MAX_CHUNKS }} + BUILD_PLATFORMIO: ${{ steps.changed-files.outputs.platformio_any_changed == 'true' }} + BUILD_IDF: ${{ steps.changed-files.outputs.idf_any_changed == 'true' }} + BUILD_LIBRARIES: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }} + BUILD_STATIC_SKETCHES: ${{ steps.changed-files.outputs.static_sketeches_any_changed == 'true' }} + FS_CHANGED: ${{ steps.changed-files.outputs.fs_any_changed == 'true' }} + NETWORKING_CHANGED: ${{ steps.changed-files.outputs.networking_any_changed == 'true' }} + CORE_CHANGED: ${{ steps.changed-files.outputs.core_any_changed == 'true' }} + LIB_CHANGED: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }} + run: | + bash ./.github/scripts/set_push_chunks.sh - - name: Upload sketches found - if: ${{ steps.set-chunks.outputs.build_all == 'false' && steps.set-chunks.outputs.build_libraries == 'true' }} - uses: actions/upload-artifact@v4 - with: - name: sketches_found - path: sketches_found.txt - overwrite: true - if-no-files-found: error + - name: Upload sketches found + if: ${{ steps.set-chunks.outputs.build_all == 'false' && steps.set-chunks.outputs.build_libraries == 'true' }} + uses: actions/upload-artifact@v4 + with: + name: sketches_found + path: sketches_found.txt + overwrite: true + if-no-files-found: error # Ubuntu build-arduino-linux: @@ -153,45 +153,45 @@ jobs: chunk: ${{ fromJson(needs.gen-chunks.outputs.chunks) }} steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.x' + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" - - name: Get libs cache - uses: actions/cache@v4 - with: - key: libs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('package/package_esp32_index.template.json', 'tools/get.py') }} - path: | - ./tools/dist - ./tools/esp32-arduino-libs - ./tools/esptool - ./tools/mk* - ./tools/openocd-esp32 - ./tools/riscv32-* - ./tools/xtensa-* + - name: Get libs cache + uses: actions/cache@v4 + with: + key: libs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('package/package_esp32_index.template.json', 'tools/get.py') }} + path: | + ./tools/dist + ./tools/esp32-arduino-libs + ./tools/esptool + ./tools/mk* + ./tools/openocd-esp32 + ./tools/riscv32-* + ./tools/xtensa-* - - name: Build all sketches - if: ${{ needs.gen-chunks.outputs.build_all == 'true' }} - run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ env.MAX_CHUNKS }} 1 + - name: Build all sketches + if: ${{ needs.gen-chunks.outputs.build_all == 'true' }} + run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ env.MAX_CHUNKS }} 1 - - name: Download sketches found - if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} - uses: actions/download-artifact@v4 - with: - name: sketches_found + - name: Download sketches found + if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} + uses: actions/download-artifact@v4 + with: + name: sketches_found - - name: Build selected sketches - if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} - run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ needs.gen-chunks.outputs.chunk_count }} 1 sketches_found.txt + - name: Build selected sketches + if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} + run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ needs.gen-chunks.outputs.chunk_count }} 1 sketches_found.txt - #Upload cli compile json as artifact - - name: Upload cli compile json - uses: actions/upload-artifact@v4 - with: - name: pr_cli_compile_${{ matrix.chunk }} - path: cli_compile_${{ matrix.chunk }}.json - overwrite: true + #Upload cli compile json as artifact + - name: Upload cli compile json + uses: actions/upload-artifact@v4 + with: + name: pr_cli_compile_${{ matrix.chunk }} + path: cli_compile_${{ matrix.chunk }}.json + overwrite: true # Windows and MacOS build-arduino-win-mac: @@ -205,12 +205,12 @@ jobs: os: [windows-latest, macOS-latest] steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - name: Build Sketches - run: bash ./.github/scripts/on-push.sh + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Build Sketches + run: bash ./.github/scripts/on-push.sh # # PlatformIO on Windows, Ubuntu and Mac # build-platformio: @@ -226,13 +226,13 @@ jobs: # matrix: # os: [ubuntu-latest, windows-latest, macOS-latest] - # steps: - # - uses: actions/checkout@v4 - # - uses: actions/setup-python@v5 - # with: - # python-version: '3.x' - # - name: Build Sketches - # run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Build Sketches + run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO # ESP-IDF component build build-esp-idf-component: @@ -251,7 +251,17 @@ jobs: # https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html # for details. idf_ver: ["release-v5.3"] - idf_target: ["esp32", "esp32s2", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32p4"] + idf_target: + [ + "esp32", + "esp32s2", + "esp32s3", + "esp32c2", + "esp32c3", + "esp32c6", + "esp32h2", + "esp32p4" + ] container: espressif/idf:${{ matrix.idf_ver }} steps: - name: Check out arduino-esp32 as a component @@ -276,16 +286,15 @@ jobs: if: github.event_name == 'push' && github.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: - # Check out repository + # Check out repository - name: Checkout repository uses: actions/checkout@v4 with: token: ${{secrets.GITHUB_TOKEN}} - fetch-depth: '0' + fetch-depth: "0" - name: Switch branch - run: - git checkout remotes/origin/gh-pages + run: git checkout remotes/origin/gh-pages - name: Download sketches reports artifact uses: actions/download-artifact@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f8aa779d994..53a512dd54f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,15 +10,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-python@v5 - with: - python-version: '3.x' - - run: pip install packaging - - run: pip install pyserial - - name: Build Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: bash ./.github/scripts/on-release.sh + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - run: pip install packaging + - run: pip install pyserial + - name: Build Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: bash ./.github/scripts/on-release.sh diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f57a1925c1c..0db3b98782b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,22 +16,22 @@ on: pull_request: types: [opened, reopened, closed, synchronize, labeled, unlabeled] paths: - - '.github/workflows/tests*' - - '.github/scripts/*.sh' - - '!.github/scripts/check-cmakelists.sh' - - '!.github/scripts/find_*' - - '!.github/scripts/on-*.sh' - - '!.github/scripts/set_push_chunks.sh' - - '!.github/scripts/update-version.sh' - - '!.github/scripts/upload_py_tools.sh' - - 'tests/**' - - 'cores/**' - - 'libraries/*/src/**.cpp' - - 'libraries/*/src/**.h' - - 'libraries/*/src/**.c' - - 'package/**' + - ".github/workflows/tests*" + - ".github/scripts/*.sh" + - "!.github/scripts/check-cmakelists.sh" + - "!.github/scripts/find_*" + - "!.github/scripts/on-*.sh" + - "!.github/scripts/set_push_chunks.sh" + - "!.github/scripts/update-version.sh" + - "!.github/scripts/upload_py_tools.sh" + - "tests/**" + - "cores/**" + - "libraries/*/src/**.cpp" + - "libraries/*/src/**.h" + - "libraries/*/src/**.c" + - "package/**" schedule: - - cron: '0 2 * * *' + - cron: "0 2 * * *" concurrency: group: tests-${{ github.event.pull_request.number || github.ref }} @@ -115,7 +115,7 @@ jobs: fail-fast: false matrix: type: ${{ fromJson(needs.gen-matrix.outputs.qemu-types) }} - chip: ['esp32', 'esp32c3'] + chip: ["esp32", "esp32c3"] with: type: ${{ matrix.type }} chip: ${{ matrix.chip }} diff --git a/.github/workflows/tests_build.yml b/.github/workflows/tests_build.yml index 090dfa8136b..7a5a2959657 100644 --- a/.github/workflows/tests_build.yml +++ b/.github/workflows/tests_build.yml @@ -5,11 +5,11 @@ on: inputs: type: type: string - description: 'Type of tests to build' + description: "Type of tests to build" required: true chip: type: string - description: 'Chip to build tests for' + description: "Chip to build tests for" required: true jobs: diff --git a/.github/workflows/tests_hw.yml b/.github/workflows/tests_hw.yml index d7922500f10..76480ed7c0e 100644 --- a/.github/workflows/tests_hw.yml +++ b/.github/workflows/tests_hw.yml @@ -5,11 +5,11 @@ on: inputs: type: type: string - description: 'Type of tests to run' + description: "Type of tests to run" required: true chip: type: string - description: 'Chip to run tests for' + description: "Chip to run tests for" required: true env: diff --git a/.github/workflows/tests_qemu.yml b/.github/workflows/tests_qemu.yml index 0b4ec18e7ac..6675909c9df 100644 --- a/.github/workflows/tests_qemu.yml +++ b/.github/workflows/tests_qemu.yml @@ -64,8 +64,8 @@ jobs: if: ${{ steps.check-tests.outputs.enabled == 'true' }} with: cache-dependency-path: tests/requirements.txt - cache: 'pip' - python-version: '3.x' + cache: "pip" + python-version: "3.x" - name: Install Python dependencies if: ${{ steps.check-tests.outputs.enabled == 'true' }} diff --git a/.github/workflows/tests_results.yml b/.github/workflows/tests_results.yml index f9c572bf546..4ef338a9e16 100644 --- a/.github/workflows/tests_results.yml +++ b/.github/workflows/tests_results.yml @@ -18,11 +18,11 @@ jobs: github.event.workflow_run.conclusion == 'timed_out' runs-on: ubuntu-latest permissions: - actions: write - statuses: write - checks: write - pull-requests: write - contents: write + actions: write + statuses: write + checks: write + pull-requests: write + contents: write steps: - uses: actions/checkout@v4 with: @@ -139,13 +139,13 @@ jobs: core.info(`${name} is ${state}`); - name: Create output folder - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} + if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled run: | rm -rf artifacts mkdir -p runtime-tests-results - name: Generate badge - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} + if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled uses: jaywcjlove/generated-badges@v1.0.13 with: label: Runtime Tests @@ -154,7 +154,7 @@ jobs: color: ${{ job.status == 'success' && 'green' || 'red' }} - name: Push badge - if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} + if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled run: | git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" diff --git a/.github/workflows/tests_wokwi.yml b/.github/workflows/tests_wokwi.yml index a891ca89dfd..f5eb2efcad2 100644 --- a/.github/workflows/tests_wokwi.yml +++ b/.github/workflows/tests_wokwi.yml @@ -247,8 +247,8 @@ jobs: if: ${{ steps.check-tests.outputs.enabled == 'true' }} with: cache-dependency-path: tests/requirements.txt - cache: 'pip' - python-version: '3.x' + cache: "pip" + python-version: "3.x" - name: Install dependencies if: ${{ steps.check-tests.outputs.enabled == 'true' }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6a949631bd9..0ebb6f6ac4b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -12,7 +12,7 @@ default_language_version: repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: "v4.5.0" + rev: "v5.0.0" hooks: - id: check-case-conflict - id: check-symlinks @@ -47,13 +47,13 @@ repos: types_or: [c, c++] exclude: ^.*\/build_opt\.h$ - repo: https://github.com/psf/black-pre-commit-mirror - rev: "22.10.0" + rev: "24.10.0" hooks: - id: black types_or: [python] args: [--line-length=120] #From the arduino code style. Add as argument rather than creating a new config file. - repo: https://github.com/PyCQA/flake8 - rev: "7.0.0" + rev: "7.1.1" hooks: - id: flake8 types_or: [python] @@ -67,7 +67,7 @@ repos: - id: prettier types_or: [yaml] - repo: https://github.com/errata-ai/vale - rev: "v3.0.7" + rev: "v3.9.1" hooks: - id: vale name: vale-sync diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp index f5c6c9d750f..bbf72af0a95 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp @@ -47,7 +47,7 @@ bool MatterGenericSwitch::begin() { // endpoint handles can be used to add/modify clusters. endpoint_t *endpoint = generic_switch::create(node::get(), &switch_config, ENDPOINT_FLAG_NONE, (void *)this); if (endpoint == nullptr) { - log_e("Failed to create Generic swtich endpoint"); + log_e("Failed to create Generic switch endpoint"); return false; } // Add group cluster to the switch endpoint diff --git a/tests/performance/psramspeed/test_psramspeed.py b/tests/performance/psramspeed/test_psramspeed.py index 8d051580799..9e96e158504 100644 --- a/tests/performance/psramspeed/test_psramspeed.py +++ b/tests/performance/psramspeed/test_psramspeed.py @@ -74,7 +74,7 @@ def test_psramspeed(dut, request): sums[(test, size, impl)]["time_sum"] += time avg_results = {} - for (test, size, impl) in sums: + for test, size, impl in sums: rate_avg = round(sums[(test, size, impl)]["rate_sum"] / runs, 2) time_avg = round(sums[(test, size, impl)]["time_sum"] / runs, 2) LOGGER.info( diff --git a/tests/performance/ramspeed/test_ramspeed.py b/tests/performance/ramspeed/test_ramspeed.py index b4c3cee7f9b..dbe1670d329 100644 --- a/tests/performance/ramspeed/test_ramspeed.py +++ b/tests/performance/ramspeed/test_ramspeed.py @@ -74,7 +74,7 @@ def test_ramspeed(dut, request): sums[(test, size, impl)]["time_sum"] += time avg_results = {} - for (test, size, impl) in sums: + for test, size, impl in sums: rate_avg = round(sums[(test, size, impl)]["rate_sum"] / runs, 2) time_avg = round(sums[(test, size, impl)]["time_sum"] / runs, 2) LOGGER.info( diff --git a/tools/gen_esp32part.py b/tools/gen_esp32part.py index 4ba0ee59517..ffa740a36e0 100755 --- a/tools/gen_esp32part.py +++ b/tools/gen_esp32part.py @@ -529,7 +529,7 @@ def to_binary(self): def to_csv(self, simple_formatting=False): def addr_format(a, include_sizes): if not simple_formatting and include_sizes: - for (val, suffix) in [(0x100000, "M"), (0x400, "K")]: + for val, suffix in [(0x100000, "M"), (0x400, "K")]: if a % val == 0: return "%d%s" % (a // val, suffix) return "0x%x" % a From 7a82b8be83f068152883c161da87fc434743df85 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 9 Dec 2024 10:01:24 -0300 Subject: [PATCH 101/179] feat(Matter): Creates New Matter Fan Controller Endpoint (#10691) * feat(matter): creates new matter fan controller endpoint --- CMakeLists.txt | 1 + .../Matter/examples/MatterFan/MatterFan.ino | 202 +++++++++++++++ libraries/Matter/examples/MatterFan/ci.json | 7 + libraries/Matter/keywords.txt | 34 ++- libraries/Matter/src/Matter.h | 2 + libraries/Matter/src/MatterEndPoint.h | 71 ++++++ .../Matter/src/MatterEndpoints/MatterFan.cpp | 230 ++++++++++++++++++ .../Matter/src/MatterEndpoints/MatterFan.h | 163 +++++++++++++ 8 files changed, 709 insertions(+), 1 deletion(-) create mode 100644 libraries/Matter/examples/MatterFan/MatterFan.ino create mode 100644 libraries/Matter/examples/MatterFan/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterFan.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterFan.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 59035e50774..e4991d558d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -174,6 +174,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp + libraries/Matter/src/MatterEndpoints/MatterFan.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterFan/MatterFan.ino b/libraries/Matter/examples/MatterFan/MatterFan.ino new file mode 100644 index 00000000000..ac26550f2b6 --- /dev/null +++ b/libraries/Matter/examples/MatterFan/MatterFan.ino @@ -0,0 +1,202 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Fan Endpoint - On/Off control + Speed Percent Control + Fan Modes +MatterFan Fan; + +// set your board USER BUTTON pin here - used for toggling On/Off +const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. + +// set your board Analog Pin here - used for changing the Fan speed +const uint8_t analogPin = A0; // Analog Pin depends on each board + +// set your board PWM Pin here - used for controlling the Fan speed (DC motor example) +// for this example, it will use the builtin board RGB LED to simulate the Fan DC motor using its brightness +#ifdef RGB_BUILTIN +const uint8_t dcMotorPin = RGB_BUILTIN; +#else +const uint8_t dcMotorPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void fanDCMotorDrive(bool fanState, uint8_t speedPercent) { + // drive the Fan DC motor + if (fanState == false) { + // turn off the Fan + digitalWrite(dcMotorPin, LOW); + } else { + // set the Fan speed + uint8_t fanDCMotorPWM = map(speedPercent, 0, 100, 0, 255); +#ifdef RGB_BUILTIN + rgbLedWrite(dcMotorPin, fanDCMotorPWM, fanDCMotorPWM, fanDCMotorPWM); +#else + analogWrite(dcMotorPin, fanDCMotorPWM); +#endif + } +} + +void setup() { + // Initialize the USER BUTTON (Boot button) GPIO that will toggle the Fan (On/Off) + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the Analog Pin A0 used to read input voltage and to set the Fan speed accordingly + pinMode(analogPin, INPUT); + analogReadResolution(10); // 10 bits resolution reading 0..1023 + // Initialize the PWM output pin for a Fan DC motor + pinMode(dcMotorPin, OUTPUT); + + Serial.begin(115200); + while (!Serial) { + delay(100); + } + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + // enable IPv6 + WiFi.enableIPv6(true); + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // On Boot or Reset, Fan is set at 0% speed, OFF, changing between OFF, ON, SMART and HIGH + Fan.begin(0, MatterFan::FAN_MODE_OFF, MatterFan::FAN_MODE_SEQ_OFF_HIGH); + + // callback functions would control Fan motor + // the Matter Controller will send new data whenever the User APP or Automation request + + // single feature callbacks take place before the generic (all features) callback + // This callback will be executed whenever the speed percent matter attribute is updated + Fan.onChangeSpeedPercent([](uint8_t speedPercent) { + // setting speed to Zero, while the Fan is ON, shall turn the Fan OFF + if (speedPercent == MatterFan::OFF_SPEED && Fan.getMode() != MatterFan::FAN_MODE_OFF) { + // ATTR_SET do not update the attribute, just SET it to avoid infinite loop + return Fan.setOnOff(false, Fan.ATTR_SET); + } + // changing the speed to higher than Zero, while the Fan is OFF, shall turn the Fan ON + if (speedPercent > MatterFan::OFF_SPEED && Fan.getMode() == MatterFan::FAN_MODE_OFF) { + // ATTR_SET do not update the attribute, just SET it to avoid infinite loop + return Fan.setOnOff(true, Fan.ATTR_SET); + } + // for other case, just return true + return true; + }); + + // This callback will be executed whenever the fan mode matter attribute is updated + // This will take action when user APP starts the Fan by changing the mode + Fan.onChangeMode([](MatterFan::FanMode_t fanMode) { + // when the Fan is turned ON using Mode Selection, while it is OFF, shall start it by setting the speed to 50% + if (Fan.getSpeedPercent() == MatterFan::OFF_SPEED && fanMode != MatterFan::FAN_MODE_OFF) { + Serial.printf("Fan set to %s mode -- speed percentage will go to 50%%\r\n", Fan.getFanModeString(fanMode)); + // ATTR_SET do not update the attribute, just SET it to avoid infinite loop + return Fan.setSpeedPercent(50, Fan.ATTR_SET); + } + return true; + }); + + // Generic callback will be executed as soon as a single feature callback is done + // In this example, it will just print status messages + Fan.onChange([](MatterFan::FanMode_t fanMode, uint8_t speedPercent) { + // just report state + Serial.printf("Fan State: Mode %s | %d%% speed.\r\n", Fan.getFanModeString(fanMode), speedPercent); + // drive the Fan DC motor + fanDCMotorDrive(fanMode != MatterFan::FAN_MODE_OFF, speedPercent); + // returns success + return true; + }); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +// Builtin Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the Matter Fabric + +void loop() { + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Generic Switch Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // A builtin button is used to trigger and send a command to the Matter Controller + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used as a smart button or to decommission it + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // button is released - toggle Fan On/Off + Fan.toggle(); + Serial.printf("User button released. Setting the Fan %s.\r\n", Fan > 0 ? "ON" : "OFF"); + + // Factory reset is triggered if the button is pressed longer than 10 seconds + if (time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + } + } + + // checks Analog pin and adjust the speed only if it has changed + static int lastRead = 0; + // analog values (0..1023) / 103 => mapped into 10 steps (0..9) + int anaVal = analogRead(analogPin) / 103; + if (lastRead != anaVal) { + // speed percent moves in steps of 10. Range is 10..100 + if (Fan.setSpeedPercent((anaVal + 1) * 10)) { + lastRead = anaVal; + } + } +} diff --git a/libraries/Matter/examples/MatterFan/ci.json b/libraries/Matter/examples/MatterFan/ci.json new file mode 100644 index 00000000000..0665800b12b --- /dev/null +++ b/libraries/Matter/examples/MatterFan/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 597bbac657b..4668054d12e 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -15,6 +15,9 @@ MatterColorTemperatureLight KEYWORD1 MatterColorLight KEYWORD1 MatterEnhancedColorLight KEYWORD1 MatterEndPoint KEYWORD1 +MatterFan KEYWORD1 +FanMode_t KEYWORD1 +FanModeSequence_t KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -32,6 +35,7 @@ decommission KEYWORD2 attributeChangeCB KEYWORD2 setOnOff KEYWORD2 getOnOff KEYWORD2 +toggle KEYWORD2 setBrightness KEYWORD2 getBrightness KEYWORD2 setColorTemperature KEYWORD2 @@ -40,7 +44,6 @@ setColorRGB KEYWORD2 getColorRGB KEYWORD2 setColorHSV KEYWORD2 getColorHSV KEYWORD2 -toggle KEYWORD2 updateAccessory KEYWORD2 onChange KEYWORD2 onChangeOnOff KEYWORD2 @@ -48,6 +51,17 @@ onChangeBrightness KEYWORD2 onChangeColorTemperature KEYWORD2 onChangeColorHSV KEYWORD2 click KEYWORD2 +getAttribute KEYWORD2 +getAttributeVal KEYWORD2 +setAttributeVal KEYWORD2 +updateAttributeVal KEYWORD2 +getFanModeString KEYWORD2 +setSpeedPercent KEYWORD2 +getSpeedPercent KEYWORD2 +setMode KEYWORD2 +getMode KEYWORD2 +onChangeMode KEYWORD2 +onChangeSpeedPercent KEYWORD2 ####################################### # Constants (LITERAL1) @@ -56,3 +70,21 @@ click KEYWORD2 MAX_BRIGHTNESS LITERAL1 MAX_COLOR_TEMPERATURE LITERAL1 MIN_COLOR_TEMPERATURE LITERAL1 +ATTR_SET LITERAL1 +ATTR_UPDATE LITERAL1 +MAX_SPEED LITERAL1 +MIN_SPEED LITERAL1 +OFF_SPEED LITERAL1 +FAN_MODE_OFF LITERAL1 +FAN_MODE_LOW LITERAL1 +FAN_MODE_MEDIUM LITERAL1 +FAN_MODE_HIGH LITERAL1 +FAN_MODE_ON LITERAL1 +FAN_MODE_AUTO LITERAL1 +FAN_MODE_SMART LITERAL1 +FAN_MODE_SEQ_OFF_LOW_MED_HIGH LITERAL1 +FAN_MODE_SEQ_OFF_LOW_HIGH LITERAL1 +FAN_MODE_SEQ_OFF_LOW_MED_HIGH_AUTO LITERAL1 +FAN_MODE_SEQ_OFF_LOW_HIGH_AUTO LITERAL1 +FAN_MODE_SEQ_OFF_HIGH_AUTO LITERAL1 +FAN_MODE_SEQ_OFF_HIGH LITERAL1 diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 9136eead048..06edf32288f 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -25,6 +25,7 @@ #include #include #include +#include using namespace esp_matter; @@ -56,6 +57,7 @@ class ArduinoMatter { friend class MatterColorTemperatureLight; friend class MatterColorLight; friend class MatterEnhancedColorLight; + friend class MatterFan; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index 02577957e8e..99bff8470d3 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -19,15 +19,86 @@ #include #include +using namespace esp_matter; + // Matter Endpoint Base Class. Controls the endpoint ID and allows the child class to overwrite attribute change call class MatterEndPoint { public: + enum attrOperation_t { + ATTR_SET = false, + ATTR_UPDATE = true + }; + uint16_t getEndPointId() { return endpoint_id; } + void setEndPointId(uint16_t ep) { endpoint_id = ep; } + + // helper functions for attribute manipulation + attribute_t *getAttribute(uint32_t cluster_id, uint32_t attribute_id) { + if (endpoint_id == 0) { + log_e("Endpoint ID is not set"); + return NULL; + } + endpoint_t *endpoint = endpoint::get(node::get(), endpoint_id); + if (endpoint == NULL) { + log_e("Endpoint [%d] not found", endpoint_id); + return NULL; + } + cluster_t *cluster = cluster::get(endpoint, cluster_id); + if (cluster == NULL) { + log_e("Cluster [%d] not found", cluster_id); + return NULL; + } + attribute_t *attribute = attribute::get(cluster, attribute_id); + if (attribute == NULL) { + log_e("Attribute [%d] not found", attribute_id); + return NULL; + } + return attribute; + } + + // get the value of an attribute from its cluster id and attribute it + bool getAttributeVal(uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *attrVal) { + attribute_t *attribute = getAttribute(cluster_id, attribute_id); + if (attribute == NULL) { + return false; + } + if (attribute::get_val(attribute, attrVal) == ESP_OK) { + log_v("GET_VAL Success for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return true; + } + log_e("GET_VAL FAILED! for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return false; + } + + // set the value of an attribute from its cluster id and attribute it + bool setAttributeVal(uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *attrVal) { + attribute_t *attribute = getAttribute(cluster_id, attribute_id); + if (attribute == NULL) { + return false; + } + if (attribute::set_val(attribute, attrVal) == ESP_OK) { + log_v("SET_VAL Success for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return true; + } + log_e("SET_VAL FAILED! for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return false; + } + + // update the value of an attribute from its cluster id and attribute it + bool updateAttributeVal(uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *attrVal) { + if (attribute::update(endpoint_id, cluster_id, attribute_id, attrVal) == ESP_OK) { + log_v("Update Success for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return true; + } + log_e("Update FAILED! for cluster %d, attribute %d with value %d", cluster_id, attribute_id, attrVal->val.u32); + return false; + } + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp new file mode 100644 index 00000000000..8db6a317ead --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp @@ -0,0 +1,230 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace esp_matter::cluster; +using namespace chip::app::Clusters; + +// string helper for the FAN MODE +const char *MatterFan::fanModeString[7] = {"OFF", "LOW", "MEDIUM", "HIGH", "ON", "AUTO", "SMART"}; +// bitmap for valid Fan Modes based on order defined in Zap Generated Cluster Enums +const uint8_t MatterFan::fanModeSequence[6] = {fanSeqModeOffLowMedHigh, fanSeqModeOffLowHigh, fanSeqModeOffLowMedHighAuto, + fanSeqModeOffLowHighAuto, fanSeqModeOffHighAuto, fanSeqModeOffHigh}; + +// Constructor and Method Definitions +MatterFan::MatterFan() {} + +MatterFan::~MatterFan() { + end(); +} + +bool MatterFan::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + + if (!started) { + log_e("Matter Fan device has not begun."); + return false; + } + + log_d("Fan Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + + if (endpoint_id == getEndPointId() && cluster_id == FanControl::Id) { + switch (attribute_id) { + case FanControl::Attributes::FanMode::Id: + log_v("FanControl Fan Mode changed to %s (%x)", val->val.u8 < 7 ? fanModeString[val->val.u8] : "Unknown", val->val.u8); + if (_onChangeModeCB != NULL) { + ret &= _onChangeModeCB((FanMode_t)val->val.u8); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB((FanMode_t)val->val.u8, currentPercent); + } + if (ret == true) { + currentFanMode = (FanMode_t)val->val.u8; + } + break; + case FanControl::Attributes::PercentSetting::Id: + case FanControl::Attributes::PercentCurrent::Id: + log_v("FanControl Percent %s changed to %d", attribute_id == FanControl::Attributes::PercentSetting::Id ? "SETTING" : "CURRENT", val->val.u8); + if (_onChangeSpeedCB != NULL) { + ret &= _onChangeSpeedCB(val->val.u8); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(currentFanMode, val->val.u8); + } + if (ret == true) { + // change setting speed percent + currentPercent = val->val.u8; + setAttributeVal(FanControl::Id, FanControl::Attributes::PercentSetting::Id, val); + setAttributeVal(FanControl::Id, FanControl::Attributes::PercentCurrent::Id, val); + } + break; + } + } + + return ret; +} + +bool MatterFan::begin(uint8_t percent, FanMode_t fanMode, FanModeSequence_t fanModeSeq) { + ArduinoMatter::_init(); + + // endpoint handles can be used to add/modify clusters. + fan::config_t fan_config; + fan_config.fan_control.fan_mode = fanMode; + fan_config.fan_control.percent_current = percent; + fan_config.fan_control.percent_setting = percent; + fan_config.fan_control.fan_mode_sequence = fanModeSeq; + validFanModes = fanModeSequence[fanModeSeq]; + + endpoint_t *endpoint = fan::create(node::get(), &fan_config, ENDPOINT_FLAG_NONE, (void *)this); + + if (endpoint == nullptr) { + log_e("Failed to create Fan endpoint"); + return false; + } + + currentFanMode = fanMode; + currentPercent = percent; + + setEndPointId(endpoint::get_id(endpoint)); + log_i("Fan created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterFan::end() { + started = false; +} + +bool MatterFan::setMode(FanMode_t newMode, bool performUpdate) { + if (!started) { + log_w("Matter Fan device has not begun."); + return false; + } + // avoid processing the a "no-change" + if (currentFanMode == newMode) { + return true; + } + + // check if the mode is valid based on the sequence used in its creation + if (!(validFanModes & (1 << newMode))) { + log_e("Invalid Fan Mode %s for the current Fan Mode Sequence.", fanModeString[newMode]); + return false; + } + + esp_matter_attr_val_t modeVal = esp_matter_invalid(NULL); + if (!getAttributeVal(FanControl::Id, FanControl::Attributes::FanMode::Id, &modeVal)) { + log_e("Failed to get Fan Mode Attribute."); + return false; + } + if (modeVal.val.u8 != (uint8_t)newMode) { + modeVal.val.u8 = (uint8_t)newMode; + bool ret; + if (performUpdate) { + ret = updateAttributeVal(FanControl::Id, FanControl::Attributes::FanMode::Id, &modeVal); + } else { + ret = setAttributeVal(FanControl::Id, FanControl::Attributes::FanMode::Id, &modeVal); + } + if (!ret) { + log_e("Failed to %s Fan Mode Attribute.", performUpdate ? "update" : "set"); + return false; + } + } + currentFanMode = newMode; + log_v("Fan Mode %s to %s ==> onOffState[%s]", performUpdate ? "updated" : "set", fanModeString[currentFanMode], getOnOff() ? "ON" : "OFF"); + return true; +} + +// this function will change the Fan Speed by calling the user application callback +// it is up to the application to decide to turn on, off or change the speed of the fan +bool MatterFan::setSpeedPercent(uint8_t newPercent, bool performUpdate) { + if (!started) { + log_w("Matter Fan device has not begun."); + return false; + } + // avoid processing the a "no-change" + if (currentPercent == newPercent) { + return true; + } + + esp_matter_attr_val_t speedVal = esp_matter_invalid(NULL); + if (!getAttributeVal(FanControl::Id, FanControl::Attributes::PercentSetting::Id, &speedVal)) { + log_e("Failed to get Fan Speed Percent Attribute."); + return false; + } + if (speedVal.val.u8 != newPercent) { + speedVal.val.u8 = newPercent; + bool ret; + if (performUpdate) { + ret = updateAttributeVal(FanControl::Id, FanControl::Attributes::PercentSetting::Id, &speedVal); + } else { + ret = setAttributeVal(FanControl::Id, FanControl::Attributes::PercentSetting::Id, &speedVal); + ret = setAttributeVal(FanControl::Id, FanControl::Attributes::PercentCurrent::Id, &speedVal); + } + if (!ret) { + log_e("Failed to %s Fan Speed Percent Attribute.", performUpdate ? "update" : "set"); + return false; + } + } + currentPercent = newPercent; + log_v("Fan Speed %s to %d ==> onOffState[%s]", performUpdate ? "updated" : "set", currentPercent, getOnOff() ? "ON" : "OFF"); + return true; +} + +bool MatterFan::setOnOff(bool newState, bool performUpdate) { + if (!started) { + log_w("Matter Fan device has not begun."); + return false; + } + // avoid processing the a "no-change" + if (getOnOff() == newState) { + return true; + } + + esp_matter_attr_val_t modeVal = esp_matter_invalid(NULL); + if (!getAttributeVal(FanControl::Id, FanControl::Attributes::FanMode::Id, &modeVal)) { + log_e("Failed to get Fan Mode Attribute."); + return false; + } + if (modeVal.val.u8 != (uint8_t)newState) { + FanMode_t newMode = newState ? FAN_MODE_ON : FAN_MODE_OFF; + if (!setMode(newMode, performUpdate)) { + return false; + } + } + log_v( + "Fan State %s to %s :: Mode[%s]|Speed[%d]", performUpdate ? "updated" : "set", getOnOff() ? "ON" : "OFF", fanModeString[currentFanMode], currentPercent + ); + return true; +} + +bool MatterFan::getOnOff() { + return currentFanMode == FAN_MODE_OFF ? false : true; +} + +bool MatterFan::toggle(bool performUpdate) { + if (getOnOff() == true) { + return setOnOff(false, performUpdate); + } else { + return setOnOff(true, performUpdate); + } +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.h b/libraries/Matter/src/MatterEndpoints/MatterFan.h new file mode 100644 index 00000000000..232577b7bef --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.h @@ -0,0 +1,163 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace chip::app::Clusters::FanControl; + +// Matter Fan endpoint with On/Off, Mode and Speed control + +class MatterFan : public MatterEndPoint { +public: + // Fan feature constants + static const uint8_t MAX_SPEED = 100; // maximum High speed + static const uint8_t MIN_SPEED = 1; // minimum Low speed + static const uint8_t OFF_SPEED = 0; // speed set by Matter when FAN_MODE_OFF + + // Default Fan Modes: ON, SMART, HIGH and OFF + + // Other mode will depend on what is the configured Fan Mode Sequence + enum FanMode_t { + FAN_MODE_OFF = (uint8_t)FanModeEnum::kOff, + FAN_MODE_LOW = (uint8_t)FanModeEnum::kLow, + FAN_MODE_MEDIUM = (uint8_t)FanModeEnum::kMedium, + FAN_MODE_HIGH = (uint8_t)FanModeEnum::kHigh, + FAN_MODE_ON = (uint8_t)FanModeEnum::kOn, + FAN_MODE_AUTO = (uint8_t)FanModeEnum::kAuto, + FAN_MODE_SMART = (uint8_t)FanModeEnum::kSmart + }; + + // Menu will always have ON, OFF, HIGH and SMART. + // AUTO will show up only when a AUTO SEQ is CONFIGURED + // LOW and MEDIUM depend on the SEQ MODE configuration + enum FanModeSequence_t { + FAN_MODE_SEQ_OFF_LOW_MED_HIGH = (uint8_t)FanModeSequenceEnum::kOffLowMedHigh, + FAN_MODE_SEQ_OFF_LOW_HIGH = (uint8_t)FanModeSequenceEnum::kOffLowHigh, + FAN_MODE_SEQ_OFF_LOW_MED_HIGH_AUTO = (uint8_t)FanModeSequenceEnum::kOffLowMedHighAuto, + FAN_MODE_SEQ_OFF_LOW_HIGH_AUTO = (uint8_t)FanModeSequenceEnum::kOffLowHighAuto, + FAN_MODE_SEQ_OFF_HIGH_AUTO = (uint8_t)FanModeSequenceEnum::kOffHighAuto, + FAN_MODE_SEQ_OFF_HIGH = (uint8_t)FanModeSequenceEnum::kOffHigh + }; + + MatterFan(); + ~MatterFan(); + virtual bool begin(uint8_t percent = 0, FanMode_t fanMode = FAN_MODE_OFF, FanModeSequence_t fanModeSeq = FAN_MODE_SEQ_OFF_HIGH); + void end(); // this will just stop processing Matter events + + // returns a friendly string for the Fan Mode + static const char *getFanModeString(uint8_t mode) { + return fanModeString[mode]; + } + + // Fan Control of current On/Off state + + bool setOnOff(bool newState, bool performUpdate = true); // sets Fan On/Off state + bool getOnOff(); // returns current Fan state + bool toggle(bool performUpdate = true); // toggle Fun On/Off state + + // Fan Control of current speed percent + + bool setSpeedPercent(uint8_t newPercent, bool performUpdate = true); // returns true if successful + uint8_t getSpeedPercent() { // returns current Fan Speed Percent + return currentPercent; + } + + // Fan Control of current Fan Mode + + bool setMode(FanMode_t newMode, bool performUpdate = true); // returns true if successful + FanMode_t getMode() { // returns current Fan Mode + return currentFanMode; + } + // used to update the state of the Fan using the current Matter Fan internal state + // It is necessary to set a user callback function using onChange() to handle the physical Fan motor state + + void updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(currentFanMode, currentPercent); + } + } + + // returns current Fan speed percent + operator uint8_t() { + return getSpeedPercent(); + } + // sets Fan speed percent + void operator=(uint8_t speedPercent) { + setSpeedPercent(speedPercent); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + + // User Callback for whenever the Fan Mode (state) is changed by the Matter Controller + using EndPointModeCB = std::function; + void onChangeMode(EndPointModeCB onChangeCB) { + _onChangeModeCB = onChangeCB; + } + + // User Callback for whenever the Fan Speed Percentage value [0..100] is changed by the Matter Controller + using EndPointSpeedCB = std::function; + void onChangeSpeedPercent(EndPointSpeedCB onChangeCB) { + _onChangeSpeedCB = onChangeCB; + } + + // User Callback for whenever any parameter is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + +protected: + bool started = false; + uint8_t validFanModes = 0; // bitmap for valid Fan Modes - index of fanModeSequence[] + + uint8_t currentPercent = 0; // current speed percent + FanMode_t currentFanMode = FAN_MODE_OFF; // current Fan Mode + EndPointModeCB _onChangeModeCB = NULL; + EndPointSpeedCB _onChangeSpeedCB = NULL; + EndPointCB _onChangeCB = NULL; + + // bitmap for Fan Sequence Modes (OFF, LOW, MEDIUM, HIGH, AUTO) + static const uint8_t fanSeqModeOff = 0x01; + static const uint8_t fanSeqModeLow = 0x02; + static const uint8_t fanSeqModeMedium = 0x04; + static const uint8_t fanSeqModeHigh = 0x08; + static const uint8_t fanSeqModeOn = 0x10; + static const uint8_t fanSeqModeAuto = 0x20; + static const uint8_t fanSeqModeSmart = 0x40; + + // bitmap for common modes: ON, OFF, HIGH and SMART + static const uint8_t fanSeqCommonModes = fanSeqModeOff | fanSeqModeOn | fanSeqModeHigh | fanSeqModeSmart; + + static const uint8_t fanSeqModeOffLowMedHigh = fanSeqCommonModes | fanSeqModeLow | fanSeqModeMedium; + static const uint8_t fanSeqModeOffLowHigh = fanSeqCommonModes | fanSeqModeLow; + static const uint8_t fanSeqModeOffLowMedHighAuto = fanSeqCommonModes | fanSeqModeLow | fanSeqModeMedium | fanSeqModeAuto; + static const uint8_t fanSeqModeOffLowHighAuto = fanSeqCommonModes | fanSeqModeLow | fanSeqModeAuto; + static const uint8_t fanSeqModeOffHighAuto = fanSeqCommonModes | fanSeqModeAuto; + static const uint8_t fanSeqModeOffHigh = fanSeqCommonModes; + + // bitmap for valid Fan Modes based on order defined in Zap Generated Cluster Enums + static const uint8_t fanModeSequence[6]; + + // string helper for the FAN MODE + static const char *fanModeString[7]; +}; + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 7a0775d697219c131d3da6c467e149d358ae29b0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:02:28 +0000 Subject: [PATCH 102/179] change(tools): Push generated binaries to PR --- tools/gen_esp32part.exe | Bin 5931744 -> 6389808 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/gen_esp32part.exe b/tools/gen_esp32part.exe index 51c1959ac74e7eae725b9bd37b1fb56c8ef4a3ac..5bd12c6360d5a2ff487005fe8afc3e594b445d88 100644 GIT binary patch delta 1484351 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%0Ak2(H(nxQ3GswIR3)(zjG{Fy(r7~%l3+b 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

    6Zy05R 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

    AhMP9hgx5?ZbZt&I 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%0DVitgSc~}NSok$j8sbFP`?O`_%%fq-MUJ?<( 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

    61h3I{Sk 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

    T|~J@U6{oEDDUlM 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≪gwIuJsk+_ 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%0Dmd|4NA1 zrSFi-w}Ef(7|WWx~>H#Xe$vm)bsz@dlT@c zs;yx-NfSsXP6`yNfD~J#2uP(MEd@y+ffGm-WNI(7NCo8;E+h;p(3%zqhe%bN^~&|? z6&x!nLw^xSS~`Nz7L@`HWs(!3Pztt9i{xKx?{hM=Y2dx@_dWmreb3+LY0f@-Tzl=c z*R=Q98-?bmSeXoEN)3m{nX*>35=Lxi@|t=`8>W@vK@tiRlrmrTBql;4PzB%6ABMPS z&M^W)A^{;5rvre&7Wv)PQhs1%g`q@WPGR?Y_hgkZx#NJ4 zF;g823iId{kqDFR3}`unq=cS^UEd8a=#aom(8R*-^;kG36!Vl%jhx#^$BFq%hPsBG z*?^yQ!kqmD#JWP$f)tsqSVNu}M~bhfNB+QmPspEmkHk6>Qe;l07BN4VGDq;Rk7fuzI7-*OW^fJryL!LH4! zaw>72{DyCcTG!x`m0`t>8N+f;OC?S@5)slc8K+p^D{}~qG$qt%yaSXd49*F0a44nV z5NYBHH84nttp@2)86Bh=GDwU$RYu09*MEADoQ@$f@3vX@dKjh7`rIQX9LQe70bECC znptsg3+ZIh%6kZDwM@U|=_ErtdCKt{9dyMwAul~Je#0(-w_N&~Xr)EgF&$P;Ej~Z1 z@0Di4Y@)BYkcuN4LE;Q3#FJ`^of)9wrAMtnwjO!Bg%J5BNG8*2Km`&yj1A^dLVq6T zoKp@wQ5owj6zUv9>pbyc;5rwOWJUbH+o{v}vB4U7-;+{Fl1@-gmDY z?@P!nUpL6?8oI8l_b78ioE>U-rpeir1HS5NtY8OJ94@S@x1oC7R9rOcNO4hm5kO?) z%liVeu+NCRb`nQ3qX8mI`L8kZNJfpb6E#picnKKV*%@d2I112%FGoR|Eq|ca1tr&Y zc9BS-15F8)K%#xAan9rpMDlX2v*p?tOHT|ptD;N4l+qJkH3cF~YH}-x2^HP_b4Y8H zl8lPwjc5@JE+jNr$Pb?<&?F>X{S121JgdraM94d)iRNWC;NEVGIf_{zW-mGnxyqH3 zi!aaWyAi8wR`nX+K*;C$e}4;%RWC0-2ei?ge%G3-kRBGdQ%6w=Slsd7xg zcA>(53l-M?NeYbpu$>Bp^zaV@ROtK+h;iRSff(5ZAP}3CjQJexh!i`qN=a_AO8{bo zu3h_7Dlu5)FHhvOcI8;kU{@74?^y?oXzyBso5O2ih5pamt!m47u?F>eg!jfD&n zAwx6CAR!rGm^_zj6xS0vY|d`R6<*`u93Vv)BjbI0@nnesg}JtMJV0RS6cmjEY^ zjitP@xY~zTZi@Bim8-Yh5wA?f+5giG^eL>_8M*(O5LjL>1b?Eg6Q4;X&g+XLa`8@u z;kpnAA*n=f!zsznP(NNfbv`M=?ulb zI%J6H3Kw~19DgmYPmk;iy%yMAulZQwbVlSim|mZ*xJL7RUwk<|a;-O?A`+ShPFn`= zsE0vY-LDI6Q9W$CsE0vP?MGA`fF1@yq#EDQFm57x7(Zj!PaoZZ9tOJl_mw`n`tXZw zbaf*-Bihl`-)KNbnIh$4KwZ7$M$7*Tx_Z}2A6*_VfZbKvDeXWaPSj#eU(cmQNKmgo2cM`%89SIZX;IwSwyY@p1 zZC2z@pnvil!f{P%z#+nW67wiitBrE5#Mw`DXxw}fj#{IyCR{=PC)hNR3haU$HkBq*h zv427zUY3?xv8tmkPL!Vk^e6YAELvf{vP=@f#IF6)s8Nwj5fW5Y)M_Q@;%N)UT%g0OEXz^^lX=@6$ZwIs3e-Oj0#v zGbrV3f|QH1YpoNcFdo|YbfhOFd zwIdBxIJNtdM8Q~xg0Z{zD^5e4&0Oxr{**a;0m=$pjph0Q)v%W3pOX7g`EI!&VS(#D@BuKc4Robq)S5q}lI5L= zlklmVWOg?Zg$J*2R(v~?s8y?*U`m4yft9U_(1et;W?Q1!6~6pD-mGPA3STjrwMK88 zi40o~YKje@)fTE)&QJ(Ud6uCthJTw{h+0SrY9XL66=gtY(o-}8s@7a}+>}sA`u#2g zjc%i$(YgL5r6^cquqq6*r4krJUl^(o22EEP!SNg8{nx^*K$>Co?Tm<0sJ@hVlAmeoO~YIS*;$ClT7grGJ?8V%Jo~ z@rzPPV@+|{jE3SP_t){u(ADai5nWR*MMfXl^geki$kUmAs`z|5_0nGY1)b^XO&$?e zO2t?!9bK1X^H_$3Tp^`ux@T5rWu;_2%0tcBE;KMq(fBdVdI=$AyK@rxMB1qbtD_Sp zxYv^en{)VHa&w>^%#W*Ret$6daf>9&Tm~I@rotI>xNuFQT?3Q<-0J#@xXQ-U5M7?x z!-ibSk8b}Etj3;y5*rce7Brs6(LyN%x@`u!%}58dGy~mM0NoB8BG9dEh9d7hpxeRg zK%7?q-QsN$g0A7A+c_@)qMB8s=0Hxz3natfQHw8o=(c`s3#Hpka(}oMF7wQtNdQ@W z69^Z~GptP{+*q?KLL}UX6(d=DtpbSm{+R?;tx5@0s{;FPmO&N4O;yD}aZ0uF;zFR> zW|3-}B@~W}JW_3rU?ji(4*>xy4c6%Cvyf^Fy#VM!pix_bF4eyLvVMV$wRX({Qmj@U zwvU-LwOS4oS*`LjH-8J!+$0o<`C>4GzqyGS1d^=>l3hdyH4~4NrG(4x3iYMgWj>n8>If7r25g9?B3MD=-1I?ZjX!d;ApD<3hrP=>m`0)3*gYB8`+4CIM{Lt@}H2o(99{owuNFp*j&EY}S6KL|)2#$Uvn)vqlN z<4cNNZpSWx6o3C&M8=_H7X3SI7)gWBg1g zO^!mrs{ZkBp{lNsq{#XQ(b7t2X6Julj_2PIa&#if7F2LIRN%Y^o36b`(vD$1EtFl! zko32tlB6@_jvWCmsB9&H>DNLLra2|6d|@eA^AT);d;7Mqf>eV`hae)n>Z?_S!nLhs=F@rlmK`u45O7krus< zJfk}7>p<^2Amr#o%%rP;7NPG`FA$q_Hazwzd@@}pnUs);T2CdYzOtyfPVyK&iF5te zOD*Zd?thtvA2Q-+jNI>{1yr_QV4th^CNJGify2P#)f^DHcB(ga~nAW;d8ds$M zR>TzaLYGV!5^~lebi92}_~|j{qm-ZGCYvyQZY6TjW6lw+xM-w4?j-Wgv#16Lyz`iT zz_G*U>go&GxGJ{sv=8qDuIC2+IYcwym@!O~dVkEc!10UV7p&9gg4sjvP2-O7uRco{ z->_*wLXQ2!mHj~Dvx7~8C|_I&$=*V*2;RZ0H;H9AY?BSSB`Gxc)~b9=8g-tq=aS`J zs0(Qr)?YrO!7*1T+f~TGZ1|B*qh4d67STS-w3reRdr+jMcGCr_xsEDLEL{bU!dM#=Cp-hUM-vlT4puQPVh?)= zRa>Ade%d%HL(nj)Vy)8>St~SsWKKPQvISJ}mh{N;Fs+zFYZD=|3W}JL9i#DRfVl5r z1bUP=p3;OIV{)$G2Bp+v#;J}c1^coajDI(i^CQ{Bl$Ol@oQDS0v}DxV+{}x35Y~WG zslPH?yZW3M(~gx%Ofm-^24t0|v}0mo#%qqtv(rsTxp0MY|G~#1H1AOKf4k^ z4{BE)N4rv!bIcf`4>`tK03R(XQ!?6?VdOL-YA4eB-&fyoJ691tR4Wj|48$TCSAXpH zOU(p}ig(`>u-G!kl-&5MzkOZ=lf{&rnOel;e1I2kev21xqE%hWY{7dn9eCaoHB5h4 zMd|mC*T@1sSfseea+02#smAk14{KH@Osw>pr{aFgS#xLm$`Mc#joVN({C%h5IWh3m zwmXs$%^)M11`k{Et0*I0_!MNsYkz|Jz2;YU>rE3Xh4VWFDyHCow90@LVMM3{(-@PnxUO`4=L)aeQm0&E{aK#W0Jzkgpi&uJKy z44M^!WI$b4UF<6ux{xcy4_VV+$i|!EMi)~F0IhXEWw$p1-JGuILY^7N(9=rd>apYL zy}JKGm1FnM7&lAN@-xZzBYIjd{p`u7AYtlh{U6E!;QlBC_9Fs_9Kg>|-0P_!h&&%q zfnUi_4#Fkmo<>;ra6&@6xr&It_B~Jb~rEZzQ(cu)>#sxSqotO~CRWFb$+E-;Bv( znW=O^Q?c?T;%^>?Pseyt1~~qgn6&g~;kkQsrW#)jJ=q0VuNe92=69 zmR(3$c0Xj;QV150Q zJwE#SmA8EL^?%Bj+v@8_^IGfcPwf%)^~BR&eSO=@qQ3sri|y*`gZBj1*N4COpX=*0 zH~lZv*Y7z+_4Q*lx6{`@s3H3LXEp!7zW$%+>ldG)`p$=^0_y7}&jixfE3H&tulc%- zzHU9~udnAm(@I}|;$&-m{pGLQ*Vjw7{_oJ&6Tfb)uYYfNUC`G*9C15+J!$Lz3VnT0 z?*Eng`fE!>eSO>aLG|@Ntp98D^}b6e{f^@PQ|5pB`|M-u8C9R8Kgen%lW>^jPT|+R znJlx;uE8_m>{{zu8J+XGTXCgYt4YcvIP@M*rk4q%mYP)h+@r$0@1^06J7a)0Ag&x| z{ddkVNPj4E%Hj7rW=1)*`yDn@Az&u1lvW_Bdr(2CSV0w5P)sVYkqU}4Qyt8Uxbr$Q zm1kZ=uRGMIxN$-z$z%o}W;Uvk@iK$^Hdo6eD|^&48H1WEQo5g|o{1X3S3GsY?TE%N z;uDUNLj^M;`)!tD5&Oz8tm;}m2p}bf25-a9hksPjk8Z{%egHPmmdQL*cAfdHoPHM; zxdb>4JQeb4e9o$65(=3air4b7z^t=SY3<4m@caF$CjiBe@i6%;s|G^RU(%wzLaXqZ z9<8CzUTerRqZ0mWFn;GNSXsvR^n0-*Q15AYM!vuipn5$^o^v2R!x2)4U1Yf~-ZfmZ zdVebwW@}e6TRW38fR6B4**ICd;9PB37dF6^dW(56S}Lr}maM(kDt}P#or4R?^gb)I z;f^F^4}1NVW-HR-%0fyU4`OSY)Z?a57_U-t+d90K3a_7tT3{ygK;PM$V7_dA6>k8# z*YP6FSYmnzkv|5LW+*0pfn)PP?XxkaZhy$x!x!Jc&+ZgQPLNN#LY!|S%{Zo!TFaT- zeo{Klt&w1gro1e($C=E=Gntx@U&#Izgrqx?UPta{atk*i=E*D{#0*5ltiP{)=EYjN z00_T0IKsI)HJ(a6wzfC>h7aoOwL=ki;f1Uv1hW3@T;N3<#hSYenb)Jl))st@@Qz|f~w85PcV4VG|dggJBsL}dg@ z$tbEeD=0H7fAWT#*;C}~j|1@22C3v(m8la@&qY969GQR&&KeoaF_>-?m*i^ZCGqK~ zXv`z00|vgXBq+bR4*W)gr^T&5M1M~{J^*Auo4=LGtUH_ZhsJ!=4IBrU3$+rF^E`S} z6IZOYu5xP*p>c?Z2QZr4;{uE6DRLOFcDx*>oG=JHGWjwd&Q~lHIw`P~o+4KfOi0RA z?4;0P!c`s@xe6}F;pdPg$7K@2RNx7LzE_SRPq_}**H$od?*un3S@tX zTmTseOTl{H!W|__3?-P!hn3OtJbb3xuL~@NnTZ?)3vM_fgOm(K^-+9^93`HVn{^f$ ziURqGfl2uOI^hbZ;Sp`5rF!L)XL_{l1p+QRP-1nA0c;-1c#_WO7t|TBT^Ea|O}{|TpJD7v*Rf|ERZg;IB?`x%HNDN{wZu3X@e@u0+qBWbs_6T9+HRhh>h+U>WWl zT0jtgXbSC3v}QBITBDa>O%~NA7QpI=C&QPrmY9<9LN{c>0h~rWfb;oyHQqbUQq=q3 zUto+^5gQ&@MWMl}xVL`@_!70|uQ7kCOR7!+?(qwrzJ85=W}-ymwy_JESneeMAV32t zP~>VMC`g!rCBU;>4Zm$7y{8K%P@h|Fw{ZMx34+5i0c=SC81mbT{LT``6D&*5$~`Ao z>XObFz;GT0GRt7OOK-nC8Z>o%V~y65p@ebAYs`lk7`9OFE@yxDeka~?)L6^fFNbU{ zwAIS25h_`^_I|r2%a*9yB!$v2W~NHKqqHLw(v(OC;YlCE^jwv0fE~$APJl1+93fDa zf71=1t7jIqg0r_DoYe^DP=h53n$TJ%Q|P9~5B={#hR_W4LbLKOe`rRug68N^U6KuG z>@gKmh7>14=;nVh%7LJdcL~aGB@T;T2}Q9>&nXpea;@ zzKU2J@c20{aUe^5hfkQhoRsBGvlbbLZ5*+TQEE0<@^w0wyVZ0(nzcq5V(bKPjg+qI zh*N%(FI2vBEe7UV>@<&@w=Vi8oBewo;r@d@zb=>PlH7mV0fXLw5HxMD;Ky;?H7z`o z`H5;Iz;LdKwT@M?$jBPW{iizXlTuTNj=Pi%>VQOI>Rdqeg=2ixM=fs01Dzz2Z1*ip zQDNU9{=*L-z8i`E3**CBOD9g^kaoi3Yk@BofG#D`9F)Ys?>>o~d=}pW#C5?XhB5!# z5$|i$#Fc-f+PPAbLKA0q%Hj%P4o70F4G+dIXfI1F$ude3g(qxn6LP_OXME4;NSf%h zVh*SHq+TxBAu|oyp)~a;qs1TSibDsakhXDGEZ>C?v64fMXNXTk5_NW`8Mk%C&R60~ zBER4kp1h1*Ablde3j`UH^PyBo0pZEyzK)LB{O5nbYTbxb`a4i*Qnf%fHN3tXUiPQO zmm`p65C79lqzR!-H+fOiUX!DhzfqfZAB#9b5%3|NWp2eo5ODL>v{L?q zzqwiu<9-|>&9`_osza}oh`2#8UxVV#U%7u$gJmral-9ELc&Z&<_Hd;TJ_MnU;Q0kS zH^Or(JTJlXs{b%cJOp5ZN#9q}5f8b6u`rF;C8hm(x+}fvHKGj`=mQ?Uw)#I#Em-Bo84|5d6m3DPd{b6ebQPLXkyj8h_v(?Htv z+|HDWh0!?4cgtuq8qRJ|#Yui>XP-I6wBXzeL9sp3kOCaa*uPQHa7B(5n8ehJ@Yl4H zFiD>wXYC559O*#F5#$IAZmiNm4*!4uHH~Y;Bfm!C+=6Bl4+wMIfE2_(;9Gttly6jQ z6`EmkS-jvo>4K<8teog_!z;{Age%lw!9)F&&JaEK6S-UyYX4{u)}E;4Rx7#EeaPJ6 z>;;JR)I#6|9s44ea4Py@^++jC5QY$E2Zly&1NI}9l`LMS5J4Pyip>2o@gjdvT`7}5 zD2EVj+DT#3e5!H5JOI2;>yGo_T^G&+-5!ege*C*L#N>{cypAS+M3Wo&bu)0vO?%yG zpzxUH_|e%U0!tW$Mdky`M}DxpF2EA2A+#op{bo)lD0GSDoHHFs zN&CB;UUmV^n7ZMACn#xax#Th3)<@ zuPRL)`MPOPmx4dlh_EUuAVXI2T$3hiwREm2l{MRBAOyaKSmvNIr`)6}phwaG^X#&{ z#qI2a(!!#61u|GQhs;eOD+Mv~lfkkO*xbUcL`D%Rzq5u|@9TqOcK1t`2$q;S%Z z&_tI}!mv(wn35|r(htDgwH8Bvq!I~#%YkF5W^#|fpwn@3LX_iMIiBXLBp5S>Qbu0n zl;t)^y75AoW zwFlH`a!_hnjmn+{Z#-#s{!E+HV3Q+}EB8POB9I%yX?ASC50O(usd%05ext4KcP}Lc zOiqvTibEk8Yi9(QnA|CN*>gl=DUu44`-BY18_x)je29OCS(rOrO3~a+C}5f;@DZS= z$xbCLXIf2A(UCIAzrOJ>T>vv6*ZnxPjcmn6Vm&+x@9oZcqxBGX5Sk0cd_+EBN-@f( z&)dt}$yYiU+1uplfcF>#%rnW82O2hwAstrI4o|&(hxd(W)8PiiiQizxFu7F%=wo2S z$%Y4l=TLtfZ*!B{s1`9#DFDwhH?p4LdlNrnaxu9tk>yfx7~l2ibw#GmD7U^As5KO` zJt%1Q#UyRFm==y{(VE;_rgVtjDn^SJBL(T*nUsLTdHZoQP6XZkyNmKx2p#+NZ4tVt zZIfUvsaA~fbOq{hes$Y=V%yduh=~qFOpH_FecOL^#DpvnuH07Zx#xVZ-4@r)a;lA5 zudhnI8GTh$ANx&19XnlspTAZwk*GJVhW3=`n^KCtskUAzkMH4M7tjDcl~kUrG%2i; zrOtFB5O&=MzX?=*&2qclf?aUGMnZP=?Slqx6VTw&nbcW@R*>i6g87mO9Fpma`5)1+ylQmN_WZm~E9Bb5rQ51pL4b220IaBL8(B;f>q^4}RlE zEmQ;@;Xg)0bfhq}$;7RlY0jnOo*g*ksbio*@5OaPb!eYcv_KE`Bnn!Rpjc%F1Vf^VF z8OE&Sbm|SyN(R*IqzX35ftDo`f8MaDRq8Bh6x$OT1d%+6kd;YwcDRP+uHQUJKymF+!#W|*}rFz%@c|) zw2v&;tRZ?jld}$bYSmPZ3|*zvyKQF2U}tJlxds7B)L_T%(`=Ru)Qn_S#Xt#({jA(< zKNM01Sq&CN@vm};^MtwF?d*S)RPGF;k@*mr)R0@w=&!Nnh1(_Og*$+QnEK$zrfnyC zCV+fw0PN7T|SloD$B=GNNF}cWeEE26=R^a zthGC&>$O~o`xu(?1nP%~C2r%N3=z$)%3U-04=`fW76nb_dc&2$WZurd%@U!+TGFR$qAbiA0@^i$cVMImbJVV zRVhxzUnioJhz?H2Bfk;+wiEJ@**uSHg#kExYr4=4DF=Un{QeoaM7z0KLvG#9N||hm z)Q23=Z9W3J!A6oK)#c#gJT6Eb;rXpV4R}m|#;Qh^^r$9_PlN(`=3u2hI^0QYrcr2UB+?}?21O|G?GH80|An?H4@`UgS40I z3^K%NWTAhl2UZ+Tigt&h&JRiU2n_DUqz;(m+>Ei#_kjRPPLnq40C?m%3PRL;{8mBD zA+3&4wntU1@TFLNT2K{X7FSx*YLb;y4Py?f%$F05kKs*PY50?ZKSS{+1AlsmS8N%T z*2yx*E_xB@l^rsPv#(|^ojcJ*_}Wvmw*!6s7GHlO@%~l_XviJvNrXvSbiec0$s|

    zTe0<&T;iEKRvodELY_7_UoYhog~6$^Lc?9r&W@q7svP@Am5_ftI2=ZlQ{nZ5~qq| zfjSh=*C0x!jHbB@vB>D_vlT|1hqGoSAp)G^*k}n6g7};e3lOS(I0<1pe3ieYPXK52~6c-)u3TcSnM3fM-X-)}Mjdj)JN+cqPzO zdbib;Um!9eE13dC`Xn;jJr*ys?SRa7oKo1*LN+v{@g6tRZ(UA#D0aA!` zd{69KTx%{tx=q;t7+egJc(Z?W;6o!rR)%J!%w=*X;*QdTDdwvWkyB+Nzk*U`cYo8p zP}EpVQby5~HzCD3{w8|9JDHDzh%&oFn2q6h%ZuC1MW z#{8R%$+;jJ=Py(4JNQFlwUr4vGFp?{feVZLrxv+zCGYAdG9lDPIYoce_c))^w&N7; zPbB8x1eaUXkz@JnU&*4)cDiU&$CrbZ?TjQbC>V$2ws?6OWQw$(kV~LuXBh3~E_mHc zcqyv3Bh^eUdc!%z`zLUk+s(D}Ad~e36`UjI8E5d7y?vJbkV~rZCa)z8if15~46~UY z;Wz#%uvSogWBH$d@r8e}lJ7gphtY0FXa@0XdW$QE`FvmKlXC}_a6AaMI-l~VSMd-1 z6&D+1p0?t7rop%NTE28->)NAur%w%~01az?SYjN2rFJC{JdOB8v=fM_vEmoEe;t(5 zY$Ez+Q)^D+W(A4zZIqy@J$=>N{{;T$pZ$!GZohbenE=3Ykwbs0qa9c{*KOB#AJSjNLF1wut7pbV9Ou2jWUc+7%dfy~-5 zMbfwx2|lbG=5v223xXnKh^>fhbWy7u2g+JqSZ`jVlrpc{Zk5Hy2Dp9w=+Vs@rC&VW zLBVo*B`8H8l@$CN=%e$w(?Z-=1H3}75?bZQL#wFEvK-iULR?ZA+IK!XZ0KK-Ek&aO z3A$i1UR;Z0#qRPr33l-6WD-576-a_u_wgF>x9sCROtry{nS3{KLd` zt>|6p=O9s426K>P<^*sdQkW8c2eh-3M~<9|4x6 zdIH4gJMAMOn+Zuo2|J}Pi#S2DA89a)jU?{knVb;M;Wvm?=H(BQ>&mFRk?-8GWG|Fk$qZT!EJ$;`3w zn!nuckq?`~$%2rLpA+kH?|PU7r$CTiz=gN}sW*Q;%yPqK9D{LuSYqnzH+RVAifl+D z%dLgTVM8F3vm@m0e+)Nak>-IemX1OmuhMeqO2i!^4l*ksPg-uZF+OXZ`$5w^z`pW# zts^qwxl`^o`C$%63!a;N{@ie^5K_3=dkvN@TFXqOzrN+;HvrtF7}McbY3xMsn0tYk zcx!*8sQ-OOWI;aYB9j0siZ8oL@xb^LHl$k1X)9qSb*<#*0a-)yYHSe!wqUcM;yOc} zFF+lmuntn*e0c~Igle9`YM@$g9X&@=h|_Q{s17G|sjfy?w)p)OV#rh?20(;X3L>%Cluic$vmN^TVm)62_bb| zzz>Dq{fi__WpaM-WI5sq**&2>p3rBW(7!yPH)*8`CN~Z0$uG!H6Ta_7mVGA+% z6Gv~{cHq^N*x+W`V4A1FXs4CL66PaB0 zrmza&Eccis%h!Wy_b`R8zJgW_z36`jy%4*UR!RB;otfPW{dm|8<9yBRn#^q7jYfJ- z<4x=e%jC?$`!^BuQ^ddoF`y9x$zouz7`RUi^uhr4^&ez=l45>^|NM9bF5g-Ggj3CWMnLs%->3E?TyRT<*wBm53 z(f~{dd>bT2$BUy_;{xOizyUf$q-HcCPJp}jr-J~lS zkZ&{b*yp;0J4-iLWx3SGdkOj9OLHYbE;ghT`r4o5-&_S|;K{6JwJCp$Mt3eF>q3IZ z)3KjGq_|n?ot4oJNQLvCs!5OX zMXM|c0pZFV3ZS!g)+`fByi3nY>tv}TpRN$p?z+#C##3MPSwVlVA9%Mob!vGfRGqb! zm#$w2m7Fi86KJ`x21sp9#nEEV8sN^?q<#yMbRF>R7?B~>0Ykbr)LZ>dV)7_93l-l* zXXbOop5;ox=j>HUPpoNaZ%wg{Ul1LsgNsE+D%Xro)Fs5J2cm5QS-DL&Eu?LB#C$1X z)I>XCx(_;&{4#%8OsSzuoy4grtQ2H+2f7+W>>I_$uh3iyA(w$G^=7m{&mD4fE`pBS zo$QW_%33Y^n<*SLe?IJ^ZsD>(x)yYVv|sO15uh5z$B*u3ir@w_;|<;H(CEj2La6#UL*8!65UYsu}n zZ*AShrL0PjB+foqLoC#Q3&u|fHAJEy{g#_n!*W2!mT=1yr869ts9@NXCc0X%D7a78 zqv!h^QowT8(iXT_Yvi^{bcdC)A-1G5dalX9)iWx&9maTKkz8^eDUGtkO~kWRF*0Q3 zLs_o5#s_~5T!n>PjE-h>osKKzcgMkmGP|XOYPn;~wjwQ8#D5F&#_=Ix{nH2q^XsBr zZhgu<#=F^+-o{YuGYq9ELeKq3lAQwqDUcFDtFGlw4-}TY@a&jB0OfxZU7@x7-K$#Y z`U=iii%_wrs_jBmJu#M=0JZ$gt}eG&_4EVph0QFp zgMJU?ahh|A&V|CF6_6*BJ48zM3y=k@`v}cynXSE~WRCN8;zCcvCl@-n@Cyk=E={Nj@tLZKXu^L;6WyVS z#viqD4aV1Sj|0um3*Is^C`j}qKbcs&`jcWcok78aE^%w~SxYLiqG%5*Vu7Ze9au|> zWlcbHr?qcF^b;uFwh4B#8ssBErUhd7o4tRDi=CIaz1}5YgS}JMmgylh|pW) zLm|bKgMPjo?ZIHaoVS*@1Q>M>O?Ese(A8*DJXD7=DRh^VSL3$QUMRdRiVFvTTU7Il zuK*Q=K@=qS9Tb38Tk)LM--YFoT@DLRO4Pfh=7qoFMlbcIVddXq`_Wkka0h?KuM+L% zD@-n)mfRpa#N@1zlI3)ndPoD5ES2EyGV{XY65WssWRuwgfXV3x(5GC;TB1iDAo@s0 zJ}$e(Eqohcu$b_3n&S?%&$33uv)pOZGg;4q%hx&g4Q2BpGM9eVF*HYG82*NtL6e68f!b<_XIEJApel}#fX+Olu zov38>%y~LKw;Rww}pfzuuF2i-G{mXz0EYjutVG1W}ktg|Hod~BbB`<0)hjf2A7nqzkZV{y+ z>us`Ja8+QKmvGBEFu+T~=N-C6{x>M@c#063?j-Tl{%RSoEK&5{FUOtk@5GaFB&$)l znKBtTo;tv0Nt8)ZrIHIIH1d9 z25!{q{q#E_*1+|BVn2VSU*5Qsf=hwr7focV7tKeG2nBpDy7Z{80G7RyQ7IHh(?= z&9)kI%Q$B16U2YTRE+L}mWP>ls68iw#sN>zhdk@98kp{xx}&`j`IV^ zemImysxRfYgag$l$q0uUj*8oG^TN@RUH9>qP7v#;l>dKsH*tY%I4)=Ixfcq^1OTRk z&F1(Moxx|j!@$uj}hC=?2<9Lp9uxVKpPJ6rRqm0 zy&X%F1?NuZ;PoXTExI0Fa)g(6l+flXg562XRt-URPodTE#>v=>0e{Bh&ls~K#Mp~i z&BLi7(>H&Y=tQG&N0H;#TS9j?%5Z$TV4@J-Mhrukxwpe2rwxEE@ zO|hhs<P7EpZ=oVnQXiZ zyEDb(_!L~AE~#;}AYG61BcDd;3Z_olc>Lg7zx*bdO!-7(nhEOQ3Q*FYqv{}Q?k6!n zsgyX6k+%B)jLZylPYl=WRZ(-Hl!?*}=Pz{@oCl5kj_!?aw$HTV1bRzaDe$o{OwfEO zB?5mU`Q)G2<3_HIA7!d{H!4zh1I43__WT$Pw!_G-od1WIM?}9ZG-Q9$Xm}G*-oYq1;`l43$8{GKg^gaVLCd z+&_Kzjw1ORvIAnXGRu`N@_^$459s-gTP&R-!F+%E z2VpR4_+=~Vfe3-J_=ZpDh(!t?ZY}>7=+}td>Ozg9ce4pkD;0Pe=}ajgo*>v>L%In zx_RV`ddt|FH0#6~c=CGd6dsgG{9=Ct{#j50h^}wf z6P{&7_AKArC70+RhlVTHm|eq|tzqahN;-q#96g57%ittFNGOP#IcdQnD5!tuDxtwi zrcQe6Byv22CHm7{v_-QkZT*ABSaiRCPL^558M~NWtg(~XH34)^mx0OM;;CyD6mpCv z9^^-iJ(1&d$JLMsv#Yylv9?byOgC7^NS!BW{_)tzX35CJ=i^7FtdAd<$TA1ZSht-& z*8%0LaWsDxrWjMes~nj!5;K3O01sAhTqFI6Fs{Hhp245R`11tvx4C;smSIp}FP^pF z7(kW>G)&Gn5@9jm12M2o444Jy>`JpM(sYnQxARLt>1L%S%a!i5UK#b@^p5B*EitV0iJmxj=KO+{C16$8m{pnuDX5gix06M?KV)V(JP&72uf`0NGrC z%<(=+NTmsqB_v@SCg2w*4dmS2>_Wtd^Ep5jqqXV}K~Am$Q43jnFs8Ub<(?_Kqc^CQAm4qcy;&_hw!q0-1eG$xpPG8V=H-x}%%0EX_ z1m+*itNTZ)jlF-!M-s8bE5RJJu_2X|uKo%6oHeW^szjrdIu-n9dl5dnKb{2NJ=jP) zMRS=`Jo$NRoF&u!HJA7cpmk=gy(*>7x?Rta$len22~;8!8)73{TP0-EgRwKwkuLGK z+)bE)`5afAqRf|v2D@mYVYL`(9D`cnVdW-&KiIDXT?v`q5PHZ6yXs33ahfF zb>z=o2V!}Q?)}>R8IgD0d6=4Rr?BtspER-`--J$t1RA-8Mh@rKABD&+G;$S<9M505 z;)RZ!`58J1u1eP@W~Hc&9rLA*9_R{p+wnu0$WgT9CB7%=A=tFIjBwR|EVs-T zmJ!~GC$xW;eHc4AJHR(z;!Z#rI&3Ub+=Hi4js#>sLygyCpAxf+$r(pg;(TDs^t%nR z(qmp|BRfFM3(LG)Kp%?qU(k7cFM8>Us5`ohU(ii(whMbcu{8;8ZQiH!>+GDPROmN7 zPe1rjct4G)Bp-ZmN9amrZ-N9x!l&e`KBx%q>}`LL95QAScdT0C@@yrW$G^PCP1m95 z64jACp07b91SG}TPw0FRWN`H-wAS?_ac;f`@T`8``vHpMX|fn0F?n}&ubI?BzBWI? zum6j{l_yjfPb_E zfvdvZz>D~l8DLc7*PUrx8U4T!Pr~A=u~+7D8E;=u?>3jab8QUkfB9#t`bcHJPY+NT z%T+;TJUcINMIK+=B9GpznT{?$J(rQpa`k^{c*?6okChzLb1s8*tel^;=%$;~$>TE{ zYH%x*MAyTnX{^zP*tEH0<;ExjcRUR>Ku{#V<6}GBbPETVEx}K2@m@pjdEo%FIjwlw z4BBuL>UdkBk%qDIOjBfb>Vg&jRclh1o215YpRZ^6ucM%DOALRMJd^nkCj900j!J)K zCeu5I9FYmNstlH{@dj)o4bL8%3b-3knZ}GcvCzQv?2GDnTIz`v-7+=V=OlG$*0&{f zKvAs;F)Kj;H%KxsS5e=GC$E^S)6RJ{9SFZtYPs(W~G0@qEQ(*Il!%%#C)ESernAun6rPM2S00;WonuA z*+}9Tu;dAWm$nOmH}i$SKW#!_XQdGMvQ`M}t0P}>6t(HkOz%4J|B3M9jKEXZLSSB} zB~@S7Gxt>BJ}&a{ydfn@ST4f3f#=OZ4>;%n2R-1R2ORW(Tf;J+PfkB`?$m!`0C_2b zyp({vR0Mgc2=Y=9<{lm@0(hL$Git-Ja0<>-T2~fBFKUBe$Nk%ES7i*Je}`{H!X&rL$Bhc<2#pgo_5iJbGeh)A+2 z4Ive5W3?Xe8F#|Sv)rU6C^tE$!8o3^Usgdl1;T@ca32VFr@^qC2Gc&)s#Us+@b?z^ z{fqqGB)=`>x0(F9$Zu0o5PD4u2TJ_{H61`CgM@2bFA!~g-hY2WwHiu*BfK;^n8qY{ zV|vk;ZXT+Qpb-i}wE~IWFOq0ipas3V%-9j>^s=+_5Tq5Pi#%UyHS@}q_uUcAmg@ok zOb$of=};AuL-qpGMpje$TPeIQ_R{PEA!<6!F;#dS?@#R*HI(KUBE0tXWQY}Fy3hcg^ka+{Ml4~oOhD*)FG9(v{nnPd{7=R!r_Feo+K$)b{^K>J z?RcsE$Lqm1=KpeJIz-*w6a{}-oY$a#vCHow3c_Si5GI3C zIXMQ<9E%AnEyYyVy^^f(OeQr?z z{$$|F4c6!r_g!-{yQ}s4rNW zpEX!Au4#WQ8LmwD`AfSg!(9Y1_3+Y+F}I2`>7R!lEE(4!zJ=t3`r!Qryx+u9fBMzY zC zdb?9Go_pu5T7uQn8u$6b|6I2|CsYDNL_@KjklGWPCxo=2S@f};K5XP6tu4N_UQ*n& zs;GYz{Fea!O9=lZg#Qx4e@TGP59;0z3{KSB*KrOSWigp3C$Bi1b%#M zrw?EFna`VO7d-Tns&H+B!G$r+dYg>t-G8CIkE6-JXsUci6MMCCqF?_(pO(VEMuk84 z;fw}PCDW+!XA=IP#;sWfeI_4_X7ltxs#Le2wBpu{DmpGxEiM;o>ZO5EVF?UkMzHME_xRk;6G+wWeBmc1In1* zT8U&tSE+FZs2HXOk}Cz2@z6}hSeD5$C+#frt<8i{dKEAfm4AF6j6&9f1y_`!6p4Qv z5k(jl@*LB3;AQrr0P+U%E0^C(v@FnXK-@%`22ycD^jgqn^ma#xsW;Zh(DVqJZo0;T z^ypzT*SL%FAd?JqKq7CVOf&K8EjCpfr8F5JsKTJiGzx+-7>qGJKscql-1ME^T-#e{ z#Q3&Yz6X(4kbDJ_J37ty>iOp)!dQQ%jAhE%R6A|Gef~Ke&rag%k%N9PCouoCM!(kQ znwzr82r1o%!%+4UfumV zvos8-ed$ygQhO*8{#0PwkDw-zT47+umFrW>nHO+lfq9fFm$344GRkaXVGei0fFy>n za?9&v+T*#+#kZEqfLSbEBCCHD*b=j$h$tQHGIwUf`*cEMbbI zvkTjDR>r&<7-InLn&-n^*Dc)=CQ64bqMU%ZSWjH6Cr<5&Q+wj(dE$SB&{9Jfks<~n zOyF%hecMjoZ1jyhmiUO4yny(+1o*my__~Dnx^yS_x+LK1l7O#E0=_Q&=lJ?MAimaK zYKt$7YmG0AYmG0A^TXHLOTPHRH!r^M%@03U1 z%cpNP`evhVmGrHWzSYt<@>n8>Pp`aGbw-gCQpTvXQFSaL3Iu;-gPk$P0PL8A;ls17oY|g?%x=7v>nfjWP6TX7vZ!Y>bXZ%B^0&f3FSPfN%ZFe1~#>-~s{qd)MCr^%v4vn(oR7o_?xLdLm6%lgZ@R*Is#{ z{Wsf7kEQ8r+Do5A(=%>Ue@c7lYN7wPNq42UPFH)=)zJU+;N|z-CjHIZq_0U2-oK3W z+tYvRt6Ti(_1#}?N3UM|yJoaAzEqYtPR$4o-@f+J7YY5J5n$T-L4T6-hyK@}+wyNO zz3F}1W38Jf;j-ov^^NYMcQzkFTfvh^c#Kf_@6+1?>tR60r{At8k*#_X{c`}OY)MN1 zv!7F1(&CeB*)CiGXSUfax>!yZ+m4#hT5x|a%nQIncl^|@o?%`a>oz4D7Nn`uIJ+L| z(2&xKUQo|OsAK{sw{4zUmYj9&7Q}Y+iQNRTER^%M?bsTi?SX;YCX#nS+B|RRPXd*` zat37t5R4~VPM~b1XJ{jd0Trp8o4xGx-7^8@K9YkXO| zul~QxPyeq8t{?c%>F7W(rPs7Sr(0PYgK7d=B$Isegx1`VadYnE9c9~p^7b~+>vvYw zGH?EvoC>m;EPz7nt8dXW9UO}v_2<2l2xF#) z1~?3l29eK$gC%wjmiXr*0ZoezK0TiB1N7K8(Qfu84*H>eYny5YabefoL^H5jDpz;$ z6uj}hKhFJ2bHFyD%Q%yVN6|LHj z{QeHS5qTQ}Op+5P+82uWnRpeamM3{+EU?%ea4l@bNPwtu+1eZ4_1WEigSYqLXfM{+#%w4MPNCy30c^muR zJHGmWPzm@PIH3(bJ+d*K`X{n01Bx9#HhWQjJ4+{So&O9UPTi?YUms-DBJ=_9@#|Nq5 zr}6F3lh;46FIf3^#T(HFc!K#f2SW=kDSH}h^Ssg6#o3Vk`*L*F^uhs@YVMBQ^3zPL7q$A})i07fP zL8$nyu|X*7=9qtA@;^XgQaMdKIq;_2>w`oi-|_9N7I%AtvTaNd2v-G5{97;xM~%57 zCFI4jAS#$k6O8`{OFX0r0{8m?69t}?8?5A_U~NtemiR!xM1hY+X@X3e8|vF}vmqvb zZZ@Ly4(x;j&jz4+Nog=U!A}SOp(F^^s{_IusYkY(ZKr=nEeYda5^VfO2ef@ZHhFEL zM}n2#H#*2zzB4+=aIGKRKGHoXe0EI$6dovU7loeM`vikaJ~{|>UV1nP$EbKX2pN4A zu%w`9T$>O1h!_E;SNy>kxVel@mmRFK|$I4U4bO<&=q zspg`#QrCZj$A!TvXGaAY*Z~0((`jO-QMa4r&o|Wta(tu}1(}C?M+TvYw?_u)$-0rZ z6PwSk3@|*03U5#SalzW{Ffs@R9jU?WpJ0h!qz3HHByV>~Qojpi*gt;>{P}Ls) z&xv;ZKb{J@1OvQbM34!8Dp=yTBZ5@>-iUzGd69oFhre#SBfI&iEuiCS&@#Ei9sPwZ zh(PhB?q{CymtiYy0XNF@Tjt#;GsPBUnjTCEqD}rYB?xMAQi4e8CsTrO(FrL5Sxfjc zUe@y7p*s-G_pS&)iVF_~Aw^++lqUxSVAnhxiueGbKwiJL6-=2nL*VDE1?GY!jpgU` z#4o4GIumPuVVAMo0lJlJu96>%NtX0^9{+DfGC!EcEke2|(Z(lB>7`S`Rk^}(ba+KF zcih0`(nBL&rQgAZ^8dKr;^zP80X3NCEt8b$)aX1T9yD?r((IYR0R5&%yMVscqb;Bt zXxt)xEd)60Uc8c?UHu<{eZ3yQe(27?riX|k)XDIFpP02aU1D4Ua3#`Hiy=*ykey7v zG@piH^XeG6X(EYT9UH57Cvr_K-{{RxEt=}QdDO-$fjl`ZaEn=yQs z6whLK8s75w@9rYwY@_2G%O4=`K=BqfAwZWXz=SLe*0fkHm&?=9YeLYsw+A}Q|8>*{ z^rrtd=nwmWo_`!c?@U2WBycO}OESXEH^m@-5!MPs7`PX-|E>3S@&}-(d3B;>os!=b zgGVza2DVc9fkN>_u{eoc=Pka%Q#|l8Uovkw+Ty;0{bHOnsXRLwo#D(jJ7;gtYHpJ& zpnF14bZ;dE5p8Faf@o5Q118R+i612e5(|^4SlAq}zF=nCYF}x6&%S^{eV*U?&)z!{{3ilu z^V1=|*c(uc&s*db<6HIy)E`DI@?v4}-heCWiRLviZoHMa59FM$l$htMBxZe#+dRJ~ zgmFX0`~*poZKI~EkMT;{j0xQ4WFO3b|GB4a7A`H8Kl`^^?Gl5ZLOJW{08;$DJw7AF zmGNJ^cg@Y_o-xWSNi269^rf#M-O&(o&3%;FT|qw5Jy*w7+0QA>wM=-GW*=~AH&@2Y zID=oYX}GHT|A)PIkBh2W|Hp@$3@GkVLD9U7N=ji#sf9v1gG267C@e2n9^-U>Av=|k zGHPZzI*^Rx7?qWEx=^Riu{w3AQ-+sv10tZPct^rsc5aYj;xTYN7gBcx%}a=jj}30>JQFwg5(_xb&-XfiP2U^Yq~c(nD-pd z2>H(LsZDpo>?$UlX~dI7(mesOWI~fXuEy>;BmNy-LPmj{HyS?+Ysv6`?9NE2w0lm7 ziNhP^v~h>iJqFLq*2bXx_gLR2V`0EIi3_Mg$`CCN-+?l*2;YrYRYj3 z^WHmxbMQ4e-X#S&B;|COcICZ~O5StC?l~Z)L^tAxX$l^KnH$RDT@We`gu)a_?~K55 z)=RG`{O7cBP^-$Ew23KyiySSytCAf6w_m*LbR(U?$>j&*OEm>Qars7Y;Kz_7$H_VF zB&ps&=SJ>NPiVrz_3u`=zMX}0gk$t%-vV*MWf1DByp-;}<*iFW2Ajv6?j8T|xSx1$ z*ml6_$$`9;8Te89H}LZ@ptmKUEU1q?;kbH8F60rJ;|}7zb|sI0fyyg~=f|PmCW|M2 zZIr7FBb2k6#~oJAIvs{;$m?NuRYm$<5w}8wbkBx3TSuUE=Rx|sUYItohm!6Wd%_|9P`f?(hRb< zd`5B|RHY88GV?!H<*?)7&T8!C=GG`R;kwnNzj}Q;a3~N81f?1#-*;W*%8OIv4kfu= z{=b`F9k(`r=SH|D|8l*0Stoph-Md#;*W>cHVUX*WAjfxnfy@=W2QbIxP7r6dvtB4Y zITrlV3cdvuPJl+A8g)TVpZL!`naleb9C6Aq;NIzNqW_d~rHOG6j6LX8C4%_S4NbCW z>XwAdpNLW}_fowqS}E_5l+(SK6pSE_L@9f_CE@aao5n-Mj@^ho4|-qMpBmf^9~2K?BD;A`X)Dx^9K z_=|T#cDyIQ0t+pDl&XxM?*Xd?{+FqZaw!b+tEKFziVQ!OKV){JY)P8Tv^se(swY*#*4Z0g2ow4KRUigU<9nIrv z+%co>$IoqtwcZzM5C=iQJ+0EHdz5;oCDG}(6O;0K>686(pOUN;lYKK5lcAzcqHB-D zWy91^I4<3t7ndzH-=|1BzD@aB@3{UKWl&*%mU8@JmU7^Fj(b`U-g6+w4Li47?joLo zc8e=LE)mBHk1a0C=BZHjWpcIhaWT)4Z9BtZ-8{|Y4i{suzX*GsX=eDv!Y^LB?SV%8 zYBAR*oa-~q1V6L1|Ncffb$#efGrZ9qGdvq4eEUhRu*-W2ZIP4t`zq|o!pbwYplP9h z62GufwyqCNgqQ({d6dNzI%Ae$%-chyp%8OgVR~Tl3{Sofqoq321Gj{FQ-jpyR66dT#S$o5tLo1)Z}QC zl_?@;1{o=Qv*_D7n8-uAHkfKHSl&EG$+-1(%rYRb?1zm&;O< z#&eEV<-<^(s_p98ne*e!;*BpUef?ES(y}1Oi&nS8pcMNv$VK`W5H3GvO{2Vjrfl|b zJYdYot=sE_Nd@MwZ~U^=v!QU#U=F{2A)n=j8PZ-e{Na!HOf^{wVVC=`S-LwPs=|HN zKL-{t19(q}-L)q;$8F+WA;CDA+TEO^!BY50T;lc&LN|^#s zrng?iG7TA}lxdUeyi%qk@;NAf)BJxM{_w|b#nagHuHm-!Nv>NqFrnNAjqlA2vO3da zV?)!tmLT4BKFHz6!`UrK*EkOH-l>DOb>J6LjYeJxhN-{FGb2=VT@Mqh+hqA0@b0u_;?j>{e0=j)9DUN3!4CNc*x9$b3h_BU6You1rk=WhM=PYY z5{7P(yYpcCI0RruK(5g!t1SWs??=^9I7a>4+2!AGOQsp~Vk%;L$vMNWimC zj)~cVE9^U)aTMOxndT}rO>K#qrWgNEi<-vo3*kMjnDDEAV8Z#4O0}GP@*b|>RT#x{ z(%g?M?T}tn26S7T#f}00HeHa@3Lm*imOcQNI8&d`{ayLUR5r|irvvlJQ}TIX)CHN_ zsvI1(WhOc^gYe|mSHW%Lwuaj#l`W32O)BS}zAh6ob_v10LtOr*+b_soS7#T$KK+91 z*|2t!nS%`W!sV9VahoQ>A&7wX#s)veThJBnPOYFzYP|L{O1!mQ@iu2@;<+-Ec!$+^ ze`oQM9}6=4(QnUxqCfskee92aC6E5`&r>07SO8mn>qkM>^@pUe<>2Pm$OgCoR}b(^ zjV{_^$>V_ULZ2dTdxLRFD1YCRW^CVF>L3$eQ46ZAJsD-`atnz;RCX>8>+xi7w?x}lhhDnji$GdwL zVJ8Ys<+i39lAUdlTz=a#(2+2)|C!$;4yMG(kya;u?0Nq)U8z%))H_(}k6G$3Le#Iu zq5ye6rcQ~JHbJPXJ#^VXKKb)n*&zo!yskauUw@q@j2QTikz9&Gt zC;vyBFk$jccD08%e&d@0QWEN=r$9>UDXZrIf8Swo|I2XwNPht@{0geH?~My`DQ+sf z9_5V7w%*>%3*4>c((=DS3@*Q+0(#}T&R+R5K$v!aoXsQHw3Gkt9!-q*cPssN(AP@8 zjU7q-Hm7Lg_d$j~`aL22@lU+HzitG$_n)03z)$K3AmRw{GmZd@|Ar&Lijy>=C__!v zR~O_xwsEpSDgzgnf8Rx@ly_}s6>htzRI=dcNUY?3tmK+zZInlv)hGcLC8y|OY_Q>v zemDJp4}LHr7TJ?`a|ORdH_18E-02T?NK!Oz1aG(S-aBK(+b>^)7L=2kaEHD%)KrLj zV4OgE^9d&%KPu~ol-rwRThhw7TrNK&wMmxVp4SBBt+FKuR&QuuS76Dq8P?=Ln&+UE zd#NlfWUmeWyVK*ct**8u%Mz{L#d4Z=o@`5hKF#Ih2kUK~N8;w&JT+ENg*Bnv%gf2- zOA>9K{DS*I-M(vJ7O}ZMH-w{|xF8hIKXQMbjSb=TVg&K?cUxrNgK3_sRwP#(bd(&$eZk6{z_IXCn3nzN8pqEzw~{;P35%lW>B~jXJ-Drv(hIMWqwbY|CVAU9 z2u#>pP{VCp`c@N+4dYi0uW6}RRb3PH=8G!y)AlO`W&7+I(IOaUKp^qbKCx$Dchc>jvv zyvS{6nh-DSY?8V7J<|OE7taB{z?s6{8XaVihMa;F*5qm~zn|(7xPpjNn4n4u z0$$t1t)3!%b{2f*)<6MQ`E$6j2bae2FfUC(DW804Ff0k@=7#ME#WMu-*lA>@UzpN7~FAsl|U8>K%%B+n7ZiklTSe`t`Q^^_Qv)GT{{DlS;LEaBzW z%NKybj=3SGS@zy3i{j1AP_R1KVL>4Ri=(;ty&z}+!~(vcQ8I!&rHpFM1Gu>pu7*-^ z@#PSuoSPdn0FW;RG~{1lL<7WVgO8(75a0)4H^XnPQL1P_6|_nwNzv6UFAe}*g#gG& z=T-@-_$UlGHVOjHi>MxdSvn`GvCXhMmyRi5L6t9to7;iqwQ}(l%YK4*P`i1xNFdYs z)zWiH9`pTDKBTD4;f^Q6?@6OH*@um}Xy zXLt`Z`S*O8INn-15PG0>WEC3a)m~>!uF6Y+NKzVOezw3ewFb=^G1Je53AD3h=Rh1C{ zNqzF-602-+@xyTn&y2$F5Tl7k+&iclCW*oeO>$-1^%H)T4Tcp19Rt*B=*6gJx$=@} zLdQwSsivhXr+3G6=2Us9&&s$Ypj!D|S$F1?4LMZ?;{DQp>K5EPOhn-|b6X@!J6tpr zJ@M9bZ@%&w{@rKW773M?=IyDxwBQ7QRfl-@1|>wCQI8+0r?2%>LjUUBWo?U^(hKTg zK5T;_NvXiGURb#^ZHlc)t;>6`<&*YA1AEaAVgC)fvv29bkQqnq2N%6CkSW*WKRbx>;3{{&! zzBr;+vocNvV>zGhVCC#d-ahnx3?sJnRDBxzK{@{fKIv%vONnTfo49!`@B^OJigF{t zuXegObPyJ`9u41p?cUIVh#H`~ot18lY?fz$k8}io9O(rxEUt-EdY_X{W6D!CyBD*@)0NCi;(=s_wHZgR0GkBvedK~XGHk0DqY90uW{90LRFqUt8@ z`x>Y=UaN3H&OfBs48D|NhBecvpt&}0YOc8UeOdP4Aq%tOvRw^lq3DTtak#33pe|1p zE9WmjTG1%b_=fIfG zjXkk+C=@p8+9P=W=MymJM2$Y8oG-;imq{%N%`*5JAx6w*QxIs=6lQ>6UnF;ZgC-eyTE%0;E7nB)8+5!HoW16rluWIB&%J}W7sZ3tY7nF1Pb8qa56j;rF zkF4gCtG79a!5-x%u>x8Ov~~vi8T6B|UyrK~am2&;2a5c18#dMDpT;5aG$cmrldhB^a}T`>*3V6|11ALpd89cF`$ZR2qn(K*_~G!32W z04~U|5_@4J=DE+y6RPuPGD2^J9obmg#9Ux8-c zg>guHTN#x6xY!Uk_s2BQ$>aBk8}7ZNq<;i2nRsO}BJ!Y!G;VAIWDG*0o{GZDW?s~5 z2k|p?laxH>?v-v(a)wplH`eC=vZ=byx`*`XR{ocC8Tn=U4T9%d%d*Om7nq}z;AhqHTJ#>=VU;WRPwn#5w8eVhPjqCCqyDcWjP!PYafC;qzF+lsB63e(NN0;F(5whjQEO`@e&%9M{T4u=n;p z8sunB_htm8d-iOfjaTTJ+Ggd}c9R4JeL!r+Lx^&$t`xh$aWT1njLW|RyrfUggVb&k zd^`W6yc<+``GYXs>k`)Qi06PD^Uw>*LC{g6^E8@+@NT>>5^n^F&$r2VpvpdRPYm7+ zTigOV{>+GW${d*Uo4L>U4&EgO^U39T;kf&8{8RyZPIRSnwrabltfGl~%wmEBrW|h4 zebq6JU-Kym1FU6jVOCEW#Il7{gRd=QMyRz_ zvW6V$mU?fB)pID}ko(TiCnCMmQ>-p2#SPIs0>n&%J-T&&+xzdmcdfN70HOp%lmIeq zAybXkRdrG1$WjfJfRvw2D@j(N(Z@%GUu)V%F?*X!hb)B2W1J6$TMTGdup!& zVf9rmVOZ6FR8voUUTtbG@0v$pc>z)68PUGbRBvdId+K0m5s0o8mwm-Lf;3~;MOl2X z3*U70MVap8NI?k@Hlr)7&kcZ+6|5Z56m$c|-6tNst^<0{;ABAZ3?t0aC&r=2K=7#b zPJ1I|;Iaq{_eGUUc-Pn4J8c)>WEIyy$4JDJA@@vwz9@V7EiGlRMLUq!dwrew$*mXV zQd|r8qQxx`YFQspPR8_wl|}+9_=!ua^oWu_1v2e499Ubbf*q0kj?Tphh(2h+LRLtN zZh_L=C`jK=Lp;+YzMhQ6t`h+92I@YsZ;#7>zt4bRG{j`hx+vR{lDYibXJNf6l)JM+ z;f#TQynCuqI{Uyy9DU{*EiHS39YfgcjO(Anc|CYfIPVVTJ!R5oxsbS`Elm;M&&%JkU|c&QZ4I(3}V`iZF0Wg7_6RD z_x}1e7#szcKgb(efF>EKcEv?`{Qwm10pX>8ieKpp%yF#|Kuf)H$ktUgYtAZqa~q{+ zo`z8M&eqWlYP*`<$Y+@FjG0{Yc;+2ETQp`Rl)zdTgx{WA7o?U@Ev)$7I~ThZ>qkJ^ zVx@wQb$uU{RZ)16%5~j4s7u#WO9y0T$#M6Qr}9!}jnbPe&=)Ox42kF^9=S-*m^>eU zz_uC0<*yH5ta5A{^v~YG}ip)U*t=ZDu_ z0_P9tym<^dzXGSeD5Hk8&`hJ)c)5`+Fw@9f;o=c3a(Z$H_w+;HkOqNwSETdcmE)ej ztV2o%S8bJbymB(KGqFVmH|k2tOT+|!R#T2EX`!Pp4!XSCYEoNZHiW6ipv_QIL@C-+ z-O7gNCUB=iYAg4dA;%RM=NJrA$MWDC9np5LB@|*sDxJq_l6pZ*h;fs{ti%}46||3S zkttSB7VG=57)#88m}YKWJs^I2kZG-Q;wsPmt(!n-_eNV_*%{)0+LjC3 ztRTl|k99nLI2VA8`^-Lx4>@F2YNKqSY~xYsBW}Pt=SLQXD&I7+yCbD2@T!F=VL-UHU_$tRce-w8Bnm>V%fYk0f5HcUuG8bjLws)ScLp^=61VmX)jvh?-%tJ)ZtdSyf1Bd} zDf#o<+KsAzy5j#D`DZR(0e-U-KR5YhEzSYI`QW$s3B=ip=K#JR@k59gF1{7;BZ%iA z&Ru*H;5@{3#LE|t0=yFO#GK?;mEFzaex40+`O5QT6*&oI(0UQe24m%a%X}t`gAa(2 zt^}Bi9YeX#_Ia(lT!DdJ>l;hMfG@inNr1{joc3ig6m z9w@F(d~Z^VZ1wE+MTx&oZGp8yy)q_SOHB~fx-A=;&br-?bVp7^=U5FF%eF*}#-&x+ zJOOup93FHfHBW)Q@C6%x4=w7@{YBT%yzt(Sfuf5q9_xIf?aAYKf6orSNq3HSM5Gmbn->bpv;ieS(oHt(#WRw` zZ>F{2;|j<4vhyK)NS)PF>1u!lk6g)ZjpW`hD~!xZOa8@iR9bz1t1=SIF)F1U%J!Yg zsL$p9?JwB5d-Kq#H=|P>_IqfD{Z$Ym{&1;LxBh+hzpQ`VxIh~9915>iPvGX)wE6M0 zn$fWQg3aw?)ygxaTwX0V2b?ErVDZ)i7iGTv+|C-1K@oCjH2lZ+0dT^8(ena=|gnKT|$X63%vm&R=caZ64H!Q#kKv?0*p|Z3ET(z!1u%my@#8=}^;ltp) zz=3Z% zZAniB@EFIm23IjYhjO`8xp!SX9wfVD*)iMh>Ihmo*6y9t!G|3AWAR}i-WPUj;mUFH zZ$&GApZ$CkMB56J#Rm@2p3NOA+7CA>(YgHa39a}xNQ3K5C5hAuvGLBRK=};-UDzgt zI3m|i4YIDUOA5*x=$vTqg@7MGj4<7#o$(Ev2-*qdANPDy*PZvnCp-&|y&zD#6c zK0C4=zEou4zGP%Z-*{vZzUz=h`bHt^=^KWumoFAsl&=r6-o8j=oG*l%dzhQES9$?| z>pIL}gaVo2HyVD|!*2roQs6fge$(MM6Mk9ny9a(b@Ou<~dGLD@erw?;?x<6qCF0T4 zi$f@To~Wtu0<8w+KS3MfbCfNAYVE!n{9zIKpI*fLVSM5boreu-ChT)@a?Urc0G-&t zrMy3;42*~Dp1s;(FzYu18YhRU{8XVn{C=WSAKzMsoSvU&V{3JlNN$!1uNA)lOJ{D<5!m z^ybzzZE2M~n?5~n!;W-JKBsgf>FX`jb)+NY3Xy8a6)No_SD5rExq3+NlPg?$lUzpW zC2~bbUUEfBE^_sho*-8*=`nIeNe_^#w{$nTIBDhd_|?Gg2>iZ(#+u*Gl`18J0ak%6{X$4?*u@@`2y) ze@lLW{wF^A4Q$=qs-;;J);G$c@2K+3aGd&XTY6kPp3Irp`COeE&}rE>)4hi-?<53; z1S}XQ7hOEMmZK|ET=+q=k_E<+4u1-z%&9WWHz=K@;)_1+q-aoBPYPAdITGwIz}0{?0_;eprmboL8kv+R01ZnOH3$0o&p@tbF~YtJ_0GuoEU zXSDN`c>nD&?Z*wuW7_fbsCJ_CfgymmF~{M9+KN?zJ*|BK??2_D?K)A4fk?ID)q5Ld zSJDWspaDuM4gh3xC+65DPR`@;hF4;`dnF$8d;ob85(^R@Nv5rEWn7kcPY*l?9?b?1 zgp&*30;v176%@07G&mr$3vX?3KzZ@!Uf|*fHI4E%W!^Rx-UB7SC)RUPst*gWt#}1j z;2If_(J*`)a6Y+-dpd2TDnC>F1@vu&eS~d9_XKx9xUKM!VX}19NUWO_by>#ed&Iba zViuW+(}_1`?KwPrk;@+q-f0s@Jr$DXz8*FeF;_!s_rqp?Uw?V3nU}35yCSmBP#c19gqg41msHp z+?vY3*v6&(E89&`&j-WGcTalaY58 z<;5hi5hn48AD%=9R^f<&x_il(&kC%4OkIS_x#vz+q zH3Hy&6_$$!n49gM{k+F7$BcRsv-+}t4zjgPR3mcvZz{7=OwNs=2D>Npe42MgWQ#43 z#OF=nK7&g-#|m2^Yfe>2l)>sbk^^0CIY#5Xy#niP(aQ^MeI_ZZ{`TONKVX0j9|e_; zI|8tVnwTD!>*#GyKJAErLiUsd@a3z@@r`wVtEblHO$`y>f9!&6-4>~q;oJ?O2CH{w zNSYTUR)Xs)Y$;%vF&vH3vu?cDGky_oe^iz|8Lhl$_Aj_I@6ByL8?nS_-Gu|EFC=Y$ zoa|{V`MGknY6?oWq0LTZ~vq!7tc?#<{`(|GX@9yWGVU#{7M31of ze~|iSC3SB#^=R)dIgIN|}U(GhG?SfoSXYY@nN5$S5X zgL`JDaz#IbcSCAm7YUJEk~J^KB?aY8K?1RQ=M_o&m2#v8rDI;66L58ZWPy-$Z$^U+ zvH+d>ZHk5VH0I)|lm4W1pwuAMc&nxug=GQ_AHNsNGnHb1j~W~f!Q#(%VAyCSETax` zs{{G<=@Y}b{9j-Yu$D%s3VE*u9|Z&-mvm=dJQnm%E-5%K#nl$#h+|^iVgDWtGT(Xu z8{o(~%FiA48u)g0pwO>>uq8k33SB)Kiy4kxW110f)4aT{tEBF*?9qy58=y>i*J9&y zYU3xiP~&^5y4t?ylbCfDb(7v|%$q1?SG3JfV6+=B8g|HH%(Wcbzr+k#RjccaT{p_I zGN^%O>eJymyXh6B*NRg1`heULc3_lp65dk)lvkindYAws3b2TOt5ASihKyJgaPj4U zj2nwwyQc=C#d9WO6So@1P%-%lWhjAR1aI3|aO)rq1HrD(i(*))d#4u@iLDUN3T#z zmxwPWdS@4k2cCg{aXnJ;5+|K#?^eJ>6yqBSg37N}M~MN7An_X|qdIj-_~8w*EFOcw zDPM5JY*(KtME{(<*aMD&_ERieLB$4GeN+M9wm0-#(z{c<6a$?y!&50ORk`@taZGj< zpk287E?8l7h<4XRL*BUz&u%sQO%O$Gfz={GF!PrIbxF79%|+>d79?Yk#3=c=)qJL4x{G)_oDD)z z=yOMBRxKB>{@t^R#RxZm&o=dwI}Zp3*8|lsy7c$l3LSTL1B{)nwhl-3F0?q~Sl+V= z6ePgT+T}Tp%z_r(W~x@j_M2b zV1v)*@(ZwILK93xay61@XpB5gRkaT?lIn4Pq?4l#4u{#Y!_8Wu1cN?buk^wO@wqk1 z&>K*%hp4||0o@rIy+Kb@E3?4SHRz!(s-+5L-4`4jkKXDgd=qqZC2>VhIdGUI%h@x!>oV!@ggnIAs;4S=J6K>;s8CyT@&>qkK#;3YA}ig*4qet;eMpfim! zPW)A3@c>i~ejo$K>5O&aRq@z0OhxMGkAvqr@c)OnYl$-5edg=m-M>owhw6XAS~42d zwK)Nk9|Em-t@zYPm{T$rM#B1NePn)(!zXPlhS6}xw$6QD@pk2n{1wG)5B0%+Tk0O_ zowvI7P)}~hJyZzz)Y{g=PW+(N88GCfq^+;Ea$Cz%TWqFILw=+qa(!x0+WNAjpuDTd zkRJ&!uQvv-hmdO6t2?TIFxpVDVN^) zJJg`9w6g}Mp)#FOyG)W$sV50r-%UDvv>qr7r4jS>4>d zKFrJ-UwH}ZgF+qwiIstW_}${J5do!67zYAWF_o9H)LKI2G<6yR#Z)VymK9${sH<$6 zS1w%xrTd+lLKUI1SUIRKB*FxTSju`xdAQOyuR`+e3n)*ID7Us>`8FW4CrLJ{Zskdm zwW?crMr5h#Rz|$PfLruz?d)y2pD{a0jRY#&o7Eyc(}=@3ns>y1!#_2t_e7s;RQ37h zc~zfomB%3Ov_dC!w^=84nyI^Ka>To&Nyl*L$`B5okXTV6CX}oB&3u@mj&2G&CpGz@ zKP&c3<%apZCaA=mb!Z;FvnfE&No~&xGJMhbcvQOQpv|*K^N`e=5J5CYDGy1-*}S*P zN<>JxVID5gqRQ@ng>Zuso)=^F<_4<|OD%Y#5kHM_V`!V~oN`UxbmtU9-k9~_V-iy$ zmc{`8bIQP_QNXRh!<2)Y4Z46JeF8_i0Ee$5cNE3z0w%u3*4KQ2f2wZ8A@< zpG18SFsR>=v?|Y_DX*Er_=`q{YJ zwxQOK8>H~$HncVhc26CCD!J@@5A}1&wqpiM(#q;2F8}o0HrWpS-Q^2%9GB_p59ij?iHa-;7Unj~O?6%Po%;wPZ`dIHK?Wc09B z*;6Hd<;=rcRT!nREPTf)oOd07IT6}2$2u`I*U`dzX8Y})Dn6kM{P;tGbk6}kq0a6( zCbIQ^xYHDr1H>Wtly>BX1z@$q;=XD_?<1r!P2&uA>*^+Ho~@_ux43 zCFz2?Q+R7=E6%`YA#eO9P74&K7AkLnK`q38wL^I>jLZM{ZtQ*=1{SJMhDAszipQ<7 zFh6DTo@b1qstJ>ag%%Vq{XSTOakhivN1x)yQ#kiDh`wiPQjj!RNjE<(oA*2tw~+Vb z;Zun#jrh7ww zgKhczz`T3lLUP1%Tf=eZ1sBY%`RRs%Ih?Ip+O9mTaFe44di!8=)&n)JUPsWGGkY!W zjjZ>w@EmJMrpY$~QQyT^A&XuXjh_8|Q7x8%ro3=&Ytca5$!rbh?~wZ4MO-{i=&Z$^}^UiWVUuT6K`jWB4K;Bs&@tx592_2_xhl(%9{(ndVK>ESg=&mf<_CaDN{ z#+syOkxyQe^c?cBYm%NvZeEl0Nigs}Ymz<%?m6MGZ1PNUCQ&u+t=dgd#6cxGYKwp@m-jV-A|gNcbL zgE6Gc`BVUg_-)U(X&yd#7qA-g^DEkr(||o?=?TK_b30ngVaRed1o4M|BtE2CdgBc! zqx!bB@{;spZ?-9KTlea^7wqe;8v2ej@GwMmzLQ#xA3Uw7RleXLO(}udrRVx-L4{L; zq|9w7^M0)1wblHQ^RTdWor4TTSjI?e=eOf)ge~|Q;Y)vRXNwERcQ}DR4Ia2?oOX^@ z61eod_8j(;-MI1`eXiSoO6_+R7hTKFN?2iv>3?ch78c+!D{i@rZ^Uj=lXY8IuvKH7 z^lNszT${Xi$wCk_KhCJV8*X%PDEEOMf(+wor1mo%vL+VY2RAMbhtQ+078bg_^X4}c z#Hic>FSl~j_DZ)aRm~bQxEO0!A)N$lxbk=9@5}N%H0ppl)k*SNrPv!1~mB6q&5w{`%`VWXZ>ZZJRN@jaJyFCtgU;NALZE^;6vj@}_ z8Wo&P{+9duDV+I#FW31CiQx(_()nkuR{gi=K`-wlI zlb=U?CGmXXMZ}AVZy{bvd^hoG;&sFuhzE$XHa7O7`V)_TC2l4jPdt%$5^)RhOyb$Z zbBPxcFD70>yqb6&@p|G7#6{wM;sN4@Xq6j@n~28}HxrL1oNo& z+)wh2O#TcNhqLi$hBiEwa0KCa!jXiNbeJdHi*S}M{r!aL)B{7VF5IcZMLJxpEAJLv z{-uO}dlIhJrPsGtJn7eRb5HVrI`zl*DpQ>4+I))Bb?x%s{)7iCXQod$^8LA|r(|ZR z>7rOrhE`4;VaAW@c)gB)rQ;2{aKA3xaGN&VbelFji7-z*i}*s~)zq(Y-&Ffq(SEfb zl~BKO`gGU-Y|p#T*5B`?Bf8XC(r(QR?|EBA64_$B7bp1ZAuD^>GtK1Yz z*V#ao3xjAJC;x`4RBj^wOu~tTucZHfKRbOki%03r6rM>qb2!PRcqJ5GbS3@&73mY1 zKgIWxznO6HP>Rp`8Kuv@lK%gS^vuq4h5x_Fm(Qp5H?6xF&t~gy+Sg@LJmDSM_ffne zisz?zV!3ub?JxiD`Gmo@|JYNSfBcC81oMhwt+;ff9!!SjOi`iFs5JF4P*Mk1KRp;A#8`*V0iTb zrvKX^N0`@j*m$rD--h}ooC)c%KG_GE{5#eBx?v38(hXzzs=MLaQNP`PFxDrwt_#~R zpKkb8)Mq!GhSy6sjO`(G!`L6iZWzz@HXiE2SfBWA81<9c4WqtuyJ74fo4aAuPiZ%d z?cLA~&%^8Ga2K9~`4L8h_2Ca|+iTWgZU35oSlgc#>ToXM*;HO9;c1|KEML*#uIml! zTil87QuJ4%i!bPK!{M%f>l53VtbVaawK(ahR-f~A`ekGBtfSg_ zXFlN&W`8)UwFBiI)!H+hN40jt!lPRIT+vajooDk=o!#)L)=s#8<*3%aQF2sk|0q4G zv)dij+GnbdYV9#~N455t`lDL=N5fIA{Y5;gwFmhLGka6usMg+MIHt9i7>{Y~DW+pu z`%COGt$oUTOlzNtKc=NJf^j0WgXMnZ&*KK_M7Zu zTKmnyV_N%7?lG-@{bo7g(X2lZzJ~P&!q>9?KsbT*2f|}me;|Av>kov-vi?B$Ce|Ma z-^}_0;Uv}{2v21Ff$(J39|%uj{o$C_PAL+$vi@+4UH8-JNmcv;J_LUH8-kr4-RDE?oR9&|> zLzgs2cS?gw!_Xi|DoA&CH)rVXmhKdgZjf%JrMp48>l>fveeZYg9|vZgT`PWTt-a5j z*_&4!+AUng6H1lou_A9MB1F6UM_^{4IPz<347$;y8H2zGrZyyKP*@K{=$7hs38X=; zeFzak;ZbsD@AmChw(jB=-Gnp1HHfZGs}8fLUKb8bBkN!{Fbz48{w;Qvk79-sZLm$Z zl)WEg&oV`^?k5ifB60cv*d5{f5vTe^?A_w29mtp__f&$B`yth7`^8!PNJSLgG^xJG zF~;{)qyqHnZN;@N(OHlgSb=o zZcsNaGKu1(yBKfs=~&<<3d47(tkecsr?j&o$PBg5itb$N+dyD378|WKRa;th(kVf= zDoP4Y!}n|YjQ)l6({B~+D2hhMKH>covnx<7UPGZ*&$I3fCG3ojKi;}RKX7Y!;dcDJ z%LlFe(*$~#4SJVC|0(mdr{Xz~!r+RbEqEr|9!m@2ExUJRWP3(vf?E$vK$gbZf%Y{{y%cdO)*XP%&X6JB6nfed7@^@|?x)s0EdE7*n@W3N zSiH$EDWp0(DTMX5qv#y#J+=b9H9bHofz~F`og2s+*z?y!lo=m+T=%VLYv6&##aYHnNAB#Kw&pNH}`AK z7^2Z0+`?WNoy1+~o}7ZMO)O;49-G9iG}}jsVDS;0NhxHo78Kt{0S0g|@(@e~*O9wr zS%eL;`Vtax5OEx}x){J-Juq<4A(M*n7W%dBu zUHn@Zaw=`T3@A3Ge!D;s>6yI>#H?`J``Yk*pyAGHp zRh1VB6q!1{NF$@PPo6icd+=_E8=P#4t?8H2eZ+wLL7w zr{eN}USOx`J(ahAAwyfre!yw5JVoG0sxUHz$vx%c`zfS#%v9ly&u2tMnB70QeXwlx z?^L|%yZ96HX{eZ)9} z*P&!~W9a(b6IF3;{#~WneZeUmzW`BfK7hdJjXQPX_Qp44Kjkz;zB7DIV<_8^hmS`sb+BdQ>gl3H%A)-6-ip9aTr?)l>igGZ52;Tf$IyV)|Aj|gUk@t*6( z|0Itdh_B!A3m8&E2LPh#cQM}py8R0=)dBl2NT%6y3z=y;{9)aC#>W?MtrXyUhR67E zg|VaGXiQ7xwQ^hn2ac$Eg|$}Pt#0d>nyu8ePTT^wI}~-U{j7mJ+)ubGU6+ctuZl#v zwVYj@Ox0gA3CfvCoBgCiWc1D&XZzYc%v{z4DP(xWECRaaG(5Yj4vx-&(deJ5x6Awj ze6{6f%C}D}85{zsZhY&gMS9(I^4Wp&1D6e0D+8CZO&{E{AfP*zf5fXF2xRe|QKvB1MfQ(&HdB2Wy@SRv#*Y4=F?qL-D~uoA zkI)@o{1~+zKY9$p>yUB-vICdZ=jGSYpjKy}T$VPt(fPpiNS>Jqz)tZ5RZTCe8{8Ni zFg@xn`w+QONEe)1FZ%?Yp{w2=9^La+Z7{gpeE#i|>W&J8)?=;@e0dtTI=L{x79O}% zYzo~^KTU@MO2qV@_K|#Q*W=hHR;9aHUN7)4>>(`O`)xE%BNp(JI!mrC)}7PA&t1qt z#9=dL8l#sLx>7R3{Yj@QQaZhCGIzV@nOwdtT#a?_ta@b)nm3nj(ODWosgf-U`b&)e;);a}?yTbCjho_5?^XgaLZNzLZJ ze7T=|mu8}he|f{JUH1YzHhYJ+-|VgJg!>S zCvq&dI(N)$J971D12l!({)`V5ws>0GK791j(5oQf=j-@*^DLTv-6Have`$f^zEz8* z<^H_o-Zqiiw15y1Z8foqi5SlN%Yb6a07%dGFe*gk@Xi61Vp`gW!u@4aZ9 z7Z*@PTza|e`St+0Va&XK9B^ZkA4;shhF9zxxjDiN$G0tuCb^@uKlyMog9)eC_GBZ_ zc+iYjoEu~6^TN`&QFJ4Kh^&DtQmTvE=5|s0IvehJEq$`6Lbz3RL!j(gp4OPz%IK@arqFQnQs(~YVZWb6)h;n-!n* zeZ`;Sdokq_Lg$ZcQle~=qx^Z1RTqbp>UxWm>Sm9W>T-i=cQa#(j~>1m8Z0ctdMrzP z^|379V8R8=0kj&>ZEQf$CzoiG{!OulD>UqCp6jHe2UsGSk9yuj0h)l-=a4(=49N%i#3-ood}#t@HZLp?w3! zuEIpJTP~aSOUJip{HD5Xs(a z)ICk*9Il=P=D&!){A@6<5{Z!Xda|J(z2+HlS-)yIRnc*;sE_G?Cd#pYuVJnw7FD`%PJ~>06-5WVC(%8so049}s%To) z0DV-F)?OCMQLC6%WZ6T)m@%JUQ*61-@Nwp#JdmT7ffu?sGKO%}vd<~bM0XOTyFN$F zMa`k1a6eQ(KUs~u>;)aXyZ{RK(L;7CX1|N0cl&zb>fea;1H^*{@19Orq`iOIo-Dki zbh5lbvPv2I)WO;-7n<^CYFw}V&nH$px3N!m>b;FCx##)4oeaK~$-}rznQ871WKVCm z`FvZ$oowgsG21`(HK%F5;0@2od+(Dbb$)d0b55Eowwel~eStm8?LD-e>X(~IqWO9d zCw-pT8xhK$cL~g?vSg+e+xHvv8)%^+rsmr-%I&@x z`ByJWukARJjCk%&sGch5tP4&tOWRHN7i`eiF*d4jV+w$0ypL_K?^YF?Vo#y*mh{cZ z>w*C-m+halPd>R*4~B1UoDyvj&d3vmv%6o%zUW$}#K^9un^|qsDYrYxVjd@EF}xf# zzoAe(|HJSiF!(|`REw=ZEu6U_B7L`;AUqrfl(b@qn^}I(p1hh&x^XEpW8A(#9lB$< z%VzM_W&i-Z2g%C06^GHuhV290DmmcS`Hy zOrH$X1``45S>VdeejGfFZS@D6EsFVa^C=^f%==?SFmN+>o2fN^AlFKRjyf*eJ{ zJJO;KqH@RL_V^`6!Kh@wZ*76U(A2FW(-OysSCGNT<>bpyR|WJX;+ic>XutcC1M+8W z$_74?!m#011p4DTczg+Ye^IQV!>-RAkcv|S!y!cEK zOrjfYueMF{(CpmauL%`dw@uJc4)tmgO1e`};YM9a-hc(UzfO$ZTE|&%62P5!qLp{i z3BD>=*GRk}jWwi&#Sw`Q{s?wF!wxb8F{=X6Abc>F700=5q$5`T+uU2zjFoidN6AG0 zf?F=rXgiDl9~ zSnqXW;_P5l1hL^_-_nYg@FB=#iqXRj1-;X#7Qq*LdY>2{Jan|SJK9|*!*T(W48sW^ zyU}Pvwp)?7hx_Yf4*noO&&7O-<&865jX~(t^Y8^-AQ%oxrBLW3BmFS>g4}z~i~1$p zL?akBORR<m;v?q9>x`i7sK zc2!Ud=1q3O9e&5%PRdREz_LaDNdbQr_(oj26j7Pac)&|95LTJ3?6Mgkx&pss{!#i| zo$^)dkDs6LBTuUQ%m2W~j(Sq|G5GN+f|%}b#Kz40&nDO)l3?^ACvbQyVFxHaN&*Jw zNP6;=74?=}96;`;c{kxg{>UO6SsY6NLX9FkfsH3PWww z`1SnMZEDJ*f$G?ZxC-zsZIdGqhgSs~-$Wpz3`%}R7`>5X8DVb9_af7A-_zXjN}Z7Y z;!l=p%@ErnPH0b%;1fZ2i=l&qwJwNtp_r;wr4+h^6iTF*aZ1C~txleCs~doz$9B33 zlS@ykJ9f(k!3{%Lg~i$dL#nZ4HfR{vlqu(}sJgab*zJuL=NBszVMQLDz{+ zB5gXm0Op4ibB%lW?c-j-H`VYmIGx>*fBdnRo6&j7p_8RH1llt@@FRsj_*Lv^J9zZr z7iO3eNih3-u;?;I-YO^hH)(e+^lUZ>cXIumpWqL^C_T2pm8O)wwDay=joipLt#Lv* zwqW$+tTiqtFgiVD+5{kUDvrE{10j?T==vN<>%b9AeTEqXSt|FttwK;q1oiUas={zi zoA@!ik$1OpT-qiIQpmiIU%K0K!-RU%j_)MGt$S#8M>- zChx=3^Ou9cS%UP&{5r>{7mxQLz7UF%6i?Ykml6)Bw+6qW8WKkHo!^DLrR2<(1_|R` zahHw9+}(eN|5#EKky?Skyc}LA9UoR8>VQyPzrdkEa!)m60|gzHuGm?p;ljw5H?;F) zgunbe-v^4<1O51*V9Q4S2PFRdw>+K=$Q>bx@+ z`~)fsuwg@PaO`xUL7N5RFnRQM&Pjp+AJ15dz)r+>($ zT5|(M;0@`GM`lDy>}TRi??P-x@%V=~&MrDX&jbG6EXiCL5q~pK%=gOc{7#P#i zLI2T6Y)Gg?N`MXT;U#VQ>K3b|1gbq^0YZ3m{Oa;VBXXI??ca>}Uq+U{Xw$m1_9S77 zi7f~*lFOcve`08PlyNMt{`5JOK&N>IiWLgkYbv~;-g6o;+AxuPJX%DNWIWkSiilt~ zaT?RW0>Usz!4~YWxM4?VUaT>V12vPBq3w^z*u*-0b=$s3&7P#64r0=FJ(eI&0FMfr z%_uF7ke|a5DO~I?gOij-jKmEYVE>N>VEtX#dUPc9_Z_{7Xiz-p^eKahA@C%g`4k=9 zi4iBPcYg2!5BU%fcogbY*izb-`Y=#lM;&0~V!J9)^0cEoC>>xq@p8-Ib#|1c+FF!X z-Z7pKvrxq6y~MQLK&%b`iyNQUUl<#HxAsTtiyjfCQmWxahPTHe=Q7f%;8kFM&jH^3 zZvE~S)h>xk5{?iMiqA>O*g*SRz|5DKnb2poz0qscN#thfr|ep*=}wwQQDu_GP=y%` zT@LJCJL$K#UCu>V%D;zU5cCaobaJQ3G+;f!Gq2bn*p!%HDu@ag*tdweeoP$4o2>*?Mno&ysL_W>e;hX8w-&&kqHX#>*@qYQKTqc9<-U^5nd z4T&0+62rfPQU)XyUX2wPM9HeH*#*yz8(yung_sJXOZW-Yc2;ufF0+oK2&PyEz1QVM zl;K5%9|Y0EK7klvRB5NBMg7p}LWAET+F(U6Cd86-rAMv++0lmb(uCUgM89}& zA*gFVrNU{Q6>$zYSF_&1OGG3`8q(6}K{OzFAWbl4NwT;QrIz2g)~gds#xD`)-^9bm zVr~0*A##{0-e?=3O08Tw0TpX$!mcAQ6-XV7T;fW3t{|}z1`8Tx`{emL9F#)v>m>MI zNT%WShZ`|~scSK$2ByX*6gK6N@GFWESpX~;sft`bI$t%KMh^@>h((Wtcgj_)JUC^a zDJlmm2KGe^`b4u@tK^AcK%A%%(P9xdKxgbrwDO4-t`{PRZv!Cccp-ePqP{3UEfPg7 zu{ErQ&2u(R#6W0VgLUUmB>H70`a?&eBjj92Ob`sf55n*r4ohj&Oa#Q_J~J)cF@445 z_%SjvkmG?-7&N$v01emN&?8}pH|XBNae@6f&Y1BY@wxovkdXCg&|^D;37S4Z2z1G` zJ)5*w!T32apX{&@I6#7M@kFt(Yw1{OfyNMIB?2l`N>8-UcFM3#@{ngZZOApvn_HBq z3lu=-0iR)99T}#Nr}x2+QAGJOcrcIfYs5tFZQ)1TO^8M*oM|D3J7Q*wvHj4x3hX%- zUU$t~d0B&UBtn6MZROuB-E{DuK9{PixuS*lhM z*ndO1g0u;5yvtE~2S&MN1a;N<-(Smsnp}Y#EKm(bC{hXz8(B_B%6_P!vxHz%FLW%! zmYg-690V+oA!H6;nUOF}Ah9K%5JK?Fi<-zm|C{Azu@myzsb#WL zT-vu@sww3>j!;ve8#p%M*)y$g+=$BhU?G-xD+T$=yhk2F%zXtz)?AqsKdSjqc+LI&`3!^u=ER*C?#!&_S%dk6hw`|4R|Xir?8`r5{S1WxiDC8MfgfB zI5wz*FbG{0Vu@FbzYvkEb0Coox#o+?b;o<(mX*2;F*R-2kO+2Pe_RVAp(@ise2Q!D zS}|6#XewFIsGsNOdQt}~g_7$d$c6`O*ve4lunFbh z3Q4pBu8p*fZ@2N^>! zR)d(u8MktkILQ4`O7wXb@Ssvc!oVgl!fU9=OoZ6lTwqXD@~em+!{22G1T2%1g0bu1}?3lw5Lt!{6;kF>K zN+A9&c#cJAGJvauAY(zJ5wtp)zM-nMG%BwgtOssB^<@PEo4{!baw|0zTIKV@(JQRjb^ zOZC4gV8!77lY5{YWPTzn5bD2rAeF=eL#>IQ11Dc`NhpQ;S3J~TAbN-!DJl#RG}8W~ zS6oK!zv};2JEscNjQl@V{cD9*bXEv*EL1kAP3ZBJ|04hZ9f&y;HWY?02i6&avZe!- z86Fzg{-p}3{zn=pv?~7(Rh9qhUtIiypk`1Z1nVzgkvMpAQL#Y(fl>htDiq{@F%E^! zsVy`M!Qnv&py`RM3?cL{3qT!oP&4q~SegTS3FAbf{4Xy5>2yfqKR|?sB3=Iv6xsju z1q+=9KxZ5TA29#vBJppBZLQFk%Ag&>JHt3(s{AVgROv6m1^;mj4ooZrdxXC}_P03) zCKMpBP;&tPwFma)f31U*YP|>dk2C&tIM5E~#$PKk!jN@sfl>b*1In|Is0Ix7Uuph9 zM6tBs|5DrbzaaP`yby16~UarKts&GxH2n&{V$TB zs>`DJ-lzbV9jDd1oJ&A@;82SI^) z36+iLe|Y?heVCttga5({=`@@Yq0SB)aSycag%{wj{G-o1hwTih1SwUqNe-b7@&}jr z8m$240{<%%&-wb=oyv?Ixu5JgS98ggU@JwG-hxq1eY+7t!sY9ZwKt4CY`MGMGQO5`MZU>N8G59A4rRIlPlg1#Xubul|h-NAfjo_+;| z$?T^Cs12cVIzuCIgC8F7H;hdXXhI#tDF_eCFfNZ2%djx732p(C4MF=ulSEG(wtimq zb_{q-T9gCP26eArlsktohJZMR_#?O$jv9>76r3{fS~?WRuSJrYRXhi2_QM&76SY0rN2X_fM8QCN!DN8)HmEr=| zA)LXis4>EPTEsSC7;YoE5`sMQ2L9pm*CZEbpa}4fka0!v*qe}VX6#p`<<8kT$$dr( zhRHz+)XP0#1}3}d?t@M5gQei*Pq|j(NGO?A{ak}+f?~VXP)>)HtNgpwK4-OPGk4A4 zD<-z8LUpGP8@P-`WdF+VH8fH}UL#&@GWA094O|OKY%mQMWd`!=960w0JWWWN6!&Xb zM=%=46gJ|2a)=d90fapEXDOu5se~j4!QBZ^rUZ+`h$TfX!K}dIy^e(oN09j*`ggK| z+r<)`+{bu}Sfd`j7_my}nyBf%)xZ|e z2QcPo5;9yO#Fx9fffDNMo{&y_11NhZ;8NE-TL|-CSIoE~4}=c&H+ljfA$?eh5G>4C zXj7!U`RX1Sw12YHt#mBGf1;%jrEvJ@KfVFugpT?@@rhr}p7a1j22~_OEPD=Y9n1^u z0*n%LjpB`J0or-XkNFFh9}Jy2BO%WaT3HrA-Q!T>?<|GDUMNKOR~G`ZMhXEN00BU{ z5CEIZ1v?FHW2A&22liGS3-cEoJw#Ug4rb2k7t&y5{zs4r|0Jv+SssiSWC%>yg|yWe z2diY7Hwrn_kwBDy9FQZ5=(ivt+{A5w;8|*@5S(K;yJ3!T-9a7XNg!y};sD9Balr;w zFk`YoUhs4Y?vUY9VH1gz@Bp#TR0^a`&X6OzgEJg69!l?^i}QE<2d^&ibKxl{5&n%u zF`-CS**8XGhKH4XO?^akP(EDW7O zY%p(pkfB=9h+D=UXk*wQR zHO0zQa>;@k9m`ZX^-s4~74@I3SiAS}LWqu7^yLzZFn_~5I&_hh1M@d~Lrub7eyJyH zwtkke>2`FY>-vv3ud2|kQkB>~*R291?E34Xr1zP#60+>18xR%^kp z=7|?^1f}`e&)N!?(CZ5j=7$;gQ?CqpSLe!}ZA)zcy|Lu`ya3Q_oGc|Pkgh1!7}i<)pzV{*1;3w_k@sLI)n zyJ$SowI=@fd_k09_WRjE(Y@ywtCfwwtgL3-ar*biUVhF7i|i3?EzUKEk71U8qrqBx z;qh=brB=K8q^lfFz2?p7%j{l6zqfPFX7&j_DXDx>>#gg2$!ybM2(zH1Q*gpn0)}VD z3nx;K(r+8Zlt0d2nSZwq%wPC&b)wa}*FNM1%4UH|nFae|S`w{&RJE;-bVfTOm-vRJ zqB*j70b4ml50BdE6y0{xpoB>PSIf1^DVVptex0J_!S87Cx3|HOA1)O`=}*$65= zGdm+!<~26TPaFADFw&$!{kNs^A0KP>RKMj5+agYWpNRIzMnjB0Es1q)+NmDU4-QKs z9Q*26=sR1m+ss|`HD62jhP1z7fHR)kmF*kAr8P@lm(8lC*ybs+H`{&!@a`FXj2OJxeVo+k!nGU9EUgIIvKADe{wa{aDfgQ-*~}^Z_>iw;vWM zHokFTYHrlqsryyK!d`0NEPp0UnF1r8Ea2c|=~hxQxUpeQ!dqBk_MXLD{b9e3R&qs6acVzaily)JJ;1amwtwBcbkYkU$5 zGet^PBUh7a1UmUvEHm4v2)hj6YcxOxupx^%QgOYG;nOOz{c1rM)p_-xS`VH zs>r@q5=WS={+Im?_59vZ>{sDioKn8E^*dRY7(=SF1$(iJV0$ex4fEiB&)(HzPdQ4{;WPEvB)*m*isO; z8 zCr7qLR1LlIgyG2}z?rxoh<|rSKVO~uqOCjeapS>rd&6>bO7?E%%4=t*Fk#?aO>aYL znffj!aFv_OF3xDO2Cnn{6m}mkW}#>v%_i(gRZE+wbo7xEBanIqmY!UAcl@c?6LJ4@ z^@>jtV?gigq{Vv!1H?3+PM7>>b*{m1i#sZDYdc(a-Pb9(1^)N|NF;TGq+$oN24Gd4WUn39_>H&kA=BTPxuV3?w&A zisYGAN*$}y4+R=J*_9n3Ckfr@6qa?~4%v}%GapARZXv&~mJi4{FF~d6el(iRicE_f zp6?OArobZch|-^9$CPRQVI-7Z=Ofd>)9f&Tbs4*)+0JRTzYt<&y z!xbZQy9bb6sV-5(*>M{#R7848H1K3D@|iBu#B*6G!4)ILgmR9tADahRJGO}`_be>e z4(*0LkcG$()4RZ}N{0LyqR%V))`qleobY6)2(Mmsp4v3(lj)kXYjob>krej|mplPv zMr$H=Ekys_puucM&_f>Mx;mYs{sTto1y!4Mb{4=_&@=dzTkqpIRZ51fPTZf|XIjTy zcUO$&`lIE8jBrJnG0W#|a#_t>nY}ZSDfkNt4X%#lC&d8spa9=VeqOlnd;+bKk1q?k)(VwW97;e1bBe0BkdYf)e-+=D<@eMx4yO`@n+*L>8jLhb*G`Y zY(B4%eWxM+vL62A=R`S-cT5$UU#Mbu=PH5K7l|oBF5k_lwy@>%(2t^H1MiTwBM)l_YOAh6EpTRbbn4?Fv)f*pEWs7tEwEF51^9cX2%1F zA%dEESr3WRl^(^qb61LCKYz9P&xB;f%SBWcY!wUB74A+uR;D~9w&^v;>0V~V3#SKP zlPkT?c5jcIe3%|%&=`AQb#)qJ5SOBhe6z@%Jvu5Z#ONX+T)OhG8@V^=eQspg#XK;7 zN9$&E@l8%`JHg>y6{+F%cEaN}U(^6#c_C|1kI~TjXDeZ{Dkf%_X_SGRtH`bPE>6+3 zy}2!0y&2-|qwHMiT?;#zV|_l2se?Kgua+r4cmFyTW4o$Oo0g5Tc%ju9ua_Wp%EpLz zC0iZ*{;2&*w5<{{t)1KCeFFwzyV!#y=VYAvwJmg z|AE(4ZPjHY%UAv)$Dsb7GL6CC7V+KOrIHgz1k$D+h`wi*33a$_adWA!7FgN$a&wJZ z1nWuOadSN{{^D9p7N&79xesdm{Tx|w&DiLCh2m+=<2hbjXSUU~b|CI)EJ7niA#7K) zPGqsl{Cuvk!>1usZ8F*X=I0PF4F@NsV||~2*I3DS?q0lGFu5@$r*`F`@Ml$#YAtTEAcK}=74+A$cNvdZ_45?Iw|ou`zm@qeHk@kY zn}>#&B7)Tg>~NnWcW?pA)qcgFVT!5M<+B~JmwHN1ft9XQxfg#F_;fYC3;iO9w@MLCaT#HxHL5#wQygNYrIHjHreJzQdl8PF6=SU%Yg;>q?yY`@ zz@z9XO23%Ct4jACJa)kaQ1QfUZ15p#dChqx&6Q$!d}8`|QKF)k+xO|a(fa6j=Pc1D zN5$IA_IF2*S2~XRW>vlX-EM_36K{R$*|IkK-4(o#o0}?1r6`n{ay?ca;&@$Fj;~jo zoE~N#>$7g8x7~$vUMez)`P0#J+>oC5BA!h}Ow*Ci@@{U00JNK8zzvbQoT!X%DP?)A zfg#CrLLeNQZvD6FOiD1O;ci3c#)E1ndwJhO%!7!aqxSf)UiQ75)}8wEx}LGGLjG3$ zE#^zS$YZ$3BNK3&0=;`3@=|hq@@xd$3N_gY!KS`HB7bYrA>xdv4nxEI} zJC5-a;?Ot9<$1g4a}j z`DI>8TViMY#X6N%&^jDmkLQkIupn|q7+be)SMn&T?#>+eZf0YoRpy*l<9dw|y*;d6 z@+C~Y`NNFmjMa3-=T?Pf&nuF*TRfIa1s1hCtQng8t#y{mMc=Fh8n4OtT@RKD%e{E~ zLKv_;U2gtN)T*Bd`}o{n-CU7S67!l@zr^PD1ji8aSze}o2N@1Ebx~T_%b5SZMOnv= zQ?3b{;Qa0YB+w5q$fxn!+()L#e;+$J;nm#LFLDWMx2x@xlNCS@C&nQ%EiJuFA*-D| zLgqLL;NWG8KZ^=Ce%ve=<*>loq#z!+499?O3}8rw7Ej9&TPsb>fQUiNK6$ip1P<<( z)M|Tc69zd5jo9%Pj+ZG)aVFhl4l8=X{uqN2i8;0iFtBBug`*iD%9)Hpy1w+YTjETK zTXp~i78|q^C^E0d_^aoFY56%4kEixHmR?lJtXGwVDl!hjBi4gqXNZ`i2pQ^+PQX{v zKcp|JF{FIyeA)Fpr-p3y)(;ooGnUx+7k-t;@~Pi=n0!qU9SE;5T^!>j5$F|ZqJ{0r zKsvAh$lMg>bHqQfaYYNI2P-3fe^zo;4A7N-Yvtw5!Q(l$?_ct>VlLx3WwnB#h_<(a z{k)N*NCLQ|$W4Cq4NAL^99`YKQ_`a)(HmYcyeWJ(zix~DF0IGbfT^xX+N0q?+WNXr z|EofOmWZEq`=dED4?nQT&f6i5-fw>ShC+7-NN5GwAOF0Ele_lf+@(;f5sBmjNc)m{-X(ind6YI@!H5K&_MnlN!O#X@fJ zZ7A1|GC|R$R{S2b&9yOh6xp?v-!G+@?L|_*8Uae->fc{H6{h~a4xhWjKAE3)Cu%UE;`v5`;c>EO*knT4PlZ47 zL8@P+-QjWzWdmtI60zpZ{%%0w@`KdyhT)=AU*BYa3kr*;e?dYw?0g2TsOZFGJZ=v& ze;@@p0q#glRQN`Sw4~-W>pl_tt1TpHKvG)9S9QQS1wL(rlr{<_5+k9{5$CI-zWEpT z*upLqwgAz|)RHFiuiQe1Cdv~yohQ>Kxz67;8~=Q0h2hPMWBkEwx# z3otLb<5$@d!8np3vWA6^9X3d(aQW0m`T5=06N3Jub7<26$IM@Ar?qYCUW;fGla82a zg?)n*dULAm!#jz{_-jf_PWGF5od9|x0j@cc`{ZQr{0QU;OrLK}JS8M$x_#defik?M`fK8G) zrNqedON)OLctEYV}{MkTv9SzGy zN~hhZQeBG2__j3K@V4sgfg2L(gV)XRI>ioGQ4f7Ss0y($fyXRW3bp5ffZ0oJVa+)3)PkuxTxYYWcFRk(`TeD5? zj0au0Zhtq#4kwvmMa$$XD@AkKTKb+qjF&xqGNVMCY2nnXsHa~ou zS|t(l&3;N7?C`5sStOt@eRmM2cj(O>FEjSY57+Vy*V+2Trg1=;#-Utf?>TiQ>_DSo zxh#l)XejmQ;jlcMp^WZ)D9cKZWJn`Qg5H7>e~DMMc`S2RDjr)fhQ|b`5EC*pH8!{^ zmYVclls|a_$@+^wQ{=-rMiv|l#6}0$zR-kbstT!Ib;&HecR;b6cM9Tf&dtd)N{;i^ zc`OVQ^vUJl-P}yZb(Wgk*$C;YF$wcmXwB34qs@aeG-HO-sc86P#>JuDQ%X8wQrYS_EJIy1PF`zt z{6@5Ji+#N(h6qJOX7_%~wpm}n-S;PTQk*x>^B2wC--bVmS0>oxZir-;6IG=@#AuZJ z3Kdx;*tVKK%{C@^WL)4`4-Gndwa>_SehcNCm)9ujXnTl$J-=W*^(b;@f@G#qahQ z0+ONF6yF!ZZR)Ei*Y$;3v`C3ZzK`n+31v6QzFIbO+BBtS!iS#{>hS72uKvJT;YLXa zvjM+HEQSu=A0x780h~QD7#KuP8x}>{9QJ3|<>keML&vHftmSFJsBGF9d!07%ahDnm zPbOC_j#txuQwR+CQ3ZOX*dJSEX%H5;nRiyg-r`_3W>6Ic%T2Stewx}Iaiz>0ra_8k1LXW!2rllMr> zGj38T3X?H;R~F73MQYa~{wP-&YIS4^hf}l57gLAz{zAoKi(?l&@viAeH>f%d+RI|@ z&PPshan^fWH=Y|8bO-mC9Xteg#9^B`L*ZL(GnT8DY_hu##6x)z0-o-YtXNA=W=oH@ z?UA&m`ym3Wz#WtSLhFV=)}bx!l-zFluzVbvnyI4VzFg#%@xtT9g(58)R~fCf$I_Tg z^2x&0<-kUgKilR8b+I#NJZ=8QLL<`!eDn-X=er}Bshcn#Evq9z(7b~?*i(RpQ{J)0 zPJlxaD`iE0Bjdf)`L##S3|srQ|G?CFfsjrlt;escDikJmV;qXi)CTt z8iLFI?VQAn#@wLzH}_K|p4#NNx8|;&c<(*JTWpqxbj&{S#OFtE=i>^n<0UdDbs8z) z(-0B80Hr18e`fr*4n$w6t8vBC%}phws72tR+Z;AO=zGxcaX(EQ)a~M21>TwY*a{F1 zowdJN%@S4H{8+Xuu3stz=tz-GM~UL z!7j6$ZK3Y%+PO5`{#s30V*8DtOXD4%)5>NmFcBNtF{fELItz81tl~Y->{6PmOR&$ z0y#bTyNKt{r*1qzHr|hi)48u{2#6}}w)b%h^>Za?uAkd~-364Sep~%^h8k-)4XmBFlG-L|Em_`r`&pQ; zwrr>Fm0wwSz5N`lZSB1ZmZFD6{AQ`h(q5B>CZ+Bk4&R^^3~lYTTr^p zUBA+pv;68g!!{9sNrcGdP=8{1GEs}*ra%{0)rekj-hsBkY*B$?~FS2_T7s z&0Kr@&RSaMo1!^dS(K66;iGS1`-cwB;hRbr3!5(e;82^HV~06q)OIV^QbJM5NoJ@! z-&31k35Eh+LS-tg`T7#mVQxPd_NmOGq2U9;Cjq^Sf;m38w2B+(?!wPpqCo>9v!rTM zx2@ivtTdUX`@BwmTKWWE|C|kz4*|C2rUkTYQk`!T{ieU(vKV(w5&Gro{7lnjcvWyR zYckK{xKrASw7PJ9+T@p-sA@&AKwSL(KCXLz0G&2RuCTV0@9dx#L=xOW+UH)Ke&Xz! zoYVIlb8>+}GB_}ys&`YyrLJSKpK7&;K{SYCbne%UGIX%m_BzJo&DWQ9ih5w!S)1Pd z_r{mv6{J_auC_>h9cC9ZjcnUOmJVIu;R>x^*S!a&{uJtJ%cV7|;A@>kwM-8VNuQp| zrl2QbIET}!loXN@th&pSi{G~F$0u9p2GTd%2P&$rKILr#VBMlwg0bdFQTx2PP=qlz zl2EaZ-LunR=IIfFO6AKX6H0)rUKDz^bTZog+XX!#%VIzIMHWrc#PpJ^+c)W*E+Kx_ zU+bhc5?*2!sJtdimyQu}8hx&M!cWwYSAe#=(X@NFJK|Oy+m{&6aV)o)NE<}1yoqrg z9!%r+-Z^K=$v*WyYQWXyBO#Zf&YG~{mC6AHuinW?9IHA5 zE5)q||JB_5sf+m{4;;e9LK|ju;j>m2jT!vANc924Hnzxo-;lbRaHhH!f<4{wj|ILn zmqD5oJ=!iu6~{iaDlaok<^G#eqxg?azEztV2YRR0GH{IxPBRt&)pAHjp6|^Bnzf>N z3Mwh}4Y}oqk#vs%gQKe}R1i@DH)Z7gOLNWhllmNjf6Udj3!miERpUd}uxol*mf6Ld zB4V3tWmO*ZQSYWtPkXbpA*IuQx8#4>ymItg^iWUdnFez2F?H)JJYc7mHXJrByf9HZ zTX}AhK5>kns6p4?TK2wG*7HLS@%-B=A0`DC^p@?&EWA7}yj_y`vz}SaU!pmm-M?yD z<*td&M?N){c8c%XN)GfSmzEdZ=q1Px1Q^YU&tK^=!)LcCyxUV8Pz=~u_# zF9<^Na-bnL(gi6pF$YCgG-iT&_bQ)tP)e9Sza&^HqgF*%stNOa8KyJO{d(5V9y z+W4!EvwpnZzgw*lz3onD9VkI#Tm9rBY(V+GP!JBa7H0;b98Ozd@^BzjHQYk)YhXF^ zs}|4p0SnE}>URnw0Z3&rgY@5gGiDN;^2GX*XF2C+g+0tX$|Cfa8c=Z%a^Jv{2c6i=7NE=NKbM3esH2d zVcMFQLa&#ZcKyAEH&~#~I@zywEWMtdiE+&BcsoMSq{-9Tf%JNt!fY8{E;d2E@vYsW zvGjTz*mzvy(wBedsig&DrUujN^@Wu#j=UMIYp3beeP|&`$&+BzM zTAq0=&W-j^sP8-WlBeCKpHFAhnHgtN)MJ`?9xjz-Ao}m}+hUHWeC3LHEs-7yUC|UHrE3v;MCPfqyxTG|;5Ur_K>LUoL7HN#_e4mhJEI{%)wc_t9}C{ggirv+NbPhS5+A!x!=ljYMp9s>V{EkPw0Q`jpXLz0LOd9v4Y#@`zadG`Ava; zoM?@ctJ-eMyNh9T{zFp?wX54s+R zj1jCKH0SZU+C~z(=*gbx%mQ^Q>DLGK>eKn*k4>Z9o-P(l(G>^mh@{#lXubiU`QRmE(dQ03XVN5 zyF8+;ku(Z6PF;9miu%!|fy0FDX@0erhPRp!A_!9$v-zEkB=?kE^l(?1I<7`Un@V(k zdi&Uo*|iqP)n6};8B&hUU%!8H9?{{-Kk9$jy`x4|_coHKuf=4{{w3;Z$#y=idmBmN zybnE`%a7TmT2T+!5p_orJjWuNvVowH@W?@NL_ul``u~u{-NIln|&kPlLX?U zHt!n67|D*eS>K-RSgamiwq8)yWFu+ldDN~EJ>LV?O>Mtw8lBHxKm77(VW7I^^x6|b zW*JFZh2GsxIVY=IZvIfM7rozk(5ipJ&ESNE>MDjB-P$jt{W0HNT>5yd;3HZ1yp6(0 zZWXodzbAaMdQwD4)2=IwWMcG&fv+#m7R>H{<=eouMj~7@X3+PnS!&^lo0Ajh{h28x zb4is?OVke)+qN9sM*GL(<(~Va=LjONO`H3EH=X~-HpyFkV3E2gWO3_02aSKk=Z(v> zvQ^!U>?vr+n-cQWQXtz6Pfk4`mdfDGW=+e;6W4T2@k#) z$%~$S){W}>mRQ!0P1)9xT?Z%T*26Jf%-a!&6*d)HRQ^&Vefz1c>HOO{`aFv z!~Jflxk#EXbYV=Ebx*>w-0zu|?=iUVH%h+Guzb&9`CjAC??Zn7oMLEk4Bkx1yHuG{R{QZVjIF&bQ_7wS>=`>Or7UGviYh2$SBBfv z$kuGB(z3ykeOaa~{@H&wUUv3&_-EgYS%)3BIMbeev#HFwOZdOJw6V9WFfGOU z%i7!8Gd87BXLB3avu|_NQAc~~r19*{OGs%u*s<+k$Lg^wX$i!#FKG*Vq_8j9lZI;z z`?B`tf-rWp9qed};Gg+_zy6kW=)I+}gW2ym@hzVyS{fJ@BlUlZ!MBhI!1s8*5?RUW zV(X1J%;Wv{ajw^J=Yz&Fel6z%cfM%2^XT{SuKf7x`?ag5-X^xXtC0`w?9}w=SM&DH zax1z0aLw6_EDisY{=WV8dgkqn#a8m+J!?*$l%{Nxn@=k93qo-LP!)h*3!muw{$*SoM#az}F`sehlg_p6%gt^e># zzH9DW*V1=1?&T8Syz8EAF2B}F-Y0BG{~ehc@$!LlQxEaY>6KP;`RcWgduM8v$}ivX z9ns7zms`pCxu^3AZ)@(moLJLfYICz(Y$czcQ*~tWZ4G}>-8x?FTJ^t^3$5hwx4wC` zyseq^aIjO;ku}Wq=Ud5Fhn-)2HA7R{|9PnTU_-8btn0sb@92;WjcHe6`_zUFx%PQ) zRsRED7M97-1dlB9-QT^ zb~35|N-lr5k_*R1)H-!bGf%K)uk)}9T>Dtb#o5>Qo6V{rBlXAKdcV1Y@m20njT5?0vA!$?SfP@x*C)dBT zYM<7zb1z)iEIF~ToyxDaS+2E`Yvq1v@2+Wr6*qrLpx%LctlMX&%(eKkrmKjz$$Mjizmx0VTGfB^ z(}I8Imo-a9*(nz0@VW76C6`|hck#WX5yW?toG)L~mt>|^9D(?CvwvzM961%#`G{eTGN=Dgo*T4TtF0?Lx-Iag$ zypCv|RQ+<};n-GxC+AzqYWDnW z{^5k}2f<&-HV_NTnEqp~gYE9>-WPR;tRCLPL;bUUr&J|BM=E4lD_ z@)$2A8GNs3w6?MhH$Dtj>D$~n5WI~z{Wu#JQ-kY&xs_bIsoI|9yU6tBBXuhhxcUpN z<&SU1T;E6RobLC28(N2JKWlkeZM&BT$kc9W13W8N6po!AZ~9q z>|WI1wRwCpR&wEpF=N}GA`g3?bst^13D-Wat;)B5(be&1NI~c)7rCM;S3WDbP;E1O zzM5q28=0EX%Q8Q-lJgyBcfE3s=zBgp7^-c}mG8Cn^}TCKp@#f$+&q8aZU@Wt-CEuv zadFM_fpJnB%{@fJ^mhcT>DzfKV^>`nMR_DmBXFh+Hu!kE4hAw;LWmY zB&^X;k#{tAebK+Ln*WR%cE8hN>-5iyD-KR4uJ66XEvj5F z_YdDn&OFZF{~?`JUVKJcz0ox__q3E%{~QUgx8@dceNz6~>+5y7_Aj)$fAbZ0nW!Tv zes5|#TK}25zFU9E#gdTLmvrRCOF@l=wYd4Q+)7@E@tHyDnYIU3Y{Z>^Vk`OQeb+}% z$RM+7Z2xp~t!4gcB@Z1LxJHvfPMqyM@XZd(=c|?cWW|V{)ozoQr+b~wna9nK^v|u@ zFMFEl+->r{w8-b{dTxHBwUUc7bBn5Fl9Pf)nN#w({#Ack$$94{g-pmKS0@*#Zbnw- z>SrZ)Z9jR?g-kN~Y}w=f-D+{?x0SpwtI5&YcgP04;&rEdd#-*~@~aasESh+S#N7>X zNN>@WyFOa$uenj5c86@c?^rjP&&?khE4i|Z-GRngWW<%AS+aB7eZT&h)%d(R_|w!Z zVib-syxD)x&2O|;a`A{KXS1?Mwsf1lb2-PeCCz%ZV*sA-%z65CQ}61}iSG=@Psgj= zD@k|m-RFeYl8>ae>&j87KXWu5^AGyGnfQTh`+mnQwA>?&if1x)UGbhwJ<-r{q1Qdl zoKh!ME7IPPskb8Pyx5Sb*&Z~%eC-PFNW0^2->rYEuhS?Omz&yn>|0`*(yea&X=xhL zp^lHwnIf`DaB$hvFBdeY3l^A$Hz^{c7sYF?i%)5GGHblZ3KK~W=zV-c)E>>BpR4gbI)NV>#SfB>iwoh$hD!MonJhdk(7g7uHQ%SNKR+TaCYC== z%9loBom&vQAk6$Fm1VV?Yx_=IyI16%Ykn7&;&|O9gUs7hH-Gfb#^k}+!lG40TSw`|?EeaFsSyZ7wfxBtLF)uF>jjvhOH;^e8* zXVhoUX|(4rT)cES^~%+>Yu9hwOuwbexSe??>+Ze#4<0_sew_0}pPTnIzu?*P!WS=J zy?$dbnu^}Od;j6%r_W!$e*6C8XYv2z1^)l>0{*{R;Q#-5{r@k2{U2Zr#Oi--^Ox`6 ztbtg)ZU6H9%Nof4?XUmeUw{6q2aNt>`Tr5uAMQ2Na{9b6fpZ zXK^!s=xoEZWk#2biVi}{T_KiCcW<+j`<<}2aB+)+&pdkH^0;{euh(SwWTx3_Me!C!xG6VqVcmT8k; zlbMED?lm`FCC*zG#f|SBQ}X<``Qn%9z3$_z+vQ@6M7k4Ej)^%IfS6kLOTh<#}*8N)6-&)qeTGpdl)`eQu zXIj=tTGlIC)(u+L?^%D=(OK5BS=NI$G7~R&fPq8x3tTCoo(>r+*CN?rx5O$6UfCvC`HuNwg$F8Y_)%{olUk*;s!$epyyx7@OY%{(PBJ z{O9ujrgf+P?Jp)o8Yztq3v3;mAd{kH#Q#Bq#l%L(1;+B3z)%VM+=)2O@_I@dN}&CF87jtywX{O))A!{5HdFN=-t)PWx9eMBs6 znOIABT%;sCEF_Y9qTLr8B0A2s$8fMPOls6&)4+2Vap!36aLguU4|MOd7ghek?nH5@-vSgyvmiau0kt0 zSE<*tk)D+mcD0o@Up?=A51iR=^==P(d&NES_t`6UYaKxfGeV#poFZ^3sO+($RZq_& z)n*gkl}Dc6_dUjQ;`Ba}FMPe{vOwAX!s)3Qr@P*L@Y(&|Si|WC>MduYMvw7$GqyYF zuHg&YcM*Sk!XA!UcR!)DTH3%@%y-Y`wFm8~V)Me&;?MHP9yWW_FpX1=YE(O~`9y#G z<2U=`iJE%ae!eMQs0OtVR!({2+#+nL8jV}IShTJ&s4n%BPQWdrhL{ns(mkBUg* z$BD+APcz7(&6nr)I=zg1{#kSP#mZW8C`+`oXKa5iS^QvEh2R5^I6b9>PkcINKFga+ z+HNeBI;>O*d2&89cw6pJ&E0p!+hRgvHD|rY3~(4WkQkP?4&Ad>LK z*YWFtVVcy=3m^AbJ&dd^b+cIgV zK8s~}xpDId9oN1>&vK>qPkFg4mjrKGc|u-k1?d()=*HZ0v1Cio3y%T!nv&?mah`wD zBNs@v&kwS>Qh72cs;|}4+`p!+w!iA@Pp@zyNo=UwFe`g(G~A2c@=uZuqrDL|nSI`$ zUU1A|q9|FM+1wLrx2*=Z!ih`AHH$gn;8^psf#UIT`6IiP@ti)*Yl`8`Jo2Ug{ne+Y zo+SM*PKY?Cy-(sNcV2X)-5WAxa@BvhK*#rFX~fAw=W{QKCEbf!`R~7WSV1bkO#iw3 z@MRKLv-W|s9?!@F&&@>D^&1f$5?sF#Sz73^xY-q{!bT`)>SfoFrnjWSqogjlPX7Y&84?%!?&aNqN2aw0!IiMe*!(`lI4zGkL332t{upE7$rX=s1>L*sus+en6A z{H6gF9uZZwg{P|Oj**Eks~0@qQlA7C*iBs){?;?o==yV+;tlD)TJyTey9eZOpz89f zoPnfL^~tZsET2t=&@tZ2>iPcP*Sr0>4$k~7;h^OP$oug92A;#93<^=Jt#5H>wSNP- z{K%tfkc&dfZnc){USz+5-2Q*!(h-o$RhcKP<+3kJUP7+j&U1piP@`4-CU@%p0&;QH ze%&G0dhmZsFZ#+WWYY(Hbb(wkdg9LC%J=>8Ggkh&$RF}rFFv07t$Y^`7eFq{cVp$E zM`e#%%X!Ad`5Jb$!?;0g{?7B(TFX_9qn|=u@~gR z15v-rhxX59(^tP4069~wp2Au#JlkClx$Bn>!ywm(H&|vZ*MFFv!|Go!cr4q#4=3-j zmTNc6%4YkwcuRB0#l!M`YhUq~B@ZDV?l_C>UsHhixAtXL@4C;n|CE_MA=ml0|E+(; zm9F1~T$gfP$ks2SuF`*6uKf1#4&Per7GMoS1Vpc!XHR!kg(e7`3fgS(bMpS3}r%%7VzvX{lr`$QnMH<0K$dyNe zj{hbvefI=g|1-BbvGtpjzUw!++nGbG+?nxa$5(3k-^b7Ln4N6>UAnR7m$qQc_TS_N z?^Td1pIv18hreRcG4+4G{`I%>A64S)efF>%xz8O1_qo%C3va`Pi-fbUrbW00&VYnVyU!oPMCg{$IE(R04avk+ISEybB5o3B%MfBw8X1 zW$hJCW{qpeqQlsS*JbzynjXi6OW5b(Ef3+x$z*K2cuqmD@EH0LG*l8ECv~&jt5h}H zKV(ZtC!zGuhtv!|Pv@P%+`RJ`37ej#czWw0*}G?tNBw`9cj=t(Gh3&jOc?!yhLwqM zhEL}gF7%D#AX+bX>Vn;eSbBt=g(%i`L@4z|uofSpSj!ZA)=mVUvo9l~dZes934}=4 zPkT!Y*qn%Ftwcn#Y1{m|e$TWVW%RQ+CM=Sj>&8mVM+psJk2Jt?MCB0-Gm8igl(MEz znBedz_CbI7V97Z4!G4SR#qc1r1;>CuvmhWeK^7Hjw$I3>i{|7BuJpeh{Wm}F9}p>x zkCg<+S}ddZGrsJc%$v2K)R+D@HIJM&=GxH70qx=l_QwfF?zww-`iDib$3N{kH~M2B z_lk<WK&*aI z35p72%_Nj4H7AQxSx|dxw|~Emq~yLq{xA39met{Z_yV{Tq_U*4uazx|);MCA5eZr4mY_LTC}G zkka0<@BC-3p}XAo{rUcX%lGm7{Z6i)b6s=IHFIXJYtGF3HS>N?{)GPW>xCNMGYk0% zt`pm2GG$kr)(=ho^K&k(@SoRDB2C@rP33=oU+?5L{V(sYsqLRy0Bhf5nm?*v_Ck)y za*jW?pFEAsY2Q!bw>;DK&pOOq(`_Z}zqL=CcO2jpMMa7G+9^)$pFj80uj4jZe(o1Z zB>cK^Un$K9dGNj4P`vex=A35$e6bM|Jr}1_cv^P6S&z` zD)fr!^nL$NzlTIOcn7CQn&wX%D+Ir%sq^8#v^VX1P2A++E&peW8t-&}X}hN1Cr*)= z4Hr$aytPa2o}iOrnEuWOJHO|jx3+&$f7>bF`>o=5{_L-5&kJ*RMW&2N)8D9Sr5lel zUEgtC-A~)1xEQ)gMohT2@A{U}F`%1E+rQRdwd!|2iob4Ie&q?jh>!kr{~tW`Yy6D;anVUkF*<*Vfj>K^g-ug2nqyo}CzY+mrUS6F8B0-EiowzWto$&RPGEJ? zu;sF_vI|%~AIleF`8(Kj8ODcLc{Ns6kL6!t`4)_ASXn1l_6?iv!lnnX@=1V{|* zTvEmbNK9VrdkSC_!brv_hEW2e6h>K$@>soDSbar|bFea1tZaWSHm!k`X=Bs6*z`PX zdLcG#fK5}eI!0KYj!i>s+7wG>Sl$AgzZfgC!tzV8ye*cNV`VF_vQ=1e#L8D=X$@As z4ohxW^1$YMVaW$eepsCVEN#FNcHS=w#!@Jj!mzX%OA%PwilyyX+KDa8#8MQNqOr6a zYj+Qp_F`!tmSTUf6pPivQyiA!v6O(VV?UM-VCf*X%poi#Vkrr$dl*YcusV23#^xWz z(lIO@$L62F(#b#i^3=!d;8uh5=LZdz&$w^!Qq-Oz`bB}_{Pi=Xb6XL`O{J8Qas0&s zt^g)wwvz&N;Q}SAEpwS<2F%F9DGR3N>V>Xs8mT`4L= zy=(e~8X{psE%LcdHEQmp&j0v>D#}+!eOr=172}GhWKT_Qk@V!*0L<#}6A)t9G|g^~=9d$^(L__rs1-{pt===i9kcdoM}RR5N{Pj0i>QMTP6stCd64 zyBwml^(lXnwB&jrT1eJ+s$JY!s@0x;%4_*`w9%&`v{Yb69V1!O_><04=fy9l-EWAd zcEl>vCiu6}UMa;>*WG2O?bTgK6ODDIUHKSFTWRoO;kq+|24!m^Xk;EwTH`WP8ryP7 zn&Qe5YFR-irM%9TcHzQLs!v}o#jH||_96>XX=#7jw9Dfh)cvabG^VCM&Gu9Tb%!1w zP2SCl*0S@X{zfXG(!+A7<+Ux;R>uiyLMjg}dpS3)>Gl9M`eGe*N7`}fj|drRm1G3% zs-OvN&k8o$++k0uH@TMPR6gKSsM?~gpV<4tLfI1S%+e2 zJSo1E-_K>!K8a~}UGQ^B@bmojDE`UOTVXgeHYaaGT)Ggw*KNmpY7fq`kntFFzmT{t z0VgZq&OuafH-8e&*22QWsJ^XhGCD`C;6Z;neO-Cpaa2Fc{v=L?p}rKf-tyz8(em8X zG@Jz$FVj(;?REyL*A|nB*2})?45F{%S)7TY-w~N?MOkRQ)M)&^kVL*^osE7EchAT{ z^-r`Q)(xM{MfnQ>=TZK=-i68SKqRHyzKGgAuoFF}L4IM9hqfbx^D^2_uZM^Qmt%kO zQ9E;$(e(mLbq``j^i-vxp4lIKgD+8)!S$UPml=BYYEmpBes$Zfxayh@~*Ln!FBHt3q}p@p!ppK5cT3Z5E)+# zi%~t^Bt&w@N5qUB#&^+idXa=k`t}hqzfVp$or6xBbrA5l-c6*1$! zOc`q5b`hf6-3^FL!DEOddMP5=_7ft@RP-KNPTCNWS?7V67?6NS?!1PmXVHH`!rc0^`i7Gi-yHDcn8p8J!>u^b(zgQf)Q{1KV`iRHxpFG6f(y+zck z;Cg_*$4)K8I{6huJ|mJKUj`z{=^>)t{%?qkY_SUBI8qVq_OC-sblQW+5V(LCob{B* zEB7JR#mhcK^F(acJF<49zUB4G>q#-h|t|6}H z+jb$^4V^&@9;qPeb$&u*-4%F@>hIJ+bW>lBm{GC`F&G>}WaSniDvWHf===UYCNHSbqzVHNT0d7d?n* z*D6p){7%Rr>Tzl!lH&{!8C+I~tr5`5 zAi4z~BkJj%tDihSAeJ4wk5~Ze5m|5F5$$aGK`h5RMl6>k(16+%mqiRdFc*n6eW3d91==fwJEwug6Mv|z*K)0v6VI#k*s0x3{JnFpZXk9xT;jlf0h1RNN0h+$Q8O{!_H4aM{DW+ z8$FE7dY;i8fx)>it9$7JrESK3iyqKL&pmXji5sG)>&#XN@))Dn+-)vOu>DMz&@=t{ zDwYKDA~mzcIeEc@XFtlMj&lL_CC~G=Smn`$^(ZX3Sr~tm_j6k|dbH7J6fd1!&BhH% zKlCqe?fF9g+9NwlU@IS}WG@SjJ6lFyUg=08>5zeNV9gJbiv-9o!bC!VRoFws(mKhygDd2~Xt!^LxU~T-Vv4qe*>esg*KF7F2qra6%05z2`i#SU>}eduLyC zSUP_jcrG`PNfcBB25QdZ5h8>1$MRJwvG!yT5Vmp0ileP`V*f}3<0IzZatpY@`PY4N zgR99v;>9Y};dUud+Htw`o3ju&3;mjP6J`Pm#c=FRkuu;EyX?L*S{$T{d|t9`zZRJ3 zd|ZO{MI9Jyn-`dUK?bbi4&`$Q)d4FnZ5@AIAg>DS&$vI;^icfCefbe{KETBMUAGsYS1-)d#n4X{-pdrGb_E zVvnjVpQdLI`J-gw(}QZPqGRSZJaL>p`!|( z4w7Y?z<2uI8ta`_-gAIr9&<^A3m5PTyz*RIR}l#I(VFreP{1fN#AA=tT;RT>tFVD9L(QpaFbb-h?I0(gVpW?|chV!0z*_Z9@~T zv*_yW?gF!SLy%w0^WeDbApOG4C-NKS0&s+1X^DX6T(Cy#%smN#3AzQJe5d(JeXw^U z_n_WKBS72G#Cms91w<7by0W+009579B5kx>2xdQ%OpApS5Tg+(M0S5%0Q%Y7FGtoJ zf%g7#2l81#Fv5GH>dpve)gvSQ?PspI_&XKp9g=WJ}bq&_<{A)H|zHt zc2)-oYC5h6ho{Z9wsh?H=?U>OlNL@z9zp3gFG=r=AKf z^T1-Y3q2oqtAl^!&l9~~HV}xc{eP;p}1J)VAu6%C` z5cX|x{+OsPsI1T0Cs$$vyf^2LyA-H^nO3s=_iIf+`Y8s#YmEsAwo|QgFfa#hN^|vJ z?WBN)TMWHoDP_?8GjiL{gADN5v4s{?xfD3|3g#T)v;l(I=W1W>wgR^uD};hy>H+?{ zpTssiG6R1SbKW13(V_#>XjgH?N+qx(ta&L&Q3IMeCjRMzqx5;aUFDupf+dgxe zRxw@gESsL6m}cAF^=JM++l&8hPyHAB@n81RKkR?4$Y%WeXUcXw`I)pC|EqoVpY5-> z&6j~}yZ@~BOc;?!JB>+Yca2HpQDYKIo=(azqLaw0=_I=dI!Pe`+r|_+sVyqI~}`wpp)Dt=p^j7mQ)}FNEtH#i75w2Zc2cprw&LgU98*yknHH#^ddk? zv;u!5@^Xxh7}o((uoob;24HnVu;sP@QrQk{`=haWdjUxy7AsExB*sC)p2$eX(s8UT z1xu;e{0yw_S*+c20NXZfJr}VyE@SJyg3Z5<&AW-UcMDrrF}D6vtj+say$4vGN^JgP zY`xXkyr)>34cPQ^th^Cxvl&~a1*`uKD{Ftlwyy(grxUC98C(7v_Wgcfb-FP2VEKNm zd=Q&Ig4G+t>Q7+v*dWP{9g-3`AgPQKl2}}jq`(773|{Ow@L;2$rAuTTm678`)ehT7sd>MR3i9@1?Ql?Ap5#&T4Fsvr>?J9*ki*o*(F*E|RhOy$ z_oS(vV;R(+e0kKi+a6S#njh4L3nwVDvZfT_whHPGjZ%tsj5al1=LhA|ySIPTTixu` zQ?nLRH7^KL*N%LpzHwEdMjJ&?XEiUUa>*^DoLY2ixZqRMO6!)QZDB)ZKi~Dcfavsd?plD04nn zQ}bO#sMN6}YO&=dswU@gYJ-2hI_-IF5N%WN5an{(I;vHbH}$N5I92j#B<;~-Dy_Gn zoce8TIL-I^M{1GC8d_^HpdPMop}t!$O|$9LrkU~S(%dKHXlCC(Q>!-mQFBhNr^TJ- zqix!JhH|!9fOgS8m^QIw50$FVM)SL`O`FqeN!#9KOA~H0r}ceOrxky!9i*Og-9&xO zyMadf$VUr0d7V?NxRn|duQ+)(~Ez^`}%6gu8I3yLieR7!javw)xaCsD;4@zAp2xuqY1J{7PROP z_D3E$WN*xH;zo8xW&;b+ZF4iSFV>lt6ZS;Yi^zVcxA8Et7b;XmAp0P50{z9Et&d&PKw%x7QNc=jt?W5_Y;ERl~5M%k==}Ca2v7pgDPPUqaGpbWO@^XovbE+uz!iXL}U#zkR6K@cagAnl}RA` zlv~Cw#Jahk3H#P+dt`r7Ft~$AE}lc!nZ6|;G9L9HCN6g&>`MFYBii|?Bl}O;z#+mu zq~Bjn*mc(s_MU&@do`2$hp_9g??)`lV-b1&RmlG0CQaC77#oCwFk{yAY+N#G*vA~6Ppy<&|oqJq!~!p?D`3NdkFkg#)@s1x=JH)n#Y;|M#3-YvrZ z(Ef?AJA_ChJ3`_c%V&iBX$xUru*pWuuzi8Z)Z=`P*7tvNK4MvdJ0g=i5i!xV`L$s)bK?95_B@|Mkr1sYid@7BMVJdTL0XswqhU+9cTuG)vFaOWCg#=+K?ggsLT z`T1Zq(h$kZd=Tx<9VYyLye&c08~j4d@0EOoj(fc+Vq#JtB6C3sV%g0KB0sAOvDH@| z#iJ)DTOxll&W0i~kERlF>ep8xw&L$G;QOm=W;1G+v6x_1D8X;15zC}25%tu&5J|J- z&~qBW17?Vcg@FW}P9QQ{?-BW>UtbgU>lrQR`!~`NTYG(4Ci@>^aBC4FDZh=V=gE)W za}6G!kC?d21yP}MH=>^YNZSf=n5 z(e98KdhV>?0}YWi#~o46DwcR2%_$#I!S*F0NoS0xKP-x#3(2roL2ONsavM6`4L)JF7=VWPbj!FDuXU^Zf%-aJG% z>qUrVE~^kp9=?d=b&*8gE`eB%l1fk_AF=gw88QEQ1EOA72V$Z|Kap?bd5`9Al|j@K z*F-EhV~m(McNt=9mMc*%6@tiOMkCg>9wC30qntxz?72bAudGCLV{anbS?~ps=`upp z+bW2ji)}qL6VdIo4v|lXh;}J<9h2vW4r04Q5$jg$Mr3Lv6ZHnOh~@7VB4$KBBVKiXNY4s*;4ncyw*057MaejQuDoeg zw{6&|C#VCS-Sv#g3{(QRcgmNKRRCKY?@5(@4N!OWc=qJODy_-wxI<aOT3rk}0QdXn>+uuaVy%4}=w@?q&+j1mOwU0w#J3fXQ~@$gSPI zbh(NCeE~m(8a!5V6;Z{$Xk*MaF%?KGA@5{zdMA5o0hXaQ?%93J4UR?wz-eOao=7uYB0WMhAc6;%^qOpG^mb zojFbmZYThG#r^D_daA(fc)>ou03E#aA90k7vy$s>W<;B|og z6@LjjFp-U4FnUrL$jfCWix(`LJdT`TXzRA~#IO@JYM<4& z%u9+uRZY5bk)wYZ*tsC@a?*o2U|!rNS;kL8psvBU`E9KtxUM;9cIdV(kOjuOT!YMj zweO>Su3VNtHgLV>c@t|eck^K#NxB)hG9=EB@-YJ*r(Xu}aTx)p3nCK!R~R5??cmIW zCS#C$NMxH`f(5vJGOSPAbTJ5HKfX^wUljZ}eESmbPEmiL&i-b`qE=NPyYa(uy&u0_ruZD&r0tkaV~FLL-|Ea3de% zIZ$B^0?kc^isu@D26>Czt4=l`<-|y|7|#N5n#BybC}av|ZKK(|8Z-lo)0}yK)G>fT zGi7Il-%K!iJLyG?y8#I8yiM|1s00qmy{y~9K?8q0w|ts}*4ct~Qp!zZ_9fs|{C%h8 zt!AJj{tEB5VI$z{dX4_EYZpXv&`7b0hz+>KfL3x{;!SRc)b>~}J0!7o*;ll>bps8|1`{e31U@MiqZNcniU_Yl# zSBb3!Fk1Imyf4uVq(<5-&CjMxjw44Pzkip>f-8<-hPRYp+E-UF5IXOUO1cTKFDl&@ z-)|1O)FYQfw66nBsbucf+BM+Xt8E!kt!sZkk(BfaF=0ng$D!YJLqi?Rx>4S^3h>A^QNZhmE3n~R+?UtB5;WAzYT4>+1i}qB z^4&FG1QLwR8*Z^J2a%7e)_mA+2SR^bop-X8x`37=&x|(JQb6V)$GHNdIg{rHJz(tO zxq6lFI*_oAK5!sc2jogO8?{Q&!A@Jw%{$y&!03Is&Ift+psC(tQ_D$L5D;*XG`wjg z*vt2X?@qWTxSb+UzcgbV2s?KCWgWW{NKS03jx)5-ad=N;6l#CZ8HQvq2!UHaJP_9lU*775T`U&7sq+(ZZu$SdI|;ph@b_P-0g?2BP1xC8g=+=ga~w;+d95xgUE6S@oBfSr7W z&_v)m^c1-U7fD`)&u3qO0$K&|tzkYivAGO2-SXh!&6i-np^NzYh|sF)JcOTeVHAHZ z6kT;#R9_SRDIzKYDxE8WASflBD6Y&9?(XjH?q*qFfd!WR_WN(o zdCr|P@60=ApS?S0W_xnvH-V;ES7*xJ`qTxW6VV3$1nKi8iB%hIcR%7Z`Y!o&8;HU8 z{yJrpsz6~KBkP}OLQL{|9Fop^>1aBQYUj8p)%suA-~Ioif4(&hnZZ8 z*3k8H$Y&+LJJqmua((}d!GB$6w+ZyxLb1;ZiU>1)PSDnC9KMd!On_rOFej4x}$heQdI#EM)YtF))rYm z4#KO_j~Gk-^}7f{ms*KpAVmRp!O>Rd03au zzE4FA-W{bs{O;*m+dcbJ(Ae+~BTu2HhEgkw$1d(Kdtr&(d3R@IkbI5m^WInvz>S+L z+1+A>V`Lwmdx9bl?d_AxC&Mb*sM2rM$D@=(P zYD%^mW4T`_Y)NSrF@%UA2VWiA5uNJ2Q%^hQdZFX9W9|P|Gc`l}qdK*3iJ1zOP-hnV zMtdu$=}vO}Ki8khyGgI>@wz?2g#ohP&ULU6vPQ1Qd-Bp&qXGht2}!u7c#p|`L%_1D zb)Mm0^cs}rvSLHqbx*Z4gPG{c0~>xDrL#Y-icZ|sxd?4IDr;+Ay%{=ohT{?h)=-Iz?E?tleNCj63jaMrBKhRRP94i#bu>jIQ{hA_DO z$j^y6D0I6bRy>ZzIc18eTH*v>CXqyh)7W`?Q$+Pf40#7|AD^KcE`L6OVfPXN7fhEaWO= zf7sqEbX)uSt(RXOh+q3Xr3JE`Y--Sa&(dU$sK0sgJi}uYim%D>ITIW6h}4UFx^ci) z`%oF>GhVp!ddUNue}SWewyw(y;$yX@yPAla`vAZ z`~OJVYUa7M-2Xeb0k?37dHwfP>Upt+8R(a)?aDvf6;%1Z${(mNdSIurAk~plSeh5C z95iV*cFxu?NkAyBHBD&_Ty<48YKsriTeliUXB(=6qY-AD(gX+o;<7_n_UJP6l8~## z#cOdkiAQ_PQ_!2*Pp$n%qF__EavSp0DS{}rv5O|2EYMFmfd&Z&M3;&U!q))hU9Of{ z+MiQJkZOh2JiRL<5cn7VqgUk6N2V*5AlUA@qjJXjsDTyHfja{@HZH5(t-I!ZXz}y$ z9uFM~9QnO~gEzNCzV+~Z>7;H=8T`u5+CRfOC9;lLK^T1DZG`9 z%Tc&v!y?-7FVzY%PllE%i~#Sm=n=|rap9H-zZ4AkOEJol*nbjb9!B3 zFct`C#Ak+-?Uyy3a0DYd`5*%%9D(wZs?hW#@FIiK0tE*W1jo(wESOrjO|ssKQA;Z{ zd|mrN^%F5P`RX+>g#<4bUbYwYgt1cl3ER7UZ@=bl6fTc0wm?7?37X-E zswt8KfF@qMtk3Tb=4=9_tMtrbp`18jrw1^B&f`73Jv4+jV6bUeh0yI}QdgKghKQ{!kjs&%&7ckilZ*jLJMxZa>oYgTbqhny;4d z;%2|A`nx)bd)MT@Yf@NI4n5hqvVzXT?u@npN@RA0-uvxGhGvXgpUd`e8n6E8$ z@Q-8L1i6r3Ly!I#NsRBCdy+O=mTcate=PlK5o-)BRH;4j5(r4D6(oq0_XL$X9eP`Bx=Lj^8Rc~GFDoq=!ZZj$ zhCpUZf!Ac6!M3Y4bK8iy)-LP>n95*Sy~((-f+{u#?O3H=xaO4s%z(nL`LKd}iZhv~ zYpI4X&X$!|fp&9cSE~mGjNTBGmA8bXj<}W{cpQCzVqDH6rV+vmf8GmlA{Xh_>|n1H zk*U3Ldf8jQQmuZJy0RvD?A?yJ;^5}OJbUe69g(?hYrF^=Oj7_r4Te+z3~g`kR;Sin zlOJ05(qOI+h}9nn?J=D7P_n(?O{aF2dzI39=zPcTO=$a>BT2A5O8N9f5Zz-X`kf+L zl>MV1!N&;-j+^$Vao~hC$mFr1llsoq?Zyw>py0=Ctz~a|5nYq7h|IAUaht>X5M9;; zM0MDHPRZk#&$T5V@LxtJc9aDl`6Cb?FmEPwOykyXX`>|_eyn2&4!T3Y)jHvui|rH@ zHk1x1WjIlg57q_A2krISj6GZ;Eu8OAw()L6mqg45MFNN?VACZB0pHJu_Vq9)EQhJO z?coLyKEcBDGTyk&xDX}MdS>t$vEp;&Pu}`L@wHcFqT$myg1yU(da1L8QhW;t_@&_A zO?uH#|FsAxpA}9}(Gzg7>_G=Y{Lq;w@A;`3-^AY||FQ7&dPRG8gM6k^(5Uqnhs<^U z7g+>z1js~X0K#-LZ$qDB;~S?(b}9g$OqfZ$wbNl zRh~!GGxJBs*MHI;b+!W~^2c3`T5WqVM-Zc`yv#bU+EMp%jv(qZo$s4{UtO>?nEpzM z#YxY*gJzBZFIgp-Lwe!+$*&{-#Q%EU`*5C|4?CcM@xK8kPkocEAP%TA;n$>ix@+da*jYsF_X`xd~bM@3j)3j{OYihzOm~n4Hjx5 z==tr#Tp;0B59PCC2>OU~omlLJfnMa2&gV3~qfvlU3W9P-IUK!pUti^ifRFn{9ZuIn zlz?Ok3|xRZC>ZAmNhS>*rr+G}_|K&dSr5%u=w9(j#dF`Oht?Z$2TkEDrCq&4opFGI zj(FXv4BN9}KH$GSw%D4-Y=h)f9O*=eM--P~2Gj|Oq!?5zI+xk7AyVn`r8+hwi)QdjOQBpwc4_#U4c0>+?tx z%(H2X(HIvk?fg{5us8Jm1V+Bxh2>9sls)^8P2p0|8&ny#$Z8`O#?x(A$HeUj@iLu^ zIE?ptv?diH;N^>QVeC1A-?q&d7^P0Lk1<*z*J&6_K_so~A{d;7l(j>fx3qgCZ4d}J z1PFCMz_{4^l(89O5$iSytWwZbtC0|f0)2#5U{nfa9Yrjf8K}&471@@$~^@H zOvFD%@G7TOh4sRYHh@X=(5t?S9=uuek9Bp0+t6?Wxbjs z&!S6(L zF=8=VV$7joM~iXKpnf1>7ouxL2qlKGrLsLhHAiqkRwxZ#2F8yu49l(AFULp)dHO#p z1?f`N2x5%<-gF5Ya~QIx(qZ7ya`ybdaF5IO!3F~MnspH%o+IFVoaT+8B_$9W>x(h+ z$4Lu}R5Na>)Q#JXvz3(pFo#Tt;wQ{Ga*D(v#Bgi#)f)^eteoaRn7OI+Tj6@>O@nU( z*&G3zzpfWXW!2rLPzH_8Kl(vJ{zjFtKd z^dJ~0?~vJS7;`>@7-Fz8dX~1dBf7F#eP}Q|2rg#Aa3>|rPXlx43+k_70*80N^&M(l z&r%#0bNuo1cfFn?=z1SBwso5!4*|S6OF=w6x>uXG8D(0tWTl`7DBcC^f#IPERaM;y zT+DUy*m(bK%c8xpL!y^Z4e~ZH^?N+XUdr+VQ=@)gTHAdO6QHP;e7<%$6h0M=X6R-D zlrTdWSC6M0k-DmjU6z8wVB2)tO~W7b@me7FNZO2{0qJ}$@_l^ca+Pre<^96 z{3yR@y6$NJd#B^6S1Tt&N4;ZBWB0gNDjYoszbjc&K%ki(`nLF;m(cu-G3Hz1$y%C?|oXZne2mn7d?&A_TyveXn?J!W> zQS|g_AdSCg)acatnvMsVkGHrZzGPjF>|IHGCl5HMkEA`7|&_)_GITt`{ z@_B=S2lteAW>gjMPo@pgRM2WGXahdT`9V8N%t!Zc#N^dV@{2&^+A872LU$yP7eb`= zwIx%zTQjcetH>_@yQu)m9#WSj+4nzMX(D41{o*U?eg}YsMngBhke*S{9q#;n<&`oe z-aLjTQTc6H8Rr)6ro#rmUlHkU+*R#fFA@&`ToQ3rmK}wM-gXP5277m3jHd)(3&yA{ zyD`jQO|XOpIF`90sEw^|jvq~rYH4+^lP3gt2%iK5IxzbLC_n>32;u_ncUZe0zrd#U z@7|{l7|zBC=n(nS^+Tku&}h?ri>tf)Qt2x)0h{gz+IrPDp09|a;xu~r!|j89Yk>0$ zfcG`|qL9f4wi8Tdxf?XZjn$2)LZi<%`7A2Zcb=Iy$mST#@H9cz;KW;@{715oEs{*v7IT`BHmn6`LZ*n?kpkH{AoJBV%ru zas56|FuX*D+?f{ywL2N@X48}XisP(<0RIZ?vAmnC{(!s|{!;`*C}s)wo(+eS9xv2d zy?>^~V1dif_$wH}O7T0@;7eJT)lF{ayYin%i_l~?t6x8rPmlEbH2*VeLwtu0Lfg$A zQZKKRpB);2ziE3)`}i!^hR`TVl`HbyJDnEAv~L|CqKk}*eh2ir(7bA;h}IY0Ndq3d zxa|eKdPI0R{-b){SWGD5Jv7Bp*+=k!6mm1Nh-{robxjwRnynh;&5U(-@FT)Yd9q1d~w)?No zor{8K6^V7BQ;B8#&fv>>W6jyWN5I?dS}D#33v&B%x5>F>V?1jQrMARzT^v=Q&O!sG z#)G4C)>nCS&HG>LrS5mHV1oGpG{5dXr_CT6qm#MqqnjHk2bXfVp))gt0)+nBOid!B zhPDlD-7qToQxOAMgoy9t=;f1A6+vufs7>x3GE|8V(S} z;ZULsYPIyR`-Cfp_!*Rk|6E{=Znn+rGj$^$A812*~=r=tD_RFJ{NJJka5w2j%}4 zBRhK0bcSj;UiXA>=+pGR%Dkul-w-H=qfzAxOkMzH9(bD3K@u4C|M_3#aJ#x=8-f4J z{vtkp*R^Q#|LNZt>;fbWFEH4>(vA4u8R`ASpkaJQiN?Dwp1^>?4i!7{kfQdw&#D)l zzgeT{Gx5b31UgQ(EQsdD!Kg)}{}o~8V8KWx+#)p5 zrbyWi2#F8*FP4u{MiqUMx_3P`?H&Gj?lt)&x?>DovQ%fuysY#$&y_vMUerryx#i&l zC%oIl=!5kY!6G}cB`3Rd2Xtrf{R@Lrqtmu!y`;Yzzx_I!TZop4&*sG+3|@$ey!gFA z$@9eDm-z_}62}j4_cyLlsJIeusX#LXKa>bJr)rs|-$?>WT1wXnMrxePG9C25Kc45| zf|&}7e-vHQlntvvyz8>n|JfFKz;eAGlZ*Xx@m~Z+alv7hSck zcuZbDJ@5*50(W1pg?w<8*fENd+ghE|XKX3mqM4_Y7NBpl=vyGZHNrg9GK*le^y&DQvz`q<09+ zj;fbnjjA7bPj5SsM^7`M`6gVOH&7}$I8+Og7z${KC53AJd`+2_%}JT2&Q6);^og>~ z=_zH~FbfZK!QA@(CwTtJ_RT!@w#Gd6_syjv-xU2bK8b7@!^?V;J*9bHunt~R{$ih` zaePoje4k>3w2e0;yN^lot94eJF=2+1f4l6a!N22zmeQZXbKBUcIG7QMb6(9P_C)$o zlQU4kWu@RA*SIIowNzwpO*`k~N0!zl{zj5=n1O9G=}k*ijl3|$!f=dgw)%|q6x?q< z{CqjsQ8{*uy!32EyQaX*WOYv2Nvv7xD95GuqQYrbDaHoD-2q-JNyBT+ZhXVbO8t9l zhx^f=9+3<4DJQ=95v`(^Jb(GLSJ>=!J2U|&X~sC$i5c7_Gh%|zmRp`rEJ4RAgg1>X zLOSp50?Arc7kEcLP8G?mr0B64K-8Fi^v>*k)PdNg0ghi$?X-2Kc$r7fde#}$ zA}jxv)(a7fnsX!!XkQ1Ctb=d1)M_p$s^jBziJAnUc+%k-SFH%&HRnRXsS>_2o(d4i z7`+)a6I#r;yR+RgPnCi=HKxywMLt#bnIhZYu8= zJPte+Rij;y(sn8TT2>&DNy00eVZbJ*yq-&OPKyxJme2_Xrs2(@=MREGcq0e zB;6FD2P27f9R(v!gab)KG;_YmuV6pqxlHG4yMo0<^X}zS4EY~f9^$XrQK6%i2mq9c$2=-2cm!AD*9ho*C^gv7qpmt zV9$x7eT)2dR{l0&XOX2b1Jc7~w69|MuRZtvgb?CcLrQ$(Z)It9;xNpBPS%$)wl29} zSGi<*dqs@w3QQ~v(s0<;;7vYCjSJx$31;1l;HcY37uIEV3{>Z6Y8htu9EI%9H@F+z z6U_-dQr*m70t^Pe&idIx$s(ag;@h9Yw!;Rj3WmqV=B%GBPB;`+4gC1P*>5s*?)#ho z%x~4|>|u33ZP6(vW87p?>gbkt_+pJkHI)|(b>0Da!j$f+zkq!{^6t(yKS;c*A~s~x zMICCVE%$JK9wz{1yRE#W0$KOyj{d;BZAOMZ6WDl+0CNtv{v~C~jorvNUtd&bUw+cR zQ#PcoH)IO&Av@^OP);>oG%z19*9BlDZzAly;y|$53_H2btBi<>__@_lR@yUs`WMjj~ zyF(x$@foRYUePZ1ML~a4b3=czOXWtwZ`a)`~G$9Y#^we!$Uy5op|%;BRU z-qAxyijnI^yTl^tly6^H8gLzEbFZU>6(tOO_W5Htmn>j27c-|?5F?eR8Y{A_zSjiD zbv-TE@mZlF7_D9~CmW^ZO&Z%Lsm?BeziT^j z4M#1tt`usR-UuANZs2~5e^z$p$qNyOHY;X1Cp_@Ja!Yyo`Ko@+>0Lr#|3Ky|>n!KuTB zhU4%O8*b1tN_)Unt*{5nU|BFdRN$q~eN@M+zs2FdmV0}dv8iK6z0pyofgl%5IU7pZ z*)_9RT~&H0*mc1xNy;5}GRQ965Lgs4oRBn!hVs>?a?x0iSMQFlZgI-@nHI4;T~h}0 zbf4YG%~TDAxf1^wBDIUbL9NHI(L%qHlb&*BCf2^RoSG!v_9z-BUM3Fb?Q`*2M3xdAmjd9Y1FCM zluq($I}pa;AR_Kzwg#sB1^x0`JR>S4Y13yqIdxz@cON*hVbbcFl0DYHXN1tvgM>G$52E z4l`5=hrDUo_cG6(>Epuhd6X zi6gVApG(|wbd}}-JPHQI%f^kH{Bz?|HW!S8|T;UXYFlE7U>VA|bbxgsULRBIh-Lt}*A<7-zc1!9wpgogTU0 zCv|q_LoB)Rotslu^?XBbZE1k(qFF~Pl|g)mpI|B2j&j6NY5v8E7XR9kyIGG*gAx<|_macupM|ayTog}+N+EdlTdLosD&|~*8+nUhIz!LNcq^;+&6kGeza0JI04ca3+|mfBIY zd28hne?7;wRlQzj(eyLYaB8r{SZ!*4r*eC`TFfEvCC7-)t@P>JpuiMlOQYuLLzUS} zY)xIG^6$0=5{2L_+mrY~oCTlS&xWp?Vqx4g`t-xjUxdM-9O{WiSHiN#%IcRak_GVK z<2+3Lzwc7ZK<_h;`9?J7MdZ#2T?0dp=Uka;7B$&3+Z9{g``z`WjOoZSLAFnZ(MX4j zZ5h=WYgV1Z&ULf%yC9sd?}m=4*Dt+nsun#i3mROV&HmY6?YvC5HfQ&n*- zTJ2U4Wg#{CIx!MDF$4P;yX&PbSEg+h9pT~zAi5W=HFL!l1|9F1P7x;0iwF%0ibE+q zPCPgEzlG}_Box-z#sB6BSESYoFt2mh;8@PXPhi-$Pc4HdI=@ zD$pwxO}f}zwmg~j-!}H~Ny8ayvG3B@HxAN)8}Gq1e;X#3xt&1W#lP=CM8U^tCb0`y zfD7DH!kC3;UlC;Jxo_ucgO2fT$6XQjKwFwOhOPs%t?Xz3laskohZyaf>_iXj?4k)+ zd4ZpLqz|=dbkPp{&gR`{64>HsyT#*G;l-TG@ZH*^!K+$BxClEj<`n?2ma*Cz&TBVSNe^J}?K#Iuhp#4o9*$D5~tUYUO z7`o=R(~-mtDkj*vW7wx8#>qc{?m1V6_Y~^95XDkOYr)}!ma{pur)cMU;4A&3+FVJ$ z2MuJw{o!P~ZV8c}T8X3r;qT%um=JezD%r>{85IR(M=r|->2YD-$o|iNt(;`;{VP?$ z_@5%T>n@%7Lw+eONULR~E2>s$pj$4h<%(l-Z9h)30#6c=nc3fRCRD}Dd(V`{y2d|| zrvh1g<1N9+w8LObS5ICMKr%f#pJKYUwyloJ`Cz(vKUdF?b>F~@QA9ALFYsAXeElvA zR#ds8v0nQj`iG7&wTrMlbtG~qY!kQpjqQz{(~aa0R`8(Os}7atvp^gjJUEx3niglH zf>pIPU?k3-?+Lfv_w-xajxTZ#C3>z_EAoKb*6hd#1*QwGu3?+|*seCzK{^#;N{!S- zmll*MT1^?02n0`8NLdsc$4@C+|W_S;8Tte2Xj@8AP(%G(?ztj+k}QLiaq(% z_SG!>D2}|&+@>G_Rbc?l%i6xZb4je?5_ zyggbb$*hNVw-I#J|&eZT4llg>R%B_rkl_v3;DSUlL z;AHfJe!$n8iF9I`pzkWvw&w8K{t?9^W$uodNwnX-eVXE&#Ye=!J7wMaoO~Ak93!!r zL}EmBhMU`Rmn2*Q&+lS}j8wM*#)SsvO*&kvW zmk<5>=vKDB=*MO@7JSrtd^k1j6e&&W_QCcqGh~HkrdFl!Jy3(1IthO^{nLJFxA6Al zM~chqFu)_#K9pK{>8W$8O5ru#VM`NKcbbi&#z(-z8L-tXlgb;E58aDWv2?yXg!*}~ zWubeip|-Q@7mc^q9h6q%fre{f$m7G4cVK*&hoIY`9I!qZM{s*ZRH5k zKv8H-wQbz)*Ue6JJ>+I7cI)8(6TdFeFWOAsr!5_Szt0L)?>*+R1;f@h&GA5w> zIxuOc6eoV>>S6M8-V%q`JJ%EQILxh-z(xjKE@Lf*ERWnZK&8HHmaqHeNIE95>oZ+5 z7aUpsH5v%%#aG@~O|+*C8k^i^6T9k=5@!=b-u*Zam%MMZ+-DNb-rg&PEBQfl8N6lL z3hZly%CXOUm|jr`=iG}Vy0D7fH&_jl{vO=Rf1Y>}^zz^rEP-Hu6 z{*xyeRuN$68k*Xd`LoGt(U%NBD4r(X=SbskL8E-0?C9lzjq;bBy`F2FUrmM#T0z1=KsHs?MvmZchIZ;{T)vElbzPv3N@@av~bzNQe&)DNFeozD4n@*>CKcj48T z1jTN_WcdK|K)L$A-YN@c1eyQgfE=B9ZO~eUz*V>ClmTDBn!p2Jp$9H7UcvZDq2=41 zGAU@uztLVqR%uB@TKTSMiVz|I^FRbGIj2xh+2Y_!GYGK=7g?dT$FwQjt&T!ngld+P zpW(1H@L60ETrZU(j#<^Zcw-6GvRt(loe=>$+vx>3CqExX0e$`%FZUwZzsU3PYRcib zGC!r^IDZn5SBe*hAuFJJC6%paI8k_8yv2zhMtf-aau1e20ZMMm%N3bHHXUpm=Gjqc z0J~XHZT^~`#6{<2hUj<#Lu!6E%NX1`ImQ&PX6}thW)B={ByTdoUETSu#ihU6SlFf) z75C1ZqE?-OLu2E8_{6+(^63wjHZla3qAud??Bq)-uyRpzJ&>w{*cOufD1xrLX{8YE zgzF#<2lS#uazQ0B1XFhw2W?~rZQ=MW{v=>++Xuv=zYl&(lO`W%2c}ylL?duH?12zg zRHLaaq=6j8Nb!1Ew|JOZ#3+Sqa~kx)3UhFbv)|hyCa;k;$*{bM;6^C7&V}SJn&)`0P;$o-2-y{WdS{}MWl)o*Yc-BwJh<69gy%tzRPGq( za7od-a|%kC?x3Cr`jT^otaHY!y8gziOjL5-j7XRIg@TO0)*gGPkUd~{{SbU2LuTo@ zc(CrkBX!{y*0-=h!M_FNm!)GAIt?2i_AwIFssp0P?~Ycd=+uj5sHnk82p848ILrHb zP`FwP%esSCw5-+i$?uYkz5MUz|D5lg?Gi14_%Lu`YFg0-!JP>gVpwJ5zr$R%=>&iF zsb=8SM?%`}u|^Qv=}IZd1UDDQ+|Zdkbxh3InLlA6Zdd$obMH>L)nNzlez zfM@R|PAY03<>9O4u5&diQuiR(>5^B~jJMOdx5D{;!=d)7nFt5z zE&wA~+<2$aG;<|ob>0Unm`J>bd%gkmvf6Hh6@_s#py4}~HyvBk_9;kb&XMBhsk|AB zKFWJ2Mp-(x`_?x_7MKf;$6+4JrO-FQ+n}NiP}^F!J#T(}%dN+eF#l)a+^fXgG%6R0SjAqT!zYk+?D~D_vf>|UZ9cu3& zMBJf`w3HK{n0p?C`Ie~#%0)fyldqTV;%mJ&j|S)-9k`}|Wz0?A7BJcc4$_=C@7mBO zUNIHSrAe!Ay@>2(nm{3`2;AS-m6jlrElrg1@;>O z!PJo*6;IxP#=Xd6K32Bp*ugns8DHo(-l~zau3x}$?3{SQ7fB<(zGotOo|*sS=B|^k znG_2yYSYjTBJrz2Zcx!knc3G&J)g=hy?}HF{w?OYgbYu3y(Q^*Em!ZA?33vF+PpIQ zV<$%zw()cQLH}ewK&mJx;KcojKih`nPyTn(G>idSdun}UiWSeCjWoRS2c8Fh`4Vn& z5w*XWUC(Yw_dKOH5FRq)@?^&FTvj#x>aaB+j-z#Z}jY1Yd zX*P9H%QlyVo@qa-Y?^n9d_-x|J-?V!-wKh;sd!@-MwQu03n6mer~G3GXZa&94sWlN z{E|>~+?41ZCQbj!0(oQ>@%GJG)?tvWcVW;8E^GE*%D&gqwC2;G*G`v=rI_rszcd3o z4(ahdGK*de&$63=XC7n(B!P=;e`n9m28mZ)#iUF=HqTOt&Wp9Z_R1q9^ig>REk%Xo zE%u2C2ag}eqO=YQ+rkmE3o&v#e!wWREP{|ggVnN)uv%KIdhoqu3x15a{&8a(r!H=m zl?(l*@N;LO4RqFo0k0+7v(=t2m}c$e9(Y2K8rMHQv#=XrAAS4Yrhut{$bpZn#LZEe z>N&;p2a7TLCyThu5>~lhDJia&iZzZ|TuVeUujGC&Iu46^|MgJ9rEYQc%^+THY=)om zr&?lHu;Os;OJ>#J3vB-fdzF#JL9p7>qv>5jAv*2-&%)pO#q?JZ!7wa6{##kfSATuJ zY)ALUxCKAi0Q%RJJqvs^M#rY~2-^naZWoEl;DgG>FuYXn=<~fMi`--a!f5WJ($b*z4nNX*qM-?H$LP?E?;gBPgjKftj&`fo%JYqJ||b8q?Hj9e@RVc z`!u~(i;Jnj_V;@WE)DAua1#o5KaSCjD53h2)taJWN=)w6a45n!!OPa*&D=ezTNL5<**GQQ!}IEFM^F%od9_mT4WCgy&}Sg}RLdT7f6?`cp2sGl%3l-DeT z>Z|J~c58vjNs%=piMi6FMi)n?`3q$Ce`cdhn4dJXHV&3_3ykH%$?VeH=p@NCDK7OZPWZ{cQ7E&Py;Qrr zquP@riT+L4)2iRwOsV<`w7_cbYL|fN4z5|e()A{mLm=&&0aa6JUxbf%!beBP*-v`q z=XK{JS9tv1%NtL&PX6)S3A(oR->^ql<(O;GZXLz(Ir>WRbh*gnxktjVxZ!}kCx3VS zDY2vQ6q;-6^eELwUo4z6v&-aPkgZLVY=e=YP~bgGQ!t5*L$7h5li&GsWgJM)X9kW#QV(qCKGdYb!?{Sisram{b*>B zUlF8j6P&;pOy(U>ydj^K69t@>)(n(trH&Pvq#BIfL{_+JKm5^5yvUfvjt7=6o9VJv z8@_*q3~0hKy2&eBDBIv&pUkvc=3N{6clSb%%k2S5vvOEGB< z%bVpSX5>Or)9}>vg=U_58n$NH-FyC%N$#X z;Ly|cqW7QFqPgH?)qElX&n1XQ$iuzAx!)b+*3eg71;K<=8aDOYZ(4cm);^F3!LrTO z7NRSxMuTNimcfy|K!f?Yzd$nm92Je{LX9_W@4XKg1n9`K51-%7KW)zc*tQfoCE9Xr z$XwsRx*`It<8CM&@|WpN>WeT>xm9>p5fkZi5`LBF`15(g*?mk+Nhvk$NU}@W9lSY0 zebxL>%XEb8e|+)W_UsHnDlfnnvE23rDEnsot=u?qr6H0RM_Q)m zuar?2z`z{uKWpm3R~=A&0O4o*StMpenOIv5D*AKj)m20~M5^Z&}#7Un$ z7dm1RUF4n|+@%z59KlVRv~q0Su6=dtpe@kS_8Ae2CL{Ea>;1A+H1Uz;nWUu5Flsr} zV=#S6uT@4KV2yYXXZt0iv=+(Gy41Np%0^t0Mq&Lb*ox@)q=-XOXyRw>=i$bNi!JZw zLT%wJf^J}B?%3~RBi1;gp((aG9!F-z7@S42I2f~rdI;qMi~G4^W#56fAm+w zHZP}J2MOz(l|q!e)WA`szT#MGqr`^mm1O64hp2DQ^STU!hQukc)xe&e?1!h%bEOT zokZq-FwoYO4SzwtZB>!Vk17x&#v4G z`Tb$Lz*KJ!t*ZbB)mTma_3HCkIjMu!yD4+q!PlfgVM_brtiw$-%$O?Bmz+8+xq#^7 zhN||9q0#$K=l8SOHgT2Lk#RrsT(6p){q7rX-18EMiMMyB`)N~cEc+`Ycs0Xd_tD3F zsRF5O7u*Xw>Atrb41{LYq+U>_?w34S;Spm@L*?$ zygoX1rGRJ372?`onphuILY>Z?pn_*pl?lQUbDm8& zufm2uXnV#y(d!q#YI>8%G|MIt1U!{XY1)5!kUKh%oHoc0DkTI6;j) zc3B9F=Uw01B(%E9;PtyD|Cr>40Z7HAs7dx4MD}`a$e~vA{S5 zGCPBjcPDG>ZUm(GM#^LFUy!BVlDu^7HAN;y!uEIeIu@YG}$AyRj`r0rttE8?UZu~x}ZbZ))%ceArj-lxJN3S`(g zR$c8_ywaQ#!cXheI#F`*;`_dQ5~$$L<+Gdt{UyHa*mp%eb?;Tn0m%3DW+fOeDFcUz z(yPgG9F^g!zG3<)6I4PA9#CvMYOvki+^{haw5R6B;h)@Go={N@;xtzFm$P6KU~gho zLOvYPgeF{n>v)4Qu_H%C75`-G)#SJ`Wim+ic1eIwghZKA=(b0Mq@j(wk6S_%#md@$ z&MS?PX{$OoAHC}}zivt@Bw^&d0)qw6dWiwAFEKZP&wqV+sy8gN0@RL&!)p#Jv}}SS zLkJtNvRFz(Ouxq0Ywc(|8_8=Y2|9Odi-i2@ZcsRnh0-%Z$CoaW*M7g=Y!WfX3)z+vVIDQC_MV z<^q_YNqm%k=s@CMGk}c>km2*+ty@~3FETC;ulqFa&}y8wEwgqNCfu#xdpD&dm>fnU zRO~kS(toyQa`2H#7Zq!(NYka{rCjXlWPSgih|uCnE_O&bvF+7LVRe5dN(DJ)Wl=jt2t|m>L7&4)e)M?y_{dZi``rN z9rkLn$6F3=di&$s=pPJ|!7OA1K_x;->3?rZhld{D*083-rP3xcMwormlE1lD)B zVq2E>4kKEN-$hk2xo)vQ+2Bu+CZE78yN5saIxwXP5HKxImzaco+9Ec| z_Pt9qk`#==?xKV>QnG!k57}cejIt|fzD<{yGFmt~2WEEe&X|oa5=RQ~4Oc$C;PG+5 zznD#i6YagU-(M@uuAZq&E0#12W3|%J9j#pD|NiAFR7ms4laZ5GQ^AOw?PJ4L7N$*F z%=fjcPd3)wjV{Jcv%ZFg@oE3)8n3uNnv4q7R>YrHNAlZsiNmUo>AzolzwQ8`S`utq zX=f=t$N`QN59(2cQFL#;uw_Ty=KGxxL7qCvzh#SqKPZ#FDTV*zV0hw55%L2x>~@Ap4QcAFVpwREA25WYTrNI>hIPP>vpIQZb3`vzS%o19(_t3u11?)q zE{UH#pcf4cbYt^RcCTz#HXX3ZdwzUGE}RMCPTZA<&kn_>*QA^C>CLRb9TZ#W}}4yv+Uq7BM5+ez>EDS>xs?)*WM5 z1)zqFJ5O2EC78hv=I->=Eu zvczI`w`ULC?*}^E>0H^^t;wk3dnE<36QGB~q=^&a+hqPI@;)7E^6lGQ*6~LkZz@^J zB9Do;ie!fCSPvc^?Lw!?imuegHum@x#@fE|=!@>19gBQc3^H_ZGhz*V*3{l^P1B;b zf}(%tDP3xqKi?3)=IeLQ8L3#azP2Y9O{Vh&U zB}dF;?3hjum>CeQT>a+E`O)5E7;opbE)IV(v{w2A8QaY;?#GzFxA9i9bw3sQjk{H5 z$Qd>-hQ-vFTzTj@%HyTixBySj@-9o7B^4d?coY9f+;b4!Bk9Soj~zRuyPxg8;L)wG zZ$>}y^laJbMbPMgd*53=8FA80v~HGD?<8|K=^>8yw>B$WgXc_g=rN1t`o>`pC%=C< z#wD(?EdD^|Rp;KO!qI)Mkk00dYUYJp-Qu);zd6TeQ3t1_HHG~K+s<%YJNLrU7T!-C zLaXvEdcE~?h+%eYcI`?b>)70JK2x$SSd6K~8yY=Y!_@!b;o9$FJLa~xwri``q%n#M z2vdWwJvI|ECv9X+dcZO+dU(+1Q9pmy^`pCQ%>vQP%Tq>fYj$8iV{AY<{od$)N7HJI z9q-Ppa`a*vete!HK6!OctGe`GziFXWMtS){!B^|i6Ybv=8k_9+kmoa-X+81r&retAh2w4JM%nouWAv{60!H_psH}f+`gOFw zoh)Dbtlap~O{n+Xltkc9wYPMK$E8$zQ!f3{i)wGCfS7~Yo5i4F>c|x3rZ?!!fn4s^ zNvM5JzdM(r&$PXvPthy+eWNLQ%a%5`5q-caL~p8}5K7S>F%LUO(d(x!F{bEic_T#> zeM;BU_bB>3iaGfF*aM$k(Yb%-XXo#s=ov}3U)fUmUUfp}5~m#cwuGX0UD_I*qZ%69 z)q$d?>u)+l(WhMK@r|NSaRgHly=dPBir%oIbqk80^eN?$6uoPn6!Al>hU6#bFR z_}7S@qu4-|H=XeW$$!tMCP$Hcp0DUe(KDPo_)_$YjEr>@eN|Rob2OiEw7?6c|7F+_ z#DC_vCKP?h`zs2Y2whH#9=)Fz#H=^{n$huJURV_WeQTo=m4^Z^E z%OcQu!wlD>_7uIc{~e?crJXHNd7Dqq6jJn`k7Zw_=mWxp-za&~D?6d{Peb(#PayfP zjx?m`YYe25k$ie&9Hi)*CmliO>FO_DgwA2k9XxIWs^6IvS1Et_r}NrLDf-YoKl3Si zq1$V8j@&k)Hc#m1x!mHv?~HHcn$tr@DX&jBt3lF#>R->ETqih;plioW^v z3MBtflcbr5|Md^6Df-MirRW^r&{1E9BYm?jT};t$DfdG1i4HKDhV(yr9ZKKZsZk@; zpK;2@A$p@%sJwslw*%TDeR#GqjiOIXZ-Ua-k3RN_N`H&EQy`L$=L01Ftiu&ZJ}IT% zOe7zv5h^eJ*vp%gJgW+wMpE>a%M-Sv`nvB%L-O1dh{|hfvZE5EAOG_MMPGI$+mWKr zBDbUVb%e+7O3|kmi;(;o>yF<+`hRFQ(*M!{*APFMrAvP{q4c|VZ;Ir3xm6OPzdBcm z^mA~`Q3X2B`86tUif}$^FRtY!n1Ak`p{PABf3cgQuhnx$=YuP2c8#LwtNgnbQ1k&0 z%-f^>e)KdtMNdDx?>eeq-|`m}z3I&&A7oE&FnwM7Zi|CNDnDEgX7D<&ZQ=N?D;7W%0hl23H! zK?z9yx32C)@;NhsM(GbdDjnU6T(+HafugUCP3(>2nSBV^6Xnw<$bME>k40y>lyT=E z`4HQeB_e&8-lro)uYb`$nW8T%@A?3xAH76D@w0#D>Q7&aUdRYR?bka|gyfmEJ`&kC zWlNLIBhs9w7ftlY1FZ!UFJ13(si0lBeRZ>bufXnk9=w(ZTPS{hJP0-pH6q`+np^q( zWGc2-ISg1<7E1Q!m1J~wlq$eQp*%4 zH_CrwLPAa`+Pmpbe4*GDnBwd?KK8{opW{T%m|BCe9>r@7+`2|SaT4Z#WSyNbemg;& zaVBzqFbMj3*jBBr2+JaK)YjHJ$1Rzg9nHS{CEPP*bjX{`%|Tn%wjF=_;ncA`O<#L- zn>^js=(V+@#SjBCodp`pi%=HOelq3`B`kjznn7(hA?St-B4wowk;}0rYVFLS#+eXR z5ekB_dL&VsZ3SBhOyhljB6OgVP&(QYDfvT*lqhpT*xHl`HHUTQ26-Delpxxf6O0@a zBBe1PLf_jEWpXQmSUQ+s%r_>8XCzU(+=fuD9ZD#_41RB7?)>8gm#1c%~YVcDWx#(G&6#J(*#=I0wQG`%wvHSc3tL#9@Dd#)a~Qf31e)w2cB?_^?&!H@3@OSs(qfUUFZFFbF|m1 zHv>IBTGB?Jjy~ry=fXCpUG()1H9pswE}k1q(LH~!XeX33Hs~?ao2;b22Csi}(tYy! zn~sh9d1*|0ZmL()0ewBKs?WRcSI9DhE}%%4-mT9$W_ zY1QNlV?@x8yvG-(xE^e0b<%j)^FheA{FogWWNmu=Vc1olr_bhG8oA8YLz&a`%)^zp zoO}$P7L6=Af=<7b%x-O)*s_29u~TopkIEOnIc|8@6ufkM1&$^%3V4lPocLwXzWnf% zr(>v~ac z;a97!%(xaG6yXLAdB|o@YUJWSKEv6O_RdLRGv8@RIbx~94fiuF zKj}u6Y>bjQWn~HTS9U&wH@_9ra?=5FV!~>M`>#Us_*?tU0n+|x-lWr81OMd%dylnv z&vduXUE?&!;Oq|dMJ9hPozQvtpIhznLw2|$PD~dMB5hBkZsq{KL)6C9dx2{-EQ%q{|A40ZOjp^)$< z^a-Nt1Y!zRj&2i)X+%$0tTsd&YR$Pv-S=ip>TKg)V#1f`KoGqn2uJE(PI@HaOx?@b zCyH>P&ba6sO}Kwjw@memAx2a2`^OUQL@R-DoT_4)7RU{fuLK2qe=;ni!kRTatLpx zpDW(iz|{H*@Bf}3?O*)#>irt2e(Lz6*?ebCm?vAr6pB3ANu#Cw(NZ2$8s*CojtQ4| z3E~|&I%k~wO8K4wzMqui&x!DhmO6{LzHA9<=N4$MDz!Vq0-Xg!pcYG4X&`m)E@jEk zg;;-R*8%>ShYR8eR8!_*Fd=hTZ>sa&!d1Ke&Cy8#9Q0S1YR9`dYC;sHIZVnzi^I({ zhI}uLDc?e4$@kG5OFVG8;EA)cpO1*zc@~8BE2G6vEE79Nxgp(*(qA7tb}$(cA9opR!Tc3J3~7!JKN}j>|CQV z+4)9SWEUD;mtAahQ+A0~DJ!GhkzJ?ZB0>=x~r>^AMWtWxgeXzr<+Ga6IfQlnFsre>xtNnMs2naWL#NnM^g zCDkEyYN})Eq|`AoZ`oLxkIYx*CmSalFY}iL$edGMQst?ssWVeuQ&*&h%Gk0nS-31h z#*szJqGZuBt}I3tE91%HWPE>_Kqiz;mWgCynM5X)#mf?8iLxYFTxv!tKXpv%*i=qx zs!S%6%Vx@E$Q z4NDcKdc#t%#ng%Oy1xk@cB9T{?H7Cpb=>E@2)lmThcM^EeuO{X9YB9L^zA`}qiPQ! zG<0G5Hg?UBb@vAC{Fj`F@#gAjw9@I2d~f1zgd9r=rskxYtc%CJ0D}@L=+wI8;l)eE+V}D z0HbumC4`r+VEk%ShRemqcxnyC={GTU>vS363U7=b=3yLm8sj)Uyq-Va9^;5ajGy*l z%zBB@(DVwzgfNT;vN2x1j`5uSRfHQyV+@*!@zn{8A)herw8Ve+Y*lbER;|Zad>iA; zj@J?P_Qbei7RF~MFn0Zjv9I|Jgv}x`maM@TdJW^%))kn}5u^JQjGp^24tR?3Ztt5| zkH=%YHXmc>VvLqwF!r;!h07Cxaq%jQ?aDAlG`Wp%kuApM0*vB~7)@_tJkX{RmxG0I zTs+3;Z5Vy;V(fopa0lToCyc$5Fh=dbIO`t9DF$~Dx;kNeo`8|F4dbCojCb4KLwJXQ zai0j|#ElrMu3^k>gzp2i?t$^JHAW*(jMF(7i>G0Hw+v(3T^Ku-U~F<1#rHst?v8P&CB~*s7)t^%iuf2?$}wiFP~9K71LGtm#w}Md-mSq%`+-rv z{Ud~}jWBV($2gU`V80{n&D`sO1U5)YjE{rxs80TEWSW<(r_8Z3L?eM+7ZTe#T zWsUK!3&!n17$f5_woSpfaWO`dO&GHdWBhamqhlq;8Lu#ICY~THFu+*cALF6n7+1Jr zj0(copNH}CG>ows7~kh&HP!RS7}tM(!l-OsgRrct3I}2=7=UyL7eFbeiyys5-E^fJce`xy7X!FZd7_YJ*kkFoBaLHJ^Md*q3nN8`cr zdw2b|J&XY9x4Lg{az6@`ku*=EQ?5X0eBE~Y=fNPlacRNE%0O^yOV*2n?|s3~)HQ6k zHL-udx`p%XM4AI|T-oX@=rtCYTLsyDdgll7U~4X&91KpM5PYt>5Cufp>GOxS^9Mh@ zR<7RFEEr^Up3+mVlmYslJMwbYxNxw%?fxjEnL=RhGDJUhZ4!8OymLnxGZegEURj+M zIs*iB4+-||<^tB)Jtid~@t|Xw$Xa}28t8x7W}fGH!)ai^w^CoD!bGs>OU(nfQBuGx zbiF^2l>oMkzsD^CUf@j2>0Z*0Gr-QE?o*71Oa{l7+A_X&oCYd3%uz0X7Y2?k`~P>b^y1@|)lX_>CcV@PH&oeau(#mvwl31H#0a3XhB5{Pa&f7SpC0cde^`HY!K>40T^zw4F#b3xI`dts@~ zrC|P=3+vqcLxEvhEH5~3B8b@eW}3n#3NWm;`4|+(f-SZ?7p3}40)~G%Z|rXlm;+LB zmmKQ#CIsYeaC-AF$O*{KDoZMkPX&#y7+r0AP6!eoPuTu_XA)>`6nQGsehyg^pN z%y>|Bc)k70v|->?+gawGp|e4S@3%ph3zGrE#U%Rbej8x-NPofgQ!~K1f|-VozNCZ8 zO|#Q#XU_#+XMIc(^^$*sJzZB=m~L?fRgQBAW1;BskYOit0GnRna>1TF^ zhUb97^}`mtC|L}K@A3HTd37FWJA^O0)MXJkb7|;1t4-O!{P-I0=5I5>U8gfkrj^YH zqPXeT?@d_-0!licnzKC_}r3tN`&oM&+BY zrGmobzOFyoWCP!*!?z;NECS0Nh1bU4O#{&@FZVvYYbG%4I_1G|Tp$mL+_GZ)cl!DPU=`i8MNcL=cC(2;iRWg4&>+fz|fFb#+^`tLb$ zWEqIqF^PY)zq1c&ISgAH`e@67-r`rESjyuTqXb_j8&Bj<^TC9!(DggD)kO zG~b;C+i6RyfwM9}=K;lQpI=D>KaZZ9ac))`SazbSaO|f=Ak^s7p1n={!Q!*cD=M;9 zgOqqhT@4$79h3? z*1Qjn04eWG26cGo4symEX_aNQ3}kK?b@9QR08rX`XK`Y}46y$B$%~}m$XYqnYt4+^fa{YUQT>0o z1o#y?=Wp3?4s5)p&wld$3K#@}#`cY;k!A1Z`nXqC1N}+t#IR27$q#)h+FlFtC4-l| z9jAZDnPeD*j!t^uPhQy>6LR3dS~6?+l;y36S>$5n&UQ;}m88dP#k*EZ_mcX326p3@ z-zBdv_op*lzL67;1b^5+#h9_fu-AX*5QiR&jduq%d6nVGFn)TWa(Yh=qwVx@j-B0w zj2>%So;{cs&nQ^cUv&QFZpOh|fO|LKA|oPvM*!_~1%nRWN4T(`Fbq!%_D{2F%6!oN zco)wyvB~6U^+mbLFmUrS8mNxntA~`b4I#w9xkf-qL?PXdgoJ zuZC@@_0r6Zefv`wP~$a9lz_T4!A&JB9Xp zINIHz(7W^9cPPDsL@O#^*Byao%-G(XI@TrgN->?n=%HtZQ&`*gvloSyM_X|yWb9fs zmBQvO!X*?2#K&%<0p< zM_YY=w));|^?ljud$QH{W2^7QR^NxMz6V=<|F!zwYxRBC>U*x$_gky)wN~F}t-i-v zeSfw3-fH!I)#`hy)%R1Y@1<7XN3FhxT7Cbt`rc{0UZlEbT7AECch$Yp>ieYC_eg(K z-5;&KH(GsPwC0{@)%}0a>U*Kp_d%=gfmYxDtiJbIp}Oz+f$E-T_5IH3d!5zyIj5`c zaUQO^zgc~6bByY~X7xSI>ie0qRQEEg?_*Zq!>qo4S$*%ay8MfYm==$1#{x!P(zn)! zCxR$t+#zG5`Owb0r0q?e2bw>>fB8b;G0@_hbtihx1>m>RYjl6p9(RD`S<{JmFRp@9 zFOxGl($ce9JyF?~t9Z->0QZGiSTIA!wpyZ+?%R&6VC zpgpDsUYPRz*GzJlb;+S6&>r{rF>W7akG)$Ncckp``nP9#Q}+0c^>}2DD?Pg+du*GB z?eWKl*dBMAhV6gx$u-y>AFXGP!~dK1I9wo()}H5;<$Il^>`Tu5L*bNt+3D8e31wd_ zhYK4~_C+GDjil^LlhP;)%D$XQ*$_+F7tUF)v6OugEVqlZ2ea^3YDvM;p` zWqy=>*)$|(5oKQSFNZ^14pR1|G_1v9%Dx20#&9Y7(nI|56J=jk zjaWW{vM=M6L!2r5^1}2*OUl0R?#-V_*_XkQ?&m4{BJ&rGrtHh7UbYsLeF<7{ybonx z;@gz3Ysi1Tcz?J#mg>Kb-+bGK>c1u#USC1=Un$@&>c6(Wdwq`Tzq;n`nSTrcfv4g-Qgg7My(@IYXpVx`6(Dq&A(rSSPuO+VEAq5 zs-XW7#Anb^`_G|`PC<5+Nat4A7)@e(&ZP$;F zZT&14+q%T(+6JubZ4+|$m96sC1)DY9t8JA}N=67CFShl2zs$Dm(2J3--m%Z(gaZD5 zb-mTqn*-xV@rnQUYw+jjJ?I%%Xu)@a7z2Ote}Dc)Fn<%6zY)yeBD|^v z!KrFPn8D}n@c9Uc;~)-!I0oV{h`w5Kx2iRQ`J4O~@;8F{o51{yVE!gB|0Xd1J}`g( z_AviWFn=SMzX{CW24El|r-w635Yc1lVpo^?EfoKxXt~H4XtL+)XuC;(@5mTQ(8)#qs{~Px8zx%U+ z_SygcVEb%eJ3vRK%-TWG6KgG^Nr-t4#2=PCkf7g2X_k{VI!2El{ z{7qo~-3JB;atms@uOgT4vhbMy@rUx*}O0{ z>h7G_qRhbSTe2L40g}yleYqvxPjQ2Z_f3?m_DRGo#`__fnc#g7({G@C4k>>=%kX}N zL7sTug5@u~Ut!L6v@ang$OrE~IP(teJ4pGIabA@U-alZNkM<2H`)@$|15$#c&^`bq za{yZBPkB&-kl~Ss*7cS1*l688WoI|EKA&>pGG3=IO+)MO${RL#z5Vkugeg|5@Vfd^ z7qo7!?Dq~~%8P8YPR{t`h}M6>Q#_v|RDQ}p>)ni>L-Bfc%vFR8mISR^GcpX&x^zmw zZiKl$Mrb{m0YnI^LRCsH|FoFjVg*!m5m()han4WPIL;*HtT?Af%fOMC+f*FR=(2jGcc7bM;;!tYVoz zChP0T?RQC2Q+f{vrBQlWh2m(iwj@1gLdhhs(&D_|V7&lf>1$w{TpR|LOcir?2D8D_ zS^M_J7I^r9>4>E-S4@U zrs)GqX8eKi?>#`4)uDgy7P;XdzC~<$-ea~Zomk*AZo}LR|5)%nfA{248#aizNNaZG z8V9iYT;6y5NgRmi?3J}p7zc)1oPO%W9S3ersOj+W0UdnoZ*rjOupKzqxs${IamUPiQX}=Ck|xo$=);JFdOu} zm%qKUzzu};V6J?(p99AEehdV$0l;9#{bz$+eSlrku-AV!U->}9iDPs55gd`qL}>iz z>^Cubs@{4fVb|Y+RV(c{_2pSM*1_wSy+ zR6qXz>hqQU-SeL6^Y@=VPpSUzKYjjF{olWPzEZ>S|JR-W^zWYM)NuR$`}3XtqR zUeoWt|L%WzQK2!?>Y!0gz_h8%d?Oiq?arO& zH)hx`G&;@6q%rLJGn);A@&0$`N9S|Uk)-qp4v&8$;ShFq1OWgX$3hLDzO0!r5hDEC z3}~OfDL|ic3>t*Lo-i}Rd(ZDKlrAf{6LWZ{2<;Io0y zSx{-)Q+e7GMi7mmvx5;QL7WO*XndH2I=a$C{n1c-q^_SjK~fN@_QG&Dj^&vUp<;=M z%a4Dmd(IQU06KLnCO4cOC1r~uOfWqs92N%`A4Z^42bPMY)H79h7+cJ#{}eu_#>?z~ zh!??$WJ`JIP)>CKJ)9>HOGSwHx_mXETnQGf4qw{QwFyGwxgv=amMDTN7V_BPoH!0& zLXTq$)%>aAWA^`)3Z&yi)BlMTt?)l5LZyEbE)XXDsj#~F{3A=DPWT&>P-z5pbg4ut z;-hL*)t{#JLw)@GsJj~|{iSqNH~i0xgbL#LTsoyAVlJf}D!r$Yz~ObmREOv!@LPEO za>lXw>?lqI{a@8@J-R>E^Y3!2C+9!b=RZ=0MkMjsaj+?{C7eXAM4Qh@=<4cKO~-%b zb0u6hkDJWVp$PqVnA6egf2P!JuM%{{vsSZhKz{$6p4x6fnhtxB*TA8I51;a+h#(x2*!}0p*!_KAVHELXnn|t7fBdJ5QNt_4-ZX!snZLm_^OL* zrm?^3WKkx+h4ZC6o=_sHO9zHV3nFv~;{{yw(Grgx7Z$-Lh-oHtt#ozRh5CO3B|+Id zPT~~GKTWMK?1&ht7=}$Dbm^wl<5R6t5o`&Y9><9b--{t1fB7$dc;YDlHt?)I$-rBCP<>C{Md=; zW6$tt*g;X>4Z#1n&|o1xqXmB=>MtoD+CM&QKa||5Bbn9t3n25&!_X-zEq5T$c62mz{syz;dnX%)9m`4>~ zXn!(aLPQ9p=m6_To&bF>7ZL)WjwFaMfdC!+j{H_bF%B87!l5HI^IU(Ff4DW0$wtr_m&U2(9xi}pFhPIoxsb~bf%2!uV^b)bjSyx(4e|p$bduEQRo^B{y3(lipIPmH z8$+v!XqqQwjqo`M)>a>Px!CaMd)S%f^w{PD*m27q5-K`qoeDa?Ds#T{M3&>;qOmfxAm85z;fX}AR^4Uo4 z)f)$Yo5+?Izpv~+bsH)8rGF#l#W6C#!C-#I%BJ^DJ?zS>89=yd|yB?;WW# zf0Oc_T=a4(Ic(Brvb>MgjHx&ERPTZM4E6bJ)#o~+XTcdoA54S0sKR@xkd9HwVcbua zFf?jiir*(w&R43QRWZ=nAn02n{5}X}uigu&IuC!&kVWJihiH**tgKj^G0^?Zo>{9IV)3YeDy)-#&(s+<4Xs5J*xqcAjc z^!wK5sX`?eg-RYuSbnWJ4R@ugyh>F$m8x*hZgg|I9|uq;K?mt?RU#jqTwAlYec zThM>@k#VOf=Wdf~RNIX`YwPSrV`>u}^sDVg6D|8Pc*CFVi#DBP*5A=(&e6>`3;Mkq zpxg0Km+rvBIy#yb-O^*ablJxmrkk3tOE(kx0~(;~Uyp8Ze#7bMAJL^Vgnr8g=#CuL zrBfbmn69I~!9Ut@HQm*db?NC*->#i(-ynZoZE77I_3``X)ZgiT`?j9?mTckgde9Kv z$-ktFo>nJk?fT`-(B)4uqv3KGh8XCiM~8mXe~~XGmyw+e8q`0-1?_dyThMU6C+F$X zouBu2@^j6ptKWZ;OYYIXqkD1e@92UL{~cY``oE()@apgAj#T^|UFBblz|B}C}`F}^Z^e@v(Ir5kF_LutC`Y-94 zZ}>YpkH0L(k<#|W$iJZbUig=EDeZr=L&$E3+W(auuWVtUWB;mK82mPFf3|U4549ds zXNie4Ax^vJKLU$Ot zW4GH92cX*tT^@8f&@F>*9(1YDB|x{KvMrGf-7@GFLN^<_6zGzm6G0aX9r}OP`fgi7 za<45>3h@_o$?)$G=)9pTgZ?;(!=N*UZV&W3K-7n>2L7E1-T3=$i80VIp|gU{2)g#r z{ite7JcaHWbZHOT5;LHi3|%;Mzx$y5l@}NpnuOWXqO!%{%sL~444{lhmb;jnwTJnf!xZI`n^2_~0y4v!f(xT#d z2mdo&EtK_VNSD|EUF{$0;j?xfQsqd|OR0qM5441~Eeekry1)+iHgv|F2%=vvf^dOu zF?4&OJJ1`BeP9P42Hg?pI`@Gz&{;$0(2pQq!H#-a0zpig4Q+pFCP92W4993k2;xva zL0p8+v5X-6po@S`^8a!79pF(_TifrMdS=dKTI!^SB8VsJdq^YPO1Vu%SI4Cw8 zV^HjfqF68HTCk&{V!I+X>`|j)j|hrADt6R}sM!B^?{lV{lgZ5Bz4!b6|IhQh&t&hj zc3*q#wRR=WAufL-mJs(79mHy49dW}N;2mPqJHVdr0yh!e#PIhSj_4$+J^()akoIjC za4PXEQScF2mAH+l>=t`tSsr5T4-B`FW9`r6r%gbF*q+$dry!KCU?Q=e@D?aIu~@;= z#EyLx97SBxPr?5E6`VqxN4!8x-crFy#LU483by9|+bVzfeFp`%3{!CS7zGaz-NYth z<5&gL#woaps2s0gByj{0oS|Si@#1U+Z=I?@IZeTtL_1M@x`KPoW}5$0Fy?XvQ?F2P zG;thp67eeWuPYTyxKY8Dw<>sfse;Zs6b!gi!3lRM*x_ykj}y-m?-L&rwf|DEJ28zo zhIonCMBslOmi>N~{Q(7Q9#`-kvGo%Qwj*{V77+g=o+s83KM;BC3T8dcvJ#7lhl#Fd z6#PWIx{~2uVBU#&#P!6vFDmFDUM5~A)Rz>jd|APMuPC^XxQ{qyje>?Z6?{(&d7I@X z4j_&rM!!p1;&noOPeBEd_dfIffr2P8{zCmaQqjnll2PTBb09x_=#eooEW)L!3^Ru;zr_M#C^o5A6ciwNk7q# zc!+2xo+WnvS;07BAEJpkf0KgOh%VwgViTeKqQFHQ`>TRee`7rpONl3m=ZTkzHN+Ob zD|mmG81)CsLcB_RM+E=m|CC6V*=_ilc*9}CMNS)>(w%Kv#HFms4_^*GpV;C`?xRr3R(NyM$hAH)`m?dX3K z!`))XZ+9@RJMFld7;%>!2NCBIC*94o?zN+8xgC>;pNX>j?5HFB_uKK=3Oj~8VaJpX zJ02$vd)AI~Ubo}6Rdxj4uwx?eIPn4DT5ZRXZ`rZuH+H<(ZO1D=+OgQ~z$k|U4a9#T z#4O@;VppdF`w~YJXA{>D_Yo_J_lXUJ*X2MTVn<>$u|IJnF^4#hxPmy;?ZAn|g~ZLo zqr@A;7sMY#Sao0!F`77lm`+U4n4bXCDsf=zG6$X}R#!Q&q@M%xwsqh-Vg=!=cVLg< z%>NkD?(aayOwtkSh>e8fNCygtenfvgF@|U&qD04;Oy@iY<`Q}LJ8%lI<9iN#NPI&4 zNtC?rKn3w@p%YupabgIuEzv-Hda@H=5i3t|;s;_Ak@vI{OP_V(yVso9uhU6c?nK4w zPV7P)PVDfJ6X8#tC?lqP=ET9obzeAfGjTUj@~smu|K!AspPe|HxGLnr6_tN3JlfBN z*9N%oDY4JiF3ceI8|p$?y$d^T@4^D&KH?$b8R8w{OCqp?3k5`k=ueCx_9Ct&ej|1m z=E6?HUATyNfOwdAmUxHwk_ha`@I-{@PmCemYs!i6X?lV~N*Cl(Qp z679sZ#H++N#81SSon5$zc$a^u*oAIl0?|YqMO;j@5myq6i6@Db#L**NxPw?b#)SvR zGXLXTIE!#jc45lCF8B{}p@ir+!-adVbYb=)rcZcRx^Nru>R&F5(A?-A;KqrA-RL*e zjo7|!tR(&*2A<=_GGg8pZrn~hzSxazZ**hEO>SI6JVv}sjQ^H2E){=c-70R+Q?X;Q zis6G)95YPCJ3Fg*eS(TNiMRGvaafazGl-%oDo#E`#ZQNk?gAB!x2c$amx}G)R56m+ zotQ!#KrA7?AufJP#bV+%;vQoA9X#ka(nG!8gL4n_z#a8q60zq$JvfRuj<}Ne@G=h- z5B~qC2diK3;C-U~MGt@8AnIQ8U?*Y%(c0<3b;MfY?AQ5il?Nvfr@Z08*Tfa8J@Bsa zpzKW#-hmhE3Af_Kfy5j$SMzemdF<+c93`6B|3dnE1LEAKNw5 zyENR@Ps6_bH3YZNFp6l{TEk()LgH59oozHILo}RDv=Pq`-w=OVord#>Yl**zs_ixO zBW4jhxP4eg3{!o0g4jUp;_;!0IF9Hd9w_i(yDfbv9^ykiF`S4JJ5KbWfjHv;AFd333P;-O82G&(A8CI9czgj=5Y5B|#ByRaQJfdRC}Iy{5;281lsKB0L(C_xByJ!cBpxRo z4hQggbpYQHzYh+ebn5_)8y|p5eRah_UaVl<58R!0P^pHJFl1dXb5TF7*YL7~y6bQa z1y|V7wa$;n<^qkA$4uU<)q1xn~wo%EB-D8tNjQw8BDv!9G_g2}H*#@Ar>lXO$*w^;Zc zF=OUo$IX)aCpOVs{Q#K9TX(SC|iZ?u2Kri9R}Bu@IgR127xskzDW{wgoh~+xEE98)Hl{O2PiN|^Fjk0kq??T_>M0gR zkhaY>Gjy8jvH2KdOSE5|poxypm-Cy3-?nl-jD9KYTrb;ZVm?;*6Moz48;J5TRm7KM z5lnxjO}q(lzZU5$=DoU;ekT~D7)2X&vCr@qws9;UO|%EMnSO%)5d6Y?Y0I&H=mfC> zX`F6zc&s(?IQ`rLG>f=fPG~u-U+qwtE&469C;aOEoilHOr>uSVqUFvZADr^;+1K3g z&Q4;EIDWyf65!a*aU)Q#BG9PCLelM}+arJ7!F)~H^uq4lL~E}G1L8E(a8 zgR9QgVESEdtBsVqkXIi>UYn=O9dk9We$_ASZ#FZYBKmx)hugR?r>p3U>P2eTn@4#xNt<6w{4xPx60% zmF;%pr|I*r*8}T>=?CicdJyR!TLgSgd}a-2p%;6#Ym0%8iA~3Zp!kH2>VdCOjVU!6 zYU=x=Mkz;OcYar>GtizF^EGP?MtrMmwMwxK#jAqx{M3f10|%(%rRL?K3f3Xv`7B*t z+zI+n0d+UFX#vwOXbdL8zgz{pP1Jv;hHqr}LKTIrUKBQYP)NQgY^1fQDbVHtdR%VC z#oxMQTvPf0hY(Gcyo4eT(R0ho%XAKz^}wJR@#9c zltv>ctuH~T5{AFa7ZY{3jC#NVK__{_hmt0ad5p89QSwDhaVT(%=J!$+rLBJjj3b|M zgi*R7Xw;p?{IU!(<&Lo2!0;mze-*{8Arwc0C}upx%YzLfZZRNGILULZX`XeutpbJ6rc98rWZ1i>2JdKbiv?`ATbach!Vl2#Y?q(aW?wsHPTi zFfri-kp`7``h$P|AWg2{()G;~sid7v^!Xwkj}uXYzw6|v)h_Dsi=%YNHEJr0qf3BhzZ3zK}-#UwRV9X=1E3U->HX**ORu17Q!*DIzLR~|F@o^yOkmjidvm0iaLMD-*)o14Mkm)JKK0r5uHjo zx*sZ(M$=d_*XSShr<1?Wpgkqx@z~&56(4IneN|AK&)fFDN{bdKR;-i)#fub|;>E34 zu>!?iLy$bb7I$}dch?jMPI0#scT$2UBz(Ll-^?EE?93kQ-1qEWdx?M8ne=3oaKfDu zb$NzIoK*ht+y_0S@5${xtL*qx9dQ>Oq_2%8L*FVe#&EKVrs<<#Te1XsIC8PV5X;w>yIBL zXYCXpD<%bn8~#LFOrwmXV-CGMhgaw4Lq!ZuLRuJ!#+m8KO$a$y@>$;a{|CT-JJKj ziK8o2_^N&l#7k)H20AxZ=6D%attXq;e2Iz`ts)$GMK4nGB-oTF)173C)P3`~p!cNp zQR~%van*{I*YdOMTaULM_oV|+VG{Tlwo%n4lCUk#|7#=^j?;K%rqBmXueA$uG+A|yrq7r-Kpli*WVU)DVtH`$9UVx zIOKE2=*4$Qw22jVO&dY&3F>#tHIJ`Umow5^R+&W$GK>_zeZ1n6(gC#78lOopU6r$9 z#P{j50eb@RDnPC4@HVupA?o)jFN77eF2#WQU|3a>kI^VYqGHV#Hzj3774B9daF5 zC8@;(LiI-=iK3XcIH0?C{so@@3YsvYT2a6{Hk->Jt7 zYMoT~QV5xl66gxEd0=#xKPAo;J&f)CX&pIZlzz6l$qQ`&{@rj&vc9~QU2EeP5YWLs zM;M1RotNB#P%WP8MEjQv9Ib5b6&fA9xVWH58zI-d@?|J^Le<9x#zhuiI|WEI;Cd&8 zUQ%kqC|6ldC@Z%+Vr#bh)=rM=2TRq-MHfMR$9PPo{-i<)`d;bT6b*($Egx6P-YeX% z_ets!fA$0{|Ho9)Ag+&ia)gsFTNdc4l6_N7Z-4!AgY@ANV(fn}9a#S!+8u29K`wsf zvYV5T>;oN+80WZ?L9?QX%4X{nsEOK=7IM?CFK_%vQnUFLo;t-X^3Vd$_VXLz?u*inu=5YP^wb#yI@1MNj+*kw?SE2)cPm2gX&W>k_x>Rgu(?9$!2dkFYYlhtn z$4jUzb$DyxDd#SsO$jV8>sN4L7O${r+`Xwf9SNX(!@l}1yWi~D`EA#M$^hfZ3sdRl z0rVeW@6JT4^!rkZ?Ow0B*7I8Er`PPMQk{Oq3<26}{xti2%|CS82u-u5+R1}1O_=RR zwoUeKs|^PHLB9w8i{!klui^D}al|F^;)yP~@#oyqlmRBwS#1hUlsl# z_J|k!MflXvnE_Z02$sUtC3&*f@7c{Xjd{Xjm7T5LV3>GD-dw~~`ByKYLr`RjJLLii zoB+%!)t-DH>SvO~7UOF3Q7#Mknv;IbCRPoiX%yP}JoJ`s*Yeim=lAldL!SkAhDj#d zd6vq}6S}#yod)Xja8V0&V|$dB^{31Sbc&f?(IzGh8Fx8J&v(7$)~TM)Ulh``39~GF z_}lfKvYxAh1-9qf-aM#jT6DJbOD1@L2gk=>-R?E7QT)7l?m~{|vZrD}IjIxw)S79!M3FDs-*oTN!+@dtR$dDyhmS?`N{$vpE+D*e1$C`rUz%!|W zJbQn{1enjgc3(Ubd=&w$A0vpk?IKqfbesxKKQoC$xR~+JtQzc-ACS*cII+3}rCrW4FT%u1oCfZ$FF< zL3#ym`?PtyN3(v!?1In$F&~CjQhhA9dtmFMmpRWIWfwCX`5- z#E9uC^pCf}iWsLo;b_RQ9Jc_{{69Dkd$;0h#{jDGK#d8$=g2HM>JmiH5B|Tpy zH@0)CwNVwVIw%eOsaC;Q4=E-Z%k~M*w<(VZ?fB&l4#$7N=q6g!hW8xpHgHYIxz2z& zMjyi{yT212{RQH0RRn+B^2@b zYn3|%zco(T6^YP)Y*l$JSRdFDt~pFgS%gm9xyiL12l!HuUGSH7I?VLEJ6>!T9`f1H z&s1^3!z6V=LT%eW!-_W5tt<9YX9&gSfX{TLNdw`sd|B7R6e+=ySu$Zr>Ap(b<9rO5 zt9;nU1wCKE{5kV3&QbTx@;)|@uBM6Ue{M{Xy4Oua>E< zPV{{Jr}dX}PM%X=Ws_}@r&1Z^ftFlleDe&2Pq09%V=c-F?}`3x{4ctx!?kiP$l}ChIrmca zSaN%cvTt2_)|7l9trAk(+BM8$xY!yAlvq>dfE^G?<5%?w6SnZJ&##0_)DD+mYMM9pSzHBqOzRc8A#tBoHdISPJY8+ zsH=VD&Y^XL$CKhgcFm>_Zp)jgK3BZP!oD%q=(ey%8l_CkEIh6}8|GO_*+4@9Qu6!$ zR^AzQvdRM8!_Y))GF1o0D`Ja@>{VsHlSj{RBujJelp2FpLzxA7@hqBqvvTWH|?J~ zvU1D9OzbLbzu8ojL1DTDM&D^FHo9tzklY2F0QcuVf)dBSibm7M?l37M9ugtdJjL35j@*t1pN1mE9%v8M; zewFXP`2!pXe+i4XzeLryt8N6YQlL4g$no*)J2O-flhEsb6Es}X!m3#!b%0E=&SJ}v zwAP?KR4o#H%imcEj(+*pxI2u|xe+{IbTg5sckZY9Zx)=^#(G|0kDYWxSzu@PtmQA}_7oJZ zRnzD(#yvg|Q*ZGt+S8ujC_{}(qX=1U!7CdTCU{qmUAh!N#n#(g4EqTcQezYFW7sU! zD0}kycZ(QRz|g`-@GEAKi`qCPWO+PMU4Tk9!7ERngz${R2+d}Z!0!r_cJ@zC=%`Px zmnU6hhW;Yn&f0`spye7Ed}NHgYELK!WVtW&rw5@w&wiTq@Q-mTmT^m*@U8}=>_xr5=U%BoZmYpdXFkkI~hlrB- z<*+lTj4cg*mc|1&h1hO-jY#bZ<71h`HaP(?Sr6E`GMIH0PFz8{gZt%r0_MXA`M;+o zvQ`;>KWjJich=)aSI4$sgCw@kXROAO;M!NQzzV5QVOWSxv?R_ zSro(^XMm40BzUYjQC1zfwDYff3H=>e&t1Y=f544LBm`=qXW}yHJjHEJ-w|hHmSR}} zZlg0}iVQ|=QBv$XN<<=5)*8nZD+23)&QW_+_WkQ6(xu+vx=YjV_+hTDi8G5Ovpy8R zfT<2vLHf@pUIMFXvv7xtGf&WGWB-y1-|$rLhB|AeB(-s4c#l_C!if(B`f}}ffyhBX z^}RHmKGW!88fA;A#+h^oQH&fO{!(_#DY3w@*hp}byouJD76r5MquZ5Q`(;n@WH-l5 z0wR(fEE2J!>~{ohl1(_)pl)Kb<4kxZKUq_(ltE0l;$|g|A;p84dc&otf1SF{~Q{5 zu>ux=zCWG3YQY`LJf6?I9+M+Y9q{c&l|f+LJQ7ac!kTFWyr8sbV^R~2F~0=dFQhx# z&VJ-85N`OQhP%{8Y3trZ?+`A_ui>nG7Y)4HcPylU(1Zl8$i0SPO0RKSQYgJMG-Ebb zi997X^b{joRVNabPQL61>xyXmnbY!rQk_!JKDQjxNyEsl1#Y)4og0eyILLb|aAVgC zt5=j4hjiJLk`lefA*_ z!Zg==tu7<07S-Z2c%EVo(C1Yhg|9`d8Lf@)%f@`HUFIH9KjHP=Ymh@O>-KH=L~~wP zD!4N+5W!ix#67=A!)pC z6Y?#Inzbt}H?984s+{Cuy=G^dZ!rJX+>JmQY5AgH*|9aaw0ktR?V*W}{JbYrRhR5{ z4DrntXTH2w;0vS0BspQ9X)TkOauGn6Qo49}(I0J3jXFQI=`6$!ExC1`N zWSPR6*P@!8zn|aJbcmUj&OX=d_#OSzU5I(yBR^5Z@Bj&WI>cf5hZLrg+zmqVRQ1Cn06J)6e zwzlCWuYhHvWUwglJV|C4YyRA z*82ru=jKhV#fKxef8r|6KPVZ~)^*1W3C?w=-bl;we^~+Ef9^^aP%?CjGJD;}!PQux z6UgqK?+~4EvhhnMvm()PD{#wJJZhXbxuiFG@G0luaus=<_-<>g;0!^FG?e!1@n>lI zYe`}!*(O@_Wt~OW3&EiYq>#pdcZ5EU+-TJ0keBn=Or^jO*mQTTzde2QW64z$W9!&o z22=*-yQ?Vhp1>ziPQGP3?wQ)xk8t97`yT;J>c0>M*_Ka^h5T}9m6NHCZj^`dB500C zReC;M_^e`v&V%Tcvy8vuu3Wdw?~jL_P&tiVv=p3z9$ynym>ma!6nU!c_t1vyEq^78 zEMCBAmphw&ZK5d0lFK#!eG$>fjaQS!Z+%fa1gS{1yu=@wAH_Ltb=S5PYG=zpgx z`zg?H)t^T9WGg3LEn6?m)8gb^h?+)AAhyo zb+RbyQv;Ox_;ho9Wp^FmHVhE4 z9W4fYZcM#2`roJG1;nb%iOqx7P&2UVykV^IR)3I*22VK>TppjiZIbLYeL8@^dy07_ z864aF?uq{ss6W7eq&G>?rjaNjK_2@M+;iB6=PGm#`EcHyz=Y@@^Mz=?L@trvjzK4e zfPX@wUN&_y{*$p!?x3a>JjJM!f570%eXbu(<9u`(ji|ja7T@Tvd8gCBsE;k1d1p|h zAjg(YG-qF3293}S9!qhhi`k}@-~fjfkNM9Ki?$T84_5{{E}5KrLZfHR-CwgwlhBm| zw?mR%7uG9@@shu`iA=R$bnDo0tQc)jB*-j!MDB%@)3bv;rz6+FGYW zlM|UZi>7xUinBkQ_Pubh4~#roGbgHp)5RKO>qwB(jUB1ygm(jK};_+UgTj-F0B12I0WtQ>K$0m=GSrusk=2}TGX@X z5Wm|Ko8pd6gmT~=^t@N;#lTWQPFXa09T&XyPbp&(rlnus_tWk{iYv|P7Y=z=VMm)pkQqLw#K3`=$!?qd40N4FEm)uFRr8_ip>+)9RroOH@uHy(&RTi`RG+)rZW>XKY#er9`;*VH zM!-<%J-=_yB;YLoP`Wdl`+Ym=`*u|znBT}MfYNAXbz-Vbw3@S7S2ymPj%7YovE^8=AKH7zG$ zE|~Q^rz$0c533O9htfsEq-)?AaGR>I>WkvcC%Ar*^EMA=}+ zqHkqqw$je+ij{Zgj$@!yIVR5c!<`q+CE(!{uT^D-%K}SGoIr&FRp3pR;O2*K&aRo~ zNwg^>q>wR)?g{$R>rQE`b{geqey``Aq)SiOwB_x=bG!gwn!5Yp*R}65Uo%H9JQV~J z|KeEJXp$Imf%m zfCWU5xuwT9gLiM<@lN(5e8YU~D14%~pSi~9#a^~J5#8t_UN(8Yqq$VIxla-~cBW~G zY8-Q_D{&{9AI;u|hiy*)F(xlpUOCN1@@dKPgG=N(qn8~CFPcPOHOy){d!p2**Ht(g z=F56A!XGFX`sz+@+Q}WT>?^CHk%008z;Z3FdUL$@Y8ykT1#ze0*k06YRf4|c)H>SG z*N~&FkN5iV^8Gax+L&B}rCWW~n#OhC!v2{f>og3ZP2vgV=tkHXGtCy`dZdVatQwQ* zSfgZDb*dXIjd#m`$8!HgQm}VQ>cxWdaHr!VP6(IMPl*`c1fCf7J)M3Nyc!4qB-E`7 zwha6X2@O&YaVuErjo`d79^;n(lEHEs_AV<-{xt0BFG_;&PN|Y_#MWzNd#UG7(bV9p z8UMnU>$V4o-)}Z8@VJMB|HpIR+|wDNR%vl`*}`(c&`V-ksudMdahpeE{8HicQ}MET7Pca0jI6?cB^xy$BuNp*&%G+iMS@ zi>txWvy8{^0%Z^#pg%%Ofp_TXe-Muqz4k7)3LR61!>^60%iCK$l6_sfv0Nbe3qPxAHyOz26Q0-~@> z>gc^kb>m}otHX7Evs{F$N|g`+Cko+6PecDoK_Fx}D;B*u{t4+(*MnDQOslUvE0MDO ztRY7kj^of+aZBx1tm?a$>aFY;`2>hAQt?+iu9!vmygm`pz9?g(FSnuoT6bE$NK~H8 z;!Mz(&DY_kj^p%x;NAg<`(qxnG&77Azqs7>YfQLuH~)J+uxRcU;c1Q+m00$yQM)%) zeCp>jSff#&5*=$S_Ph6tAQ+KCPbyB}se!E!>=kRzP+rTg6;4=JzIF?D`6yT`8^ z|Ni)0<}52|Y3%W!z+wurgogpxymlhY*!<0i7SVvl`}6nRb|L``jlLRYZ{h3P~k$=bh;$2^&gkmJA9$CKA@{D{=9VwcI32PhFZ+OB&dpL;@z+ZZ0cOmd2 zer|zYK8@1S_}e)<;&3I$%e~;By4%}-maYetTDCV)E;vUglco$a32nKBUj__2s+OSi zae|5MwR`WyB_A@L!hEayF;iMGskYOMb|*fx_!8?s9Sv#pX(A956rfr=B%!Ww3k^YD zd)Z#v(>4juUr*evL|w)s2GSXCp|N+Sty1&PK8P-)`mO>@J}&? zdK5kmo!AV+L|mab=wphbQm38c0@mqu%e)4ts@UnVC$j&O)d17k?S_y}o z*xe*52E4xAwOZ_aQ!_bozN{%3o`KX@waHv?T8Q*dkbqU^6Dq#$wA$x-c-pNe+yF!b zD_bHs;~i=#0P^(Fp_JL7)CNIf*SznR=%w%0mbGk0H7Iw2z@bmg0^76QJba#TPmu26 z3z!8c(|mYG?peJ0(;BJV#{HoEu(C&28`6fZ%7f3_H3<_8on!7>Y{r~0T|ddUS?gfF zPk5p?!c#-a_|{y~^-HKcQ=V{>KGCDP`ZZit^XCq#RuIY)>`4WehIFPv%ig*?1O)Zro{mJnx@Z3ZR1%+pn2D-B?Rhe2%J^WLs7UZCEgBy! zGF8vI=9jo^A#unvUH!g#aaOyfwIX2atbtI)kEagk)Frm3yd+zcX8q6Lhy=~}_1wq9 zP)a54V3)_39(Ng*!6q>92p=b+*?-5i2@<{r-d^cy zTj5FW$XqSW4WkSHKt6^f`S*~RZmwpdT5QSE)a9HDbhiN8^VCz-gK0EwANKe&T$PZ& ziU(=qwzBR2^xlv^4QY(Yc*63kTQI6_c6)vc1<$Wr_Z7WXNB(chEKsl`3S9nGax1z< zeIFaS58(q3rYyy{vZ^^)f<^#7MA~76vHLst9xSv4KVxNke)ONDjD;5qa`neB-;Q(( zJZ$Z;ng{j9!vXl+0s-8tSNc)%I)MYM(WR=}_` z+a4|I%FA=&C?m<&c8R)mo}>ibzS%P@jUn=SpkbR#Mw}yPB@S=FF0~xJ08QPQ<9QnS zhG2pQd}@ZjBffNuHg9BiiwMWHNg8xz`o>_(W#9E8ca*$^ z8{EvqNLyfN{eX?~(Xr=Y0r zt{l?yD{HufOeO|Y@CE!}U#coN;@nA9cP1xid>uax{*TlWN93%YIAn=)`Jdb~@%?GE z^@<+T#D(FtQ|DfvFYTkwWGlo#{eha8cPi=Bb-b@&V22eDOj?Ct+T&OCFvqTJngE5Q zIrKY;BJs0n(O$j2k*BAsMD6JJEObnCONpmz?Ielw6eU25S~rpY&vbrN>=#4vxiFbM z5uROtq-+$?r|q0{X5xW}^!9BNP?>XF^}SegTP~Sz{u=^gUth8n?c{A|kKfSom)0S{ zmW94Styci%M*nZqP0wcZ#AO6JrZM}XzT3a`z=7rT?L4(>>Y4x;0u3>ZY3v$qgn{q* z4_I%_)k>bdrI0vxQCqZj6_7rn|!RZ+>QTHyHl2CPNnrJ8T{Y zruM}NK+`)VZy&SxQHYd{GVPg+J$#5p3FpRnAOQJ9fO2{wollL2=>1*ss{qN_zVx-- zM(wSST?ee|l*)Y9)18xHhAWw^$1>-cO65?kQz@{0VDp!kj&bI<(Z6PggHD(oQrfq_ z0MW>EV@xv87EY5v{T4;m}z51%DlGq)1unhbce_flAd*5*ev)6A$EUV^Bx z&&k~t>6x$6|6iu?{K^l?-(3vktWxMFdzpUs9O?cIsX4m4-efE3HubQ!fbNg8f^s@{ zVb#t;b$=6LvDj}}Vh;{z^utK6P+#}X{RiafPL*ZepJZW_KZ0H$Lmp@tTI5?uY{h9( zX4Sd`547LdL(_R`#^%01!r?a{ zLjJB*0v6EjhZ(=r=HJnd)*`kG+cVWK89P_?E69CPg(N=>{%oUv*$v7+&@QOSSRF7Z zyML9XwJ*Ez7}IUr1~)y<3a$AxN9NUklE2F>>_n0w5d}}#Og`-oM5WQy%sJvRPJ|pa zCoI8}2e?7sj+X9rftpMkhGa;xSO)hh3(068Je%v7^)xbnoNIg^?_N8Uka6MxhOhjf zZFe`2_K=-}IzP2~^MIw=4Y+7YX4&#}9dKUE;B|vG-8P>@Kn{ub5>f9bp8mO63L|}S zx0wPxXr4Fz_q6Red=ySRUAd@(VnFkkj z`~|VtK_`zUkDG@t$=Rb=>3Arz(vv5lTIUvx0ZS7_a7Odlg4>MpnzIYk+F47lT(g^Y zw4he7dcJrq$lSPfi5xDOmorBOd9ssnvZ>bY2WBx={WRF`X?EyIeCR2cTG3kjGZaFV zW2)qdmj&=ZYQ6}3Ylf}`?HO@Jej{CA#cbz^fv?^Ds=E{5L|={d(Uxx6E5{+3HtC-z zaG%J3Gp}j%wioLI2T*_M(4D+TUXN41-S2&DeyTTMjARBOjik7+Y4b}^R<8~9&A+A` z?t4_dnWme)bFi`puE?Yoh1z>^Ogto~?jY;21;ACFa1qT*K@Q2v9OS*Fa+}#sK@m!& zdtY>kVT9x_<@C$cj&}|O#{W0Y0opjiMQ)&Oe4s>N&gw=G`+98HQd=fsE}*@Bow|Ng$*&sc+}^f{qK}5Bg@oVEo2b)eTudB}$a*i7Lc)JL#aKfCA79{+PCP ztlG`7IvP}Q#qg&^amnmTMmJr>9f}9A1Whh&kNCvsQyeH2w`+|{T_V?euw0Q0zo5lS z)byXOrV962d8XH868%z+A4vBFMClkGJj9nyg7`!D$_*6plZ!^l!QxLvHT7KjPR+u5 z0E5%^k8kQ<#jTnic(3G=V0Bm={yRwoi+^>(NRY<8d%R*(RJh8)er-l~(hF2tEJZ&A zGFV$9t=e3Kc+h&IOH^fg)YoQ$;8MMcGtoNHoiz&0nAVj1isJsCFS-${l%|(`%Mr1g7s=bGB3Z(I#38g2 z1XA-b+r19v^duQf5T;q62Y7dD@>$Vsln8SOI$qylGGk5T-m;jdSi>L)ttD_ntbLG?bA1_89chM(v6mWUw&~a^1o5!@*2EM?~ zyNgAO@AgKi@B1&M<~XaZl2UrT<=EZIz@5ar9^5V|<97IwO^@8nL-~DmzF?^3B3hq= zfI-DK>#DCEA`#pGsdN9X;hkA{gqyX4jy*A2h9Ue2FBX~sBwbc-?6#gdj71FWnJRSc z_xi)k8P~sp+A*)VyN-LQWlx-KPs5uBFzt9bub_ilYOdDhCH?lLE1d_uf9ZW|SkC-; zcs3Q>#nUim;p_>7-~(T-Ri$H$;iT{?|Ip{l`$Z3{J+=A~N$c z-sTmP>Z8P2bb@^W9VSxlM=pgNAA70AY2}1tm@nrW8sxE@C|*HM!b;hou<#k@n)sn{ zPMx#A8WuY|nWp08f5MlML!+J^c?Q#$G`S1Hn;?Nkd~`F>Nb-DtC&4hAb9pi5l%l9E z*w3&$vklBI6l!C5yHaj;QfOMj7M*P`5}4ITBuvQ)x{D*<>)vHL7;bb2?|(!(dL21t zr9IHvqI~$#m=c@mkRxoeg++@5oqThCrM5iNo`Uwga0i*O1l{?QBZmUK(dhA2!0B!& zC?r&QdT20MmCH}rgLY5|md$)wmNZ(7sl{Ytj*sU7Er78cqRy!IZPRzX z%ZB+6hxxynfy~e0D~tA%l{pD7^ESAb+hMb&1n5woVi&j~KlMh{0~8>Ppo<5UW?%rv zY51`rCS}{(Nxdi*`+U4(uAzNhZvjoAnoo>!8v|#yJ&QKAZZQL|y+pcGu}3 z1mh$o<6&?sSIN_yoM+14Hjvs_2&6%{5!TsBhykXj*xGI>7Mp9i&$b`4PQt>#f?(4g zuMc|9OXkd|6UTO{SV0!P`N){nJ(p7^j5|#2p_>oj3evqV{?@y1J^QOP{CQ~vT5~SG zk`+ueXR~Eesf%Oozr+QLmyE=$lV6KqB_02xCY=xT@yA0NLl&O5^Q@!;M7Plfhi}{{ zQ570K_xb}L*<0KgZ>&++GXf|^Wz{OGWjb1^Am@^~V1Urof_KV{fE|H9v%p!nCY3JN z#DU0RC==XHXh8~6I+wlK`?2F2DM$D^44gaHZ^MH5mFLuWpTTL9x~s+0LcMhHEjgkOLwj^I21KBU&PhV#V z&zXye$4-i`-AD(rf_k8{C5;C$8RzlzM%E!2Sa@pa3; zT3YVIdWoY~$j&I_EnJtH78y=`-sdzRaPqwlD+OAQ$oia23%;^)7k5E*PSGUpH3}VP zOFT|u@+L{XK*7yDEsx+~%!I@O>-u|54qjQR?VemYfmupWJJabX^=413+~=vs&w7Nn zV{X0`Bs%u16olHo&bQMEcObovEt(v;?7vMk-fLfC-iT~p=r3#w7MjyqP^t?zw~$co z4ro%!u|9ZzV!GE>mwq;Keo0NTM@4c%&9~b=`z+Cw0%)sKoUC^oNhe<(IpnTOVx?Hr zg3nS}E^gN;4~^ctjPeQ8SKZzV;(3CKK?-}ON)QHej4f3|hzQTuRSTdw* zG0|Nbn$lx3$%#hUFFRO)Vg~9LS50kMul(%`UyRG0r9aoZq#)C?9X5wXDE`{)ub;5xh+%y zuLFr6A>{?z(^#m~BD?ajL4JzD?%Amp?ZZ)mp-=AX$11G6&o34-))v8G)Ye!_{}PU_ zOtD>EK{W=Z^RNTP z*+^-b#eU# zbTH~9v`f1Wb`<5)cyKbB+#5*ezr>3qbiJ@D^t|huMT9*|ZoClR!Zu#>Jx74HfDoLa z`_r*I=uUvs@t0NesE+G4H!#TMT*m3bKh@0?#y$Qat~s-Dr*Z`;GJG8dV$NY%TY$~X z^FLLuZeSU24sC%R(z|bUu#{1F48q0nFTJld3W0m=#4vStKfS)>W*t>W-&4Ls;A!IL z`IZ!WkyT3B3+>0kODi2>3ck_6;+#^BRP!3PlRD-Vj$vQn@B}A2D>O`-vr&mY&sin6 znSU`e5iB^_rCHJ9Q-mL#-w(;yGiZj*RdSc zQ?X=<@|grN4$j&zj2tel2z3u$M?9p(nI1z1>h@JzB5`~V&IlG++SCDu$Izs1Il8mJ zs7qr>Wb)C8p6b0*@7~;Hu<9Lf_zh&v?ZbD^?Y9y|Hk)*D?G|GG+2h6YS?7R9BcEq{ z+kSOtHkv|)>axxbju^}mT_d@+D2IjsT{E~xAi&JO|Tg0E!)Cri;ajy24VdnrzpWCxVKHoU{RRBMgO zVSAN+=~4he&%%;Ycmva9P|uz^?0$^16TBOF@!tB&CDP-~xd{QZ)wPHFCGC$9 z5iBr4?<0BQ2(hh^6!sz}YyO-LdVTKeuW*(PUG+{~oSIKiC=&3SiIT7R~NqCo|<@) zb{EHJ+%9wvnx31m*240irF3d&mB8!r%GsDndj;b53~%of=*YU~HEPcJSA29L-w`$; z)tud5WQpW(0amH($gljjeO<^M7if4LjLP7KZo^aT*23AA&cZ0dDnCP1r{DP%>SVtbv&Ly8nIf z1(evn@}w>bZ)MCi-=SD}Y=)GU=P0cC(oE4N9qn>b572%Rp;9WMIc zDSZ8YuS%!#?Wq5h{nK%KZ^(x7xxOA`UgtkgvLD7l`g$_@dYI|?q*VGa2dTCa+3!AC z^ZMt+fUh6#@E|6nLg?4xcg_;77z?GiU+;J(60JHRId{ls#I@Jk6=nrrI~yv>bBISK zljEk?o)ZUfx)x^07>LXFhrmv4r!z#81$u>$`;}wuh~Yv5SsEvzAN~ui-j6*$Z#wv< zx4&GmBh&dQ(hl;icOfFvfjyc3S9BG~$+puc3y@h{>GFKcGywTW@QWT7Y?gTJl-w5( z*o}0F?KU57ws41PDLDD>#w)VfQKw}GnN&;73){<_waEIE?Zp(wmW0YwZ4`C={#a!K zhG*tMy^h+uC<$sbW!M4yJV*+@YW9+q*|+z-A>o5uFWVZM#JVBan@va(Od z=!=8fQ@3yT={(x~FJUg$6Yb^VTK$N?RL0{d7AFa%esNg$_-8fuRAYsTn`EILY5JG@ z=bqB?0{nshZh6WR6PR#VJP(2{&`Ff~0Ohz4sD7=EZGae$)AmbNs+TR*$#i|Gw|Woz z)yo4v*Ua!Pb2ctEeCtFq>$qLQO{WqA-4B}*x1K?z4xFDY`Aye3P22K**9Q3_y`&*o zza_qO+Wa|+eH-j@NAvrv;n$Y+@;TjRyz39SPeOKx}}0pQXe zK4)Dz-8|G9bEQHyNSaf!5o37)nA2VU2L!(&wvTp~K$ zmg3O+G^#V+&gP7(8S^r~^N*Mw{~-<8HKztKM{zWd5K#bCai&?gGcTMG;qXP0JPSw* z9}ShO{ycvEZN*q^oq?`4xNgiVaJ(#7l-9h`TI@EGjz1d=Y98Hnl7zwp0J7aCol;Vv=%C(E363oNQ~5b?m$ zv(I!D*B*7>#hTF0hA6F5SZL8v&4NVUgTsNiy>FQK zQ~D#c#WhZh@Ma9bEt{=OuG|vai_d0+#ur zgOk_@eWVa2aY{VQ&q;h6NqrZNGLcnOrX%U2r3+vEF4HBthdvc7=y+5!AQ~h`TEsuB zgim)C%-<%5Yr}P?YQ!ohF8S6U4^S715ot9)HS|M5=H0&}+;f4u9=Hx0zHIW)n!{_U z@TMxyN`$UxV=2(xJeMKyZ)%SwCye=%V3y0-^XMSh8M#l9l8nyLd}%nLybk8=S60K& zTVa1wX>Qw`d(so#O_ERO&c76e=+^y*9tykSvN%dUHsHU$`4FG^giD$$UJXq2@A z|8|a!zQJp?a8t>==#!eWmfHTgC2EDY|AO6VW^X_qQwEr4Ko^Tu6ij1g_6RBt@l=jn zwYWh(LhHU4pK>`+kBsO7U#1N5j_aQ$ucspNR8OT$r^Dc1vmJ}k7Sdzv|0lp=K8_(N zB6dspK7w*+?o{DG{(WWM$;6Gy5`-L@gOA}7ubYF~e+aXuB9vkhiK!ex)0s^Bm6od& zl#B~@z@k|Zkqr5c+2rGBDfh>vX;g)nj!!3W3ELBRk#sadH}pjJMze$ezbYF(qTD~L zDR+wxqXoi#QFM~ot|vc!9@f}}+i6~~;pr51$pOlUx7Q&-CMd7U%e=u*ti@u=ICneeFUPUKg2 z2WK9{sdD6k;cZ>gS+T_ft1Q=nJy(n^SB%7(>aywh;#zEQ&*tLO`2(D3VSD{D3_XA0 z-5bdwyZjw>E@|%X6`deZhvhQ*vFC?xaQKd>b@&Mz_;cmp*Ek$p?7ZKUmm^&y10B#b z?VTMu$d98L#@jaZSgbAQ2t&z~E6KpufLvNkgPm z=9@Ak5P|>woBIbMYZP(37u4JGWlZh5e*7PfC7MgoumQ{S(MtqsB=)5|;A;;)iwa`wO0mfW`f>~XB&T5Idv?VLf zz3ZsYtOy%h(4G1l%F~B{d#cRLxY!O&xS$NJ-4vBL*c)HBc*Y(4h zjF_4M2n)-~KvA>IPGrPi4;}f-0($DRx3wH6AS@+!HC@6q!~ht;^RLmf$|~?9;@#2J7mzx;e_5*>)^C`-uKT2*b@*;QrxWcxCF@XCg#3XLJ%GPot9{P>X0wsX zVToE1MC4i~MGfufbg%cmpUhb7_~Ay)KWal=<)Ad3x_Tz~U$J-H52bkKxwVYScBgU* zdR5h3)0fMEG*!UdHQ7_2WA=T{Y!)J`?6ANwQeR1f2|34~&y68dTrqFFz=m3oFu~kt zyDRe!nXa3ZxDety;A^;OLZnEJM+2G z+=wS_cfmH=;#r&IdzagylWMI=o7)mM8IcI75bkcjuEQi;cgpbMCMUE32X2C z@9xvOLmX0ie2&-1GHZvhLWwMC7ex32wdwg=%7h?>SmEhoLP|hNa_N4R?p#V@X+&udK}vEd zX=x>vl+LBO`}^+w?%z8*GiT0oo_Xe-nKK0GF5@l{1CKWKcHCy{*HF-Ck$^DcB*S2i z4mZPXX$20upweN|KzbYhUmaL?A-x@+3lALI8T52KUoJ>s$G!l*zM5LB2-SI-G}zL} zOn{(tx}09Az|enJ^a1jBga3jcqSr5{d05usLGHDaU!4CU7?j-E`J6mB)m7&i9OpXk z(nXA99aVlAD0}=W*7R>r+9ZNQY73UtC_CA`7lwF9yTRyXw(o zQhzOiq;|B&`0kRjnkHeU*TVvnM+IJ7m(rm8ju*;v)^VuYjYX~UEl zZQ<%Ti%0RkZ)4f1uPpVE)p*_HiwE z#p+x(mlr^_VE>Dax}$>?(R3RXd3T>ev!4=wIzo%QLs}DDNlyOttBBmlwA(7*C!7|% z{`m^5-FXjQGb0Ghb*i{|aV$ID-SInB_7BbA?!zaTsfmTX+^uuX9`qofHnN>)lyB6A zYI!Hn#DOw733=+`@;>zNc8}(FZ*bRMqa|JSDhlZFEDm1d{HF{taR?kdgh8q8;)i+N zV5BcDwFfM8mT7y1&I|Uuj8ZmdUj5MAs!FnA0QXOBP4>2&GOZUY)|cP0EgqMLHB6an zf65^ob&2=epuJf2)JH^*oW8Dt9a54KZ9PZjQ+F&(N!_0b1N~BewhET|zm%8NIZt^Y zcYrFBCX%gnmB8a_>gq*N5xKn4=22OWKpOllknF+P(j;An_|5j;mWhL)XO239`S({* z@0-`gY2VQ~s%*VP=`}>U zeybK4%TAC~>v_eT)pI+P8K_(HS45oN6(}T>bPIBIx$o|v{`*&4#4=!XTG!pq^_VN3 z2gcUXFj_ztq~dz4Oz|F6FDSmCVXqr9S~~+Ap4g4}Qxi(*3_FJ07T}5Ix?8zk`NcZ6 zQ)w0cs$cflPTAvtY?e`)x5Fc)QNyEgiwz-&bz{V$V29An#^`sAeg{7XP1hi40Pf;D z+`V+^b4fn-@U|x25yWPiY6s{juzcyh9JO`lnsg7$0Ct zUt@(pdaiR_biS6n=!&XHYs(6=5N^`zDe2$ylGAs4MeV5}eaK6&VZWhrBWv3tjR1dR zLvQkkcpMtoRM6}PqIW9Z0~f$=lbi`lco9JZH$>V_;%4x#jmK1`#ar_re=Aq1U!#rX zL_atqn!eYaKT52^UVnR&w)u~CJ2K5~>2XW?7Ifj)VSb*eKjGS(k9y+u5|4rCt)QrQ zws4piht4lvjD@ZD#**SuEgyO$n&>hltCJkCYvlL?&3;dbI*ZCeq+#`dq>QNeLYVO~ zB5RW;VAo-u76b@<7Y{-XR|h6h4-ea^n{NvmZ-YVifxw++TwhbW!V zE{cbIig%8XklG)6haFWMV@Mp=ryHQ3quxAYN-8~`Q4Sj^VIpd zdBymD^Mw6SOAhe70xRHGIPLBS?+`<$i?&$Q!gb>&#TJj}iy%Rcz+6Py<_PU}wRLBw zsK)Yg+%ig<*Z0nodDng>{MDU^$laTNXMd2MMm*cPEw+F;1E9&C$clb#)E(@pxRJbSt-t96I3A!!|Z z4G8^Zx}3%4VBS-|Rg;$AQ{|`VV}D~+`5`izZ7wOMrg_?nt4&iL!!=P}ruiABAyEh2 zbzYexC#$!fqGo`PtLv4_!z%(*-X~Kqp4#_674zO*S3RP)o_?D$GkYagN80nV(u7im zJ$eW`_^F()I02sTFj&Wb9fyD;alqxkbD#I$V1tLLlYfpQ(3E3)SCZ)`opt|-Wd8Jx z(x(s>kEyyPh$APMTbyo}?cx{8XEb3;fTM;oVxXr817uxR{7*_2!A$kMEIA9=SPpVdu2@xsn~=k=X)cyH7}t_Y&ULhr5;16YLDZ@|zM( zc9(SQc0kQy1PfQ1id{L4@~0RU&qhAua)@oktQ+-<+oj~}O=#lRv0uZQp3=x>0S%dQ zkwi~VP_ZHN+CSf{6W%eFkHyP0s92^{g_ z34{MM>nQoZ3;7dF z-AhEBVW(1lmzMl~W@!grUKYBUGgtf6B|G#kw_WT)so$|iQon~q$zHHjZp7}Hm)dZ1pUhf~nnFsh zLba&zxDSO~jH=1ZS~#i(v5!kXGZy;dx8pqjG?_rQLo9`(@R|8n0ol%jvBC`hVv`oz=>7R&?YhoP?3p|?M8&UM;x=>0ruFl zz~$n>ZbkS#!^PKW=Jd}fhKCN}G*AA(JGomqiVMffYe0I7t>4L)`u@A*(jJjP%%R+^ z+bN>rtXM;({CfDoTPOVl_`@>suuFf}8QHY$R(RjJEUqqa3-4X`r7y4h_wSS=e@pXg zY$L>Z!WSBDnc4d$lU4hL&b{mjFbsdqG^cYr95M)1Q#5maIOUyKUl!;!-MO1Qq)bI# z?gfKqZWQ_1JAG#^%2hp!|u8TWf2_SAe{ps%>{*Dd#PsssaPj6*=#zHudS9xHH z{bhB3l|{?hm`pIogJD}ZckbnOdo|!9 zwo~d5c#{6f*j6!&TmbBZ91|10l8t@p@ckrCiEHc>#i{bJ3Z#pL&ue(oI>i-Rn;qRy4YQteKhG0|g5u~a~emwjW(jgsu*ED;h z%u#0-%lBB)0B`x;RDAHihr1iv%HX2Iuq-xx4Fih+2Bnu;^I|zJQx*#pui$sUb>UdZ zcL!N}wpQ+Xkuoh2{ux`@<%$oxWA-Zq3&d%;{9K3CuD4r<$@-I=iggkbM8o=%wOQwt zKb0hN$ao(1J?C9!-2AH!GxbIC?KFS+R~>r|9ZsC21MzVkaPbY4{mjjpN86F4)(d`I zfxeBa%Y-}bj6_mwgMXu^_HfoDXc|yV;?~Zwx3TQ-E{4P;!2Y?(g8g~`l@bM4Rjn-G zIx&3i`SM&s2;Xr%ZT?7T%}ptKc&?5{?W;r!_fC z;`?Bn^8z~2SD>7U}$ac@VJ&bYZN*bpK zVHtn5>n6^^g~)V-w8*#GBOd;^$+zbv+F z`s!yk#>VuAP@l9OZY@OoNBaEYgj0>z=CgQ!g)z4K{f3$%)Vw80MHcCsyM$M)@?<7F zaZlpNQfy+mg_EY|s^h}7&!lJE9>q9uHBs6GGBw%T2VURL(8^x<=cTg9OU&IrTRg3k zvzXJUG*%lY1h zT=K7|E27Qres8x%-d`^&RM>@nmQ*Hrs`7=|6ln6TUzphHB=FVvMylk}w6%VTPYdsD zVr^op(xgj7)ygKF#~bX*a=t$k|1>xTXczIPBu!kyF8Aic43}rmB9?bwHA0gfo})fN zi`b!K{okfMTucLLj@4c64u)7J5;ub`f}*FnW}DJ1#`0xTlk54f6EoIPtxE6+p^cic z?t%NHv2F+YJ337)J=-d-A>R7GOeDi~6%t~JHdQFB^{u%|Ah7bBH)?&?k+vA{#6M;e zXhWBY%#z1@sPZ9dYI3@`39}Z zWn@c9XkF1t+}IN}|1wRe>6uB((+9ZClyT<<>!@02Nt8Z}Q>F?egLN5AzH-uV~D%Hh%{Y%C4KmOqs;K znTBl}w!X{gLQ?VvnThq<$CfJtit@qy2{U5)H^FNf6tk)x9m?W+GsFGX4 z6Qic(f_xdjCLLs_qz;fjdc2lCDzM&V+0?nfX7Ot0WNh)&H;$6+$KB~goH?@Zyc$Tb zKM|?W4iFd5-in939Fk#<+X8;G6*|%jSZjC)v zWs7@_t>of?rY+RQ6-3rTC+$O@dm~VF*y1)sP$Yida`TLzzp!NE8UTs2(l4FgA zW3~l-2`q83bUIblB_YC7NL%J%))L9StW&-<_DikDc%t7}NYtheb9er(y3;=&I8zfC z12h&id~LZY0G4``tHR>%tfsFdE=GzeC%mBV>4_8ec7?1EMh`(v$)ZtTvXZ}V zH)%2hhw?t8w^5aMrQ4{1i55>i z12Wsnl$<)18Cac45%Y6PztQ7x7a{9Gq7m;O>?+GQKzhsFqqSN1<@s|UvE%;s&kdEN zd{7Ao>sYG@YcvV(a)Qo%TjrP|47T;bcn_9Bix7cJoq`7M_B%3_)3+h%Bh<6KUuY;dP!7N^_+E z$I{4UrLR6FaL=p~#PGwIVtu}{RdD9t`?03|tDDqR%RE-8!NJbQhs$^Kv6S~F-hGJc zZ$QJZ8*Tj;jhicmStQb>uO1qfi_mHFn9yQ@>zG*f9`$CXL1eG8W(s+Tw7$c;`{n)Y z-Tm@zw9iAUCF7|a0x^p`oZ5h|rFsBMqksheEfIqJGRM#Rru9n-I;tz$-hARU~}Ne>o{=jZp}^d@i!p%CODtS z3R7~_I@k?)A9E*M%kYG1-nB2r#(dS-3K@b<-!zW};XiDSb;*ckO#&u#O|3TfV;t)+If6qm*Ztw= z9la{?U)@lgeCrNW_z&C~3JxF?$4oqela@uMGn*Nf=gpGc2^LZ=fX2I*#*xy8n=pL* ztb(<^lI4$YHkOiK2kl0PcK5Zwv7N_$wO9q)lh<|2j6hZtONe*ob5A#ZN8E8k-|*l9 zo;)GzuEC?WELGy%%(`aJ|MEv3QKTygTH`<*O(aa;cfVF;X27>f!v|Jd?4E6L87O&G zJGyJ1{62^6zGAf`qVA4*X)#F-UfYKhP@*of&qFBwQMdgBWuEg!kXC#}lYDlS9geSwT*@$Y{>q zQo-Xk?T|le_uA&p1%QA(cunzxWK5W3)Zw$M8~%+g!eJZ%u?PT!_z9h2bo-3w-Lmzs z>Y*5IQ`uUD+ey#zWTp<5;O=w+hnikeDl0WNwPK)NNLhrhZ4^~5jvo5%WMgmmYr1G8DdH->6F9m`|xfudu_y4X(uE7!YOsjDD^`!Nhyub zf6uB=CcaQm@*pWc{o&qofrs+dAnp2y+Z~c2?5<5=vBoE*3wG*%c9>L;qX(9`;*_>p zyUPmp@r1`$0d&2}m4?deSQ}Z#4#Z;p<)H^gk5oa_We{DdR}Nx>3D{FWhMG% z*hcBIdc1o^G-)9n%&l9MkzE}#fzzI4=o)iPA%~2y9l+?+^WimZ$s{+6`mw7q1`W@@ zg$eY#{pDUiC&b(%_H zO#J}kaX9hEU~<$Gq97c`aKWXogHD$uN-ONP8Gvr(s)WR9BxOi=<;}--+zmfz)Q=40 z%o|6D6mJ2(>5VZWsOOwm0rW9p4;#Tg8uKXB@RE<|_PgpVI}9?q@ga~7VcKCux6v~Q z=66~?&n0~##?uCQz`W7DCK;->EaUYuh=3G^bd<;H()zb%Hx~Um+e9zfFys?)#fvK| zfx=)k7hS+A@L+rk#zZbzTY=Z?>7IR)A?O=8@#_gWVvR)S1q>V47#BIJAq*46F0nQQ zv%9}qzSJJJ!bG)Vnpg@K2lu0wb;G}ZB^STQk#9Q{c_hwaF4u*6sna~ zl`<@-Tw8Mkbq3z(X%8A}*%DMg=o zZrI`1XL|-k)i-WP4}8sUOlh1?$tl6z&2z`ZWs)N9{0a*kYP07$z6*P?KiXafl!dri z$r&Fue0SRj@&?V0*92xM{`h{HU2ofty*TFaC}pqlwd6}_oA&aajxZ#N3g#%vx_Hbs z>8#9UUolWk?yanw`Q93MW$qXFXs>XuyAyueO|eEx-XfsD(JO!Ojn9TqLAot!j^Vxs zrmQrexZ8qCw4v3x`N!&IGK`o92*pur^5M47P#c|k00H{=X~7 zM8$26HLJP>P5GN1A03~y30R<%x*Rkkc*UyyTzmLu@InN!OAIN@4Li3sEy-2F!Lri# zgFh8SLOg52cl6DnLj51~Q!Q0uTcyk2gZn#5zAdZFml7Q(8-c&lrj>^RcXV#(fCXjf@i&Kk02$yrl4ewA6^O~ zB*qpfWRMSMVy~CWbvLcN*4$=1pyvsRk5Vw3{hr{_eJyCl3jvAGanxCUs8@2((UM(! z8F)*0o;}v&bLMEc{I3KM$WvFqtg)mQPW0 zmD;@vgW(Ad)04&NcZAJl>@}yF-wxnDZ%MYSB_AE~{S&nUSyRtOlDhh>LWr60b~fNT zo!Sph#RT8dzK?3gr_HmMdGfZ!XZ|q^soQG;_awdaKhY{QGq&LYz)>V0U9g}^4!r&f z+aD>dPB@Z#?|HFTEnhA?zy3FY8eI>-*qOp@-)YGw?@nUup1CmT#nx_KRm2e+GU|QS zx&Fhwn?T?ehZ%o$%THppuAe8|q8aq{5;qJ-al}sUe?lA6-ZU7UvY;@l2mD{*Cr2iC zocr4E5?^b#05vVWxctqlA1T3@#0r?!^jnd1gv~3Fh&N6B59<~14MqhV0}7TIp;JkC zo>wXTf{9P2U7Nzg>bv<-<9^$!hKr93{Quk>LOkAtSGhmF>B1Fn!>bIc`$se@k4}+y z^YbyK%n{QEV&+;tYiYBiFY7|kquM>iNB6=d!^}L(F@SjC6m@GY+@8aw_V)p=9m4`M zc4654kn;9NqW?(C1$S{Z6#IYr)>Jb``2Q=jz0v0xn8Y+Qra4#=ZdZ4L01omdeodr`TpT7;RCs@uCmZ;(tfnMSPb^`Z61Zoy{Y8 zxmQ2a6@@PGvm@#zj3(vk?8YP^ey zBu4#-{0mQMw!Dw#pAylU?6?7y$&%X9y6%T-67bc~ypRc-U^~q<7JRU&Js*Vl%ZPAr z<{jou&$Ax5o;Hq4NgP}-8mCvSspr42Vu=>)O>&MR{a?UK_Z^p4-hbLZVsam%MsHMt zAWtfn>MHcx;V>ApXN&fj?a_;={AhvR%+i!WG8y%MTJCP_HlppwkG^L|a zWWNe^mkmrn8{3Oma}T?}OySN*4@(N%#@8sgY&)3{zCo}-tGOzR6L3yV%vOy5hsl(( zPFp?o1dIt4%~(f8IXNh+gs>MY534}f5ccsh;p*em8Tz4?wEd8SiM$L6K{wyid8aDH zx%Y8dNtjg|afaFUL8Jc8+M6Dk(HN)3t>k5Z^}SJ=zsPXn4Hl{WNy^5fTcO@N{S!YU z!LsjLOqQ3Xvb75YDu&)G7SSOAuQ?csyd-1!>5w9pk|{YUK)@#C9Gks0hrb0m@x8 zrAFiI8C4yNI;sKh><=iJ0a_Zbe{P{Td&rIkUGO~pOJXzwwr2eEU$%`P1h?i_of_}= z((MNNR!967s#cb2%~)#PK6$`x(?wy2A9JHskk9|laRjhJWk+7UWLN#^jY? zz%g)4cB_Kj*rP}`83;3Er3aRCWji|bh#=8c}x(B$bP zx8OV$Jk);PPNPs6XS~Z&V%1AMYtWC=UaRNkj0|_zD>Liu8~c&`4K6BBf07|tsXGrp zYn(B0X%1_tbb5x`5G>kn+NZeb>GQsGVO_Nwb$rO$w{gUq#9P%=81u6lgMcYxNSQKR z+Seiw*M#UNrPAA#bKS`kNabfDOrc|LeYn_nrYlY7E9{#$!)&XLWBw$cHRwI>#?$>s z7|#}z&H|fXqMEmTp-c(@dMz>vp~@i>P{1imitDf(YvR+69yDtpaSSkJ$@>f`eNEEz zk07`p?5Z4@NbFNhL_hOTiF+xUs7o7z_5O7uTfmxjWz4Fy%yx+L?(KRano`7!@&3+@ib8F!PY_jnj_szSB?=&u#1JpB7)X1TMn z(_8CZV8DTNN^rBdDbZT(M_Yx7aGwm@Rt{}H*%|cyI--%H`xtyRuO2->H#(bUbKs#J zjZS#bp5)FuTcduH`my6}G53@8%)Sf8*Iw=4_ACmXb=~d%9j?2H>tHxW?nB`yXugpM8T3?(RM14SZ6S|B}6m06uMB@I&|^} z892Jxc$3)WA_r8jT)LW(k8Gp8pt*(-?Rdb>vk7?6ZvWlSiiw9&#ykeS898Qij^4Ov z1xqvaXhE6hcbhzQ%=*zcA!)~x&lf6JVNqXW-3dx*|7=LXM07MRkj8EyYJQ$yx-}l& zj#cVsRLCv474X3S^d{KuwtsxgBS*p2{bwm)i_cah68dnnj_qQfJg)O*Zkf@X-gp@> zbzoL_8>aN}#G*Q@qPGx8K&WpoL0mm$sn94)wYtUqR+MrO53$I)HfA|5R;Abl`6 zcASXFeNcP9>gCZ1lWv8(7`EhSEa)CA9T^;iQY1nNng6Ur=7mfuZY#42+%4hn9?F@G zL8!P@0=ix&_>?`iZ5O*T%FM71v?v9=x3I;1?`9W5s%F$Qk?INMP z-M*?@t<$pqVtc523}zI_ZL((@_Fre|C)+5Y~#8ZuBKjlQRXZhNOJK ziQk5_`MV#}-mut&dXyxcqizgfU+ZJtRi_(p_R)7N!tQx>QvPb3dpLuEz zg%9~v3+~(UgTEVv2Q#`D*e3exkUXZF@$)I6w!OO(>&;U0N>y?Yu}y2nTshVseH#HD z799GiJn8Xhi+1E3%$_&{JZA?8_F2}73T^1TllN1m&A##-)2UP0n?7nv$#p9E?Nb{< z<}w5t+BVM?s^Puu99)-#lSJCcuL|}A8^`?y_wv^EMJDAdw5`>*?g=}JU zNtft7pUocvPc>6K$?)oJ<=k%;5u^T50kMuCAqb-txPJZ+1Z$yz!Lb2YO7_xjrNn~X z8d8VQWkv?^X_)ldj?}j~M7a3ShD=jjQWbtyQtBra_3CrFVcgZHCosggE%VO>g>)AC+TONf?9z9^%VNj%7;#3(mUyI zNkZ*8$K_ijDAaWPz2#FPgfWnbcTmc=tVnZP$4%SwnuHs175Rm^+jv}Ble}7|xyIaC z;Ai{6jM8Nce<+{hV#^k+^Hli@NvH6`4N7)PZDA;QZ#nwnqm!|>z@$pdW*+j1zi(Pl z8~hgFSQ?oM+5$K`Gu3=&`~jwRctlD&tvF0dC{=i~cPG;c0ZGyP3#m92uQ)?~VnpSvJ3?4|_cTu$brSfU5r2{DQf zmQWS{7=(?bBXWOGpTY065YO6c z3@odMCTt%R4`>V>Y;M=U7VxEa1)F)mX|bxfO#1cKzLC+6W|$kxvbeM!W8=W1ef;8 z2ii}J3UJ{jsa!^9s+b4SO|lX1T$r33(m-G_527~av_4;lxhgw)nJBj8Z9sZ|fA*`U zHmM*UJ`Re55{;Nt)g{2MzTVLMJ0lbQ@fUbQNnfaf5ZCi}$lMn1H9Ubbcn8yZ*WlPj zbc~>)8>hEKb>ycx=#sEb?)p|dnz=AfB4pOFHRPY;+!pO&s4V+94T6&+@w zMC1rfkv<1KcIW;rJBN;O)U=vpzs9NQ#wp>}_+@X!GTw?@tnpT__{zv%D8?|$(Q-yD zIN%C^dz41HJSuzmbNlIf>9xt8>H?4X+rq%0m>uH?;t=JL6r~gbTRm*I0*vdQae7Bc znmt93Zvowg1WcaAtDAV_=XZ$@cz&^SHZet`_oA1^ zj}qgEi`|Ak!$$UEh1!}wx%_k7rbCiEC~0FZ{_7>iKjopv>fJF|4za%DPZ{3gfP3Ek zkGcG`-AT>yyMDlkx1w{ zsUY@n9aSsz2_5zD)c|cWI$7Wddj7MmWAUuNN4(qTHP(pEc zhW?s$>3SwP^&(*lMUlq7K+uO(P?A6${<1X>K)AwT*3T!SpcyU$AtZaL_DaG0g^H7x z0z**vm=H-r9ocT}(;IjEEq8KXMpw32zY>TxnS$dh1(&u&3Wq5A?I@;8d{QA&ygJ(5 zT5@dnXPxMnSKf0w`!j%kifoX_+P`p4LZn-<9<6#QDLv%GLMshBG%I||0z#6;68L9p`%x*iH=ty#t zC3-6QWvk8~Wihms635h^is^nJ6@mC(%#mKfxLWClR+v`%h4Gk33XNx%-NYekD*pCJ+D0)oj zDPG<4Wh-$2ZMy3!?i!L4GLZEAbLi~&6T1Imyq|0Y@+ha4h676FThPxD<24Ym_BkHQ z56^spfkhA(4^5g-%*-R2l5kclMQt+qr_;)KUP=u3U7(SlMwb+eP!O6u40=n;oC_F- z3fVsu5d7`I27QdlN+Q1`40L}^3B^kywqf}Nq)-x~L#{2xcN~Mk8k7Akzo9jcf5Hg4;8ZC{AZb9L7S&9C} zVSEyCIP@>I)Su%Hgx_+81vn)91x2c5MWsuG@-!zsaa6OJ{?9K@+l8L|hrA;I%}k7= zt5WnYH8NRKlS!3zAAcLiJS^bATJ_ZIQmE|por^PQ4h__u^5kDvg1(XuegT2B5ecZ+ zU{N4Voe@@MKl!5Z)tJeJnFZ7fsVx)@nvcPeHng|KvFCFU=%~r@!xUlJ!0{pL|N1%d z+98pDJ5EOkBd!it8j7EJOatUIijf{GSils>rxiuK6fE((D6?WpjpG>HL0eD^qPOqZ zEd~RC1tWS*^_}I-E_roFK02B+&N)nxm>A^u_(RYpX2QyK|7C!m6257a#S%Bj8vO-&o z6aQnT|DrT$Zf}~1Ox}N50UZZ)VMkBPtb}IX(hxGo)1a-vK2{(kQ&4-=@8pN!GXAuE zwU1M??+I_ud*`2GdwqJjUF5fsi0E%q%Zzv@1)M|OF+Uta4YxngUp`Vi;_A1i-n3y8 zdn_UGygX*1u3Qki5@%m64G`(y^Tc(p6EeR2>kWP zO7(C>CqS-Vh(|%OgIP(x=VJdzgfsj%Sy6g~Ow#S7U|i|ZlIu~r6=4LdU<8E}0gU++BEnZnbT1Tmyp#lj zqILd58$DV!GPo1lABlwYU`QzwK+C90 z0-{2SEo#*`8O{jw#HHd8p}n2(_!84b@Tq4V=GR(!(>j_cDE;gaafP}&(LhuYXVjbj zz>6yj2od)P5l#tFT3V4eS<59dp)14CS6fRu8;DTgj6jo5nR_wbwKY!1&vzqT&ntUX zZa<*ar0s1YLQo@RthCa8MTq~U$#ghg)i{-`(4!tf3X$4JJar_}P#k-As_*U$9*&dP zJIMrBXbGiDz~87$*6Jh)4EJhwF~0( z2w|lO;%U@UpyjFDs=dT{EGF6KnrmgPd*Sd7x6OR%mXx)l2eiVvhA#H-tS}Qy|D@@rqQ52Z_z&96h zClOEjKN6ikznd2!L!&kjPCF3A%$cD6`Qz+LH;qGt?>H6xSrjFUAT_BVo#!#R;hL#) zx8YuI2yGWvE`ogN=iw!WPC*98pJXhm6w(O2C$_p&-^PixCZ4;DKQ^DB2@`r=EJ%?i zh|y3-JY4&1_gL2Ftz6<71PF&xiM!JfF>;TKvpoLac4LG;KjL^_2&P^oXp0bYNa8;# zAi{c!R>hQA(T+zpj}2`|FIF-6SGiqRA6xV2Q>NfO)x)>d#T7lGrY@9xgNAYuPe2g^ zmNln}^^1NRZaW*M3@cHwmB7935L!i0CY0{`@gx0G)nCr82QJNw-=qLUgI$X7@V1Vrw8emopqKIY0T){hFZOM}ugb zh`|a3Mo4J((DHV1qiJEUOFs7}m07pW#OF8%ZpqGBR2!f@4Mb6hd;>ppP1Bo)6nAk%F!tYnTUqEQu;^;x) zdY~kn;I?kkvags2Z&10!dF2J1`(Zx7&IzCydakN{etn` zewsZpK@q?IBh|1TiG*SFa;rIsL-)(nEE8^a3SNZn6LLMe^9i!5aT3{ahA<)gVnM2g z+DDc)d>uX7v_FM%yV#a`&1E7i!fqfcb9#^1bm@QV5^1gWw{9nbLD8$A1huRf;L14C z?MT*Vl~^0eT)jp?|FU{8n5ClZyiHtfK!N1TcsM`4RV;{vM?Xe_MBus7dn-~$rJ}dF z9Fs9;%wYqZ!Z9PvaRc1-F?-BWwQ;%3nFD+$(QVA|0fA@Hp+(7l%48JEN_u*l5=u}# z1sGYWlH>6gPL`oqkD|8EjNGy6KvDf?=G>w$pV_~}Q5ThcW_uqeRaE_%!-Di&8Dm1X zjo+*&#ew%zbXifhpJE%=r#OnDQa_Ex=T&`+MG5Y4O>1-$+KrTSN|58~ZC0r`{-Uqj z?0-rBC=;!c$SMmQcWm=rM|Tv#w*|n&46%=`3qY(`aY^Au_#}#bh&56nO#q*grC0U1 z;!-n+UnOQ@4Npkrve#HhJD!rXS4l`slft0)m5`PurAV))kVX*Kt#wlt%Vw;8F^a`%SvOp2WA>q}lF9MT6WGcdKr5Vop)LeS%sgvqEC1?6r09P?gZHU)4rCxo$ zWKW-PkbeW_q1I9=qi?|lhgotnlEa><)u=|4GVAMAWUVL1YOs~0>T^{zo_%?x!p)PO zHl#sb606TvQU6NWL;ZE>dwuVU$X5nm*nVgHQ}r$lm~_$)uJ|~u8({9CmQd2KPg+qi ztr?&gVDO&*Tk;!qH$bhbWM*liZHq8da`Ut_|PtRHe;m(3B)hvO6}M<&nWU zGMiLQOI;>?cCa0z8VwfM_A@S2151M^Lv}upr4p(~mGn%K?0ojpl;Y1z)>fBOFE5#z z)S0B(sU*u7Roene@g|jbQoT&BO@1)nF`K7XtId|uOls{IaWVf%4M_{hbk*=JX`Pha zA=>FUdl|qfn@X>tQ&RpaL@mQs+0a&N##T{m10-pv&4w5}_6W^=(=_O~t|Y0Z%~PH> zHB7Z0@4+tFkgGh(ZJ*XKEcvcA*I<-wE8}#)eU9ZT` zpP8&NRJuNS^3{W?rP55BU%)7tXDEGr$b)>I%P9Tp;O`A;53QCAGt+98+4SAPn!)o8 zEDyyi?|C-yRGML}^)e5UD}pPnmX;+2SFTRB@2RH4Zo@9`zAqVuKwLS#XG#yyZTN0z zd)T+cExkSf*gH9VGXn?cTgsO-LM#vXP$@S6WuGD zD^mX~88dpOB$!;fT$)@aWUzQcU|pzQhn^=X4KYl*9&^I#UoWGa&#jYIJ}k1HeZqUC zF)uKdu{Gei;eQh3|FKQif>j_RbHH*?W5f1j_QV4~pQcVW8v45a`-J+6=E~H+s!iKM zz%5yPC};iGiLZz5y~ST(|Oem*>Y0N2Mg!YbJh9LgAN(|x^8g7^Ar}U&a^>Z zTC1zHUDr#QnQghev@Rz1c8lyw#^(QVjPB-pf=@jZ38+@hdlW+V@9gCaOn}(#- zrAyl<<##@}ef83p;xUI+tBY^QmbOkR9&^g3TMXT(yOkzQ8ts&y8G&`dudp~V(gFFQ zw;L>dU-9)KxfyuioISABAspM1lZun0Cpv zY(EK`XBUpVvg5Mk4zX<#hGc&oG1%n6gGCH6+t$@9U8$RV;Wg+m%;0%!8&R)sQd(&^ z!@114%m)@#jI-xloY`f#_x{tVIE*3|3F*U;)J z49RaKdl*X=(Y{XPLZp)psck^e{P^ZdO|m%mb@!0uMw^Fx%V#rvejYgyYTi z4-dtbirX(rFw-Hop~E4UjYJQlmh#)eB_n!HqIAgrq3bP!;%c6F;XDCC@Q?%#kU($< zx-3qD26tU7xclO85`qK|5Zv7@EN%gUv&h2Y5*!wHSnTqDtKO>n<$gHRGpA1VOm|P6 zo}QZi&7j#v*vYSGV|5EHH7zYb1Bz5t0?9;aX_UCwwx(tmYCG6cg4C4MCrWoF&upK8 z@>1pC<(6u-rL&WJwuH#aO-;9wCZve15hyFwm?N816R)JII2cK1t5%ncQjI8Mn2fV! zse_?Q^<_B95;ca(NG8K=8R~xPOG8VwkhZqax)6Phih?Qa-C`)x2SC}``qzD%Q}s85 zmPAeV+PN zmXgDgMI=qB?0(6G`m&C1ng3+Ft$1Ar`Wre&=p%J8p*nUMZHW=|hmhu-?wu5MA)$_J zF+EZRIXXFtR6|(<=XlUalty3a+T<|`6Pha|mr<^)R#ZAMxr4%o778icsh^kCA_Y+f z&`cp?!|V^5WF-+u29yp;9h!o!Yc?P#W}8evu|n&bW$t9|v<=HDHKxm`CZkY{&{}i` zrDlgtLoo#DfbuxUhK4q4EEXJSUl#i!{ZRquUn$jzfYQ*(ZWQr(v5%r?Wu~f1sd#D8 zrCKl&GosneFJOcvqayjPlft%T%Ln#PAun!iE;F8;e`d`FYDfOR3s`Z zR9OIHJhmyYVSUm^TPY1yZj9~eD{~|zLWc4-kS8|Rbx-v_Rs6gN*VbjrB|(PU5LPs5 zOR$wBAmr_;Y%O5F^#vDv6ifhsZ)V{ znR9js;#a@XyivR{pel%(Y9H&h7IP@)SEi~`8e_DLhYifVb|~dnN~?sAS=!bDFiubh zKO`*=j@-04t;3p=aEPtfh2;7da3B+HjO~W%zSc`XN-7ZAc6Kl)m{VQdoRC9X{ipe2 z2L!*}vdyP`Ux$c#t@%QS>3}g0YvDS>IY)<>dY$>A{b@q$cl+5MpM}e*$D?igU~6+Y z`}r4n9`eE!cljCPBeq}m(>(yAmTbex4>n14S#@l4oO4?HsUC(cIg674NV++Week~L ze!YimOWESY{n&vW5iE3$e!u2I%6Bl^7-3;Ju4Om@T^v&qm5D)W?6~-}W@Z;nIrvbD zs;M9*P&;R5KF>t+GUZ0gt;TCnvuArggo~A1lWsdr=OR8vqFI^7oIp0&B;HQdcJMi! zk6K&u!C1sD!&#gUOB?LI)JTT2ENNnBm*gzmhoSAak+dgD>)h4{+7@D@QB^QKwYv>H z_d(nF__uvqQUwe>ccRXEeO|SdEGYt#fQD0L!x#kRv{P|5g`W4JTC8Y5E|1Ue?4J|* z$le*Y#V_d{=6WK5mYu_$#dDfw*~5}c#PYQ7uK!uPk9b?h{kQuZv5&OHLi#MBb?txw(Kg#z0-Dvou3hFq=0V%I ztZHIpkdo)PgO-}5&2sN5X@^;>nyg`?4U#nW2&L3uQgq|Hsw6p zRCbY0kxo%{y+USfHJvlo_B{Ml%M`$;HD9xc8svOD*iWRIiuaE|GUAjbu37lA-puUXOdK z7TnenS{tG_QEoBCznct&13sH}mj1QhX2<*%-BY55do5qpmdpOsrg^C|mqLQC0G!`k@S**#MaP)o{T$|9Vmuy4=if@c}*o8~{#sDugqPPIx)PniSJe@ICP6RORI$oZW_2{3N9O%eBdKXiGVX~>TIgJrCirF zE#N1!4JT}}y45xH-uB*38Q4|wPNz`~M{P2?)m~>%@O6M2k|A)1O^;J-x6r1E1&agz z%Vb};|7O7HR|+10C^dArdz1LI*n3#SF_TLrRXnw5cw$rKaW<7x@QEDBO4 zK!z{|E8{5cu;PRE;CIkl`Rf~#HmC@j(IW1FWdsjlre@JduFo1 z&^gId$zWAk>rdN=F^inwoFPe_ph|pbNIPXSt2@+MZ98?WE@xLFLedz|kQVJ@Ew@dT z15imU<3ocT@fTk=3&Qx$D#kc+Ad*88%Y^<+?htG5?Taz$oWqc2Nzaf2+(l}A;$|jy zr)}Sy8;Q$Mn&+bA`V{DZ?VK?p3DF$d5E??!m$otHr|=bny=`lr9X@48N0s+^)fJ)? zVdR!y_(@0l3N5=GYIaJzC}m~)h7;|Z0j>i2mqY8Xc79C=6wt?dQWiB!D?*2oQKUSe z*l=Ze=}`rSS0&n7i4$Hv?BZ=4B47_nEmamR+c6RX&VH8hMCA<#Y`AEKT2OQg`EPI2 zyXJF%B^st{$euJ>NcOi_x($-y(;#&22(`o{6g4}_ae>R{k7Rgz_}=ebrPR~|?jGMf zs|Qxhe+#~`VbBqy8f98Hu)I#lu+Z^LG+fb(O&?eiU=gYkO>+9oq<&3)ZX=>(DmNQ7TU53hO+G<~7CCLYvXT_t1mkft5FT zJGbt1rEyTa?M^AFR@MyTpJ63Ryu?=W@3wo*^SR@qdwKA4d%b*FSFhuMNxCWWfte+9 zp_j_NlosY*2lbo1pMC3VI2LMnbr8^yCVQ$^JC*;e?eDKc#N<1L6@B@s6gH^L?uU71n0&X)s1dIWoCp3ckTMjg zZT6l-1xxWwkt@Je%qL0!{#ou!r3O%;n`5RFYphC8Jj^ct6e2Q4$d0j`c5=$XKPULXA@@3j3)25(865R#JyZSWqpiMyAH7i^Znt zwYNh`Mx!b9>Ts}ItdvB_XU9)zOsn!FBF3FiOY(Osdka4}x2W`hBd7p^RH+cAtyF2N z+?C#}{MR3VxCIGTbEF@~@hm~C z>4k{GenWB;d2kMqIyss-ID?ikiPAO6z;=7pRZ{Z<*nH7dG6^IF53&8aFh=lmUOKAc zS$`p&ZDK!1KZxgSq4Ohafh^s3A<}5nO;wU67`JKP7)VuSahhuzK21thLu8f;vt<{$ zGgIR<@U~zTc6Tb5@bW$deYWD5wZ3g0S=n5`SxD$6Zn`&+CuQUW>GagrBxl*0g~dnf z?xZ(+w+y(8jA#ikC%L#GB(LbDsh(}Xey-d`pi}g!`kU&(^M~TAiO{{C($`>Pi^=k?A*U{!eplRhTeT4em^Sk#7 zYtO0QcEk^8mXGCX2_a_6Nz;hqL+5oyvd4b}%5K<%G5*G#{p&YdV^O(aD?&`xBlTfS zw6Nqtskdv^OGZkc`qzJz(W%NkuiVZBQPN?%Wz_1PR?dcV3c69`2~fFxtlk|3+=9T@J_B&7hG{->-*fiO5CUYgM|J* z1H?Yc9U5=7(2JDdw|rTXtREdd(wnR!4Vzb@WAR^gb-)5QD$!xUmrV*Zw_G^^E{*uO z17trtjotZW+%GZVymF<&dAI9oM?wxoM;L=U+q#)z*V26)A|>iKe~KOG!1!bdM0Lq| z?d8ieu$JNO-O`}Yl2r4vpr%b?tF%URI?};AJlSV6f35NTIm3IxOYXl8c*oZ* z;xVb)qOEw@=6(tK2$40gt$kQYm@3PAPV{lzZj|@uaEOP0A0f@-{yzJ{)XV}+j7CIc zz`&Q(E`8s!{L~ZovU^#pe^oh}gY2174Q`^xiit@LVoSV_OAGz#5qO6PFsW$z!oAnv z*#ee-burV+ChfNHILy45&$eV!C!&XAd5i81MbVj+Od z3gN2bz$}9}??RYMo!?ny_j;xIsx?0Ds9~+L9uEpc!CI5&|rhSSjvHUw6XT z5;iInX7x$}6*i8uQat&Au?l!6RZ88LBdoVn7S`9LYWwOU+3Gt%J{WwHq(8L|ziB4A zv-RO_x&1y-UN7I0^B#$Z@Wt#6X!@p=(@0zDcgbv?;swD6oJ+M@bVID-Wl&o-^f1oU zLjh7u)$ZtX z#fs)kT)Q!x{9906lvT3d+Z6|e(t@8%q8)|?)qE}0CVJQQ0>onni9etcv45_m$`d0n z^*@-_8N45JB}Tf{U)1Y5P~yOB@)=?YAc)h3kkc;;KKJHPOn%EXnMeL>A}cqhZr%Uw zJH;NG+c`xbmtujBzOv;P(U^0>aYI4$+>jdxDGXHf9mfgc%eaR8WaFtYLW?Kp%f4P7 z0N1-q#Vx|0gxVnIN(;3(cTKSDUc4@M+6p;9{816L3pP}%oc{t(ueaL^no;pc{(F}P;{qqA>L;rbCT^c zzeQaoHNgjASi%IC7kz}ck*if#L9?CbvpW#1Zx8TYitF{G=6zdyM4i+R_WR_w4HeZL zCA7Qj?X=iD=+D)M?LYUgfvv{M0p4eEv+iOgolg`_$m0`)3yDiV>NQXnBQ4cI76?9z z|CIor1*8#FNcO7|VYDk~#F)yrHlu?O&qew<1zmVo>BbU!o0Zt`hYwy4dTlYdUZ1tr z8@yd{w2L>VBm11}Ag32$N2wxKVf9wUCqNX#8*!S})HS_Csyw8VIc+fAJ_TuIU2l~c z(5vYBIJo<2dhop7+^{*bK2l*iUK!nW-UPstYg4)V_I{lN9ZQ=LCsh_1(!N`vVO^nR zTcKwELd_8y-pEHYaU}Rq9v@t;uxy4Z{&ieP{?^-g)+m178i*(4o*TAD)%OyMRF( zrT+P;oz*m4*n4-OLW3w>Fy@fhxXGwPaBr%bl75Wzz*+8kjbVc@`Ioq39yhb1U^ z(I{opzKki7bJs{j?*TQ?yV=4=bNTk3`&M#B)|r#~VepfM$O`&IFR8cNeid<-A^f30G7?7i+)`UzWWtkm!c;yW$B}aS68Fe26eDIr%g5B z07unN`6=$_6i1JvwoYAlE^By}v!?=6= zW!8Oq(kbXQ`}8ZlET!-PiS0x1AW-5#<5VYfE zQdYNqB#Nf7M;t(i`1jB3D)Z}Sh-qSaYy%FGZ>p<@=t)CF@~NX1XQvDk)2N!8n+%cs4MP&4mAfBO znHq*R2lml?dz;6`B&CxD_hU!&1v@gFZ%}d??p(~af(t*2_7SgIHdw-=371xbMLp|T zc)aFEPOy1X-L{ambe;JxitTz305^5p8BsvJ6I)KOlXOF>>%Ol`Bq_?Pz) znGKeBMLxv~bkx`9)ByaI#S$TN$r90zL2oVI!{;y_i4LY08*MDAVUa^Fm0XXAAVP|^ zLA$5l3p@rR-=B+V7n^b9F8nD$2uDPv5}f*52=XSnFBWnvTC@CSHbHr7K2a$c4*Pre zD(uFexIw5pNHxI~vP6*0y3^pl;B?!FM7wlcuNmEt^{Di``T_Vh5|WVfg>_}av49p5 zWrFvM-hT;7S$BH0lm_uCo=x1hYkvhLE9?3;eVO`*_|Q#I|18c3$0$haB}Ex_t3a7N zjI1t>Oc(S&4%%#3bmh{7o^P&Pw80jJ8=cl=yGP2u1vX3l?oC|itJ*Iv`HppreFRZ(<2TrbQWktA%W?#vPa4}uy=p|GuST}g$_F5kgL#qm!?(1Ghb~h7pzTOoo z4{jv+31R_qM3~v_{93|?Ni8Veq@D2KQ!MfcdQjwoyvvy@j&+BQ46%&imTdPZpZoZC zy5N>J*l&y)#-@mwvNU?#wLjA4fz_3iFc!;!)u`ZNfGw~7qU$%KgREuL5QI|qST6&i zrdQGSwOpB0M9uFR*28Pu?;|-T8B$-4^j^ERyM}tDLBnQN^f_%R$%U;I5E1i~i zBHUH_1_&?*{ls_FQS17MSaLKC{+8di_!kR9&ezvY4ND&z`LWM%U(=)vXBlgv^Nmm> znc}=)+<_3=i%95%G&Z?rfZFkQc`$eDN5mWr4*$pet6Ta`njfz(Kfa&Ah+U;|HmiSR zC^{qgSm!y02wONIxnDn)3A&Y47?9{Xs0lD60Ku-`-gbOTF;lt5|Nng*AG?|viRsIu zz7X#?3I2(153X4@nH%{+C;ctIPLzy1tSL7(8815D!1+DN)9Ge#hhA+OxZ#?2USv`H z)ZJ=$qBaaCGdJ#jRn&%KDSl~Hbmx&wg^TV~&HVpl>9Hlw!+{C zKnM!k7PNyv$ro;oF52d0m5a$LXc{pF^5K+)h+JZ7@M$#Tz4b{zs;2pT%-$6F2cav+=c**QlzJ6=H^V#l|Re~GdAwp0TH;zK8Q=Ea@_Ziang*|XUyH7pQYJ%ZtgPSSo%s> z0iqN~H(RUHU!e%hZxvGG{D2A@<(}Z}#EEH_5l;fqd*JDOdHls%x6xdS=`C|j#xM!P z{(jiUgqPA#c}${oX0hM6YWiWh4i~X)KMGuC;NfbHmA$`zI1U z(&gB0vWrDk)wu8eXI5T!{wZ94vb0l%!%@TTMbXnd0SkgPO_Mi8dyda9B&uJ9qd$fg z`tLgp=)VFa`MG$Dx$2nwJG6p7553u>&{-*B<{O6xZFC=ijB>nslocg1|?ii@@_{ZV`cM7iw5r(nc(d zEN(Y2E#}ofyQsN5T55uHItv$&k)E)YZ9B;J0trB}T(YlfukXf20O{iUz(bPBGGSv9 zht=bWxJ~?ZXeLuQ9@|v`$uknG%#}7BBxAr@mCn;ns>{*E#Uk^tWR&=Y1{FnLlb@YX z=48S^ebZf>!%$jC5|(LgmHW+3U9zvG(O|m4hbcM*5yA2ncbGvs7!KII5l2>w!Efa zuh3vvf17bmb|*YalNR~Y`) z9sMlZ+jHy&ZSN8jZ;;4_yZzLFWp6?Dw8Xfv}RYdXy0)Dm6 zM`PUJ4%1MzPooy1zL>NkdrT4k%&;1AOnN0ub_)&++ZTO6vov1dS;w|?d!p71`^!w8 z`HH?_k3+%QMV~QyC%i3v{|z6Fo~pvSqMoVm{A6^(E_IkMJMmAT0+leDH3kdup!rWP zg=N&M#X41=`vv8^7?E!6++$pD00InJ|6zCI1@t#@32Y7r_B8+a+@vA<4};`_HfuLu z6#Db5QZH|x(ByI(WTPN(qhQZAKk)oB7Hb@9X;{N8XimJf z?%lu3ErNs}^Ej7uZm%xt&EFC;(^Jg!qALX`oMG6}2qX983v(_DhDC4bA>iw>xTvqu zI~zD#@DGqRUMCUDYr2cKgaPI`*+$A&!JoT?CH_f1#S-^2uFk#0V)HYuUV9{|M$CjV zWF9Z0KD-Xi!xIjZB@2Iw2<{}_kx={G%q75R_yeLm{{2GtKj`4_W6U#2x@Hu-8-mETUZolsF z0$%#k{wlR4pN1C(F|g z5;#;BSZBnBNoJ4b8>RjH0|NIVH~)n}!fW#!$_baar$iXAtQH0*K#V}6+VV{yxk@7m zj-v3rZ2QmlYQIF+wkgqaljTC(3xC^h0Y&W}J2Z^5dxL$dRq5hJnj%|rdtS9GP>(lP zVIA0hIlV9-_mqxc@=N-_K&#yJW-F|*Ok{i&XW0VxGgXWuvf8GmdR`uWA8~AX)7I#7 zOS&TdR3;TF`CKa}7D$e^d0r>k-YV(e7g+^$DcoNubc2l837iTL(0veM$1-~H91JR5=xK+*Sl6$uJ_xxYOik1D_gMEuc=Q~7{-jB)jHX0$% z4ILpff0P(O=khYe;6{y~pqx^oB3!60<5<{;MdP2 zw5Z`uHtpi%=tk9r-b)Y{oY$zG7rMu$X|wz-p1cu!{;H`rknD&b$k~&B#Sa2f$_vm# zG8}D<#n)`+9E;>la!qXhr?QDM%`Os;MBm2_xQt;J-Pg)DX(wRWzw0a**RI=}V9|xL z>n5=4o&&79By74MHeD^Y8R%{`?s*;Agu)0x!wz?m)Mg_~-^e0j5ApaojuRffzU4hq`BT-Q<==5} zZSU+ChUrRwneNwzhbJrvI>uTxVbS<{;ro$|W4;^5ZYe`YMB zq%~~tK7WNl(2Yt<0{n?TeT>)TF?i9k=D*HjusSBOq%IxpRrrfhk}sE{MTv^LfK{ym z?R zByz)^cRs``mG2f9f*Jz*4Rfg=#ng_kh9F>YviZ`VCIofL1*HC;LVfzVtRYG%NlSfj zNjxjshxMRD+gML9zWu~g9=+rNvE2tMnBXVgrkl=jU1Ed#l(ZA&y8sjE)Qh1yAV)sW%N44sZ`<=sRr*5P-7f6l#&Jg1SlIeA(L)h;mmvR(I zl~zMzh7nWU^Dbo-@KUV2vMcc*&A#4m^MP?&xW!zqd)7fU_|rpv#FbRllVPpuf=^5(J)K z{E0feYM{O;Gz*13;@Fam9p?#pF!x2RU442Z9%vTobUPD8-FTeG@6q2IK8+a&VpLz7 zc}JCx*8CbhFQ9$f>#JhgMt|JRA28fYG&3_!S%I9k7uH_r#hue7reZUA^#iHg{nJeSr1fn24)S#KLsBbxi@cGe1bkYjWv4KEEd?stJ7e?eh1Xg zbSh|ZkJsJ;9xwief4y2EdQ3>d7TYThr9G)$qdtHTv2CkyE&m5`?!c`77l3Eqc|)lS zW?c=IYW4a-i+@b_u9K@joBT7^6CP$X@pJ#zeWFi4#jO4ar8+n=qYlXKj&}8WN66N` zf(5?q4F9H#}KNXBS3;&`?d?u$SW4_)OIvVZ|1)U z6Id6a*6W2=>_#3}o#BBkN6cPqF@X(d%vW|qoVhEZytld`B>mNS_8mWxa_XyLLvX2y|~@}7O+Snc!7D>Kg6;0yrkncylh!6 zU}!+1;V(#FCW}-|2%)jY@49NuanH%5aU2RaAq(uuk&LvdIDKY_i)KOEK>l)7z?Z zIuuZldCRE5n3h=t^ns2BPD}5pr{5OL8G>6Jp%dGMaA(p7{*gGaaqcKakeun>7^5iF9E$-cRV+*m6r}z6RYO_nw;MDbI11 z7vFf{{{-gmbq8-hNWYFrDbdHiS zM^5^94@QIz^1mxP{*?<&Q!F3AOm+V?5S0ABJwH%^_4nT@!gGZJ;lH1V2C5p-9E93l zLa2Nvy8|U9>@@fMfuIz{NIC4}h3z<8j;2fThl3(|d7 zfoeuU7{!j;d9JjO<}cMx-+~Bn-n)PNn5c(Hk)U7;U>_iO-=y{)9JJmWv+ysLO7M4= zjN@=W0eRCn9awX{H>~w-EZMu0E=eQ%ems0{wRfEF*L%LVn*1cgIqCXngx`<%Gc>WR72Rcw#OuvTijx8;cDxSX!*4$K0h~5nV3aN58&%j`@lPNseEO=B zl1<$#*yffziX^)xmsi`mH+pF16UDg$(+OK;026iXn_n!3@NLv@4-7sOYKp9ZENT1` z1(?q4?gp1SMU5NdRlExZPXJ#pZjY`DdF>n@F**2lwby9)<)oCM=GJcev|*L+l6&ip zC-~2*v`*_-cvxBEClYY(OMIYcJ#e|jQG#t#+~9f_0{YAW$fYp&Z7PHRru zfuuwiZmWi`Noz`R1!1b!<5X_rv>1Sispmr0uRv>Uv-g;u+wyL|qJ42%;-KtplLyjQw-2w+t0vh` zyM0pWF52!rwH=;sAlp`fsOL7$oVxUfoTjW9 zJUs=iC+dayzgXxt5`b8qo8tCg)2}wi7-438&~=MovFx*Ioa5xH=u7o3?k_Z)y=G5E z9#bj__Pt!F*^1X>+*_TaFA<&GPA}h3FLLKlb5^chL^WZdxoOz`bdSRPsV}XT%KbBt zD*OB9g*WX5SH0!)^DgasH`;RTRu>-iy4OZM(@O0lKFeVH3!r@@$asI>9(EGdGcDaN z&$evux0_keI^n-uaMfI*FiO$xB-l zeP6!z|Dw4&OO3x@F*`-pIXyELhdTbgFbr{ee~m5|dU(BTI+*5=F<*AYYV)0@ETDkQ zm1feZW`pW`6`+l>Pw@QEPRTM_y6oqdFlmvZ)nRc(DbVm?w=rfVt=FYU@236R=$B<1 z?RG@O*gC`#X~Eb2427`UNDHa@?$@U6&9NF^Qxl)H!t36SH#)vxezo0{N`?PmeKn{E zr>r%uTfyEspklr(sD%mzc#Hu@dO{gC&(Tb&YuZ#JfVi<+FpFn|U|-aE=UsjB$%Ca= z^_OM6PQN0OM+|4dm{yjKiRvLPiwp6tb>G3OhE%izXzNZRKH!gY=&`toSHy7)@0MHj zmo}D$6%jaNypdUB*AedHG5S;9z^!B3aqmnX-sJX~b@7g3fKW`Ms3C1F>tCVLO{OKn zib9(bFtXPTu&izsb2EaB5}|2X2f>4rW);Wc7IRyy@idn8;^t^OOSO(D&`u1&A=g58 zWD#*lca*p-B0{M-uei0bk zD*18>bLuW(x-C&m5Yi^!6;S{a?C|5l)?(l|%kI`G`2?lt6SzXb_@K0T6`|-WVsoWB z4%H1%<`Olzpfb{279RFaOk4Bo`&Em$day@uk|aEMgR@GeG2_L`n2ifqE*U0hcHzel zrWZF6$A{W{_c|m|5Bjys1cgRhRFy20*hAsHJ3W>ikvo??AsM|7*SQysQ@`dRd_cfp z21SjZzd%w}?o^F(n48aALzH4fFmL>%S$C#<*+a!%&@VA?VFSJf%lTsf)Y)!b$iSd7e~x}QO7HZPiZ*B|yrG8mdl zj?M2zTP;gRNfcvv)UmyzoMgmGABsRa!MqAa&Hdi$yA($E%~FZeiY69qm*ygG13nL%B}8XvXQQSwCL^Ik&-%&BTk0)L|D@bhc=rufJtE$Ha?~hMygS zDF^;`+T%^iJOBE5WF~o&Y-V{_96}&-oxkr|4cH-M5ux+(*XV(X-TauMt+Q+8)KqIr zo2q$PAun~l)P!WFjnAUGfU}C0*^jsw7Zg+0K(^axek6^ZQ(8`@iaUw9{hLp-wtO~Z zdHTKSJ2qBC$YxtI7GHJcIjvt}heFp$rw7OK>xySzNeV*2d4}lnPj|9TAVMZ3N0W*T z8mOxfrQP$H7@G@QYt=E%>>*3dB2&_A;gcI&FRb(qZF@m*a5g zIL4k`NXUK6CLy$2Cri1Z-l{M)=7US@SR}0LEPWP~kuiuIAYN?V-%L+J&_;)mK9qUt z2j_6FZ;HP0zurUu12g6{DT@!-RdcSt@6|idQsKSqoF|H|tQjS!j_OlgcK_1Kox6lX z_S8=XwamtdcqHDM=$)Vxt<3&0i+^2;(6DR!+onnKSnSNj3>IpfDw0sLBrb)KQA&q+ zb+v&*qgmugQ;mTyWLSyFZLcCa4`uP;2A6lM3DWVmeWe&k#Z2#B6dE`i0tra#D|G>n~fDOlOM^yq;l;liqT4rG#F|^QlvdC>Ykk9;Ct&>)KJq zpBNZ{i?WOsEG}fmY)m!^!uK(j#fLiFX5B!wPlyH&UWg{t$6;Fu_Z@7G41n)1eGq+W4h3TN9xpFNms_fSIV{=@ zmfs^ixkVp}Tf8ON%P5&i!nk`mZDI=O6fwWoDp99ganWzQ1xh6H{lB)6ZCyCHJU?jk?h5he*jRQ|aibIF0E+ zwG-SWGQSnntrn+#x#-O3q6s-*j&{|2pAkh}uvAv+i`@p*JekRh7A@VhzBWf@r=RrX zd4#O)Q!JLC=`))QHxyA#24dYLLkB0xO;{)4f*jtx1PMi;M5Ug%z9?b&c5d$9z{e!d zJ=Ki@I*t|*Q%!BGmf=8d%)0eEIUN{f z5`Sn2sF%6iXOF$yNqXq$W`mD@W$`@Uc(B^DLAaZSY!+R@9Rw+5~7^;p@Y9*Hif&-Z6ZW@E}wupzRE`)NLXdoFzSPL z`n>T+<)5Z?kIS5YikdSJ(}%PS`7HswyxyLPRRW``8zBBdL`ko`SeCV7nN{w?-(v>G z^dD%7&_Obst-V!`R8IOVE5V4+U++e`Z!Ya5?W^LkZw>dHNIFi}LSMBkR1Rk4+`k`$ z*PpuXg(qhXNUv>Y-QKbRYmN(sRn+JE^bez3Ra@=qcM^Wx;twoP4rDAlr~B@dY=BsA zbmHk%2Y;J)plFclZNFS6Rp>Y=gR~hIRi+ zB^A+2(|m`mvZrOs`^z~~zB=x#OS1P&2LT%gIU^fov}xx#D>3)+*Gv>*^7qEeb=Q@n z0zjkPkRcg?;XR2bD^wZlVz8%5Q#h(>*w<+m^FiD92)tPs{p4 zUNmdP{q)q;gFMhw@US7V2l~0@XI~+Fj|9cGIl4?_jL`V*)x<-!yCYK`3T(lXci_Xr zVQ0&Guu%tr@*;40{E(FO0Jz+e8bdsq^Z#D2Z^dV+1c+V#KPy)h+B*VzT zwCvk7c^js3u}6BrdP#5#?W%y?hVD_hqB}_w7h>22<61*-{mvwL^M|Tt#X1Z(D_H5{Xwaou-8Rit@^Mu#wxX$yJIL?Vu8dQ# zN~R3;*sjU0`5fM&YTs4rssP5eve!tGO_oAw`fN3D$DWF@hy%_n7}^n6xR+6jY3m_? z$$fVmjpBkvukp#p3!J3nf~V`hSECPHaSN>6aZmRO4X1;#9pNIQN2PZ1_B)GGq(9YX<+OLDzhUTB)Khgs)7fZ9X5M zbxV(^v9Vquv}e@6N)cH5k3)nM5_k~Uy@>)&*j5DH&Rwj!=WA}p*#0e$`hTF9SuXAC zCcR2gcw_bb4H@B(tH>FTm$UL#Rp{3GIdl%QWz#MCnze}Po+j<<68G8g+q)xob>HP&vmHXy3_tmQJP{VYxW|}2L!Mw9z zx*NSikT@<7;UIb09pf~)p|d1)=Y;SPX(gc&%i{kg4!SqGDjmmgj!A>JA8i!CNUm>I zkjtxH+aIpDNTu1925-MBcYSYH5(UQdR>GFYr@c7*Fd;FI*K;|X(d*9yI!NMyO*evB zdoF9ntyesgc%O}R`PQUZuN>Ae3%Loq&Fwb>H~-{3o&8tH5`iR_7}CueE$bDM86nt_ zwmrT66>&Wl$3jQioiI7ZQL^xPx+-2(Pwy((g~_Y&F01NCM#j~oFz3IEKy>X34w09; z5_nsti`)3EuOY#t{Nlr+go{sg#LD}+S+5Y?K8lWkBlP-2-(@M=W6X6D%4t5o5hVHN$xJ zq_s(BI)|!#y6kXq^AMu%@0!DeAvV$*8{jFEr zW-MVxEggk~)+=|q8(pkDvel0q|GGz;|@E&gaO3~Wi3cHEj zIBuUjDq*O8;@*0NVus%xW- zUttgu7a4ezG;BP>nLv9~@S=NAB|*S&kL~u}X#Er3auV%t3B!NMhR^LlTE3B4; z!~KHA#iPIJk6U%Djy4Pb7qhXhv>G9IaI59=ODo1^yrpjgqPf_N7i=zxYomYe#42|6 z2%Nyp*nsk^@$NJ7?x}d=M*R7&q+)>%pYX*0)<3$KM1crdlz+>=Z`js`7@VD~!ey^x z#D56o1yBEP5_9N^>R)kB1(6zE&%R{(PP+7iLjq5w&Hs$!R#-cf^!~p8r4`}hZ>{DH z8HXSKqbakx5_5u2V{&P%R}yqN^{<}Q<8Y+AyNA^haI|8UwWgj1ADTj~SKjrFJz5Mn zN_|;`!I2)#@d@v+FEKAz{I7OSFz{z8H~7#bZLI5iv_*P$aFS_4MCt3pzTRBle_z%F zKInU~*1zCbh=%3_k5bEaWCs_l2|m8$sVC$}4|I^i>-het#pT}hPJOSlV}_CE?i}_) z--NPxxxDGtUM%8}W&VW*9fXXg=l21UwCoRb^GA3pJ)}9o1T(I%YOLK)cvXEX;6_6Upzuz~0Sc9cFht-bM$=cBAnO zVeJ-Lu<>p(e6}2zRy|*Dqc7YF54m-Q8r?2#1@mWk2SxI=OtN@2zs*jvMLMTEDqwoL(lMLOJ_`BSzf9)90Fm(W%`qoE7QbB6Si zQ-*mf=vix~>=kq!up17?c<4fq6g_@zm@~1Z z;fwHAp&CB;ruN+B3i^?M6r)nfgK?QY>FOvA%I?@c&zxih{fT@O4E`kw z?@C*=RJBTO4d@|@gF~CFUtY4HOn)i9xPFh#g?W8vO%%7DySY^fo%wrBgDOwoG=rFU-5_Roh~}cRy`_ zHp;kFloI_!#@Xb8OSiBLiQ-hnp~gV*zM(k-MqS&FfRpv(->c7ct1#Y6C$sl*(JQ4l zy)7E6%4y%fvF&Hb8?SY%l4))Qn8U}Ge+>6dYq3s5_yXBqX@L#>TizM6-d({4RoZ;0 zwMV7a8=Fm(p+%H3U3yrSS%;lbniJwf(_`va1E_ym8~8Km@;-9AZZukhQ{0})Y-8M( zWS8qxX(mjC9l=x@1owalj(esL5pQ~%MQCWN=_LbBMLlHaOc#8P8;#K52-j0>q9GTy zi^BmR;8l4Pz_RV$<1ql~W~lnuKTmRYZZLgsxyw6*w8H%(FuUi<*{ReW68BT6=qKYU zYc6>QIl3RY1-b0(+capgAiYj;A>CR)C-0_r^>Nsf!^iKw$F)n12qS(swdNAa4l?$# z2tez9J=f;VmqK9*jj&uoyrWzXxrzjsFR(J2-2&vdn%ee!t+$$X?DH~Ax=;*Y?bB2x>?@_Hw;OEYG@ z;mILmpEfbNnRbt>yS0W6@fqfwr1~@6#&6 zh_t8yP%IsMdT!B=yPvhHZVT*ZMKI-`iCbBIPXEG&5RKo;CgeFERDIts;+?c$Sh-`{4lVjN}w?{A+*)H<)3xbT3oVI2n>T&1909R)yU5H0sA_{3$)HQC(p zwdnNUkk~7b$(GhEf~j7j1_(eYmTaI=PzL|2HH)SDJ>Afqh zx;s%ru7}UzsA)F|OMcPM4j^py?k!;jrbX|@eYgd3YClB{R>QiD&+c!}4WwD?W9t`K zlhr@;-vhsxt*tlD?*^)-e~}`)_O{xmz-M9o{a(6At++_MJ>%%zc-XTH9qU{|bouQH zEYPR3#}CqZDZ*DJhfrebs$FqW<8!}IeaN4Xc&FSRvNTD!f}Uw9W`*lqeBb3>LBCvl z43YN2Hw(O5wyw0$Va}&Wrb9r1-JeY3rJF4Q{tw-s&(8l`n<)sJRmzvPQVWvW(t-R{ zj1HJEeXr)Nau5xBW_um1%(fiYmgoh*^y%?nKI;%zeH20$lCJ)~3+(MI#R3RXqKD29 z`MCSCmU+~?BPi_gB*&e*GI|XrOJ=!*Ny_6M@()XdRdsjE`!3N666^Od>-T~!u?5*{0MvMuBPEXT zF{@;9O%J&R6f=fgF*~C6+)WTGs+_7Ef-0 z25aPYQ0xxSbWrwim2A)D;)DQ=Cd?RGL5~M1kiNM5&&;g-Gn6T1rm7WmU3U?y;VrJ# zZZ`9%Do2npHjjg2`9paCXqu|-fS(O6W<%f?M`JuHu#n0lh_P+4IoQ)J4^e^9C|D&j z?-sn+1i!Ow;&R?f?Kk(Tgey(w5?FsHi&??j36}9E62aB+@e*{Fc&22^c_LSY6F^V!eD5EWG^|X96S(a zkN}$?y)6&3aai-j#5?4lg z!<)kSL{HrJubYyG;2(B9$`GdCUs2N_9r)b?%&+3jmQeIp+dGXjm|hcc+(Z8q*#?f= z1s8kb|FKi1(oB!$IHE$}umy zS>LLU@4r#^2N8_MQX)wyo}G?EP~ds)jFk2tjW8VEJ9+f z!1B*ANe1gTig^*WJKq#tK(o9#te6KwFxgf35U7KEMd>IzXoIEcocz@xvS=kQ0yR6V z=%Q?;#s%8Uj7SeXNVmAY7yvIdac|T67XjqIbArrv3%?yTJuFe?TQ@2F1Jp(nhPi zQ%F*H+o<3FI5k=tEFmPKjA{M&LM;oEe)v7jF@B1e`)98P4r#M5EL*m+d?vIdZ6sOC zP#i}JF-qjr1eoJ=YLTnNQ?A`jJ`Q!6{DwQc6kL61{h&+d zDW>?V?$9UJiE!QZvgc4daXn`Bg|!#b=WTYnW_9q|yVxFEI+NeVut3keD%dB zsm0ZCDtJ!}A-c`t3`Z3IYk>L=BE4jpVc1i)v1Q`#KYSaFjQA9v9--t^Xid7s+RKW~vl@e3~7dd3*A_})KH6rk8Q z6fRft)b|;U4_DE)6z8Rfb-;GV_Rm*s-D*WySyrY5a$4ckDvu&iVqouoNCFF3l@#kr zGfe*D^TkgI^Y_Ix$b90Y$D1tfjNDRfzS`rdk@mPT7_&Vw)OY^uf<$gMuU$$ zbAaye&Qix3w-@a>+DkuHJm=jJ=GCB`nM3&c_jBjH2w45TYKJ}q(|R|D@cOW;?&vs+ zfP+X+I+mdVbj^DEPqx&?axKpahgC5{!Rv|fPYUF-s%A}%TqR=mo-YfJL;Ut%x`Cs5 zMxxZZf_@ro&&)+kisnB$0F@xdbXCph;(X(4!w%mu_F(qcJGaM4B^6@@Qby9Kyy7vT zP|pyza&<6xxbOcZSXHrjOx?3uA&<}QZ^0A5g~Pvw%Iz*wgD-pH!kCx^gZ~q1zFz4K z@QJVjUnKLH`Ii79#yj)LeBD7u`kNU)wC(E5_WbYy;iBe8n>x*v=Yc^V#(qUK2zxf2 zf2a!XEoQlzh`IM3*WHvD39Ao{)rXWFxPLJP(+n{p30cE;CgIFo~!8Lu8u%Tg{^T_JUe9Y4h-H!WZGXwQG#v*se8E>s98e zWr;wnoZsQ)+f~4RiM4vOmIL_&#z;6GO`Lph90sOUq)tBJX7u{)1f~}M6JAXe;RPmvs)Qyz7 z8>>i{Tmf44RzDY*pDgu~TZTm|uN` z=qYmSa_TaqPAJ3o1$u{DZTs8^-(MW#yE>rpH-N!tsVNz3`V~8SJF}m)%R|<$GDnGY zO2H!2VlAxU#Bxmuarfc)A;eMp=wGE6N42vCTD_l1=Ss`^XxL7hIZ386JrD7r3%hpL zw)-*8!6eg*D=qxNH)Jix@)bxRN%G$ujb{bj+@0SFcSU3+zBHWgpF)^}L^2G-f=(#2 zFS-pTiZlm!Dd%=_iaQ>&Q|Cn)w@_AN`j&Pq0>NegH(Nc{JuOX@s_N4~#y z(L$Zg>-IbM+cobdGaY;D>x3WTX7@a5-LH|2bIy`J5Q2W&ch%ait2VZjD3+A!%?;e& z6vl1vr)l~xQOinuf~r{20l<6oU1TlEblxjul5+gpB%9Zs>%fF> zZMie~#dJBkgQvCpmMcwim<4?0|6FmINv(j$3)tatk=Rw@yaMpBOQ$ z_FQGn8{mjz29(~Yz|IY&NcWNj|K+!JVQ%c>N57UEcbm(gV`8sDit4ZKy3*!JpknG2 zb0CV_G z&m}wpNxv3u4W?sZC7{V~tIQ&lIgj?Tkrqd1mp*j};V>#wL*`LCc;Xi*Sg%F8kY&$Y zPgj~en3&YZ&jPmZtLLB0`B%^{xC;SR!|^3LkV*1j7J)d~r3U6(%br8?6UXdpLsgQP z^qw_E?)}2kWn{e^0!_0(+6pJ6!h>LL*d~U;?7~27{~JErOTIOHZu23IIbM@4O;-0y z^_3rcT2=o{h4Pah+|?cvi*UAg)a{Kd64~+bZi}ksQJHn|>qMAc>@6KglGBze4M_qWwugKu?Cn^$dJdS2 zgK_LvaN>}R7zXERdf4+p$UX)-AIo^ItW<~P(EgQUt+J?R?=zg;XaVjggB^FZ`}q)K zJM0x;taaS&8U!$E*>I&%hR;>dkGTt3F)V(gE3gglR;ZO_EO>E|t$V%Xqbko~cQH4$ z?21iLP>~lIY?FK+}W;cVE8iI-7zqUDJ8}iJ90NoLfZb??DXn@ z!f~zR#bof!Ds5Hf^7QPU*GWfkgGWm(dYbfB-6Iu%xruyw_!xI=&@e-xT5MEy>z<)_ z$-rz`SZqW8t~GVS=+WQn)kj6XzL-W!x+$dR@zwvaUWx)VnXBI`Fnegmfkkz2ZxL0u zp>HdatgX5j=711YIjEvhHObW#87Cl|*hYODbxZ{l&68+24ItPW981#lU^WMl=c{h_?E7BE>tuWVRATd}&-=5C2rk3Juy&>n-qztZh37~#q`6Feym>CcTvHI^>Zk?c z(L~e_J&5=}Yb_1hL7LmYL~<@3%maprTUnZzhcOOrz2y1wEx;AbSHYsucV_{y(WrEG z@~#Y=5UUeUM5^)c?ZXUY(K|mRMYc>OUG@O(Zf87`{eb&$K#M4 zF+1ALcX(PK7|Afc7@4aXS71?ZlQbHU&e6SO*uT1B1r5l_6?0ngRfvmI&;qNP{~D(Y z3jz;7YxM8(Wp4HPb3`A^2^QB#@?Du;Y8tgEr} z`u0^nvM0zu_#@Ut7@FvD4KmpT#{U~^q@<$L4bNk7_YPsjWN=FXLV)x=4gg(97K(0I z%;KDX7y7vY7QFJ3GmpE$$CdEsw`)3(H%H=hVFh!;wB21!=}0hf_XYbpvfg?IEu@TZ7h} zv@vNe^A@fh)I*_C+7^6lxQtMx*MNs7CkXA#T8`VO7thWDV)(VAL91PnqRToZ0^rP{ zZ2wp?@pb+6gLVuTTJ@D;uLyNOdYLIg<Kpy^Z>3lRF?QT*S|!&oK24owK?-8n(aW|(F?#)CO&Yv{4pfBo4{97P9mI9;@6Po%5!cfAEqJtI^-weYlk zlPuW4yiEzF(W@bA#H}xCKPql~dc?orKBIdlScm-Ce5?04w zuWXd0#L_Tc=&L#=QQ#|yQhnd{)15JzxV=MZe>5(zg$*2uDZfeh^Q*WEbNo=D=pfbc zJdo$h8`tS(%LRCB>fvm^4%(7}g9%odonc@3pK3yhrjVM+Wtya(AGyI{RHgkBK=^Y> zYJF$p7=M>m(vuZthTHr{PU*4s+Az--J5C=f?{PrCMll&}`1u!&rB{SzM^_T5l z^)32Ds;uRXxr`lF$pg$$qe`v~;iD@XS~ej}>fKTqX4gl~`CxaY8gV-?3gsPV)1S1> z9;7Q{3B6kMvf*!s;Bt+6eGppPCjb4OcTfVSvdUoN!W@J3B27xR5<;D$4N#@BLb)5*o7Lrrer6hjLyu77$2 z13z5xUYX=JS{-Z*-HgZNj=BN7WMZIsF(xcws= zWiV^SL#!j<&ok|fz*BMrQ9rp2ba93xy9zq{uwDhdZTK#jBM6MXfWh}ghv=#1QNF_$ zDzMylK|YAQr41>2?XjSM+y7IcS;L;O={BDC8T&K3Li+GHBM<1C_6Jzt3|?o!2KqHH zUQBKY_bN3>+p%s1*A<9?M_6rmwU_N?Uy6m}?LB%m?{HIFhZ?_Kar_BW63 z=B}>ER2K)fmWzQG_Nsq&mla|8O2LlP54U%L;lRJ7{KCUEzc)wOI;qdi%v?=Pa$d!? zq+6Pq<~SM0M(IXrND0f1B)UG;*9Cu+Q(*i9bi=lv|M5mgJ>JkyFu4^T6{!r96do~4 zwtP4LdE08ozrK6NzsolR)9ovkw>-Z5j?+kCJJ^xW8VIi$HYJU{Su1&a(Z_?;jdmQJ)tQ0Ecbc>``lp~Tk<24sOhCF$;m*0yneV=Ryzt)axZ$|I&A@7BKq$luSfFk|p zFq_hLPo!j94C}qq{G*e8UmXBH!`JC{PYMMEj?oid-(k1=cyx;XIyRRE1Rm&d?6MAH`&rZ9{H~Lax z*XHTF1+t+^HoEq{^hbD%D(>Vj`Z+0+lX@G>4sNf$2`(ikiP-L2HuTNI$M!18@gIi= z0j@yfIQceV8QD8Rb{kPgmtvAcLxtB9ruigVq-yz8(uE$yJYwNCh&rwHZj?52-kgYM zuo@f?P#25)TJF7a5=fZ*;iRQ$ViOj#bCb%MXcUYb%jyfgIF)vtcGmXE5pY|0bohVt z1g?C3r2o|??@rJlG$fk@VL|G+Lrd26Eg)DCl@%m7;qUoQBlATryT0(G>caDA({sAQ zqi>s11ayRVh}AT^^O;<~!&(INgu9QwCC6R}WtPy_&c13@^5ZFZHAQqR?7Wy3{A#3< zW!vUm#~9J=lwF{aK0ZC*hG+{V1KEEA&4cg+R!~FvaUhOb&H=0`ZQ5-A2r^ zgzj0pC&y(ehNWGOzv&5D-=dRl)}A$CtS314O4ZIB>5oj3zZ!&VC*Jw#xOcQ3$G6pF z2>1PIfoq?MZ0@GvLVtaWO|psVptAzF_45M??DDC+GH<^tIvU!&b8Tg(A^i)DnoByp z`ft>T)DsedV^tX<22F->X~Hs!>j_`JMJC~o@lz!yuf1>R2s~Xtxol2+ibGo6uF=d? zX7wPmXZsv?Ci*pHD+w(>;vjRc>E6O2MX4sU!_*_^*Oui%r8y&ZFaB}ko>m6*fAn3n z!5EdW{UALGe&>z6#e%N5Qo_%V?Y%Yvf4ifq7v=S;HeT+i_&uG;gw+>qFKgos$C_&V zq^AvQ#I4p$7FBR!R@yc91s;

    nqhvj;<#x8%x`5Tv%!{w7YZjUPFsWEzf(ZWZeZZ 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 z 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%0DsE?AM#1sGAb`wz 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 PtM{#VV$sfj&u0G*S9QN6 delta 1023761 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�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 lyM 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

    !lz_1*DyTzc`{bg5SQ74Y*PV-sl6lGsL&Se~uY| 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

    ~J{MMl7 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%0DX_G+2l-V{UX@lZj% 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%0An8 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

    fC$6^yo&rbbpV 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%0AG4sne6#4}WeI@l^7}!#n9?muDmkn~yW+ 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 Date: Mon, 9 Dec 2024 10:25:11 -0300 Subject: [PATCH 103/179] ci(pre-commit): Add bash script formatter and linter (#10681) * ci(pre-commit): Add check for bash scripts * fix(formatting): Fix bash scripts * docs(pre-commit): Add info about the included hooks --- .github/scripts/check-cmakelists.sh | 5 +- .github/scripts/find_all_boards.sh | 25 +- .github/scripts/find_new_boards.sh | 37 ++- .github/scripts/install-arduino-cli.sh | 3 +- .github/scripts/install-arduino-core-esp32.sh | 14 +- .github/scripts/install-arduino-ide.sh | 3 +- .github/scripts/install-platformio-esp32.sh | 54 ++-- .github/scripts/on-pages.sh | 69 +++-- .github/scripts/on-push.sh | 82 +++--- .github/scripts/on-release.sh | 215 ++++++++++------ .github/scripts/set_push_chunks.sh | 48 ++-- .github/scripts/sketch_utils.sh | 215 +++++++++------- .github/scripts/tests_build.sh | 33 ++- .github/scripts/tests_matrix.sh | 20 +- .github/scripts/tests_run.sh | 243 +++++++++--------- .github/scripts/update-version.sh | 24 +- .github/scripts/upload_py_tools.sh | 3 +- .pre-commit-config.yaml | 30 +++ .shellcheckrc | 11 + docs/en/contributing.rst | 10 + docs/utils.sh | 27 +- tools/add_lib.sh | 166 ++++++------ 22 files changed, 752 insertions(+), 585 deletions(-) create mode 100644 .shellcheckrc diff --git a/.github/scripts/check-cmakelists.sh b/.github/scripts/check-cmakelists.sh index 98d9722ad83..7d4f6b4e2d9 100755 --- a/.github/scripts/check-cmakelists.sh +++ b/.github/scripts/check-cmakelists.sh @@ -1,4 +1,5 @@ #!/bin/bash + # # This script is used in the CI workflow. It checks all non-examples source files in libraries/ and cores/ are listed in # CMakeLists.txt for the cmake-based IDF component @@ -12,10 +13,10 @@ set -e git submodule update --init --recursive # find all source files in repo -REPO_SRCS=`find cores/esp32/ libraries/ -name 'examples' -prune -o -name '*.c' -print -o -name '*.cpp' -print | sort` +REPO_SRCS=$(find cores/esp32/ libraries/ -name 'examples' -prune -o -name '*.c' -print -o -name '*.cpp' -print | sort) # find all source files named in CMakeLists.txt COMPONENT_SRCS -CMAKE_SRCS=`cmake --trace-expand -P CMakeLists.txt 2>&1 | grep set\(srcs | cut -d'(' -f3 | sed 's/ )//' | sed 's/srcs //' | tr ' ;' '\n' | sort` +CMAKE_SRCS=$(cmake --trace-expand -P CMakeLists.txt 2>&1 | grep set\(srcs | cut -d'(' -f3 | sed 's/ )//' | sed 's/srcs //' | tr ' ;' '\n' | sort) if ! diff -u0 --label "Repo Files" --label "srcs" <(echo "$REPO_SRCS") <(echo "$CMAKE_SRCS"); then echo "Source files in repo (-) and source files in CMakeLists.txt (+) don't match" diff --git a/.github/scripts/find_all_boards.sh b/.github/scripts/find_all_boards.sh index b474a49bc2e..67b46661ca5 100755 --- a/.github/scripts/find_all_boards.sh +++ b/.github/scripts/find_all_boards.sh @@ -3,7 +3,9 @@ # Get all boards boards_array=() -for line in `grep '.tarch=' boards.txt`; do +boards_list=$(grep '.tarch=' boards.txt) + +while read -r line; do board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1) # skip esp32c2 as we dont build libs for it if [ "$board_name" == "esp32c2" ]; then @@ -12,29 +14,26 @@ for line in `grep '.tarch=' boards.txt`; do fi boards_array+=("espressif:esp32:$board_name") echo "Added 'espressif:esp32:$board_name' to array" -done +done <<< "$boards_list" # Create JSON like string with all boards found and pass it to env variable board_count=${#boards_array[@]} echo "Boards found: $board_count" -echo "BOARD-COUNT=$board_count" >> $GITHUB_ENV +echo "BOARD-COUNT=$board_count" >> "$GITHUB_ENV" -if [ $board_count -gt 0 ] -then +if [ "$board_count" -gt 0 ]; then json_matrix='[' - for board in ${boards_array[@]} - do + for board in "${boards_array[@]}"; do json_matrix+='"'$board'"' - if [ $board_count -gt 1 ] - then + if [ "$board_count" -gt 1 ]; then json_matrix+="," fi - board_count=$(($board_count - 1)) + board_count=$((board_count - 1)) done json_matrix+=']' - echo $json_matrix - echo "FQBNS=${json_matrix}" >> $GITHUB_ENV + echo "$json_matrix" + echo "FQBNS=${json_matrix}" >> "$GITHUB_ENV" else - echo "FQBNS=" >> $GITHUB_ENV + echo "FQBNS=" >> "$GITHUB_ENV" fi diff --git a/.github/scripts/find_new_boards.sh b/.github/scripts/find_new_boards.sh index 706676b4a4c..4482aa2b1da 100755 --- a/.github/scripts/find_new_boards.sh +++ b/.github/scripts/find_new_boards.sh @@ -5,14 +5,13 @@ owner_repository=$1 base_ref=$2 # Download the boards.txt file from the base branch -curl -L -o boards_base.txt https://raw.githubusercontent.com/$owner_repository/$base_ref/boards.txt +curl -L -o boards_base.txt https://raw.githubusercontent.com/"$owner_repository"/"$base_ref"/boards.txt # Compare boards.txt file in the repo with the modified file from PR diff=$(diff -u boards_base.txt boards.txt) # Check if the diff is empty -if [ -z "$diff" ] -then +if [ -z "$diff" ]; then echo "No changes in boards.txt file" echo "FQBNS=" exit 0 @@ -21,7 +20,7 @@ fi # Extract added or modified lines (lines starting with '+' or '-') modified_lines=$(echo "$diff" | grep -E '^[+-][^+-]') -# Print the modified lines for debugging +# Print the modified lines for debugging echo "Modified lines:" echo "$modified_lines" @@ -29,15 +28,12 @@ boards_array=() previous_board="" # Extract board names from the modified lines, and add them to the boards_array -while read -r line -do +while read -r line; do board_name=$(echo "$line" | cut -d '.' -f1 | cut -d '#' -f1) # remove + or - from the board name at the beginning - board_name=$(echo "$board_name" | sed 's/^[+-]//') - if [ "$board_name" != "" ] && [ "$board_name" != "+" ] && [ "$board_name" != "-" ] && [ "$board_name" != "esp32_family" ] - then - if [ "$board_name" != "$previous_board" ] - then + board_name=${board_name#[-+]} + if [ "$board_name" != "" ] && [ "$board_name" != "+" ] && [ "$board_name" != "-" ] && [ "$board_name" != "esp32_family" ]; then + if [ "$board_name" != "$previous_board" ]; then boards_array+=("espressif:esp32:$board_name") previous_board="$board_name" echo "Added 'espressif:esp32:$board_name' to array" @@ -48,22 +44,19 @@ done <<< "$modified_lines" # Create JSON like string with all boards found and pass it to env variable board_count=${#boards_array[@]} -if [ $board_count -gt 0 ] -then +if [ "$board_count" -gt 0 ]; then json_matrix='{"fqbn": [' - for board in ${boards_array[@]} - do + for board in "${boards_array[@]}"; do json_matrix+='"'$board'"' - if [ $board_count -gt 1 ] - then + if [ "$board_count" -gt 1 ]; then json_matrix+="," fi - board_count=$(($board_count - 1)) + board_count=$((board_count - 1)) done json_matrix+=']}' - echo $json_matrix - echo "FQBNS=${json_matrix}" >> $GITHUB_ENV + echo "$json_matrix" + echo "FQBNS=${json_matrix}" >> "$GITHUB_ENV" else - echo "FQBNS=" >> $GITHUB_ENV -fi \ No newline at end of file + echo "FQBNS=" >> "$GITHUB_ENV" +fi diff --git a/.github/scripts/install-arduino-cli.sh b/.github/scripts/install-arduino-cli.sh index 533b39c7ddd..bb7f544e752 100755 --- a/.github/scripts/install-arduino-cli.sh +++ b/.github/scripts/install-arduino-cli.sh @@ -1,6 +1,6 @@ #!/bin/bash -OSBITS=`uname -m` +OSBITS=$(uname -m) if [[ "$OSTYPE" == "linux"* ]]; then export OS_IS_LINUX="1" if [[ "$OSBITS" == "i686" ]]; then @@ -49,4 +49,3 @@ if [ ! -d "$ARDUINO_IDE_PATH" ] || [ ! -f "$ARDUINO_IDE_PATH/arduino-cli" ]; the curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR="$ARDUINO_IDE_PATH" sh fi fi - diff --git a/.github/scripts/install-arduino-core-esp32.sh b/.github/scripts/install-arduino-core-esp32.sh index fe50c909198..e0071a0eb83 100755 --- a/.github/scripts/install-arduino-core-esp32.sh +++ b/.github/scripts/install-arduino-core-esp32.sh @@ -5,7 +5,7 @@ if [ ! -d "$ARDUINO_ESP32_PATH" ]; then echo "Installing ESP32 Arduino Core ..." script_init_path="$PWD" mkdir -p "$ARDUINO_USR_PATH/hardware/espressif" - cd "$ARDUINO_USR_PATH/hardware/espressif" + cd "$ARDUINO_USR_PATH/hardware/espressif" || exit echo "Installing Python Serial ..." pip install pyserial > /dev/null @@ -15,25 +15,25 @@ if [ ! -d "$ARDUINO_ESP32_PATH" ]; then pip install requests > /dev/null fi - if [ ! -z "$GITHUB_REPOSITORY" ]; then + if [ -n "$GITHUB_REPOSITORY" ]; then echo "Linking Core..." - ln -s $GITHUB_WORKSPACE esp32 + ln -s "$GITHUB_WORKSPACE" esp32 else echo "Cloning Core Repository..." git clone https://github.com/espressif/arduino-esp32.git esp32 > /dev/null 2>&1 fi #echo "Updating Submodules ..." - cd esp32 + cd esp32 || exit #git submodule update --init --recursive > /dev/null 2>&1 echo "Installing Platform Tools ..." if [ "$OS_IS_WINDOWS" == "1" ]; then - cd tools && ./get.exe + cd tools && ./get.exe else - cd tools && python get.py + cd tools && python get.py fi - cd $script_init_path + cd "$script_init_path" || exit echo "ESP32 Arduino has been installed in '$ARDUINO_ESP32_PATH'" echo "" diff --git a/.github/scripts/install-arduino-ide.sh b/.github/scripts/install-arduino-ide.sh index 7fd95797834..5b3bcb1791e 100755 --- a/.github/scripts/install-arduino-ide.sh +++ b/.github/scripts/install-arduino-ide.sh @@ -4,7 +4,7 @@ #OSTYPE: 'msys', ARCH: 'x86_64' => win32 #OSTYPE: 'darwin18', ARCH: 'i386' => macos -OSBITS=`uname -m` +OSBITS=$(uname -m) if [[ "$OSTYPE" == "linux"* ]]; then export OS_IS_LINUX="1" ARCHIVE_FORMAT="tar.xz" @@ -77,4 +77,3 @@ if [ ! -d "$ARDUINO_IDE_PATH" ]; then echo "Arduino IDE Installed in '$ARDUINO_IDE_PATH'" echo "" fi - diff --git a/.github/scripts/install-platformio-esp32.sh b/.github/scripts/install-platformio-esp32.sh index 80c668bdc0e..8cd6552eb80 100755 --- a/.github/scripts/install-platformio-esp32.sh +++ b/.github/scripts/install-platformio-esp32.sh @@ -52,7 +52,7 @@ python -c "$replace_script" if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then echo "Linking Core..." - ln -s $GITHUB_WORKSPACE "$PLATFORMIO_ESP32_PATH" + ln -s "$GITHUB_WORKSPACE" "$PLATFORMIO_ESP32_PATH" else echo "Cloning Core Repository ..." git clone --recursive https://github.com/espressif/arduino-esp32.git "$PLATFORMIO_ESP32_PATH" > /dev/null 2>&1 @@ -61,7 +61,7 @@ fi echo "PlatformIO for ESP32 has been installed" echo "" -function build_pio_sketch(){ # build_pio_sketch +function build_pio_sketch { # build_pio_sketch if [ "$#" -lt 3 ]; then echo "ERROR: Illegal number of parameters" echo "USAGE: build_pio_sketch " @@ -71,13 +71,15 @@ function build_pio_sketch(){ # build_pio_sketch local board="$1" local options="$2" local sketch="$3" - local sketch_dir=$(dirname "$sketch") + local sketch_dir + + sketch_dir=$(dirname "$sketch") echo "" - echo "Compiling '"$(basename "$sketch")"' ..." + echo "Compiling '$(basename "$sketch")' ..." python -m platformio ci --board "$board" "$sketch_dir" --project-option="$options" } -function build_pio_sketches(){ # build_pio_sketches +function build_pio_sketches { # build_pio_sketches if [ "$#" -lt 3 ]; then echo "ERROR: Illegal number of parameters" echo "USAGE: build_pio_sketches [ ]" @@ -108,27 +110,34 @@ function build_pio_sketches(){ # build_pio_sketches -function git_remove_from_pages(){ +function git_remove_from_pages { local path=$1 - local info=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages"` - local type=`echo "$info" | jq -r '.type'` - if [ ! $type == "file" ]; then - if [ ! $type == "null" ]; then + local info + local type + local sha + local message + + info=$(curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages") + type=$(echo "$info" | jq -r '.type') + + if [ ! "$type" == "file" ]; then + if [ ! "$type" == "null" ]; then echo "Wrong type '$type'" else echo "File is not on Pages" fi return 0 fi - local sha=`echo "$info" | jq -r '.sha'` - local message="Deleting "$(basename $path) + + sha=$(echo "$info" | jq -r '.sha') + message="Deleting "$(basename "$path") local json="{\"branch\":\"gh-pages\",\"message\":\"$message\",\"sha\":\"$sha\"}" echo "$json" | curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" -X DELETE --data @- "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path" } -function git_upload_to_pages(){ +function git_upload_to_pages { local path=$1 local src=$2 @@ -42,41 +50,50 @@ function git_upload_to_pages(){ return 1 fi - local info=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages"` - local type=`echo "$info" | jq -r '.type'` - local message=$(basename $path) + local info + local type + local message local sha="" local content="" - if [ $type == "file" ]; then - sha=`echo "$info" | jq -r '.sha'` + info=$(curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages") + type=$(echo "$info" | jq -r '.type') + message=$(basename "$path") + + if [ "$type" == "file" ]; then + sha=$(echo "$info" | jq -r '.sha') sha=",\"sha\":\"$sha\"" message="Updating $message" - elif [ ! $type == "null" ]; then + elif [ ! "$type" == "null" ]; then >&2 echo "Wrong type '$type'" return 1 else message="Creating $message" fi - content=`base64 -i "$src"` + content=$(base64 -i "$src") data="{\"branch\":\"gh-pages\",\"message\":\"$message\",\"content\":\"$content\"$sha}" echo "$data" | curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" -X PUT --data @- "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path" } -function git_safe_upload_to_pages(){ +function git_safe_upload_to_pages { local path=$1 local file="$2" - local name=$(basename "$file") - local size=`get_file_size "$file"` - local upload_res=`git_upload_to_pages "$path" "$file"` - if [ $? -ne 0 ]; then + local name + local size + local upload_res + + name=$(basename "$file") + size=$(get_file_size "$file") + + if ! upload_res=$(git_upload_to_pages "$path" "$file"); then >&2 echo "ERROR: Failed to upload '$name' ($?)" return 1 fi - up_size=`echo "$upload_res" | jq -r '.content.size'` - if [ $up_size -ne $size ]; then + + up_size=$(echo "$upload_res" | jq -r '.content.size') + if [ "$up_size" -ne "$size" ]; then >&2 echo "ERROR: Uploaded size does not match! $up_size != $size" #git_delete_asset return 1 diff --git a/.github/scripts/on-push.sh b/.github/scripts/on-push.sh index 73d9eeee398..5158df3cc9b 100755 --- a/.github/scripts/on-push.sh +++ b/.github/scripts/on-push.sh @@ -4,43 +4,44 @@ set -e export ARDUINO_BUILD_DIR="$HOME/.arduino/build.tmp" -function build(){ +function build { local target=$1 local chunk_index=$2 local chunks_cnt=$3 local build_log=$4 local sketches_file=$5 - shift; shift; shift; shift; shift; - local sketches=$* + shift 5 + local sketches=("$@") local BUILD_SKETCH="${SCRIPTS_DIR}/sketch_utils.sh build" local BUILD_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh chunk_build" - local args="-ai $ARDUINO_IDE_PATH -au $ARDUINO_USR_PATH" - - args+=" -t $target" + local args=("-ai" "$ARDUINO_IDE_PATH" "-au" "$ARDUINO_USR_PATH" "-t" "$target") if [ "$OS_IS_LINUX" == "1" ]; then - args+=" -p $ARDUINO_ESP32_PATH/libraries" - args+=" -i $chunk_index -m $chunks_cnt" + args+=("-p" "$ARDUINO_ESP32_PATH/libraries" "-i" "$chunk_index" "-m" "$chunks_cnt") if [ -n "$sketches_file" ]; then - args+=" -f $sketches_file" + args+=("-f" "$sketches_file") fi - if [ $build_log -eq 1 ]; then - args+=" -l $build_log" + if [ "$build_log" -eq 1 ]; then + args+=("-l" "$build_log") fi - ${BUILD_SKETCHES} ${args} + ${BUILD_SKETCHES} "${args[@]}" else - for sketch in ${sketches}; do - local sargs="$args -s $(dirname $sketch)" + for sketch in "${sketches[@]}"; do + local sargs=("${args[@]}") + local ctags_version + local preprocessor_version + sargs+=("-s" "$(dirname "$sketch")") if [ "$OS_IS_WINDOWS" == "1" ] && [ -d "$ARDUINO_IDE_PATH/tools-builder" ]; then - local ctags_version=`ls "$ARDUINO_IDE_PATH/tools-builder/ctags/"` - local preprocessor_version=`ls "$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/"` - win_opts="-prefs=runtime.tools.ctags.path=$ARDUINO_IDE_PATH/tools-builder/ctags/$ctags_version - -prefs=runtime.tools.arduino-preprocessor.path=$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/$preprocessor_version" - sargs+=" ${win_opts}" + ctags_version=$(ls "$ARDUINO_IDE_PATH/tools-builder/ctags/") + preprocessor_version=$(ls "$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/") + sargs+=( + "-prefs=runtime.tools.ctags.path=$ARDUINO_IDE_PATH/tools-builder/ctags/$ctags_version" + "-prefs=runtime.tools.arduino-preprocessor.path=$ARDUINO_IDE_PATH/tools-builder/arduino-preprocessor/$preprocessor_version" + ) fi - ${BUILD_SKETCH} ${sargs} + ${BUILD_SKETCH} "${sargs[@]}" done fi } @@ -73,40 +74,40 @@ fi SCRIPTS_DIR="./.github/scripts" if [ "$BUILD_PIO" -eq 0 ]; then - source ${SCRIPTS_DIR}/install-arduino-cli.sh - source ${SCRIPTS_DIR}/install-arduino-core-esp32.sh - - SKETCHES_ESP32="\ - $ARDUINO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino\ - $ARDUINO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino\ - $ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino\ - $ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino\ - " + source "${SCRIPTS_DIR}/install-arduino-cli.sh" + source "${SCRIPTS_DIR}/install-arduino-core-esp32.sh" + + SKETCHES_ESP32=( + "$ARDUINO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino" + "$ARDUINO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino" + "$ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" + "$ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino" + ) #create sizes_file sizes_file="$GITHUB_WORKSPACE/cli_compile_$CHUNK_INDEX.json" if [ "$BUILD_LOG" -eq 1 ]; then #create sizes_file and echo start of JSON array with "boards" key - echo "{\"boards\": [" > $sizes_file + echo "{\"boards\": [" > "$sizes_file" fi #build sketches for different targets - build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" - build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "$SKETCHES_ESP32" + build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" if [ "$BUILD_LOG" -eq 1 ]; then #remove last comma from the last JSON object sed -i '$ s/,$//' "$sizes_file" #echo end of JSON array - echo "]}" >> $sizes_file + echo "]}" >> "$sizes_file" fi else - source ${SCRIPTS_DIR}/install-platformio-esp32.sh + source "${SCRIPTS_DIR}/install-platformio-esp32.sh" # PlatformIO ESP32 Test BOARD="esp32dev" OPTIONS="board_build.partitions = huge_app.csv" @@ -117,8 +118,7 @@ else build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" # Basic sanity testing for other series - for board in "esp32-c3-devkitm-1" "esp32-s2-saola-1" "esp32-s3-devkitc-1" - do + for board in "esp32-c3-devkitm-1" "esp32-s2-saola-1" "esp32-s3-devkitc-1"; do python -m platformio ci --board "$board" "$PLATFORMIO_ESP32_PATH/libraries/WiFi/examples/WiFiClient" --project-option="board_build.partitions = huge_app.csv" done diff --git a/.github/scripts/on-release.sh b/.github/scripts/on-release.sh index bbb46fa5563..119c66e1eab 100755 --- a/.github/scripts/on-release.sh +++ b/.github/scripts/on-release.sh @@ -1,29 +1,34 @@ #!/bin/bash +# Disable shellcheck warning about using 'cat' to read a file. +# Disable shellcheck warning about using individual redirections for each command. +# Disable shellcheck warning about $? uses. +# shellcheck disable=SC2002,SC2129,SC2181,SC2319 -if [ ! $GITHUB_EVENT_NAME == "release" ]; then +if [ ! "$GITHUB_EVENT_NAME" == "release" ]; then echo "Wrong event '$GITHUB_EVENT_NAME'!" exit 1 fi -EVENT_JSON=`cat $GITHUB_EVENT_PATH` +EVENT_JSON=$(cat "$GITHUB_EVENT_PATH") -action=`echo $EVENT_JSON | jq -r '.action'` -if [ ! $action == "published" ]; then +action=$(echo "$EVENT_JSON" | jq -r '.action') +if [ ! "$action" == "published" ]; then echo "Wrong action '$action'. Exiting now..." exit 0 fi -draft=`echo $EVENT_JSON | jq -r '.release.draft'` -if [ $draft == "true" ]; then +draft=$(echo "$EVENT_JSON" | jq -r '.release.draft') +if [ "$draft" == "true" ]; then echo "It's a draft release. Exiting now..." exit 0 fi -RELEASE_PRE=`echo $EVENT_JSON | jq -r '.release.prerelease'` -RELEASE_TAG=`echo $EVENT_JSON | jq -r '.release.tag_name'` -RELEASE_BRANCH=`echo $EVENT_JSON | jq -r '.release.target_commitish'` -RELEASE_ID=`echo $EVENT_JSON | jq -r '.release.id'` +RELEASE_PRE=$(echo "$EVENT_JSON" | jq -r '.release.prerelease') +RELEASE_TAG=$(echo "$EVENT_JSON" | jq -r '.release.tag_name') +RELEASE_BRANCH=$(echo "$EVENT_JSON" | jq -r '.release.target_commitish') +RELEASE_ID=$(echo "$EVENT_JSON" | jq -r '.release.id') +SCRIPTS_DIR="./.github/scripts" OUTPUT_DIR="$GITHUB_WORKSPACE/build" PACKAGE_NAME="esp32-$RELEASE_TAG" PACKAGE_JSON_MERGE="$GITHUB_WORKSPACE/.github/scripts/merge_packages.py" @@ -36,17 +41,23 @@ echo "Action: $action, Branch: $RELEASE_BRANCH, ID: $RELEASE_ID" echo "Tag: $RELEASE_TAG, Draft: $draft, Pre-Release: $RELEASE_PRE" # Try extracting something like a JSON with a "boards" array/element and "vendor" fields -BOARDS=`echo $RELEASE_BODY | grep -Pzo '(?s){.*}' | jq -r '.boards[]? // .boards? // empty' | xargs echo -n 2>/dev/null` -VENDOR=`echo $RELEASE_BODY | grep -Pzo '(?s){.*}' | jq -r '.vendor? // empty' | xargs echo -n 2>/dev/null` -if ! [ -z "${BOARDS}" ]; then echo "Releasing board(s): $BOARDS" ; fi -if ! [ -z "${VENDOR}" ]; then echo "Setting packager: $VENDOR" ; fi +BOARDS=$(echo "$RELEASE_BODY" | grep -Pzo '(?s){.*}' | jq -r '.boards[]? // .boards? // empty' | xargs echo -n 2>/dev/null) +VENDOR=$(echo "$RELEASE_BODY" | grep -Pzo '(?s){.*}' | jq -r '.vendor? // empty' | xargs echo -n 2>/dev/null) -function get_file_size(){ +if [ -n "${BOARDS}" ]; then + echo "Releasing board(s): $BOARDS" +fi + +if [ -n "${VENDOR}" ]; then + echo "Setting packager: $VENDOR" +fi + +function get_file_size { local file="$1" if [[ "$OSTYPE" == "darwin"* ]]; then - eval `stat -s "$file"` + eval "$(stat -s "$file")" local res="$?" - echo "$st_size" + echo "${st_size:?}" return $res else stat --printf="%s" "$file" @@ -54,23 +65,29 @@ function get_file_size(){ fi } -function git_upload_asset(){ - local name=$(basename "$1") +function git_upload_asset { + local name + name=$(basename "$1") # local mime=$(file -b --mime-type "$1") curl -k -X POST -sH "Authorization: token $GITHUB_TOKEN" -H "Content-Type: application/octet-stream" --data-binary @"$1" "https://uploads.github.com/repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets?name=$name" } -function git_safe_upload_asset(){ +function git_safe_upload_asset { local file="$1" - local name=$(basename "$file") - local size=`get_file_size "$file"` - local upload_res=`git_upload_asset "$file"` - if [ $? -ne 0 ]; then + local name + local size + local upload_res + + name=$(basename "$file") + size=$(get_file_size "$file") + + if ! upload_res=$(git_upload_asset "$file"); then >&2 echo "ERROR: Failed to upload '$name' ($?)" return 1 fi - up_size=`echo "$upload_res" | jq -r '.size'` - if [ $up_size -ne $size ]; then + + up_size=$(echo "$upload_res" | jq -r '.size') + if [ "$up_size" -ne "$size" ]; then >&2 echo "ERROR: Uploaded size does not match! $up_size != $size" #git_delete_asset return 1 @@ -79,7 +96,7 @@ function git_safe_upload_asset(){ return $? } -function git_upload_to_pages(){ +function git_upload_to_pages { local path=$1 local src=$2 @@ -88,41 +105,50 @@ function git_upload_to_pages(){ return 1 fi - local info=`curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages"` - local type=`echo "$info" | jq -r '.type'` - local message=$(basename $path) + local info + local type + local message local sha="" local content="" - if [ $type == "file" ]; then - sha=`echo "$info" | jq -r '.sha'` + info=$(curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.object+json" -X GET "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path?ref=gh-pages") + type=$(echo "$info" | jq -r '.type') + message=$(basename "$path") + + if [ "$type" == "file" ]; then + sha=$(echo "$info" | jq -r '.sha') sha=",\"sha\":\"$sha\"" message="Updating $message" - elif [ ! $type == "null" ]; then + elif [ ! "$type" == "null" ]; then >&2 echo "Wrong type '$type'" return 1 else message="Creating $message" fi - content=`base64 -i "$src"` + content=$(base64 -i "$src") data="{\"branch\":\"gh-pages\",\"message\":\"$message\",\"content\":\"$content\"$sha}" echo "$data" | curl -s -k -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw+json" -X PUT --data @- "https://api.github.com/repos/$GITHUB_REPOSITORY/contents/$path" } -function git_safe_upload_to_pages(){ +function git_safe_upload_to_pages { local path=$1 local file="$2" - local name=$(basename "$file") - local size=`get_file_size "$file"` - local upload_res=`git_upload_to_pages "$path" "$file"` - if [ $? -ne 0 ]; then + local name + local size + local upload_res + + name=$(basename "$file") + size=$(get_file_size "$file") + + if ! upload_res=$(git_upload_to_pages "$path" "$file"); then >&2 echo "ERROR: Failed to upload '$name' ($?)" return 1 fi - up_size=`echo "$upload_res" | jq -r '.content.size'` - if [ $up_size -ne $size ]; then + + up_size=$(echo "$upload_res" | jq -r '.content.size') + if [ "$up_size" -ne "$size" ]; then >&2 echo "ERROR: Uploaded size does not match! $up_size != $size" #git_delete_asset return 1 @@ -131,15 +157,20 @@ function git_safe_upload_to_pages(){ return $? } -function merge_package_json(){ +function merge_package_json { local jsonLink=$1 local jsonOut=$2 local old_json=$OUTPUT_DIR/oldJson.json local merged_json=$OUTPUT_DIR/mergedJson.json + local error_code=0 echo "Downloading previous JSON $jsonLink ..." curl -L -o "$old_json" "https://github.com/$GITHUB_REPOSITORY/releases/download/$jsonLink?access_token=$GITHUB_TOKEN" 2>/dev/null - if [ $? -ne 0 ]; then echo "ERROR: Download Failed! $?"; exit 1; fi + error_code=$? + if [ $error_code -ne 0 ]; then + echo "ERROR: Download Failed! $error_code" + exit 1 + fi echo "Creating new JSON ..." set +e @@ -147,7 +178,7 @@ function merge_package_json(){ set -e set -v - if [ ! -s $merged_json ]; then + if [ ! -s "$merged_json" ]; then rm -f "$merged_json" echo "Nothing to merge" else @@ -188,9 +219,10 @@ else done # Copy only relevant variant files mkdir "$PKG_DIR/variants/" - for variant in `cat ${PKG_DIR}/boards.txt | grep "\.variant=" | cut -d= -f2` ; do + board_list=$(cat "${PKG_DIR}"/boards.txt | grep "\.variant=" | cut -d= -f2) + while IFS= read -r variant; do cp -Rf "$GITHUB_WORKSPACE/variants/${variant}" "$PKG_DIR/variants/" - done + done <<< "$board_list" fi cp -f "$GITHUB_WORKSPACE/CMakeLists.txt" "$PKG_DIR/" cp -f "$GITHUB_WORKSPACE/idf_component.yml" "$PKG_DIR/" @@ -233,34 +265,36 @@ sed "s/{runtime\.platform\.path}.tools.xtensa-esp-elf/\\{runtime.tools.$X32TC_NE sed 's/{runtime\.platform\.path}.tools.riscv32-esp-elf-gdb/\{runtime.tools.riscv32-esp-elf-gdb.path\}/g' | \ sed "s/{runtime\.platform\.path}.tools.riscv32-esp-elf/\\{runtime.tools.$RVTC_NEW_NAME.path\\}/g" | \ sed 's/{runtime\.platform\.path}.tools.esptool/\{runtime.tools.esptool_py.path\}/g' | \ -sed 's/{runtime\.platform\.path}.tools.openocd-esp32/\{runtime.tools.openocd-esp32.path\}/g' \ - > "$PKG_DIR/platform.txt" +sed 's/{runtime\.platform\.path}.tools.openocd-esp32/\{runtime.tools.openocd-esp32.path\}/g' > "$PKG_DIR/platform.txt" -if ! [ -z ${VENDOR} ]; then +if [ -n "${VENDOR}" ]; then # Append vendor name to platform.txt to create a separate section sed -i "/^name=.*/s/$/ ($VENDOR)/" "$PKG_DIR/platform.txt" fi # Add header with version information echo "Generating core_version.h ..." -ver_define=`echo $RELEASE_TAG | tr "[:lower:].\055" "[:upper:]_"` -ver_hex=`git -C "$GITHUB_WORKSPACE" rev-parse --short=8 HEAD 2>/dev/null` -echo \#define ARDUINO_ESP32_GIT_VER 0x$ver_hex > "$PKG_DIR/cores/esp32/core_version.h" -echo \#define ARDUINO_ESP32_GIT_DESC `git -C "$GITHUB_WORKSPACE" describe --tags 2>/dev/null` >> "$PKG_DIR/cores/esp32/core_version.h" -echo \#define ARDUINO_ESP32_RELEASE_$ver_define >> "$PKG_DIR/cores/esp32/core_version.h" -echo \#define ARDUINO_ESP32_RELEASE \"$ver_define\" >> "$PKG_DIR/cores/esp32/core_version.h" +ver_define=$(echo "$RELEASE_TAG" | tr "[:lower:].\055" "[:upper:]_") +ver_hex=$(git -C "$GITHUB_WORKSPACE" rev-parse --short=8 HEAD 2>/dev/null) +echo \#define ARDUINO_ESP32_GIT_VER 0x"$ver_hex" > "$PKG_DIR/cores/esp32/core_version.h" +echo \#define ARDUINO_ESP32_GIT_DESC "$(git -C "$GITHUB_WORKSPACE" describe --tags 2>/dev/null)" >> "$PKG_DIR/cores/esp32/core_version.h" +echo \#define ARDUINO_ESP32_RELEASE_"$ver_define" >> "$PKG_DIR/cores/esp32/core_version.h" +echo \#define ARDUINO_ESP32_RELEASE \""$ver_define"\" >> "$PKG_DIR/cores/esp32/core_version.h" # Compress package folder echo "Creating ZIP ..." pushd "$OUTPUT_DIR" >/dev/null zip -qr "$PACKAGE_ZIP" "$PACKAGE_NAME" -if [ $? -ne 0 ]; then echo "ERROR: Failed to create $PACKAGE_ZIP ($?)"; exit 1; fi +if [ $? -ne 0 ]; then + echo "ERROR: Failed to create $PACKAGE_ZIP ($?)" + exit 1 +fi # Calculate SHA-256 echo "Calculating SHA sum ..." PACKAGE_PATH="$OUTPUT_DIR/$PACKAGE_ZIP" -PACKAGE_SHA=`shasum -a 256 "$PACKAGE_ZIP" | cut -f 1 -d ' '` -PACKAGE_SIZE=`get_file_size "$PACKAGE_ZIP"` +PACKAGE_SHA=$(shasum -a 256 "$PACKAGE_ZIP" | cut -f 1 -d ' ') +PACKAGE_SIZE=$(get_file_size "$PACKAGE_ZIP") popd >/dev/null rm -rf "$PKG_DIR" echo "'$PACKAGE_ZIP' Created! Size: $PACKAGE_SIZE, SHA-256: $PACKAGE_SHA" @@ -268,7 +302,7 @@ echo # Upload package to release page echo "Uploading package to release page ..." -PACKAGE_URL=`git_safe_upload_asset "$PACKAGE_PATH"` +PACKAGE_URL=$(git_safe_upload_asset "$PACKAGE_PATH") echo "Package Uploaded" echo "Download URL: $PACKAGE_URL" echo @@ -276,9 +310,9 @@ echo ## ## TEMP WORKAROUND FOR RV32 LONG PATH ON WINDOWS ## -RVTC_VERSION=`cat $PACKAGE_JSON_TEMPLATE | jq -r ".packages[0].platforms[0].toolsDependencies[] | select(.name == \"$RVTC_NAME\") | .version" | cut -d '_' -f 2` +RVTC_VERSION=$(cat "$PACKAGE_JSON_TEMPLATE" | jq -r ".packages[0].platforms[0].toolsDependencies[] | select(.name == \"$RVTC_NAME\") | .version" | cut -d '_' -f 2) # RVTC_VERSION=`date -j -f '%Y%m%d' "$RVTC_VERSION" '+%y%m'` # MacOS -RVTC_VERSION=`date -d "$RVTC_VERSION" '+%y%m'` +RVTC_VERSION=$(date -d "$RVTC_VERSION" '+%y%m') rvtc_jq_arg="\ (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$RVTC_NAME\")).version = \"$RVTC_VERSION\" |\ (.packages[0].platforms[0].toolsDependencies[] | select(.name==\"$RVTC_NAME\")).name = \"$RVTC_NEW_NAME\" |\ @@ -303,17 +337,20 @@ jq_arg=".packages[0].platforms[0].version = \"$RELEASE_TAG\" | \ .packages[0].platforms[0].checksum = \"SHA-256:$PACKAGE_SHA\"" # Generate package JSONs -echo "Genarating $PACKAGE_JSON_DEV ..." +echo "Generating $PACKAGE_JSON_DEV ..." cat "$PACKAGE_JSON_TEMPLATE" | jq "$jq_arg" > "$OUTPUT_DIR/$PACKAGE_JSON_DEV" if [ "$RELEASE_PRE" == "false" ]; then - echo "Genarating $PACKAGE_JSON_REL ..." + echo "Generating $PACKAGE_JSON_REL ..." cat "$PACKAGE_JSON_TEMPLATE" | jq "$jq_arg" > "$OUTPUT_DIR/$PACKAGE_JSON_REL" fi # Figure out the last release or pre-release echo "Getting previous releases ..." -releasesJson=`curl -sH "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/$GITHUB_REPOSITORY/releases" 2>/dev/null` -if [ $? -ne 0 ]; then echo "ERROR: Get Releases Failed! ($?)"; exit 1; fi +releasesJson=$(curl -sH "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/$GITHUB_REPOSITORY/releases" 2>/dev/null) +if [ $? -ne 0 ]; then + echo "ERROR: Get Releases Failed! ($?)" + exit 1 +fi set +e prev_release=$(echo "$releasesJson" | jq -e -r ". | map(select(.draft == false and .prerelease == false)) | sort_by(.published_at | - fromdateiso8601) | .[0].tag_name") @@ -333,13 +370,13 @@ echo "Previous (any)release: $prev_any_release" echo # Merge package JSONs with previous releases -if [ ! -z "$prev_any_release" ] && [ "$prev_any_release" != "null" ]; then +if [ -n "$prev_any_release" ] && [ "$prev_any_release" != "null" ]; then echo "Merging with JSON from $prev_any_release ..." merge_package_json "$prev_any_release/$PACKAGE_JSON_DEV" "$OUTPUT_DIR/$PACKAGE_JSON_DEV" fi if [ "$RELEASE_PRE" == "false" ]; then - if [ ! -z "$prev_release" ] && [ "$prev_release" != "null" ]; then + if [ -n "$prev_release" ] && [ "$prev_release" != "null" ]; then echo "Merging with JSON from $prev_release ..." merge_package_json "$prev_release/$PACKAGE_JSON_REL" "$OUTPUT_DIR/$PACKAGE_JSON_REL" fi @@ -349,21 +386,30 @@ fi echo "Installing arduino-cli ..." export PATH="/home/runner/bin:$PATH" -source ./.github/scripts/install-arduino-cli.sh +source "${SCRIPTS_DIR}/install-arduino-cli.sh" echo "Testing $PACKAGE_JSON_DEV install ..." echo "Installing esp32 ..." arduino-cli core install esp32:esp32 --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_DEV" -if [ $? -ne 0 ]; then echo "ERROR: Failed to install esp32 ($?)"; exit 1; fi +if [ $? -ne 0 ]; then + echo "ERROR: Failed to install esp32 ($?)" + exit 1 +fi echo "Compiling example ..." -arduino-cli compile --fqbn esp32:esp32:esp32 $GITHUB_WORKSPACE/libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino -if [ $? -ne 0 ]; then echo "ERROR: Failed to compile example ($?)"; exit 1; fi +arduino-cli compile --fqbn esp32:esp32:esp32 "$GITHUB_WORKSPACE"/libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino +if [ $? -ne 0 ]; then + echo "ERROR: Failed to compile example ($?)" + exit 1 +fi echo "Uninstalling esp32 ..." arduino-cli core uninstall esp32:esp32 -if [ $? -ne 0 ]; then echo "ERROR: Failed to uninstall esp32 ($?)"; exit 1; fi +if [ $? -ne 0 ]; then + echo "ERROR: Failed to uninstall esp32 ($?)" + exit 1 +fi echo "Test successful!" @@ -372,15 +418,24 @@ if [ "$RELEASE_PRE" == "false" ]; then echo "Installing esp32 ..." arduino-cli core install esp32:esp32 --additional-urls "file://$OUTPUT_DIR/$PACKAGE_JSON_REL" - if [ $? -ne 0 ]; then echo "ERROR: Failed to install esp32 ($?)"; exit 1; fi + if [ $? -ne 0 ]; then + echo "ERROR: Failed to install esp32 ($?)" + exit 1 + fi echo "Compiling example ..." - arduino-cli compile --fqbn esp32:esp32:esp32 $GITHUB_WORKSPACE/libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino - if [ $? -ne 0 ]; then echo "ERROR: Failed to compile example ($?)"; exit 1; fi + arduino-cli compile --fqbn esp32:esp32:esp32 "$GITHUB_WORKSPACE"/libraries/ESP32/examples/CI/CIBoardsTest/CIBoardsTest.ino + if [ $? -ne 0 ]; then + echo "ERROR: Failed to compile example ($?)" + exit 1 + fi echo "Uninstalling esp32 ..." arduino-cli core uninstall esp32:esp32 - if [ $? -ne 0 ]; then echo "ERROR: Failed to uninstall esp32 ($?)"; exit 1; fi + if [ $? -ne 0 ]; then + echo "ERROR: Failed to uninstall esp32 ($?)" + exit 1 + fi echo "Test successful!" fi @@ -388,13 +443,13 @@ fi # Upload package JSONs echo "Uploading $PACKAGE_JSON_DEV ..." -echo "Download URL: "`git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_DEV"` -echo "Pages URL: "`git_safe_upload_to_pages "$PACKAGE_JSON_DEV" "$OUTPUT_DIR/$PACKAGE_JSON_DEV"` +echo "Download URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_DEV")" +echo "Pages URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_DEV" "$OUTPUT_DIR/$PACKAGE_JSON_DEV")" echo if [ "$RELEASE_PRE" == "false" ]; then echo "Uploading $PACKAGE_JSON_REL ..." - echo "Download URL: "`git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_REL"` - echo "Pages URL: "`git_safe_upload_to_pages "$PACKAGE_JSON_REL" "$OUTPUT_DIR/$PACKAGE_JSON_REL"` + echo "Download URL: $(git_safe_upload_asset "$OUTPUT_DIR/$PACKAGE_JSON_REL")" + echo "Pages URL: $(git_safe_upload_to_pages "$PACKAGE_JSON_REL" "$OUTPUT_DIR/$PACKAGE_JSON_REL")" echo fi diff --git a/.github/scripts/set_push_chunks.sh b/.github/scripts/set_push_chunks.sh index 11a93a7159d..047cae6efd8 100644 --- a/.github/scripts/set_push_chunks.sh +++ b/.github/scripts/set_push_chunks.sh @@ -11,23 +11,23 @@ elif [[ $LIB_CHANGED == 'true' ]]; then echo "Libraries changed. Building only affected sketches." if [[ $NETWORKING_CHANGED == 'true' ]]; then echo "Networking libraries changed. Building networking related sketches." - networking_sketches="$(find libraries/WiFi -name *.ino) " - networking_sketches+="$(find libraries/Ethernet -name *.ino) " - networking_sketches+="$(find libraries/PPP -name *.ino) " - networking_sketches+="$(find libraries/NetworkClientSecure -name *.ino) " - networking_sketches+="$(find libraries/WebServer -name *.ino) " + networking_sketches="$(find libraries/WiFi -name '*.ino') " + networking_sketches+="$(find libraries/Ethernet -name '*.ino') " + networking_sketches+="$(find libraries/PPP -name '*.ino') " + networking_sketches+="$(find libraries/NetworkClientSecure -name '*.ino') " + networking_sketches+="$(find libraries/WebServer -name '*.ino') " fi if [[ $FS_CHANGED == 'true' ]]; then echo "FS libraries changed. Building FS related sketches." - fs_sketches="$(find libraries/SD -name *.ino) " - fs_sketches+="$(find libraries/SD_MMC -name *.ino) " - fs_sketches+="$(find libraries/SPIFFS -name *.ino) " - fs_sketches+="$(find libraries/LittleFS -name *.ino) " - fs_sketches+="$(find libraries/FFat -name *.ino) " + fs_sketches="$(find libraries/SD -name '*.ino') " + fs_sketches+="$(find libraries/SD_MMC -name '*.ino') " + fs_sketches+="$(find libraries/SPIFFS -name '*.ino') " + fs_sketches+="$(find libraries/LittleFS -name '*.ino') " + fs_sketches+="$(find libraries/FFat -name '*.ino') " fi sketches="$networking_sketches $fs_sketches" for file in $LIB_FILES; do - lib=$(echo $file | awk -F "/" '{print $1"/"$2}') + lib=$(echo "$file" | awk -F "/" '{print $1"/"$2}') if [[ "$file" == *.ino ]]; then # If file ends with .ino, add it to the list of sketches echo "Sketch found: $file" @@ -36,14 +36,14 @@ elif [[ $LIB_CHANGED == 'true' ]]; then # If file is inside the src directory, find all sketches in the lib/examples directory echo "Library src file found: $file" if [[ -d $lib/examples ]]; then - lib_sketches=$(find $lib/examples -name *.ino) + lib_sketches=$(find "$lib"/examples -name '*.ino') sketches+="$lib_sketches " echo "Library sketches: $lib_sketches" fi else # If file is in a example folder but it is not a sketch, find all sketches in the current directory echo "File in example folder found: $file" - sketch=$(find $(dirname $file) -name *.ino) + sketch=$(find "$(dirname "$file")" -name '*.ino') sketches+="$sketch " echo "Sketch in example folder: $sketch" fi @@ -53,9 +53,9 @@ fi if [[ -n $sketches ]]; then # Remove duplicates - sketches=$(echo $sketches | tr ' ' '\n' | sort | uniq) + sketches=$(echo "$sketches" | tr ' ' '\n' | sort | uniq) for sketch in $sketches; do - echo $sketch >> sketches_found.txt + echo "$sketch" >> sketches_found.txt chunks_count=$((chunks_count+1)) done echo "Number of sketches found: $chunks_count" @@ -69,15 +69,17 @@ if [[ -n $sketches ]]; then fi chunks='["0"' -for i in $(seq 1 $(( $chunks_count - 1 )) ); do +for i in $(seq 1 $(( chunks_count - 1 )) ); do chunks+=",\"$i\"" done chunks+="]" -echo "build_all=$build_all" >> $GITHUB_OUTPUT -echo "build_libraries=$BUILD_LIBRARIES" >> $GITHUB_OUTPUT -echo "build_static_sketches=$BUILD_STATIC_SKETCHES" >> $GITHUB_OUTPUT -echo "build_idf=$BUILD_IDF" >> $GITHUB_OUTPUT -echo "build_platformio=$BUILD_PLATFORMIO" >> $GITHUB_OUTPUT -echo "chunk_count=$chunks_count" >> $GITHUB_OUTPUT -echo "chunks=$chunks" >> $GITHUB_OUTPUT +{ + echo "build_all=$build_all" + echo "build_libraries=$BUILD_LIBRARIES" + echo "build_static_sketches=$BUILD_STATIC_SKETCHES" + echo "build_idf=$BUILD_IDF" + echo "build_platformio=$BUILD_PLATFORMIO" + echo "chunk_count=$chunks_count" + echo "chunks=$chunks" +} >> "$GITHUB_OUTPUT" diff --git a/.github/scripts/sketch_utils.sh b/.github/scripts/sketch_utils.sh index 385322f7dfc..3e6ceb675e9 100755 --- a/.github/scripts/sketch_utils.sh +++ b/.github/scripts/sketch_utils.sh @@ -8,10 +8,12 @@ else SDKCONFIG_DIR="tools/esp32-arduino-libs" fi -function check_requirements(){ # check_requirements +function check_requirements { # check_requirements local sketchdir=$1 local sdkconfig_path=$2 local has_requirements=1 + local requirements + local requirements_or if [ ! -f "$sdkconfig_path" ] || [ ! -f "$sketchdir/ci.json" ]; then echo "ERROR: sdkconfig or ci.json not found" 1>&2 @@ -19,10 +21,10 @@ function check_requirements(){ # check_requirements # CI will fail and the user will know that the sketch has a problem. else # Check if the sketch requires any configuration options (AND) - local requirements=$(jq -r '.requires[]? // empty' "$sketchdir/ci.json") + requirements=$(jq -r '.requires[]? // empty' "$sketchdir/ci.json") if [[ "$requirements" != "null" && "$requirements" != "" ]]; then for requirement in $requirements; do - requirement=$(echo $requirement | xargs) + requirement=$(echo "$requirement" | xargs) found_line=$(grep -E "^$requirement" "$sdkconfig_path") if [[ "$found_line" == "" ]]; then has_requirements=0 @@ -31,11 +33,11 @@ function check_requirements(){ # check_requirements fi # Check if the sketch requires any configuration options (OR) - local requirements_or=$(jq -r '.requires_any[]? // empty' "$sketchdir/ci.json") + requirements_or=$(jq -r '.requires_any[]? // empty' "$sketchdir/ci.json") if [[ "$requirements_or" != "null" && "$requirements_or" != "" ]]; then local found=false for requirement in $requirements_or; do - requirement=$(echo $requirement | xargs) + requirement=$(echo "$requirement" | xargs) found_line=$(grep -E "^$requirement" "$sdkconfig_path") if [[ "$found_line" != "" ]]; then found=true @@ -51,8 +53,8 @@ function check_requirements(){ # check_requirements echo $has_requirements } -function build_sketch(){ # build_sketch [extra-options] - while [ ! -z "$1" ]; do +function build_sketch { # build_sketch [extra-options] + while [ -n "$1" ]; do case "$1" in -ai ) shift @@ -97,10 +99,10 @@ function build_sketch(){ # build_sketch [ex shift done - xtra_opts=$* + xtra_opts=("$@") len=0 - if [ -z $sketchdir ]; then + if [ -z "$sketchdir" ]; then echo "ERROR: Sketch directory not provided" echo "$USAGE" exit 1 @@ -108,8 +110,8 @@ function build_sketch(){ # build_sketch [ex # No FQBN was passed, try to get it from other options - if [ -z $fqbn ]; then - if [ -z $target ]; then + if [ -z "$fqbn" ]; then + if [ -z "$target" ]; then echo "ERROR: Unspecified chip" echo "$USAGE" exit 1 @@ -120,25 +122,25 @@ function build_sketch(){ # build_sketch [ex # precedence. Note that the following logic also falls to the default # parameters if no arguments were passed and no file was found. - if [ -z $options ] && [ -f $sketchdir/ci.json ]; then + if [ -z "$options" ] && [ -f "$sketchdir"/ci.json ]; then # The config file could contain multiple FQBNs for one chip. If # that's the case we build one time for every FQBN. - len=`jq -r --arg target $target '.fqbn[$target] | length' $sketchdir/ci.json` - if [ $len -gt 0 ]; then - fqbn=`jq -r --arg target $target '.fqbn[$target] | sort' $sketchdir/ci.json` + len=$(jq -r --arg target "$target" '.fqbn[$target] | length' "$sketchdir"/ci.json) + if [ "$len" -gt 0 ]; then + fqbn=$(jq -r --arg target "$target" '.fqbn[$target] | sort' "$sketchdir"/ci.json) fi fi - if [ ! -z $options ] || [ $len -eq 0 ]; then + if [ -n "$options" ] || [ "$len" -eq 0 ]; then # Since we are passing options, we will end up with only one FQBN to # build. len=1 - if [ -f $sketchdir/ci.json ]; then - fqbn_append=`jq -r '.fqbn_append' $sketchdir/ci.json` - if [ $fqbn_append == "null" ]; then + if [ -f "$sketchdir"/ci.json ]; then + fqbn_append=$(jq -r '.fqbn_append' "$sketchdir"/ci.json) + if [ "$fqbn_append" == "null" ]; then fqbn_append="" fi fi @@ -189,6 +191,10 @@ function build_sketch(){ # build_sketch [ex [ -n "${options:-$esp32p4_opts}" ] && opt=":${options:-$esp32p4_opts}" fqbn="espressif:esp32:esp32p4$opt" ;; + *) + echo "ERROR: Invalid chip: $target" + exit 1 + ;; esac # Make it look like a JSON array. @@ -207,7 +213,7 @@ function build_sketch(){ # build_sketch [ex exit 1 fi - # The directory that will hold all the artifcats (the build directory) is + # The directory that will hold all the artifacts (the build directory) is # provided through: # 1. An env variable called ARDUINO_BUILD_DIR. # 2. Created at the sketch level as "build" in the case of a single @@ -215,17 +221,18 @@ function build_sketch(){ # build_sketch [ex # 3. Created at the sketch level as "buildX" where X is the number # of configuration built in case of a multiconfiguration test. - sketchname=$(basename $sketchdir) + sketchname=$(basename "$sketchdir") + local has_requirements - if [ -f $sketchdir/ci.json ]; then + if [ -f "$sketchdir"/ci.json ]; then # If the target is listed as false, skip the sketch. Otherwise, include it. - is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) + is_target=$(jq -r --arg target "$target" '.targets[$target]' "$sketchdir"/ci.json) if [[ "$is_target" == "false" ]]; then echo "Skipping $sketchname for target $target" exit 0 fi - local has_requirements=$(check_requirements "$sketchdir" "$SDKCONFIG_DIR/$target/sdkconfig") + has_requirements=$(check_requirements "$sketchdir" "$SDKCONFIG_DIR/$target/sdkconfig") if [ "$has_requirements" == "0" ]; then echo "Target $target does not meet the requirements for $sketchname. Skipping." exit 0 @@ -235,7 +242,7 @@ function build_sketch(){ # build_sketch [ex ARDUINO_CACHE_DIR="$HOME/.arduino/cache.tmp" if [ -n "$ARDUINO_BUILD_DIR" ]; then build_dir="$ARDUINO_BUILD_DIR" - elif [ $len -eq 1 ]; then + elif [ "$len" -eq 1 ]; then # build_dir="$sketchdir/build" build_dir="$HOME/.arduino/tests/$sketchname/build.tmp" fi @@ -244,51 +251,49 @@ function build_sketch(){ # build_sketch [ex sizes_file="$GITHUB_WORKSPACE/cli_compile_$chunk_index.json" mkdir -p "$ARDUINO_CACHE_DIR" - for i in `seq 0 $(($len - 1))` - do - if [ $len -ne 1 ]; then - # build_dir="$sketchdir/build$i" - build_dir="$HOME/.arduino/tests/$sketchname/build$i.tmp" + for i in $(seq 0 $((len - 1))); do + if [ "$len" -ne 1 ]; then + # build_dir="$sketchdir/build$i" + build_dir="$HOME/.arduino/tests/$sketchname/build$i.tmp" fi - rm -rf $build_dir - mkdir -p $build_dir + rm -rf "$build_dir" + mkdir -p "$build_dir" - currfqbn=`echo $fqbn | jq -r --argjson i $i '.[$i]'` + currfqbn=$(echo "$fqbn" | jq -r --argjson i "$i" '.[$i]') if [ -f "$ide_path/arduino-cli" ]; then echo "Building $sketchname with arduino-cli and FQBN=$currfqbn" - curroptions=`echo "$currfqbn" | cut -d':' -f4` - currfqbn=`echo "$currfqbn" | cut -d':' -f1-3` - $ide_path/arduino-cli compile \ + curroptions=$(echo "$currfqbn" | cut -d':' -f4) + currfqbn=$(echo "$currfqbn" | cut -d':' -f1-3) + "$ide_path"/arduino-cli compile \ --fqbn "$currfqbn" \ --board-options "$curroptions" \ --warnings "all" \ --build-property "compiler.warning_flags.all=-Wall -Werror=all -Wextra" \ - --build-cache-path "$ARDUINO_CACHE_DIR" \ --build-path "$build_dir" \ - $xtra_opts "${sketchdir}" \ - 2>&1 | tee $output_file + "${xtra_opts[@]}" "${sketchdir}" \ + 2>&1 | tee "$output_file" exit_status=${PIPESTATUS[0]} - if [ $exit_status -ne 0 ]; then + if [ "$exit_status" -ne 0 ]; then echo "ERROR: Compilation failed with error code $exit_status" - exit $exit_status + exit "$exit_status" fi - if [ $log_compilation ]; then + if [ -n "$log_compilation" ]; then #Extract the program storage space and dynamic memory usage in bytes and percentage in separate variables from the output, just the value without the string - flash_bytes=$(grep -oE 'Sketch uses ([0-9]+) bytes' $output_file | awk '{print $3}') - flash_percentage=$(grep -oE 'Sketch uses ([0-9]+) bytes \(([0-9]+)%\)' $output_file | awk '{print $5}' | tr -d '(%)') - ram_bytes=$(grep -oE 'Global variables use ([0-9]+) bytes' $output_file | awk '{print $4}') - ram_percentage=$(grep -oE 'Global variables use ([0-9]+) bytes \(([0-9]+)%\)' $output_file | awk '{print $6}' | tr -d '(%)') + flash_bytes=$(grep -oE 'Sketch uses ([0-9]+) bytes' "$output_file" | awk '{print $3}') + flash_percentage=$(grep -oE 'Sketch uses ([0-9]+) bytes \(([0-9]+)%\)' "$output_file" | awk '{print $5}' | tr -d '(%)') + ram_bytes=$(grep -oE 'Global variables use ([0-9]+) bytes' "$output_file" | awk '{print $4}') + ram_percentage=$(grep -oE 'Global variables use ([0-9]+) bytes \(([0-9]+)%\)' "$output_file" | awk '{print $6}' | tr -d '(%)') # Extract the directory path excluding the filename directory_path=$(dirname "$sketch") # Define the constant part constant_part="/home/runner/Arduino/hardware/espressif/esp32/libraries/" - # Extract the desired substring using sed - lib_sketch_name=$(echo "$directory_path" | sed "s|$constant_part||") + # Extract the desired substring + lib_sketch_name="${directory_path#"$constant_part"}" #append json file where key is fqbn, sketch name, sizes -> extracted values echo "{\"name\": \"$lib_sketch_name\", \"sizes\": [{ @@ -304,15 +309,15 @@ function build_sketch(){ # build_sketch [ex echo "Building $sketchname with arduino-builder and FQBN=$currfqbn" echo "Build path = $build_dir" - $ide_path/arduino-builder -compile -logger=human -core-api-version=10810 \ - -fqbn=\"$currfqbn\" \ + "$ide_path"/arduino-builder -compile -logger=human -core-api-version=10810 \ + -fqbn=\""$currfqbn"\" \ -warnings="all" \ -tools "$ide_path/tools-builder" \ -hardware "$user_path/hardware" \ -libraries "$user_path/libraries" \ -build-cache "$ARDUINO_CACHE_DIR" \ -build-path "$build_dir" \ - $xtra_opts "${sketchdir}/${sketchname}.ino" + "${xtra_opts[@]}" "${sketchdir}/${sketchname}.ino" exit_status=$? if [ $exit_status -ne 0 ]; then @@ -339,15 +344,16 @@ function build_sketch(){ # build_sketch [ex unset options } -function count_sketches(){ # count_sketches [target] [file] [ignore-requirements] +function count_sketches { # count_sketches [target] [file] [ignore-requirements] local path=$1 local target=$2 local ignore_requirements=$3 local file=$4 + local sketches if [ $# -lt 1 ]; then - echo "ERROR: Illegal number of parameters" - echo "USAGE: ${0} count [target]" + echo "ERROR: Illegal number of parameters" + echo "USAGE: ${0} count [target]" fi rm -rf sketches.txt @@ -357,42 +363,47 @@ function count_sketches(){ # count_sketches [target] [file] [ignore-requi fi if [ -f "$file" ]; then - local sketches=$(cat $file) + sketches=$(cat "$file") else - local sketches=$(find $path -name *.ino | sort) + sketches=$(find "$path" -name '*.ino' | sort) fi local sketchnum=0 for sketch in $sketches; do - local sketchdir=$(dirname $sketch) - local sketchdirname=$(basename $sketchdir) - local sketchname=$(basename $sketch) + local sketchdir + local sketchdirname + local sketchname + local has_requirements + + sketchdir=$(dirname "$sketch") + sketchdirname=$(basename "$sketchdir") + sketchname=$(basename "$sketch") + if [[ "$sketchdirname.ino" != "$sketchname" ]]; then continue elif [[ -n $target ]] && [[ -f $sketchdir/ci.json ]]; then # If the target is listed as false, skip the sketch. Otherwise, include it. - is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) + is_target=$(jq -r --arg target "$target" '.targets[$target]' "$sketchdir"/ci.json) if [[ "$is_target" == "false" ]]; then continue fi if [ "$ignore_requirements" != "1" ]; then - local has_requirements=$(check_requirements "$sketchdir" "$SDKCONFIG_DIR/$target/sdkconfig") + has_requirements=$(check_requirements "$sketchdir" "$SDKCONFIG_DIR/$target/sdkconfig") if [ "$has_requirements" == "0" ]; then continue fi fi fi - echo $sketch >> sketches.txt - sketchnum=$(($sketchnum + 1)) + echo "$sketch" >> sketches.txt + sketchnum=$((sketchnum + 1)) done return $sketchnum } -function build_sketches(){ # build_sketches [extra-options] - - local args="" - while [ ! -z "$1" ]; do +function build_sketches { # build_sketches [extra-options] + local args=() + while [ -n "$1" ]; do case $1 in -ai ) shift @@ -405,12 +416,12 @@ function build_sketches(){ # build_sketches info/wokwi_types.txt echo "[$targets]" > info/targets.txt -echo "build-types=[$build_types]" >> $GITHUB_OUTPUT -echo "hw-types=[$hw_types]" >> $GITHUB_OUTPUT -echo "wokwi-types=[$wokwi_types]" >> $GITHUB_OUTPUT -echo "qemu-types=[$qemu_types]" >> $GITHUB_OUTPUT -echo "targets=[$targets]" >> $GITHUB_OUTPUT +{ + echo "build-types=[$build_types]" + echo "hw-types=[$hw_types]" + echo "wokwi-types=[$wokwi_types]" + echo "qemu-types=[$qemu_types]" + echo "targets=[$targets]" +} >> "$GITHUB_OUTPUT" diff --git a/.github/scripts/tests_run.sh b/.github/scripts/tests_run.sh index 16b0f2fb500..513fd16b371 100755 --- a/.github/scripts/tests_run.sh +++ b/.github/scripts/tests_run.sh @@ -1,126 +1,130 @@ #!/bin/bash -function run_test() { +function run_test { local target=$1 local sketch=$2 local options=$3 local erase_flash=$4 - local sketchdir=$(dirname $sketch) - local sketchname=$(basename $sketchdir) + local sketchdir + local sketchname local result=0 local error=0 local sdkconfig_path + local extra_args - if [ $options -eq 0 ] && [ -f $sketchdir/ci.json ]; then - len=`jq -r --arg target $target '.fqbn[$target] | length' $sketchdir/ci.json` - if [ $len -eq 0 ]; then + sketchdir=$(dirname "$sketch") + sketchname=$(basename "$sketchdir") + + if [ "$options" -eq 0 ] && [ -f "$sketchdir"/ci.json ]; then + len=$(jq -r --arg target "$target" '.fqbn[$target] | length' "$sketchdir"/ci.json) + if [ "$len" -eq 0 ]; then len=1 fi else len=1 fi - if [ $len -eq 1 ]; then + if [ "$len" -eq 1 ]; then sdkconfig_path="$HOME/.arduino/tests/$sketchname/build.tmp/sdkconfig" else sdkconfig_path="$HOME/.arduino/tests/$sketchname/build0.tmp/sdkconfig" fi - if [ -f $sketchdir/ci.json ]; then + if [ -f "$sketchdir"/ci.json ]; then # If the target or platform is listed as false, skip the sketch. Otherwise, include it. - is_target=$(jq -r --arg target $target '.targets[$target]' $sketchdir/ci.json) - selected_platform=$(jq -r --arg platform $platform '.platforms[$platform]' $sketchdir/ci.json) + is_target=$(jq -r --arg target "$target" '.targets[$target]' "$sketchdir"/ci.json) + selected_platform=$(jq -r --arg platform "$platform" '.platforms[$platform]' "$sketchdir"/ci.json) if [[ $is_target == "false" ]] || [[ $selected_platform == "false" ]]; then - printf "\033[93mSkipping $sketchname test for $target, platform: $platform\033[0m\n" + printf "\033[93mSkipping %s test for %s, platform: %s\033[0m\n" "$sketchname" "$target" "$platform" printf "\n\n\n" return 0 fi fi - if [ ! -f $sdkconfig_path ]; then - printf "\033[93mSketch $sketchname not built\nMight be due to missing target requirements or build failure\033[0m\n" + if [ ! -f "$sdkconfig_path" ]; then + printf "\033[93mSketch %s not built\nMight be due to missing target requirements or build failure\033[0m\n" "$sketchname" printf "\n\n\n" return 0 fi - local right_target=$(grep -E "^CONFIG_IDF_TARGET=\"$target\"$" "$sdkconfig_path") + local right_target + right_target=$(grep -E "^CONFIG_IDF_TARGET=\"$target\"$" "$sdkconfig_path") if [ -z "$right_target" ]; then - printf "\033[91mError: Sketch $sketchname compiled for different target\n\033[0m\n" + printf "\033[91mError: Sketch %s compiled for different target\n\033[0m\n" "$sketchname" printf "\n\n\n" return 1 fi - if [ $len -eq 1 ]; then - # build_dir="$sketchdir/build" - build_dir="$HOME/.arduino/tests/$sketchname/build.tmp" - report_file="$sketchdir/$target/$sketchname.xml" + if [ "$len" -eq 1 ]; then + # build_dir="$sketchdir/build" + build_dir="$HOME/.arduino/tests/$sketchname/build.tmp" + report_file="$sketchdir/$target/$sketchname.xml" fi - for i in `seq 0 $(($len - 1))` - do + for i in $(seq 0 $((len - 1))); do fqbn="Default" - if [ $len -ne 1 ]; then - fqbn=`jq -r --arg target $target --argjson i $i '.fqbn[$target] | sort | .[$i]' $sketchdir/ci.json` - elif [ -f $sketchdir/ci.json ]; then - has_fqbn=`jq -r --arg target $target '.fqbn[$target]' $sketchdir/ci.json` + if [ "$len" -ne 1 ]; then + fqbn=$(jq -r --arg target "$target" --argjson i "$i" '.fqbn[$target] | sort | .[$i]' "$sketchdir"/ci.json) + elif [ -f "$sketchdir"/ci.json ]; then + has_fqbn=$(jq -r --arg target "$target" '.fqbn[$target]' "$sketchdir"/ci.json) if [ "$has_fqbn" != "null" ]; then - fqbn=`jq -r --arg target $target '.fqbn[$target] | .[0]' $sketchdir/ci.json` + fqbn=$(jq -r --arg target "$target" '.fqbn[$target] | .[0]' "$sketchdir"/ci.json) fi fi - printf "\033[95mRunning test: $sketchname -- Config: $fqbn\033[0m\n" - if [ $erase_flash -eq 1 ]; then - esptool.py -c $target erase_flash + printf "\033[95mRunning test: %s -- Config: %s\033[0m\n" "$sketchname" "$fqbn" + if [ "$erase_flash" -eq 1 ]; then + esptool.py -c "$target" erase_flash fi - if [ $len -ne 1 ]; then + if [ "$len" -ne 1 ]; then # build_dir="$sketchdir/build$i" build_dir="$HOME/.arduino/tests/$sketchname/build$i.tmp" report_file="$sketchdir/$target/$sketchname$i.xml" fi if [ $platform == "wokwi" ]; then - extra_args="--target $target --embedded-services arduino,wokwi --wokwi-timeout=$wokwi_timeout" + extra_args=("--target" "$target" "--embedded-services" "arduino,wokwi" "--wokwi-timeout=$wokwi_timeout") if [[ -f "$sketchdir/scenario.yaml" ]]; then - extra_args+=" --wokwi-scenario $sketchdir/scenario.yaml" + extra_args+=("--wokwi-scenario" "$sketchdir/scenario.yaml") fi if [[ -f "$sketchdir/diagram.$target.json" ]]; then - extra_args+=" --wokwi-diagram $sketchdir/diagram.$target.json" + extra_args+=("--wokwi-diagram" "$sketchdir/diagram.$target.json") fi elif [ $platform == "qemu" ]; then PATH=$HOME/qemu/bin:$PATH - extra_args="--embedded-services qemu --qemu-image-path $build_dir/$sketchname.ino.merged.bin" + extra_args=("--embedded-services" "qemu" "--qemu-image-path" "$build_dir/$sketchname.ino.merged.bin") - if [ $target == "esp32" ] || [ $target == "esp32s3" ]; then - extra_args+=" --qemu-prog-path qemu-system-xtensa --qemu-cli-args=\"-machine $target -m 4M -nographic\"" - elif [ $target == "esp32c3" ]; then - extra_args+=" --qemu-prog-path qemu-system-riscv32 --qemu-cli-args=\"-machine $target -icount 3 -nographic\"" + if [ "$target" == "esp32" ] || [ "$target" == "esp32s3" ]; then + extra_args+=("--qemu-prog-path" "qemu-system-xtensa" "--qemu-cli-args=\"-machine $target -m 4M -nographic\"") + elif [ "$target" == "esp32c3" ]; then + extra_args+=("--qemu-prog-path" "qemu-system-riscv32" "--qemu-cli-args=\"-machine $target -icount 3 -nographic\"") else - printf "\033[91mUnsupported QEMU target: $target\033[0m\n" + printf "\033[91mUnsupported QEMU target: %s\033[0m\n" "$target" exit 1 fi else - extra_args="--embedded-services esp,arduino" + extra_args=("--embedded-services" "esp,arduino") fi - rm $sketchdir/diagram.json 2>/dev/null || true + rm "$sketchdir"/diagram.json 2>/dev/null || true result=0 - printf "\033[95mpytest $sketchdir/test_$sketchname.py --build-dir $build_dir --junit-xml=$report_file $extra_args\033[0m\n" - bash -c "set +e; pytest $sketchdir/test_$sketchname.py --build-dir $build_dir --junit-xml=$report_file $extra_args; exit \$?" || result=$? + printf "\033[95mpytest \"%s/test_%s.py\" --build-dir \"%s\" --junit-xml=\"%s\" %s\033[0m\n" "$sketchdir" "$sketchname" "$build_dir" "$report_file" "${extra_args[*]@Q}" + bash -c "set +e; pytest \"$sketchdir/test_$sketchname.py\" --build-dir \"$build_dir\" --junit-xml=\"$report_file\" ${extra_args[*]@Q}; exit \$?" || result=$? printf "\n" if [ $result -ne 0 ]; then result=0 - printf "\033[95mRetrying test: $sketchname -- Config: $i\033[0m\n" - printf "\033[95mpytest $sketchdir/test_$sketchname.py --build-dir $build_dir --junit-xml=$report_file $extra_args\033[0m\n" - bash -c "set +e; pytest $sketchdir/test_$sketchname.py --build-dir $build_dir --junit-xml=$report_file $extra_args; exit \$?" || result=$? + printf "\033[95mRetrying test: %s -- Config: %s\033[0m\n" "$sketchname" "$i" + printf "\033[95mpytest \"%s/test_%s.py\" --build-dir \"%s\" --junit-xml=\"%s\" %s\033[0m\n" "$sketchdir" "$sketchname" "$build_dir" "$report_file" "${extra_args[*]@Q}" + bash -c "set +e; pytest \"$sketchdir/test_$sketchname.py\" --build-dir \"$build_dir\" --junit-xml=\"$report_file\" ${extra_args[*]@Q}; exit \$?" || result=$? printf "\n" if [ $result -ne 0 ]; then - printf "\033[91mFailed test: $sketchname -- Config: $i\033[0m\n\n" - error=$result + printf "\033[91mFailed test: %s -- Config: %s\033[0m\n\n" "$sketchname" "$i" + error=$result fi fi done @@ -136,13 +140,13 @@ chunk_run=0 options=0 erase=0 -while [ ! -z "$1" ]; do +while [ -n "$1" ]; do case $1 in -c ) chunk_run=1 ;; -Q ) - if [ ! -d $QEMU_PATH ]; then + if [ ! -d "$QEMU_PATH" ]; then echo "QEMU path $QEMU_PATH does not exist" exit 1 fi @@ -188,98 +192,97 @@ while [ ! -z "$1" ]; do test_type=$1 ;; * ) - break - ;; + break + ;; esac shift done if [ ! $platform == "qemu" ]; then - source ${SCRIPTS_DIR}/install-arduino-ide.sh + source "${SCRIPTS_DIR}/install-arduino-ide.sh" fi # If sketch is provided and test type is not, test type is inferred from the sketch path if [[ $test_type == "all" ]] || [[ -z $test_type ]]; then if [ -n "$sketch" ]; then - tmp_sketch_path=$(find tests -name $sketch.ino) - test_type=$(basename $(dirname $(dirname "$tmp_sketch_path"))) + tmp_sketch_path=$(find tests -name "$sketch".ino) + test_type=$(basename "$(dirname "$(dirname "$tmp_sketch_path")")") echo "Sketch $sketch test type: $test_type" test_folder="$PWD/tests/$test_type" else - test_folder="$PWD/tests" + test_folder="$PWD/tests" fi else test_folder="$PWD/tests/$test_type" fi if [ $chunk_run -eq 0 ]; then - if [ -z $sketch ]; then + if [ -z "$sketch" ]; then echo "ERROR: Sketch name is required for single test run" exit 1 fi - run_test $target $test_folder/$sketch/$sketch.ino $options $erase + run_test "$target" "$test_folder"/"$sketch"/"$sketch".ino $options $erase exit $? else - if [ "$chunk_max" -le 0 ]; then - echo "ERROR: Chunks count must be positive number" - exit 1 - fi - - if [ "$chunk_index" -ge "$chunk_max" ] && [ "$chunk_max" -ge 2 ]; then - echo "ERROR: Chunk index must be less than chunks count" - exit 1 - fi - - set +e - # Ignore requirements as we don't have the libs. The requirements will be checked in the run_test function - ${COUNT_SKETCHES} "$test_folder" "$target" "1" - sketchcount=$? - set -e - sketches=$(cat sketches.txt) - rm -rf sketches.txt - - chunk_size=$(( $sketchcount / $chunk_max )) - all_chunks=$(( $chunk_max * $chunk_size )) - if [ "$all_chunks" -lt "$sketchcount" ]; then - chunk_size=$(( $chunk_size + 1 )) - fi - - start_index=0 - end_index=0 - if [ "$chunk_index" -ge "$chunk_max" ]; then - start_index=$chunk_index - end_index=$sketchcount - else - start_index=$(( $chunk_index * $chunk_size )) - if [ "$sketchcount" -le "$start_index" ]; then - exit 0 - fi - - end_index=$(( $(( $chunk_index + 1 )) * $chunk_size )) - if [ "$end_index" -gt "$sketchcount" ]; then - end_index=$sketchcount - fi - fi - - start_num=$(( $start_index + 1 )) - sketchnum=0 - error=0 - - for sketch in $sketches; do - - sketchnum=$(($sketchnum + 1)) - if [ "$sketchnum" -le "$start_index" ] \ - || [ "$sketchnum" -gt "$end_index" ]; then - continue - fi - - printf "\033[95mSketch Index $(($sketchnum - 1))\033[0m\n" - - exit_code=0 - run_test $target $sketch $options $erase || exit_code=$? - if [ $exit_code -ne 0 ]; then - error=$exit_code - fi - done - exit $error + if [ "$chunk_max" -le 0 ]; then + echo "ERROR: Chunks count must be positive number" + exit 1 + fi + + if [ "$chunk_index" -ge "$chunk_max" ] && [ "$chunk_max" -ge 2 ]; then + echo "ERROR: Chunk index must be less than chunks count" + exit 1 + fi + + set +e + # Ignore requirements as we don't have the libs. The requirements will be checked in the run_test function + ${COUNT_SKETCHES} "$test_folder" "$target" "1" + sketchcount=$? + set -e + sketches=$(cat sketches.txt) + rm -rf sketches.txt + + chunk_size=$(( sketchcount / chunk_max )) + all_chunks=$(( chunk_max * chunk_size )) + if [ "$all_chunks" -lt "$sketchcount" ]; then + chunk_size=$(( chunk_size + 1 )) + fi + + start_index=0 + end_index=0 + if [ "$chunk_index" -ge "$chunk_max" ]; then + start_index=$chunk_index + end_index=$sketchcount + else + start_index=$(( chunk_index * chunk_size )) + if [ "$sketchcount" -le "$start_index" ]; then + exit 0 + fi + + end_index=$(( $(( chunk_index + 1 )) * chunk_size )) + if [ "$end_index" -gt "$sketchcount" ]; then + end_index=$sketchcount + fi + fi + + sketchnum=0 + error=0 + + for sketch in $sketches; do + + sketchnum=$((sketchnum + 1)) + if [ "$sketchnum" -le "$start_index" ] \ + || [ "$sketchnum" -gt "$end_index" ]; then + continue + fi + + printf "\033[95mSketch Index %s\033[0m\n" "$((sketchnum - 1))" + + exit_code=0 + run_test "$target" "$sketch" $options $erase || exit_code=$? + if [ $exit_code -ne 0 ]; then + error=$exit_code + fi + done + exit $error fi diff --git a/.github/scripts/update-version.sh b/.github/scripts/update-version.sh index cbc31378b15..9a38b27a57a 100755 --- a/.github/scripts/update-version.sh +++ b/.github/scripts/update-version.sh @@ -1,20 +1,21 @@ #!/bin/bash +# shellcheck disable=SC2002 # For reference: add tools for all boards by replacing one line in each board # "[board].upload.tool=esptool_py" to "[board].upload.tool=esptool_py\n[board].upload.tool.default=esptool_py\n[board].upload.tool.network=esp_ota" #cat boards.txt | sed "s/\([a-zA-Z0-9_\-]*\)\.upload\.tool\=esptool_py/\1\.upload\.tool\=esptool_py\\n\1\.upload\.tool\.default\=esptool_py\\n\1\.upload\.tool\.network\=esp_ota/" if [ ! $# -eq 3 ]; then - echo "Bad number of arguments: $#" >&2 - echo "usage: $0 " >&2 - exit 1 + echo "Bad number of arguments: $#" >&2 + echo "usage: $0 " >&2 + exit 1 fi re='^[0-9]+$' if [[ ! $1 =~ $re ]] || [[ ! $2 =~ $re ]] || [[ ! $3 =~ $re ]] ; then - echo "error: Not a valid version: $1.$2.$3" >&2 - echo "usage: $0 " >&2 - exit 1 + echo "error: Not a valid version: $1.$2.$3" >&2 + echo "usage: $0 " >&2 + exit 1 fi ESP_ARDUINO_VERSION_MAJOR="$1" @@ -36,11 +37,12 @@ sed "s/#define ESP_ARDUINO_VERSION_MAJOR.*/#define ESP_ARDUINO_VERSION_MAJOR $ES sed "s/#define ESP_ARDUINO_VERSION_MINOR.*/#define ESP_ARDUINO_VERSION_MINOR $ESP_ARDUINO_VERSION_MINOR/g" | \ sed "s/#define ESP_ARDUINO_VERSION_PATCH.*/#define ESP_ARDUINO_VERSION_PATCH $ESP_ARDUINO_VERSION_PATCH/g" > __esp_arduino_version.h && mv __esp_arduino_version.h cores/esp32/esp_arduino_version.h -for lib in `ls libraries`; do - if [ -f "libraries/$lib/library.properties" ]; then - echo "Updating Library $lib..." - cat "libraries/$lib/library.properties" | sed "s/version=.*/version=$ESP_ARDUINO_VERSION/g" > "libraries/$lib/__library.properties" && mv "libraries/$lib/__library.properties" "libraries/$lib/library.properties" - fi +libraries=$(find libraries -maxdepth 1 -mindepth 1 -type d -exec basename {} \;) +for lib in $libraries; do + if [ -f "libraries/$lib/library.properties" ]; then + echo "Updating Library $lib..." + cat "libraries/$lib/library.properties" | sed "s/version=.*/version=$ESP_ARDUINO_VERSION/g" > "libraries/$lib/__library.properties" && mv "libraries/$lib/__library.properties" "libraries/$lib/library.properties" + fi done exit 0 diff --git a/.github/scripts/upload_py_tools.sh b/.github/scripts/upload_py_tools.sh index 0544bccd710..abe18a50c6e 100755 --- a/.github/scripts/upload_py_tools.sh +++ b/.github/scripts/upload_py_tools.sh @@ -1,11 +1,12 @@ #!/bin/bash + CHANGED_FILES=$1 echo "Pushing '$CHANGED_FILES' as github-actions[bot]" git config --global github.user "github-actions[bot]" git config --global user.name "github-actions[bot]" git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" for tool in $CHANGED_FILES; do - git add tools/$tool.exe + git add tools/"$tool".exe done git commit -m "change(tools): Push generated binaries to PR" git push diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ebb6f6ac4b..f80261422b0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,7 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: "v5.0.0" hooks: + # Generic checks - id: check-case-conflict - id: check-symlinks - id: debug-statements @@ -25,6 +26,8 @@ repos: args: [--fix=lf] - id: trailing-whitespace args: [--markdown-linebreak-ext=md] + + # JSON formatting - id: pretty-format-json stages: [manual] args: [--autofix] @@ -35,40 +38,67 @@ repos: package\.json$| ^package\/.*$ ) + - repo: https://github.com/codespell-project/codespell rev: "v2.3.0" hooks: + # Spell checking - id: codespell exclude: ^.*\.(svd|SVD)$ + - repo: https://github.com/pre-commit/mirrors-clang-format rev: "v18.1.3" hooks: + # C/C++ formatting - id: clang-format types_or: [c, c++] exclude: ^.*\/build_opt\.h$ + - repo: https://github.com/psf/black-pre-commit-mirror rev: "24.10.0" hooks: + # Python formatting - id: black types_or: [python] args: [--line-length=120] #From the arduino code style. Add as argument rather than creating a new config file. + - repo: https://github.com/PyCQA/flake8 rev: "7.1.1" hooks: + # Python linting - id: flake8 types_or: [python] additional_dependencies: - flake8-bugbear - flake8-comprehensions - flake8-simplify + - repo: https://github.com/pre-commit/mirrors-prettier rev: "v3.1.0" hooks: + # YAML formatting - id: prettier types_or: [yaml] + + - repo: https://github.com/shellcheck-py/shellcheck-py + rev: "v0.10.0.1" + hooks: + # Bash linting + - id: shellcheck + types: [shell] + + - repo: https://github.com/openstack/bashate + rev: "2.1.1" + hooks: + # Bash formatting + - id: bashate + types: [shell] + args: ["-i", "E006"] # Ignore E006: Line too long + - repo: https://github.com/errata-ai/vale rev: "v3.9.1" hooks: + # Sync vale styles and lint markdown and reStructuredText - id: vale name: vale-sync language_version: "1.21.6" diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 00000000000..a7612e611a2 --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1,11 @@ +# Shellcheck configuration file for ESP32 Arduino core + +# Optional checks. https://github.com/koalaman/shellcheck/wiki/optional +enable=add-default-case,deprecate-which,avoid-nullary-conditions + +# Enable search for external sources +external-sources=true + +# Search folder for sourced files. +# Set to the folder where the original script is located. +source-path=SCRIPTDIR diff --git a/docs/en/contributing.rst b/docs/en/contributing.rst index 1e1529fb557..fb7843f1fb6 100644 --- a/docs/en/contributing.rst +++ b/docs/en/contributing.rst @@ -441,6 +441,16 @@ For checking the code style and other code quality checks, we use pre-commit hoo These hooks will be automatically run by the CI when a Pull Request is marked as ``Status: Pending Merge``. You can check which hooks are being run in the ``.pre-commit-config.yaml`` file. +Currently, we have hooks for the following tasks: + +* Formatters for C, C++, Python, Bash, JSON, Markdown and ReStructuredText files; +* Linters for Python, Bash and prose (spoken language); +* Checking for spelling errors in the code and documentation; +* Removing trailing whitespaces and tabs in the code; +* Checking for the presence of private keys and other sensitive information in the code; +* Fixing the line endings and end of files (EOF) in the code; +* And more. + You can read more about the pre-commit hooks in the `pre-commit documentation `_. If you want to run the pre-commit hooks locally, you first need to install the required dependencies by running: diff --git a/docs/utils.sh b/docs/utils.sh index 84f37489975..3a860ac8a2c 100644 --- a/docs/utils.sh +++ b/docs/utils.sh @@ -1,18 +1,19 @@ +#!/bin/bash # Bash helper functions for adding SSH keys -function add_ssh_keys() { - local key_string="${1}" - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo -n "${key_string}" >~/.ssh/id_rsa_base64 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 >~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa +function add_ssh_keys { + local key_string="${1}" + mkdir -p ~/.ssh + chmod 700 ~/.ssh + echo -n "${key_string}" >~/.ssh/id_rsa_base64 + base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 >~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa } -function add_doc_server_ssh_keys() { - local key_string="${1}" - local server_url="${2}" - local server_user="${3}" - add_ssh_keys "${key_string}" - echo -e "Host ${server_url}\n\tStrictHostKeyChecking no\n\tUser ${server_user}\n" >>~/.ssh/config +function add_doc_server_ssh_keys { + local key_string="${1}" + local server_url="${2}" + local server_user="${3}" + add_ssh_keys "${key_string}" + echo -e "Host ${server_url}\n\tStrictHostKeyChecking no\n\tUser ${server_user}\n" >>~/.ssh/config } diff --git a/tools/add_lib.sh b/tools/add_lib.sh index 4ec73c4f7f7..9760f8114c6 100755 --- a/tools/add_lib.sh +++ b/tools/add_lib.sh @@ -1,4 +1,5 @@ #!/bin/bash + HELP="This script help to add library when using arduino-esp32 as an ESP-IDF component The script accepts up to three arguments: -n NEW: URL address to new library on GIThub (cannot be combined with -e) @@ -26,119 +27,126 @@ n_param="" # Parse the command-line arguments using getopts while getopts "he:l:n:" opt; do - case $opt in - h) - echo "$HELP" - exit 0 - ;; - e) - #e_param="$OPTARG" - e_param="${OPTARG/#~/$HOME}" - ;; - l) - #l_param="$OPTARG" - l_param="${OPTARG/#~/$HOME}" - ;; - n) - n_param=$OPTARG - ;; - \?) - echo "Invalid option: -$OPTARG" >&2 - echo $HELP - exit 1 - ;; - :) - echo "Option -$OPTARG requires an argument." >&2 - echo $HELP - exit 1 - ;; - esac + case $opt in + h) + echo "$HELP" + exit 0 + ;; + e) + #e_param="$OPTARG" + e_param="${OPTARG/#~/$HOME}" + ;; + l) + #l_param="$OPTARG" + l_param="${OPTARG/#~/$HOME}" + ;; + n) + n_param=$OPTARG + ;; + \?) + echo "Invalid option: -$OPTARG" >&2 + echo "$HELP" + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." >&2 + echo "$HELP" + exit 1 + ;; + *) + echo "Invalid option: -$OPTARG" >&2 + echo "$HELP" + exit 1 + ;; + esac done # No parameter check if [[ -z "$e_param" ]] && [[ -z "$l_param" ]] && [[ -z "$n_param" ]]; then - echo "Error: No parameters" >&2 - echo "$HELP" - exit 1 + echo "Error: No parameters" >&2 + echo "$HELP" + exit 1 fi # Only local path check (not permitted) -if [[ -z "$e_param" ]] && [[ ! -z "$l_param" ]] && [[ -z "$n_param" ]]; then - echo "Error: -l parameter must be paired with -e or -n" >&2 - echo "$HELP" - exit 1 +if [[ -z "$e_param" ]] && [[ -n "$l_param" ]] && [[ -z "$n_param" ]]; then + echo "Error: -l parameter must be paired with -e or -n" >&2 + echo "$HELP" + exit 1 fi # Invalid combination check -if [[ ! -z $e_param ]] && [[ ! -z $n_param ]]; then - echo "ERROR: Cannot combine -n with -e" >&2 - echo "$HELP" - exit 1 +if [[ -n $e_param ]] && [[ -n $n_param ]]; then + echo "ERROR: Cannot combine -n with -e" >&2 + echo "$HELP" + exit 1 fi # Check existing lib -if [[ ! -z "$e_param" ]]; then - if [[ ! -d "${e_param/#~/$HOME}" ]]; then # this works! - echo "Error: existing library parameter - path does not exist" >&2 - exit 1 - fi +if [[ -n "$e_param" ]]; then + if [[ ! -d "${e_param/#~/$HOME}" ]]; then # this works! + echo "Error: existing library parameter - path does not exist" >&2 + exit 1 + fi fi LIBRARY="" # Only existing library was supplied -if [[ ! -z $e_param ]] && [[ -z $l_param ]] && [[ -z $n_param ]]; then - LIBRARY=$e_param +if [[ -n $e_param ]] && [[ -z $l_param ]] && [[ -z $n_param ]]; then + LIBRARY=$e_param fi # Install new lib -if [ ! -z $n_param ]; then - INSTALL_TARGET="" - if [ -z $l_param ]; then - # If local path for project is not supplied - use as INSTALL_TARGET Arduino libraries path - INSTALL_TARGET=$ARDUINO_LIBS_PATH/$(basename "$n_param") - else - INSTALL_TARGET=$l_param/components/$(basename "$n_param") - if [ ! -d "$l_param/components" ]; then - echo "Folder components does not exist yet: mkdir -p "$l_param/components"" - mkdir -p "$l_param/components" +if [ -n "$n_param" ]; then + INSTALL_TARGET="" + if [ -z "$l_param" ]; then + # If local path for project is not supplied - use as INSTALL_TARGET Arduino libraries path + INSTALL_TARGET=$ARDUINO_LIBS_PATH/$(basename "$n_param") + else + INSTALL_TARGET=$l_param/components/$(basename "$n_param") + if [ ! -d "$l_param/components" ]; then + echo "Folder components does not exist yet: mkdir -p \"$l_param/components\"" + mkdir -p "$l_param/components" + fi fi - fi - # clone the new lib - echo "Cloning: git clone --recursive $n_param $INSTALL_TARGET" - git clone --recursive $n_param $INSTALL_TARGET - LIBRARY=$INSTALL_TARGET + # clone the new lib + echo "Cloning: git clone --recursive $n_param $INSTALL_TARGET" + git clone --recursive "$n_param" "$INSTALL_TARGET" + LIBRARY=$INSTALL_TARGET fi # Copy existing lib to local project -if [[ ! -z $e_param ]] && [[ ! -z $l_param ]]; then - if [ ! -d "$l_param/components" ]; then - echo "Folder components does not exist yet: mkdir -p "$l_param/components"" - mkdir -p "$l_param/components" - fi - echo "Copy from $e_param to $l_param" - echo "cp -r $e_param $l_param/components/$(basename "$e_param")" - cp -r $e_param $l_param/components/$(basename "$e_param") - LIBRARY=$l_param/components/$(basename "$e_param") +if [[ -n $e_param ]] && [[ -n $l_param ]]; then + if [ ! -d "$l_param/components" ]; then + echo "Folder components does not exist yet: mkdir -p \"$l_param/components\"" + mkdir -p "$l_param/components" + fi + echo "Copy from $e_param to $l_param" + echo "cp -r $e_param $l_param/components/\"$(basename "$e_param")\"" + cp -r "$e_param" "$l_param"/components/"$(basename "$e_param")" + LIBRARY=$l_param/components/"$(basename "$e_param")" fi if [ -z "$LIBRARY" ]; then - echo "ERROR: No library path" >&2 - exit 1 + echo "ERROR: No library path" >&2 + exit 1 fi # 1. get the source list: -FILES=$(find $LIBRARY -name '*.c' -o -name '*.cpp' | xargs -I{} basename {}) +FILES=$(find "$LIBRARY" -print0 -name '*.c' -o -name '*.cpp' | xargs -0 -I{} basename {}) # Fresh start -if [ -f $LIBRARY/CMakeLists.txt ]; then - rm $LIBRARY/CMakeLists.txt - touch $LIBRARY/CMakeLists.txt +if [ -f "$LIBRARY"/CMakeLists.txt ]; then + rm "$LIBRARY"/CMakeLists.txt + touch "$LIBRARY"/CMakeLists.txt fi # Generate CMakeLists.txt -echo "idf_component_register(SRCS $(echo $FILES | sed -e 's/ /" "/g' | sed -e 's/^/"/' -e 's/$/"/')" >> $LIBRARY/CMakeLists.txt -echo " INCLUDE_DIRS \".\"" >> $LIBRARY/CMakeLists.txt -echo " REQUIRES \"arduino-esp32\"" >> $LIBRARY/CMakeLists.txt -echo " )" >> $LIBRARY/CMakeLists.txt +{ + echo "idf_component_register(SRCS $(echo "$FILES" | sed -e 's/ /" "/g' | sed -e 's/^/"/' -e 's/$/"/')" + echo " INCLUDE_DIRS \".\"" + echo " REQUIRES \"arduino-esp32\"" + echo " )" +} >> "$LIBRARY"/CMakeLists.txt From 2028ba43da3000e47e4bebd5a4d80ad695093db9 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 9 Dec 2024 19:03:54 -0300 Subject: [PATCH 104/179] fix(push): Re-comment unused code --- .github/workflows/push.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0859551d589..4f30bdbb844 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -225,14 +225,13 @@ jobs: # fail-fast: false # matrix: # os: [ubuntu-latest, windows-latest, macOS-latest] - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - name: Build Sketches - run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-python@v5 + # with: + # python-version: "3.x" + # - name: Build Sketches + # run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO # ESP-IDF component build build-esp-idf-component: From 538efe3b8c37ac8d0bdb1106911669f03a47f0c4 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 9 Dec 2024 19:30:05 -0300 Subject: [PATCH 105/179] feat(matter): adds new Temperature Sensor Matter Endpoint (#10698) * feat(matter): adds new temperature sensor matter endpoint * feat(matter): commentaries review and fixes * feat(matter): commentaries review and fixes * feat(matter): commentaries review and fixes * feat(matter): commentaries review and fixes * feat(matter): commentaries review and fixes * feat(matter): commentaries review and fixes * feat(matter): general commentaries and code review * feat(matter): keeping arduino style for local variables (lower case) * feat(matter): applies a generic temperature unit to the implementation and example * fix(matter): fixed problem with begin(float) implementation * fix(matter): fixed begin(float) initiallization * feat(matter): updated matter temperature keywords with new api * ci(pre-commit): Apply automatic fixes * fix(matter): fixed code spell ci errors in matter temperature sensor --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> --- CMakeLists.txt | 1 + .../MatterTemperatureSensor.ino | 94 ++++++++++++++++++ .../examples/MatterTemperatureSensor/ci.json | 7 ++ libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterTemperatureSensor.cpp | 99 +++++++++++++++++++ .../MatterEndpoints/MatterTemperatureSensor.h | 63 ++++++++++++ 7 files changed, 269 insertions(+) create mode 100644 libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino create mode 100644 libraries/Matter/examples/MatterTemperatureSensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index e4991d558d8..eba1a3fd824 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -175,6 +175,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp libraries/Matter/src/MatterEndpoints/MatterFan.cpp + libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino new file mode 100644 index 00000000000..216406d6082 --- /dev/null +++ b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino @@ -0,0 +1,94 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Temperature Sensor Endpoint +MatterTemperatureSensor SimulatedTemperatureSensor; + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Simulate a temperature sensor - add your preferred temperature sensor library code here +float getSimulatedTemperature() { + // The Endpoint implementation keeps an int16_t as internal value information, + // which stores data in 1/100th of any temperature unit + static float simulatedTempHWSensor = -10.0; + + // it will increase from -10C to 10C in 0.5C steps to simulate a temperature sensor + simulatedTempHWSensor = simulatedTempHWSensor + 0.5; + if (simulatedTempHWSensor > 10) { + simulatedTempHWSensor = -10; + } + + return simulatedTempHWSensor; +} + +void setup() { + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial temperature sensor measurement + // Simulated Sensor - it shall initially print -25 degrees and then move to the -10 to 10 range + SimulatedTemperatureSensor.begin(-25.00); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Temperature Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + Serial.printf("Current Temperature is %.02f \r\n", SimulatedTemperatureSensor.getTemperature()); + // update the temperature sensor value every 5 seconds + // Matter APP shall display the updated temperature + delay(5000); + SimulatedTemperatureSensor.setTemperature(getSimulatedTemperature()); +} diff --git a/libraries/Matter/examples/MatterTemperatureSensor/ci.json b/libraries/Matter/examples/MatterTemperatureSensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterTemperatureSensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 4668054d12e..60ffc546bd6 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -18,6 +18,7 @@ MatterEndPoint KEYWORD1 MatterFan KEYWORD1 FanMode_t KEYWORD1 FanModeSequence_t KEYWORD1 +MatterTemperatureSensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -62,6 +63,8 @@ setMode KEYWORD2 getMode KEYWORD2 onChangeMode KEYWORD2 onChangeSpeedPercent KEYWORD2 +setTemperature KEYWORD2 +getTemperature KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 06edf32288f..1b35d876705 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -26,6 +26,7 @@ #include #include #include +#include using namespace esp_matter; @@ -58,6 +59,7 @@ class ArduinoMatter { friend class MatterColorLight; friend class MatterEnhancedColorLight; friend class MatterFan; + friend class MatterTemperatureSensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp new file mode 100644 index 00000000000..4a43650f924 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp @@ -0,0 +1,99 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterTemperatureSensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Temperature Sensor device has not begun."); + return false; + } + + log_d("Temperature Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterTemperatureSensor::MatterTemperatureSensor() {} + +MatterTemperatureSensor::~MatterTemperatureSensor() { + end(); +} + +bool MatterTemperatureSensor::begin(int16_t _rawTemperature) { + ArduinoMatter::_init(); + + temperature_sensor::config_t temperature_sensor_config; + temperature_sensor_config.temperature_measurement.measured_value = _rawTemperature; + temperature_sensor_config.temperature_measurement.min_measured_value = nullptr; + temperature_sensor_config.temperature_measurement.max_measured_value = nullptr; + + // endpoint handles can be used to add/modify clusters + endpoint_t *endpoint = temperature_sensor::create(node::get(), &temperature_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Temperature Sensor endpoint"); + return false; + } + rawTemperature = _rawTemperature; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Temperature Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterTemperatureSensor::end() { + started = false; +} + +bool MatterTemperatureSensor::setRawTemperature(int16_t _rawTemperature) { + if (!started) { + log_e("Matter Temperature Sensor device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (rawTemperature == _rawTemperature) { + return true; + } + + esp_matter_attr_val_t temperatureVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id, &temperatureVal)) { + log_e("Failed to get Temperature Sensor Attribute."); + return false; + } + if (temperatureVal.val.i16 != _rawTemperature) { + temperatureVal.val.i16 = _rawTemperature; + bool ret; + ret = updateAttributeVal(TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id, &temperatureVal); + if (!ret) { + log_e("Failed to update Fan Speed Percent Attribute."); + return false; + } + rawTemperature = _rawTemperature; + } + log_v("Temperature Sensor set to %.02f Degrees", (float)_rawTemperature / 100.00); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h new file mode 100644 index 00000000000..826abac9a2a --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h @@ -0,0 +1,63 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterTemperatureSensor : public MatterEndPoint { +public: + MatterTemperatureSensor(); + ~MatterTemperatureSensor(); + // begin Matter Temperature Sensor endpoint with initial float temperature + bool begin(double temperature = 0.00) { + return begin(static_cast(temperature * 100.0f)); + } + // this will stop processing Temperature Sensor Matter events + void end(); + + // set the reported raw temperature + bool setTemperature(double temperature) { + // stores up to 1/100th of a degree precision + int16_t rawValue = static_cast(temperature * 100.0f); + return setRawTemperature(rawValue); + } + // returns the reported float temperature with 1/100th of a degree precision + double getTemperature() { + return (double)rawTemperature / 100.0; + } + // double conversion operator + void operator=(double temperature) { + setTemperature(temperature); + } + // double conversion operator + operator double() { + return (double)getTemperature(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + bool started = false; + // implementation keeps temperature in 1/100th of a degree, any temperature unit + int16_t rawTemperature = 0; + // internal function to set the raw temperature value (Matter Cluster) + bool setRawTemperature(int16_t _rawTemperature); + bool begin(int16_t _rawTemperature); +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 9660e66325afa1e54645b93ae46330ab8b63d8f6 Mon Sep 17 00:00:00 2001 From: Me No Dev Date: Tue, 10 Dec 2024 01:12:50 +0200 Subject: [PATCH 106/179] feat(chip): Add definition for BOOT_PIN for all chips (#10700) * feat(chip): Add definition for BOOT_PIN for all chips For use in sketches as default button * fix(core): Make BOOT_PIN static * fix(hal): BOOT_PIN should always be defined --- cores/esp32/esp32-hal.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/cores/esp32/esp32-hal.h b/cores/esp32/esp32-hal.h index d80bf2f15de..d0bd4b8bc93 100644 --- a/cores/esp32/esp32-hal.h +++ b/cores/esp32/esp32-hal.h @@ -61,6 +61,19 @@ extern "C" { #define ARDUINO_EVENT_RUNNING_CORE CONFIG_ARDUINO_EVENT_RUNNING_CORE #endif +#if CONFIG_IDF_TARGET_ESP32 || CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 +static const uint8_t BOOT_PIN = 0; +#elif CONFIG_IDF_TARGET_ESP32C2 || CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32C6 || CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32C61 +static const uint8_t BOOT_PIN = 9; +#elif CONFIG_IDF_TARGET_ESP32P4 +static const uint8_t BOOT_PIN = 35; +#elif CONFIG_IDF_TARGET_ESP32C5 +static const uint8_t BOOT_PIN = 28; +#else +#error BOOT_PIN not defined for this chip! +#endif +#define BOOT_PIN BOOT_PIN + //forward declaration from freertos/portmacro.h void vPortYield(void); void yield(void); From 8c3efc26f6f8a0ec04d310cd864a522507142644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 10 Dec 2024 08:56:53 +0100 Subject: [PATCH 107/179] fix(zigbee): set rx on idle and alloc address --- libraries/Zigbee/src/ZigbeeCore.cpp | 3 ++- libraries/Zigbee/src/ZigbeeCore.h | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index b1dc6211362..1266d57aa34 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -21,6 +21,7 @@ ZigbeeCore::ZigbeeCore() { _started = false; _connected = false; _scan_duration = 4; // maximum scan duration + _rx_on_when_idle = true; if (!lock) { lock = xSemaphoreCreateBinary(); if (lock == NULL) { @@ -98,7 +99,7 @@ static void esp_zb_task(void *pvParameters) { //NOTE: This is a workaround to make battery powered devices to be discovered as battery powered if (((zigbee_role_t)Zigbee.getRole() == ZIGBEE_END_DEVICE) && edBatteryPowered) { - zb_set_ed_node_descriptor(0, 0, 0); + zb_set_ed_node_descriptor(0, _rx_on_when_idle, 1); } esp_zb_stack_main_loop(); diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index 6729b7cc9f4..5d8cbf2929c 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -67,6 +67,7 @@ class ZigbeeCore { uint32_t _primary_channel_mask; int16_t _scan_status; uint8_t _scan_duration; + bool _rx_on_when_idle; esp_zb_ep_list_t *_zb_ep_list; zigbee_role_t _role; @@ -112,12 +113,17 @@ class ZigbeeCore { void setHostConfig(esp_zb_host_config_t config); esp_zb_host_config_t getHostConfig(); + void setPrimaryChannelMask(uint32_t mask); void setPrimaryChannelMask(uint32_t mask); // By default all channels are scanned (11-26) -> mask 0x07FFF800 void setScanDuration(uint8_t duration); // Can be set from 1 - 4. 1 is fastest, 4 is slowest uint8_t getScanDuration() { return _scan_duration; } + void setRxOnWhenIdle(bool rx_on_when_idle) { + _rx_on_when_idle = rx_on_when_idle; + } + void setRebootOpenNetwork(uint8_t time); void openNetwork(uint8_t time); From be95fc576487e4322efa83b7b2d492fb6f0bd3ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:46:44 +0100 Subject: [PATCH 108/179] fix(zigbee): Set scan to 3 and remove duplicate --- libraries/Zigbee/src/ZigbeeCore.cpp | 2 +- libraries/Zigbee/src/ZigbeeCore.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index 1266d57aa34..b60afdc0e8a 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -20,7 +20,7 @@ ZigbeeCore::ZigbeeCore() { _scan_status = ZB_SCAN_FAILED; _started = false; _connected = false; - _scan_duration = 4; // maximum scan duration + _scan_duration = 3; // default scan duration _rx_on_when_idle = true; if (!lock) { lock = xSemaphoreCreateBinary(); diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index 5d8cbf2929c..ba0be2eaa57 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -113,7 +113,6 @@ class ZigbeeCore { void setHostConfig(esp_zb_host_config_t config); esp_zb_host_config_t getHostConfig(); - void setPrimaryChannelMask(uint32_t mask); void setPrimaryChannelMask(uint32_t mask); // By default all channels are scanned (11-26) -> mask 0x07FFF800 void setScanDuration(uint8_t duration); // Can be set from 1 - 4. 1 is fastest, 4 is slowest uint8_t getScanDuration() { From 87d988fdb596a56e51b7059eb9ee8786d53ccdcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:57:37 +0100 Subject: [PATCH 109/179] fix(zigbee): Add getter for RxOnWhenIdle --- libraries/Zigbee/src/ZigbeeCore.cpp | 2 +- libraries/Zigbee/src/ZigbeeCore.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/Zigbee/src/ZigbeeCore.cpp b/libraries/Zigbee/src/ZigbeeCore.cpp index b60afdc0e8a..cc0111f2644 100644 --- a/libraries/Zigbee/src/ZigbeeCore.cpp +++ b/libraries/Zigbee/src/ZigbeeCore.cpp @@ -99,7 +99,7 @@ static void esp_zb_task(void *pvParameters) { //NOTE: This is a workaround to make battery powered devices to be discovered as battery powered if (((zigbee_role_t)Zigbee.getRole() == ZIGBEE_END_DEVICE) && edBatteryPowered) { - zb_set_ed_node_descriptor(0, _rx_on_when_idle, 1); + zb_set_ed_node_descriptor(0, Zigbee.getRxOnWhenIdle(), 1); } esp_zb_stack_main_loop(); diff --git a/libraries/Zigbee/src/ZigbeeCore.h b/libraries/Zigbee/src/ZigbeeCore.h index ba0be2eaa57..c72a60d81c4 100644 --- a/libraries/Zigbee/src/ZigbeeCore.h +++ b/libraries/Zigbee/src/ZigbeeCore.h @@ -122,6 +122,9 @@ class ZigbeeCore { void setRxOnWhenIdle(bool rx_on_when_idle) { _rx_on_when_idle = rx_on_when_idle; } + bool getRxOnWhenIdle() { + return _rx_on_when_idle; + } void setRebootOpenNetwork(uint8_t time); void openNetwork(uint8_t time); From a281b26baefb6d4aa644763c910dac886846e8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 10 Dec 2024 13:37:23 +0100 Subject: [PATCH 110/179] fix(zigbee): Move button and led pins from defines --- .../Zigbee_Color_Dimmable_Light.ino | 23 ++++++++++--------- .../Zigbee_Color_Dimmer_Switch.ino | 12 +++++----- .../Zigbee_On_Off_Light.ino | 17 +++++++------- .../Zigbee_On_Off_Switch.ino | 4 ++-- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 10 ++++---- .../Zigbee_Temperature_Sensor.ino | 9 ++++---- .../Zigbee_Thermostat/Zigbee_Thermostat.ino | 9 ++++---- 7 files changed, 45 insertions(+), 39 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino index 7ff7a020632..c43981459f0 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino @@ -33,20 +33,21 @@ #include "Zigbee.h" -#define LED_PIN RGB_BUILTIN -#define BUTTON_PIN 9 // C6/H2 Boot button -#define ZIGBEE_LIGHT_ENDPOINT 10 +/* Zigbee color dimmable light configuration */ +#define ZIGBEE_RGB_LIGHT_ENDPOINT 10 +uint8_t led = RGB_BUILTIN; +uint8_t button = BOOT_PIN; -ZigbeeColorDimmableLight zbColorLight = ZigbeeColorDimmableLight(ZIGBEE_LIGHT_ENDPOINT); +ZigbeeColorDimmableLight zbColorLight = ZigbeeColorDimmableLight(ZIGBEE_RGB_LIGHT_ENDPOINT); /********************* RGB LED functions **************************/ void setRGBLight(bool state, uint8_t red, uint8_t green, uint8_t blue, uint8_t level) { if (!state) { - rgbLedWrite(LED_PIN, 0, 0, 0); + rgbLedWrite(led, 0, 0, 0); return; } float brightness = (float)level / 255; - rgbLedWrite(LED_PIN, red * brightness, green * brightness, blue * brightness); + rgbLedWrite(led, red * brightness, green * brightness, blue * brightness); } // Create a task on identify call to handle the identify function @@ -58,7 +59,7 @@ void identify(uint16_t time) { zbColorLight.restoreLight(); return; } - rgbLedWrite(LED_PIN, 255 * blink, 255 * blink, 255 * blink); + rgbLedWrite(led, 255 * blink, 255 * blink, 255 * blink); blink = !blink; } @@ -70,10 +71,10 @@ void setup() { } // Init RMT and leave light OFF - rgbLedWrite(LED_PIN, 0, 0, 0); + rgbLedWrite(led, 0, 0, 0); // Init button for factory reset - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); // Set callback function for light change zbColorLight.onLightChange(setRGBLight); @@ -104,11 +105,11 @@ void setup() { void loop() { // Checking button for factory reset - if (digitalRead(BUTTON_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(BUTTON_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino index 15e120a1dbd..0ae8fd86a75 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino @@ -37,9 +37,9 @@ #include "Zigbee.h" -/* Switch configuration */ -#define SWITCH_PIN 9 // ESP32-C6/H2 Boot button +/* Zigbee color dimmer switch configuration */ #define SWITCH_ENDPOINT_NUMBER 5 +uint8_t button = BOOT_PIN; /* Zigbee switch */ ZigbeeColorDimmerSwitch zbSwitch = ZigbeeColorDimmerSwitch(SWITCH_ENDPOINT_NUMBER); @@ -52,7 +52,7 @@ void setup() { } //Init button switch - pinMode(SWITCH_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); //Optional: set Zigbee device name and model zbSwitch.setManufacturerAndModel("Espressif", "ZigbeeSwitch"); @@ -84,9 +84,9 @@ void setup() { void loop() { // Handle button switch in loop() - if (digitalRead(SWITCH_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling - while (digitalRead(SWITCH_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); } // Toggle light @@ -145,6 +145,6 @@ void loop() { static uint32_t last_print = 0; if (millis() - last_print > 30000) { last_print = millis(); - zbSwitch.printBoundDevices(Serial); + zbSwitch.printBoundDevices(); } } diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino index 92c59044cae..23c9b38f7c9 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino @@ -32,15 +32,16 @@ #include "Zigbee.h" -#define LED_PIN RGB_BUILTIN -#define BUTTON_PIN 9 // ESP32-C6/H2 Boot button +/* Zigbee light bulb configuration */ #define ZIGBEE_LIGHT_ENDPOINT 10 +uint8_t led = RGB_BUILTIN; +uint8_t button = BOOT_PIN; ZigbeeLight zbLight = ZigbeeLight(ZIGBEE_LIGHT_ENDPOINT); /********************* RGB LED functions **************************/ void setLED(bool value) { - digitalWrite(LED_PIN, value); + digitalWrite(led, value); } /********************* Arduino functions **************************/ @@ -50,11 +51,11 @@ void setup() { delay(10); } // Init LED and turn it OFF (if LED_PIN == RGB_BUILTIN, the rgbLedWrite() will be used under the hood) - pinMode(LED_PIN, OUTPUT); - digitalWrite(LED_PIN, LOW); + pinMode(led, OUTPUT); + digitalWrite(led, LOW); // Init button for factory reset - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); //Optional: set Zigbee device name and model zbLight.setManufacturerAndModel("Espressif", "ZBLightBulb"); @@ -82,11 +83,11 @@ void setup() { void loop() { // Checking button for factory reset - if (digitalRead(BUTTON_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(BUTTON_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino index e12b8aaf9ea..d40f54bc5d9 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino @@ -33,10 +33,10 @@ #include "Zigbee.h" +/* Zigbee switch configuration */ #define SWITCH_ENDPOINT_NUMBER 5 -/* Switch configuration */ -#define GPIO_INPUT_IO_TOGGLE_SWITCH 9 +#define GPIO_INPUT_IO_TOGGLE_SWITCH BOOT_PIN #define PAIR_SIZE(TYPE_STR_PAIR) (sizeof(TYPE_STR_PAIR) / sizeof(TYPE_STR_PAIR[0])) typedef enum { diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index 0c2f9b56690..50abd1b774b 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -32,12 +32,14 @@ #include "Zigbee.h" -#define BUTTON_PIN 9 //Boot button for C6/H2 +/* Zigbee temperature + humidity sensor configuration */ #define TEMP_SENSOR_ENDPOINT_NUMBER 10 #define uS_TO_S_FACTOR 1000000ULL /* Conversion factor for micro seconds to seconds */ #define TIME_TO_SLEEP 55 /* Sleep for 55s will + 5s delay for establishing connection => data reported every 1 minute */ +uint8_t button = BOOT_PIN; + ZigbeeTempSensor zbTempSensor = ZigbeeTempSensor(TEMP_SENSOR_ENDPOINT_NUMBER); /************************ Temp sensor *****************************/ @@ -70,7 +72,7 @@ void setup() { delay(10); } // Init button switch - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); // Configure the wake up source and set to wake up every 5 seconds esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); @@ -118,11 +120,11 @@ void setup() { void loop() { // Checking button for factory reset - if (digitalRead(BUTTON_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(BUTTON_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino index 255b074265e..e3fb1273735 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino @@ -32,8 +32,9 @@ #include "Zigbee.h" -#define BUTTON_PIN 9 //Boot button for C6/H2 +/* Zigbee temperature sensor configuration */ #define TEMP_SENSOR_ENDPOINT_NUMBER 10 +uint8_t button = BOOT_PIN; ZigbeeTempSensor zbTempSensor = ZigbeeTempSensor(TEMP_SENSOR_ENDPOINT_NUMBER); @@ -56,7 +57,7 @@ void setup() { delay(10); } // Init button switch - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); // Optional: set Zigbee device name and model zbTempSensor.setManufacturerAndModel("Espressif", "ZigbeeTempSensor"); @@ -99,11 +100,11 @@ void setup() { void loop() { // Checking button for factory reset - if (digitalRead(BUTTON_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(BUTTON_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot diff --git a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino index df02f891794..3de30dff6be 100644 --- a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino +++ b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino @@ -33,8 +33,9 @@ #include "Zigbee.h" -#define BUTTON_PIN 9 // Boot button for C6/H2 +/* Zigbee thermostat configuration */ #define THERMOSTAT_ENDPOINT_NUMBER 5 +uint8_t button = BOOT_PIN; ZigbeeThermostat zbThermostat = ZigbeeThermostat(THERMOSTAT_ENDPOINT_NUMBER); @@ -64,7 +65,7 @@ void setup() { } // Init button switch - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); // Set callback functions for temperature and configuration receive zbThermostat.onTempRecieve(recieveSensorTemp); @@ -100,10 +101,10 @@ void setup() { void loop() { // Handle button switch in loop() - if (digitalRead(BUTTON_PIN) == LOW) { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling - while (digitalRead(BUTTON_PIN) == LOW) { + while (digitalRead(button) == LOW) { delay(50); } From d7492b167c6e9f4a34ed0419d414e47f16c88a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Tue, 10 Dec 2024 14:06:17 +0100 Subject: [PATCH 111/179] fix(example): Lower the delay for sleepy device --- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index 50abd1b774b..67d36fce6cf 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -114,8 +114,8 @@ void setup() { Serial.println(); Serial.println("Successfully connected to Zigbee network"); - // Delay 5s (may be adjusted) to allow establishing proper connection with coordinator, needed for sleepy devices - delay(5000); + // Delay approx 1s (may be adjusted) to allow establishing proper connection with coordinator, needed for sleepy devices + delay(1000); } void loop() { From 45d863049a88be37c395ad1429a404118b2e9695 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 10 Dec 2024 10:37:51 -0300 Subject: [PATCH 112/179] ci(tests): Remove 3rd party tests Co-authored-by: Rodrigo Garcia --- .github/scripts/install-platformio-esp32.sh | 186 ------------------ .github/scripts/on-push.sh | 82 +++----- .github/scripts/on-release.sh | 2 +- .github/scripts/set_push_chunks.sh | 1 - .github/workflows/push.yml | 30 --- platform.txt | 2 +- ...latformio-build.py => pioarduino-build.py} | 4 +- 7 files changed, 34 insertions(+), 273 deletions(-) delete mode 100755 .github/scripts/install-platformio-esp32.sh rename tools/{platformio-build.py => pioarduino-build.py} (98%) diff --git a/.github/scripts/install-platformio-esp32.sh b/.github/scripts/install-platformio-esp32.sh deleted file mode 100755 index 8cd6552eb80..00000000000 --- a/.github/scripts/install-platformio-esp32.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/bash - -export PLATFORMIO_ESP32_PATH="$HOME/.platformio/packages/framework-arduinoespressif32" -PLATFORMIO_ESP32_URL="https://github.com/platformio/platform-espressif32.git" - -TOOLCHAIN_VERSION="12.2.0+20230208" -ESPTOOLPY_VERSION="~1.40501.0" -ESPRESSIF_ORGANIZATION_NAME="espressif" -SDKCONFIG_DIR="$PLATFORMIO_ESP32_PATH/tools/esp32-arduino-libs" -SCRIPTS_DIR="./.github/scripts" -COUNT_SKETCHES="${SCRIPTS_DIR}/sketch_utils.sh count" -CHECK_REQUIREMENTS="${SCRIPTS_DIR}/sketch_utils.sh check_requirements" - -echo "Installing Python Wheel ..." -pip install wheel > /dev/null 2>&1 - -echo "Installing PlatformIO ..." -pip install -U https://github.com/platformio/platformio/archive/master.zip > /dev/null 2>&1 - -echo "Installing Platform ESP32 ..." -python -m platformio platform install $PLATFORMIO_ESP32_URL > /dev/null 2>&1 - -echo "Replacing the package versions ..." -replace_script="import json; import os;" -replace_script+="fp=open(os.path.expanduser('~/.platformio/platforms/espressif32/platform.json'), 'r+');" -replace_script+="data=json.load(fp);" -# Use framework sources from the repository -replace_script+="data['packages']['framework-arduinoespressif32']['version'] = '*';" -replace_script+="del data['packages']['framework-arduinoespressif32']['owner'];" -# Use toolchain packages from the "espressif" organization -replace_script+="data['packages']['toolchain-xtensa-esp32']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" -replace_script+="data['packages']['toolchain-xtensa-esp32s2']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" -replace_script+="data['packages']['toolchain-riscv32-esp']['owner']='$ESPRESSIF_ORGANIZATION_NAME';" -# Update versions to use the upstream -replace_script+="data['packages']['toolchain-xtensa-esp32']['version']='$TOOLCHAIN_VERSION';" -replace_script+="data['packages']['toolchain-xtensa-esp32s2']['version']='$TOOLCHAIN_VERSION';" -replace_script+="data['packages']['toolchain-xtensa-esp32s3']['version']='$TOOLCHAIN_VERSION';" -replace_script+="data['packages']['toolchain-riscv32-esp']['version']='$TOOLCHAIN_VERSION';" -# Add new "framework-arduinoespressif32-libs" package -# Read "package_esp32_index.template.json" to extract a url to a zip package for "esp32-arduino-libs" -replace_script+="fpackage=open(os.path.join('package', 'package_esp32_index.template.json'), 'r+');" -replace_script+="package_data=json.load(fpackage);" -replace_script+="fpackage.close();" -replace_script+="libs_package_archive_url=next(next(system['url'] for system in tool['systems'] if system['host'] == 'x86_64-pc-linux-gnu') for tool in package_data['packages'][0]['tools'] if tool['name'] == 'esp32-arduino-libs');" -replace_script+="data['packages'].update({'framework-arduinoespressif32-libs':{'type':'framework','optional':False,'version':libs_package_archive_url}});" -replace_script+="data['packages']['toolchain-xtensa-esp32'].update({'optional':False});" -# esptool.py may require an upstream version (for now platformio is the owner) -replace_script+="data['packages']['tool-esptoolpy']['version']='$ESPTOOLPY_VERSION';" -# Save results -replace_script+="fp.seek(0);fp.truncate();json.dump(data, fp, indent=2);fp.close()" -python -c "$replace_script" - -if [ "$GITHUB_REPOSITORY" == "espressif/arduino-esp32" ]; then - echo "Linking Core..." - ln -s "$GITHUB_WORKSPACE" "$PLATFORMIO_ESP32_PATH" -else - echo "Cloning Core Repository ..." - git clone --recursive https://github.com/espressif/arduino-esp32.git "$PLATFORMIO_ESP32_PATH" > /dev/null 2>&1 -fi - -echo "PlatformIO for ESP32 has been installed" -echo "" - -function build_pio_sketch { # build_pio_sketch - if [ "$#" -lt 3 ]; then - echo "ERROR: Illegal number of parameters" - echo "USAGE: build_pio_sketch " - return 1 - fi - - local board="$1" - local options="$2" - local sketch="$3" - local sketch_dir - - sketch_dir=$(dirname "$sketch") - echo "" - echo "Compiling '$(basename "$sketch")' ..." - python -m platformio ci --board "$board" "$sketch_dir" --project-option="$options" -} - -function build_pio_sketches { # build_pio_sketches - if [ "$#" -lt 3 ]; then - echo "ERROR: Illegal number of parameters" - echo "USAGE: build_pio_sketches [ ]" - return 1 - fi - - local board=$1 - local options="$2" - local examples=$3 - local chunk_idex=$4 - local chunks_num=$5 - - if [ "$#" -lt 5 ]; then - chunk_idex="0" - chunks_num="1" - fi - - if [ "$chunks_num" -le 0 ]; then - echo "ERROR: Chunks count must be positive number" - return 1 - fi - if [ "$chunk_idex" -ge "$chunks_num" ]; then - echo "ERROR: Chunk index must be less than chunks count" - return 1 - fi - - set +e - ${COUNT_SKETCHES} "$examples" "esp32" - local sketchcount=$? - set -e - local sketches - sketches=$(cat sketches.txt) - rm -rf sketches.txt - - local chunk_size - local all_chunks - local start_index - local end_index - local start_num - - chunk_size=$(( sketchcount / chunks_num )) - all_chunks=$(( chunks_num * chunk_size )) - if [ "$all_chunks" -lt "$sketchcount" ]; then - chunk_size=$(( chunk_size + 1 )) - fi - - start_index=$(( chunk_idex * chunk_size )) - if [ "$sketchcount" -le "$start_index" ]; then - echo "Skipping job" - return 0 - fi - - end_index=$(( $(( chunk_idex + 1 )) * chunk_size )) - if [ "$end_index" -gt "$sketchcount" ]; then - end_index=$sketchcount - fi - - start_num=$(( start_index + 1 )) - echo "Found $sketchcount Sketches"; - echo "Chunk Count : $chunks_num" - echo "Chunk Size : $chunk_size" - echo "Start Sketch: $start_num" - echo "End Sketch : $end_index" - - local sketchnum=0 - for sketch in $sketches; do - local sketchdir - local sketchdirname - local sketchname - local is_target - local has_requirements - - sketchdir=$(dirname "$sketch") - sketchdirname=$(basename "$sketchdir") - sketchname=$(basename "$sketch") - - if [[ "$sketchdirname.ino" != "$sketchname" ]]; then - continue - elif [ -f "$sketchdir"/ci.json ]; then - # If the target is listed as false, skip the sketch. Otherwise, include it. - is_target=$(jq -r '.targets[esp32]' "$sketchdir"/ci.json) - if [[ "$is_target" == "false" ]]; then - continue - fi - - has_requirements=$(${CHECK_REQUIREMENTS} "$sketchdir" "$SDKCONFIG_DIR/esp32/sdkconfig") - if [ "$has_requirements" == "0" ]; then - continue - fi - fi - - sketchnum=$((sketchnum + 1)) - if [ "$sketchnum" -le "$start_index" ] \ - || [ "$sketchnum" -gt "$end_index" ]; then - continue - fi - build_pio_sketch "$board" "$options" "$sketch" - local result=$? - if [ $result -ne 0 ]; then - return $result - fi - done - return 0 -} diff --git a/.github/scripts/on-push.sh b/.github/scripts/on-push.sh index 5158df3cc9b..aafc9de0596 100755 --- a/.github/scripts/on-push.sh +++ b/.github/scripts/on-push.sh @@ -55,14 +55,11 @@ CHUNK_INDEX=$1 CHUNKS_CNT=$2 BUILD_LOG=$3 SKETCHES_FILE=$4 -BUILD_PIO=0 if [ "$#" -lt 2 ] || [ "$CHUNKS_CNT" -le 0 ]; then CHUNK_INDEX=0 CHUNKS_CNT=1 elif [ "$CHUNK_INDEX" -gt "$CHUNKS_CNT" ] && [ "$CHUNKS_CNT" -ge 2 ]; then CHUNK_INDEX=$CHUNKS_CNT -elif [ "$CHUNK_INDEX" -eq "$CHUNKS_CNT" ]; then - BUILD_PIO=1 fi if [ -z "$BUILD_LOG" ] || [ "$BUILD_LOG" -le 0 ]; then @@ -73,54 +70,35 @@ fi #git -C "$GITHUB_WORKSPACE" submodule update --init --recursive > /dev/null 2>&1 SCRIPTS_DIR="./.github/scripts" -if [ "$BUILD_PIO" -eq 0 ]; then - source "${SCRIPTS_DIR}/install-arduino-cli.sh" - source "${SCRIPTS_DIR}/install-arduino-core-esp32.sh" - - SKETCHES_ESP32=( - "$ARDUINO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino" - "$ARDUINO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino" - "$ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" - "$ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino" - ) - #create sizes_file - sizes_file="$GITHUB_WORKSPACE/cli_compile_$CHUNK_INDEX.json" - - if [ "$BUILD_LOG" -eq 1 ]; then - #create sizes_file and echo start of JSON array with "boards" key - echo "{\"boards\": [" > "$sizes_file" - fi - - #build sketches for different targets - build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" - - if [ "$BUILD_LOG" -eq 1 ]; then - #remove last comma from the last JSON object - sed -i '$ s/,$//' "$sizes_file" - #echo end of JSON array - echo "]}" >> "$sizes_file" - fi -else - source "${SCRIPTS_DIR}/install-platformio-esp32.sh" - # PlatformIO ESP32 Test - BOARD="esp32dev" - OPTIONS="board_build.partitions = huge_app.csv" - build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/WiFi/examples/WiFiClient/WiFiClient.ino" && \ - build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino" && \ - build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/BluetoothSerial/examples/SerialToSerialBT/SerialToSerialBT.ino" && \ - build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino" && \ - build_pio_sketch "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" - - # Basic sanity testing for other series - for board in "esp32-c3-devkitm-1" "esp32-s2-saola-1" "esp32-s3-devkitc-1"; do - python -m platformio ci --board "$board" "$PLATFORMIO_ESP32_PATH/libraries/WiFi/examples/WiFiClient" --project-option="board_build.partitions = huge_app.csv" - done +source "${SCRIPTS_DIR}/install-arduino-cli.sh" +source "${SCRIPTS_DIR}/install-arduino-core-esp32.sh" + +SKETCHES_ESP32=( + "$ARDUINO_ESP32_PATH/libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino" + "$ARDUINO_ESP32_PATH/libraries/BLE/examples/Server/Server.ino" + "$ARDUINO_ESP32_PATH/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino" + "$ARDUINO_ESP32_PATH/libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino" +) +#create sizes_file +sizes_file="$GITHUB_WORKSPACE/cli_compile_$CHUNK_INDEX.json" + +if [ "$BUILD_LOG" -eq 1 ]; then + #create sizes_file and echo start of JSON array with "boards" key + echo "{\"boards\": [" > "$sizes_file" +fi - #build_pio_sketches "$BOARD" "$OPTIONS" "$PLATFORMIO_ESP32_PATH/libraries" +#build sketches for different targets +build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" + +if [ "$BUILD_LOG" -eq 1 ]; then + #remove last comma from the last JSON object + sed -i '$ s/,$//' "$sizes_file" + #echo end of JSON array + echo "]}" >> "$sizes_file" fi diff --git a/.github/scripts/on-release.sh b/.github/scripts/on-release.sh index 119c66e1eab..242cee93d0b 100755 --- a/.github/scripts/on-release.sh +++ b/.github/scripts/on-release.sh @@ -239,7 +239,7 @@ cp -f "$GITHUB_WORKSPACE/tools/gen_insights_package.py" "$PKG_DIR/tools/" cp -f "$GITHUB_WORKSPACE/tools/gen_insights_package.exe" "$PKG_DIR/tools/" cp -Rf "$GITHUB_WORKSPACE/tools/partitions" "$PKG_DIR/tools/" cp -Rf "$GITHUB_WORKSPACE/tools/ide-debug" "$PKG_DIR/tools/" -cp -f "$GITHUB_WORKSPACE/tools/platformio-build.py" "$PKG_DIR/tools/" +cp -f "$GITHUB_WORKSPACE/tools/pioarduino-build.py" "$PKG_DIR/tools/" # Remove unnecessary files in the package folder echo "Cleaning up folders ..." diff --git a/.github/scripts/set_push_chunks.sh b/.github/scripts/set_push_chunks.sh index 047cae6efd8..ff0af7da6e8 100644 --- a/.github/scripts/set_push_chunks.sh +++ b/.github/scripts/set_push_chunks.sh @@ -79,7 +79,6 @@ chunks+="]" echo "build_libraries=$BUILD_LIBRARIES" echo "build_static_sketches=$BUILD_STATIC_SKETCHES" echo "build_idf=$BUILD_IDF" - echo "build_platformio=$BUILD_PLATFORMIO" echo "chunk_count=$chunks_count" echo "chunks=$chunks" } >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 4f30bdbb844..e6f497998b0 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -61,7 +61,6 @@ jobs: build_libraries: ${{ steps.set-chunks.outputs.build_libraries }} build_static_sketches: ${{ steps.set-chunks.outputs.build_static_sketches }} build_idf: ${{ steps.set-chunks.outputs.build_idf }} - build_platformio: ${{ steps.set-chunks.outputs.build_platformio }} chunk_count: ${{ steps.set-chunks.outputs.chunk_count }} chunks: ${{ steps.set-chunks.outputs.chunks }} steps: @@ -77,11 +76,9 @@ jobs: files_yaml: | core: - '.github/**' - - '!.github/scripts/install-platformio-esp32.sh' - 'cores/**' - 'package/**' - 'tools/**' - - '!tools/platformio-build.py' - 'platform.txt' - 'programmers.txt' - "variants/esp32/**/*" @@ -110,10 +107,6 @@ jobs: - 'Kconfig.projbuild' - 'CMakeLists.txt' - "variants/esp32c2/**/*" - platformio: - - 'package.json' - - '.github/scripts/install-platformio-esp32.sh' - - 'tools/platformio-build.py' - name: Set chunks id: set-chunks @@ -121,7 +114,6 @@ jobs: LIB_FILES: ${{ steps.changed-files.outputs.libraries_all_changed_files }} IS_PR: ${{ github.event_name == 'pull_request' }} MAX_CHUNKS: ${{ env.MAX_CHUNKS }} - BUILD_PLATFORMIO: ${{ steps.changed-files.outputs.platformio_any_changed == 'true' }} BUILD_IDF: ${{ steps.changed-files.outputs.idf_any_changed == 'true' }} BUILD_LIBRARIES: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }} BUILD_STATIC_SKETCHES: ${{ steps.changed-files.outputs.static_sketeches_any_changed == 'true' }} @@ -212,28 +204,6 @@ jobs: - name: Build Sketches run: bash ./.github/scripts/on-push.sh - # # PlatformIO on Windows, Ubuntu and Mac - # build-platformio: - # name: PlatformIO on ${{ matrix.os }} - # needs: gen-chunks - # if: | - # needs.gen-chunks.outputs.build_all == 'true' || - # needs.gen-chunks.outputs.build_static_sketches == 'true' || - # needs.gen-chunks.outputs.build_platformio == 'true' - # runs-on: ${{ matrix.os }} - # strategy: - # fail-fast: false - # matrix: - # os: [ubuntu-latest, windows-latest, macOS-latest] - # steps: - # - uses: actions/checkout@v4 - # - uses: actions/setup-python@v5 - # with: - # python-version: "3.x" - # - name: Build Sketches - # run: bash ./.github/scripts/on-push.sh 1 1 #equal and non-zero to trigger PIO - - # ESP-IDF component build build-esp-idf-component: name: Build with ESP-IDF ${{ matrix.idf_ver }} for ${{ matrix.idf_target }} needs: gen-chunks diff --git a/platform.txt b/platform.txt index b075e539866..44353ab3bf4 100644 --- a/platform.txt +++ b/platform.txt @@ -44,7 +44,7 @@ compiler.warning_flags.more=-Wall compiler.warning_flags.all=-Wall -Wextra # Additional flags specific to Arduino (not based on IDF flags). -# Update tools/platformio-build.py when changing these flags. +# Update tools/pioarduino-build.py when changing these flags. compiler.common_werror_flags=-Werror=return-type # Compile Flags diff --git a/tools/platformio-build.py b/tools/pioarduino-build.py similarity index 98% rename from tools/platformio-build.py rename to tools/pioarduino-build.py index 485879944eb..3335a716888 100644 --- a/tools/platformio-build.py +++ b/tools/pioarduino-build.py @@ -22,7 +22,7 @@ http://arduino.cc/en/Reference/HomePage """ -# Extends: https://github.com/platformio/platform-espressif32/blob/develop/builder/main.py +# Extends: https://github.com/pioarduino/platform-espressif32/blob/develop/builder/main.py from os.path import abspath, basename, isdir, isfile, join from copy import deepcopy @@ -160,7 +160,7 @@ def add_tinyuf2_extra_image(): join( FRAMEWORK_LIBS_DIR, build_mcu, - "platformio-build.py", + "pioarduino-build.py", ) ) From 5a8cba88c7bb46b83698b65fdc68cbeb2f65e4ff Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 10 Dec 2024 12:51:00 -0300 Subject: [PATCH 113/179] feat(Matter): Adds New Matter Humidity Sensor Endpoint (#10703) * feat(matter): adds matter humidity sensor endpoint --- CMakeLists.txt | 1 + .../MatterHumiditySensor.ino | 130 ++++++++++++++++++ .../examples/MatterHumiditySensor/ci.json | 7 + libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterHumiditySensor.cpp | 111 +++++++++++++++ .../MatterEndpoints/MatterHumiditySensor.h | 69 ++++++++++ 7 files changed, 323 insertions(+) create mode 100644 libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino create mode 100644 libraries/Matter/examples/MatterHumiditySensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index eba1a3fd824..ed9ae23f83f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -176,6 +176,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp libraries/Matter/src/MatterEndpoints/MatterFan.cpp libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp + libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino b/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino new file mode 100644 index 00000000000..c4977772c1b --- /dev/null +++ b/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino @@ -0,0 +1,130 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Humidity Sensor Endpoint +MatterHumiditySensor SimulatedHumiditySensor; + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Simulate a humidity sensor - add your preferred humidity sensor library code here +float getSimulatedHumidity() { + // The Endpoint implementation keeps an uint16_t as internal value information, + // which stores data in 1/100th of humidity percent + static float simulatedHumidityHWSensor = 10.0; + + // it will increase from 10% to 30% in 0.5% steps to simulate a humidity sensor + simulatedHumidityHWSensor = simulatedHumidityHWSensor + 0.5; + if (simulatedHumidityHWSensor > 30) { + simulatedHumidityHWSensor = 10; + } + + return simulatedHumidityHWSensor; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial humidity sensor measurement + // Simulated Sensor - it shall initially print 95% and then move to the 10% to 30% humidity range + SimulatedHumiditySensor.begin(95.00); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Humidity Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + static uint32_t timeCounter = 0; + + // Print the current humidity value every 5s + if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s + // Print the current humidity value + Serial.printf("Current Humidity is %.02f%%\r\n", SimulatedHumiditySensor.getHumidity()); + // Update Humidity from the (Simulated) Hardware Sensor + // Matter APP shall display the updated humidity percent + SimulatedHumiditySensor.setHumidity(getSimulatedHumidity()); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + } + + delay(500); +} diff --git a/libraries/Matter/examples/MatterHumiditySensor/ci.json b/libraries/Matter/examples/MatterHumiditySensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterHumiditySensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 60ffc546bd6..c54b040d94b 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -19,6 +19,7 @@ MatterFan KEYWORD1 FanMode_t KEYWORD1 FanModeSequence_t KEYWORD1 MatterTemperatureSensor KEYWORD1 +MatterHumiditySensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -65,6 +66,8 @@ onChangeMode KEYWORD2 onChangeSpeedPercent KEYWORD2 setTemperature KEYWORD2 getTemperature KEYWORD2 +setHumidity KEYWORD2 +getHumidity KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 1b35d876705..4b7804d61df 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -27,6 +27,7 @@ #include #include #include +#include using namespace esp_matter; @@ -60,6 +61,7 @@ class ArduinoMatter { friend class MatterEnhancedColorLight; friend class MatterFan; friend class MatterTemperatureSensor; + friend class MatterHumiditySensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp new file mode 100644 index 00000000000..3e911606074 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp @@ -0,0 +1,111 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterHumiditySensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Humidity Sensor device has not begun."); + return false; + } + + log_d("Humidity Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterHumiditySensor::MatterHumiditySensor() {} + +MatterHumiditySensor::~MatterHumiditySensor() { + end(); +} + +bool MatterHumiditySensor::begin(uint16_t _rawHumidity) { + ArduinoMatter::_init(); + + // is it a valid percentage value? + if (_rawHumidity > 10000) { + log_e("Humidity Sensor Percentage value out of range [0..100]."); + return false; + } + + humidity_sensor::config_t humidity_sensor_config; + humidity_sensor_config.relative_humidity_measurement.measured_value = _rawHumidity; + humidity_sensor_config.relative_humidity_measurement.min_measured_value = nullptr; + humidity_sensor_config.relative_humidity_measurement.max_measured_value = nullptr; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = humidity_sensor::create(node::get(), &humidity_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Humidity Sensor endpoint"); + return false; + } + rawHumidity = _rawHumidity; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Humidity Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterHumiditySensor::end() { + started = false; +} + +bool MatterHumiditySensor::setRawHumidity(uint16_t _rawHumidity) { + if (!started) { + log_e("Matter Humidity Sensor device has not begun."); + return false; + } + // is it a valid percentage value? + if (_rawHumidity > 10000) { + log_e("Humidity Sensor Percentage value out of range [0..100]."); + return false; + } + + // avoid processing the a "no-change" + if (rawHumidity == _rawHumidity) { + return true; + } + + esp_matter_attr_val_t humidityVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, &humidityVal)) { + log_e("Failed to get Humidity Sensor Attribute."); + return false; + } + if (humidityVal.val.u16 != _rawHumidity) { + humidityVal.val.u16 = _rawHumidity; + bool ret; + ret = updateAttributeVal(RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, &humidityVal); + if (!ret) { + log_e("Failed to update Fan Speed Percent Attribute."); + return false; + } + rawHumidity = _rawHumidity; + } + log_v("Humidity Sensor set to %.02f Percent", (float)_rawHumidity / 100.00); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h new file mode 100644 index 00000000000..aed758b7b7a --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h @@ -0,0 +1,69 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterHumiditySensor : public MatterEndPoint { +public: + MatterHumiditySensor(); + ~MatterHumiditySensor(); + // begin Matter Humidity Sensor endpoint with initial float humidity percent + bool begin(double humidityPercent = 0.00) { + if (humidityPercent < 0.0 || humidityPercent > 100.0) { + log_e("Humidity Sensor Percentage value out of range [0..100]."); + return false; + } + return begin(static_cast(humidityPercent * 100.0f)); + } + // this will just stop processing Humidity Sensor Matter events + void end(); + + // set the humidity percent with 1/100th of a percent precision + bool setHumidity(double humidityPercent) { + if (humidityPercent < 0.0 || humidityPercent > 100.0) { + log_e("Humidity Sensor Percentage value out of range [0..100]."); + return false; + } + return setRawHumidity(static_cast(humidityPercent * 100.0f)); + } + // returns the reported float humidity percent with 1/100th of precision + double getHumidity() { + return (double)rawHumidity / 100.0; + } + // double conversion operator + void operator=(double humidityPercent) { + setHumidity(humidityPercent); + } + // double conversion operator + operator double() { + return (double)getHumidity(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + bool started = false; + // implementation keeps humidity relative percentage with 1/100th of a percent precision + uint16_t rawHumidity = 0; + // internal function to set the raw humidity value (Matter Cluster) + bool begin(uint16_t _rawHumidity); + bool setRawHumidity(uint16_t _rawHumidity); +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From de4824fc24c1e0d1062de5ed1b3753996ca5131c Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 10 Dec 2024 18:16:54 -0300 Subject: [PATCH 114/179] feat(matter_examples): apply boot button change to all examples (#10702) * feat(matter_examples): apply boot button change to all examples --- .../MatterColorLight.ino} | 32 ++++---- .../ci.json | 0 .../MatterComposedLights.ino | 74 ++++++++++++++----- .../MatterDimmableLight.ino | 30 ++++---- .../MatterEnhancedColorLight.ino | 26 ++++--- .../Matter/examples/MatterFan/MatterFan.ino | 29 ++++---- .../examples/MatterMinimum/MatterMinimum.ino | 29 ++++++++ .../MatterOnOffLight/MatterOnOffLight.ino | 26 ++++--- .../MatterSmartButon/MatterSmartButon.ino | 26 ++++--- .../MatterTemperatureLight.ino} | 26 ++++--- .../ci.json | 0 .../MatterTemperatureSensor.ino | 47 ++++++++++-- .../WiFiProvWithinMatter.ino | 30 ++++++++ 13 files changed, 260 insertions(+), 115 deletions(-) rename libraries/Matter/examples/{Matter_ColorLight/Matter_ColorLight.ino => MatterColorLight/MatterColorLight.ino} (86%) rename libraries/Matter/examples/{Matter_ColorLight => MatterColorLight}/ci.json (100%) rename libraries/Matter/examples/{Matter_CW_WW_Light/Matter_CW_WW_Light.ino => MatterTemperatureLight/MatterTemperatureLight.ino} (89%) rename libraries/Matter/examples/{Matter_CW_WW_Light => MatterTemperatureLight}/ci.json (100%) diff --git a/libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino similarity index 86% rename from libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino rename to libraries/Matter/examples/MatterColorLight/MatterColorLight.ino index 2b9c4e4033a..ea91baef0ea 100644 --- a/libraries/Matter/examples/Matter_ColorLight/Matter_ColorLight.ino +++ b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino @@ -35,7 +35,13 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE #endif // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID @@ -125,11 +131,6 @@ void setup() { ColorLight.updateAccessory(); } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light void loop() { // Check Matter Light Commissioning state, which may change during execution of loop() @@ -167,17 +168,18 @@ void loop() { // Onboard User Button is used as a Light toggle switch or to decommission it uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { - button_state = false; // released + if (digitalRead(buttonPin) == HIGH && button_state && time_diff > debouceTime) { // Toggle button is released - toggle the light Serial.println("User button released. Toggling Light!"); - ColorLight.toggle(); // Matter Controller also can see the change + ColorLight.toggle(); // Matter Controller also can see the change + button_state = false; // released + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - ColorLight = false; // turn the light off - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + ColorLight = false; // turn the light off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/Matter_ColorLight/ci.json b/libraries/Matter/examples/MatterColorLight/ci.json similarity index 100% rename from libraries/Matter/examples/Matter_ColorLight/ci.json rename to libraries/Matter/examples/MatterColorLight/ci.json diff --git a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino index 85fcd9e8973..63062ba36a9 100644 --- a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino +++ b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino @@ -18,31 +18,42 @@ // List of Matter Endpoints for this Node // There will be 3 On/Off Light Endpoints in the same Node -MatterOnOffLight OnOffLight1; -MatterOnOffLight OnOffLight2; -MatterOnOffLight OnOffLight3; +MatterOnOffLight Light1; +MatterDimmableLight Light2; +MatterColorLight Light3; // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password +// set your board USER BUTTON pin here - USED to decommission the Matter Node +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + // Matter Protocol Endpoint Callback for each Light Accessory bool setLightOnOff1(bool state) { - Serial.printf("CB-Light1 changed state to: %s\r\n", state ? "ON" : "OFF"); + Serial.printf("Light1 changed state to: %s\r\n", state ? "ON" : "OFF"); return true; } bool setLightOnOff2(bool state) { - Serial.printf("CB-Light2 changed state to: %s\r\n", state ? "ON" : "OFF"); + Serial.printf("Light2 changed state to: %s\r\n", state ? "ON" : "OFF"); return true; } bool setLightOnOff3(bool state) { - Serial.printf("CB-Light3 changed state to: %s\r\n", state ? "ON" : "OFF"); + Serial.printf("Light3 changed state to: %s\r\n", state ? "ON" : "OFF"); return true; } void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + Serial.begin(115200); while (!Serial) { delay(100); @@ -60,24 +71,27 @@ void setup() { delay(500); Serial.print("."); } - Serial.println("\r\nWiFi connected"); + Serial.println(); + Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); delay(500); // Initialize all 3 Matter EndPoints - OnOffLight1.begin(); - OnOffLight2.begin(); - OnOffLight3.begin(); - OnOffLight1.onChange(setLightOnOff1); - OnOffLight2.onChange(setLightOnOff2); - OnOffLight3.onChange(setLightOnOff3); + Light1.begin(); + Light2.begin(); + Light3.begin(); + Light1.onChangeOnOff(setLightOnOff1); + Light2.onChangeOnOff(setLightOnOff2); + Light3.onChangeOnOff(setLightOnOff3); // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); } void loop() { + static uint32_t timeCounter = 0; + // Check Matter Light Commissioning state if (!Matter.isDeviceCommissioned()) { Serial.println(""); @@ -97,10 +111,32 @@ void loop() { Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); } - //displays the Light state every 3 seconds - Serial.println("======================"); - Serial.printf("Matter Light #1 is %s\r\n", OnOffLight1.getOnOff() ? "ON" : "OFF"); - Serial.printf("Matter Light #2 is %s\r\n", OnOffLight2.getOnOff() ? "ON" : "OFF"); - Serial.printf("Matter Light #3 is %s\r\n", OnOffLight3.getOnOff() ? "ON" : "OFF"); - delay(3000); + //displays the Light state every 5 seconds + if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s + Serial.println("======================"); + Serial.printf("Matter Light #1 is %s\r\n", Light1.getOnOff() ? "ON" : "OFF"); + Serial.printf("Matter Light #2 is %s\r\n", Light2.getOnOff() ? "ON" : "OFF"); + Serial.printf("Matter Light #3 is %s\r\n", Light3.getOnOff() ? "ON" : "OFF"); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); } diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino index cac511926aa..f1af4f84dfc 100644 --- a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -35,7 +35,13 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE #endif // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID @@ -117,11 +123,6 @@ void setup() { DimmableLight.updateAccessory(); } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light void loop() { // Check Matter Light Commissioning state, which may change during execution of loop() @@ -156,17 +157,18 @@ void loop() { // Onboard User Button is used as a Light toggle switch or to decommission it uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { - button_state = false; // released + if (digitalRead(buttonPin) == HIGH && button_state && time_diff > debouceTime) { // Toggle button is released - toggle the light Serial.println("User button released. Toggling Light!"); DimmableLight.toggle(); // Matter Controller also can see the change + button_state = false; // released + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - DimmableLight = false; // turn the light off - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + DimmableLight = false; // turn the light off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino index afba203b708..eddbd0f2b21 100644 --- a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino +++ b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino @@ -38,7 +38,13 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE #endif // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID @@ -147,11 +153,6 @@ void setup() { EnhancedColorLight.updateAccessory(); } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light void loop() { // Check Matter Light Commissioning state, which may change during execution of loop() @@ -194,12 +195,13 @@ void loop() { // Toggle button is released - toggle the light Serial.println("User button released. Toggling Light!"); EnhancedColorLight.toggle(); // Matter Controller also can see the change + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - EnhancedColorLight = false; // turn the light off - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + EnhancedColorLight = false; // turn the light off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/MatterFan/MatterFan.ino b/libraries/Matter/examples/MatterFan/MatterFan.ino index ac26550f2b6..a226dedf75d 100644 --- a/libraries/Matter/examples/MatterFan/MatterFan.ino +++ b/libraries/Matter/examples/MatterFan/MatterFan.ino @@ -20,8 +20,14 @@ // Fan Endpoint - On/Off control + Speed Percent Control + Fan Modes MatterFan Fan; -// set your board USER BUTTON pin here - used for toggling On/Off -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +// set your board USER BUTTON pin here - used for toggling On/Off and decommission the Matter Node +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // set your board Analog Pin here - used for changing the Fan speed const uint8_t analogPin = A0; // Analog Pin depends on each board @@ -56,7 +62,7 @@ void fanDCMotorDrive(bool fanState, uint8_t speedPercent) { } void setup() { - // Initialize the USER BUTTON (Boot button) GPIO that will toggle the Fan (On/Off) + // Initialize the USER BUTTON (Boot button) GPIO that will toggle the Fan (On/Off) and decommission the Matter Node pinMode(buttonPin, INPUT_PULLUP); // Initialize the Analog Pin A0 used to read input voltage and to set the Fan speed accordingly pinMode(analogPin, INPUT); @@ -140,12 +146,6 @@ void setup() { } } -// Builtin Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the Matter Fabric - void loop() { // Check Matter Accessory Commissioning state, which may change during execution of loop() if (!Matter.isDeviceCommissioned()) { @@ -181,12 +181,13 @@ void loop() { // button is released - toggle Fan On/Off Fan.toggle(); Serial.printf("User button released. Setting the Fan %s.\r\n", Fan > 0 ? "ON" : "OFF"); + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } // checks Analog pin and adjust the speed only if it has changed diff --git a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino index 719c91db23b..cc54d3c12c0 100644 --- a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino +++ b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino @@ -35,6 +35,14 @@ const uint8_t ledPin = LED_BUILTIN; const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN #endif +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + // Matter Protocol Endpoint (On/OFF Light) Callback bool matterCB(bool state) { digitalWrite(ledPin, state ? HIGH : LOW); @@ -47,6 +55,8 @@ const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); // Initialize the LED GPIO pinMode(ledPin, OUTPUT); @@ -77,5 +87,24 @@ void setup() { } void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + delay(500); } diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 0bdd0eb19b7..c7b8757f37b 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -34,7 +34,13 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE #endif // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID @@ -97,11 +103,6 @@ void setup() { OnOffLight.updateAccessory(); // configure the Light based on initial state } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light void loop() { // Check Matter Light Commissioning state, which may change during execution of loop() @@ -140,12 +141,13 @@ void loop() { // Toggle button is released - toggle the light Serial.println("User button released. Toggling Light!"); OnOffLight.toggle(); // Matter Controller also can see the change + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - OnOffLight.setOnOff(false); // turn the light off - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + OnOffLight.setOnOff(false); // turn the light off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino index 1d71f2123a6..929c13c1663 100644 --- a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino +++ b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino @@ -21,14 +21,20 @@ MatterGenericSwitch SmartButton; // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password void setup() { - // Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch + // Initialize the USER BUTTON (Boot button) GPIO that will act as a smart button or to decommission the Matter Node pinMode(buttonPin, INPUT_PULLUP); Serial.begin(115200); @@ -63,11 +69,6 @@ void setup() { Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the Matter Fabric void loop() { // Check Matter Accessory Commissioning state, which may change during execution of loop() @@ -105,11 +106,12 @@ void loop() { Serial.println("User button released. Sending Click to the Matter Controller!"); // Matter Controller will receive an event and, if programmed, it will trigger an action SmartButton.click(); + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino similarity index 89% rename from libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino rename to libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino index 0ff30f53ec0..7937303de54 100644 --- a/libraries/Matter/examples/Matter_CW_WW_Light/Matter_CW_WW_Light.ino +++ b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino @@ -36,7 +36,13 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE #endif // set your board USER BUTTON pin here -const uint8_t buttonPin = 0; // Set your pin here. Using BOOT Button. C6/C3 use GPIO9. +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID @@ -137,11 +143,6 @@ void setup() { CW_WW_Light.updateAccessory(); } } -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 10000; // keep the button pressed for 10s to decommission the light void loop() { // Check Matter Light Commissioning state, which may change during execution of loop() @@ -184,12 +185,13 @@ void loop() { // Toggle button is released - toggle the light Serial.println("User button released. Toggling Light!"); CW_WW_Light.toggle(); // Matter Controller also can see the change + } - // Factory reset is triggered if the button is pressed longer than 10 seconds - if (time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - CW_WW_Light = false; // turn the light off - Matter.decommission(); - } + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + CW_WW_Light = false; // turn the light off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } } diff --git a/libraries/Matter/examples/Matter_CW_WW_Light/ci.json b/libraries/Matter/examples/MatterTemperatureLight/ci.json similarity index 100% rename from libraries/Matter/examples/Matter_CW_WW_Light/ci.json rename to libraries/Matter/examples/MatterTemperatureLight/ci.json diff --git a/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino index 216406d6082..86055be26ee 100644 --- a/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino +++ b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino @@ -27,6 +27,14 @@ // Matter Temperature Sensor Endpoint MatterTemperatureSensor SimulatedTemperatureSensor; +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password @@ -47,6 +55,9 @@ float getSimulatedTemperature() { } void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + Serial.begin(115200); // Manually connect to WiFi @@ -86,9 +97,35 @@ void setup() { } void loop() { - Serial.printf("Current Temperature is %.02f \r\n", SimulatedTemperatureSensor.getTemperature()); - // update the temperature sensor value every 5 seconds - // Matter APP shall display the updated temperature - delay(5000); - SimulatedTemperatureSensor.setTemperature(getSimulatedTemperature()); + static uint32_t timeCounter = 0; + + // Print the current temperature value every 5s + if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s + // Print the current temperature value + Serial.printf("Current Temperature is %.02f \r\n", SimulatedTemperatureSensor.getTemperature()); + // Update Temperature from the (Simulated) Hardware Sensor + // Matter APP shall display the updated temperature percent + SimulatedTemperatureSensor.setTemperature(getSimulatedTemperature()); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); } diff --git a/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino b/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino index eaf1f5096e5..3434217624d 100644 --- a/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino +++ b/libraries/Matter/examples/WiFiProvWithinMatter/WiFiProvWithinMatter.ino @@ -41,6 +41,14 @@ const uint8_t ledPin = LED_BUILTIN; const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN #endif +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + // Matter Protocol Endpoint (On/OFF Light) Callback bool matterCB(bool state) { digitalWrite(ledPin, state ? HIGH : LOW); @@ -49,6 +57,9 @@ bool matterCB(bool state) { } void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + Serial.begin(115200); // Initialize the LED GPIO pinMode(ledPin, OUTPUT); @@ -118,5 +129,24 @@ void setup() { } void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + delay(500); } From 178af05079730648a1bfd98e6bb89eced68e1efb Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Tue, 10 Dec 2024 19:51:52 -0300 Subject: [PATCH 115/179] feat(matter): adds a new matter endpoint for pressure sensor --- CMakeLists.txt | 1 + .../MatterPressureSensor.ino | 131 ++++++++++++++++++ .../examples/MatterPressureSensor/ci.json | 7 + libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterPressureSensor.cpp | 99 +++++++++++++ .../MatterEndpoints/MatterPressureSensor.h | 62 +++++++++ 7 files changed, 305 insertions(+) create mode 100644 libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino create mode 100644 libraries/Matter/examples/MatterPressureSensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ed9ae23f83f..ec465a4182b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,6 +177,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterFan.cpp libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp + libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino new file mode 100644 index 00000000000..b1708f85d85 --- /dev/null +++ b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino @@ -0,0 +1,131 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Pressure Sensor Endpoint +MatterPressureSensor SimulatedPressureSensor; + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Simulate a pressure sensor - add your preferred pressure sensor library code here +float getSimulatedPressure() { + // The Endpoint implementation keeps an uint16_t as internal value information, + // which stores data in hPa (pressure measurement unit) + static float simulatedPressureHWSensor = 950; + + // it will increase from 950 to 1100 hPa in steps of 10 hPa to simulate a pressure sensor + simulatedPressureHWSensor = simulatedPressureHWSensor + 10; + if (simulatedPressureHWSensor > 1100) { + simulatedPressureHWSensor = 950; + } + + return simulatedPressureHWSensor; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial pressure sensor measurement + // Simulated Sensor - it shall initially print 900hPa and then move to the 950 to 1100 hPa as pressure range + SimulatedPressureSensor.begin(900.00); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Pressure Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + static uint32_t timeCounter = 0; + + // Print the current pressure value every 5s + if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s + // Print the current pressure value + Serial.printf("Current Pressure is %.02fhPa\r\n", SimulatedPressureSensor.getPressure()); + // Update Pressure from the (Simulated) Hardware Sensor + // Matter APP shall display the updated pressure percent + SimulatedPressureSensor.setPressure(getSimulatedPressure()); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + // Factory reset is triggered if the button is pressed longer than 10 seconds + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + } + + delay(500); +} diff --git a/libraries/Matter/examples/MatterPressureSensor/ci.json b/libraries/Matter/examples/MatterPressureSensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterPressureSensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index c54b040d94b..287b8789a86 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -20,6 +20,7 @@ FanMode_t KEYWORD1 FanModeSequence_t KEYWORD1 MatterTemperatureSensor KEYWORD1 MatterHumiditySensor KEYWORD1 +MatterPressureSensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -68,6 +69,8 @@ setTemperature KEYWORD2 getTemperature KEYWORD2 setHumidity KEYWORD2 getHumidity KEYWORD2 +setPressure KEYWORD2 +getPressure KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 4b7804d61df..ebde7cdf589 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -28,6 +28,7 @@ #include #include #include +#include using namespace esp_matter; @@ -62,6 +63,7 @@ class ArduinoMatter { friend class MatterFan; friend class MatterTemperatureSensor; friend class MatterHumiditySensor; + friend class MatterPressureSensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp new file mode 100644 index 00000000000..6b54cf8af3a --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp @@ -0,0 +1,99 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterPressureSensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Pressure Sensor device has not begun."); + return false; + } + + log_d("Pressure Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterPressureSensor::MatterPressureSensor() {} + +MatterPressureSensor::~MatterPressureSensor() { + end(); +} + +bool MatterPressureSensor::begin(int16_t _rawPressure) { + ArduinoMatter::_init(); + + pressure_sensor::config_t pressure_sensor_config; + pressure_sensor_config.pressure_measurement.pressure_measured_value = _rawPressure; + pressure_sensor_config.pressure_measurement.pressure_min_measured_value = nullptr; + pressure_sensor_config.pressure_measurement.pressure_max_measured_value = nullptr; + + // endpoint handles can be used to add/modify clusters + endpoint_t *endpoint = pressure_sensor::create(node::get(), &pressure_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Pressure Sensor endpoint"); + return false; + } + rawPressure = _rawPressure; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Pressure Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterPressureSensor::end() { + started = false; +} + +bool MatterPressureSensor::setRawPressure(int16_t _rawPressure) { + if (!started) { + log_e("Matter Pressure Sensor device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (rawPressure == _rawPressure) { + return true; + } + + esp_matter_attr_val_t pressureVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id, &pressureVal)) { + log_e("Failed to get Pressure Sensor Attribute."); + return false; + } + if (pressureVal.val.i16 != _rawPressure) { + pressureVal.val.i16 = _rawPressure; + bool ret; + ret = updateAttributeVal(PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id, &pressureVal); + if (!ret) { + log_e("Failed to update Fan Speed Percent Attribute."); + return false; + } + rawPressure = _rawPressure; + } + log_v("Pressure Sensor set to %.02f Degrees", (float)_rawPressure / 100.00); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h new file mode 100644 index 00000000000..9fdd90c6ebe --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h @@ -0,0 +1,62 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterPressureSensor : public MatterEndPoint { +public: + MatterPressureSensor(); + ~MatterPressureSensor(); + // begin Matter Pressure Sensor endpoint with initial float pressure + bool begin(double pressure = 0.00) { + return begin(static_cast(pressure)); + } + // this will stop processing Pressure Sensor Matter events + void end(); + + // set the reported raw pressure in hPa + bool setPressure(double pressure) { + int16_t rawValue = static_cast(pressure); + return setRawPressure(rawValue); + } + // returns the reported float pressure in hPa + double getPressure() { + return (double)rawPressure; + } + // double conversion operator + void operator=(double pressure) { + setPressure(pressure); + } + // double conversion operator + operator double() { + return (double)getPressure(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + bool started = false; + // implementation keeps pressure in hPa + int16_t rawPressure = 0; + // internal function to set the raw pressure value (Matter Cluster) + bool setRawPressure(int16_t _rawPressure); + bool begin(int16_t _rawPressure); +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 59bc22a98f18ccad725d3cca14c6394928eab01f Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 11 Dec 2024 00:49:58 +0000 Subject: [PATCH 116/179] IDF release/v5.3 9a6aba74 --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 6b5a6370a4f..0140b1aa065 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-a0f798cf" + "version": "idf-release_v5.3-9a6aba74-v1" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-a0f798cf", + "version": "idf-release_v5.3-9a6aba74-v1", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-a0f798cf.zip", - "checksum": "SHA-256:f552d02ecef616389f1d0c973cb270718a192e6258db426656cd5965db3c6ed0", - "size": "339750940" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", + "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", + "size": "340725612" } ] }, From 9c383687e0601d855e9680172526ea6ef302ca1c Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Wed, 11 Dec 2024 00:18:11 -0300 Subject: [PATCH 117/179] feat(matter): creates a matter contact sensor endpoint --- CMakeLists.txt | 1 + .../MatterContactSensor.ino | 152 ++++++++++++++++++ .../examples/MatterContactSensor/ci.json | 7 + libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterContactSensor.cpp | 98 +++++++++++ .../src/MatterEndpoints/MatterContactSensor.h | 54 +++++++ 7 files changed, 317 insertions(+) create mode 100644 libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino create mode 100644 libraries/Matter/examples/MatterContactSensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterContactSensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index ed9ae23f83f..f3d889eb4c2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -177,6 +177,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterFan.cpp libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp + libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino new file mode 100644 index 00000000000..ebea5000536 --- /dev/null +++ b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino @@ -0,0 +1,152 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * The example will create a Matter Contact Sensor Device. + * The Contact Sensor state can be toggled by pressing the onboard button. + * The Contact Sensor state will be indicated by the onboard LED. + * The Contact Sensor state will be simulated to change every 20 seconds. + * + * The onboard button can be kept pressed for 5 seconds to decommission the Matter Node. + * The example will also show the manual commissioning code and QR code to be used in the Matter environment. + * + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Contact Sensor Endpoint +MatterContactSensor ContactSensor; + +// LED will be used to indicate the Contact Sensor state +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here - decommissioning and Manual Contact Sensor toggle button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + // The button will also be used to manually toggle the Contact Sensor state + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial contact sensor state as false (default) + ContactSensor.begin(); + digitalWrite(ledPin, LOW); // LED OFF + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Contact Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +bool simulatedHWContactSensor() { + // Simulated Contact Sensor + static bool contactState = false; + static uint32_t lastTime = 0; + + // Simulate a Contact Sensor state change every 20 seconds + if (millis() - lastTime > 20000) { + contactState = !contactState; + lastTime = millis(); + } + return contactState; +} + +void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // button is released - toggle Contact State (Open/Closed) + ContactSensor.setContact(!ContactSensor.getContact()); // same as ContactSensor = !ContactSensor; + Serial.printf("User button released. Setting the Contact Sensor to %s.\r\n", ContactSensor ? "Closed" : "Open"); + // LED will indicate the Contact Sensor state + if (ContactSensor) { + digitalWrite(ledPin, HIGH); // LED ON + } else { + digitalWrite(ledPin, LOW); // LED OFF + } + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + // Simulated Contact Sensor + ContactSensor.setContact(simulatedHWContactSensor()); + + delay(50); +} diff --git a/libraries/Matter/examples/MatterContactSensor/ci.json b/libraries/Matter/examples/MatterContactSensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterContactSensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index c54b040d94b..5b04d6f91e4 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -20,6 +20,7 @@ FanMode_t KEYWORD1 FanModeSequence_t KEYWORD1 MatterTemperatureSensor KEYWORD1 MatterHumiditySensor KEYWORD1 +MatterContactSensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -68,6 +69,8 @@ setTemperature KEYWORD2 getTemperature KEYWORD2 setHumidity KEYWORD2 getHumidity KEYWORD2 +setContact KEYWORD2 +getContact KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 4b7804d61df..65483abb583 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -28,6 +28,7 @@ #include #include #include +#include using namespace esp_matter; @@ -62,6 +63,7 @@ class ArduinoMatter { friend class MatterFan; friend class MatterTemperatureSensor; friend class MatterHumiditySensor; + friend class MatterContactSensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp new file mode 100644 index 00000000000..24266c82c95 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp @@ -0,0 +1,98 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterContactSensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Contact Sensor device has not begun."); + return false; + } + + log_d("Contact Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterContactSensor::MatterContactSensor() {} + +MatterContactSensor::~MatterContactSensor() { + end(); +} + +bool MatterContactSensor::begin(bool _contactState) { + ArduinoMatter::_init(); + + contact_sensor::config_t contact_sensor_config; + contact_sensor_config.boolean_state.state_value = _contactState; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = contact_sensor::create(node::get(), &contact_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Contact Sensor endpoint"); + return false; + } + contactState = _contactState; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Contact Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterContactSensor::end() { + started = false; +} + +bool MatterContactSensor::setContact(bool _contactState) { + if (!started) { + log_e("Matter Contact Sensor device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (contactState == _contactState) { + return true; + } + + esp_matter_attr_val_t contactVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(BooleanState::Id, BooleanState::Attributes::StateValue::Id, &contactVal)) { + log_e("Failed to get Contact Sensor Attribute."); + return false; + } + if (contactVal.val.u8 != _contactState) { + contactVal.val.u8 = _contactState; + bool ret; + ret = updateAttributeVal(BooleanState::Id, BooleanState::Attributes::StateValue::Id, &contactVal); + if (!ret) { + log_e("Failed to update Contact Sensor Attribute."); + return false; + } + contactState = _contactState; + } + log_v("Contact Sensor set to %s", _contactState ? "Closed" : "Open"); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h new file mode 100644 index 00000000000..257da785e53 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h @@ -0,0 +1,54 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterContactSensor : public MatterEndPoint { +public: + MatterContactSensor(); + ~MatterContactSensor(); + // begin Matter Contact Sensor endpoint with initial contact state + bool begin(bool _contactState = false); + // this will just stop processing Contact Sensor Matter events + void end(); + + // set the contact state + bool setContact(bool _contactState); + // returns the contact state + bool getContact() { + return contactState; + } + + // bool conversion operator + void operator=(bool _contactState) { + setContact(_contactState); + } + // bool conversion operator + operator bool() { + return getContact(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + bool started = false; + bool contactState = false; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 1f9eb74337a453a9fba4d3b2120a14270a6d5725 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Wed, 11 Dec 2024 00:25:43 -0300 Subject: [PATCH 118/179] fix(matter): fix a bad error message - left over --- libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp index 6b54cf8af3a..a157469c980 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp @@ -86,7 +86,7 @@ bool MatterPressureSensor::setRawPressure(int16_t _rawPressure) { bool ret; ret = updateAttributeVal(PressureMeasurement::Id, PressureMeasurement::Attributes::MeasuredValue::Id, &pressureVal); if (!ret) { - log_e("Failed to update Fan Speed Percent Attribute."); + log_e("Failed to update Pressure Sensor Measurement Attribute."); return false; } rawPressure = _rawPressure; From 07a3e629c88e01d2d9f14dcdfdfca4f52a9bc2c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 11 Dec 2024 10:35:54 +0100 Subject: [PATCH 119/179] fix(example): Remove wait on Serial after begin --- .../Zigbee_Color_Dimmable_Light.ino | 3 --- .../Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino | 3 --- .../examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino | 4 +--- .../examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino | 3 --- .../examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino | 3 --- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 4 +--- .../Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino | 4 +--- .../Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino | 3 --- 8 files changed, 3 insertions(+), 24 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino index c43981459f0..e84720d4863 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmable_Light/Zigbee_Color_Dimmable_Light.ino @@ -66,9 +66,6 @@ void identify(uint16_t time) { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } // Init RMT and leave light OFF rgbLedWrite(led, 0, 0, 0); diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino index 0ae8fd86a75..6af87748b2d 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino @@ -47,9 +47,6 @@ ZigbeeColorDimmerSwitch zbSwitch = ZigbeeColorDimmerSwitch(SWITCH_ENDPOINT_NUMBE /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } //Init button switch pinMode(button, INPUT_PULLUP); diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino index 23c9b38f7c9..6db8bd7b022 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Light/Zigbee_On_Off_Light.ino @@ -47,9 +47,7 @@ void setLED(bool value) { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } + // Init LED and turn it OFF (if LED_PIN == RGB_BUILTIN, the rgbLedWrite() will be used under the hood) pinMode(led, OUTPUT); digitalWrite(led, LOW); diff --git a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino index d40f54bc5d9..56d23cdc95f 100644 --- a/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_On_Off_Switch/Zigbee_On_Off_Switch.ino @@ -95,9 +95,6 @@ static void enableGpioInterrupt(bool enabled) { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } //Optional: set Zigbee device name and model zbSwitch.setManufacturerAndModel("Espressif", "ZigbeeSwitch"); diff --git a/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino b/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino index c3a74e0aee5..eab6ecfd76e 100644 --- a/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino +++ b/libraries/Zigbee/examples/Zigbee_Scan_Networks/Zigbee_Scan_Networks.ino @@ -76,9 +76,6 @@ void printScannedNetworks(uint16_t networksFound) { void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } // Initialize Zigbee stack without any EPs just for scanning if (!Zigbee.begin(role)) { diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index 67d36fce6cf..2b342161199 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -68,9 +68,7 @@ void meausureAndSleep() { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } + // Init button switch pinMode(button, INPUT_PULLUP); diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino index e3fb1273735..22b0c6fbeed 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino @@ -53,9 +53,7 @@ static void temp_sensor_value_update(void *arg) { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } + // Init button switch pinMode(button, INPUT_PULLUP); diff --git a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino index 3de30dff6be..a4720feeba4 100644 --- a/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino +++ b/libraries/Zigbee/examples/Zigbee_Thermostat/Zigbee_Thermostat.ino @@ -60,9 +60,6 @@ void recieveSensorConfig(float min_temp, float max_temp, float tolerance) { /********************* Arduino functions **************************/ void setup() { Serial.begin(115200); - while (!Serial) { - delay(10); - } // Init button switch pinMode(button, INPUT_PULLUP); From 7c95911ff158d3677edaf7228ec25ae145bc1051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:13:46 +0100 Subject: [PATCH 120/179] fix(SDMMC): Remove need for BOARD_HAS_SDMMC for esp32 --- libraries/SD_MMC/src/SD_MMC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 4a0962ff7e4..4665198c4ae 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -49,7 +49,7 @@ SDMMCFS::SDMMCFS(FSImplPtr impl) : FS(impl), _card(nullptr) { _pin_d3 = SDMMC_D3; #endif // BOARD_HAS_1BIT_SDMMC -#elif defined(SOC_SDMMC_USE_IOMUX) && defined(BOARD_HAS_SDMMC) && defined(CONFIG_IDF_TARGET_ESP32) +#elif defined(SOC_SDMMC_USE_IOMUX) && defined(CONFIG_IDF_TARGET_ESP32) _pin_clk = SDMMC_SLOT1_IOMUX_PIN_NUM_CLK; _pin_cmd = SDMMC_SLOT1_IOMUX_PIN_NUM_CMD; _pin_d0 = SDMMC_SLOT1_IOMUX_PIN_NUM_D0; From bfc45db3af2bd920f6dcee3c4f66553daa4a9e5c Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 11 Dec 2024 08:56:12 -0300 Subject: [PATCH 121/179] ci(tests): Re-enable UART test for P4 --- tests/validation/uart/ci.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/validation/uart/ci.json b/tests/validation/uart/ci.json index dc24acbaee2..54da33b6176 100644 --- a/tests/validation/uart/ci.json +++ b/tests/validation/uart/ci.json @@ -1,8 +1,5 @@ { "platforms": { "qemu": false - }, - "targets": { - "esp32p4": false } } From 56a9b1d123fc7c8ea08703818bb68dbeb5536b27 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:25:13 +0000 Subject: [PATCH 122/179] ci(pre-commit): Apply automatic fixes --- .../MatterPressureSensor.ino | 262 +++++++++--------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino index b1708f85d85..aa6b28f199f 100644 --- a/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino +++ b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino @@ -1,131 +1,131 @@ -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * This example is an example code that will create a Matter Device which can be - * commissioned and controlled from a Matter Environment APP. - * Additionally the ESP32 will send debug messages indicating the Matter activity. - * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. - */ - -// Matter Manager -#include -#include - -// List of Matter Endpoints for this Node -// Matter Pressure Sensor Endpoint -MatterPressureSensor SimulatedPressureSensor; - -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Button control - decommision the Matter Node -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -// Simulate a pressure sensor - add your preferred pressure sensor library code here -float getSimulatedPressure() { - // The Endpoint implementation keeps an uint16_t as internal value information, - // which stores data in hPa (pressure measurement unit) - static float simulatedPressureHWSensor = 950; - - // it will increase from 950 to 1100 hPa in steps of 10 hPa to simulate a pressure sensor - simulatedPressureHWSensor = simulatedPressureHWSensor + 10; - if (simulatedPressureHWSensor > 1100) { - simulatedPressureHWSensor = 950; - } - - return simulatedPressureHWSensor; -} - -void setup() { - // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - pinMode(buttonPin, INPUT_PULLUP); - - Serial.begin(115200); - - // Manually connect to WiFi - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println(); - - // set initial pressure sensor measurement - // Simulated Sensor - it shall initially print 900hPa and then move to the 950 to 1100 hPa as pressure range - SimulatedPressureSensor.begin(900.00); - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - - // Check Matter Accessory Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Pressure Sensor Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } -} - -void loop() { - static uint32_t timeCounter = 0; - - // Print the current pressure value every 5s - if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s - // Print the current pressure value - Serial.printf("Current Pressure is %.02fhPa\r\n", SimulatedPressureSensor.getPressure()); - // Update Pressure from the (Simulated) Hardware Sensor - // Matter APP shall display the updated pressure percent - SimulatedPressureSensor.setPressure(getSimulatedPressure()); - } - - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - if (digitalRead(buttonPin) == HIGH && button_state) { - button_state = false; // released - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > decommissioningTimeout) { - // Factory reset is triggered if the button is pressed longer than 10 seconds - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - } - - delay(500); -} +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Pressure Sensor Endpoint +MatterPressureSensor SimulatedPressureSensor; + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Simulate a pressure sensor - add your preferred pressure sensor library code here +float getSimulatedPressure() { + // The Endpoint implementation keeps an uint16_t as internal value information, + // which stores data in hPa (pressure measurement unit) + static float simulatedPressureHWSensor = 950; + + // it will increase from 950 to 1100 hPa in steps of 10 hPa to simulate a pressure sensor + simulatedPressureHWSensor = simulatedPressureHWSensor + 10; + if (simulatedPressureHWSensor > 1100) { + simulatedPressureHWSensor = 950; + } + + return simulatedPressureHWSensor; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial pressure sensor measurement + // Simulated Sensor - it shall initially print 900hPa and then move to the 950 to 1100 hPa as pressure range + SimulatedPressureSensor.begin(900.00); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Pressure Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + static uint32_t timeCounter = 0; + + // Print the current pressure value every 5s + if (!(timeCounter++ % 10)) { // delaying for 500ms x 10 = 5s + // Print the current pressure value + Serial.printf("Current Pressure is %.02fhPa\r\n", SimulatedPressureSensor.getPressure()); + // Update Pressure from the (Simulated) Hardware Sensor + // Matter APP shall display the updated pressure percent + SimulatedPressureSensor.setPressure(getSimulatedPressure()); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + // Factory reset is triggered if the button is pressed longer than 10 seconds + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + } + + delay(500); +} From dfa732419b4b0453dd41ed24dd4ddff84ca38162 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Wed, 11 Dec 2024 12:35:59 +0000 Subject: [PATCH 123/179] IDF release/v5.3 083aad99 --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 0140b1aa065..63bb102549b 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-9a6aba74-v1" + "version": "idf-release_v5.3-083aad99-v1" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-9a6aba74-v1", + "version": "idf-release_v5.3-083aad99-v1", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-9a6aba74-v1.zip", - "checksum": "SHA-256:e218500a539d4d2ba06f588efea1ed71c8a6a99916f4316e433758f41860b33d", - "size": "340725612" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", + "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", + "size": "341111216" } ] }, From 8cbc39512237394c081b16e09f1c0364d85ccbec Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:30:13 +0000 Subject: [PATCH 124/179] ci(pre-commit): Apply automatic fixes --- .../MatterContactSensor.ino | 304 +++++++++--------- .../MatterEndpoints/MatterContactSensor.cpp | 2 +- 2 files changed, 153 insertions(+), 153 deletions(-) diff --git a/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino index ebea5000536..7b4d95a880b 100644 --- a/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino +++ b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino @@ -1,152 +1,152 @@ -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * This example is an example code that will create a Matter Device which can be - * commissioned and controlled from a Matter Environment APP. - * Additionally the ESP32 will send debug messages indicating the Matter activity. - * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. - * - * The example will create a Matter Contact Sensor Device. - * The Contact Sensor state can be toggled by pressing the onboard button. - * The Contact Sensor state will be indicated by the onboard LED. - * The Contact Sensor state will be simulated to change every 20 seconds. - * - * The onboard button can be kept pressed for 5 seconds to decommission the Matter Node. - * The example will also show the manual commissioning code and QR code to be used in the Matter environment. - * - */ - -// Matter Manager -#include -#include - -// List of Matter Endpoints for this Node -// Matter Contact Sensor Endpoint -MatterContactSensor ContactSensor; - -// LED will be used to indicate the Contact Sensor state -// set your board RGB LED pin here -#ifdef RGB_BUILTIN -const uint8_t ledPin = RGB_BUILTIN; -#else -const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN -#warning "Do not forget to set the RGB LED pin" -#endif - -// set your board USER BUTTON pin here - decommissioning and Manual Contact Sensor toggle button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t debouceTime = 250; // button debouncing time (ms) -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -void setup() { - // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - // The button will also be used to manually toggle the Contact Sensor state - pinMode(buttonPin, INPUT_PULLUP); - // Initialize the LED (light) GPIO and Matter End Point - pinMode(ledPin, OUTPUT); - - Serial.begin(115200); - - // Manually connect to WiFi - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println(); - - // set initial contact sensor state as false (default) - ContactSensor.begin(); - digitalWrite(ledPin, LOW); // LED OFF - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - - // Check Matter Accessory Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Contact Sensor Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } -} - -bool simulatedHWContactSensor() { - // Simulated Contact Sensor - static bool contactState = false; - static uint32_t lastTime = 0; - - // Simulate a Contact Sensor state change every 20 seconds - if (millis() - lastTime > 20000) { - contactState = !contactState; - lastTime = millis(); - } - return contactState; -} - -void loop() { - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { - button_state = false; // released - // button is released - toggle Contact State (Open/Closed) - ContactSensor.setContact(!ContactSensor.getContact()); // same as ContactSensor = !ContactSensor; - Serial.printf("User button released. Setting the Contact Sensor to %s.\r\n", ContactSensor ? "Closed" : "Open"); - // LED will indicate the Contact Sensor state - if (ContactSensor) { - digitalWrite(ledPin, HIGH); // LED ON - } else { - digitalWrite(ledPin, LOW); // LED OFF - } - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - if (button_state && time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so - } - - // Simulated Contact Sensor - ContactSensor.setContact(simulatedHWContactSensor()); - - delay(50); -} +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * The example will create a Matter Contact Sensor Device. + * The Contact Sensor state can be toggled by pressing the onboard button. + * The Contact Sensor state will be indicated by the onboard LED. + * The Contact Sensor state will be simulated to change every 20 seconds. + * + * The onboard button can be kept pressed for 5 seconds to decommission the Matter Node. + * The example will also show the manual commissioning code and QR code to be used in the Matter environment. + * + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Contact Sensor Endpoint +MatterContactSensor ContactSensor; + +// LED will be used to indicate the Contact Sensor state +// set your board RGB LED pin here +#ifdef RGB_BUILTIN +const uint8_t ledPin = RGB_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the RGB LED pin" +#endif + +// set your board USER BUTTON pin here - decommissioning and Manual Contact Sensor toggle button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t debouceTime = 250; // button debouncing time (ms) +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + // The button will also be used to manually toggle the Contact Sensor state + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED (light) GPIO and Matter End Point + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial contact sensor state as false (default) + ContactSensor.begin(); + digitalWrite(ledPin, LOW); // LED OFF + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Contact Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +bool simulatedHWContactSensor() { + // Simulated Contact Sensor + static bool contactState = false; + static uint32_t lastTime = 0; + + // Simulate a Contact Sensor state change every 20 seconds + if (millis() - lastTime > 20000) { + contactState = !contactState; + lastTime = millis(); + } + return contactState; +} + +void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + // button is released - toggle Contact State (Open/Closed) + ContactSensor.setContact(!ContactSensor.getContact()); // same as ContactSensor = !ContactSensor; + Serial.printf("User button released. Setting the Contact Sensor to %s.\r\n", ContactSensor ? "Closed" : "Open"); + // LED will indicate the Contact Sensor state + if (ContactSensor) { + digitalWrite(ledPin, HIGH); // LED ON + } else { + digitalWrite(ledPin, LOW); // LED OFF + } + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + // Simulated Contact Sensor + ContactSensor.setContact(simulatedHWContactSensor()); + + delay(50); +} diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp index 24266c82c95..44ba1c75a44 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp @@ -75,7 +75,7 @@ bool MatterContactSensor::setContact(bool _contactState) { } esp_matter_attr_val_t contactVal = esp_matter_invalid(NULL); - + if (!getAttributeVal(BooleanState::Id, BooleanState::Attributes::StateValue::Id, &contactVal)) { log_e("Failed to get Contact Sensor Attribute."); return false; From 3a8d4c5244e4c77cff9fc0af1a534b70cb4e4513 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Wed, 11 Dec 2024 14:35:32 +0100 Subject: [PATCH 125/179] fix(example): Use Serial in printBoundDevices() --- .../Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino index 6af87748b2d..a313f3c0594 100644 --- a/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino +++ b/libraries/Zigbee/examples/Zigbee_Color_Dimmer_Switch/Zigbee_Color_Dimmer_Switch.ino @@ -142,6 +142,6 @@ void loop() { static uint32_t last_print = 0; if (millis() - last_print > 30000) { last_print = millis(); - zbSwitch.printBoundDevices(); + zbSwitch.printBoundDevices(Serial); } } From 4ecfd35ec66cf1d9de2d728d0a092ef6deb4a39d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 13:52:12 +0000 Subject: [PATCH 126/179] ci(pre-commit): Apply automatic fixes --- libraries/WiFiProv/src/WiFiProv.cpp | 4 ++-- libraries/WiFiProv/src/WiFiProv.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/WiFiProv/src/WiFiProv.cpp b/libraries/WiFiProv/src/WiFiProv.cpp index fb67377a2ee..31337196b5f 100644 --- a/libraries/WiFiProv/src/WiFiProv.cpp +++ b/libraries/WiFiProv/src/WiFiProv.cpp @@ -1,4 +1,4 @@ - /* +/* WiFiProv.cpp - WiFiProv class for provisioning All rights reserved. @@ -129,7 +129,7 @@ void WiFiProvClass ::beginProvision( const char *service_key, uint8_t *uuid, bool reset_provisioned ) { if (!this->provInitDone) { - WiFiProvClass ::initProvision( prov_scheme, scheme_handler, reset_provisioned); + WiFiProvClass ::initProvision(prov_scheme, scheme_handler, reset_provisioned); } static char service_name_temp[32]; if (provisioned == false) { diff --git a/libraries/WiFiProv/src/WiFiProv.h b/libraries/WiFiProv/src/WiFiProv.h index 53af27f7c80..b660f8cf064 100644 --- a/libraries/WiFiProv/src/WiFiProv.h +++ b/libraries/WiFiProv/src/WiFiProv.h @@ -50,10 +50,10 @@ class WiFiProvClass { private: bool provInitDone = false; bool provisioned = false; + public: void initProvision( - prov_scheme_t prov_scheme = NETWORK_PROV_SCHEME_SOFTAP, scheme_handler_t scheme_handler = NETWORK_PROV_SCHEME_HANDLER_NONE, - bool reset_provisioned = false + prov_scheme_t prov_scheme = NETWORK_PROV_SCHEME_SOFTAP, scheme_handler_t scheme_handler = NETWORK_PROV_SCHEME_HANDLER_NONE, bool reset_provisioned = false ); void beginProvision( prov_scheme_t prov_scheme = NETWORK_PROV_SCHEME_SOFTAP, scheme_handler_t scheme_handler = NETWORK_PROV_SCHEME_HANDLER_NONE, From e17900b02abc1dae61a5a8c13fbef5826ca36b3b Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Wed, 11 Dec 2024 15:57:54 -0300 Subject: [PATCH 127/179] feat(matter): adds matter occupancy sensor endpoint --- CMakeLists.txt | 1 + .../MatterOccupancySensor.ino | 129 ++++++++++++++++++ .../examples/MatterOccupancySensor/ci.json | 7 + libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterOccupancySensor.cpp | 107 +++++++++++++++ .../MatterEndpoints/MatterOccupancySensor.h | 73 ++++++++++ 7 files changed, 322 insertions(+) create mode 100644 libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino create mode 100644 libraries/Matter/examples/MatterOccupancySensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b6478aa16a3..322824f11ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -179,6 +179,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp + libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino new file mode 100644 index 00000000000..5b4baf23442 --- /dev/null +++ b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino @@ -0,0 +1,129 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * The example will create a Matter Occupancy Sensor Device. + * The Occupancy Sensor will be simulated to change its state every 2 minutes. + * + * The onboard button can be kept pressed for 5 seconds to decommission the Matter Node. + * The example will also show the manual commissioning code and QR code to be used in the Matter environment. + * + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Occupancy Sensor Endpoint +MatterOccupancySensor OccupancySensor; + +// set your board USER BUTTON pin here - decommissioning only +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + // The button will also be used to manually toggle the Occupancy Sensor state + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial occupancy sensor state as false and connected to a PIR sensor type (default) + OccupancySensor.begin(); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +bool simulatedHWOccupancySensor() { + // Simulated Occupancy Sensor + static bool occupancyState = false; + static uint32_t lastTime = millis(); + const uint32_t occupancyTimeout = 120000; // 2 minutes to toggle the state + + // Simulate a Occupancy Sensor state change every 2 minutes + if (millis() - lastTime > occupancyTimeout) { + occupancyState = !occupancyState; + lastTime = millis(); + } + return occupancyState; +} + +void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (button_state && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + // Check Simulated Occupancy Sensor and set Matter Attribute + OccupancySensor.setOccupancy(simulatedHWOccupancySensor()); + + delay(50); +} diff --git a/libraries/Matter/examples/MatterOccupancySensor/ci.json b/libraries/Matter/examples/MatterOccupancySensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterOccupancySensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index d75e9888afd..1daf65974ed 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -22,6 +22,7 @@ MatterTemperatureSensor KEYWORD1 MatterHumiditySensor KEYWORD1 MatterContactSensor KEYWORD1 MatterPressureSensor KEYWORD1 +MatterOccupancySensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -74,6 +75,8 @@ setContact KEYWORD2 getContact KEYWORD2 setPressure KEYWORD2 getPressure KEYWORD2 +setOccupancy KEYWORD2 +getOccupancy KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 02571dbcf40..bc0a0ec1cc7 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -30,6 +30,7 @@ #include #include #include +#include using namespace esp_matter; @@ -66,6 +67,7 @@ class ArduinoMatter { friend class MatterHumiditySensor; friend class MatterContactSensor; friend class MatterPressureSensor; + friend class MatterOccupancySensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp new file mode 100644 index 00000000000..9efa984431a --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp @@ -0,0 +1,107 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +const uint8_t MatterOccupancySensor::occupancySensorTypeBitmap[4] = { + MatterOccupancySensor::occupancySensorTypePir, + MatterOccupancySensor::occupancySensorTypePir | MatterOccupancySensor::occupancySensorTypeUltrasonic, + MatterOccupancySensor::occupancySensorTypeUltrasonic, + MatterOccupancySensor::occupancySensorTypePhysicalContact +}; + +bool MatterOccupancySensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Occupancy Sensor device has not begun."); + return false; + } + + log_d("Occupancy Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterOccupancySensor::MatterOccupancySensor() {} + +MatterOccupancySensor::~MatterOccupancySensor() { + end(); +} + +bool MatterOccupancySensor::begin(bool _occupancyState, OccupancySensorType_t _occupancySensorType) { + ArduinoMatter::_init(); + + occupancy_sensor::config_t occupancy_sensor_config; + occupancy_sensor_config.occupancy_sensing.occupancy = _occupancyState; + occupancy_sensor_config.occupancy_sensing.occupancy_sensor_type = _occupancySensorType; + occupancy_sensor_config.occupancy_sensing.occupancy_sensor_type_bitmap = occupancySensorTypeBitmap[_occupancySensorType]; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = occupancy_sensor::create(node::get(), &occupancy_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Occupancy Sensor endpoint"); + return false; + } + occupancyState = _occupancyState; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Occupancy Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterOccupancySensor::end() { + started = false; +} + +bool MatterOccupancySensor::setOccupancy(bool _occupancyState) { + if (!started) { + log_e("Matter Occupancy Sensor device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (occupancyState == _occupancyState) { + return true; + } + + esp_matter_attr_val_t occupancyVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, &occupancyVal)) { + log_e("Failed to get Occupancy Sensor Attribute."); + return false; + } + if (occupancyVal.val.u8 != _occupancyState) { + occupancyVal.val.u8 = _occupancyState; + bool ret; + ret = updateAttributeVal(OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, &occupancyVal); + if (!ret) { + log_e("Failed to update Occupancy Sensor Attribute."); + return false; + } + occupancyState = _occupancyState; + } + log_v("Occupancy Sensor set to %s", _occupancyState ? "Occupied" : "Vacant"); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h new file mode 100644 index 00000000000..30f312a9841 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h @@ -0,0 +1,73 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace chip::app::Clusters::OccupancySensing; + +class MatterOccupancySensor : public MatterEndPoint { +public: + // Different Occupancy Sensor Types + enum OccupancySensorType_t { + OCCUPANCY_SENSOR_TYPE_PIR = (uint8_t)OccupancySensorTypeEnum::kPir, + OCCUPANCY_SENSOR_TYPE_ULTRASONIC = (uint8_t)OccupancySensorTypeEnum::kUltrasonic, + OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = (uint8_t)OccupancySensorTypeEnum::kPIRAndUltrasonic, + OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = (uint8_t)OccupancySensorTypeEnum::kPhysicalContact + }; + + MatterOccupancySensor(); + ~MatterOccupancySensor(); + // begin Matter Occupancy Sensor endpoint with initial occupancy state and default PIR sensor type + bool begin(bool _occupancyState = false, OccupancySensorType_t _occupancySensorType = OCCUPANCY_SENSOR_TYPE_PIR); + // this will just stop processing Occupancy Sensor Matter events + void end(); + + // set the occupancy state + bool setOccupancy(bool _occupancyState); + // returns the occupancy state + bool getOccupancy() { + return occupancyState; + } + + // bool conversion operator + void operator=(bool _occupancyState) { + setOccupancy(_occupancyState); + } + // bool conversion operator + operator bool() { + return getOccupancy(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + // bitmap for Occupancy Sensor Types + static const uint8_t occupancySensorTypePir = 0x01; + static const uint8_t occupancySensorTypeUltrasonic = 0x02; + static const uint8_t occupancySensorTypePhysicalContact = 0x04; + + // bitmap for Occupancy Sensor Type Bitmap mapped array + static const uint8_t occupancySensorTypeBitmap[4]; + + bool started = false; + bool occupancyState = false; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From d072cdd41f0788f849c8b41edc7ce141055186a8 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:50:49 -0300 Subject: [PATCH 128/179] change(esptool): Bump to version 4.9.dev3 --- package/package_esp32_index.template.json | 60 +++++++++++------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 63bb102549b..16476f27d56 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -72,7 +72,7 @@ { "packager": "esp32", "name": "esptool_py", - "version": "4.9.dev1" + "version": "4.9.dev3" }, { "packager": "esp32", @@ -460,56 +460,56 @@ }, { "name": "esptool_py", - "version": "4.9.dev1", + "version": "4.9.dev3", "systems": [ { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-amd64.tar.gz", - "archiveFileName": "esptool-v4.9.dev1-linux-amd64.tar.gz", - "checksum": "SHA-256:21f6c2155f0ec9e5b475c8a4bf59803d8cfb4d74f4e488a80f97da3d77542bba", - "size": "64632960" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-linux-amd64.tar.gz", + "archiveFileName": "esptool-v4.9.dev3-linux-amd64.tar.gz", + "checksum": "SHA-256:4ecaf51836cbf4ea3c19840018bfef3b0b8cd8fc3c95f6e1e043ca5bbeab9bf0", + "size": "64958202" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-arm32.tar.gz", - "archiveFileName": "esptool-v4.9.dev1-linux-arm32.tar.gz", - "checksum": "SHA-256:818477f10814b2bd82078fc6695663ac84220d3947722ce1880a6c867d5c2997", - "size": "46042432" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-linux-armv7.tar.gz", + "archiveFileName": "esptool-v4.9.dev3-linux-armv7.tar.gz", + "checksum": "SHA-256:fff818573bce483ee793ac83c8211f6abf764aa3350f198228859f696a0a0b36", + "size": "31530030" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-linux-arm64.tar.gz", - "archiveFileName": "esptool-v4.9.dev1-linux-arm64.tar.gz", - "checksum": "SHA-256:b377a130a4dca58f3a31c66ed0b9858cc057c998741222cccdb6e5a724651a1f", - "size": "54459357" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-linux-aarch64.tar.gz", + "archiveFileName": "esptool-v4.9.dev3-linux-aarch64.tar.gz", + "checksum": "SHA-256:5b274bdff2f62e6a07c3c1dfa51b1128924621f661747eca3dbe0f77972f2f06", + "size": "33663882" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-macos-amd64.tar.gz", - "archiveFileName": "esptool-v4.9.dev1-macos-amd64.tar.gz", - "checksum": "SHA-256:25cc246b20230afc287ffdfe95f57b3fab23cec88a6dde3b5092ec05926b5431", - "size": "32386336" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-macos-amd64.tar.gz", + "archiveFileName": "esptool-v4.9.dev3-macos-amd64.tar.gz", + "checksum": "SHA-256:c733c83b58fcf5f642fbb2fddb8ff24640c2c785126cba0821fb70c4a5ceea7a", + "size": "32767836" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-macos-arm64.tar.gz", - "archiveFileName": "esptool-v4.9.dev1-macos-arm64.tar.gz", - "checksum": "SHA-256:b845d678db1d1559d82894e68366683a7fc3809371a5f5def67c30c9dee15912", - "size": "29841092" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-macos-arm64.tar.gz", + "archiveFileName": "esptool-v4.9.dev3-macos-arm64.tar.gz", + "checksum": "SHA-256:83c195a15981e6a5e7a130db2ccfb21e2d8093912e5b003681f9a5abadd71af7", + "size": "30121441" }, { "host": "i686-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-win64.zip", - "archiveFileName": "esptool-v4.9.dev1-win64.zip", - "checksum": "SHA-256:f649a212e086b06ca6ee595feffd7a4706696ea43a2cd1a4f49352829e8ac96e", - "size": "35812159" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-win64.zip", + "archiveFileName": "esptool-v4.9.dev3-win64.zip", + "checksum": "SHA-256:890051a4fdc684ff6f4af18d0bb27d274ca940ee0eef716a9455f8c64b25b215", + "size": "36072564" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC2/esptool-v4.9.dev1-win64.zip", - "archiveFileName": "esptool-v4.9.dev1-win64.zip", - "checksum": "SHA-256:f649a212e086b06ca6ee595feffd7a4706696ea43a2cd1a4f49352829e8ac96e", - "size": "35812159" + "url": "https://github.com/espressif/arduino-esp32/releases/download/3.1.0-RC3/esptool-v4.9.dev3-win64.zip", + "archiveFileName": "esptool-v4.9.dev3-win64.zip", + "checksum": "SHA-256:890051a4fdc684ff6f4af18d0bb27d274ca940ee0eef716a9455f8c64b25b215", + "size": "36072564" } ] }, From b9a0122f7b3a6922e040de2f640992483719b46c Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:59:15 -0300 Subject: [PATCH 129/179] fix(get): Fix deprecation warning --- tools/get.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/get.py b/tools/get.py index 058c69badb1..b40c0a6e987 100755 --- a/tools/get.py +++ b/tools/get.py @@ -243,11 +243,11 @@ def unpack(filename, destination, force_extract, checksum): # noqa: C901 if filename.endswith("tar.gz"): if not cfile: cfile = tarfile.open(filename, "r:gz") - cfile.extractall(destination) + cfile.extractall(destination, filter='tar') elif filename.endswith("tar.xz"): if not cfile: cfile = tarfile.open(filename, "r:xz") - cfile.extractall(destination) + cfile.extractall(destination, filter='tar') elif filename.endswith("zip"): if not cfile: cfile = zipfile.ZipFile(filename) From c8f23ec65d12f375ce3bea3f37a3d70e77d4d8c0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 23:03:22 +0000 Subject: [PATCH 130/179] change(tools): Push generated binaries to PR --- tools/get.exe | Bin 7493296 -> 7493360 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/get.exe b/tools/get.exe index 4a5e209cacf8d7ea8767b1e83ac85ebc8bf2abfc..b5c542501c5924256d567fb2aceb92016cc807ed 100644 GIT binary patch delta 69293 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 delta 69130 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�$h=wLX(RgyeWeyFemY?B7s-yK zVrz##oC#kd=}aDsEcJIh{#Oze%UY1M15V3o_ed9;!Fa$J_iszsdo2G?{DzeCt$?!H zSx$#f=I-&6zR$^=f8eO%@Xl0g6oFN>5aR zTWoWlj9Jb?y=Ng?1l$RBzp|XgaeLAx{j*~nVz7CWfl9x`U=C;4F!`lmD=O1Z z>^RLAWXF}PyMI0sw7|{4iPbhoZdu6^*%SH8O4ior8*szQw?oFPVojM#_F2VRRT*dy zJ8yEoy^3w(Y@ZnHOJ;;_y6Yx0X#i_E4d!S^ zYxB1<;9XXy&Q>DnATq0g`RHGmPzKEHo}e5d)YeEu#=;z_YG={?qg zJ(4ruW3M!9j7+@Fg`df|j9p;%CAh*A9~>R&^Q`y!P}=rPR$0TM`)1%booH_YsLT(i zOx&&F@QsvO2**C$!CnQ4Cc37#9WszB5vZS#5$UoO8Kf_Xw30|lnh(MKkDBMog=<(U z+ar&!VPA$+iP0BO`e6cpL~-|s?{g4nwlC!B_gQB6`|n{=U=$3;+he-NC7X)YRHAD( zO+J60)vym~Se{8QYAfSeJ6!L}puRZxiZLY5$rfu_s|L-;c2dq|wKgxs4whFpRVmq- zg4!@L8y#3wf>E3qkAt6Wf?Thd=GU=nP1=DqbX;>SIbBL4 z^+a_fUYrl;6nOo8ngcF#sZ3wbqHPh#$G&+2cf-b;yu4kRN@d4|(~kK24h0^ZW@t4!xd9;#7F=uJ2-_j@&p6`o2sXgs zoaTdE->y=8i0$b;$v3jWRRYmW%-0q)W3$aVnTJZU4 z&2tb$3B@QeS7v^~VquO={)BxIV8*o;&uv)lVT-FHTW(@0)nC_#%e6ZCoeOrn&Y^PQ zCf1VI2$e;fSUmRJzmTl{X$W1-I-G-jj=mg#mlOTMWZTWGEsyLZr)_3^YmW}4j@W_k z5Fsjl90_;yx;LP2sJye8wdT>GGUij(s>ZkA6Mu~E-Tp+3j{ookT$6d9vJSOR2^yPp z6@ts7+i2u?N5SwSQ$g}1dG1pf8lTFtPuX$ruTj}Z#FH#()k%{#eS3rK4WkC)2E4(dc*e0a@qPW zml>b4HD0eSE4NnUv(K4}2QHJ!R+dp`F)pvM#(k>U{>GyVkv`=In~^4=vy08zqO5ana$#*~zk5 z4*L(=$Rp>us}`~<%y;S{Eb#br)NJn{>uhIfl_%k|I>mBKj@r(m*oSh-b{5U1%N^TU z1KurFUfT})M@YVdHRRr@vdIpt>A%SA9iSeRZ|qJ4_kfBN5r2JQ7a%i5n}^X?e!YP6W?EeRQ8V7i(GT?UAz(p6tI1)9<8QzKazGUG&op+A#&wBS+z>2#!LP+Q>e;S@-H+wtlYVHaY5LDT~HG z$XM^*x0^L#HA^wzVB{WMh0g-}V@fxoAKMs^DEVIYE;r4WYxiQqg}t~J>-t<7ypJts z_vMy-ID~!UKDLk97~3ze?q`QW|DH+x=6#?;V(z`f8L!cLo=5{3M}kk}{;yfA@9fHY z?}ux)tMcL3u)nU#c12J~%b9Xi5!=KT%W4N8(kge#0XCFjm*04h)nmWPl7nnBZxs1*oN+A$JtKCyFZm>Cs;bSJeAE(vh9%kx05V~kEk!( zo@REQK0yvT%_8N@Q>+VnL!LgxLRgu+b&BPX4SO1cD`h+(7V#dB<(X5M+1hDlW@n}O z4C~1|M9BeXz{UQCoOy;_s8{w-w?J!o`e2{OnP400z&|wg2~*o zEZb|&YlfzF$sf`ml{G#AJ*S6FywFC(j?;$8GVvOC#feE6s( z{b-BBfw+9f_c(LRUJ&8GS=O}6@2{{r!DsaMvp@VVo>$%eSJ`eeo8>c+0$dtb@;k%5=_8zT*D+9$Uf!Bwnb|Q&f88q1l>!D+k_Z5td}UmC^m$ zeG$sDVLV1|zt3)A0a*7ZPU+X>-apx^fk)5M>>x*{b>23;{6^XAFBUXFYX^gI>#Ov| zU2fxae52;FJsUvY%hT%H2G!&C#LdaX7hLj&IP_b}i`qY0=7PBo$9Kl>$rT*IXuWNn zmyOYyrG!0`8~$QxO{e@Df?BHR!(umBd0eCq&p4AnA1_b{LW1`Qs9+@KLPtMz=sh5_=w!}0E2X^EPlWmS6@y<{b6Rl zkv&VAAF|gumW8~Bta*av9BF3&-4Bh!J086Ez!rTtXYe8HtLGr-NrczS!(*OM{`imu z2Yu2HD>XSYS0iFLGe4769Vz}N33~Zf)1h=qV*`|vPJfja~`qR zV3po`1gqp78TpviZ#e;diMtl$k3?)&prMEEh^y7{V2yND6GzGB7kkvJ^wTZuDTw#O_s@-Dqjz;CqDFaLVpV;(w*))v&mAN)ZsbFO4hSYrO94%nMt zcMN@s0r&>u@Fn5N&9OXQ)>BChT6RFSM6z7G{IGO0GM}gk_nzbDIkjAGjog}wxwWU1 z?s2Mjigap;^q`Bkl1X6>qI5yzV-q|D^LNouR{yZ#{2_NfVZU&Ds$Baw8y(U%4d&m` zjPLPx7k`iNrx`xON$!ZJSZDd*$Flu1ENcBu$Z^lGDEpj{`=7BNu@1fW58KUdx_dom z{tO1faE)zc&Q(FY2alAi#_;Cs-j4VAamIdikK+6eo*T$s-aL(smG64drP_2%oni9?&wPVSB`n@SB2MMb7Uj@5WA&e5?bT(E5Z0^zfTUX!h>IG zk&JbYZXceu!NT^h+lP>Sn6?%hvhmpZs>jGa=@@zd9A=@waTF+Lc2n-J!dt=z@t_J1 zx9mj8_{&(F!*GKv>sIC6{2L^~yu(^?978Frg?n~Yjy?ZlDSde~%a{9ox!|2tcXvPj zDq}b0R~9~s`|oty{dskUK_74BgQ|3Dg5@MBVL%i4u9b&`)<-gRFYH`;x@w(w91(b` zdpcSt*qX?5R^Bx9$5_3<9RzvPX@R(kn|%7Qb*K4&3=QD+PV14ShQCd-KVc=}^kC{8 za9Bn~4A&<;k$NA$)2h2irx5-wZpVNbhq!g_D1GTj=p8E;1n_OxWD=`!9C#YL->b&E zv6hb->LNTwkZyGk;d#|b4t#T0F30!C*z=+d7=ajq=H0ShAa51A$SA8IFvNfDMX@*J zn}IyCW(Q=c2UhChv_w4jZL}kyq5LwC2m9Bi%;m@g&A*|%7>L1<)j+-*#9v{h@>vj{ z$VRx|uyJ0QH@YY%h4S`({c!Y0ui^AjYm?j`%HQ_yRR>(VIfl{~Y7-s{-_)`ud|uegfDwnVmJ|VpuqcXvLs(EF*}N&A2U~b&Q$7I; zNW(ZjsInhETX!f&W!+!!gSW5GW0mA*al8f&A&27lXf{g5HskZEN8s(wE>j8(4{Q1X zJYuoQ!_9b3eh##PQ*Xwbv{rVqJCZCf8I*W~5(7$GgHqR^#DUV>pjZt`A}BEi<)1vA zPYNh?3`&_naexwJP%asiQJ_S0Hb}(=X*@`^49X6JG6fWWgYuzHQD)H;OR_M7xWphX zG>Cu6>&%1Zi*I#_GR;?;Bd_?-qe$-hRl*C)}`Yzce3A4FOE=t0J^|t&e3A@D~@>vpu z$XYBLw#BZ|3C|mp5^~QfVN2zpw!D?4^1nz!|34FYS0Hf7vOUw#S0d*eN@<=YuSNaqK+N z@TX%A!Y|dHcVc_pEQKdl#&N36%X~jiUnKv2nGfMDL*)PmuUp$U6cdKtW&Rz42;A+f z`rw8D=^Jk8;6u$gEj`WV!`MIWA)Wa?FW&wG8QzT_fFs~~H$IjJY>=;X=Jnlq-8uKd zu05p}f5)45dPfHK=g#~oWthhLa}iqho#t_R`raR!Mt@H85K6nuyWqe=$MrK(dyG^M zr0|2jdVaNb(WxvZt1F#exl>I4K zB$WZYPybyXGE<&kQo;d**13-%UhCwHTNEFT_=wiY*O15?X?0tEMkHN1YIWPbr+l~h z8zLZi)Cj|N>*TN74Wa09LVeDxRHR2Yf5!VEUS&sw$cd0 zmLNn8P9vF6fH1EHcuhnkRrwx`8bMjO0P=@`=KiHJc@QtGyln$Sw(ORV2JtZgX-K44 z-!BH}(1InCMhZ$kTZ z?l)fHy%-MhM_=V5EtP)(?U^+@8+_H8Mq7{NFT|1cEdtFJJ{TMC zW6e7EAjaQV+xH;0#Z}RW)?tA+NCW2D2%MH}pgViobE~9|Eo$p^(3xQeA_G~u)fIE6 z8*w9z{g z7F{F7;Kc1TUzPhu@EJTKP9~4!r|P%73coy5)Wqeeq{eQ*x`u~%3g+O(yUg{42(Ndde%~d1u?s9%Oc@ z^!Pb1-Z9jQqw2s@GIatEX)y&~-NAp=^V)N*v=o)#f8V3ol%Bdd)D=I~rf1_iz6Ah| zp?Kz=?2qf?30Nw($}c9s8voS&C#86&ZZdEZj}KT&H{;Wb|~{ zN#0p<;&iNuZn=LtAI7_Nl94lb175$A>@owkxhCJ70h>?CE0h{9%`^E=Y`6R8nf$Jo zU-iRO_hItpj+9sC@R8B$;FhOv5|v_di5%#lZ$P={$_|%5MM=Rr-F=1}Tfl3FP7b10 zA4{i4CcB}C6xe@Mz-bPfAvYB8Xv>4?#Q(`Zlkq0UDZeS;35kUu;m1{gQ!ZkdjL~en zQfNF^${UPbV%5J2G)M)nf?<*Py)OE7*VMT@%s#)IW`~gY(ga(Hxf6?b7QSHQIvpFyI!lY%{EYIjl2L{iJVOjIjP4`yO)twEp&>^bg!uj98Xe2izg2ZOkBy`a@~F?M!{%-{0$*T}107wGWIl#$+zcd{w^8J@!`J-1eA5a4 z@*bp*{QcXXN1j}c&8PU2rm>R|TIZ%>Nj!4y?j2B$Sm*zY!2pbH3t^rPh>C}l$Vu3P z&^mXCk!yKh=WsdfBMPri`jZ{G{>`z&*PqNRIdbW8)Lo-Y)F)JC&X*)vK1R!t(lXlv zD)2{{ET8s8;@qy1!#A$)Itd1rP@NhO+XLa@8^^-8RE&x9_zV%HgAN`k>+>!0 zcA4$|a{nS;BPB*JG{783VOgKEN1hHk4hf>-$|Z5=Vc$QF{MqLiDmi!fM(O4#FI}qA z&9SwuGDzVO4QuGA0f&xU?sM(P<-V3TE#P*!Z`4c*f9`A6(?9nO8)T6~6dqP@DbdRY z*cMQDZqoS{M@lc-ZuuecBlB7{1qEwP5Nu^0;h$chG2@PZ_$}y&hic-=fO$bFA z6v~h!8YvM)xS#8sddydi%(S)V($`VGfd4HtJ ziewUS$4s~MW;q|DU!`3v!fZ%5udE$;4jHEV?XFqaTs-!^fNT9et^2$N0Y!-?>67WS zk43qs=_WL~RTgXT4BbRcD2qlZ@fqg4PF~wufxeAyEmpMi0$qSc8)QXYq_@$9lvuuL^o6v-qVzPn4NWo97T0N_dppqY zm+l#%6ew!zL}E}f)V6Woc#V$~NnWNur_+3k`ZMV6bozv)EbFWEGQ|y+?BiY|2R4Sh zesFD_2xBb_a-7P3mTDG#4qe@{$TbUB0YV3sAOv zsVuI?9WI->?B?<}mtupQ1C_Yc<nt&mrD~a?YRu#au=7!xJ=`+kjpAA8@TM|a*Pn^Q#{KBC*mmXY(fFynD2-hQv%W5v$xE$ef8aF~+F3q`ggI zQCyzovWm+FF59^5|B7F2B%g0w558eePGz`M=hBKx7cK+1jN|eGm)E$w!{rk$JGlJB zv9l8^9UyzJ7W$t{W*+Gr<<`F z;~0{YgR(dwD^)mqJdbjy;7wx%r7@;5J!c`Fpw-yql8u=gHtlP$86+FZ6KW?L1@gjD zN;o!yH?g7E7tG}_kT*nd8=FY7QMikZ-F>pD#%7Rgs5&U69-B(CX&@UhJQbo+dP%n& z?8QdmGd3s}EN^Ub@ufi_^T@$FYg@nO}1Vbg6 z5&r$4mj1(yieS4@7i^+|{)4CWr-OrF zH53Ht-k?)+AVp{b#0!1Sqf@V;8mJ%-Kf30ZPp8&EE1*S?4x|W;gGO<{d+1I9p0z;P z(0M2U+6Qfc{GnA4`DhiRQZLUKE+mh@vt5N^#u=J%tqT94;8zfPtb58iO1v@W2d%gb(zkilUZ0z+W{(%@`HB zpjmiay#jg+bwCrE@GIYt)KiM;#fx-_x9C(dbP39Y3ZM$87HYkPrs#w51rjQyQ{s>s zI7r25G5%(sq~>`EP3@;C9G1&C3VhCGJO^s7GiDOkb;k7B^wDe44dS<9dlk#n}26_Ll7Y!GijQE5;V*~N?V z&5@7oE{5MBZg8^y-){CXtj0Ws8uIijk1-ukyn%{VVCmdoECRxBF!W~RVggRg34Q1> zNmYQNI)%|$h48oIf)u4KKymi7p50)~Fi`Nt{4>-~!jf$G^0VD5;rEq&JZJyE-Rxsn zI{Az_NO5gGV0ufy-K{41WibQw~}G^w^23CC`u8JOa#6P2;}ag zDDf!NX#+AK#Y0Jji3te!iV6@ve@KP+ldzqF0>r%!G9rG+?0>ueb&NMVz`rBs^eh1Z zI;j*=VSh8BEi9n96~99Oo#aORZ@26mL29b66VFsfN1mzL4m?w7c06M2iuEdFOqSI| z{;iIs5R5um1^(@8s`6Mp4kcf|kLk6{1fX3Z*QXs{cl82;=E^;Mw6 z@+r!?0NEn(kxH(TVY}BCQq+Fphp=S-zuo_F3>iIe4E5h}Q5f9*%a2BWAD-TmukdE8{kO(bDyBokHmHh?x^;Cx!eI(Cz>L+bB716&$f zLNVB9$xXs z?r6Blrww)|akGAvFeXnUhmjrk`Z(VtRfv&%qY$?@UJdUlWzE0Euvh*YZuTqqzvh(T zEVvgUBxO3wx_*lx{ZA&Jz}vEov&)0^`W9mziXmRgI3w}57<;~u+dqoRC}WkEGUWd8 zpErt02B@-(^{JGhB~gpZOp-tg{Q4k-*D7P^{u6%h7+xQSTFO{E$`~3*CbNv;1B@$Y z=mCq%*@NG@a)t$5*UQ=6_+vRkP4{n3o+18rsD)cg;-dIdRdi=jE#aWQVNPIw3OfwT zwu0e@m}F8?F*z z)-h?6Tsfzi|F;5M!2TTQpSUFXC`n%dN>ZDjlGGCWr=X^LX?)cAy)?>@)lS;uHp z8?=$7c!y!ANFpIQZ$3$*R-MB0bZ$AAuoH=!6@g&mNKIv!m#DEEjV! z)RN1|(Epa;+H4xN8Ty;x{}v_{`>%4sn6OJG%Yz=c5DN{trwf+LQ&S+4456$B8ThNH zsoHm`skCy6-Gl5%kM*izOlFTDBsW2_N=HF<$OVFTLA0^Amu43r@ zQ}l#V8kGwD-?A)TMx$mz|FZjSN0>&W^M;ca%jX_r>OZ}zpqfVYLt3nadkmks zf3qA@kB3Ik(hBa`!7b9?W_!|vw@09jEam%*<^RNX{WZDu;`B%x=Tn{mwz(DM+s?hGDEubvc+K`C{yDZ_As%}rIDdtU$T0;Skb{)=S} zE4r3({Gai+Vhf%609mqBA2ZgV2ON0J{=RE`%#fG0i=k6jp>F&Sm?BE{kDDb}$8L_< zb&S>Im^#Mff4;$IreQ_^szgRKSvNTWU)M2~Fa4X9Ct0|`gh&WNL3U60&&ofCd&CBa z+#3>-&wet!g-Af6zMlJQiKcJ z8SP@sf-)X3sCaMy z62aulAh>2euCZWyg0hCV>O^=2@CT#`e==j`2dO;9Q>P#p0mk^c!jwr6C}N8H9oS-E z6=VcE-VC!jPzw&O1br4@<_rFj;N69o6o-EU7_|tG2uQ-_urUL~LyiUi&KCW9R*1|F zy|!RtCk}WGhYG&Ei(wP0Le;SUJqtx0a0flas@QimN03i@%{UJQ(Z*nI^&<&Q}Tgh}zoQ&01C zoYL5VcI(mJ*g-gP14<8D0bCf&>2!AB)(|9y`K(Cr6Xw0f5a!?WSpS~mB6D58Avc64 zWNbl`!6uvnMb+b}BYAM8x|Nf_zo&-Cl+mAUs8Y=R5Xx-FO*m`?Fd-b_VUy=wwGe6V z2C#GorvR1U;azAlBo+@EMW7$RHUkr&D%dIDZzeY6l%sZ|6G7zEG6O63lKExy3Gg{Y z5@-h%_i-}{T0vxDijW13!6v)_iDAm=-}7VtnmqfDi8UsfaTAV4$HT#do1g&Lgu9{b zunA8?`(dYml@Mvm2CzE@^Hazu6^s4>xsW~twm_sX?V#I!oYKgUC)fvh!X5Pgp-dUQ?M1li7X^cY%o6u8H8O4 znqp>+Wcq(*%}}shod5mUA%f{J!umX1tivXJ37Nwl1ZnxGA=v+(9{cyy8JR*eFT(ka zFoZTxE^NYeP$g`_*Ef+l*o0kBHxmwGe1u3Ka^Y?ak@hwN&p>1F&jsrsfhJTtc)ARk zhMf!kh7@3v=MvfwyOiLB3JkaKmjqQH5+~t3;)Z`U$keICv@sm|U?yY^I~Vl3&54LS zxFyeR$-#uDxb|64<}OZIgjWEyAa91~uwAacY7K zA#$ua=*+cUKyR*{!h~@P8bq$iv+vtnn>+$<HyfEG=tRTq@N62@VO1d0craqSjRu9@Sn00u*(8pFV+5E-~y zK-H%>)ew(5cmyKf_wir}MB*$36`paz6AnUQ2oEwT#THIgD}ggx@dO7uR6uWt9PA4g zK_uZ~@F7G>Sqrvt?RIbkBH;83LEroL$8HRsPl%R%%0(_0r@*g=@@v1f!DG=U<8D{9W3a=7YxD|g9AM{ zb>Tk(YWH&DC--wPOs)fq1E>y&l#(oWc!B9=bsYQ(T=S80fG61d2_-;j`oX;eoT`oj zg9kBeBYYS*29YL+{ERULVwV_PHiY3EnXm)5K%|h&?J(rOpxUuR0Xz*=!#)cx_=?^S z+Z?t@&4*Dd#2#F8Bw^VhS_B!*FQBF#@L0XzZ#Zw4rnCL!c=yjXH@iW?+E`joL*H2FY65 zK_pNL-ot`bVpoHYBsg|0_!O(iiGK_D5{sA>8Q4tXz`~9gtWG9_&wg+*Ug{yX z?^GHkDaWx1pL6Xoc^W07NTclVx0i(4(`ZyF>=bbJbQ&c9TN5nj+LfU5OiscsV9P9S zhCpWeY>p!X+^xy6BSC&G8oQkYz@zgxc06dT!?Df4kGdRt5S(d<`BfyW0;-y#=3uLX z1Bm`#T*0=7ZqdaxZ#TaG3mVL(?q zj=vi?46)C9FmVMtQa1VRIkp%W!?pK=(;e`117m;^_`m_}-;PMD;Rtj@3DB-Vppg@* z2~9&N>&&sIfMzR^82kx+T{t#jfh*?B;a?1jyK`(e@FK(>OThbFyBh3Z0+pCKjK)MoURV9psd2*!nT&Y(l#coBfUgA*waSOAf8 zv>05slVfiL{UgxZ5m5k0-%Vo=K0IIw6bXOAJxufw*im2=R12F>F_K1YhphzWLS$ql z+`EUwgYo|mj4u!wmBzqpdvO-vfLw6$KJ?m`3~CCvF$&d)!HV!fH2Mhqt3j(+oQ|;5 zK$HEP%vpjDAu=e*9H3Di5NS$J@Om6Fgz)*GGV>s(8dbnw5Xl{Nh(^7I$d^Ya$U2Ok zjRQ`C&!IHfE#Sr@oW4R>d6Y&~!=F$hfyTa)mIQ4e(oBS(Ark*r(EJ$27Az%W5~Ckd zfh&$)IB zIN>rUj3l@cYC)tf;AO6VF8CQDiG2kP(>a+l0>hw4Bur?Ufzuea8OWQ7@q`J70F3z% zDKUO3i*kq9odv9iR1k*e3XNI_5q~={l4}!|aqUVl?J9)uWO?LMh=lJ3owIPt!k?^| zOosAdr+`esY)-J>flA_B#uo3*WN^JzzzV(f9;T~Bf`fJNvr{!aSKg=Fy`PKJg<8NTayVR z1R^B}18+do8w?KMXJ{krub@F0PEpuK;2Fpg_E~UUIXWF8A}d_uAyQ((=n9k+{`Nw*^KKP^_eXAW`X7xD#BN{kW9SKfq+07du{(uO}-%WDRaQW6%lpof$2U`Z>!Zef>#PhW8C7SQq)GVzv) z-VUQ3B5g+a>otwqPa^ARrUhGaZQ+qkK0_eoGUBCle`w)1WYgd7*KjGUD z@wkC511JD&LW9rfL$HlN@ga0T*plG-FPu}Cxe-SBSL6sgD#2&NoG+3Vuxx}zxe8EVM--3Bzbu zjY-a97?dZS&dyyVI0%u`hVT`G<4>A^h{>68fUD6j`&_Yd&3G#;PAza6xZ#p+(zgbk1xY{Ksl8MsEkXOmD! z__u(Xa;SRPgv>-mJl@8&8)5h~I&}y;c7YqFqZv>|yFgDRJdcM>SOcXXOfC2ZA_=sE zPnA(3__u&TGw}2n%|z&r2kRN|4*+8!5U-u_B+eUlbUu0XO`^z#nrs1>n)dv2#&d?{O@+LW@)Fj)V~DH-z|!3u+L@HiL`w z(EcrOnBzJ77?cZ}torwaNG1q(acx2aLp*0i7$eZi2ptXAcQ#-*L`pox7|**Q(o7q{ zGZ2aAEO^-j{f6`pP|_6X!j@#hSOSsUS%P+EXdje-@XZ3WCG3q0=~TxeP68t4$TdU` z-Uv!A<|IJ47Yac5D6j`&ml)i$gmWx;han3h87c+sEYSX>N{Mj-A_t^^ZCtw@l(s~l zK%_FDC)5v{@CZaMB62}htOCe_zdCpjA_*J5pbRjof52jK}9-&7C=KqQRjF{}+@VKBn6-QdHMh!?ifDZEH=8np|%|1_#A>I|w2-~EKr=kQtw z?s#Otrx5uXZ2?!OqAhWN8~7d~eS*4xP70C4!ocyDP>Tp725x~mVQ&YuE^|7mHn=(+ zg@iwOYlyrwB*G-?JYa}raN3XXG9(HAO0WS^fGw7Z9t)|!)(6e7zC;r?VGu-Wi|{Z+ zG87MrWaHZpVF=YA;;#-GLnM4W$b5~>Mv}layiWp=KxA##U5I?kk!4WQIh^wtFQ-u* zP&_89@q!w~2c3ki36gi7+F=uB7ov2q8^CsG1U6wn3CBMYw7A8#G5-UDEd1S%K!jwW zZz*g-vZU7r7Y>AEF>W(#!XAi(CnRfoNf<)1u9x@|W^ir7N{B4!CnO6#iB0&W4DC-2 zAPZ9E$~iWnA=f5!;M#;6xi%qLmB~&FBy0Fcq=aPcB=ILCOCO0%NEWFPn~z>3+(6mlLbp+x7i05U3cTrp~VVF@Ibsp0up?=63oZ8FU`c-T3_qW z;2p0Ws37H^xG0<+^@5R;*pYaR}k99f5!%{nX zYxx2K0w3$$xH0dI-nUQ7zt!JuY)d&cV`0^_;8{zj~#6_4x-cSnYgdZ^x@2tFFarTv49UJ-J9; zGP-csOV0iB_3OJ$HG?OL`1Czkh8Q8$7{#uCHeYAO%-A)FWa4Yw`H7j#q!n3lhtZlUR{6l(_(3b z|FLPijfL(UY**JUJO0@#=Eu58eQn{%YfdI>Ox&$)D|uh^>sN-Zr1JUh{2t$zpEl`u zN;!}6X)k!lmmkhB3J|Kv+1hL@J@o0*rEr-vKjwGlHCy)zvuVGMr7Uh2Z{WRiaU>{c z`%vLaX2FK#JI#)lv?;YHv|JeSw?4K(yQ5@sWBST#q04nw@0dLAK}*H2mOs){4pbEB zmqt8L5FeW=`kP7#8|>Qt;*#rzjZ>a)Nq$~er@?v@t77tXit+4+(}r`EALV(k7JYbP zdeadli*NV8`Q6-Rsd4j_`|DFl88um6Cue!{Z^^#A?(_`i)>}3Q6$FK}&GvrXqp<9_ z!fgBRd&X267VPFxv2*P0~2#y0PS{ z`m$`bI6I*@yJ%-8R{q}0vlh=!r12jQDjSzmT3GV8-=PmM5SXspOrE$O1fhin5eqsmdX;JxU)@7a;u#tE*n+*#I*K0c;ji!0gr?=jRP54 zeQ6U53yMNZ?#kXSHeA{4G$!5uV!Xe!%J_{bElJIWh24`^2;I6j^Byx&rZjuvxBbh! z1-`VZ=^pgz{8_bMW^wtNLkDJ8%ZshPr`yS2we>n&Px%$(FIx_UX zZMAYL?pOS*$(lMa%TQ77Z65Qu``V*%4sPFER<^GDEI8|~zUa(LAKzWIdK(q${Wjsw zbj#%vZKp-#52`$Ih<31)S3CRZ#p-3dpDisg6(5lMmb7)5)B4pVR;m%NS_`f$*;2PI z|HqNgp(7u5H-;xRIk*i)ZQr%{y@Anzh-X-um8i7nN{I+>2+#3+oOfMomje7=?z1B zi#0EsXKz?}POxil=#y~C4bAS4!+FA%@B5Uwzjs62_8-RQcGA!3H>LJnE|zf!dlqC- zVJlg0mucy~;{Kdb)0_4ul4AUKZdu*D`5E)d@UdKL9WTR2$?8d&r5;;uv|jxp^?d8} zCufq@5C5)uas>wo$_yQbgia)z^8{gV1&*&N5r z)VEn#b6OAEhhNw3nsVgJg?GAg^PRJrqiz`W7+4=(UlTe*`qhrd$=QzQYWm&nHQud1 zx!F>Lx$11-vxgp+Jih$YXj6IGpY9tGT>feHv&~WWuTQr)y8O*Ain(n#W7%>C=S%Nu z;zIA<-Y_X=IL1Nks{4+E$vR_o37_)fw_BxTWwe-XnG_iI{CKtF_tkN=7rrGMbZtL= zcy;QQ5?9yL;+GzLPx)GrIrG#aiOV@&vxm=Y3h=&J?r@9QekPW8YsaAbq^nt5#s#*s zZXfmQGr7B{=&94COX04RRQ`ps(81YHn@n?dd7OJ1HRJ2c6PnK2nk&mM@w>hh2%A6B z$A3-rLDF(nR+6+-;$>$k8xx(W>q9P=uCQ*hI}@Pq`smF1)!`G2PGvofw_Q3otKw4h zsZ;CAO1qtR&2;p?$+Y{XbkJz2Xqn|$_NQGvEuSZB3SBp(-EHmk{d0}4&q?oBB28bE zx0Sn|5`4U0U%Oju;l&OEE$uVo_Dm3+_oXf`qt@V>-lnLDQzNqTJF696*zcP!;9!&* zFyqXzo~ToGJV$0evUjw8oO!V~chaeNZ+#H`&V9{72B5Yc)0LNphWi0-f_{o?vcGZ!;9Z5U%FhjzbIg4Q>yc} zMH@2nyUkQyY5sbZq^jDdWn*CftT)v_XSm~@+R8;2R}AG|ixa*QyzJA(;qJN+16Lpa zM|ZzInWhqVczIT~ox_*)rq5JFUokgFFUh+zb*|}zd1YAz%_pYi7YcpbD|ctUcJ0dZ zW`(DYAD#UCPJUlvpU$4Ovz^v2 zs}I(*Et+{@&W|oHe`2K{~&%{7UtCzSDNn<3?lrQ*2+xEgtu_=t990o8uBY;wRpJF0!Zaj=Ax# zZsU)q7OYb~qlnaG(F$Ir=`?0%$O(7Cn8sapTWf~~GkGG9sM7yT;h@;U69 z`FNSF?Thjw#@`M{e2a2VZ5rD4qCWX!hI__C!JSu_uIr1pm&Cant^K)5(tVx&k;+h^ zs@T`TYT5w@Q!i{<@Ul2LL$9nMt5~`ImQ=6)S4UVH=VP%D0kwbH_p&- zFWntpbL)3($#Fb<-aSX@;&hRp&pt>weaI;8HlHA}(}!Ufwr+K zbPV79PH5*Xou^7^^X*peP?|VTY^uAkdETd6=~oA87mknk zlhO2j4f9aBbn)i>!kV9%zikJe#k4I~F59<$+Y{5|qKHG{>NzWYotyO>|MZD9^`CrF zcQDy0DLG}z4|?e0z*Qcmy&)SdS*cR~sj91g^;~w-s5vdZ}xF)kzdhDwb&+d@A3jb<{(A{GtwK9kBo8pI7hfCe55*_w9@Bl4<5-%C(Ju)*&2yD}K|E}>w@uxJOi~gw-!-2$Q=-(E zPiBbwhX$%Qr}{V9t$S+UD!9yF_Dk@p(|2o|Lt580Onb2Ny>8(l`p9MbchRx3HDc-A zPw(EA@mX{`FO^?CzH58iXOCFf(-8^M2Q7Mbn5)z`7}bT;x18fU{bl@G*#p6PsXr8d zo$-kXQ+whzFU{S<_m!vFM?ac+$jHFTaa)Ajn7ZX%9oy{dw?9{3c6VN8--?!P4pSFq zMu&-QzBnmB+rT<*_R~u(TCd|iN(=D{yQ+@a{1M(mQqPc|>G^1N_WtaItlhttNN zPt)+59`8OJd->d%b4%!Z7ytV4a!&5xaSNI23u1Xv9)BxfI(&-`K6uIZaLs$`L=pRi z`&aFblgL~1PIgo%RCRkoPe>ztZPhco6$hbo4)_w9Hv zpcOSK_yToIM0;BWKl8kG23>zBFeC5}OLNWqL#eYiBsbb7Ojj^HIJ1~XbG_>$5u1gP zclNek=NVKoF0e0{@}nltTi3Pch4fA7laixlwsYR>-&qsU@1YSqr!3&7X@cy%Cg$7B z*yQ4)uQvDZJG3_Wkh1=6Q+<>A8Q;w|hUhdtNX(Z{IZ|wBxvyhwZ9bF9<2Eo{@KZ5e zvpq%L?D4?>oysTTveWcs1*>>9qZSxP{mA|pxV=l^a8ZPph2FSg&zCP<{O>RV zKKD>DEfIbU{(g}Q3Qmd!{&wYciES|swkk)J`~@Fw)_Q-d&sHn7@2vEIX!L{MQlV`} z4AKK)8na$*{Tg%1FL&E?Tr~3EJ5uRl^QEb-Q!u?~Ltu1D^IVUKmu@|0@wGCejqjLT z9aKHzzU5ZRxowLKzZdP;oBXX!Wm4m%^Uv$dS>tNMmOnq$ziecm*GPGf-OcvRh4M$^ zA7=CT#OH)bnWT@GsjPgdH~r+aIq`7{4T^K@gXLRydkUzY8K-i>UHo<4ob%r4lb)?G zSr+#4c~h(1jwDyQ@z&AS8r!6bcUrCfO#7=FI;VC!#OCcDuJpH>@LTPC`0)D!E60}` z1qY4Y-q{;fae(1EL0R>5l54~T*HghW$8L*C|CsntB~e%W^1GSL*kw(jAAfkW?9cbA zY+)9E**jD)dq}TUx;L-1jXvVTI(O;E;f&mlkmL1J*R`g|ue{s#&@EfzZIyU!@UMhA zSLOkpt3O|@xGXZS%VS6Hi+epCU!6|P+;&2DbzNif6+OeIk15hG15Z2(+T?fUX>ayY zX068!-KCNVD;{)?ls8Zmj2_r& zYMm`}Vampe>9B;2w)HPbNH<&_CRMoi(C^%~@iSxgoqOOt)8+mL>Gd+63WMGMoOueYF|3&}9kqQM5=`Rv;Hr?r*G=K36n=z3@iNS*^ z>Vb(16jr<+Va~P~m^3>2YrSnzV+emhtoEh@!JPvezeb0?j{j^bsC8vw=B(N0LZyD^ z+LoIhDw>!Uw-f-GWr6A2mUBS%SZH+>NA|o+9%} zeD|Z~K8~Lzk~bvnv7BlWl=?pHYO!0qvXpdXn#sZsIjo5JX3pYbU9ys3q#&gPC|4rji6c;0q(Ozw)s zr&+qecOJ_wy`8l4C-ZV&!GR+Z3R@M+Vn3}Pe^uyALFM)}8Mij+)ZTw*SGBcRB)7+4 z@!Q%Hr=8+@f}BqJ2dzAtbF1HS!7>~7a@VuFH|?0!f8e!n$M)Krt}~f-Pd=s?Re6Y? z%?VdI1 z(c}|6Vy84i&?`7F!MAk60onU}w_?2y(*Qy)1UZ@CC5HxWI7O8&D#oA$n&UeUg`GFEl) zZR!arm-cz%4YoEF5B=D%LFc(Y^Vw%-(VO$-JF>%SR}W2nkv_+MXlLRsReOhX#w?~; z%}SNgMOKzOt8-Qy`=rmeAzj9hZ=mr@;THdyfA$|U_1NZ{7a{NT^wy{RBaNdi^7GHv zwN`a$U8%|0+&p=7#N%{*=hgN6-43NTQ{U;IZn!TQx$AwAHoaP|j<52B+3DNj)0yY! zb@6V+lt_-fFx8dcH56i&^7V>8?S;&pw5`*O>9ZqWO`1I#;mx7t=bG++(BHMnYd>pr9Zr6g%!owwW{gpeP z3>;dJfWOwbICt!g)ula)F9kOr_+X;W=lneTqHdhdc>3N+b2ol!-u_bc#eFlUq>6D@ zmThpH#xGXP_#!8ia(yKw_&{%YY{c9&MaQ|z_zsJ7xR*@d-;%jR;F@9LCe!vaqGBc6 z+mnApGSBabR55bbllyaD{wAK^4xJ3hllD-k}aMM3s|e} zg{-}3=1`e!`ObJ*-Y(UIwM!;6{!!pP*`Div%Xe2i!+zC?;3cAFs=sD=iKGamL}xA0 zs7S3D*wlQ_Z|vQ{r_41Eq_2i$TD@@})KgR+#w9-f`EBvuH=AWQFYJ}p2|p0D$MVgL zb0S5fMy|6jzgJ#;jf_`R|_oqu$t`KE|DeVNw=t{G1~ zI^xs#bF#{|?W#9l&Qtsq)BWz}pWk{(N&;IV^s+1`saQ;Yx6@`vtob;m4a3)Bt_q8H zn$72@zskmjY9`#9Ai7+vy<)WC`p%mV4;-I)tmvo542iE>do;F=|2?2~^Mp`n+9B17 ztL`%!ofhqjHwy{PS|%s>^!^gL>g3Da$~Rq)7B!F9H&ju-<(_>tnm0aZ>l&q*vm;Ym zErNc{?C9IFbF}Ji%}l{-#tz>6m$qd!o9sAfYQ&#< z?aaRWp~Xe29!V}mb^~OF`kVc_xw7h~zl%QKq@owpsWrP(VMF%pDIWRlH(Xw5hR@A9e8|@J zw&fH1p{}&!iR0vVhUHe*Pv4ax_{&{LUH0tpXUtTi+3I!k8nhC>m!4UF+q=-QrrM2V_2tHIvjbTYmWEQ|^1IK+ zSVeybmoum}A3gP`J|@%JT-Nn$s={8zpUAW;+iaJVFOU9H{hK%DaFVj{wXvC3espzf z&6wo&TUaVwuyAmjo7d~GhizSQxa%^KUfvNOA>MDX*7Gsbr*Y+!OKVF^1{Mn6S5K7v z^0`=i{Da2S@vA3ZG@Rwb=YC)JlsBXAW}%^@21TnLwo)lK-*xM}veES$&;Fe55in?a z>Cw4!w3YhvkmkrD`YQjz8W}hpGG1C!;LJM>K8nOW41Ka|1cJe$aEe4zPbD6hV03cc9a{;U9eL8cTec0Nj(}Z zmrq$ezCOD5LuHg+UG~k*y;Z7uH;*zV+!^057<;TW_*>1dTBr5X&lE7-SN>}2ddDza z9RK9JzL7!rh!1l{*TCbg(>p%(yi4k`RlIY1!?2%|QqdBl_^}Bc=PE9>_7`qG@v1<- zD=k9SzVy@aq%3Bb@nglEmzT=(Zf$D4FwG^iY3ZkjKYUt!*KYl~wEbS^6QTS0=UaYf zYPwgcvJT$UT&-TGTQ+0lvWku~^W8n~%$~>3m1pgYtNA6mUe>N+L5lAAIg>Z@eNV;c^4Td*d%%GQmkWm^0Q+akBfH+Y)rb* z$eL5dH@5cJ^tA!{kEG_jlH8CPH~pEmtl>;1)1u~l&I1W|jjEnYB>~Ro9>_LLpwF#6 z>zCW}Yd`aK@Vj2mB-;n%ZDn5nvSY zGtSAOmPkyhd61(X0Jbj+i{8)cBTG{ZnI#+E`>avo_^-arv znl3+v9}|u>Fyn*xApuAb5`u&w5ojDV9ukGbAaO_nngB^cQqV+58j^uzp-IqWXbLnH zl7r+S1xOK^22F>QAZ2I*U3+X}nkO4Fw zGK7pEW5@(Dh0LG@&_ZYtWDYHcmOvJeCA1W>f~+AMXc=S+Er;x&6_7pT069WVkTbLr za)DMsuFz`84RVJ(iVV!wG+(1R#f~3XQ#5|SQ+hG~)(+**KgVi{)U~~W1!?6)$;Muj z+?WBU)8tOfjN53PXa4Az_oE|O+ZStGD#*B0d&xI^vd`RChDsJ^BL?fT0_Weop!1af z$$U%U{O;HUdo$+#3zmBd0~#xBe>P6!{qa17_wr)qkH!pB)mhqeb&tFXt*g~wy-GTm zqIuwE==bEG`U4NnF;{*YTiYHkmCS$SipoOq+7%C(Z_gyjmW7|Xd&Y46GPMmNURNeu z?OA*7$LR?<$`1v5ADs1_?PR-R&9<2JJs~B!ZgSVwK0NiJe5l;D@ND+SIRi7dzmm-~ zcHS-WLogw1$%dmW`JBT^57xhX|M`V^_=T-0yHd91?uu7+zB6CNUS6{=ev6ApMD=1< zkvC6uSB)N!t5#(0^{q15JEdojZ`LAy$-RE}cJDQ5Eqb?q`yquT^1hBnw()a@7u>JX zUvT8xf*Dn`y}NFThS*J+R(;*1+UqmVg5=(PQ^c1`boQ9+S1dP=_y3__agQY!QYso^ zW3)JaLPUJ}y?Hzat^5WWwql*FCe=$nt1qynb>{0_uPJG8pp0iTX9&)3E&5~-9HUTw z;MkV?J4}u>wu(9h+n%kMtaiRYqC@Sq)SSvV>3h7c!Q(&p-yMB+N_qTM4|?~bj;q@W zhQd!ri0`hLrg3{9XFu;0+UxC7Tk8%y%Kaj&sb!PC>~`t8gxK&o7k;})SBcb?OuKfc z+FCp0-ziYQ`cA;Bu#HUx zZrwAcwq9|3+#47D&U&l+$s;$i`D@giUmv^tJbsVvhFc!-CpYZadU4bIJ+67oQiZ~X z_4A#@Zmo)4;IgB8$D_~v_qNpcntnE6Z1k+RDc9H0b64@mbgO^7Mvd1e+HLMi)z_uL zKAUzcn!2k>U6b|;{c`*Gm(hoZZ`x-Dh3l^Axuzy~i=hZxF zShE~LpU;tw8|`VY8K07P{b`|nG-YL7h)w?|8Xke~h z;*XP;x9`$XK0258&l^WOm7?2?qZ^$z3#BgEJbTB33q^8e?-~uo%Z`umUB4VR?_=}i zXlC@)`$?m(vUfGtFMI7)UDVWk{^4?IKmX8=BEL>+bPjzPwNGtslU^wN#X&EpzV^dr z3u|ei8%?9%#D;UaE`R8XYpf0TEKay(v`wudn{QEe$>9*m%l>?>ud`My=snSspH-ST z?&jn7$1C@GTDoj05ArtD0Yd zP}~zOW9vhT^Ulxs7II?GAD-o!zvk5q$GSab-q-o%AlJlvxTWmzyB{-$)N5ZUO9^Pj zJxh3~q;076`IKRYn({sW)oz+HZ$I(T=60U2Ru?$am9XHhr_|x1?EN3! z?Oz*Ly=?B`bw>BztLyc&Sw?^{80Zswv(tqE%~>we{AgxGrM6U$0)X*(|Z@92h5 z_ajvjMvo*!^tEoVrr)yJJk+Ia+`ixStf2P|&!NTP5}!}@d*|HNKVnGGRs9 zF`IH-%a0{m^KV&ye1EcCxiU`a!GfN|r%^_#%@V%)CNs0V??t|LIVl*kDZkfA zn?GMM>FXRz$J_HyOb$7BQap3DX5QU_@kT90^K|212LwGn$A~}1f69(=yIDIq#aUyQ zMl_4xu3JuIRPCsO(@qs*HSHAbm_%KV;ZqGOz3L9=+qnt3i0?o0I5ISd$uM~tAG*J< zk70g{r}_2p3-7z(H>CUe$3Lskv~<|c-{)go$k12txR@cEU~Mv~#5aUKZ-LgD4ck*r zZjt8kURicOPy39TnEE2YsNc3H_)-jb0$dwAq>S_yoHSR_7{4%>75?+#iIC;NH%u~S z=Y}Rq^4l1DZB?VZ#*WCpdS@XY(c;H?(ch|jt5_^|=z+e>;N)@Jd5oMi z+loJyEW5Ej!MkR%aaFCT!i>X4MW<&d(?ViTZ|u(M^jPmQN2gUory*~rkl;Bf#X`D- z?YpV_vl`avoH=!B9 zRt7hG?7C~dd1p+I+2+h#)!L_AJa%smy`t*ron4=V(ri-uUTlw|Uu${drrY;nvq)v% zuQ@z98*WCwD)=)Y$H`LOnU?cLHu8DSZt?9sD;0-t8T<^$YPgyenZD7W!jwwiyjxs< zo$$)gXbT@6-4&mmZFcUYOy2xhxIOVqJ=0yoCc@-srNG3Gz2`+Ldx}h@)1`OYo}JXS z^H=WJY?n4Ujl>TM9$o2&Pu(2tJ9iYbXx}zDc>LJ;YQ^-d;wL8K!aiA@skB&>FMiqW zd}+7#mCNruPWNAn_Hn#Xt|8h{{-!5+@Z6`l{PJb5->4e?{wB&7oH^P3sM=J2Q7^T| z?eoJ%&y}}domJ)}L|16lHI%uZH4q_R)!?|0zcDeMX?yV^YhZl*<`}V$b))>3j`L-# zJJIVXc>bYjRKm}=JqPULgR%=wIOVwBj^A)9uf#q)ho&=o>DliM5=Z4OthE-L$9ps| zMDN|_@2ApZMh~Tj&lRan{MP(GRg&4>DM~yo!Xxr5-v6TVx{7u zIhz8?3zLe|H!_u@H9EeJ#C*6^7^AY&l+n6#V67F>c8f)gaTyXydfB*5VAb^;+ta0njUJ;61B z;KAM9{=ba#yBPO;}U3hx(_P%i$U)k9ZuxDgXVGI$rQ zTkjiNf;$Z@1kTqt47Qn+zQui$*U{FNdeQl-KcSFFLH8#>=E{9H@$l6VOR{uWV3W~V zgnWADiXq#}o{#%j#Zyf3@{|5w^q@mYmy^xrEqVc=dO9Cv!+Hc-EqM|ak?d-!QFamo zvdljsnG~pF%766BWT2irO=BDDQ1ALkw%<_d-xS(qBa)48w{R z{%R0qIJ5X0O{y{J142`}++#l;>u61kRh@)9}cT@AhR*1}}a=QsP1BdE1TNto76EzZRA#St$V#IGpl4Pj|C5seVU z4T_Rq2`rs;B$ zj8&$O*{gjxvWz!d5!a?U$$T!qc=}18COrvXKI7NCP`6l1cXbl0Eg$OWo`c4!{to;( zHGA*KGXK;sfoAZCDF_t}kW|Fu()3I5`byeF9${x>Ny;Tj%ZfNR?ght8uS)jq!1yqe z*?C!u=0VDzB)8%f27FuLpWk}QtJ)+EA`DEd5r*b(;1M&3in+#PQn~W6WDqhep)FK6 z=Wi({SmoWQjbY`9C0%B|WiQgA&0s~FjZPVr#(X_f2X3S0?kuZK&wrY{eN-)YJJ_Pn zzoAN$cKWf69gi}$%1-v8$83a#p-kfi6AjEqo?KTMhpS&dV}(Pmu6g&H69cL!ukf!v zQKK*8#JS$#ben1ko(t?VV&(2KL_?n@q_r$K5}{Ee+2*f+$ZT_0f{)l5nWzv$-p)kM3F%-C%1pQ1C8|)mcRU zWK4BQwlcz=NOob|qdoD`u^v9OzTuHA8jg6I4nZoGQDRElfmSTY-t-jAbO zv!mryum)wsWTNYfM9SJX4|-_BT}6xE-;%Wi)%Wj4Uape0pG>P zQr>?}`174uglO!BwMt3SP?`|BpTYzU^wQ>)r&8AU;Xm3a9tl~<_AtXxoS^GahNdai zz@7*u=Yj5Pf0Cvf1YQO2Zs#@j)tGjeu;J+OVp)&zf!E&M#l8u_Jn!)yP52DJ^E|^Vstys1@2OW1-BG0wqf@d3U3ypXcnMbXhEQ%;t zId!$i5yx$YYARkTSZCuwH~qC!(7x_4ucP}@pws$TesK4s-(kLIxG!5nBf=qPmE6dJ zWAbxcjNuWLy=ihgb)JVW3&rG`a9TV3 zOc6D(OyKYZUA0$Y#m(S;UWMu;mq34}YD*di$DPF_>;XYqQ|2Tb>aHtUt>i%~+^J8; zlN+(lM8vNv#OvnYPraMtR1a_<{GjpQNKU)Efq3D3rr42jMFi+rPRlw z*!Db^B4a`9ssX_pE3eLd(h9U5)BE|b1)Ng~P}91OXpGvsSq5(DJvE)o$uTY+&F{Gr zaBh`y@*H#)x#RYi6({nr+fwoo6igGV#AD<6Xkdlr5Es^NE0*l$Rm!gR_0VP(1x+CSq04-eeYkB&TtIrR z7~1}FoKeC!dFp_7@pMv~ZP9R&k#=!#LYrh!d_wz8F{aOJ=?y4}m zer6OTfu_^m-N!wShqWg}-mC~@pUjWL0Z5+$XJI2GqhTWn!oo?)%)w&OKvHH&a)ZoFcj1|z z6$J?8TUkOo%5mm!YNQ@p#EZMy4LS1)P4Cbd)A%w}Rn&i^UtcWMcI4z_q7t%7 zYw=>m!y#=ulfcwilWz)qe}`Z?y#Hg4cpuj0WlvxiKR?fzaL)*}u>k{e@^Mcu8S1RJ zkcKq;h)ZiTf4jn?u)6-_F5PzTw_QXA_q5W~D9;q=j8ENq^-Hy#X%a%lWOM`lW43l; zrV*oT#@88Di=kp6f0thB$ z@7hE!Xj2ssu}+PP?Cbov0p}}^BZsyZ8GbH{UmL*(yV-L3YP~Uv6=6Mx&7Cp2QO3Ht z*DC1njOv}D;ZzPuUl9!5T2OEDs;bA{jBRlaaKrP2hf)^K4U6nqRwkS+Q;(a7-DRY5` z4YKf9%;$6DLUj7jW?JA5XO1K}f4Hlc1cnYfHX#can?%!CM` z>O%_J;SE%(k`pVXo-Bi4cW-B44T9yK@UJ>VC z=cZ7&e5T;|!(=slzOJ=`^VJPEg98P?_9Dobzr|u9l4*m34fgI|LsQK_+R*sYC>I8e zSsH&AfOqeof%ZOJLT>zRtuLYhT|7N*TTaB(TlZPC{q$KcCd@l7CF$BG3cB)!OpAvg zRZg5w#L)$HN?z$p`|kAPY{;(bj&{KK<)x_xv-u4LLM zU-(%$Ce0LtraW3`9Vh*lH{4gDM3`stYr}1n0a+%0W zwwiuZY1UQGVa5V?8qVkoSLW>5AU5yDb!^8e^a62XKRUnC$y%80EIOfIpjIV9joD8- zKYtP)dqQ!|#t>1k6`^03Vo7oI9_yvjF}M9oF(bA=(+u#tN$;-SbTzBR`g{vu$jpe# z;)BihQH(8D!!$lmbFhE)XZ4&Thn{|5{^EMyyXx^o%YH-X7c?$ z(%d_;@z{$c{$@Uyqeww14R}RbXdh+zy(oV#*J5y@ibvokij`*h*4BigIC`pcP za!g0j=-ikq>ztmam(w2aQe00t4gC+OeWNNLq~j|eXdVrEmJai(^$oWpxVs#@pHoUCgG?h!CvkfIc?B8-3b5ZoZgVF57M(L=bej?)@+uK&ch2~T3eR3h( zG`(h+ApHfA8lqt?38#BtDuH`hbetdC#}RbxWndm~%Gy?yiWhlbzfSPXfaizghNCx7n z2x;oEQUr(_S4k=bDM%d&rO+jlca)32Oz^Z{&?CGZ1$Vd7BzIIy|&ChmCiG#vR1 zy*7g5X^FsRrxTTl43DJSa^kTgf31lcOnbO6a}!D+MU-De`3Z)Am6$zM)hV@*-rl_J z$8Q)1FO|j+IT^J=;UD_1_$wUU5^{o62KW~EJv03l$ZY2fd(($j)QeYG?E^})IFiXOH0wd2RV#z(#P zZJ$R3KR-xG2#yNAIm`8uQqN43ji#%6<>1^zpx$ekvrUWgflZyJD!#d4n-eNC@k&kh z#cMV6^R!G1f`gB*G$;SOnfw(N7SDIo_Wtbi)l%!KWQZm7{dF5wN2T{`X&M=Q8Vmh= zJi@C!2$bplpcccVNN#3bXpIc7ER+7%1PTqsEIY5dOnQ2&^AdHPpCqiEd}=0iuOXWy zdcPvxF#XWak-PNdRV>V$IAx(^ji2yslG+G%f7xs-7D6h4x1d}jHO9|>DXP&4ErkUP zxP0jvCkMJsaPy14Ol-=&mmvtaI|#Y^9CF7YA`i96Li0?@TqZt3yR*9@I5!cV5LGo{ zBL2x(WpANyg`RU~bVKo5oO16`#tN`F;Gssu%wFOg+gBZj`!YwobK@5{x*!|LPU9Y^ ztYv}P{wsPT`uuMf<0;)2krYi%(}?&Nl6cf3Vr*iQRIy@%$t9}hkEhGJ+S0|J{THj* zKTJXCox^u4w;Q~M90kR78x{j<)JzPDG1m08`WJ6EWaGe45{>hmi z`qg`M6GZ%jPC?3#FDAMNI&`(?)#fY<2PbLEYe=orY|rxm@4};v2+LC!a!YU(JGE0`-VK@7ehhQ4dPGx>x7NwUyeTb@(4iV z=cLQ*vI_0-34v?dp z+ZFAHf9twnkTg-gq7S|qrZE#7miE)qsS6wnCiUL6;l>%qePh}HW5Hc-eJfFn@J{vv zmG@B__Tl3Aa_QHdTPzh)Lm7%e9bL~^s7kcHl-SYFA5)P+4X&{V4lGSV5t!rtMThUJ z<|xv(w6;a-)xKbHEjfNAhm*qmJ@4L?NHK6Jf-XSLg&0f=`TOO~6+%54fiM==Pw!UB z5UQAOv(nVQG4(>oCu;+5d)t5KOE1ztVq(%&EW!yDdTbA!37u!3HTYZQcQwE(oI*#H zkjKLc`r9kPEo}tXU3aPjCu;q;bh6Y92h4@9aP=eLDIX|SWFiAiBB;;_nwSRq%eo&$ zm}gGDnAZsw!s=1$sqK?p1dCKrJS}a_1=se$7u%a%nw?d@(7*N#>i;=M<50#lr8+EE z9YlgD;r`_iYviHRWxSnpljK(FQ>$TiEyY;D87s*v@|I$#dc$4UMBIdk zJz=?y^AOUwx&M!g@^^pfPIi4=1g_!35JRZ0nUUlmY?;$(>t>6tx)vmzZ;xI(pM-HJ}EbBI3_vK z%V7@J>u4$INW0`bZ51WaSD`3?+{}6cYSw>svMhQ%7D~#FD+c#}xfICMzpFGfY}qR_ zY(dzzZmx4otAAI%cN`~4HnqtMJ?`}JLiL|1H~!!!_;YxLC8W73^i`QEkdjHsoOXQB z&xIu-tSjVbVr<-|Q(ciZd{L_1{9(qxpgc_{LYs|K-zt`C>cUZ(eTdNU;nu+3uT7@H zxac>Kwu3hNn_ZSvN+9WkBRXX^<67TfP3?#CJ!&N9AS1J$(sg1+mI*5&RMX+Z2Sx&= z&ATF9B{*BPINpT)ypp$SfZgf$JVr8mZL<7ki|NmWeR8>{R+h5_Rip!j5hJ8d{7!N? z)xDO4>;%f)l-~?GLK3C6qjG&{!n$*3Q)MDiV#Qi;ls>CF9<<@gyq;H|HHLeLn;r>C zKZxN7q5HYetJ98Zbco?*4GkYgRG zHIXyoQr2o4aupLatxF?-qzT>7ys5xrn!jO5y9HziBIHR|ih^3cYr%m$r1cIrV<- zYwV~(yy&V7uI=wX-jKS`i)Oz&U1d2tT*OPRKEe}J@C#MV4?q!Sd0Qp=`-ru?nz%aL zyCWqIQ+C|(1l50d+!{)9i_x-BWYW)+{YLV*4z|zh%kI~r^F9Nl_W7c?!ug727ju^o zzJP2T>7v&cODdid+-%PCfz9(IrS6zR-*@>3r|od8F=O@+Uc$qDS;O0i5$+7-cK@ z&P_rmqUsw|e(}I^S^|R%0mCobt>&F*YVa%K82gy#xEe$P8lgI2I)p{~ z+@Nym&}biXBs?ntLs>}zbp1;{t2USsr2Xl0`@|?8Ll)7I>c{T^Cki3+-QfX$Em`Fb z=7>sH@UQX}42+_B7uV|7U4IoTdmHZmqE@H0(IT}mgJ#2=V0b=sysf+_vZ2lj2`GD7 zI}Xu#XGb>NrIZnU*(>}9&fWBs8IEyVOaf>kBh5X?eZe+Yd zU{KAX)2UXF(I-Z_#7n+Kqnxk4pB#U1^t$^bW1WV#X3(W`lV;;G(cVd$UP=Y?K^aKI z39w)P2!bk|N~E>gzA9i_ZRjeZo5myk%8zilm4jn5eyPsX6gK#XR5vQDqw9N~&CPc9 zQu<&sa&jinHIWw~-GjxtbP^t093E`(`^wPM&0r}6RKVn0Jq zEA!7j)yc=T`=b#5p^V3Ev-mqxE-m^p7sF-#o@nuDy6WqgxbN0z;bU;pqm{M0y~*D4 z&+CIDbL7L0!xi|?q|m<+ULQ^vG4@u@qqFt9DmmQdd&YGAw2vRD^3O&_kZW`B3fW1q zmwmRNhYy5nBi^pd6J>5)XL~*u4vcbl_m*gD&@CSxnE z&h2f7iD7&jP5^A0_RwJPFkYB*M-e3Lza4kx4g6pEq;GUPPBOi-e^5lm$M(V#ybdwAv7?0vU-me zb9&89$|sumD_=Fj{44jk9+ z)AAzXsC7CTZ0p)4@vO5-dQGgtOtIa?Y*1CR2PStvaomamqP_1yc>qVe`r+qRvB%uX zqkyp%6Bs{dfTKIoEnb-+K6VLReSxgE79&s0oTRYU@||yc%phdr-_C=-?ho-)C`>s znKgS*rvktEBR;9vaEQ}|g~nV-Zu!)aQOs#bJXRs%V@gYEB`n0?_j1N`RGvg6E7t^p z$MB0Roe>VS6r2zpsj@+UuqVC?wGb%B?qh*6QPJ4_{dO7rC9q&ki5bPR%*8LqOE zKJF9z>eeZ$PiDE^h{t?C;WDBWUP$;olQmduz+wv)yM}uvd)7iIN=yFL?szrtV*ZAJ zvAf=p&@IV$?QB3$vv*&VM|?gk@;pX2@XfBg^jGbkH^xM~{XQQRJbu!hI93b`&wWYS zjyS1a&_k`XTz|aVBvtDGsch`A7{i^=m*fn$yEEg2{>yas+Q6+r92vy7c#V0zN&@)! zBTZQ9_>{qvpXf`VlMLmXx8eDHaV4@&HOhA(El%DorVdgthG~&BLlcGJZn^bWWBlat z?> z@uku{|Gf&2S#j?ZmDVYdke(AF4H;}&FU4O@XhoWl70b4~W49j7DywszNv$2z;m5XO zFjsOa^}Kl3`$b83!n!0BK_rMp1@=U)zd8(G<`E5d%Dkbz`?F7ZUoALURke&%&OBM~ zY3%>hd0Qj>0vh?rlHNT{YA%}IBlSDJb^dTUe<_EY42r^R9(rft173n>f^1i&4wBje z8aHkUcYnH#h67jKyt`J2ouE<1G^=-1k%a0&K9cwz5wU&Z#3B<}^q&tuw_Lwj@OdZI zZu>EKE95dNy?@g!OcI|YU({v^(Zp4jSLUY8bSm-_-h}G6qWdMGk&39>i(FI{p`A~|jd(Rc1s z2U)kf!F6LK>$fqp&&udLhIBn7wDf*Zrm(?qb0r&l{eYy6ogezao1J z*x&!8I7Qp=o6?6{bxXlq;7-^1>Y6!t@3t-zAyYkGdT*B=tCY|7sCNX}OzRkn(j;;2 z<5!h`L6RVghPxIc!S6<#=u7*BCoQDiOO~RB<3aSC2czN7pQ-q<4?DfU6t7H9_cvZSoU$kMpCalPk@Q2CiBA2`0vV zi9bB_^Hm1>P#gT`%E%@2(9PC{VQS7#SH&{C_3vYxm-a~JU9T*8@9RzX`2^c>cd6tl zwGO69+%u#5Ne+Tj623^`Ql^tEbXUj_;pT9Z>6N>xxTe{R{)|&)Phf1)EJKdRd&zPj zvMFvnTNYl=51U`GG+r#ApM6=8aWc@XmyP8Ct!1ye#hdFw)-6?4z|K9O^BLVzE5=dW zt4_}?F|GaE$+EHJYseW&D z(y1V>lz+(>r zG*AxbH65zHXTuizs}rC2-nESoyfr?iSWCy7mBq<9fGSEM7WA4|ll_4!o~>(~MK zro6b0XO;NqMi70Zg?EPfJ~=)|l5cXjiRSeFeik46fPvt9$g^aW(UIAm-0}86%$x?v zfre#tY5siqSb;WJ#lxGRk!SCLJ;1C71A3->h{u}y+wl-H5`)x*S+ko{1C=eeui;MG zCc;sf;ySn&E>x=PvN(q84V&jI5}*Bb=7c8e*OpwqAI=TQKRok|zN;kZsRofLvd{W{ zgqgOg=^GZO9T$f$Z^KVu;VQq*#K_!_`x}0Xc@(d*GqmojM8qyE$EoOT^Y_ejL>Bth zXQ-9^*9PPE_&oHBp5W;qz)i&2ov*X?j+yeaq>ng%tF_PAibv~YZ=lsjN^;Eg51S^%*K$C{8LA$w0S3!0O0fFtW0Av>U$Y#jy?ARJz!uHaxN6&$&zM zTi)8henBuT7~-G z0KW}im?*R?Z=jYa+Np1;U>w#98rnF8$}f!n8vH3I)v~`W7Dr36V!lrHh~k<=!PYh#03o zyJQuVgTsVql5a$RD4Nwmq_#3wm^v&x#+M1?u6LsvYO(27`m;!cCuewip`9gH;cr@( zvUZGJ^CCk5-TA{ee}7Mc8*&8b%$YU+whj_U{UBwnfl=iBHf4NL^iwHgeevbBB@e@3 zx1}nbEE$zJ(R`iVg=|`w7<>y4cF+tW-SlF1q!T7-laAbts5P3_DW72Q#aP#4HGy^Z zA$rtz{m*YlEO&9M-(Wc|ctTG*920gU$>r}VFv2!gU=Nn8q`sLzp<5XV87D%`4C81u zFUfg1U+dS=$^UHo7GpB|9jOaRDC^LG1W)k3Ew4*!t<$(zZha3XvmJw7&tXYFRQ0>a zhII0pI>uLeV==FyMyfcn(3fC%S$8dBKl$~ zlYds@tkMw#2w5e8kc<3V&Wm?DsB5v<@5ReTjz6@9Q(DFsRojX~8>k|~U8u1FT9|n? zROFU6d&%qGZ8Q|LD^9&%rF^r+aHmJ(Ui0Acrr*-t`eq{iNpksN>vO{=GU4UMkL|YY z^p>lTHcc;NWIi!|yKWKaXpp2Z4eF)oVf|LW+^2|li}Twy8G$Kb8CeOU-P734>L)4cc@u1W(oN~@^fEMpcHM2DYLZ)z0%KX%OR2c0s=psy7sF@!7S6q=0Q+2F@l?p_$v zH&)|}@mAv2$$Vu6zt{>EJ%1;Sq+FFLR4&7iHBqPiWxdnADKc0xw|&gQd@{7Uw4?A0 znX|s^s3|kP!#~Fqs<6)&&p?GrD3dsBB1@P@HpNG5KU~@WhYcFIQOg>-qMn@#{_CTG zPeUb_&`+bgQ&%HK?=iKK3>niDd`c34~ z5(3^AJU22r@_J-NZG-yS{NS@K8PTq_wsCplfZOX5mHoCbXu^;i4=gbv;mu8)E2~z; zA|_jw=os~YwSYy?+6NJ9l=kY`5~9SEbDhy0lg5)<80ec#V4Ks?2)m;#JLe61B>imjPt3V{RnBf$?_lNu*|6 z9ZL=nQt)`a?}dBlg~XUWO*Zl)J;1=+#7`xjEtH8^i@sfHK)l@?j`3=3fG<&-l`kru zuk79+yu;Z1ggGH4Tlm9Y!>GxlHgYBWKcj+?gkB}RG0;zj-xcDU33x(>W_j|_eeEvc~PWe9ihf3;l=GN)`p)3TMYKT)o28gFw zCGhS{R8|WflXa&itBEp(l}VqpDkgZ;l-I<(O(2Il?^NQ(v|Ms2$YfK$K~%EFU5Gg< z^(yoH$u74~vNYTOXMA8;FlO=gFk*#SK*%S4w-jT+V4d1(ujgPW7n6^Vk6iA2;DRg3 zB{FJis#xi%N!_g6pD0yDC)4YIg7f?olr!FnF4R7i zX~z{7DR=Td@0@Eb=0D6%4GN)H-oJy0wkV0eS8klK^~??%-q2c6d0d_(@cqRQMYQFR zJhVEASFLj03eR+s*jqonxsSUS9LUWxPZ=eG+A2$I#Y`R**UmJ>LvKvA_inKd#LDa! zO)p}3g+wSXrB||_Mn-ws!)5hS2mYL0%pe5b1`;hUI+y9e`QUy;a+VFw+85oHrjDdH zTNf!Q_dEFfnb@~7$H(?YAv~F;3{{XjUnXa5TVRg)h(1_lSx+ASUDD_80;vPD%mI5; zP|>~#4O3`QRRuNaG^@+q7q8t3tevO5BVxNQty0sq9sk!OJy21cZ2TH+N?DPB0PH_( zQfS-Gs~!=X{q9YKuj67hM{E|a9$EkJ&<(VC6Uj@4<`E0LvHd2vhhi3PSZ$PE{z31> zk~G0eDV4>9`1Tj7?isOGE>A0e!>MF)K`3{LH9R~!)iTQ<$);NuEd`eew*x`ahw8uN{fC-cGo)5%;jgM(#x-)cjrN<&MB7D zn92>98T!82ueMGdb=uAJ%&;!Ek>w;SC`roanw{gUh6b1JO&C=Dy)7r<=$=-q$9y~o4ydTXM20TdBll&hw zf~Bk5`+pV3z#=My7`6nsK!s2Xl1hOzHI{#9C|2g4)}Hpx*8fuN>_DZo?mtR+D|?TB z>q`J7GzdLxC*XnxA%!IaBG4c#u-QO08iWg$5?DclFu=wDi0BYTSapCM9h77Mb#w?V zEH3~-2btl(XLJZ1EFRE~4xxcn0G6LAjsOA%Xwwy7!2l~U0Ywau84p07D+_=$46ykn z(D^>H07Fa&8AV7T0*rmxi+?(fWNYo|>gM@x z-(LWU&qOnz90dEQJ&BFMFEDeK!$`dD&g82fI;f1ZeG@9gFZdCnCsbBq7>T@5(LhA_h(02DY7CRi%q z6%HuX0ggDJNqry=2lN>VP>KVgBx`ty0%OnfkF7rl4j!&9|8{O0SjB#Eq`YCYS zpcgQn^<362mabOTkbm9OQwS2m@&AY5VQKE-^8X1+%^)EQ;hFFU*~!(`*51YT|3AbG z7eWF%2E50GP?GoZpu*VyB>9Jl=wj^&`R{mQfofa`72Ja+Fo6puDLSx+3!xCkH3#|c z{?m74H*?Sb4QqHQs5_SV#}<;Cy``hmeo6Y z$bZrR(cR11>%VkIpz4`d1q^{e)mIGiIvM`4ivqC*nI4|ck^Uz$LIHSuFid&?2R?)Y zwiwXI2O}v9K=Hv0Hvn?*!6=ge-S}V-uz(GGa4viVPzk`auK>6RzyJ*aIs~B340ulf z>SBQ}1YmP~pywF^fE@yGxj+E$2|;ETAW8@_`2Z6_FgqdvUqT2e#p*UXj6ELqe}?Q~ z=jCbd^ly;PfNDZ;3~zy95J*KOFktL$x&I-;dwBep^%Zz}X1xK(h`{vL07O7|IWq~8 z1OLy-p5_o6`~UAr9STes`+58SIK$K0+3kOoJU}85=;jlkf(Yy*CooI|A=Tf#2U~a{ z{$C4MM{5`R5C8SFDI6AzJu>}2N_0<%xuvzUxs#LYf3v`b5!7>&{-a0oeDC(3MEYle zOaml{!LFwP`oy5G7l04X00Vp`2EEh@v=c+yg;QWC=GSCVEP)r7PX$%-515FnJ$7Enm zOaOS~;PbEmNpdi@=78-pI05nGAf*-fP7V$Q1DGL)u*0eWuoR#bWPpVN?57!^K>?b^ z1wMk6aM##C9tGHf8u&p0;e(9=?kT{>uK;Y6AQc~YO9|?*03S*)nUsJm5J-*#abfJ6 z|1&e;yuAKRmQrAz5?mm-fGbKcaBB^ORN#OSMZvpaLjiGW2ostxc$*$60eIu$OTd{L z{PckbLa8AyV6lNZYH;zk0%kyvZiRt05(2NHs)DsJb^73J&gJ&r3S2$^dC|bYdxMwf ziTs9vfjsN~nQ#9?0QJ>_fB+3>%^A>sh5*2e1|kW50@Xc(8F29oD1ZPh2qu8nGrR-p zXdx1CaZA9(vnT}!(18#Gcs+w6Q1=X9fQx6y0|e+nAO^hX!4@3bK;5&509-ta1>=AK z11PouUe90#)ICEMaKQj7lb-+qMo?r0yq=*GsCx!o;DQlU`pp9ZOdvMh0$xmDwH#3Q z41B=FGdKbQ%%C!V2=IEwr8A(88LZ9(E}nrH5MTkp4e)vfeV~p70J8!AUR}D`Bt}X+v-%05LlR z6I_`X*}+J00ou^_}@UnxB@wSa6|wjCxi+Otj2qR^IQN`P6#=oCydjJ1;CjTq6{=}LLfAOqA2Zd zG7y^PX!c6Ogb-8P_6$#XrljPNhNpaF>l42QMJ@<0Hk4DXsLS}YGyV$_b$-0|AuDjE zP^PGkOKC7X*LbPcJ;9BMgvu7C5O#$L3k!<~gAfFsMb7-bHxU-EokTi+4DNHyO_M4Y z=4z(sevTnt$GcT}o~qA*-r;Qz!2akVCB>JVM(r+)yE&3tqj$JV z*fxAZ4N&(l&4%g?n1!k$)?0TvWV5E~8QM<;1r?U9$r-N5Ns=)$kel@Rm*$c;BiJc? zDQhNJ2iWa4kr69qYfZf}-6&#Si7#Ly0>A11+z`O|&fht~)rn_|lKukgk;R8f01y=v z&56FaK~Fz4^8Yf!*fql{Z>jR*WXGPLwMw4a{1U25URA>>5K~Y~%RehC)gO}DSGxA{ z#B7dRkV|e?G7F(upT6G0(#L{v?Qr3N2Ed{iJWiooykr5Y}s_R`mO>BhynI9m^Le||F$lX@r{ z4O2qVez8NGwxJmdLKh6tw(12Y_EQ%fp;u2PB;Ws({wXuy&EpOF*7)ApVL=k9vt57Z z%e159o%fF>q_RT6aYGbX1UJ;_5iJX)ad*a}>=e=OBA6TDah4}@u?-bwZ?JM-Wp)dx zx*H(~i7e3bn55@9zX;Qq70X9l{$VyX{p-3yXiG+sr9>k5@98Bug<>j(Nt^cU3O0g~ zA#%m+fF!M-BL1{8%HM?(_@&BfU!o-2A+}`~rL; z4faxyQGC?@%7By>M3Tl%F~7VaV{B|xd?ksZ1=X6mPcIdaJbb~aItp!nm zrrCK)QEm%x_j)q=VW@YJZS#MqJ<&2^7Q9dq{M!t`nQ_Z9>fo@~`wFk!emLF`lN$Wv zNANH*kBF7XYT)z>DNCH!9rdz3(dlS!_iXJm@BP+STy*^sMGdTI_@QX4w(=A?g|C&X z3d3o=wR5ip;VU64F*4;JqnJ3ThBEbXpeChn;-b&KZok8@ep12-4mK$+e3HTV(JxU_ zoKGlEfhb3rJmFRx)`Ydtz&dcwg}D`J+U^v|vw0ioGR3dWufT{f$f&*2B;kRK{}{&t ze8$iqfHQ1$IrUo`r>V3F{XsQb+`}U2Nz*nYvS@FWEH!l~^C?5BrJSPnx3YAX5Y*^c z-`hbxL(?*M3T^FTQHM4$(dlQfd*i3Kk_xY(HS_u;s)$B&m-ZPIa(YVUyhhkT8NQEr zUEklQ7Bju^Qfn0}pvx=Dyq-N;{`J-o4J(j~&Cj{pQc&Bq@?hzLMq1|&&uwpNvDmNc zI}d0QeP8Fol>4>Drj~_;>jYo9=o0kZVT{*J?58BU>&pkPo%#~%-wp~6ILxJ$iP#^Z z8J0*7H_PdY2Q@XJD{>LB)l8p^tz=WB5<15H^m15DO8h7#wXKpr`Y>jRUxryl^AH*K ze;S}V3Phw@_SvIeV?x|cq=VZy+~mVlI$3r_{gy~?nam)2Ss3TaXk)i#D5Qw`OS1&L I85w;2Kix}l#sB~S From 217eec6e1e64b164c93f239675f9ae8c5dd9ac2d Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Thu, 12 Dec 2024 09:41:07 +0000 Subject: [PATCH 131/179] IDF release/v5.3 083aad99 --- package/package_esp32_index.template.json | 68 +++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/package/package_esp32_index.template.json b/package/package_esp32_index.template.json index 63bb102549b..5051c3b01a6 100644 --- a/package/package_esp32_index.template.json +++ b/package/package_esp32_index.template.json @@ -42,7 +42,7 @@ { "packager": "esp32", "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-083aad99-v1" + "version": "idf-release_v5.3-083aad99-v2" }, { "packager": "esp32", @@ -95,63 +95,63 @@ "tools": [ { "name": "esp32-arduino-libs", - "version": "idf-release_v5.3-083aad99-v1", + "version": "idf-release_v5.3-083aad99-v2", "systems": [ { "host": "i686-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "x86_64-mingw32", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "arm64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "x86_64-apple-darwin", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "x86_64-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "i686-pc-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "aarch64-linux-gnu", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" }, { "host": "arm-linux-gnueabihf", - "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v1.zip", - "checksum": "SHA-256:5aabafdd3bdc2cfc4a409efc00202aee4d8b1bcb1efaf5021c02ac2e90473603", - "size": "341111216" + "url": "https://github.com/espressif/esp32-arduino-lib-builder/releases/download/idf-release_v5.3/esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "archiveFileName": "esp32-arduino-libs-idf-release_v5.3-083aad99-v2.zip", + "checksum": "SHA-256:4c6cae2e34df7e85a149615a6c18169777faf9460f708fc51d93616a117973c2", + "size": "341175680" } ] }, From 3bf8f23e487676ec3af812004bb4be634afe01c8 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Thu, 12 Dec 2024 10:03:45 -0300 Subject: [PATCH 132/179] fix(matter): removed commentary that has no code related --- .../examples/MatterOccupancySensor/MatterOccupancySensor.ino | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino index 5b4baf23442..7582a423dc0 100644 --- a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino +++ b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino @@ -48,7 +48,6 @@ const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s void setup() { // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - // The button will also be used to manually toggle the Occupancy Sensor state pinMode(buttonPin, INPUT_PULLUP); Serial.begin(115200); From 4cf0f20129fd192935691a59cf24c3e065fb5a19 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 13:43:48 +0000 Subject: [PATCH 133/179] ci(pre-commit): Apply automatic fixes --- .../Matter/src/MatterEndpoints/MatterOccupancySensor.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp index 9efa984431a..2477038bf28 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp @@ -24,10 +24,8 @@ using namespace esp_matter::endpoint; using namespace chip::app::Clusters; const uint8_t MatterOccupancySensor::occupancySensorTypeBitmap[4] = { - MatterOccupancySensor::occupancySensorTypePir, - MatterOccupancySensor::occupancySensorTypePir | MatterOccupancySensor::occupancySensorTypeUltrasonic, - MatterOccupancySensor::occupancySensorTypeUltrasonic, - MatterOccupancySensor::occupancySensorTypePhysicalContact + MatterOccupancySensor::occupancySensorTypePir, MatterOccupancySensor::occupancySensorTypePir | MatterOccupancySensor::occupancySensorTypeUltrasonic, + MatterOccupancySensor::occupancySensorTypeUltrasonic, MatterOccupancySensor::occupancySensorTypePhysicalContact }; bool MatterOccupancySensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { From 77df256f5db51c139715cc73927dccd38d652cfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:07:31 +0100 Subject: [PATCH 134/179] feat(zigbee): Add pressure, flow and occupancy sensor --- .../Zigbee_Occupancy_Sensor/README.md | 57 ++++++++ .../Zigbee_Occupancy_Sensor.ino | 104 ++++++++++++++ .../examples/Zigbee_Occupancy_Sensor/ci.json | 6 + .../Zigbee_Pressure_Flow_Sensor/README.md | 72 ++++++++++ .../Zigbee_Pressure_Flow_Sensor.ino | 134 ++++++++++++++++++ .../Zigbee_Pressure_Flow_Sensor/ci.json | 6 + .../Zigbee_Temp_Hum_Sensor_Sleepy/README.md | 2 +- .../Zigbee_Temp_Hum_Sensor_Sleepy.ino | 7 +- .../Zigbee_Temperature_Sensor/README.md | 2 +- .../Zigbee_Temperature_Sensor.ino | 4 +- libraries/Zigbee/src/Zigbee.h | 3 + libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp | 105 ++++++++++++++ libraries/Zigbee/src/ep/ZigbeeFlowSensor.h | 58 ++++++++ .../Zigbee/src/ep/ZigbeeOccupancySensor.cpp | 63 ++++++++ .../Zigbee/src/ep/ZigbeeOccupancySensor.h | 52 +++++++ .../Zigbee/src/ep/ZigbeePressureSensor.cpp | 101 +++++++++++++ .../Zigbee/src/ep/ZigbeePressureSensor.h | 58 ++++++++ libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp | 9 ++ libraries/Zigbee/src/ep/ZigbeeTempSensor.h | 8 ++ 19 files changed, 844 insertions(+), 7 deletions(-) create mode 100644 libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md create mode 100644 libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino create mode 100644 libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/ci.json create mode 100644 libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/README.md create mode 100644 libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino create mode 100644 libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/ci.json create mode 100644 libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp create mode 100644 libraries/Zigbee/src/ep/ZigbeeFlowSensor.h create mode 100644 libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp create mode 100644 libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h create mode 100644 libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp create mode 100644 libraries/Zigbee/src/ep/ZigbeePressureSensor.h diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md new file mode 100644 index 00000000000..0e668775f5c --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md @@ -0,0 +1,57 @@ +# Arduino-ESP32 Zigbee Occupancy Sensor Example + +This example shows how to configure the Zigbee end device and use it as a Home Automation (HA) occupancy sensor (PIR). + +# Supported Targets + +Currently, this example supports the following targets. + +| Supported Targets | ESP32-C6 | ESP32-H2 | +| ----------------- | -------- | -------- | + +## Hardware Required + +* A USB cable for power supply and programming + +### Configure the Project + +Set the Button GPIO by changing the `button` variable. By default, it's the pin `BOOT_PIN` (BOOT button on ESP32-C6 and ESP32-H2). +Set the Sensor GPIO by changing the `sensor_pin` variable. + +#### Using Arduino IDE + +To get more information about the Espressif boards see [Espressif Development Kits](https://www.espressif.com/en/products/devkits). + +* Before Compile/Verify, select the correct board: `Tools -> Board`. +* Select the End device Zigbee mode: `Tools -> Zigbee mode: Zigbee ED (end device)` +* Select Partition Scheme for Zigbee: `Tools -> Partition Scheme: Zigbee 4MB with spiffs` +* Select the COM port: `Tools -> Port: xxx` where the `xxx` is the detected COM port. +* Optional: Set debug level to verbose to see all logs from Zigbee stack: `Tools -> Core Debug Level: Verbose`. + +## Troubleshooting + +If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. + +***Important: Make sure you are using a good quality USB cable and that you have a reliable power source*** + +* **LED not blinking:** Check the wiring connection and the IO selection. +* **Programming Fail:** If the programming/flash procedure fails, try reducing the serial connection speed. +* **COM port not detected:** Check the USB cable and the USB to Serial driver installation. + +If the error persists, you can ask for help at the official [ESP32 forum](https://esp32.com) or see [Contribute](#contribute). + +## Contribute + +To know how to contribute to this project, see [How to contribute.](https://github.com/espressif/arduino-esp32/blob/master/CONTRIBUTING.rst) + +If you have any **feedback** or **issue** to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome! + +Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else. + +## Resources + +* Official ESP32 Forum: [Link](https://esp32.com) +* Arduino-ESP32 Official Repository: [espressif/arduino-esp32](https://github.com/espressif/arduino-esp32) +* ESP32-C6 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) +* ESP32-H2 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) +* Official ESP-IDF documentation: [ESP-IDF](https://idf.espressif.com) diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino new file mode 100644 index 00000000000..b1cb53eb33d --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino @@ -0,0 +1,104 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @brief This example demonstrates Zigbee occupancy sensor. + * + * The example demonstrates how to use Zigbee library to create a end device occupancy sensor. + * The occupancy sensor is a Zigbee end device, which is reporting data to the Zigbee network. + * Tested with PIR sensor HC-SR501 connected to GPIO4. + * + * Proper Zigbee mode must be selected in Tools->Zigbee mode + * and also the correct partition scheme must be selected in Tools->Partition Scheme. + * + * Please check the README.md for instructions and more detailed description. + * + * Created by Jan Procházka (https://github.com/P-R-O-C-H-Y/) + */ + +#ifndef ZIGBEE_MODE_ED +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" +#endif + +#include "Zigbee.h" + +/* Zigbee occupancy sensor configuration */ +#define OCCUPANCY_SENSOR_ENDPOINT_NUMBER 10 +uint8_t button = BOOT_PIN; +uint8_t sensor_pin = 4; + +ZigbeeOccupancySensor zbOccupancySensor = ZigbeeOccupancySensor(OCCUPANCY_SENSOR_ENDPOINT_NUMBER); + +/********************* Arduino functions **************************/ +void setup() { + Serial.begin(115200); + + // Init button + PIR sensor + pinMode(button, INPUT_PULLUP); + pinMode(sensor_pin, INPUT); + + // Optional: set Zigbee device name and model + zbOccupancySensor.setManufacturerAndModel("Espressif", "ZigbeeOccupancyPIRSensor"); + + // Add endpoint to Zigbee Core + Zigbee.addEndpoint(&zbOccupancySensor); + + Serial.println("Starting Zigbee..."); + // When all EPs are registered, start Zigbee in End Device mode + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } else { + Serial.println("Zigbee started successfully!"); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); +} + +void loop() { + // Checking PIR sensor for occupancy change + static bool occupancy = false; + if(digitalRead(sensor_pin) == HIGH && !occupancy) { + // Update occupancy sensor value + zbOccupancySensor.setOccupancy(true); + zbOccupancySensor.report(); + occupancy = true; + } else if (digitalRead(sensor_pin) == LOW && occupancy) { + zbOccupancySensor.setOccupancy(false); + zbOccupancySensor.report(); + occupancy = false; + } + + // Checking button for factory reset + if (digitalRead(button) == LOW) { // Push button pressed + // Key debounce handling + delay(100); + int startTime = millis(); + while (digitalRead(button) == LOW) { + delay(50); + if ((millis() - startTime) > 3000) { + // If key pressed for more than 3secs, factory reset Zigbee and reboot + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); + Zigbee.factoryReset(); + } + } + } + delay(100); +} diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/ci.json b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/ci.json new file mode 100644 index 00000000000..7b7ccef8ed7 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/ci.json @@ -0,0 +1,6 @@ +{ + "fqbn_append": "PartitionScheme=zigbee,ZigbeeMode=ed", + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] +} diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/README.md b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/README.md new file mode 100644 index 00000000000..964c7503027 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/README.md @@ -0,0 +1,72 @@ +# Arduino-ESP32 Zigbee Pressure + Flow Sensor Example + +This example shows how to configure the Zigbee end device and use it as a Home Automation (HA) simple sensor device type with pressure and flow measuring. + +# Supported Targets + +Currently, this example supports the following targets. + +| Supported Targets | ESP32-C6 | ESP32-H2 | +| ----------------- | -------- | -------- | + +## Pressure + Flow Sensor Functions + + * After this board first starts up, it would be configured locally to report the pressure and flow on change or every 30 seconds. + * By clicking the button (BOOT) on this board, this board will immediately send a report of the current measured flow and pressure to the network. + +## Hardware Required + +* A USB cable for power supply and programming + +### Configure the Project + +In this example, the internal temperature sensor is used to demonstrate reading of the flow and pressure sensors. +Set the Button GPIO by changing the `button` variable. By default, it's the pin `BOOT_PIN` (BOOT button on ESP32-C6 and ESP32-H2). + +#### Using Arduino IDE + +To get more information about the Espressif boards see [Espressif Development Kits](https://www.espressif.com/en/products/devkits). + +* Before Compile/Verify, select the correct board: `Tools -> Board`. +* Select the End device Zigbee mode: `Tools -> Zigbee mode: Zigbee ED (end device)` +* Select Partition Scheme for Zigbee: `Tools -> Partition Scheme: Zigbee 4MB with spiffs` +* Select the COM port: `Tools -> Port: xxx` where the `xxx` is the detected COM port. +* Optional: Set debug level to verbose to see all logs from Zigbee stack: `Tools -> Core Debug Level: Verbose`. + +## Troubleshooting + +If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. It is recommended to do this if you re-flash the coordinator. +You can do the following: + +* In the Arduino IDE go to the Tools menu and set `Erase All Flash Before Sketch Upload` to `Enabled`. +* Add to the sketch `Zigbee.factoryReset();` to reset the device and Zigbee stack. + +By default, the coordinator network is closed after rebooting or flashing new firmware. +To open the network you have 2 options: + +* Open network after reboot by setting `Zigbee.setRebootOpenNetwork(time);` before calling `Zigbee.begin();`. +* In application you can anytime call `Zigbee.openNetwork(time);` to open the network for devices to join. + +***Important: Make sure you are using a good quality USB cable and that you have a reliable power source*** + +* **LED not blinking:** Check the wiring connection and the IO selection. +* **Programming Fail:** If the programming/flash procedure fails, try reducing the serial connection speed. +* **COM port not detected:** Check the USB cable and the USB to Serial driver installation. + +If the error persists, you can ask for help at the official [ESP32 forum](https://esp32.com) or see [Contribute](#contribute). + +## Contribute + +To know how to contribute to this project, see [How to contribute.](https://github.com/espressif/arduino-esp32/blob/master/CONTRIBUTING.rst) + +If you have any **feedback** or **issue** to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome! + +Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else. + +## Resources + +* Official ESP32 Forum: [Link](https://esp32.com) +* Arduino-ESP32 Official Repository: [espressif/arduino-esp32](https://github.com/espressif/arduino-esp32) +* ESP32-C6 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) +* ESP32-H2 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) +* Official ESP-IDF documentation: [ESP-IDF](https://idf.espressif.com) diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino new file mode 100644 index 00000000000..889ae21dcb4 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino @@ -0,0 +1,134 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @brief This example demonstrates Zigbee temperature sensor. + * + * The example demonstrates how to use Zigbee library to create a end device temperature sensor. + * The temperature sensor is a Zigbee end device, which is controlled by a Zigbee coordinator. + * + * Proper Zigbee mode must be selected in Tools->Zigbee mode + * and also the correct partition scheme must be selected in Tools->Partition Scheme. + * + * Please check the README.md for instructions and more detailed description. + * + * Created by Jan Procházka (https://github.com/P-R-O-C-H-Y/) + */ + +#ifndef ZIGBEE_MODE_ED +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" +#endif + +#include "Zigbee.h" + +/* Zigbee flow + pressure sensor configuration */ +#define FLOW_SENSOR_ENDPOINT_NUMBER 10 +#define PRESSURE_SENSOR_ENDPOINT_NUMBER 11 + +uint8_t button = BOOT_PIN; + +ZigbeeFlowSensor zbFlowSensor = ZigbeeFlowSensor(FLOW_SENSOR_ENDPOINT_NUMBER); +ZigbeePressureSensor zbPressureSensor = ZigbeePressureSensor(PRESSURE_SENSOR_ENDPOINT_NUMBER); + +/************************ Temp sensor *****************************/ +static void sensors_reading(void *arg) { + for (;;) { + // Read Pressure and Flow sensors value - here is chip temperature used as a dummy value for demonstration + float flow_value = temperatureRead(); + uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1-3hPa + Serial.printf("Updating flow sensor value to %.2f\r\n", flow_value); + zbFlowSensor.setFlow(flow_value); + Serial.printf("Updating pressure sensor value to %.2f\r\n", pressure_value); + zbPressureSensor.setPressure(pressure_value); + delay(1000); + } +} + +/********************* Arduino functions **************************/ +void setup() { + Serial.begin(115200); + + // Init button switch + pinMode(button, INPUT_PULLUP); + + // Optional: set Zigbee device name and model + zbFlowSensor.setManufacturerAndModel("Espressif", "ZigbeeFlowSensor"); + + // Set minimum and maximum temperature measurement value (10-50°C is default range for chip temperature measurement) + zbFlowSensor.setMinMaxValue(0, 100); + + // Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) + zbFlowSensor.setTolerance(1); + + // Optional: set Zigbee device name and model + zbPressureSensor.setManufacturerAndModel("Espressif", "ZigbeePressureSensor"); + + // Set minimum and maximum temperature measurement value (10-50°C is default range for chip temperature measurement) + zbPressureSensor.setMinMaxValue(0, 30); + + // Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) + zbPressureSensor.setTolerance(1); + + // Add endpoints to Zigbee Core + Zigbee.addEndpoint(&zbFlowSensor); + Zigbee.addEndpoint(&zbPressureSensor); + + Serial.println("Starting Zigbee..."); + // When all EPs are registered, start Zigbee in End Device mode + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } else { + Serial.println("Zigbee started successfully!"); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); + + // Start Flow and Pressure sensor reading task + xTaskCreate(sensors_reading, "flow_pressure_sensors_read", 2048, NULL, 10, NULL); + + // Set reporting interval for flow and pressure measurement in seconds, must be called after Zigbee.begin() + // min_interval and max_interval in seconds, delta (pressure change in Pa, flow change in 0,1 m3/h) + // if min = 1 and max = 0, reporting is sent only when temperature changes by delta + // if min = 0 and max = 10, reporting is sent every 10 seconds or temperature changes by delta + // if min = 0, max = 10 and delta = 0, reporting is sent every 10 seconds regardless of delta change + zbFlowSensor.setReporting(0, 30, 1); + zbPressureSensor.setReporting(0, 30, 1); +} + +void loop() { + // Checking button for factory reset + if (digitalRead(button) == LOW) { // Push button pressed + // Key debounce handling + delay(100); + int startTime = millis(); + while (digitalRead(button) == LOW) { + delay(50); + if ((millis() - startTime) > 3000) { + // If key pressed for more than 3secs, factory reset Zigbee and reboot + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); + Zigbee.factoryReset(); + } + } + zbFlowSensor.report(); + zbPressureSensor.report(); + } + delay(100); +} diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/ci.json b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/ci.json new file mode 100644 index 00000000000..7b7ccef8ed7 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/ci.json @@ -0,0 +1,6 @@ +{ + "fqbn_append": "PartitionScheme=zigbee,ZigbeeMode=ed", + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] +} diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/README.md b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/README.md index d88b01cda3a..afaa12c0bfa 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/README.md +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/README.md @@ -24,7 +24,7 @@ Currently, this example supports the following targets. ### Configure the Project In this example, to demonstrate the functionality the chip temperature is used and reported as temperature and humidity. -Set the Button GPIO by changing the `BUTTON_PIN` definition. By default, it's the pin `9` (BOOT button on ESP32-C6 and ESP32-H2). +Set the Button GPIO by changing the `button` variable. By default, it's the pin `BOOT_PIN` (BOOT button on ESP32-C6 and ESP32-H2). #### Using Arduino IDE diff --git a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino index 2b342161199..60bd784cca9 100644 --- a/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino +++ b/libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino @@ -55,11 +55,12 @@ void meausureAndSleep() { zbTempSensor.setHumidity(humidity); // Report temperature and humidity values - zbTempSensor.reportTemperature(); - zbTempSensor.reportHumidity(); - + zbTempSensor.report(); Serial.printf("Reported temperature: %.2f°C, Humidity: %.2f%%\r\n", temperature, humidity); + // Add small delay to allow the data to be sent before going to sleep + delay(100); + // Put device to deep sleep Serial.println("Going to sleep now"); esp_deep_sleep_start(); diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/README.md b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/README.md index f3dd9248f87..577bd7c8058 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/README.md +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/README.md @@ -28,7 +28,7 @@ Functions: ### Configure the Project In this example, the internal temperature sensor task is reading the chip temperature. -Set the Button GPIO by changing the `BUTTON_PIN` definition. By default, it's the pin `9` (BOOT button on ESP32-C6 and ESP32-H2). +Set the Button GPIO by changing the `button` variable. By default, it's the pin `BOOT_PIN` (BOOT button on ESP32-C6 and ESP32-H2). #### Using Arduino IDE diff --git a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino index 22b0c6fbeed..27aa2db97bd 100644 --- a/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Temperature_Sensor/Zigbee_Temperature_Sensor.ino @@ -63,7 +63,7 @@ void setup() { // Set minimum and maximum temperature measurement value (10-50°C is default range for chip temperature measurement) zbTempSensor.setMinMaxValue(10, 50); - // Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) + // Optional: Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) zbTempSensor.setTolerance(1); // Add endpoint to Zigbee Core @@ -89,7 +89,7 @@ void setup() { xTaskCreate(temp_sensor_value_update, "temp_sensor_update", 2048, NULL, 10, NULL); // Set reporting interval for temperature measurement in seconds, must be called after Zigbee.begin() - // min_interval and max_interval in seconds, delta (temp change in °C) + // min_interval and max_interval in seconds, delta (temp change in 0,1 °C) // if min = 1 and max = 0, reporting is sent only when temperature changes by delta // if min = 0 and max = 10, reporting is sent every 10 seconds or temperature changes by delta // if min = 0, max = 10 and delta = 0, reporting is sent every 10 seconds regardless of temperature change diff --git a/libraries/Zigbee/src/Zigbee.h b/libraries/Zigbee/src/Zigbee.h index 98674a9d115..a1f5dcd7903 100644 --- a/libraries/Zigbee/src/Zigbee.h +++ b/libraries/Zigbee/src/Zigbee.h @@ -13,3 +13,6 @@ #include "ep/ZigbeeColorDimmerSwitch.h" #include "ep/ZigbeeTempSensor.h" #include "ep/ZigbeeThermostat.h" +#include "ep/ZigbeePressureSensor.h" +#include "ep/ZigbeeFlowSensor.h" +#include "ep/ZigbeeOccupancySensor.h" diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp new file mode 100644 index 00000000000..17182a56b5b --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp @@ -0,0 +1,105 @@ +#include "ZigbeeFlowSensor.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +esp_zb_cluster_list_t *zigbee_flow_sensor_clusters_create(zigbee_flow_sensor_cfg_t *flow_sensor) +{ + esp_zb_basic_cluster_cfg_t *basic_cfg = flow_sensor ? &(flow_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = flow_sensor ? &(flow_sensor->identify_cfg) : NULL; + esp_zb_flow_meas_cluster_cfg_t *flow_meas_cfg = flow_sensor ? &(flow_sensor->flow_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_flow_meas_cluster(cluster_list, esp_zb_flow_meas_cluster_create(flow_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; +} + +ZigbeeFlowSensor::ZigbeeFlowSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { + _device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID; + + //Create custom pressure sensor configuration + zigbee_flow_sensor_cfg_t flow_sensor_cfg = ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG(); + _cluster_list = zigbee_flow_sensor_clusters_create(&flow_sensor_cfg); + + _ep_config = { + .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 + }; +} + +void ZigbeeFlowSensor::setMinMaxValue(float min, float max) { + uint16_t zb_min = (uint16_t)(min * 10); + uint16_t zb_max = (uint16_t)(max * 10); + esp_zb_attribute_list_t *flow_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_update_attr(flow_measure_cluster, ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_MIN_VALUE_ID, (void *)&zb_min); + esp_zb_cluster_update_attr(flow_measure_cluster, ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_MAX_VALUE_ID, (void *)&zb_max); +} + +void ZigbeeFlowSensor::setTolerance(float tolerance) { + // Convert tolerance to ZCL uint16_t + uint16_t zb_tolerance = (uint16_t)(tolerance * 10); + esp_zb_attribute_list_t *flow_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_flow_meas_cluster_add_attr(flow_measure_cluster, ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_TOLERANCE_ID, (void *)&zb_tolerance); +} + +void ZigbeeFlowSensor::setReporting(uint16_t min_interval, uint16_t max_interval, float delta) { + esp_zb_zcl_reporting_info_t reporting_info = { + .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, + .ep = _endpoint, + .cluster_id = ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT, + .cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, + .attr_id = ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_VALUE_ID, + .u = + { + .send_info = + { + .min_interval = min_interval, + .max_interval = max_interval, + .delta = + { + .u16 = (uint16_t)(delta * 10), // Convert delta to ZCL uint16_t + }, + .def_min_interval = min_interval, + .def_max_interval = max_interval, + }, + }, + .dst = + { + .profile_id = ESP_ZB_AF_HA_PROFILE_ID, + }, + .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, + }; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_update_reporting_info(&reporting_info); + esp_zb_lock_release(); +} + +void ZigbeeFlowSensor::setFlow(float flow) { + uint16_t zb_flow = (uint16_t)(flow * 10); + log_v("Updating flow sensor value..."); + /* Update temperature sensor measured value */ + log_d("Setting flow to %d", zb_flow); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_VALUE_ID, &zb_flow, false + ); + esp_zb_lock_release(); +} + +void ZigbeeFlowSensor::report() { + /* Send report attributes command */ + esp_zb_zcl_report_attr_cmd_t report_attr_cmd; + report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_FLOW_MEASUREMENT_VALUE_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; + report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_FLOW_MEASUREMENT; + report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; + + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_report_attr_cmd_req(&report_attr_cmd); + esp_zb_lock_release(); + log_v("Flow report sent"); +} + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h new file mode 100644 index 00000000000..cfb7d4311ed --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h @@ -0,0 +1,58 @@ +/* Class of Zigbee Flow sensor endpoint inherited from common EP class */ + +#pragma once + +#include "soc/soc_caps.h" +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +#include "ZigbeeEP.h" +#include "ha/esp_zigbee_ha_standard.h" + +#define ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .flow_meas_cfg = \ + { \ + .measured_value = 0, \ + .min_value = 0, \ + .max_value = 0x7FFF, \ + }, \ + } + +typedef struct zigbee_flow_sensor_cfg_s { + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_flow_meas_cluster_cfg_t flow_meas_cfg; +} zigbee_flow_sensor_cfg_t; + +class ZigbeeFlowSensor : public ZigbeeEP { +public: + ZigbeeFlowSensor(uint8_t endpoint); + ~ZigbeeFlowSensor(); + + // Set the flow value in 0,01 m3/h + void setFlow(float value); + + // Set the min and max value for the flow sensor in 0,1 m3/h + void setMinMaxValue(float min, float max); + + // Set the tolerance value for the flow sensor in 0,01 m3/h + void setTolerance(float tolerance); + + // Set the reporting interval for flow measurement in seconds and delta (temp change in 0,01 m3/h) + void setReporting(uint16_t min_interval, uint16_t max_interval, float delta); + + // Report the flow value + void report(); +}; + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp new file mode 100644 index 00000000000..cbc475c8f7e --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp @@ -0,0 +1,63 @@ +#include "ZigbeeOccupancySensor.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +esp_zb_cluster_list_t *zigbee_occupancy_sensor_clusters_create(zigbee_occupancy_sensor_cfg_t *occupancy_sensor) +{ + esp_zb_basic_cluster_cfg_t *basic_cfg = occupancy_sensor ? &(occupancy_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = occupancy_sensor ? &(occupancy_sensor->identify_cfg) : NULL; + esp_zb_occupancy_sensing_cluster_cfg_t *occupancy_meas_cfg = occupancy_sensor ? &(occupancy_sensor->occupancy_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_occupancy_sensing_cluster(cluster_list, esp_zb_occupancy_sensing_cluster_create(occupancy_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; +} + +ZigbeeOccupancySensor::ZigbeeOccupancySensor(uint8_t endpoint) : ZigbeeEP(endpoint) { + _device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID; + + //Create custom occupancy sensor configuration + zigbee_occupancy_sensor_cfg_t occupancy_sensor_cfg = ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG(); + _cluster_list = zigbee_occupancy_sensor_clusters_create(&occupancy_sensor_cfg); + + _ep_config = { + .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 + }; +} + +void ZigbeeOccupancySensor::setSensorType(uint8_t sensor_type) { + uint8_t sensor_type_bitmap = 1 << sensor_type; + esp_zb_attribute_list_t *occupancy_sens_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_update_attr(occupancy_sens_cluster, ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_ID, (void *)&sensor_type); + esp_zb_cluster_update_attr(occupancy_sens_cluster, ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_BITMAP_ID, (void *)&sensor_type_bitmap); +} + +void ZigbeeOccupancySensor::setOccupancy(bool occupied) { + log_v("Updating occupancy sensor value..."); + /* Update occupancy sensor value */ + log_d("Setting occupancy to %d", occupied); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_ID, &occupied, false + ); + esp_zb_lock_release(); +} + +void ZigbeeOccupancySensor::report() { + /* Send report attributes command */ + esp_zb_zcl_report_attr_cmd_t report_attr_cmd; + report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_OCCUPANCY_SENSING_OCCUPANCY_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; + report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_OCCUPANCY_SENSING; + report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; + + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_report_attr_cmd_req(&report_attr_cmd); + esp_zb_lock_release(); + log_v("Occupancy report sent"); +} + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h new file mode 100644 index 00000000000..67103d63369 --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h @@ -0,0 +1,52 @@ +/* Class of Zigbee Pressure sensor endpoint inherited from common EP class */ + +#pragma once + +#include "soc/soc_caps.h" +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +#include "ZigbeeEP.h" +#include "ha/esp_zigbee_ha_standard.h" + +#define ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .occupancy_meas_cfg = \ + { \ + .occupancy = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_UNOCCUPIED, \ + .sensor_type = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR, \ + .sensor_type_bitmap = (1 << ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR), \ + }, \ + } + +typedef struct zigbee_occupancy_sensor_cfg_s { + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_occupancy_sensing_cluster_cfg_t occupancy_meas_cfg; +} zigbee_occupancy_sensor_cfg_t; + +class ZigbeeOccupancySensor : public ZigbeeEP { +public: + ZigbeeOccupancySensor(uint8_t endpoint); + ~ZigbeeOccupancySensor(); + + // Set the occupancy value. True for occupied, false for unoccupied + void setOccupancy(bool occupied); + + // Set the sensor type, see esp_zb_zcl_occupancy_sensing_occupancy_sensor_type_t + void setSensorType(uint8_t sensor_type); + + // Report the occupancy value + void report(); +}; + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp new file mode 100644 index 00000000000..a6ccacbd562 --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp @@ -0,0 +1,101 @@ +#include "ZigbeePressureSensor.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +esp_zb_cluster_list_t *zigbee_pressure_sensor_clusters_create(zigbee_pressure_sensor_cfg_t *pressure_sensor) +{ + esp_zb_basic_cluster_cfg_t *basic_cfg = pressure_sensor ? &(pressure_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = pressure_sensor ? &(pressure_sensor->identify_cfg) : NULL; + esp_zb_pressure_meas_cluster_cfg_t *pressure_meas_cfg = pressure_sensor ? &(pressure_sensor->pressure_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_pressure_meas_cluster(cluster_list, esp_zb_pressure_meas_cluster_create(pressure_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; +} + +ZigbeePressureSensor::ZigbeePressureSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { + _device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID; + + //Create custom pressure sensor configuration + zigbee_pressure_sensor_cfg_t presssure_sensor_cfg = ZIGBEE_DEFAULT_PRESSURE_SENSOR_CONFIG(); + _cluster_list = zigbee_pressure_sensor_clusters_create(&presssure_sensor_cfg); + + _ep_config = { + .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 + }; +} + +void ZigbeePressureSensor::setMinMaxValue(int16_t min, int16_t max) { + + esp_zb_attribute_list_t *pressure_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_update_attr(pressure_measure_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_ID, (void *)&min); + esp_zb_cluster_update_attr(pressure_measure_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_ID, (void *)&max); +} + +void ZigbeePressureSensor::setTolerance(uint16_t tolerance) { + esp_zb_attribute_list_t *pressure_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_temperature_meas_cluster_add_attr(pressure_measure_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_TOLERANCE_ID, (void *)&tolerance); +} + +void ZigbeePressureSensor::setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta) { + esp_zb_zcl_reporting_info_t reporting_info = { + .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, + .ep = _endpoint, + .cluster_id = ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, + .cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, + .attr_id = ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, + .u = + { + .send_info = + { + .min_interval = min_interval, + .max_interval = max_interval, + .delta = + { + .u16 = delta, // x Pa + }, + .def_min_interval = min_interval, + .def_max_interval = max_interval, + }, + }, + .dst = + { + .profile_id = ESP_ZB_AF_HA_PROFILE_ID, + }, + .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, + }; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_update_reporting_info(&reporting_info); + esp_zb_lock_release(); +} + +void ZigbeePressureSensor::setPressure(int16_t pressure) { + log_v("Updating pressure sensor value..."); + /* Update temperature sensor measured value */ + log_d("Setting pressure to %d Pa", pressure); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, &pressure, false + ); + esp_zb_lock_release(); +} + +void ZigbeePressureSensor::report() { + /* Send report attributes command */ + esp_zb_zcl_report_attr_cmd_t report_attr_cmd; + report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; + report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT; + report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; + + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_report_attr_cmd_req(&report_attr_cmd); + esp_zb_lock_release(); + log_v("Pressure report sent"); +} + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h new file mode 100644 index 00000000000..a2869aaeb5e --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h @@ -0,0 +1,58 @@ +/* Class of Zigbee Pressure sensor endpoint inherited from common EP class */ + +#pragma once + +#include "soc/soc_caps.h" +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +#include "ZigbeeEP.h" +#include "ha/esp_zigbee_ha_standard.h" + +#define ZIGBEE_DEFAULT_PRESSURE_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .pressure_meas_cfg = \ + { \ + .measured_value = ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_DEFAULT_VALUE, \ + .min_value = ESP_ZB_ZCL_PATTR_RESSURE_MEASUREMENT_MIN_VALUE_DEFAULT_VALUE, \ + .max_value = ESP_ZB_ZCL_PATTR_RESSURE_MEASUREMENT_MAX_VALUE_DEFAULT_VALUE, \ + }, \ + } + +typedef struct zigbee_pressure_sensor_cfg_s { + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_pressure_meas_cluster_cfg_t pressure_meas_cfg; +} zigbee_pressure_sensor_cfg_t; + +class ZigbeePressureSensor : public ZigbeeEP { +public: + ZigbeePressureSensor(uint8_t endpoint); + ~ZigbeePressureSensor(); + + // Set the pressure value in 1 Pa + void setPressure(int16_t value); + + // Set the min and max value for the pressure sensor in 1 Pa + void setMinMaxValue(int16_t min, int16_t max); + + // Set the tolerance value for the pressure sensor in 1 Pa + void setTolerance(uint16_t tolerance); + + // Set the reporting interval for pressure measurement in seconds and delta (pressure change in 1 Pa) + void setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta); + + // Report the pressure value + void report(); +}; + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp index 3dfac0489dd..98a3793fbad 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp @@ -3,6 +3,7 @@ ZigbeeTempSensor::ZigbeeTempSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_TEMPERATURE_SENSOR_DEVICE_ID; + _humidity_sensor = false; esp_zb_temperature_sensor_cfg_t temp_sensor_cfg = ESP_ZB_DEFAULT_TEMPERATURE_SENSOR_CONFIG(); _cluster_list = esp_zb_temperature_sensor_clusters_create(&temp_sensor_cfg); @@ -103,6 +104,7 @@ void ZigbeeTempSensor::addHumiditySensor(float min, float max, float tolerance) esp_zb_humidity_meas_cluster_add_attr(humidity_cluster, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MAX_VALUE_ID, &zb_max); esp_zb_humidity_meas_cluster_add_attr(humidity_cluster, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_TOLERANCE_ID, &zb_tolerance); esp_zb_cluster_list_add_humidity_meas_cluster(_cluster_list, humidity_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + _humidity_sensor = true; } void ZigbeeTempSensor::setHumidity(float humidity) { @@ -165,4 +167,11 @@ void ZigbeeTempSensor::setHumidityReporting(uint16_t min_interval, uint16_t max_ esp_zb_lock_release(); } +void ZigbeeTempSensor::report() { + reportTemperature(); + if (_humidity_sensor) { + reportHumidity(); + } +} + #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h index d868034280d..9b074ba0ae1 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h @@ -40,6 +40,14 @@ class ZigbeeTempSensor : public ZigbeeEP { // Report the humidity value void reportHumidity(); + + // Report the temperature and humidity values if humidity sensor is added + void report(); + +private: + bool _humidity_sensor; + }; + #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED From aef691e0e2f3de3f886f70a76a562ab7e4e5ec1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:15:33 +0100 Subject: [PATCH 135/179] fix(example): use correct print format --- .../Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino index 889ae21dcb4..f70341af9d5 100644 --- a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino @@ -49,7 +49,7 @@ static void sensors_reading(void *arg) { uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1-3hPa Serial.printf("Updating flow sensor value to %.2f\r\n", flow_value); zbFlowSensor.setFlow(flow_value); - Serial.printf("Updating pressure sensor value to %.2f\r\n", pressure_value); + Serial.printf("Updating pressure sensor value to %d\r\n", pressure_value); zbPressureSensor.setPressure(pressure_value); delay(1000); } From b4d7227068db7780225cc829eff777b0e6f7b658 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:18:01 +0100 Subject: [PATCH 136/179] fix(zigbee): Fix functions comment --- libraries/Zigbee/src/ep/ZigbeeFlowSensor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h index cfb7d4311ed..65156369984 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h @@ -39,7 +39,7 @@ class ZigbeeFlowSensor : public ZigbeeEP { ZigbeeFlowSensor(uint8_t endpoint); ~ZigbeeFlowSensor(); - // Set the flow value in 0,01 m3/h + // Set the flow value in 0,1 m3/h void setFlow(float value); // Set the min and max value for the flow sensor in 0,1 m3/h @@ -48,7 +48,7 @@ class ZigbeeFlowSensor : public ZigbeeEP { // Set the tolerance value for the flow sensor in 0,01 m3/h void setTolerance(float tolerance); - // Set the reporting interval for flow measurement in seconds and delta (temp change in 0,01 m3/h) + // Set the reporting interval for flow measurement in seconds and delta (temp change in 0,1 m3/h) void setReporting(uint16_t min_interval, uint16_t max_interval, float delta); // Report the flow value From 5e7139b8feae6876f20fe3aa1957fb6df31756c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:19:31 +0100 Subject: [PATCH 137/179] fix(cmake): Update CMakeLists.txt --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b6478aa16a3..45c4e9c0400 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -278,6 +278,9 @@ set(ARDUINO_LIBRARY_Zigbee_SRCS libraries/Zigbee/src/ep/ZigbeeSwitch.cpp libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp libraries/Zigbee/src/ep/ZigbeeThermostat.cpp + libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp + libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp + libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp ) set(ARDUINO_LIBRARY_BLE_SRCS From b64b8500cb8f614d75694a45368b373ade4e5ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:27:53 +0100 Subject: [PATCH 138/179] feat(zigbee): Fill the keywords.txt --- libraries/Zigbee/keywords.txt | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/libraries/Zigbee/keywords.txt b/libraries/Zigbee/keywords.txt index 40e5dcec004..0faba2a1eef 100644 --- a/libraries/Zigbee/keywords.txt +++ b/libraries/Zigbee/keywords.txt @@ -18,6 +18,9 @@ ZigbeeColorDimmableLight KEYWORD1 ZigbeeColorDimmerSwitch KEYWORD1 ZigbeeTempSensor KEYWORD1 ZigbeeThermostat KEYWORD1 +ZigbeeFlowSensor KEYWORD1 +ZigbeePressureSensor KEYWORD1 +ZigbeeOccupancySensor KEYWORD1 # Other zigbee_role_t KEYWORD1 @@ -89,23 +92,36 @@ lightOnWithSceneRecall KEYWORD2 setLightLevel KEYWORD2 setLightColor KEYWORD2 -# ZigbeeTempSensor + humidity -setTemperature KEYWORD2 +# ZigbeeThermostat +onTempRecieve KEYWORD2 +onConfigRecieve KEYWORD2 +getTemperature KEYWORD2 +getSensorSettings KEYWORD2 +setTemperatureReporting KEYWORD2 + +# Common Zigbee Sensor setMinMaxValue KEYWORD2 setTolerance KEYWORD2 setReporting KEYWORD2 +report KEYWORD2 + +# ZigbeeTempSensor + humidity +setTemperature KEYWORD2 reportTemperature KEYWORD2 addHumiditySensor KEYWORD2 setHumidity KEYWORD2 setHumidityReporting KEYWORD2 reportHumidity KEYWORD2 -# ZigbeeThermostat -onTempRecieve KEYWORD2 -onConfigRecieve KEYWORD2 -getTemperature KEYWORD2 -getSensorSettings KEYWORD2 -setTemperatureReporting KEYWORD2 +# ZigbeeFlowSensor +setFlow KEYWORD2 + +# ZigbeePressureSensor +setPressure KEYWORD2 + +# ZigbeeOccupancySensor +setOccupancy KEYWORD2 +setSensorType KEYWORD2 ####################################### # Constants (LITERAL1) From e060b0232842d42ba03ff43772b98acdb3b892c9 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Thu, 12 Dec 2024 12:49:10 -0300 Subject: [PATCH 139/179] feat(matter): adds new Matter Occupancy Sensor endpoint (#10717) * feat(matter): adds matter occupancy sensor endpoint --- CMakeLists.txt | 1 + .../MatterOccupancySensor.ino | 128 ++++++++++++++++++ .../examples/MatterOccupancySensor/ci.json | 7 + libraries/Matter/keywords.txt | 3 + libraries/Matter/src/Matter.h | 2 + .../MatterEndpoints/MatterOccupancySensor.cpp | 109 +++++++++++++++ .../MatterEndpoints/MatterOccupancySensor.h | 73 ++++++++++ 7 files changed, 323 insertions(+) create mode 100644 libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino create mode 100644 libraries/Matter/examples/MatterOccupancySensor/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index b6478aa16a3..322824f11ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -179,6 +179,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp + libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino new file mode 100644 index 00000000000..7582a423dc0 --- /dev/null +++ b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino @@ -0,0 +1,128 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is an example code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * The example will create a Matter Occupancy Sensor Device. + * The Occupancy Sensor will be simulated to change its state every 2 minutes. + * + * The onboard button can be kept pressed for 5 seconds to decommission the Matter Node. + * The example will also show the manual commissioning code and QR code to be used in the Matter environment. + * + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Matter Occupancy Sensor Endpoint +MatterOccupancySensor OccupancySensor; + +// set your board USER BUTTON pin here - decommissioning only +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // set initial occupancy sensor state as false and connected to a PIR sensor type (default) + OccupancySensor.begin(); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +bool simulatedHWOccupancySensor() { + // Simulated Occupancy Sensor + static bool occupancyState = false; + static uint32_t lastTime = millis(); + const uint32_t occupancyTimeout = 120000; // 2 minutes to toggle the state + + // Simulate a Occupancy Sensor state change every 2 minutes + if (millis() - lastTime > occupancyTimeout) { + occupancyState = !occupancyState; + lastTime = millis(); + } + return occupancyState; +} + +void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (button_state && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Generic Switch Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + // Check Simulated Occupancy Sensor and set Matter Attribute + OccupancySensor.setOccupancy(simulatedHWOccupancySensor()); + + delay(50); +} diff --git a/libraries/Matter/examples/MatterOccupancySensor/ci.json b/libraries/Matter/examples/MatterOccupancySensor/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterOccupancySensor/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index d75e9888afd..1daf65974ed 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -22,6 +22,7 @@ MatterTemperatureSensor KEYWORD1 MatterHumiditySensor KEYWORD1 MatterContactSensor KEYWORD1 MatterPressureSensor KEYWORD1 +MatterOccupancySensor KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) @@ -74,6 +75,8 @@ setContact KEYWORD2 getContact KEYWORD2 setPressure KEYWORD2 getPressure KEYWORD2 +setOccupancy KEYWORD2 +getOccupancy KEYWORD2 ####################################### # Constants (LITERAL1) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 02571dbcf40..bc0a0ec1cc7 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -30,6 +30,7 @@ #include #include #include +#include using namespace esp_matter; @@ -66,6 +67,7 @@ class ArduinoMatter { friend class MatterHumiditySensor; friend class MatterContactSensor; friend class MatterPressureSensor; + friend class MatterOccupancySensor; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp new file mode 100644 index 00000000000..d893f14b6bb --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp @@ -0,0 +1,109 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +// clang-format off +const uint8_t MatterOccupancySensor::occupancySensorTypeBitmap[4] = { + MatterOccupancySensor::occupancySensorTypePir, + MatterOccupancySensor::occupancySensorTypePir | MatterOccupancySensor::occupancySensorTypeUltrasonic, + MatterOccupancySensor::occupancySensorTypeUltrasonic, + MatterOccupancySensor::occupancySensorTypePhysicalContact +}; +// clang-format on + +bool MatterOccupancySensor::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter Occupancy Sensor device has not begun."); + return false; + } + + log_d("Occupancy Sensor Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + return ret; +} + +MatterOccupancySensor::MatterOccupancySensor() {} + +MatterOccupancySensor::~MatterOccupancySensor() { + end(); +} + +bool MatterOccupancySensor::begin(bool _occupancyState, OccupancySensorType_t _occupancySensorType) { + ArduinoMatter::_init(); + + occupancy_sensor::config_t occupancy_sensor_config; + occupancy_sensor_config.occupancy_sensing.occupancy = _occupancyState; + occupancy_sensor_config.occupancy_sensing.occupancy_sensor_type = _occupancySensorType; + occupancy_sensor_config.occupancy_sensing.occupancy_sensor_type_bitmap = occupancySensorTypeBitmap[_occupancySensorType]; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = occupancy_sensor::create(node::get(), &occupancy_sensor_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create Occupancy Sensor endpoint"); + return false; + } + occupancyState = _occupancyState; + setEndPointId(endpoint::get_id(endpoint)); + log_i("Occupancy Sensor created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterOccupancySensor::end() { + started = false; +} + +bool MatterOccupancySensor::setOccupancy(bool _occupancyState) { + if (!started) { + log_e("Matter Occupancy Sensor device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (occupancyState == _occupancyState) { + return true; + } + + esp_matter_attr_val_t occupancyVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, &occupancyVal)) { + log_e("Failed to get Occupancy Sensor Attribute."); + return false; + } + if (occupancyVal.val.u8 != _occupancyState) { + occupancyVal.val.u8 = _occupancyState; + bool ret; + ret = updateAttributeVal(OccupancySensing::Id, OccupancySensing::Attributes::Occupancy::Id, &occupancyVal); + if (!ret) { + log_e("Failed to update Occupancy Sensor Attribute."); + return false; + } + occupancyState = _occupancyState; + } + log_v("Occupancy Sensor set to %s", _occupancyState ? "Occupied" : "Vacant"); + + return true; +} + +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h new file mode 100644 index 00000000000..30f312a9841 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h @@ -0,0 +1,73 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace chip::app::Clusters::OccupancySensing; + +class MatterOccupancySensor : public MatterEndPoint { +public: + // Different Occupancy Sensor Types + enum OccupancySensorType_t { + OCCUPANCY_SENSOR_TYPE_PIR = (uint8_t)OccupancySensorTypeEnum::kPir, + OCCUPANCY_SENSOR_TYPE_ULTRASONIC = (uint8_t)OccupancySensorTypeEnum::kUltrasonic, + OCCUPANCY_SENSOR_TYPE_PIR_AND_ULTRASONIC = (uint8_t)OccupancySensorTypeEnum::kPIRAndUltrasonic, + OCCUPANCY_SENSOR_TYPE_PHYSICAL_CONTACT = (uint8_t)OccupancySensorTypeEnum::kPhysicalContact + }; + + MatterOccupancySensor(); + ~MatterOccupancySensor(); + // begin Matter Occupancy Sensor endpoint with initial occupancy state and default PIR sensor type + bool begin(bool _occupancyState = false, OccupancySensorType_t _occupancySensorType = OCCUPANCY_SENSOR_TYPE_PIR); + // this will just stop processing Occupancy Sensor Matter events + void end(); + + // set the occupancy state + bool setOccupancy(bool _occupancyState); + // returns the occupancy state + bool getOccupancy() { + return occupancyState; + } + + // bool conversion operator + void operator=(bool _occupancyState) { + setOccupancy(_occupancyState); + } + // bool conversion operator + operator bool() { + return getOccupancy(); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + +protected: + // bitmap for Occupancy Sensor Types + static const uint8_t occupancySensorTypePir = 0x01; + static const uint8_t occupancySensorTypeUltrasonic = 0x02; + static const uint8_t occupancySensorTypePhysicalContact = 0x04; + + // bitmap for Occupancy Sensor Type Bitmap mapped array + static const uint8_t occupancySensorTypeBitmap[4]; + + bool started = false; + bool occupancyState = false; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From c310c1ade4c0e9e0d27b137da5f1575fdc70ab57 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Thu, 12 Dec 2024 13:05:35 -0300 Subject: [PATCH 140/179] feat(matter): adds matter on off plugin endpoint --- CMakeLists.txt | 1 + .../MatterOnOffPlugin/MatterOnOffPlugin.ino | 142 ++++++++++++++++++ .../Matter/examples/MatterOnOffPlugin/ci.json | 7 + libraries/Matter/keywords.txt | 1 + libraries/Matter/src/Matter.h | 2 + .../src/MatterEndpoints/MatterOnOffPlugin.cpp | 136 +++++++++++++++++ .../src/MatterEndpoints/MatterOnOffPlugin.h | 56 +++++++ 7 files changed, 345 insertions(+) create mode 100644 libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino create mode 100644 libraries/Matter/examples/MatterOnOffPlugin/ci.json create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp create mode 100644 libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 322824f11ab..6f89f3b8715 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp + libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp libraries/Matter/src/Matter.cpp) set(ARDUINO_LIBRARY_PPP_SRCS diff --git a/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino new file mode 100644 index 00000000000..04cf8bff31a --- /dev/null +++ b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino @@ -0,0 +1,142 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// On/Off Plugin Endpoint +MatterOnOffPlugin OnOffPlugin; + +// it will keep last OnOff state stored, using Preferences +Preferences matterPref; +const char *onOffPrefKey = "OnOff"; + +// set your board Power Relay pin here - this example uses the built-in LED for easy visualization +#ifdef LED_BUILTIN +const uint8_t onoffPin = LED_BUILTIN; +#else +const uint8_t onoffPin = 2; // Set your pin here - usually a power relay +#warning "Do not forget to set the Power Relay pin" +#endif + +// board USER BUTTON pin necessary for Decommissioning +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Matter Protocol Endpoint Callback +bool setPluginOnOff(bool state) { + Serial.printf("User Callback :: New Plugin State = %s\r\n", state ? "ON" : "OFF"); + if (state) { + digitalWrite(onoffPin, HIGH); + } else { + digitalWrite(onoffPin, LOW); + } + // store last OnOff state for when the Plugin is restarted / power goes off + matterPref.putBool(onOffPrefKey, state); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the Power Relay (plugin) GPIO + pinMode(onoffPin, OUTPUT); + + Serial.begin(115200); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + matterPref.begin("MatterPrefs", false); + bool lastOnOffState = matterPref.getBool(onOffPrefKey, false); + OnOffPlugin.begin(lastOnOffState); + OnOffPlugin.onChange(setPluginOnOff); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); + OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state + } +} + +void loop() { + // Check Matter Plugin Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Plugin Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); + OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used to decommission the Matter Node + if (button_state && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Plugin Matter Accessory. It shall be commissioned again."); + OnOffPlugin.setOnOff(false); // turn the plugin off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } +} diff --git a/libraries/Matter/examples/MatterOnOffPlugin/ci.json b/libraries/Matter/examples/MatterOnOffPlugin/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterOnOffPlugin/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 1daf65974ed..3f40e598ada 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -23,6 +23,7 @@ MatterHumiditySensor KEYWORD1 MatterContactSensor KEYWORD1 MatterPressureSensor KEYWORD1 MatterOccupancySensor KEYWORD1 +MatterOnOffPlugin KEYWORD1 ####################################### # Methods and Functions (KEYWORD2) diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index bc0a0ec1cc7..7fcab363f11 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -31,6 +31,7 @@ #include #include #include +#include using namespace esp_matter; @@ -68,6 +69,7 @@ class ArduinoMatter { friend class MatterContactSensor; friend class MatterPressureSensor; friend class MatterOccupancySensor; + friend class MatterOnOffPlugin; protected: static void _init(); diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp new file mode 100644 index 00000000000..6b5e5e630e0 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp @@ -0,0 +1,136 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include +#include + +using namespace esp_matter; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +bool MatterOnOffPlugin::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { + bool ret = true; + if (!started) { + log_e("Matter On-Off Plugin device has not begun."); + return false; + } + + log_d("OnOff Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + + if (endpoint_id == getEndPointId()) { + log_d("OnOffPlugin state changed to %d", val->val.b); + if (cluster_id == OnOff::Id) { + if (attribute_id == OnOff::Attributes::OnOff::Id) { + if (_onChangeOnOffCB != NULL) { + ret &= _onChangeOnOffCB(val->val.b); + } + if (_onChangeCB != NULL) { + ret &= _onChangeCB(val->val.b); + } + if (ret == true) { + onOffState = val->val.b; + } + } + } + } + return ret; +} + +MatterOnOffPlugin::MatterOnOffPlugin() {} + +MatterOnOffPlugin::~MatterOnOffPlugin() { + end(); +} + +bool MatterOnOffPlugin::begin(bool initialState) { + ArduinoMatter::_init(); + on_off_plugin_unit::config_t plugin_config; + + plugin_config.on_off.on_off = initialState; + plugin_config.on_off.lighting.start_up_on_off = nullptr; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = on_off_plugin_unit::create(node::get(), &plugin_config, ENDPOINT_FLAG_NONE, (void *)this); + if (endpoint == nullptr) { + log_e("Failed to create on-off plugin endpoint"); + return false; + } + onOffState = initialState; + setEndPointId(endpoint::get_id(endpoint)); + log_i("On-Off Plugin created with endpoint_id %d", getEndPointId()); + started = true; + return true; +} + +void MatterOnOffPlugin::end() { + started = false; +} + +void MatterOnOffPlugin::updateAccessory() { + if (_onChangeCB != NULL) { + _onChangeCB(onOffState); + } +} + +bool MatterOnOffPlugin::setOnOff(bool newState) { + if (!started) { + log_e("Matter On-Off Plugin device has not begun."); + return false; + } + + // avoid processing the a "no-change" + if (onOffState == newState) { + return true; + } + + esp_matter_attr_val_t onoffVal = esp_matter_invalid(NULL); + + if (!getAttributeVal(OnOff::Id, OnOff::Attributes::OnOff::Id, &onoffVal)) { + log_e("Failed to get Pressure Sensor Attribute."); + return false; + } + if (onoffVal.val.b != newState) { + onoffVal.val.b = newState; + bool ret; + ret = updateAttributeVal(OnOff::Id, OnOff::Attributes::OnOff::Id, &onoffVal); + if (!ret) { + log_e("Failed to update Pressure Sensor Measurement Attribute."); + return false; + } + onOffState = newState; + } + log_v("Plugin OnOff state set to %s", newState ? "ON" : "OFF"); + return true; +} + +bool MatterOnOffPlugin::getOnOff() { + return onOffState; +} + +bool MatterOnOffPlugin::toggle() { + return setOnOff(!onOffState); +} + +MatterOnOffPlugin::operator bool() { + return getOnOff(); +} + +void MatterOnOffPlugin::operator=(bool newState) { + setOnOff(newState); +} +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h new file mode 100644 index 00000000000..241726a3a46 --- /dev/null +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h @@ -0,0 +1,56 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#pragma once +#include +#ifdef CONFIG_ESP_MATTER_ENABLE_DATA_MODEL + +#include +#include + +class MatterOnOffPlugin : public MatterEndPoint { +public: + MatterOnOffPlugin(); + ~MatterOnOffPlugin(); + virtual bool begin(bool initialState = false); // default initial state is off + void end(); // this will just stop processing Plugin Matter events + + bool setOnOff(bool newState); // returns true if successful + bool getOnOff(); // returns current plugin state + bool toggle(); // returns true if successful + + // used to update the state of the plugin using the current Matter Plugin internal state + // It is necessary to set a user callback function using onChange() to handle the physical plugin state + void updateAccessory(); + + operator bool(); // returns current plugin state + void operator=(bool state); // turns plugin on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // User Callback for whenever the Plugin state is changed by the Matter Controller + using EndPointCB = std::function; + void onChange(EndPointCB onChangeCB) { + _onChangeCB = onChangeCB; + } + void onChangeOnOff(EndPointCB onChangeCB) { + _onChangeOnOffCB = onChangeCB; + } + +protected: + bool started = false; + bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) + EndPointCB _onChangeCB = NULL; + EndPointCB _onChangeOnOffCB = NULL; +}; +#endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ From 8f0f46fe549fb331129d25e1193e3db3a4f57946 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:24:21 +0000 Subject: [PATCH 141/179] ci(pre-commit): Apply automatic fixes --- tools/get.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/get.py b/tools/get.py index b40c0a6e987..c791020b7e9 100755 --- a/tools/get.py +++ b/tools/get.py @@ -243,11 +243,11 @@ def unpack(filename, destination, force_extract, checksum): # noqa: C901 if filename.endswith("tar.gz"): if not cfile: cfile = tarfile.open(filename, "r:gz") - cfile.extractall(destination, filter='tar') + cfile.extractall(destination, filter="tar") elif filename.endswith("tar.xz"): if not cfile: cfile = tarfile.open(filename, "r:xz") - cfile.extractall(destination, filter='tar') + cfile.extractall(destination, filter="tar") elif filename.endswith("zip"): if not cfile: cfile = zipfile.ZipFile(filename) From c6ec1120543a3acfb23a21bf435e24446557bb03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:25:55 +0000 Subject: [PATCH 142/179] change(tools): Push generated binaries to PR --- tools/get.exe | Bin 7493360 -> 7493360 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/get.exe b/tools/get.exe index b5c542501c5924256d567fb2aceb92016cc807ed..b88062159a648836c66ee002504a1ceb99cb332b 100644 GIT binary patch delta 18398 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 F000zD$=?6~ delta 18396 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 Date: Thu, 12 Dec 2024 20:45:05 +0000 Subject: [PATCH 143/179] change(tools): Push generated binaries to PR --- tools/get.exe | Bin 7493360 -> 7493360 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/get.exe b/tools/get.exe index b88062159a648836c66ee002504a1ceb99cb332b..b56f2b98384cecf56ab72ac3ccb6e859eee59b6d 100644 GIT binary patch delta 23560 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 delta 23615 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 From ce9a34db9a5407be125122a7b839e2beab76bbfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:13:28 +0100 Subject: [PATCH 144/179] fix(zigbee): Update example + pressure unit --- .../Zigbee_Pressure_Flow_Sensor.ino | 48 ++++++++----------- .../Zigbee/src/ep/ZigbeePressureSensor.cpp | 4 +- .../Zigbee/src/ep/ZigbeePressureSensor.h | 8 ++-- 3 files changed, 27 insertions(+), 33 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino index f70341af9d5..84b1edb1f96 100644 --- a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino @@ -41,21 +41,6 @@ uint8_t button = BOOT_PIN; ZigbeeFlowSensor zbFlowSensor = ZigbeeFlowSensor(FLOW_SENSOR_ENDPOINT_NUMBER); ZigbeePressureSensor zbPressureSensor = ZigbeePressureSensor(PRESSURE_SENSOR_ENDPOINT_NUMBER); -/************************ Temp sensor *****************************/ -static void sensors_reading(void *arg) { - for (;;) { - // Read Pressure and Flow sensors value - here is chip temperature used as a dummy value for demonstration - float flow_value = temperatureRead(); - uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1-3hPa - Serial.printf("Updating flow sensor value to %.2f\r\n", flow_value); - zbFlowSensor.setFlow(flow_value); - Serial.printf("Updating pressure sensor value to %d\r\n", pressure_value); - zbPressureSensor.setPressure(pressure_value); - delay(1000); - } -} - -/********************* Arduino functions **************************/ void setup() { Serial.begin(115200); @@ -65,19 +50,19 @@ void setup() { // Optional: set Zigbee device name and model zbFlowSensor.setManufacturerAndModel("Espressif", "ZigbeeFlowSensor"); - // Set minimum and maximum temperature measurement value (10-50°C is default range for chip temperature measurement) - zbFlowSensor.setMinMaxValue(0, 100); + // Set minimum and maximum flow measurement value in 0,1 m3/h + zbFlowSensor.setMinMaxValue(0.0, 100.0); - // Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) - zbFlowSensor.setTolerance(1); + // Set tolerance for flow measurement in 0,1 m3/h + zbFlowSensor.setTolerance(1.0); // Optional: set Zigbee device name and model zbPressureSensor.setManufacturerAndModel("Espressif", "ZigbeePressureSensor"); - // Set minimum and maximum temperature measurement value (10-50°C is default range for chip temperature measurement) - zbPressureSensor.setMinMaxValue(0, 30); + // Set minimum and maximum pressure measurement value in hPa + zbPressureSensor.setMinMaxValue(0, 10000); - // Set tolerance for temperature measurement in °C (lowest possible value is 0.01°C) + // Set tolerance for temperature measurement in hPa zbPressureSensor.setTolerance(1); // Add endpoints to Zigbee Core @@ -100,19 +85,28 @@ void setup() { } Serial.println(); - // Start Flow and Pressure sensor reading task - xTaskCreate(sensors_reading, "flow_pressure_sensors_read", 2048, NULL, 10, NULL); - // Set reporting interval for flow and pressure measurement in seconds, must be called after Zigbee.begin() - // min_interval and max_interval in seconds, delta (pressure change in Pa, flow change in 0,1 m3/h) + // min_interval and max_interval in seconds, delta (pressure change in hPa, flow change in 0,1 m3/h) // if min = 1 and max = 0, reporting is sent only when temperature changes by delta // if min = 0 and max = 10, reporting is sent every 10 seconds or temperature changes by delta // if min = 0, max = 10 and delta = 0, reporting is sent every 10 seconds regardless of delta change - zbFlowSensor.setReporting(0, 30, 1); + zbFlowSensor.setReporting(0, 30, 1.0); zbPressureSensor.setReporting(0, 30, 1); } void loop() { + static uint32_t timeCounter = 0; + + // Read flow nad pressure sensors every 2s + if (!(timeCounter++ % 20)) { // delaying for 100ms x 20 = 2s + float flow_value = temperatureRead(); + uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1000-3000hPa + Serial.printf("Updating flow sensor value to %.2f m3/h\r\n", flow_value); + zbFlowSensor.setFlow(flow_value); + Serial.printf("Updating pressure sensor value to %d hPa\r\n", pressure_value); + zbPressureSensor.setPressure(pressure_value); + } + // Checking button for factory reset if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp index a6ccacbd562..6880a109b46 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp @@ -55,7 +55,7 @@ void ZigbeePressureSensor::setReporting(uint16_t min_interval, uint16_t max_inte .max_interval = max_interval, .delta = { - .u16 = delta, // x Pa + .u16 = delta, // x hPa }, .def_min_interval = min_interval, .def_max_interval = max_interval, @@ -75,7 +75,7 @@ void ZigbeePressureSensor::setReporting(uint16_t min_interval, uint16_t max_inte void ZigbeePressureSensor::setPressure(int16_t pressure) { log_v("Updating pressure sensor value..."); /* Update temperature sensor measured value */ - log_d("Setting pressure to %d Pa", pressure); + log_d("Setting pressure to %d hPa", pressure); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_set_attribute_val( _endpoint, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, &pressure, false diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h index a2869aaeb5e..5874cb7ff3e 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h @@ -39,16 +39,16 @@ class ZigbeePressureSensor : public ZigbeeEP { ZigbeePressureSensor(uint8_t endpoint); ~ZigbeePressureSensor(); - // Set the pressure value in 1 Pa + // Set the pressure value in 1 hPa void setPressure(int16_t value); - // Set the min and max value for the pressure sensor in 1 Pa + // Set the min and max value for the pressure sensor in 1 hPa void setMinMaxValue(int16_t min, int16_t max); - // Set the tolerance value for the pressure sensor in 1 Pa + // Set the tolerance value for the pressure sensor in 1 hPa void setTolerance(uint16_t tolerance); - // Set the reporting interval for pressure measurement in seconds and delta (pressure change in 1 Pa) + // Set the reporting interval for pressure measurement in seconds and delta (pressure change in 1 hPa) void setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta); // Report the pressure value From 44e1559830de3943a156cd32dc5b74442c1f983b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:40:31 +0100 Subject: [PATCH 145/179] feat(zigbee): Add carbon dioxide sensor ed --- CMakeLists.txt | 1 + .../Zigbee_CarbonDioxide_Sensor/README.md | 72 ++++++++++++ .../Zigbee_CarbonDioxide_Sensor.ino | 106 ++++++++++++++++++ .../Zigbee_CarbonDioxide_Sensor/ci.json | 6 + .../Zigbee_Occupancy_Sensor.ino | 1 - .../Zigbee_Pressure_Flow_Sensor.ino | 8 +- libraries/Zigbee/src/Zigbee.h | 1 + .../src/ep/ZigbeeCarbonDioxideSensor.cpp | 104 +++++++++++++++++ .../Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h | 58 ++++++++++ 9 files changed, 352 insertions(+), 5 deletions(-) create mode 100644 libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/README.md create mode 100644 libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino create mode 100644 libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/ci.json create mode 100644 libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp create mode 100644 libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 45c4e9c0400..1c8af639695 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -281,6 +281,7 @@ set(ARDUINO_LIBRARY_Zigbee_SRCS libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp + libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp ) set(ARDUINO_LIBRARY_BLE_SRCS diff --git a/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/README.md b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/README.md new file mode 100644 index 00000000000..88c8bf04a65 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/README.md @@ -0,0 +1,72 @@ +# Arduino-ESP32 Carbon dioxide (CO2) Sensor Example + +This example shows how to configure the Zigbee end device and use it as a Home Automation (HA) simple sensor device type with carbon dioxide measuring. + +# Supported Targets + +Currently, this example supports the following targets. + +| Supported Targets | ESP32-C6 | ESP32-H2 | +| ----------------- | -------- | -------- | + +## Pressure + Flow Sensor Functions + + * After this board first starts up, it would be configured locally to report the carbon dioxide on every 30 seconds. + * By clicking the button (BOOT) on this board, this board will immediately send a report of the current measured carbon dioxide to the network. + +## Hardware Required + +* A USB cable for power supply and programming + +### Configure the Project + +In this example, the internal temperature sensor is used to demonstrate reading of the carbon dioxide sensors. +Set the Button GPIO by changing the `button` variable. By default, it's the pin `BOOT_PIN` (BOOT button on ESP32-C6 and ESP32-H2). + +#### Using Arduino IDE + +To get more information about the Espressif boards see [Espressif Development Kits](https://www.espressif.com/en/products/devkits). + +* Before Compile/Verify, select the correct board: `Tools -> Board`. +* Select the End device Zigbee mode: `Tools -> Zigbee mode: Zigbee ED (end device)` +* Select Partition Scheme for Zigbee: `Tools -> Partition Scheme: Zigbee 4MB with spiffs` +* Select the COM port: `Tools -> Port: xxx` where the `xxx` is the detected COM port. +* Optional: Set debug level to verbose to see all logs from Zigbee stack: `Tools -> Core Debug Level: Verbose`. + +## Troubleshooting + +If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. It is recommended to do this if you re-flash the coordinator. +You can do the following: + +* In the Arduino IDE go to the Tools menu and set `Erase All Flash Before Sketch Upload` to `Enabled`. +* Add to the sketch `Zigbee.factoryReset();` to reset the device and Zigbee stack. + +By default, the coordinator network is closed after rebooting or flashing new firmware. +To open the network you have 2 options: + +* Open network after reboot by setting `Zigbee.setRebootOpenNetwork(time);` before calling `Zigbee.begin();`. +* In application you can anytime call `Zigbee.openNetwork(time);` to open the network for devices to join. + +***Important: Make sure you are using a good quality USB cable and that you have a reliable power source*** + +* **LED not blinking:** Check the wiring connection and the IO selection. +* **Programming Fail:** If the programming/flash procedure fails, try reducing the serial connection speed. +* **COM port not detected:** Check the USB cable and the USB to Serial driver installation. + +If the error persists, you can ask for help at the official [ESP32 forum](https://esp32.com) or see [Contribute](#contribute). + +## Contribute + +To know how to contribute to this project, see [How to contribute.](https://github.com/espressif/arduino-esp32/blob/master/CONTRIBUTING.rst) + +If you have any **feedback** or **issue** to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome! + +Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else. + +## Resources + +* Official ESP32 Forum: [Link](https://esp32.com) +* Arduino-ESP32 Official Repository: [espressif/arduino-esp32](https://github.com/espressif/arduino-esp32) +* ESP32-C6 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) +* ESP32-H2 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) +* Official ESP-IDF documentation: [ESP-IDF](https://idf.espressif.com) diff --git a/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino new file mode 100644 index 00000000000..4a987826597 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino @@ -0,0 +1,106 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @brief This example demonstrates Zigbee carbon dioxide sensor. + * + * The example demonstrates how to use Zigbee library to create a end device carbon dioxide sensor. + * + * Proper Zigbee mode must be selected in Tools->Zigbee mode + * and also the correct partition scheme must be selected in Tools->Partition Scheme. + * + * Please check the README.md for instructions and more detailed description. + * + * Created by Jan Procházka (https://github.com/P-R-O-C-H-Y/) + */ + +#ifndef ZIGBEE_MODE_ED +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" +#endif + +#include "Zigbee.h" + +/* Zigbee carbon dioxide sensor configuration */ +#define CARBON_DIOXIDE_SENSOR_ENDPOINT_NUMBER 10 +uint8_t button = BOOT_PIN; + +ZigbeeCarbonDioxideSensor zbCarbonDioxideSensor = ZigbeeCarbonDioxideSensor(CARBON_DIOXIDE_SENSOR_ENDPOINT_NUMBER); + +void setup() { + Serial.begin(115200); + + // Init button switch + pinMode(button, INPUT_PULLUP); + + // Optional: set Zigbee device name and model + zbCarbonDioxideSensor.setManufacturerAndModel("Espressif", "ZigbeeCarbonDioxideSensor"); + + // Set minimum and maximum carbon dioxide measurement value in ppm + zbCarbonDioxideSensor.setMinMaxValue(0, 1500); + + // Add endpoints to Zigbee Core + Zigbee.addEndpoint(&zbCarbonDioxideSensor); + + Serial.println("Starting Zigbee..."); + // When all EPs are registered, start Zigbee in End Device mode + if (!Zigbee.begin()) { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } else { + Serial.println("Zigbee started successfully!"); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) { + Serial.print("."); + delay(100); + } + Serial.println(); + + // Set reporting interval for carbon dioxide measurement to be done every 30 seconds, must be called after Zigbee.begin() + // min_interval and max_interval in seconds, delta (carbon dioxide change in ppm) + // if min = 1 and max = 0, reporting is sent only when carbon dioxide changes by delta + // if min = 0 and max = 10, reporting is sent every 10 seconds or when carbon dioxide changes by delta + // if min = 0, max = 10 and delta = 0, reporting is sent every 10 seconds regardless of delta change + zbCarbonDioxideSensor.setReporting(0, 30, 0); +} + +void loop() { + static uint32_t timeCounter = 0; + // Read carbon dioxide sensor every 2s + if (!(timeCounter++ % 20)) { // delaying for 100ms x 20 = 2s + // Read sensor value - here is chip temperature used + 300 as a dummy value for demonstration + uint16_t carbon_dioxide_value = 300+(uint16_t)temperatureRead(); + Serial.printf("Updating carbon dioxide sensor value to %d ppm\r\n", carbon_dioxide_value); + zbCarbonDioxideSensor.setCarbonDioxide(carbon_dioxide_value); + } + + // Checking button for factory reset and reporting + if (digitalRead(button) == LOW) { // Push button pressed + // Key debounce handling + delay(100); + int startTime = millis(); + while (digitalRead(button) == LOW) { + delay(50); + if ((millis() - startTime) > 3000) { + // If key pressed for more than 3secs, factory reset Zigbee and reboot + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); + Zigbee.factoryReset(); + } + } + zbCarbonDioxideSensor.report(); + } + delay(100); +} diff --git a/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/ci.json b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/ci.json new file mode 100644 index 00000000000..7b7ccef8ed7 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/ci.json @@ -0,0 +1,6 @@ +{ + "fqbn_append": "PartitionScheme=zigbee,ZigbeeMode=ed", + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] +} diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino index b1cb53eb33d..fa0bb749c8f 100644 --- a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino @@ -40,7 +40,6 @@ uint8_t sensor_pin = 4; ZigbeeOccupancySensor zbOccupancySensor = ZigbeeOccupancySensor(OCCUPANCY_SENSOR_ENDPOINT_NUMBER); -/********************* Arduino functions **************************/ void setup() { Serial.begin(115200); diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino index 84b1edb1f96..9a28534cbd2 100644 --- a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino @@ -53,7 +53,7 @@ void setup() { // Set minimum and maximum flow measurement value in 0,1 m3/h zbFlowSensor.setMinMaxValue(0.0, 100.0); - // Set tolerance for flow measurement in 0,1 m3/h + // Optional: Set tolerance for flow measurement in 0,1 m3/h zbFlowSensor.setTolerance(1.0); // Optional: set Zigbee device name and model @@ -62,7 +62,7 @@ void setup() { // Set minimum and maximum pressure measurement value in hPa zbPressureSensor.setMinMaxValue(0, 10000); - // Set tolerance for temperature measurement in hPa + // Optional: Set tolerance for pressure measurement in hPa zbPressureSensor.setTolerance(1); // Add endpoints to Zigbee Core @@ -97,7 +97,7 @@ void setup() { void loop() { static uint32_t timeCounter = 0; - // Read flow nad pressure sensors every 2s + // Read flow and pressure sensors every 2s if (!(timeCounter++ % 20)) { // delaying for 100ms x 20 = 2s float flow_value = temperatureRead(); uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1000-3000hPa @@ -107,7 +107,7 @@ void loop() { zbPressureSensor.setPressure(pressure_value); } - // Checking button for factory reset + // Checking button for factory reset and reporting if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); diff --git a/libraries/Zigbee/src/Zigbee.h b/libraries/Zigbee/src/Zigbee.h index a1f5dcd7903..727761c900d 100644 --- a/libraries/Zigbee/src/Zigbee.h +++ b/libraries/Zigbee/src/Zigbee.h @@ -16,3 +16,4 @@ #include "ep/ZigbeePressureSensor.h" #include "ep/ZigbeeFlowSensor.h" #include "ep/ZigbeeOccupancySensor.h" +#include "ep/ZigbeeCarbonDioxideSensor.h" diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp new file mode 100644 index 00000000000..410816a918c --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp @@ -0,0 +1,104 @@ +#include "ZigbeeCarbonDioxideSensor.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +esp_zb_cluster_list_t *zigbee_carbon_dioxide_sensor_clusters_create(zigbee_carbon_dioxide_sensor_cfg_t *carbon_dioxide_sensor) +{ + esp_zb_basic_cluster_cfg_t *basic_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->identify_cfg) : NULL; + esp_zb_carbon_dioxide_measurement_cluster_cfg_t *carbon_dioxide_meas_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->carbon_dioxide_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_carbon_dioxide_measurement_cluster(cluster_list, esp_zb_carbon_dioxide_measurement_cluster_create(carbon_dioxide_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; +} + +ZigbeeCarbonDioxideSensor::ZigbeeCarbonDioxideSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { + _device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID; + + //Create custom pressure sensor configuration + zigbee_carbon_dioxide_sensor_cfg_t carbon_dioxide_sensor_cfg = ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG(); + _cluster_list = zigbee_carbon_dioxide_sensor_clusters_create(&carbon_dioxide_sensor_cfg); + + _ep_config = { + .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 + }; +} + +void ZigbeeCarbonDioxideSensor::setMinMaxValue(float min, float max) { + float zb_min = min/1000000.0f; + float zb_max = max/1000000.0f; + esp_zb_attribute_list_t *carbon_dioxide_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_update_attr(carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_ID, (void *)&zb_min); + esp_zb_cluster_update_attr(carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MAX_MEASURED_VALUE_ID, (void *)&zb_max); +} + +void ZigbeeCarbonDioxideSensor::setTolerance(float tolerance) { + float zb_tolerance = tolerance/1000000.0f; + esp_zb_attribute_list_t *carbon_dioxide_measure_cluster = + esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_temperature_meas_cluster_add_attr(carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_TOLERANCE_ID, (void *)&zb_tolerance); +} + +void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta) { + esp_zb_zcl_reporting_info_t reporting_info = { + .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, + .ep = _endpoint, + .cluster_id = ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, + .cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, + .attr_id = ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID, + .u = + { + .send_info = + { + .min_interval = min_interval, + .max_interval = max_interval, + .delta = + { + .u16 = delta, // x ppm + }, + .def_min_interval = min_interval, + .def_max_interval = max_interval, + }, + }, + .dst = + { + .profile_id = ESP_ZB_AF_HA_PROFILE_ID, + }, + .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, + }; + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_update_reporting_info(&reporting_info); + esp_zb_lock_release(); +} + +void ZigbeeCarbonDioxideSensor::setCarbonDioxide(float carbon_dioxide) { + float zb_carbon_dioxide = carbon_dioxide/1000000.0f; + log_v("Updating carbon dioxide sensor value..."); + /* Update carbon dioxide sensor measured value */ + log_d("Setting carbon dioxide to %0.1f", carbon_dioxide); + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID, &zb_carbon_dioxide, false + ); + esp_zb_lock_release(); +} + +void ZigbeeCarbonDioxideSensor::report() { + /* Send report attributes command */ + esp_zb_zcl_report_attr_cmd_t report_attr_cmd; + report_attr_cmd.address_mode = ESP_ZB_APS_ADDR_MODE_DST_ADDR_ENDP_NOT_PRESENT; + report_attr_cmd.attributeID = ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID; + report_attr_cmd.direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_CLI; + report_attr_cmd.clusterID = ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT; + report_attr_cmd.zcl_basic_cmd.src_endpoint = _endpoint; + + esp_zb_lock_acquire(portMAX_DELAY); + esp_zb_zcl_report_attr_cmd_req(&report_attr_cmd); + esp_zb_lock_release(); + log_v("Carbon dioxide report sent"); +} + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h new file mode 100644 index 00000000000..7ee973c7d10 --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h @@ -0,0 +1,58 @@ +/* Class of Zigbee Pressure sensor endpoint inherited from common EP class */ + +#pragma once + +#include "soc/soc_caps.h" +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED + +#include "ZigbeeEP.h" +#include "ha/esp_zigbee_ha_standard.h" + +#define ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .carbon_dioxide_meas_cfg = \ + { \ + .measured_value = 0.0, \ + .min_measured_value = 0.0, \ + .max_measured_value = 1.0, \ + }, \ + } + +typedef struct zigbee_carbon_dioxide_sensor_cfg_s { + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_carbon_dioxide_measurement_cluster_cfg_t carbon_dioxide_meas_cfg; +} zigbee_carbon_dioxide_sensor_cfg_t; + +class ZigbeeCarbonDioxideSensor : public ZigbeeEP { +public: + ZigbeeCarbonDioxideSensor(uint8_t endpoint); + ~ZigbeeCarbonDioxideSensor(); + + // Set the carbon dioxide value in ppm + void setCarbonDioxide(float carbon_dioxide); + + // Set the min and max value for the carbon dioxide sensor in ppm + void setMinMaxValue(float min, float max); + + // Set the tolerance value for the carbon dioxide sensor in ppm + void setTolerance(float tolerance); + + // Set the reporting interval for carbon dioxide measurement in seconds and delta (carbon dioxide change in ppm) + void setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta); + + // Report the carbon dioxide value + void report(); +}; + +#endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED From b72e8669df0ca633ec3c16257c8e8875cc867f0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:15:08 +0100 Subject: [PATCH 146/179] fix(zigbee): mention Carbon dioxide delta reporting is not supported --- libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp | 5 ++++- libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp index 410816a918c..e7623e96a15 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp @@ -43,6 +43,9 @@ void ZigbeeCarbonDioxideSensor::setTolerance(float tolerance) { } void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta) { + if(delta > 0) { + log_e("Delta reporting is currently not supported by the carbon dioxide sensor"); + } esp_zb_zcl_reporting_info_t reporting_info = { .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, .ep = _endpoint, @@ -57,7 +60,7 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max .max_interval = max_interval, .delta = { - .u16 = delta, // x ppm + .u16 = delta, }, .def_min_interval = min_interval, .def_max_interval = max_interval, diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h index 7ee973c7d10..96d3e7f17c2 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h @@ -49,6 +49,7 @@ class ZigbeeCarbonDioxideSensor : public ZigbeeEP { void setTolerance(float tolerance); // Set the reporting interval for carbon dioxide measurement in seconds and delta (carbon dioxide change in ppm) + // NOTE: Delta reporting is currently not supported by the carbon dioxide sensor void setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta); // Report the carbon dioxide value From 57339ba58c92f1c399b1143128b43970e2349ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:27:04 +0100 Subject: [PATCH 147/179] feat(zigbee): Update keywords.txt with co2 sensor --- libraries/Zigbee/keywords.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/Zigbee/keywords.txt b/libraries/Zigbee/keywords.txt index 0faba2a1eef..483d54eb712 100644 --- a/libraries/Zigbee/keywords.txt +++ b/libraries/Zigbee/keywords.txt @@ -123,6 +123,9 @@ setPressure KEYWORD2 setOccupancy KEYWORD2 setSensorType KEYWORD2 +# ZigbeeCarbonDioxideSensor +setCarbonDioxide KEYWORD2 + ####################################### # Constants (LITERAL1) ####################################### From faed83229864601272690f2cdda55a12d0417133 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:34:24 +0000 Subject: [PATCH 148/179] ci(pre-commit): Apply automatic fixes --- .../MatterOnOffPlugin/MatterOnOffPlugin.ino | 284 +++++++++--------- 1 file changed, 142 insertions(+), 142 deletions(-) diff --git a/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino index 04cf8bff31a..1950b5bb9f3 100644 --- a/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino +++ b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino @@ -1,142 +1,142 @@ -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Matter Manager -#include -#include -#include - -// List of Matter Endpoints for this Node -// On/Off Plugin Endpoint -MatterOnOffPlugin OnOffPlugin; - -// it will keep last OnOff state stored, using Preferences -Preferences matterPref; -const char *onOffPrefKey = "OnOff"; - -// set your board Power Relay pin here - this example uses the built-in LED for easy visualization -#ifdef LED_BUILTIN -const uint8_t onoffPin = LED_BUILTIN; -#else -const uint8_t onoffPin = 2; // Set your pin here - usually a power relay -#warning "Do not forget to set the Power Relay pin" -#endif - -// board USER BUTTON pin necessary for Decommissioning -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// Button control -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Matter Protocol Endpoint Callback -bool setPluginOnOff(bool state) { - Serial.printf("User Callback :: New Plugin State = %s\r\n", state ? "ON" : "OFF"); - if (state) { - digitalWrite(onoffPin, HIGH); - } else { - digitalWrite(onoffPin, LOW); - } - // store last OnOff state for when the Plugin is restarted / power goes off - matterPref.putBool(onOffPrefKey, state); - // This callback must return the success state to Matter core - return true; -} - -void setup() { - // Initialize the USER BUTTON - pinMode(buttonPin, INPUT_PULLUP); - // Initialize the Power Relay (plugin) GPIO - pinMode(onoffPin, OUTPUT); - - Serial.begin(115200); - - // We start by connecting to a WiFi network - Serial.print("Connecting to "); - Serial.println(ssid); - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println("\r\nWiFi connected"); - Serial.println("IP address: "); - Serial.println(WiFi.localIP()); - delay(500); - - // Initialize Matter EndPoint - matterPref.begin("MatterPrefs", false); - bool lastOnOffState = matterPref.getBool(onOffPrefKey, false); - OnOffPlugin.begin(lastOnOffState); - OnOffPlugin.onChange(setPluginOnOff); - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - // This may be a restart of a already commissioned Matter accessory - if (Matter.isDeviceCommissioned()) { - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); - OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state - } -} - -void loop() { - // Check Matter Plugin Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Plugin Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); - OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } - - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - // Onboard User Button is used to decommission the Matter Node - if (button_state && digitalRead(buttonPin) == HIGH) { - button_state = false; // released - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Plugin Matter Accessory. It shall be commissioned again."); - OnOffPlugin.setOnOff(false); // turn the plugin off - Matter.decommission(); - button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so - } -} +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Manager +#include +#include +#include + +// List of Matter Endpoints for this Node +// On/Off Plugin Endpoint +MatterOnOffPlugin OnOffPlugin; + +// it will keep last OnOff state stored, using Preferences +Preferences matterPref; +const char *onOffPrefKey = "OnOff"; + +// set your board Power Relay pin here - this example uses the built-in LED for easy visualization +#ifdef LED_BUILTIN +const uint8_t onoffPin = LED_BUILTIN; +#else +const uint8_t onoffPin = 2; // Set your pin here - usually a power relay +#warning "Do not forget to set the Power Relay pin" +#endif + +// board USER BUTTON pin necessary for Decommissioning +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Matter Protocol Endpoint Callback +bool setPluginOnOff(bool state) { + Serial.printf("User Callback :: New Plugin State = %s\r\n", state ? "ON" : "OFF"); + if (state) { + digitalWrite(onoffPin, HIGH); + } else { + digitalWrite(onoffPin, LOW); + } + // store last OnOff state for when the Plugin is restarted / power goes off + matterPref.putBool(onOffPrefKey, state); + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the USER BUTTON + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the Power Relay (plugin) GPIO + pinMode(onoffPin, OUTPUT); + + Serial.begin(115200); + + // We start by connecting to a WiFi network + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println("\r\nWiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + delay(500); + + // Initialize Matter EndPoint + matterPref.begin("MatterPrefs", false); + bool lastOnOffState = matterPref.getBool(onOffPrefKey, false); + OnOffPlugin.begin(lastOnOffState); + OnOffPlugin.onChange(setPluginOnOff); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + // This may be a restart of a already commissioned Matter accessory + if (Matter.isDeviceCommissioned()) { + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); + OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state + } +} + +void loop() { + // Check Matter Plugin Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Plugin Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.printf("Initial state: %s\r\n", OnOffPlugin.getOnOff() ? "ON" : "OFF"); + OnOffPlugin.updateAccessory(); // configure the Plugin based on initial state + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + // Onboard User Button is used to decommission the Matter Node + if (button_state && digitalRead(buttonPin) == HIGH) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Plugin Matter Accessory. It shall be commissioned again."); + OnOffPlugin.setOnOff(false); // turn the plugin off + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } +} From a7e2e64c5bf79ad3370bead3d4b77507382b7263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:07:08 +0100 Subject: [PATCH 149/179] Apply suggestions from code review Co-authored-by: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> --- libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp | 2 ++ libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h | 2 ++ libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp | 2 ++ libraries/Zigbee/src/ep/ZigbeeFlowSensor.h | 2 ++ libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h | 2 ++ libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp | 2 ++ libraries/Zigbee/src/ep/ZigbeePressureSensor.h | 2 ++ 7 files changed, 14 insertions(+) diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp index e7623e96a15..b409a5ce6a3 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp @@ -46,6 +46,7 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max if(delta > 0) { log_e("Delta reporting is currently not supported by the carbon dioxide sensor"); } + // clang-format off esp_zb_zcl_reporting_info_t reporting_info = { .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, .ep = _endpoint, @@ -72,6 +73,7 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max }, .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, }; + // clang-format on esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_update_reporting_info(&reporting_info); esp_zb_lock_release(); diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h index 96d3e7f17c2..72bf63ddfac 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h @@ -9,6 +9,7 @@ #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" +// clang-format off #define ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG() \ { \ .basic_cfg = \ @@ -27,6 +28,7 @@ .max_measured_value = 1.0, \ }, \ } +// clang-format on typedef struct zigbee_carbon_dioxide_sensor_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp index 17182a56b5b..38b31e846ef 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp @@ -44,6 +44,7 @@ void ZigbeeFlowSensor::setTolerance(float tolerance) { } void ZigbeeFlowSensor::setReporting(uint16_t min_interval, uint16_t max_interval, float delta) { + // clang-format off esp_zb_zcl_reporting_info_t reporting_info = { .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, .ep = _endpoint, @@ -70,6 +71,7 @@ void ZigbeeFlowSensor::setReporting(uint16_t min_interval, uint16_t max_interval }, .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, }; + // clang-format on esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_update_reporting_info(&reporting_info); esp_zb_lock_release(); diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h index 65156369984..d0f624c851a 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h @@ -9,6 +9,7 @@ #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" +// clang-format off #define ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG() \ { \ .basic_cfg = \ @@ -27,6 +28,7 @@ .max_value = 0x7FFF, \ }, \ } +// clang-format on typedef struct zigbee_flow_sensor_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h index 67103d63369..d62ce749629 100644 --- a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h @@ -9,6 +9,7 @@ #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" +// clang-format off #define ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG() \ { \ .basic_cfg = \ @@ -27,6 +28,7 @@ .sensor_type_bitmap = (1 << ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR), \ }, \ } +// clang-format on typedef struct zigbee_occupancy_sensor_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp index 6880a109b46..0421c53eede 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp @@ -41,6 +41,7 @@ void ZigbeePressureSensor::setTolerance(uint16_t tolerance) { } void ZigbeePressureSensor::setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta) { + // clang-format off esp_zb_zcl_reporting_info_t reporting_info = { .direction = ESP_ZB_ZCL_CMD_DIRECTION_TO_SRV, .ep = _endpoint, @@ -67,6 +68,7 @@ void ZigbeePressureSensor::setReporting(uint16_t min_interval, uint16_t max_inte }, .manuf_code = ESP_ZB_ZCL_ATTR_NON_MANUFACTURER_SPECIFIC, }; + // clang-format on esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_update_reporting_info(&reporting_info); esp_zb_lock_release(); diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h index 5874cb7ff3e..6439b6fcc88 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h @@ -9,6 +9,7 @@ #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" +// clang-format off #define ZIGBEE_DEFAULT_PRESSURE_SENSOR_CONFIG() \ { \ .basic_cfg = \ @@ -27,6 +28,7 @@ .max_value = ESP_ZB_ZCL_PATTR_RESSURE_MEASUREMENT_MAX_VALUE_DEFAULT_VALUE, \ }, \ } +// clang-format on typedef struct zigbee_pressure_sensor_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; From 6bc971c1a368db44f0fde43f4d140958c5b245e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:12:13 +0100 Subject: [PATCH 150/179] fix(zigbee): fix formatting of defines --- .../Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h | 36 +++++++++---------- libraries/Zigbee/src/ep/ZigbeeFlowSensor.h | 36 +++++++++---------- .../Zigbee/src/ep/ZigbeeOccupancySensor.h | 36 +++++++++---------- 3 files changed, 54 insertions(+), 54 deletions(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h index 72bf63ddfac..2faa5ab1aaa 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h @@ -10,24 +10,24 @@ #include "ha/esp_zigbee_ha_standard.h" // clang-format off -#define ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG() \ - { \ - .basic_cfg = \ - { \ - .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ - .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ - }, \ - .identify_cfg = \ - { \ - .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ - }, \ - .carbon_dioxide_meas_cfg = \ - { \ - .measured_value = 0.0, \ - .min_measured_value = 0.0, \ - .max_measured_value = 1.0, \ - }, \ - } +#define ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .carbon_dioxide_meas_cfg = \ + { \ + .measured_value = 0.0, \ + .min_measured_value = 0.0, \ + .max_measured_value = 1.0, \ + }, \ + } // clang-format on typedef struct zigbee_carbon_dioxide_sensor_cfg_s { diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h index d0f624c851a..65e2436fa80 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h @@ -10,24 +10,24 @@ #include "ha/esp_zigbee_ha_standard.h" // clang-format off -#define ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG() \ - { \ - .basic_cfg = \ - { \ - .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ - .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ - }, \ - .identify_cfg = \ - { \ - .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ - }, \ - .flow_meas_cfg = \ - { \ - .measured_value = 0, \ - .min_value = 0, \ - .max_value = 0x7FFF, \ - }, \ - } +#define ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .flow_meas_cfg = \ + { \ + .measured_value = 0, \ + .min_value = 0, \ + .max_value = 0x7FFF, \ + }, \ + } // clang-format on typedef struct zigbee_flow_sensor_cfg_s { diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h index d62ce749629..02c0fe24f8b 100644 --- a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h @@ -10,24 +10,24 @@ #include "ha/esp_zigbee_ha_standard.h" // clang-format off -#define ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG() \ - { \ - .basic_cfg = \ - { \ - .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ - .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ - }, \ - .identify_cfg = \ - { \ - .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ - }, \ - .occupancy_meas_cfg = \ - { \ - .occupancy = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_UNOCCUPIED, \ - .sensor_type = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR, \ - .sensor_type_bitmap = (1 << ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR), \ - }, \ - } +#define ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .occupancy_meas_cfg = \ + { \ + .occupancy = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_UNOCCUPIED, \ + .sensor_type = ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR, \ + .sensor_type_bitmap = (1 << ESP_ZB_ZCL_OCCUPANCY_SENSING_OCCUPANCY_SENSOR_TYPE_PIR), \ + }, \ + } // clang-format on typedef struct zigbee_occupancy_sensor_cfg_s { From a44e45795c510d2c1316b1244fab66d754199fd4 Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:45:57 +0100 Subject: [PATCH 151/179] feat(Zigbee): Add Zigbee Dimmable light endpoint class Add a endpoint type class for a dimmable light. Based on a copy of color dimmable light. --- libraries/Zigbee/src/Zigbee.h | 1 + .../Zigbee/src/ep/ZigbeeDimmableLight.cpp | 93 ++++++++++++++++ libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 103 ++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp create mode 100644 libraries/Zigbee/src/ep/ZigbeeDimmableLight.h diff --git a/libraries/Zigbee/src/Zigbee.h b/libraries/Zigbee/src/Zigbee.h index 98674a9d115..9f09a63320a 100644 --- a/libraries/Zigbee/src/Zigbee.h +++ b/libraries/Zigbee/src/Zigbee.h @@ -9,6 +9,7 @@ // Endpoints #include "ep/ZigbeeLight.h" #include "ep/ZigbeeSwitch.h" +#include "ep/ZigbeeDimmableLight.h" #include "ep/ZigbeeColorDimmableLight.h" #include "ep/ZigbeeColorDimmerSwitch.h" #include "ep/ZigbeeTempSensor.h" diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp new file mode 100644 index 00000000000..df268ba8a9e --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -0,0 +1,93 @@ + +#include "ZigbeeDimmableLight.h" +#if SOC_IEEE802154_SUPPORTED + +#include "esp_zigbee_cluster.h" + +ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) +{ + _device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID; + + esp_zb_dimmable_light_cfg_t light_cfg = ESP_ZB_DEFAULT_DIMMABLE_LIGHT_CONFIG(); + _cluster_list = esp_zb_dimmable_light_clusters_create(&light_cfg); + + _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID, .app_device_version = 0}; + + // set default values + _current_state = false; + _current_level = 255; +} + +// set attribute method -> method overridden in child class +void ZigbeeDimmableLight::zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) +{ + // check the data and call right method + if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) + { + if (message->attribute.id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) + { + if (_current_state != *(bool *)message->attribute.data.value) + { + _current_state = *(bool *)message->attribute.data.value; + lightChanged(); + } + return; + } + else + { + log_w("Received message ignored. Attribute ID: %d not supported for On/Off Light", message->attribute.id); + } + } + else if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL) + { + if (message->attribute.id == ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) + { + if (_current_level != *(uint8_t *)message->attribute.data.value) + { + _current_level = *(uint8_t *)message->attribute.data.value; + lightChanged(); + } + return; + } + else + { + log_w("Received message ignored. Attribute ID: %d not supported for Level Control", message->attribute.id); + // TODO: implement more attributes -> includes/zcl/esp_zigbee_zcl_level.h + } + } + else + { + log_w("Received message ignored. Cluster ID: %d not supported for Color dimmable Light", message->info.cluster); + } +} + +void ZigbeeDimmableLight::lightChanged() +{ + if (_on_light_change) + { + _on_light_change(_current_state, _current_level); + } +} + +esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(esp_zb_dimmable_light_cfg_t *light_cfg) +{ + esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_basic_cluster_create(&light_cfg->basic_cfg); + esp_zb_attribute_list_t *esp_zb_identify_cluster = esp_zb_identify_cluster_create(&light_cfg->identify_cfg); + esp_zb_attribute_list_t *esp_zb_groups_cluster = esp_zb_groups_cluster_create(&light_cfg->groups_cfg); + esp_zb_attribute_list_t *esp_zb_scenes_cluster = esp_zb_scenes_cluster_create(&light_cfg->scenes_cfg); + esp_zb_attribute_list_t *esp_zb_on_off_cluster = esp_zb_on_off_cluster_create(&light_cfg->on_off_cfg); + esp_zb_attribute_list_t *esp_zb_level_cluster = esp_zb_level_cluster_create(&light_cfg->level_cfg); + + // ------------------------------ Create cluster list ------------------------------ + esp_zb_cluster_list_t *esp_zb_cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(esp_zb_cluster_list, esp_zb_basic_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(esp_zb_cluster_list, esp_zb_identify_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_groups_cluster(esp_zb_cluster_list, esp_zb_groups_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_scenes_cluster(esp_zb_cluster_list, esp_zb_scenes_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_on_off_cluster(esp_zb_cluster_list, esp_zb_on_off_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_level_cluster(esp_zb_cluster_list, esp_zb_level_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + + return esp_zb_cluster_list; +} + +#endif // SOC_IEEE802154_SUPPORTED diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h new file mode 100644 index 00000000000..1d86a37254e --- /dev/null +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -0,0 +1,103 @@ +/* Class of Zigbee On/Off Light endpoint inherited from common EP class */ + +#pragma once + +#include "soc/soc_caps.h" +#if SOC_IEEE802154_SUPPORTED + +#include "ZigbeeEP.h" +#include "ha/esp_zigbee_ha_standard.h" + +/** + * @brief Zigbee HA standard dimmable light device clusters. + * Added here as not supported by ESP Zigbee library. + * + * + */ +typedef struct esp_zb_dimmable_light_cfg_s +{ + esp_zb_basic_cluster_cfg_t basic_cfg; /*!< Basic cluster configuration, @ref esp_zb_basic_cluster_cfg_s */ + esp_zb_identify_cluster_cfg_t identify_cfg; /*!< Identify cluster configuration, @ref esp_zb_identify_cluster_cfg_s */ + esp_zb_groups_cluster_cfg_t groups_cfg; /*!< Groups cluster configuration, @ref esp_zb_groups_cluster_cfg_s */ + esp_zb_scenes_cluster_cfg_t scenes_cfg; /*!< Scenes cluster configuration, @ref esp_zb_scenes_cluster_cfg_s */ + esp_zb_on_off_cluster_cfg_t on_off_cfg; /*!< On off cluster configuration, @ref esp_zb_on_off_cluster_cfg_s */ + esp_zb_level_cluster_cfg_t level_cfg; /*!< Level cluster configuration, @ref esp_zb_level_cluster_cfg_s */ +} esp_zb_dimmable_light_cfg_t; + +/** + * @brief Zigbee HA standard dimmable light device default config value. + * Added here as not supported by ESP Zigbee library. + * + */ +#define ESP_ZB_DEFAULT_DIMMABLE_LIGHT_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .groups_cfg = \ + { \ + .groups_name_support_id = ESP_ZB_ZCL_GROUPS_NAME_SUPPORT_DEFAULT_VALUE, \ + }, \ + .scenes_cfg = \ + { \ + .scenes_count = ESP_ZB_ZCL_SCENES_SCENE_COUNT_DEFAULT_VALUE, \ + .current_scene = ESP_ZB_ZCL_SCENES_CURRENT_SCENE_DEFAULT_VALUE, \ + .current_group = ESP_ZB_ZCL_SCENES_CURRENT_GROUP_DEFAULT_VALUE, \ + .scene_valid = ESP_ZB_ZCL_SCENES_SCENE_VALID_DEFAULT_VALUE, \ + .name_support = ESP_ZB_ZCL_SCENES_NAME_SUPPORT_DEFAULT_VALUE, \ + }, \ + .on_off_cfg = \ + { \ + .on_off = ESP_ZB_ZCL_ON_OFF_ON_OFF_DEFAULT_VALUE, \ + }, \ + .level_cfg = \ + { \ + .current_level = ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_LEVEL_DEFAULT_VALUE, \ + }, \ + } + +class ZigbeeDimmableLight : public ZigbeeEP +{ +public: + ZigbeeDimmableLight(uint8_t endpoint); + ~ZigbeeDimmableLight(); + + void onLightChange(void (*callback)(bool, uint8_t)) + { + _on_light_change = callback; + } + void restoreLight() + { + lightChanged(); + } + +private: + void zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) override; + + void lightChanged(); + // callback function to be called on light change (State, Level) + void (*_on_light_change)(bool, uint8_t); + + /** + * @brief Create a standard HA dimmable light cluster list. + * Added here as not supported by ESP Zigbee library. + * + * @note This contains basic, identify, groups, scenes, on-off, level, as server side. + * @param[in] light_cfg Configuration parameters for this cluster lists defined by @ref esp_zb_dimmable_light_cfg_t + * + * @return Pointer to cluster list @ref esp_zb_cluster_list_s + * + */ + esp_zb_cluster_list_t *esp_zb_dimmable_light_clusters_create(esp_zb_dimmable_light_cfg_t *light_cfg); + + bool _current_state; + uint8_t _current_level; +}; + +#endif // SOC_IEEE802154_SUPPORTED From aa0c3da729dae253e6a93e6518900e80a80fd712 Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Fri, 13 Dec 2024 17:13:55 +0100 Subject: [PATCH 152/179] feat(Zigbee): Add Zigbee Dimmable light example Add example for a dimmable light. Based on a copy of color dimmable light example. --- .../examples/Zigbee_Dimmable_Light/README.md | 68 +++++++++++ .../Zigbee_Dimmable_Light.ino | 110 ++++++++++++++++++ .../examples/Zigbee_Dimmable_Light/ci.json | 6 + 3 files changed, 184 insertions(+) create mode 100644 libraries/Zigbee/examples/Zigbee_Dimmable_Light/README.md create mode 100644 libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino create mode 100644 libraries/Zigbee/examples/Zigbee_Dimmable_Light/ci.json diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/README.md b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/README.md new file mode 100644 index 00000000000..e5bf51b660c --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/README.md @@ -0,0 +1,68 @@ +# Arduino-ESP32 Zigbee Dimmable Light Example + +This example shows how to configure the Zigbee end device and use it as a Home Automation (HA) dimmable light. + +# Supported Targets + +Currently, this example supports the following targets. + +| Supported Targets | ESP32-C6 | ESP32-H2 | +| ----------------- | -------- | -------- | + +## Hardware Required + +* A USB cable for power supply and programming +* Board (ESP32-H2 or ESP32-C6) as Zigbee end device and upload the Zigbee_Dimmable_Light example +* Zigbee network / coordinator (Other board with switch examples or Zigbee2mqtt or ZigbeeHomeAssistant like application) + +### Configure the Project + +Set the LED GPIO by changing the `LED_PIN` definition. By default, the LED_PIN is `RGB_BUILTIN`. + +#### Using Arduino IDE + +To get more information about the Espressif boards see [Espressif Development Kits](https://www.espressif.com/en/products/devkits). + +* Before Compile/Verify, select the correct board: `Tools -> Board`. +* Select the End device Zigbee mode: `Tools -> Zigbee mode: Zigbee ED (end device)` +* Select Partition Scheme for Zigbee: `Tools -> Partition Scheme: Zigbee 4MB with spiffs` +* Select the COM port: `Tools -> Port: xxx` where the `xxx` is the detected COM port. +* Optional: Set debug level to verbose to see all logs from Zigbee stack: `Tools -> Core Debug Level: Verbose`. + +## Troubleshooting + +If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. It is recommended to do this if you re-flash the coordinator. +You can do the following: + +* In the Arduino IDE go to the Tools menu and set `Erase All Flash Before Sketch Upload` to `Enabled`. +* Add to the sketch `Zigbee.factoryReset();` to reset the device and Zigbee stack. + +By default, the coordinator network is closed after rebooting or flashing new firmware. +To open the network you have 2 options: + +* Open network after reboot by setting `Zigbee.setRebootOpenNetwork(time);` before calling `Zigbee.begin();`. +* In application you can anytime call `Zigbee.openNetwork(time);` to open the network for devices to join. + +***Important: Make sure you are using a good quality USB cable and that you have a reliable power source*** + +* **LED not blinking:** Check the wiring connection and the IO selection. +* **Programming Fail:** If the programming/flash procedure fails, try reducing the serial connection speed. +* **COM port not detected:** Check the USB cable and the USB to Serial driver installation. + +If the error persists, you can ask for help at the official [ESP32 forum](https://esp32.com) or see [Contribute](#contribute). + +## Contribute + +To know how to contribute to this project, see [How to contribute.](https://github.com/espressif/arduino-esp32/blob/master/CONTRIBUTING.rst) + +If you have any **feedback** or **issue** to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome! + +Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else. + +## Resources + +* Official ESP32 Forum: [Link](https://esp32.com) +* Arduino-ESP32 Official Repository: [espressif/arduino-esp32](https://github.com/espressif/arduino-esp32) +* ESP32-C6 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) +* ESP32-H2 Datasheet: [Link to datasheet](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) +* Official ESP-IDF documentation: [ESP-IDF](https://idf.espressif.com) diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino new file mode 100644 index 00000000000..01659cc6a2d --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino @@ -0,0 +1,110 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * @brief This example demonstrates Zigbee Dimmable light bulb. + * + * The example demonstrates how to use Zigbee library to create an end device with + * dimmable light end point. + * The light bulb is a Zigbee end device, which is controlled by a Zigbee coordinator. + * + * Proper Zigbee mode must be selected in Tools->Zigbee mode + * and also the correct partition scheme must be selected in Tools->Partition Scheme. + * + * Please check the README.md for instructions and more detailed description. + * + * Created by Jan Procházka (https://github.com/P-R-O-C-H-Y/) + */ + +#ifndef ZIGBEE_MODE_ED +#error "Zigbee end device mode is not selected in Tools->Zigbee mode" +#endif + +#include "Zigbee.h" + +#define LED_PIN RGB_BUILTIN +#define BUTTON_PIN 9 // C6/H2 Boot button +#define ZIGBEE_LIGHT_ENDPOINT 10 + +ZigbeeDimmableLight zbDimmableLight = ZigbeeDimmableLight(ZIGBEE_LIGHT_ENDPOINT); + +/********************* LED functions **************************/ +void setLight(bool state, uint8_t level) +{ + rgbLedWrite(LED_PIN, level, level, level); +} + +// Create a task on identify call to handle the identify function +void identify(uint16_t time) +{ + static uint8_t blink = 1; + log_d("Identify called for %d seconds", time); + if (time == 0) + { + // If identify time is 0, stop blinking and restore light as it was used for identify + zbDimmableLight.restoreLight(); + return; + } + rgbLedWrite(LED_PIN, 255 * blink, 255 * blink, 255 * blink); + blink = !blink; +} + +/********************* Arduino functions **************************/ +void setup() +{ + // Init RMT and leave light OFF + rgbLedWrite(LED_PIN, 0, 0, 0); + + // Init button for factory reset + pinMode(BUTTON_PIN, INPUT_PULLUP); + + // Set callback function for light change + zbDimmableLight.onLightChange(setLight); + + // Optional: Set callback function for device identify + zbDimmableLight.onIdentify(identify); + + // Optional: Set Zigbee device name and model + zbDimmableLight.setManufacturerAndModel("Espressif", "ZBLightBulb"); + + // Add endpoint to Zigbee Core + log_d("Adding ZigbeeLight endpoint to Zigbee Core"); + Zigbee.addEndpoint(&zbDimmableLight); + + // When all EPs are registered, start Zigbee. By default acts as ZIGBEE_END_DEVICE + log_d("Calling Zigbee.begin()"); + Zigbee.begin(); +} + +void loop() +{ + // Checking button for factory reset + if (digitalRead(BUTTON_PIN) == LOW) + { // Push button pressed + // Key debounce handling + delay(100); + int startTime = millis(); + while (digitalRead(BUTTON_PIN) == LOW) + { + delay(50); + if ((millis() - startTime) > 3000) + { + // If key pressed for more than 3secs, factory reset Zigbee and reboot + Serial.printf("Resetting Zigbee to factory settings, reboot.\n"); + Zigbee.factoryReset(); + } + } + } + delay(100); +} diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/ci.json b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/ci.json new file mode 100644 index 00000000000..7b7ccef8ed7 --- /dev/null +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/ci.json @@ -0,0 +1,6 @@ +{ + "fqbn_append": "PartitionScheme=zigbee,ZigbeeMode=ed", + "requires": [ + "CONFIG_SOC_IEEE802154_SUPPORTED=y" + ] +} From 538c57a9945d303d678145272a07962e5b8c0b8b Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Fri, 13 Dec 2024 19:09:36 +0100 Subject: [PATCH 153/179] feat(Zigbee): Update Zigbee Dimmable light example to 3.1.x features --- .../Zigbee_Dimmable_Light.ino | 50 +++++++++++++------ .../Zigbee/src/ep/ZigbeeDimmableLight.cpp | 31 +++++++++++- libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 16 +++++- 3 files changed, 81 insertions(+), 16 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino index 01659cc6a2d..dec633975d3 100644 --- a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino @@ -33,16 +33,22 @@ #include "Zigbee.h" -#define LED_PIN RGB_BUILTIN -#define BUTTON_PIN 9 // C6/H2 Boot button +/* Zigbee dimmable light configuration */ #define ZIGBEE_LIGHT_ENDPOINT 10 +uint8_t led = RGB_BUILTIN; +uint8_t button = BOOT_PIN; ZigbeeDimmableLight zbDimmableLight = ZigbeeDimmableLight(ZIGBEE_LIGHT_ENDPOINT); -/********************* LED functions **************************/ +/********************* RGB LED functions **************************/ void setLight(bool state, uint8_t level) { - rgbLedWrite(LED_PIN, level, level, level); + if (!state) + { + rgbLedWrite(led, 0, 0, 0); + return; + } + rgbLedWrite(led, level, level, level); } // Create a task on identify call to handle the identify function @@ -56,18 +62,20 @@ void identify(uint16_t time) zbDimmableLight.restoreLight(); return; } - rgbLedWrite(LED_PIN, 255 * blink, 255 * blink, 255 * blink); + rgbLedWrite(led, 255 * blink, 255 * blink, 255 * blink); blink = !blink; } /********************* Arduino functions **************************/ void setup() { + Serial.begin(115200); + // Init RMT and leave light OFF - rgbLedWrite(LED_PIN, 0, 0, 0); + rgbLedWrite(led, 0, 0, 0); // Init button for factory reset - pinMode(BUTTON_PIN, INPUT_PULLUP); + pinMode(button, INPUT_PULLUP); // Set callback function for light change zbDimmableLight.onLightChange(setLight); @@ -79,32 +87,46 @@ void setup() zbDimmableLight.setManufacturerAndModel("Espressif", "ZBLightBulb"); // Add endpoint to Zigbee Core - log_d("Adding ZigbeeLight endpoint to Zigbee Core"); + Serial.println("Adding ZigbeeLight endpoint to Zigbee Core"); Zigbee.addEndpoint(&zbDimmableLight); - // When all EPs are registered, start Zigbee. By default acts as ZIGBEE_END_DEVICE - log_d("Calling Zigbee.begin()"); - Zigbee.begin(); + // When all EPs are registered, start Zigbee in End Device mode + if (!Zigbee.begin()) + { + Serial.println("Zigbee failed to start!"); + Serial.println("Rebooting..."); + ESP.restart(); + } + Serial.println("Connecting to network"); + while (!Zigbee.connected()) + { + Serial.print("."); + delay(100); + } + Serial.println(); } void loop() { // Checking button for factory reset - if (digitalRead(BUTTON_PIN) == LOW) + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(BUTTON_PIN) == LOW) + while (digitalRead(button) == LOW) { delay(50); if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot - Serial.printf("Resetting Zigbee to factory settings, reboot.\n"); + Serial.println("Resetting Zigbee to factory and rebooting in 1s."); + delay(1000); Zigbee.factoryReset(); } } + // Increase blightness by 50 every time the button is pressed + zbDimmableLight.setLightLevel(zbDimmableLight.getLightLevel() + 50); } delay(100); } diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp index df268ba8a9e..40edc5f74ba 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -57,7 +57,7 @@ void ZigbeeDimmableLight::zbAttributeSet(const esp_zb_zcl_set_attr_value_message } else { - log_w("Received message ignored. Cluster ID: %d not supported for Color dimmable Light", message->info.cluster); + log_w("Received message ignored. Cluster ID: %d not supported for dimmable Light", message->info.cluster); } } @@ -69,6 +69,35 @@ void ZigbeeDimmableLight::lightChanged() } } +void ZigbeeDimmableLight::setLight(bool state, uint8_t level) +{ + // Update all attributes + _current_state = state; + _current_level = level; + lightChanged(); + + log_v("Updating on/off light state to %d", state); + /* Update light clusters */ + esp_zb_lock_acquire(portMAX_DELAY); + // set on/off state + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, &_current_state, false); + // set level + esp_zb_zcl_set_attribute_val( + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, &_current_level, false); + esp_zb_lock_release(); +} + +void ZigbeeDimmableLight::setLightState(bool state) +{ + setLight(state, _current_level); +} + +void ZigbeeDimmableLight::setLightLevel(uint8_t level) +{ + setLight(_current_state, level); +} + esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(esp_zb_dimmable_light_cfg_t *light_cfg) { esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_basic_cluster_create(&light_cfg->basic_cfg); diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h index 1d86a37254e..df0f4324cd2 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -3,7 +3,8 @@ #pragma once #include "soc/soc_caps.h" -#if SOC_IEEE802154_SUPPORTED +#include "sdkconfig.h" +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "ZigbeeEP.h" #include "ha/esp_zigbee_ha_standard.h" @@ -77,6 +78,19 @@ class ZigbeeDimmableLight : public ZigbeeEP lightChanged(); } + void setLightState(bool state); + void setLightLevel(uint8_t level); + void setLight(bool state, uint8_t level); + + bool getLightState() + { + return _current_state; + } + uint8_t getLightLevel() + { + return _current_level; + } + private: void zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) override; From a0d57bb6d0d55472f15001fe7225c62b4b0ef0cd Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Fri, 13 Dec 2024 19:16:06 +0100 Subject: [PATCH 154/179] feat(Zigbee): Update Zigbee Dimmable light example config/define names --- .../Zigbee/src/ep/ZigbeeDimmableLight.cpp | 4 +- libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 88 +++++++++---------- 2 files changed, 43 insertions(+), 49 deletions(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp index 40edc5f74ba..e39cd36844d 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -8,7 +8,7 @@ ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID; - esp_zb_dimmable_light_cfg_t light_cfg = ESP_ZB_DEFAULT_DIMMABLE_LIGHT_CONFIG(); + zigbee_dimmable_light_cfg_t light_cfg = ZIGBEE_DEFAULT_DIMMABLE_LIGHT_CONFIG(); _cluster_list = esp_zb_dimmable_light_clusters_create(&light_cfg); _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID, .app_device_version = 0}; @@ -98,7 +98,7 @@ void ZigbeeDimmableLight::setLightLevel(uint8_t level) setLight(_current_state, level); } -esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(esp_zb_dimmable_light_cfg_t *light_cfg) +esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg) { esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_basic_cluster_create(&light_cfg->basic_cfg); esp_zb_attribute_list_t *esp_zb_identify_cluster = esp_zb_identify_cluster_create(&light_cfg->identify_cfg); diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h index df0f4324cd2..7e16d11b93b 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -15,66 +15,62 @@ * * */ -typedef struct esp_zb_dimmable_light_cfg_s -{ +typedef struct zigbee_dimmable_light_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; /*!< Basic cluster configuration, @ref esp_zb_basic_cluster_cfg_s */ esp_zb_identify_cluster_cfg_t identify_cfg; /*!< Identify cluster configuration, @ref esp_zb_identify_cluster_cfg_s */ esp_zb_groups_cluster_cfg_t groups_cfg; /*!< Groups cluster configuration, @ref esp_zb_groups_cluster_cfg_s */ esp_zb_scenes_cluster_cfg_t scenes_cfg; /*!< Scenes cluster configuration, @ref esp_zb_scenes_cluster_cfg_s */ esp_zb_on_off_cluster_cfg_t on_off_cfg; /*!< On off cluster configuration, @ref esp_zb_on_off_cluster_cfg_s */ esp_zb_level_cluster_cfg_t level_cfg; /*!< Level cluster configuration, @ref esp_zb_level_cluster_cfg_s */ -} esp_zb_dimmable_light_cfg_t; +} zigbee_dimmable_light_cfg_t; /** * @brief Zigbee HA standard dimmable light device default config value. * Added here as not supported by ESP Zigbee library. * */ -#define ESP_ZB_DEFAULT_DIMMABLE_LIGHT_CONFIG() \ - { \ - .basic_cfg = \ - { \ - .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ - .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ - }, \ - .identify_cfg = \ - { \ - .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ - }, \ - .groups_cfg = \ - { \ - .groups_name_support_id = ESP_ZB_ZCL_GROUPS_NAME_SUPPORT_DEFAULT_VALUE, \ - }, \ - .scenes_cfg = \ - { \ - .scenes_count = ESP_ZB_ZCL_SCENES_SCENE_COUNT_DEFAULT_VALUE, \ - .current_scene = ESP_ZB_ZCL_SCENES_CURRENT_SCENE_DEFAULT_VALUE, \ - .current_group = ESP_ZB_ZCL_SCENES_CURRENT_GROUP_DEFAULT_VALUE, \ - .scene_valid = ESP_ZB_ZCL_SCENES_SCENE_VALID_DEFAULT_VALUE, \ - .name_support = ESP_ZB_ZCL_SCENES_NAME_SUPPORT_DEFAULT_VALUE, \ - }, \ - .on_off_cfg = \ - { \ - .on_off = ESP_ZB_ZCL_ON_OFF_ON_OFF_DEFAULT_VALUE, \ - }, \ - .level_cfg = \ - { \ - .current_level = ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_LEVEL_DEFAULT_VALUE, \ - }, \ +#define ZIGBEE_DEFAULT_DIMMABLE_LIGHT_CONFIG() \ + { \ + .basic_cfg = \ + { \ + .zcl_version = ESP_ZB_ZCL_BASIC_ZCL_VERSION_DEFAULT_VALUE, \ + .power_source = ESP_ZB_ZCL_BASIC_POWER_SOURCE_DEFAULT_VALUE, \ + }, \ + .identify_cfg = \ + { \ + .identify_time = ESP_ZB_ZCL_IDENTIFY_IDENTIFY_TIME_DEFAULT_VALUE, \ + }, \ + .groups_cfg = \ + { \ + .groups_name_support_id = ESP_ZB_ZCL_GROUPS_NAME_SUPPORT_DEFAULT_VALUE, \ + }, \ + .scenes_cfg = \ + { \ + .scenes_count = ESP_ZB_ZCL_SCENES_SCENE_COUNT_DEFAULT_VALUE, \ + .current_scene = ESP_ZB_ZCL_SCENES_CURRENT_SCENE_DEFAULT_VALUE, \ + .current_group = ESP_ZB_ZCL_SCENES_CURRENT_GROUP_DEFAULT_VALUE, \ + .scene_valid = ESP_ZB_ZCL_SCENES_SCENE_VALID_DEFAULT_VALUE, \ + .name_support = ESP_ZB_ZCL_SCENES_NAME_SUPPORT_DEFAULT_VALUE, \ + }, \ + .on_off_cfg = \ + { \ + .on_off = ESP_ZB_ZCL_ON_OFF_ON_OFF_DEFAULT_VALUE, \ + }, \ + .level_cfg = \ + { \ + .current_level = ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_LEVEL_DEFAULT_VALUE, \ + }, \ } -class ZigbeeDimmableLight : public ZigbeeEP -{ +class ZigbeeDimmableLight : public ZigbeeEP { public: ZigbeeDimmableLight(uint8_t endpoint); ~ZigbeeDimmableLight(); - void onLightChange(void (*callback)(bool, uint8_t)) - { + void onLightChange(void (*callback)(bool, uint8_t)) { _on_light_change = callback; } - void restoreLight() - { + void restoreLight() { lightChanged(); } @@ -82,12 +78,10 @@ class ZigbeeDimmableLight : public ZigbeeEP void setLightLevel(uint8_t level); void setLight(bool state, uint8_t level); - bool getLightState() - { + bool getLightState() { return _current_state; } - uint8_t getLightLevel() - { + uint8_t getLightLevel() { return _current_level; } @@ -103,15 +97,15 @@ class ZigbeeDimmableLight : public ZigbeeEP * Added here as not supported by ESP Zigbee library. * * @note This contains basic, identify, groups, scenes, on-off, level, as server side. - * @param[in] light_cfg Configuration parameters for this cluster lists defined by @ref esp_zb_dimmable_light_cfg_t + * @param[in] light_cfg Configuration parameters for this cluster lists defined by @ref zigbee_dimmable_light_cfg_t * * @return Pointer to cluster list @ref esp_zb_cluster_list_s * */ - esp_zb_cluster_list_t *esp_zb_dimmable_light_clusters_create(esp_zb_dimmable_light_cfg_t *light_cfg); + esp_zb_cluster_list_t *esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg); bool _current_state; uint8_t _current_level; }; -#endif // SOC_IEEE802154_SUPPORTED +#endif // SOC_IEEE802154_SUPPORTED From b6d0553fa55db503d0fc66e2005c1d09e295c574 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 22:26:35 +0000 Subject: [PATCH 155/179] ci(pre-commit): Apply automatic fixes --- .../Zigbee_CarbonDioxide_Sensor.ino | 2 +- .../Zigbee_Occupancy_Sensor/README.md | 2 +- .../Zigbee_Occupancy_Sensor.ino | 2 +- .../Zigbee_Pressure_Flow_Sensor.ino | 4 +- .../src/ep/ZigbeeCarbonDioxideSensor.cpp | 40 +++++++++---------- .../Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h | 6 +-- libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp | 25 +++++------- libraries/Zigbee/src/ep/ZigbeeFlowSensor.h | 6 +-- .../Zigbee/src/ep/ZigbeeOccupancySensor.cpp | 25 +++++------- .../Zigbee/src/ep/ZigbeeOccupancySensor.h | 6 +-- .../Zigbee/src/ep/ZigbeePressureSensor.cpp | 25 +++++------- .../Zigbee/src/ep/ZigbeePressureSensor.h | 6 +-- libraries/Zigbee/src/ep/ZigbeeTempSensor.h | 2 - 13 files changed, 70 insertions(+), 81 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino index 4a987826597..47b9a05493f 100644 --- a/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_CarbonDioxide_Sensor/Zigbee_CarbonDioxide_Sensor.ino @@ -81,7 +81,7 @@ void loop() { // Read carbon dioxide sensor every 2s if (!(timeCounter++ % 20)) { // delaying for 100ms x 20 = 2s // Read sensor value - here is chip temperature used + 300 as a dummy value for demonstration - uint16_t carbon_dioxide_value = 300+(uint16_t)temperatureRead(); + uint16_t carbon_dioxide_value = 300 + (uint16_t)temperatureRead(); Serial.printf("Updating carbon dioxide sensor value to %d ppm\r\n", carbon_dioxide_value); zbCarbonDioxideSensor.setCarbonDioxide(carbon_dioxide_value); } diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md index 0e668775f5c..0c5dcd013f2 100644 --- a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/README.md @@ -30,7 +30,7 @@ To get more information about the Espressif boards see [Espressif Development Ki ## Troubleshooting -If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. +If the End device flashed with this example is not connecting to the coordinator, erase the flash of the End device before flashing the example to the board. ***Important: Make sure you are using a good quality USB cable and that you have a reliable power source*** diff --git a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino index fa0bb749c8f..46afdf3d273 100644 --- a/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Occupancy_Sensor/Zigbee_Occupancy_Sensor.ino @@ -73,7 +73,7 @@ void setup() { void loop() { // Checking PIR sensor for occupancy change static bool occupancy = false; - if(digitalRead(sensor_pin) == HIGH && !occupancy) { + if (digitalRead(sensor_pin) == HIGH && !occupancy) { // Update occupancy sensor value zbOccupancySensor.setOccupancy(true); zbOccupancySensor.report(); diff --git a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino index 9a28534cbd2..a652a22c493 100644 --- a/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino +++ b/libraries/Zigbee/examples/Zigbee_Pressure_Flow_Sensor/Zigbee_Pressure_Flow_Sensor.ino @@ -33,7 +33,7 @@ #include "Zigbee.h" /* Zigbee flow + pressure sensor configuration */ -#define FLOW_SENSOR_ENDPOINT_NUMBER 10 +#define FLOW_SENSOR_ENDPOINT_NUMBER 10 #define PRESSURE_SENSOR_ENDPOINT_NUMBER 11 uint8_t button = BOOT_PIN; @@ -100,7 +100,7 @@ void loop() { // Read flow and pressure sensors every 2s if (!(timeCounter++ % 20)) { // delaying for 100ms x 20 = 2s float flow_value = temperatureRead(); - uint16_t pressure_value = (uint16_t)temperatureRead()*100; //*100 for demonstration so the value is in 1000-3000hPa + uint16_t pressure_value = (uint16_t)temperatureRead() * 100; //*100 for demonstration so the value is in 1000-3000hPa Serial.printf("Updating flow sensor value to %.2f m3/h\r\n", flow_value); zbFlowSensor.setFlow(flow_value); Serial.printf("Updating pressure sensor value to %d hPa\r\n", pressure_value); diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp index b409a5ce6a3..89454c057e3 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.cpp @@ -1,17 +1,18 @@ #include "ZigbeeCarbonDioxideSensor.h" #if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED -esp_zb_cluster_list_t *zigbee_carbon_dioxide_sensor_clusters_create(zigbee_carbon_dioxide_sensor_cfg_t *carbon_dioxide_sensor) -{ - esp_zb_basic_cluster_cfg_t *basic_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->basic_cfg) : NULL; - esp_zb_identify_cluster_cfg_t *identify_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->identify_cfg) : NULL; - esp_zb_carbon_dioxide_measurement_cluster_cfg_t *carbon_dioxide_meas_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->carbon_dioxide_meas_cfg) : NULL; - esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); - esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_carbon_dioxide_measurement_cluster(cluster_list, esp_zb_carbon_dioxide_measurement_cluster_create(carbon_dioxide_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - return cluster_list; +esp_zb_cluster_list_t *zigbee_carbon_dioxide_sensor_clusters_create(zigbee_carbon_dioxide_sensor_cfg_t *carbon_dioxide_sensor) { + esp_zb_basic_cluster_cfg_t *basic_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->identify_cfg) : NULL; + esp_zb_carbon_dioxide_measurement_cluster_cfg_t *carbon_dioxide_meas_cfg = carbon_dioxide_sensor ? &(carbon_dioxide_sensor->carbon_dioxide_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_carbon_dioxide_measurement_cluster( + cluster_list, esp_zb_carbon_dioxide_measurement_cluster_create(carbon_dioxide_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE + ); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; } ZigbeeCarbonDioxideSensor::ZigbeeCarbonDioxideSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { @@ -21,14 +22,12 @@ ZigbeeCarbonDioxideSensor::ZigbeeCarbonDioxideSensor(uint8_t endpoint) : ZigbeeE zigbee_carbon_dioxide_sensor_cfg_t carbon_dioxide_sensor_cfg = ZIGBEE_DEFAULT_CARBON_DIOXIDE_SENSOR_CONFIG(); _cluster_list = zigbee_carbon_dioxide_sensor_clusters_create(&carbon_dioxide_sensor_cfg); - _ep_config = { - .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 - }; + _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0}; } void ZigbeeCarbonDioxideSensor::setMinMaxValue(float min, float max) { - float zb_min = min/1000000.0f; - float zb_max = max/1000000.0f; + float zb_min = min / 1000000.0f; + float zb_max = max / 1000000.0f; esp_zb_attribute_list_t *carbon_dioxide_measure_cluster = esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); esp_zb_cluster_update_attr(carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MIN_MEASURED_VALUE_ID, (void *)&zb_min); @@ -36,14 +35,14 @@ void ZigbeeCarbonDioxideSensor::setMinMaxValue(float min, float max) { } void ZigbeeCarbonDioxideSensor::setTolerance(float tolerance) { - float zb_tolerance = tolerance/1000000.0f; + float zb_tolerance = tolerance / 1000000.0f; esp_zb_attribute_list_t *carbon_dioxide_measure_cluster = esp_zb_cluster_list_get_cluster(_cluster_list, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); esp_zb_temperature_meas_cluster_add_attr(carbon_dioxide_measure_cluster, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_TOLERANCE_ID, (void *)&zb_tolerance); } void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max_interval, uint16_t delta) { - if(delta > 0) { + if (delta > 0) { log_e("Delta reporting is currently not supported by the carbon dioxide sensor"); } // clang-format off @@ -80,13 +79,14 @@ void ZigbeeCarbonDioxideSensor::setReporting(uint16_t min_interval, uint16_t max } void ZigbeeCarbonDioxideSensor::setCarbonDioxide(float carbon_dioxide) { - float zb_carbon_dioxide = carbon_dioxide/1000000.0f; + float zb_carbon_dioxide = carbon_dioxide / 1000000.0f; log_v("Updating carbon dioxide sensor value..."); /* Update carbon dioxide sensor measured value */ log_d("Setting carbon dioxide to %0.1f", carbon_dioxide); esp_zb_lock_acquire(portMAX_DELAY); esp_zb_zcl_set_attribute_val( - _endpoint, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID, &zb_carbon_dioxide, false + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_CARBON_DIOXIDE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_CARBON_DIOXIDE_MEASUREMENT_MEASURED_VALUE_ID, + &zb_carbon_dioxide, false ); esp_zb_lock_release(); } diff --git a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h index 2faa5ab1aaa..71c353d4695 100644 --- a/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeCarbonDioxideSensor.h @@ -31,9 +31,9 @@ // clang-format on typedef struct zigbee_carbon_dioxide_sensor_cfg_s { - esp_zb_basic_cluster_cfg_t basic_cfg; - esp_zb_identify_cluster_cfg_t identify_cfg; - esp_zb_carbon_dioxide_measurement_cluster_cfg_t carbon_dioxide_meas_cfg; + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_carbon_dioxide_measurement_cluster_cfg_t carbon_dioxide_meas_cfg; } zigbee_carbon_dioxide_sensor_cfg_t; class ZigbeeCarbonDioxideSensor : public ZigbeeEP { diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp index 38b31e846ef..6adf8172194 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.cpp @@ -1,17 +1,16 @@ #include "ZigbeeFlowSensor.h" #if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED -esp_zb_cluster_list_t *zigbee_flow_sensor_clusters_create(zigbee_flow_sensor_cfg_t *flow_sensor) -{ - esp_zb_basic_cluster_cfg_t *basic_cfg = flow_sensor ? &(flow_sensor->basic_cfg) : NULL; - esp_zb_identify_cluster_cfg_t *identify_cfg = flow_sensor ? &(flow_sensor->identify_cfg) : NULL; - esp_zb_flow_meas_cluster_cfg_t *flow_meas_cfg = flow_sensor ? &(flow_sensor->flow_meas_cfg) : NULL; - esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); - esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_flow_meas_cluster(cluster_list, esp_zb_flow_meas_cluster_create(flow_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - return cluster_list; +esp_zb_cluster_list_t *zigbee_flow_sensor_clusters_create(zigbee_flow_sensor_cfg_t *flow_sensor) { + esp_zb_basic_cluster_cfg_t *basic_cfg = flow_sensor ? &(flow_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = flow_sensor ? &(flow_sensor->identify_cfg) : NULL; + esp_zb_flow_meas_cluster_cfg_t *flow_meas_cfg = flow_sensor ? &(flow_sensor->flow_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_flow_meas_cluster(cluster_list, esp_zb_flow_meas_cluster_create(flow_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; } ZigbeeFlowSensor::ZigbeeFlowSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { @@ -21,9 +20,7 @@ ZigbeeFlowSensor::ZigbeeFlowSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { zigbee_flow_sensor_cfg_t flow_sensor_cfg = ZIGBEE_DEFAULT_FLOW_SENSOR_CONFIG(); _cluster_list = zigbee_flow_sensor_clusters_create(&flow_sensor_cfg); - _ep_config = { - .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 - }; + _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0}; } void ZigbeeFlowSensor::setMinMaxValue(float min, float max) { diff --git a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h index 65e2436fa80..3514e2fcc1b 100644 --- a/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeFlowSensor.h @@ -31,9 +31,9 @@ // clang-format on typedef struct zigbee_flow_sensor_cfg_s { - esp_zb_basic_cluster_cfg_t basic_cfg; - esp_zb_identify_cluster_cfg_t identify_cfg; - esp_zb_flow_meas_cluster_cfg_t flow_meas_cfg; + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_flow_meas_cluster_cfg_t flow_meas_cfg; } zigbee_flow_sensor_cfg_t; class ZigbeeFlowSensor : public ZigbeeEP { diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp index cbc475c8f7e..3a7acee040c 100644 --- a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.cpp @@ -1,17 +1,16 @@ #include "ZigbeeOccupancySensor.h" #if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED -esp_zb_cluster_list_t *zigbee_occupancy_sensor_clusters_create(zigbee_occupancy_sensor_cfg_t *occupancy_sensor) -{ - esp_zb_basic_cluster_cfg_t *basic_cfg = occupancy_sensor ? &(occupancy_sensor->basic_cfg) : NULL; - esp_zb_identify_cluster_cfg_t *identify_cfg = occupancy_sensor ? &(occupancy_sensor->identify_cfg) : NULL; - esp_zb_occupancy_sensing_cluster_cfg_t *occupancy_meas_cfg = occupancy_sensor ? &(occupancy_sensor->occupancy_meas_cfg) : NULL; - esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); - esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_occupancy_sensing_cluster(cluster_list, esp_zb_occupancy_sensing_cluster_create(occupancy_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - return cluster_list; +esp_zb_cluster_list_t *zigbee_occupancy_sensor_clusters_create(zigbee_occupancy_sensor_cfg_t *occupancy_sensor) { + esp_zb_basic_cluster_cfg_t *basic_cfg = occupancy_sensor ? &(occupancy_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = occupancy_sensor ? &(occupancy_sensor->identify_cfg) : NULL; + esp_zb_occupancy_sensing_cluster_cfg_t *occupancy_meas_cfg = occupancy_sensor ? &(occupancy_sensor->occupancy_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_occupancy_sensing_cluster(cluster_list, esp_zb_occupancy_sensing_cluster_create(occupancy_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; } ZigbeeOccupancySensor::ZigbeeOccupancySensor(uint8_t endpoint) : ZigbeeEP(endpoint) { @@ -21,9 +20,7 @@ ZigbeeOccupancySensor::ZigbeeOccupancySensor(uint8_t endpoint) : ZigbeeEP(endpoi zigbee_occupancy_sensor_cfg_t occupancy_sensor_cfg = ZIGBEE_DEFAULT_OCCUPANCY_SENSOR_CONFIG(); _cluster_list = zigbee_occupancy_sensor_clusters_create(&occupancy_sensor_cfg); - _ep_config = { - .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 - }; + _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0}; } void ZigbeeOccupancySensor::setSensorType(uint8_t sensor_type) { diff --git a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h index 02c0fe24f8b..e4b25c063e5 100644 --- a/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeOccupancySensor.h @@ -31,9 +31,9 @@ // clang-format on typedef struct zigbee_occupancy_sensor_cfg_s { - esp_zb_basic_cluster_cfg_t basic_cfg; - esp_zb_identify_cluster_cfg_t identify_cfg; - esp_zb_occupancy_sensing_cluster_cfg_t occupancy_meas_cfg; + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_occupancy_sensing_cluster_cfg_t occupancy_meas_cfg; } zigbee_occupancy_sensor_cfg_t; class ZigbeeOccupancySensor : public ZigbeeEP { diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp index 0421c53eede..9415502215d 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.cpp @@ -1,17 +1,16 @@ #include "ZigbeePressureSensor.h" #if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED -esp_zb_cluster_list_t *zigbee_pressure_sensor_clusters_create(zigbee_pressure_sensor_cfg_t *pressure_sensor) -{ - esp_zb_basic_cluster_cfg_t *basic_cfg = pressure_sensor ? &(pressure_sensor->basic_cfg) : NULL; - esp_zb_identify_cluster_cfg_t *identify_cfg = pressure_sensor ? &(pressure_sensor->identify_cfg) : NULL; - esp_zb_pressure_meas_cluster_cfg_t *pressure_meas_cfg = pressure_sensor ? &(pressure_sensor->pressure_meas_cfg) : NULL; - esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); - esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_pressure_meas_cluster(cluster_list, esp_zb_pressure_meas_cluster_create(pressure_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); - return cluster_list; +esp_zb_cluster_list_t *zigbee_pressure_sensor_clusters_create(zigbee_pressure_sensor_cfg_t *pressure_sensor) { + esp_zb_basic_cluster_cfg_t *basic_cfg = pressure_sensor ? &(pressure_sensor->basic_cfg) : NULL; + esp_zb_identify_cluster_cfg_t *identify_cfg = pressure_sensor ? &(pressure_sensor->identify_cfg) : NULL; + esp_zb_pressure_meas_cluster_cfg_t *pressure_meas_cfg = pressure_sensor ? &(pressure_sensor->pressure_meas_cfg) : NULL; + esp_zb_cluster_list_t *cluster_list = esp_zb_zcl_cluster_list_create(); + esp_zb_cluster_list_add_basic_cluster(cluster_list, esp_zb_basic_cluster_create(basic_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_identify_cluster_create(identify_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_pressure_meas_cluster(cluster_list, esp_zb_pressure_meas_cluster_create(pressure_meas_cfg), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + esp_zb_cluster_list_add_identify_cluster(cluster_list, esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY), ESP_ZB_ZCL_CLUSTER_SERVER_ROLE); + return cluster_list; } ZigbeePressureSensor::ZigbeePressureSensor(uint8_t endpoint) : ZigbeeEP(endpoint) { @@ -21,9 +20,7 @@ ZigbeePressureSensor::ZigbeePressureSensor(uint8_t endpoint) : ZigbeeEP(endpoint zigbee_pressure_sensor_cfg_t presssure_sensor_cfg = ZIGBEE_DEFAULT_PRESSURE_SENSOR_CONFIG(); _cluster_list = zigbee_pressure_sensor_clusters_create(&presssure_sensor_cfg); - _ep_config = { - .endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0 - }; + _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID, .app_device_version = 0}; } void ZigbeePressureSensor::setMinMaxValue(int16_t min, int16_t max) { diff --git a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h index 6439b6fcc88..f088c033bb9 100644 --- a/libraries/Zigbee/src/ep/ZigbeePressureSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeePressureSensor.h @@ -31,9 +31,9 @@ // clang-format on typedef struct zigbee_pressure_sensor_cfg_s { - esp_zb_basic_cluster_cfg_t basic_cfg; - esp_zb_identify_cluster_cfg_t identify_cfg; - esp_zb_pressure_meas_cluster_cfg_t pressure_meas_cfg; + esp_zb_basic_cluster_cfg_t basic_cfg; + esp_zb_identify_cluster_cfg_t identify_cfg; + esp_zb_pressure_meas_cluster_cfg_t pressure_meas_cfg; } zigbee_pressure_sensor_cfg_t; class ZigbeePressureSensor : public ZigbeeEP { diff --git a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h index 9b074ba0ae1..2951d4b7628 100644 --- a/libraries/Zigbee/src/ep/ZigbeeTempSensor.h +++ b/libraries/Zigbee/src/ep/ZigbeeTempSensor.h @@ -46,8 +46,6 @@ class ZigbeeTempSensor : public ZigbeeEP { private: bool _humidity_sensor; - }; - #endif //SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED From af541a5c14bd16c781160718c5a0223eeaacca1d Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Sat, 14 Dec 2024 11:16:26 +0100 Subject: [PATCH 156/179] feat(Zigbee): Add Zigbee Dimmable light to CMakeLists.txt --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 322824f11ab..58fc3301518 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,6 +275,7 @@ set(ARDUINO_LIBRARY_Zigbee_SRCS libraries/Zigbee/src/ZigbeeHandlers.cpp libraries/Zigbee/src/ep/ZigbeeColorDimmableLight.cpp libraries/Zigbee/src/ep/ZigbeeColorDimmerSwitch.cpp + libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp libraries/Zigbee/src/ep/ZigbeeLight.cpp libraries/Zigbee/src/ep/ZigbeeSwitch.cpp libraries/Zigbee/src/ep/ZigbeeTempSensor.cpp From 42f9cfca60bd4efae6eccbc5ee0a08d0f10dca4b Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Sat, 14 Dec 2024 16:39:32 +0100 Subject: [PATCH 157/179] feat(Zigbee): Add additional zigbee enabled check --- libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp index e39cd36844d..355847c8d02 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -1,6 +1,6 @@ #include "ZigbeeDimmableLight.h" -#if SOC_IEEE802154_SUPPORTED +#if SOC_IEEE802154_SUPPORTED && CONFIG_ZB_ENABLED #include "esp_zigbee_cluster.h" From ff7e50482a68ef55cd32c7b3b29f2143f3e0895e Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Sat, 14 Dec 2024 17:57:00 +0100 Subject: [PATCH 158/179] feat(Zigbee): Applied formatter + add formatter protection As suggested by code review --- libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h index 7e16d11b93b..4c92899eb5e 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -15,7 +15,8 @@ * * */ -typedef struct zigbee_dimmable_light_cfg_s { +typedef struct zigbee_dimmable_light_cfg_s +{ esp_zb_basic_cluster_cfg_t basic_cfg; /*!< Basic cluster configuration, @ref esp_zb_basic_cluster_cfg_s */ esp_zb_identify_cluster_cfg_t identify_cfg; /*!< Identify cluster configuration, @ref esp_zb_identify_cluster_cfg_s */ esp_zb_groups_cluster_cfg_t groups_cfg; /*!< Groups cluster configuration, @ref esp_zb_groups_cluster_cfg_s */ @@ -29,6 +30,7 @@ typedef struct zigbee_dimmable_light_cfg_s { * Added here as not supported by ESP Zigbee library. * */ +// clang-format off #define ZIGBEE_DEFAULT_DIMMABLE_LIGHT_CONFIG() \ { \ .basic_cfg = \ @@ -61,16 +63,20 @@ typedef struct zigbee_dimmable_light_cfg_s { .current_level = ESP_ZB_ZCL_LEVEL_CONTROL_CURRENT_LEVEL_DEFAULT_VALUE, \ }, \ } +// clang-format on -class ZigbeeDimmableLight : public ZigbeeEP { +class ZigbeeDimmableLight : public ZigbeeEP +{ public: ZigbeeDimmableLight(uint8_t endpoint); ~ZigbeeDimmableLight(); - void onLightChange(void (*callback)(bool, uint8_t)) { + void onLightChange(void (*callback)(bool, uint8_t)) + { _on_light_change = callback; } - void restoreLight() { + void restoreLight() + { lightChanged(); } @@ -78,10 +84,12 @@ class ZigbeeDimmableLight : public ZigbeeEP { void setLightLevel(uint8_t level); void setLight(bool state, uint8_t level); - bool getLightState() { + bool getLightState() + { return _current_state; } - uint8_t getLightLevel() { + uint8_t getLightLevel() + { return _current_level; } @@ -108,4 +116,4 @@ class ZigbeeDimmableLight : public ZigbeeEP { uint8_t _current_level; }; -#endif // SOC_IEEE802154_SUPPORTED +#endif // SOC_IEEE802154_SUPPORTED From ae274ee8973ba534b30be5ebfdf145802e314841 Mon Sep 17 00:00:00 2001 From: FaBjE <5355001+FaBjE@users.noreply.github.com> Date: Sat, 14 Dec 2024 18:01:49 +0100 Subject: [PATCH 159/179] feat(Zigbee): Adjusted example author comment --- .../examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino index dec633975d3..3e325ea9d1e 100644 --- a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino @@ -24,7 +24,7 @@ * * Please check the README.md for instructions and more detailed description. * - * Created by Jan Procházka (https://github.com/P-R-O-C-H-Y/) + * Created by [FaBjE](https://github.com/FaBjE) based on examples by [Jan Procházka](https://github.com/P-R-O-C-H-Y/) */ #ifndef ZIGBEE_MODE_ED From ddf8c42af365fe9f15d6e6d7206bec4c9c21554c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 09:10:57 +0000 Subject: [PATCH 160/179] ci(pre-commit): Apply automatic fixes --- .../Zigbee_Dimmable_Light.ino | 33 ++++------ .../Zigbee/src/ep/ZigbeeDimmableLight.cpp | 63 +++++++------------ libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 20 +++--- 3 files changed, 40 insertions(+), 76 deletions(-) diff --git a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino index 3e325ea9d1e..c77a7e742d1 100644 --- a/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino +++ b/libraries/Zigbee/examples/Zigbee_Dimmable_Light/Zigbee_Dimmable_Light.ino @@ -41,10 +41,8 @@ uint8_t button = BOOT_PIN; ZigbeeDimmableLight zbDimmableLight = ZigbeeDimmableLight(ZIGBEE_LIGHT_ENDPOINT); /********************* RGB LED functions **************************/ -void setLight(bool state, uint8_t level) -{ - if (!state) - { +void setLight(bool state, uint8_t level) { + if (!state) { rgbLedWrite(led, 0, 0, 0); return; } @@ -52,12 +50,10 @@ void setLight(bool state, uint8_t level) } // Create a task on identify call to handle the identify function -void identify(uint16_t time) -{ +void identify(uint16_t time) { static uint8_t blink = 1; log_d("Identify called for %d seconds", time); - if (time == 0) - { + if (time == 0) { // If identify time is 0, stop blinking and restore light as it was used for identify zbDimmableLight.restoreLight(); return; @@ -67,8 +63,7 @@ void identify(uint16_t time) } /********************* Arduino functions **************************/ -void setup() -{ +void setup() { Serial.begin(115200); // Init RMT and leave light OFF @@ -91,34 +86,28 @@ void setup() Zigbee.addEndpoint(&zbDimmableLight); // When all EPs are registered, start Zigbee in End Device mode - if (!Zigbee.begin()) - { + if (!Zigbee.begin()) { Serial.println("Zigbee failed to start!"); Serial.println("Rebooting..."); ESP.restart(); } Serial.println("Connecting to network"); - while (!Zigbee.connected()) - { + while (!Zigbee.connected()) { Serial.print("."); delay(100); } Serial.println(); } -void loop() -{ +void loop() { // Checking button for factory reset - if (digitalRead(button) == LOW) - { // Push button pressed + if (digitalRead(button) == LOW) { // Push button pressed // Key debounce handling delay(100); int startTime = millis(); - while (digitalRead(button) == LOW) - { + while (digitalRead(button) == LOW) { delay(50); - if ((millis() - startTime) > 3000) - { + if ((millis() - startTime) > 3000) { // If key pressed for more than 3secs, factory reset Zigbee and reboot Serial.println("Resetting Zigbee to factory and rebooting in 1s."); delay(1000); diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp index 355847c8d02..fd560096090 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -4,8 +4,7 @@ #include "esp_zigbee_cluster.h" -ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) -{ +ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) { _device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID; zigbee_dimmable_light_cfg_t light_cfg = ZIGBEE_DEFAULT_DIMMABLE_LIGHT_CONFIG(); @@ -19,58 +18,41 @@ ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) } // set attribute method -> method overridden in child class -void ZigbeeDimmableLight::zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) -{ +void ZigbeeDimmableLight::zbAttributeSet(const esp_zb_zcl_set_attr_value_message_t *message) { // check the data and call right method - if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) - { - if (message->attribute.id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) - { - if (_current_state != *(bool *)message->attribute.data.value) - { + if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_ON_OFF) { + if (message->attribute.id == ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_BOOL) { + if (_current_state != *(bool *)message->attribute.data.value) { _current_state = *(bool *)message->attribute.data.value; lightChanged(); } return; - } - else - { + } else { log_w("Received message ignored. Attribute ID: %d not supported for On/Off Light", message->attribute.id); } - } - else if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL) - { - if (message->attribute.id == ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) - { - if (_current_level != *(uint8_t *)message->attribute.data.value) - { + } else if (message->info.cluster == ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL) { + if (message->attribute.id == ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID && message->attribute.data.type == ESP_ZB_ZCL_ATTR_TYPE_U8) { + if (_current_level != *(uint8_t *)message->attribute.data.value) { _current_level = *(uint8_t *)message->attribute.data.value; lightChanged(); } return; - } - else - { + } else { log_w("Received message ignored. Attribute ID: %d not supported for Level Control", message->attribute.id); // TODO: implement more attributes -> includes/zcl/esp_zigbee_zcl_level.h } - } - else - { + } else { log_w("Received message ignored. Cluster ID: %d not supported for dimmable Light", message->info.cluster); } } -void ZigbeeDimmableLight::lightChanged() -{ - if (_on_light_change) - { +void ZigbeeDimmableLight::lightChanged() { + if (_on_light_change) { _on_light_change(_current_state, _current_level); } } -void ZigbeeDimmableLight::setLight(bool state, uint8_t level) -{ +void ZigbeeDimmableLight::setLight(bool state, uint8_t level) { // Update all attributes _current_state = state; _current_level = level; @@ -81,25 +63,24 @@ void ZigbeeDimmableLight::setLight(bool state, uint8_t level) esp_zb_lock_acquire(portMAX_DELAY); // set on/off state esp_zb_zcl_set_attribute_val( - _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, &_current_state, false); + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_ON_OFF, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ON_OFF_ON_OFF_ID, &_current_state, false + ); // set level esp_zb_zcl_set_attribute_val( - _endpoint, ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, &_current_level, false); + _endpoint, ESP_ZB_ZCL_CLUSTER_ID_LEVEL_CONTROL, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_LEVEL_CONTROL_CURRENT_LEVEL_ID, &_current_level, false + ); esp_zb_lock_release(); } -void ZigbeeDimmableLight::setLightState(bool state) -{ +void ZigbeeDimmableLight::setLightState(bool state) { setLight(state, _current_level); } -void ZigbeeDimmableLight::setLightLevel(uint8_t level) -{ +void ZigbeeDimmableLight::setLightLevel(uint8_t level) { setLight(_current_state, level); } -esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg) -{ +esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg) { esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_basic_cluster_create(&light_cfg->basic_cfg); esp_zb_attribute_list_t *esp_zb_identify_cluster = esp_zb_identify_cluster_create(&light_cfg->identify_cfg); esp_zb_attribute_list_t *esp_zb_groups_cluster = esp_zb_groups_cluster_create(&light_cfg->groups_cfg); @@ -119,4 +100,4 @@ esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_creat return esp_zb_cluster_list; } -#endif // SOC_IEEE802154_SUPPORTED +#endif // SOC_IEEE802154_SUPPORTED diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h index 4c92899eb5e..4e00536a4d2 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -15,8 +15,7 @@ * * */ -typedef struct zigbee_dimmable_light_cfg_s -{ +typedef struct zigbee_dimmable_light_cfg_s { esp_zb_basic_cluster_cfg_t basic_cfg; /*!< Basic cluster configuration, @ref esp_zb_basic_cluster_cfg_s */ esp_zb_identify_cluster_cfg_t identify_cfg; /*!< Identify cluster configuration, @ref esp_zb_identify_cluster_cfg_s */ esp_zb_groups_cluster_cfg_t groups_cfg; /*!< Groups cluster configuration, @ref esp_zb_groups_cluster_cfg_s */ @@ -65,18 +64,15 @@ typedef struct zigbee_dimmable_light_cfg_s } // clang-format on -class ZigbeeDimmableLight : public ZigbeeEP -{ +class ZigbeeDimmableLight : public ZigbeeEP { public: ZigbeeDimmableLight(uint8_t endpoint); ~ZigbeeDimmableLight(); - void onLightChange(void (*callback)(bool, uint8_t)) - { + void onLightChange(void (*callback)(bool, uint8_t)) { _on_light_change = callback; } - void restoreLight() - { + void restoreLight() { lightChanged(); } @@ -84,12 +80,10 @@ class ZigbeeDimmableLight : public ZigbeeEP void setLightLevel(uint8_t level); void setLight(bool state, uint8_t level); - bool getLightState() - { + bool getLightState() { return _current_state; } - uint8_t getLightLevel() - { + uint8_t getLightLevel() { return _current_level; } @@ -116,4 +110,4 @@ class ZigbeeDimmableLight : public ZigbeeEP uint8_t _current_level; }; -#endif // SOC_IEEE802154_SUPPORTED +#endif // SOC_IEEE802154_SUPPORTED From 4f863d52baa0dd09529e1ca6c6b0523a96679098 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Proch=C3=A1zka?= <90197375+P-R-O-C-H-Y@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:19:42 +0100 Subject: [PATCH 161/179] fix(zigbee): Rename method to avoid future conflict --- libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp | 4 ++-- libraries/Zigbee/src/ep/ZigbeeDimmableLight.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp index fd560096090..00d3aac3752 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.cpp @@ -8,7 +8,7 @@ ZigbeeDimmableLight::ZigbeeDimmableLight(uint8_t endpoint) : ZigbeeEP(endpoint) _device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID; zigbee_dimmable_light_cfg_t light_cfg = ZIGBEE_DEFAULT_DIMMABLE_LIGHT_CONFIG(); - _cluster_list = esp_zb_dimmable_light_clusters_create(&light_cfg); + _cluster_list = zigbee_dimmable_light_clusters_create(&light_cfg); _ep_config = {.endpoint = _endpoint, .app_profile_id = ESP_ZB_AF_HA_PROFILE_ID, .app_device_id = ESP_ZB_HA_DIMMABLE_LIGHT_DEVICE_ID, .app_device_version = 0}; @@ -80,7 +80,7 @@ void ZigbeeDimmableLight::setLightLevel(uint8_t level) { setLight(_current_state, level); } -esp_zb_cluster_list_t *ZigbeeDimmableLight::esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg) { +esp_zb_cluster_list_t *ZigbeeDimmableLight::zigbee_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg) { esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_basic_cluster_create(&light_cfg->basic_cfg); esp_zb_attribute_list_t *esp_zb_identify_cluster = esp_zb_identify_cluster_create(&light_cfg->identify_cfg); esp_zb_attribute_list_t *esp_zb_groups_cluster = esp_zb_groups_cluster_create(&light_cfg->groups_cfg); diff --git a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h index 4e00536a4d2..034c34899b4 100644 --- a/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h +++ b/libraries/Zigbee/src/ep/ZigbeeDimmableLight.h @@ -104,7 +104,7 @@ class ZigbeeDimmableLight : public ZigbeeEP { * @return Pointer to cluster list @ref esp_zb_cluster_list_s * */ - esp_zb_cluster_list_t *esp_zb_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg); + esp_zb_cluster_list_t *zigbee_dimmable_light_clusters_create(zigbee_dimmable_light_cfg_t *light_cfg); bool _current_state; uint8_t _current_level; From 31dc520c4d1287d1be41e7e13ac53b689fe7acac Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 08:11:50 -0300 Subject: [PATCH 162/179] feat(matter): removed while(serial) and ipv6 enabling, which is a default --- .../Matter/examples/MatterColorLight/MatterColorLight.ino | 5 ----- .../examples/MatterCommissionTest/MatterCommissionTest.ino | 5 ----- .../examples/MatterComposedLights/MatterComposedLights.ino | 5 ----- .../examples/MatterDimmableLight/MatterDimmableLight.ino | 5 ----- .../MatterEnhancedColorLight/MatterEnhancedColorLight.ino | 5 ----- libraries/Matter/examples/MatterFan/MatterFan.ino | 5 ----- libraries/Matter/examples/MatterMinimum/MatterMinimum.ino | 1 - .../Matter/examples/MatterOnOffLight/MatterOnOffLight.ino | 5 ----- .../Matter/examples/MatterSmartButon/MatterSmartButon.ino | 6 +----- .../MatterTemperatureLight/MatterTemperatureLight.ino | 5 ----- 10 files changed, 1 insertion(+), 46 deletions(-) diff --git a/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino index ea91baef0ea..4f296a684c9 100644 --- a/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino +++ b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino @@ -76,15 +76,10 @@ void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino index 9024479c881..0e93ed6d155 100644 --- a/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino +++ b/libraries/Matter/examples/MatterCommissionTest/MatterCommissionTest.ino @@ -26,15 +26,10 @@ const char *password = "your-password"; // Change this to your WiFi password void setup() { Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino index 63062ba36a9..9c3dcf05a83 100644 --- a/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino +++ b/libraries/Matter/examples/MatterComposedLights/MatterComposedLights.ino @@ -55,15 +55,10 @@ void setup() { pinMode(buttonPin, INPUT_PULLUP); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino index f1af4f84dfc..7e176803c0a 100644 --- a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -72,15 +72,10 @@ void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino index eddbd0f2b21..5821707a6f7 100644 --- a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino +++ b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino @@ -80,15 +80,10 @@ void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterFan/MatterFan.ino b/libraries/Matter/examples/MatterFan/MatterFan.ino index a226dedf75d..62eaef038ef 100644 --- a/libraries/Matter/examples/MatterFan/MatterFan.ino +++ b/libraries/Matter/examples/MatterFan/MatterFan.ino @@ -71,15 +71,10 @@ void setup() { pinMode(dcMotorPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino index cc54d3c12c0..bd1e601c53f 100644 --- a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino +++ b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino @@ -60,7 +60,6 @@ void setup() { // Initialize the LED GPIO pinMode(ledPin, OUTPUT); - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index c7b8757f37b..93cc12f901f 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -67,15 +67,10 @@ void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino index 929c13c1663..c0c13e31814 100644 --- a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino +++ b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino @@ -38,15 +38,11 @@ void setup() { pinMode(buttonPin, INPUT_PULLUP); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); + // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection diff --git a/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino index 7937303de54..31bb535bf82 100644 --- a/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino +++ b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino @@ -83,15 +83,10 @@ void setup() { pinMode(ledPin, OUTPUT); Serial.begin(115200); - while (!Serial) { - delay(100); - } // We start by connecting to a WiFi network Serial.print("Connecting to "); Serial.println(ssid); - // enable IPv6 - WiFi.enableIPv6(true); // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection From 7d465f323bfbc542e7010fa2bf364ca4c22a0161 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 08:14:13 -0300 Subject: [PATCH 163/179] feat(matter): fix commentaries related to feature changes and log messages --- libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp | 4 ++-- .../src/MatterEndpoints/MatterColorTemperatureLight.cpp | 6 +++--- .../Matter/src/MatterEndpoints/MatterContactSensor.cpp | 2 +- .../Matter/src/MatterEndpoints/MatterDimmableLight.cpp | 4 ++-- .../src/MatterEndpoints/MatterEnhancedColorLight.cpp | 8 ++++---- libraries/Matter/src/MatterEndpoints/MatterFan.cpp | 6 +++--- .../Matter/src/MatterEndpoints/MatterHumiditySensor.cpp | 4 ++-- .../Matter/src/MatterEndpoints/MatterOccupancySensor.cpp | 2 +- libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp | 2 +- .../Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp | 2 +- .../Matter/src/MatterEndpoints/MatterPressureSensor.cpp | 2 +- .../src/MatterEndpoints/MatterTemperatureSensor.cpp | 4 ++-- 12 files changed, 23 insertions(+), 23 deletions(-) diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp index b67cf6a23b1..6e2a7910433 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp @@ -206,7 +206,7 @@ bool MatterColorLight::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } @@ -256,7 +256,7 @@ bool MatterColorLight::setColorHSV(espHsvColor_t _hsvColor) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (colorHSV.h == _hsvColor.h && colorHSV.s == _hsvColor.s && colorHSV.v == _hsvColor.v) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp index 7bbcb83dcfe..f54203b7928 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp @@ -138,7 +138,7 @@ bool MatterColorTemperatureLight::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } @@ -179,7 +179,7 @@ bool MatterColorTemperatureLight::setBrightness(uint8_t newBrightness) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (brightnessLevel == newBrightness) { return true; } @@ -210,7 +210,7 @@ bool MatterColorTemperatureLight::setColorTemperature(uint16_t newTemperature) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (colorTemperatureLevel == newTemperature) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp index 44ba1c75a44..fb08587c6f6 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp @@ -69,7 +69,7 @@ bool MatterContactSensor::setContact(bool _contactState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (contactState == _contactState) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp index c3991e0c0f3..cd9830be8ac 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp @@ -114,7 +114,7 @@ bool MatterDimmableLight::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } @@ -155,7 +155,7 @@ bool MatterDimmableLight::setBrightness(uint8_t newBrightness) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (brightnessLevel == newBrightness) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp index 423a6a7d2ef..215e52b4137 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp @@ -226,7 +226,7 @@ bool MatterEnhancedColorLight::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } @@ -267,7 +267,7 @@ bool MatterEnhancedColorLight::setBrightness(uint8_t newBrightness) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (brightnessLevel == newBrightness) { return true; } @@ -298,7 +298,7 @@ bool MatterEnhancedColorLight::setColorTemperature(uint16_t newTemperature) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (colorTemperatureLevel == newTemperature) { return true; } @@ -338,7 +338,7 @@ bool MatterEnhancedColorLight::setColorHSV(espHsvColor_t _hsvColor) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (colorHSV.h == _hsvColor.h && colorHSV.s == _hsvColor.s && colorHSV.v == _hsvColor.v) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp index 8db6a317ead..12de176d176 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp @@ -118,7 +118,7 @@ bool MatterFan::setMode(FanMode_t newMode, bool performUpdate) { log_w("Matter Fan device has not begun."); return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (currentFanMode == newMode) { return true; } @@ -159,7 +159,7 @@ bool MatterFan::setSpeedPercent(uint8_t newPercent, bool performUpdate) { log_w("Matter Fan device has not begun."); return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (currentPercent == newPercent) { return true; } @@ -193,7 +193,7 @@ bool MatterFan::setOnOff(bool newState, bool performUpdate) { log_w("Matter Fan device has not begun."); return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (getOnOff() == newState) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp index 3e911606074..7526b99a7b9 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp @@ -82,7 +82,7 @@ bool MatterHumiditySensor::setRawHumidity(uint16_t _rawHumidity) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (rawHumidity == _rawHumidity) { return true; } @@ -98,7 +98,7 @@ bool MatterHumiditySensor::setRawHumidity(uint16_t _rawHumidity) { bool ret; ret = updateAttributeVal(RelativeHumidityMeasurement::Id, RelativeHumidityMeasurement::Attributes::MeasuredValue::Id, &humidityVal); if (!ret) { - log_e("Failed to update Fan Speed Percent Attribute."); + log_e("Failed to update Humidity Sensor Attribute."); return false; } rawHumidity = _rawHumidity; diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp index d893f14b6bb..ad200bc2ad8 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp @@ -80,7 +80,7 @@ bool MatterOccupancySensor::setOccupancy(bool _occupancyState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (occupancyState == _occupancyState) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp index 3f71ff1eb76..1071b595e5b 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp @@ -94,7 +94,7 @@ bool MatterOnOffLight::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp index 6b5e5e630e0..546da3b04e9 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp @@ -93,7 +93,7 @@ bool MatterOnOffPlugin::setOnOff(bool newState) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (onOffState == newState) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp index a157469c980..f246ea81223 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp @@ -70,7 +70,7 @@ bool MatterPressureSensor::setRawPressure(int16_t _rawPressure) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (rawPressure == _rawPressure) { return true; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp index 4a43650f924..6f59a5b2426 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp @@ -70,7 +70,7 @@ bool MatterTemperatureSensor::setRawTemperature(int16_t _rawTemperature) { return false; } - // avoid processing the a "no-change" + // avoid processing if there was no change if (rawTemperature == _rawTemperature) { return true; } @@ -86,7 +86,7 @@ bool MatterTemperatureSensor::setRawTemperature(int16_t _rawTemperature) { bool ret; ret = updateAttributeVal(TemperatureMeasurement::Id, TemperatureMeasurement::Attributes::MeasuredValue::Id, &temperatureVal); if (!ret) { - log_e("Failed to update Fan Speed Percent Attribute."); + log_e("Failed to update Temperature Sensor Attribute."); return false; } rawTemperature = _rawTemperature; From 1ef1e7dbac6ac040d473e3895472a3483890f182 Mon Sep 17 00:00:00 2001 From: me-no-dev Date: Mon, 16 Dec 2024 14:43:33 +0200 Subject: [PATCH 164/179] fix(version): Update Zigbee Library version --- libraries/Zigbee/library.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Zigbee/library.properties b/libraries/Zigbee/library.properties index 4d66f470378..2b1f041fc94 100644 --- a/libraries/Zigbee/library.properties +++ b/libraries/Zigbee/library.properties @@ -1,5 +1,5 @@ name=Zigbee -version=3.0.5 +version=3.1.0 author=P-R-O-C-H-Y maintainer=Jan Procházka sentence=Enables zigbee connection with the ESP32 From 1dff8bc75953d63c11df0db2a3389511d73e9672 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 10:01:24 -0300 Subject: [PATCH 165/179] feat(matter) adds Identification callback to all matter endpoints --- .../MatterOnIdentify/MatterOnIdentify.ino | 126 ++++++++++++++++++ .../Matter/examples/MatterOnIdentify/ci.json | 7 + libraries/Matter/src/Matter.cpp | 26 +++- libraries/Matter/src/MatterEndPoint.h | 2 + .../src/MatterEndpoints/MatterColorLight.h | 13 ++ .../MatterColorTemperatureLight.h | 14 ++ .../src/MatterEndpoints/MatterContactSensor.h | 13 ++ .../src/MatterEndpoints/MatterDimmableLight.h | 15 +++ .../MatterEnhancedColorLight.h | 13 ++ .../Matter/src/MatterEndpoints/MatterFan.h | 13 ++ .../src/MatterEndpoints/MatterGenericSwitch.h | 13 ++ .../MatterEndpoints/MatterHumiditySensor.h | 13 ++ .../MatterEndpoints/MatterOccupancySensor.h | 13 ++ .../src/MatterEndpoints/MatterOnOffLight.h | 15 +++ .../src/MatterEndpoints/MatterOnOffPlugin.h | 15 +++ .../MatterEndpoints/MatterPressureSensor.h | 13 ++ .../MatterEndpoints/MatterTemperatureSensor.h | 13 ++ 17 files changed, 335 insertions(+), 2 deletions(-) create mode 100644 libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino create mode 100644 libraries/Matter/examples/MatterOnIdentify/ci.json diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino new file mode 100644 index 00000000000..f55a20ae3ab --- /dev/null +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -0,0 +1,126 @@ +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is the smallest code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * It controls a GPIO that could be attached to a LED for visualization. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. + * It demonstrates how to use On Identify callback when the Identify Cluster is called. + * The Matter user APP can be used to request the device to identify itself by blinking the LED. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool matterCB(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + } + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // On Identify Callback - Blink the LED + OnOffLight.onIdentify([](bool identifyIsActive, uint8_t counter) { + log_i("Identify Cluster is %s, counter: %d", identifyIsActive ? "Active" : "Inactive", counter); + if (identifyIsActive) { + // Start Blinking the light + OnOffLight.toggle(); + } else { + // Stop Blinking and restore the light to the its last state + OnOffLight.updateAccessory(); + } + return true; + }); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(matterCB); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + if (!Matter.isDeviceCommissioned()) { + log_i("Matter Node is not commissioned yet."); + log_i("Initiate the device discovery in your Matter environment."); + log_i("Commission it to your Matter hub with the manual pairing code or QR code"); + log_i("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + log_i("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + } +} + +void loop() { + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); +} diff --git a/libraries/Matter/examples/MatterOnIdentify/ci.json b/libraries/Matter/examples/MatterOnIdentify/ci.json new file mode 100644 index 00000000000..556a8a9ee6b --- /dev/null +++ b/libraries/Matter/examples/MatterOnIdentify/ci.json @@ -0,0 +1,7 @@ +{ + "fqbn_append": "PartitionScheme=huge_app", + "requires": [ + "CONFIG_SOC_WIFI_SUPPORTED=y", + "CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y" + ] +} diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 89ef87b4db3..51ab9c91cf1 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -21,6 +21,7 @@ using namespace esp_matter; using namespace esp_matter::attribute; using namespace esp_matter::endpoint; +using namespace esp_matter::identification; using namespace chip::app::Clusters; constexpr auto k_timeout_seconds = 300; @@ -67,8 +68,29 @@ static esp_err_t app_attribute_update_cb( // This callback is invoked when clients interact with the Identify Cluster. // In the callback implementation, an endpoint can identify itself. (e.g., by flashing an LED or light). static esp_err_t app_identification_cb(identification::callback_type_t type, uint16_t endpoint_id, uint8_t effect_id, uint8_t effect_variant, void *priv_data) { - log_i("Identification callback: type: %u, effect: %u, variant: %u", type, effect_id, effect_variant); - return ESP_OK; + log_d("Identification callback to endpoint %d: type: %u, effect: %u, variant: %u", endpoint_id, effect_id, effect_variant); + esp_err_t err = ESP_OK; + MatterEndPoint *ep = (MatterEndPoint *)priv_data; // endpoint pointer to base class + // Identify the endpoint sending a counter to the application + static uint8_t counter = 0; + bool identifyIsActive = false; + + if (type == identification::callback_type_t::START) { + log_v("Identification callback: START"); + counter = 0; + identifyIsActive = true; + } else if (type == identification::callback_type_t::EFFECT) { + log_v("Identification callback: EFFECT"); + counter++; + } else if (type == identification::callback_type_t::STOP) { + identifyIsActive = false; + log_v("Identification callback: STOP"); + } + if (ep != NULL) { + err = ep->endpointIdentifyCB(endpoint_id, identifyIsActive, counter) ? ESP_OK : ESP_FAIL; + } + + return err; } // This callback is invoked for all Matter events. The application can handle the events as required. diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index 99bff8470d3..7f791ff49d9 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -102,6 +102,8 @@ class MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; + // This callback is invoked when clients interact with the Identify Cluster of an specific endpoint. + virtual bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) = 0; protected: uint16_t endpoint_id = 0; }; diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h index 13ff0decbc2..f579d555066 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h @@ -46,6 +46,18 @@ class MatterColorLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -71,5 +83,6 @@ class MatterColorLight : public MatterEndPoint { EndPointOnOffCB _onChangeOnOffCB = NULL; EndPointRGBColorCB _onChangeColorCB = NULL; EndPointCB _onChangeCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h index e886a184182..de51be4a227 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -51,6 +51,18 @@ class MatterColorTemperatureLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -85,5 +97,7 @@ class MatterColorTemperatureLight : public MatterEndPoint { EndPointBrightnessCB _onChangeBrightnessCB = NULL; EndPointTemperatureCB _onChangeTemperatureCB = NULL; EndPointCB _onChangeCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; + }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h index 257da785e53..c4e74d6c30f 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h @@ -46,9 +46,22 @@ class MatterContactSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: bool started = false; bool contactState = false; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h index aacce883277..aeb85fae2b5 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -43,8 +43,22 @@ class MatterDimmableLight : public MatterEndPoint { operator bool(); // returns current on/off light state void operator=(bool state); // turns light on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } + // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { @@ -69,5 +83,6 @@ class MatterDimmableLight : public MatterEndPoint { EndPointOnOffCB _onChangeOnOffCB = NULL; EndPointBrightnessCB _onChangeBrightnessCB = NULL; EndPointCB _onChangeCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h index 66ed1943b8d..599ae55ffa4 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h @@ -56,6 +56,18 @@ class MatterEnhancedColorLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -98,5 +110,6 @@ class MatterEnhancedColorLight : public MatterEndPoint { EndPointRGBColorCB _onChangeColorCB = NULL; EndPointTemperatureCB _onChangeTemperatureCB = NULL; EndPointCB _onChangeCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.h b/libraries/Matter/src/MatterEndpoints/MatterFan.h index 232577b7bef..ba8772fd1be 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.h +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.h @@ -105,6 +105,18 @@ class MatterFan : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } // User Callback for whenever the Fan Mode (state) is changed by the Matter Controller using EndPointModeCB = std::function; @@ -133,6 +145,7 @@ class MatterFan : public MatterEndPoint { EndPointModeCB _onChangeModeCB = NULL; EndPointSpeedCB _onChangeSpeedCB = NULL; EndPointCB _onChangeCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // bitmap for Fan Sequence Modes (OFF, LOW, MEDIUM, HIGH, AUTO) static const uint8_t fanSeqModeOff = 0x01; diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h index 14118462932..895413f2fd3 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h @@ -32,8 +32,21 @@ class MatterGenericSwitch : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: bool started = false; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h index aed758b7b7a..7268947d18d 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h @@ -57,6 +57,18 @@ class MatterHumiditySensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: bool started = false; @@ -65,5 +77,6 @@ class MatterHumiditySensor : public MatterEndPoint { // internal function to set the raw humidity value (Matter Cluster) bool begin(uint16_t _rawHumidity); bool setRawHumidity(uint16_t _rawHumidity); + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h index 30f312a9841..61d4ad1bcb7 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h @@ -57,6 +57,18 @@ class MatterOccupancySensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: // bitmap for Occupancy Sensor Types @@ -69,5 +81,6 @@ class MatterOccupancySensor : public MatterEndPoint { bool started = false; bool occupancyState = false; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h index 6d140a9948e..4b1b5e4eabb 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h @@ -36,8 +36,22 @@ class MatterOnOffLight : public MatterEndPoint { operator bool(); // returns current light state void operator=(bool state); // turns light on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } + // User Callback for whenever the Light state is changed by the Matter Controller using EndPointCB = std::function; void onChange(EndPointCB onChangeCB) { @@ -52,5 +66,6 @@ class MatterOnOffLight : public MatterEndPoint { bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) EndPointCB _onChangeCB = NULL; EndPointCB _onChangeOnOffCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h index 241726a3a46..cf733f4c497 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h @@ -36,8 +36,22 @@ class MatterOnOffPlugin : public MatterEndPoint { operator bool(); // returns current plugin state void operator=(bool state); // turns plugin on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } + // User Callback for whenever the Plugin state is changed by the Matter Controller using EndPointCB = std::function; void onChange(EndPointCB onChangeCB) { @@ -52,5 +66,6 @@ class MatterOnOffPlugin : public MatterEndPoint { bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) EndPointCB _onChangeCB = NULL; EndPointCB _onChangeOnOffCB = NULL; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h index 9fdd90c6ebe..8ff4446c6b7 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h @@ -50,11 +50,24 @@ class MatterPressureSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: bool started = false; // implementation keeps pressure in hPa int16_t rawPressure = 0; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // internal function to set the raw pressure value (Matter Cluster) bool setRawPressure(int16_t _rawPressure); bool begin(int16_t _rawPressure); diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h index 826abac9a2a..cb50dc0ff5d 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h @@ -51,11 +51,24 @@ class MatterTemperatureSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + // this function is invoked when clients interact with the Identify Cluster of an specific endpoint + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } protected: bool started = false; // implementation keeps temperature in 1/100th of a degree, any temperature unit int16_t rawTemperature = 0; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // internal function to set the raw temperature value (Matter Cluster) bool setRawTemperature(int16_t _rawTemperature); bool begin(int16_t _rawTemperature); From c688f3090f5ecb722c6b0ad196bb13bd53ded169 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Mon, 16 Dec 2024 10:48:50 -0300 Subject: [PATCH 166/179] fix(clk_src): Fix error as APLL is not yet supported for P4 --- cores/esp32/esp32-hal-cpu.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/cores/esp32/esp32-hal-cpu.c b/cores/esp32/esp32-hal-cpu.c index e9baf3613c2..1ffde860792 100644 --- a/cores/esp32/esp32-hal-cpu.c +++ b/cores/esp32/esp32-hal-cpu.c @@ -259,18 +259,10 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { if (apb_change_callbacks) { triggerApbChangeCallback(APB_AFTER_CHANGE, capb, apb); } - // clang-format off -#ifdef SOC_CLK_APLL_SUPPORTED +#if defined(SOC_CLK_APLL_SUPPORTED) && !defined(CONFIG_IDF_TARGET_ESP32P4) // APLL not yet supported in ESP32-P4 log_d( "%s: %u / %u = %u Mhz, APB: %u Hz", - (conf.source == SOC_CPU_CLK_SRC_PLL) ? "PLL" - : ((conf.source == SOC_CPU_CLK_SRC_APLL) ? "APLL" - : ((conf.source == SOC_CPU_CLK_SRC_XTAL) ? "XTAL" -#ifdef CONFIG_IDF_TARGET_ESP32P4 - : "17.5M")), -#else - : "8M")), -#endif + (conf.source == SOC_CPU_CLK_SRC_PLL) ? "PLL" : ((conf.source == SOC_CPU_CLK_SRC_APLL) ? "APLL" : ((conf.source == SOC_CPU_CLK_SRC_XTAL) ? "XTAL" : "8M")), conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); #else @@ -279,7 +271,6 @@ bool setCpuFrequencyMhz(uint32_t cpu_freq_mhz) { conf.source_freq_mhz, conf.div, conf.freq_mhz, apb ); #endif - // clang-format on return true; } From 0e22bb4bac0a65719ea56d82ddb4d0b1eee71fd9 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 10:58:49 -0300 Subject: [PATCH 167/179] feat(matter): moved all identify callback to endpoint.h --- .../MatterOnIdentify/MatterOnIdentify.ino | 34 ++++++++++--------- libraries/Matter/src/MatterEndPoint.h | 15 +++++++- .../src/MatterEndpoints/MatterColorLight.h | 13 ------- .../MatterColorTemperatureLight.h | 14 -------- .../src/MatterEndpoints/MatterContactSensor.h | 13 ------- .../src/MatterEndpoints/MatterDimmableLight.h | 13 ------- .../MatterEnhancedColorLight.h | 13 ------- .../Matter/src/MatterEndpoints/MatterFan.h | 13 ------- .../src/MatterEndpoints/MatterGenericSwitch.h | 13 ------- .../MatterEndpoints/MatterHumiditySensor.h | 13 ------- .../MatterEndpoints/MatterOccupancySensor.h | 13 ------- .../src/MatterEndpoints/MatterOnOffLight.h | 13 ------- .../src/MatterEndpoints/MatterOnOffPlugin.h | 13 ------- .../MatterEndpoints/MatterPressureSensor.h | 13 ------- .../MatterEndpoints/MatterTemperatureSensor.h | 13 ------- 15 files changed, 32 insertions(+), 187 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index f55a20ae3ab..9b183e0b175 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -32,6 +32,10 @@ // Single On/Off Light Endpoint - at least one per node MatterOnOffLight OnOffLight; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // Light GPIO that can be controlled by Matter APP #ifdef LED_BUILTIN const uint8_t ledPin = LED_BUILTIN; @@ -48,15 +52,23 @@ bool button_state = false; // false = released | true = pres const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // Matter Protocol Endpoint (On/OFF Light) Callback -bool matterCB(bool state) { +bool onOffLightCallback(bool state) { digitalWrite(ledPin, state ? HIGH : LOW); // This callback must return the success state to Matter core return true; } -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password +bool onIdentifyLightCallback(bool identifyIsActive, uint8_t counter) { + log_i("Identify Cluster is %s, counter: %d", identifyIsActive ? "Active" : "Inactive", counter); + if (identifyIsActive) { + // Start Blinking the light + OnOffLight.toggle(); + } else { + // Stop Blinking and restore the light to the its last state + OnOffLight.updateAccessory(); + } + return true; +} void setup() { // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node @@ -75,20 +87,10 @@ void setup() { OnOffLight.begin(); // On Identify Callback - Blink the LED - OnOffLight.onIdentify([](bool identifyIsActive, uint8_t counter) { - log_i("Identify Cluster is %s, counter: %d", identifyIsActive ? "Active" : "Inactive", counter); - if (identifyIsActive) { - // Start Blinking the light - OnOffLight.toggle(); - } else { - // Stop Blinking and restore the light to the its last state - OnOffLight.updateAccessory(); - } - return true; - }); + OnOffLight.onIdentify(onIdentifyLightCallback); // Associate a callback to the Matter Controller - OnOffLight.onChange(matterCB); + OnOffLight.onChange(onOffLightCallback); // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index 7f791ff49d9..34b59bb18c8 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -103,8 +103,21 @@ class MatterEndPoint { virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; // This callback is invoked when clients interact with the Identify Cluster of an specific endpoint. - virtual bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) = 0; + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + if (_onEndPointIdentifyCB) { + return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + } + return true; + } + // User callaback for the Identify Cluster functionality + using EndPointIdentifyCB = std::function; + void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { + _onEndPointIdentifyCB = onEndPointIdentifyCB; + } + + protected: uint16_t endpoint_id = 0; + EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h index f579d555066..13ff0decbc2 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h @@ -46,18 +46,6 @@ class MatterColorLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -83,6 +71,5 @@ class MatterColorLight : public MatterEndPoint { EndPointOnOffCB _onChangeOnOffCB = NULL; EndPointRGBColorCB _onChangeColorCB = NULL; EndPointCB _onChangeCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h index de51be4a227..e886a184182 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -51,18 +51,6 @@ class MatterColorTemperatureLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -97,7 +85,5 @@ class MatterColorTemperatureLight : public MatterEndPoint { EndPointBrightnessCB _onChangeBrightnessCB = NULL; EndPointTemperatureCB _onChangeTemperatureCB = NULL; EndPointCB _onChangeCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; - }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h index c4e74d6c30f..257da785e53 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.h @@ -46,22 +46,9 @@ class MatterContactSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: bool started = false; bool contactState = false; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h index aeb85fae2b5..838fe364760 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -46,18 +46,6 @@ class MatterDimmableLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -83,6 +71,5 @@ class MatterDimmableLight : public MatterEndPoint { EndPointOnOffCB _onChangeOnOffCB = NULL; EndPointBrightnessCB _onChangeBrightnessCB = NULL; EndPointCB _onChangeCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h index 599ae55ffa4..66ed1943b8d 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h @@ -56,18 +56,6 @@ class MatterEnhancedColorLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; @@ -110,6 +98,5 @@ class MatterEnhancedColorLight : public MatterEndPoint { EndPointRGBColorCB _onChangeColorCB = NULL; EndPointTemperatureCB _onChangeTemperatureCB = NULL; EndPointCB _onChangeCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.h b/libraries/Matter/src/MatterEndpoints/MatterFan.h index ba8772fd1be..232577b7bef 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.h +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.h @@ -105,18 +105,6 @@ class MatterFan : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Fan Mode (state) is changed by the Matter Controller using EndPointModeCB = std::function; @@ -145,7 +133,6 @@ class MatterFan : public MatterEndPoint { EndPointModeCB _onChangeModeCB = NULL; EndPointSpeedCB _onChangeSpeedCB = NULL; EndPointCB _onChangeCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // bitmap for Fan Sequence Modes (OFF, LOW, MEDIUM, HIGH, AUTO) static const uint8_t fanSeqModeOff = 0x01; diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h index 895413f2fd3..14118462932 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.h @@ -32,21 +32,8 @@ class MatterGenericSwitch : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: bool started = false; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h index 7268947d18d..aed758b7b7a 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.h @@ -57,18 +57,6 @@ class MatterHumiditySensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: bool started = false; @@ -77,6 +65,5 @@ class MatterHumiditySensor : public MatterEndPoint { // internal function to set the raw humidity value (Matter Cluster) bool begin(uint16_t _rawHumidity); bool setRawHumidity(uint16_t _rawHumidity); - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h index 61d4ad1bcb7..30f312a9841 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.h @@ -57,18 +57,6 @@ class MatterOccupancySensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: // bitmap for Occupancy Sensor Types @@ -81,6 +69,5 @@ class MatterOccupancySensor : public MatterEndPoint { bool started = false; bool occupancyState = false; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h index 4b1b5e4eabb..b27a2530075 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h @@ -39,18 +39,6 @@ class MatterOnOffLight : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Light state is changed by the Matter Controller using EndPointCB = std::function; @@ -66,6 +54,5 @@ class MatterOnOffLight : public MatterEndPoint { bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) EndPointCB _onChangeCB = NULL; EndPointCB _onChangeOnOffCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h index cf733f4c497..0b66be6c14e 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h @@ -39,18 +39,6 @@ class MatterOnOffPlugin : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } // User Callback for whenever the Plugin state is changed by the Matter Controller using EndPointCB = std::function; @@ -66,6 +54,5 @@ class MatterOnOffPlugin : public MatterEndPoint { bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) EndPointCB _onChangeCB = NULL; EndPointCB _onChangeOnOffCB = NULL; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; }; #endif /* CONFIG_ESP_MATTER_ENABLE_DATA_MODEL */ diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h index 8ff4446c6b7..9fdd90c6ebe 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h @@ -50,24 +50,11 @@ class MatterPressureSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: bool started = false; // implementation keeps pressure in hPa int16_t rawPressure = 0; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // internal function to set the raw pressure value (Matter Cluster) bool setRawPressure(int16_t _rawPressure); bool begin(int16_t _rawPressure); diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h index cb50dc0ff5d..826abac9a2a 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h @@ -51,24 +51,11 @@ class MatterTemperatureSensor : public MatterEndPoint { // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // this function is invoked when clients interact with the Identify Cluster of an specific endpoint - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { - if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); - } - return true; - } - // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; - void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { - _onEndPointIdentifyCB = onEndPointIdentifyCB; - } protected: bool started = false; // implementation keeps temperature in 1/100th of a degree, any temperature unit int16_t rawTemperature = 0; - EndPointIdentifyCB _onEndPointIdentifyCB = NULL; // internal function to set the raw temperature value (Matter Cluster) bool setRawTemperature(int16_t _rawTemperature); bool begin(int16_t _rawTemperature); From 3f7c5976d2fd8f8407546d257a29adaad9faa014 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 11:40:49 -0300 Subject: [PATCH 168/179] feat(matter):replacing code in examples and header files --- .../MatterColorLight/MatterColorLight.ino | 8 ++++---- .../MatterContactSensor.ino | 8 ++++---- .../MatterDimmableLight.ino | 8 ++++---- .../MatterEnhancedColorLight.ino | 8 ++++---- .../Matter/examples/MatterFan/MatterFan.ino | 8 ++++---- .../MatterHumiditySensor.ino | 6 +++--- .../examples/MatterMinimum/MatterMinimum.ino | 12 +++++------ .../MatterOccupancySensor.ino | 6 +++--- .../MatterOnOffLight/MatterOnOffLight.ino | 8 ++++---- .../MatterOnOffPlugin/MatterOnOffPlugin.ino | 8 ++++---- .../MatterPressureSensor.ino | 6 +++--- .../MatterSmartButon/MatterSmartButon.ino | 8 ++++---- .../MatterTemperatureLight.ino | 8 ++++---- .../MatterTemperatureSensor.ino | 8 ++++---- .../src/MatterEndpoints/MatterColorLight.h | 20 +++++++++---------- .../MatterColorTemperatureLight.h | 20 +++++++++---------- .../src/MatterEndpoints/MatterDimmableLight.h | 20 ++++++++++--------- .../MatterEnhancedColorLight.h | 20 +++++++++---------- .../Matter/src/MatterEndpoints/MatterFan.h | 15 +++++++------- .../src/MatterEndpoints/MatterOnOffLight.h | 20 +++++++++++-------- .../src/MatterEndpoints/MatterOnOffPlugin.h | 20 +++++++++++-------- .../MatterEndpoints/MatterPressureSensor.h | 1 + .../MatterEndpoints/MatterTemperatureSensor.h | 1 + 23 files changed, 130 insertions(+), 117 deletions(-) diff --git a/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino index 4f296a684c9..dd1724f602d 100644 --- a/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino +++ b/libraries/Matter/examples/MatterColorLight/MatterColorLight.ino @@ -21,6 +21,10 @@ // Color Light Endpoint MatterColorLight ColorLight; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // it will keep last OnOff & HSV Color state stored, using Preferences Preferences matterPref; const char *onOffPrefKey = "OnOff"; @@ -43,10 +47,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Set the RGB LED Light based on the current state of the Color Light bool setLightState(bool state, espHsvColor_t colorHSV) { diff --git a/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino index 7b4d95a880b..e27f70e613d 100644 --- a/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino +++ b/libraries/Matter/examples/MatterContactSensor/MatterContactSensor.ino @@ -36,6 +36,10 @@ // Matter Contact Sensor Endpoint MatterContactSensor ContactSensor; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // LED will be used to indicate the Contact Sensor state // set your board RGB LED pin here #ifdef RGB_BUILTIN @@ -48,10 +52,6 @@ const uint8_t ledPin = 2; // Set your pin here if your board has not defined LE // set your board USER BUTTON pin here - decommissioning and Manual Contact Sensor toggle button const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Button control uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed diff --git a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino index 7e176803c0a..cb8b8b6f17f 100644 --- a/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino +++ b/libraries/Matter/examples/MatterDimmableLight/MatterDimmableLight.ino @@ -21,6 +21,10 @@ // Dimmable Light Endpoint MatterDimmableLight DimmableLight; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // it will keep last OnOff & Brightness state stored, using Preferences Preferences matterPref; const char *onOffPrefKey = "OnOff"; @@ -43,10 +47,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Set the RGB LED Light based on the current state of the Dimmable Light bool setLightState(bool state, uint8_t brightness) { if (state) { diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino index 5821707a6f7..bd2d13899ca 100644 --- a/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino +++ b/libraries/Matter/examples/MatterEnhancedColorLight/MatterEnhancedColorLight.ino @@ -21,6 +21,10 @@ // Color Light Endpoint MatterEnhancedColorLight EnhancedColorLight; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // It will use HSV color to control all Matter Attribute Changes HsvColor_t currentHSVColor = {0, 0, 0}; @@ -46,10 +50,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Set the RGB LED Light based on the current state of the Enhanced Color Light bool setLightState(bool state, espHsvColor_t colorHSV, uint8_t brighteness, uint16_t temperature_Mireds) { diff --git a/libraries/Matter/examples/MatterFan/MatterFan.ino b/libraries/Matter/examples/MatterFan/MatterFan.ino index 62eaef038ef..3dc0c89fcf4 100644 --- a/libraries/Matter/examples/MatterFan/MatterFan.ino +++ b/libraries/Matter/examples/MatterFan/MatterFan.ino @@ -20,6 +20,10 @@ // Fan Endpoint - On/Off control + Speed Percent Control + Fan Modes MatterFan Fan; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // set your board USER BUTTON pin here - used for toggling On/Off and decommission the Matter Node const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. @@ -41,10 +45,6 @@ const uint8_t dcMotorPin = 2; // Set your pin here if your board has not define #warning "Do not forget to set the RGB LED pin" #endif -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - void fanDCMotorDrive(bool fanState, uint8_t speedPercent) { // drive the Fan DC motor if (fanState == false) { diff --git a/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino b/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino index c4977772c1b..3fcab46c565 100644 --- a/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino +++ b/libraries/Matter/examples/MatterHumiditySensor/MatterHumiditySensor.ino @@ -27,13 +27,13 @@ // Matter Humidity Sensor Endpoint MatterHumiditySensor SimulatedHumiditySensor; -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + // Button control - decommision the Matter Node uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed diff --git a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino index bd1e601c53f..fa2599df6dd 100644 --- a/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino +++ b/libraries/Matter/examples/MatterMinimum/MatterMinimum.ino @@ -28,6 +28,10 @@ // Single On/Off Light Endpoint - at least one per node MatterOnOffLight OnOffLight; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // Light GPIO that can be controlled by Matter APP #ifdef LED_BUILTIN const uint8_t ledPin = LED_BUILTIN; @@ -44,16 +48,12 @@ bool button_state = false; // false = released | true = pres const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission // Matter Protocol Endpoint (On/OFF Light) Callback -bool matterCB(bool state) { +bool onOffLightCallback(bool state) { digitalWrite(ledPin, state ? HIGH : LOW); // This callback must return the success state to Matter core return true; } -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - void setup() { // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node pinMode(buttonPin, INPUT_PULLUP); @@ -71,7 +71,7 @@ void setup() { OnOffLight.begin(); // Associate a callback to the Matter Controller - OnOffLight.onChange(matterCB); + OnOffLight.onChange(onOffLightCallback); // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); diff --git a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino index 7582a423dc0..e88a9a8986b 100644 --- a/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino +++ b/libraries/Matter/examples/MatterOccupancySensor/MatterOccupancySensor.ino @@ -34,13 +34,13 @@ // Matter Occupancy Sensor Endpoint MatterOccupancySensor OccupancySensor; -// set your board USER BUTTON pin here - decommissioning only -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password +// set your board USER BUTTON pin here - decommissioning only +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + // Button control uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed diff --git a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino index 93cc12f901f..5faa0a385b0 100644 --- a/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino +++ b/libraries/Matter/examples/MatterOnOffLight/MatterOnOffLight.ino @@ -17,6 +17,10 @@ #include #include +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // List of Matter Endpoints for this Node // On/Off Light Endpoint MatterOnOffLight OnOffLight; @@ -42,10 +46,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Matter Protocol Endpoint Callback bool setLightOnOff(bool state) { Serial.printf("User Callback :: New Light State = %s\r\n", state ? "ON" : "OFF"); diff --git a/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino index 1950b5bb9f3..d14e2189ec1 100644 --- a/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino +++ b/libraries/Matter/examples/MatterOnOffPlugin/MatterOnOffPlugin.ino @@ -21,6 +21,10 @@ // On/Off Plugin Endpoint MatterOnOffPlugin OnOffPlugin; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // it will keep last OnOff state stored, using Preferences Preferences matterPref; const char *onOffPrefKey = "OnOff"; @@ -41,10 +45,6 @@ uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Matter Protocol Endpoint Callback bool setPluginOnOff(bool state) { Serial.printf("User Callback :: New Plugin State = %s\r\n", state ? "ON" : "OFF"); diff --git a/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino index aa6b28f199f..394a217b87a 100644 --- a/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino +++ b/libraries/Matter/examples/MatterPressureSensor/MatterPressureSensor.ino @@ -27,13 +27,13 @@ // Matter Pressure Sensor Endpoint MatterPressureSensor SimulatedPressureSensor; -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - // WiFi is manually set and started const char *ssid = "your-ssid"; // Change this to your WiFi SSID const char *password = "your-password"; // Change this to your WiFi password +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + // Button control - decommision the Matter Node uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed diff --git a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino index c0c13e31814..f8da970595d 100644 --- a/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino +++ b/libraries/Matter/examples/MatterSmartButon/MatterSmartButon.ino @@ -20,6 +20,10 @@ // Generic Switch Endpoint - works as a smart button with a single click MatterGenericSwitch SmartButton; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // set your board USER BUTTON pin here const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. @@ -29,10 +33,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - void setup() { // Initialize the USER BUTTON (Boot button) GPIO that will act as a smart button or to decommission the Matter Node pinMode(buttonPin, INPUT_PULLUP); diff --git a/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino index 31bb535bf82..b814ba89704 100644 --- a/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino +++ b/libraries/Matter/examples/MatterTemperatureLight/MatterTemperatureLight.ino @@ -21,6 +21,10 @@ // Color Temperature CW/WW Light Endpoint MatterColorTemperatureLight CW_WW_Light; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // it will keep last OnOff & Brightness state stored, using Preferences Preferences matterPref; const char *onOffPrefKey = "OnOff"; @@ -44,10 +48,6 @@ bool button_state = false; // false = released | true = pres const uint32_t debouceTime = 250; // button debouncing time (ms) const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Set the RGB LED Light based on the current state of the Color Temperature Light bool setLightState(bool state, uint8_t brightness, uint16_t temperature_Mireds) { diff --git a/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino index 86055be26ee..e8513f12aaa 100644 --- a/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino +++ b/libraries/Matter/examples/MatterTemperatureSensor/MatterTemperatureSensor.ino @@ -27,6 +27,10 @@ // Matter Temperature Sensor Endpoint MatterTemperatureSensor SimulatedTemperatureSensor; +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + // set your board USER BUTTON pin here - decommissioning button const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. @@ -35,10 +39,6 @@ uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - // Simulate a temperature sensor - add your preferred temperature sensor library code here float getSimulatedTemperature() { // The Endpoint implementation keeps an int16_t as internal value information, diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h index 13ff0decbc2..b896afa9b7a 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.h @@ -37,16 +37,6 @@ class MatterColorLight : public MatterEndPoint { bool setColorHSV(espHsvColor_t hsvColor); // returns true if successful espHsvColor_t getColorHSV(); // returns current HSV Color - // used to update the state of the light using the current Matter Light internal state - // It is necessary to set a user callback function using onChange() to handle the physical light state - void updateAccessory(); - - operator bool(); // returns current on/off light state - void operator=(bool state); // turns light on or off - - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { @@ -64,6 +54,16 @@ class MatterColorLight : public MatterEndPoint { _onChangeCB = onChangeCB; } + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h index e886a184182..539bc386e92 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.h @@ -42,16 +42,6 @@ class MatterColorTemperatureLight : public MatterEndPoint { bool setColorTemperature(uint16_t newTemperature); // returns true if successful uint16_t getColorTemperature(); // returns current temperature - // used to update the state of the light using the current Matter Light internal state - // It is necessary to set a user callback function using onChange() to handle the physical light state - void updateAccessory(); - - operator bool(); // returns current on/off light state - void operator=(bool state); // turns light on or off - - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { @@ -76,6 +66,16 @@ class MatterColorTemperatureLight : public MatterEndPoint { _onChangeCB = onChangeCB; } + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h index aacce883277..04e658d8c0d 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -37,19 +37,12 @@ class MatterDimmableLight : public MatterEndPoint { bool setBrightness(uint8_t newBrightness); // returns true if successful uint8_t getBrightness(); // returns current brightness - // used to update the state of the light using the current Matter Light internal state - // It is necessary to set a user callback function using onChange() to handle the physical light state - void updateAccessory(); - - operator bool(); // returns current on/off light state - void operator=(bool state); // turns light on or off - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // User Callback for whenever the Light On/Off state is changed by the Matter Controller + // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { _onChangeOnOffCB = onChangeCB; } + // User Callback for whenever the Light brightness value [0..255] is changed by the Matter Controller using EndPointBrightnessCB = std::function; void onChangeBrightness(EndPointBrightnessCB onChangeCB) { @@ -62,6 +55,15 @@ class MatterDimmableLight : public MatterEndPoint { _onChangeCB = onChangeCB; } + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + +operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h index 66ed1943b8d..ff6e69e3e65 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.h @@ -47,16 +47,6 @@ class MatterEnhancedColorLight : public MatterEndPoint { bool setColorHSV(espHsvColor_t hsvColor); // returns true if successful espHsvColor_t getColorHSV(); // returns current HSV Color - // used to update the state of the light using the current Matter Light internal state - // It is necessary to set a user callback function using onChange() to handle the physical light state - void updateAccessory(); - - operator bool(); // returns current on/off light state - void operator=(bool state); // turns light on or off - - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); - // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { @@ -87,6 +77,16 @@ class MatterEnhancedColorLight : public MatterEndPoint { _onChangeCB = onChangeCB; } + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current on/off light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.h b/libraries/Matter/src/MatterEndpoints/MatterFan.h index 232577b7bef..a1cd6e42423 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.h +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.h @@ -98,13 +98,6 @@ class MatterFan : public MatterEndPoint { operator uint8_t() { return getSpeedPercent(); } - // sets Fan speed percent - void operator=(uint8_t speedPercent) { - setSpeedPercent(speedPercent); - } - - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); // User Callback for whenever the Fan Mode (state) is changed by the Matter Controller using EndPointModeCB = std::function; @@ -124,6 +117,14 @@ class MatterFan : public MatterEndPoint { _onChangeCB = onChangeCB; } + // sets Fan speed percent + void operator=(uint8_t speedPercent) { + setSpeedPercent(speedPercent); + } + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; uint8_t validFanModes = 0; // bitmap for valid Fan Modes - index of fanModeSequence[] diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h index 6d140a9948e..ec524d2c300 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.h @@ -30,23 +30,27 @@ class MatterOnOffLight : public MatterEndPoint { bool getOnOff(); // returns current light state bool toggle(); // returns true if successful - // used to update the state of the light using the current Matter Light internal state - // It is necessary to set a user callback function using onChange() to handle the physical light state - void updateAccessory(); - - operator bool(); // returns current light state - void operator=(bool state); // turns light on or off - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); // User Callback for whenever the Light state is changed by the Matter Controller using EndPointCB = std::function; void onChange(EndPointCB onChangeCB) { _onChangeCB = onChangeCB; } + + // User Callback for whenever the Light On/Off state is changed by the Matter Controller void onChangeOnOff(EndPointCB onChangeCB) { _onChangeOnOffCB = onChangeCB; } + // used to update the state of the light using the current Matter Light internal state + // It is necessary to set a user callback function using onChange() to handle the physical light state + void updateAccessory(); + + operator bool(); // returns current light state + void operator=(bool state); // turns light on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h index 241726a3a46..f95e127ca98 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h @@ -30,23 +30,27 @@ class MatterOnOffPlugin : public MatterEndPoint { bool getOnOff(); // returns current plugin state bool toggle(); // returns true if successful - // used to update the state of the plugin using the current Matter Plugin internal state - // It is necessary to set a user callback function using onChange() to handle the physical plugin state - void updateAccessory(); - - operator bool(); // returns current plugin state - void operator=(bool state); // turns plugin on or off - // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. - bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); // User Callback for whenever the Plugin state is changed by the Matter Controller using EndPointCB = std::function; void onChange(EndPointCB onChangeCB) { _onChangeCB = onChangeCB; } + + // User Callback for whenever the On/Off state is changed by the Matter Controller void onChangeOnOff(EndPointCB onChangeCB) { _onChangeOnOffCB = onChangeCB; } + // used to update the state of the plugin using the current Matter Plugin internal state + // It is necessary to set a user callback function using onChange() to handle the physical plugin state + void updateAccessory(); + + operator bool(); // returns current plugin state + void operator=(bool state); // turns plugin on or off + + // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. + bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); + protected: bool started = false; bool onOffState = false; // default initial state is off, but it can be changed by begin(bool) diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h index 9fdd90c6ebe..0715c05609d 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.h @@ -39,6 +39,7 @@ class MatterPressureSensor : public MatterEndPoint { double getPressure() { return (double)rawPressure; } + // double conversion operator void operator=(double pressure) { setPressure(pressure); diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h index 826abac9a2a..27c61fdb978 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.h @@ -40,6 +40,7 @@ class MatterTemperatureSensor : public MatterEndPoint { double getTemperature() { return (double)rawTemperature / 100.0; } + // double conversion operator void operator=(double temperature) { setTemperature(temperature); From 43c419e31b1de080ab00c6e33fad323f48222fad Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 14:41:38 +0000 Subject: [PATCH 169/179] ci(pre-commit): Apply automatic fixes --- libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h | 4 ++-- libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h index 04e658d8c0d..4497edd2fe2 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.h @@ -37,7 +37,7 @@ class MatterDimmableLight : public MatterEndPoint { bool setBrightness(uint8_t newBrightness); // returns true if successful uint8_t getBrightness(); // returns current brightness - // User Callback for whenever the Light On/Off state is changed by the Matter Controller + // User Callback for whenever the Light On/Off state is changed by the Matter Controller using EndPointOnOffCB = std::function; void onChangeOnOff(EndPointOnOffCB onChangeCB) { _onChangeOnOffCB = onChangeCB; @@ -59,7 +59,7 @@ class MatterDimmableLight : public MatterEndPoint { // It is necessary to set a user callback function using onChange() to handle the physical light state void updateAccessory(); -operator bool(); // returns current on/off light state + operator bool(); // returns current on/off light state void operator=(bool state); // turns light on or off // this function is called by Matter internal event processor. It could be overwritten by the application, if necessary. bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val); diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h index f95e127ca98..0b05c0944c4 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.h @@ -35,7 +35,7 @@ class MatterOnOffPlugin : public MatterEndPoint { void onChange(EndPointCB onChangeCB) { _onChangeCB = onChangeCB; } - + // User Callback for whenever the On/Off state is changed by the Matter Controller void onChangeOnOff(EndPointCB onChangeCB) { _onChangeOnOffCB = onChangeCB; From cd7a775344ba671dd9c01c930882bd62d5a1d98b Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 11:47:07 -0300 Subject: [PATCH 170/179] fix(matter): missing logged message type value --- libraries/Matter/src/Matter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 51ab9c91cf1..5d125ce6919 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -68,7 +68,7 @@ static esp_err_t app_attribute_update_cb( // This callback is invoked when clients interact with the Identify Cluster. // In the callback implementation, an endpoint can identify itself. (e.g., by flashing an LED or light). static esp_err_t app_identification_cb(identification::callback_type_t type, uint16_t endpoint_id, uint8_t effect_id, uint8_t effect_variant, void *priv_data) { - log_d("Identification callback to endpoint %d: type: %u, effect: %u, variant: %u", endpoint_id, effect_id, effect_variant); + log_d("Identification callback to endpoint %d: type: %u, effect: %u, variant: %u", endpoint_id, type, effect_id, effect_variant); esp_err_t err = ESP_OK; MatterEndPoint *ep = (MatterEndPoint *)priv_data; // endpoint pointer to base class // Identify the endpoint sending a counter to the application From 6f79e034495f6f8cea24ade0933810b336b43a23 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 15:48:41 -0300 Subject: [PATCH 171/179] fix(matter): fixes identify and double begin() call --- .../MatterOnIdentify/MatterOnIdentify.ino | 58 +++++++++++++++---- libraries/Matter/src/Matter.cpp | 10 +--- libraries/Matter/src/MatterEndPoint.h | 6 +- .../src/MatterEndpoints/MatterColorLight.cpp | 7 ++- .../MatterColorTemperatureLight.cpp | 27 +++++---- .../MatterEndpoints/MatterContactSensor.cpp | 5 ++ .../MatterEndpoints/MatterDimmableLight.cpp | 6 +- .../MatterEnhancedColorLight.cpp | 7 ++- .../Matter/src/MatterEndpoints/MatterFan.cpp | 7 ++- .../MatterEndpoints/MatterGenericSwitch.cpp | 9 ++- .../MatterEndpoints/MatterHumiditySensor.cpp | 5 ++ .../MatterEndpoints/MatterOccupancySensor.cpp | 5 ++ .../src/MatterEndpoints/MatterOnOffLight.cpp | 7 ++- .../src/MatterEndpoints/MatterOnOffPlugin.cpp | 7 ++- .../MatterEndpoints/MatterPressureSensor.cpp | 5 ++ .../MatterTemperatureSensor.cpp | 5 ++ 16 files changed, 134 insertions(+), 42 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 9b183e0b175..933b5a72367 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -51,6 +51,11 @@ uint32_t button_time_stamp = 0; // debouncing control bool button_state = false; // false = released | true = pressed const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission +// Identify Flag and blink time - Blink the LED +const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed +volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state +bool identifyBlink = false; // Blink state when in Identify state + // Matter Protocol Endpoint (On/OFF Light) Callback bool onOffLightCallback(bool state) { digitalWrite(ledPin, state ? HIGH : LOW); @@ -58,14 +63,19 @@ bool onOffLightCallback(bool state) { return true; } -bool onIdentifyLightCallback(bool identifyIsActive, uint8_t counter) { - log_i("Identify Cluster is %s, counter: %d", identifyIsActive ? "Active" : "Inactive", counter); +// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined +bool onIdentifyLightCallback(bool identifyIsActive) { + log_i("Identify Cluster is %s", identifyIsActive ? "Active" : "Inactive"); if (identifyIsActive) { - // Start Blinking the light - OnOffLight.toggle(); + // Start Blinking the light in loop() + identifyFlag = true; + identifyBlink = !OnOffLight; // Start with the inverted light state } else { // Stop Blinking and restore the light to the its last state - OnOffLight.updateAccessory(); + identifyFlag = false; + // force returning to the original state by toggling the light twice + OnOffLight.toggle(); + OnOffLight.toggle(); } return true; } @@ -76,12 +86,16 @@ void setup() { // Initialize the LED GPIO pinMode(ledPin, OUTPUT); + Serial.begin(115200); + // Manually connect to WiFi WiFi.begin(ssid, password); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); + Serial.print("."); } + Serial.println(); // Initialize at least one Matter EndPoint OnOffLight.begin(); @@ -95,16 +109,38 @@ void setup() { // Matter beginning - Last step, after all EndPoints are initialized Matter.begin(); + // Check Matter Accessory Commissioning state, which may change during execution of loop() if (!Matter.isDeviceCommissioned()) { - log_i("Matter Node is not commissioned yet."); - log_i("Initiate the device discovery in your Matter environment."); - log_i("Commission it to your Matter hub with the manual pairing code or QR code"); - log_i("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - log_i("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); } } void loop() { + // check if the Ligth is in identify state and blink it every 500ms (delay loop time) + if (identifyFlag) { +#ifdef LED_BUILTIN + uint8_t brightness = 32 * identifyBlink; + rgbLedWrite(identifyLedPin, brightness, 0, 0); +#else + digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); +#endif + identifyBlink = !identifyBlink; + } + // Check if the button has been pressed if (digitalRead(buttonPin) == LOW && !button_state) { // deals with button debouncing @@ -124,5 +160,5 @@ void loop() { button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } - delay(500); + delay(500); // works as a debounce for the button and also for the LED blink } diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 5d125ce6919..1c80bff941e 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -30,11 +30,6 @@ static bool _matter_has_started = false; static node::config_t node_config; static node_t *deviceNode = NULL; -typedef void *app_driver_handle_t; -esp_err_t matter_light_attribute_update( - app_driver_handle_t driver_handle, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val -); - // This callback is called for every attribute update. The callback implementation shall // handle the desired attributes and return an appropriate error code. If the attribute // is not of your interest, please do not return an error code and strictly return ESP_OK. @@ -72,22 +67,19 @@ static esp_err_t app_identification_cb(identification::callback_type_t type, uin esp_err_t err = ESP_OK; MatterEndPoint *ep = (MatterEndPoint *)priv_data; // endpoint pointer to base class // Identify the endpoint sending a counter to the application - static uint8_t counter = 0; bool identifyIsActive = false; if (type == identification::callback_type_t::START) { log_v("Identification callback: START"); - counter = 0; identifyIsActive = true; } else if (type == identification::callback_type_t::EFFECT) { log_v("Identification callback: EFFECT"); - counter++; } else if (type == identification::callback_type_t::STOP) { identifyIsActive = false; log_v("Identification callback: STOP"); } if (ep != NULL) { - err = ep->endpointIdentifyCB(endpoint_id, identifyIsActive, counter) ? ESP_OK : ESP_FAIL; + err = ep->endpointIdentifyCB(endpoint_id, identifyIsActive) ? ESP_OK : ESP_FAIL; } return err; diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index 34b59bb18c8..f269b713a5e 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -103,14 +103,14 @@ class MatterEndPoint { virtual bool attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) = 0; // This callback is invoked when clients interact with the Identify Cluster of an specific endpoint. - bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled, uint8_t identifyCounter) { + bool endpointIdentifyCB(uint16_t endpoint_id, bool identifyIsEnabled) { if (_onEndPointIdentifyCB) { - return _onEndPointIdentifyCB(identifyIsEnabled, identifyCounter); + return _onEndPointIdentifyCB(identifyIsEnabled); } return true; } // User callaback for the Identify Cluster functionality - using EndPointIdentifyCB = std::function; + using EndPointIdentifyCB = std::function; void onIdentify(EndPointIdentifyCB onEndPointIdentifyCB) { _onEndPointIdentifyCB = onEndPointIdentifyCB; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp index 6e2a7910433..eaaf0bf2ffe 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterColorLight.cpp @@ -162,8 +162,13 @@ MatterColorLight::~MatterColorLight() { bool MatterColorLight::begin(bool initialState, espHsvColor_t _colorHSV) { ArduinoMatter::_init(); - rgb_color_light::config_t light_config; + if (getEndPointId() != 0) { + log_e("Matter RGB Color Light with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + rgb_color_light::config_t light_config; light_config.on_off.on_off = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; onOffState = initialState; diff --git a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp index f54203b7928..5ef69749bb1 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterColorTemperatureLight.cpp @@ -26,17 +26,17 @@ using namespace chip::app::Clusters; bool MatterColorTemperatureLight::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id, esp_matter_attr_val_t *val) { bool ret = true; if (!started) { - log_e("Matter CW_WW Light device has not begun."); + log_e("Matter Temperature Light device has not begun."); return false; } - log_d("CW_WW Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); + log_d("Temperature Attr update callback: endpoint: %u, cluster: %u, attribute: %u, val: %u", endpoint_id, cluster_id, attribute_id, val->val.u32); if (endpoint_id == getEndPointId()) { switch (cluster_id) { case OnOff::Id: if (attribute_id == OnOff::Attributes::OnOff::Id) { - log_d("CW_WW Light On/Off State changed to %d", val->val.b); + log_d("Temperature Light On/Off State changed to %d", val->val.b); if (_onChangeOnOffCB != NULL) { ret &= _onChangeOnOffCB(val->val.b); } @@ -50,7 +50,7 @@ bool MatterColorTemperatureLight::attributeChangeCB(uint16_t endpoint_id, uint32 break; case LevelControl::Id: if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { - log_d("CW_WW Light Brightness changed to %d", val->val.u8); + log_d("Temperature Light Brightness changed to %d", val->val.u8); if (_onChangeBrightnessCB != NULL) { ret &= _onChangeBrightnessCB(val->val.u8); } @@ -64,7 +64,7 @@ bool MatterColorTemperatureLight::attributeChangeCB(uint16_t endpoint_id, uint32 break; case ColorControl::Id: if (attribute_id == ColorControl::Attributes::ColorTemperatureMireds::Id) { - log_d("CW_WW Light Temperature changed to %d", val->val.u16); + log_d("Temperature Light Temperature changed to %d", val->val.u16); if (_onChangeTemperatureCB != NULL) { ret &= _onChangeTemperatureCB(val->val.u16); } @@ -89,8 +89,13 @@ MatterColorTemperatureLight::~MatterColorTemperatureLight() { bool MatterColorTemperatureLight::begin(bool initialState, uint8_t brightness, uint16_t ColorTemperature) { ArduinoMatter::_init(); - color_temperature_light::config_t light_config; + if (getEndPointId() != 0) { + log_e("Matter Temperature Light with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + color_temperature_light::config_t light_config; light_config.on_off.on_off = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; onOffState = initialState; @@ -108,12 +113,12 @@ bool MatterColorTemperatureLight::begin(bool initialState, uint8_t brightness, u // endpoint handles can be used to add/modify clusters. endpoint_t *endpoint = color_temperature_light::create(node::get(), &light_config, ENDPOINT_FLAG_NONE, (void *)this); if (endpoint == nullptr) { - log_e("Failed to create CW_WW light endpoint"); + log_e("Failed to create Temperature Light endpoint"); return false; } setEndPointId(endpoint::get_id(endpoint)); - log_i("CW_WW Light created with endpoint_id %d", getEndPointId()); + log_i("Temperature Light created with endpoint_id %d", getEndPointId()); /* Mark deferred persistence for some attributes that might be changed rapidly */ cluster_t *level_control_cluster = cluster::get(endpoint, LevelControl::Id); @@ -134,7 +139,7 @@ void MatterColorTemperatureLight::end() { bool MatterColorTemperatureLight::setOnOff(bool newState) { if (!started) { - log_e("Matter CW_WW Light device has not begun."); + log_e("Matter Temperature Light device has not begun."); return false; } @@ -175,7 +180,7 @@ bool MatterColorTemperatureLight::toggle() { bool MatterColorTemperatureLight::setBrightness(uint8_t newBrightness) { if (!started) { - log_w("Matter CW_WW Light device has not begun."); + log_w("Matter Temperature Light device has not begun."); return false; } @@ -206,7 +211,7 @@ uint8_t MatterColorTemperatureLight::getBrightness() { bool MatterColorTemperatureLight::setColorTemperature(uint16_t newTemperature) { if (!started) { - log_w("Matter CW_WW Light device has not begun."); + log_w("Matter Temperature Light device has not begun."); return false; } diff --git a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp index fb08587c6f6..17b0fe7a247 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterContactSensor.cpp @@ -43,6 +43,11 @@ MatterContactSensor::~MatterContactSensor() { bool MatterContactSensor::begin(bool _contactState) { ArduinoMatter::_init(); + if (getEndPointId() != 0) { + log_e("Matter Contact Sensor with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + contact_sensor::config_t contact_sensor_config; contact_sensor_config.boolean_state.state_value = _contactState; diff --git a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp index cd9830be8ac..9f6f872ca3e 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterDimmableLight.cpp @@ -75,8 +75,12 @@ MatterDimmableLight::~MatterDimmableLight() { bool MatterDimmableLight::begin(bool initialState, uint8_t brightness) { ArduinoMatter::_init(); - dimmable_light::config_t light_config; + if (getEndPointId() != 0) { + log_e("Matter Dimmable Light with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + dimmable_light::config_t light_config; light_config.on_off.on_off = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; onOffState = initialState; diff --git a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp index 215e52b4137..022e62654df 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterEnhancedColorLight.cpp @@ -178,8 +178,13 @@ MatterEnhancedColorLight::~MatterEnhancedColorLight() { bool MatterEnhancedColorLight::begin(bool initialState, espHsvColor_t _colorHSV, uint8_t brightness, uint16_t ColorTemperature) { ArduinoMatter::_init(); - enhanced_color_light::config_t light_config; + if (getEndPointId() != 0) { + log_e("Matter Enhanced ColorLight with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + enhanced_color_light::config_t light_config; light_config.on_off.on_off = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; onOffState = initialState; diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp index 12de176d176..f81d49f22a7 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp @@ -85,7 +85,12 @@ bool MatterFan::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uin bool MatterFan::begin(uint8_t percent, FanMode_t fanMode, FanModeSequence_t fanModeSeq) { ArduinoMatter::_init(); - // endpoint handles can be used to add/modify clusters. + if (getEndPointId() != 0) { + log_e("Matter Fan with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + // endpoint handles can be used to add/modify clusters. fan::config_t fan_config; fan_config.fan_control.fan_mode = fanMode; fan_config.fan_control.percent_current = percent; diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp index bbf72af0a95..c8f2c4ec444 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp @@ -42,12 +42,17 @@ bool MatterGenericSwitch::attributeChangeCB(uint16_t endpoint_id, uint32_t clust bool MatterGenericSwitch::begin() { ArduinoMatter::_init(); - generic_switch::config_t switch_config; + if (getEndPointId() != 0) { + log_e("Matter Generic Switch with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + generic_switch::config_t switch_config; // endpoint handles can be used to add/modify clusters. endpoint_t *endpoint = generic_switch::create(node::get(), &switch_config, ENDPOINT_FLAG_NONE, (void *)this); if (endpoint == nullptr) { - log_e("Failed to create Generic switch endpoint"); + log_e("Failed to create Generic Switch endpoint"); return false; } // Add group cluster to the switch endpoint diff --git a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp index 7526b99a7b9..d31d0e43728 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterHumiditySensor.cpp @@ -43,6 +43,11 @@ MatterHumiditySensor::~MatterHumiditySensor() { bool MatterHumiditySensor::begin(uint16_t _rawHumidity) { ArduinoMatter::_init(); + if (getEndPointId() != 0) { + log_e("Matter Humidity Sensor with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + // is it a valid percentage value? if (_rawHumidity > 10000) { log_e("Humidity Sensor Percentage value out of range [0..100]."); diff --git a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp index ad200bc2ad8..0d55c37708a 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp @@ -52,6 +52,11 @@ MatterOccupancySensor::~MatterOccupancySensor() { bool MatterOccupancySensor::begin(bool _occupancyState, OccupancySensorType_t _occupancySensorType) { ArduinoMatter::_init(); + if (getEndPointId() != 0) { + log_e("Matter Occupancy Sensor with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + occupancy_sensor::config_t occupancy_sensor_config; occupancy_sensor_config.occupancy_sensing.occupancy = _occupancyState; occupancy_sensor_config.occupancy_sensing.occupancy_sensor_type = _occupancySensorType; diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp index 1071b595e5b..3faba821528 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffLight.cpp @@ -59,8 +59,13 @@ MatterOnOffLight::~MatterOnOffLight() { bool MatterOnOffLight::begin(bool initialState) { ArduinoMatter::_init(); - on_off_light::config_t light_config; + if (getEndPointId() != 0) { + log_e("Matter On-Off Light with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + on_off_light::config_t light_config; light_config.on_off.on_off = initialState; light_config.on_off.lighting.start_up_on_off = nullptr; onOffState = initialState; diff --git a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp index 546da3b04e9..9b08958684c 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp @@ -59,8 +59,13 @@ MatterOnOffPlugin::~MatterOnOffPlugin() { bool MatterOnOffPlugin::begin(bool initialState) { ArduinoMatter::_init(); - on_off_plugin_unit::config_t plugin_config; + if (getEndPointId() != 0) { + log_e("Matter On-Off Plugin with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + + on_off_plugin_unit::config_t plugin_config; plugin_config.on_off.on_off = initialState; plugin_config.on_off.lighting.start_up_on_off = nullptr; diff --git a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp index f246ea81223..86d245d4041 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp @@ -42,6 +42,11 @@ MatterPressureSensor::~MatterPressureSensor() { bool MatterPressureSensor::begin(int16_t _rawPressure) { ArduinoMatter::_init(); + if (getEndPointId() != 0) { + log_e("Matter Pressure Sensor with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + pressure_sensor::config_t pressure_sensor_config; pressure_sensor_config.pressure_measurement.pressure_measured_value = _rawPressure; pressure_sensor_config.pressure_measurement.pressure_min_measured_value = nullptr; diff --git a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp index 6f59a5b2426..903e6b98d98 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterTemperatureSensor.cpp @@ -42,6 +42,11 @@ MatterTemperatureSensor::~MatterTemperatureSensor() { bool MatterTemperatureSensor::begin(int16_t _rawTemperature) { ArduinoMatter::_init(); + if (getEndPointId() != 0) { + log_e("Temperature Sensor with Endpoint Id %d device has already been created.", getEndPointId()); + return false; + } + temperature_sensor::config_t temperature_sensor_config; temperature_sensor_config.temperature_measurement.measured_value = _rawTemperature; temperature_sensor_config.temperature_measurement.min_measured_value = nullptr; From 7302be97925072e87a3fa927c387e5082ee41b38 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 15:50:59 -0300 Subject: [PATCH 172/179] fix(matter): log_i() leftover --- libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 933b5a72367..8a9da918443 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -65,7 +65,7 @@ bool onOffLightCallback(bool state) { // Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined bool onIdentifyLightCallback(bool identifyIsActive) { - log_i("Identify Cluster is %s", identifyIsActive ? "Active" : "Inactive"); + Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); if (identifyIsActive) { // Start Blinking the light in loop() identifyFlag = true; From 1ef603aab7a47d58db94bfe48473404a7e03674f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:13:45 +0000 Subject: [PATCH 173/179] ci(pre-commit): Apply automatic fixes --- .../MatterOnIdentify/MatterOnIdentify.ino | 328 +++++++++--------- libraries/Matter/src/Matter.cpp | 2 +- libraries/Matter/src/MatterEndPoint.h | 1 - .../Matter/src/MatterEndpoints/MatterFan.cpp | 4 +- .../MatterEndpoints/MatterGenericSwitch.cpp | 2 +- 5 files changed, 168 insertions(+), 169 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 8a9da918443..6dce8d863a6 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -1,164 +1,164 @@ -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * This example is the smallest code that will create a Matter Device which can be - * commissioned and controlled from a Matter Environment APP. - * It controls a GPIO that could be attached to a LED for visualization. - * Additionally the ESP32 will send debug messages indicating the Matter activity. - * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. - * - * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. - * It demonstrates how to use On Identify callback when the Identify Cluster is called. - * The Matter user APP can be used to request the device to identify itself by blinking the LED. - */ - -// Matter Manager -#include -#include - -// List of Matter Endpoints for this Node -// Single On/Off Light Endpoint - at least one per node -MatterOnOffLight OnOffLight; - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Light GPIO that can be controlled by Matter APP -#ifdef LED_BUILTIN -const uint8_t ledPin = LED_BUILTIN; -#else -const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN -#endif - -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// Button control - decommision the Matter Node -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -// Identify Flag and blink time - Blink the LED -const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed -volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state -bool identifyBlink = false; // Blink state when in Identify state - -// Matter Protocol Endpoint (On/OFF Light) Callback -bool onOffLightCallback(bool state) { - digitalWrite(ledPin, state ? HIGH : LOW); - // This callback must return the success state to Matter core - return true; -} - -// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined -bool onIdentifyLightCallback(bool identifyIsActive) { - Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); - if (identifyIsActive) { - // Start Blinking the light in loop() - identifyFlag = true; - identifyBlink = !OnOffLight; // Start with the inverted light state - } else { - // Stop Blinking and restore the light to the its last state - identifyFlag = false; - // force returning to the original state by toggling the light twice - OnOffLight.toggle(); - OnOffLight.toggle(); - } - return true; -} - -void setup() { - // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - pinMode(buttonPin, INPUT_PULLUP); - // Initialize the LED GPIO - pinMode(ledPin, OUTPUT); - - Serial.begin(115200); - - // Manually connect to WiFi - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println(); - - // Initialize at least one Matter EndPoint - OnOffLight.begin(); - - // On Identify Callback - Blink the LED - OnOffLight.onIdentify(onIdentifyLightCallback); - - // Associate a callback to the Matter Controller - OnOffLight.onChange(onOffLightCallback); - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - - // Check Matter Accessory Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Occupancy Sensor Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } -} - -void loop() { - // check if the Ligth is in identify state and blink it every 500ms (delay loop time) - if (identifyFlag) { -#ifdef LED_BUILTIN - uint8_t brightness = 32 * identifyBlink; - rgbLedWrite(identifyLedPin, brightness, 0, 0); -#else - digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); -#endif - identifyBlink = !identifyBlink; - } - - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - if (digitalRead(buttonPin) == HIGH && button_state) { - button_state = false; // released - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so - } - - delay(500); // works as a debounce for the button and also for the LED blink -} +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is the smallest code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * It controls a GPIO that could be attached to a LED for visualization. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. + * It demonstrates how to use On Identify callback when the Identify Cluster is called. + * The Matter user APP can be used to request the device to identify itself by blinking the LED. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Identify Flag and blink time - Blink the LED +const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed +volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state +bool identifyBlink = false; // Blink state when in Identify state + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool onOffLightCallback(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined +bool onIdentifyLightCallback(bool identifyIsActive) { + Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); + if (identifyIsActive) { + // Start Blinking the light in loop() + identifyFlag = true; + identifyBlink = !OnOffLight; // Start with the inverted light state + } else { + // Stop Blinking and restore the light to the its last state + identifyFlag = false; + // force returning to the original state by toggling the light twice + OnOffLight.toggle(); + OnOffLight.toggle(); + } + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // On Identify Callback - Blink the LED + OnOffLight.onIdentify(onIdentifyLightCallback); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(onOffLightCallback); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + // check if the Ligth is in identify state and blink it every 500ms (delay loop time) + if (identifyFlag) { +#ifdef LED_BUILTIN + uint8_t brightness = 32 * identifyBlink; + rgbLedWrite(identifyLedPin, brightness, 0, 0); +#else + digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); +#endif + identifyBlink = !identifyBlink; + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); // works as a debounce for the button and also for the LED blink +} diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 1c80bff941e..af7c4c8657e 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -81,7 +81,7 @@ static esp_err_t app_identification_cb(identification::callback_type_t type, uin if (ep != NULL) { err = ep->endpointIdentifyCB(endpoint_id, identifyIsActive) ? ESP_OK : ESP_FAIL; } - + return err; } diff --git a/libraries/Matter/src/MatterEndPoint.h b/libraries/Matter/src/MatterEndPoint.h index f269b713a5e..6f99aa7cd33 100644 --- a/libraries/Matter/src/MatterEndPoint.h +++ b/libraries/Matter/src/MatterEndPoint.h @@ -115,7 +115,6 @@ class MatterEndPoint { _onEndPointIdentifyCB = onEndPointIdentifyCB; } - protected: uint16_t endpoint_id = 0; EndPointIdentifyCB _onEndPointIdentifyCB = NULL; diff --git a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp index f81d49f22a7..1647490aa05 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterFan.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterFan.cpp @@ -85,12 +85,12 @@ bool MatterFan::attributeChangeCB(uint16_t endpoint_id, uint32_t cluster_id, uin bool MatterFan::begin(uint8_t percent, FanMode_t fanMode, FanModeSequence_t fanModeSeq) { ArduinoMatter::_init(); - if (getEndPointId() != 0) { + if (getEndPointId() != 0) { log_e("Matter Fan with Endpoint Id %d device has already been created.", getEndPointId()); return false; } - // endpoint handles can be used to add/modify clusters. + // endpoint handles can be used to add/modify clusters. fan::config_t fan_config; fan_config.fan_control.fan_mode = fanMode; fan_config.fan_control.percent_current = percent; diff --git a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp index c8f2c4ec444..e20479af088 100644 --- a/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp +++ b/libraries/Matter/src/MatterEndpoints/MatterGenericSwitch.cpp @@ -43,7 +43,7 @@ bool MatterGenericSwitch::attributeChangeCB(uint16_t endpoint_id, uint32_t clust bool MatterGenericSwitch::begin() { ArduinoMatter::_init(); - if (getEndPointId() != 0) { + if (getEndPointId() != 0) { log_e("Matter Generic Switch with Endpoint Id %d device has already been created.", getEndPointId()); return false; } From 017f2df8efb8a58966f945962cb30f86452ff6d0 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 16:19:47 -0300 Subject: [PATCH 174/179] fix(matter): ci codespell --- .../MatterOnIdentify/MatterOnIdentify.ino | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 6dce8d863a6..f8f708ed5b2 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -1,3 +1,4 @@ +<<<<<<< Updated upstream // Copyright 2024 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -162,3 +163,169 @@ void loop() { delay(500); // works as a debounce for the button and also for the LED blink } +======= +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is the smallest code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * It controls a GPIO that could be attached to a LED for visualization. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. + * It demonstrates how to use On Identify callback when the Identify Cluster is called. + * The Matter user APP can be used to request the device to identify itself by blinking the LED. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Identify Flag and blink time - Blink the LED +const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed +volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state +bool identifyBlink = false; // Blink state when in Identify state + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool onOffLightCallback(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined +bool onIdentifyLightCallback(bool identifyIsActive) { + Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); + if (identifyIsActive) { + // Start Blinking the light in loop() + identifyFlag = true; + identifyBlink = !OnOffLight; // Start with the inverted light state + } else { + // Stop Blinking and restore the light to the its last state + identifyFlag = false; + // force returning to the original state by toggling the light twice + OnOffLight.toggle(); + OnOffLight.toggle(); + } + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // On Identify Callback - Blink the LED + OnOffLight.onIdentify(onIdentifyLightCallback); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(onOffLightCallback); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + // check if the Light is in identify state and blink it every 500ms (delay loop time) + if (identifyFlag) { +#ifdef LED_BUILTIN + uint8_t brightness = 32 * identifyBlink; + rgbLedWrite(identifyLedPin, brightness, 0, 0); +#else + digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); +#endif + identifyBlink = !identifyBlink; + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); // works as a debounce for the button and also for the LED blink +} +>>>>>>> Stashed changes From bce01087d282870311b03edfdfa65850b2e8f2c8 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:20:35 +0000 Subject: [PATCH 175/179] ci(pre-commit): Apply automatic fixes --- .../MatterOnIdentify/MatterOnIdentify.ino | 328 +++++++++--------- 1 file changed, 164 insertions(+), 164 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index f8f708ed5b2..2779cb4cda7 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -164,168 +164,168 @@ void loop() { delay(500); // works as a debounce for the button and also for the LED blink } ======= -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * This example is the smallest code that will create a Matter Device which can be - * commissioned and controlled from a Matter Environment APP. - * It controls a GPIO that could be attached to a LED for visualization. - * Additionally the ESP32 will send debug messages indicating the Matter activity. - * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. - * - * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. - * It demonstrates how to use On Identify callback when the Identify Cluster is called. - * The Matter user APP can be used to request the device to identify itself by blinking the LED. - */ - -// Matter Manager -#include -#include - -// List of Matter Endpoints for this Node -// Single On/Off Light Endpoint - at least one per node -MatterOnOffLight OnOffLight; - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Light GPIO that can be controlled by Matter APP -#ifdef LED_BUILTIN -const uint8_t ledPin = LED_BUILTIN; -#else -const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN -#endif - -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// Button control - decommision the Matter Node -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -// Identify Flag and blink time - Blink the LED -const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed -volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state -bool identifyBlink = false; // Blink state when in Identify state - -// Matter Protocol Endpoint (On/OFF Light) Callback -bool onOffLightCallback(bool state) { - digitalWrite(ledPin, state ? HIGH : LOW); - // This callback must return the success state to Matter core - return true; -} - -// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined -bool onIdentifyLightCallback(bool identifyIsActive) { - Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); - if (identifyIsActive) { - // Start Blinking the light in loop() - identifyFlag = true; - identifyBlink = !OnOffLight; // Start with the inverted light state - } else { - // Stop Blinking and restore the light to the its last state - identifyFlag = false; - // force returning to the original state by toggling the light twice - OnOffLight.toggle(); - OnOffLight.toggle(); - } - return true; -} - -void setup() { - // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - pinMode(buttonPin, INPUT_PULLUP); - // Initialize the LED GPIO - pinMode(ledPin, OUTPUT); - - Serial.begin(115200); - - // Manually connect to WiFi - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println(); - - // Initialize at least one Matter EndPoint - OnOffLight.begin(); - - // On Identify Callback - Blink the LED - OnOffLight.onIdentify(onIdentifyLightCallback); - - // Associate a callback to the Matter Controller - OnOffLight.onChange(onOffLightCallback); - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - - // Check Matter Accessory Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Occupancy Sensor Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } -} - -void loop() { - // check if the Light is in identify state and blink it every 500ms (delay loop time) - if (identifyFlag) { -#ifdef LED_BUILTIN - uint8_t brightness = 32 * identifyBlink; - rgbLedWrite(identifyLedPin, brightness, 0, 0); -#else - digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); -#endif - identifyBlink = !identifyBlink; - } - - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - if (digitalRead(buttonPin) == HIGH && button_state) { - button_state = false; // released - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so - } - - delay(500); // works as a debounce for the button and also for the LED blink -} +// Copyright 2024 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* + * This example is the smallest code that will create a Matter Device which can be + * commissioned and controlled from a Matter Environment APP. + * It controls a GPIO that could be attached to a LED for visualization. + * Additionally the ESP32 will send debug messages indicating the Matter activity. + * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. + * + * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. + * It demonstrates how to use On Identify callback when the Identify Cluster is called. + * The Matter user APP can be used to request the device to identify itself by blinking the LED. + */ + +// Matter Manager +#include +#include + +// List of Matter Endpoints for this Node +// Single On/Off Light Endpoint - at least one per node +MatterOnOffLight OnOffLight; + +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password + +// Light GPIO that can be controlled by Matter APP +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#endif + +// set your board USER BUTTON pin here - decommissioning button +const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. + +// Button control - decommision the Matter Node +uint32_t button_time_stamp = 0; // debouncing control +bool button_state = false; // false = released | true = pressed +const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission + +// Identify Flag and blink time - Blink the LED +const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed +volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state +bool identifyBlink = false; // Blink state when in Identify state + +// Matter Protocol Endpoint (On/OFF Light) Callback +bool onOffLightCallback(bool state) { + digitalWrite(ledPin, state ? HIGH : LOW); + // This callback must return the success state to Matter core + return true; +} + +// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined +bool onIdentifyLightCallback(bool identifyIsActive) { + Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); + if (identifyIsActive) { + // Start Blinking the light in loop() + identifyFlag = true; + identifyBlink = !OnOffLight; // Start with the inverted light state + } else { + // Stop Blinking and restore the light to the its last state + identifyFlag = false; + // force returning to the original state by toggling the light twice + OnOffLight.toggle(); + OnOffLight.toggle(); + } + return true; +} + +void setup() { + // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node + pinMode(buttonPin, INPUT_PULLUP); + // Initialize the LED GPIO + pinMode(ledPin, OUTPUT); + + Serial.begin(115200); + + // Manually connect to WiFi + WiFi.begin(ssid, password); + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(); + + // Initialize at least one Matter EndPoint + OnOffLight.begin(); + + // On Identify Callback - Blink the LED + OnOffLight.onIdentify(onIdentifyLightCallback); + + // Associate a callback to the Matter Controller + OnOffLight.onChange(onOffLightCallback); + + // Matter beginning - Last step, after all EndPoints are initialized + Matter.begin(); + + // Check Matter Accessory Commissioning state, which may change during execution of loop() + if (!Matter.isDeviceCommissioned()) { + Serial.println(""); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + // waits for Matter Occupancy Sensor Commissioning. + uint32_t timeCount = 0; + while (!Matter.isDeviceCommissioned()) { + delay(100); + if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec + Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); + } + } + Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); + } +} + +void loop() { + // check if the Light is in identify state and blink it every 500ms (delay loop time) + if (identifyFlag) { +#ifdef LED_BUILTIN + uint8_t brightness = 32 * identifyBlink; + rgbLedWrite(identifyLedPin, brightness, 0, 0); +#else + digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); +#endif + identifyBlink = !identifyBlink; + } + + // Check if the button has been pressed + if (digitalRead(buttonPin) == LOW && !button_state) { + // deals with button debouncing + button_time_stamp = millis(); // record the time while the button is pressed. + button_state = true; // pressed. + } + + if (digitalRead(buttonPin) == HIGH && button_state) { + button_state = false; // released + } + + // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node + uint32_t time_diff = millis() - button_time_stamp; + if (button_state && time_diff > decommissioningTimeout) { + Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); + Matter.decommission(); + button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so + } + + delay(500); // works as a debounce for the button and also for the LED blink +} >>>>>>> Stashed changes From e2dc5b60f351c943b6c6f0a95135545f5a3aae05 Mon Sep 17 00:00:00 2001 From: Rodrigo Garcia Date: Mon, 16 Dec 2024 16:28:51 -0300 Subject: [PATCH 176/179] fix(matter): stashing merge error --- .../MatterOnIdentify/MatterOnIdentify.ino | 167 ------------------ 1 file changed, 167 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 2779cb4cda7..47183241c17 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -1,169 +1,3 @@ -<<<<<<< Updated upstream -// Copyright 2024 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/* - * This example is the smallest code that will create a Matter Device which can be - * commissioned and controlled from a Matter Environment APP. - * It controls a GPIO that could be attached to a LED for visualization. - * Additionally the ESP32 will send debug messages indicating the Matter activity. - * Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages. - * - * This example is a simple Matter On/Off Light that can be controlled by a Matter Controller. - * It demonstrates how to use On Identify callback when the Identify Cluster is called. - * The Matter user APP can be used to request the device to identify itself by blinking the LED. - */ - -// Matter Manager -#include -#include - -// List of Matter Endpoints for this Node -// Single On/Off Light Endpoint - at least one per node -MatterOnOffLight OnOffLight; - -// WiFi is manually set and started -const char *ssid = "your-ssid"; // Change this to your WiFi SSID -const char *password = "your-password"; // Change this to your WiFi password - -// Light GPIO that can be controlled by Matter APP -#ifdef LED_BUILTIN -const uint8_t ledPin = LED_BUILTIN; -#else -const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN -#endif - -// set your board USER BUTTON pin here - decommissioning button -const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button. - -// Button control - decommision the Matter Node -uint32_t button_time_stamp = 0; // debouncing control -bool button_state = false; // false = released | true = pressed -const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission - -// Identify Flag and blink time - Blink the LED -const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed -volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state -bool identifyBlink = false; // Blink state when in Identify state - -// Matter Protocol Endpoint (On/OFF Light) Callback -bool onOffLightCallback(bool state) { - digitalWrite(ledPin, state ? HIGH : LOW); - // This callback must return the success state to Matter core - return true; -} - -// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined -bool onIdentifyLightCallback(bool identifyIsActive) { - Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive"); - if (identifyIsActive) { - // Start Blinking the light in loop() - identifyFlag = true; - identifyBlink = !OnOffLight; // Start with the inverted light state - } else { - // Stop Blinking and restore the light to the its last state - identifyFlag = false; - // force returning to the original state by toggling the light twice - OnOffLight.toggle(); - OnOffLight.toggle(); - } - return true; -} - -void setup() { - // Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node - pinMode(buttonPin, INPUT_PULLUP); - // Initialize the LED GPIO - pinMode(ledPin, OUTPUT); - - Serial.begin(115200); - - // Manually connect to WiFi - WiFi.begin(ssid, password); - // Wait for connection - while (WiFi.status() != WL_CONNECTED) { - delay(500); - Serial.print("."); - } - Serial.println(); - - // Initialize at least one Matter EndPoint - OnOffLight.begin(); - - // On Identify Callback - Blink the LED - OnOffLight.onIdentify(onIdentifyLightCallback); - - // Associate a callback to the Matter Controller - OnOffLight.onChange(onOffLightCallback); - - // Matter beginning - Last step, after all EndPoints are initialized - Matter.begin(); - - // Check Matter Accessory Commissioning state, which may change during execution of loop() - if (!Matter.isDeviceCommissioned()) { - Serial.println(""); - Serial.println("Matter Node is not commissioned yet."); - Serial.println("Initiate the device discovery in your Matter environment."); - Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); - Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); - Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); - // waits for Matter Occupancy Sensor Commissioning. - uint32_t timeCount = 0; - while (!Matter.isDeviceCommissioned()) { - delay(100); - if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec - Serial.println("Matter Node not commissioned yet. Waiting for commissioning."); - } - } - Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use."); - } -} - -void loop() { - // check if the Ligth is in identify state and blink it every 500ms (delay loop time) - if (identifyFlag) { -#ifdef LED_BUILTIN - uint8_t brightness = 32 * identifyBlink; - rgbLedWrite(identifyLedPin, brightness, 0, 0); -#else - digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); -#endif - identifyBlink = !identifyBlink; - } - - // Check if the button has been pressed - if (digitalRead(buttonPin) == LOW && !button_state) { - // deals with button debouncing - button_time_stamp = millis(); // record the time while the button is pressed. - button_state = true; // pressed. - } - - if (digitalRead(buttonPin) == HIGH && button_state) { - button_state = false; // released - } - - // Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node - uint32_t time_diff = millis() - button_time_stamp; - if (button_state && time_diff > decommissioningTimeout) { - Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again."); - Matter.decommission(); - button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so - } - - delay(500); // works as a debounce for the button and also for the LED blink -} -======= // Copyright 2024 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -328,4 +162,3 @@ void loop() { delay(500); // works as a debounce for the button and also for the LED blink } ->>>>>>> Stashed changes From 71e57eaf52e6d53dcdaeeaa613b91a81234fce01 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:29:30 +0000 Subject: [PATCH 177/179] ci(pre-commit): Apply automatic fixes --- .../Matter/examples/MatterOnIdentify/MatterOnIdentify.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino index 47183241c17..b2e77900e95 100644 --- a/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino +++ b/libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino @@ -69,7 +69,7 @@ bool onIdentifyLightCallback(bool identifyIsActive) { if (identifyIsActive) { // Start Blinking the light in loop() identifyFlag = true; - identifyBlink = !OnOffLight; // Start with the inverted light state + identifyBlink = !OnOffLight; // Start with the inverted light state } else { // Stop Blinking and restore the light to the its last state identifyFlag = false; @@ -136,7 +136,7 @@ void loop() { uint8_t brightness = 32 * identifyBlink; rgbLedWrite(identifyLedPin, brightness, 0, 0); #else - digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); + digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW); #endif identifyBlink = !identifyBlink; } @@ -160,5 +160,5 @@ void loop() { button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so } - delay(500); // works as a debounce for the button and also for the LED blink + delay(500); // works as a debounce for the button and also for the LED blink } From 2fc679151c34f301fe42f3b87b0283c2e38e2ad1 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 17 Dec 2024 09:57:22 -0300 Subject: [PATCH 178/179] ci(debug): Compile once a week with verbose log level --- .github/scripts/on-push.sh | 24 +++++++++++++----------- .github/scripts/sketch_utils.sh | 5 +++++ .github/workflows/push.yml | 30 ++++++++++++++++++++++++++++-- 3 files changed, 46 insertions(+), 13 deletions(-) diff --git a/.github/scripts/on-push.sh b/.github/scripts/on-push.sh index aafc9de0596..6095f88e727 100755 --- a/.github/scripts/on-push.sh +++ b/.github/scripts/on-push.sh @@ -9,8 +9,9 @@ function build { local chunk_index=$2 local chunks_cnt=$3 local build_log=$4 - local sketches_file=$5 - shift 5 + local log_level=${5:-none} + local sketches_file=$6 + shift 6 local sketches=("$@") local BUILD_SKETCH="${SCRIPTS_DIR}/sketch_utils.sh build" @@ -19,7 +20,7 @@ function build { local args=("-ai" "$ARDUINO_IDE_PATH" "-au" "$ARDUINO_USR_PATH" "-t" "$target") if [ "$OS_IS_LINUX" == "1" ]; then - args+=("-p" "$ARDUINO_ESP32_PATH/libraries" "-i" "$chunk_index" "-m" "$chunks_cnt") + args+=("-p" "$ARDUINO_ESP32_PATH/libraries" "-i" "$chunk_index" "-m" "$chunks_cnt" "-d" "$log_level") if [ -n "$sketches_file" ]; then args+=("-f" "$sketches_file") fi @@ -54,7 +55,8 @@ fi CHUNK_INDEX=$1 CHUNKS_CNT=$2 BUILD_LOG=$3 -SKETCHES_FILE=$4 +LOG_LEVEL=$4 +SKETCHES_FILE=$5 if [ "$#" -lt 2 ] || [ "$CHUNKS_CNT" -le 0 ]; then CHUNK_INDEX=0 CHUNKS_CNT=1 @@ -88,13 +90,13 @@ if [ "$BUILD_LOG" -eq 1 ]; then fi #build sketches for different targets -build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" -build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32p4" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32s3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32s2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32c3" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32c6" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32h2" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" +build "esp32" "$CHUNK_INDEX" "$CHUNKS_CNT" "$BUILD_LOG" "$LOG_LEVEL" "$SKETCHES_FILE" "${SKETCHES_ESP32[@]}" if [ "$BUILD_LOG" -eq 1 ]; then #remove last comma from the last JSON object diff --git a/.github/scripts/sketch_utils.sh b/.github/scripts/sketch_utils.sh index 3e6ceb675e9..00d7d1bc232 100755 --- a/.github/scripts/sketch_utils.sh +++ b/.github/scripts/sketch_utils.sh @@ -443,6 +443,11 @@ function build_sketches { # build_sketches > $GITHUB_ENV + elif [ "${{ github.event_name }}" == "schedule" ]; then + echo "LOG_LEVEL=verbose" >> $GITHUB_ENV + else + echo "LOG_LEVEL=none" >> $GITHUB_ENV + fi + - name: Build all sketches if: ${{ needs.gen-chunks.outputs.build_all == 'true' }} - run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ env.MAX_CHUNKS }} 1 + run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ env.MAX_CHUNKS }} 1 ${{ env.LOG_LEVEL }} - name: Download sketches found if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} @@ -175,7 +201,7 @@ jobs: - name: Build selected sketches if: ${{ needs.gen-chunks.outputs.build_all == 'false' && needs.gen-chunks.outputs.build_libraries == 'true' }} - run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ needs.gen-chunks.outputs.chunk_count }} 1 sketches_found.txt + run: bash ./.github/scripts/on-push.sh ${{ matrix.chunk }} ${{ needs.gen-chunks.outputs.chunk_count }} 1 ${{ env.LOG_LEVEL }} sketches_found.txt #Upload cli compile json as artifact - name: Upload cli compile json From 238c384e4ed97cb0b836793e9554fcaae943e5b5 Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Tue, 17 Dec 2024 19:02:24 -0300 Subject: [PATCH 179/179] fix(readme): Update readme and fix badges --- .github/workflows/tests_results.yml | 3 ++- README.md | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests_results.yml b/.github/workflows/tests_results.yml index 4ef338a9e16..947de64ece5 100644 --- a/.github/workflows/tests_results.yml +++ b/.github/workflows/tests_results.yml @@ -149,9 +149,10 @@ jobs: uses: jaywcjlove/generated-badges@v1.0.13 with: label: Runtime Tests - status: ${{ job.status }} + status: ${{ job.status == 'success' && 'passing' || 'failing' }} output: runtime-tests-results/badge.svg color: ${{ job.status == 'success' && 'green' || 'red' }} + style: flat - name: Push badge if: ${{ !cancelled() && (env.original_event == 'schedule' || env.original_event == 'workflow_dispatch') }} # codespell:ignore cancelled diff --git a/README.md b/README.md index 5b1b1865efa..e610229fc60 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Arduino core for the ESP32, ESP32-P4, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2 -[![Build Status](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml/badge.svg?branch=master&event=push)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml) [![External Libraries Test](https://github.com/espressif/arduino-esp32/actions/workflows/lib.yml/badge.svg?branch=master&event=schedule)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md) [![Hardware Tests](https://github.com/espressif/arduino-esp32/blob/gh-pages/runtime-tests-results/badge.svg)](https://github.com/espressif/arduino-esp32/actions/workflows/tests_results.yml) +[![Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=push&label=Compilation%20Tests)](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Apush) +[![Verbose Build Status](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/push.yml?branch=master&event=schedule&label=Compilation%20Tests%20(Verbose))](https://github.com/espressif/arduino-esp32/actions/workflows/push.yml?query=branch%3Amaster+event%3Aschedule) +[![External Libraries Test](https://img.shields.io/github/actions/workflow/status/espressif/arduino-esp32/lib.yml?branch=master&event=schedule&label=External%20Libraries%20Test)](https://github.com/espressif/arduino-esp32/blob/gh-pages/LIBRARIES_TEST.md) +[![Runtime Tests](https://github.com/espressif/arduino-esp32/blob/gh-pages/runtime-tests-results/badge.svg)](https://github.com/espressif/arduino-esp32/actions/workflows/tests_results.yml) ### Need help or have a question? Join the chat at [Gitter](https://gitter.im/espressif/arduino-esp32) or [open a new Discussion](https://github.com/espressif/arduino-esp32/discussions) @@ -16,9 +19,17 @@ ### Development Status -Latest Stable Release [![Release Version](https://img.shields.io/github/release/espressif/arduino-esp32.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/latest/) [![Release Date](https://img.shields.io/github/release-date/espressif/arduino-esp32.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/latest/) [![Downloads](https://img.shields.io/github/downloads/espressif/arduino-esp32/latest/total.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/latest/) +#### Latest Stable Release -Latest Development Release [![Release Version](https://img.shields.io/github/release/espressif/arduino-esp32/all.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/) [![Release Date](https://img.shields.io/github/release-date-pre/espressif/arduino-esp32.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/) [![Downloads](https://img.shields.io/github/downloads-pre/espressif/arduino-esp32/latest/total.svg?style=plastic)](https://github.com/espressif/arduino-esp32/releases/) +[![Release Version](https://img.shields.io/github/release/espressif/arduino-esp32.svg)](https://github.com/espressif/arduino-esp32/releases/latest/) +[![Release Date](https://img.shields.io/github/release-date/espressif/arduino-esp32.svg)](https://github.com/espressif/arduino-esp32/releases/latest/) +[![Downloads](https://img.shields.io/github/downloads/espressif/arduino-esp32/latest/total.svg)](https://github.com/espressif/arduino-esp32/releases/latest/) + +#### Latest Development Release + +[![Release Version](https://img.shields.io/github/release/espressif/arduino-esp32/all.svg)](https://github.com/espressif/arduino-esp32/releases/) +[![Release Date](https://img.shields.io/github/release-date-pre/espressif/arduino-esp32.svg)](https://github.com/espressif/arduino-esp32/releases/) +[![Downloads](https://img.shields.io/github/downloads-pre/espressif/arduino-esp32/latest/total.svg)](https://github.com/espressif/arduino-esp32/releases/) ### Development Planning @@ -59,7 +70,7 @@ Here are the ESP32 series supported by the Arduino-ESP32 project: | ESP32-S3 | Yes | Yes | [ESP32-S3](https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf) | | ESP32-C6 | Yes | Yes | [ESP32-C6](https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf) | | ESP32-H2 | Yes | Yes | [ESP32-H2](https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf) | -| ESP32-P4 | No | Yes | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | +| ESP32-P4 | Yes | Yes | [ESP32-P4](https://www.espressif.com/sites/default/files/documentation/esp32-p4_datasheet_en.pdf) | > [!NOTE] > ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF

    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%0Dx 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�s$i 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

    -{#1_{NtRy91Xy};oh)WgR8`DSbPHQ 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∾=z_RHOdhNg=#{p@l3`pTzWXt48O|IP&Kks`{ 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

c@%M`8kOCSfAE02;A)|o}mDb=%!ntUI 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%0Al!m%GR6?GEa-~T~ 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 z

#YxIe(&Ae)n5Ljc6-uphWzQZ8xhguK&$ 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≪gwIuJsk+_l4o)+1^JG%w2fQtLpOgV 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