From 6a0816ba5698a2ccfc802d57f3fd5e7e18a6157a Mon Sep 17 00:00:00 2001 From: furrtek Date: Fri, 27 May 2016 06:48:04 +0200 Subject: [PATCH] Added carrier wake up in Xylos TX and cute icons --- firmware/Makefile | 2 +- firmware/application/bulb_ignore_bmp.hpp | 47 ++++++ firmware/application/bulb_off_bmp.hpp | 43 +++++ firmware/application/bulb_on_bmp.hpp | 46 ++++++ firmware/application/fox_bmp.hpp | 2 +- firmware/application/main.cpp | 3 + firmware/application/splash.hpp | 5 +- firmware/application/ui_closecall.cpp | 150 +++++++++-------- firmware/application/ui_closecall.hpp | 1 - firmware/application/ui_navigation.cpp | 9 +- firmware/application/ui_xylos.cpp | 161 ++++++++++--------- firmware/application/ui_xylos.hpp | 152 ++++++++++------- firmware/baseband-tx.bin | Bin 33280 -> 33280 bytes firmware/baseband-tx/proc_xylos.cpp | 74 +++++---- firmware/baseband-tx/proc_xylos.hpp | 6 +- firmware/baseband.bin | Bin 33280 -> 33280 bytes firmware/baseband/proc_closecall.cpp | 2 +- firmware/bitmaps/bulb_ignore.bmp | Bin 0 -> 522 bytes firmware/bitmaps/bulb_off.bmp | Bin 0 -> 478 bytes firmware/bitmaps/bulb_on.bmp | Bin 0 -> 510 bytes firmware/bitmaps/fox.bmp | Bin 0 -> 115254 bytes firmware/bitmaps/fox_rle.bmp | Bin 0 -> 11314 bytes firmware/{application => bitmaps}/splash.bmp | Bin firmware/common/lcd_ili9341.cpp | 104 ++++++++---- firmware/common/lcd_ili9341.hpp | 2 +- firmware/common/modules.h | 4 +- firmware/common/ui_widget.cpp | 77 +++++++++ firmware/common/ui_widget.hpp | 31 ++++ firmware/portapack-h1-firmware.bin | Bin 471112 -> 473984 bytes sdcard/baseband-tx.bin | Bin 33280 -> 33280 bytes sdcard/baseband.bin | Bin 33280 -> 33280 bytes 31 files changed, 636 insertions(+), 285 deletions(-) create mode 100644 firmware/application/bulb_ignore_bmp.hpp create mode 100644 firmware/application/bulb_off_bmp.hpp create mode 100644 firmware/application/bulb_on_bmp.hpp create mode 100644 firmware/bitmaps/bulb_ignore.bmp create mode 100644 firmware/bitmaps/bulb_off.bmp create mode 100644 firmware/bitmaps/bulb_on.bmp create mode 100644 firmware/bitmaps/fox.bmp create mode 100644 firmware/bitmaps/fox_rle.bmp rename firmware/{application => bitmaps}/splash.bmp (100%) diff --git a/firmware/Makefile b/firmware/Makefile index 5bce1a9fc..0def504ce 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -65,7 +65,7 @@ modules: $(TARGET_BASEBAND).bin $(TARGET_BASEBAND_TX).bin cp $(PATH_BASEBAND_TX).bin ../sdcard/$(PATH_BASEBAND_TX).bin $(TARGET).bin: modules $(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND_TX)_inc.bin $(TARGET_APPLICATION).bin - $(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND)_inc.bin $(TARGET_APPLICATION).bin $(TARGET).bin + $(MAKE_SPI_IMAGE) $(TARGET_BOOTSTRAP).bin $(TARGET_HACKRF_FIRMWARE).dfu $(TARGET_BASEBAND_TX)_inc.bin $(TARGET_APPLICATION).bin $(TARGET).bin $(TARGET_BOOTSTRAP).bin: $(TARGET_BOOTSTRAP).elf $(CP) -O binary $(TARGET_BOOTSTRAP).elf $(TARGET_BOOTSTRAP).bin diff --git a/firmware/application/bulb_ignore_bmp.hpp b/firmware/application/bulb_ignore_bmp.hpp new file mode 100644 index 000000000..35ac9ce78 --- /dev/null +++ b/firmware/application/bulb_ignore_bmp.hpp @@ -0,0 +1,47 @@ +const unsigned char bulb_ignore_bmp[] = { + 0x42, 0x4d, 0xc6, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x00, + 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x70, 0x01, + 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x19, 0x19, 0x19, 0x00, 0x29, 0x2e, 0x21, 0x00, 0x1b, 0x1b, + 0x66, 0x00, 0x3f, 0x3f, 0x3f, 0x00, 0xff, 0x00, 0xff, 0x00, 0x55, 0x55, + 0x55, 0x00, 0x6c, 0x6c, 0x6c, 0x00, 0x95, 0x95, 0x95, 0x00, 0x0a, 0x44, + 0x02, 0x77, 0x02, 0x77, 0x0a, 0x44, 0x00, 0x00, 0x00, 0x18, 0x42, 0x24, + 0x44, 0x44, 0x47, 0x30, 0x03, 0x74, 0x44, 0x44, 0x42, 0x24, 0x00, 0x00, + 0x00, 0x18, 0x42, 0x22, 0x44, 0x44, 0x73, 0x66, 0x55, 0x37, 0x44, 0x44, + 0x22, 0x24, 0x00, 0x00, 0x00, 0x18, 0x44, 0x22, 0x24, 0x44, 0x76, 0x33, + 0x33, 0x57, 0x44, 0x42, 0x22, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x42, + 0x22, 0x44, 0x73, 0x66, 0x55, 0x37, 0x44, 0x22, 0x24, 0x44, 0x00, 0x00, + 0x00, 0x18, 0x44, 0x44, 0x22, 0x24, 0x76, 0x33, 0x33, 0x57, 0x42, 0x22, + 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, 0x42, 0x22, 0x73, 0x66, + 0x55, 0x37, 0x22, 0x24, 0x44, 0x44, 0x00, 0x00, 0x06, 0x44, 0x00, 0x0c, + 0x22, 0x26, 0x53, 0x35, 0x52, 0x22, 0x06, 0x44, 0x00, 0x00, 0x06, 0x44, + 0x00, 0x0c, 0x42, 0x22, 0x31, 0x13, 0x22, 0x24, 0x06, 0x44, 0x00, 0x00, + 0x06, 0x44, 0x00, 0x0c, 0x47, 0x22, 0x21, 0x12, 0x22, 0x74, 0x06, 0x44, + 0x00, 0x00, 0x06, 0x44, 0x00, 0x0c, 0x74, 0x42, 0x22, 0x22, 0x24, 0x47, + 0x06, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, 0x47, 0x44, 0x44, 0x22, + 0x22, 0x44, 0x44, 0x74, 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, + 0x47, 0x44, 0x64, 0x22, 0x22, 0x44, 0x44, 0x74, 0x44, 0x44, 0x00, 0x00, + 0x00, 0x18, 0x44, 0x44, 0x74, 0x44, 0x62, 0x22, 0x22, 0x24, 0x44, 0x47, + 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, 0x74, 0x46, 0x22, 0x24, + 0x42, 0x22, 0x44, 0x47, 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, + 0x74, 0x42, 0x22, 0x44, 0x44, 0x22, 0x24, 0x47, 0x44, 0x44, 0x00, 0x00, + 0x00, 0x18, 0x44, 0x44, 0x74, 0x22, 0x23, 0x44, 0x44, 0x32, 0x22, 0x47, + 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, 0x72, 0x22, 0x60, 0x44, + 0x44, 0x00, 0x22, 0x27, 0x44, 0x44, 0x00, 0x00, 0x00, 0x18, 0x44, 0x44, + 0x22, 0x24, 0x66, 0x00, 0x00, 0x44, 0x42, 0x22, 0x44, 0x44, 0x00, 0x00, + 0x00, 0x0a, 0x44, 0x42, 0x22, 0x44, 0x46, 0x00, 0x08, 0x44, 0x00, 0x06, + 0x22, 0x24, 0x44, 0x00, 0x00, 0x00, 0x00, 0x08, 0x44, 0x22, 0x24, 0x74, + 0x08, 0x44, 0x00, 0x08, 0x47, 0x42, 0x22, 0x44, 0x00, 0x00, 0x00, 0x08, + 0x42, 0x22, 0x44, 0x47, 0x08, 0x44, 0x00, 0x08, 0x74, 0x44, 0x22, 0x24, + 0x00, 0x00, 0x00, 0x18, 0x42, 0x24, 0x44, 0x44, 0x74, 0x44, 0x44, 0x47, + 0x44, 0x44, 0x42, 0x24, 0x00, 0x00, 0x08, 0x44, 0x00, 0x08, 0x47, 0x77, + 0x77, 0x74, 0x08, 0x44, 0x00, 0x01 +}; +const unsigned int bulb_ignore_bmp_len = 522; diff --git a/firmware/application/bulb_off_bmp.hpp b/firmware/application/bulb_off_bmp.hpp new file mode 100644 index 000000000..679f8a583 --- /dev/null +++ b/firmware/application/bulb_off_bmp.hpp @@ -0,0 +1,43 @@ +const unsigned char bulb_off_bmp[] = { + 0x42, 0x4d, 0x9a, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, + 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x48, 0x01, + 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x39, 0x39, 0x39, 0x00, 0xff, 0x00, 0xff, 0x00, 0x55, 0x5f, + 0x45, 0x00, 0x5b, 0x5b, 0x5b, 0x00, 0x7d, 0x7d, 0x7d, 0x00, 0x9d, 0x9d, + 0x9d, 0x00, 0xff, 0xff, 0xff, 0x00, 0x0a, 0x11, 0x02, 0x66, 0x02, 0x66, + 0x0a, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x16, 0x30, 0x03, 0x61, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x63, 0x55, 0x44, 0x36, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x65, 0x33, 0x33, 0x46, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x63, 0x55, 0x44, 0x36, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x65, 0x33, 0x33, 0x46, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x63, 0x55, 0x44, 0x36, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x65, 0x43, 0x34, 0x46, + 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, 0x00, 0x08, 0x63, 0x32, 0x23, 0x36, + 0x08, 0x11, 0x00, 0x00, 0x06, 0x11, 0x00, 0x0c, 0x16, 0x11, 0x22, 0x22, + 0x11, 0x61, 0x06, 0x11, 0x00, 0x00, 0x06, 0x11, 0x00, 0x0c, 0x61, 0x11, + 0x24, 0x22, 0x11, 0x16, 0x06, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, + 0x16, 0x11, 0x11, 0x24, 0x22, 0x11, 0x11, 0x61, 0x11, 0x11, 0x00, 0x00, + 0x00, 0x18, 0x11, 0x11, 0x16, 0x11, 0x51, 0x34, 0x43, 0x11, 0x11, 0x61, + 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x61, 0x11, 0x51, 0x31, + 0x13, 0x11, 0x11, 0x16, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, + 0x61, 0x15, 0x51, 0x31, 0x13, 0x11, 0x11, 0x16, 0x11, 0x11, 0x00, 0x00, + 0x00, 0x18, 0x11, 0x11, 0x61, 0x15, 0x53, 0x11, 0x11, 0x31, 0x11, 0x16, + 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x61, 0x15, 0x53, 0x11, + 0x11, 0x31, 0x11, 0x16, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, + 0x61, 0x11, 0x50, 0x11, 0x11, 0x00, 0x11, 0x16, 0x11, 0x11, 0x00, 0x00, + 0x00, 0x18, 0x11, 0x11, 0x16, 0x11, 0x55, 0x00, 0x00, 0x11, 0x11, 0x61, + 0x11, 0x11, 0x00, 0x00, 0x00, 0x0a, 0x11, 0x11, 0x16, 0x11, 0x15, 0x00, + 0x08, 0x11, 0x00, 0x06, 0x61, 0x11, 0x11, 0x00, 0x00, 0x00, 0x06, 0x11, + 0x02, 0x61, 0x08, 0x11, 0x02, 0x16, 0x06, 0x11, 0x00, 0x00, 0x06, 0x11, + 0x02, 0x16, 0x08, 0x11, 0x02, 0x61, 0x06, 0x11, 0x00, 0x00, 0x08, 0x11, + 0x00, 0x08, 0x61, 0x11, 0x11, 0x16, 0x08, 0x11, 0x00, 0x00, 0x08, 0x11, + 0x00, 0x08, 0x16, 0x66, 0x66, 0x61, 0x08, 0x11, 0x00, 0x01 +}; +const unsigned int bulb_off_bmp_len = 478; diff --git a/firmware/application/bulb_on_bmp.hpp b/firmware/application/bulb_on_bmp.hpp new file mode 100644 index 000000000..72d99d01c --- /dev/null +++ b/firmware/application/bulb_on_bmp.hpp @@ -0,0 +1,46 @@ +const unsigned char bulb_on_bmp[] = { + 0x42, 0x4d, 0xba, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, + 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x60, 0x01, + 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x13, 0x0b, 0x00, 0x00, 0x09, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x42, 0x47, 0x52, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x39, 0x39, 0x39, 0x00, 0xff, 0x00, 0xff, 0x00, 0x5b, 0x5b, + 0x5b, 0x00, 0x7d, 0x7d, 0x7d, 0x00, 0x90, 0xa0, 0x75, 0x00, 0x9d, 0x9d, + 0x9d, 0x00, 0x44, 0xe5, 0xff, 0x00, 0x85, 0xfe, 0xff, 0x00, 0xff, 0xff, + 0xff, 0x00, 0x0a, 0x11, 0x02, 0x88, 0x02, 0x88, 0x0a, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x18, 0x20, 0x02, 0x81, 0x08, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x82, 0x55, 0x33, 0x28, 0x08, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x85, 0x22, 0x22, 0x38, 0x08, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x82, 0x55, 0x33, 0x28, 0x08, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x85, 0x22, 0x22, 0x38, 0x08, 0x11, 0x00, 0x00, + 0x08, 0x11, 0x00, 0x08, 0x82, 0x55, 0x32, 0x28, 0x08, 0x11, 0x00, 0x00, + 0x00, 0x18, 0x11, 0x61, 0x11, 0x11, 0x85, 0x33, 0x33, 0x28, 0x11, 0x11, + 0x16, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x16, 0x11, 0x11, 0x83, 0x54, + 0x45, 0x38, 0x11, 0x11, 0x61, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, + 0x61, 0x18, 0x77, 0x44, 0x44, 0x77, 0x81, 0x16, 0x11, 0x11, 0x00, 0x00, + 0x06, 0x11, 0x00, 0x0c, 0x87, 0x66, 0x48, 0x44, 0x66, 0x78, 0x06, 0x11, + 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x18, 0x76, 0x66, 0x48, 0x44, 0x66, + 0x67, 0x81, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x18, 0x66, + 0x86, 0x38, 0x83, 0x66, 0x66, 0x81, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, + 0x11, 0x11, 0x87, 0x67, 0x87, 0x37, 0x63, 0x76, 0x66, 0x78, 0x11, 0x11, + 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x86, 0x78, 0x86, 0x36, 0x73, 0x67, + 0x67, 0x68, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, 0x66, 0x61, 0x86, 0x68, + 0x83, 0x67, 0x76, 0x36, 0x76, 0x68, 0x16, 0x66, 0x00, 0x00, 0x00, 0x18, + 0x11, 0x11, 0x86, 0x78, 0x85, 0x77, 0x77, 0x57, 0x77, 0x68, 0x11, 0x11, + 0x00, 0x00, 0x00, 0x18, 0x11, 0x11, 0x87, 0x67, 0x88, 0x78, 0x77, 0x88, + 0x76, 0x78, 0x11, 0x11, 0x00, 0x00, 0x00, 0x08, 0x11, 0x11, 0x18, 0x66, + 0x06, 0x88, 0x00, 0x0a, 0x77, 0x77, 0x81, 0x11, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x11, 0x11, 0x18, 0x76, 0x78, 0x77, 0x77, 0x76, 0x76, 0x81, + 0x11, 0x11, 0x00, 0x00, 0x06, 0x11, 0x02, 0x87, 0x08, 0x67, 0x02, 0x68, + 0x06, 0x11, 0x00, 0x00, 0x00, 0x0a, 0x11, 0x11, 0x61, 0x18, 0x76, 0x00, + 0x06, 0x66, 0x00, 0x08, 0x81, 0x16, 0x11, 0x11, 0x00, 0x00, 0x00, 0x18, + 0x11, 0x16, 0x11, 0x11, 0x87, 0x77, 0x77, 0x78, 0x11, 0x11, 0x61, 0x11, + 0x00, 0x00, 0x00, 0x18, 0x11, 0x61, 0x11, 0x11, 0x18, 0x88, 0x88, 0x81, + 0x11, 0x11, 0x16, 0x11, 0x00, 0x01 +}; +const unsigned int bulb_on_bmp_len = 510; diff --git a/firmware/application/fox_bmp.hpp b/firmware/application/fox_bmp.hpp index 98c9213a4..21f73bf55 100644 --- a/firmware/application/fox_bmp.hpp +++ b/firmware/application/fox_bmp.hpp @@ -1,4 +1,4 @@ -unsigned char fox_bmp[] = { +const unsigned char fox_bmp[] = { 0x42, 0x4d, 0xee, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0x78, 0x2b, diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 7aba6fc24..363b83819 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -19,6 +19,9 @@ * Boston, MA 02110-1301, USA. */ +// Bitmaps generated with: +// Gimp :(, then "xxd -i *.bmp" + //BUG: No audio in about when shown second time //BUG: Description doesn't show up first time going to system>module info (UI drawn on top) //TODO: Breakout game diff --git a/firmware/application/splash.hpp b/firmware/application/splash.hpp index bc90176ab..4891e7a90 100644 --- a/firmware/application/splash.hpp +++ b/firmware/application/splash.hpp @@ -1,7 +1,4 @@ -// Generated with: -// Gimp :(, then "xxd -i *.bmp" - -unsigned char splash_bmp[] = { +const unsigned char splash_bmp[] = { 0x42, 0x4d, 0x28, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x1b, 0x01, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, 0x00, 0xb2, 0x31, diff --git a/firmware/application/ui_closecall.cpp b/firmware/application/ui_closecall.cpp index bb718fb75..69120f891 100644 --- a/firmware/application/ui_closecall.cpp +++ b/firmware/application/ui_closecall.cpp @@ -100,7 +100,7 @@ void CloseCallView::do_detection() { else resolved_frequency = slice_start + (CC_BIN_WIDTH * (imax - 118)); // Init - text_debug.set(to_string_dec_int(CC_BIN_WIDTH * (imax - 118))); //imax + //text_debug.set(to_string_dec_int(CC_BIN_WIDTH * (imax - 118))); // Correct according to DC spike mask width (4 for now) if (iraw > 118) @@ -160,77 +160,76 @@ void CloseCallView::on_channel_spectrum(const ChannelSpectrum& spectrum) { uint8_t threshold; size_t i, m; - if (!wait) { - // Spectrum line (for debug) - std::array pixel_row; - for(i = 0; i < 118; i++) { - const auto pixel_color = spectrum_rgb3_lut[spectrum.db[256 - 120 + i]]; - pixel_row[i + 2] = pixel_color; - } - - for(i = 122; i < 240; i++) { - const auto pixel_color = spectrum_rgb3_lut[spectrum.db[i - 120]]; - pixel_row[i - 2] = pixel_color; - } - - display.draw_pixels( - { { 0, 96 + slices_counter * 6 }, { pixel_row.size(), 1 } }, - pixel_row - ); - - // Find max for this slice: - - // Check if left of slice needs to be trimmed (masked) - if (slices_counter == 0) - i = slice_trim; - else - i = 0; - for ( ; i < 118; i++) { - threshold = spectrum.db[256 - 120 + i]; // 128+8 = 136 ~254 - if (threshold > xmax) { - xmax = threshold; - imax = i; - } - } - // Check if right of slice needs to be trimmed (masked) - if (slices_counter == (slices_max - 1)) - m = 240 - slice_trim; - else - m = 240; - for (i = 122 ; i < m; i++) { - threshold = spectrum.db[i - 120]; // 240-120 = 120 -> +8 = 128 - if (threshold > xmax) { // (0~2) 2~120 (120~136) 136~254 (254~256) - xmax = threshold; - imax = i - 4; - } - } - slicemax_db[slices_counter] = xmax; - slicemax_idx[slices_counter] = imax; - - // Add to mean - for (i = 136; i < 254; i++) - mean += spectrum.db[i]; - for (i = 2; i < 120; i++) - mean += spectrum.db[i]; - - // Slice update - if (slicing) { - if (slices_counter >= (slices_max - 1)) { - do_detection(); - mean = 0; - slices_counter = 0; - } else { - slices_counter++; - } - slice_frequency = slice_start + (slices_counter * CC_SLICE_WIDTH); - receiver_model.set_tuning_frequency(slice_frequency); - wait = 1; - } else { - do_detection(); - } - } else { - wait--; + baseband::spectrum_streaming_stop; + + // Spectrum line (for debug) + std::array pixel_row; + for(i = 0; i < 118; i++) { + const auto pixel_color = spectrum_rgb3_lut[spectrum.db[256 - 120 + i]]; + pixel_row[i + 2] = pixel_color; } + + for(i = 122; i < 240; i++) { + const auto pixel_color = spectrum_rgb3_lut[spectrum.db[i - 120]]; + pixel_row[i - 2] = pixel_color; + } + + display.draw_pixels( + { { 0, 96 + slices_counter * 4 }, { pixel_row.size(), 1 } }, + pixel_row + ); + + // Find max for this slice: + + // Check if left of slice needs to be trimmed (masked) + if (slices_counter == 0) + i = slice_trim; + else + i = 0; + for ( ; i < 118; i++) { + threshold = spectrum.db[256 - 120 + i]; // 128+8 = 136 ~254 + if (threshold > xmax) { + xmax = threshold; + imax = i; + } + } + // Check if right of slice needs to be trimmed (masked) + if (slices_counter == (slices_max - 1)) + m = 240 - slice_trim; + else + m = 240; + for (i = 122 ; i < m; i++) { + threshold = spectrum.db[i - 120]; // 240-120 = 120 -> +8 = 128 + if (threshold > xmax) { // (0~2) 2~120 (120~136) 136~254 (254~256) + xmax = threshold; + imax = i - 4; + } + } + slicemax_db[slices_counter] = xmax; + slicemax_idx[slices_counter] = imax; + + // Add to mean + for (i = 136; i < 254; i++) + mean += spectrum.db[i]; + for (i = 2; i < 120; i++) + mean += spectrum.db[i]; + + // Slice update + if (slicing) { + if (slices_counter >= (slices_max - 1)) { + do_detection(); + mean = 0; + slices_counter = 0; + } else { + slices_counter++; + } + slice_frequency = slice_start + (slices_counter * CC_SLICE_WIDTH); + receiver_model.set_tuning_frequency(slice_frequency); + } else { + do_detection(); + } + + baseband::spectrum_streaming_start(1); } void CloseCallView::on_show() { @@ -266,9 +265,7 @@ void CloseCallView::on_range_changed() { rf::Frequency slices_span; rf::Frequency resolved_frequency; int64_t offset; - - // DEBUG - /* + f_max = field_frequency_max.value(); f_min = field_frequency_min.value(); scan_span = abs(f_max - f_min); @@ -288,7 +285,6 @@ void CloseCallView::on_range_changed() { slice_start = slice_frequency; receiver_model.set_tuning_frequency(slice_frequency); - // DEBUG resolved_frequency = (CC_SLICE_WIDTH - scan_span) / 2; // Trim frequency span (for both sides) resolved_frequency /= CC_BIN_WIDTH; // Convert to bin span slice_trim = resolved_frequency; @@ -300,8 +296,9 @@ void CloseCallView::on_range_changed() { slices_max = 1; slices_counter = 0; slicing = false; - }*/ + } + /* f_min = field_frequency_min.value(); scan_span = 3000000; slice_frequency = (f_min + 1500000); @@ -312,6 +309,7 @@ void CloseCallView::on_range_changed() { slices_counter = 0; slicing = false; field_frequency_max.set_value(f_min + 3000000); +*/ text_slices.set(to_string_dec_int(slices_max)); slices_counter = 0; diff --git a/firmware/application/ui_closecall.hpp b/firmware/application/ui_closecall.hpp index aac5f66d1..6b43d6fa0 100644 --- a/firmware/application/ui_closecall.hpp +++ b/firmware/application/ui_closecall.hpp @@ -61,7 +61,6 @@ private: Coord last_pos = 0; ChannelSpectrumFIFO* fifo { nullptr }; uint8_t detect_counter = 0, release_counter = 0; - uint8_t wait = 2; uint8_t slice_trim; uint32_t mean = 0; uint32_t min_threshold = 80; // Todo: Put this in persistent / settings diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 4b9956205..7d0e82e2d 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -183,14 +183,15 @@ ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { /* SystemMenuView ********************************************************/ SystemMenuView::SystemMenuView(NavigationView& nav) { - add_items<12>({ { + add_items<11>({ { { "Play dead", ui::Color::red(), [&nav](){ nav.push(false); } }, { "Receiver RX", ui::Color::cyan(), [&nav](){ nav.push(md5_baseband, Receiver); } }, { "Close Call RX", ui::Color::cyan(), [&nav](){ nav.push(md5_baseband, CloseCall); } }, { "Soundboard TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, SoundBoard); } }, //{ "Audio TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, AudioTX); } }, - { "EPAR TX", ui::Color::green(), [&nav](){ nav.push(md5_baseband_tx, EPAR); } }, - { "Xylos TX", ui::Color::orange(), [&nav](){ nav.push(md5_baseband_tx, Xylos); } }, + + //{ "EPAR TX", ui::Color::green(), [&nav](){ nav.push(md5_baseband_tx, EPAR); } }, + { "Xylos TX", ui::Color::green(), [&nav](){ nav.push(md5_baseband_tx, Xylos); } }, { "TEDI/LCR TX", ui::Color::orange(), [&nav](){ nav.push(md5_baseband_tx, LCR); } }, { "RDS TX", ui::Color::yellow(), [&nav](){ nav.push(md5_baseband_tx, RDS); } }, //{ "Capture", ui::Color::white(), [&nav](){ nav.push(); } }, @@ -315,7 +316,7 @@ BMPView::BMPView(NavigationView& nav) { void BMPView::paint(Painter& painter) { (void)painter; - portapack::display.drawBMP({(240-185)/2, 0}, splash_bmp); + portapack::display.drawBMP({(240-185)/2, 0}, splash_bmp, false); } /* PlayDeadView **********************************************************/ diff --git a/firmware/application/ui_xylos.cpp b/firmware/application/ui_xylos.cpp index deed06de1..0494b7901 100644 --- a/firmware/application/ui_xylos.cpp +++ b/firmware/application/ui_xylos.cpp @@ -43,7 +43,8 @@ using namespace portapack; namespace ui { - + +/* void XylosRXView::talk() { uint8_t c; @@ -79,15 +80,6 @@ XylosRXView::~XylosRXView() { receiver_model.disable(); } -/*VirtualTimer vt; - -void XylosRXView::do_something(void *p) { - //p.set(xylos_voice_filenames[xylos_voice_phrase[p_idx]]); - //p_idx++; - //} while (xylos_voice_phrase[p_idx] != 0xFF); - text_dbg.set("Done :)"); -}*/ - void XylosRXView::on_show() { //chVTSet(&vt, MS2ST(1000), do_something, NULL); } @@ -116,7 +108,7 @@ XylosRXView::XylosRXView( }; } - +*/ @@ -143,10 +135,12 @@ void XylosView::upd_message() { ccirmessage[4] = (city_code.value() / 10) + 0x30; ccirmessage[5] = (city_code.value() % 10) + 0x30; ccirmessage[6] = family_code.value() + 0x30; + if (checkbox_wcsubfamily.value() == false) ccirmessage[7] = subfamily_code.value() + 0x30; else ccirmessage[7] = 'A'; + if (checkbox_wcid.value() == false) { ccirmessage[8] = (receiver_code.value() / 10) + 0x30; ccirmessage[9] = (receiver_code.value() % 10) + 0x30; @@ -160,7 +154,7 @@ void XylosView::upd_message() { ccirmessage[11] = options_ra.selected_index() + 0x30; ccirmessage[12] = options_rb.selected_index() + 0x30; ccirmessage[13] = options_rc.selected_index() + 0x30; - ccirmessage[14] = '0'; + ccirmessage[14] = options_rd.selected_index() + 0x30; ccirmessage[15] = 'B'; @@ -177,7 +171,7 @@ void XylosView::upd_message() { ccirmessage[20] = 0; // Display as text - text_debug.set(ccirmessage); + text_message.set(ccirmessage); // ASCII to frequency LUT index for (c=0; c<20; c++) { @@ -190,19 +184,7 @@ void XylosView::upd_message() { ccirmessage[20] = 0xFF; } -void XylosView::journuit() { - uint8_t sr; - - chThdSleepMilliseconds(1000); - - // Invert relay states - sr = options_ra.selected_index(); - if (sr > 0) options_ra.set_selected_index(sr ^ 3); - sr = options_rb.selected_index(); - if (sr > 0) options_rb.set_selected_index(sr ^ 3); - sr = options_rc.selected_index(); - if (sr > 0) options_rc.set_selected_index(sr ^ 3); - +void XylosView::start_tx() { upd_message(); audio::headphone::set_volume(volume_t::decibel(90 - 99) + audio::headphone::volume_range().max); @@ -215,18 +197,6 @@ XylosView::XylosView( NavigationView& nav ) { - static constexpr Style style_val { - .font = font::fixed_8x16, - .background = Color::green(), - .foreground = Color::black(), - }; - - static constexpr Style style_cancel { - .font = font::fixed_8x16, - .background = Color::red(), - .foreground = Color::black(), - }; - transmitter_model.set_baseband_configuration({ .mode = 2, .sampling_rate = 1536000, @@ -234,7 +204,7 @@ XylosView::XylosView( }); add_children({ { - &text_title, + &checkbox_hinc, &button_txtest, &text_header, &header_code_a, @@ -251,17 +221,17 @@ XylosView::XylosView( &checkbox_wcid, &text_freq, &options_freq, - &text_ra, + &text_relais, &options_ra, - &text_rb, &options_rb, - &text_rc, &options_rc, - &text_progress, - &text_debug, + &options_rd, + &progress, + &text_message, &button_transmit, &checkbox_cligno, - &button_exit + &tempo_cligno, + &text_cligno } }); city_code.set_value(18); @@ -271,6 +241,9 @@ XylosView::XylosView( header_code_a.set_value(0); header_code_b.set_value(0); options_freq.set_selected_index(5); + tempo_cligno.set_value(5); + + options_ra.set_selected_index(1); // R1 OFF checkbox_wcsubfamily.set_value(true); checkbox_wcid.set_value(true); @@ -299,20 +272,34 @@ XylosView::XylosView( (void)v; XylosView::upd_message(); }; + + subfamily_code.hidden(true); + text_subfamily.set_style(&style_grey); checkbox_wcsubfamily.on_select = [this](Checkbox&) { - if (checkbox_wcsubfamily.value() == true) + if (checkbox_wcsubfamily.value() == true) { subfamily_code.hidden(true); - else + text_subfamily.set_style(&style_grey); + } else { subfamily_code.hidden(false); + text_subfamily.set_style(&style()); + } XylosView::upd_message(); }; + + receiver_code.hidden(true); + text_receiver.set_style(&style_grey); checkbox_wcid.on_select = [this](Checkbox&) { - if (checkbox_wcid.value() == true) + if (checkbox_wcid.value() == true) { receiver_code.hidden(true); - else + text_receiver.set_style(&style_grey); + } else { receiver_code.hidden(false); + text_receiver.set_style(&style()); + } + receiver_code.set_dirty(); XylosView::upd_message(); }; + options_ra.on_change = [this](size_t n, OptionsField::value_t v) { (void)n; (void)v; @@ -328,13 +315,18 @@ XylosView::XylosView( (void)v; XylosView::upd_message(); }; + options_rd.on_change = [this](size_t n, OptionsField::value_t v) { + (void)n; + (void)v; + XylosView::upd_message(); + }; button_transmit.set_style(&style_val); XylosView::upd_message(); button_txtest.on_select = [this](Button&) { - const uint8_t ccirtest[21] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,0xFF }; + const uint8_t ccirtest[21] = { 11, 13, 15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 14, 12, 10, 12, 14, 0, 9, 0xFF }; if (txing == false) { EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); @@ -345,8 +337,8 @@ XylosView::XylosView( audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); transmitter_model.disable(); txing = false; - button_txtest.set_style(&style_val); - button_txtest.set_text("TX TEST"); + button_txtest.set_style(&style()); + button_txtest.set_text("TEST"); } } ); @@ -367,36 +359,65 @@ XylosView::XylosView( }; button_transmit.on_select = [this](Button&) { + if (txing == false) { upd_message(); + if (checkbox_hinc.value()) + inc_cnt = 3; + else + inc_cnt = 0; + header_init = header_code_b.value(); + EventDispatcher::message_map().unregister_handler(Message::ID::TXDone); EventDispatcher::message_map().register_handler(Message::ID::TXDone, [this](Message* const p) { - uint8_t c; - char progress[21]; + uint8_t sr; const auto message = static_cast(p); if (message->n == 25) { audio::headphone::set_volume(volume_t::decibel(0 - 99) + audio::headphone::volume_range().max); transmitter_model.disable(); - for (c=0;c<20;c++) - progress[c] = ' '; - progress[20] = 0; - text_progress.set(progress); - if (checkbox_cligno.value() == false) { - txing = false; - button_transmit.set_style(&style_val); - button_transmit.set_text("START"); + progress.set_value(0); + + if (inc_cnt) { + chThdSleepMilliseconds(1000); + header_code_b.set_value(header_code_b.value() + 1); + + upd_message(); + start_tx(); + + inc_cnt--; } else { - journuit(); + header_code_b.set_value(header_init); + if (checkbox_cligno.value() == false) { + txing = false; + button_transmit.set_style(&style_val); + button_transmit.set_text("START"); + } else { + if (checkbox_hinc.value()) + inc_cnt = 3; + else + inc_cnt = 0; + + chThdSleepMilliseconds(tempo_cligno.value() * 1000); + + // Invert relay states + sr = options_ra.selected_index(); + if (sr > 0) options_ra.set_selected_index(sr ^ 3); + sr = options_rb.selected_index(); + if (sr > 0) options_rb.set_selected_index(sr ^ 3); + sr = options_rc.selected_index(); + if (sr > 0) options_rc.set_selected_index(sr ^ 3); + sr = options_rd.selected_index(); + if (sr > 0) options_rd.set_selected_index(sr ^ 3); + + upd_message(); + start_tx(); + } } } else { - for (c=0;cn;c++) // Todo: Use progressbar ! - progress[c] = ' '; - progress[c] = '.'; - progress[++c] = 0; - text_progress.set(progress); + progress.set_value((message->n + 1) * 5); } } ); @@ -414,10 +435,6 @@ XylosView::XylosView( transmitter_model.enable(); } }; - - button_exit.on_select = [&nav](Button&){ - nav.pop(); - }; } diff --git a/firmware/application/ui_xylos.hpp b/firmware/application/ui_xylos.hpp index 96d88977f..1999000d6 100644 --- a/firmware/application/ui_xylos.hpp +++ b/firmware/application/ui_xylos.hpp @@ -26,6 +26,11 @@ #include "ui_menu.hpp" #include "ui_navigation.hpp" #include "ui_font_fixed_8x16.hpp" + +#include "bulb_on_bmp.hpp" +#include "bulb_off_bmp.hpp" +#include "bulb_ignore_bmp.hpp" + #include "clock_manager.hpp" #include "message.hpp" #include "rf_path.hpp" @@ -36,6 +41,7 @@ namespace ui { +/* #define XYLOS_VOICE_ZERO 0 #define XYLOS_VOICE_HEADER 16 #define XYLOS_VOICE_RELAYS 21 @@ -134,47 +140,61 @@ private: { 21 * 8, 16 * 16, 64, 32 }, "Exit" }; -}; +};*/ class XylosView : public View { public: XylosView(NavigationView& nav); ~XylosView(); - void journuit(); + std::string title() const override { return "Xylos transmit"; }; - void talk(); + void start_tx(); void upd_message(); void focus() override; void paint(Painter& painter) override; private: + int inc_cnt; + int header_init; bool txing = false; const rf::Frequency xylos_freqs[7] = { 31325000, 31387500, 31437500, 31475000, 31687500, 31975000, 88000000 }; char ccirmessage[21]; - Text text_title { - { 8, 8, 11, 16 }, - "BH Xylos TX" + const Style style_val { + .font = font::fixed_8x16, + .background = Color::green(), + .foreground = Color::black(), + }; + const Style style_cancel { + .font = font::fixed_8x16, + .background = Color::red(), + .foreground = Color::black(), + }; + const Style style_grey { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::grey(), }; - Button button_txtest { - { 180, 8, 40, 24 }, - "TEST" + Checkbox checkbox_hinc { + { 21 * 8, 12}, + 2, + "+3" }; Text text_header { - { 8 * 8, 2 * 16, 7 * 8, 16 }, + { 8 * 8, 1 * 16, 7 * 8, 16 }, "Header:" }; NumberField header_code_a { - { 16 * 8, 2 * 16 }, + { 16 * 8, 1 * 16 }, 2, { 0, 99 }, 1, '0' }; NumberField header_code_b { - { 18 * 8, 2 * 16 }, + { 18 * 8, 1 * 16 }, 2, { 0, 99 }, 1, @@ -182,11 +202,11 @@ private: }; Text text_city { - { 4 * 8, 3 * 16, 11 * 8, 16 }, + { 4 * 8, 2 * 16, 11 * 8, 16 }, "Code ville:" }; NumberField city_code { - { 16 * 8, 3 * 16 }, + { 16 * 8, 2 * 16 }, 2, { 0, 99 }, 1, @@ -194,57 +214,57 @@ private: }; Text text_family { - { 7 * 8, 4 * 16, 8 * 8, 16 }, + { 7 * 8, 3 * 16, 8 * 8, 16 }, "Famille:" }; NumberField family_code { - { 16 * 8, 4 * 16 }, - 2, + { 16 * 8, 3 * 16 }, + 1, { 0, 9 }, 1, ' ' }; Text text_subfamily { - { 2 * 8, 5 * 16 + 4, 13 * 8, 16 }, + { 2 * 8, 4 * 16 + 4, 13 * 8, 16 }, "Sous-famille:" }; NumberField subfamily_code { - { 16 * 8, 5 * 16 + 4 }, - 2, + { 16 * 8, 4 * 16 + 4 }, + 1, { 0, 9 }, 1, ' ' }; Checkbox checkbox_wcsubfamily { - { 20 * 8, 5 * 16}, + { 20 * 8, 4 * 16}, 6, "Toutes" }; Text text_receiver { - { 2 * 8, 7 * 16 + 6, 13 * 8, 16 }, + { 2 * 8, 6 * 16, 13 * 8, 16 }, "ID recepteur:" }; NumberField receiver_code { - { 16 * 8, 7 * 16 + 6 }, + { 16 * 8, 6 * 16 }, 2, { 0, 99 }, 1, ' ' }; Checkbox checkbox_wcid { - { 20 * 8, 7 * 16 + 4}, + { 20 * 8, 6 * 16 }, 4, "Tous" }; Text text_freq { - { 5 * 8, 9 * 16, 10 * 8, 16 }, + { 6 * 8, 8 * 16, 10 * 8, 16 }, "Frequence:" }; OptionsField options_freq { - { 16 * 8, 9 * 16 + 4}, + { 17 * 8, 8 * 16}, 7, { { "31.3250", 0 }, @@ -257,51 +277,48 @@ private: } }; - Text text_ra { - { 12, 11 * 16, 8 * 8, 16 }, - "Relais 1" + Text text_relais { + { 8, 9 * 16 + 4, 7 * 8, 16 }, + "Relais:" }; - OptionsField options_ra { - { 16, 12 * 16 }, - 3, + + ImageOptionsField options_ra { + { 26, 166, 24, 24 }, { - { "Ignorer", 0 }, - { " OFF ", 1 }, - { " ON ", 2 } + { &bulb_ignore_bmp[0], 0 }, + { &bulb_off_bmp[0], 1 }, + { &bulb_on_bmp[0], 2 } } }; - Text text_rb { - { 88, 11 * 16, 8 * 8, 16 }, - "Relais 2" - }; - OptionsField options_rb { - { 92, 12 * 16 }, - 3, + ImageOptionsField options_rb { + { 79, 166, 24, 24 }, { - { "Ignorer", 0 }, - { " OFF ", 1 }, - { " ON ", 2 } + { &bulb_ignore_bmp[0], 0 }, + { &bulb_off_bmp[0], 1 }, + { &bulb_on_bmp[0], 2 } } }; - Text text_rc { - { 164, 11 * 16, 8 * 8, 16 }, - "Relais 3" - }; - OptionsField options_rc { - { 168, 12 * 16 }, - 3, + ImageOptionsField options_rc { + { 133, 166, 24, 24 }, { - { "Ignorer", 0 }, - { " OFF ", 1 }, - { " ON ", 2 } + { &bulb_ignore_bmp[0], 0 }, + { &bulb_off_bmp[0], 1 }, + { &bulb_on_bmp[0], 2 } + } + }; + ImageOptionsField options_rd { + { 186, 166, 24, 24 }, + { + { &bulb_ignore_bmp[0], 0 }, + { &bulb_off_bmp[0], 1 }, + { &bulb_on_bmp[0], 2 } } }; - Text text_progress { + ProgressBar progress { { 5 * 8, 13 * 16, 20 * 8, 16 }, - " " }; - Text text_debug { + Text text_message { { 5 * 8, 14 * 16, 20 * 8, 16 }, "--------------------" }; @@ -312,14 +329,25 @@ private: }; Checkbox checkbox_cligno { - { 96, 16 * 16 + 4}, + { 96, 16 * 16}, 3, "J/N" }; + NumberField tempo_cligno { + { 104, 16 * 16 + 28 }, + 2, + { 1, 99 }, + 1, + ' ' + }; + Text text_cligno { + { 104 + 16, 16 * 16 + 28, 2 * 8, 16 }, + "s." + }; - Button button_exit { - { 21 * 8, 16 * 16, 64, 32 }, - "Exit" + Button button_txtest { + { 20 * 8, 16 * 16, 64, 32 }, + "TEST" }; }; diff --git a/firmware/baseband-tx.bin b/firmware/baseband-tx.bin index de0e480badd12a7fbda617d6bda5054097d2c500..0bbd08fbfa90f76ef58db22acd2eab6e84654518 100644 GIT binary patch delta 1914 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 diff --git a/firmware/baseband-tx/proc_xylos.cpp b/firmware/baseband-tx/proc_xylos.cpp index 8d6de4d94..5c4e20696 100644 --- a/firmware/baseband-tx/proc_xylos.cpp +++ b/firmware/baseband-tx/proc_xylos.cpp @@ -42,47 +42,61 @@ void XylosProcessor::execute(const buffer_c8_t& buffer) { if (s >= 9) { s = 0; - if (sample_count >= CCIR_TONELENGTH) { - if (shared_memory.transmit_done == false) { - message.n = byte_pos; // Inform UI about progress (just as eye candy) - shared_memory.application_queue.push(message); - digit = shared_memory.xylosdata[byte_pos++]; + if (silence) { + if (sample_count >= SILENCE) { + silence = false; + sample_count = CCIR_TONELENGTH; + } else { + sample_count++; } + } else { + if (sample_count >= CCIR_TONELENGTH) { + if (shared_memory.transmit_done == false) { + message.n = byte_pos; // Inform UI about progress (just as eye candy) + shared_memory.application_queue.push(message); + digit = shared_memory.xylosdata[byte_pos++]; + } + + if (digit == 0xFF) { + message.n = 25; // End of message code + shared_memory.transmit_done = true; + shared_memory.application_queue.push(message); + } - if (digit == 0xFF) { - message.n = 25; // End of message code - shared_memory.transmit_done = true; - shared_memory.application_queue.push(message); + sample_count = 0; + } else { + sample_count++; } - sample_count = 0; - } else { - sample_count++; + aphase += ccir_phases[digit]; } - - aphase += ccir_phases[digit]; } else { s++; } - sample = (sine_table_f32[(aphase & 0x03FF0000)>>18]*255); - - // Audio preview sample generation: 1536000/48000 = 32 - /*if (as >= 31) { - as = 0; - audio[ai++] = sample * 128; + if (silence) { + re = 0; + im = 0; } else { - as++; - }*/ - - //FM - frq = sample * 1000; // ~25kHz wide - - phase = (phase + frq); - sphase = phase + (256<<16); + sample = (sine_table_f32[(aphase & 0x03FF0000)>>18]*255); + + // Audio preview sample generation: 1536000/48000 = 32 + /*if (as >= 31) { + as = 0; + audio[ai++] = sample * 128; + } else { + as++; + }*/ + + //FM + frq = sample * 500; // To check ! + + phase = (phase + frq); + sphase = phase + (256<<16); - re = (sine_table_f32[(sphase & 0x03FF0000)>>18]*127); - im = (sine_table_f32[(phase & 0x03FF0000)>>18]*127); + re = (sine_table_f32[(sphase & 0x03FF0000)>>18]*127); + im = (sine_table_f32[(phase & 0x03FF0000)>>18]*127); + } buffer.p[i] = {(int8_t)re,(int8_t)im}; } diff --git a/firmware/baseband-tx/proc_xylos.hpp b/firmware/baseband-tx/proc_xylos.hpp index 1de15d166..1a7b2cf31 100644 --- a/firmware/baseband-tx/proc_xylos.hpp +++ b/firmware/baseband-tx/proc_xylos.hpp @@ -31,8 +31,9 @@ #include "audio_output.hpp" #include "baseband_processor.hpp" -#define CCIR_TONELENGTH 15360-1 // 1536000/10/10 -#define PHASEV 436.91 // (65536*1024)/1536000*10 +#define CCIR_TONELENGTH 15360-1 // 1536000/10/10 +#define PHASEV 436.91 // (65536*1024)/1536000*10 +#define SILENCE 61440-1 // 400ms class XylosProcessor : public BasebandProcessor { public: @@ -73,6 +74,7 @@ private: uint32_t sample_count = CCIR_TONELENGTH; uint32_t aphase, phase, sphase; int32_t sample, frq; + bool silence = true; TXDoneMessage message; //AudioOutput audio_output; diff --git a/firmware/baseband.bin b/firmware/baseband.bin index be9eda36b5ab090686c8977031787eb12cdb4079..a877db80cbed1e4cddbedb832b1c962defa3f09f 100644 GIT binary patch delta 53 ucmZo@VQOe$njj^xW8Q2I7ZVl*?mY>0=^eq}H)_4}V-(pe>3`h_Lk<87e-sS> delta 53 ucmZo@VQOe$njj@GHTH4c$I@;o^;ewRciyRcv{CDwAEVJ`N&o9c7;*rJ%^8gV diff --git a/firmware/baseband/proc_closecall.cpp b/firmware/baseband/proc_closecall.cpp index 22ff7d12a..2b6bb0694 100644 --- a/firmware/baseband/proc_closecall.cpp +++ b/firmware/baseband/proc_closecall.cpp @@ -38,7 +38,7 @@ void CloseCallProcessor::execute(const buffer_c8_t& buffer) { spectrum[i] += buffer.p[i + 1024]; } - if( phase == 50 ) { + if( phase == 20 ) { const buffer_c16_t buffer_c16 { spectrum.data(), spectrum.size(), diff --git a/firmware/bitmaps/bulb_ignore.bmp b/firmware/bitmaps/bulb_ignore.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1bcd2e875886f196d1058b63e2a9d4f5b698e69d GIT binary patch literal 522 zcmb7=F;BxV5QQ%RRZ(D~ORG+OSRfVzRERN>b*d+pqKFkClqmzE7WpMv_(A+Fc;_?) zMjV~*KELPFIsX1Lle9j#w~W~?GC7o-^(*!1(GUgM!iUY4>0irw{a*9=TrMt`vRE`y zRh4}4tLs|Yww1o`rPRF3yHa^)=ACM|I*6*?C5Gy@sqa*gm`UGPt4H-ne#=Scx%tg! zI*)hkVLD~>KvNOsoI^ literal 0 HcmV?d00001 diff --git a/firmware/bitmaps/bulb_off.bmp b/firmware/bitmaps/bulb_off.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fbd18b704189a72951a941da7f20df6f5058e6d5 GIT binary patch literal 478 zcmb7AyKcfj5FB43W0^D~#EIJQ0pTGew~&xDNIc}qMRbaAMVH#Ykpjuz>g=9zKvb}& zy`8xojrMl2J_YdcEB8@yaLxeFFoHj&-|IHn5w5xT*!@U(DAemZ(lkXaC;NIwp64jb z5>-{9u4}|Jg(+eJ5fRzfCnwe8@9b^f;=^>hYVlp~%h^Rg8G4_Pc(F_pIzdq8I7(=h zVL)0crQ<)}&X!l)aXapLS)+ITTfQg9YSZ>_I5*O|^er=>^^euKum2940YVztgz?h} Twu1fKqKHHx{JgQE(2WIu2f8i+ literal 0 HcmV?d00001 diff --git a/firmware/bitmaps/bulb_on.bmp b/firmware/bitmaps/bulb_on.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8ebc52f159c998e04748e9479428883aabe72ca9 GIT binary patch literal 510 zcmb79u};J=40S71mBL~nRUOeyH&f|o*HaNJEC|HVg$gO@z;+_Z(xFssGV%jOd zCOTzVLen(x`u+^#I70C`LH|X{G(m*E@lAvPAwrm(`YpW{zucwkJ?>YlY>)qrpV@p! zutMz9bd4BOFXAy`cYBc`36^7($fA%f#Q_3@W6iD#rU=d1n24G3c2+HCL)J0&!!_6E zkAkVaKB!@{YSWDevW?BWiAxG{V(~^dAchL{hpB+yqKWA#5N( iUx(bU?Q{|CkO&AEgl>AbotBciE!$Pp(HN?w?Y(c})l!K7 literal 0 HcmV?d00001 diff --git a/firmware/bitmaps/fox.bmp b/firmware/bitmaps/fox.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2556fa220f3189e612ab3ca91d901a78c072458d GIT binary patch literal 115254 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 literal 0 HcmV?d00001 diff --git a/firmware/bitmaps/fox_rle.bmp b/firmware/bitmaps/fox_rle.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9c491783a4c070998e481d65538b02029d78b4a7 GIT binary patch literal 11314 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 Lop0~|>*@MmjfIUh literal 0 HcmV?d00001 diff --git a/firmware/application/splash.bmp b/firmware/bitmaps/splash.bmp similarity index 100% rename from firmware/application/splash.bmp rename to firmware/bitmaps/splash.bmp diff --git a/firmware/common/lcd_ili9341.cpp b/firmware/common/lcd_ili9341.cpp index 5fa4f7c78..5dca2d3a6 100644 --- a/firmware/common/lcd_ili9341.cpp +++ b/firmware/common/lcd_ili9341.cpp @@ -289,17 +289,18 @@ void ILI9341::render_box(const ui::Point p, const ui::Size s, const ui::Color* l io.lcd_write_pixels(line_buffer, s.w * s.h); } -void ILI9341::drawBMP(const ui::Point p, const uint8_t * bitmap) { +void ILI9341::drawBMP(const ui::Point p, const uint8_t * bitmap, const bool transparency) { uint32_t pixel_data, pal_data; - uint8_t pal, by, c, count; + uint8_t pal, by, c, count, transp_idx = 0, color_r, color_g, color_b; ui::Color linebuffer[240]; ui::Coord px = 0, py; ui::Color palette[16]; uint32_t bmpwidth, bmpheight; - // RLE_4 BMP loader with hardcoded size and no delta :( + // RLE_4 BMP loader with no delta :( if (bitmap[0x1E] != 2) return; // Bad compression type + bmpwidth = static_cast( (bitmap[0x12]) | (bitmap[0x13] << 8) | @@ -316,41 +317,88 @@ void ILI9341::drawBMP(const ui::Point p, const uint8_t * bitmap) { pixel_data = bitmap[0x0A]; pal = 0; for (c = 0; c < (16*4); c+=4) { - palette[pal++] = ui::Color(bitmap[c+2+pal_data], bitmap[c+1+pal_data], bitmap[c+pal_data]); + color_r = bitmap[c+2+pal_data]; + color_g = bitmap[c+1+pal_data]; + color_b = bitmap[c+pal_data]; + palette[pal] = ui::Color(color_r, color_g, color_b); + if ((color_r == 0xFF) && (color_g == 0x00) && (color_b == 0xFF)) transp_idx = pal; + pal++; } - py = bmpheight + 16; - do { - by = bitmap[pixel_data++]; - if (by) { - count = by; + if (!transparency) { + py = bmpheight + 16; // +1 ? + do { by = bitmap[pixel_data++]; - for (c = 0; c < count; c+=2) { - linebuffer[px++] = palette[by >> 4]; - if (px < bmpwidth) linebuffer[px++] = palette[by & 15]; - } - if (pixel_data & 1) pixel_data++; - } else { - by = bitmap[pixel_data++]; - if (by == 0) { - render_line({p.x, p.y + py}, bmpwidth, linebuffer); - py--; - px = 0; - } else if (by == 1) { - break; - } else if (by == 2) { - // Delta - } else { + if (by) { count = by; + by = bitmap[pixel_data++]; for (c = 0; c < count; c+=2) { - by = bitmap[pixel_data++]; linebuffer[px++] = palette[by >> 4]; if (px < bmpwidth) linebuffer[px++] = palette[by & 15]; } if (pixel_data & 1) pixel_data++; + } else { + by = bitmap[pixel_data++]; + if (by == 0) { + render_line({p.x, p.y + py}, bmpwidth, linebuffer); + py--; + px = 0; + } else if (by == 1) { + break; + } else if (by == 2) { + // Delta + } else { + count = by; + for (c = 0; c < count; c+=2) { + by = bitmap[pixel_data++]; + linebuffer[px++] = palette[by >> 4]; + if (px < bmpwidth) linebuffer[px++] = palette[by & 15]; + } + if (pixel_data & 1) pixel_data++; + } } - } - } while (1); + } while (1); + } else { + py = bmpheight; // +1 ? + do { + by = bitmap[pixel_data++]; + if (by) { + count = by; + by = bitmap[pixel_data++]; + for (c = 0; c < count; c+=2) { + if ((by >> 4) != transp_idx) draw_pixel({static_cast(p.x + px), static_cast(p.y + py)}, palette[by >> 4]); + px++; + if (px < bmpwidth) { + if ((by & 15) != transp_idx) draw_pixel({static_cast(p.x + px), static_cast(p.y + py)}, palette[by & 15]); + } + px++; + } + if (pixel_data & 1) pixel_data++; + } else { + by = bitmap[pixel_data++]; + if (by == 0) { + py--; + px = 0; + } else if (by == 1) { + break; + } else if (by == 2) { + // Delta + } else { + count = by; + for (c = 0; c < count; c+=2) { + by = bitmap[pixel_data++]; + if ((by >> 4) != transp_idx) draw_pixel({static_cast(p.x + px), static_cast(p.y + py)}, palette[by >> 4]); + px++; + if (px < bmpwidth) { + if ((by & 15) != transp_idx) draw_pixel({static_cast(p.x + px), static_cast(p.y + py)}, palette[by & 15]); + } + px++; + } + if (pixel_data & 1) pixel_data++; + } + } + } while (1); + } } void ILI9341::draw_line(const ui::Point start, const ui::Point end, const ui::Color color) { diff --git a/firmware/common/lcd_ili9341.hpp b/firmware/common/lcd_ili9341.hpp index 14957d6fb..a3d29f212 100644 --- a/firmware/common/lcd_ili9341.hpp +++ b/firmware/common/lcd_ili9341.hpp @@ -57,7 +57,7 @@ public: ); void draw_pixel(const ui::Point p, const ui::Color color); - void drawBMP(const ui::Point p, const uint8_t * bitmap); + void drawBMP(const ui::Point p, const uint8_t * bitmap, const bool transparency); void render_line(const ui::Point p, const uint8_t count, const ui::Color* line_buffer); void render_box(const ui::Point p, const ui::Size s, const ui::Color* line_buffer); diff --git a/firmware/common/modules.h b/firmware/common/modules.h index dc5f0c10e..aefa79ff0 100644 --- a/firmware/common/modules.h +++ b/firmware/common/modules.h @@ -1,2 +1,2 @@ -const char md5_baseband[16] = {0x95,0x5d,0xe3,0x7e,0xf1,0x75,0x8b,0x1a,0x27,0xea,0x09,0xb7,0xb9,0xdc,0x7e,0xe2,}; -const char md5_baseband_tx[16] = {0x72,0xf5,0x35,0x17,0x37,0x57,0xd7,0x28,0x5f,0xc5,0x8a,0xc0,0x0b,0x71,0xd4,0xd1,}; +const char md5_baseband[16] = {0xb8,0x9e,0x9b,0x08,0x44,0x34,0x04,0x20,0x0b,0xbc,0x60,0x7e,0x67,0x88,0x53,0xf7,}; +const char md5_baseband_tx[16] = {0xf2,0x82,0xb2,0x1e,0xc7,0xaa,0x15,0x73,0x02,0x74,0xbf,0x51,0xbe,0x6c,0xca,0xd0,}; diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index 0133f3105..b6f8afbe7 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -715,6 +715,83 @@ bool ImageButton::on_touch(const TouchEvent event) { } } +/* ImageOptionsField *****************************************************/ + +ImageOptionsField::ImageOptionsField( + Rect parent_rect, + options_t options +) : Widget { parent_rect }, + options { options } +{ + set_focusable(true); +} + +size_t ImageOptionsField::selected_index() const { + return selected_index_; +} + +size_t ImageOptionsField::selected_index_value() const { + return options[selected_index_].second; +} + +void ImageOptionsField::set_selected_index(const size_t new_index) { + if( new_index < options.size() ) { + if( new_index != selected_index() ) { + selected_index_ = new_index; + if( on_change ) { + on_change(selected_index(), options[selected_index()].second); + } + set_dirty(); + } + } +} + +void ImageOptionsField::set_by_value(value_t v) { + size_t new_index { 0 }; + for(const auto& option : options) { + if( option.second == v ) { + set_selected_index(new_index); + break; + } + new_index++; + } +} + +void ImageOptionsField::set_options(options_t new_options) { + options = new_options; + set_by_value(0); + set_dirty(); +} + +void ImageOptionsField::paint(Painter& painter) { + const auto paint_style = has_focus() ? style().invert() : style(); + + if( selected_index() < options.size() ) { + const auto bmp_ptr = options[selected_index()].first; + portapack::display.fill_rectangle({screen_rect().pos, {screen_rect().size.w + 4, screen_rect().size.h + 4}}, ui::Color::black()); + painter.draw_rectangle({screen_rect().pos, {screen_rect().size.w + 4, screen_rect().size.h + 4}}, paint_style.background); + portapack::display.drawBMP({screen_pos().x + 2, screen_pos().y + 1}, bmp_ptr, true); + } +} + +void ImageOptionsField::on_focus() { + if( on_show_options ) { + on_show_options(); + } +} + +bool ImageOptionsField::on_encoder(const EncoderEvent delta) { + set_selected_index(selected_index() + delta); + return true; +} + +bool ImageOptionsField::on_touch(const TouchEvent event) { + if( event.type == TouchEvent::Type::Start ) { + focus(); + } + return true; +} + /* OptionsField **********************************************************/ OptionsField::OptionsField( diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index d9602f52c..eda092573 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -305,6 +305,37 @@ public: bool on_touch(const TouchEvent event) override; }; +class ImageOptionsField : public Widget { +public: + using image_t = const unsigned char *; + using value_t = int32_t; + using option_t = std::pair; + using options_t = std::vector; + + std::function on_change; + std::function on_show_options; + + ImageOptionsField(Rect parent_rect, options_t options); + + void set_options(options_t new_options); + + size_t selected_index() const; + size_t selected_index_value() const; + void set_selected_index(const size_t new_index); + + void set_by_value(value_t v); + + void paint(Painter& painter) override; + + void on_focus() override; + bool on_encoder(const EncoderEvent delta) override; + bool on_touch(const TouchEvent event) override; + +private: + options_t options; + size_t selected_index_ { 0 }; +}; + class OptionsField : public Widget { public: using name_t = std::string; diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 70ebbe6a832053424035ded7a2a8fa7a69c85034..0c1ec1bfc0c7f714e9b9368bc03b7f9eaf25b16d 100644 GIT binary patch delta 68903 zcmeFZd3aPs_CH+rc6F!IX_C&~SqPo(5CTE$BnT0Z2?;b=5CItmfpIzsOS1@J5hE%c z77=k7LIV{NP!`7t;1V(-j*3J;$Nih2&agNdM1>K>%MyC;`+n+ng6PaV@ArM4_xb(x zyU%mFwo}VJb?Tf`r|R~5o#}P%^t!deW|2A99U(SF5OWF*UeQD(wQtF*MB42Wq(V=>igX9eo!D6u+4&U5kp_Ppfmoh*3x6&djTc;JX(O9jYwP?k3 zvDC^w(JIYP^)rd*Ot7-(NHH}|l!m==bIVh$Y*?h2ZWblW8|28%CHC&O6e^5(r-V0H zZKSwNtg*67k>YG|t(8sDiJxd{fQ9(JC~;b9S14z0rtR>Bnj+clev=&Ggwz)4i`H5X zW$49?LPAkcc3%o695~qZg424!QYyQXL+ofTv0O7ZB)j_sSzNR@OuZ9LX0nOVVw!N4 z-4`t;XM7$s&1)|9bVQqE_fJ7pX}F7hhj|B*mFN3ED?$!+li!9W(=4$ME+1)>2vdQk{vg{raAQqlyIGj;l1B}GEVGLtn z!F)3Cmi9f49mT44BL?sji#3SD?Ws@9vhr zTH!%z>xB;2u*g_3^LIy4{a9t;;d66Sim!JR9u`r#A@I$4a%3=;RnHR*YNXFq+lrL& z$?iYdWawkVXb3 zXExh&Y(zTcW8)LW?D+fqTRd6TyCm64axZoWpxbfwSfV&IzSe7*n`;-5;qqDLegUR? zjCCZ6y+yl^Nr~bz{T6S}n5KGJO_De+zRVjQi|k(O<-8nn?_~dzB;Kd1OoSWC=jH{egz3sy5(QeUAtN|V4~L0UDxW0Ku15qVoYeJAngPmr`Rj(fmCs*m?N{6 zR52&|ZZFCCwmoTYR5OugdD(ZVVn+OrzMr)~O0IZPc3)%3Y2sL?ASL?^`={Ad7j=RO z^JMUc)j%rLfb4$T$5+hLfqG1GLsGZ2J-DVtXCoUSKubqmnHnp*zw@YCe(#}vazro^ zvJ-e1`i;kPkoJG@I_F zGI!J^nAds+8%(y{)t#2X@LSKUO~wRRHidi3s5S6)!}D>d1Z z^3G1IGo@sc%=XIJ6H}I%Y@Wjd(cu{1z;K6Bi!Yms^{=#MxdD_--zz! zSNU{kKEYC5&C7@ha72P>;}}jza|zVvP(oUeJ~@_<(&5CZkV)rI4^X$aVF9QdXB@_{ zHDhZIs^<2xl{vN*Q`^AyV~#ft7|Y`wCD%wvJf`J*Fsb~6Cn3M&T3z)~ghYy#I~|;> zcni}V4P)mz_{5dSopuKnRTNgLI>eX3zF>q>)6!itJGZy%LIg1kUW;FdHIuFgDzj+& zujY^y^%XZdD;y-Zs-5%XS3l;@%fD+)%X%B>d)KuU50=bbH}}}p$BH8^t`<-HNLI|b z^!y4{*SyieOXm^3JTm#x#sQIjF`&Pw5roTiE8f2PnC*kBk5xomT&Ib+_(W6_>iiub zR`t7-t<*kz>2E7|?Wd6Y@sGla9Ud~>zQaRJYvyT|7B4;NAuVm5thRWmD286P)99}E zRwf*=*p}L&E{>rkm8&Y-Jn1{5Jc;(Inv))C6>i&K{KCmK^MrymRjQW57oV*CqzbFrctEto`8?s%`RrVh z``dPxBWm=yO3=JSb8(I8Q&8!YhY-uWIhUFhx^apVzbL6jt1j2A1m37mu0A$Sb8(fR zx%i}hJMcRIyFqU)=)Hc$&-4~RZxQr%Qo|09)|9!lYUw{bq|H>Vzc_|is*ZcII`y7J zLvhVR4o=mlPO4iD{~$iWX*w-^_tJB7UpYT5-SWup%CmF%a7pgoj!%`rHlIg&q9IRP zyZ$fQu6HI0g*0DVb8e|+SzK+^GF|QNYHio5X*$Jjg*J0~PJ8sG(;jL#?a>mUNjEw! zHFAIzqRZ^5e7KB^Qb;!YyyfAN(WUCmLTBRz4Kgv1VS-gG zdSY_-z)YnXV!l}Pcxps{p?>};mFr^QL5MEXen)MLDp452AHbniGJZqJZExe50@83 zfXgE;){%|fTyC!ZcP_snRlwxbv}@Vd%dC#-Dspj*>bNJTlYqge)htyQJmHk(5pC{E zCxwEu^DOrtKQ9!Vt2{fe?fln|m!*Vk>d0dt#?U8r9A@OW->27cfZcI`Fz#N!2@#If!p=f^r*|)s3s4wS`G;L zSZcuNI8R(+)7RCi?v)X8ZwTGY!lZjy^g9`Hx}OSxgIA()>sOd2v4OZqccTQ=XJ!iK zv&vd{0)z{>XaC2BY*-6(Lscu^=w1c?d(Lx;MMp0RQEyz1h-o?|JiD$O%ob@#VVpe?JT-gw@ZBkP=)mc*XeE>s1BN(Gd*7jJl69# zIk%6x600IvoZF92u5din!lnG~I@0y%y`*d1-K4ATo+UO~@T5)SDzk}~(^YDl+9h0$ zQ>nYwPEjEiuc9u^WuxjnTl8gPbOdr@RbP2d?t1per5m)a$jgRE?d52#x@+C^2W+!# z^E!#;aq!D)fCy)!cH0RE>fF)luDVHBCe{y;t*uQH$z>sW6(}*#W3cM;Ida^3q2Son zDAkG7qgSKE)~=#O&B)c9#xN!&<%^r*YRQ0#_T16K9DKRmb4IGkIl^n<5=**nL9R zs!0YI!70lOPOGpflA(BXZXt(QOhMBVF5%90P0XTyc)| zM?QusWbPB?Tk*M!ydU-(++UDJIB8tI+6j=n7o+5VmhZL&*JP=n$BR zGZ8ncH~yxFg$OZV&q$=_uu;V>0Z-wltq)1E#lE-8cSvXz_;PWv5{M=ELH(R?T|FGtG4FKJl7!$*|F3JFj^K zxMK;QQdk_RH-z!SusDi7a)LRyAdUcMJOj>X2kf5x--PkGSupZU;1O%(?BgDL+gi_^ z*0r8-raXrL%R}%aniT$k%`q4{V!TzG`#kuA4>~;LmUd!EwVgX(eP7A-P~H>8>8G3z zR=`l(se{_lUe;TZnlv7~qQ!ovBgmHgxT$>-5POI*s zN))@koFo*i^-Q$J*REAMf4hS>mBI}UrK$B8Sjf$IV^%bV2DJw6uZzqrMN>^^YLfNO z=Xn<}@_u2JY=c$8^Lwn4?xA!GLgz09GPe+a7RWU>3FKBk7s$LkERgppyFfGy?7%G1B0R;qW{J7!A@@pbb4XF3AGWDE z@Od4Cn;=hJ8gefQvJtbz0mUKrd@P{F{o#=XkW$`9`0*S}zcYP&j$QB*X|7$5@vijc zI;{4;Tn;VTe8eay4hLzOk2TL09js^$+xsHtQ+D`*0S=DW-mv1W4-AA? z9?$`(AIS0-i9f`J+++QBUYTU(_`0%?yU5S1HDbDf<68&8!FLN<26frE#o~Cpyx?cg zEEbcjGdUHJ&wCYY-2Axq8jtfQoc`fP8f^Ag_R11*;h>=VV|XTOx@SNr4Z7b!`r(_> zhml_2on||ii>9p)h=vK52KOT4S4NO;eG!D#Y03Uxk>t#tNK!UhN3LDck@`PHkp;8$ zM2o==DbSD$zGyPBNkfdW(d0>O1X<;Du3F_(2B-WSGCUw&5R)^FgyaE60d9H@{b9K# zma@7EL7RLwoe=n>hyaNF8SN&Np+avI0Wx{`Gs=wyN14EQfJ(qk;Ez_v#pc6BNK@0AU?VH1TZxO0kl~I>oP; z)hV|9-=F^@G^jOPS>2lPw|$9A#brk(zO~?k_5+t=@9&>HS2>}((^%fO`uu%JBx{_V>#FX&{9H7hWkZg9ZgJUkv_ol z5bs=uLnh=)2u=61a*>*yeWfC=;c%Oc*J&;zril-OC(Npfl-}Bc59XYnQ!}>BW*>vq zd($J7ixsJMn80;f!w)FCkv7mG3F#uUpp*xC>RDjfl&Z^B_7eLVJ1y%gX_P);?KqWA zW8V>OYMvWHx^cQP6ER7xfk=yq?5Wh2rCUwX{y>67Q(j%IL0MloX!yVl5Gb+Vi)8sl zk?IGNH3SybxBp?;?Hp{zx!x;mz;5UJy`s;?6b&FWP)8Og)4iF`Xd zs;ma_L$ZaeFX(O8mPaaGz3izuT#AlLeh`TbPzLyPok;FP$U9wZ7Ju;qH3tpj45(?A z%pqN06ZunRGzMUn(n5SV)zwiLfLTfinQlY(k?7tmMTb-tZTY#`TBXAW(BWt3kaxyA zUH0S8oz>sUGAK<->nqJrC{Tw1@IllMyD(B$*CO7TZE>=O8*Wy0!?-#;6DnCzP|eTj|r{7o!gCzLgFWG+&HDJ9F9B zR=OmPBjC)?#PizbiKM-V&Ca7!6r7Jnv7>o3C&?V-oYe-5MB6$xXYtN&p3A$gD zl`CazP(DpJUI~Pc1Anf0SGcq)pXL}(-~`Bm!@{3SCx=US^U~ITt9wtl^lM(a>EG(! z8!j~$&;hB70~Uu+V6j)diq^ZwTpcc-T|l!_C-U;)zbtoz%bzcxSqb@pn@4qDxa7+M znx2*Vi;|^E31;!2h=ayVDGH_Ujba&tX_5%a4H*n7)&U3cO@nE9_EU&&SJDc5gck@z z%XE91z0p3sGOe;^>=&b$cpJ58T7ZZ6_}l0{9iJI~7UnIyFuGdooX1`oMki@5p)53yX@=8vI_rEad;r?sI-D-o+>7|a`7CY(wTXrW zY}yFg8qM3wSRj&H03#Q$)H~=_WsH?bFI~W1zk`;Grx!5INIFDR-N#0br1^ZTOGeV{ z=n3HT0O~_gn>?e~^C;7JkPeJuUyh`Mdg5`vq1hrSX2X6%m-DdoH*}NcuKPrC?|rPi zh>qlW8;XFl@jljC1X{E$Wx7$cRnrEXkMCngN70d*tc4;Ov5;wsX``kM@sAg>=Zk5v z<_p9xEM%98>1s{HB9UY*V#`bD5={x>e^|sWmC#gi`68wpjd1-UmOUCY-noda9!(p? zwnZ#s3>_r?&muN{4EO=**<w zN)6MMVghH?upy=N8O>tkt*K$Bd0yutrYXbV81kO0VdKl_5Y1l@KT^XslwoitTqn6@ zF%!!%!6OhaUChRpgJ4q-pShT=E~mpZ%Mf3?m>n&rE8|uy5y=L?cECIUCSXzp2o|xF zt*F3@r7UGzE9hy_RLqu)!{j1-eH@*K@KE-h^zQOFL%u9LStL0@DjVWE3yMmTNN@^tnzIxku&H>is?6E)9!W*V(h@_3pcA9>N! z>GR^wV)p8E@E5}C(=pEovuDteH^v?wzle?00!3zQ2UTW(oJA#v8fVZ9K{PBo^!o4V zOH`at!sb;`vpBBg(9>1)-Uy9>TP4d5U71T?7f^cWrTMfb%G6t0T|$a)mq; z#Q6bQy0=v6Vv%2UZTk-y@XW^YB}9xB>l~ z{D(*i0YA6*k%gEjTpMDcbF{}4xNG*Q0 za|L~PPz@|FE3C6+2sZ*20(Ju?0}>L5X){6`BAT89puO^kXa?ubc@NS2Y+i=j9}aG< z@$#N=q?*OD49SeX42LI|u%i#rD(wrr+)j(wll?V0Z1Tf&py>3o)el25aAOWlzxyzq z5_bV{{;FxxXCYl_x|AZbL61Kl+v`AMTAlt-dl{7NMo_mC5iOB!p z5xUY?Ak&P_3{XV)dPR*@Sr{38y|GfgL@eZ zdXY%!VyLH$GdH#I9ko75+seLG`6SDlA(eUA zTTWU;GbGu=#5y{_%;hvELLN+AVP&|-h=Xe!LOsb9I(kdHaF3vl=0ybJF|d{rwyuuO zG-ODRdveHZC!8&V$crLi6v-qMdDmc5qRvfd93Abrb{ntMyf5z8veLF`CqtvQoSBH|0fka{h| zHm;?{5&Kb|wD$?*Jdaq;-W`bT0_L#2lgP`6H-)Zces2-?m61tCVcT@lG2u#cCNY|O zOHYT`H*2XWPQqxc4~V1=(2h9hmGmezr&otENj@pe>y1`^uf*%}R4?9&)RYjL{3s|| z9LguX_fA009idzI=94PK3NfxnX`!thtw{jRH9hmjL&L$1S?{&XBxVv(=CJjaB0`!9 zGns2MI%N0RkYEy}zxzvZgKJ}zGLq6SiN;&)BF=~$E z_4*tXUeKBOCZM+@1X<`Ynvu~`jrac5JM+F9!gYtOhur1mhFXzKsAa3yLp$*FMx={s zS!++aCY=7dCv8RARLkNX@5Z+yU02JBAE)J-35esJH=#_!+d?~UJx)`5;$QZ}Q9slZ zud6+jv4PqmG@Ynyc<|7?dMXOyWtlD9M2{!TmV22D7Oh$JQh(wYT~L!Q-6u1fi_XiI zfZhgZ2TXVnoC7EV>_oZ+U_zWcc3%UpCOci+ux!Ufo8&Q|sFKpo(IO><_Z%pQTkI zLfuaKU22*%$d_J}F?>(afCY^u17_A>O-sNHJ$OjBi(+|o%6%+hgn2-i2ZV4jd;U+b zv5Ho(jOQW1C#*R1{PXlQ6$218`_Voa^1J_SldCG?u_-599=v1 z5p~sd;x?f{b~gw6X9@WUsC)?oF=tIXo}dh z?GYn6<9sAsNHSF`)%6O($}oazQ_~9NG`p$kp-+u{9{!+}Zt`hQh=Hulwl5$0hFl@$ zqM5cG51C7T(3(q1iQxtDZuwSq2N|U5kZ%z>K4?{M67pz)p?_zGt_de&?ay|qnsnO@ z1x>9Kr<~%pY3V|fbA9^s8LExKHj+EMJ*Mx58L_bgiY5_V{bt;G+E(1}gznkhty!%z zadpPfH=B$g`j?$4Bc=}})@=QYFQ%Z2{2%V#)EcoPq4kAg{Ru^ESZD~I11lU{68lJi>fiT`1$rV=_=Qr^Yd*@ zk5d=1s9fNdMzLwqjHlCen{VLGH({y zeop40-t&B5qKo8eJ7|-*T^P=};L>?#o9)e@EQ?J-?$~zKb}{$c_Q=LRVaz&)J0Ok1 z&}U|-8w+Ax#l70~`?ma-jwjtT-1rkQmW(2G(_b*y`RV$7F8-EH%Srep4g0Tj54I44 zRW8AY8p{eHD7>T7c!e z3jOp=fR((pDL(VF!b3DY`W-*fnQ9_hc()TCVpWG|mXOXKJ4Exu z>3;V5AzIbj>oXkYrka-QTHoa^@|>;9TK{a9=q5XQJNyX6v&7DWpboQ^+8}XWjdTFkogrp>3v)#tX1m{_<6?6{I@62V>O00j4qh;Z+&PEjx9D({xI4f` z9HpfLe+;ciTMXMRMY_;^Ou>V%%H$RpoPpaq>qwK)a$+;*fpjirb~HP#%X*#l>W`jf2{ zMR}b@19E?ll&fL_QZYzPL8`vuJ@X%sPLb}yjqGD|fHpFuZ%&a$de}A8*Io(oR6h?h zAE#N`FO*cQhmAjuvUiX&Nr+bp`KAXE3=o5)AXXFJ`G7QCk)Z=jokQ>Jw-Yi zVM7$JaPiJM_Q5+eb^Jys!(ufdqX9O+I>1)Ip8&(^ zu-(@{qa*wSKp#QKN`yNAMYC|5GLe|Rqqs>q2+r3xa5D1-%YT>V8`Pn>HWTr=56BLi z&%ID)%ig6X=a0c~?lvWNiX1;qfKxWUoLJ(du`{I}h_Uai9%{Ca?eOTrYwZR(Tv&Cwgy&RxbKtrJB?v6C>_$YYQk**^^7-B&~eG za>j`%_PN){33nz`d^;f>lW&xs3!MQ8znu_U!Baazh8ra;^odfUS4uX9qAEJ)TI}Ho zScUBkw_tXH47^jmm*u3n22ycyJqhU9FL$qDnB#iBVSNQ}W0Wer?3uq&hcgRa%rHU? z);Dq7Zk4SDDK9iL^Q!w^+0VDxjsr?wKP7K6@~+4m%ofKc(qJ@5>7jsI=lSc6^ya`v zN?fg!J{91@6)n9>zPf?2M#-bdYc^X_x|{I^iI`L3cfT0o0!W0@n_bFKPjX&&fB7px zW0bbsBxsD%$Y5B|7^Te6uLTX?qpxeBSddZjR?xDcIHF@K=GX6jNX~NT%321iJB=t^ zhLjd52X5ZIC36-rNCN^6o6#vbgBt8mU@C&pUO>&k-uMJ&Ym0_N!m<*u!k+eXF7dl{ zAv3I*KA7u|gMGkJeAQfY_wf*mKvZVhoGhh;X5!v(I6vN#44iB37?0HwOLWcDoQ$t% z=r-Qseg4=o9?ta_>6DCFeqpbn8DBZzCc9zp3{21$egl?lUQmbMK|zY&++b1*=Lm%b zi(`nPA0fv(*q{%nDbpUrsb*;mNtXPw8XLXgMA)XocRk`>p+VddA+@nZA5cr-(?Qxa zV7}N)H|18Vo94||Z<=52bKe~d>m1(jn_!WS4{<8_KL0>TP4rk{OM~o#59kW*?|q3F z#-;!p_aV*E_VV-8iU50!Q_SuIpkTn5DKY~p9-pgzB39$T+ zkoylmtNI8vUsrN}^0Q4m_s@QIl;>_xa*yCshL5mWz$Y}OkEvPvrIPFNvvQt#UrDX> zvt=Kn&x1;8o}X?17!vOrB{k8{KKYp1oV`O4WQ2Ld(8RrQ8~+T6*V~&zGRYjfL2?A+ z6p5EC#fSXv4!@A8#V09|4F>56uiyQ?e@%qyb0JfQ^ctk!_LnGWOp^2v(vSN^5{26Z zxXu~$yN3m4W(h>yP+4M-68wI5c_5RFD$z6;oKi0&mj(n9frcUw-vL$sc58Kia!Q@4 zMPAU?pTsuR<|VljD?lVyLPg@1WEcwGU}Ce+JrXrW1h!fXWoJmA&bn115dq17OhA7? z!!SaIA{+yl0JsNG4Oj$NzRD?*vzXIS9}tDZ8;VJLVp$^C?Q|eOeoM zz&{57m53YiA$ZgkD*HgIQJM>1U%J)j{=D1g*ZjFihA4tmWxs+(DQSZQ9mJ0P552|t zvaiX~@6IL&&#)*R>e~R6@066!z0>EjOutdq-**x#Z#wzd`rQN>9n|~YQqtS3-y&_4 zQheK$^l!V%SNT>e>CEo(NDQb2_5O))2EtQ5({IS1sz#$~z#DNxGABzv2Evk=&qMQP zVJ~BkBo2EF*Fpd%OQ!H(Fh2J>a2wHwd&gpvrcvV(H>sK;8l%f-vuaZW z@@u`U?F3E8zQfDa=`gPrLNWHUuo7H#0+Yy3lW&Zg4eO%IS(l)l^Q<_4T!G2}0zelrK=cm*#FiuMHhBff(998g+oMJn>;N2Gn&0{NZ^-NDW(Ja-X5zoS=uW1D2oR@|E?^ggC&l~pe|BM z1y`)p5b6<{XM8ip{TQNEB zqSKyR5k}w0(eFDqOF>@<^w}K!w?MZ5%zR>(??YNbY?VB3PmnY_lS1v%vOOkN{fcA7}6B1o*O;SvKp z4%h_XMi*C5oZJUM>RsT?%)djxAifH47U_uyFC*-E_-c%R+!JOc8>Az= zjF7ASlkbZ?=wLTGpTt&Z3sm-4kn=sDWWqA?;sYBK`3T`}Fme-#DsL!AwZCFbmi_CByTDO{w$A0HGsU zdM1dy$lmGmbF2+x?GBA}i5)vhZyEh;w{;a>D9KX45X_t=v!mMHF?s1>p)?s5mjPnD z=TTv6$W2GSHKf=YcDdj3vcae55M#2m_&*GEk%z55MMva7)q69c9AhLuP9>712|H81aH(><<-eQ#W?{FR^H`O>Yzzw%-m`iIJ`cZzp3b3@^sJY!&HPiE%E&=8*epD2I66 zg@NG?b!L;pN~r6K`=@}_a!-ks^siHAUU9>e3VcBaBux$oLnaSBcAoF>2ZaQskJoX7 z@t;r(4~N*)f6{F81;1L!-yGC58BCFI|HN(8x#ru_R%kcpE=`iA;^xFZsk!J~P*!#~ zfoYRLeZv}Tyt?V+LFfU!V*d#tc8U-?$_U`{8LTLz^G+i?&BQOMSs(PrReWpYRNs^3hCAU|3KfHb37vIJFaxomoVn~wy6=Y9;Nz09Q2UVQ{ zw$RDax}X61B}+%qHuee|`)e{;>{qn6(86y0iuM)X@v|vk(SgF>*_yAQ4Ue+@$jy1# z&-tp&R>Q}S$AEj)1YgP>tBjUbb^A_|@Rd39d_}V~TobpKFmor($&SP4pJ5&8b-&>I zPdd^IgM-y{(u9mz;3luT%Exu&sGAfk?kdic6ZXrLTt2@iz_*sVNV+l60E*) zEaGc=YeKB_1hTmlGaSSA@%Pk3-xg^_Z5wVYCa2=h3fshj)5-P7?!~j=aU`d-XZhzF@g<}~bvBQvO#^GMxS#f} zEyf2Wo$P~iG=1nJ#rt(HMS31^w6T`jK3d68il4h z<2|Dqpl7eR3*aRBhMEmeDX9#9mhsL}Bj!9Zht+%oQpCvL!MyYsHG89_%RxNyPcup3e8@RFS#y4ZHXq?c>~^F1nT%6z^5J z_NB+y3i;E?F=IyUbbKjOP!d&#lYqR&;wv5fNafJswRB$-u@~H3CuB+%lI^NXs_Uqu z+lWiusM$ZPG~hli53l_T9NT76oS#%n%(3MDLE4j6vfi3AV^y(mLLjZJ!jNka)A);q zS}9v7T$^oMQ_K&-i;*!Tb%m*=IPydUsr}7QzyE8oc;a><_Sw`bSg*2o&eP1>#m347 zakU$aRWrp#)iwd&=4>dwhTh)JkHa@QsqKA94y(O@bFBOT+kOGu?pAKypK}O%@u{1g zZ(@_=bLYpPrb1qbE!q9?4dWh8JBxI%i9FS!#ttn)^7uKY=a9WHkRqhZel9A+CeqlD znk?=1A4}GdK5%uvH2bI7BzH*1;DyGtjP*QGo-3Tx5nc6!=cN0;#3g1x|4 zb1wPS)MrPjn|v{^8viiL8?i*IDR((M`$oAdE!YRJ64?6O%GXE}3FF~8Ix zZ4c~QcyS@g99ViQsY~59YLK#w@;sGh&Hib1lDV;tng@(euRC2=JhZUJlCIen(P$+B zce}qbb9k+0pQ|pRZem?Lq2|+dnH8FCY3sw~ZGOoztX8wPDK)Atid1IucJ4td#tNLT ztk*cV@kU^mE~njk&M9Ew?7D z=J>=O0oczaDHA-tnkY-8{f7D@4%wY`V-jl)hIeQ@Hzq~q+cQ3YIKGz#us8liQxfhE zo_NV4Ngo+v3ZK2bvRo+!}*;0z(EcG=TjjfznkrjWPG0PXv2Sx2PKvYzBOeP@XVl!w*!MJd^ke>c4hu=c@l&*PJ9g|z z(!#)S;wgx9X)U>RCd>S~36}kJ2Fr=Ei*YQ*l^ZI=s3rbDO#$LXy0@m3+Oc1^GLbd_D5N z@Eua}d%4NiFx z_?_9iJVypJZJ(Mp!amOy1X@ zq%;@Qq-;*!>~j}k_ZH3}NL9*$C3zolaSWe(8g7sOTz0n{-(6-H&P%Ihm4!IBCO3wW zsa#MSpKIAqtIbH5po^Yip$;4Ah`pL||HTqLkwwLDKd{G~^79hQlKb%bodf)1sl5RN{v#F%psAAfiJ!9APxV zp$KCT79fm8cq>8!!d$;|oKrDB4AK_wgv=;Vvz~QaqKSpi1k;*5?oYw$21)CUA|la% zJD>1!YlX*_du}I-E8fY=aMfVLp4QykmBu{oi$0d|6HV>?qVIN+*z|c`x@#6nGh8z( zdNA63msp>lz*;bNGSwKvI;D$a@Q?qloXcOnXhwVQLN`2iD?C1Mb9)4$$JlawccGyS z7k*i9*Iq0XFT9JlDMOv7wDUi}>;=qt-&h6HreMC+jcHOaf9oqGvdZnlrLmuAQsHtR zv-EB}L%dUc6NXh}H1@9dPEBj}O~|PCxC?zlDu&*f;Tl?zVCwC<=tyJuLbu?eJrSQC zu#pl39>Y~^BW8THoqx?>bS1%AwclZE77F&;Wp^9Ijk@toI085|1)pHiWyalUA_EBM zRiD1aAPrSqTLwu5CN@Y7VAkP^R_2yyOeBEW5;~eRkYl|!OxW9)B&*T2H*HA$= zt6VV^qHF(rk}J0BO0T&G0!I&=lM2ojFE9#=Fd8U?LV@EDi%Zzp2fA^hv+!fwm`pyKrO)TDw zJ8V>N*rZ#Nr1v?0V4u=+iIcx4FArY~O_UD!*~lw2!_0*W$K$Tpp66z~dOurvg_^{6 zneDuSJM>qe!L;z%Z1v|rpH=&RI-if@H;;Rymwj^uZrTGLHs~rf_Ib|3#d{~X&?$2T z(24WnM)buMX2`vT&ALkS3MqD{p~HOj^I7E+!dEt5>9rrgGyLJNce^vO`AU@jD1?A1dbRiD4bQ~MYFa`LI zQ!TxDQ<@SHbfwZhg{mhZcJL&JvGIE|!B*km@H#bTT|s(PAQ;4B;JfqEz{BM~m!BH%-czrC2>5;H&x^5|LuH zAF`8MRPAOQuO&%;^RqY)9cMCzU5Pi5>t<5bd)P`3F1~3$XRmsw*?6=2Bi-tDf2#Cg z4>HL^bISjM6o0)78-GpwbuDmEkXYidiRJ{!9ppDIlO%lA4mu=Cw}u?HL}?&uhh15p zu47eRI>B(=$6ZExNf%6LPQVE`JL;vSN#6&xmWXXt4zWQk4GbmVFQgJAlgvy$I#u)s z*$N*WEEKVqeKa{PAs7wKv^b!#T)0=2DY>5uvXeeqD7?&K{WRXG#=+wNP=gy2a>#|~1won-FDfNk>0TTehfCgPJA(AL+UGrqX!eYc z`GW9I{!vLC_pzK1QngCzMIW0IqFK6LQl*mK>SJre>2f9Q^s!c8qdZ?p&+)OZLo_Gh zYfse6yzTM681rw-3SpU!@~{k<<~tw2G~TO3NK)msTvaZ_L8WA6RF^2hejwkBg`>-c{>>)3LL$3Mdm5Dm$#D; znxf!L8QzVg52+QTP6g>(1xXCmC`dKkIKH4p!TChN`P92br_L&UO-USvrjBfSBrnmW zhfQPT$DBC+47g7P5}V!b3||a--j5^W-e6zDI#IFWxVO}f_yI4Jv}en5^=NIe%;)t1 z@0O$LY1>!scaJg4#6a5hxqk{WVTyR85=nv^YZ5Hb>!ChhFXqXwl1N2y=dt*JiUn zhI3oAY(U6+sYeg1+&?drp>X_vWJ-WnowEqGHgXRmzzHg-@7C^wJW7;4_b`p9&e5({ zQinZkh^WrM*YUp<)%|iRmCUW40&JN?*L&EfY{Wh#$Fc_-jB|BWj%X}my)+xw{CN|% zE7%J?>@!hq67LAH>!Nyq_8&^_Xb;O#sfRdglq+qY2d=uCxMgJKVktrT6MXstT8dS0 zlRW)NA&FvF-FZPZ?kK3uQ4kynuyr#D?=Pf?LX}5t9uC8vmpqCR6-q9nBmv&IJj~O9 zyl7>f&e`=9SdjLB8~*1BxUu#-58U-2VGShlLm=R4z!t!Z08YqNAY|pQ2zkv^goabZz8Ss>gubG-Se;5_f*#$ZhMrirs{{a7nD)`R%RNt zI$PVJq(;hYFjC?YFPouO8}Aqc;HDNeRP}Hl8=z5VjYyE5^=b&+ug6}AY{nv%ReN)YYO6}Z zt_Ry2JEY!qcQ08FY1bHv!xfZw(aU1AeAdl2Xw+7kAmQVew>0Xc>|2x?1N>Ih_y_Ks zB}g+v{3cjCwniVL*4wDH3Ia-_&POe)msum!NjcX-yr0WBP`U1YMyZvn)M~TwdY_}- zMAWPIv4s)pL8#~Pu${c#n@YXED)nY7^{xiP_s)2|FHx@&_3(|yml5h(nkX&xvT0iN z1gAL^jax9e)iF)co91D1=U2yUx{g2F%OSU8tlT!@eO5*aWYl${w9|ojCF1-YE^7tC zDXqwYGKF z;_|QO3D^2YsU^tlnJBec{GR|j8l^5upQ7ON#m=9bNBMRL|81+DD)iUm$S2%XkLQbf z8`Y)J(yhLqonO$)?Ac!GOrz`*D>^3_4)f1kzDeV45{F8nL8is|OicJHLbP;6`J#O) z%lwS?nRMCxW$2eSW`eZE_w%Vtf;7?>wlNc=6#xJGsSH`qR!6I|geTdbqt(5K-vKvH zPSIkxN3F1Lh9GsJXh}g%k+CMcCDBVicr0XT0lyW{y9Rrdnr+HfMK5(SIa)nbrz^NRfVPA@&_5pW+_FV%W@rEuPAeEKA0>ZOGquGp*bZ+V$GLU-gD z9h!=xlQk8+^4p9F(pNI4;dUQHp$#`+FU6>{(zAVsyKexJ%qU5gzw1uHmcx$9piWva z%hzGaax{@|j4`lXW%svW8tg`;i5`b7L3-XB)oFrXa+4g!O<=h_S8LG^;m7x~{vw@(Rcg6r5UcdS+y!wm#)P_+Dp4)?at;_KMBd z-OqaaRAf4gj*N<4=65G&fEJtr>9{q?cY;(JDyQBVz6FLOMlb$b)vO{p@aJ||nw;>I zCzM4=Z+UxOJhqIVqKph_V7f)&&IdPUWsp2tdd16Kx_t93VdGsHCy@GRLAiCqx$y$H z@pAwtK^tB_0nqc@yfN=3)pc*o(-6VYs8oVrw87Gkf(LC;x3Nf`Ak5Bn}oZKit3>|y$N^QtDOkppk1M_1zQX>7y_fWz%r+;gizj{o1zKn>9CAB}hhs89`T~-PU#Qkg z{k-wY<|ke{;q~=ZH++Gm(G}7(sIbKD@kBJ>KU<|S!TaFj9DH-em@SeNgna=5 z4$o#@z=zX_TLA@tk$|y)_4s@Jv2arI^)vy%9g_Uk6=yOq-7Sg?j5P@4061~MPhSeW zvnOz=(E;yZipx=v)Xc5rq|IG!A~PvTo!a{-J}r!ecQDyC1EneW?ZNmqbctO~Qm0t| z43tSq;iQW9x~qSToujd_UAaS)(rCmTqNL_&cK((daaTTBosfP|!3eKXj*)U-5>_e4 zsKw<5VEk@J=#T%ER(}ZHrt~|rX*aBOs_}*7+rPnhx6vkLu`goojOhrF;}3d@k-FL1GJo&0JY5N8Y_@k ztgyEc<{|7rI1%Algo_b!VV4;XNq~4B$B$u0@ioB!{PjBSFm<`P#mP1HRNSHLd2ZI2 z5WLYTYLl}e=*25{VodSMIc=xW?|v7;IGh(5I&SHE{c%R{O;AE*Dd_oWxaBZG9Hcw{LczXWcL>3vXoTNi{W#vh-txq1t$Fq z1sV4DF!b3#`_r7wRxJI%&zDBxq_3gsYYuZR?zua~{dzq>0jz;>pohl#5L?29z@U>Km!cv(WadI_Y_ zW9jNL-JDP)rk9V6rCy`&vYoxv4RQNnB^-wzklPTV^b!9GXG4bic_#5o?^AwdGsNS| zi=S&5Cy(=~L;?8HIfgtD)}hy8c9j zk~uDm`?cl5wnC!9=Qkn*tKYlck~8?ZR&B4_rjzZ(Uw80fcRtNN>7!27J^>{hFLipE z)JHwI{IJX`9L1fO#kf=^HpfX1`^0S=LsCi(defo82CL(^F|v#gv0N6R2X)d)rF4x~UD``JiJPbRF!Sl~xxeRW z_LfP#Ec)J{CWoGUxGV>{z%H|*Otta3xSYOHiQxZ zF$4^RMFa#XB5o4EKoEnV7tu==v0%9vSl}dCMHEXy5D|>+ih|fdZ-TuCQR#3fa<-rU z=bhce=)J%1^WWz=JMEo0GjpcA^Uhn;4n>?}VFRms_?T_%Sf8n1o*k*tKrQXVXUW!>McTnoRijW=GQp)4HDXKbxNm1tUaH4WEhgl4m z_?DY^oE9g!Y~fU1s-%QxP)xNH2;a!TW^%CU9PC1vz%BypOxVF=PJ}0OsBs)>5|8_d zL-_&qZMcZXd>J0kq4GG?wLI=n*q5Pzbu3l-AY8y>-VI;F-M4WDOmta|_GuU{3MSKo zP`__wLkynq5WHTJ9}kL0tZa^ERiZ{5WMe%C3)l~qFhS75O~exqF_La@cfvKpodgk+ z9JpuT4uL!RadEYcWv2PSmip@+qVM&CB*Y`2JpoS?)zUt(*~aq6ehzMu7%+N|6qLdJ zgb@8vOB89%=A*5OR0(tl+4-F2BlllU&*vUg_VR3a|X4X&PAr=;& zr?hGwIs=j_rP+Aso6weQmSdmB1Mh_HgV@+xh{*bFfbeCus z2I5FD8%Ni;Val*<C76V(Tq)ZsERd8wC7U-e-4F1R9u7Vr4SuG5S z6$BUj>);ZeL%U1iCsrY{XdLn93AtD_ZuIBk`qdzf;7xu!$UKwG;+7n&*f#*Jo@AXg zEVnVM=6PqTbOXp;7Ga^&AZ-n2)xKV&YDtz#6hh++()*C2Blm#cz}m`cb(_(ZT*9d-GnYX8k8;pGHGMaQdW#TF56$uLE04tc{gk32HsL4gGPwn!937hvacQS;do!qnQhN>NQBc zhNoTxYJXWC9!(v|Q%53oBu_oYQ?r9&VSm<5{{;`F1;u#?Rlm8D>w~mDJnaddb~KQM?pYe>h5t&BWUs*n zxDKNt40h)>xTx{LA2Pfd9ZCz#wlB{$&IM{}7bg9Z`a_~j}yL{vkOl1(m~fC zJ;+lZ^`}gTmkK$HE*)yOtW0y#Y9 z1LfyPOtl;v=*y$_DTks!LcqpjUQu3)#>jp%k7-i2M`OQXo{+wS!qYIVx17rPWaUY!Dkbn9$xQumTckmsZ3f zc>XsUOn1u35^Y{~W&%z+-p;a8HUuLQ1QF?hWL$rVtL?0)+K7I)<7w~Azu%djmmduM zm7bL%T@4CJJC|{a^m~-c7?}6};4+q)M^B2eJ~vMN;?*TFKtWQZVamvoM2w#iUI;8E zWG`&h@5Gvfi2JZ0#&_nijCubKnxRo$avCm-ETRjINkAsy2HJe_)N6lFwG^zYE#XnMq!8V?Ors zcM(dKWL)PWH13Wtg??59Ppla4R(Wo9E_bRuFF51Pd!5PBL7;B&*7)JLJE?iWnIav; z-b})e1}QNr?v2so7Y7ajPW`N3oG^rq=ofafWi%|aEnUn52P;$J6yI^np|V6&%9q)P?0Q6<#2JN4Jry} z5|tsWYxUJUAq4Fc?Fm|5fC>dL6tLASsHlK`98Qt1ixwc@G(s;r8?dd4$xUh89xYtspH~ z&%quIEZ;|{3$1VQe0{66Uy^Gvz6{s7>LUwYC83KB*hV|0rFsY=W&~QZsY)vJ_ zDe^kK=hbzrjbi&NAFg|Fou)$NCYiJMgZYA{2Frh~u3ja*jq+o$se%C8x_!Nl!#{>H zKS7ySps{^#kgE`DEp(+Gi~0F`tY_c!>!P!cp8cZV;CYlgEl zl|l3jXEzUXgjuJ?9>z4O+Si80{_o{5($F_Rb1ndp(Ts*>pu=`@Qb`SRMY;o0@0c=m zUU6vwOV>4loS~Om#K#L*KL|ro0Q^e@>^7{^dY?tGJ(`iHZ^&JXD`DRRbF$P2f#sK2Epfp(z{r+u404LuFz|3SFtLM zSamfUR-x^1Ghq`Cwf zxasTE6V(%B`CmTWKIay-ARZpg?&o4RyT^$)Uc*LJkNz7aBw6~S({7UtQcHvqk}Tc* zKPVw`^Yru>LABvIqrS!9coJOU$A6-rq zY=RO_X6^r6=m`wtRlXSLJ<4fejT9OgN-H7vn&1;)v`LaY3WX|sTgI@=AvOL;HVr7{im}s!)afenpvpYE0cEP8);!%w$RB6F(cn%yGs*E~s2v zp;qCv=o`bbR3@=k5xYj69TuHMxSF3mY4-KcjSE1D`z%M?&RplL61v-26rSmrSz=o| z6O_^IWiuTqTguB6d0u$1t#aJY4^4MWFDYLz-C=3yxy80Xk*9_GHuZ9u`%ZOCEy;CH zb@XqjF3R3=>{jTv2@gifWXI%^VK`U}Z^+*=6oTs`!a?iRO-F=u*TiavqhyTR;V5bt zy`>OI1HvT}Cp4wICOAq;Cb>%-*EN)EaUk9j-VAZ>%5k^cf34%%l9}#n9kUvyZ@CdE zUBb`XdJVrxI6iHRqo}0JUF0ZlxMfQzQgq?BY}ZVr6l4A`Q$|nJjvQUG6a@0cTS#{P zh;1a&sw0UbkT{~`ZY17`#M7Y@HrE!R&rQOxiIMc7NdINZ(`j@w)f>7+=yKw9aKH!T z&HjtF{=;rBzDd|xbguR8oo1o`D9}LsFBJJ&vxNsb(1tTW8x$M{XcpdxFC};t#kmOw z*fG;^3b-01iU}&=pY#dgKMH?6{LA21m8gW*;NJkh1^zGKe;NL^fTD~+_yWSM2$#a2 zh{Nm!_}9SS1^(pGII_T>2R9wz*2y?!z)xybjv{{9=mZrF_4c3m&N$Xjz1%OJ8poy> z(}UV!a`f8FC^`J%#B13=)ji_f*RtH32LP?8+84=4gqyIr5HribNjC}7XHn9PBDZ4u z3do-YhDTv32f@3{Myy=4+a*f9qPO3Q{3eHfO;i=Lu04#>_w4}KT(QkV<-ju>;3+Y$ zn03Fwh+UUThy#CrJHW#n;K9GVPsXNs#+)d0Uul#Ykz*t%RTcpz9-H3cJ z$N!d2oihrZlh2#Rq?sXAVzlx8Fx62OpB~S92eeHzBPgE-#uMqCUpT)q-=RT71WU zh-)UYuES*c7=jmN;+lx#b!>rl*-@w;k+cq=j>%*GtfPCk4t2~?#KRL=@9JCqaZUQV z*m}aaruyUX+6QrwqU}2ud|P@fyj3>+jvHKCTwl7%OX5(?>!a{$z+c7Tmjb>fU*nDk zWU6Zggxm;v7Kbi~LTdnR<u-oY}u z7@{c*DVKdz$$mlcZ3nYD&-)^IVvzDQ&yyIevFe+$urm}|*9=vL-r}lv{p9M;-|&qO z8tm{6aA-@9aA+Cw3_4FqUYt7%SBZ)4-j2A21h*`wDskx0S)d+G0`*ACLnWXdO=3CK z2Yq_}4Rm2WzQGdUi;<&@9i2WEoqjW(d+>;On(-XKGv-q)mxWj^F<73)2iX9Zrs*lH zc}Y0h(KLjeLsLQCD$Oy-KA8jkeR&!yLN;pJqor1we+XoFg zw2_EUs=kRi!i&58Q1;S?BM4c%zP~`h7u7cf^|d){P+&{-{aQ?(jQSq(5<=J64XA~5r^6vJ8ECV zYd;*dAAs5u*7*(U+d3ZK0(JiteihpBGW@>H>JdU70<8!vLqjfLziaNmAV-w^BW?syLazq>=f z*#P|juR|-r^(?L0Psy+3#kvzX6KOn8mSL$|j~TH9bm<5iX&aV7EjG1OJhaTbjIW)C zW#%Y4Y${yps59my>GL4ykszul^5l-Ls`FD=zYDpd(C@u)-o1x`Z0d=aCiw7mdE1>A2Az95#)uQVkbhp2qSF#Xg~q_NYC6@ys-q9}CGU3T^^d_6=-6wf75~0qQh~yF;5F zS8o7!M>c4Oad`DR-b?ZTAL%SjYT1piG&~R^T!n9x4_#!~W3m5*L89@?fuOn#GEeew zY|;ssH*_Yh!IyVot#iTMfUlj0FW-tvPKDe4qf_t*9j7wPwO^Dad_dCRFpf{c4fHvq zJ89<(icFk%Ns`YmCQfIzLV$sL5ZT{_&x`Ecko+Fp6u32T6XDKmPpyB+Q~a4*VP(Hu0UBj@)>MZgpKQ#2D5{|X0I zMS*FLZU1%7vYy=FQe>#KNN#*klHVDqZ8(CxjkPhu9Y4f<%G6sIU z;L&Nn6f9;zCoK#NYEyAvDfkv+q_0HHOx7>?Wqy|naX{tLaf&`5UOkiLCObg?AkHV+ z0h*NB~+6DoN7nsDMh+{}51tsflL$M}`SW(jhNM ztwZ!STxSVhd2WZcm0Z@tPgxe05DB=M%7_mbS1saW+d= z&j^VNXS0C@BgmffO#=R-oGiV`$O0uEK4x)oQ=CJfRo0Sp52Wf^zUCr}OqqHS@gQk;?hIO1t zDp7h2`WTt#ek^(!4g>ai{BMp2kKS&@&~QQiBiK(cIljqDaGQ`y@z3)3lR+`_Cfs0b z=ArL`puzC{Z$Bog5$b(1@N}pVN`9295$cV&sdKOz&IW>rXAPcKJR9)Pj|Pm9PY)y7 zQj66l86*9IoQnPHEx1W=E8xb#)jOuxVQFZjG$8n=8lXfe6XP1Q2$g7OW$8??ii}7a z`-xI4xN2`=zl^I6Lk_Wmy_*cz5Nm6Fu|I*BJM&7E3U2bOf%(GYy5~XS3|0aSM zrR#lS+0ATBHLz-k%UEL?5+x~MURt_zKJFb)$)`f}1y9Mphe&T>JoFYON^N|gZw_cd zF4TcQ7$bchAOfKxHwCn96#h>j{-gL0$TuPo)2OOR!8rLeoC5J1VyRH%rvelcM73h1 zemEEp*8q7tgX7@Bb*RT{C`Ip>Zr@%GwQTTbBko1G z7vwj2`Rgzmsr+_X$4I4!SsK#nFadT8TWq)qkfX6EwR|iNcCtx^+8`un(H9W$S?6S< ztNSBdQJf@g^HWbh>7%rIAN7_9oQ&db!dOjdEU?E&4=NOX6f&Smup^QN5?2ZYrjn$h z;19?57r%n5CQ`id23+(GT6?cOSHG@+sat~;dkTZ2bT~bRoybq9+H>+ExZU}q}sIoVp@wT>x(ok{Q)&k99zyR zP{z)3Hc6cu7X9VmWIYEyhxzQoIIqECcdBYn$xU9d+X5{9ezAA~Tb+Jwh}1{q@M-X~ z&nTn`k*V>m@3o&6upE{8Q6TuYGG`_%MB!Q|N&3ncv3a4$W5S7T@jULZPh58^GbiSU zBizf>qfjvQ>aAE+KL{jZ)LaM(m6^d19#Kfe6?cn;xd#q)ZcAbbs%*iwIlyBOQhF}T?_K{yGQruuofU)TlV z54a7bf)Id9^3y6zYg!I;a9vw!g#@^z^Fd9U2dWt>$7S+7an)irNBvK~_|;-IOrH$Q zGErI`6uVTi0zJu|Buevw;`B<^yIW=0Zi6v*Pa^Ckn1v^cu5XFK_A9QhWV!i4qi6Br z%CcmSapR7~cA=>(d7~uP1am721W$#=qH&*;hli&?k5_?^=h9eC$`eE4nM!6gf5cJR z80lI5Dj!4uRl^gdKLXQ-HXe_Ge3UqF2}_$9tg#s(g-94-s)PFX=qx)hLi!rT!I*lT zhtP;p>_(6q+-FAP=VE@6Y!l7XH}U)%Pcj;RU=cb6jX$sed)hp4>k>9;&>WuuqweuQ zU%_lsS&3VE$#7^w-UvcMT|P!z+(yHe80mVhOpHmnV%lx2=ag4MhUmAuB@99y-+<5=1`M7MlxM`(*YLp;QT}JZ;7LGr_hS)_Y{Rs;Wui(?<1>`b6Cb>dS!M=z6|t7- zSLZ@kAgpPO2MJP$|oPPo(%|#jaLZjzOtbfnVpKni;j$th=K+5&ecRBdGX7P8?(4@D} zdi>`mogf_uiK~~gCB2WJ6x^SnL7jgQ$TPeicjNx#c9x<3Bqa8~o#mu=mgClDYB3E? zV-ZXsMMzb*vrOY|Fi?{EJ@8lC?=V1zCjt)_Cc5Ac7+iikDV} zy!&WP)?#PVIHAK;G53s@#`9W13O-t|&h@zf{HTiAt6zsOH8{i%|5eAu(qev)X6l8V(cLrw8#Q6(2+2_?DeXlX>h7 zzGF+Eo3!d=%D$`=!?H6L5zg6MC8WDZVpFyzk_kFhmplK38l5m*)sv8~&x^psDB|U1tbg@+ zuy`$ZZlO_W@qnApoAsL) zE_q=|g7j2?=;QiE9Bd?uBEEeGOYf5?)q9C@prBi66d5o~rrt(fANo%pl9TAOR&vUcYEu!7`l^=OQNyozL16q?7ojagLSt@&yt< zMrI@KXXQ@@@&u^`Q#-uRhzgT72Aas<;Q2dpMtUM?3eu@_1zW0~8W6)Pz~fyW7DwC( z{tP<2BuJ3#T!_#_0}qk%PYLYn8c*DoM7P$n+F9vjp0~ke(d5K<0XG4-EQa+H;%eS@ zCgS*G#({k`Ht9-VL;xPL(0=iYJK5mO^YU`V>PXyVoqXD9h5nHy=cNiQw2xduIln_< z_%7CGMuOA|?(4YvJRzcgBo1S8N_a2!8CCvXr!4y+ze74)&&yY%CA1w-8>!uN?L?FO zYgR{vR`?i-7_%!*K#g2eg}JP}4A?nseM?ue0a;jlBKjB4 z%hSW1^)EsUp6e(+FHZ=I`&Y8A>0q=u4{hwEesS3<71vnu^h(YwCO&>td#iZk-E6?f zziE|Eka~7HStm#zM9o(uNR9txzCwKaZk9PNIgr_aZw7>CLB5iIm5|w>#*O3KN+#sm znWW~aI;4IYP1PXvC8Uy||0O@=^+I##D%Pd?Hy%0_d;zP)Z&*Pxu{yZ{31cAA*F5cq zU?g^(asV)Grp!hreZo`z6HU2C`Mx7%A5VEVnzB^+qa$TEPic;(lq#znnT>6OObloT zRj4ue4{#Np3vC*r%e=EhXuY$9sxlb^h+epn!-zrgmsMb^*M%~nJf2C*dF;yIyh#x4 zuQXvHUKMg;DL0|KP*{b=BuI+@OPz8vhb;?I+AWy$+Qu_-Tu_@Sw1{mQ;H}!aOyvJA z80n;94(-5&L#&nYluwajN2grn&#Xofqmcyd#P!!>a2_w86<<`&@u z$W4BWR(Kf8>Iu08<3|Io!5F+?M{p!oqXY@$dTdk)QhLa5F$3;|JQjyqjg@wj+8{Qs z9VQ6)*?f5=*=-Sa+!L_$S^N} zG{8m91>$!QU*{G1ZZFk+9@;g^F|B z)5@{f5Fw)m3IaY!v|hbX+l&&b)pvm&yjJ}>YV~r!#A^jxFuYclj#|AJ@LT8`6nE6l z(^0!VRJ%b^9Iu|9R}WH&(dzBS`b@&?`-`dfj%y-E-s?XV`>bZ!^S4a`+*SYDPUYR5nX`Oyo;pL+`kK{H22@+dEfDG1LwYCqTPHEQVQ_#U*stu2Jc+W zvXX-v9VVx3rI4#>oo_xZ9}kGXtY*Wj1BSYUnj}oipTesrB>~||kj9|dUD46E1rq8= z<5+9B$BwRzmWDr|eA^;ekYWc!U$}DvadiU#u|GUuN8iSLKvXLEeBh1u<|BQQe*peV z`~+Ld0?>b9EKU5ooi6oTvIZCCME8xLL z@ut+bBk{uj^vh)*}kTyYvgc=T@zT#Jdm zznD+;u9)jDKcIr09KlSQPf5UG=BHxL8fJ~3imMt@)|&vSC2`gomaV=eDBib*jT*8N z4B+azBPwmfu8KJ6Zt%bwTeS^w(#~L0g(^!`?@2%Ar112h8l+ZJOFU?c;>9(rn2g+x zxDWa&V1T3SJ~q0K5@^p`)REU#MtM&KD6a*1pA3i}+{cEgPXcSY4?GkoBXcdAqdg~+ z!J)Ox)Ga|8<#q0fDEXR4s}vY&0kvZ-%hF*I#7kXaD{Czq*zE!AJ*186Te$Jk7619; z-hHkTG5vlB`hN@4ulKXw<37OoNK^NLCTk@h+j~sm4|@bYac|u*LeuGK8HPsv~4`}C1i&lWCQgN@X(uK z@d<)l!b4Ao#m^pO{q@s$=%KKvehBXy$wO6P(N3Y>JTx2JkPo5Ecpidgp!F2G9H6>@ zQ}S&J{lG)Oq0Uk0Js$FbBDoHsoji0jBu=K#CLa12r&tQz%R?`R#9ixHx9JklMbaZt ziBCnNa0T4ec-G-@<9P~C1D+T0yn^QqJhUm%%{?thL%ltkOm%7XT`?8M^OElkiKd6q z<|{l@4$bxtqg_Aq(4>&K@?lnXW4sg#=9IbCxkGz2nrhNFCqPUHmWvwGpzUb7V&ZoK zq)DJB*Y}s<=&`9MZUl~+&dE=PdN_J=+f$j4itY(2Ne}RKWo|epLywmI5!QWt=t-{m zj|eGAT=UJ;1SLAmCpGD*L1tN&u75VkRE77>U z0YV6=yj_9%sIM_VM@ou&Hb6}5A|EXV-!SOBNUN?8JYgw_|0*7RZyeR z=yXiuP`7Cu0v^*kVIQ3uNHZ8Y4dW80(Q}Sa;6JdjpZRCV72it!e$&YxVzPkE*MK@lp@v zxI6~(Ts9zUYAm74QDrsEJ87h!z_k=F9rINdtIei)CxL0kOIkqZ;6OpQG6X%BL)QTM zLk@k|r!o^UJwp8o1JW<%sQiJX+fe>21qFEw{k zMjtQDi;9WF!_bBBH)ZtV`i(5JxHa6TBB`Ws7%^NPgiS6xzTQ(f+Qm!HdTkXdi#@+* zmAQhHX{1$sgu0##v9|q-&&#*@oD~6iho7V@KrFksk!{kC;`yMJY`vTHH|$X|Y_rD3 zN!Cfeml>34jr5ArP(>wD8M~Ad@NeM$ z23}tFGAi$x1YTeT4?LlWCpNM1{laFn>H)5bbAK_8+-BGZSUJ~TvPUD`#}zme^S4Ht zkDY%r>j~w=cWq{at8W5tgbpk4`0z%EJxL~AqXsuda+(g~CriPFo^W@iuAzUGL3&=% z;WjN^Dhg3rcV!}Q?RYRJNAmZD+_A1vLgmyvU8nS~vIzzGzPW0vt|8&YI4Q;($!`s* zhENGt!utMaXSYVO>%&jkgx>8HI2t5?-@{ZyVYCPXv}Ne(5-{l1(E`3g0q0s18mamx zLfO&RALMyqUeUFMb;WJ`mMv_tb+{K+QR_b^ZF&3bE!dYJHrLxAa9!8?*AtCFw2EwU z=GP$9#7U!kLYrL}pJsNx;Dk}y7Sd0MVF+F|k!7gf6q`h7|5y;j1%;Fz7Jm>~CN^UV z>985sviZhI*db(jOt9}RJBs@>B;HjEvEXqWhPKRFmT4zS)D?NM|D1epScOw4nGI9b zY9M>Lotp@QLVn;_mY4#eBuN8_axqxTOx4eM;~LK5iWOJm9OWzgk6IXx293ot3r{(o zrFibfb3dNP@#ML|;e>}6cJ`PHQKN}bp3clD!;W802HV&bInn=jhMf(&HBgc9i897f z*hinAE4u5@^b5GtkAo(0@x3}oEC0Yl;D#fG6lsp4;TiApebkNyMtnwLRmbtI4EX3 z0hX|Vu+4Hsc6-msv7j3~Ec`Ba4Ow7&hpxM;f)N#S`-``sfzO~}bkjtQdky|l5tl9a zQmts{(>1{1@uSAR%^SNT%0&3*S6c=q!YlI9zc3L>am_lRad#>jn-dlfKY_+h@ln+u z2#7IH0#P3m5C_85XYtrM0dek=I0yireh{wS3+y^h8W0d)eUkN8{VpDRlI5ye#H6kG z?t6LK321`aicWjRFD}{2`WQ4&vPXH|^ovhyg_az!hJUh^Wg~tDkAK831_7_v^7kzR z^UPCt&l#RJ8{5QF%%op|33C=4vf}Ee(4C|+^(+=>@rkF{#BOuJkMW0m0DEaaq349| z?n>t=d81DZKE(>Er=SzxM#tsr1>t9K&eMVCOVA5GijElS)C*g{T7^zMfKFY5PNk)> zy<<<9T^L1g;#fqZC^O2P>6h1lf9(%>^?&iNJ-#~;br}Jv+8h{E$rbl*WBK~IptZ+A zeY$vV8|#f`CxBfq4l*2K#?$ELD?GK_Cr*5tWsG?bnWoW-@GX@s9cr2JjoqsgQ*7HGjDykH6bjOT(*++e`D?~F2H>i=H z1O(yR-AQQ6;=m0KRUexZ%pew9`Sx;9I;2AJmS@;rbun&7x3lbOOF)N)eFdU@960p) z54)vlYti?u*I{wYu%DGbf!4)1X{NWbxc}&_uvr0VDMy@0_QA5Dv!cm)RzB%X@K`Ht z<)q!NtTJ0DFHhWfR^EjXG@CDir0bS2mEvFsUq^~Y6CL4_{auvH~= zgL@Q-r41?}7k(9n!^=;oxUhwV<{K#A${O8?en#Lnp1O>4@1 zVvlE8p1u*+P6ps*;`C?n**Egghl+R~h3?^@-HN!ILi2g3P7!~i&~-d?pCZOT#|pcA z3#|Bx{8=a!W!(gwi3ZqO7M;&w#(d7<3Kg;DIhIp=2WHbB^49^&1g-Qdh&P1%d;|5E znU0dYB=FP5L$wmrTy8!CrZM7Y1b^afa~5#^#M|N<>K7z!I3urAwmc8Er`}+UIU_H^ z?MV-GXAO1~>Zg%-rsG+H=V3e|o+t6pWij2DCDW8b-yFrXI!b+q9}S}ud>BQ9F8)-A z>61z5;t%=nLKph<1ab58EKM5+Et2A%=UIUotJaz4S@DRa5J&ZZccBb-ys6MzoRMGd z%(#lgJMsh#?LYp#i=bz+QE0t;Id_kKuxumPW7 zC5L!1B)-~!1??6d+7uE`P}+DNqGM|#LW6i{en^}^q3%3H$JR#V3j-}TNckag2c`Ya zLp?&`cSuXw%pui4`PY^tppk$0#cn&;l+jQZhtIvnx8yoaZ9m9W-V3x#3$e$Qa2ebc zp@krtp24m8>qSD#={BP+#%+4BpD-9-HYO-OyMqlgp2jy$Y|>i$2_q1j>J?Azz}+H@ z16h}+Y20?O6C#8@cT0Fd^qLR!yA>`#h;$6CQs zJRvU;venB>BN|T2N0f9P-wp8vo#H=Ga(KJ}@v{*Bm33J)&+w+=LP7}|5CXEV@o4L2 zqB`X3-7pZ>Bk5H}Yn;@}pI*`%o#OCoP>I>=GaKx-{!jpNCWy;i4BHCq0&n0eKLM9S zj?cjT0AVtqFdZ1*VYr0(y@lrp{Dc8k&%z&JNlsi<7GgW0Eu^Rf93udTmF@~=*3m0d zaMfUtjt6coxvx#=&suUDAyo^4UY=)rX^KbV&d5)3tA;CksE_XV=?B3;>T&A(#DLB^ zl~)?7OTjcjw=}VmBU0OBC(uYL1xKaTf?1`t#tBv!nLOa5{ccSddqB%{#he3UX6 ztS;~4{1TCEUw@lg_!@ol6Q0*@`~KB2bzqLc+W0y;`#n5FZ&YDTNXE9a0)5;5qqRW? zR>(kM zN7xgHi8mIyW5jv8nB^KI*8uo3R>rw-CAise&%iw+U)7!&pSb-ODTKJ>Vx_0SCAW*& zt_Ii_cylG(ZOHsiw6O1^g}ufLBdz_$eT2bvE@BzTW-qa<>Hyi4XhXkW6?mEZF3XSk z=m1C>9$xUdqrUrmbU>uICsF8^IOJW15!J|X@3QQMj}C#C!F6sH(ztICd|x2u0k~AT zQn=Jol31md&W3wN&UhZZW!y)o5&a@H+{qgWB>ktCm~FPdJJ&9e?|Uk$>SCZTmB-}x zQn=g4N5;l4%T^zq3dz^gm&jw%dcoOV zEhfH<&jrx^cmWxRTmha)8M`O(MqYw@Ms7phjQi+_)c))IxghPc^kueRtCeQ@#KC*m zjqv68#K-oqzSV!DO&EaU{;9&kAPtPtCJa*Sf6*o)W1_R6yu#1_tN^cwjcksmgCzCv zx{Bgh=Tg2_#Y*2P;@nrj?Dq`xJ-xz;ElU-*BLH=n10cHc zPJX%TMu@FE2#wNZ6_yI9CX!wiFTKJB=yg2v3aGzpW_|id*eGMAo0XlmQ373O6%Ju; zv#`9xQ~=BxU*L`s1N6~}E1I#mWcjs%$!Z#6Y{V7SCWDj(#h3|=iCD#|de zmZfey4MXkuz!!*>PUrqj&h-|9l`bjI;sT~%`Bfu7sfc}EW#+{@!9{1mKDv%q{>L!$ zsD=*7pFWJaUpZbdK?5ysq>@!z3k_qTp$Om0E#p%7cyO@8*pTYZa~Q=G{QFF&<(n0| zBc-0K#H50poB}H`Mp%hS-Edkq1Lb=aH~6O^8PWIu0i#pmJVr26njNWlQlS5_hl)zg zRZ{AE;$2j3h9k9}%8itI4r<#-Q8{$IV{A=1C3S^X@p$N01!UjKd7`c8irTOR zGyk;QMY+g_?P;0J9`>9_T5Edpl&8Yq@RSR3z0zt+LrVNFQ+_v@kQggjaDDL_>oYL{ zr{q}45Wajou0uIPtmMZEP_>U*MHQyj5E~sS=ORv=XHh}UrGg4YIB;U6qh4|J>uie+ z+9;5>ouI5m*^hM!t0$b7?-%9Q+4}0x|9>l)$K}a?;{u75SSK!!Snyp%c!+e?0v9nc4fl>8NA zRqpf0voj2m-}jsRdRSwLsZrJbDsKpjIsb;Je@LA2Z#H7uC&6xw^gY61l`s$(%7{=# zBe_=)w!$48qR=2up2PRd5c{>nO z&pexotqtYl7|MM$kb&5}fo}NU9f+&fBCUL!)_wKyp_mU5tF7iSH2OaV!{S{dW>jAG$s?erj$Lgd(O+Zh)3UMJ#F4#4@dTJeg1EyS!D~#Y|aAVl6)@M-7#*MK7V_e9iii* zymS`~^4dbQ(6=DEeyu89Coi zhMo2om%a%S3ZBlUos!?h%7VDIvEtVK?3om(r?=Wxr;fGVrE;WKrS7XL6sH|vMQUxa zxa9y?=$)c+fb|?b6}LPz>Y;^%BT>{{k?^m73;)n59GO0!2gFtHf^;1eYu{zPQ(~oT z;M9L%eEsZQRwPRAvg~0V%qdz7_ypu@S8w}ixs5LgEm%t0f1PLG>;S2i&ls}55`;SB z?~fdBAx8$>*Llu1u*kLlA~^{K)k}HEc@P^ZX=yyj(hGzyqi|O0jH>Zfg^_`wa+p?D zjRy~HG@OdnSGCgsc2C+vrI6Ti5MB0JNbK?+8>OZ$e2*48J#MJj$7R8Qu zAAVeAXb!6GH01{+vVG<>5?Z(caVN<5nGw+Ud@h>iREiTSmm-4VS|Fo;0Yllm)fw{b{ z$Aok8X&h!K`$N%U)`B!^Xwce}d5ZkcXbE}i?pUYI*A74JTI_lW`L#`+b@8w%sHyeJ z%Ypkqr%@9qnLwsVLMC!33XoiQP2jp4Ht_3cVIi}cMp~Sj_>&kdL1@ZhxtXD!UqSi*E28%sDhU$+mLt^pAVBS~+ zPJoZujq0mI;#VItYi4e!|Iqj+AXSc~Im=7>DDYmtz9tbBpAi(heF6=h*zmoHuoOa4 zzg}osr?jhrbStyJn3iJdFuJ{s$O`LsQg=}~!^LHvu>;4zt7Rvq5p#ry%rWp_un6c#`4Pf6D4rGsK~vFzVfL@ZJ3a&5EZHw^{fwm#TkG$HxzAw7r5%a>NxV8iMIrKw{zeCPXfv8Tqhm(55oFF#>CR&JYLKEJj|*U}CAtg3JI(pU&{>!gOj zwP|hT=J^ZeFR#EwM{z!MZ>!v!uGO~){WL95ZX;y>C;J0^o__G<>e&3|sb z=CiPT44!ZAR z97aE96%_v9b2i%4c?_+MYCzLT21U&Hf;kCl^%oGy+k-oZFSB!HUJjs>a&!y6Cd`Zlwl7fTX78dt+Tu%8|88>L4LMcJZ3|LN04L1Owu8Dl)*= z@%>-WnLkIrv3c#1k4-$?Oyi@fdF&FlL@UhckuYJSv1rWL4Mkm!97CbWE#-@kqEKB+ zhRrNE#-29SFQS59>L^%EsKGv>p>=MmXgtCS&10cUha?q=+r|Px$shy zTAIT0W5GTZw^qDXq;0X|linQ480LjKr?9*-D7Jlt)u1RO#(&NFsIG|lU$d)IJ`DeT z+Prq(*RbhT{UZoHVfk286CEm#15XTWOi>>R!r$3HewD+@U$unlq~@sbvbs$-K?k1T z$iYg7{o(KIA8Ntg99Qx1?wcx@kd~X%s%|(_EoUlSCc-vavC3UO&IIC5rjk5CC24~F zD+I955Oo`J9ddc_9FC^IT49XyI`|{XX7wecP5wo!-|9x%6x0nmX+79-?E9=BEz?PK z_fLN!e$*gZCWyx4MjkrQ#W!~X5Hr4qeCf+Q!)O zt0IhQihPd`7Vd?+@lusr$nMhmD`1bC2!S}~rzZ6XQl4sx_?<`iU<|>YmsX`gF{=9f zs#LIb6!lq!HQmGM1km;di95Uf9#ka@L;@g*JbW+0yP^>Nc+5W$lgS}0JiI#JD$J{b zaU+{+aB9^JRqiSc+<}nNx;D>p%SzMAhl(JTU!}^gFOpmP;v9Yd@R3y!^9GIK1c$nj zUUol}MCqi5p&jK1mSNmq+#C8#-on!x)CMxi@FTmi8UwllC%O(bh3{E4P>fuKQBaE# z_IvkoV?`>2gnqFtDoa>i4Ff;V+f*Ql)xzLUY+G2qQ^^8pDl8xMKaU<$LGCLo9|8j} zaa*@zb@WF1{qdLbYpT7!{?`j2by4y4UtVx+^aU^bzwUT}#~;aAiN;2l zHKtn3#d-cz%oHewsQ-zjS3kUaHUxUo`Ux#>wqXK8IYZfB=I{I(5`L2p`m-t)Km`2Es-DMlw zOyG9>b}`u%S?RM?lvGco9{C;x3fXC`>4JT*vFeaDO`un;%L~g_e1~9biZoGQ!xx7e zfe)w~!}2fSq|?DP^WwH``6hhKH+c!_7LB#OOlYeu``Jn*DDps`-!j?IE!^%Tw1W^1UO4{fyc92-gmjI#<7Y4t z{3_oD{DPE2sUah+^Qr5bDt0(E^=jDOwg{)36~!bw9q_6>&s1!OjGcPpFBKKV$DEpt zCow;XjzLDL+kbY<+{br!wc7DSmN-XGr>UT z%U8k3aS}vzb46FHy0Hox40?vMxMi>281U~;&mP&;y5FReQo>mk76(o4FBP4AKe**H zuTxiy#ni_&Em%X&K=nYZ$0W=tP`S^@%L8U^@ryR7bC}KF!{k>D#@`FxbJ6iDq|JFS7PUEf%n8YOojf zfY3-eT6$a1T(J$?b_uGClU0kx)`UUaP?pU(gTwMZe!7Y z_gM8{_gF0+Js!dMBK0z?6kRlFL`3* z0B&{z8V9WdnsVw=YQyr>&;T?bM#&e>`IqRU7;DR+*Qa;#b%+kPxIE+M@#RD(#P@A z?}j>8f{*2;S5qdlZP3-ca4Rs6&D7FZ6g_ZrSk8xrR{}P0J164+TftxOXvr}bb!KI> zcms;>%8Q>ECLHIINz03;9A+qOK*c-C)<(-_uy5t5251~Cf7wv;f1t)>MrDjYhJVjE z6k5p(HHT^Ey=02#)reGK=FkObWhHNAcC;Gt$Z;e{zI^J@GUx*urMB~v%9gwBPwO+jxI;#*GQ z)%eX9`IOy|<8fY%_d@He#g5{VOQuA3c2hd~Og~}{%5L!$l?-Xf7xDcML7P}%$;gHg znEUVh)V9$jMGa%%f5)e>jVdW=m;nD9KCNv;$&`lc;ol3hN(Ch|8%P1~i@q3Jj`*JW zR&dnb?2eKC>D58r_r2jSICE+S>=XvD77HjUI_N9jzNiWO4fC2ZhCTspB{@wxYj#~? zZLU}ymQM$BprEcTFmq?07eSOA6(cPU?Su+lvm@ulOQ!B_y)D=ESbn8z?#KZo-D*nzU*>?Uj7vruu`G^jVqs4gu&=Q!`G z>L{Rhw1B*50VWg>#|x0Wgfw3=rMVwK0TvX{2L=38LKT2|)Q{Ogsz9G;{$v~$azNZn zL;lkNsz8hPOUG9eFPYNaZ$g1nuB*$)O4m!($ei7@=HoR7Elt_cte0_spseZ0`Wer< z*L#4!x`(?3gU*iYNM7#fUD(j*9FOH$0bv;y8>mu0w}Y!+}8J+a%WDRdZXaZ907gv zVlrR6bk)IHM=c7?bgu;Pvj8@t8b-X}Gzu?_Rw5IHpTeDYjMR%CG%uNYVXFSM;_IRn z@53v!xT04_g2uI;;AwZaQE_5mpfBE+nq6~P0Jlp4+ zJjdpzd29>PJ>?5}c(yOd@EluU^w<{m^pr15_H196={dGgu;qZsw#f;3)38RUvR36= zgp_J`6XvQ;+UZLH71b_OI)NjHa!~hw!)j3qkn;}%SHbvXSUw0>3-=wkjM8DSiIDf# z0?^V%NPHl%mci{FO6G18;Ar$8htN5#qygVm0xe}S?)?iL1GZcZZHw19suf)PZ+D)T zcY*+aLOu!+QkVkTvIdDGpx8B%ww0%Sj8H8UGo=rA1N8ze_2I4ruA!`$)sMKBgKL3Htvey#8~D^V2u46J%(^(m4*rBe8!pU( zQp73t4JYK$(T|jlYR9A6cLm1sYLDgB4)SK6kZ%fvtN))x^bB0ZvlQ?w1>iVS}}hH)MG5O$t6i02Y`${+sDpW)xpT-6sbtxm|tA*E%kU6&Vv zIyO7-!0t+KUW|P6dKl3imSB`cnAUz`qRc({LXH!C(#i2jE}x8$Jic;ahIPv+Q?#7NF-V@Qv@q z)A?5n76E-eF$r8dL6Dq&B2TrU5#RfZKePrKA!pUhc+>4-u5spAHVQ+-8b5@?M5Hdn> zU3`Sdkng+~*pJXwjTcW;B4i;+W($oA{$ng%{XlnS&g=6BEOB&^%VFNp((>@Gw5#G za_NKvW(x6!vrr!QqfdPBEZeBQ2hu0!SpQ-7`m|W760oxzSJcA6?kQ=NV@Mg>DcEfO zE5U`xd1-^&v-?Xa&A`EthQ!d0i_A0QHT4#LY{_(c8r zh?`CBTRw3DT=Tu&V~fm-XN^526Vo6J6)UD8+bT}Uulsa|Ps%gA;)Cbe1pNv5dI)E= z{VaZU9=ud1aQjE=f2wLatEC7j0Wat$YbzQITI!jJ%b*y}H9Ea@h|!u}a;)f5#b@+tC30wpMX}D{c8X*q|2 zm06Fg$XA08M4c070E##?bdBm046 znb;$#!yPfK)iNcVoW4~&3;}!3_smSYaQZ#QR`E?Jy}O2;Glhq)xQ3>LE$Zj41y5F= zhyL~L5bjIbINa;1h6=cA!Ktz3Etek&8pYS07f*SuXf&>249AT&@$8t@mA9i{$;8eX z&(SGjaBk!y9V>in8Tb!}cqkwJ)J>0wSYp2jK@x*!Sqm^Xb>d59U}f+Xmq(5Nzj*rK z|4$yahuA9aZiRuheXz<`NlKSz_t~M`5ekLzueJBV>6KR_K%ER_W z+r)?3Ok5aL;;W$Qxld(iX`h|#;xyoF#<_MQce}LFbFLZZMb5!S(@6YV2zZFOs6r<0 z!t*Y^L!>$hpXjD1T_F5HNWL3{H=*Blir={z;kgpwk4l6u^%35;N5Ug~gwwV@xP9O1 zWrX+f5&nj{6mg%MtfZeJ#RmyhtJ13>U{z)BzCDImO2q)qPNo#D?yYX>t*!q$IS zrIOFl7h7P1r4XE9;;O*#?S+k`IPkaHML$NIFwH~Hw**gARksQ32=^Iu#xhyEcp@ zdTs#{js}YPm}fC0m&N`#Bi1a=MBKfI%R<~7U))tOO+qt?p+QFnRV=`A#--=dk+K*m z(>ky?aSx(dj0Kid#O*~~iZ3n-hWR8kS_#c27);@@gwZB0Y@t`$anv#lTcOROfUIMY z^(?X`bP(W`h`TCr>NhxB3q!o(SIXVD5w zYrr0fsISqFvWxLdoA#SaQ8VJk$h5*Of0o)I47&fx$)xSa_CyDGN{CrF}jc}h_lm5~dR7udV`B~Zppq1z-|GTgRBlluzSa0l05OUClci^Yv=Js z{ep|cdYIv0rAGiCw?imx7Dr=MmR;ZywkgV&K8BUrZOfK5VK}3scoNk=rb_`8j4N)s zh$rzw8!>POXPAwzEe*Pof!@1GJcj@3YWC_U{U6=O(!3XtW|)*_kCcY>Ye>_AG}f6d z22hyR?ii+rN`W8dHfWo~La9e*N7=t@FO?=P*h6TMkK|t#lh7})@xdvs2L8jt`oj*; zUgHmQy~ZX?gXF2qWpOxCl?>~PxGZ1XWW=#C=CU{tacokP;L;5S;mHzFOiq{>{27Pz z*5Ytt(r5OM1u{<%8qU2L6-;=c%tNCIF^npKs0lA^FfPTN?u{O4_4=LHVJ-cn?>;?; z{TSJPIu6CHAS6j>a?#h}Ml$`*YCJGav9X^a0qVH(wKeHa!K$+SoVo+T1x|!Oja4a1^2h+%5WNbWB z4aGJl{J$%x_uIIW=Mlp(BzeT!T9p42vY(x=Vrnow;=OMB;V_(k6<&k_-+m-p_})d| z=tpY8XSd8kQG46?=z472HHgtIbgi2F&Z;?&%W#0i-wE7cxH`aaK#_aAg8TV#lB`cr z)I_Z#*AT`v)vNT-{mCxCjDUak1%Vq4_eVfHU^?JlKn`FvU<=?yz)rw!z#D+K0M&px zK>c}P0_Vho4v2yPkpLz9L4YG`X!1b#698T;TjN8WOJec*B<_^h7Y|$iI?Vu6J69P48NTz=SnF@fzRK0?EAt=ByW%y z4fN>%RxeiH1#lk#pdaU!T(JKTL5#d~ba4P#8NIx1SqTg?OQjWt-0y*9Lp78P?R-Lx6ixY;&)s@4RM{GL_9WQ!rbjIsQIl3d| zAF;p}UUop@BfEd_K&~2mi~t{D^fx(*n5~C?#I-xXGVs#^IR4z5eOADYn^W0GKNz|P zz+3;RVV#-N#a-TwD;jW%P%aKzeWEg zim*5^n9S~9gH9r^npJ_3$jHNhada?wLb$tyCPtHuLWYaJA5EgeC*yNO?qt;OOok@l z?JjyQnj{4^;20{68FGVeS9g&gwYcXv+{1PX@W0#ljXEKa?b^ zmmnsuI`5*7Rc8Cfp(K$f!w~=rvLD_~o)%zea*7TTJ|m4T(UB-&wadOx(q=TYvESa!Zv#ErXy2V=WYb6T2m;#;`Ct@p>q?hEf$?umNq9#FF?}#?j*tsLT-nL#H6B(b6?B)!|GKCtjpWV#y-nXam?p&3Ky9 z)A*Z>`v`$QCfQ8+a-8vuXo3Kr!8#lhj$;?;`y(J6@3l0E1EF7S1W60`NJ5Gw0pMU_ znrx=CMv{X9B%@^{M76kut{Mf&_$rOQI0}-n7{)S2kugE%#iP(of*3qiL9z8HvOW5; zI~F5BhFie@8E$4Ki3yD?F!bPP(k{RxWqwRZqE#;OJIwcj zcYQCu<)*23k+lLwaR|w*n6F%&(y_|zmyUxS(s2mK%jgIrIgWGZZC*-D82RxfJjz6L zv+JQW4~NzF2EjPT8Bys96pIl)u{e#RW5Y94FGX>?;$Kcs=W4RU$_C}Cwnk;c;D_xr z?vVyno)(XI=`LXGuW%RXc>~e?U7^|r@qqBe!!DYM7!8b{#~>gTW6=}c)hQgw5Dr}~ zz9uixq48uMs2u9GuZbsncp*8LMvf&7QH|p1_CXmzT-4f)sdv_C^SHPHjyO!Ip>#$) zj>OGt5L4TPp&<_C%+ML9@ogu>aB&TFL6c84^D&R4e%HJj^XWaQoNh)sr!xbXhBKd_|bQ(80 z*fu_U`mH23GBze|r*Zm(i5LqR{|*MCnE*WD2mP7IFQXPuvCC_PdPcswRlgAUS@HaQTZ#*dwsyy_I@nl#3-+7?Z7gTsf zib)>(WG=Zx*C&ycm~wpNwVzKSeR;A66^8bu_6cMkx=00g=n_3Rk-VI^$I~=ub#7zk zG40@)C&iZ}WoH+(`PtkK?D>{Q&eX0w{XmWOr1-o?P8E(+n?1B>65i4)m#AejDGRRw z?m7T>S>QJRw}P9SOT+IbNnvHSG2XRWKUUWkx$=xI}$)A>`XSccr!`4JlT~J1mUW-(bSjVbKdmZ>#Iv3cjHumM} zv29O3znfV4?rgnuIOHzkU=7pIPLrpQv4ow`czq^aKLuSC%ZYPQZ%iTY3dJx&Hr`qR^Eo#G-yMAoM$!si!}r zkh-XEJo;SYusf5(D+PmBoaznVr`oH<$&F7v^z&4rO|14T%hin=q`WiPIBbNJCdNBr zU(8-3(!Ax#k@6-=;aYFvJ|m`(KZ>t;Xw)=PA}qn$<1`W{%tXsGcdUoHrjb#?5S*ts zlUVkFFvm=mD*cKmzjn~~&E%UPba-C6eL7hq>~~XT8i@-3zQY;_2l=WOzjoUb)5uU> z_+u-*FP+SV=wP7Rmrk;yPr*=~dbA*M^QxQ8<_>^=*?4C!PPfO-ARB{_c#)SLm`zGz z>&2`1z+JXMx8bE^!B8(=V!rjd^|G%ClZm`)?Pa>?9#T24UVH)S#hHasX!355hOpwzGYo=cDfS1$9ty_Uu)0}dxvm-VSD=S`HFP*?GTc=wmW4E-^1#`&r zu||ktG9Vi;7oY{?B=<|^0N>A53V9*eX1h$uy%=x`p^)=l@~R?FrJ#4rB`Jy$mBRkm zTrymt7#OCom(C~C`Th@wVT{L*-B=630{8dgQ8&G~fXr3Q3{%jlS!9UtteY;$A{&HR zSgXq-(TW$4*^@;wdBNtQbM7Y=CQI+$kB>LFu?tD6;xlA@Y$3T*(S!%OkUXSN<9knB zNHT>r$uROn4o963xpq>{-(9ASScjd}JQJtHMWYkqFKsk(5&1CaJMrZ1_`tgDyD45(9(ueD-QmXoL zFvT<^n@qB@v<=w%k@C2FF7jq$Z;#cs$mj0yxivl)QPPj)yB#O+d-E6ln3X7}N#^zp zkCh*FI{P1%lBKF~AK@}DAP1oNtL#>Mf>opfY*qpC5ze3(Pz9&}*#2rye4K0yB{>s} zkLE0;AFd~}rc@l`IMd$&NTB}!yI*hv5jK8uGlVqlN%HEHOb5rMd@19o0IonBnegA7 zC>pzg7$#L9f0Yl16Epi3YFg@eibTw+sz;d(GP*{f4Wy@cbWG^vU(Jj3=u;$iR#gLs&086t6C?)W zt3{jxaTNeoHwFRq^I?*m1`n%lb0T@2#N29y80*^PcCrPy-F}Nm6S)&T8voM>@FxY-IMf8m#a&%HA z@>Kw2D!LKT+B*@}S`gs$5t09^iMYPqa)7JChp)JIeEqudnWk+dD=hwQvAa+d4@M26 zWsW)eb**i0ZRk*U5-WGN)U;k0Vo!L6GzKTsm0$%8#XSsAcPmy(4J+yXV4eJbjEDsD~)sv=a>^iN-%iEY{*AteOK@gH`}{eqZD86Z%1=LuL?qusRy7NV1vzvcU*753}HXa`O$-V)r zg*AW4{BY%`b+m3P(b=`_BrcvFdx6B=$Fd~vWRu9Qzv72L3P7sk16}J_yQnvkXqt^A zSo4q!&{J=4Gr_=^b)8@^;_`FAZosYLTijcBJi`sXr7=ym6GKT{T3B1kPC1i-LL9gx(RC0 z=bci=q_E~Q`tEj;FmWxI4e-|?un2w~ieC>B5ucCxF<^~s1625DIu*}DOkR)?WIlO4 zjrz?%u&FD8Dj5O94l1b0zQ~3z@TuejredAJ+%IV2PO?NWegOr}kZu&gLqEC+S)G7D zI`a{(|2>Lj0R5wL1kpblm}6FEzYE?uzdrTh4531N0!CT?jV~2Kxa1a%;Z@Ythp( zmO8!w!GQ=6=ja$Qd^I;=4J79V>lclmbs{kRpIm##H(mSNNsTBe1z7zQu#!6{xWUR! zmnt}r!E^%zjeqZ?ARp-%bmzTQQwY8@K%^58NWm@iWZk8c%lR9s2=L>p3gD^j)2;+* zzU5V%vpZAsAqln{NP{hasjNB-x>spZEdup7;EDcLn5qZ;DFJl|RYly!gw?%Hme8T*>X&v4c~Z zg+ifFX+~0QYK+;OZd9x>n^R*Xzrk!?ZOIyMHX9^A9CJZJ!u{q{gOr}RQar+0dZe?) zumlMA1*95S0>r~l%&?CcJAd3f1D+&bs=*Xti1GW<4f=4y8ozH%s=*MG&U_4UI&cFi zNb~z2>Ed5wUW(-AbgMtXnlwWU$Ur_h1JJQ*bovd$%;tDQhyMvfHj*0d@TWJ#SU8SV zkmXmhhcqt4%n`Y&cr?VUfj=Z2F-Q>tCmnuk$QmEBQc-7+ivk!krKE+0EK9cz-syzs z{Vcye`cqvcM{}}Ma+u&VCFxkPd&wL-Sb=Sl~-Qj%xAsargp^O<5sB=N`w-n1{KtBAzGbK3|D&I zn3WLcf8Jy;B>A6j7;epqmoji#O^!yhDIpW3hDjw=CZ>ep!KKtv`PA+Rcfpms^+T z$^n*~&AHDkFGwuNjf4m=1e@1xDlELe&=;@KY*}8iwy>l?Mi7DmEu@4~78c4S$Rw;S zEG#IH0*FS~60%&#mB>?~650ZeShx_Ge56J-wiFi52RdKNb^7U z8g6A7rj6~)5I;;p#2PMAV=!oP7-yI-M-yYvL`r-D*TEKenJ~z$5UI%=J1xMUqscTy zNXg{*oB`ea^EDciCerFhkTXCI=AnKdP?4GethPj^0L=(q2oiaC zj>NM>IO7LWz%TPA(qdseLyIh!K7RqXa9zKZkFVCPc_L@k>i_!98g66)om@dCQuiK` zWS#fu%ADVv4)I=+!z`aB!PdH=6rOwB_@*v<0)unY6UK62j_J_Lu+ z01h|iqJW+V=3C_cw0ob*K5F-qZB~64lcU(-!n#a7KjOQtzSpYkI}ea;ytP&b3;;%zsT-F3i0iQQ zN>%MJGzGw4%c@bGwRGOmiLV%GDnX`4}Vw*uaKbKw#BU;O|zoE<~jO zara-b5rqN#MCB)S66Ij0eSEWYO(M!l5+3e?uqWQvGGr$3AIF3m0f7YO!0$(x53VvO z22=qm069i_?JW`?-Z%;G-ej~jKm%}2q7x61r~C5r(Vl?fd0@ai`^SgK37z6fTPuCd eL9zt(G}_|8A+J%X_Ele!eIrAd@D|~;%>M()^pNZT delta 84847 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 diff --git a/sdcard/baseband-tx.bin b/sdcard/baseband-tx.bin index de0e480badd12a7fbda617d6bda5054097d2c500..0bbd08fbfa90f76ef58db22acd2eab6e84654518 100644 GIT binary patch delta 1914 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 diff --git a/sdcard/baseband.bin b/sdcard/baseband.bin index be9eda36b5ab090686c8977031787eb12cdb4079..a877db80cbed1e4cddbedb832b1c962defa3f09f 100644 GIT binary patch delta 53 ucmZo@VQOe$njj^xW8Q2I7ZVl*?mY>0=^eq}H)_4}V-(pe>3`h_Lk<87e-sS> delta 53 ucmZo@VQOe$njj@GHTH4c$I@;o^;ewRciyRcv{CDwAEVJ`N&o9c7;*rJ%^8gV