From 82cb988e56901ec685c325c7ebe43263a70f7dba Mon Sep 17 00:00:00 2001 From: John Crispin Date: Sun, 19 Oct 2025 00:00:00 +0200 Subject: [PATCH] feeds: remove bluetooth-cc2652 feed Remove the old and unused bluetooth-cc2652 feed which provided BLE scanning and firmware flashing support for TI CC2652 chips. Signed-off-by: John Crispin --- feeds/bluetooth-cc2652/ble_scan/Makefile | 29 - feeds/bluetooth-cc2652/ble_scan/src/Makefile | 47 - .../bluetooth-cc2652/ble_scan/src/ble_scan.c | 387 ---- feeds/bluetooth-cc2652/ble_scan/src/rs232.c | 879 -------- feeds/bluetooth-cc2652/ble_scan/src/rs232.h | 85 - feeds/bluetooth-cc2652/cc2652/Makefile | 37 - .../cc2652/files/cc2562-flash-broadcaster.sh | 13 - .../cc2652/files/cc2562-flash-scanner.sh | 13 - .../cc2652/files/cc2562-reset.sh | 10 - .../cc2652/files/cc2562-wr.sh | 13 - .../files/firmware/ble5_host_test_bd9.bin | Bin 360448 -> 0 bytes .../cc2652/files/firmware/blinky_bd9.bin | Bin 360448 -> 0 bytes .../cc2652/files/firmware/multi_role_bd9.bin | Bin 360448 -> 0 bytes .../files/firmware/simple_broadcaster_bd9.bin | Bin 360448 -> 0 bytes .../files/firmware/simple_central_bd9.bin | Bin 360448 -> 0 bytes .../files/firmware/simple_peripheral_bd9.bin | Bin 360448 -> 0 bytes .../cc2652/files/firmware/znp_bd9.bin | Bin 360448 -> 0 bytes .../cc2652/files/ibeacon-broadcaster.sh | 28 - feeds/bluetooth-cc2652/cc2652/src/Makefile | 27 - feeds/bluetooth-cc2652/cc2652/src/debug.h | 13 - .../bluetooth-cc2652/cc2652/src/sblAppEx.cpp | 257 --- .../cc2652/src/sbl_device.cpp | 673 ------ .../bluetooth-cc2652/cc2652/src/sbl_device.h | 143 -- .../cc2652/src/sbl_device_cc2538.cpp | 1762 --------------- .../cc2652/src/sbl_device_cc2538.h | 126 -- .../cc2652/src/sbl_device_cc2650.cpp | 1903 ----------------- .../cc2652/src/sbl_device_cc2650.h | 153 -- .../cc2652/src/sbl_device_cc2652.cpp | 330 --- .../cc2652/src/sbl_device_cc2652.h | 77 - .../bluetooth-cc2652/cc2652/src/sbl_eb_info.h | 66 - feeds/bluetooth-cc2652/cc2652/src/sbllib.cpp | 39 - feeds/bluetooth-cc2652/cc2652/src/sbllib.h | 69 - .../bluetooth-cc2652/cc2652/src/serialib.cpp | 1019 --------- feeds/bluetooth-cc2652/cc2652/src/serialib.h | 220 -- 34 files changed, 8418 deletions(-) delete mode 100644 feeds/bluetooth-cc2652/ble_scan/Makefile delete mode 100644 feeds/bluetooth-cc2652/ble_scan/src/Makefile delete mode 100644 feeds/bluetooth-cc2652/ble_scan/src/ble_scan.c delete mode 100755 feeds/bluetooth-cc2652/ble_scan/src/rs232.c delete mode 100755 feeds/bluetooth-cc2652/ble_scan/src/rs232.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/Makefile delete mode 100644 feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-broadcaster.sh delete mode 100644 feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-scanner.sh delete mode 100644 feeds/bluetooth-cc2652/cc2652/files/cc2562-reset.sh delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/cc2562-wr.sh delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/ble5_host_test_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/blinky_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/multi_role_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/simple_broadcaster_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/simple_central_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/simple_peripheral_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/firmware/znp_bd9.bin delete mode 100755 feeds/bluetooth-cc2652/cc2652/files/ibeacon-broadcaster.sh delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/Makefile delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/debug.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sblAppEx.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbl_eb_info.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbllib.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/sbllib.h delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/serialib.cpp delete mode 100755 feeds/bluetooth-cc2652/cc2652/src/serialib.h diff --git a/feeds/bluetooth-cc2652/ble_scan/Makefile b/feeds/bluetooth-cc2652/ble_scan/Makefile deleted file mode 100644 index c3dd78e5e..000000000 --- a/feeds/bluetooth-cc2652/ble_scan/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=ble_scan -PKG_VERSION:=1.0 -PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) - -include $(INCLUDE_DIR)/package.mk - -define Package/ble_scan - SECTION:=base - CATEGORY:=Utilities - TITLE:=ble_scan -endef - -define Build/Prepare - mkdir -p $(PKG_BUILD_DIR) - $(CP) ./src/* $(PKG_BUILD_DIR)/ -endef - -define Package/ble_scan/install - $(INSTALL_DIR) $(1)/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/ble_scan $(1)/bin/ -endef - -define Package/ble_scan/extra_provides - echo "libc.so.6"; -endef - -$(eval $(call BuildPackage,ble_scan)) diff --git a/feeds/bluetooth-cc2652/ble_scan/src/Makefile b/feeds/bluetooth-cc2652/ble_scan/src/Makefile deleted file mode 100644 index 966e2a1ad..000000000 --- a/feeds/bluetooth-cc2652/ble_scan/src/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -#all: ble_scan -#ble_scan: ble_scan.o -# $(CC) $(LDFLAGS) ble_scan.o -o ble_scan -#blescan.o: ble_scan.c -# $(CC) $(CFLAGS) -c ble_scan.c -#clean: -# rm *.o ble_scan - -# -# -# Author: Teunis van Beelen -# -# email: teuniz@protonmail.com -# -# - -#CROSS-COMPILE:=../../../../../qsdk/staging_dir/toolchain-arm/bin/arm-openwrt-linux- -#CC:=$(CROSS-COMPILE)gcc - -CC = gcc -CFLAGS = -Wall -Wextra -Wshadow -Wformat-nonliteral -Wformat-security -Wtype-limits -O2 - -objects = rs232.o - -all: ble_scan - -ble_scan : $(objects) ble_scan.o - $(CC) $(CFLAGS) $(objects) ble_scan.o -o ble_scan - -ble_scan.o : ble_scan.c rs232.h - $(CC) $(CFLAGS) -c ble_scan.c -o ble_scan.o - -rs232.o : rs232.h rs232.c - $(CC) $(CFLAGS) -c rs232.c -o rs232.o - -clean : - $(RM) ble_scan $(objects) ble_scan.o - -# -# -# -# - - - - - diff --git a/feeds/bluetooth-cc2652/ble_scan/src/ble_scan.c b/feeds/bluetooth-cc2652/ble_scan/src/ble_scan.c deleted file mode 100644 index 73a935ffc..000000000 --- a/feeds/bluetooth-cc2652/ble_scan/src/ble_scan.c +++ /dev/null @@ -1,387 +0,0 @@ - -/************************************************** - -file: ble_scan.c -purpose: Send HCI command to do BLE scan - -compile with the command: gcc ble_scan.c rs232.c -Wall -Wextra -o2 -o ble_scan - -**************************************************/ - -#include -#include -#include -#ifdef _WIN32 -#include -#else -#include -#endif - -#include "rs232.h" - -#define TX 0 -#define RX 1 -#define BUF_SIZE 4095 -#define FULL_BUF_SIZE BUF_SIZE*4 - -//#define DEBUG - -#ifdef DEBUG -#else -#endif - -int print_hex(int mode, unsigned char *buf, int size); -int rx_pkt_parser(unsigned char *buf, int size); - - -struct rx_packet_h{ - unsigned char rxType; - unsigned char rxEventCode; - unsigned char rxDataLen; - unsigned char Event[2]; - unsigned char Status; -}; - -struct event_cmd_st_h{ - unsigned char OpCode[2]; - unsigned char DataLength; -}; - -struct event_scn_evnt_rep_h{ - unsigned char EventId[4]; - unsigned char AdvRptEventType; - unsigned char AddressType; - unsigned char Address[6]; - unsigned char PrimaryPHY; - unsigned char SecondaryPHY; - unsigned char AdvSid; - unsigned char TxPower; - unsigned char RSSI; - unsigned char DirectAddrType; - unsigned char DirectAddr[6]; - unsigned char PeriodicAdvInt[2]; - unsigned char DataLength[2]; - //unsigned char *DataPtr; -}; - - - -int main() -{ - int cport_nr,bdrate,n; - //cport_nr=0, /* /dev/ttyS0 (COM1 on windows) */ - //bdrate=9600; /* 9600 baud */ - cport_nr=39, /* (ttyMSM1 : 39) */ - bdrate=115200; /* 115200 baud */ -#ifdef DEBUG - clock_t t; -#endif - char mode[]={'8','N','1',0}; - - unsigned char buf[BUF_SIZE]; - unsigned char full_buf[FULL_BUF_SIZE]; - int full_buf_ptr = 0; - unsigned char HCIExt_ResetSystemCmd[] = {0x01, 0x1D, 0xFC, 0x01, 0x00 }; - int HCIExt_ResetSystemCmd_length = 5; - - unsigned char GAP_DeviceInitCmd[] = {0x01, 0x00, 0xFE, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - int GAP_DeviceInitCmd_length = 12; - - unsigned char GapScan_enableCmd[] = {0x01, 0x51, 0xFE, 0x06, 0x00, 0x00, 0xF4, 0x01, 0x28, 0x00 }; - int GapScan_enableCmd_length = 10; - - if(RS232_OpenComport(cport_nr, bdrate, mode, 0)) - { - printf("Can not open comport\n"); - - return(0); - } - - RS232_flushRXTX(cport_nr); - - // send reset command -#ifdef DEBUG - t=clock(); - print_hex(TX, HCIExt_ResetSystemCmd, HCIExt_ResetSystemCmd_length); - t=clock()-t; - printf("t=%ld\n",t); //60 -#else - /* sleep for 60ms */ - usleep(60000); -#endif - - - RS232_SendBuf(cport_nr, HCIExt_ResetSystemCmd, HCIExt_ResetSystemCmd_length); - /* sleep for 1 Second */ -#ifdef DEBUG - t=clock(); -#endif - usleep(1000000); -#ifdef DEBUG - t=clock()-t; - printf("CLOCKS_PER_SEC=%ld\n",t); -#endif - n = RS232_PollComport(cport_nr, buf, BUF_SIZE); - -#ifdef DEBUG - t=clock(); - print_hex(RX, buf, n); - t=clock()-t; - printf("t=%ld\n",t); -#else - /* sleep for 300ms */ - usleep(300000); -#endif - - - - // send device initial command -#ifdef DEBUG - t=clock(); - print_hex(TX, GAP_DeviceInitCmd, GAP_DeviceInitCmd_length); - t=clock()-t; - printf("t=%ld\n",t); -#else - /* sleep for 250 ms */ - usleep(250000); -#endif - - - - RS232_SendBuf(cport_nr, GAP_DeviceInitCmd, GAP_DeviceInitCmd_length); -/* sleep for 0.5 Second */ - usleep(500000); - - n = RS232_PollComport(cport_nr, buf, BUF_SIZE); - -#ifdef DEBUG - t=clock(); - print_hex(RX, buf, n); - t=clock()-t; - printf("t=%ld\n",t); -#else - /* sleep for 500 ms */ - usleep(500000); -#endif - - - // send scan command -#ifdef DEBUG - t=clock(); - print_hex(TX, GapScan_enableCmd, GapScan_enableCmd_length); - t=clock()-t; - printf("t=%ld\n",t); -#else - /* sleep for 30ms */ - usleep(30000); -#endif - - - RS232_SendBuf(cport_nr, GapScan_enableCmd, GapScan_enableCmd_length); - - //read scan respone - while (n > 0) - { - /* sleep for 400 mS */ - usleep(400000); - - n = RS232_PollComport(cport_nr, buf, BUF_SIZE); -#ifdef DEBUG - t=clock(); - print_hex(RX, buf, n); - t=clock()-t; - printf("t=%ld\n",t); -#endif - - if (full_buf_ptr+n>FULL_BUF_SIZE) - { -#ifdef DEBUG - printf("buffer full. break.\n"); -#endif - break; - } - memcpy(full_buf+full_buf_ptr, buf, n); - full_buf_ptr+=n; - -#ifdef DEBUG - printf("n:%d, full_buf_ptr:%d\n",n, full_buf_ptr); -#endif - } -#ifdef DEBUG - print_hex(RX, full_buf, full_buf_ptr); -#endif - rx_pkt_parser( full_buf, full_buf_ptr); -#ifdef DEBUG - printf("n:%d, full_buf_ptr:%d\n",n, full_buf_ptr); -#endif - RS232_flushRXTX(cport_nr); - RS232_CloseComport(cport_nr); - return(0); -} -/************************************************** -Print buffer in HEX -**************************************************/ -int print_hex(int mode, unsigned char *buf, int size) -{ - - int ii,jj; - - if (mode == TX) - printf("TX: "); - else - printf("RX: "); - - for(ii=0,jj=0; ii < size; ii++,jj++) - { - printf("%02X ",buf[ii]); - if (jj==15) - { - printf("\n"); - jj = 0; - } - } - printf("\n"); - - return(0); -} - - -int rx_pkt_parser(unsigned char *buf, int size) -{ - int pkt_index=0; - int pkt_size=0; - int temp_event=0; - int temp_EventId=0; - int total_device_count=0; - char szAddress[18]; - struct rx_packet_h *rx_packet; - struct event_scn_evnt_rep_h *event_scn_evnt_rep; -#ifdef DEBUG - int dump_i=0; - unsigned char *pkt_ptr; -#endif - if(size<=0){printf("size error\n");return -1;} - - printf("BLE scan start:\n"); - rx_packet = (struct rx_packet_h *)(buf); - - while(pkt_indexrxType,rx_packet->rxType==0x4?"Event":"Unknown"); - - if(rx_packet->rxType!=0x4) - { - printf(" Type unknown, rxType:0x%02X, pkt_index:%d\n",rx_packet->rxType,pkt_index); - } - - printf("-EventCode : 0x%02X (%s)\n",rx_packet->rxEventCode,rx_packet->rxEventCode==0xff?"HCI_LE_ExtEvent":"Unknown"); - if(rx_packet->rxEventCode!=0xff) - { - printf(" EventCode unknown, rxEventCode:0x%02X, pkt_index:%d\n",rx_packet->rxEventCode,pkt_index); - } - - printf("-Data Length : 0x%02X (%d) bytes(s)\n",rx_packet->rxDataLen,rx_packet->rxDataLen); -#endif - temp_event = (rx_packet->Event[1]<<8)+rx_packet->Event[0] ; -#ifdef DEBUG - printf(" Event : 0x%02X%02X (%d) ",rx_packet->Event[1],rx_packet->Event[0],temp_event); - if(temp_event==0x067F) - { - printf("(GAP_HCI_ExtentionCommandStatus)\n"); - } - else if(temp_event==0x0600) - { - printf("(GAP_DeviceInitDone)\n"); - } - else if(temp_event==0x0613) - { - printf("(GAP_AdvertiserScannerEvent)\n"); - } - else - { - printf(" Event unknown, Event:0x%04X, pkt_index:%d\n",temp_event,pkt_index); - } - - printf(" Status : 0x%02X (%d) (%s)\n",rx_packet->Status,rx_packet->Status,rx_packet->Status==0?"SUCCESS":"FAIL"); -#endif - - if(temp_event==0x0613) - { - event_scn_evnt_rep = (struct event_scn_evnt_rep_h *)(&(rx_packet->Status) + 1); - temp_EventId = (event_scn_evnt_rep->EventId[3]<<24) + (event_scn_evnt_rep->EventId[2]<<16) + - (event_scn_evnt_rep->EventId[1]<<8) + (event_scn_evnt_rep->EventId[0]) ; -#ifdef DEBUG - printf(" EventId : 0x%02X%02X%02X%02X (%d) ", event_scn_evnt_rep->EventId[3], - event_scn_evnt_rep->EventId[2], - event_scn_evnt_rep->EventId[1], - event_scn_evnt_rep->EventId[0],temp_EventId); - - if(temp_EventId==0x00010000) - { - printf("(GAP_EVT_SCAN_ENABLED)\n"); - } - else if(temp_EventId==0x00020000) - { - printf("(GAP_EVT_SCAN_DISABLED)\n"); - } - else if(temp_EventId==0x00400000) - { - printf("(GAP_EVT_ADV_REPORT)\n"); - } - else - { - printf(" EventId unknown, EventId:0x%08X, pkt_index:%d\n",temp_EventId,pkt_index); - } -#endif - if(temp_EventId==0x00400000) - { - sprintf(szAddress,"%02X:%02X:%02X:%02X:%02X:%02X", event_scn_evnt_rep->Address[5], - event_scn_evnt_rep->Address[4], - event_scn_evnt_rep->Address[3], - event_scn_evnt_rep->Address[2], - event_scn_evnt_rep->Address[1], - event_scn_evnt_rep->Address[0]); -#ifdef DEBUG - printf("%04d", total_device_count); - printf(" Address : %s", szAddress); - printf(" RSSI : 0x%02X (%d)(%d)",event_scn_evnt_rep->RSSI,event_scn_evnt_rep->RSSI,event_scn_evnt_rep->RSSI-256); -#else - printf(" Address: %s RSSI: %d", szAddress, event_scn_evnt_rep->RSSI-256); -#endif - printf("\n"); - total_device_count++; - } - } - - - pkt_size = 3+rx_packet->rxDataLen; - -#ifdef DEBUG - pkt_ptr = (unsigned char *)rx_packet; - printf(" Dump(Rx):"); - for(dump_i=0; dump_i < pkt_size; dump_i++) - { - if (dump_i%16==0) - { - printf("\n"); - printf("%04x:",dump_i); - } - printf("%02X ",pkt_ptr[dump_i]); - } - printf("\n"); -#endif - - pkt_index+=pkt_size; -#ifdef DEBUG - printf(" pkt_size:%d, pkt_index:%d\n",pkt_size,pkt_index); -#endif - rx_packet = (struct rx_packet_h *)(&(rx_packet->rxDataLen) + rx_packet->rxDataLen + 1); - - } - printf("Total: %d Device found.\n",total_device_count); - return 0; -} - - diff --git a/feeds/bluetooth-cc2652/ble_scan/src/rs232.c b/feeds/bluetooth-cc2652/ble_scan/src/rs232.c deleted file mode 100755 index 7391ce905..000000000 --- a/feeds/bluetooth-cc2652/ble_scan/src/rs232.c +++ /dev/null @@ -1,879 +0,0 @@ -/* -*************************************************************************** -* -* Author: Teunis van Beelen -* -* Copyright (C) 2005 - 2021 Teunis van Beelen -* -* Email: teuniz@protonmail.com -* -*************************************************************************** -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License. -* -* This program 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 General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -* -*************************************************************************** -*/ - - -/* Last revision: February 9, 2021 */ -/* For more info and how to use this library, visit: http://www.teuniz.net/RS-232/ */ - - -#include "rs232.h" - - -#if defined(__linux__) || defined(__FreeBSD__) /* Linux & FreeBSD */ - -#define RS232_PORTNR 40 - - -int Cport[RS232_PORTNR], - error; - -struct termios new_port_settings, - old_port_settings[RS232_PORTNR]; - -const char *comports[RS232_PORTNR]={"/dev/ttyS0","/dev/ttyS1","/dev/ttyS2","/dev/ttyS3","/dev/ttyS4","/dev/ttyS5", - "/dev/ttyS6","/dev/ttyS7","/dev/ttyS8","/dev/ttyS9","/dev/ttyS10","/dev/ttyS11", - "/dev/ttyS12","/dev/ttyS13","/dev/ttyS14","/dev/ttyS15","/dev/ttyUSB0", - "/dev/ttyUSB1","/dev/ttyUSB2","/dev/ttyUSB3","/dev/ttyUSB4","/dev/ttyUSB5", - "/dev/ttyAMA0","/dev/ttyAMA1","/dev/ttyACM0","/dev/ttyACM1", - "/dev/rfcomm0","/dev/rfcomm1","/dev/ircomm0","/dev/ircomm1", - "/dev/cuau0","/dev/cuau1","/dev/cuau2","/dev/cuau3", - "/dev/cuaU0","/dev/cuaU1","/dev/cuaU2","/dev/cuaU3", - "/dev/ttyMSM0","/dev/ttyMSM1"}; -int RS232_OpenComport(int comport_number, int baudrate, const char *mode, int flowctrl) -{ - int baudr, - status; - - if((comport_number>=RS232_PORTNR)||(comport_number<0)) - { - printf("illegal comport number\n"); - return(1); - } - - switch(baudrate) - { - case 50 : baudr = B50; - break; - case 75 : baudr = B75; - break; - case 110 : baudr = B110; - break; - case 134 : baudr = B134; - break; - case 150 : baudr = B150; - break; - case 200 : baudr = B200; - break; - case 300 : baudr = B300; - break; - case 600 : baudr = B600; - break; - case 1200 : baudr = B1200; - break; - case 1800 : baudr = B1800; - break; - case 2400 : baudr = B2400; - break; - case 4800 : baudr = B4800; - break; - case 9600 : baudr = B9600; - break; - case 19200 : baudr = B19200; - break; - case 38400 : baudr = B38400; - break; - case 57600 : baudr = B57600; - break; - case 115200 : baudr = B115200; - break; - case 230400 : baudr = B230400; - break; - case 460800 : baudr = B460800; - break; -#if defined(__linux__) - case 500000 : baudr = B500000; - break; - case 576000 : baudr = B576000; - break; - case 921600 : baudr = B921600; - break; - case 1000000 : baudr = B1000000; - break; - case 1152000 : baudr = B1152000; - break; - case 1500000 : baudr = B1500000; - break; - case 2000000 : baudr = B2000000; - break; - case 2500000 : baudr = B2500000; - break; - case 3000000 : baudr = B3000000; - break; - case 3500000 : baudr = B3500000; - break; - case 4000000 : baudr = B4000000; - break; -#endif - default : printf("invalid baudrate\n"); - return(1); - break; - } - - int cbits=CS8, - cpar=0, - ipar=IGNPAR, - bstop=0; - - if(strlen(mode) != 3) - { - printf("invalid mode \"%s\"\n", mode); - return(1); - } - - switch(mode[0]) - { - case '8': cbits = CS8; - break; - case '7': cbits = CS7; - break; - case '6': cbits = CS6; - break; - case '5': cbits = CS5; - break; - default : printf("invalid number of data-bits '%c'\n", mode[0]); - return(1); - break; - } - - switch(mode[1]) - { - case 'N': - case 'n': cpar = 0; - ipar = IGNPAR; - break; - case 'E': - case 'e': cpar = PARENB; - ipar = INPCK; - break; - case 'O': - case 'o': cpar = (PARENB | PARODD); - ipar = INPCK; - break; - default : printf("invalid parity '%c'\n", mode[1]); - return(1); - break; - } - - switch(mode[2]) - { - case '1': bstop = 0; - break; - case '2': bstop = CSTOPB; - break; - default : printf("invalid number of stop bits '%c'\n", mode[2]); - return(1); - break; - } - -/* -http://pubs.opengroup.org/onlinepubs/7908799/xsh/termios.h.html - -http://man7.org/linux/man-pages/man3/termios.3.html -*/ - - Cport[comport_number] = open(comports[comport_number], O_RDWR | O_NOCTTY | O_NDELAY); - if(Cport[comport_number]==-1) - { - perror("unable to open comport "); - return(1); - } - - /* lock access so that another process can't also use the port */ - if(flock(Cport[comport_number], LOCK_EX | LOCK_NB) != 0) - { - close(Cport[comport_number]); - perror("Another process has locked the comport."); - return(1); - } - - error = tcgetattr(Cport[comport_number], old_port_settings + comport_number); - if(error==-1) - { - close(Cport[comport_number]); - flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */ - perror("unable to read portsettings "); - return(1); - } - memset(&new_port_settings, 0, sizeof(new_port_settings)); /* clear the new struct */ - - new_port_settings.c_cflag = cbits | cpar | bstop | CLOCAL | CREAD; - if(flowctrl) - { - new_port_settings.c_cflag |= CRTSCTS; - } - new_port_settings.c_iflag = ipar; - new_port_settings.c_oflag = 0; - new_port_settings.c_lflag = 0; - new_port_settings.c_cc[VMIN] = 0; /* block untill n bytes are received */ - new_port_settings.c_cc[VTIME] = 0; /* block untill a timer expires (n * 100 mSec.) */ - - cfsetispeed(&new_port_settings, baudr); - cfsetospeed(&new_port_settings, baudr); - - error = tcsetattr(Cport[comport_number], TCSANOW, &new_port_settings); - if(error==-1) - { - tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number); - close(Cport[comport_number]); - flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */ - perror("unable to adjust portsettings "); - return(1); - } - -/* http://man7.org/linux/man-pages/man4/tty_ioctl.4.html */ - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number); - flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */ - perror("unable to get portstatus"); - return(1); - } - - status |= TIOCM_DTR; /* turn on DTR */ - status |= TIOCM_RTS; /* turn on RTS */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number); - flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */ - perror("unable to set portstatus"); - return(1); - } - - return(0); -} - - -int RS232_PollComport(int comport_number, unsigned char *buf, int size) -{ - int n; - - n = read(Cport[comport_number], buf, size); - - if(n < 0) - { - if(errno == EAGAIN) return 0; - } - - return(n); -} - - -int RS232_SendByte(int comport_number, unsigned char byte) -{ - int n = write(Cport[comport_number], &byte, 1); - if(n < 0) - { - if(errno == EAGAIN) - { - return 0; - } - else - { - return 1; - } - } - - return(0); -} - - -int RS232_SendBuf(int comport_number, unsigned char *buf, int size) -{ - int n = write(Cport[comport_number], buf, size); - if(n < 0) - { - if(errno == EAGAIN) - { - return 0; - } - else - { - return -1; - } - } - - return(n); -} - - -void RS232_CloseComport(int comport_number) -{ - int status; - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - perror("unable to get portstatus"); - } - - status &= ~TIOCM_DTR; /* turn off DTR */ - status &= ~TIOCM_RTS; /* turn off RTS */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - perror("unable to set portstatus"); - } - - tcsetattr(Cport[comport_number], TCSANOW, old_port_settings + comport_number); - close(Cport[comport_number]); - - flock(Cport[comport_number], LOCK_UN); /* free the port so that others can use it. */ -} - -/* -Constant Description -TIOCM_LE DSR (data set ready/line enable) -TIOCM_DTR DTR (data terminal ready) -TIOCM_RTS RTS (request to send) -TIOCM_ST Secondary TXD (transmit) -TIOCM_SR Secondary RXD (receive) -TIOCM_CTS CTS (clear to send) -TIOCM_CAR DCD (data carrier detect) -TIOCM_CD see TIOCM_CAR -TIOCM_RNG RNG (ring) -TIOCM_RI see TIOCM_RNG -TIOCM_DSR DSR (data set ready) - -http://man7.org/linux/man-pages/man4/tty_ioctl.4.html -*/ - -int RS232_IsDCDEnabled(int comport_number) -{ - int status; - - ioctl(Cport[comport_number], TIOCMGET, &status); - - if(status&TIOCM_CAR) return(1); - else return(0); -} - - -int RS232_IsRINGEnabled(int comport_number) -{ - int status; - - ioctl(Cport[comport_number], TIOCMGET, &status); - - if(status&TIOCM_RNG) return(1); - else return(0); -} - - -int RS232_IsCTSEnabled(int comport_number) -{ - int status; - - ioctl(Cport[comport_number], TIOCMGET, &status); - - if(status&TIOCM_CTS) return(1); - else return(0); -} - - -int RS232_IsDSREnabled(int comport_number) -{ - int status; - - ioctl(Cport[comport_number], TIOCMGET, &status); - - if(status&TIOCM_DSR) return(1); - else return(0); -} - - -void RS232_enableDTR(int comport_number) -{ - int status; - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - perror("unable to get portstatus"); - } - - status |= TIOCM_DTR; /* turn on DTR */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - perror("unable to set portstatus"); - } -} - - -void RS232_disableDTR(int comport_number) -{ - int status; - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - perror("unable to get portstatus"); - } - - status &= ~TIOCM_DTR; /* turn off DTR */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - perror("unable to set portstatus"); - } -} - - -void RS232_enableRTS(int comport_number) -{ - int status; - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - perror("unable to get portstatus"); - } - - status |= TIOCM_RTS; /* turn on RTS */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - perror("unable to set portstatus"); - } -} - - -void RS232_disableRTS(int comport_number) -{ - int status; - - if(ioctl(Cport[comport_number], TIOCMGET, &status) == -1) - { - perror("unable to get portstatus"); - } - - status &= ~TIOCM_RTS; /* turn off RTS */ - - if(ioctl(Cport[comport_number], TIOCMSET, &status) == -1) - { - perror("unable to set portstatus"); - } -} - - -void RS232_flushRX(int comport_number) -{ - tcflush(Cport[comport_number], TCIFLUSH); -} - - -void RS232_flushTX(int comport_number) -{ - tcflush(Cport[comport_number], TCOFLUSH); -} - - -void RS232_flushRXTX(int comport_number) -{ - tcflush(Cport[comport_number], TCIOFLUSH); -} - - -#else /* windows */ - -#define RS232_PORTNR 32 - -HANDLE Cport[RS232_PORTNR]; - - -const char *comports[RS232_PORTNR]={"\\\\.\\COM1", "\\\\.\\COM2", "\\\\.\\COM3", "\\\\.\\COM4", - "\\\\.\\COM5", "\\\\.\\COM6", "\\\\.\\COM7", "\\\\.\\COM8", - "\\\\.\\COM9", "\\\\.\\COM10", "\\\\.\\COM11", "\\\\.\\COM12", - "\\\\.\\COM13", "\\\\.\\COM14", "\\\\.\\COM15", "\\\\.\\COM16", - "\\\\.\\COM17", "\\\\.\\COM18", "\\\\.\\COM19", "\\\\.\\COM20", - "\\\\.\\COM21", "\\\\.\\COM22", "\\\\.\\COM23", "\\\\.\\COM24", - "\\\\.\\COM25", "\\\\.\\COM26", "\\\\.\\COM27", "\\\\.\\COM28", - "\\\\.\\COM29", "\\\\.\\COM30", "\\\\.\\COM31", "\\\\.\\COM32"}; - -char mode_str[128]; - - -int RS232_OpenComport(int comport_number, int baudrate, const char *mode, int flowctrl) -{ - if((comport_number>=RS232_PORTNR)||(comport_number<0)) - { - printf("illegal comport number\n"); - return(1); - } - - switch(baudrate) - { - case 110 : strcpy(mode_str, "baud=110"); - break; - case 300 : strcpy(mode_str, "baud=300"); - break; - case 600 : strcpy(mode_str, "baud=600"); - break; - case 1200 : strcpy(mode_str, "baud=1200"); - break; - case 2400 : strcpy(mode_str, "baud=2400"); - break; - case 4800 : strcpy(mode_str, "baud=4800"); - break; - case 9600 : strcpy(mode_str, "baud=9600"); - break; - case 19200 : strcpy(mode_str, "baud=19200"); - break; - case 38400 : strcpy(mode_str, "baud=38400"); - break; - case 57600 : strcpy(mode_str, "baud=57600"); - break; - case 115200 : strcpy(mode_str, "baud=115200"); - break; - case 128000 : strcpy(mode_str, "baud=128000"); - break; - case 256000 : strcpy(mode_str, "baud=256000"); - break; - case 500000 : strcpy(mode_str, "baud=500000"); - break; - case 921600 : strcpy(mode_str, "baud=921600"); - break; - case 1000000 : strcpy(mode_str, "baud=1000000"); - break; - case 1500000 : strcpy(mode_str, "baud=1500000"); - break; - case 2000000 : strcpy(mode_str, "baud=2000000"); - break; - case 3000000 : strcpy(mode_str, "baud=3000000"); - break; - default : printf("invalid baudrate\n"); - return(1); - break; - } - - if(strlen(mode) != 3) - { - printf("invalid mode \"%s\"\n", mode); - return(1); - } - - switch(mode[0]) - { - case '8': strcat(mode_str, " data=8"); - break; - case '7': strcat(mode_str, " data=7"); - break; - case '6': strcat(mode_str, " data=6"); - break; - case '5': strcat(mode_str, " data=5"); - break; - default : printf("invalid number of data-bits '%c'\n", mode[0]); - return(1); - break; - } - - switch(mode[1]) - { - case 'N': - case 'n': strcat(mode_str, " parity=n"); - break; - case 'E': - case 'e': strcat(mode_str, " parity=e"); - break; - case 'O': - case 'o': strcat(mode_str, " parity=o"); - break; - default : printf("invalid parity '%c'\n", mode[1]); - return(1); - break; - } - - switch(mode[2]) - { - case '1': strcat(mode_str, " stop=1"); - break; - case '2': strcat(mode_str, " stop=2"); - break; - default : printf("invalid number of stop bits '%c'\n", mode[2]); - return(1); - break; - } - - if(flowctrl) - { - strcat(mode_str, " xon=off to=off odsr=off dtr=on rts=off"); - } - else - { - strcat(mode_str, " xon=off to=off odsr=off dtr=on rts=on"); - } - -/* -http://msdn.microsoft.com/en-us/library/windows/desktop/aa363145%28v=vs.85%29.aspx - -http://technet.microsoft.com/en-us/library/cc732236.aspx - -https://docs.microsoft.com/en-us/windows/desktop/api/winbase/ns-winbase-_dcb -*/ - - Cport[comport_number] = CreateFileA(comports[comport_number], - GENERIC_READ|GENERIC_WRITE, - 0, /* no share */ - NULL, /* no security */ - OPEN_EXISTING, - 0, /* no threads */ - NULL); /* no templates */ - - if(Cport[comport_number]==INVALID_HANDLE_VALUE) - { - printf("unable to open comport\n"); - return(1); - } - - DCB port_settings; - memset(&port_settings, 0, sizeof(port_settings)); /* clear the new struct */ - port_settings.DCBlength = sizeof(port_settings); - - if(!BuildCommDCBA(mode_str, &port_settings)) - { - printf("unable to set comport dcb settings\n"); - CloseHandle(Cport[comport_number]); - return(1); - } - - if(flowctrl) - { - port_settings.fOutxCtsFlow = TRUE; - port_settings.fRtsControl = RTS_CONTROL_HANDSHAKE; - } - - if(!SetCommState(Cport[comport_number], &port_settings)) - { - printf("unable to set comport cfg settings\n"); - CloseHandle(Cport[comport_number]); - return(1); - } - - COMMTIMEOUTS Cptimeouts; - - Cptimeouts.ReadIntervalTimeout = MAXDWORD; - Cptimeouts.ReadTotalTimeoutMultiplier = 0; - Cptimeouts.ReadTotalTimeoutConstant = 0; - Cptimeouts.WriteTotalTimeoutMultiplier = 0; - Cptimeouts.WriteTotalTimeoutConstant = 0; - - if(!SetCommTimeouts(Cport[comport_number], &Cptimeouts)) - { - printf("unable to set comport time-out settings\n"); - CloseHandle(Cport[comport_number]); - return(1); - } - - return(0); -} - - -int RS232_PollComport(int comport_number, unsigned char *buf, int size) -{ - int n; - -/* added the void pointer cast, otherwise gcc will complain about */ -/* "warning: dereferencing type-punned pointer will break strict aliasing rules" */ - - if(!ReadFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL)) - { - return -1; - } - - return(n); -} - - -int RS232_SendByte(int comport_number, unsigned char byte) -{ - int n; - - if(!WriteFile(Cport[comport_number], &byte, 1, (LPDWORD)((void *)&n), NULL)) - { - return(1); - } - - if(n<0) return(1); - - return(0); -} - - -int RS232_SendBuf(int comport_number, unsigned char *buf, int size) -{ - int n; - - if(WriteFile(Cport[comport_number], buf, size, (LPDWORD)((void *)&n), NULL)) - { - return(n); - } - - return(-1); -} - - -void RS232_CloseComport(int comport_number) -{ - CloseHandle(Cport[comport_number]); -} - -/* -http://msdn.microsoft.com/en-us/library/windows/desktop/aa363258%28v=vs.85%29.aspx -*/ - -int RS232_IsDCDEnabled(int comport_number) -{ - int status; - - GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status)); - - if(status&MS_RLSD_ON) return(1); - else return(0); -} - - -int RS232_IsRINGEnabled(int comport_number) -{ - int status; - - GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status)); - - if(status&MS_RING_ON) return(1); - else return(0); -} - - -int RS232_IsCTSEnabled(int comport_number) -{ - int status; - - GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status)); - - if(status&MS_CTS_ON) return(1); - else return(0); -} - - -int RS232_IsDSREnabled(int comport_number) -{ - int status; - - GetCommModemStatus(Cport[comport_number], (LPDWORD)((void *)&status)); - - if(status&MS_DSR_ON) return(1); - else return(0); -} - - -void RS232_enableDTR(int comport_number) -{ - EscapeCommFunction(Cport[comport_number], SETDTR); -} - - -void RS232_disableDTR(int comport_number) -{ - EscapeCommFunction(Cport[comport_number], CLRDTR); -} - - -void RS232_enableRTS(int comport_number) -{ - EscapeCommFunction(Cport[comport_number], SETRTS); -} - - -void RS232_disableRTS(int comport_number) -{ - EscapeCommFunction(Cport[comport_number], CLRRTS); -} - -/* -https://msdn.microsoft.com/en-us/library/windows/desktop/aa363428%28v=vs.85%29.aspx -*/ - -void RS232_flushRX(int comport_number) -{ - PurgeComm(Cport[comport_number], PURGE_RXCLEAR | PURGE_RXABORT); -} - - -void RS232_flushTX(int comport_number) -{ - PurgeComm(Cport[comport_number], PURGE_TXCLEAR | PURGE_TXABORT); -} - - -void RS232_flushRXTX(int comport_number) -{ - PurgeComm(Cport[comport_number], PURGE_RXCLEAR | PURGE_RXABORT); - PurgeComm(Cport[comport_number], PURGE_TXCLEAR | PURGE_TXABORT); -} - - -#endif - - -void RS232_cputs(int comport_number, const char *text) /* sends a string to serial port */ -{ - while(*text != 0) RS232_SendByte(comport_number, *(text++)); -} - - -/* return index in comports matching to device name or -1 if not found */ -int RS232_GetPortnr(const char *devname) -{ - int i; - - char str[32]; - -#if defined(__linux__) || defined(__FreeBSD__) /* Linux & FreeBSD */ - strcpy(str, "/dev/"); -#else /* windows */ - strcpy(str, "\\\\.\\"); -#endif - strncat(str, devname, 16); - str[31] = 0; - - for(i=0; i. -* -*************************************************************************** -*/ - -/* For more info and how to use this library, visit: http://www.teuniz.net/RS-232/ */ - - -#ifndef rs232_INCLUDED -#define rs232_INCLUDED - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - - - -#if defined(__linux__) || defined(__FreeBSD__) - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#else - -#include - -#endif - -int RS232_OpenComport(int, int, const char *, int); -int RS232_PollComport(int, unsigned char *, int); -int RS232_SendByte(int, unsigned char); -int RS232_SendBuf(int, unsigned char *, int); -void RS232_CloseComport(int); -void RS232_cputs(int, const char *); -int RS232_IsDCDEnabled(int); -int RS232_IsRINGEnabled(int); -int RS232_IsCTSEnabled(int); -int RS232_IsDSREnabled(int); -void RS232_enableDTR(int); -void RS232_disableDTR(int); -void RS232_enableRTS(int); -void RS232_disableRTS(int); -void RS232_flushRX(int); -void RS232_flushTX(int); -void RS232_flushRXTX(int); -int RS232_GetPortnr(const char *); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif - - diff --git a/feeds/bluetooth-cc2652/cc2652/Makefile b/feeds/bluetooth-cc2652/cc2652/Makefile deleted file mode 100755 index 768866bb5..000000000 --- a/feeds/bluetooth-cc2652/cc2652/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=cc2652 -PKG_VERSION:=1.0.0 -PKG_RELEASE:=1 - -PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) - -include $(INCLUDE_DIR)/package.mk - -define Package/cc2652 - SECTION:=utils - CATEGORY:=Utilities - TITLE:=cc2652 -- TI CC26x2 firmware upgrade tool - DEPENDS:=+libstdcpp +zlib -endef - -define Package/cc2652/description - TI CC26x2 firmware upgrade tool -endef - -define Build/Prepare - mkdir -p $(PKG_BUILD_DIR) - $(CP) ./src/* $(PKG_BUILD_DIR)/ -endef - -define Package/cc2652/install - $(INSTALL_DIR) $(1)/lib/firmware/cc2562 - $(INSTALL_BIN) ./files/firmware/* $(1)/lib/firmware/cc2562 - - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/tisbl $(1)/usr/bin/ - $(INSTALL_BIN) ./files/*.sh $(1)/usr/bin/ -endef - -$(eval $(call BuildPackage,cc2652)) - diff --git a/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-broadcaster.sh b/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-broadcaster.sh deleted file mode 100644 index db84e0d38..000000000 --- a/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-broadcaster.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ -f /sys/class/gpio/ble_enable/value ]; then - echo 1 > /sys/class/gpio/ble_enable/value -fi -echo 0 > /sys/class/gpio/ble_backdoor/value -echo 1 > /sys/class/gpio/ble_reset/value -echo 0 > /sys/class/gpio/ble_reset/value -sleep 1 -echo 1 > /sys/class/gpio/ble_reset/value -sleep 1 -echo 1 > /sys/class/gpio/ble_backdoor/value -tisbl /dev/ttyMSM1 115200 2652 /lib/firmware/cc2562/simple_broadcaster_bd9.bin diff --git a/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-scanner.sh b/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-scanner.sh deleted file mode 100644 index c01f25c58..000000000 --- a/feeds/bluetooth-cc2652/cc2652/files/cc2562-flash-scanner.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ -f /sys/class/gpio/ble_enable/value ]; then - echo 1 > /sys/class/gpio/ble_enable/value -fi -echo 0 > /sys/class/gpio/ble_backdoor/value -echo 1 > /sys/class/gpio/ble_reset/value -echo 0 > /sys/class/gpio/ble_reset/value -sleep 1 -echo 1 > /sys/class/gpio/ble_reset/value -sleep 1 -echo 1 > /sys/class/gpio/ble_backdoor/value -tisbl /dev/ttyMSM1 115200 2652 /lib/firmware/cc2562/ble5_host_test_bd9.bin diff --git a/feeds/bluetooth-cc2652/cc2652/files/cc2562-reset.sh b/feeds/bluetooth-cc2652/cc2652/files/cc2562-reset.sh deleted file mode 100644 index 59b64e2fa..000000000 --- a/feeds/bluetooth-cc2652/cc2652/files/cc2562-reset.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -if [ -f /sys/class/gpio/ble_enable/value ]; then - echo 1 > /sys/class/gpio/ble_enable/value -fi -echo 1 > /sys/class/gpio/ble_backdoor/value -echo 1 > /sys/class/gpio/ble_reset/value -sleep 1 -echo 1 > /sys/class/gpio/ble_reset/value -sleep 1 diff --git a/feeds/bluetooth-cc2652/cc2652/files/cc2562-wr.sh b/feeds/bluetooth-cc2652/cc2652/files/cc2562-wr.sh deleted file mode 100755 index 10c07c8c2..000000000 --- a/feeds/bluetooth-cc2652/cc2652/files/cc2562-wr.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# com-wr.sh tty time command parser -# example com-wr.sh /dev/ttyMSM1 1 "\x01\x1D\xFC\x01\x00" | hexdump.sh --> send "\x01\x1D\xFC\x01\x00" to /dev/ttyMSM1 and then hexdump receive data until 100ms timeout -#command example "\x7E\x03\xD0\xAF und normaler Text" -tty=$1 -time=$2 -command=$3 -parser=$4 -stty -F $tty time $time -exec 99< $tty -echo -en $command > $tty -cat $tty -exec 99<&- diff --git a/feeds/bluetooth-cc2652/cc2652/files/firmware/ble5_host_test_bd9.bin b/feeds/bluetooth-cc2652/cc2652/files/firmware/ble5_host_test_bd9.bin deleted file mode 100755 index 0d69b476a1ce5e69fe9a8aa2dc5b9cc4c7756e52..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 zcmb5W3w#vS**JX8>^&EF;+AYPK7ZKBcytQD=TyC82>v`nxy!PxdJ7oB8t`JOWyB7N=m|Gxik ze>>+g=RD6j&*fa6^PEA~V)o6o7|o9|=Kq_2GL)ZncC_l`Vm((yka4D68?m4g?o|az z25vGDN1b9zF(R1{OF4*q+b{{@1NAP5e^j3g@nHR=Vi#HR@EhV0?nVyHMC6wGyQbP^ zqH_<`pYESb3Yi>6&pgNw{5m>`kKzZJ-(nFx$TUNY{&qlE5C2*$;`MkPuE9QhKfV{Q z#ynn*e~Ol1J8G*Vsa5l0?Hu-XvN-ug>R#`fmh>eQZiG)D^3JP`|DAoS;+_sFi?=Yk(wZhtbjP zA`CJKAF44eiZjt1BdUy}p&4yaLl%9ghAw1^r}+|!%M)w<(7T4UlFGqfeuGSi?34<) zHTKEmg^|Tv9II7uynZ@7H~2&vclznGEr?RoFqRUK!`N+|XANPse48L`qHo&;vz_Hq z$e%{q1hmmSPpu)KE#q~C6ekvJyi4GD<2olWP+}Yg#KvJby_duA zsW2?_Qpej-JzjU~h|il0xXklxycBGapxnlnrqI?9VNG5Y!A9gjq$~hATO;Fbt{x#1 zZ6<C0y2zAW}{eVOBRzUb@W?)nL0GbUu> zjbNwmw^L$L(H<11#ODR1+vK!~_kZY1nTY=&Kj(uRsx2v<)pHw%s?90IHPwy&8e>Xl z&6|xQHI9_xwQU>3wUhD=%abmv+ZNR2DLw?!*DfdIEl~U96Dj`oar|+@hACNmV{n(` z+@RF_N{*kX9kF)$;)G$V9p3Jhe2roa0&KLDZ$omP`6tC|4Ut4tBw)TlHciy(1ez61 zQK06vQ(`rVph@Vg!Eu8%Xwo%nU+FVUl%?%BKdv2f8)Lnz9`9XzUaWUNmG#i>|J0;5 zzgX>-brW!YjMLZH39VJ2wZ&`CH*Q!9bX$AnmXWnUr*$=3YS)=lI@dYtCg&;Z^5jcY zX`ga=f7^nw{t~gvt<;#=cyf3cb7ni$@)S}se8f%j4vptoA@8c;nR#7w#9UIv-6pq* zP3^9n`QcnPn`|7*%`;fdp=29UaJGILJa4ELX*^=J%PXP8nz5Bof(fUxKHt@{mNUmR zHy7mg8lM=kvUV!LR2#L!>^yxW7qhBvjzsm5GOUfTh_$DX@1j&2vgAeF0xm;dCobe} z>6+&+?;^o@jh)p%k7{jRY}_jH*NAI_#azjSHcvJgjn-AaI%ONQd;#~1-g(?k1-C5Z zW^>FlZ$(g&rTeW&dXkHDNV)#obF4G8pVeKH8M-|uIn*kj?$?mLNqe4t@=WVk>!OxJhPV^y6!pe5HD;d@29YVJ3g-L~6ru z-9)^4SUVBFXE@J`rfTzN$?Qgev5~@5stpk%vXY+;YxAX?A7HqLT{$>EW1{YY;hQJo zR}9Bb#0!RhE$AjvIm7=DdODb<>n3uNhp(E58;1Ygcd5lA(HRr@=cC6a^3O)UoQR)} zuJY>hrKu+;a*jt2O~j8y<0c^dKKes1--!OPgK5?ep!l~V`AHdH#z*uBH)WGMM(Nld z7oyyKw7q+Z3G(N1^FbO$hK#a{I|OrfY8=x<%Xe|O>CSeh+1bwQzNx%``|T7blsh}* z;4+A1#O7Zatl*Xb-&=t1Otewawc+QhI0R!<(fy3MdO|Lm;QhHFE$0(I?eh6u!0otV zQ^;66Ib58nS2=oXG(ldqnlWEW-v~Xq6fcXS%s+JCon73=eQk};D7eW4bGMe8IWytQ zY;s{lXVrz<8llyuX<09IFtR#|%L}-*K?hfL;a8qYE}I-0a{7g8I#;z;J2&)Kw>6>^ zM@_q6w8n+HKrVIRjz(R?1e#Yn)Fxz*1H+(uuEPpKY&$&74lb3P9hueM8No?R*uiCz zdPQ3y36^#ZJhREuQOq9hAAORJ&9lyulE-g+T$mv~tze0FWYATR{?$lNV$v5p%r4&s zavT|-%_&ZIT=`jMG2?KZn^xbGljvCV+2LLftbhIzplhL{>a$CIz7c5aJ>736yYcHk z`km55(8rp0HG4G=YP_0-ns^P;e9MGUAM+ve9@EVnW)3m0FfTK$4296Z>_Gwa1dja( zz5uaJ%tmG%b3e0+VVPuR5@TW*W(~R#4Psj3Z}=4cD}GS@O@Z~+yZ8`p$CJ>DxEZ5o zKX%(iU8LN2!tpxFm1gz|$X__r(_w@)mcz&TQPZEG z)>qD| zrpyH?{LLVG20!~J_ub;0uVO7gPvd9*43Jlfv|a+VWOf%X1{FP8APQC_BN*dLzp{%} z-;Gs|6&gR+7wSVvh1$>GS4ZCqgMkis;|rD=yP5n)luENHg<&62ZZLn-yFr?j=}peXV#zR@`qz1DJhPv7ihX zv9~E!H8k7jbK8_DC^3=)@@gM6M9kX6$ZTY`+kh@vgW8B$mj>m{_HD{_sDMk1To2_Y z4eFrWWED;oq9F_Aw<${i&Qf?ks<87CBh@hWQz+jnFb^0KBikWO$A*6^h6p=eyIrll zP3fdz_7$8F7m>{dOE=D)wHsZK9>OFEqYFK&9yo7glFJr-gBkk;e#OFX807lqU6#Gz zbIodEMY_hj!a6f_mo?TV^ElMx@i1jPOhv4Su``AtU$+}m3;TD>)Zv@yAh*h_=7)#!o*a zfwXQuu*#t0Hf5xa4lG7aq-mzA>POK91p-(U}Y=Hk(Z7UtylF2Kh z=6STY`^Mq1C{sv`*qLPh4&fGF`^sD{RWT<08SD(#Lmvv!H5}fFr!&u%$QK8(x%UN( zcrh;qca7Pu8$fwBPTQJHB!Jti>gY;Q`!dj%ce>Gzn4W4_V^bk_1!t2_y@t`0e`9l@ zn@Ykyb?!4s=>t}F_V0y>=iW!O}o+d-@&L& zF=zn;n&l$bH)xwFZc;yg0^fcW-~9iAZ*YW`&1+~8JE5hTgGhz-w~-jE%yC#B)~9}T zdG9_~YsEEmyMHBXT3@p6$)Tf=liSll`|!T{Hd?=!YfvXm3(a6&62wH2N9hg1$|4#ttS{Z(E9wfQbD8y9P?c5l zDl>3|NwFv$ExxDw;}Oa`$kju*R>gElIto>YtLraGNB+pGy`WF9wx;XrnHmOGSiNHQ zRQr@Y9hqeR7?qaW)Rw&!q%&p8)TcV;LLV6w4p;Buo>$V$NGxi99>!7RNa*f#ceypP zg?v1QnqpWe13{&|?nM_T>wC#V=wVIa~IFu|Jc zZ~`!P)*1>tub7>Qkz{5G$JnyT3y_P*BZ0$80>S`Qg4iTPSF3?i(3Jp{YztXG z_O@HY*?=DX*C2NA7&bFA3}0U2brvZZdpoG-m>EonS|2|S?8$L*l&)YGP_cFg-kxY{ z?RZ;P2Mz(e?Psw02RKvI-o76AF~7@HID5w1Gkc6`25QnAq_Vnn9AZgeOK&gFn9m0P zcl#ovm$z^8W$jB<;XV*}bE18P%T#qXn(_CFtQ$2X&|yRYy4$6V%r(WC1> z@GZIw-wCz;Re={L@STfN{v&cmn(<%o{Z1`EbsS&E=+kaP?+^5PWRyx_M&NQC+pX5n z2OgimaAX`qyEG)f2lV-IuUgbP-%3yltmomvwV^{zS`?)Rt9- zVb>kM2xZc&Vc}>zT?;(96!_$ZG7BKw4m4e`iZMs7WXy-*zZBB*VIA&CV9X!DT5RD`#$0z7 ztS=0pV|T>PTTUzJ=O-0y8-=e4AMXFYDw`~LYY*5kPAlKu4gdAnVd-WZ+_}~)*LQ!& zEctHn^0<)JVeK|L%nn`11#cx7fp!OO{wj+&K^up_dY(bDN7;7FTFCUl4D#iO5pq%> z#|Sw&kn_oi8FEaJV}_hG$obO<#i=D_L#PRfcpN^MB$~?wjf|Qz$Xg>??zF>W}9IWe3?iU#Z9wC8iEi<>YPhMs6bs5y~zk1=$Xl+dm?5f{dVn8M_cwvY=M3&EBm zncF=$|gq#UF9u2W?Oy9w!~hY{c7Ja$o<`*RDN2ykjH!fpcti8;cs4`#g&<2 z#}qsez{_qst$dnhiZYEo3fmMXv({^lYiqQ57Af&k;Y?~5L`kSNS#uQtOww< z>gp|(D;V28SwD_VQnBrv!1fC$6$ET>Lc^F;Y~p`l3-PCwyL4DEZcHYV$Nv9go~dHi z+U}OY5F<(j31K69TA7ws?28jm!7PUhv%0HSn?!6&m#LL}H`qb4NEmDm?1m$Tif)=l zk@uz33enF;{YjyGwNAUl z*Drz6ljmiMuc>@}@HSIar}8uzcxv>Z=D+u%nXiS+05{b(-}hag9`I>Z$iJC@tOIS% zCcgs6R95B+Hv`O%a(QpEsEH)#On41I)u>R50O~Q`2`59zqzSBxmYD}Ip0tsYI zG?RP)YYQyk?I6i5rxjmn5LS2~%S}`}T#i)G2g#pBjN=@MKS|S>yv0 z)F}-d#ruOco>H_fjl3Kzx#y!=&^v7i?^@0!65}Yl@7=`BBQ(+aZUB_dw2+DCO%i$f4mcAZK#4Rn(AeV|vax zG1lVnIv8o4z*`;gmgZAkOb1=O26QnIba8IzZqTy3LRrKyMs*L{sP-N3Err}$Lsavo zshXEXEMu2+^&zDdC~XEx7fw+6l=p=x({IQYH3JQr=!9;>G>%~lv@K7j+LlEk zqZHbdDysWcN(;d2AC2kS)u3w@fSW=!4X5C(6VT?XnpUi8TEnmw^w-IOt-UId6dtA_ z<;T-+!F=~5>VAAVVjnj#=vWdMLM9=0351`*pL{wtb_;}`!T%%p&pNAAQ7zgxf*t8$ zn2YXqipZ8lc8zM0wwpq{cL=d;4Lc=?M1~FIfk7S8gad3Ad3ZGSE6fVjx{J>~bXu9I zhkt&F=(d*lTKz3GF1AQa_9c;(Q3vn2uTo_13+ppa2JVd$lKq+jZ787|Y&QUX!4P|2 z;NB+XUKA%V5n~+HOPXIaWV^58fdb)L`N;kMyG}0DIdXrK()_>bWI!F5iSoiq3n~y! zD=%GnjNh%~^P1V2pPug56GoSigf6!6SVkA;`Hu1Cpz>I9&Fvmm~th>0=mr0bU)*cs`gmsZ= zD3e5@PT^@q--IFwnpnPOz-`VX|A731V9P2?)j;VKtcjSR^yg7sWTt7il7<=;228kd zk#vCLgg1YV(v$^Kb0PIdHI)Uad64Rkb}2?AJWNYiA@3)U_hxh#KcJ<@Stf%5{E89|vk4qiSu4d?$WJ@9+4qjs`>eWSNV+Wi$ zY#q_DtpOUVAJGA>9KhuPT$`i2!CL7uHA1Z{;u{g_J=wl06&R=!BxA}-a(LF|*<)L_ZExRR}KUIBBI<~`*(d{TKX*}(-DT`e5& zGm%Le3U~P}FRK`sb4)p6Lu=;?t$rMt#AHPgNxq{|Ni_5Km53ker<{CRc?KK1GQrk= zsZF??=9T8et!wqqhgQN#Mme&Ttc$@1J14+L_R?iDnE+>wp0Cvs!l3;k5?&6=SVRW=3qCxepIG_E#9f}J{#>t>33~Q{Wt%Vgz2aZf; zif9YY;{lgBwB(2O{MH@t(De=yj~E~{o5aQ4Q`sbT%Xq2+d|Oyld0EPZ;tWN?%YHmi zno8eF$Wn8_4>S2dNlHAsq-Ok`S!-*l4Ahum^wfuoDAfjBDcBaSG03ODPEAX>L<-|m zs1bWR)t0>83HfNCG#RlK>s$RL))m#CXs4|%2lxt)>m{hwzy9Y zfZX5+E|1&D5Dmi=PVUy)^fu517PPXb>cX+LTP)r!FMF1jwMWmNzumgVlNC)EKB*v? zFaMj8&;$E|WE^FV9?yF5V(W@}{*vr8Sau6Dgxx&V>zHgNIQQJ4A^+Ai+|ug5T9pk3 z-X+YM5{YMt!7SxI0I`fta~MbC<(OUC(Nes`mW zP|RA*yX#IVPBfQ}Ljp5UW`z-fEiJn%w*x3~YuVn5&v-sktY#OF`1BUNMH z7j>cTlQ8Gd`RK0@J^}wG_&*2f_aSVCFaUPno&?11hV+g9z-Bs!HA9-tRWHGNI-eC? zM2OK!(j_}?J@;y4UZRED#W9YUH8)!Sj<7^Lw0$Wzr6B(c zu;h}1frNsTFA^YjXMH1_G#^x-PpZ!&>QhvozpQ`#%%u5<bCY(XOgEJaN&LHPTe(#POw>z0gn!4wAkq5?Y zm;VfS&q%P74}i5fll*QRgYaK45U>Nd$jyKugB%+tCVPZyjlKpXmK@ncZp`n_A|Xk$2ojdg0Xnd}jTA5zRp)JD{H< zowEdrxd6fgJvaz9%|@_X#y9;m^cMI{G6U~3DdfvRG{@L|gewUB-TF3ngv%8-v}aGb z%lgZqh9Q<)3cV~>dr7UX8KIjwhSSJ*S+%)#ZZ{XdtLmFZga$r9E(`3*!IGXuHV)lV zZi-;j+Yuc9X}E%WtTZu9X~2!3XHC1}cE|6*+q=NZVP;L_Zj}<$rn#s+{yEr9wWkrw z@a7zCBtiRqIKDZZM912DQ}bSjzBhE3nqRWofi@QM`EZQ0uZ&v}V{c1Uy3JE*@+?^U z;@|`TZ1v=dae8kH#H_FJfya8Oz4r$`o*0MsunNz#t21~>RY2w z8i)6l^vnOkoBlzS{{fZ%!>_r|%X)xwLx9?m@A2pR--dPn(uos{ED}=jWe1*BPcY4hTERy;CH&n`f=w?C<#U6{bvAts4P?a8KaRQ>?)F?rw1Z~h0~vT?i@q?pzA za=bfLyr-oWu@)#4JIOE+|2X6m5~cal@L#~zwHILiK=aITm>*8S{6RaHsW9JETU|K3 z>N4HAaUAY`fa`pFpSk=^oJ?)DRI(bP2O7e|-s|WD+nzRLYBsmKxHR%J@Wir^ zyx~OEen{#m4zIQ(ln~W4ko-{UEMmp+yG}WdRXZduVYzpoi;KJ z_EXDW`dqmdm3WOpHLSTxu(7;N!E9|kty>~i!0MN;JEGT~lsCJG3&{^LG7b3$4Us!c zTG&0nx_n9drbdLpumy2*=iRjY&rU*pcB!~UpKy{|R`>^F@RErJ<`sD}&66ME>oUm$ zV=WJsT8lTrP6wmh9UXLSnhExnmWCYm#jVW6J!_we5|U%XQL_`gn%aB752xM&`86xX zOFUEaR0l0XOT5@{sf=W4X^=Y3)Oofp%UM$9vhWRth*QUJeZwiC;=A>1qoP5*U~M$w z-iKJ|6P#AlHkvENrG|1?r!tVH?VAeiL%A+%eaCnk)%Ka8eJxwj#bHKc$d{4AGr%z2pNu#+>3Ou zv)OEYaqAAm@M9goPjjVrtv^}N43udy%iDpUr2)ClmGfBX7pL$GES&8VMFzPrg;Gyw zz*=!#w-%s@{4vF{Bu=j5jdColjYt^s%*T{@OG>_*hKe6WHvglB$hEpo!Lt<&1W@Nn z##Rr0W?mn%?F0{#vpz(wN3A}}Z3!??3%D)}mP_Qyaa4P&e~>{(H4FQCdTJ1pzZ$<0 z)`_KznaZE}tn|KeZ`%(t!-g`+vQg#k&%uv@?mZy9Z0`|EUD|v6kfM8!*q);i_AHG` z8ii=St+H_=CK`~|H1j3y;4+#bn|gp(M&Okh#d6GIMf)zOTS8oz$}BBKVab~_!7l$W zc-GJr4<3~_AJG?6nMXSnmMsyNS%Zd~x{v3O%_$a#KPKD9$7TE6h*Qe3JA+huK$>w= z^xU}|7DbulqH5Z{3Nc_P3N8j6uDY+f8%%<`MLXrLa6_b?#88Av0) zudHi>SR2*E_Z11G?_n4}Vp424sf`pf48IF@{B&1lkge`GVJUch(;P%j)83%Ho1w*s zKd-}kA98&cj~w;CR#MtNSBen|N=RH4iy=o=x4~BMkmDi7=6z_VvJmyF@=DuU4!g(x z2Gne9PauoOkm{KUwjo$k2VpIJFRZ0wYv|*PvCzAsM3976Ba;(l{zS!IURrd#q8F}; z>;=om;(aB2FNChA0{maxXwE+F2#?4CX@SrWUO#YEz`so~A*L11a7J2TRdm9Q`F;qG zLwJ0#Lp**H>l?EbNrK4x*7zS*u64G;a{+o9_91Tx4=X%M7JGd=6xRH(vfTVL;cotf zcjc<>!e0JotG`|q7JB()ug%lsUFv058T}fYIf{t{tHWAF;`D4LS+CIfU~;Ir9c%YThFXNNDlg@6BJ?>g87sc=xSztY+^Lg-3-+ z?fEN2;g1mB4WZsUsr@$)a)Q47YmdV#ueg8p-FFQN2Ul+q_T7~(^skoh(szA))1NCi z9_RmA;CyJ7p}T_93GnA{;Y>nQ@OW+&=5TvGlVz|DVo&+@LBxapGo|I}zA$Li?bZj* zzp(U0h`rcX!5IXce+zg0l(*g23%OI4u*<~kDuUBS4xO`?WUu>>M%M-JHm0l3b;N(~yL*3b@PkX7srV92_gqh4m7=wWBGSBvoO6H^svmcou=Z zGLsYz>)@F?+{NvJkx$Peur-T=vxD)iOANusActDuW`E3`MeUx zZq5O}{uzVe#+u2=#VCIvoDtc)W<@`gSb&9;4mKxpR^geEo9^^`T`s zD1y=VaDF-#hvi=mNkb0dt;kps0uT9|P_aLq{Eq@Rp$hbHHlXdsyMjKA{D-SxSFy|J z!@HKi>Sftz0<5dB51C)Vi0$mdXqpSLEel|60lahw?|L-{@XLvjc+|WIIod*>!6@|* zdiVAXUF)sibr@$Wr)EL@%>5XJyD)NHjo7Q9z83r)jI-I#W3m8s%*bA(7+OBOnbIb> z=-P@UN1CUi#Y$!n@1TL}T$mLybUCY9yq%@R-3IF= z8FL7Dwd@Tpvafas`EKo=Wmfx&KMKWM8%SY{2m6HrffpthJ=sNDZk&$t8*aa%-Q?wk z;GzP7=1nfzoTHC0`g388YywyXP}(E_MV-M#v*0Xv@%4!P>TU4f0>7=Z&`0yn5PQ~! zQDg)7g1Ir;wgh~>Ix+J96#Tz}7ztq4o(wc7hkAc6Ml5qH(7PF<#X1H(arB~tj%V-P z2y<8560izPPQ=`Min#^su0yT-64-BL5_xDT*U#&~T2jarv#I0><;dcr74KDnx3Jy` z>o=-hJ?`IE9O1j&*pmc)#e)KsH+@7K-^qcOK4O{@uG2iTQZ_p?$dPD^2OZMbuy1Vo zBA-WOeiiWb1|K*-wJ0F<29KP_MS*HhFfJDdiiCTDxjq~*Gic6H-bGFYa=mB0qLZz{AF4=0O)R|_zI2{0w2;Y2Is{#4C1Lhda?g7^K( zrQlIDc10#B8PYa=s*W+Astb&(Zdd3^oD8OmY@*CWbl%m*DVp2^E4nXeI{-JB4&|oeKFH6|xf` z)6!=KY2PXS-a&1%%Q$x7me+H7*+y7zb)Y%Z1BeVs>Am~Cp2p`D0~!*R+`>1yz^bt_ zkU=gCdBA_@gRJ(_gi{LirN@#^Zd3S1DKpT)2R(scsUf7uiqP0W-`uG1L4KU0A&J># z63lQnqeKR{WVX|P*h75B35X`5CD5e#nv8aUC?1}T03Yp?kc-|^*_uUip zh$c8wFA+ZWX~XncDqNS6UOi?j@$C&>Z|@k`J0~uD)M|JO)3$BBHe2QeOP87 ztz%gqlJ5zkIj(T7S97SP(FnBN-p2;wS(AJZ$RzY6XqrPQ+#)g1H`X^p*09k&+B@2I z-nTi&5ZauB=jcBho63Z!wq?l}?iuRgo}q~~%f{&xiX5EoqflfiUN+EPBb!g@t3pVk zFlm~XGDsin%&))Tcr7tvK-iW>s>WC`-f`|z3E{n_dLFzDmN#@IN#x}~ zmr)|m2L|IL!UX2S+mEDTli|3M)I%Kg(}}bQ?lvg)GZxYp4Zz&96YM~UydhEll&@8r z&})(eaaoPGN&=Te^h4MIb6_(q`GT}lDPpJ%Xt#v&aDIP>g*cRo_J-PP+8?cH8Z;sO z5LmuC(#XK@eOAq^f1S{!ZkJ-bLmRmR zq{KQ1zD)vJBQ4r1xUz73%jzSMvAOl7GrNuDbUtWVu~V4|w~Sct-qq~`J#+FtgY)~L z0uHqoaYk!)sJp`Toe5)Up;WR#Pm&lL+^&c#D_x5>=tz==rpn-k1+%t*E8#69bFd_s ze8KfV6nH(8|MiN=V4wU;MFFhI7&e`VWAypdU^1IXc1Bsz(!~oEPFVXy|5$-UbJrxu z4@P$?v!Fc>E3=m9p!CMUo(g^i^mxe|gKg-I!44P)CwDWffi;umLyTMj7KmrYrW2## z>OQtz3pG{_BA9ts32Edf!^Q0m?w{TVE=bkL4zttR)JN;X z6Pne)0ekZz7u8aOD$Ww_A@x2NC`HTP7Co|Q>iU9;|a|n?@BoDWR^-# zgT({x&1hJXgfwN3z)s<5*eB51mvR<3Yk1!VD5Ik}3%^0QdM%QBVRi>UEM+NJqti)n zl!4jCLjE#3{epB)GacJz!@@nJiGhrer?GGq95Y&n$3H ztDgH*xdmZC%LW&P+8uR0?JYuEdjN6~n(d`>+%jN74iAcVc-l&t<5H%}=+4TQR< z`}GJyjr|)FWBbO48z2q*A8i->?ew0Xv77FgOd+TDw}Vdeo5BrTDd5Dih0LQgTQpsj zwfWF~`_SS3;m5#_jn6kQ=xh|BS?3Wt(vHzbHlqvHTP2?__6QkPJxHIco=V?>`rJ+S zjiu+@x<^VgPyIT=7^Q{zU#1l!^6$&;^8Grn8gixudf=?&IjQC1=o0Km{Y=VP6|$aL zZI!YRnOxs96+3Q#yq~~IN8`x<3{5pb%taFFi$ywS8SB9-xW+Ei6xfOCwLl}^AoV|u z21L>6>lA%HMQrmG`?a>Y9Pv@D|A{*O4Fu%g7>ut2U1BZVVW2+#POv3*j(yRq2RMrd z8G!TGK-`sSQnA?N>k>uv#)jV3BqgvJ+#h>sU*8W^9tosFNv*93W~_9=0NqHS zSd_am$lu1Goew@zstu))w-kD7^wb!ydhPF5>!+*r_Xb*FzhNGS5zl_qhdJ86{+u*& zA9ygm4IU_vhMReaY=w0~*VtpdXhv1I(@%R}AK=$x_V+<{y@kEI!9uCf~W0JuUFi1EKuC&x*#nvO3H>~)xF-%+MrMNb~Og1t_=Z57jHDyK)H>^ zweYN~fOuzJ5S~iiu^QQng6ZVIpkrNe`+?fdAX6aJYr9=$p*~p_ylJF1D#P=kC}P?5 zSM@qLrH|j#<#$U!*E_&P?H7p|{^&0u~Vztxo`bsz`d;3883 zajXSAdtqHT=4|~?#4gIe6E|}=| zYUuX|!_e<7DUQfF;jb@9fw0Gc*$UGWBIjkv*AbktTz&{o96Q zxorb-XuI1s!HHvdzKEa}_49$euwyfZH^Srn4F!$;TT3i%s~7xXEM#{SJ95D5q+bJ{ zSSiqi3mU&|pzlCS{cW2toXmG@^)@;hEhG>vZZBvQ8Y`_&bu^dG3AJs_g;9%^s13$S z`2M3rPDl)<$P_y5IPoEPgLZT@mFhzkTmhP;WL01f7rLsKMai%;fn&2JUUn#!m*%ZUy_>jtc9dGMEP~ z#;D;O+EFN=<`crZmJ@tOrCHF3drX=cx#3+(68n0^2}9gTWM?Gmk0ERk%i6|$F|uVQ zxXj8(J34TorW@Mk>j|QBUo4?zplnTB^c-uS&Io=0G%1l~q))Jy#< zz*fU#gO5#kd7+T(ffPRIKQ0JfnwOIG;gVwN1#wxK?bNe_IpEI*?~w%O&EUfk^VTT4 zh5GDlvC?|T7GAcS+B>?^$(N(W)Xybi29GB#$_B3umoW%FAM=Im2`?e~MhmpOl#9Uz zU@l6%V>ftnmVHyNiB~<7XkDh9WtXgrc_yVmyAeUQ>+$5d&9@%(KdsE>Z^xFX9!daz7@#?N*Kq5} zVkifF)@Dcb-x;0zZhZxMtG%%AV(UuH(#zlNyLG0pk4MefS-BpgT4%BrV5>Fm!kUZU zLHStU;=}*#y$9YKg;xOAWX)aJa_f7_JbdL1mNf|gYex_X+5s*d{7$BIL@!)0Mzy5n z;xjz)%&uU-yWI&8RsWL|%!X>5vUcYGI}X~0cz~&eGqkD;FE6RO@HMZA(6;Wo)spp8 z&Q*E)ITL=Qy2A(ZPUR&%{a{r9+hw&G^j;W zL#LHt4F)@n4%Ps$&liHFFn6BAE(;N0w?O?Y6XAw7^>2$49ALd;!M0j3JZ8TZd}=J@ zcAt<%+3RpkEU3(avGr8rE->GQj+c-C8f%t36n4>IYi6X@* zxXShRTe+So>16ttQ!pz=v#T6-EAc&3;0A-q*rd06?mJeCfHsdPvoU`k=)daGnNE_% zY;p`|y&|_e1r<7x0Cw60Y}&#Gn2#tP8n1(y5O>p5$!1)D!*0L4vYHjrHv^j z-41N`KCa!~6EyB(w!4g)Cb*~DW@yGuh&|x9fGrHX7x6}Su(Z{m&<&oEAUoG7{)&Ts zMwn^4p)9o=+q2dl^lOD1%5uwZn~3e6hQ;Qt1@o^=L*8%Jh=bZAkRTpZ*0 zkGOdaaMP|lMkKUfRoB&Zxng+7%7H;zn61dHc|vFl{&DOq9AMy}K4pLB=} z%z+w*0JE7h>=m5?J=@A4-;M>iF0huTg`9#VY8tEn`ecxQjtM}kit-q&zW_&QTn}GH zD@N($XQLDv<$k=%{S0z)%&BspmT*Feg`?91H1qf2t13QMv@8;uw;?ksndZ5=!WLFF>B;U`$V1gWD5Ca6yEa1vZ&Ra3_$6vw6x19cWGyx%v;O~ z=5_=trVH@BpD`!PBi6RqOrBC~!cv8uBY-aExGUEf*L<*gnlR-C(2*wQsaF-Vc@39U zneEQ5(Co;rH0;O|vMXB`WxI{Mo^%a8b^$G+-`g;$ehJj~?IWj(ZO9J zix&QOF(N8_xUDjzD_jm=>F|UMg_dr5OXzbc4xWDsBo{KF)WT(qR{@T}juMl$B zg=Nb#^>%;-I{MR*U-yFl8SK%9!qhMQ&C%z3CjqB+LrW`ec7Ub36+F|w53zoY<3bp| zM*%G{6cmH!`b-$*O1$pc%ADlVUxYlh+DM${wmTSdJ(E}Xvr~I(x0rC@vT!oFKB+2% zHl~wJqrJ5s8WzL(dNQMp#4}srJbK5Jc>1({0A8fWt?9NDaha*I>`nJpOI*JKJg7Dtjpea9GaOj|Vn<5>~e0pmQT+m=W33MYEFD>IObWEYN z`+AtI?Jl+}5vXAsWts{&#;+;FAtOo&G0pWtDxAq8rv@yjxaoNqUmIX{z|(Lu z+a(JBl#OUGbYA|c$V8a9X@|1l`zM<#Qw2@aOtx9k_n5&8_PKJL`?#WWq5_(eD#Y?M zdo*OK=5Zy<3AxS`$kh;Yxn}p#^MRD3>$AhS8T=K_Wn^cE-fS-xg?3})0-~$pq%dEZ zEP~G%+?>&N_o!aP3v8I(3g?|$p>?myyqn%<8wxdpMWpG_tf~L(fL5Dt<_f`38Z2gBm-ek=GT1D4_%EC+1! zYrvw}{B8&3!BWmZ_QAYB=Phe{HtY(RSvb$?&>WxVj=$r1Sch+gQt$;u;NxFM;$&L| z7L5heD#d`$X8Iu9Gl27)C16b(9;5uba)jAM%g!1pkf$wXMdzVuH&Q9Ta>RHD!%c~t zFs|LAPd+Kt_KH0~>FuRVx6Mzz>I0?va0}1`ck}dV+v}tC5=V3}-lUW5gO7stbd2cK zkq33tbqO7B=os`4j2ZL}h-`?BJ9NxB4(U+{FO5%hJu@wiK@#M>0_z=E(=2*5Vo8L1 zj>FLQ5d+vpP6yJ-zQJRa$Tn9=cmU0Ik>jxQQP!tRKj+`QvA~C>?d1K!0Y07dMtdr% z2-tzZ&e#op>fKcv`RoZWulLewBu^Ll5S2da`V!)r#$99BP`c_Nj7&g|kPPpN3!LwA1_f zR^jmYi5slbs9&M!V(8C`wuOPywseeNo=mo@cfjKUhv6)aT4>E+;Te(W`CB^Jon7R6 z3IEC&gncI5iARJ;^llSa=cVmXt_yqy=W+CFqI)D)&i!C9L*!*?cJb6uPjP~3KRY3{ z!P!n*zY(2WLh+o? zy5h8u1a`RBrEN+aZ<}HY(lcx4&{QM zNIdU>ui_;*gbeqWH5ei3R;Vte74 zWVWPG_I=p$%&mt7^PHVO5RiUev>l=asFxf1R2!o-Vl;Uj7rl&0^bu z(Sns2-3w>-7%oo1SW>3t9%(aj;A!zExTnBJMT+1}s8u4}|h??FG)&}PXSr`i(L&w@-&t&q|mKgM(B*9r)CioP>_XLNCT*)QD zelLSe8oE?xufGC(19y&{1^>TCkv|xa-U=QCKh(h>4luqJg=yOR#0OK(HmrCe5Nsb< zmc(=)3BLFQoh?vf?-OkU$y2Q%$41qPwJ{023xzraH|>OtSq|`zu^m`HYFjT4t2j4K z;G7?9@xxkd@O9a2yGQob9yORgDH5|-T;TID;W2xn?HW1JcANZ&f|?$IyKXr5ifSXQ z)7xO>cVG~648%Jjz7M{{)@sC@(N1T&=fLB{sLqd1LH=__Eqqsv<~I#$)!ZQDwm>Zj z!e$7?!Ij`yM9*ljI?Cw)vsP{CJ%cOc`!^=dwscRPtqo0@ZS78&oi#f-JZB@N-7Nr* zhLeZz99=kT_G{}WcaPYjHbySukQ{rbA1aY2iPx>qn(Y?->+cI&gx~l}tUoKm(3?zQ zpFbt4ITu$BUpQ>q>lZiuOy2Le2$RI0ml?|SWGc>3Y)QX06}O8barGE9CwHp1adctU zo~2@*GngU|`u0MdlqfzIu&`V}$>os^{0K%I>Rmh7y_Ce0)KM7WO><>ha%mYZKNd80 z1>ozBKhz9B3%>0$iAe<+p{#<;@THPjY^+?iieZ<9mW$M40>-PFz5YpL-cY!&8qy=U zx(0){at3)%p*&9sw{FY;{+k`cj)d@Rm0s^Cc($fHi)~#WwZ+>1&>;A*(ea@Hb<_O_ zT_>>A-U0ELef1>`BPJJWLMeraycc*MR;tb8y9qzs6O9Wa7>5^+(5HI@EGTeLoFg-G)8?r!OE_BdQxmLXw;9|9!6q1@u)Wjtgx|g8 zp8XHC)zL6f7P@FISV6((v;QGqT?^a^t$whrj;7n7mk9O{!`Q*ak(tAE4pPFB}7=2QcnuE!M1_kg9|Q2n6xlg26457J#( z8(=Td>rU3xEroK3bVCkM1n6mz{)eu6+5Wnetm7Sx2DHN!sh4n}A>uM#AMRXp;PDuJ zTET}LJdGdvflD`ww}I73no9XI0{lU_zPjE`v{b2u-rrkhrGB_E5AzH%M?n|&_*x&% zv9&(l6pci-bi}wwsc;|)ly3VmCmUsopDB#BARlOb#GpUvs|!qxQF9b}@qfY!`~I;Q z)=M%&vDHNR&8SY$TwNV9m7mZ8ne!B z{!ri3VL17}OST>Q4CwdOrl*yu(t*uc@~0js;1B;O2sPY0}$cc`J!h`|QNZg#Gx z((E8+BkegRJz9Fgy?2aKk1g{(_^6T&a&AMtKIK#%lR|Zna^ALxxb;61# zl{~B7!-sL9B$e#_eHz@$r}j}2NF}>rXNqTom$M7Lt&#y}0Ot4*GyBev7QVoAP%^?3 z%mwf)4g3SX6M?`I`ecwozdza!&{Ih**beR&xGsvF-v6hePtBukyFKb^ZxdPu9>Xo* zQ}KpkgzwE9?Q?KFeYD)-Xp>rg`KX=)H-90Ol);Hg>qPnIz>4)Xd~N1HAMNv%YM=Z1 z{vXEP1-^+Y?H@lgxu-F%WzteexrWP1L08ihLQ)DXpewGproieHMN`TpZBeGB zYFfo@@dhed6t%FrHbq^kt1T|8;I8i`T=plpybgNp-$GtWa~eBOVw z!VDjAJ^QllN_c(|y+THx;nIlv!sxklIUDz6)q9$7*6*Ti!hzAWjVo}^-^6~d-laeO zrFs|R@H5hTT!>SSgLHXtfIc^Uif^FpJ{xTxKHr1$pNc)9w&#y=`pXpx$G5TvUIP_TjT>>t4Xwbp6Kg*>9*l|1+FTOJ7vau0{Xeb7qA6pS{LN zRA~;<{&^(6Ozo#8)G(_3v>wlC>mri`_5KgW1M2;2)Z^)hvr8Pk_2T$0; zskp8+ONU!?k6K2bx_J1!yVZ6T;jXk@rPuB{XZZMJ{36L`sDE^;+RE)f2Bgaq<7I07 zS*TBYId{1Bhw2++$5Ya0ajHj+>TjBcKBD){9&Q!wVdHQQXQ*WypP@eCKyRXlP3qa- z{Eg$k_}f9q(=vRQUt+n+$&iq%fhw)HK%j9&ZKu0yFl$r4(-;H+6SMFyL(b0CkdO&I zXvVQ5NG^*r8OI!aGq_#sQ9i^)sP~SMBp^nqm4I5xHQ>HTSk|e(D{S1=qfL2v-Ys42Kuo`-ZjU`u zJ};+>d7@nz(Oo|8j-v-qN1yVXT8Bd&x}A39$$7;`+m*ELUtNlCu0AO?wf2}(-k*1C zmj&1%KVkYTJ-~gXK5)bc6a>)L${PFG4%XRqYPR63D6C1uPG!ntdkciQ<>fW{{APcG zMFJ5$z@qDjvCG6KMQKdFb)954L|+Y^w!4A)S%BX-iPxOgftP@yoNgF^MPA=tiyrx- z6MV%(L(`?%0!7+gtiysBf{QI!c7@ko?I%O5+i;U`Ti2c5LU8EXvfR>1NUdbo2*fD5 zI(NWYMZLv5dNn;3fCVX0bA)_vzccdPJ|m^^-BN*|2Rc4Qy~0hfsnhFa$|vG0V8y~! zT}B)~fs$xE5W+r3Jrl+ty$ZeO)i${8nQ~Vg$rL_p4N<=ZyeA=j4xSet@qO`K^i1+6 zJGDQ;?*TsjA>c33PI$BF`#|M9Ju5qh-f?l!$hp4FzD@?22S&*De!f$mbE}_T>8bb# zxvj5lMW+0ZUSS0g(##Ct;|RF%Gc@KOUl2$BxU!C)>uH)^$L16Wg`1`YJA#C77c=Ei zLzWyGJ!3(1SQ>F>$yHjg059)_kF9vZ0%O1v*ixQf>?y~HwzdsO`bzLt(AF_sxDLiL zWD^S-0Bv{>Vrl0RnhIAN;*ST}9zV(NR~9 z?M=z@KYR5+ZZgytCBHS$cjce(vQb|i{obftq&z4-%xT?Ns4bq_$fEcz33%JJuzSG* zCf>cAA=GA;h?hZZV9t<3K<~UZ1k3Eoc8V~7o#eH;OvJqFyzQ_~z1q(->n_{?W?3fR z*i{I7`PZVZXC2X9+E!gxOW$PdF;7-Kt88Nsg@q%=u1A$^h0Nxw$1EE=!NfKa5l$A8 zB(s1S|7wx5PIqbR#*P}fdRnb$E40ZqMq4H2(>3phPU*Jq7Z=YBg=dSLEhJ)|LF7og zA8ZFwl3;gedQvRbzLdd~8FpOPrC7U<&E@gm?x1`KU=-+2hm{4qB%~dT-%D(*N-@T= zBmFX1CnzpQ+a=e)M;CLc7>OYMPX*)8@9HKro^718uHNR{ytnQuMq*DjlLI~gSYTSg zbRUW^4m=^7zp)wL2dh4L80TwZ#?8h~im9McTm(E??C@PmVu<5%F9MeaIMH#PX#d~0 zwAZ*J`I{%LWAdprEH6gS%aIg3wIWi>qI1)i5sE-oz24oFC8MIkPv{KfE(Z2%D|6{` zc?@hBv<_v?IDj}a%3-Eu4y6^O+*j~GW4UidlN?0NO1bCWTm%ZF9nL8M#Y zH69_S_q9U{<|3>E?c-#yhb14+7hDywqpWLO$5bIG0DETSRlb6(|8dqrae& zp0@@^*w`Y8ah60G^@;ZO(lcJ`9k_DeAmc2II$>j&sq|f0u8dm*&xEre+8*9p-R!Y< zm0ljG40~KLhmX`|0{5aN6DW#WY^%=p2ShV?Kdj3g-~u|lma7g_?&u}luFBoOhlYTP z2S%q)N1(S;`|C8m%295ToFN{#p$Fp((ETIipY#HzT+YL96rP{pFQWc1>Sy1M^;Q46 zh}aOj8*%U``y+f{hwz=MelM~p`Vq#ZeQDfqjD7}jh z*cWY24kPl#o8c{E4DuED^pp7X(*n-0@~NktkVrGPZ3T{LCiD(!ZH2$f!8jdNrLx&< zjlGCAyB)|SG)UWJ?jt>J%xDm!Nu*e$La6pt{#{~#DLB2hyvi)UJQxTRAiAZt7#UZD z@m^M{5j+7P1K?>hdNE!ga;REZ=kt{ll~W~CzS0lfjAL@F_y$w@Xqyi~FD&q~^71}d z3ZoxO@EdaPf)I(%k^9*=fcm_S<5_b(%w6Ke8UkEG(c+=>v9VI75U3uynh@sz2& z1A7{-0>8p!<%f_5#90-ar+SLAyXY0wnC57qDjjZCtW*-fn{$0{jl^|+9E)H1^WcwQ z|0d4cqO^~6@Ff9x1#JKN{;R!g8zj8T&#yHLI2N#alLQ;;vt7&9XhQoueDtu;;<*^3 z=eF~Z&@8<}4y~6u>pE1BV=ylC<<^b(^%2hN%8oh{G@lTyH z!lvBPp9$IJ3KeEg3m!YeqmT9vU9Cwo){Iegt_we-GVBjnsD5`03;k}Wf0_DmsLh7@ zl4pN_fKilF`9;9r6xg^Jd=c|x9d)U;97@1rW)%A$l zrW!u9&BOrzsOx!CV+%c_aNT$-yT;YNS$l8onc92K{Vu3E4(XA?LbGiZ+#$%86gNg( zbF)bvV=6s&*tDm|V%k9?*r$-b6#2_8W-9y$DOsn`LSh7R!``ibUiaLX_*1gBdEAql z=MqQ~w)qVq7y_bWo3Hk+>OGqR@(`)-Xnlf#UUpQX=jxj8`9GecK^$Wzo{UNDi;+pa z=-D|!uxM#k)^cX@h1ilTlAC^8qAYzmGjT$U?HQ$;xctTJ^oe7SjGoRdH-4C~OJ+qs zuleL#ciIwrv*(6b;tbT)Y^@o+TqlpQtel4=DLtc8vSH2bJpb$%UF<6|dQ5WTXy)f0 z-SDsepZEqs(t=uU?n-$`^XvMI>8;hjtqB%sWCnaj1+bVBa9ULr(K|+Odky%zyhhSv zLrJ>p_>xzvpHT{2Ym2t1?WOO>vm@WyG-VSr$NwX9u4Zd_!HLDcac_C zbQjl+&5eE0tddNq0HWf;BTB1U=F|s<87MV~BTU%_|wOT8r+?=0E9HIds*Q0H~ zYhHhJsWc(yN7uX{Gp>0-s;+rK_FeOWdzWs&>Y5j1-!(7Dx7WNNGp>0-s;+rK z_FeOWT&Pd@Ju2b%a1HxCWcWSyh1Z6s!S9iYS$KDZj*%IMAwY$dsqsF+v+3XZ|V{D6V6}f+=57Wcs$yg;Pa>}hks)+JRWD8c0Cn_ z$HVzV!s9UlJ*Rp(Lc?B;wS$gi)yt6yp5CkXm(u>AQHdrLqi4E;Li+B3Cz^u?tAN;gaD?^1r zW7klAN2osdZRpp*A5`lqH&lBoGh)b6)HO7biw#Z2dWt2s4TupoxFA#%Y(m}NqOQ4` zt@I-!<&%Ck^yI>=i?)`UgGHeQ!TL~B@YkW=2H9$JrMtSZ*jG6OP7EQ~7CaktRtlAb zf7Fk#y89da?vOFq;Fs^md<_(}^}a2B4a&P8Fb3*S+Kjj)V^CDL5RVjmMBNHtOTOP- z!Bp4!inCd4*Z8|b1z3v}#(=RiL;gaM@896>9^U&DdxdMNd=}*4k>Z#i^vU;E`pN1< z-CyG9*UJ7n_v%ARx43F!WujggW{<eT zqSc2gfnUL$8F?sfaGGNVd2%m5{GPTeh|C5yzesYcc$_+L4cv$^6!R#|>IL9f?;F4# zuZ3@)kP7b-MGFJ=_W3sgE60JaR~BX#GvR{J%mqx5RYWu)&aybB`7-3ALr%PNlln5j z13Sfs2r0zGFoAmfI?Z5-fLiiOUp&SAW7$I_2w0E>djacNA0eKe!HW}RpG9VMhL6$p1R13g6<8Xkn znh;Jsr&T>CX>cf~NFCRn?4w?R_>~7cwLSBI9t=Z&%s@m~r4UmzJW#gXIr3%?H0E?o zAN#vfIVq*NZ*VXvhwaNIvjnlD^kPl9ugD%3<^6#f!glZ+(R;x{^VP$CqwonVFIIt6 zm@3kt0~jOt?fZk6fq$-tj$;^ooa#>&!~$O5!qPa3SW-(2%ySr z$wF?H4gN} ztqc=f@x&f5VAeBxRzmZu$4JfBZ>bcDLoGn7eGsk@cY&Y%R`i(&ju^&Kw}rCZ7>`$n z+wOlu^-&7&PysK;jVR_q;Yh*egaz0VOD`<|wl`DG122DpYK5fu+6?(wC4S{@r6d9z z$|F8#dw$issDTG}lj=>PdIr@SsBS@Z3BoT@bqi`YoBYkt{Jp@t=~WwzTlUwrEov)u z32k7Pq4-f~|E7Fs*Qvw+y{Rp<#l%c>%g>7xW%P`AHuP(Q0hr1BEIL*!R-C}Qi6g%W zg$=WYk(3j&sHKu^%aA?vC~%Y$qU;{nL3`;HekSt5RqVJnmUz1Nal|c?IvNL(%&={l z@}nqO7v*7NW%rP*3>isPtKGmw2P^fkV6uCi&%kguemonk6yn`oDFrtZ8NeJgD^sj&KCJBdOxI1qkME|MN|R@4j9hxA znxb6&Ubj769tW#2-CpTSmwDiniqN9MiUPrn8i(z)MkY!NqO@&BwQUu^zNgEd4i!mO zIW-m51;o-a6UN8%ITV!(zs^tsmCNMQUV9nkI-s_MGcJJJz@c-z#2+D6ywms)xh#+B5&Lfxbrjn$R+5KBa1gP6SUD}mwRL;#=Gs2|K4jg zeZI)`_c7x>@aq6&j$QzZE+bJ)f!nK9QBPENrgmNW?oxX&wfWL9o{rB3?{1&Pd!Rb3 z54YnS6MKA@KOCylyL)EWjoyC44$?^+r<8zrN?FzJ^^WLEx@<+(*teDCT)^>>vb^kB z_^kuu^nKPJ=_AZI{j*yY4sy@xMm957rR`@6Cxp^oOn)ikI#g%(h(wd za3ZA3OO?x`!44N~fvw{fM_o>N@YUd5Uj6n~@%2iN7gBkZr565P$AOVkCZfS z7fO7jwQ8qQ!kxzdGKjRD%57Zvx{o000`=q9Q?8u`M1D6YBib938(Le-Y1D!i3uzs_ z9cOTCGqnr7JXq&l28)*izxuKG8vC9z^l7%DpSGf(=rf%Hir{~GuHSkaq~RyZyVUUz z$(UsTs<68wO+Guc0Z&y0UUGg+bzMRb?}_~~ zf{0J7ZzINa^o(W1H@qh1@VbET8!S7O0LQGS>s4IgdV2p6tpQ>53)pwD+ept1jHZS5 z9P073-)Ijy(Q^!X&OF?6v*JmJPciJcC;o&S_6%KK|4t%)z==5ukL4oX(F?=xX~Gwg z0UrLB7G3p3OoJyrb%=T*P_EQ@zwe27MT8fk<^$Ec@B$>LNj};qG{Uz4j|A+uwc*;P zQfi5(UWtY(YNfjBp@1B5f6qfvqg2nSb=&G~N)2bLsfBl912A#McF5g!aeCM@ce)r1 z8*M=#V+fHV>laXO#Av~uL%k7cSG^J4F2&yZ3A_>ZR_cp@9(Cb`WSde z?u?piCEUenD5dMP?M@exbDidCaLff7?CTCBzkvGWiE3bNg?Dwfw_59=e zVO1X&9jAH}=+QTo{WUhA?-=u>by`VAdtq}h%i?#Q0O^`1;H!V}1Z2o5Lyt(Rjo#q# z7X-hv&<|d@W6+5i$+AAyIXb3Pe`lXhkw56C_W2BX{{Z8>=Q{g*Ds%*DpSQ?AL^LTI zTa39!scN6kkWUWKGmZ|humLg7xvsc?fX`G9#;Bv z`7=axs8;&cwrcxzR{9rFKT!GnRU18iqX6ER;LyLb(PzjnAyYvcX4p>-By9A!D=ftn zS#rINp3a@AeZ+>jvxs-}JNx{%rBAfCENtHI9PwoKdR7jw_f8XecG85ZJymC`9xVS2Mv?l` z>aRv@SAsWJGRUX^_QPN&V*M%esqH16+#hX)C&p+V6K|5!G=KFYyvb z26$%o3)&z?c1tI|QKtDJ{|AT#E(?G&@I~WvgA`MY(odAJZjUm_ZGnHfVV>z^i=vg_ zC3F9xhe>&3-ak%S`G^!oj8qgBGhE3$LXr&k#GCrG$L|Iv@usX?YLlgt> z2(o(|!>GrRbh)sv0RBcHk|8(uy8`Pf9|#DwbN#S|$}(}w3=yhK62s371S{7BD!`JF z$kS6%mFk#QdAnm;Rb^GAYG!#)?M}=zXBBq@5;YixarRVcVf{_$k3@n-v+jX)57di} zslGOR_iYM`Me9ZuVQ@|w-6WUA7&nQt((zbW8DxcVB`rbGK?Gaz7V+02gIH}YXmKF^ zK`gwmTSIlWBGD5ly~vb1M85o|0f(2}K6>Hk1tjN-ZwR|Wd^PZ=z>0FsUR%i&ffs(H zEH7=HKLWZr;S;Q`q>B}a_<)gBb6QaQ8;wi&3)QPI7E>U50S`o)}W!Lsk^U{K5^D zb0OEuP;VI>JF%UA0dX5xhp|vOuk*fmP0o*?`Kcl4pNFJB07;)$H)=bb`8n$F-iVO) z?IU)yltN-dTCZw_BoBDJX?;l-tbJ?`WV0&ym+|Q@L)N>tLH?J@0gI*2I*H2tUje&! zQz-2v$nt;<2w}!jKKGPT)(t5_<$M{Lc(?|ebmE^=sWjUSU{BM#RPdqHiZ^Nv>2kHH&D#4d?2d+tS zD#0@$!AC)Y2UH0@;+h0s4hddzO@j02lceE3`OzRSEJi&fcvzL-)x#2;bp5Lgmoe8= z8b^4Wz*jdnxjRej&>_xXar|c`LqI<`y*l}>AuxxWT4jfSt5e6PoMxbuLe~wQ=o}GY zr`TfqBLy{s;g1j}F$qEauVWfJW_Xd;VH&d+{;NSVN*LsP zOOsRkmUX^8abqGKbgZc7OY58fA&~oU2RQs@w$bT}@9si{fN!M>gXtx|tgj-_n=tocL9l zcQ)9I(&e-P)~j=*w520HYA2501W&-Nh9%y@bFJ3>gq}eWG0%G9IkYGn?#(==A#9V z3AA3BZ%5A7V@+cPS;j5A0EQqE3BZAf%CWcqbSz7j<`7)rha% zh!>?i)(p=yH!Xa^hxo`>DOQ^WR$Cv{pAN&yz(z?Q&nvyydZ#(+ed=Ri z1(1zp{;%d~q94z*b$#s7#HNb4X8Vm)_p-Pz49>DaFR~0iHuqzN4NMW4DVLF<)86%d zHZ!H@#O2X9L`%Whbb0h5tle18j?yDHp15($%&7Z9eAeaBKaFn4z9V`$`-jmR$J`WM zDZ%n6xi2&N_vhutsI2}Kynw$ug*hj8=R7V}_dt?h7DiSZrz7uBSF`c}2gc6W5zK$7 zm)ZIR$*+#R4hfDniggbpa?u2(U9}93YV)riu|7=lk4IYszn$c^1k&q&e}>l3<5}6c zzkqDS(wraO;mL>{6|7Bn*^dVN_N7hM`X@VH^O%n;u1A)k7nX)jBBHkGfzKa=r3^Yb zz2nc%5Izlg0JrcOeA8+2djk!8hWv+KhMy(*o^nEVYUh&COjI1h#%M3*O1|)RPf{!< za7})DEa0{;ZsO{9ZvPD zB^={OrZX?(Erd-MZwa#qw4CC@w!+ zlP<4`KcLoH6urO15pst7SqX06bnsT*ha=%YA<&G}W>XQi_8|(0>bUV0#l%?_m>Dhi z<%F0J5-%~U>`F1zAO)!J5E z-;J4-GhU|do3L*mW*APFv*IPV7Z=z-Ycc4XHAZ-=)ljB}>|K8z!UA#!${|WY8 z*RB%py+yssQj|`*R{GE0Iclj7rRnn7-dXCIh0z;JW-X+Bp~m15$|IRBpXi;T9-R)0 zrI9HNIFYNG>PX$g#}D^Tf*swqFL5;6f!5lu_T-1Xw z+hThr%6^6Qc9c=fPAe9gv!xA7H_8uTq4x8BEEJ0n#6oQ^)F$r68u)bR3R-WfH`80Y zXp^6P?uB8EVW#4olzP%hfLWcK9AziNMl{(J)ncuitc&WgHcV!sY5bScLqLB}ZQ`g@ zczFV>>t8GFEiSQA3{!-QYgr@aTjL*pFaVa^TI4L;g^Vr4Rkf^fE22-p zjZ|ytVsn|?73ALO9aVI8ttk?7s;VwjG5L3vZY=*)v9*?-`z^s$`K66Fi8~c7|3Pp7 zJdRqP<_a{%7zb&dwvObwHW5dXL>yPnX!3DQWFbOnGs&H{snJML$NPuK4sUUxjk!=U z&3&Pgj{t2D3NS$69^?v(ssoQHRxx`2EyaZu=^>-a8*fv2*emM`5dA)g80E(mllYlp z0f*C7EkIej7vDVE##w^+PiU(=K{1DxY*kD0{H=;sY*q9kyVk^ih!N8m%>QZ}EcuOs zNg!ic1&*PEMH(S!&o;sU_)>UWnjE0zziuJyt#A_JOQvfr^)}Xzfr;+hz^LXo%F8fmW-r#Djf{% zOI+JKSiWY+$wwPEC2Y*}F6P+x@6)W_XVv%aQ~$mDyw;y5`Jmz4dHgC5Lza}V^Z4m~ zIq*KCZ5BL7;qY_NY){nos)OydY;L-2# zqVlOBp13}H+_5J70E4R?dN5(lB~mLQ2dUKhF2;q9D|Afh$Cz?8j}(<7edt$T)mw$k8Etz5^Y`}+gzq-u;w47|Hk zXEzpws#e+cJw8%UuI~{T&7|t`wy)Z1$yf&Vu?;KJELq%{g3Q$IjK2MsN23S>i1fJZDWXTyIIDd?0ju^?kwL1!-;uUvTD6bv*?{{^`1(w!!CT>jDZgN~6yTBJB$0^rf** zM-&}#A%B5oxbzT8Eoy1-r=xwWP$tN@ii@=W)K+}xVcP=QmxmCYCgOjh$Mo1*d#^22 z5b=e~z_YsvD-WVw=3q+k(;;8z$CznR?;Z8d`GRD-9^9W4`F;6u(p3gK|3%De=-5Kv zm#aQ3`o1XdZSrke$b=>UcZj=+t1%W5jD=4^1OF>{%A!>(!N6mKE%IVaf@S(H_?_u| z-&5&XK@eZiP|4(w9zj!FIjWKwOL9g9UI3$5v!1Q<)M?j=%51*AoZa}zmgzxqY1_IN zHsq`q$B(Icp^A(j%K3WTs14*oa{9;KF~NI+TNGCM8nqgM_8e^)BicYXO-R>9$)vdLW1{+Kfv~zB3PljOE2!;ha`WTwG?m&*lz2t_%?PqVlhNmF2Smn>uY>YjqlOk?Osz)yeW;d?Y-Mu1(;8mHUYc zGt2gh3v~p>F!#krUG%+Z2P)TXcS19wh^p4=Hsq?qYXxyp{X(-4csQ&w%)7Iboa922`1M(2Zqu7;1EwEX zGGe1L92H?fEAbU|f=O~z9D-C$1*bSCuj>5@r3VBSh!}J5IF9)sK~kfM8h?)KynF>C zbPL6+-2!olHn%+q8TPaiJ)S0?24|Mj>%kSk6MH8Ej(xKBb0M^bY%^Cd+lp8JxRl-Y zgitIrfXj5YS3*_+(v~Am!9Mtk$XBqiShfiKYSI!Dn3lz>S@`R)6Ytc}ma=!Q26~11Kg1skJ669a%u|m!DsU{vhifi*z%BS!H_u0#H&CDCL-5Sb zjX5e@(BQgPTPv2V*5K*4&j-KOYH_|1dD*cAysloYt07Zje1%4sCF~Fi@O&rme0L5% z-^tZGR^KHgf3M$)S1af@+8Wwp)4bF^-#Y(<($0|8j5i&;zv^~HV*4R*t|Sm8#~@n* zD_D0o7J`M&TkA{ktY(r|DsxG1_l!+$P-eEmqi$+YrnmkSd=~IvJ_mYKjUIN9H2JXs zea{HPPT&-FDkEJ5LH+h`*Tbq&sL9tvpL0aca}O27y1!-IO0Xa_qMZ6m8axW8UwG^bFmq?+GtqVwx!zzvKiu4=RMc zV@NYJ(bffND`AU{2P25OK&2M3!B?`_5z4azi}HG}88 zQ@wR+MnV7F#wT76hO$pTMsp|RM)RZ_@^epc-os;^sqh@*6d0E;4@ zu%c;l8%HJT=rAuV>--3I)Y*}p@Fu3npMd)tb5%J!knqxVd#UXOe^&Zl+;fhYX&wsn zzv=~p91XNz5~mT^$|CAIiZ#K02i=GC{{`L0dN19#68R0f5Bt;~MS{rL6XL}t{Gv$| zO96X|@zA7WU4QL3l&9;N0G3~?T#XzN)zQacDR>-S4FmZ3Lji5>O>0B&i89UAK+}w2 zn}Q)BJ@?o64-`ZtJ)#rof4%zOfdB4Xje3SjtQK6M@Y-OgTG(elgtAeB#f7{@;Gb~S zR14vCLHs|ot{wl4>t+1+t#{R;e0>oA^zHhZ_m0!zJ%P1%ayUDIZ8nB{f-`h9lkawMInS^zzR39>j_$I z(PGh;xe$wBAi|?&IDSFzId*qXfr$Y?BcI`w{tOHX0e5+xl<65oMi%+WOdS*g3CE|iG9v?87{U$Cs;fj9QXsHE^j!GAAT z4&)1Si{}kT_02_8AFvi1OpXac%Z7Zxw}Ix7X$t$pcN7`>tQ+T-Tje8t3=v`zz)NGT zf*sOX9-9Tdy(}^d9$RBUntbmN`sP|BA3^k<26_K(=ymyV<)AJHvnL0WqvLh*C%sp$ z=mrZVW9@{JWt~1?pl^!tA>NTHy9bEF1Wk`ebmv&#*ir^~LcKR}Y&u$uD^;b*my~?S zmSztZiTssFIsMaUj)z>Dnc!2! z((JZBrc8Gs3yo_xqHJLAXnz-L*JJnjK1DX1=g(qN;~?Yrdq=uCx4y@w*>YAxJl@AJ zR_c3r?1{`-!L`b{=`m$4aSFke&g#dM0@5bPD}{>oRc#gWD(B|M;5icTe=(W5X?*8D zg&QIaPwP*uz6Vj67R<&ubh%Pav?@kg35KL7p5FX}{#U2f66- z^s(oZ8N`@JwFtC?pk1UHEk(p_kIgXe97{$PJ&txBQ;w1Pc?L+FFG-(WkS=lH}V4M@kRDl25M&_JixL zr;|2kJH104kDkGCBW*85n$fl%RF1VW+ta{7n9yG#Go})L=$}KcYyu{h<|?4?Lo(h4 zXUzfq)81^=Gif=#4DZI10~+-0InkVx?=4e3%*3=17*NYA$uFH!3Pjd9DkdOK$_-vA zlCurCO@8T-QOpGH#J21?$Z3@k9hg%~b6Wwswgl{8OS0Fgd(Vk)VXT=DJBxE?i)^S+ z2xC77zh8m)jbIMZZ%#mV91&WNcVKon5Me{x?2B!)#lptQAec?f9bnU9L$ZC1WXhT? zYVp+u?XaW7pT%|V!*#V`tz))0Gnivu8%*wDfqG1n9cr##2jWXC?vE6fho5-;{oZ^W zp>h^@M;F*6_?vw!5Ux)T8av-sNEr`~P;;ytGiXSvjPdTXoo9E%)#J%=`3cl-M#f4uX^^wFKaN}^3^kl(jz&# zsPVj(Y4N<<1uyUDIpCs3&x~~8I-34TQU=f?NhT-GHsD$;dIt)5urM46dctYu3qhuO zTIDCQFw$1+f3)3X}^XTV^Ks}Y`Jbw&W5mRq|LbA#)B!y40_R`_?d}E=#ylw*G=h&_apqT1B#@OoW36(5j9MZisdPWc5r?#gaT)k8Dly9Ex z3N%)SX(TUr#MCeFrT+3psj<+ut4;|=!gCrCPj1}b*aTkcX^k|Rrna#s`~*fzVj|78 zjk~Is06U&0&+cmv?^aeZvl}B~s8JR>8>iJ3RJ)*Cr^yfXe z(99?|91skBMq4-Z&2HG>PvEzHt-2c;irq*fqHW;mj+V7n({gY(%V1zJqix?SLqQ#&t~WHU|~A^Mz>)xXbmDZ?#oG>o6XB(!X4rxNZ(Ok&)Bz zyb(;}Jm!kMutk8EU<w$X%R{76^c3;rGJh~++-q*uA=eP{{Pf=L*Ifz+jeC>j-}f5Zta5+fNQd#~ zu25OA33Zl313KKls94t%BBM|aeW-tdAEW1`SMdg>$ahhH8TJmUd$+~CJ|cj})a{DQ z!#OUZb&y<6{zPe~?`A9ov&ju{9VECFysx^RXRv-SP8^Q{Y4j*~{SEx1ii_Q|Vo%`4 z1tWuxDw8?gxNib8i>H)p`PG>DKZ%F}-FcC5+Yc!3y1P4^LHgXkjgRRRFmCUNKLl2l z(u?s8e+%$|{S}4Yz>0#V^7T@^g1nv~%*HKU)aybVh(-5F<@^fA`qpv<-04zzsDecJ z75lN>T7C%LeHVO7X8HLzV#cwRD$g3q#B);aJNnd8FX9qZj4{oTL*+R*pxsuuP{$&N z&YhhM$xLAg&FhmKV92frLn_{5$h(M7IW97U+=(2B$g^{6m?2pQ8OQ;-Nbe0owo=Oi z<9!--cy@wYJ}$EIFZ-er8NX22s@Q{>$dL(cgm;E2LZ%6bo6zA~=HFJ3`KJrVlC)sw zc81=zCrXV#{OHL~N;JzjsH4|+XWsy=SqtXR z+0pLoDbb0DQmhDx(9#Fusb22GV*lHAj`w(hu6ULKf5~SZizRx;RBxSk)zq|;9N3LQ zorPYeXRfw*8fhs63u`fIGl*~b4Egxx#Dvg|5@A*Vk!SZ#lx{?Q z?OsNHEneu=V(cGPR;Lsbre}#ZFUXqflm$H4QC)RPsf$?ZloC8&25KxUgPjFDd1bsa ztxj1)eh3!6#bqfs*C|WO%+TxXq`*5;0@t)epOx8T*n8>9t3%xI-jyrA8#E7ZU%v7u z*uE0A%<`z-%?|x|2Rwdu9z9uhAKh}b23xY6X@7++yr1xuymw`#NnSh<6s(9)a^cN5 zKcrd-wwwUBW*cakCgm9Qj+C*| z!PSIi?tmx+-*PH2G0>)dJDUh`R^N zLB_*2+4_aTwe!H-SwuW*tEPud+CO)q;%v=ToXzPHliw4=G0b|ncEfqU>4m<&xaPbm z2@KJ#C~Mu`7gsd!kZ!i$H?RGq;k@3s1m|J))l8fp_3E2H>eaR$@_rSIfvujT`nnGH z5EEtE^K~8SAx1=Y$3L03zw1*kwv6I-VKT0xQ0^5!kbJwfC?@2R-%50E>uBPX2bl0gI;2F=m`m;^e=h z^fJ88DVRrU9ENdV91fHgN9kx=2FrIWONqoUOqa(nmRWcru=a&2Vs{J$j6Oqj}iV4oymlwt93&cX>2l>f+jq<2(#304pRM zW5*XIDXeR`qMdq|oz@+kbS7rP{Nt%1mk(K(TMK*)#>vzs9_67u-pKTuDqxS99z*j#snCV}vBwP54N|_tX z{Ds)I79UWCUICAsLYfWg@6+vNF#d+2hqYlmZovBBkHFEj3_Y^>v-=t_elLd)Iuqk{ z3Cdq@!Wix{xhD~mTf7Z^>!nm)D@6~%E1}D8K| zkQumt8VfZd)*5P!NW<|@4#Yoka%=$XM&F9I(};iCI2`|!tHwWNNr?y`dafScQtFdt zVH3g{5kWj6e|8}vh?CoK1*wjX4^RVwSlprznFN$I29v)$|{c;BKr^n zR^c1Yy|4+n7ZUMOR{0-;h(yM*L$J~W5tSo?8v$JXDhE?VCA+6UAX%JTGmwV}J|^^} z#}O+;)DOMOyS-mV5?5uMX5?@KAK91F1m9*}<(aa|X9t&o{eE>d6Dt3e zNE@!U6uienu-H}LSBwp|?L$UfWCt)7SmpRY@WZRuq(1lYF`9G0Dt|C&@D5GoquKoY zBA0M~#V21OM#>1vSs7<%iyB~SJ+2`xMc*C0W_QBpj_5<$*+XL34 zqF4tmN2n#jiMYtH#}<1QmISvc<0vzp*69}9VdCti_0(;~`E67W*{79go<|llxm9s8 zxhVQL#zajUyZ25+3I1#d7G4hKdqvO~3 zsAjwK!!KY7X16oc9sxHX<@uNi2;H%QF}K> zDk89#6eG*`9ZEnVQ-2aAlb1&WLOz~mNsQhl33u_)XC$sp`uw&|BcCFljQb@c5FqY2 zePTR~zWZC?3OcDJ^xeUOsI8Ug_AjvAM%pT}{M|*yKwCwzz!mudXDhmk3KgT}Y{g@xb-qi+>ycy*^GOXHd=W3ZePJ6@D9{?92vjG zLYG&g_GRfs5mv{KdJ`isosWt5t~pNYraE?0yXZ~9tolVS+qS~b=NQ0mzrV+s`hP(j zwMkzq%Xhtiv6G^Xc1gFD-d>_2k8%pc8nMNjD=cfIdDiLNvH-Y)P@wdjkD=&*0B`}z z8f(FMP6G5Oo5SSXJFT;dYCEHfM8`634Uh$}u_6Y-72!E7)-4fxPzT7(*Sf z2oPv}v~3h|GfhaEMDkg|xe^}svC?4o4ra$=J;*!M+@&uc3yJEYQAlK^9wC(d#!F zKDd^QD=hIWOpyXY5A15uwTp{9wx!j~L~TrlUE}tCD|k{j*z-d&;`9D~)GBZ5o8>Dg z20}4tk@>-7`P29hd^Z-0YK{qmL+2P8OOS11i0|VW_cR~!#5-JS+g!yOFcnS3wk9~W z_`9{spRSg;eCguoTn+FDyMt4Trz|jv9JccVlZ$O)pJUPjt2k1ed!d=1=$}|jk6C3u zo~H1#>-(!hlp*gc?eu-X;p-*D{5*F%Xe+o-8 zmTg$5ul*S;)bCEm-Z<*+#=;<@yHe_w+r_VyhL#h^AV!(6-Vj;-Ft$_W!$SM;hC}Y2}duo1W4`-V3sV10bzg_yJ4XdnQBvz z#8L0f^l1a|P)ucGJVx%nD;)gIbW~o6=vGM8<+a z_-FeOM?>5i_Z$Z4pm}4!!W-R_c$3@WHo4Evz;BjA^S&xYqBq$~ZHgz5h4?Ji$KwVs zjdf|up(!kM`_d@ z{pIks?#MIJ)$N)iKu|ghHZf7Ivk_;mMV{OG6hluv^D@Q}7+f2HBZtRB?C{Mqe`Ulx zWkWR77`awvI{6@2a9ok=%T}IzSxF&`lZ(-_If8=u~4I_iI#*trjun7 zEz@0BHt(eV(&0+OrNfB(BhZGJ)U??9K+pKYDToV$RxtP!u0)w1r^l)r-C@7I5r|{c z$%zsz(_L4_pA6J4uC4QA9}Rm(9j$!ok*A*WXpcl2y+u!XGQP4(Qe(uUIZ{{@@g#j^ zkz(K|G@+*M=pSJP+72|y4Dc+#o+!~@?ZTGeeC0iZx7>G63Ca3oH6#4;QulqId~3)# zsBo1BzHKNxsAM?0D-J3)D>MTBpyFh}S&4WJSNVgT2bD>c#}pfLP~n+lN=ErX#a@0) zaV|cnj9q+8nMBJLgBuNqSiB_~?WN|mR)L&%lWtoPN6tSTWX`uDgYq$jx8lsj@KB!0 z&i~=5W6D^@)j2c&-LA~p*$!OWnkP-j|DX%?n52Siw1M8u&fMZW*5$U}ihVmXMxtkF zoM};Ok2&>?L|qqituEM=yO7UBtqY%^WbMfqu9Z1liyj-xK>FYD|CHU#yNca9dZ8Ou zpUoa)E^-vNIK3`M`+RzgaR4_l-J0tbNDFw6!HAeBe-|yKXDDo%ddBrf#;Ql$E6llC zT#Ls!t@9P2i5e6aqkPourQZi>wYcd*zmcz%V2kM8fj5;}=KiY}9t}?GrLhHsPnAC& zplH-o;QzHfC3++q2eZRQA*L_9TypyuaN!AzQ49wU1&x)y%0r^DF1!{#`1>fAMiMec z|Gu|VaN1JAU(H9X$kQ;{_E8|O{23*mAeOXuwq)pe=HHzEnbL|`ab);ht9tI<;d3cl zMbh#8LirO3HuL8dH@*@U-0t03`&UX}o=-VWp9Q)n_zAMR66_h2A1DkmVYDfwCv>h4;2Ou3msoM`lpMeb}fH0uBsJC>zbMq!x|ohmKzLF080p+T9m zIGCeV-x1<40B^c~{tp6RYe64O?5EuO$`;gv#*H`b&J%d6a0cEHl1I^hVyqU8{YM1#|1953KQo?W=>sWzYCtE?>t``?-x5El z++5zE+*Ho0=jrf{;~B=!3b@p>Jd)BK{4_&FjH+^&Y ze1)+Kfkf-64O`i=o5~No|H}dv_ib3TqQ%X)EvoD&D5Kv6a4{v8o1ampVf>liis&Xn z&L1LVWIL>O)W%6*cd|ooaDij5^js5;ex5iQ_-RnzmMoj&KL?kAoeP9U>;Y?Wy{5C&vEgoDabUmP$Ov@kc~s z-cfos)s@_%$Hc|nok}undUjIerP-O2<*cUH~S{>9K?vT_|tR5{pmTT@O0cQkBPTl*wVo{ zSX{dd()`hQ0{x`lo+^(XFz&ee^lsZ@TX41DZe=bOci`P#5C4qvLypNUgH7q+u+sn(-h0*(#Qf~wD2;robDJ)=r7+`iVwG|bJIDKvKitQ=De$e(~nmnoX49&5uCQ!Jk( zMd$fMI-fwSiLFbYZ;Yn#HPR=@dEs8@3^}2TR!PL59JBHdNjct|OKwJV#Kq=Sh^?Q1 zL6PM0wJSw{w1G&_!M_Txhb>Th5I(ttHph}cm6&@k-&*zOs{1e-ur*T@zz4y>pktlU zTW2JQXVhQ>{PE!Tb;_FSbjnb`2z?_IXbliPurAv_2HIC5h9#?5bG}Gpn`>8f%JO>R zxEje)jVLiC(2I;UGB}MGrg!ZgNSkCwe$e4fE6Ed}FY;EZEj~m977--Z>5IVKSfHy= zJ%s8HG@j(Y>x&Fz0@WF>>Na82!xu2WbWvH!bI@H&OZW7ckg2(;om_ZA#q%a7Ycy*~ zD9l~lT-p~!zd_dgrT0;Ov&6Q|Q-7;71Bs*kQO`o?>4+IH?&6_~wJvs#a+hSlPm)IC zBnsW5q}UIOCktQFnLsX{BNtEcv!z~k?`&`Pe1x!r;nS3w8v6m{SXm=+9*)k0=N>vs zKf#DgbxUxI1?QobIrYQX6dJwh{ADzV|2M(rJF&PjxJ}`SD?|T0DXnDc*pj`@ud0<8iClYPeptV}GwlN0I4Ez47?vD4IySwh? z_g8^oLDWgK2UhkrphXP>46nY+kJJ99af51~o7rpqdo?zP%3`X&Q$3RUwW&;I5uZ=v z@~L)r=QWJOGGH8D2gcz|F@0yoOWICEzau)9<>1TUU-T~aQ+&%Q+_9fQmFQwwIox(e8z7DWbxx;tP_RX-zlB08db-B)0~H$Ezq3<1_3h zBR)MtMOj$Chc9r0NqF$eS8<2ea1CFOBB%Zvd;!H4$nV{~Xog@xX2QmH4xB7Lk}5wN zN1oph;wKF`$C+v!a@u2jhu`>B_*pVA&fv@M3F`FGEkb_iw{8uzfg)Md==NX^(c@zU z*o}FnP2l89aUC&4jr?O0${F2WBc#O{T$_ODn#<9(rO3Mn8RvRfnh%7`h9caH$sZHN z^?QO^Q6X~YA5`;D(&1TZ=_u)Xd9f#A{maYGOB|AxXuW$eF`g~pToDUkk^S;k>KlgJ# zEqQ%5ycdR1d9B>yj##lz7V3S=EeEy{nVV4|>3QU!$l4iB!Pujm-h%glwtIuHzb6>J zAN|JaNEm0E2R~ZdO*-z_(RQ%vpkXkBwL+hbl-Ol8$#)&X>EO z%Kt<>hi8rgUvW_$}td@S}h+9)ZMLJ!;g(p##DgztT|mrnf>bc$AjyUe#8%ov=c zX~H$XHvFho(^}ZMLr<9QB5mZkheZ<2yw{JZZv~XVj2fdy7$T=UP*U;wE zqkhoqh|zNf!z+MKe+^ZiyZWlybjOO9Op`Pnho+;d6VE=+AmT=PCiWY>`5gR*cH!k1 z?#l{&5vvb=ED)dG_xc#J;2>SYMNND$uGYqN#|};p<+oQK zx+sN@B5TqaatY{-mAx3_^P*GvPcD&Y75bQ`@VvRyGgoRJY&@b?Gbu(ktj2GKmiQW% zAx6WoJLXAVSo_uO?ZQ*4*Z#|^?RCFWH)KcqK2%}MM($I&)mh4^#KS;yetlIh!Yc=k zy0D%U(`bN2xioZVJ*)^1l)b^x-!n>PlndHH3t?Yi-at$~a7(@Bh1+4@ogbpxH^JX) zBAjDlYdN-Bph+{gK|A;XskGmLJ&O`$4YQY{1|li5&lc_yEzpE>`Hra>Zh{)yG^#f( zqCsE(l)9i@1C2D+Sr}uWIyB*jOmFl^)GP7aZ7YTsa@YlnEA5APB$og?bdwS5skKGd z>t*PNO!%anb@Y~gU; z)cdfURqEcR7%cT~B}^ykhC_eRYY=ux|BOBzc1pqp`;hkEONI!4SY}{FS(U{@d{9C) zneG5wHnB_U7G-HbJKP)dt>&c5c z)PigQPwE@V?w}hL1m7cew9K8OxjtvJMAuw@7B*srvUxPeH-KR_OX(kBj-d5;bk~0t zu-3CLnjG}Jlhug-bH8rzPKh|hGK9!R#w;J^0$D$N|(v?PmzJ7xxIhWy>1xgVo;wzIKS4b#5`fWqXG6oGw>8I3G4XK~B;}TmRrf zhH{FRU;dQ&AZoCG0}Rs)+a2_YT-ETNX;!D^B5^{)oF{S?e``JE6nhX&0cVAPwJBHn z+#<5?>noSfK%Rb;blhJGl)7@M+Xv2IFD7-fO$nE{#q!|{TMGX>z7{(iQ&5R zT>BSu{g^AMXMpDZT1Amyk=}iX)1Ny9e zj`1y1m$j!@@LH#eUPcRKyBfU#3krsH8#2hRYl&xNOvc-RqnjyS0n5%h}5uJNdFvgLP1rJc(*9lp)?-*Cb$Xj$Aex zC)OlETsxHettUCOFXtTzrL5)ePD?9fa7hrZGWaxt2)v84ksxWAN!#aM0s44 z-dBGLeDqYHL%jyw5ld9Z8^CqDb9j|7H*!?H)}-rmOZ(MpJ^v(>M_x=VFO&{oc|U4U z>TQokeum%43=jK>p`RhUiZcE)m9=9Otp~0TWncBVe&Lz&Gc24c(JUS?C0q3vl4!C_j*rJ_qyZj4@1d@v0IeA3Aa=WrMWC^zpCx}d(5@| zjrG#{`XbjlPm#3l3f}tkwLcu547Ne7L>#N^TQN>^`O z?GfJ1H!2&Gv^Dn&KLzijA0OqU2YE+AP=5t1De&=DXBc4@>k1baHq;v>CK9fzZ`{Wd zyXDULs-^sB3j1IN8Rll(GJl`z$(X5|*xiUQZy)<%5D~sem!uD3w6YZStwf}nvv4z^ zS0t>m+Ay-Qiq=r&MXz8WxYM7*nxNIYIeaLhk`r|W!FQ24J1gsfK(cm~D?Fzux5U_T zJ@^4kto-d+GI)PGGG!@P4&EOp4`6DzLLTd;|LdgSoI*@XGp?}Yz*?}&Ff}MiyyV9;>WZf07ZW}NhEvp%1G(U-3I*~vBUFOBi@32R+zO8w|`Yr7@vtQCZ zKk1nM@Z|3rUd;IpcXZ0PjW3wLWqPSuvhsF?c*k!3b}SdxZ@(bj3ayaqv@cB{BgcZs z`%8!;Wr7RUE-08HuSM`JccbzY-wyN{mQ8gmB)^58lvb1tgxsimT-n+qnUx1&k@kqU z%IG?gnrb!Df~k9O4L!>Vhy=+ zqwTKUsk%4Dg8E)^_#Po5oeJuddYob6iVIWsa7SD_=T!6={+5sUU~`ZZdM-2k^!h+( zZ?7r*65iHByz_i}?{UmM%@>~!^@1Ck=n)4Z^!k~~{~DoJwf-Nj$`+@unyGU5PV_Dr z==QO4JG_heqa{F-kilMOQvN-9df@5-8iRco<3H6Wr}*|#AGMooQO&IESsvy2P{Z;n zs9t0#Cq}h|=EXE|=mUrcb*4Ondqcnj#C}xG?b(o4XD*Qy=qiAnq+5RNsNcC$|WZawRLwLR;OsEY~f?2i6GeURvJ zzY;9`<;d&M66VRX2G0dE_I+}Udg+tlGwU4-g3W>BHt0A*W1}k|+cK5=M+U%)SVY84 z$9IH)YPGwvqPy({4c4Hs;FV3E+PZ>>_a?d`QDYD-#`D!Mwu2ERc z_vm@0CAR!LdcJb_?s^`5kR4b$>e|tJp*4&eqdgnwcZFBbO5+6-zo0P#`YfqEMW1B@ zY*ucE)R(1vFk+XCEi|sEjfTP3@lefYyOG~1S1+wuh9g2*ifNQk-f#yw=5EPQ9s?3- ziw0TS|c!?zaiAR~{Ii;qIo`+hn^`(Qww^p|btC!CwsO zvWny2{1|crhARgQXZ?oSKwC2S*i|poldZuxYR+W&$(0aixxyKt{n@V>vF!Y{%JrXt zhI<_;-$I-PQNHx?Ez%aFOwUkN8^@MVSTjQUyHOLMTbdO7y`NSy{YhRW^{g z_2{~~%Y<uSJT6q|m(K>JK0mkK+j`H^D0cbZryY=V~;Uyrwm+jo>V z;+z@>7;%$pc5HrMJ>s4hxhPEvcT|_eM4_YF9-H^9=ET-@de~9-hK_=xN%yDM)70!& z?{ptkQRCq&YwmJ4h(3Csdb*Erndp{oCi3^iOr>pPiceg71fyQ4Z!#=9M)Dx4Pjl#l zJ8*{a@71TTjCsvQNBOL?SGS4fsrUfapP$!2N)((>%qHB`AHk^B%l=_ zzo(5M>Pd%(K>he&&7L7Z`(|D zB$zojcT_eT6va@7c6gI2gU+!;5fKBwm(0*@sop|nEZ$QPg0@9zXeQsVCiLylcUmV) zwg4%aB5epHi*uy!1*q=lBn1}X zD92|G0jDfo9(qpvH*tA0`}z!6(G=;;TJj~%tDG+T3MXhn|8qj;a~1kSiYZcjmtv0p zs1KypWDvd3AsiDjV$2*P*lSEyUi1`36;1p&n6(W~=6p6VbegmK;1EN$g42_!tRF5b zW#;IGs>XHkDnuWheN}kodgUYhj;mrlZFVVGV_MD3a>Q*F+$t4y58fN8kih6gtv4nb zX`ADN7JBvMIL$20LT-awnpIDNA>`J(e8@qECZf~lY@qePtU(QQg?XtLc`P<&drf#1 zt)lRsBg-!z)N!|T<6i!Vp6CSX3EJ2lHL)g4Nu;f<#lL%9Q9_Y;3ZtIkrQtT^2~;P(nv#1-deH9HF_r^tn+y zoc4)SKac9>(H!6P2-#9UCj^DFD&$2uU%?pMgi*<(KNwTBJ)cR3!4%3wT%S0BBy>>y z3x;fq`%>AT(xyA=A8)P}mI%KF(r}yajX(x+WbDCG-1RlEsvGZ=H;@*+qe9RKRCyQ( zWr}4)ea5-KxLEUV)I_fgg$)LyVz{m;;^Ez52r*=O%~J3slWyuqtb#3EG$L-nxm|Mm4`5%bL8}!KJ zZ$PBGr%v7w0@Eqm=P3%;Ik#(}E5V~m2qVzDk~e7lL;hjulw=dk;8A#hA5I_lWrBES zg^w{rTg!T4;8iEk7i#cM&-v^cG<)~=Na3e(*Doa(*FROn1z+n8M{4W80c)E_gx%}Q zKn|35neK>}M!mosBdF&~UdfeF6G4CV(%V2S>*MPVzNMo6E09JhoC(~LIQI$*=i!fa{~XwnccuYi@t(?cBS{SqY7fy@ZMC7K^nz*dvI#jPhr{G<31=eP!-q#c zA6yWkt*j}M*=TQrXFxI)Lz2h4#N&HEnvlW^Fdc?vF_qWJmBO@6l3yoihi=s7YfW_#8P@PUnU)y%I`<&8qnG}G83b(@p;w#s;0v@ ztiL+>vMH-Ib`suaUi8P+8&Z8@p-P;O#SUyIRV6l|uy3w(EeQtVqQ zL%xMy6I;c}jmvK&wuXr3ve(+0ve0#~BWf=*He?Vt5@r_o}4s z`UmI}s)nT?=AMw=&Q$&k{`DNIKjL5iK;-!P`pBE>fKQC?moqG_r+1#I+>!K4z|Xe1 zVTl~Zd+>Se&2?_rSsBV9EM19JVQzHD>hR<4E(S6TE3N4i{+l+ra?A&3if$_Nx8pswgN#+^`O(#N~U zw;7a|#;o$hlEr6a_Z zo}YihEqsJtj~vrW#X@y$ebL=T*(w-}DzirC*$3_3#}&QSZM!@EP|@e{EP4KA#=u#5xrIT}kpqk<)PQI5V5V~4kOm5W+QUo-q6v#~;^0JCNoR(lPp(3|r#m%I(Dp6S z57i^k%j^ztGWH4RWYYNn6s673zCui;{DIhu$Zv2XZ}6U2qd>DDPF3e4pM&OsOo@@s zS;9PEOFHEmD&SPdj$j03P`iyzwW#i6ucvt);Oq`ng7x?sxhHkzXHZKMfpbJXQ@mJ;=niAY*wB~?K!a&P^-Z1e4nIsCKy6>CT_w0NAPXveZW2%*$XW@ zZ3%?zmU*wA8a}J zS-2bH>)@gG@a7_*0`&d51!p6vvpqagE+0o-U}8-%AduNNm`Xo$-Fk)=-x(UfM25erqID2j&*;ZAF~n z_o<6e(X}G*f?6pKpw5%FxJ{FxB*sXm^_pjqCtihTuR1K?Y>}4`>Cm1cYB9O;TQC3- z%jb|=NW!qK0$`n12?0BJp@{*hRYT8{p?rw5P__9nY;_A`*eWCMR&O7}`8Fn(D`Vy! zunB)dv{#5Jbw2G=h)bVB%lN)pO-64tsc^`n_n- zz7uf|v+~mft$1|rm=w_46Am|e_Pde^AY1#?N_;BBeb6&|3mm`)gn|84*#G6kz_b0= zNfW`7QlCrfvn$Xd%@m#&Lg3PRoCI&c$>g2&zF^Y{M2UdiWhxg&P#X}xjRmzpLUZi# z=8eAKJ3#GTMJ-t9JI$INBT5ddoi#1?4s=($cJO`So#`4{Q)52xhjOyC@rgAVc>Z*h z^voHKm-v`e^)0TCfz~gof5b@%Ddo{_Ll_-H9n<7+TN5e*n}hD)Uih!R;3l*ZHX080 zVrq_`4St?l=GrPzAD)f+!0iuL=f-y1j-j2YXlG~9&fXhl1Ya9%XQYg|ex&vN_@Oq~ zFzEB{8g@Yq_tH6rKY59^nLnVt(3oZdeK*ZBq3y?day~{KE|Q_NBr3<}9!XS;&xwh0 zUnsTpp~PIDCpC9pg2o%^5i1h3E+n06MASSzSC?>(&s8U8j?dkdm@z(Al_(yco0o8m z&&^Hn<8!XW^zpfpMB(_{^n{I~gsH3KC-~HKN+NH3t2Hroe9oLWJz(_^W#u?lM!zTJ zLp_7&sByNQ8{Kb0NMPY+$I2A_~E67&?PDUR#XdtMa* zGrE)?KjTkCv+@>33|yZ{y`Ot!*hiFO5CA8kyUXIC+yu%&coT6)C%6d|e+(f)+Ybis zfgyb=Hzfmg$tag+u@q>t_9avAL)Fgys~$qfsat(s^uR!5bGZ0?ydmfrQQ?5TeV>iq z2ku=mD<`&Q_@DwzcL@1vsy1|7+Vm_UY(zW4W?PgNI?ls7rEAK-ztziLcmRo;(wJ{? zUd)Hy`zq`odYPZvE8Rmn}CN5FYLjTOS~Os%zIEy432>53ee=w6x1uhl-k zc(sTL`Vm{H<`q)&QgvT5dy%f|Yer7hrNFa&{@R*{v3vtOn2COw;t!c%*{&JhKjemb z77#( zLU5S8wGDw{%hLfz=I;>898zsy=LbSOxGBij8a7_j0?*B`-O{IKXwQ3v-&_qfF{+VN zWoDemIF+c#oF652yDhU}lJsg#c8#SWTg+7cpxzRp`+MmAD~M{e>S*pc7`HS&iag6M z_)i|P+pt^aSuw`59#}uAcJeW}4TZvC^u}5+$5$tr(oA3#dieNRscf({mkp-e_xN&Q^+R>2}_g+J0#V4>e|k7H>!d-gGPFfa!|O z%BQ1xK{r=_u?qg19(5*Nl2@HcXrCMYhy8v(sugr)2JDx#Ln8>W5n}bKC8Q~ZWzk%s z+mXS}l;~X>;#Etfab)kd<+m-XT2d97Co(`H^gN8rCuON$>WdOY;T=1OpxIkuyEYW%F!0CW%4j`4qQ z?@QI(9?Lo39-0YjL0#c}ye2irC7yy!(#*6$N*S~py+F}n8m=!INi5tQmm_yyr$_-m6$a!GP6bB=*~WO2l)dW71*x`SaQWl6q3R&&6vZ|n zqa@bqtI5s_LzUT~@)5G*jDfkpKw-HYj1{No_PN1rK7raAOTd0w6E=i$fw5kTl{J*r zqvbproo0)f7BS_8wB_6you(;&D!O|*Q*Qjw^LY}>G$PHEXMUJOJDE=FoSf)LwU7=} zV<`d(%y?FX3J|00y6>MtXc-!UIw_OlG3g$(ikN7{|NXrus;zs{by8^CNDlAAXvZgA zQijh31fB$0W$DO7t4QOywBMX)6SRHM@tNYeU%|v{4htr#ZtR%~EgVu>2rHc;Y$bDP z&Vxx@6`vZs+txVOBxVBP_=~Ls-g-&lO7QEv@Q1JC4gEXfFUA6wD9kO0e|7s`Y;4Du zdy`VHpy_yBf)^8DkOTAnSB|`A?u>spa-bPKg~$0c={PQ3_S3h239j{X`j&f0X)Q*P z_UaF!z9Rb88}ratAuEV@zPyu1=bGcLrx6{9{iU!3y$m;BBTwAf^uEvhnE|Hs?;^cM zS}lR%J1X=FL%?_FHGpXc^auYV=#jn&PE}3hQ)xc@*L6S*(#Xs|fu%^b7N9QPX%!h#xATK+d`BeX3kX5AmC#@NWs|3no?T}-|C$Oz3gHba{hqh<-O@kPgO=Bqrb zxj-YtPbIW+m!=jBvFkT8$8wM#mmdR92IrW9b7kS!?AX}Nd6;Izk~e4IoJLH`u^oP( zatktl@}h~G-$?RW-Gw|~2N3;w8#H&Vq|6t!fR`{u`Lov%o1$p%$%!&0G?I~l+R8X8 z#$)u@fy`oXzu;{?iZf?o&Im36y#}4zgR25>$9PfcLGJw96{l(JXpxU1R%CjLVLSL5 zLk5qSLjvj(4t9g74olNxQJzZ-05{b(#njHpXenZcx=-`VtKs|4T%7_7BgE3_DIHVO zBY7{s)7k=ks3%gf`*tYUn3b0jP^OugF{m{bFV(*IfT~?yEbTpkFudQQtWE3zzmyc; zjr$u&7AU4H4h%Mu#UtuacP&(RR(+Ec$h?$O{|5GFJjJkWx!WG(X*8NlTA(L!Z7#LT zmAWbPUD$3xPml-g=S9pwIP<%YU;Qo*wut+9_?VDeh9$fAGP!-t`O0N~neGu1s_T()9gT|Gpf;L*_+00*S z&h8sPgoQ7_@n-8;&WxP6O!8E<_D_^8#VN~1S-GU(HRQTMsq|*H3We0rwP&Z6b$tMi zSG$SV)3M>exL@mCu#DE9wJ84r42VwiQA>?aS}>>&pe@CMogX97&C zx3#_XOe?d=yQzKCnN7@Q@8&a`ndUv41JI_){D|7seSR*l>-y2Aw58kC)(Sro963cy zlCq*`;W7nk&+eEFm26&VD=U7WrW(=Ny!dgy_ZnYuyjkaXt!?s%_G(^j4B5~Y<=7C- zA=M9BVPAi9i13VkKhU|sEm?B6pTEYtyKzL!PDhKUhVcEo>5Nm0va1hE?Paop1HLM*pp7VI{`%ybsN#&SUWY+%RrN0>o9Q?);EMaH#lP2!9fL1WKEk1->{=z zWEF+2R#>)Sb68}`3{j2a&}LKd)0@N1r1dhUN*yj%TTl{gfNcOm9Jkyq7&m?n+4PvlTdMNF1Hn_xWNiWz+pRCEOeIh(PHTGXeg*PHDDwqumpeQx=Pp4zQdr?7FEQ+!Isb~`a zQ{z9@{r`>sETX`v@&EoOLV00o0sPP7zgbC+rN;k}FUNmIS(^O68~;CyfT#AhO}hPcs7Yekw<7YiStB;GH>Y9mhd+1ak*vBlk^I|ROJ>#V}vDTc#QeluD=BhsVMeg zVPRwdJfquJFz7XK!)sA~T% z80fTCr3JmG+vd3@2f%svOU*xS{#$dEWcR-cD?t3h3eYPSpf>7rbbQ~1@!hjH`fBXKUV*=LFa%8pE=sp!ti$itfH9SerRQrg4=Wy{(Hl_mqMYjjAQImQ|A=JC z9F{D~oKY?kQ#+uCY{k>j;7QI*t?6u{XQ03LzUr)Vn4fkEzlUwa*LOUSXrra%xO?`+D&6!X4WfT3_rXd@!ZnN_6=qh>c(z(9!W#tXEBC*ew z+|oU&Z}+J>QDRWrh^mpX@pkDIJoOCZL3D}Dej}KRVQeR1i}Je!*Wsw=b_FB8T@ zzD{>FAJU`0u_*sB^3x$gdcX(6)Os9IBf9p35i^*l?;$^w_FK>3yHRdX;P$jFKhcK; zPF6N%2;E%MxdHBL=b0H={*i!5=^UOz@ig$-yF^h!wvV0xeiVohzh0=1JX>vuwYI#= zY0hg}v~~hU#MZ49LbK?T?BMxu$fhwVPYh@CtYT7u8wQ_3#RF?!CYD(h`F>Iuap<#> zHInPIDAA$ZdIL{pa^lqb+$EXfl%>l=leBIv)jsFM0(=i>uj2pENZ|D7%|}%pEV!2$ zqm=|8!lZo^oV`b6L~jq5xEd@N??JTt*tUO^0cWNe8!uu)hK@hrGNHRly? zrf^HWPT+!6Et>0_#IKPNDM8yg21J~T&gbusxe0Qh=W?-WGOfeKD3kE}&Wv?!)TWlh z2L6J)QDgT8x>QY|g7mAp5F1BL4j_gG=vo*s4&?FkWvS1G93G}HTfK#EGGt%izs}g1 z0RQzHH;bUeQ^Xe||A;9hsqLtC&JygmKw_@^nlNp@GiWbV;%*pajM2poVTqZG-&Gl9 zm{tSWSnxH$E=%&ddM=PcxG^sO5WjB^e6=57`Y?WW^<;`cho@IE#sIq04(>E`4I1?e zo+RLJ8|)hUAo4{k#md%At;n|`a~jHGn&Nqz3W_y>BdWgtoJ!>E5lbTTibX^F!;gaB zVwNfWnKjCEjplNurY5!5WQp$caxGK*jH-1{lD^l*4(cu0s83sb@J^MHxysG8_cTqC zi*e@fwN1j_n!)Va;);f#F?bNw^ZHq@GMzDb*uXSLbzs4hDRw@Q-z2@ZMG%&za<^woiLK z1y!w_oLVFPmw$i)xPJ~Ah#pbs|70QT$33y^Y;NAa3U|8 zGU!W?nLR7^YE@0FxXK$7g|p% zt;a8IM-ycDNwf@o?u6~g!%m*C9ciCS``|D>Dq_w~$-A*37>Dodx$)-8N8Z}v?KeYZM}La!!$M0$VI z*j;i1IPp0jn}Yv!TLL@|hw#iZht+FTb|^k<7SJ;{4?L@Pihb8KGoxZb=rWjBwo*(tBco%z<@+ zt*b1`61tV3CRO+riO4k1ij}O;!!{wGC$DcnssOv@D!4bY_*bzCIo4GH+?B^8XfZlu zq7U7cNJkP$l-da+_|RBXI`^;xR-pwt_3ikUvxDq<_F8C@CQ=Zg+!sBfC^R1r7=T)~ zmNKR`tgV2iIuw7vXrg;uPv}06SWU`>q!+fQQHcy=Ilp^tcVCs@1t#(R(e7ZZ@3=%W z0L{wnqXUsQ*IN03Cn}((#wxca>Cq0^qCBEjN{82b6`nb~j@lgEz;7s4q3)eH);4PG zlUnGS^qGUBR{qVk6~e$1^i0`F8m-wgVNLF(W2HrzI$E)mVqC;o7dm8@LO7>Qt*%Wu{?DhzWCMMb8b|O?lWttg!pt^IV@vhj#rm>fyl& zDAFj4G zSi>U|%;`hrThXMvo?wxu@ZC{bZRq9EVxLx`F=0~tp#grB*u*h4F+->TztW~-UQ)~| zFN_fv2VG{e+zC&IctkM|>c$!#_1hV*YFXnc`i3}+N((C)J?|;9tCojG;#%e8$XY4O zr+MBhF^4r0`DVMs9+uFy^M^R485)!?4qKFWhv577xKGpE$Tt@f{>+m=rxqbT4qJ|n zeFU-2Sq(iW=Be+mv0IFKbK)F;w9>rmS~$WD?BSyYvI_pC5#nV6JckHIgh(8AWP z5*X(#(Bp;DN0BBzrIN_z$`!piuGt^)zTD+xhP6tEJkZdFP+bnbJ0D5?N7V|;&?MjF zdYw3Vxk-Bb>O<9aDXY{9j|P?M+>|qCk}`c()LkT%CK0NE*g~9%c+csvOZ`HZl{8`C zu!b0CO-RSrJOjJb$7?)tnGtM#~Yb$8yT6)2Nx0J^hBNUW~{w)vmXC&()1P_e+Qe5BqXr}tTv+Q)-^ z^3kh)ZLC5n!1RH!*~n&aA(s$-2UJu;Jg4kR+T{>z_Wu|wlr=M^$vj_y_e>m~Dpv$E zeN14ITp?NAjF^ci3BS*b|MDJAX84(YajSk%Bz!Z2^YLO8`m*PSsXmy}PHl0%BHc%7 zk$=!3WZG)s*)g`&@0*pckLiR8A>^PqYhcu1(^5{E6*UwY8PQ&UyhvN>!X~?SfBJOwaa=+)FRt5gd^w~pHyj`1KNVjsO#Q6{|Jtt zchoQ3|0n}nnf_uSVQyoSM01L*_$8Jy#6okKxq#CLMln@KyB}GdIfmO#eBGIvb5dpr6lQhA9=wy&eb?MHQ(9NCAmBAEhDVZ<&6p|HfHGC13LwoYgGwL_<>76)$*w#<=AR zhAJ{j{*js5PI;bLU=*eik-6xzr4++-YQ07|t$xW5hLxRzTlG@l;0vRSZVJUXl=^>$|t2hJ=^W7cQsOLG7L2Unm;7S zTBT^1QGPK-93?;&sY+BDS(MpoWgpPRP;tYKf7v`?3Bn3QzT2a)0qe#5hWsUAv7!0t zW@g5eP?I=g=7sIn?MDMp0nm|BsusLhVRU~CSU26j>5t-tP18de4o84}J)<$hm$`&c zO{cmHXgkqdpPoANS8&HSzmn@Sq2cwl}q2h{@PaL@dWl&-#lmD36+ZLXYa0o0?yj2MZ~| zAZ*Q{=C>{>Co_T8(-;bKm_4jHoFixtYu;dA*B&Q_nd753e~{ceqk=0rCr32jJrL0z z`_0uUY-@z+^n510D|Lss4; z6Q>J$;>XkH(jUXVlu^KjIPi97+l|W8gj0LCduLKVjb12J3&ryq)8iw|N}%Hl;9cW2)_?{g!9O+ur{P@233XPt;!_ zN23B{{S`5AR_tZS=%{co!&=1(Zu-MEP1%j}wK832<-0uA6raVc z?Fp+DlaM2jlzUA|ASs?Wu>JlM$c*U7uQy1{oLXsxirDmv))=#$by1Ah${dEO0W#&3 z&^@`A%?8b76NA3rg?g{3MaRt1#>i312`1~nd!WO)-wy=JxFkNW6FbhmX#?W{HY~>i$3kH@wlPUc~?WCD0)-w?f zz0WlCX?Mg91ItPYtxPJ{rC83!5o|K=1jT-m zKsX305_m-|(3^$DOOU&JD6q8E;`m))j>*#cjn>~4uCPsdq z#$zyFt(!%4tpX=W30I|a&Rp7%%3#i#qR|^I%dZjZ0w4e(>#g`t_<3}mcgs%cjONx0 zn0L>TrvbSSohX3i!bPZm&!VqY!R*UjW>%c48z|}w6=S*R7H3HvnrRm%0evznW{Q=? zF#aqt!F$KK-4ASU4rpYv@`nVTzsFo}mS#uHU_T&FXdvLps|%dA0+V_l_*4v^5AfN5 z^tvd#{~mhX-SCGKVLg^_>vTGvEdHHy5i8=YI^rPNi4^Cx?-IH&IzUW1G zohfBRiOk|-sBAAAX4+(1A3F!yI5Tr)^UNt|$%J&O3>1GEhbpnDdbShC=wpoChf$lA zHDDVv(8I=W1Uvk%wdwvD*HF=7SAC!kFdiUIW~Bqwqjd^24V;T&1DxZWQOO@EUVbN{ zL=4Yhw5%9fAhp(ntEZeRTB`6pBiEFQ0vg+JCg^{Afy2%M%PR$$h z&T-fOx&^-_cmP&kxQ?op_>CI)*%VPHz=S#F!GsAFNf;5;yi!M*QDcZ6jeHEM`GE10 z+S=E^FQhg&)h$s@>V^5zs~hAE87VKKqq-ATKTDcEG$~`F?mm;U4gMGxrFIg*Gvqgz z!3>{>g4`9S%RQh``c*1~vwJnjVC)I&vgXYEKlJ+pvw!Vob@l8Lz)h|?f z*EFhOgH=I~sV_1b^{6~gz(b}rM1Brrf>wN^=Lf!w|3E9t^P*KYP5hM&gs-=~@-Xd# zk-y}f)2I_fKPgQ!vKyhV*$|f{M~hzrt^%&)ecuA_#mxa5P-f&H>X zUT=H1mkE$g5BSy1SEuv&^^|kX)KE?31%g2-RmDJ6UpE1R9JsBgwtcInq;?xBV8Z%K zR^EXz;s>yZ(@RV-{H!mQSS)o8Tlt>7$&&foz(+2HSCT@&64Z_%Sx3`x<%HKlbcnTe z3c483J;YRL7B3w?7R%rmhM@{}?hxMD?Ak*Cg(+u{T0TlXhy$fT))!W3l@ z3=JFj*>XN2D&e}@gL(D$6x|VstE6A9JE=a)^i-S9Rf0iB&ma#YCm~Mx5XDIYP#N%9 zgwGMFr`!H@*rdD<94Vdet4+1S{$XlI+yDkmbs4BO{zR=;+Q;f&W`NhRWi%7n7|Wnh z;W@habm3IdWG8bD_Q}WDu*N9A95wEU7x{K3#OOQJq_x4YDq6r-T_{}A-gX{nbeUsC zP39HG^0LZ^z~^zE%vcfL&IcmQ9CN%wJ({hBIw+nJqm6l=@h)c0TX@vDn)3`QKjp;p zp_!-e|3={?;MFr!OK4x)y)~}d=K}3*)1*lw%;(4Q-U}39l-Qa^dfL;ta!-vGZ|2XF z&iZy?ZQk>01LG;8mAm$+4Xq2~;8b6EifDtL@O)H&4+%MO*=Rmj1nU%B3)uAGIxu2k zk5OGAyUbh(GjUbSh7DJTxNXWyKb5MyPWQZ^o?=3%!agxi)~DwgySc&a%N7~wAashf z$|5qw$y`j{i~z4ee+z!_>46^jC6pJ8vss-yC*tF=GE}=|pVYFete)Cc)d~@2?|O3= zIVwn`G+E}otYN_)(lF1nv4LGlCy6hLT;A2aE4xNptU2tVmRZLbcmgZQQg|VL_`}bS zx*v6aoxbl?wpp>=Vkpp5sQG+Oja|+6e1?|oMjX&sSlz-&9d+~NwC1!HW3Xq$VB_Ff%#KmE zU{z>m$OOE~D?AhY;h;sAbh5F7Eyg^{_GB3cyuhgZJ8I>Ga0LcWSKaHwnu?Km=v$L~ z_ohOLz<0d^+DLg3y6@T1E0^f6fc=11lz0f=b=Q}8eeu$g#@Wby?&!Ejt$N%5FQ0eR z3p_G~XG_zUEfBDFw-?zIr?6~Wevf+Rzj+;A;S+U3Xxh>$C{iQdY+a$|lshrj#CZQM@)&>2ihme;@RNLZtF}c%%5HQ4>EXw>Jv7WC(nggiSmfDzXvWH3C*IHb zs4KD(yoQySK8#NZ)*Zo=Vo0knzZxI)M7P2hO1x0ID+RgX2+7v!OXQq zxw+Q48SyuuD#DJCYin$azQ&Ymqtn0kb7Vz$Y`{}LBE@e??1<*(owZ`n*;g7&LaRqY zD=@|%vOQg`d_>Q9a*W1t^73gsM-;{8nE{3u1GLVb$L0)F)b#f<&=v{J_007LNPL5M z8R`Plqn`zIzUmDG+ApCE9mpyC{Pg>{=V#FWco5@64(Ul)7u1{RURr_# zCait_l^ZPcF6Afd>ZeVi{N%0m(-;^3f%i$KZ0*%OjCUJG_NVRFcD8!2&2MG)qTbrm zYp)u!hc0<{j_ULb9XJ;#<3sk*tU%^&<-DRkVmVvOHIR5O>h7k`Qg>pYJW=N5HSA z@kSbJq%lVtZ>%~w6IIEK7`aVOCT8a=Pg4a5^r!H+jmT!5-oX1NOH6pW?^uYyhV-k% zPNVD1>TKEMbj5Rh1xs0JcG!=sxqr#~W!^VK{%|~WyzNU}oXJbTS0cuO>`mFQLaPu1 z4NIl~7cnX4hc(KK5oZ{ErLq8TgGO-=6KHkAx(rkzCUX||N%K!=Egh=K`xmrzs(lke zdqFIQOplgHq>KlL#}}iybS9+%R(>_CCX=!_SrwsEZ_-l~^7dyLmDMSB0vjy=9!^of ze8hQ?rG`oCNAIw?m!LtZ~vCJt4)Vw}_kPo)k_|dY7b2=(II0OB?$SFnq z!`vW=)_^}a5NuDiY%bNZH8J!kp3nws-QZ~&Z=m=!ZQt~}&^8`8sU=h$%BbXw>gD54 zCebIEmHSkNcW%)RKB|*;!M2G>JF}g|u>$mOBhJ6Z7RWRMc~acwd$o;`%8DPXc{(qz z&3(f8H120_s8{TB02(o)?mUBvI20*{wyx^jGH}Sb7gsz@GleI|Gr@rNMF`NTBUW53 zK#`swk1_V+tqQ)|2Vh8=l}z;)m+1QMjD2#6#gXYaE#-}=uqjPSW@6@2gV36P7$a)6 z4a%r$gZ-|!qfvWhzjkI&|HUXbkbF3NEBgJMxPpGs~SHx)X&LdZ0h*pBJL#^v6 z-35%SG=JyIk+pw(Pdc)CFtXC4=zRb9JY(k?j9-kbG-It?#r@$uq+=-^KTmySJRPIB z`h8C!kLC|*ESpcUYwVK4cWAxU6JF=}{PR{`;+J?IE~-DG+L4pW^W5r}R)bwx<69@; z8y^_4!GD%ydi3nwP{8eP+1@*h|c@g*EePy6f!H*%n$G z{_I-hT&<^3NN!!%E{xsyHRaTZJv~ArNgfZkZtQf1noPb0`~5fgYynpO8m526l=dfj z0a34#vbFwZAI+Gq>~0QAudkKXqMeT*_pSd0wM=do{u#A>jPbQXZt%7Ut-Rv{ib!=1 zIUrsI%V+zo@a8&%?^bJLd3|&*Lxi!@W1zShq03o)mKsfrQ|?R9^U*C(ZG%P&r%W2t zAUBB4@nbZ~v?IwVbC9K|Q!c{uQ1^N87SLF`swGi6Cf&1kw& z;+m9$KpRL4n3Pa%rRTeObKtZU{RQP`1@NJ{fGIx$435ys_rZU^CDjK|EdlNI54O04 zn>XJWmPG%q$0eUFchH_CZM_yVDIX6RgzliHPm-*IJaqJECh?*aPK>(6u#q2E44U;K z;U#=8+NY$n3Fw`q=IGweG5E~M3#v9$zN^g7@&@H<(%>_p7DqR%Ob0AL9keRCsrn~; zHd_a);qj`1g6E)mL{o^LI!iUBxfMe|J7;{-;(|s(SQWBZuhpK0t zFLF8m^nhw_n)9~DHWhsJG1Pb^C3lKD#b1aO!7*1s?3O}A6}Y4;GdA62xyS*#u2=1W z?UJS5T5}&Va)OA!7@*HRMb%Dw*f!?+47DdnDa{7x9iq$%1)7c%^*U2^J@Kw7Xa{=m z`DkTUggxS9h9u-UW(2t6M*{R6*{4dWxArlWZ=MUC8S1qo1_(d?PWZegygAQ}a>|Aw z8jIE|$Yy}@xGdt=RUIv#`k@!C^!K7p5MiCaLac+%$${SMWQ{g{Ns3(YEF$M~;hXXS zlbpoXd1U!D(j@P{dGp_f#UPQzfC1h>+7DK1bV7*_m0rLOxa4wl3)Z%tBNq{JJEp_%{poWi$iSdZ$tZ0^^aOp`7(#?w~n4g55}MpT~zws--^$7GWt1XdVY9+v$O8HJtKklp;N!*XWcZ(VwGj?#Jgk z#^rSFdc~UoBvCu(gQ&JV1ixMTCwA_iqWYK9e(qf|@&(sqedM{36bZa}BkJREebs!0 z+@Xf7jB9d?3_io;$R^a$W5~=Do^MoMO-!oaJFcP}%cE=zCT`(#q120zRaNS4&H<(y?91_a{qOEhb2YiR*Z;fS>BtVl{_Y8{zj1BGSL!So zp?8&Ly~A%BHq@gE^FW11qkQu%3HA%s`lI(owXW#B{uTF3`zNY9OPZt&MaY+<pi%iG@l~|UxxuK^e8Cwmi__)&WXlGcx4E*>YKJY+uhrvGJ>frd%G5UW=GL43@aRxT_@rP5D z+1t~aG&A5&cS47dDWTaz%av?ypw|cu3xlmHc4|8!<#DPul(F3Zf3u>0Je0g)I2%x{^gPYW-Qpe zi}yp#Ij=8QWi3hMeBlTD6=>R4n~*J1B&#OAr^Pek}` z!iv<<;4AF3B4e2mZd?l09hb0|?I+@=6h)wF@z8ILCP@k9(9r&!auBFrPyKuPd*>kE zrI2RN4w?xxrL#i4IZ?0{?H<&<=IHNXyCbHxF91t37(g8z%?@$FrXcPLd#X$*H{K?7 z*}`}W+N84q3IDm)Zv6MP2BrP2ZPL6+|AM(c7yYO0(ZU=7ta-T&3ZUUYP-2RIiT`@+ zQ#q*t`~09VROrHJM3jP&ClLwLB43E!F}=s>jr?+cseKtAKyMki9arl|pHr4_i-8kW zK_DS`GmxEvb&fYIMDc&%wD2NylYv^|qyj zh|Ci35XnqfGmjSd=1N4mPZf8AZ}PewxJYipJE-Tn-&)QRKf$9uxKrP)>9sFb--9{S|8{A5X-) zOmUB2VZIBWlwXKgxN?&BF{LP-5Ys95B>1KLa{IE=)%tUq-)n=fk@*jJY+ZFXE`j0f zBxq$*mrh-Nx|%&_{e4&6@FnFmWm0%0&TX>I@|fcV`2R+YE~b^VZi}d`(B3f=pA2hK z8)V#;08_zWnZ-U#th+|*)<|Tw91qm>3slq^-#7Kwm5I1%7E9ciZoS4*og~Cc^sp*o z$-iICKDbBV`OwwuFxBd+TRbmT=qp03nUw3^f7#E>IPKA1`K^|bZ7BTW-i4~`aW{_q zNzx5__UuqzWDp81;hI%q-v7tjo5#0NUu)yvkw((kmTh^7BRjG^k{w5OoWu^Hbsz;< z4rAHboB)^HLT|?*l(EC2B$O&)iJSzG!%`<~fx^8`SQ;p_mcbMQ!VZKMxLu?qv>^#E zq8pGvJInbBx8`Yz`@=Q+>mx*PVr2!00mKq)>d zD%W(<_T3Y!6(^4WR6Z*&Sj*-u#)!PSlM}5yz4%VDZF-;~hJXE@E0Df;;%v#y&lCYiy{sb-y;P<9@9KOL+%}eGFnt)r24v&)SFK*0IubUWCn&9bC z-p27o&=uXuvFk45*hfgsqdqLoVB+oYFRIZhijl`+s_K>uCnbDx!NimJRxFlhdbU|m zvqnS}9lYl|I91P)>T%62PilHg)Zbgsd}1qyZLw;D>x8~xm$5L{ec~D2?|PmD>Vi** zd;G|BYt*TF6at|mYc@Qo8F9oQ+T};)JhOq07)RVHud~?P@a&=+ZinAF0KZ-v>Pu^% z3j4&gH!%<1#*3&2qVIz;yy;188t$x^LCwd@p=K0A&yg8bj^cOSkNtRx7St~5cu}+B z8J4;3*Jg;OUF0R?F3n4O3|DIM&8$jzUiTbwp3*%lgsa0YxjECHzMKf4Kjn=V;Q8Hf zzOPL66B<)Uwcr+iIlOlfC{&hu$3zvfA)0O$fm%{M$tuJSr!OU3bJ2NRa~jl(S8A4d zA`r}?wjxx;VmFBLb@H>a9m+r!eA+rMe;GJwGGUd1`ocu!$`CtFW0q=<6aA9#O2RD{ zV^OgXX8BdTlH$|VOOc`TlM0F3)vtWR$9DQ#_ejLS*7X^ncxAQ(S}FG<`Tgl0iYDjh zz@pCPE1?RKe`J`0-fQ8Kq9qm&_c#kYnn;Yftl6l5HafVwRUT%$4*>s?Wn=K`P{%S` z2(u%LD*62_w)}Y?9h=%Gr1$-yiHVyY;@F&fGi?q&_zE-Pn$et5y>(>!8MgT12&+d7 zTWo@Va7+J{X-@h!X$EXs#7_mTrd2Y=O{W})s?+tgW989h(g`ksDmQyizN7mk_sq%t z-2G)=T7OV>wRQjMH(izSyR|vig5V4*`f;lVaZe+(A}zzD%%I3eamU0o51ion{+#+@BfAC5HY{&@Y5$pnh2@6u->xzqktJ_y(-1PUB_k9R7r~N&T{D@^ghs1#Bk#wc z{v=K)&~K1Mg34II=}>LxcjrfHH%;?Uu^{caL-j2+d8)aC?~p7FX6 z`d4D_>L6jGz$}t`HdFPQEcKVr3CmKSN3Ka0>fZ6}i%4T=N?WoC_Ma8=#n@04a=#b) zN~GuDX_&yB<=I8&YjJILbb9xC4Gx;A`u)$Yua%;x%d%#&$yXCC#<>YFoU6keyq^EA zidGhCV)b~pV!a=Ji>x5-f={e5w!#Ru zH6m^5!c=P3R?2$Fsa&R?YdD!x43#HX;nrvaD~i}R$(!0P(?>ecI&i(M z8fTxjdXt!<_4 z!tQLD`_U5UY)oIWqtnxw>*&!$kr#V3JNv%;tIl7@xt#^=CUtDyE_%}4EEQ48R;aw0NifK3YOfm967$b#|XFvblUOJpobJTvN-J+QWs0f0Ku z47N3c{s}yEKdFMIE?l9OW-matMids^jO4q)ZJS>Ya+|pt9hBnS(n_%3=g)U_y}u)? ztJhkT$S#2Wo7jf?Dc4>{b*8)Aff0j^STX}Qi`dcg8?91|%n^4<$^A=dMGl+@Hs(zSY98-S{U9!x3LA_++ zB8gQosN^(QS#^WrN~6_2~s!rS~Gvi_dHfCQio=mTr*g)s)bm z>Md)ODSjqGyJvNhFi^5{UxvMV#if~87UiI5LuOze@Ds-!;F{Z2;+kiv4^296vfsfu z49MroY#G(>Xtc!~M&RbooA#u)7NL?2Sf@}6{RJaLL{JYw6G;ynqo*q?YvN$;^1Izo zA9EBt>~}bCGOE=nd~Oy+5Ho1!r9o&hosS^W@!}NS=lM9{3WIGiVoP%orFWO9?dk+EG^m~KnHy#S{et=E!5joUqS(c#;D$sARA?U zTGRJlWIAqj^B?BebT(>Z-c~jnV}4yuWNJ_5y=~;ZmeH0hl^<4zY+&={NaV9H`^)j| z=ft`E$WZ*QbK=)tif@aFh_4OCx5mV;pPTUtxD&HR3~|#LHgk*nW!EJmGvlV%qLv}o zQ~2KJ-Q1y7GoEU8HMce2C|q{pz<1XQw^odOK%5A*#j&&pz6+1`F%PyjF^|bMt9;!o zGH4{2Y$ajxL8~1CSPH#yR%Lv&4cYoHYLssO*%L;dHZVuWvlk&%@kl(}|*5eu!k+dMb zk{O@YYRIkk8JyE1n4gsZ?gBMRowLKG9=nh8uJO6Odwf0K-}&D1+Bb3Q*KBgH2f`XM zf=^j+{`_fSz4OyZVYI;che$5$PUeh)-Nx09M>07;XFupeHCy7o>TCZ3Y=`hq!axWE z^*$mY+2zMHtzzD%T+4nbh9hRx!f!%}@XEag#O`qt>TwAen)uI%_$A6mlK zrCU+&?%ZJ37!oIa_n;!v-R?I=NYl&UG#<^IxuTttD^uSE8nKFmSek@Bfi_6{i# zJ3QWjJQ&jLPsDyTp0V=T$O7C?2BR^mU!R1p4El=Z&m( zZa9i;4dG59vft?Z0D4y<=GizWMmIEudW@CWqZ3P_1>mA_ca{cq(8$d_)ELrruMA{E zX-LG`Z^j98CWKiKxhU9tn6(zTFi*b*1n<_y^UsTNJLs8_ohqoula;UsMR3VFf)yUU zLulfZt+EH1t48%-kaeKbrlID8$(92T&o$xeUf7Kcz#|!E&&T6jjZ?w@3%s>sINu|v z=1I?Rc01uYq=SBZTo?5#@bmFJvQRIw1S;)D^?OP3dq<_II0nTvEPkEKbrln#|FM!` zHv3%9Vf}$#hxMQIdaP&iG|T;2Z@~K7yb+ zEy@sn$z@5u)Ze`twJ&HiHXUT^T-p3V`gKpo=~wZ{ViMH)B%9@uez=BeTRe9Mw6rif ze-4%hi&%pqu;Ntg%L!+EOz>kBYbY>D&8Rx+t8COf;u?pa-Hx?N@B z8hiJ}un2aiaddAh;+hh&?$ut6%|x7fCiS^&Xg{JFgUCcfixuzR-~6}tT-c2GV)3%# z2M-KLLHws&)|z2fkouHNubcu?=09uXvONawKmxS0>T>fL7|JTpe< zIA#aO>F_GsXPH3}4k#Bcr84Wrz=YFIxS*pFaa4cLr-s9sg+y* zx}6`T{lbX9W_maRePZqb)JUi)h(@%RnNyBvuUfj~?CAC;hVcy=2w(`-Leb8Mv9H!I z<3GtCZ;;3)d1xMdRNTu{4vYwInfOXQQl)2`a= z*jEyOUe)KZox(`3WDCD#{SV=QG_CS* z#jx}sRI=wHcB+?au-3^HSaWg-MN?(=?{g}vD`!*|R&J?Ss`2YiMBW6_%61ln--PB= zHrD$5f{4!7L!T5$*MMVuROf5~^AFLS$bLhj1C9b9-TB>AO?{k;RrAI0yLHalt>0&eV zPSX+C7iAHsTM&P(Nj5~ARxVC&WzC3mURrL7`tgp{Tx!KtorfcAmJ=9fPO1t28a*Ex z4=a)HxKGKG2v-tND_wd0m9qzLK905`*bE;%3oJ`Gd$4oGnSAE?er?Dy;UkR7` z7xZzu55lc*FNk@Guofr=ZaB%Z1oitVvd!Q-C5*VY!;^kVfd;z?k-{6m2Xje3mIXC5 zX^(!U+=FVdE}R1$Q|KE}WH6D`J<6(ou8}Hd7w$>_kWtOjKEufWRs!k~N09>yw#VT~ z`qU35-{?HAGQRBycm!V9XT`A47%I8FIOfSU>;oGxg**p^vr`mZuil?@05hzY3WJ7y z$=C-eiWC}t#QF@+a}V;!zS8a5vrhkrrBS?r-`Rz4cpsH}GaTQd$li5^=ctPFYpMQq z7Dw($h;rka#f?dD9M{}{@3J%X>J&I`$gigMVq5+jP3Ab*1ElskH~br|nzJrDpe(X; z4p!v^@1Kx7|`^$`Y7fHI*3v9Sxr~nvbJeax@6b!9Cs_Bk7*-O0d zdnqG;lZ@%eqt|6ppB|=p;2*jF#NW_{a%}JgRc6Q!ABTSXTUfv!=vRmeYCMlxc@!$ zHt#ypM-$P)ehk|(2>%v7ttiS)^qtJOTe-CV>?mqJS_%$m^&G2xb)?PBoUe|!+&%8u zNAbk3`mOdf_p(-8Fm0I&^Ya$BP-R4&UZ>PxA85@Svlh@1O;?yc!UM6HI^s+pajnTt z9}&|>U=iRR5Lf235OH?sKe~NLT)JpcbR7d*lSd1IZjQ4I_O}(xu6Yr}`u|!ZIP={M z-%Wdwv6rq8%%|^&+51~>5B;B`p*>7ftz7I_}%GCXWBQKp-@0|QVix!Y-kG){j!UjDp{K@Eo9Q^+c!&rlh zv&B_yT`TCK0%|L`)(ak9wws$}Zq_~WK!|FO-iNq_6WF^2?UbI!?XuYwMmx3CmmV)) z-grBr)tbmSHO@7wn>n4>c#HRzVtdN5;!OGVq7=O4)Gd~TN%aq!)UuS?DGVc9BLsC~ zM}Cx5>DO~-%R7at7R1pH4PI?~%KgH~>8>0}FALHt+o8dy++Q40yBg#Hnb~jcTrZEw z96rrPC`Rf<9G6u)@4QRfz_=P{qul7;{4lm>-`PJllY44xCNm;7Xhd|8Yk?{qXLA%L z_*0x};`Uja)oQM~)~{`_ltgCP>9sIQ*s0!m49vQpP1fFtPqAien+;dDygTT0K0WeY z1#Pdj{bBI4JDMx*bN}g>H$<8X0`dgP!FWK;X-@DV)-v|80r{Hg$RL|#3_F#91`}#q zAd4@^%~F)6AiY0~+SW}iu<}shnraR74|DShQS;z1^97r`dj<0$LpLE>mPy*Dvops& zV8c|IKnu}+ev)j0OdmlFg=ztjO|BZztzoW;&AT96hWe+AWj1$i*dOe})=j}X)^Rty zC_Hm=r-8Bz-c8Oa8yfSj;E%C6y5n3u7Y3`n`n6#AuRXjVvT|M14fhKL(laOf3^dw< zk5`lVln$RdGQw&uXtBAXgBtSEjM9)&?x|I7Q8L^$^kQ!VEO!moi(dU{vKG8EG0i)x zRf;{?;I|3aiojbArW9o|_Fb?%ZfAlz8?U?ZdY9JkvkvpXbOiM_O{VR$55QBvd1;R! z3+E}!h&Y`$%~4BEq*4RGk)k;-j)}RWREHJ}RxtZ~saO}H(6hrAE7mU7x4Mh#+ufz> zJJO}^vv%`+tGf+-ySt5jN4iaYcPRg=Jg!)kW6HkPg^D0ghpx8)xt*xwfU&iGLT3}g zZt+5J@-1HQ6-0QP>KzHf-TMcHfq{_jU(vELrvY0=^wy6m0v8-Ns#hQvd0zOHv;Hl4 zM>*g?Df_1Lkz3wz5n{K^h`ZkHeKwdIO&KUQpLkbSUt8)9BM7LsuAaD(3J)#i?9gk%QVa=C<3Axr=%wM@n6fAzliG z2AFw`UX%J=RKuaR|1aPnT46`*hTrf6mVPYs`zd$T3>_P18fh^i9%)4;n!oiT#V=WW zey3^dwJcqv9d-x!gJ9aWqiQZPsnOEr!v7|{&_}>T_&MG?#=WJeR3%Z(Q4eg1pH0wt zhBlY&=XiBNuePt1xcsNKP35LEo#)R2vrBJIKBMXtp)`(EEFFxXD6M1 z2|J>-zyeBu=zNtqYaOP~?2iBGQ)e&OEIm^UT0y-v!GQtI*+pO`7bTqD&jQXKRJI07 zj`+yLa{<02m4Kse&81kU5z#shfC_A8CI?`7Ggb(!9APA=6*C!YBkRZ7gy8x8(1fI; zSxm-uc6u9*;cfS8W+rysujMi>`+hCY!kO>a@+~Z{z<$4G0k)lr-IXLYCC9jNz=H9x zd>Od?UC1ML&JVu=MF#=cnn`U-)^(X|c@gvjKIv}Rw z)?9VT@{(m|I!jjEAZy)RcQNMf4{_f;W-#f@ytofmy-umJGqJBV53}LVG(W5h^N8K1 zx950FN`8>|>P|&G6D7@2ms4IK2XJ+2^Ndxu0CRF}$GqG(0q7iyWk`p*FBacU@JIGS zMhv9ryhw5cpZ;LC-`VbI>%U0 zp9UUpiT3#l(PoOEN1KhSb)bgGFH(l+N+s+wsc)axTC~89)xS&@zUe0+r2_F9V&Jhk z#2MtpS>aMbmY-+flov1Mk^h>7849c_TPcu(RO}QK^#O3iOD2Cl z`1Rpt*!A4L*~pN)73@c`s||PFGocNpRjgZd1H>sHKAmM~TY#%}pVH|bD=QA07nX!e z7wT%Qs7P26F2I)U!}lr;Seq9b)7$x|NjNQB0mRFMx^c*q1jp5+cBD$8JqktM3Zh#T zgWU}ZoPcA}qzUWGCVA}D+pW@Hp!o}{D$2m6v4n0%yXVL5<^=V~I6t=4!0bw|yxso2 zPqy)6bB&$7(cWh3o}RkiU|?VG4yZ|9(7PMeHrDly1@3hl!z_#St?S*hX_Y{+9(uP* z0B21UkWVlWcv@S_)oyC^I(rBFUA<%eeZ37m)IMQdhP)tF#T-0x()siI zuE0L}jDpYTqs8g-+9#uf=CmHvFVNR1=A;do(0+DJ@Y45QdUdn>5?E0*S0%VAeOx#8 z%RyJL81<|Q=0E7#4Yt)$VqVoFqpMRdy}se%4d7cDFP3%E-B7d0X}?X@oi%&)zS0)X zix`y75_DCd@|=$NZx17W3I9r?ahEt%WOtBXOW*!zqC_fdue#_V-?Qhlo_2K?T8lS- ztabQP_2etu0MrFp6X`t^XC@yO zb!QM?rEym6sdh2(ZTLxZKKEms7o;BKK&|yJL7mX-OKIlUoz#OLCS2->_yfH*f5p~8 zZl4KyS4W0%7e0fUO60YfqhCE{Nh;@$jU|LOQYPbmWD#Sr;&EhBU``eg2k>vZ4&zJL zk2uRamlH=Oi7_SsMqY)adye=_YY=s;4~H; zqK5C0;pCiBFv@kP%qA<8e@wZ@?sK|=U4uK^=17xo6ErV5$F4!DcfqTJaa}a8W-1Rj zxs7U?XG^8h`XSO1LRI9tts@NjK!Z?7r#Aot?g){b&wJ-92=m)O@hx<$-u)rNn^*zs>=Yu3zDo?XL5n>9Y?UU%ZiiW5(8KR(&R z)u?)7uSJI~95H`pUnqZZ$y?fI@@MncbS7i9ss2uj|UsAWWD5lq%Xz(&a(0c2Jw3BV}lmV4jZ)>XZ(1O&=6MI zh)A~qb*JP&_A=NqYy74D!9G-lT-o9(ll_LVV#G2zJJ}T8w7$-2CqB23#xi(S-`+Q3 z5F3x`eXiO2MzX~Eqb-4#z-ZYwViIePZacp%h~m+LC0AF>@aYkU(~G6y2ZN>h zfK}a`R;T70w+9~V!FKiH6WoGgxhJsGzc_H%&-n^AJW~D81}jFeQR$iV7>c^HKz{XM z9rDwRxSMHE_20iL+s~?&Kv}U}-XUjie19WXwPa&pV}5(SrznuK^{sVzOI9iEoo}t% zrR>1^pz=P}g z9rP6(w(BZzPbUl}+laV$bOtIH9r-nCnw!mAf|plpQuHTG#-bA@gLULzW^6CL&u#qh z4e7YXylkEt!L>qJWv`XqKjV_&2Qbn$Dc4H^?7Hg__rFt~8CSgM>y^nK#Kw*4Qz_Iv!|Q*f{D}K~2!u~kmMM?Ha@n*gE9e|9jnYh= z5}8;WeNGubq+~hjCD7Iptyt7WgQzdKrpp0Mkd;=W>e4cqR%ETwJZX{Cp$ePfCxnAx zhIG;lS%4X`8*?E`6~T(lw2tG$=^XFjoN8y+3&Y9Szu_*?svL@RI(8t=+f0!V>|lHF zNmvy+_1mc%e9o?gm?2dyI+)fpchL+<^P@IYx-{AaHvCJ>UO&qeEom=Oel>V!%kFQn z;EkXx7PS}o-W}ZSK6S{Xem;I#>6e4K81*S`D9WWoF6K|TP9;0`fpy5r_qoT8@S;G+aNd68DFCB(ej3)n4_(9|2YIpy?e-fk zvuja@*>w}_al!|*pGv`LWo8sjtP9m z2R2~dxJk*!v7B+#5x0~M7p1d%^kI{F(EGG5(Nz-sHG{U!Q_3Tw8+UZlC z!LuDuz}gB6Z9U*ua5i?t)MoD_yb)EG)i0nTriEOXdyeBba*T15PefX%Ww04%T21Pg z6FJDvn2qmR02H9v z*z+N)tTn{iICdC=TBfv|!8N$PX9b)#%6xyYOmq zn8F>1g9wf+hc3!HFn>ArpMI3f(lwvZ73h>fpw-RLH#UZ$GZ603_<6KP1D={{d&KE#=kaQ!!pNrCYTNO_io!Qr# z<#E|@rD`6i(Wo|2s1teBmE=9}l%YLZiDyZs`czG1n%fMLZBc)>6E%nw*{B}Zp6%L> z8SQ{(88tycdy#}FyO4FTa<~XFMQ#=>73BxkUW{Xg=vIs`Y}Qj~H8$HT*7?x=_&o9i zIQll5jG0SFz;1Fr1T;cu+9zwFC~$bAGwZk!s^RYj{ix>SN97(Ds&bp6*cja>@OZ^+s>fn6MOR?WLuaMO%SBzMbR8)~*<9)mRK~b-ejJ-Ab}f578H*>bLk!y_8KIJph&`OV)pl;s&~lyk6JOAM z_Bi36jZnzguFbcYYbcAxk}x(0wWXF%?!ME`s~=80q|IkZY#p8uG2W$Oz9jV#8t1&| z|G)q?H=B^D@&UEq9pm8fM4Q2(pm*EGnS=5sNyEjY`iA!#r>FOSZ=ARp)VpsQmxt-h z*W!9+2m^0OpPQZLVt7LWTIDD>6;mygFmryaiSc87M$R{VS+kciXv-pE?}mWO*5{sf zj32|mi0i$XIIKNUAOf?fLsf&0EBZIpDTUY2(aD$#Dm4vWBPxh~^$aJ@b6+DW&B~6A z=nEt7VqDG4SyrI*99S-uxSHcUvcR8577)unk1R0zVeJc8gS$Ei;O;rk+uDjdKop$e1!;75(;EnT7ZT|UDq0$ED$)$Q|tmdAAaSYO>fu8#+<5CGzP zU{aAB&!u9nNrTN2Hn-L6E5_)u1jH4Bx4}{_wRw@@p4{w;0&PjJNRAK{m za|OPWc+(W!&5DBEC?cAH*7Q-5W986(dU|kQV7uFK)Tvl7r@L%j5?&i%-eeQ~lM46SL11sK&aU`$WiGDnsHI4 zJ~~O*3U9B+6UiLumh|aQ9>#o(Z^Y<1|NqM9Nh9ZO^aL6aD;2t%i_mY9F?E9U>FNEG z!OXnH2 zJcikizKyIlj5!kqn;0ov%FV6u()_23crep0o6Pr^K>2XtpUX`dZ21x5omm{I*tJj% zXiz!uDB#WEXgujc|0{qkk+#&fjY`kKW}>>Z{vm_<>j_Sp?$IlJ?c1kaYu-N1uBY}} z6?yx#zEN0M0rX;exVLgf#G03PaCe^R&}!%}?#|O6$`}2i0xWD^@d(t1X{)YyBu~se zzm+X!VatpKG5tc;0lN^9{2MDC)-G^;rtrud=+qlk>qMpks}Hk$N~{d0YEnRJ?nDlp zDBX^6*Bb9m~%3N@sRhQ;ja;g#)E}; zSu1a4?6xKhVEA2jAD_rzkC5Y>Rv)jGo&T~y9l6DAE+-s!+|{Lh2| zw#sBIG42nt$J!9N*y}Z-<|gT?@^+(IJ|RSDpFy3O(xW|XaVVTwxD#fVu;{@5& z8M`(IZTC?DnH>h=ROH#Fg&!53kaU%oNQJ1`gdXX-g4htQhY00$9mZPkVo#)56idF0 zaC6wsEL6zh!+NM0rP&jfW;)-(ux9ASEvRcqei+p-CtldlpQ64;WUDf8~2F|LgaVjWsYdZ5gy1IJbg!0Bo1G zGqL?ZFn{T+uSD>XUyOjR^D7a2+GFwvOFz(VSkDyeA{iL5zg1i_fd9mgA#^Hc|A%i- ze*)$SjIxL?o56>7RThS4Uo-=lre)b&!f!V`;?4@^Eh&RlXd5ZSx)6DSun42ssJA(_ zPryDaY+EjBRDTN|DcZZ8xLm7sut3q5MzN6Q7}YrLgH_6AAy(8U2Uy=zfxU_nNXA}C zmVp1o?0e)bw$xy5Tej~}ck$8nin*#NVLF|&*e2Nnok1ULp&28)d(r2_67i!?$&<4O z_Q9{t=xhz4KY53yd!{c%1wT}~5|slAxQ&5l0^5|k{Ld&Y?t@?pOU>Hy|d&P zc-GMMs!=d1M2(V)vz<`XW?cs2*&(-ARqXJ9#v-b6R{jj1VIxzTBifL4=`;_jwaW(Z zPl~B_hLW!^*so5P>5M!pH~gKTo*mF$kQr2r^y)J}b&n&H+mF_DM|}DT1ItE_Yb%VSd*r8cx(LSFPOHjTTOIV@2R<{RkQUX2=vSdW9ffFn8B z&RJ!R;%H$ThYHy)<=tSu$jy2sp`QJzD-YEn7fPc2W+~ zJ9qlMPBlz^l4e#>-_f>ZwkflS^nod-Cc`DtR*<6eiW94i`l#{bZ*Dzj_*!1gOBYJT z(PGqL|K!S%8L7day0ee{@T4&tdzbeM-+|UmoJYG{4dI*`VvP=)u1XM!$vL zJjr0)7Gr-z6Z$^+H1yfn_bEq){Au`~UaAm?5d^&50uOm;2DK_VEed2IM4AhvNM`o< zE0DJ&RHyTjW%yi1Pp6kh<|kC@V%Bk4X$q0Qg*+)2B2a!2dIt3RKYhp8e0etRfImUev8#}Sq^r+~I0K~Jfy}6SL&W64 zD2>ed3s8N|3Pf2~(;xv^8X33>{Lj@)yya5DigKk|e%1%Y?H1o;>{qaiD}Yt+b>@Tz zfLD_p{BQBTpnVhK$;_y(O_-zdrt4sx0C$U%l0gcnr5&jCZ7Hzo@p^sgt~1Pq$RwhZ zFJo-E72{dc&~%_&yWM7K)kaV8hO~?9PirR8 z;9x#^13yMB`9vJ`E#T#odaK^SkL6=uG(Hspt-$vX=9L^89R%NVvao&EXSk-+gSEfQ zvP@J-eePy3ZXbsI+7FyluNsm$OL9CF3grgZZ(*ng_G)Xt+vzn#`Y;c_G68NdYAnP; zUjQdv?gA2r>r>vMPSS=1sX$t$h)oXo@8wuBn$(q%`(P=(m&#vG^|2ZHhY0QsG4x`@ zs9XC56k}ev)>W}@E&XeDpjldo#(RoxlLE{f3t>HB^cV7@k?SHABX9rnB&&u>C0HOj zXsRC=GqEiDWpQ?@0Z}fxk-dtM1Ht5E;PV^g1b566qs#}6b|oS6sP z!v(|}s!2at6re1L#jopTS4TR0#lF`A{7F{5;Dnx)MaB?;hiwcU$nEZeu&Nlr=A&p( zd(tyZig%6JUYyqIED(jT!N1*0IGZ0!E|wfDTZSyoH%81pzP|kE?@Y$S?LJlqe7mkB zvcrZ9u-=!>#q~IS?aj36(}TmY z%2o&2n8+F5!&?7ZOR#0zXGVr=SbAhaefohVc+j?7X$4cl`DoiDJ*&vdCcz+?53#dH zyu4bH>{{nscT(wI=PGkvTf0sK-~3gf1 zcKuh<*MH}qTz}bDuK&_My}n*8Nc^+w-<`hx!~byoE%3)GlLcvA8Dz>JlgOZ6onSM` zBb#MkCvkmda4x}N=+LP%q3TZA6a^^(qn;iKk>H_(r%9$o7`j?r91 z^=Ak0AHO)}$^~Bsdb-TM2w6(>9UrA+#n{)c2z{c$_eB*$AM*Y&N*EA-H`#K-y!tcL z(xHs4l0*YWJy;CDijB}W=As6*E@=TTsCI;7)Jn_K?Gx-EVg#gZf7;EBX|&Zs_b-xXos){rr$YO&}&aWmkK_ zeJWOs`QR!=gnI5+0WdPy#~Nw#eTLESN8@?zcWo+C>g~%~$`>2P?D`5HHPPD)xOzWr6{TrlW(#lc#fOvsvHmepoYu~e^YD>Zl z7%#E)N;LiG8_=T24tHL5E>c%IVc&`~#s^Pd1K+-33$hmZ`rjYZL&3SPRYPW?+B1c5 z(f>Pd^6&rOb@9yqTl5eA?}Z6c9M-G$WLEnBEl*DUznjPD|GgCdFX{D9f0<*XoivJt z?%yv>gT>-f3Rg(VU9fG*@5~OfIT$1AQAbPaXfUXI;$I6gDC$-ON$G=y2U;`7F}kU< z#?xaj&v;#(iQNd_54)R zBR*tIw;r0KdCYY`O=lReSwa{ZCbpo=s-QcvDCK~1Nj=19MQcPSe(R`3IZNt)9=p2h^P$)fKd?@1*u~3EHMhm_|%u&hBj*;Y2&M z)RM8539gDgel1iD_j*Z(PV^RJf8s65yLP?BEUxDs-%GC>ux~x~ZO}cwcLUyU#QP0+ zzcCNoi%Y=0n6?a6n=q%tDpJ{Gt#4(pt>V4GT5sbpueKqwrB`oDu<9cCCwWm`{mX=r zw5MRJn4l&~DxiW_7ooGZpgtO}HURHKiYNIxsknr z3j&Y3FZ3@AUg+=aWjm{Se;3#jFsQdpZcO`($)T@WK9Z8ZY(V)(yQg>jf3kZn(!hg( z4tOl2{e#^@SeFrQt@*jANMb7jyJ^(D`2y9Q%4SV5ovJGi8=b;a6kn)#W+T`vYZZS9CpRtvAM7*((wx!!-LB-~ zUwb1yU1G0SD;&5WYfJqSW#+J%`QhB<2KCSJp0s80XW(2O{Aa6D<FesIgUAJ=h>e_8rvIga1b zCOtp6vL!pgjRh0u#@04AFK(*<>wT=vMsvs0aaun`nQ`}wN|X~Y4bRc;%sy^+qGEXy z?h*^D%twqUKU@}_*<`^x3vAEKQVtAO0L!~rgf6_t62S5<7NHyY!Xn;Zi03|Z z*Ff%=PRBh*Gu`S5VgP1=)t6<_?Gx=iPzrbw*Z}x{SaL+&^C4u}g9m8IO7j3inhx*s z@s8VoC>1_w!2be!d4R#58A$t&`MB=lcz!w#%SG(IQtu~<8v)!w9OI15;y zxUmTl8`O{V_>_M6Ri(eP2#WO65K$t`<#LRLzd+oz^Cuj87vro!{aR9|Dk+RnP=6;p zml$q0t2`?UUmyG_ENzM^cj3RTNi_sb==bS=EQ(*;=T+DbNTq|hX;i)`$%d&y;Jaxa zcL`XdX3?OY9yi%4!CFLn7#|HTmM`%L*mM7&d9>4dS$Z6N9&rCGo zyY|A8Hy~?HLmshC{lSD5A|46NI~=&*CR;_AuKfQnt)`{#cM6?li|>{H6P0vwMXm<< zu8gnBZa2%zU0uc2fe*o+i?r3 z>ipUFbyM~SJkV+mjA0%*)ubD06rJnyqFEm9WRHHob;mVz>v{F9lrtzQlnF@{Tj}4R z`@IF%-6!iTO+!V?9@Z9etlBbM0H0Y#k9bLYSi87@)f$occNey}YJ)m$(u{j+0<#xY zT$6d|4G*Ax`9ai`&cpmke&R(OVZ_9@Al?PA6!@umh+`8=t0-*tYpd3a*b25XThiwy-u{8k0+Ya+=gn{O#8paG0H1$xCAi}a2%GO3#|OrDaHvv zc2zx8iCm~i=D7=)&s~demQ3P3Eg>n}gDn|o5d8m5Qd{{05^GJwcA$RC@8Skkj3+-G zm59s5cm{M2>a+kTvT=k1&Ian?OfGRVhn0IK+58V zF`YUwj(iDeCaSMqC!_uX?n1#anxJL|2br0JE%<)l`3rF5a>sls(xj82}_66dQ2PQZc#(d4I zyopx@<5ee6!v*%>Q{%)9d1Bn4K7yrhoCnU`&;lh2_3m*oOAibEPVDz#KgXKV`)?YL zB2V0aI4!V`@i4q&*cPI$PuN{9u|6FltK{3+5I5!O_26Z|DkKhIy%{>+I#`J!xFfXh z;kZ7U*;+o%|Mkorm_5k;of><2_3o7A@5bH}=<8Es?;jGTVS&b8WEqH^O+b7xii+UF z$T?_jS0NrjWA77aTPyINQJzaZ*fqR*%|Bdo6xRf|rltnt`D_2=nt$?Uu3C?)YM~c! z&5pmj=KO!S<|ALZX5atAHFfE0zJY75!Zme>H|-wsHgHPojmWLmgC~xEt&;L=#0Lf4 z3C4_vICxR4N~C>NR_UNXdw6h+1lr>OFB?yS6LsQl{QfX%9$*Y_nQqG^`!$OcElR+*zNUFQQ=^1I+Yha(eS6x=U)oYudO50|@*@SCP?;NbOm4IE4o3pWv-zl{cbD>@ zn}X?GTsly*dL)f*)R8ittEHT zXTFKO8phA*Hc}*damscy)6Fu%jaQ8&Cx zeeYX=p1>&B!&d`c=haJ+Sy+D^2$Lb|N4%N`PZ?LQ7Nrt+zVyp2cD;IYlIlo41P(u| znPZhsa>nhS$#}14j{!64bDIy6wb_S#9NHVU^=+l@lSUn3p5OrC3d@1Hd0QKXEK4oR zEaL0PS>3wk#j!=XG9oyWv3F5ZA%llO2N&q^R-g+|!RqUlOb_csV;|*J^U&wc2eXIl zQ*|-41;5TP#}{HI2J zX%TIPkNmeM`{Vf36Z8+EqF6iCy3c8|cm;2Ed*+o_H%w-=WiQzxqQaXa%cJv_c{z-S zNJJ4&W1%sOw3*Lg5fPiEaqSh1l}-4)&-kXPS^3)sgpmR;!AW~ZSE~=}@hXZ1kz(i( zaCL>EIg<0llbW+b|B&wCC$(zVlbYDUJ;WYXV>xjHo+5I&z&EfB<&#Cb?(#0gk59Uo zZt);cv}?Co94~6%1}=FY+-_8)Z?`GJ;w}l?ZuTO$NMzeq!?rC75x1Lo-cvCP*qcL~ z^8EqIQPHc_&_gus{rPQ&@`iwA1XJghNjRbUBt)LBOjV_C3*GZ zxU-Tel=lz|Ct?i~a|T7{NRWWiWf-2icJqs#AUN z`}`G!U~ZBRj>?T-Ns+!M2V*x8v4zfauZU}reh(k6iRM+U1tx_0!$kg4{Y+NVBULYe z=Ejz*h7V}W-yl6J!#h&zCS)0zubA&!FXJLLh!NdbaT1mUl!7KnFFd2aQPB48khd{g zS$<@l_3 zUXz1v<5B&l?rW~Dc+fp|wBT=k7}~8m#Hv!z)BtC4RzcKO{eV)O(4VPUe6{U+-eZIJ zE6yt)P!=q{zVnBj*ULYYKb2>77W>wgKjr@X*ss0${uOe-tA_5wbtu-zJH0~{5z8_I z_&i2DrO%VEVwCnEXOGat*T&_RfwPZn$vsH#hQ|$PFU1<#7_jv@7T$gwXjciInK#YD zBs~n8%YFpjIMo0M1~GGW*{Rl1K|J;^NwI5>a;@UBwN(rxPM_K%f3wA3CU#OhE;-q+ zppFW*#wV$-P-M>_-Jtwf0X96|sGvR+qEB%-a4l*Zc=hUQTK_sLD#7#WC&(gaj?Q)B zy1myzHR)Q~_uI*+VqdprogT41icV2&mHcIv6&nMrdU|v()15q^+f}*}jDmy8s^Oow zbHdraEAj00QkzXcb`mjJ;<4o9#sKj*pK|~4I5O6uFT4l~*^_1HpWJ6|nMHzoj!+d1`;{xp0HYk@U{Xt~d zBX|0F%+*^1g;rrcwhp3&1F1L_F+@$n`G{UDl=X;_eWEnr>X}?45q<;49<(oBojpDP zq=ziaHztMQ1!#S)8=HLv>IJCv&>g4^>~I?o8Eg4tKMJ^J!xorLk;(b697!#%!KGI} z9EKIv2FC7tl!L1WYu1PyS^ab4v5HhN&Au34^csy`evRU>@YvJ@G>gq%Ui}_2T=i>%6Qa&Z0W__)nv`NV~**3W1RBF{zr?|_h8t}b?nJw-h6t`NlkXvK* z|EoXS{t{ySeLxaQ*ISfZoh1aFTjXt`+Ikwj<5B6-fPYw=iY@8*vJo>@A@16ylE(J$qZoU#nO-9HJIC0YBMbXH)V)4g-|OuB`mRA zT&BF>Laip(j+WvUn~Z)951!_M?UzEE9oT+U)VcE8_KZ~%>M6tzL9Y;VH|H#c$6a6( z(GyG_mp0SJs$AMP7710OTH?}CEp;j0)q7hrIYy*ALOLY7hxDjuz$0s+dIHz6vvSUh z*c$ZTsNeb$Cg>k<(EbYmTe4vPy;^0E_UN&Pe0tfaV>Vo8fNC$H_RA42Z`_a0T-9!17$+5bAKWuT?}IYvw%W)S#a=5Tcr<+E6h@G@bhEN$@p* z5H6NWA{J4P`mot;;IzS-VPbCh?hS^X#jqN5@>}w}ATq?F1z`HKx@- zu`#V3p@Us!vRT7ZTK}hQxA`-=5Tpu0-ZrU5%!LX>Mi(L;lVB+)V?Un=g9WZvd*L%A zVh^FhP$EpvWG0pSf%jt+*`Tp&F=9M=wI$gUA_fN82S3Di##7OwPR@6fJ<4ne zS%DEAv5w44^@%c5X|o|3a%w|MZ`qP7_bS(ReIl>2?Uf&dU$&-`SHB;p*^RtgUg7NG zZJl0Mg#osf0XA1wB)cs;O0C_LW~b@Z!*N3z??=BuuG&OcRtPJh81Nkc@c8l zJECc(b(bEt$Yh3Tor1jyes%bE{D;7eBKsKCUuC5O+EPY-3bkj7-O(I&kK$9x@o)7> zouvWXCux=DAId_mHGWm29y#_4f#26jS*7vVrg#H*l4Z%Mxr^``JQG$d;d|;)r#F(; z2!!QCECpU2(KwcmilurrJf89Gk!=M{IBaud8|y`p#vWiE9Mgx}PYoBKHy&%iGXT1K zX7hSaONWeVd&ulEA!m05voZ$g%#Zu9gh+#s>~EU)^y;S*z$kSGphLLBdH^bf zJFExOS+crB0mo*(H;AkZ$5vOdTOU4wJY_z7Bh*6P8r0XFJ~lcyKh!V;9tq~Q7TYfd z+ibraEW1*eGkz>=Z{E=0*t)@I-@id{=r%HY^TwWy`!{m8r0iQUV!73S)ot}o`8pQ( zV%a{f+Jw4JS#3LfDX@eXc!!8DcrdX&^Zal&IMiH~;4AWa zg2GZlplKALEF|-SEfq1~yu4aIJ`lPR?eiM+y9Ugc)W(n%1Js33Y+*Pa6BF6!wG=VR zpxLR|+u)04tR%AG(YwJFCB7hyB@`pF4(%LhwkyyO_&sVP#A8cfl@fx+F<#xI(Uu)s zw`i=Me5^_l?{zrJ!9IdFRG3!tpb?3JZ;sFofROnQ%@__5y zfr3>w2+1!#)nkXf2EPePY-5pAAr-obWYt#M2sy<_Sd|Oz4oj;5>(#rH7yC&67b>TH zn-#;Zb$BX`=rwwE55{t;wUDOG=14Xq%f=mPFXx_{;_1D9#i>93XKfF2sUO+m4@HV_~sImziS!P)j+ zXMmLDIGn+$6w#ZH_D#C-Q2d5>X0^`e10$?1f4L4dbJ_5X zHp>4KeRsQ09Q$nWRA@i?gcVEEP)>Vf-Fr7?4U-3#wFGfqaMFr(@ayc{ceCs^#pt<0 z^L(2@Gl{;HFbBdLqKF|8PZD}4%H>LN7g|W6F2OB+Lhk8Yapv8P?j0*zpc0O_cXKDF zEI|#p$CXuOkE0&(5@;~(05`?rO2mra>=?>z%WZG-6+$71A1Q{lnHOeNELtTkt$4~U z9R1BT*VqQ!vB-UHUAV(GdQC?tC3fJqQ@>u2{{GCkV#K)OO`{S<;7d!!jUH2*sU2v$ z-GXuDT;i+a3XKPMlyepuQ@rTQzmKCAcvv~}bp$D9Gz#wwnb6gw3|Iwi52$*9o2geX zKF=L_n#<$}kd2|?^KZv<+j3UCubA=Ma=RW-ww~CfTPlB9`YUK`MQgeVU9E__l{k@uK-!=3$+aoDt6Xg7;siisR* zR%WBu_O-r?J~K6jE#@=hm~ANAHXZ*MSN#W5Kjul^_K=(Va1~2@+ULHyxesmDU$)cD z9b6@x`?M5_=7O!jW(%?4yBLLk7`MTeG2_Vs6PZQYX*uoI`F&mXvLNXS9pPs5mcN&8 zi1^FZnQEh~ zgV&y^n)LheT#R1Cqt{~|FepQKridSb!;{r^SG9Rzqh_853_jAXkUqh~XuWGI&P1Ak z7Bz)#z#OvREbybD4DL!uEa7vHCXkiVX6nO?E(?7eA+H{WY%#s+NDwZ^VBtN~1O~?C zj6n+xQ3cVTFJ0%i1npg1Fwoi>{GDR*d=fBt9YOmrX&nSwKM554Z}#3iJgO?|8{PZV zoPkuBtb`<-N*Jobln7{|A}0w{sxk;cQD{Uf4BeF=8bC0JAr%HqR1^g4Aku;@-JtSH zu*+tO1Z-`h;#&pMEh24ULn9(uj8%ao_5Id4Cx~{x_kPd4-*f-Em1k$Kv!}Dq9@bua zt+m%~a#vgnZ|m6J++`~?LUi#1IKdA(SoFk{(k=n|{h)BN+B_wN_1#Wth`B&J^&_3pgQcbkN%E0+uX^fxUq{VKew{ z(x=klRA+Pnf19llAn(rxZ%zaLS!^)q!KoDNvUgsG{))&lva!Z!Ld)B=>_T8(^W7SO zL55J$4X4MVb{%BKiT)VW{N4^vQxnz~mY!cF%o*$b$ZM#>nhkl@Wl0FdpvG+9JfJ#~ z5p8@@2$gn@Zz^B(tif=UFUkW4j?Z($PG$#l&nus8Tr5BW|z5ScEbvcXO){lFLpcLYepZ%7n^;3Jp4P2_Ic>ulfI5Q z;KlB$KEF|>pH0UaEcN-qksi`&%!kK9I3dxD7H%flCiRgHr@R%d8EF0h@?y=r0L>bm zU*~G};`|V7iWqNKI6EXYAij=rW(GVb*x#i*bT2`iY=zf~^Vbsao!F*LvF!U7?x~>p zzy|+BNhx|Z24KI~61^u_v4YtqJ)IvDz#6bJ2d#H|Td;ycEV#Lzp?zr%JdY7?1FyIW z-<#zlnx``y?u>C7vvLkrI&uz}4pumpd~0I5EfMH9?Xqei{hllQon!x!dzE7;n z>odVx8_wv-CvHjKN-$SC$RadO_nBc~3+D)-*Vv}evEQM6KEhg6?R#c>!mIsR4_G2{ zj@Pf%tZ9x&xE(4-(ykQ%k8#Iuht0^}T>bN&72c)ZrJm>9%iP$vdOilHb-$ZvcGB%3>eh%`bYlEkSTr-jx|tdF zJWRo>;kbQ5Xz@Ocv#L-CJ+)7OFL|m8$4xUu3{N z-V8ik>~G@n~b^aVLbLT2Kr}(gy3lFqYs+b6+GQt5Ke9*el{J$CYqT@M1A9 zfq#jX$GIlROX@ugmW~TOxM$@;mascN5|9>|A+y&9T%dbRtR5}KMFzT%<|yd`)1FFz zeN9O3A?I2aiZU)GR++1rNqbo5G=l3Zg!*8eC%jE`CY!9tNgI(b1GuLb=*+|$(orr; zM@2|SNg@ipw>Cuv%0qwcXq083gzFVPs0sXrhcTm#d@FdMyXsq$jM-aZ$%QQSUJ9H9 zABgDEu6aT4Be`xpbmVq=wD~dqi06(9SVaVeY=pIA#geinK)HXw_@*_L^o@+Z*kWdd zp4PBvrZ!-y$_shha>CmRo9iC#{Svj9Fcl9^) zfspT>G0^l*zmUUKbnv~+6?n<#vAKjECpU$zVr*qDOpA%{Jb4GXImfd zRS2Db`M+NNufuzBF@xxns_ZHTg`h-0K#P(D=y=E{VWkgugb0Dk>W)l)oH*LEzy(xz+C22s`&Gz=mVgX7 z4*Gkv`U{~fSYXYP+eVQ&+vBpdydWALa6JcY;%3C3z>56%vV1*m{>X0kG-~nzq+AG1iBKLIBT62j(^O1$MTSS>60({IkA1#F13e0T=9MGSexMpc`M|T3ht46J zeKD@QNMju7wR!I&O?)G4Oz-4%6(YEVG=AyH3(FejX53gK4JJE}m@PRzp}ww3mkL{A zGv0b|0%S39I9dAAj+d@qzJ&8gmtH@o5iSM&tLU5%4+azZ|U3G0@cELwMj0^hFOy(b!TqXajfU8IL?; z)jYMnLH+5Jjdnnn+#34AZjxO`!f#zCyP?9H8tb^LgFq$Si#&8fE6XQ+w_h}sxV>@x zjn4kwX^>g)a>zo;xi{Zi;9lYu=H<^jP?ukx)$GB(?I89YS-uz<*MG7jrQh^|qYp06 zH~RG@{ek5_*)coyt^A9}k*3*ik*c$9$l}Ih9WyzX!g^qeIKCj|LF@_lSu75mbJ6>8 zs-k)VR*2W-6=M92JS10C=6VRH_OY_3GOU3*%ud+&3jG)CDzc!aAK~f}j2^`%Ih~~f zPiAQRmnNAbqX*CY)<|#j)`E2WCoD^}mPV$xoLEa}jFN5^Q2`9M&np;=B+c)EOM+hS zH^w74_sckpP9IQua+uRKKwdm!c+rin`i(RGGu_0n%h7Hi4TnkBXXg2!ZB#{Pr zKTs<%5{-iVi}zyWzsyhnu%tcLrpWB;j{YMaE6dn~+tLWLGMtIoj{WFR(6HDLxKS?Z)Q-KQ-sbhi zd}%6+a zY0$zG(jquJYD8=hd@<@b!eQV|fVYOdN@RP!@FnCQ5zxgYGwUs&Y|E1@*^%&F(QQdv zcDTJ&^4<<~7upB1H!EZ!bOUv+6Po8w!RmP(_~CJ4uj|b0jW{GKpZMGnUkui35w}*{ zB1>jD^yz8ky8~n80i4kg(X#JcBaO}$2l2GMJ|VR3I!V)nX1y$JVCg!i#*jo-25}s@=HDf;KbIEtN8ljI;&J&04RbkH7__P zBAruO0^hpp6^zbJke$8a7D5(aO&DYVou$x`Z?qYUu;0?8%4y!P*b9=}YbbZhGW-`p z4C!;^^n{ndodX6Vp2Z~G7a@dJv2s&8pDKam}jP?;RV!(rN=3P8B*OVFw$I55#c<5+HTX+{{ z?*r(k5{X&;|IJwz@Cw=Kp?hW-be7^ovLIw+TBk8b>%o0=Ti9C7!HtEq77f0i#)A-= ze@zIjzOF&dAGxM?nt?B~nlvSZ6Gj043ZdJv>R(#PStIb45$S8L(WwU^RCdh(tWX47 z|8I9-rAH}u!QBRz1#QF@hxK*NjF8JCmz#?R%k?Fq+v*t;vBiNJ@hEnoMM#PmY&z3g zznwF47I>#J*V>7Zg&Rj=L0JhQEo?r5V%o|>N3Qn=B}lur7RMtx@VhV{f0knvrT-rL zOC|lDe@p+f)N1*k-$?(?P3fOU`7|B~ql>a->y6KHn<*fKE?+8`O0I$IrXYSkQ<`i7x{$Dt+nUMFq?42d?-zA|O_Kcybu zPO1NVQ|h~Yr5=m5r-QGmtY z(mcEr{>OiuhxcI~_Q39o<{|nOyS!D?$|{76SXd$+EZd31UNdmSv#N4JMPs3{S%4;( z5UPUaDV<5=)p5|VBOfQh>@k4@)!3V!6Uvv+|2&DT?23@~S63Bw^NqKX)pLV$8+49g zhcgR0b7t=G(B9wH6PA`XL=3E(yaq#m3D^>28~Tr9aHmj$rP49zQ=CuIs zdM}}qztnoh8)tf8vDUc+7V}~M6_#gC%G@);skEklbr&Ry&`@X9IZb-Vf`H>=8E)jP zO@l2G7l(wlvAIi6f^;V6oFLKbAEM4N0lvlRU@NypwBu_tFe{+jEQJ0P$#N`co{Oai zt1?S3sez%dZ{8lo&WMo1fcNRzvPM&sJZ-8fTncXNu5?6<=PB5?UJ*f3*^X4eu> zie#yRD8-&=-y(1rddnljC|kRW4ne9w!>sy3eemO1+6&$>D+{$(j3fG25$_+zZO!0Z zU^iD(-6K;I=qWl8E;RSb)M1>C$9Y*U2_ffBBf{uB4Cy%-U1GMWn)V;Koh`sZ`>tu5 zu!ho}8I(~S=wZc1UBqWXYq>onO%kEa$3tSYT-L;kG#jcM-mz|+Nyg5P_)Og4jEz46 zxgoHJv+1!*eY1u7RoD-Bt2KVe@@=rgfYG4fz$}@+4hkO%$28YH=q_}qG=|m@)WP5cuIXoRY26xN96^Ll*$yKl z4?L=IYOx2RGre?&AD#21b|8763)+LOG{N5)uJ1JCT-iY2I`H(?_ms711l)s)x#7N5 ztoJgpzE0R!?}n8ie8-~skIs7Zu_qoKQt{}#$IBm`K6A*U<+EqjFr$0e|909O-%r${ z9#k#S2-BnG6~^REz$rP{nJ74A67X&}AKfHCJgFra7%y37x>G>Z1JJ#lY|yTDV7yU`5020C)xd9VR2;IuW}AJP*&3)&KF3q z-uW$d)MTL`E`9}|AH&bVPE-tTybBhH;9D(-Y9MX!G`)m7cj~g2%+VKfcU*dYT~d9W z7nq`s#yd{xVypqz!g)#Tb61Bm73^+wPp^mDp<&odN8Kw}UQ` zHA`7v(!CKwS)i}Y&0he|XeEtQh548UPPP%>(h=pjHBzDCwSE!Yn&G7X(pClRMPJKt zHk?^AaYiT6J=s$R$9GvBG45Zvu^(6m%CPUpZ9tE7Aq47kzH@8JG6C`R4qBjMMD55tfV${3_imkVtsv|u6 z+J8#*08%}#rplD(n6@9Ki-vP$dy`bwxT~2Ghh0!A%j+AOuBCKneV)}B?uT(H0FP6u zp-A-tQVHO@;7o@n-@}0+R~BlV8W+PYH_BNJx`XT#cx?vgDj0K(=;QVP%lM=`#(l7Y zv}islcY=f4;xMA+6&@1pU)Qwbeoon5xuOSY2On&N#6nf55wo^H#;h&YL5dS=jfS_w znj*L`prIwmZF*uYRLZGv*dVjsA2sfxyG^jqMC}Fv8%Dx?+i%5A(*R9*i>w__y6Qwf zf)+zdmZ6QV$$QJYebAqmnjtGwA_>Wld$KHw*p_e(h?(l9JsCt%W&>~0`x{$ANkx9 zZ{#AhY`EY$}V zz+cj zYeBX1(By0M|3T~wS{zGp?vvrDf~BouwBDT)(w2Uw)f9YZFkC^O z8ZhD-u|_4p?qP47+KYy}LBCcPpxZ!i#TblWCrLaXWnUh=HrO+w$%+%uRv9ZW*y6{! z2HGG8qn&uL-ECwKL1@m0KLUOneA)}s+#{S|#5)+qdT}S#jsVBJrO_^81^D&#-p%Oi z^z~_ckp9?q+!duezWvI|TH#9}Xtp!IfK!P$yYIUY&cp3bDOo>;>pDf)qW|pL+3=9- zMy!b>Hv(o}MECNccObb0#z+5ry}PQA^xjDS?Wfha^11=5@vWF;JTw)&VIDexlk7AG zXe33#Zb%Webu@~i{g%mNi26Urr!O7sk;E~VS--*f_P*Ep$q@C)T{t@c`4sj5bjyO2 z%&y?xDD|ENFJ>6=LiJ8i#Q#G)$)0Iup_Qtqdm3;WHyTa=ucI@36{|UPHgjo=V%Jt7 zHi;FWyg-?X}naszNG*cG{AWXh{unLyzWCi<#CG3HsEa86@H=ZuC@wp2>i%|D{8;feMUJmfjg2 z++lOvjTvHgn0?6(j7^%&#nYr$9+a?eLTIxs%9$S8DfyuGvLo8jjiC39Da1KbsC|+x zAl{ST)T3b?_;0J9#Qi`1?$E!ziu?*K1F8~Owx|hZj|RpV_j^co@ioA;S1?;?UrN-F zPBi(=5g{dtJ&RV<1i*<4y^rb<({Nr$IKl zX?_r1rS(0}qjPfHNiMjZ6%7^j*eSO-9)vtP4(q$ur%|gvr##?64_RJQ8zSQ8x8p}Rt`v+Kh5_X;u%-qg1 zI+Fig9FT5GeipPR#`$5a{d=nl$&RZLn00h}XLwFWR#TnF+N4;Rh0XMKoH@l9D!!VR z&3Mx}^EkyWixy+e(u0jR`n2H9tp~3_1G`#@pmJIqTR1Z>)4KDuSbt0&7h31vP!#6_ zs(Tj1Rl)YVdLAaj+FXia z7Lfcz6jNvp(7qcw(cp)BcepPlXj$lLl%T$2NbcwLwTJ)JN%XkF-zde%|1v`TK-j(q zsP(RxyAgBfMvQP%%xJ{4+=vO^C=K$g@f>zMx=Q=zMoj+23CQz@8!?A&iW!TTbvI%T z+!W(L%=0&5w%rs{h?v?NF>l`#<3!Bd8!>Bdig6)k=8c$*H^odw%p^7DN;spTBRHM2GkBT*R@#hp2hu{BoX9+&hQ1CO{25u0`}G5s%A0RVAtY= z61R4*xE}u9PA%xKl-86Ma@|_#z6WzN>2YdZRDyvlzoi&Grqs*fNOKfFnuSJKDoF%S z5HvoxRqf%Cpw_q}F`|#tz*0SFszk%{fXfBo3A(8)CWiVj21F)qhVDioxQhvMJ=r18 z^E+>z=UF~z48u+W8-vwF_sw;7pB4P}tY#V|l66ZKsMGM;NPGC1PNRH3ves4ak<#kj znt-vQ75Mo$WQepb!umo{o|`n6x_j!}UJDC-+)Q`r$n~$#VD;Gu?x9;=M^7PKOb3^J z=@RhJ^D7ez@}?~X1i3;p=nmWtgf+}6rniMhp*0npgWd(lItKj1!Qcw6ER2ON=0?!? zz~3@AglJGY`^!Sf-(N*wV>Om{&Q%IN7yAe ziaqzbi)6^?F}vkcH=q@Jv}r)`z7C2U^fOj%vrn|5m6p}XZPUAB8GMr28hzKo_D(_O zWYhXL4&z({9sIjm?^4H9PV?K?o6$UnZNeMr%8-uo#@>{dY{XC)zbR~j8g}NUuzL}v ztO(t}y(xEF-5mD>o13w6X2*EU(t&~)e22oj&?wxB0Bp)a&!ws`8lKYp?_pzTPW97P z6@wpduIiZ%2`1=2jg8A31L6qMtS`oUHAVM&#$EQ~%#CFX;Q`tw7=1s6XTfI4bznel zW5>X;L|v3NNW;8JV>q9VHqf}t*)pfak36U$*(^79&2fRP<{1~mqp`p4=3}e)ORL(n zSux;;UBEqD-B6d^`_OvlBs0~d#XgtP-F6W`&XQ}ZnJ1*Dv~ z{|a+j;}T?=gYpG&Hw?+@7$ofZo+3CJ1Bu|wVqRjN5f7d2m!ZB~M)+@+#`!Ex0Pp8U z3+2zj8c%(h*p9i5IhO>wYzF3>(dSL?2)_;ehMxOcJa}%V+Wow4l|j2xBlC+OSS@gxmfb_@sM0G_>1T7mFFT@jm64pY!3Y*e+17sljjpanO+H#>>m6uw>D!5 z#=548xa4_m;if0rL$f>vJ5iJpJ3fzg!;DI{7B*#@>E?twSqtnS+BVO#1oMXERzw~7 zBO398R61RMHC*<-(H9M8b+R}*sf6)F(weGR@k;pcuAksfZ-PJC#W6dne@HI{aOeoy zmT0T4vCQY8t>kigpq&5O1#T2*cLCVG=WeWHj(U$vZm%CNnZ0x0Lt4~{;Atw1GOMZl z`_Vtd`KKE#pbNN@-pfL-?rOxi16+@svMvX3sP`rq+$u$%o^UI{WNW1hCVMMgFxg${ zg3100cS?A#G7gnG{2Y$TX$Xr!{}?#&bP zcwZVjZrZ+tg#X^7G$spm3gg@JhH(B>nUtrCVecYfF2_M*tlrnemC;!td7J6$ZVeplx zqmX_foVADJ|ByX&uXNAdJpEGmx!pqg#qi4aIsUJBKQ5;u9J5DC>i{K8{N}1c18l`i z-p8V!x=Y~) z_uiZq^8~!ytbM50&h{|d843Sww;Uh34fV}}%Y^$D^}hT*4Fme;djcj>np|Ie?sw3tLbOoqoiAr zrG(FUOnFZ1raW)0R-TV-R{Se=CA{sT;-6FNGfVZeRsVwezR6dVbbb7apQzTSzv?fq zRKowR<~ySLHEKH^TBf|$`ni(MrPlj2{&F=w zx2N))t@iu*5z2F}`kWh9p5IZw|1H&TQo~maRpN)dq`W6PL3y5NQ2d6Gif>oH!=&cl zd`wNBr1$}~Uc2@y&vpN;_*)-Q^6ygn?a)l+dE0Lkf2`W?6V>)MRbM52(`hBVVxf{gNv&7K!%BR` zG&S95#ZOwJq|a0FK#kh2ZEq>z@vkW51l01^9aEl9tNC?R%CkMFq_@AT_~+GeKe0l6 zuUqkts^LTKQ_`&sEB^kk6+iD!ihsOANqf?G- zDQEU2#ZUd6;>UZGe23Kc*wu1QsCY)F`a`}}zf-HEKd;X7Lu$W%sN$1Cb$%RD@xp9% zK5lMN@|CI2RyF?J|5n0#eXaNx(iOiUN%3c^>q(o6=TBEE;paU{{kN&#->i<026Y~m zeWJwYs(7OO5hdT&$x8Skwft@Bcv-HFgVu+YbTeluzV3b{{f8>PU#^CaQv1oJ_G69O zPUnB6z9&xc`|B0oq~hcKiR;~B0=}P*# z;c9)<@itcNAD^0jq8k38ns2iDY*qcKs_#?FnW*O9rPjMcZQmqyeX^_RPpa{2@gDFl z*=C7ZbIX|Z5_a|b0k;7@IRW~=69MCSdLFa(hfBJjStr6Z0A35X39cC~iZD|?vs&SD z;pRQStW)71H|YF0aZXY%=-pTOc&V+BcvY$Wuz!bLG;8|G0;3xmYK0$oKEMup3icA_ z^bb6%3qEi^3q2d=)k^$9#A93{SRg9cm`l#llm zdNts1C&FIZWa7#uMNaN`#2$;g*0^79GX%O}x7cdX;1&auf#L3HvMUj1O@tKLwQ5MqS?nUO$ADOV%1{oWqr1<{6u>y0W4&>8!o`anZQ*m;&vES;nEiv_>$o7(EZxTiI$YpKMb85ZIMlczAv;(^4!p31y9{vI4&P;H6D5rZmqN& zaD1@^R+qH0{dvKyL!03AbdkpM3eHW(IE99o;={?@4@qG_derEG1a_UV*n)T1CNb+4 zfmzpM+%#*Hx>_xaT^Pw&v!0>7`j*^=`FNXYiuI|n!&gFQ?N^x;tv>-ov?h8 z?agA4K=$ny_rTbCA(#eVSI-9b_4jc0D$1*13-bz`=0umPLb8}$Qm(6ZWuc^#dR64t z=f@x4k{|n3T=BY!`W=G96gREFq@B>+Yw_+d7BrUQ+y^^_x-HB@J<*rcehluDI>sbP zD?Q=F*q@L8Xzj;K9xwIY<*sD5)WCfro66Fe?H2zGKwe{up}T*pr@r1B%Wd(2N1QD+ z62grB3a6Omt-yX8(qa3wEp8UfoHi5RSzgKPnt&bunSU!rX~Z|R#O?ClB|4-mp@wA+ z^?MgjD%BvD7Fs_8gIxS}e!pPXyZZXKc)aqvk^^PV?`m3*qldpmuEhX{c-s?;pfT;p zEieYGH7338XhnTPENPrD>zsMG!_D~J8M2QU@ku3P@J`B6wWz;C8p&1;Tey=+7O%$( zjd@$(4p(c9$<%7d@TWUw+}dlH=(jIs8RJY*gT_C*h7ExY(hT<6=EwFFbob9�Dk! zGis*jc!V9JYab1iQ(t z4eo`lo1bn?=ha8~IhD=js) zJJ&OdMFTt)TcB}Q6}Gu%iqeB#(*Z-o8RK8FSjaR4@@s@l=u+UeWR@;w7tLb}FS@*P zi?hP0?|jkf#ZxRlxMJOj4L=mG!};l_GZGye9^8_x2`;j(crelNRCdF{2Gioe85cN; z_Qn1<&j9Uh-Tt|Q4^8)*2h3*gInLv%#KVi;h8@Q=e|paeJN{8}kEfrA5{;W7XJ+;C-a8yBRIm@^;XdJK&rEKea{7ic9;2E*iKkgA} zgv8ej#(9$=no;ggN~MuDcWbFMYPM%cvi|77Qtzl?o~V|8F7CT_=D;|BcYo;_(l5&eZeUjThf7hv- z{x0SlcW*7WRG6*x1(tG_8S8)3ndeE&Z})F;dULo(NC($92>k1gHoxIax8{3d5Vr~C zCwc_24xIETBs{+_nO?E9D!*!4uT}Y)6M~gj@i{!m;cu$g;LP)`2bO59%!9W6CEttA z)kVCaZu=@|ROlRAM&foi$5SK4tdAD0apL@jj`ik41>7hFc}y@Z>qVE8ZK`~sXi0Hd zL2`wuTc1ikG}S-BGMPuSf0JEXe4j-ce#}!hu3?8UdC3lGbhU@|Y5)97x81wMH6G`% zY<0Ym*^K@-7Ygg5;Wwj(-~>w&|1A6DnFUTMr={}Ss)bJbLdoMS*l*-RV=)sFa=MLp z($gKKJYEzVx4OJxM_GAiv*?J=F^#x*Cggj#WEu2tp4l#D2`gI`X>k%q%F?V97WT)t zuz@L=dcOg!I3m;JPt7#=Z#{`yIe}NiN{wytmzgJ1GbO)R(;r{#)$dQBxX1m>KG#3a zrCl%P>Qt!ju~mq=%epbOBPeZ85XG+ zR`3b_5pe!JADC{d9-a>y3f8grEY(j*xUH{YP?5S-0YDS<-NO zke$c-Pq84ay&K^OZ+Nj@4#3*>Ev+S@AW2zT$@>ipda;JmI@mHnE8Rb_7o)Yc1?!Ht zOe={<3u(OsslL=WZMx&SCF;~nyQiSjxnQirUFBdW^p18XUk91ex`rfITAiDFtQkp| z0fNX^4y;VY&C|6h1E>9Fn$Xy?2zM>{Ey1Vp9UIPs*^kcNw?8w@!lyevupBv~Y226A zQq!V09@QbIE|?ZP<^0wqWkth9*LmYJ`T7%YF2vdB#%TDVPC<+dD)6J7Ut`R-R-UbD zW5(QQ_^l3&xTVT~^`FB}1wIpDr%jyZo~8|I5%R|cEci}U!1>IyLoT%CwA9RR{YuSF z1rDP1_j_9P?MIo_l_J>Nj~{eJ!?D-@ex}p+SLa71-ogQnjkn=0r$x+GCXdm3jzi}x%-(R;_W5-EGyC~!TRN((U{sT3u^_tHGd+$I%-}7k2B2W{s zCkWdULp6a9o@9fVUt`sxm(R}IU&9AB==srCtuYfTv0~JzD+bo+m24RE|1ghXWQzWc zBQ`#%v!xudT1|TAVp>&%S|QVda`+STUE;I#g_W{QUa%%Y$Ka)QF3xdDTF5{k2YJ-x z%{97NBW`=aNh_^reBu#M=l?uY(@x*kO z7dJ%LrBqB~pr*l#h76Qs1NU~AaWY_Sdx_fOMK`s0p-XJ=W*>A<#45~ervsaw)Y-o| za`H)OWW^k!g~lUX4?CIpCHEAkH;6KYS+}U4-Ecx9wg}RQpjQyZxf;}TR4KE%N4}Cj zC{R~n5;jdQa7obpD<~=$7g&5}H4eRiHnqYcIN^=ki<#J`uLZV~aZ(J^ z9u;lV6NAi_fY6=;hUfeIZAB9nbr;gzkz!+dvO8Ry>~>D$VyJl~Yf18Yj58SEi0@*_ zCG=%|{Ib27r>ZSpq-Ey({>s&rr5?pvOL+=Iw3|Tbb{6=am0u|5FTB zhEBU$K(Eq_{nk5F?$w-%lP)G~oc@JV%#ohjxF7=gBu_sM%QR-kBX>3y9&^5(gOSsi z2f15O^=iYRzyw(5a(Y;Gi@v2>U0M%2JA%8f7o40mN|~n^DW9P>bQbNSk};T>pWK*3 z(3`ed{fiN%v!x!fVnxbZ+`vqh7|fkpP?m#%SZlhdW;?j|R9 zzeAJ>?$fAhhHmu}e|GY!QWnJ?#f*CMI?br>uWeFi)N41*s8?NEo}(Exz#-k1wQ$XiuVc2a z16yl#c7Ei$+PQPI_Aic{ticX5U|r1YhyC9zKIxgj8!RW~eR6Fnlqsh!axQauv;MMp zyG)gO3!f?8WJ<11qR5i@%nkt|dvxjQ@Ck@!u_%*?D z(EV*^SU>N`N3g?>_$pwpZlJ?``>46Y(9VMGPQOR)L8|S;u28KvTb$;q1}#5-igV^P zch-lsY=|CIiD)$zi1WWipXSW{wJWQ(zHnv{8HM(VU2G5=r#}R0RA(J8uk0S2 z+G+DomDhL6^sHLKNA5?>z}C4pM!^HlYiGt{M=551yvUukWC89*n0GIBcan?wunU=! zj#a1ESG{aw{Kl^!Cl5`%9y2m~@ZiG1g9qQ9J6PjLx)VC`*G;3-v(v|>4^J;lXF0&U zabIQI`ueqBWnk?YU`q^S1V`dd$J=ai0ZVWc;HwA9U7-oG3?y-Bo69NwZumtgNPhgJk zfmZj5vCP^T?gmXO>@lIA#jJq^q^A|~?RD;TwJa|6JhQ#UwAgP=@2(%eIBHwye-EdP zODfpl$NdAU%RPJ*x4Hz)sze8^gP`VWiPxiP6oN!kYE~}C?gX?x!wM>DR}w|u*Dv72 zK#G6-!Z|oXzBFOGz9qq8X-&XxIHk_ekf8Bv2QExD;?BCm^~|~i`4f{_V|~8n*ui9? zN3|=bIezPUpcWMKA|?_S=YoOi-iB7+VTeD<)1OQ0F$j1meUF|U#eb6qG&0L%(2$)5 z%bUU%uj4;E%*9=%xdwie*+HwrCmT)|^}nzj2$7CaDy#jCmdf=?C; zZ?bi~v9ZvLJ?_RQLG{diGsqgfYzr)Mvc}~`q0yRd05#NIFRUzE{2Y75^0K3Qtv0h5 zR=qynpo?wC;jyra9mdjifhS`R0!&d1kTr#bdzBufoEra-{^1Y9C!JW3Qv(c+g_nWdqY zu%EE93S5aIXI{0?s5}en*P)H${pgMKvSi$*6x5`@dnWllDWxv|I_NQ@MOaC=Sz0WO z6MhHHyTIsiqvib+?MRk6Ho#si6E(p)_T;3w`EAF02boCEQp()%jd=2e3Dy1)y}m!TQzm=V6~Li zX=8_jRX0;t+RSd)t?(zf*jJ{cddrqkQe0lqi~F*OLWcIq6G@|Q)24JUO2&*QnfbNn=t>L-HV$YkCG%{wpV=la_i z7JSeKEzCL+lXuD;cm`k7tFHgA>2XmM=CBcI{|P8cfdBe*tGhG&bjQY7%wYVSi=x}@W}=i5XKO#+QxvD+3`qD1Sp1=KMo&RqLCbh& z#kq*ua?YW<9AaFSjPVOUx!<+8#ZreF;2dc%!NyJ`h=B%^$;5d z7k&(`kkP*%XVO{?;NQAfP>-`5q-`c^PRM&N8`9QuurJ|w`oLnr+TUq`#$p?KVd(Kex|u~uMZ z@Ru0t3@@?PZgC&CRDUeF^2O}uq-2)8mdAX|Si0@)qz)s$=@pDeRw? zti8mO?fQ`}7U^A)9v10b(H&T1=b7v)eswn!+u?V>kqy`LaDz1hyA^H(To&9=xQ+w3 z6A33tCgTj~rahcNKEx)&l`Y{cX*Xv>-oqJE#7*4B+5R1zorEjBle322oQ+xoe=BDk z=^l84Gu=+4e-33da<&k0t*>&Hi2R$7$F&c4N#R}bk8^gyjc2^01Mz*4=a`SPqm_c0 zbO%T;gk;z*$bGYsp5$~#GX?Yf&$)RNo);E#bFX5-tm`G1Uwan~{vA{jQxukCA5r*3#(j$mF0`AHqze7LD&1#=Dj{`U&z z^2vgE8+0`~;7Dhq0repri_L%I=GoI2n-6)>5Xf9ykaMnsF3i+wv||Nh8~(z~Wv?=} zJdvB55LUJf-}f;$pC2HYt(&-+^jApsOLA%v}Y(L)>}Pa~u54aED?z%kInB*m%xB1DSJ?uLIJTGQF`FXPXhW4Q;;( z;VZUqbAPne3e;l*p4Xw@>gZhvtNT4SPeh+>!naQ@>jJ0e8+8gCnz>#cv_AIm`>a!nh+lIbefp2M`c1M1at&<#^WVaXM z@ZQngw&OkGR={@kIJPb1=t9Z-`|1u3Ioq2V*=ZbMyW?xjF9zZcaiwo<@Jo zM;q1TU<{&&!b)PQ1=?NEy>eKmQH#JWb=LMgTNn07;ET&n5A%ie4JKmVw*t?Q%)8eqv_GEDBL5KJnUgy?TaLcmjPY5DcB|upc`M>h zpiiwx-;8&k#u%Q7G{?|h*;g1##Wzhv9O)#GK8|i7@Cx9vzNj1I<)m{#dJv=oaWVtn z1>J_tsPjx4F6S7BIXnnA|0OZjhI$@-3H|U1H^I~BSJrTI zD;&w>hdhBXR|niMgt0@b7$f=qNqjfySCFpVy4@IuzyXv$6=SUC4VWb#%h*|z*^2i} zdZt#57P4^ zoePfd_2K)hTYttJlpga^v`!_``+j~z-uwi zFQB{*;DUwtmbP?m4qy%Hg|;nw9rOAM#unC()MeBsg1Ho9_&nBzQ7Cf*$~Xyk0(G8= zdL-i8=db4G4(R8U0p4Uq+u$1}1CLI|cdWzQ%P!>Rk$`)ljk2A1C+c|xYgFQwz=yv9 zPQvq9dN0~WhcbsC9qAiv#y2LRFG$CLPw^uAWXZ@~MS5Z-`z7yRr;P%a$lXU@d<`w;J( zIS=372lc-l{e<<${t)ULk8l5+n@R7fZUg${Ale3PPx^Qh(Y7NuV@^-xY|aSG=SK9W z2JfAO_KicjG3Xb#6G*$^8aH3L4Rd)j=8X^d4ec`rZZg994?!IAtpMEdU!3h~#=5!? zX;6OR+rX!jFgGy{d%?A#tg}VPvkvt`J+I(hR}wHrFc!|DJ(eR+66$9{-8Um`;t2F3 z-Wk6O^WzxJb;in0U``#t9Gi%=*FH!`+v1>SKSqR@{RbM?cV zejaV}FmPiDXNP{z*@yU+RcQCTUjeqFZ_qAQv_Sx2v+)fdVoZ_#rS4nIxwH5V)RFW- zNr!LSeyr8s0G~Yse3go^1)%3XLm8+W=`e0S zgKtKC*TOA_+YEOFW0dqwCu1!@8!^(M&3g)c`db{@oB>>hy2R&Uo;?j%!gpefkzOq6 z2wsVxjR&Ex;G0m_RLs9C=<7O++hg!6Du4%(whpdW9M&%<#$Zp>p#s5^H3WVK(zxJXxD|c+5b*Fxyc=WG6oy?n#C-^7!g~(c(9Sx{gMVSnx-lQ|T!u2U z8S>wTzVD8Hz6Ut%5NJt+<)ICaAcS$-wTsML?ne7YFc;81HE7F3wAXTsmagB9$#Z2Jpub89U08j3wgr@*r-d}+e0MAy-Gy`tNn!xZ&1iWG_a1G$@fSXmA11`h7rf<;z z9)fUyOaM&#Ci>|B(_V?v7y##~gH z!E69v+JDkFW&!R{+btV#DZ*(C+zL4NeQxfaD6rvx=d0l(0B;~Tk+E@rr>+N%PE0Ht z4|tUd>nS~Ob9!PR(Fk}U;4+4>2blK01jhiTJu%fe7VvVw*6y6e0d4?{;#s`N*$TjM z5-jT>oc7lUW=Vh>Fb2M9XRHTc+Iv&mCIhCu_eG@X1DN*W)DFdfQyog)62PS@Tne}r zyaVbZ=xed-Shu<->exiUXWs;jirx=+4)z({QMU&GC%griF*XVC{w-8{#_k5Z4&_); z&}hK#0!~C;3Gg9;k){mrNUZy4DmDS|88v(i;K>voNate#^FJ$PIso?pO!Y4WJQ6VV zqZ9Br6?OrxP}3Iyt^==vev<(&ML5;-UcjGh0F3u?wATvY3QE-n@CDE>R=_EMYtSb2 zE*;=ipety;<3u&vs^SnM;B~o5znB0Y0*oXq1~9)vDRUs;k$`FZ*Z^0kupRIQf{{KJ zZ~!pnjRSnP8*nk;RKU3dlydZdJ1|GOAv_WAraP5z2H2(6zc=83iuaNL&$&xUqXE1Y zdFdOqfLm3#JK&=zhw6|3I9Dyx40twR1hXE1O(=)jp(o$~a1^y+U%JZFe2eY>!%gJiz>`%W)(+_bLHO;ZzoPiw)h976Au7g*15Ov;zwf`LGfYVs>f>?Xu z&w(3?bT{f@q*^mZb@==j<=YUxvt2OLd#rF&7y31JayAC_S^qugyKjK2@Q(if0DW>2 z^x!GMJRE68!1afMB>h%`7fI!}|DyaH#65!Y={-~*xr5--FMNUeJy{OZ;Ms{bFru#X zjkm##N14(n+$6?C_8fRcZ`{R1Dg&#T{4L-A;$2j>Q*A3b8S5dZ(@H;Y_xljJ@w#BX zOHKqn0Q|?%o(*`%5GAAB#!j^JOz<*~9S5C>b~yAm&_!s2QnarfPD$Ha&4Ko<1s=Oo zX@^t4sM{o@`U>x)Hp_+2*>HyCPX3AbPv6xiqO=pWeGA^b8tbFb8Amw!=C3gW&}$Hd#H#~Z(h z$I=P}p^V!VXtS;#l}S%Ojd2>`jLqOQ{=g)`=%R5}LwO_s2&Q(YQ86)ubp}vs2>>Z?gNxQl^^W=g_|6TUcx3z!Dh<_z+y)XUj;_-hy_tbihS{Y36S>?DKq~zq2Ch zaRicA{CR9?-{G^Bvf`B7BZPNpIcpQ&}^Ahq<>^d43U}_98~eix`A2 zVxFwT(8V)U7MTF20jxzD-HXgfzV=y&g36Gm7I{WvgpWqP(SU2^`~uQ&VG%4qKVC8Y zm!_aw7R{Vp_4vYn3;rK%M~}oFqA%v@Sm1-naI@j+;MT&;#6G<4b?h})a<*q3XD0AA zn()2lpgp!Wa#oDJ`+lqwfyt0nOojZ#1D-0Le~WY{hGU;sg>~yI?2Tq|R)G1VLwf8% z*>Jdtk6>?vcJ2QP!XLuE>^|^G{>0hK2O7T^o4e`q#^L9N)YWL7xG23b{q(=~Mhf!> zpS&2jW!9CleYbn0_dfaTq3l@?4F7CU@82anRdnvm3+ro>JHN^Q=eW}-d-D5mc$W+Q zAMxJvaA)8~qCdAHY!2eq!QV%9LLH*;!!6(g!S&R(z@QUo0{Agn??w}xQDR;S(`Z|~ z0^oR&c|oIk5$^>a@*<5KZ`3i3(Hz5`#~iPM!|=HATZv~I)|49o0OV*JEP2|vO_#|m z+yZ&NU9fBHTD#89GI4q$6MAHJgWYKVE9!U)>e}=g+8pf^{{-3?{^_yc!_;$j1>aN? zgnXv}Jee7s{WsEY{TMXPKd`q!zS(tXYYo}}@Y&myiurRP!$ZB=?}pt#_@81;6z^c- zc0Bh`D=M%5kn62O+iZnvg#(YACH@{fSoHIpKXRxY;FozT-gRl&?{4|ywrl^|+f^Ku(FJ$;6xQ|Y zDxc!I!pOga-#jWn<6=x6!&p2Ew+Vf?7OoX=n+f0WHE6{m>?ekx%{PH30p4!iV(=L< zzz?2|c{qkM55E6x^xaSEAY&rlLv|*JzWNk>_m^M9Q$L-89ssSqW^x1Z@1|c@SzCZ_ z1|!{5g238Q-m4fN^z&dGQ{Jv$1Zn6;Ycl;#py6r1NrkWa9q1bDe+-zH_)(Q?a85XS zwFoCsVAoH=d%DUY>h|CM{*WoRXC5{l=ZL1pkm&jmjYBng8g2>PPce9qpOifoJ$3bq zQuF`k&s3HOC&9Vlrq08f(SkXc3YjHv<&DlqW$r^?oSKBYThWfun`-wI!r6Gp-Qjno z_ioj&{wF|xf$pAP z7xkMLy^2bb9fESun5gQFb|%=YHJU9cW`_TwR)*1Hf<~*o6W2VOS~KM|_(yG8Nce>2 z99${jW0;et;U?la2Jv>Rp;5Fj<>~r$wRhL^Fa7^N{^#xWf4Y6DVg&X$9R0lTm%uH9 zdm64D?gh9P;i}=Dg?k=O!df6_z`y^gf95RzX^aoK?I-yEE?=BcxFw!*fs}gmf(b{Z zI5(Lz8u01)I*go!W*TYAFK?p)Q|)iVEFeDz{!^$U#e6SsC;h_1l)QWzi_z&ddJPfS zHbOQ6ZL|`04a6t>_-Y)MeO>fNAzF&Ty6#&r?#ftI^z23qbLq?|%%vvnDC`B#iY&Ww zac%U}BVP&cM^Co^<7uL&%JyM(`STub8m%$U(EqRY?mx7y>J9+-xi3lcqn&NFo3ZU^ zbTY)X^3vW(TVj()tz|a0HgiT$8fizn;UCYW#cnJ%WkUsJM5I$(X>={fW}vULY=h~n z%!rJF&UG@up|;{S7EIE-Y-MS3cHZ{S*oOOKe+i!h_kB6s`yTgx?!D)HIqz~$dHzdH zrK}SFly@|&Ilkcfgw?tvcE`D+}dfp%UJ0%UVKhJlm2zc*<4fkW6#&KnVV`VTk0x% z+iPZ4ZK|u>J+FT1=6RL+=~bKSD{s~}PEFKJ#Pn6j?8wUDOXB#3 z#lr_mas2Hp{^sGSaCL9Xb#Z4QB^%x8e17}Ex=`1VrWz==HLu;((H7#lhyIZAmqQ^= zJyZ#wYq&O>y)r9@9ig)`i?ydV{=Po+KN>$3`X5;l?nzT1o{DD&KONqMSnY!+NGHTZ>52l*~gpXdw=e}=ANOigpR_UtLGZacdt#k z@y=V*#Zh;8U&@YG#MmCbyrURecdgsIedmH#x^}EtH&&>7`rh5`4SNn0MxTx6-hT0G zzfIZs(5_OpuP{)U?pk-Kx2x?-U3tE>xNY5r54II|w~lNnmQIY-7QPT34aJdAIvvV= zFK)Q^U|Z_;?h5G$*7p}L?tkJNDWm;aDNSbFn!Qvw(^n3yar~$i@?v-{T%hUVYhH?iu5rzT&1=KI~tcE>c+QhM6| z@YU_j8()~$vY@s*o|_$cqEtz}LrZr&Rdcj38IJW%g@G+6!qgAz5BE+l>-zD9mF3q` z5B=3+gXOWO%7v-!Z0mi$KE3+nGv7QK&fR}uYAB@~tK<9gTenXR_l2h)IQUr2W&2VV z^@EGI-297Y?>Kxg9qO@=-#!xZlOca05!iZ`8y&1AXUafUJ3cdkk<}R%%!3C zs}_GYjnU5Cxqazu3`-Z!ywiWYrfV|BW%0wNLM&v3tR<^op3TJ%<3ze;_w}Y{bJ9+{ zocfSzsovk!4(k7j&sCF(g{7I)B29#aBMGP)dy;sZ7)tkC^*!_*=~?CC($KQG8kw%b#USEQUi#YL&UzZz40FvXsZG)GT$eU|2cO0hP@CsS-lG3|ju zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5;&j}>?zTll>gAyFhR;rol9+!=lTAFQ7?oZSyvZq@6{REE*e( z8W*(bs!5AU+7gr7A9?A$rZ>G0n3zHn0wjGgCb!)MX^p0J%+0+R>}`h^+2KX@_c;Tm z-ah|4|2*jIIdjgLbH3;8`+g3Q81aYog!}?e2cCCsc*sBeUC*P**W>?xha>m@e`_l- z`&YXBvS+UAM3-0`D!Zr)JW+a-i#nfs%*$w}IvDYyK9w%W1fia8RRlRy<~VgxR}nv> zyg$N~UerG?eM?^}Ww$-8tkop`X*nfd?4xlW@eEcvyCL{-by9v(?4sU%%S&FakJUJq z%j5cvC|*rqkH~xuD+@v1RUE4k{Q*vl1Zu`l2%ek2&`KIx!@ll~zw*DkiE%HA z6)ELG;R?e(YkqbvJ7nWB^LO+W6}s|tLo6NgiKvZQ2Cl0Vi78B%-o3{|+2%-<_& zAEUjilV-_Uq*(Ve+7br!r>*u`Rg>Eq3m0&GZ*>vzfap+jd^RT$=c#7YYjMv-y&{oZ z=036Djjko)quLU{_ygoR_7n8f(#1O&k)eYP2Yn zW`&NZk5}4ItE1pyj8+36BC`;s03wn`w3l_4A}L|sqe#KKyNc`T>q2Uhdqr$+LGp!6 z=jMQ0S+Cs7`@0yC3>^+Xr<9J8(&uEdG)aC`vod!Dk9sZVHwTU>C8MO|m`t4c%6z$` zp3zq5B_WqW_7IIDbnaH)Jzme`uoFZRO7+m!RJ+?YJGNr)r@DhM+9Lg9ghlEcjJi~i z*=zKe_{)XRay8k#EcQO;rF{=WGP<4}pXYdXe6FKpEi)uo94myrl}eK$jS{H|yTy&2 zlB^O}Mptb2vE3e}XMf{MgG?%ece4K+AY&BfP2yx~lCcs?6lT=Hv|V+iB*miqKV+6d}9Ei z)DlIEDhcJ;#5Eb?-0fYQQ(!}7p;NqX-bRyZ)>MXIR)tbmsIcCQSR#JyT8o#9zSSjV zON;+H5b9i;LPSDR#zt>rL_gv!1n;$3Bz(tLrb`}`7*n+%<+j+Ra)kBBPj0nKpQDT! z?>B#;S6s zpSClKb5yNkWZcJ3B35-})c_?j^1e`?jzE-(*?&LLo-9tJ6d~oyc+~ z;$oswTWGzg-)(P~YklQDqWu|pzf6?-67jTzb%oDrDI*Il!>S#__QNK1#zqjCf>~*abH4yCp`JIZC+>^COh0)WRW*V74ItUbPk8j`6La{j?H> zG(9*Nkw|k{*9*GIL2z^50&NhGCh8-qN)6k?I*I7b$ zUm{*QMf(KY7j!B@^={Q(m}Y!wMvv18v5UN%NVm>r*)w~P9Qe8(k2D)I0x)- z`f&&S-AzQN5&@OJs7nhe@8VPrZ%^&Gs249xQ5jH2^mm~xN`Hk>!F%$mP{|`LcVXGE zr|Q8$e~!P)sgaTk`a-dn_`6CphPkNQ^Hb$ig>hm9BR2C(oSX_g=T1|AkG#?iYbq!UCmeSR1=9>W|qZ#jP}QzOFE^(-Q1~gy;0` zwJPJX#oobMVfga7n2X1|M;Hekq1)6K$CL1FWcNxn+5vd>)0&T>1((t^o=L()!aK%h zfdC5CG(L}}j7~|C#v(O)fe@aHx*bN{ZbcgYeVRi$azGmNiXR@ZGK}V7gwlUQyBsh; zc>hs7iHHibgSZ!Ul`m#$%ub8b@)_;ziTQ#oh;M^0ddVs&l35yBap=5WEbhcSJ?(y0 z$q_(oBa) zbDyXN93Cd$-u2Gjy~qFle==P`vv> z+uHT(*j~YzE@lBL{)J6z-}JJ*oHGqv)_W)~L@5+WZPn|z+144Aai)qBfxXH*0nkJb z$^RWTOlfka<{9CK}%iAJkQOj<)&E44tK|zoJX}aj7wSUS*p@nmw5Pm z<^m^Xg8yIEPwPzSJvP2rOdDF0V!N<@TVv3xv20@?azI) zL_Bk%xNV01lM>MX*}gH@kGIBHXXADzPv~Ntr8|y#9lcm5o9CP*`9c@TW6`sU+9TV{ zlpotso(&$sIal>|P&{NgYeFi;MZ{@U*}PPI>EE1er2cQ*lz~3xdWaUi_Uq3oM|EJ= zUuB+th)Pf&&lP0QRpa;Lxu-rOH=%Vg?JVU^8ujM3VU&3-lj7s&O$2n%g1zV=7xf6z zIMs$ykLsk2xrr3UqV&t(^}7^<*8@x?+eGD}N>k^YJ+IqAT_z^5V?f_7>fyPda$3hk zlDP9TqU}ez-O=Dp>m}N;sU$H3Y%7R%1Bx}^k<3w-vO36Aj|Z7;t7}WPRpXn6DdL)l z6747`maVoi%T{gM-sElWVtux4726xV#fVh^0w#wG9+ygY+?!om^L+NJUaWF(RyOAx zHL2FVec{5S>J7#(cV!D}tLB2|C0n%}G5}#He(9+vR*!C^Vtm(}>gG9Hd7~R-=|fnMvRvXl~fZ-DgS%b*At2nX3csfH4U) zn7;2oJ^|D`=q7!a0XHKShixkTr6X%P%K#ox1Qo_S&Jo)$5m}Iu!7W4*#AP*R(oA^; zXG1kpgEgnUHF@F^{jwM{nSq(i#EfMbGbv;Wr4(8|6Zu=1ew*TLlfcPP7zCNYUUL+k z-d#C*Ulkp#IT$S!61}Uf1JwOoZmLATZiief;tMM{Jv$(y?-H#+dwtvjUgP0$w2Jld zF4jlGWQr&ou(-}T0PzYy+#1~z1VzCdJfF{LQfB#VnKMQX{FZ;~UysFbHP1&D|;H56w#JLtZ|jt}+(=r3D)c!3pbr`&4; z{odjwXH)1X-(^2b+*$n%wMV?~SDX8az_BLccAara+E6&TFg^ByZYJS2B7&CzHKg;= zQ=KfTYESJkZ)5fU^cMLjb^UyR5nCn5Atm3&_&%N9Aq&oNV8_*g-$KQdr=?wVo&Mhcdw;vU z0xOh@{SL8r{4VuB{MJGy_RDesE0c?zL28G85msetti60@P0m$G7r{z!5v#;Q4zq=c zR)EkX5p7N(AA1kq(6!28tunEn`|H7FM8pUC+ZAzC72D-+st&C@WiALnGSPF@)&+SYLzcL3Vd z7y*Bri2u7z41W1%2r2*kF9z6?L1D%nT>O2gchJ$L5z@c>f9llUmtuM>yYeq+{k4o!AOX;}J zPxWo7LrWgzqL5cLo@s!Ft@zZ}H++2~U{|EYoa>Hr7cUcyT_6?{?QM*AE1rMR*W{QX z$Gxf-_*;NARe6J71gvs^5ydbIJRrzLogCWur)z4P&!4J7V%DmzwYIH6i-BNC06Lri z(Y}wm4&iyy7|j-}4i#8L3>S4$_=>L~lLwzvJ9_JBC(T}A3swenW*P&1 zNv&@t=d0}iu)?B}@>Erld5Kgo>fH#LrRg#xLoq7fg;^tnl+UEIIX0QFRA=LdX7hdX zR6ph#^@dNaCyBh&bHyE^JGnP@^4!Tpyf49sY$xL~#~f~cHtqL`(E)I7U);^NfzE&i_ZY)P1i z3BFKS)~QCq4u!q!RcJVta=^TxiYq_1WGigHSehj#tGR=OWP#R%SwV8h&@QPMmu%8R znr*J}3w{CfC#QCjp|C`*3LYjDDr1}!gF^yOqk7_tdR3ZL>A@~x(053lETec8PI0?flxyIGG3d&{;Z?(<>=h%FWJ+8-jvjZk)PF-h~L{4D%;{` z6lqU`mx*21K|4-u+%QucgWAfC+PEm=?7ZxdN(LNQA$H%ojVJ1S!;G1>S!8I7{!*7H z;G#u75pPLYU#_}Pr{mODZ-A|Gw7Ud4zv&t1X5Pl8i73`NI#;4E0yO`jGLO+?=w23w zOS)4+WsT6-hj%v0??>2rxW`OQg5%qdigG9kR_2DRzWfJwsU-@K_0x|{AmVuj@&`h?5wN=re4`8c=>3g z^!hx_STFR-1|M1WGas`Yx{brPCL~o3&Ii8ZFyi;m&=%9&HUEU#lhte| z(f+8D4zm0mNUNsk8od7pWPrJ%(B^JOhdy4Go|sdDT<$RkNu>nLS%_OH_fQ{|`>$WoV}^gkP=Gc*fE33^$h zbxV|AMl|TCI_NKjNj01LG0Fj=9W>r)pZKG`qm_d%%=YJ@nf{oweY8IhMDJ5M)c(lK z*MN<-2#&>gZ?SCZmxdEX(8!>N{+Lg#9DN(PU!QG@>;DR*F9Tk)xgS!$4cxTF?4>E9 z+0tL3v9=p~rJ9(2a~oMMn{tpR*l1hxQD=P}(QY>C%+S=?{;4JbHS#v1Ein4GUkN+v0oK zN1g{(eY{iotMZ2YmvC{=(T4Raosci@C03J*kIr$qqbaWZXv(F_3Q4Av$?VcGZVt$s zNhAeiHl55P3yA{$PMF@W((tLo9)z%U>AQ_EG+AeacTYZSgkQN9M96BXiHB4V^iT=% zgxySVrgs|8yuj$|J(F`Bb<&uGXB{>y6Zt>EhgC>cp!KA1Nh5(pm60^ zZvUFsSJ63O##mR5>2=B2x6(br$;qyHka|w@;j-4NYq@+rb}UTu7^hu5m~V@n?}%x*iQC75(~k+J@4cN{-{@4d(I_nqTU zJlXivk?%kIBiLe)XVy5*ZeLEAz0%%9{GX;s;Wwkevr}JJ8T2+8@CzB%J*zujQD9-z zNB~x)&Bq|`C*s*t^HmlS9C!yg)R~AcftF+`(ib9Jf^gl`ttwF%mk_gyFT-|~i0_+x z85(^ScG^VzJBUXD6~XX=%F!owR+SR_>A>qJBi@C*&;>*|*P7^D_17ar`t^v}na7*^ zUs3p_>4A)uiTKC_{9!^_S@le{5G=p2> zu|7v8{;hnoo-2kIh@RG~jVY0?%F#y9(wPw{(R0a<%b6>OQvG2^=ZrG3Fs07d6QR3&WB2Q3iwdwAp8hK?x5TV z{@&&#+GH49+^AeBX=CAMHUMunKC|ijmEWhb7jW3GT}e@1OB)x1Jto*ooU2249s@QX z->sh0d4k8$J@P$bWtmZ_j#`q)Qc#qY1x8_kF2X-(4<*UA4Q*sde2ZcaNALHw1$_{a!;0ew5`Pr7kG-%HWMhrRwq|v=)HB z0rtdaN>tD2R@QTacCK=e-BdaF$Rm}5_6_e{+3_een$F6xH9PEsEQ_xL#61ubgG>?w zjqCjtsiFVfrw{bYk8CYxlc+T79o4r~gt3=JX*47Yl!t>&a=w#@iTJ5;()_Ivo{%PX zHs$&8S|9iZ!UT>o%%ti_7b&!ZZhVQ9I zK_dRW@p_C)y*~4%jK}dEcqZgLG2U(^+ID^B?cQ--`$9jb-%(Xq`Rfs0PQ({awucat zux}^pLn1H?ji*l*hi>xM%~B#J1V0FaCY6K;xKKgvygbs-LWoH0M0_XoPAlaRwdq8H z%83X_DSTsg+lb=;9+Jx$Jf&7b#B9Pr_~E2v$d6O$q-q16+E(zN(6zLrkt!-5zs3*; zm4~yctdfZLZYGhSHu5J>=2s3V0f$Wp#l3$i zRh6DSR;$Sk>g`@0O>w({e_NF9FX{JV2Cd-*`z}XD7NODs(RTcDCOrAhO!&yVGvP~{z7#g=wSVUklpvmH^!ofhTX%c4A5GodxJJ3nf5-yF5MSD^KxXt7Ga z;kCDa$=FkYWwF!TNr0()giY@rX<)lYB!ER^dsMSZI8~X&SH)ZS8;o-L?1^ z1{8_76IjauEOfG!;rGIgCc(ELQa<6SEC@V>YGtksVCa)xh6&0== zOVpKw6Y-zxua#4blZbDf483^*RlT#;@p1oG<9JeV7 z%n$090h_}orS*j3hr_>s5p^dS0ccnx9UQ8sX9}dXodPh z71k1&Kxc3euw<%M<%>2Ju|%9nT!xRxCmliMXUemRt?i&_Qn?&km^|!&mXfxX-Qn3I zv?bzKbP;?Z#pZW+rbZYyFfM9<>~BDGPz(a!YNrmiDt-#__VOJSsWNeH$1h|2ZZBtY zY~MQakcDb4Zt!3_dG(0{df%hkfwkm$mijd5}bC0ooJzOcR=OB*-&ziTf}IuBEQOo>VEYFnCA*%3?gA}_FvGct_}_H0jNAm-+p^kc7N_I) zBv$(@2sbCFT=fDnpQ@zpu&mU|Vj)kPL z2h*D1A$Z+$&(lduviX0D*@7hRF9x4Q`8@s9k2g4#jo|V)_J^B}RUY#vDfces^U3hS zhKrZeq3cT{HRLhUPE0bJXX$;$PXTixoaUyZ8M-cx75z+K?xOIiKSc)U=@`DRV9y+0NxLy;a#(b*XbYzA%CI3~#vx z`AKMoBimSUpK6c2e|2c{Vfd#N!z)08HP{5J3NVp8)Y%xg%m@3a?wBayGW5RsPCq;+ ziN88S+^CM!lKlIlY+gn0DOhM4xt}vXz1q6&e)&Ua>zS()b>QZ9w@qFh`b1{(e6dDo z@i#Bvg565if{lXdisXP6X=p3MPNouaHC*LQB1=zRZ9Py7POx<+-*@tA^Z?r@4ga4s zW@)h!b{BVroqS)n+tt$vUP!!W#0`5%S-`TJY8)Pg>Ag(-gAU5W)Xt~=rlnPgGuxRO&X|ci z(6+EcS}fFjE9T#Rzv@whHk0@bHB0dZD>^EaG}e#RvH2`?b+Fnu%6aOR#ooYDH4nPG z+_XIT=88sH$a!Bbs9@o%>J7jjGHe!Cs}}KgwHr_@1r&m4Q&q%S#H}K4q*Lf@fQ}WH z8f_+tOVB3l@g3J!k`pWIuh){qG_(loznG#@_&0~#;MQ|f-S8y~Q5nVAL$$qOyRn{! zK%pQ>gKn`MGjniVH$MmCeVG+YyNT7%-%))&ykJSh82d;?>a0vYV=*!GAMiP}H-c9s zQJrsX*wDBUlH0S5mHRePInIO~$hl$h4lnQf3+&_{IsNd8Tyl0Vuvtkp5qa%Bc%kBJ zM+9%K&=Rp2+T!A!kHH#9NG{x?cf!(g-9AEFpLchi(3+gG;9L2`8>gcZ4qT0-y2KDuqoVoP2g)(WffmZaqL zxr?1eig3uO7AgKibr{JaCDOP6zo#1u07)id!of6}d(eQ)fYC-v9ki$`mFPhtim-?| zu(}2L4p5oAYX-y$aXk_%4uy>Ju(R(h-c?MYA`P`}S*pcMRPx&G?W;F(q6_-V&zl(W zL*(8D>ggQqu7l)DX*_hf(H6$=thr@_=!1u+BejEKP-xIyT%M@NJi2Upy*q z=<<$fkZqO>nmhJH2Ow^Y)CGmqKzfU({P3TkW;P zRxSUdl(2C9`}2#tmKSn;RI=nDSz1|BzbWtUn1Klf+oa%h{7#6PWD&+dVfKHB@33n$ zs&T>&pt?J(-L-4sFWZXnZqra0?MS=@BP|`m1C5^a8b--wtYR0mtKq`Fy_f1C=a`*T zYJ>y>Jsu043h%ltYH}4vZ&y=>i={J=QlF?9uVKYvnGxH!71y*Yq(hg(P6;}q1DGQ^ za<(BmR&)0kB(-w1TlTL#1C1kQl`u-ey(X3r&+7t4mKdRR5pwZ%0cD751uPZw(2`yH za3E!PYt?TCXu32SuKI}Pqt#n4?b%V0{X`8koZ?bt{#x5^Df>8Ps=+(lTfYM|Ex?F^ zI*u|EHMT2Zwpa1%PEpF9@lhG>y-VGrSXpyFEWgQD-7NU^-+^l_QHEruz9{fv_FoUP_fnPKIg%9Re-lUsFENpO-$iSo`nT!4EO^-|BFTxN?a9+(<7M zwq(DvaMj1A*aJY;r(l$pwQV$Kz}c|atyi6 z)L^|SuXM|UI|h2E&E=zulq&iY9aPDgZE>$yIA*AMmA9OZkS*l}0( z-kPP#g0-m_PmAk;UgG-iSkaTi1JKp#b-_%ven(06o|=;fmMU3m+1>u^`Wo#(j*_|- z9$DIMv_Z6xUQ`Qj554WEUl$#BqD`m5tj#Dov)2})R*m?DM}ccgc6_+Fq^3}94W8Eb zkx+TW>*~vQirC>gY<=ar6aK6OHg#y|Nzwl9lQzsP^*^Fkb~|YcVopg9tckohvknqD zv#Vh7Sj;r^JSjZ=`sG4GDQd|Mzy}{V!7;4Z77zP@W14{TVe0Ro&38x~S~6dRv5H+A$tiaAz(vOL@5zN2e%Hs|L0uJ2yR>xBAC z7T|;cwc8WdeBgR_1$|Owclnv^?~jn3joy@~5OHV>f73>e>T`izg-9-12$y9*J0A|Y zV6E3rrEd@wiE5rqSZ_B$&Uid=GasGjx5zHY6K4{M!t5@p>Ha8@xY-=d1TO6vDXDwi zJ02^mp|d9dn^4@>9S)HetVhbnhzN;?5i<~{_VUzwa!5CH8wB=xDhrU8XYe2Y8s4F9 zxC3b%A%r1h%ubSEi8ubL{u$eu{vmISXN~--j~#zcgFHfzT!osAzXU_>rYQoE%ty-rj!C|%$?1r5e{Yla!aCa~;;ePHO(Xs9Z4!pN+I?T90n1{BzZ$Nbfw6`$ zT^-#&lTH}()vC>?-{^n!eYe8 zJqDcD`%b^R-gm@_b*Aq)pg`NY#~44LS7ZE){2Ru@dc$~FZx|2j4dY?GVLYrijED8_ zV_4s#5wL zX-mwvmS%>SWy|DduPM4rIp}?>>)z~paWY0!;5}i`Y_0MjsCBs1srUhja#tRHAKQlK z)yh%T59`Hq*x7jBx(l4|`WUFdzYj6V?+vA-kl`OfPF<`y$PdXr@+8?wj*=gcHwnv_ z;fztrY-2*qJ|@CAw1nLreHR+^Ec~)5%kXPW$?AF+K2b}f-?;=iwk8W)-ur$Madm7M zuJUxR&kA?@qmU(vE|rcINblhtUhU*(l*)^s;qc6A3h?;m>zC%>{TKf7OOzH_U8ynn zSdm1$E&(s`z#5T*7hCucF^-vg2;*wtMK!wQAEs}I z(9hFz8bouCo5eTOy?!nd*#WD)fhm3K%dwx!IM`f9_4$X z8^hO*Qa>at3deuJ&yB)$Nw*qU`Zv1JN-!R`g`dYbOvevRG^zEfrF4|zre9NvbBmgc9xR=xf73HN%PagId>0BVQB#mJ zcf#=|& zfwPapAB563av+hQ=gg>VPHEid1ZmK@7&;!waiQf@T_CPQYIKTsBC3^{xuz z_XvI;bDc4MZLsu)TouOe5&WJjI1>qPz(g8k(rfYPwXJQi$O|&+^$0D{3baZp;=i(|so=asM*GdU3_O*pGujv9 zEr`KGSK}sBc_#PtxEN3sIvVhN$ziC6Crgs4&(UyYV=M1_&bJ6&xuEnRWy{5Ba8E2^ACIOp+yldtgQZ(L1Ed#Ym zI%|!g4wmljH(4cOuq1C-do7~77?FA*op{kdcF^_|Fr33H zX+H>;j#-EpX2j19%OfoNSpzA|fWGXBP>r}@*upK4yo257_Z*@&q=-2|dBnoz1ZK*J zA~;Lw(UI&NFMJoV%_K39(N!aE5yjoSDDQ3&)kX!YD(5JzIp-jJhsQ z?qWI^F#C`}CmEtE^Xa=Z1!bj67>f$yUyEF|? z-Qx^aBnP=Q3o9qf?8SHFS$GfFi1xld7c1pgHY;lD#``aE0`pyjZzF6+coN}T2>+lH zw;yK{Uc>vog+%MoOVrBIo+>fif;q(zRAWAgUEO8$>WI;+Mo>as#P1LB8)ziWGH_N) zKn;l1?a-(Zcth((sLK>~cz47S@rS1w6`m#2{;^jH(T?lxHlhX5Y8G03N-y5;0=$kS zqCEszw|F=8Eipw&b2r7*&14a*!&tAzm|(@yQ>(;P79}se4lZ7*Zft9`8t2Ndq&mw_ zGO!0yiNwm6Xlw}{X06UId|e?a*oXN&BV^m&HvFb1b->4l_=gYHIc5Lwb9Dh3b1JpS z_Ensk0{IbNO^H@TOvIMGj2;T0?W{Y#7hyhiB= z+*lt{TV_&WX&VW{BvVb*ebZLykIw#t5x(B6_u%4;DN^GQZP{XyC z_c7WuPMozow!(m2YoHh>)3?fbE$*12wq%#WCgW5Me79a(5CxWsUyV**RGYCTU$ zOOC=zl*u7EukPivVGee3^x&0UpY3C*7bFr&DPYzI=)0dZy@4;kiUj3E5 zUX7=v_kLM=7yO8g(qdp>;B4M< z(eSqaY#=z9B>3olTrOsa^1ssJCApEK)PrC{&gco~fC_TD=S7E6V>1 zmxape!R@}`eom>vte+^SJ{&)M#1y*Owk~uilxzD{2&d_gnxSW+1P=|DxvtQ%sq5Dx zT;@-$CN0IZu5Nx?3syBlgwS(xUFY+#eL>UrQcX5_9>1_~oqd>k^4@J_l%h5&JwvPK zhBgrRpL!xfcjb0qmEB>zOG%QY#pWoLGjLI|l=|?xs$$f$K2k5u{H7j1 z@nmyH$#9_uQb3j#gis#vT5Jmu+VeqVh3lW z5~QYYJn^L10WBe5KZF`wz>UCh@K=nK32m%)@EV0mHaz53!l!k|Jgah;uxF*kdW^}X zzSI}>`;cY@w?xRVl8Ly7Sj-*^aXOidZUW0dtZfW`skhC%2}3SOba!8C|MH#s zSUz&CzKv_9=LTWnUC1^4hSDcZ8K>X6r-e37yyud|x#`j>C4haIbe@hu5oCEN-j_KMFqpXOYZ1zji4RpS%X{D~YyD<+K?HrVam#RgeHy25FsU zTBqaig0`y@4~~68#OrV22VGqfIIi23z{rv(M6=*yT@B>ToSZOzn8(yAC zM0`evhWd5W35@QwPMnilt;i!O%xd{h`dm^kJ4eHwf7W@CZDVqzK~^f3;oos>HS8E+ zCw%{bflCG(kqYk`9ySShy-dKnDpZXdI&hjxss%*~q3mW*GLJ5AY~x?QKI_y&dIkpY zA9u6OiTIrpR8mzGmx7a8p!!_Y?j+h1<4#qMv|@a0F=0r;c%0H{2+zN3EwI_WqJpQI z2t=eYD|^hlxQoUF#4KIZq84@n{cWar^(0-WA8P_{%=!s z?8%p7|2|SzVNcwuC*psdqT@+~f7VST)JD13i+T-i82a!e<(ze_1`E+;MwJ#1#|)3% zm<{7wJw6qGJ3*}y)b0a{1pH>fsR8W=(8QTNG93|5fPbA*psb~i(qDdl~F*jby;RmZuZ&n#U>rJ z3cilG@j?&Je!EU@plR^gP8zf^ZmCFGEeV5=1@VwU#*|o^$VoU8Vj{kN$_1kcdo~&0 zF9Gj52XftvpKnq$O}%ik_oU(7gOX1qSVMzhQ6c4|o>6-774=+VA)OEXpjjrXK?coB34z}2l!&WSls;#5IhGmLOgoiwv$|MU3anmPT_$*Ini1MumZ%+J zii?XbMo3Q@P`_?#)GmrLwVAOp=bCeYrqi>6qFgN3%k46+whcW{Y42Jl^UElub(c2K zUL7Q$)E;s_=#b+S(U$9g8Q3{*L+$~#fZ`EqA3(VD}7PKMXPPvO|!d-8ElJSj-NTQ{kgP>FIUdKkwlsN@t-t=bhLW#i-lC z5oZ=5&K)w&upy0MEjakfOVQ1|H0K}m3#?gMem1dLD>J; znk4svKHfP`O@*!IFaw_>XX;ri;uXP#d8QlgAuy|r;JdeE)87jCYEkX3p%)^yG1~8a zIfBGNKa>GoPqqO&IPIPP+hd^k)I3;Q=sI5<%PgO}ac%|K(`~Wz`yZvgqp8Y=J0jp- zlhrWznaZ(qBn6sO#CK6!Adj0sXg&)+0bZT&yJ?~4RAA=8+ zU^!CEY`;edBL=>{?J{516@n8#+igQ!7#h`SC zpGi)meA=?;Eb6Nbm*M>Ojxbq(W;bLUep}VW z%KNnqwNelxr8Ji@KIkmB&7a=KC}K+i~tE)6c0i#`b6UTPKILl}g(7CfZ(r zRWqGa@g1TXK{&1~U6 z#vWa3l=h(Xp;ZKUISh@^uX6vSyr{71>D>E+3xoVn3(k^;tB5kc?L?_*kb`8O)0T-E z?#r;t>tzqlhd|C;6>Vc(B5?jq@N_5u&M%DGT&sZdzXHAH9l-f(qG6Xk+UQD)9&%+x zpK|3ypGLXWYBcwL%))vyD_tO^mO3#m8`1@NgA6@+CqGm` zT&u1O@I$MJXVn10J4o@W|3tWf_*Y#-xRyw(E+D*{RIU0W!Wts4>O*)R*}CfY2zL-= z)kg^Tk@{7?MfeyAt@;4rArfBIh45(-S@n+5ANXElWxf6Xq6hk^lfYhYY)lzGEB<_w zO@aL_Zdy0b1P1wp$cV+*-{IWi#|Nz`5zAYUPe! zW|I{QaH|x~$k}lR8T=(SgHOCPor%0BvgfQw>LWQv4Nr?6-QP`cS5KwJ+Mo9^D*b|J zx1;nI)9{B1xUk+KufrlXV;{doX%3zbE~?Fx*g<0XF+7l)>8*WL&F}`z!XC(gSLX|D zO{K2V<^Z4bjUYFaMfR_6F7sd4Dg;2afhlM9IHe$|ZMa*omU>B6)Z7BElH6|eg@r%O z{q#iec4IH+z(euj4X=7_v7}&TzNL5jhEJu>A)BZ1IHiFzPINC*+oYrOLK}zqtl418 z>fM(VY`yYaimey6CGOr}a-O+&sh5xSN#`xhSzcYxM*SElc9617uK(_%=VSCrN-;KK z2JW5@jmyhlQ$OR9&H_WFa7y*al3kp9JK{-3JV}0KCNGKRExg6ZOQLxTZ%LA?jl5^A zH1B9S&3o2L^Nyw`$vH;e79(#R@`@G7YJ>E(F3lz<4KYdY3?-+`zaT&lLgnxVrTxmW z6c6q@0^j76)^4C{@+g&Xl4yByB|?6s z_ekN4G`=Xp7uotp13^ez8Ka>U-;b?SSU@1iJp=T12y4H!+>vuMSUr+idNgn*=pEgc zb|yf8e<(f{uyUv3FLuBdKZl6)+y;CYsubWl7v4h%XZVOzgO8YZGaL>{+8C3XN=P@% zq+z!45N~?QYC^A%{_RME<>Qf(ecxVZi`}>3{!Odoh46+?my=|oT;9fkW?$YeWnbPl zVIpqoR1NHA;3643CuUzGmBf*t+>^zy1!YuUY2v3o&1#s_AYP) z)bD794}j)DZ}vvIvV2v66S(o^M2!evCzDv*cd1syJs%Gx)Btl6vz)*3JpIC;iWzcJW}bsYFPn? z*c@QQbAc>aqXh%LwElGe3ksc!mVgyrIoJJBvjc1g0#0x45#<%wLb`8Ci!|cIDs&9yq$qxGN{<}$GO;5lm3Fw%OYb^*%}l)+ia`^f z_We|WrWt$W&xvQ+PCRo-X@H-TDx1a0_^QO^XPm(X_%Vn9i`aR2r8F7O>niFDLz?NH zfW6L4>Z#>os~Mb5goAaE!QB%C52ft>xwAL@=D@4*!gY*;o8WGO4dE+y$sZ{njBvSJ z0pDd0@&$a1U&?_?sRAbZU?jZR+GfYjbIkfnP`w>NE6gJH80EaL`{aJLk?p(vGuCM$0+e4snA)K@jW=cp^#cd_NEcEWhX~s#zccy1@!c|ny z-E5*>s?C{f&=zJ%FDZlxP|>V6CWN|xMQn>rek{){utF|94ILnbp%$+tAkcMwbMA5)qy?A zVc{^@Baa*5xLm~B&cX_uxe@-Z&_XQR49OuCXCo$KZTzNw25G`FXrN_AIc&i#AtLk; z(A-YFMw}J!T`Si`_|b_j{eq#T!bn2Tol%0{&)@1Dc-yJ(p_g^tAFCX!Sj{x!R*~q=w;8NI zUHALC%b;7)hV|;VaRbLRukL(%CawBy+YkfmWFr1G>U(0`jIwoI{DO6ew{~2qSaVA+ zy)l&f$nJc*QoF}vf*n309Ug=a9lTwLD|5Du_jNv}+{c}0ErV7BR!-VZ=CrAqT#43^ zD}kg(wE_|y*!lLCrAYPL$YsdYAB7n0!o+U|emRtv^3Q#D4_aXJ|0!q^B+5~Gs`}w< z+;0U44oCUse<}B4-04ib28slWI?lt7$96ym`H>z}$+8nTX<1UkJjBR2?N!3!j1_Yh z9<{MoD}C_mp?cEDv+~l)(Lm12<$m8;U7S7H`V&6``PIR|wt(9pnU$%fbbTtXoY6^@ zZ`elazwH~gllE^jPH@M7mziXI0#;}U_Ia|D1BVxuz7_n6(u#G6Z^#!X{l1*qXM;^; zr0wBs0cQ(oiR$39N)s#$l&65NJ@mea@>}Skfc;K! ziBy%<25kq{!_TH1@GdBv5G6JfSh>uUvu=DahY5eo>sjp(j$etNo_s|qQ*|!2dHjHuFc_SqHFl-;wA>6aG z&UBSoR-lyoMF~C|RW9sU0toM);*3z9N;blWAb(EAzcodz%`~=S>ds9LF;sVFW##DB zs$$SSPbe&Ek8xrMCw-`Lg3j)z;dFH}{`{1`jizx(!&w_4OlI;YDcsM3 z9$vx;_W_LbWPCMR^Mpcm%P~S)T>-c(t>JUXwQupnsXz}E!b8ur8T1qWo>Z=c6N}Ue z+0rEn(j6iv5s8ypEPQD*c(5#d3%^l`>XZpW-h}vTlJ~nV;`p%}{226I_?5_xPuT*5 zhY0Z&Frcs2Ln9`_jGaZj^KcdpKCbN?WNmsc%ptT%?}(Z4>5p#nD8E+RHhR)^Def}B zJtMFzn%w57;7-9Q*Lk31>@Wf5RBOC&{)9#y;CX9qbINFPtseSi)`^5@eRZl#mzxAuOsPx*A$Rqo;U zbv&xs_S;{KqhE}T{(7rQaJt&)*-`(x$rQS~@=oohmCsh|IVW8kt>`Cu)%W^Ig!xa# zXSP=6{lVzWt*vU6d3NQi`zO1CVj?#GU+^)3&9g*!d<+}Eq`TGw0>$~Nw(p6XeVr=x=6Vq08jhb~k zHxK$>wdFiy4L-))>Ul0)Hk|jobtM2xn^B;bgpVN z=E_w1;&fKins;KJvSS<6u6gxV^>z7D+F$?v_O-Sb!ZCmKk$2rb{k|$S$b}(q;P_CN z+9vfKK3jZSv0NXOh<}IARX>x7hGbEx)Na53$bFityhJ|j^B*zKx&^N_kUwT4(W%d& z*ZRfvyA_{dp7Q73iAxocE8zC0?yzg@xNn0^>8sTfYpP2AGgR`Qk&CEgU)8)kw<^E+ z2cOqciqW3CCSRkLMO*%zq6mvi^vk+J=Ymsh;@wJXf6`zdYQ|ihoe%HSW6#YR zd81Y|)!qb@>iL`NH8!F$&)ulBGO8o`MY$?ptL-}4?nk-~Xq2{&>#g$UAJ{gc4<`J& z9<)tZO@GcxdMQczL+^VPD|=R3k;sCyx0-xnvk53)p8d$=v;S%G zdDrJxvo`&iXNz_E%p|HjlM1`HrHoF~Dz8PaG1VE{KJb-(@#-&Vly2Dcs;MF3 z*>SZWD1EW%l~N$rXb<{BZkru@tN2Vc_nmJnITS zSD#$1Pp;OL^WKw}wyfy1wK~i7?v0bqGG|d}*hwck>pWeb~vx0z1x1 zmz!9X-bbgKZW|9_v8HY8gs*8^w!D${TwNPWKJT&Y`@B9kvh|@ocgRcLyGj#pb;<))eqRX{p!&*%Z}|(4}*n1-MwMx z=_;Q@&j#ZUr;^j zwH@I#gH`cMGI~5${QcRW|42l6m6-Qq#hZIm z5x6=dt*3?*53T9iIa&L>Rnf63>t+5$>$twpf6*8EWc~ZRV7p4>)+7L^k!G*>=P2kW$rpx$q{t)+^uytBGWed=QNo+Caxf4aVxke5iR zSFNMo+D7}Jn2%L)m-ZmV+& zUS;2$czOJ-a&K~SJBy1|qhZ@#8@4^ix<(^fZt@t)<9oH$kk=oKNn&PErH9I%+*#eB z<8&+A@@rfDWw&yiHeyx9(%8tBN{4k+@4Y@5QzvA5=_Z|p^W0GDjNDQa8C9x=!RxxN-*>6c(KDKxmqdXpZKkb?kQgvyHBqAybGK`}N#Zw4Z%O zpJhVRwd7@bw@GWO#qr{@X)RS#OzC-Q(SCZpJ`II!oU=2%_G;_tyRkh7C#UsacbMlg zie}+7sN}XHR(P`Z%AC%>z+9yOFDS?Mf_{xJY|?ciSyyTqB9gNJQ59#Ju&q? zMY6Hu@qFi^=a-B|qsrY3-8SkxTz%yFhr)$N!ojhx2A8Dfr+w$bXZE$tPsL8McoTDwzU;@`0F2x6;jGM)>QcmA%9yT<*&a#cFMa=b87sGsnAwP`0F#8(-q3u zUa-1D!>OU}UByN-S--3FV{fHL=kaJr{bcQU=h%sgPI)+e6D>L$bX`BBcE)Vygh@&0W( zpDsl5CZ5;SE|siIJk_V#tqXQv>a;I4x!}kY&9zJ3^U0FmuPoWGC7UPux7o5(d3?Ht zlGrk!ot}Ha?Ynu8{ST?W7yD+b@75!_L&`h4A}a!o>J98(O)F2nzBl1_@6GS_&8^(a zC3#|&Qi<1#H?Mu;u0!F-`?c}U>Wb^c-`M=S+M8KAz9t>5>9#pnoA-^FMJg+n$GOB+7&rdDu+nL?c_fd9FU%YqA<2}90w(sn{bBapr&d&Qye6s#r`6FE~JzcX0O6uRD zU2NBNeO4;swP@Z3z54W;)T2##C(k}!jC$>QwK0<~Q9h{>qeNx6&*^=O9x)a4Y@W=P z57nQ`>(;9+7p`njT$5LAF5T8<*wTwiE$Z)))$OseY9&-T#?Dd9x5w1$zdG*Q-PXBd zP5M>evsqJpq(%7~8`mp1T!~qss{4b@4-C6z>hS8d-U)x5zO#5ssy5zhzrmEEZNyu8 z97VCaR=F@m4oY3qdCfYr_*3e$cx$Ft53gx%rre|+XP)|$d3RiHr#{|m7LN}vUO#vK z{LJDTodru$mo4~*o~8xA>A7dYZ&FJZEa?d?_^Tej<_G70D|5;GpJlF}|E(>7`9Ir| zYy5e}*Z5+_X?$_ZGk3jwdU{uVuItq9wr4h*ra(T}^g>3zf{XoYU#Udk@t@A#ZTTqj6`OiKXxyYT@{t4n#U^IsRP`$!Rl-^-PZm-B z%f_-W`kpHBExhZ!h1YK}k3X2+X5+(@H8gGW%iF^djhxf?i&cvGvPvmor2_3QcU;lyj3!cBvFjzwbqdbAJTR1BLB@kJ@K zO(koeZT0^BDBJ8lM_0bDt9Odc2itn1Z7D}J-A}A{+>gFsbInfkB{|dRG^~z4wzet# zak_ua4n z-CcE;^4y9Ue*4-+_1v&Iu-Uq z%E`XRJkYW;@PPkz}?MZBz=C z>@685Hs|&+$BCUbnU>?m$yRrd_I9fzw4gq>HTlo8o+wpm$!w`cX=q&eKBqG6OV%iF zku6ne?#!Y_nw3H)f+hX_PMiC_J+`aC-}rRts_5KeX2>fbpx&<3fXVo=p6d2mYX1XkO?-d0?PsF#>RyY|$ox<-noXotE2x%=u>N0%w&`m=JN)%mueq@~ z8NbVx5d+P|oUT~I>M^cbTzl>>wA)jgh?AN;mJ@B};y90~$+pF~#I<%+9o^=?XTYTmoJ zg|D`T4*T;q2EN_$Tb?hUR6l;RAfX&(p?AN&BVAuo_8Mc$thQWl#}Up}`e@7d(i~p1(^ruUb|#`q#@O+_L{g-%)DE#His&us||xn!D^JczB4cuH79dw&70RSxJj)mN;lt0 z-7ub;c3Jgd^TQX;J#pSHu~PRwP};1XSBek*M{A$SZB*M~Oi=@s%Tn8ptG;$`o~&KI z?#y%b&nZSpMB{~OnjO_9Dfg_$x-+lWJ+3xHyRCI+T9(=AKxNw1bVPLow)V!>_D$8f z7p$G4XZ2+bWtTMTmu%C(Ky!51e^s^mbOb9s9IJJ`3LUQrIC`EDNbSuWn5{B(zs~pU zKE;aE@&WbRJW`&n@rKTUiK7~EZnvqs5(Y1x7nQn0MeDa$b6Z~!@cdqV!L0Wmxutbu z>+Q#l|Ao=GdUVXn#`fKj^pAA3daXT5VQgvP4ios~eN*f2*Ra3SOIz!Qt6HxezGBZ~ zN!v@ySBkwUr^565&#UirKG-zqCKn|iY&kXJGc_imZ7B}_6+ih< zQTwBA&TeV%xvi(QmB1aBymH(P{p-kHyPb9gI-c*#Z`77n_}|i&d{dhg)nQBWj+T2` zPFA+%nnfmaAe!7$I&oZ4v2M63aKmWqhJB?Ir+lU9pULj^MuYa9J*JJ`Xu!+pc)i(b z)$&Jjhvv*1`KkT=7M-gqvD>byH;GrKYfO}l@#g+=wK?}ehmGp?OV!2O7;jhgnaSlQ z*GasVS#xN%`UGhGceI>+wda?8#46{5jT;^swr7aVnb~$GeRFy@q?(F=YX-f`?f0u| zy=w1F^YL8RuC>kI{434Vr>@_#c|DsqvF!x5ZQzo8w?-noqxy&M9C!Smn>}rwX$)MU zQKYNR>Ml!LAFfFTY)fQxr%G$j&mGosMztqe=Sp+MN7`!a6}$eI_W0D7+SeXQ{QKmV z0zaRe_YHPwrF;W$eIW zCGmIbvEj_No8CKNoQUd0GbWN6JlXZ+;K_TR)P7_>`c16bdUWU>x+zBs8{Zy(V1#wxk)GK?_akQ^;y36`(F5U zZq>O}r%qL!Q+4W`Q4`xywMY!l2`-r_T0Y4hhN_AK0fDNcW&5Fr;BEBWpx?h@cuyEvAcd#ml8HC z)pByb#c z7mM#JN1Rq*>IJ4OQ24&`9!U-x&{i#1rqZ}n{~I?(1C)6&YKPk$%QRD7TgEUvvdk)c zxh$V50~qV&sbSsa=Nf)l!@1eB+|5NNX|}oFar5D-60WYiZhyP9{9nsiy~E3`!nB9; z>8GeCJ&bzM6Wl>o56}Nu@7eZ_hxMS^k6Dgi-~X@^)NXg>(_;gPeh1wX&~motxoRg` z&h|98Npuq5<&L^D!z5b8&ro~cP)DLG`FwX2qfDZ${EWr=s6*4R_)VwP9bLQ?qx=NX zp_QlAR^C@yoes3qhIU#;+j+q~4()_J0kxg*ciKt&@9k)9prMtIqGdr_=xzYNJT#I+ zk1Ki`p>2=n(Vq-@s<(@!Vu_MGk4$sXosZAEqBQSUNc&yxN9GEiAGtk}yUs1<(R+u` zYv)Wci@M@7MWkm4bq>)=HN%XH&nnyZ2=(SY#6jo@|7#MNPUw4nUhWk?<nq#-z1SV5=em_m_17*~vvL{ft*l?W zWX<|zjY8$J_4P}Ztwr_TyPMW{gs~U(s~={tin`THmaP;j)~sH=Y)MlBShf@uo9fpB zjX3&(%r3j<9$~?es9m?)5CKYhvY8v?>nLtCqd5v7Wt9AA-~Cbbgz@@y2h{ zWo6%{MUnK@RxJ{08<#C#*0>CWttDf$fHDE^$lXioR<9n*fd1;$^-cA4E9;w=sjvTA zebU?V1tEED94WD5?9LOisD>jS)^g<48#r>0od{Yh5qhT(p;{D0V_jrUs>dPz)}2eY z4GHztqRBf;{L=v|JvC@wx|+0VqjO0P z{flz)E=VlVN0T`VwG95Ty3?IUh4@*ebX%u1?~-gU7Z()d(uUYrE|)$MJF5unE$yA3 zc)OUrRdc!Y!PpT|ADu)_6y7ZMRsUWg{v3KpIfa$N9Mz%4)ZxfoC#z?P*%S5AafGy5 z1QY%1$RDaL!Yq-WXrdpF{3p_}Lf4fljfqA^P9tZczaJ62R!WsfH7~OK`y=x%`Q4m- zhN!1c4L90c7kL+F*VEm@T}W%x^p4?+NbA*fV0gxO*Tr--y>Yk^>2Yd$-EbGuDQbGn z@I|CE)O7u@K5FD$7n9Z8V&qKxyi42Mtc?edGvi&F`tBa&l8`f~xjT_dMlMUuiO8iO zm#yY*A3lM;Fu5|(Wh1}&CjHQeMR<1}X??He-KxxqGeu4vlY2%4A&>gwoY+&fO$@l} zL*}S~{e_}Zt8Aj9M)Xkv|GvZ{HA)hlHbZ7 zc8O-m}~$ z7}iGrZb*4nd%44t)atG$_IcD*j#0TjpAN(YNZh%j?AM_iMLu&{cx@#W}2ZMejjRCG(2E8-*0X0zja;mo3Oqqz)6PB>}b5kmS67MInqiCi}`>=cve zm%}&8z2XmEH!>`Aozk&@h& zOFe_RsGG6?I@1=;f(^>DWweea9Fsg#3eE-=agIp*MwaK*e*q-<`ar6neuQBgeapMNFdn7#F>`i!2W$JvXJLJ)r65ES%kM z<(ixmUR8`l@a9r}gg^W{b(NTf6|FBe?X$#wymr~@rUXTa{2h&rYZ_Gw*%mJ}uJw%3 ztLDFbEzS_`Tr_Qy zsnE1Wn9P)sG58XxZuP^YCP}y3;$^Im3%O>|MowDL+l{ zEQ5}-bj`B0!s<0m!rFBn&zi<2p-HMoBloU;Wc8X2tA&bHOaBY98@#h-jUhF*^%kh3 z{$o_f2NmS z!$d zJQ~8dw!a~oF-}$Dd{K|NIIeVt-i~rf*t^Y_B6#0hEhb67>HiJS_a_sVttF^&ueSyK zUw19>q_!n1JYneuT{B}b9{`C6!iqmslH`m|G zRY^H?aeSSeUe9vXQg2sq_G&pSeSIF|u{5EPvvE~bbjVQ(uonRPgONGabE>L=zXiCB zDsFSwWy_%x;;bDW>rM{MiM6J_!q&V3E}L$N7a!1J1xn<+ z@uCASDh0&2kF=WFstcyb#x^oK3R5r&%Z9JT4r-#m85l2T(ccc`t2jFqj-=BshOKJO zM7Ip4%8&&68p`vz^yLwIwSb*t9QK0`u@mRg@?l1aF_c4p9(Rd3^gulMA1<5T5x=zR zU>?nkrF9;=Kz}rPPQdX(UH;fQBGokt*C$pRHC>WOSFc{XZu#>1CG}XTggck5TGQww zU>bG6p#D#vKArSV-p&!W-j=@gc&Ap}t>`RFFX4n&6<#oz&nm`6uPWGqChk`Bmfech zSuYlQ1)Rz1;yDgYq)1KQ7dLb|kKOi`mZXRU;j_xeMj{oW%)K7e{A}D49%MTUexI04Vy?D-xoK;S5P<(!9e+T1QqKRmQTzWKCArJWEn_BdR zqA9f#_{yMZ-53#2d!h2s7eE!;5H$E!y@Z=F@LzV{a&DJ1d&+v%=X%JnBplu7Q#%dbYb{_Vtr5%3(dyhZG1 zl`p55Wv60yo~aP8`uas*) zId(yD=`e?_N2A9;r$8p1Rp`AMS?(g#s4TS|@}2A2Q_h{_$mQ@1aECH)oA?882YPY& z$xdBVFmQ*A_9N)WY@8UHBCH==hn2n#ZdnCxd3hOCxn=JN&KM@G$}cYunuR*qhLReT z)C^w)FU0Ltn6Kd>U38+>e8{45Wx1KiprWAa5bB$k(i-^QF+72trg(3$qq5GW+i(3)1x+(5BlH6 zD3$H#j6<>sB>UxiI($}|F`^}j-cLsFoighe>;3kjL%z5w62is?k|klwCG`t_I}a`EE8Z57iis=m+@BU?`c zXO&4=uAm8;Ugq2Mt%IFh<>_V|SKtSbiD$1d|lk5LQBWN_2_=^S^|88#b~v zrxSnM$<(&GuL)_`IJI@BVQvp!ND2kY6HCR^){pdadtec01mu$6!yr3V2vH$Kh14X< zELO|7S($2J(b^&XSQU-P(~Z0%xd+lKc$@O*kA}(|hBI^{2^obKm3)@MW+|kSx87LaEwliB-$~$MMFiMR9#E6zgg{rVoHQe{n=e1pVAd9&pBBv zmWlDJQ-;|pzs2@7R`>iNwz{V%iPb&vK4*Arb!Y1uv6DSyVwsOS#8Hm(k58r3e(iZn zi#gQ`cT^a!33ld)nuyb|u&3}w(r3TXhS`l@?Hu6_*}&tublspIQdB^CCzu^cCtp;Y zumoK+a))`!@p@ond*25!W2XmeK_2~ej7;*~nI>NtU7g+|x%Ax;NB0G+Pw#O!bJ2sb zrMAC!b@;ZIe|e?^dt|amCUYWrhV6)gm`eXLT#ELzBz{#I?$vXr*$znXgFm3`;dy$o zRAPIKM&?>V47f?Y3fPC{oO_ z+dWfC@4m&Yl{wLfy0J*IJGnbsu*#euH|Ejr$BZE&q+@L?gDoz8b<2oWyraqwjn39n zA(3lvhQ;_e#kSdk$Yh1>P2$ngw{)VbN-Jq(p{1i-8=fSQX#){Xm~l*Q<{Sp>gbyl0 z==v(+)!I|2C4R2C+IFtdAwtWcJWgCQFm`;ARxG}g$EiFeTp*WU`4F>kEXEUCPX}7J zhAX5uLOOdg-u#@+PmIHxgY^U_`Z>~^5HD)6B5;sjr^`C~*o7G`B9~xa8dsAgVgJK! zIZ0X>n%J_fd>|r71Sfxs+vs*n#*mf%GZw%4e4GfDW56P$R-2@}P*TfN<%5wE&7Rrj zDk3>TM6!mCHRuv`JJksd}fqnGVTIx*OJ(0f+7d8?g-4XJHF!Y5 z9zi$<)&+0`2T4dC4%?t6B6ry#NLg4avtT3>mmus zI1>wqZ%2)3)MxBDA~MZtXi%qWRyi~+e%;?ZOf$5Mt&pVk0kH<2%Y5Qv3oFW#IJO!dnezKOFtiCQm>X6G)E_E^w{y(ezscS51B@#zGHyxds@<> zmz~Af?--6BDs9~kw6s3UJ z9!*~f-sjLy;|yE;>cN-;QuX|x$ID~2JrX5pd{_`O;Td}8vyNc=>eC~6bU7?AS0m2N zI9)~JSC7V=E55f*i@sUuWhGbk0ImW2o}mrvEHaq{y==uly2^gQ6=@@KSN!T*v62<@ z?pO>8V=G!Mot1%GjRI^5{LlogD5|WnK$OHiRAZr1g=F#T)BeF4)>V>9NW{r(Q$af2&*-Vg17C?RGLaNki>!Pqy(dN-4-M|3IHx(jif}S< zBt_QLxqVElfz_Dk3-^y_?XFfP$z$zJ2#;bNEdfj%EAyb@_Hh_hR!1962It(Z=nL7~ z_VGB2Dy$aUvD^(EzA}U0o7=;3gbot{5N;GA0CE-(y&S*#?_q1msjh1;4;=(Qj3X^Z zw$rdZcpN$CBhQ+#cN?*HCm>|vi%PzQS&UQZ`9X@EjL1uEA)kyL&U}*A|E(*b*S?F9 z`Z;<|!zTHx(l*h8(H`G(R(U$pC~3XPIGI^od9qZ0B=jO^W}G|`dNt$Z96BzZ&;lil z@b(zf0`rM(R14e;ImG6RdH2(k{)DFa1I*QU=$SdxGi;v9cx>@-V*c5hpB7%>?Fe%A zw%KgPjS)8Ay1qB+JAw~NvqX)(efH{eV>Ad(9duhp0|#!lfSbz)6S^vsfM3L!#8^~` zVdoxJ?yC`6517+f2nzdIuXn~*)b9;hHj#-u=7r5N?B;-#f2XI3e*SUfkn}Co?qu3z z4t;N=_&a3_N1@##Ur2|(!7$00!0_701&Ks0{3!jZtTRc^q5DVZCSxdmHEZZCMeFyh z!1>cx)vbqJpX}i$Zm+2pIRR^Q+_Si0Mfw|YLDR|?@_V^w4IQL4C7PkRxYGrX&y`^b zqn|-uR5C53pDS$ba)dl9%3Ahzxv)y?RW9!ItRNGsA@2>q#CFr4D$Zu&=m>7Pbj$1U zs|$u^ozI?n<9W%ecZ`d41aT6K9|?svL6XCnr!+-|aPp}%xy;uQB+!JvikW1#Kf5lP zTsrW2M^J|q!4>~@E;Z_0@|er#WhQ0cU1i%L_g||kEVxM>2^~B{iP6X(*(QG%3u})6 zi^pr}X05D{8EtpteCr8!G#@u)^fBypI5#p`XvZ4f0PF=lkXi@Urtk%+_iLBn2r)g@ z5b0><4BFEjK@F(=$H+Xn4*k)=t2I@=ZsV&#wi-?W=JK$W>S52hEyDJPx>1de;jS2P zyq#D(|DYIXvO#-Ydf0efQaJg#H0T~C&IB!i(ZW{d2Vw=Xg__d%$mR3L4PW=cI=J`1 zCe*g@B6}Z&O~wO0|7S!8?a4}C9AQ#E6dRNB&>%OpR5YoU7q*|ynU&a6mwv>NYd;^E zcUB?y^(orUx3TJJBF8RVooA&Re*L_9uK98~PRZ-p9>_byiyir{EAQo%U75Sk9M(d= zGCC{{UD$=Ue%Q~R3*7xTD}7lZjzL&KvaurxA@;m4o{jUb5h)oE_Ph&_mxe4z{Rt5E zyaSMZL##~=O&`E$dAU*iSVP+?p{J3yY#PML?yTa@sX}iF{e$03-x|urS$eBTrhUTp z>Q+vSpeNAz+LGyY3Xf7x_{l!Amn$}h`Qr4jwpa`siwXVGZ^7T}z~E=rZtTUwuF7^d zCv-0F4g&E6*yICcEq3LrhAh^w)Zf#f^F1uJK%dfLm}stVG$S7~j&X z2(4zRU9!}<>yK~Y=)bw+8(6B0`bSe7rCb^1kvpRpg*xEr&~3HWEavS8Wc_GszfxO! z`kU5%h*Ckc#(bV8wKea5X)WwNt1Q)Vl5tZS{rm9$|CXnzEo<$|Wv-3$`iqhyMgix? z>{5@}dj_69t~kG^VTH-d*>hxrQ0jS3(PM?X6I!*f@wlO?hviB113ylXS}swe$c7r# z-s6qz-C3nKE9iOc9BG3SEllD{w=gN6KFl$xJ^3WJPzaQxU=8uQ`m5f(rNOuG0?Lp z32AH{&Zd7KWKx(12z%}Tk))rw7v65Me%EDV@He<7gn4~3UY%RQoY_4W{ z*2qleI`RH{7{T_Mv6=a6{ZHn6D{s$L|KCd6C#tkPS(T8ro8_@N{GKXxti5>5U%BI( z_I_CZ7}^_?xWIpDFYMl2m5{b;hyK5%Ezz<^ZCMN6Tqqug)e<)Q0ltmw3zipP)E=oa zd;P`ch!G>e*1Jz2ePgm`k_{M@Y+eOG*z-w1J{w^3`@o1^bbhnea*-yiv`)LPj_GI%h{|NTGACaCQ&X~3^M^4~; z>`f&?EuJ6aM?a3o@4@rW`27w)b`E8G+Nl`l$bse4z1-<#XP8riu>AEfj1E`_ghpX} z3cYnmM{|eRDK7xM>(_&sf8zwHL3jDt4QG{UdiM_t+e0_$Iq1RLg!C*02|Q{0;Ac{o?=DX&XTBbPhfIKN!J z!E?fG2`W3%gGS_TtOe}K5x}f~^S@T7@iWE(_MbrlS}Dk0Djm<`YSRu zD4oG+q85}sIiQP9Gd-tdlNNaOc)ZC09w*+sKfrQUOu2iZxvs~dZo3lKfgXjeS3z;-6-{)(NjmHWG# zI0q8qw{FpO#L&qB#qlv3zu<`?vHeS8)-) zF$)%EUNAN=YN4TYafszAVHAAL^}8(L+HdLkWp$vA={v-G+<>RW&zMhjL|eWZkqTE8oU zvqu^Y@)>0kVWnJNhT~(@NW7h3Phal@ob;Ec6QOE7^Cj$64*5!?1zfOp^tn*zHmLgj ze&t_sunKfYTt9EI!uQvKlH2F7cJcrtmRk21UGt?6m0K)_d<(e1!Vi^7(8hQ+nf_vk z@l~l5(O32GcJt|j;2SQ=Rhl>PRKxSdS+L#f?T`flQrSE2(uuV@t@S$()y=O6#lHUf z0ox;W`LX1oK848c%D*bfy*L-7b20v%lld=Q?pVClJ;poRtj|f;NY5dTHd&M4&1C2E z4{GSYHQV4ZnWgduk9Wy4#sRuTlli|usiuPRcyn0gN6pvP%JPjorF=Q;+2w0lOVdxGnx&cdMY%1@dAE`*9QHlH z@t5lszf(Ip50-Z~X((%1t9iHS3~cB#*g7Qf{S`K>2ts+q(urLdiA5FrFaNmicZ$v8 zgzSJ5Ebly;piRravz~ExF=*okNxzw!?{bP+3}8l5DE-lu30ckS6Kw4~Af!))}L;?igS;5Jwy zkHy~aGG1HsNe6K0EF>?iJjfYrN#R`jk3mbQ6ytkpkp2DBNGa+qj5CY|>4)NdA-`DK z@_4x>;zEpOHeEMzyF{+L9C5;W`EXqJx(Z~E@mj=FHgIQh=tsi|{4OgQpFww^2lt7l z)|rTBB!&N}#y~(T9+DBmH3l<{|FA2Y{>RXt?s^)Lc~|S_(K;jS!e%o0_44A6PgRr2 z7NG{dlxsu-H4VsKe>aOA&V{AiiTD5(&zg;MC`+%Qbv*RAVNRY$8;ondF!D}#JfO!7 z%PkANEan-%g*P|dOO>y_TFs?dCq#hol`C>D<%Xi>*l zH{beEnV-o(uUEc>%u*r6it7qb zG>LkI_0E8pUF^JDYk{vA@z>;8Rx<}Ri$%?7E=}nS3W3_HIz)tJ(;@KAec~ARhzAnf z(-uo`)6P*2YmH5+zt!6b4irbe8V_4Z;f@2JBL*OwZi~q>V(}6&b_k$ZJ53GKx~G2C zvNh|PW=&p7Mq}zk#MvP#3(;>9D@Juo?ROFBHx_36TF#F1VEtd3KRlcG1(wP0XY> z59G>|*9!G(6Jb*7%>o2U_1?8^m3mnLae?Sn;-17;O`Ii%DzP$=MMmb(uVcH3uAj?h z5_Mra3g z9dGu`qp6VIG~*q2F-hjkcZ%t$`6Ne%|3S$3 ze{&W!40Dz+I){j)M1&-Q9T7sOUe`cal%0HgA7Ux__C5&8ENxu2mJJ$MuOBJ{U0?r_#_dUQPiAc>qIEc_v$6Fe<;?7AuXSqDUS)Q56S^6$9~QAk8xLp%>lD1!ZN^OrY6HvOMg0`jn*2=u1q8!E5uXk-|XiLXRU2sTMrLc5>`56 zw?UZy8QI5$j<}CVLLG}Bb2Vqub+O4#VZHF^k+s8X8I0QukE?pxSwFz?1U@4^a%#xX_xn&^nD5=GPwr!u7WcXY zzI3XA^;F)%VDbj{X6*B^_I2g9(oHz|aAe|Mc#bt#*`JKHZz~X9+Qnafe(h5+N(<~< z%;N0rGKPAi1!Sug@W#cXC4SuaR2M75O1!jftc>5eEj8ZxhDy~t7|2s~y(PvyOQsgcHo+1z zP;Ea+;`Z4JlcGzp+slJV(UnAplg<{~OS|?G-W~74d|GPi*ZR^WO@D7TCP*6Nct(PAE6jmR*@d zN*^b7-{XepExIF8-7Z9ekt0iZ`&Pl>srL~3(~6yZ?jiJc(&1sV?MDmDBCdn2ehYCG zI2!63zU4tjgMf2B)|;dR|26uI&>PEn3*$e_=l&0rm7U-6i~t?QKd3DKM6s%85j?+h z7D?pB&LZFD*jXfT25G?=rbWqS7%lhLv~1$22Hcu$8Jiuhg5~I=y_hQ_=E{P276!3+ zt3vxww~V^ru^M4GEDV>tC6~Gew<`i+TIqFz@|NTJQpWS-X+;pqybEkW!(BZm3+R>% ztHYPz?USRtEetyS1%=Ka;~sD`*BZNcu|Oa(KE0%Y(O2aS7)pY3A;a@7J@0W@oqmtM zBsjx&ZQzufLOcFm({NTRrSU>OQeV+zsF!N z+Ths0+v_(xt=vH_sQk)kt;A{a!Zy-o44G+VoJAduz*fX`>>zaOmC&sbNjdxU+%!=q zDoK8--|B{Ty>MH1nx7sDbQ}Hj#lV2sPx-)1y#1ZO)MPlRr1etA)~VD#+XDVC{49sw zFdV?HU_-O()uptTRy`0zlex&o&bcbIOQ|Po2<|SvAbwYpYe_AQwnLqnEKjLww zT!07g7DQ5PYrZ-3cw_5;iRcFj?d{6K`EZp@bM3!QX#_T_+RN{Ga_FU@D$MRJ1E;FU ztP?l&|GB z>S&sVSmw^5KNu_vreAWciG{Z-)7(E>oIy_y|Dmc#)VXUK+2&Kw#U`VAs9kU~iE z+K$<>v@kR_BA-chl0W~1n z`3a6#?y5!!L`dA^bIk zo%O#Qa9ZAy=0KC|n9a#K^nNyGv!|-OHWTzOLiE+p4nnlyJrqfj&tywpH(hsINX~!+{A#4C^1`-6&CH0S1tlyl zn;$VO$!DHZbgrH7Yw^NPV4kQ(-V&@SuMM(0@J62ya~AIu}B*4^CrzT6C?X@rhdKZl)>Cb3VA=XyGc8}6`i9tw{bEbTwvqCa-N%$|u@Tm~5j>zvCNgl%u8H0~Q~FngoLSdKwCM73B-G9P>nUb~7f zwrY}83pA_CR|-OHQ^EqB0lEn#_Vfi0S9kcB7lhgIT(+zku;Y=#KEzY?KERRwxg=cM z`6v%gGE1+)s-2}-&t=VMTXfj>j56K*0B4QqQ3CVBW6a6BhDCj)D2G04$HnwljLrj# zUO{iQmkwO+SfZK#-FF8TO_L6|N!z&miFHP`PL>w9)f!7V&E+d7pXggs5?&~rR|r0jBh?nui_EK-~>k1 z&X~ao;YO#do%a9U2BRSfIJGz%&AW7{cHX6bx;0To>w!hq{HKCO%-Mmdrq;q z+Z@_74BwW#aE0kRHflCI#cbAMTz?X&bsOx-RUB@|!v=@7_t=GtKVtUD2-a(6cf1A9 zn-E{ZY?I7R$#f-Vi)404W`9f*z515UsqjM>Ct2V*%b_<7Ysm!MxEa!LQgF5oyTR=v zbyBcg+vB>(xpL?yLkWLc5`AWb`7z9rLu^GXZzf$c5HGw1w$mI+hZLQ$kH?DpreX}G z(2avT5UKvhb4PHxOQu(q9ncX^oKpZnudCq5;M+=O9~p^8F&>wUCyF;*N^2HAWQNX06m0E)sjkXVYtjoRS6BJy#{P zf~4N@h*U8dTlIx?t4=htShmNM>708NsBZNP^|=7^kEzo)zDr1SXz7Tbwi{Bq(*jOBL653;}%|?tQYnhdB zqC|C!MX>)m^1Z50V4Wb|d6)e2Gw3@pOXx|^Z;e47YG=zwbUH}Di^JDdbAr)5a^9=c z_GQoULZr zwaj0Th)H8U4vQUa;8%sTgdaO!F`oxpTbN(tDD0z6NN}E{GBTmu9Rzc%O(HKdV@^_$}qVqV;V?(n48C|S1z&4;4wP2i z?Z7?L0?>IiEci5zOA!Hbo5mT6N)e$j4Xa#PeRXq9L3;TQ!*$Kts9AIWgFL;RpIrR? zGy9u&nz-Txk#u@{+PpB?lub_$oNNAw-Q9_%^ICj;V;AfUd&eiSzqSwIEj($#$h#TCYyEuuR#nN zY<(CvL|D$Ra9i1$!p8240in6q6nCVC>oHP&1GQLHNHhiSa_DOV)^44>6sgIBtap5v z2(S&tGtu*fdztqhnykYf&W3;8kNE4A1}{eA*#W+_NaTH*VlHeX8DYL{tCWdbJjAJi zwTf$Hk^S4SJ8+Y@Hlf=qeI*;oK=^ColQF(f3;5?R=q< zoA`vHbCMzk$&?Z>&GQ;MLGy%??*!DD0jP#rDmBl&^K~HOo%Q1)TpR3A7jwsr3%?aA z^-3XQ^b%oOaazP(lkPPjw!?_kzgP7Z-)iTCU9b`D0(Gy-ZhR?&D;`8#_|v5IjcX@- z)di|8cZ?y0LwUR==Qf4<^{)vZ^{Jv^qD%PYb*iW30Wke@oZ)7y*g)6Jd;A7coF!jNP3NQKG zo(ndIn2%OU8#y^(pV4$a9Ms*@gk5qkJ8 zlrkWKJ_q+b%(A_T^BRlT>5q?O)7OU(PeKF2XbmS%>myhR7c#gxfF7V_zPxDrT=5(5UyONi_NH%(FyriF>c(Xs~{YXu1 z^c#IO@Hg`l-}VQ6AE~LB-`HH*SkoMA=KIOSje!%*=8bBJK-I>bYAO~uvC+Iq#k93* z(@r(DaqEdq=FMuktyP;_km3rvs|L4nuy8Mg$0OgA*{8jH$fIrbwP^N~HuJ6a7H*Fc zB&}};n}aih%g@Mb;cEz$ z@y}t4eVq7$0spUp@4zQ85aa^9ryV|;{ZD>4{_|~%p9};;{R`6gp5wuno@6sjTFyP$ z*`Gea7Ith>PoA67VCj`Mv%6l>rhG(cr`Zp#AF;2OhtxJNeADL4V7o6H=jqpFi~V8Q z)BKLXbh^ZwFK|U34b-4!{`6|EZ~dx>Rr1MDZKu z`L{TR9LbUC>UgHA{KDeOzV1)g;*l03AI*})%Ih#y}JQT-+j=l1B0r{!HFBtPn0&z{1H578np zz^nC{vyZkK^DIKQCb^W_Ndb z5>|KCS^^vMX%$8YtV3peiH8_%*o!)e2K&v0EdhP@X=Z!Bu%UA^d#1=zH-o}*0sH%f z4W7;Ih}Uaa*SVSHJJCyavto#I;0rXa5oXQ0HO$J->SH*0$4!wk+-5j-;nF-rBmW;U zC1^WgDCle0+)~hhak`yjtz1PbTMZ5Cw5MCfH>_itR3}<5)9d;gH_t~oLVEzgh+sUe z{{Liqm2hEmM*hjJ76aMqif;9D#fGTMczfi?BL|;Ij86yrdGPvd_;!}=_TG<^qJILL zpJB`ondsSk?on2%+{$9B@U<2A`x4$h#NG~*%g=i{winnto@k9lqdU72v&cr_*f2)A z^MB4{i_F^RixU(~!B`(R==(gI0}~RXIf7pNpId!!wAC@5VXZwr?B3FWTUB*iNE^Pn zncv%m*wMcndZPQ0pU>d>w{pIRd3%W`OKm&RGAn7!|9s0w`ra->-+wRJ`Np3yet&!P z8D)b1;FkPKjH}>)Z92ipcSB!vP#yWYJ}D76n}x)(RQ8 zA8&*$KS$<}K8Q3YSY#gQ14#3N84=(a@XHzz1+7K&c?RyPvKVRH3ogr`nqOzq>Op4H zpn(kB3Gs{Eba$3Ux~D{X4jJ_#0juF?PGecg{P+-t(;7+*qqx z{#V0#5iVCLgI2^!Lml6g|1r)1|HN0z4xVRyzESP-`SYwl*TtOZ5BfM#t87}8M9K^_F;F}AG+fv&!q1Nxh z9n$e}jK&Ai=KGPuYAZv7AFHjb80{l#GkoPM4OcaGM-1@)hd>{99Z zbdb%=iSuln{u617@H6!L(D???*HC>o=+pG`IsefzyMp!Q{Xs^ZUv07EJ1usPwm4OV zX@&Py+^-EffIEZQ&=0NfoZ80AgMM{RGDd4N>YhVw_B4*x{<%8xKSFH=9fqeyD{RF0 zK6E|{kzU47SZVdJ@p*J`p*l`qqJ&W$r*-J3wTDcT)b>{oy4ChSRo`de+?RNJ`=zO` zC#%%_V6a1_=C`o(jB&`_qtqN%VXW6RqxF8E(p7<08C{`oTAele{#wjP%6Sb==r^fU zws}~&YX)o8^7~Mpjq=3N(r>FAV?!@lUv{c*jq03cV2oJ1{!yyf7#c@Mc)bd<2w7?m zhX)cP{D@ln^M6`|-~Tg={j?Tx`7wTD@$!j%)xB1WF95I@kB)P_xLdDP<@9=N1RTBs z@DuE_l^WtTVFb;1mxP@w*^z>GcA*vbZfs$}YY8!nJ15Jw>@d^pnRQEpdkKkq*-Xn< z?Ome~7wz)9n=MoaP5M=MMmrD>wz0h8%J5p(l?|f188?Mo#`2rO+J2*@tYtsqn0|7{ zZ9SccYkEaZPdZt5M_~`Qt5eD8t-IsCQ^!$8pZa69j0I&_I^*OMchsEfR5E&xULM@y z`^3MqJ!($<>)@?lAt-qV#Xa< zJGUXOZ<@YyBSz#?2O=uYC^O`l67xb|3gCxtVqDsT-~M3Z*f<#?y@s2mdwLLK#lE67 z-X(v6T`R?zO~(&9yZ0%?!aO_zMm00y#;Gq+GMn!ur|kNfbAaf|AN=^cDt9^8ewJh>I>0d zcsTzuu%Fc=pV^qr0N=D4kDtMW|)o)z|T0)u{aa^g|t`;&jkCr1L3r=!kh2E=+C>qAs|$i@0=0f3rnT4O(mW# z4-q>3S@h&kav_UkNJgYi262t2Yqf%z-ZTiicunyfqr2R_t*)r1ybdc`V+T$d*|<}{ zsN;Ho2WuHuoEl-)+oT8^g9K#{gR=2eWxg`R7L_$vaKi0X$G$q0hp#te(|?0Ah!m(V zyX3bA>ewBYWEvgN3j!h*i9Lz#92mN4AGNxZ5} zXsELqk?3-gWV36csmbZF)RENdZNTeP(tA%=3ixZYvsiURdk5 zI(PX>T?987SQ&P!;W%P`DDIbPx#LY8Ek!M`fWVvoi<8FuvWtiL*7BD=ao}FKt_YSe zJCSdLrw4MRbmA0j3GsH&XQ8;+nbKDzIqMP6aJd!tdJZw{1Rg4G0ry007H%#udKfJa zaADjeu#ma1ymOLGfCZGVs3?-c3s1Pe+%|1PRZVR@LF^3Q*SXQ}Ah`R45i?a(w*cQB z#GhD0MbK%o=ox%7!b}Z=yu${srvWDb-I*2QtZL?2aw=M!1+u6V=Nu1)akdB-iuHh` z(FsGP_*#V-_t{wN-(522m>cHMqb%GhW`AeLN3QNxxc`T-H-T^BI@gEKXqPw1ONaqs zMmCGgDwYI03z21eEE$6hB+c3)14%{(5*f3|EMaVx$Yiqt%0PW4tdvBqn_jb%WmKS}`D*;LRzu))!;5VL`GiT168O@yYzR&x<&+90O zQ0@PW4_KXKQ9%%RszQJB=mK{O9AxAj{l%PY* zQ8aP5@YM3adP87!q1ZCQu*o*|U7J`9xL4ZYQwcI#-Ur&%za3$h+UJKzDvQlh&kn~SopU0qxB|%Qf;xvVto&dNp z;KdQ~ZBWAPm@RbCci<&x3O6}MoDzeGDm_L1^zFl)iJ5xNnRjX(z$eB=+wpeWFyHDN zBcm^)U#9LX-f?EHw=&p__#rc|M(8RY*sFDY`JBX8ZUMs08I)AWBB^}#84+h>@|H6W z%t*7Je+Iq>v!QpmlwV1}sO_A?-cYTiq+~{aj6S>UK%s}JUnv8u&xLp7?qQC}(Xd}^ z^wj?YGCjZg%<9?(vl0Y9P?0EAY^>x2t2j~6$Qwkr57s=O<0b*)g*8;sD6a8%Y7y~| zmceu!!`jN_XJX|3$1wHzDD*;bG(&3Q*!akYKnH`{VAC9aQnfQhWElBcfvDShc0oHO zO%*Ff;BT2^))^Bt%wz1hy4i)>31iv(04;NA;Mk>vmyIW_-An5LpjY~By)POzAQ3U4vhBuSnNmDAI&2i z)_5IfOjT`(&=X(RB0=zTY8EtL!MAC|3QviNBt9q<$R?$O2ar2HS;Kyqi@Kyn*yAi0Nb zAh{QT1Am+*vn}+=d%S?x7nu2n1WV}Urba1mA2z4}vLw|3E zTVJSfjbkf3D}mZ}>;!JxR11uDAyC_MJNG>s0&44cDv8>Tz>`ZLwZUsh?doBBdIG7< zQL=}wUt*59M8| zp_h=&EXV;qShVeFgm3-?clfT^75)jnwf_y_%mJfsmi#onz;BVt>lkN_@|?tTAFR>o>L1VI*Ff12%CH8~nWOX$hz3DMvXsa1HNVJ(R#ZbCebE@BCN16Z1=Hd(}Sgz6E?B1$I-D zFTLPZPxU2Jy(Um9HA&k#U#Wb>WA)7mzTz_`Uys#_S9Jm<#ZQzzhef_#d zp*|-XpM>(s)@Xbx*3;6W&%;us3Cs(Y26m$E=ct>~sHyihmefD()dZiO|IC7Cs#5}` z!Fhq^;LgBrgP#X9jVbl6#+FJ?eH=d4VxS{%F5sva>lwe@3%A)7+q|xzDX`6}tiYTD z3WR3QR<9Q2y(>+=CX}|q@6Z&G5?k;$3_Ow8@?lF^;qr5h8$FeI8fXLO!arA5TaFeU3txm&x)bS*L z+*5KZ67*c#$__qtZL21D^xBrS(Nv$TSA!Yw+PRIPYg>`VqxGHxy+skjw3 zdW*7TND*gOa-pK&?0H;irsNSu;;c0L3{N)L@JP~nEC%^3HqC<^1H`uLYsRnBs@`Xv zj2S9hnL5bX;J1Li55*jP<=3`vt5ku#{o>9OdK>Fb>Nm9CKhj1&b5QS4GJ=H(;ZLpt* z1#5bIjBMYyZ@$-NZ*clujgj!D;M~1A>Ijk~bE==&?O;S<%$hjouZeSRipTRy6XV+M z7$KVjSLgml*H;d&g%D)mY~?3I^hhV&Cs==WuD&bHHjZVd(0G>-|Wv)whWR_)WM+uq=?T9 zkkgE#za$wj4ZgnL?O|I#yiDvSW$*B>WT)7wF2g7!L$BDuN!a##OCH%T-y-T^A7}Q1 zcozD;hEx}jmVN!nIGvr)?Z*ME&VoshVo=izT=G$69gTN7weDo8wz7|ME>@=u)a z+swhkpX>(7w)PLzZYCQA#ip3hN5&sS+^@cGE+QZ7couhYTwv)_2M}T1%pF(;>9rXn zHQ&6oUaSnZ!AkyKXoIv5{6BZ$nMsH_;OtFXDSE>6Wn-vg#m^FU77-{r?DWj1tBc^*lcPM?@9ZwR;n$O`{IGxE>ePX%a6sgq@IYeqCM+a`_I(KEioWMa zRwCJlgOW879ypQa02`C7{FfSN zbip4hP;USVqdCxvveT+ZAXMT%C6bOmQS-)A`yEm-{AzNP_tbom6KbGy#tWI!jNacg zz+GMzwQkA=zh0|4Ei=i4&-L6cKJY_Ak#@QlN7?0FjpSY96DdTL2T^R7!Mb?}!kbz(g0lxBw9WizEf$dns^)s!(gymlTTRii~)J|R_E*O97T zr)q2e2uPK!op371rx#v+2#gPeQaL{*l*)=sCNUKa4ahVXAkU*R0==%8K4Y}~l;8Lcn(a8$> z3w$X>k-kNVHiBQ%7(wh6LJE-F}l4)fp5{9Y_OLS+T0G#r_oWh@muUBU0D<- z>?T`TFw8lYdgBMf0$FcajXp3O$Op%2d;J^ zetJ(UbVW!~#Svm=`96Zf1HnO@KFSjaPJ2hA?K=q0k5TTcf9X1YgWt&41nK2}#c#5e z*f8NY*-HL!62Bo0l@Of1gn#pO{Dx!_!ft-@FW8OxP7YX+p&>llzTl(L+d9Ett(_Tp zK5q^pqRX)?#PS0y4`5-+dg*!mZIq7T?*WNQ-cFQ!kk}3;{(hMF`$gjKAMv*gXD*J= z8GlaHl@mw4kzz7ecvF;ze`wa91A!szWhC}2r$}S%3u-YcUcji>8Bn6Ptoe5wcLBlW zgL;Q_;k2Z6C;@X6ICsFgCW2#26X!m9%GvOhY%P2c%-MEfr6&hR?nxYZ;FPoebL=fh z>@7aU9D({P;GYVt@qwk=!R2Cn(GI_d8h0jYxKDMiK7_qnu@`9grOXOv088)N%m?36C;84iyGxyg9AS8oIL@V(IsrMTaou9 zS+WVT#v78_;=aIXj*NM>>%hpJZr8<^rT)-u8;)G$3Z7Amt=%DtG3X{h=z3_^`Rx^F!M{kuGJfU7_3mW1iH93geD8%q^)6wjgtIk;=z-Ah3!HiOt&!E| zL&k$$EhEqDFn)8CGmqS-R`DK0JEC{+;qwKxvL5dQhv>-OuFQnzqyqea;`}+DYu!2j zDG&UNUnBo14g9AJ5yP1f@IPkH2Hzjz^p!qoJ8I;1VQKyhqdAukwlmC669?_9e5;x& zS!>A^lhzgNHMsf^0SopAT}7v=>HST)4VKwa@`vTsm)h@7i3rbr2>c%GRTaM}*G4`p z&+YjT%q`O;wApzp$r5R<3&V4ACm06OhIf>GsA_!EByQT32!lV}yLsHS(vw$4-yEsN zD1Bx00<2wF7f0yGttW3CJ3HdK5Sw#l^uv*L;K8|)cW30*vA0K-$(<^bT~|26yX6H@ zvhV(;Ph;Ky*5_R=F4vW<5{X!Huu{ySf!4 z5pA7Rw_*GWB8$o#+4HPJ!jmpzqq&GQRuiSCSRi{sd)%qfsA%2kwMBg{+rpjJ=B-_O z-KJwT%?8=JnGd&$E*rDA`ZAkKkO9&`PhT?1S<0nhU${49@g_>F$g>6=$Ed811EauO z!tJ5xY2qm&InRTIbeFX&G*){d=$U}wlAgXKk7K0EVBD%m7YcRHA#%pm?CR^2o~tej zrYRNB&2uA|9r#Z84~D@r`4Q%~ccci}tcBRsZ`7#FH}c*2EoVZ$Q2*821_@!V8{U42 zxh~80#-a^ep*3PIoFB=isGw&^k-q0SS5#Ui5F{shg1F#)FnC z!6s{oXdTm{`1+8?r2nc0Up-}xO6D1W|B*cpXpA*+?9y;^LPIDR@DaLdE$(g_z9{Wjod9X&$L<0snIJuVP!! z-p!$>bk?iG-<|=ET=ar+CFteg21Hqh$kx1nz}~1suEK2PMC{(P?Lq7NoV^h_I?mX@ z2*I+H)EJNPsDLx}bzo1I*ek`}QS1%%e|wLH$kLzz*vlTotun{S=xErJ;y}vnf>wES zXzE$Nam1H5BNkE$_g^I&S6W2gPy@fpGpm=1`!?_`{a4$DDE|TUwSn!>5z}P{>`pUa zm)7*)88i67E870;(9mf9B8`IeRACN0i1&%+#LpqKCG#C@oG&(JDYp-7@FJqu_ZTun zXndLmpeD7Nr5!jjZD38}NNwWCN2?j1B3jqz3ru3^8kTPsD{Ief$WlfRtW4Be5Lr=W z4?2S0G1dW2kuWM}3_OY>Azul+S4hA0hcXA?^^GIkz|uNZhhNO&eKiy;!g7YrNtEbs-`MUxMUSQN%+;-j*~ zu`y_eJdI|4kfppj$Z%vPa!8PUm3)&(r!2!l7-9%m3E7uE#XIpawr8X43#_l(Xxnj& z_|rPD{08M@pCzo3^ii@s1+b8wO8B7*>m-l18YVrGjdSH`6WJe3C#^*;a7{PPqgbMB z$f`OaryFRba?`MH)tc&(;F|eI4fa*vizhOKZ5$*CpXwyU1*~g~!M8qTX0UF722nlQ z!YNViKsK@>A*Th!1;P`abaXyiD00AJW!B6uzdc#8xC`fnRP$FodWh zhggFsvm!`P@bv=cTn*v?Ip8c=%0#tA#ubOwoPw>>PS#A(l(SmrKrnx>|d}z6z3p zTO-q2=dP40w^r`ZNW`C-;7;Y5S6W4eh@y;WRL#KX0X}nhP8%cHo*Zuu@|bgWn!mCJ zlkIE1w66-SL|&FvM;`-*1N4H)?eO+ba)QvDM)MiH8}we#dvcwZkLEg>y}jQc{{^_k;lK4&8~n$ul^b$-Uny5GCwISVl-nFR zu(4RpWJMBqXQB1H*U;Yp=AtX$96(8cLd_>@&+G`riXo+DUBPG)(kq| zR2pnpZZq_GSW&H^Pvo>y8f!aFcWh+iD5_!IvMk^LbS@`%iffiRYB46pJC~Pwnh;U+ znUVg2Z8P7J|5Rez(?dA#JZzhSwC&PxMnhi}N86GnB~TThsK(Y!#GnK`R^tg|2bW!J zW}d*J;M0Mnz_C1mF9O7E;|a`uSdSPx<>56CcL3wg?Sbb)ggnNJ!kzFe2%#kte+(Fa z6Z|h}*Gi9~G%ZmYczCo&Bi4utT5+<@hjS~BZqA)Y&+;fd$|d|wJ~0EfRzH#(EDC#q zDeysaF^w{eex(F5DqjeCf)79vBea^(XitFcF(~5@JAmv?n3HONYh8leLs$a6FV`_! zdSBFcHhDJ9=Yo^qD}bv?bs|e-+j!b7UHC8X0Yn;>A<{J$`sSsm+?A;e4RLnT2i*1U zr3^lS+v*`>^oiQa`cd`VIF>)k_c9{)TMe2fcav_7q!#ndwVL%GZJillm!Dtr^1A%B z(!{Y1FE_A>@%*pXj9SMoq-TF9j14RaY*jV#*QnJ34~@}jW2Ge$#Zb+uXMJZ4a{}uF ztnVL&IllG29cqd^r(w?O^$ovnxY{tbX-U(oOSj`LzM*{m2ScI&!yMZl-}w~udl~7n_q`N=h^0oTVIEd=IdYt zcy#N}x1QZPaoeNYe!gu#Gz)Ix*m^e3IC8m7H|0rnJ>P#iB~S@YtIq;DVJu{4SVk&q zav#lg1)o%h7_isEtEb0!a^X)hV@-QwCUT@3gm&0#C&fnsVRvoFaY$*=sOw^qFr-%ZZN4vHL@! zPUihhqFJ{4kBVk7LunqiD31-DM(Gg|8Q%Dmz?V4Y!3<)FBx}?IN#OmQ*eh1nxxh0l z<+^MsiaoBA>3AmmFZDq8+-RX%k?!Y2pk%8*6N9VR^C^Dr`O3Nnsx{9)C02^tkc+EW zkSidQU1s&UJ&!ATj5DuFykCRp={6D3DQ!`aYg<^SY5RkkCM`x@md)sk3E!+G5=!)T z^0mH5-|NfiVVz9JGnL{*UtT=R`%6Tx_}P{$#c0t-&A}PU79$t^)T}v15zEV=7fSbQ zsi&Iz>tLoq$;@-L+i{*)9c0Z2gd(h^hl`hd+*II!-uOkfpaY&hEQM=y>4X?K@ z)4!-ri@V=bfjIU$sltRj7ubT2jUiE2%ceznzgCVvXZr-NOY=2lzzEi zvnXKLb8#(Dj}k5LvfcLZH`d3CqP-V6ml`O7gzk(CJEldRa7>99J1k0`O6^oDp+&Ik zF3wcu#+So~fc>CG)s4Az?7LlI23apjX7E3g{5{sq$6Ey}sI7-`!Bs{Y7R(5mkr_G# zamT696VnRQ!Ny?czr_51JM?OXV}#b$VhdKSLQSDFS{nlT@+kcDOtptz3+0DR1Kh<8 zr7yS(j(y~RA;{rZ)lD`>yD)lx_zgGqj-D<=9Cl+X`RhD1#xGsao zHKee0X8Rrr+r)_>JMSR$J?PO7@E+w%nH zAoQ2Vul+aJ`OVNiuJq58$9cw8lXrzdNFMvDzmO!w24I@#dy3fVwni<=b3;kVbyaMX zcT~cEjt?4;al9B2*r5uGoTa?ppWLQ93Wc2A$t(OW+1kk8r+Nv9#X^IR%R_;%aV zxPpritYuLq<$=Vj*-a5j!NM0cyRm}xvoi|7eMzgR1J zifD+wTx0op4I5edB>H(mJ;9pGjTl+JVkM?=@Dmtj+ps;uV+2EVaRl+cjJ2LnU$>r6 zJ9u5+F8yT8d50^ki2Sxjh@}fpiEncoBUoEGFy-Po&A@ZAT7e&qj!?ba2=xVZC6XF#XNRAs`zNEunT!DQEIMP%A{+SAKh@{k9rYx`LoH&K7d zf=+$?SUu6s?a6|Vb5c*~6?Rz}AOC0kRpj8|WxNygKBVJaaBMhYctOYm<1{m;eR&`3 z3_pUj%#`y|N`9eGgE?;rGW*VlZ%f*%=|B04S|n*4qoN{wSY6<=ABA6hY!o-i zdh+?a+hD88i45JgF=6d$hNbE;Y^_P`?UsIlv1U^A9L_D4G{F)vg#CQ{enryX#grg@ zb7BiIb7d*HYH`RH)&!roEzB*JN?PgzV2VlU3Y3VNpkiAko5vJOI()SOTP8g8Uqm~P zqFr4`XD^m!2l7)^2hx#mf)K!qarED0k9?)3xjs-eJbaect^lhx^pgG>ieGjj(vQEx zqk-qn$+!tD=d6ZoYAMlLNJ`EznaUouC?vsug_Cg%Z7_xes?b)=DSd(auHTVJ382AjKHb00=jz0o}P^e%W%vwVHT^o@>dbHCl=7P3a) z25v7rnUPMkvqYUD=fHZKYIfjkBihp7=|J%cl!U?ocPK06LV#dOK=p?r5c7gJU*9b=|ngp`CXTX|3n(ITKaTpWS(hXJnuCWkV zl-~~l<5MEAYc#ssZnQ79%Id+}T zEcI?2Vfz}JZMg_MX9bHFIT}sf7UfRzSZ1#!7|k4wx!3s2zHP^p$Zz2Q*H%vS+fojU zW>Yt0KV+RzdVV|j%wD7GGCDiSXqK!wrjmM+XrXzuH(NBVcmq5|+HcBjheD;L%f}xY zxP1BX(w|@6{pd}eFVviX7IUs4YDM-`$~-|lU{0JsaGy62G#yN7)q@{14fXEv>Mw@^rh{q9p}48Ts{AcJ(r$Xw8LX)^qs~JtLwO^% zpipMR|Fs zlitl}1|$gw^2hvyS(VCRecvvug<)pju1>LT2S=Wf->y0}2bLc2-8ye%V7ofis-N(8 z-|Wh1wK~3TsYSUm>EiZ5I5w{t2oy5Msf`JT0IKBF(YL4x1~G9a}=Gx z9N_(j423&%4|M>0U+(36=dfOe^|C5QaG946luyWz#Go%AHg3a+gFMl&H@*nZx%b6w zs*jBfo(a5w=eiBPp$~{legE!%-H}{R~Hjyw8J1%g1trB>j3EHSt*)^0c zBfAw>Th`XkeBi6rxXVTaqAF*7(DwMnR~Np9t(VTGD|=O(BjzCU$4&Ff#Tve&!U{hs z30h@Vl`j#$k?F}qCTxrH%3zxEAMt(QzYA5Qg9n$sW_4??aP_G^u^)Hw#W(Lc7Yp@JzacCMx@=XKfcec{YoFxU7FzLpcO2YaZEF@G*#6&A5wMG zAGA^3;VEaMX3R^o<4zCWllCGHhwo>4Y)%zv$eg)DFvs+Y0oGKb+t{O5;#|q4-jdNk z1s}khI?kiT9D1$`8ubhdyq!PBo5smHp7+6GC9blK8?)X0?%e!KhV=>faoAACw*3Cl+&=;@ECS!zZjRYd-trjuU7cpv6lQkS z+yWhNc2b^0pNH6Zk^!`lROFk$eH1T6&z;~p)XBB*1~-SfJ)w#vu&qi>v&6-!Z3}nM zFQoTz>@X0U2dk%owW_@@&Dag5rN2RrAe#o|{QUuZ4|ln($G(F8nexMC_hn#^aj>ix zHD)M$e|IAX>ms+;6fnVm7<|%WLls|~C7q7j8wzlHr8LK(hwMd=pgw;}r!;hM{P?G1-IX9J}eht;PDBBRnKEIrg=({J*ci@Roy$&#= zAhUSIj0B$@@dcY$YX#&)p7$=oo0-Ntgj>XW)U-dE`b=86!Y+DH8{BqPR%BV9A@VqH z-1OFpOqncq*YA!0&XH9%vTB?I)9gQwQ$*k(zQ;>g=o>vT0eewE|t_2Fi!dt@zDNy&4D73jj_VcIUa8k7kt`nkCwoD zRRjE~HU3pN*(&EqIVoYJ%KmDG=-I+2V!kt#_rR3k6zdwfVC}_bOiZgcF~;obj&Ekr}L3KzM|AAuJC{K z!xCF@*?!owhWS4i7Q?2hzx($7V# zYp^8!Tb1fS6`Kehk`bcYEgTl~qUNP$WG6{$9e)V=B|8j17wDQ;kBVUJyAmeN(*ghf zkUJMS=w~6XT+VTBBGu^?T_NV^r+SHP&T%nfkhzIEnfS;xn71m1+0@d=lM0ur?a&;& zAKvaa4U>Lkj&ReB5$)c>unw{n#GxmuueR^?BF6TA~D z32hr|AMeox$^zR09|ySl@w_zvEBgmLo+M zd&w7AlP%>BSpE-|KVpesA&z3=^K)aoB|8gof03=_dS12Xu}wCYU0BHeLf>jB>iz;_ z@1}QF5t8c95FFk3EuG{S^I*&Yd(a*GQ{W}{2{7L~_e*&5rMy~v0aaM$V9AeU$PPa@ zO&@_Qk9u9hbN1gWC%1nwT)clFjwbis74WRF zp1)S>R@8brQA>kbnt!RabAC%VB4k$^q)x@ z{!?sQ6#XE_rz^K55F&kqyH;u%+$(4DR^@Kspx_%G&yBZYZ$9`}%8?n>g6)dLwoYGG z)m{gEK!E>o1+3qZy=oDz0PJz1Hp+Od@`lPyv?`Ng;FN85nNp6i34EPIF)NTGwhHef zE7p|=><|;2(5&%p&Eym%#!btJybsS;F!0s6plfJQyR~AbcV#i@(}>*n@rdi-U@;0+ zq@pieZ2STz^oHKL8OT|s5lo@hiWHPz23JqAG+AczYI$xP-S_APX+Bmk3w{S_;56dk z^KtWh2eK!mEAPOzd6P$nOs?E?O_YasR+(y5LjB+wQhpAedz@Wjfe+!m=M5|uSXR79 zC&N-^;_#P4GzYYj=MHmVdvR%9j~(ThgE#roc#~@iZ+4}*%&w!Ok;gDUk&B>I64HfU zM1<|dHP2!FBHCXP3n`E@;454!{D!YdasD+~ zX?a&&nhAb+x7wmV{_AVo`eVD~>)RWSIX5AGXA>8(cDLZn)yTcjoMG&1=6;Iz9bj4u zd_{p~OI@Dwl+z~2B@Uv)% zgJ;{!Xk&{j>z{q%*=OClW04l2^jUY# z=}cK}3A?q&N=n1-)YEBl6x<+Y)YKpUGfMpmghL`F$F4mh{YGvQN z5a7OPM^=v$DxZln7sC4Vm%PF||8hbd$2q%a7rxzdQ*oXhZD)>`Cl$WegL+(QQ6Bn0 zSF>?*9VdERw!5%z@MTD}zbwM0*G9ss&3OLQd6y=`b&hA&#e5S>@tKvo7 znwKrgzroWBI>=81;ijl&uShc}_<_;FLaP!T;P!OF+I&3198q8re;9C#(tybaF}TMp zh|M#Co149AQ9keIguBAGA;LK=&DHG?-B?fenQ(_Y2S}3B2z_U{*3Pqh_Y_3xT9w%< zC*#W)_=`Gy|Qi@oKKEnD3fSmS^Ev2QDXr|f%` zYij+gDcj)nRw)@FzxLZ?l{EKXuR|wZzsB{l21;{?+=RW*nJH%}&F!QUf2{`EBw;T} zF3@c<2Fc%ACy;+VgU;aVCy&bv1kt+dk@vXdO4U7M!OW@mMrqJr6tAmeHd~_<_secZ1i;mn3e>k?~%zcoCB$fQthO>irCdqaMpONqVG>w7FzJA(XA z@g3E`u7fOv5vnDj7CjAT!1RPwaU#aX1slPEp)~JNzbCBEkKk>$AokXfejiF~f(Po32!@KH8ln(r~lGLmWVn3(uG$1~f@O=M#X zz6{=id<4h)HIQsB4SlTMQM*mOy;hSrPmehO_b_pe&zU&OEo=X!q*yMf<|bJ9X+HOr zN%r5Xsf_yfd(~p4p3vyuyV_Wwv2Vj2u{LIxuk{d8Ug8Lq%N5g-eLKEOE#`i&j`rnt zYw^4@z-a^)gJoLGd3V%SsGLpoC3~MleP1W}3iHE#zBJd}SaedFi*uzVWUHc@G#BB# zORCcDK#n-f&okQ*;e!$2C}Sf#)heJ2sqw^SQ+XeTqZR-fOAqn{;@`W_A#I^fwh z{H8$pnSH?#g$w^e(pIa4ea0Q^9oy7}bFD6TtZp2Hmx>kTe7bOM48}$6lU*;k8@_r4 zve9nG;~32>%x#)@Ofro>PG=Kt;2J$PCiTCfrt?%%D!4{TU6^NLfo@s+1fE0YZ#>1f z3&%!#1X>xlsZKE{N$F~rvH#b^+MG0U=Uiis*=KAD3 zS8^uiQpU#GFKq3y+BImqhWH7Flm0q}JsIE&Gwr>8_paO>ThUtJb+rtO%lCG_o8P70 zY2^xPFtRREcd2t>(=X#|kjpnisZ{S1QXn@O515tR!<^%;OX9Dn#k{zcPkQ1E0*}Y< zP*J_0rfN4Z-sQqdTC4bK!lfIlTl3Z?fe#5(^2l_ z^9{;7gUO?V5%+xL%z;m^X&(e$XYZQF8Ro%BkX4Gzu2{;qR>A z9`&K;77Ln##X@fdFWo11_n9r0=q>n$Yg(A&)5vUi!dR8bD#P1mRSHyaWdzDmE5-7D zbQ(o(Ier}p;P36g^(R->2cB1X<_wb!4O$KSWGp}uCU~a8M-W%z7ANwo(KYkEnuByj zXzzi}fK3jDc=!q!PbT}UMQ?TJZA%of%C^G|yB^JC+t8y4 z{T!c|dlPZt6gRXh6-$J}u$06E7M_Oeer+5gzkb380vLyAJkm&#R0AwPdFO`kH@&k*#83@N<_I z(rT$9Y4r#24flC8A}~yz>wxUs6h}_fh>71Jqny(pG&wDhc?jby;;i}ljtu3tAe;tIz`(0*S)2R_q-?0I+>QJY%U=g|1XeIn>ez+(r*^X1-<78Z-L_`Nbk zL+}CO;|N%D5D#Qgyzwg8YImTnGjX+mj`ihotZl29AKWJ%cO_f9-fwDiO5CE1z-;1- zn8r^-Zyg%yG503**brA?-;NK%1|c}b-Vp8{@cD~bu1$y*X4HG@SE@J zmzT7tV0Z{88XBg{1&8j8-*R6!O*>UcOMFeAaVT` z(x|S3wcft5v8AZR*q5%c!e+w8H4FOPUfC}KzrSaHmng>bKe~Ii+zz(J_0b^uL>x1j zcp|TYMOgGb8hM}I^D&~d+~ybGQ&U*zp4Yl)?H5@}=x+GO@r^C%eOcNX+`$<25nHpc z#`Yf2%XhoJi1xtgQ11M zO8*=AI@`O88ufb%=8YD$tvknp?VHy;&%xJ%bzZMGbaf&6+9do0x#&`?9gs;p(6eBj z>-wS_w%8UbG4-VINy`uQ9VIN2zjBtY>knzhw7GRr{oaI@DGst)1uV%F9+K2yNd=Nv_`O=&h@eaLZ;J{QuPim zBySfO-#RSHv=|#dUC{NVG0ltIo6o4az%5?wi?;zyn6A=svHKAP`y zVm|=>+iTJsb3n^UkLf#UW>sKMmHv>llh61u2Un0Z*Rn0JpVx7$@EMK~ZZUK#$H-1c z^DpUYG}qo;Wf!09G;PXIW|P;lh}>OG+$J^wT(%p+(4WY!F&%y~^Dyf2-LN6~DVv)& zYEn4F2O}a@5WoPl2wzA>oG_udWh$%=)`8RkLgW^rymELC>>gG%)p}nUGIW`ct1IP` zF?2q$-x~543Y48ILn#}!%Gb|v4AoRFuHM`+UMDKVzW#qCb=3&anHS#+dxh$|H zkMO>Utb9}W(i<7M(!|nh8M%^Ml#wgBMH#uwiHteq{lcv=q20vyP_0)+en|K($(JJ5 z*KC#&38f@@+C_FAP|~pU4MAunczuATs&d#SWh=p7Zg3 zM=ihE0oEUJZTseqwe9|nT7HXTy>AQNX;Y~nu5aHmdD-t&Ug}tH6IL!=x$GB9f3XZ+ zAujlUVCgK`u7*njqFynpMTnaJ5Px;b+M!_g6rl3G!1J82F$P4P^5!6Zt^O(K$sp+*3H8+H|qN~v9QQJZ?9x8t-#xVdp{kq#%K67ZDYLbB|UP4)IkQHG29V!cI*4T zV0OHjCt^2y9JL~qTz)n{C7;J~Jm-8O?ti7q?ZVsR(qDczVD)NVO37aV`R4KAu>XQz z-**SgP~IL&g%6AfADG*5X6|5-0KejM@umpm$D0m=Hxd3H)8YT|-w-HYT*0whUgH=c z4mu%2XhrWX#sx1dygk)HU8JlsJ81Uz=2{*qogbgBL)=%=#+!}Ytqk%Ja01?>YSQxA zG%+pu1NDyTQbflW0o@27mOMlGxysQO*2GP@8l5d(KgJviP|^!$1Mj3U;Euwmh!goQ zCP7YFq?#Wc1*XWdK{bWzDz9T7;PB%q&ItzC2g{ldb+jI|K#u}|36upDHMro+R zT&Wi#;x=RwGF7IMM;2`4<6zAuU1X-qh`dm_6^xPXmh84<$0ZxB6_OO$X~~W&y`w=K zS_mvCD~TobyB9 zI&K8pY6pBnV$t`2ab`#Ox)BSS5?;YOpZQ&f3Dd(bCHCiv zPhx)uyc`U+N5b#ocS?<9DC>vbMU(`2bZ02Dz(l7$mkwTGTK5W@tV!QsC7$^AEWN7| z`9(kzHm-!9Y)!@Tx|Ii3I9A?#NqM~e8;yBRR5g!17Bn{=??x}|OsLFx$d}jT-qn+4 zTb}0<>=^BS7VB8SMt3a3U&q5y8tdRM1h!-sc%{;m-w!?rZWuMfeYx=F9yVK#|Eg|1u3n5fuf;l+zEyW;_ipG* zdawB*m+!%Dv0m+FxSu^W9Mf4#C)*j!jvNKd4nv~n-PCfPgT-s)N%deMD1c(>PBrNWzgnhLihc#_Sdyj`qqu@Dvy2lYxVWZ~;q zoSW#w?NQy-!#z*)x18pKh!7d$I?wTAy#Z-!S4!w*ykR?e$ML4F1K4_sFE~z2e?4la z?_8L!p8?xBUDf*ka#c-1@~RV5cn>9d$=PSrYvd+q9f$kJ0hvYgWJQXy;JpvdU3`-4 zzMn!am{$H@v}df`E%ufDX~@7SbuSibuD9D|)N)l_}yfBdO(^`(#fCPdku^Xui3 zD@rk;Gil1qc;^aFS?97{YB@05j-H>X4=@Azdr4*BwxTO?PaHM6zDx!Fm@}Ybb0XP1 zA28$>2WtZdYzam^YkNSpWhnmsbMW=Qi}_X`*eD?er>W4=v&BBD(i$|6+PC_Qtvv|6 zufIJ!qPkd=ZHO`Ik2}&MdG^~xPigi;rHV$opV}4Y*+%A4dnNsL_)p@yu><2$I#lWl zab8#Tbgra(g|<*nI3C%!3Cp8rNpcoF%Syk& zdw%HxoFQ3|uaA*GYb)F9tV>58QoOB$z!~< zf4s8;896@Awu>_=kNR6xP4CUY-}LD%1yT5=7;g?3zj@Ml)Nd>cG{%FEUMvAqoi!L$ zZM_yh`$jUQePc3%53E-^khbY}s;Tz~_%bWl^fk;es)wKW_!@DIS*8|>%AzEI7vps{zO<+Xc2JUt;lm1RLBX}W78%M*z)Di^ zG-0GU*H?PwYVCW;7#xbfA)lVF@cgdJt2AaBgpj2ds2TZmOzf}lWFXI_Q02OkVtyTH z5F7un#BbEYlZwZD&6V049`^Y*lAdN#EJiA;IL|nzP}`uxGyaomYOlms6d8N30Led% z$rFW5;_Pq%zB_GX59YC-lwXcE`ZjEwUWGQb`S9AxF5TFGto6=W;ZtH(sMS3#;uBik z_QMBa6!2*_n{WPq>zjg9cAlHR*(Pln;IKg;>*!gC(-d-#d z?@d7Bcs=+C$2&V4s1yuFoC8r0lcK8F2-~mfE5hGq_%;?b^T&eCd5IBYPSVTCEKz^A8(K^hPI*egI z8VA;=(etW%%00t;k-IuB?Rjf(dvU z5MK1}%8<32JCLEQ8_H1bKn;c(52A)8QA3Lw|25?4rZedd7Q}K%d$E_4M z%&~P~4T6MX7FXZyeZ1B!%oBbG?Rk#p%|N;$sP^DQT=PzNBv;)buVi(G{2784`MUR1 z0Ch`vc94ud4Y-Xa^%HflOJ3=MhG{@qP1wadeG=>v^cB^_;D6yHx$Qp49tZp7l`p}A z`6GXkzqR78EB~UhUhK1%z+am!{szy#QUK>&{+Z|{r;GEShNYL(C%Eo#I_`4$X+3Y z_wE36N?n=8)qV?jmhm0Khe?|H_e<4!V1Z)jDfGH`u-v;X&lG&UD--;H|@uyNK<(Sq68i;o{l%fy8;E%Ua%pTmr9ss~E~aL=|&v73M~r zAs~dv>QNkV*_@JoPjQQs7jn-$P3KIH65=?ku|DJstsVneYgos|M|>?#$qoyLl@~)s zMLW1v_^R6hOb;zPf$8Oa2h(d$*0O_d_)*kLzKg$xf6fTY+mOoaa&gQ5L)g23H*sBS z!+S;}X(Y?GYz&rd*&fLkWH3f{Aee*(Nj78I7%)kik|zB!=F*M~Br+jHrch)cM35#i zBuyYqPfe1xCYKgLImJz=Oqw<%UoR4umL$#TBwtQLpqDW>k1gB!-z}RY=bZolKX@d~ zea6z>d#(MhcfD(ccrv;+xuV6x+i%xQrrt?7m`=+54fk;BeOSq$f+A zHr&*L*2a@cSPs)Z&HaL|$24NNGUcKF?7$eWgQdu5`1QtBUENz&U3r`7-gt7$i(RX(h&d;*^nb9#VaceNh5GH! z4x3Ot>G;N8In+*n7tED}-1zr3hI}8tCiY5GT9;iPeJD&k7roZbw0Eh84Q#v!UV1zD zq|uPnhWaG+a+_pCWDsYBS!I)5SM$gj9U?F1Mm-aK7jqbz*Me4Pp!P%srzI4jF|SPZ z&}3vhQ~f0AYkiz>*ZMZ;FELYJE1(r+?}5Kv71z1eChEIPE=Qt%w-!})XR1#Ozj=h8 z!F-UZzLV5srfcrvfzY!wqAnOOu{pa7{NaL-5FpN~7n|+x9I>deky(C3@thX$A`r#f z*r3esGFIi{dMl#Ch(E)ly2J`n_hdC+p|_jvXA_}Np^J$#RWlRP?t{BMM_&UMUFV#! zkp&yjLIx{e1CpGAZegY*AUh|^Z9%Q6yk@imr5-vq)&yIb@0@TtB!{nJP zWcY3d!+?EdZ0P(r#pdq_tPieRBiylRl^{Ow(ESLgivu*4J^(x;Zz>Tg*09#qe*i{( zg0W7_Qy!Axe}rd;vZFs+TZ)WCI^v8zTD6Ll|NY^7`?^&{aiC46O!bdY4W`P-X7zF4 z)52LgLYbiqNl4XNJ}9rPTDz?T-V2deF@qqGulmnKAk?wewU(*EERwiZ>5;uzwN{5b z+Wk!(YxBgrm7lG`SZn3iBB~wa)5{Sok4TYK^xA((>aU##r!^}jhp_ap{CXxTjbQF* z4MYQL?~Wc?+Z=s$RhD{c^0=@jS!yg9kb$Rda-&zy#29ip{^}|>{Hsi=)8e`m zug7S5X58uw;OQ?w4u`Utr?_oc7hj%zQ+wY}+UKbM@CPiCsmL+LI{-It`cdGyf< zjE4ii%_UdL--36f!!KO51u>?0hwSa>k-L5N#LIGz+)OCLcv_+jRcAQVv%P@qAG#$o zVMRp5)3FI2Ym1vxIT-qh;ck(k^5fGUun1j}LCrRDX& z2JyQz7NhCYy;ZWD*3wumO7rz<*H{(2a$3!mwtYjQZ*rdz^;xXSjWv&5udc?CH`c>8 zsg`d0`j`v&6ywUHF$^KQIrvbf--&PS{OJ796ky$d9MABFHG;|k8SpVo@DHi|psE(s z&VD#dpM3z?ajfSh*o*{^x@54khhZ=1Sci-ZFrM-ie&&Y^Wd@l-y!~`NP=8BLn4f-T&QZ7c0W1bNV35m1Ut@F0 z?IqyTWanzkeR|I$(35;XHE?eG?TLFzE+?{;ITsltbCF}&_zXOAu8p|}zYZ4e#~3|z zJqr@JR-0MJ6Q)R|= zP?h5LGChbcEX+%QqhKZbGg0?q1>!$_>E#zNd$Yve)1D4uOORJ^Ob{{I{ddE!Gpkp? z%_Ot$jz0_Ty<6Qz?ufUFl%apzSAbjtnxil^PWI0bZvqaYS3icg?~6YT?}I^o4Eo7I zLEX_za}YAYN~;4)?z)k0HJS5<%*ZDrhCl@rebhbX(sTD2)Y6?5`wRo{x|SFMeASFMWgs4~QN zR;`TRuT)_inxm~%`XV#1G?TJcF<)Mln7O-S_h*ql_$bBNz1Yh*J;1xBpe1IZz8Uaf z*cU6j(P<-;mlqfKV2*Gx)DnyYUykevUx=Iv&)9A5mUsKRpTaCo;n7`z*B&7o0Np%Jm2W*A!59v;n@m!fg0>>mj{}0$Ga{c*<_F0*(}~FuaM*D$@RGMZfMm*Hvp=Q zVBiwUXk}yG$mZR9efmUyU?5_$)nkPC-N=0-dxq{7>GFRL*P{n+95Ey21@Fp=J!-`F z&KW6m{RmY`pwF{zd^^6`jA0231qbw82s{INEX{$KaynC$(@#Z^3qzlaYUopbSccj* ze!MH?fJXMn@vdo@nPsR==_~zBYY(|(qxv7C9B>{EC|wF1Ub=r?djFp^

as$@*?{ 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 za!$m}H07M3obw=!%DG^%a{90c#%lZ8<1=+_@u{xiSO4aFCU3{rYSg8IY?J1*YeA9M zd_K(*`p^;O^Pr!ShW;Mfs0paErJi{#9RI>LNlVV7!s;+OBD$Px=JVK5|I~#kyL{tM z&Rfrgjta?M06hSD5p*kbxWFF?kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@ zkN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg z011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!) z36KB@kN^pg011!)36KB@kN^pg011!)36KB@kN^pg011!)36KB@kif4Hcw7s6$>;O^ ztXe!@{rSS~TRwPV-Z05%B0F6n21W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-L zfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@ z1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14c zNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNPq-LfCNZ@1W14cNZ?lpxHX$v>}&DetM2e! Z_5Dx3eZklEi5>Z;_U+RZT)y$W{{!5f@~Qv; diff --git a/feeds/bluetooth-cc2652/cc2652/files/firmware/simple_broadcaster_bd9.bin b/feeds/bluetooth-cc2652/cc2652/files/firmware/simple_broadcaster_bd9.bin deleted file mode 100755 index 275793a492888d74ecc7e2974c149ef83eaffe33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 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 z 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


j`hF(zPhm(Tevmoz1!ttIS_J% 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 /dev/null # this command dealy time must >= 3, if small then 3, the following commands will be something wrong - cc2562-wr.sh /dev/ttyMSM1 1 "\x01\x00\xFE\x08\x01\x00\x00\x00\x00\x00\x00\x00" > /dev/null - cc2562-wr.sh /dev/ttyMSM1 1 "\x01\x3E\xFE\x15\x12\x00\xA0\x00\x00\xA0\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x7F\x01\x01\x00" > /dev/null - cc2562-wr.sh /dev/ttyMSM1 1 "\x09\x44\xFE\x23\x00\x00\x00\x1E\x00\x02\x01\x1A\x1A\xFF\x4C\x00\x02\x15${UUID}${MAJOR}${MINOR}${POWER}\x00" > /dev/null - cc2562-wr.sh /dev/ttyMSM1 1 "\x01\x3F\xFE\x04\x00\x00\x00\x00" -} - -cc2562-reset.sh - -while true -do - iBeconScan - sleep 1 -done diff --git a/feeds/bluetooth-cc2652/cc2652/src/Makefile b/feeds/bluetooth-cc2652/cc2652/src/Makefile deleted file mode 100755 index f63c016b1..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# Executable -EXE = tisbl - -# Compiler, Linker Defines -#CC = g++ -#CFLAGS = -w -O -Wno-deprecated -I. -fpermissive -std=gnu++0x -#CFLAGS = -I. -fpermissive -Wwrite-strings -lstdc++ -CFLAGS = -I. -Wwrite-strings -std=gnu++0x -lstdc++ -fPIC -#CFLAGS = -I. -lstdc++ -Wwrite-strings -std=gnu++0x -#LIBS = -#LDFLAGS = $(LIBS) - -# Compile and Assemble C++ Source Files into Object Files -%.o: %.cpp - $(CXX) $(CFLAGS) $(LDFLAGS) -c $< -o $@ -# Source and Object files -SRC = $(wildcard *.cpp) -OBJ = $(patsubst %.cpp, %.o, $(SRC)) - -# Link all Object Files with external Libraries into Binaries -$(EXE): $(OBJ) - $(CC) $(CFLAGS) $(OBJ) $(LDFLAGS) -o $(EXE) -# $(CC) $(CFLAGS) $(OBJ) $(LDFLAGS) -o $(EXE) -lz - -.PHONY: clean -clean: - -rm -f $(EXE) *.o diff --git a/feeds/bluetooth-cc2652/cc2652/src/debug.h b/feeds/bluetooth-cc2652/cc2652/src/debug.h deleted file mode 100755 index b352ac0d6..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/debug.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __DEBUG_H__ -#define __DEBUG_H__ - -#include -#define DEBUG 0 -#if defined(DEBUG) && DEBUG > 0 - #define DEBUG_PRINT(fmt, args...) fprintf(stderr, "$$%d:%s:%d:%s():" fmt, \ - (int)time(NULL), __FILE__, __LINE__, __func__, ##args) -#else - #define DEBUG_PRINT(fmt, args...) /* Don't do anything in release builds */ -#endif - -#endif // __DEBUG_H__ \ No newline at end of file diff --git a/feeds/bluetooth-cc2652/cc2652/src/sblAppEx.cpp b/feeds/bluetooth-cc2652/cc2652/src/sblAppEx.cpp deleted file mode 100755 index d4638fe2a..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sblAppEx.cpp +++ /dev/null @@ -1,257 +0,0 @@ -/****************************************************************************** -* Filename: sblAppEx.cpp -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader Library application example. -* This example enumerates all COM devices and lets you -* select which port to connect to. The example assumes the -* connected device is a CC2538, CC2650 or CC2652 and programs -* a blinky onto the device. After programming the blinky, -* bootloader mode may be forced by -* - holding SELECT button on 06EB (for CC2538 and CC26x0 EMKs), or -* - holding BTN-1 on the device LaunchPad (for CC26x2 LPs) -* when resetting the chip. -* -* Copyright (C) 2013 - 2019 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include "serialib.h" -#include "sbllib.h" -#include -#include -#include - -//#include - -using namespace std; - -// Calculate crc32 checksum the way CC2538 and CC2650 does it. -int calcCrcLikeChip(const unsigned char *pData, unsigned long ulByteCount) -{ - unsigned long d, ind; - unsigned long acc = 0xFFFFFFFF; - const unsigned long ulCrcRand32Lut[] = - { - 0x00000000, 0x1DB71064, 0x3B6E20C8, 0x26D930AC, - 0x76DC4190, 0x6B6B51F4, 0x4DB26158, 0x5005713C, - 0xEDB88320, 0xF00F9344, 0xD6D6A3E8, 0xCB61B38C, - 0x9B64C2B0, 0x86D3D2D4, 0xA00AE278, 0xBDBDF21C - }; - - while ( ulByteCount-- ) - { - d = *pData++; - ind = (acc & 0x0F) ^ (d & 0x0F); - acc = (acc >> 4) ^ ulCrcRand32Lut[ind]; - ind = (acc & 0x0F) ^ (d >> 4); - acc = (acc >> 4) ^ ulCrcRand32Lut[ind]; - } - - return (acc ^ 0xFFFFFFFF); -} - -/// Application status function (used as SBL status callback) -void appStatus(char *pcText, bool bError) -{ - if(bError) - { - cerr << pcText; - } - else - { - cout << pcText; - } -} - - -/// Application progress function (used as SBL progress callback) -static void appProgress(uint32_t progress) -{ - fprintf(stdout, "\r%d%% ", progress); - fflush(stdout); -} - -// Defines -// Name Hex Dec -// ------------------------------- --------------- --------------------------------- -#define DEVICE_CC2538 0x2538 // 9528 -#define DEVICE_CC26X0 0x2650 // 9808 -#define DEVICE_CC2640R2 0x2640 // 9792 -#define DEVICE_CC26X2 0x2652 // 9810 -#define CC2538_FLASH_BASE 0x00200000 -#define CC26XX_FLASH_BASE 0x00000000 - -// Application main function -// tisbl SerialDevNode baudRate deviceType firmware -int main(int argc, char *argv[]) -{ - // START: Program Configuration - /* UART baud rate. Default: 230400 */ - uint32_t baudRate = 115200; - uint32_t deviceType = DEVICE_CC26X2; - SblDevice *pDevice = NULL; // Pointer to SblDevice object - char *SerialDevNode; - int32_t devStatus = -1; // Hold SBL status codes - std::string fileName; // File name to program - uint32_t byteCount = 0; // File size in bytes - uint32_t fileCrc, devCrc; // Variables to save CRC checksum - uint32_t devFlashBase; // Flash start address - static std::vector pvWrite(1);// Vector to application firmware in. - static std::ifstream file; // File stream - - // Set callback functions - SblDevice::setCallBackStatusFunction(&appStatus); - SblDevice::setCallBackProgressFunction(&appProgress); - - // Select device - // deviceType FlashBase File - // DEVICE_CC2538 CC2538_FLASH_BASE blinky_backdoor_select_btn2538.bin - // DEVICE_CC26X0 CC26XX_FLASH_BASE blinky_backdoor_select_btn2650.bin - // DEVICE_CC2640R2 CC26XX_FLASH_BASE blinky_backdoor_select_btn2640r2.bin - // DEVICE_CC26X2 CC26XX_FLASH_BASE blinky_backdoor_select_btn26x2.bin - if(argc < 5) { - return -1; - } - SerialDevNode = argv[1]; - baudRate = atoi(argv[2]); - deviceType = strtol(argv[3], NULL, 16); - fileName = argv[4]; - switch(deviceType) - { - case DEVICE_CC2538: - devFlashBase = CC2538_FLASH_BASE; - break; - case DEVICE_CC26X0: - case DEVICE_CC2640R2: - case DEVICE_CC26X2: - devFlashBase = CC26XX_FLASH_BASE; - break; - } - printf("SerialDevNode=%s, baudRate=%d, deviceType=%04x, fileName=%s\n",SerialDevNode,baudRate,deviceType,fileName.c_str()); - - // Should SBL try to enable XOSC? (Not possible for CC26xx) - bool bEnableXosc = false; - if(deviceType == DEVICE_CC2538) - { - char answer[64]; - cout << "Enable device CC2538 XOSC? (Y/N): "; - cin >> answer; - bEnableXosc = (answer[0] == 'Y' || answer[0] == 'y') ? true : false; - } - - // Create SBL object - pDevice = SblDevice::Create(deviceType); - if(pDevice == NULL) - { - printf("No SBL device object.\n"); - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Connect to device - printf("Connecting (%s @ %d baud) ...\n", SerialDevNode, baudRate); - if(pDevice->connect(SerialDevNode, baudRate, bEnableXosc) != SBL_SUCCESS) - { - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Read file - file.open(fileName.c_str(), std::ios::binary); - if(file.is_open()) - { - // Get file size: - file.seekg(0, std::ios::end); - byteCount = (uint32_t)file.tellg(); - file.seekg(0, std::ios::beg); - - // Read data - pvWrite.resize(byteCount); - file.read((char*) &pvWrite[0], byteCount); - } - else - { - cout << "Unable to open file " << fileName.c_str(); - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Calculate file CRC checksum - fileCrc = calcCrcLikeChip((unsigned char *)&pvWrite[0], byteCount); - - if(pDevice->calculateCrc32(devFlashBase, byteCount, &devCrc) != SBL_SUCCESS) - { - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - printf ("pre-Comparing CRC: fileCrc=%x,devCrc=%x\n",fileCrc,devCrc); - - if(fileCrc == devCrc) { - cout << "CRC is same, no need to upgrade\n"; - pDevice->reset(); - return 0; - } - - // Erasing as much flash needed to program firmware. - cout << "Erasing flash ...\n"; - if(pDevice->eraseFlashRange(devFlashBase, byteCount) != SBL_SUCCESS) - { - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Writing file to device flash memory. - cout << "Writing flash ...\n"; - if(pDevice->writeFlashRange(devFlashBase, byteCount, &pvWrite[0]) != SBL_SUCCESS) - { - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Calculate CRC checksum of flashed content. - cout << "Calculating CRC on device ...\n"; - if(pDevice->calculateCrc32(devFlashBase, byteCount, &devCrc) != SBL_SUCCESS) - { - cout << "\n\nAn error occurred: " << pDevice->getLastStatus(); - return -1; - } - - // Compare CRC checksums - printf ("Comparing CRC: fileCrc=%x,devCrc=%x\n",fileCrc,devCrc); - if(fileCrc == devCrc) printf("OK\n"); - else printf("Mismatch!\n"); - - cout << "Resetting device ...\n"; - pDevice->reset(); - cout << "OK\n"; - -} \ No newline at end of file diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device.cpp b/feeds/bluetooth-cc2652/cc2652/src/sbl_device.cpp deleted file mode 100755 index e6db4b270..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device.cpp +++ /dev/null @@ -1,673 +0,0 @@ -/****************************************************************************** -* Filename: sbl_device.cpp -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader device file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ - -#include -#include "sbl_device.h" -#include "sbl_device_cc2538.h" -#include "sbl_device_cc2650.h" -#include "sbl_device_cc2652.h" - -#if 0 - #include - #include -#else - #include "serialib.h" -#endif - -#include - -// Static variables -// -std::string SblDevice::sm_csLastError; -uint32_t SblDevice::sm_progress = 0; -tProgressFPTR SblDevice::sm_pProgressFunction = NULL; -tStatusFPTR SblDevice::sm_pStatusFunction = NULL; -uint32_t SblDevice::sm_chipType = 0; - -//----------------------------------------------------------------------------- -/** \brief Constructor -*/ -//----------------------------------------------------------------------------- -SblDevice::SblDevice() -{ - m_pCom = NULL; - m_lastDeviceStatus = -1; - m_lastSblStatus = SBL_SUCCESS; - m_bCommInitialized = false; - m_deviceId = 0; - m_ramSize = 0; - m_flashSize = 0; - m_pageEraseSize = 0; -} - - -//----------------------------------------------------------------------------- -/** \brief Destructor -*/ -//----------------------------------------------------------------------------- -SblDevice::~SblDevice() -{ - if (m_pCom != nullptr) - { - delete m_pCom; - m_pCom = nullptr; - } - - m_lastDeviceStatus = -1; - m_bCommInitialized = false; - m_ramSize = -1; - m_flashSize = -1; -} - - -//----------------------------------------------------------------------------- -/** \brief Create Serial Bootloader Device -* -* \param[in] ui32ChipType -* Chip type the object should be created for, e.g. 0x2650 for CC2650. -*/ -//----------------------------------------------------------------------------- -/*static*/SblDevice * -SblDevice::Create(uint32_t ui32ChipType) -{ - if (ui32ChipType == 0) - { - return NULL; - } - - sm_chipType = ui32ChipType; - - switch (ui32ChipType) - { - case 0x2538: - return (SblDevice *)new SblDeviceCC2538(); - case 0x1350: - case 0x1310: - case 0x2670: - case 0x2650: - case 0x2640: - case 0x2630: - case 0x2620: - return (SblDevice *)new SblDeviceCC2650(); - case 0x1312: - case 0x1352: - case 0x2642: - case 0x2652: - return (SblDevice *)new SblDeviceCC2652(); - default: - return NULL; - } -} - - -#if 0 -//----------------------------------------------------------------------------- -/** \brief Enumerate COM port devices -* -* \param[in/out] pComPortElements -* Pointer to array where enumerated COM devices are stored -* \param[in/out] numElements -* Maximum number of elements to enumerate. Is populated with number -* of devices enumerated. -* -* \return -* -*/ -//----------------------------------------------------------------------------- -/*static*/uint32_t -SblDevice::enumerate(ComPortElement *pComPortElements, int &numElements) -{ - ComPort com; - if (com.enumerate(pComPortElements, numElements) != ComPort::COMPORT_SUCCESS) - { - printf("Failed to enumerate COM devices.\n"); - return SBL_ENUM_ERROR; - } - - return SBL_SUCCESS; -} -#endif -//----------------------------------------------------------------------------- -/** \brief Connect to given port number at specified baud rate. -* -* \param[in] csPortNum -* String containing the COM port to use -* \param[in] ui32BaudRate -* Baud rate to use for talking to the device. -* \param[in] bEnableXosc (optional) -* If true, try to enable device XOSC. Defaults to false. This option is -* not available for all device types. -* -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::connect(std::string csPortNum, uint32_t ui32BaudRate, - bool bEnableXosc/* = false*/) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - - // - // Check input arguments - // - if (csPortNum.empty() || ui32BaudRate == 0) - { - setState(SBL_ARGUMENT_ERROR, "Cannot connect. Port number '%s' or baud rate '%d' is invalid.\n", - csPortNum.c_str(), ui32BaudRate); - return SBL_ARGUMENT_ERROR; - } - - // Try to connect to the specified port at the specified baud rate - if (m_pCom != NULL) - { - // Try to open port -#if 1 - char result = m_pCom->openDevice(csPortNum.c_str(),ui32BaudRate); - if(result < 0) - { - setState(SBL_PORT_ERROR, "SBL: Unable to open %s. Error: %d.\n", csPortNum.c_str(), result); - return SBL_PORT_ERROR; - } -#else - if (int result = m_pCom->open(csPortNum, - ui32BaudRate, - SBL_DEFAULT_READ_TIMEOUT, - SBL_DEFAULT_WRITE_TIMEOUT) != ComPort::COMPORT_SUCCESS) - { - setState(SBL_PORT_ERROR, "SBL: Unable to open %s. Error: %d.\n", csPortNum.c_str(), result); - return SBL_PORT_ERROR; - } -#endif - m_csComPort = csPortNum; - m_baudRate = ui32BaudRate; - } - // Check if device is responding at the given baud rate - if ((retCode = initCommunication(bEnableXosc)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Read device ID - // - uint32_t tmp; - if ((retCode = readDeviceId(&tmp)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read device ID during initial connect.\n"); - return retCode; - } - // - // Read device flash size - // - if ((retCode = readFlashSize(&tmp)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read flash size during initial connect.\n"); - return retCode; - } - // - // Read device ram size - // - if ((retCode = readRamSize(&tmp)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read RAM size during initial connect.\n"); - return retCode; - } - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Send auto baud. -* -* \param[out] bBaudSetOk -* True if response is ACK, false otherwise -* -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::sendAutoBaud(bool &bBaudSetOk) -{ - DEBUG_PRINT("\n"); - bBaudSetOk = false; - // - // Send 0x55 0x55 and expect ACK - // - char pData[2]; - memset(pData, 0x55, 2); - if (m_pCom->writeBytes(pData, 2) != 2) - { - setState(SBL_PORT_ERROR, "Communication initialization failed. Failed to send data.\n"); - return SBL_PORT_ERROR; - } - - if (getCmdResponse(bBaudSetOk, 2, true) != SBL_SUCCESS) - { - // No response received. Invalid baud rate? - setState(SBL_PORT_ERROR, "No response from device. Device may not be in bootloader mode. Reset device and try again.\nIf problem persists, check connection and baud rate.\n"); - return SBL_PORT_ERROR; - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Get ACK/NAK from the boot loader. -* -* \param[out] bAck -* True if response is ACK, false if response is NAK. -* \param[in] ui32MaxRetries (optional) -* How many times ComPort::readBytes() can time out before fail is issued. -* \param[in] bQuietTimeout (optional) -* Do not set error if no command response is received. -* -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::getCmdResponse(bool &bAck, - uint32_t ui32MaxRetries/* = SBL_DEFAULT_RETRY_COUNT*/, - bool bQuietTimeout/* = false*/) -{ - DEBUG_PRINT("\n"); - unsigned char pIn[2]; - memset(pIn, 0, 2); - uint32_t numBytes = 0; - uint32_t retry = 0; - bAck = false; - uint32_t bytesRecv = 0; - - // - // Expect 2 bytes (ACK or NAK) - // - do - { - numBytes = m_pCom->readBytes(pIn, 2); - bytesRecv += numBytes; - retry++; - } while ((bytesRecv < 2) && (retry < ui32MaxRetries)); - - if (bytesRecv < 2) - { - if (!bQuietTimeout) setState(SBL_TIMEOUT_ERROR, "Timed out waiting for ACK/NAK. No response from device.\n"); - return SBL_TIMEOUT_ERROR; - } - else - { - if (pIn[0] == 0x00 && pIn[1] == 0xCC) - { - bAck = true; - return setState(SBL_SUCCESS); - } - else if (pIn[0] == 0x00 && pIn[1] == 0x33) - { - return setState(SBL_SUCCESS); - } - else - { - setState(SBL_ERROR, "ACK/NAK not received. Expected 0x00 0xCC or 0x00 0x33, received 0x%02X 0x%02X. bytesRecv=%d\n", pIn[0], pIn[1], bytesRecv); - return SBL_ERROR; - } - } - return SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief Send command response (ACK/NAK). -* -* \param[in] bAck -* True if response is ACK, false if response is NAK. -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::sendCmdResponse(bool bAck) -{ - DEBUG_PRINT("\n"); - // - // Send response - // - char pData[2]; - pData[0] = 0x00; - pData[1] = (bAck) ? 0xCC : 0x33; - - if (m_pCom->writeBytes(pData, 2) != 2) - { - setState(SBL_PORT_ERROR, "Failed to send ACK/NAK response over %s\n", - m_csComPort.c_str()); - return SBL_PORT_ERROR; - } - return SBL_SUCCESS; -} - -//----------------------------------------------------------------------------- -/** \brief Get response data from device. -* -* \param[out] pcData -* Pointer to where received data will be stored. -* \param[in|out] ui32MaxLen -* Max number of bytes that can be received. Is populated with the actual -* number of bytes received. -* \param[in] ui32MaxRetries (optional) -* How many times ComPort::readBytes() can time out before fail is issued. -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::getResponseData(char *pcData, uint32_t &ui32MaxLen, - uint32_t ui32MaxRetries/* = SBL_DEFAULT_RETRY_COUNT*/) -{ - DEBUG_PRINT("\n"); - uint32_t numBytes = 0; - uint32_t retry = 0; - unsigned char pcHdr[2]; - uint32_t numPayloadBytes; - uint8_t hdrChecksum, dataChecksum; - uint32_t bytesRecv = 0; - - setState(SBL_SUCCESS); - // - // Read length and checksum - // - memset(pcHdr, 0, 2); - do - { - bytesRecv += m_pCom->readBytes(&pcHdr[bytesRecv], (2 - bytesRecv)); - retry++; - } while ((bytesRecv < 2) && retry < ui32MaxRetries); - - // - // Check that we've received 2 bytes - // - if (bytesRecv < 2) - { - setState(SBL_TIMEOUT_ERROR, "Timed out waiting for data header from device.\n"); - return SBL_TIMEOUT_ERROR; - } - numPayloadBytes = pcHdr[0] - 2; - hdrChecksum = pcHdr[1]; - - // - // Check if length byte is too long. - // - if (numPayloadBytes > ui32MaxLen) - { - setState(SBL_ERROR, "Error: Device sending more data than expected. \nMax expected was %d, sent was %d.\n", (uint32_t)ui32MaxLen, (numPayloadBytes + 2)); -#if 1 - m_pCom->flushReceiver(); -#endif - return SBL_ERROR; - } - - // - // Read the payload data - // - bytesRecv = 0; - do - { - bytesRecv += m_pCom->readBytes(&pcData[bytesRecv], (numPayloadBytes - bytesRecv)); - retry++; - } while (bytesRecv < numPayloadBytes && retry < ui32MaxRetries); - - // - // Have we received what we expected? - // - if (bytesRecv < numPayloadBytes) - { - ui32MaxLen = bytesRecv; - setState(SBL_TIMEOUT_ERROR, "Timed out waiting for data from device.\n"); - return SBL_TIMEOUT_ERROR; - } - - // - // Verify data checksum - // - dataChecksum = generateCheckSum(0, pcData, numPayloadBytes); - if (dataChecksum != hdrChecksum) - { - setState(SBL_ERROR, "Checksum verification error. Expected 0x%02X, got 0x%02X.\n", hdrChecksum, dataChecksum); - return SBL_ERROR; - } - - ui32MaxLen = bytesRecv; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Are we connected to the device? -* -* \return -* Returns true if connected to device. -* Returns false if not connected to device. -*/ -//----------------------------------------------------------------------------- -bool -SblDevice::isConnected() -{ - DEBUG_PRINT("\n"); - if (!m_pCom) - { - return false; - } - return true; -} - - -//----------------------------------------------------------------------------- -/** \brief This function generates the bootloader protocol checksum. -* -* \param[in] ui32Cmd -* The bootloader command -* \param[in] pcData -* Pointer to the command data. -* \param[in] ui32DataLen -* Data length in bytes. -* -* \return -* Returns the generated checksum. -*/ -//----------------------------------------------------------------------------- -uint8_t -SblDevice::generateCheckSum(uint32_t ui32Cmd, const char *pcData, - uint32_t ui32DataLen) -{ - DEBUG_PRINT("\n"); - uint8_t ui8CheckSum = (uint8_t)ui32Cmd; - for (uint32_t i = 0; i < ui32DataLen; i++) - { - ui8CheckSum += pcData[i]; - } - return ui8CheckSum; -} - - -//----------------------------------------------------------------------------- -/** \brief This function sets the SBL status and the SBL error string. -* -* \param[in] ui32Status -* The new SBL status. SBL_SUCCESS, SBL_ERROR, ... -* \param[in] pcFormat -* 'printf' like format string. -* \param[in] ... -* Input variables to the \e pcFormat string. -* -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDevice::setState(const uint32_t &ui32Status, char *pcFormat, ...) -{ - DEBUG_PRINT("\n"); - va_list args; - char text[2048]; - - m_lastSblStatus = ui32Status; - - // Attempt to do a sanity check. Not possible to say how long - // the formatted text will be, but if we reserve half the space for - // formatted arguments it should be sufficient. - if (strlen(pcFormat) > 2048 / 2) { - return SBL_ERROR; - } - - va_start(args, pcFormat); -#if 0 - vsprintf_s(text, pcFormat, args); -#else - vsprintf(text, pcFormat, args); -#endif - sm_csLastError = text; - va_end(args); - - if (SblDevice::sm_pStatusFunction != NULL) - { - bool error = (m_lastSblStatus == SBL_SUCCESS) ? false : true; - sm_pStatusFunction((char *)sm_csLastError.c_str(), error); - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Utility function for converting 4 elements in char array into -* 32 bit variable. Data are converted MSB, that is. \e pcSrc[0] is the -* most significant byte. -* -* \param pcSrc[in] -* A pointer to the source array. -* -* \return -* Returns the 32 bit variable. -*/ -//----------------------------------------------------------------------------- -/*static */uint32_t -SblDevice::charArrayToUL(const char *pcSrc) -{ - DEBUG_PRINT("\n"); - uint32_t ui32Val = (unsigned char)pcSrc[3]; - ui32Val += (((unsigned long)pcSrc[2]) & 0xFF) << 8; - ui32Val += (((unsigned long)pcSrc[1]) & 0xFF) << 16; - ui32Val += (((unsigned long)pcSrc[0]) & 0xFF) << 24; - return (ui32Val); -} - - -//----------------------------------------------------------------------------- -/** \brief Utility function for splitting 32 bit variable into char array -* (4 elements). Data are converted MSB, that is, \e pcDst[0] is the -* most significant byte. -* -* \param[in] ui32Src -* The 32 bit variable to convert. -* -* \param[out] pcDst -* Pointer to the char array where the data will be stored. -* -* \return -* void -*/ -//----------------------------------------------------------------------------- -/*static */void -SblDevice::ulToCharArray(const uint32_t ui32Src, char *pcDst) -{ - DEBUG_PRINT("\n"); - // MSB first - pcDst[0] = (uint8_t)(ui32Src >> 24); - pcDst[1] = (uint8_t)(ui32Src >> 16); - pcDst[2] = (uint8_t)(ui32Src >> 8); - pcDst[3] = (uint8_t)(ui32Src >> 0); -} - - -//----------------------------------------------------------------------------- -/** \brief Utility function for swapping the byte order of a 4B char array. -* -* \param[in|out] pcArray -* The char array to byte swap. -* -* \return -* void -*/ -//----------------------------------------------------------------------------- -/*static */void -SblDevice::byteSwap(char *pcArray) -{ - DEBUG_PRINT("\n"); - uint8_t tmp[2] = { (uint8_t)pcArray[0], (uint8_t)pcArray[1] }; - pcArray[0] = pcArray[3]; - pcArray[1] = pcArray[2]; - pcArray[2] = tmp[1]; - pcArray[3] = tmp[0]; -} - - -//----------------------------------------------------------------------------- -/** \brief This functions sets the SBL progress. -* -* \param[in] ui32Progress -* The current progress, typically in percent [0-100]. -* -* \return -* void -*/ -//----------------------------------------------------------------------------- -/*static*/uint32_t -SblDevice::setProgress(uint32_t ui32Progress) -{ - DEBUG_PRINT("\n"); - if (sm_pProgressFunction) - { - sm_pProgressFunction(ui32Progress); - } - - sm_progress = ui32Progress; - - return SBL_SUCCESS; -} diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device.h b/feeds/bluetooth-cc2652/cc2652/src/sbl_device.h deleted file mode 100755 index 8db5aa683..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device.h +++ /dev/null @@ -1,143 +0,0 @@ -#ifndef __SBL_DEVICE_H__ -#define __SBL_DEVICE_H__ -/****************************************************************************** -* Filename: sbl_device.h -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader device header file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include "serialib.h" -// -// Typedefs for callback functions to report status and progress to application -// -typedef void (*tStatusFPTR)(char *pcText, bool bError); -typedef void (*tProgressFPTR)(uint32_t ui32Value); - -class SblDevice -{ -public: - // Constructor - ~SblDevice(); - - // Static functions - static SblDevice *Create(uint32_t ui32ChipType); - virtual uint32_t connect(std::string csPortNum, uint32_t ui32BaudRate, bool bEnableXosc = false); - virtual uint32_t ping() = 0; - virtual uint32_t readStatus(uint32_t *pui32Status) = 0; - virtual uint32_t readDeviceId(uint32_t *pui32DeviceId) = 0; - virtual uint32_t readFlashSize(uint32_t *pui32FlashSize) = 0; - virtual uint32_t readRamSize(uint32_t *pui32RamSize) = 0; - virtual uint32_t run(uint32_t ui32Address) { (void)ui32Address; return SBL_UNSUPPORTED_FUNCTION; }; - virtual uint32_t reset() = 0; - virtual uint32_t eraseFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount) { (void)ui32StartAddress; (void)ui32ByteCount; return 0; }; - virtual uint32_t writeFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount, const char *pcData) { (void)ui32StartAddress; (void)ui32ByteCount; (void)pcData; return 0; }; - virtual uint32_t readMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, uint32_t *pui32Data) = 0; - virtual uint32_t readMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, char *pcData) = 0; - virtual uint32_t writeMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const uint32_t *pui32Data) = 0; - virtual uint32_t writeMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const char *pcData) = 0; - virtual uint32_t calculateCrc32(uint32_t ui32StartAddress, uint32_t ui32ByteCount, uint32_t *pui32Crc) = 0; - - // CC2650 specific - virtual uint32_t eraseFlashBank(){ return SBL_UNSUPPORTED_FUNCTION; }; - virtual uint32_t setCCFG(uint32_t ui32Field, uint32_t ui32FieldValue) { (void)ui32Field; (void)ui32FieldValue; return SBL_UNSUPPORTED_FUNCTION; }; - - // CC2538 specific - virtual uint32_t setXosc() { return SBL_UNSUPPORTED_FUNCTION; }; - - // Utility functions - bool isConnected(); - uint32_t getDeviceId() { return m_deviceId; } - uint32_t getFlashSize() { return m_flashSize; } - uint32_t getRamSize() { return m_ramSize; } - uint32_t getBaudRate() { return m_baudRate; } - uint32_t getLastStatus() {return m_lastSblStatus; } - uint32_t getLastDeviceStatus() { return m_lastDeviceStatus; } - uint32_t getPageEraseSize() { return m_pageEraseSize; } - static std::string &getLastError(void) { return sm_csLastError;} - static uint32_t getProgress() { return sm_progress; } - static uint32_t setProgress(uint32_t ui32Progress); - static void setCallBackStatusFunction(tStatusFPTR pSf) {sm_pStatusFunction = pSf; } - static void setCallBackProgressFunction(tProgressFPTR pPf) {sm_pProgressFunction = pPf; } - -protected: - // Constructor - SblDevice(); - - virtual uint32_t initCommunication(bool bSetXosc) = 0; - virtual uint32_t sendCmd(uint32_t ui32Cmd, const char *pcSendData = NULL, uint32_t ui32SendLen = 0) = 0; - virtual uint32_t sendAutoBaud(bool &bBaudSetOk); - virtual uint32_t getCmdResponse(bool &bAck, uint32_t ui32MaxRetries = SBL_DEFAULT_RETRY_COUNT, bool bQuiet = false); - virtual uint32_t sendCmdResponse(bool bAck); - virtual uint32_t getResponseData(char *pcData, uint32_t &ui32MaxLen, uint32_t ui32MaxRetries = SBL_DEFAULT_RETRY_COUNT); - - virtual uint8_t generateCheckSum(uint32_t ui32Cmd, const char *pcData, uint32_t ui32DataLen); - virtual uint32_t addressToPage(uint32_t ui32Address) = 0; - virtual bool addressInRam(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1) = 0; - virtual bool addressInFlash(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1) = 0; - - virtual uint32_t getBootloaderEnableAddress() = 0; - - uint32_t setState(const uint32_t &ui32Status) { m_lastSblStatus = ui32Status; return m_lastSblStatus;} - uint32_t setState(const uint32_t &ui32Status, char *pcFormat, ...); - - // Utility - static uint32_t charArrayToUL(const char *pcSrc); - static void ulToCharArray(const uint32_t ui32Src, char *pcDst); - static void byteSwap(char *pcArray); - - serialib *m_pCom; - std::string m_csComPort; - bool m_bCommInitialized; - uint32_t m_baudRate; - - static uint32_t sm_chipType; - uint32_t m_deviceId; - uint32_t m_flashSize; - uint32_t m_ramSize; - uint32_t m_pageEraseSize; - - // Status and progress variables - int32_t m_lastDeviceStatus; - int32_t m_lastSblStatus; - static uint32_t sm_progress; - static std::string sm_csLastError; - static tProgressFPTR sm_pProgressFunction; - static tStatusFPTR sm_pStatusFunction; - -private: - -}; - -#endif // __SBL_DEVICE_H__ diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.cpp b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.cpp deleted file mode 100755 index 5cfb71cd9..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.cpp +++ /dev/null @@ -1,1762 +0,0 @@ -/****************************************************************************** -* Filename: sbl_device_cc2538.cpp -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader device file for CC2538 -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ - -#include -#include "sbl_device.h" -#include "sbl_device_cc2538.h" -#include "serialib.h" -//#include - -#include - - -/// Struct used when splitting long transfers -typedef struct { - uint32_t startAddr; - uint32_t byteCount; - uint32_t startOffset; - bool bExpectAck; -} tTransfer; - -//----------------------------------------------------------------------------- -/** \brief Constructor - */ -//----------------------------------------------------------------------------- -SblDeviceCC2538::SblDeviceCC2538() -{ - DEBUG_PRINT("\n"); - m_pageEraseSize = SBL_CC2538_PAGE_ERASE_SIZE; -} - -//----------------------------------------------------------------------------- -/** \brief Destructor - */ -//----------------------------------------------------------------------------- -SblDeviceCC2538::~SblDeviceCC2538() -{ - DEBUG_PRINT("\n"); -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends ping command to device. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::ping() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bResponse = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_PING)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Get response - // - if((retCode = getCmdResponse(bResponse)) != SBL_SUCCESS) - { - return retCode; - } - - return (bResponse) ? SBL_SUCCESS : SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief This function gets status from device. - * - * \param[out] pStatus - * Pointer to where status is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readStatus(uint32_t *pui32Status) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_GET_STATUS)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive command response data - // - char status = 0; - uint32_t ui32NumBytes = 1; - if((retCode = getResponseData(&status, ui32NumBytes)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - // - // Respond with ACK - // - sendCmdResponse(true); - - m_lastDeviceStatus = status; - *pui32Status = status; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device ID. - * - * \param[out] pui32DeviceId - * Pointer to where device ID is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readDeviceId(uint32_t *pui32DeviceId) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_GET_CHIP_ID)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive response data - // - char pId[4]; - memset(pId, 0, 4); - uint32_t numBytes = 4; - if((retCode = getResponseData(pId, numBytes)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - if(numBytes != 4) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "Didn't receive 4 B.\n"); - return SBL_ERROR; - } - - // - // Respond with ACK - // - sendCmdResponse(true); - - // - // Store retrieved ID and report success - // - *pui32DeviceId = charArrayToUL(pId); - m_deviceId = *pui32DeviceId; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device FLASH size in bytes. - * - * \param[out] pui32FlashSize - * Pointer to where FLASH size is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readFlashSize(uint32_t *pui32FlashSize) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - - // - // Read CC2538 DIECFG0 (contains FLASH size information) - // - uint32_t addr = SBL_CC2538_DIECFG0; - uint32_t value; - if((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState((tSblStatus)retCode, "Failed to read device FLASH size: %s", getLastError().c_str()); - return retCode; - } - - // - // Calculate FLASH size (FLASH size bits are at bits [6:4]) - // - value = ((value >> 4) & 0x07); - switch(value) - { - case 1: *pui32FlashSize = 0x20000; break; // 128 KB - case 2: *pui32FlashSize = 0x40000; break; // 256 KB - case 3: *pui32FlashSize = 0x60000; break; // 384 KB - case 4: *pui32FlashSize = 0x80000; break; // 512 KB - case 0: // 64 KB - default:*pui32FlashSize = 0x10000; break; // All invalid values are interpreted as 64 KB - } - - m_flashSize = *pui32FlashSize; - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device RAM size in bytes. - * - * \param[out] pui32RamSize - * Pointer to where RAM size is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readRamSize(uint32_t *pui32RamSize) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - - // - // Read CC2538 DIECFG0 (contains RAM size information - // - uint32_t addr = SBL_CC2538_DIECFG0; - uint32_t value; - if((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read device RAM size: %s", getLastError().c_str()); - return retCode; - } - - // - // Calculate RAM size in bytes (Ram size bits are at bits [9:7]) - // - value = ((value >> 7) & 0x07); - switch(value) - { - case 4: *pui32RamSize = 0x8000; break; // 32 KB - case 0: *pui32RamSize = 0x4000; break; // 16 KB - case 1: *pui32RamSize = 0x2000; break; // 8 KB - default:*pui32RamSize = 0x2000; break; // All invalid values are interpreted as 8 KB - } - - m_ramSize = *pui32RamSize; - - return retCode; -} - - -//----------------------------------------------------------------------------- -/** \brief This function makes the device run from the address given by - * \u ui32Address, transferring execution control away from the - * bootloader. No further bootloader access will be possible. - * - * \parameter[in] ui32Address - * The device address where execution will be transferred to. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::run(uint32_t ui32Address) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Generate payload - // - 4B address - // - char pcPayload[4]; - ulToCharArray(ui32Address, &pcPayload[0]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_RUN, pcPayload, 4)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Run command NAKed by device.\n"); - return SBL_ERROR; - } - - m_bCommInitialized = false; - return SBL_SUCCESS; - -} - -//----------------------------------------------------------------------------- -/** \brief This function reset the device. Communication to the device must be - * reinitialized after calling this function. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::reset() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_RESET)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Reset command NAKed by device.\n"); - return SBL_ERROR; - } - - m_bCommInitialized = false; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function erases device flash pages. Starting page is the page - * that includes the address in \e startAddress. Ending page is the page - * that includes the address . CC2538 erase - * size is 2KB. - * - * \param[in] ui32StartAddress - * The start address in flash. - * \param[in] ui32ByteCount - * The number of bytes to erase. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::eraseFlashRange(uint32_t ui32StartAddress, - uint32_t ui32ByteCount) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[8]; - uint32_t devStatus; - - // - // Initial check - // - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Calculate retry count - // - uint32_t ui32PageCount = ui32ByteCount / SBL_CC2538_PAGE_ERASE_SIZE; - if( ui32ByteCount % SBL_CC2538_PAGE_ERASE_SIZE) ui32PageCount ++; - uint32_t ui32TryCount = (((ui32PageCount * SBL_CC2538_PAGE_ERASE_TIME_MS) / \ - SBL_DEFAULT_READ_TIMEOUT) + 1); - - // - // Build payload - // - 4B address (MSB first) - // - 4B byte count (MSB first) - // - ulToCharArray(ui32StartAddress, &pcPayload[0]); - ulToCharArray(ui32ByteCount, &pcPayload[4]); - - // - // Set progress - // - setProgress(0); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_ERASE, pcPayload, 8)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, ui32TryCount)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Check device status (Flash failed if page(s) locked) - // - readStatus(&devStatus); - if(devStatus != SblDeviceCC2538::CMD_RET_SUCCESS) - { - setState(SBL_ERROR, "Flash erase failed. (Status 0x%02X = '%s'). Flash pages may be locked.\n", devStatus, getCmdStatusString(devStatus).c_str()); - return SBL_ERROR; - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads \e ui32UnitCount (32 bit) words of data from - * device. Destination array is 32 bit wide. The start address must be 4 - * byte aligned. - * - * \param[in] ui32StartAddress - * Start address in device (must be 4 byte aligned). - * \param[in] ui32UnitCount - * Number of data words to read. - * \param[out] pcData - * Pointer to where read data is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, - uint32_t *pui32Data) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if((ui32StartAddress & 0x03)) - { - setState(SBL_ARGUMENT_ERROR, "readMemory32(): Start address (0x%08X) must be a multiple of 4.\n", ui32StartAddress); - return SBL_ARGUMENT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - char pcPayload[5]; - uint32_t recvCount = 0; - for(uint32_t i = 0; i < ui32UnitCount; i++) - { - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - ulToCharArray((ui32StartAddress + (i*4)), &pcPayload[0]); - pcPayload[4] = SBL_CC2538_ACCESS_WIDTH_4B; - - // - // Set progress - // - setProgress( ((100 * i)/ui32UnitCount) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_MEMORY_READ, pcPayload, 5)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive 4B response - // - recvCount = 4; - if((retCode = getResponseData(pcPayload, recvCount)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - if(recvCount != 4) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "Didn't receive 4 B.\n"); - return SBL_ERROR; - } - pui32Data[i] = charArrayToUL(pcPayload); - - // - // Respond with ACK - // - sendCmdResponse(true); - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads \e unitCount bytes of data from device. - * Destination array is 8 bit wide. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of bytes to read. - * \param[out] pcData - * Pointer to where read data is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::readMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, - char *pcData) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Using 4B access width. Expanding byte count to include bytes at start - // and end of sequence. - // - uint32_t begCnt = ui32StartAddress % 4; - uint32_t endCnt = (ui32StartAddress + ui32UnitCount) % 4; - if(endCnt) { endCnt = 4 - endCnt; } - uint32_t totByteCnt = begCnt + ui32UnitCount + endCnt; - - - // - // Word align start address - // - ui32StartAddress -= begCnt; - - // - // Create temporary vector with enough space. - // - std::vector tmpBuf (totByteCnt); - - // - // Set progress - // - setProgress(0); - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - char pcPayload[5]; - uint32_t recvCount = 0; - for(uint32_t i = 0; i < totByteCnt/4; i++) - { - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - ulToCharArray((ui32StartAddress + (i*4)), &pcPayload[0]); - pcPayload[4] = SBL_CC2538_ACCESS_WIDTH_4B; - - // - // Set progress - // - setProgress( ((100 * i)/(totByteCnt/4)) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_MEMORY_READ, pcPayload, 5)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive 4B response - // - recvCount = 4; - if((retCode = getResponseData(pcPayload, recvCount)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - if(recvCount != 4) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "Didn't receive 4 B.\n"); - return SBL_ERROR; - } - byteSwap(pcPayload); - memcpy(&tmpBuf[4*i], pcPayload, 4); - - // - // Respond with ACK - // - sendCmdResponse(true); - } - - // - // Copy wanted data to pcData - // - for(uint32_t i = 0; i < ui32UnitCount; i++) - { - pcData[i] = tmpBuf.at(i + begCnt); - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function writes \e unitCount words of data to device SRAM. - * Source array is 32 bit wide. \e ui32StartAddress must be 4 byte - * aligned. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of data words (32bit) to write. - * \param[in] pui32Data - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::writeMemory32(uint32_t ui32StartAddress, - uint32_t ui32UnitCount, - const uint32_t *pui32Data) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[9]; - uint32_t recvCount = 0; - uint32_t currAddr; - - // - // Check input arguments - // - if(!addressInRam(ui32StartAddress, ui32UnitCount*4)) - { - setState(SBL_ARGUMENT_ERROR, "writeMemory32(): Address range (0x%08X + %d bytes) is not in device RAM.\n", ui32StartAddress, ui32UnitCount*4); - return SBL_ARGUMENT_ERROR; - } - if((ui32StartAddress & 0x03)) - { - setState(SBL_ARGUMENT_ERROR, "writeMemory32(): Start address (0x%08X) must be a multiple of 4.\n", ui32StartAddress); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - for(uint32_t i = 0; i < ui32UnitCount; i++) - { - currAddr = ui32StartAddress + (i * 4); - // - // Build payload - // - 4B address (MSB first) - // - 4B data value (MSB first) - // - 1B access width - // - ulToCharArray(currAddr, &pcPayload[0]); - ulToCharArray(pui32Data[i], &pcPayload[4]); - pcPayload[8] = SBL_CC2538_ACCESS_WIDTH_4B; - - // - // Set progress - // - setProgress( ((100 * i)/ui32UnitCount) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_MEMORY_WRITE, pcPayload, 9)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Device NAKed read command for address 0x%08X.\n", currAddr); - return SBL_ERROR; - } - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function writes \e unitCount words of data to device SRAM. - * Source array is 8 bit wide. Parameters \e startAddress and \e unitCount - * must be a a multiple of 4. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of bytes to write. - * \param[in] pcData - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::writeMemory8(uint32_t ui32StartAddress, - uint32_t ui32UnitCount, - const char *pcData) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[9]; - uint32_t recvCount = 0; - uint32_t currAddr; - - // - // Check input arguments - // - if(!addressInRam(ui32StartAddress, ui32UnitCount)) - { - setState(SBL_ARGUMENT_ERROR, "writeMemory8(): Address range (0x%08X + %d bytes) is not in device RAM.\n", ui32StartAddress, ui32UnitCount*4); - return SBL_ARGUMENT_ERROR; - } - if((ui32StartAddress & 0x03) || (ui32UnitCount & 0x03)) - { - setState(SBL_ARGUMENT_ERROR, "writeMemory8(): Start address (0x%08X) and byte count (%d) must be a multiple of 4.\n", ui32StartAddress, ui32UnitCount); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - for(uint32_t i = 0; i < ui32UnitCount/4; i++) - { - currAddr = ui32StartAddress + (i * 4); - // - // Build payload - // - 4B address (MSB first) - // - 4B data value (MSB first) - // - 1B access width - // - ulToCharArray(currAddr, &pcPayload[0]); - memcpy(&pcPayload[4], &pcData[(i * 4)], 4); - pcPayload[8] = SBL_CC2538_ACCESS_WIDTH_4B; - - // - // Set progress - // - setProgress( ((100 * i) / (ui32UnitCount / 4)) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_MEMORY_WRITE, pcPayload, 9)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Device NAKed read command for address 0x%08X.\n", currAddr); - return SBL_ERROR; - } - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function calculates CRC over \e byteCount bytes on the device, - * starting at address \e startAddress. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32ByteCount - * Number of bytes to calculate CRC32 over. - * \param[out] pui32Crc - * Pointer to where checksum from device is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::calculateCrc32(uint32_t ui32StartAddress, - uint32_t ui32ByteCount, uint32_t *pui32Crc) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[8]; - uint32_t ui32RecvCount = 0; - - // - // Check input arguments - // - if(!addressInFlash(ui32StartAddress, ui32ByteCount) && - !addressInRam(ui32StartAddress, ui32ByteCount)) - { - setState(SBL_ARGUMENT_ERROR, "Specified address range (0x%08X + %d bytes) is not in device FLASH nor RAM.\n", ui32StartAddress, ui32ByteCount); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - // - // Build payload - // - 4B address (MSB first) - // - 4B byte count(MSB first) - // - ulToCharArray(ui32StartAddress, &pcPayload[0]); - ulToCharArray(ui32ByteCount, &pcPayload[4]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_CRC32, pcPayload, 8)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Device NAKed CRC32 command.\n"); - return SBL_ERROR; - } - - // - // Get data response - // - ui32RecvCount = 4; - if((retCode = getResponseData(pcPayload, ui32RecvCount)) != SBL_SUCCESS) - { - sendCmdResponse(false); - return retCode; - } - *pui32Crc = charArrayToUL(pcPayload); - - // - // Send ACK/NAK to command - // - bool bAck = (ui32RecvCount == 4) ? true : false; - sendCmdResponse(bAck); - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - - -//----------------------------------------------------------------------------- -/** \brief This function writes \e unitCount words of data to device FLASH. - * Source array is 8 bit wide. Parameters \e startAddress and \e unitCount - * must be a a multiple of 4. This function does not erase the flash - * before writing data, this must be done using e.g. eraseFlashRange(). - * - * \param[in] ui32StartAddress - * Start address in device. Must be a multiple of 4. - * \param[in] ui32ByteCount - * Number of bytes to program. Must be a multiple of 4. - * \param[in] pcData - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::writeFlashRange(uint32_t ui32StartAddress, - uint32_t ui32ByteCount, const char *pcData) -{ - DEBUG_PRINT("\n"); - uint32_t devStatus = SblDeviceCC2538::CMD_RET_UNKNOWN_CMD; - uint32_t retCode = SBL_SUCCESS; - uint32_t bytesLeft, dataIdx, bytesInTransfer; - uint32_t transferNumber = 1; - bool bIsRetry = false; - bool bBlToBeDisabled = false; - std::vector pvTransfer; - uint32_t ui32TotChunks = (ui32ByteCount / SBL_CC2538_MAX_BYTES_PER_TRANSFER); - if(ui32ByteCount % SBL_CC2538_MAX_BYTES_PER_TRANSFER) ui32TotChunks++; - uint32_t ui32CurrChunk = 0; - - // - // Calculate BL configuration address (depends on flash size) - // - uint32_t ui32BlCfgAddr = getBootloaderEnableAddress(); - - // - // Calculate BL configuration buffer index - // - uint32_t ui32BlCfgDataIdx = ui32BlCfgAddr - ui32StartAddress; - - // - // Is BL configuration part of buffer? - // - if(ui32BlCfgDataIdx <= ui32ByteCount) - { - if((pcData[ui32BlCfgDataIdx] & SBL_CC2538_BL_CONFIG_ENABLED_BM) == 0) - { - bBlToBeDisabled = true; - setState(SBL_SUCCESS, "Warning: Bootloader will be disabled.\n"); - } - } - - if(bBlToBeDisabled) - { - // - // Split into two transfers - // - pvTransfer.resize(2); - - // - // Main transfer (before lock bit) - // - pvTransfer[0].bExpectAck = true; - pvTransfer[0].startAddr = ui32StartAddress; - pvTransfer[0].byteCount = (ui32BlCfgAddr - ui32StartAddress) & (~0x03); - pvTransfer[0].startOffset = 0; - - // - // The transfer locking the backdoor - // - pvTransfer[1].bExpectAck = false; - pvTransfer[1].startAddr = ui32BlCfgAddr - (ui32BlCfgAddr % 4); - pvTransfer[1].byteCount = ui32ByteCount - pvTransfer[0].byteCount; - pvTransfer[1].startOffset = ui32BlCfgDataIdx - (ui32BlCfgDataIdx % 4); - - } - else - { - pvTransfer.resize(1); - pvTransfer[0].bExpectAck = true; - pvTransfer[0].byteCount = ui32ByteCount; - pvTransfer[0].startAddr = ui32StartAddress; - pvTransfer[0].startOffset = 0; - } - - // - // For each transfer - // - for(uint32_t i = 0; i < pvTransfer.size(); i++) - { - // - // Sanity check - // - if(pvTransfer[i].byteCount == 0) - { - continue; - } - - // - // Set progress - // - //setProgress(addressToPage(pvTransfer[i].startAddr)); - - // - // Send download command - // - if((retCode = cmdDownload(pvTransfer[i].startAddr, - pvTransfer[i].byteCount)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Check status after download command - // - retCode = readStatus(&devStatus); - if(retCode != SBL_SUCCESS) - { - setState(retCode, "Error during download initialization. Failed to read device status after sending download command.\n"); - return retCode; - } - if(devStatus != SblDeviceCC2538::CMD_RET_SUCCESS) - { - setState(SBL_ERROR, "Error during download initialization. Device returned status %d (%s).\n", devStatus, getCmdStatusString(devStatus).c_str()); - return SBL_ERROR; - } - - // - // Send data in chunks - // - bytesLeft = pvTransfer[i].byteCount; - dataIdx = pvTransfer[i].startOffset; - while(bytesLeft) - { - // - // Set progress - // - //setProgress(addressToPage(ui32StartAddress + dataIdx)); - setProgress( ((100*(++ui32CurrChunk))/ui32TotChunks) ); - - // - // Limit transfer count - // -#if 0 - bytesInTransfer = min(SBL_CC2538_MAX_BYTES_PER_TRANSFER, bytesLeft); -#else - if(bytesLeft > SBL_CC2538_MAX_BYTES_PER_TRANSFER) - { - bytesInTransfer = SBL_CC2538_MAX_BYTES_PER_TRANSFER; - } else { - bytesInTransfer = bytesLeft; - } -#endif - - // - // Send Data command - // - if(retCode = cmdSendData(&pcData[dataIdx], bytesInTransfer) != SBL_SUCCESS) - { - setState(retCode, "Error during flash download. \n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress+dataIdx), - bytesInTransfer, - (transferNumber)); - return retCode; - } - - if(pvTransfer[i].bExpectAck) - { - // - // Check status after send data command - // - devStatus = 0; - retCode = readStatus(&devStatus); - if(retCode != SBL_SUCCESS) - { - setState(retCode, "Error during flash download. Failed to read device status.\n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d in chunk %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress + dataIdx), - (bytesInTransfer), (transferNumber), - (i)); - return retCode; - } - if(devStatus != SblDeviceCC2538::CMD_RET_SUCCESS) - { - setState(SBL_SUCCESS, "Device returned status %s\n", getCmdStatusString(devStatus).c_str()); - if(bIsRetry) - { - // - // We have failed a second time. Aborting. - setState(SBL_ERROR, "Error retrying flash download.\n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d in chunk %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress + dataIdx), - (bytesInTransfer), (transferNumber), - (i)); - return SBL_ERROR; - } - - // - // Retry to send data one more time. - // - bIsRetry = true; - continue; - } - } - else - { - // - // We're locking device and will lose access - // - m_bCommInitialized = false; - - } - - // - // Update index and bytesLeft - // - bytesLeft -= bytesInTransfer; - dataIdx += bytesInTransfer; - transferNumber++; - bIsRetry = false; - } - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the specified bootloader command. - * - * \param[in] ui32Cmd - * The command to send. - * \param[in] pcSendData - * Pointer to the data to send with the command. - * \param[in] ui32SendLen - * The number of bytes to send from \e pcSendData. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::sendCmd(uint32_t ui32Cmd, const char *pcSendData/* = NULL*/, - uint32_t ui32SendLen/* = 0*/) -{ - DEBUG_PRINT("\n"); - unsigned char pktLen = ui32SendLen + 3; // +3 => <1b Length>, <1B checksum>, <1B cmd> - std::vector pvPkt((pktLen)); - unsigned char pktSum = generateCheckSum(ui32Cmd, pcSendData, ui32SendLen); - - // - // Build packet - // - pvPkt.at(0) = pktLen; - pvPkt.at(1) = pktSum; - pvPkt.at(2) = (unsigned char)ui32Cmd; - if(ui32SendLen) - { - memcpy(&pvPkt[3], pcSendData, ui32SendLen); - } - - // - // Send packet - // - if(m_pCom->writeBytes(&pvPkt[0], pvPkt.size()) < 1) - { - setState(SBL_PORT_ERROR, "Writing to device failed (Command '%s').\n", getCmdString(ui32Cmd).c_str()); - return SBL_PORT_ERROR; - } - - - // - // Empty and deallocate vector - // - pvPkt.clear(); - std::vector().swap(pvPkt); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function initializes connection to the CC2538 device. - * - * \param[in] bSetXosc - * If true, try to enable device XOSC. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::initCommunication(bool bSetXosc) -{ - DEBUG_PRINT("\n"); - bool bSuccess, bBaudSetOk; - int retCode = SBL_ERROR; - - // - // Send dummy command to see if device is already initialized at - // this baud rate. - // - if(sendCmd(0) != SBL_SUCCESS) - { - return SBL_ERROR; - } - - // - // Do we get a response (ACK/NAK)? - // - bSuccess = false; - if(getCmdResponse(bSuccess, SBL_DEFAULT_RETRY_COUNT, true) != SBL_SUCCESS) - { - // - // No response received. Try auto baud - // - if(retCode = sendAutoBaud(bBaudSetOk) != SBL_SUCCESS) - { - return retCode; - } - } - - if(bSetXosc) - { - setState(SBL_SUCCESS, "Trying to set device XOSC.\n"); - // - // Try to enable XOSC - // - if((retCode = setXosc()) != SBL_SUCCESS) - { - // - // setXosc returned error - // - setState(retCode, "Failed to activate device XOSC.\n"); - return retCode; - } - - // - // Send dummy command - // - bSuccess = false; - sendCmd(0); - if(retCode = getCmdResponse(bSuccess, SBL_DEFAULT_RETRY_COUNT, true) != SBL_SUCCESS) - { - // - // Send auto baud again - // - if((retCode = sendAutoBaud(bBaudSetOk)) != SBL_SUCCESS) - { - setState((tSblStatus)retCode, "Auto baud detection failed after starting XOSC.\n"); - return retCode; - } - setState(SBL_SUCCESS, "Device XOSC activated.\n"); - } - } - - m_bCommInitialized = true; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns a string representation of the \e ui32Cmd - * command. - * - * \param[out] ui32Cmd - * The serial bootloader command. - * \return - * Returns std::string with name of device command. - */ -//----------------------------------------------------------------------------- -std::string -SblDeviceCC2538::getCmdString(uint32_t ui32Cmd) -{ - DEBUG_PRINT("\n"); - switch(ui32Cmd) - { - case SblDeviceCC2538::CMD_PING: return "CMD_PING"; break; - case SblDeviceCC2538::CMD_CRC32: return "CMD_CRC32"; break; - case SblDeviceCC2538::CMD_DOWNLOAD: return "CMD_DOWNLOAD"; break; - case SblDeviceCC2538::CMD_ERASE: return "CMD_ERASE"; break; - case SblDeviceCC2538::CMD_GET_CHIP_ID: return "CMD_GET_CHIP_ID"; break; - case SblDeviceCC2538::CMD_GET_STATUS: return "CMD_GET_STATUS"; break; - case SblDeviceCC2538::CMD_MEMORY_READ: return "CMD_MEMORY_READ"; break; - case SblDeviceCC2538::CMD_MEMORY_WRITE: return "CMD_MEMORY_WRITE"; break; - case SblDeviceCC2538::CMD_RESET: return "CMD_RESET"; break; - default: return "Unknown command"; break; - } -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns a string representation of the - * \e ui32Status serial bootloader status value. - * - * \param[out] ui32Status - * The serial bootloader status value. - * \return - * Returns std::string of device status. - */ -//----------------------------------------------------------------------------- -std::string -SblDeviceCC2538::getCmdStatusString(uint32_t ui32Status) -{ - DEBUG_PRINT("\n"); - switch(ui32Status) - { - case SblDeviceCC2538::CMD_RET_FLASH_FAIL: return "FLASH_FAIL"; break; - case SblDeviceCC2538::CMD_RET_INVALID_ADR: return "INVALID_ADR"; break; - case SblDeviceCC2538::CMD_RET_INVALID_CMD: return "INVALID_CMD"; break; - case SblDeviceCC2538::CMD_RET_SUCCESS: return "SUCCESS"; break; - case SblDeviceCC2538::CMD_RET_UNKNOWN_CMD: return "UNKNOWN_CMD"; break; - default: return "Unknown status"; break; - } -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2538 download command and handles the - * device response. \e ui32ByteCount must be a multiple of 4. - * - * \param[in] ui32Address - * The start address in CC2538 flash. - * \param[in] ui32ByteCount - * The total number of bytes to program on the device. - * - * \return - * Returns SBL_SUCCESS if command and response was successful. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::cmdDownload(uint32_t ui32Address, uint32_t ui32Size) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - - // - // Check input arguments - // - if(!addressInFlash(ui32Address, ui32Size)) - { - setState(SBL_ARGUMENT_ERROR, "Flash download: Address range (0x%08X + %d bytes) is not in device FLASH nor RAM.\n", ui32Address, ui32Size); - return SBL_ARGUMENT_ERROR; - } - if(ui32Size & 0x03) - { - setState(SBL_ARGUMENT_ERROR, "Flash download: Byte count must be a multiple of 4\n"); - return SBL_ARGUMENT_ERROR; - } - - // - // Generate payload - // - 4B Program address - // - 4B Program size - // - char pcPayload[8]; - ulToCharArray(ui32Address, &pcPayload[0]); - ulToCharArray(ui32Size, &pcPayload[4]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_DOWNLOAD, pcPayload, 8)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Return command response - // - return (bSuccess) ? SBL_SUCCESS : SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2538 SendData command and handles the - * device response. \e ui32ByteCount is limited by - * SBL_CC2538_MAX_BYTES_PER_TRANSFER. - * - * \param[in] pcData - * Pointer to the data to send. - * \param[in] ui32ByteCount - * The number of bytes to send. - * - * \return - * Returns SBL_SUCCESS if command and response was successful. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::cmdSendData(const char *pcData, uint32_t ui32ByteCount) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if(ui32ByteCount > SBL_CC2538_MAX_BYTES_PER_TRANSFER) - { - setState(SBL_ERROR, "Error: Byte count (%d) exceeds maximum transfer size %d.\n", ui32ByteCount, SBL_CC2538_MAX_BYTES_PER_TRANSFER); - return SBL_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_SEND_DATA, pcData, ui32ByteCount)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 3)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns the FLASH address of the bootloader enable -* configuration. -* -* \return -* Returns true if the address/range is within the device RAM. -*/ -//----------------------------------------------------------------------------- -uint32_t SblDeviceCC2538::getBootloaderEnableAddress() -{ - DEBUG_PRINT("\n"); - return (SBL_CC2538_FLASH_START_ADDRESS + getFlashSize() - getPageEraseSize() + SBL_CC2538_BL_CONFIG_PAGE_OFFSET); -} - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2538 SetXosc command and handles the - * response from the device. - * - * \return - * Returns SBL_SUCCESS if command and response was successful. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::setXosc() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2538::CMD_SET_XOSC)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5, true)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns the address within which the specified - * \e ui32Address is located. - * - * \return - * Returns the flash page within which an address is located. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2538::addressToPage(uint32_t ui32Address) -{ - DEBUG_PRINT("\n"); - return ((ui32Address - SBL_CC2538_FLASH_START_ADDRESS) / \ - SBL_CC2538_PAGE_ERASE_SIZE); -} - - -//----------------------------------------------------------------------------- -/** \brief This function checks if the specified \e ui32StartAddress (or range) - * is located within the device RAM area. - * - * \return - * Returns true if the address/range is within the device RAM. - */ -//----------------------------------------------------------------------------- -bool -SblDeviceCC2538::addressInRam(uint32_t ui32StartAddress, - uint32_t ui32ByteCount/* = 1*/) -{ - DEBUG_PRINT("\n"); - uint32_t ui32EndAddr = ui32StartAddress + ui32ByteCount; - - if(ui32StartAddress < SBL_CC2538_RAM_START_ADDRESS) - { - return false; - } - if(ui32EndAddr > (SBL_CC2538_RAM_START_ADDRESS + getRamSize())) - { - return false; - } - return true; -} - - -//----------------------------------------------------------------------------- -/** \brief This function checks if the specified \e ui32StartAddress (or range) - * is located within the device FLASH area. - * - * \return - * Returns true if the address/range is within the device FLASH. - */ -//----------------------------------------------------------------------------- -bool -SblDeviceCC2538::addressInFlash(uint32_t ui32StartAddress, - uint32_t ui32ByteCount/* = 1*/) -{ - DEBUG_PRINT("\n"); - uint32_t ui32EndAddr = ui32StartAddress + ui32ByteCount; - - if(ui32StartAddress < SBL_CC2538_FLASH_START_ADDRESS) - { - return false; - } - if(ui32EndAddr > (SBL_CC2538_FLASH_START_ADDRESS + getFlashSize())) - { - return false; - } - - return true; -} diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.h b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.h deleted file mode 100755 index c5316c621..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2538.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __SBL_DEVICE_CC2538_H__ -#define __SBL_DEVICE_CC2538_H__ -/****************************************************************************** -* Filename: sbl_device_cc2538.h -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader for CC2538 header file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include - -// -// For more information about the CC2538 serial bootloader interface, -// please refer to the CC2538 ROM User's guide (http://www.ti.com/lit/swru333) -// - -#define SBL_CC2538_PAGE_ERASE_SIZE 2048 -#define SBL_CC2538_FLASH_START_ADDRESS 0x00200000 -#define SBL_CC2538_RAM_START_ADDRESS 0x20000000 -#define SBL_CC2538_ACCESS_WIDTH_4B 4 -#define SBL_CC2538_ACCESS_WIDTH_1B 1 -#define SBL_CC2538_PAGE_ERASE_TIME_MS 20 -#define SBL_CC2538_MAX_BYTES_PER_TRANSFER 252 -#define SBL_CC2538_DIECFG0 0x400D3014 -#define SBL_CC2538_BL_CONFIG_PAGE_OFFSET 2007 -#define SBL_CC2538_BL_CONFIG_ENABLED_BM 0x10 - -class SblDeviceCC2538 : public SblDevice -{ -public: - SblDeviceCC2538(); // Constructor - ~SblDeviceCC2538(); // Destructor - - enum { - CMD_PING = 0x20, - CMD_DOWNLOAD = 0x21, - CMD_RUN = 0x22, - CMD_GET_STATUS = 0x23, - CMD_SEND_DATA = 0x24, - CMD_RESET = 0x25, - CMD_ERASE = 0x26, - CMD_CRC32 = 0x27, - CMD_GET_CHIP_ID = 0x28, - CMD_SET_XOSC = 0x29, - CMD_MEMORY_READ = 0x2A, - CMD_MEMORY_WRITE = 0x2B, - }; - - enum { - CMD_RET_SUCCESS = 0x40, - CMD_RET_UNKNOWN_CMD = 0x41, - CMD_RET_INVALID_CMD = 0x42, - CMD_RET_INVALID_ADR = 0x43, - CMD_RET_FLASH_FAIL = 0x44, - }; - -protected: - - // Virtual functions from SblDevice - uint32_t ping(); - - uint32_t readStatus(uint32_t *pui32Status); - uint32_t readDeviceId(uint32_t *pui32DeviceId); - uint32_t readFlashSize(uint32_t *pui32FlashSize); - uint32_t readRamSize(uint32_t *pui32RamSize); - - uint32_t run(uint32_t ui32Address); - uint32_t reset(); - uint32_t eraseFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount); - uint32_t writeFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount, const char *pcData); - uint32_t readMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, uint32_t *pui32Data); - uint32_t readMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, char *pcData); - uint32_t writeMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const uint32_t *pui32Data); - uint32_t writeMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const char *pcData); - - uint32_t calculateCrc32(uint32_t ui32StartAddress, uint32_t ui32ByteCount, uint32_t *pui32Crc); - - uint32_t sendCmd(uint32_t ui32Cmd, const char *pcSendData = NULL, uint32_t ui32SendLen = 0); - uint32_t addressToPage(uint32_t ui32Address); - bool addressInRam(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1); - bool addressInFlash(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1); - uint32_t setXosc(); - -private: - uint32_t initCommunication(bool bSetXosc); - uint32_t cmdDownload(uint32_t ui32Address, uint32_t ui32Size); - uint32_t cmdSendData(const char *pcData, uint32_t ui32ByteCount); - - uint32_t getBootloaderEnableAddress(); - - std::string getCmdString(uint32_t ui32Cmd); - std::string getCmdStatusString(uint32_t ui32Status); -}; - -#endif // __SBL_DEVICE_CC2538_H__ diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.cpp b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.cpp deleted file mode 100755 index e2012144f..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.cpp +++ /dev/null @@ -1,1903 +0,0 @@ -/****************************************************************************** -* Filename: sbl_device_cc2650.cpp -* Revised: $Date: 2013-08-21 14:33:34 +0200 (on, 21 aug 2013) $ -* Revision: $Revision: 27319 $ -* -* Description: Serial Bootloader device file for CC2650 -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ - -#include -#include "sbl_device.h" -#include "sbl_device_cc2650.h" - -#include "serialib.h" - -#include - -#if 1 -static uint32_t min(uint32_t a, uint32_t b) -{ - if(a > b) - { - return b; - } - return a; -} -#endif - -/// Struct used when splitting long transfers -typedef struct { - uint32_t startAddr; - uint32_t byteCount; - uint32_t startOffset; - bool bExpectAck; -} tTransfer; - -static uint32_t getDeviceRev(uint32_t deviceId) -{ - uint32_t tmp = deviceId >> 28; - switch(tmp) - { - // Early samples (Rev 1) - case 0: - case 1: - return 1; - default: - return 2; - } -} - - -//----------------------------------------------------------------------------- -/** \brief Constructor - */ -//----------------------------------------------------------------------------- -SblDeviceCC2650::SblDeviceCC2650() -{ - m_deviceRev = 0; - m_pageEraseSize = SBL_CC2650_PAGE_ERASE_SIZE; - - if(!m_pCom) - { - m_pCom = new serialib(); - } -} - -//----------------------------------------------------------------------------- -/** \brief Destructor - */ -//----------------------------------------------------------------------------- -SblDeviceCC2650::~SblDeviceCC2650() -{ -} - -//----------------------------------------------------------------------------- -/** \brief This function sends ping command to device. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::ping() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bResponse = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_PING)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Get response - // - if((retCode = getCmdResponse(bResponse)) != SBL_SUCCESS) - { - return retCode; - } - - return (bResponse) ? SBL_SUCCESS : SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief This function gets status from device. - * - * \param[out] pStatus - * Pointer to where status is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readStatus(uint32_t *pui32Status) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_GET_STATUS)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive command response data - // - char status = 0; - uint32_t ui32NumBytes = 1; - if((retCode = getResponseData(&status, ui32NumBytes)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - // - // Respond with ACK - // - sendCmdResponse(true); - - m_lastDeviceStatus = status; - *pui32Status = status; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device ID. - * - * \param[out] pui32DeviceId - * Pointer to where device ID is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readDeviceId(uint32_t *pui32DeviceId) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_GET_CHIP_ID)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive response data - // - char pId[4]; - memset(pId, 0, 4); - uint32_t numBytes = 4; - if((retCode = getResponseData(pId, numBytes)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - if(numBytes != 4) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "Didn't receive 4 B.\n"); - return SBL_ERROR; - } - - // - // Respond with ACK - // - sendCmdResponse(true); - - // - // Store retrieved ID and report success - // - *pui32DeviceId = charArrayToUL(pId); - m_deviceId = *pui32DeviceId; - - // - // Store device revision (used internally, see sbl_device_cc2650.h) - // - m_deviceRev = getDeviceRev(m_deviceId); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device FLASH size in bytes. - * - * \param[out] pui32FlashSize - * Pointer to where FLASH size is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readFlashSize(uint32_t *pui32FlashSize) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - - // - // Read CC2650 DIECFG0 (contains FLASH size information) - // - uint32_t addr = SBL_CC2650_FLASH_SIZE_CFG; - uint32_t value; - if((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState((tSblStatus)retCode, "Failed to read device FLASH size: %s", getLastError().c_str()); - return retCode; - } - // - // Calculate flash size (The number of flash sectors are at bits [7:0]) - // - value &= 0xFF; - *pui32FlashSize = value * getPageEraseSize(); - - m_flashSize = *pui32FlashSize; - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads device RAM size in bytes. - * - * \param[out] pui32RamSize - * Pointer to where RAM size is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readRamSize(uint32_t *pui32RamSize) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - - // - // Read CC2650 DIECFG0 (contains RAM size information - // - uint32_t addr = SBL_CC2650_RAM_SIZE_CFG; - uint32_t value; - if((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read device RAM size: %s", getLastError().c_str()); - return retCode; - } - - // - // Calculate RAM size in bytes (Ram size bits are at bits [1:0]) - // - value &= 0x03; - if(m_deviceRev == 1) - { - // Early samples has less RAM - switch(value) - { - case 3: *pui32RamSize = 0x4000; break; // 16 KB - case 2: *pui32RamSize = 0x2000; break; // 8 KB - case 1: *pui32RamSize = 0x1000; break; // 4 KB - case 0: // 2 KB - default:*pui32RamSize = 0x0800; break; // All invalid values are interpreted as 2 KB - } - } - else - { - switch(value) - { - case 3: *pui32RamSize = 0x5000; break; // 20 KB - case 2: *pui32RamSize = 0x4000; break; // 16 KB - case 1: *pui32RamSize = 0x2800; break; // 10 KB - case 0: // 4 KB - default:*pui32RamSize = 0x1000; break; // All invalid values are interpreted as 4 KB - } - } - - // CC1310F64 and CC1310F32 officially has 16KB SRAM, but 20KB enabled. Return official value. - if((sm_chipType == 0x1310 && m_deviceRev > 1) && - (m_flashSize == (64*1024) || (m_flashSize == (32*1024)))) { - *pui32RamSize = 0x4000; - } - - // - // Save RAM size internally - // - m_ramSize = *pui32RamSize; - - return retCode; -} - -//----------------------------------------------------------------------------- -/** \brief This function reset the device. Communication to the device must be - * reinitialized after calling this function. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::reset() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_RESET)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Reset command NAKed by device.\n"); - return SBL_ERROR; - } - - m_bCommInitialized = false; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function erases device flash pages. Starting page is the page - * that includes the address in \e startAddress. Ending page is the page - * that includes the address . CC13/CC26xx erase - * size is 4KB. - * - * \param[in] ui32StartAddress - * The start address in flash. - * \param[in] ui32ByteCount - * The number of bytes to erase. - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::eraseFlashRange(uint32_t ui32StartAddress, - uint32_t ui32ByteCount) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[4]; - uint32_t devStatus; - - // - // Initial check - // - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Calculate retry count - // - uint32_t ui32PageCount = ui32ByteCount / getPageEraseSize(); - if( ui32ByteCount % getPageEraseSize()) ui32PageCount ++; - setProgress( 0 ); - for(uint32_t i = 0; i < ui32PageCount; i++) - { - - // - // Build payload - // - 4B address (MSB first) - // - ulToCharArray(ui32StartAddress + i * getPageEraseSize(), &pcPayload[0]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_SECTOR_ERASE, pcPayload, 4)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Check device status (Flash failed if page(s) locked) - // - readStatus(&devStatus); - if(devStatus != SblDeviceCC2650::CMD_RET_SUCCESS) - { - setState(SBL_ERROR, "Flash erase failed. (Status 0x%02X = '%s'). Flash pages may be locked.\n", devStatus, getCmdStatusString(devStatus).c_str()); - return SBL_ERROR; - } - - setProgress( 100*(i+1)/ui32PageCount ); - } - - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads \e ui32UnitCount (32 bit) words of data from - * device. Destination array is 32 bit wide. The start address must be 4 - * byte aligned. - * - * \param[in] ui32StartAddress - * Start address in device (must be 4 byte aligned). - * \param[in] ui32UnitCount - * Number of data words to read. - * \param[out] pcData - * Pointer to where read data is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, - uint32_t *pui32Data) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if((ui32StartAddress & 0x03)) - { - setState(SBL_ARGUMENT_ERROR, "readMemory32(): Start address (0x%08X) must be a multiple of 4.\n", ui32StartAddress); - return SBL_ARGUMENT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - unsigned char pcPayload[6]; - uint32_t responseData[SBL_CC2650_MAX_MEMREAD_WORDS]; - uint32_t chunkCount = ui32UnitCount / SBL_CC2650_MAX_MEMREAD_WORDS; - if(ui32UnitCount % SBL_CC2650_MAX_MEMREAD_WORDS) chunkCount++; - uint32_t remainingCount = ui32UnitCount; - - for(uint32_t i = 0; i < chunkCount; i++) - { - uint32_t dataOffset = (i * SBL_CC2650_MAX_MEMREAD_WORDS); - uint32_t chunkStart = ui32StartAddress + dataOffset; -#if 1 - uint32_t chunkSize = min(remainingCount, SBL_CC2650_MAX_MEMREAD_WORDS); -#else - uint32_t chunkSize; - if(remainingCount > SBL_CC2650_MAX_MEMREAD_WORDS) - { - chunkSize = SBL_CC2650_MAX_MEMREAD_WORDS; - } else { - chunkSize = remainingCount; - } -#endif - remainingCount -= chunkSize; - - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - 1B Number of accesses (in words) - // - ulToCharArray(chunkStart, (char *)&pcPayload[0]); - pcPayload[4] = SBL_CC2650_ACCESS_WIDTH_32B; - pcPayload[5] = chunkSize; - // - // Set progress - // - setProgress(((i * 100) / chunkCount)); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_MEMORY_READ, (char *)pcPayload, 6)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive 4B response - // - uint32_t expectedBytes = chunkSize * 4; - uint32_t recvBytes = expectedBytes; - if((retCode = getResponseData((char*)responseData, recvBytes)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - if(recvBytes != expectedBytes) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "Didn't receive 4 B.\n"); - return SBL_ERROR; - } - - memcpy(&pui32Data[dataOffset], responseData, expectedBytes); - //delete [] responseData; - // - // Respond with ACK - // - sendCmdResponse(true); - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function reads \e unitCount bytes of data from device. - * Destination array is 8 bit wide. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of bytes to read. - * \param[out] pcData - * Pointer to where read data is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::readMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, - char *pcData) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if(ui32UnitCount == 0) - { - setState(SBL_ARGUMENT_ERROR, "readMemory8(): Read count is zero. Must be at least 1.\n"); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - unsigned char pcPayload[6]; - uint32_t chunkCount = ui32UnitCount / SBL_CC2650_MAX_MEMREAD_BYTES; - if(ui32UnitCount % SBL_CC2650_MAX_MEMREAD_BYTES) chunkCount++; - uint32_t remainingCount = ui32UnitCount; - - for(uint32_t i = 0; i < chunkCount; i++) - { - uint32_t dataOffset = (i * SBL_CC2650_MAX_MEMREAD_BYTES); - uint32_t chunkStart = ui32StartAddress + dataOffset; - uint32_t chunkSize = min(remainingCount, SBL_CC2650_MAX_MEMREAD_BYTES); - remainingCount -= chunkSize; - - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - 1B number of accesses (in bytes) - // - ulToCharArray(chunkStart, (char *)&pcPayload[0]); - pcPayload[4] = SBL_CC2650_ACCESS_WIDTH_8B; - pcPayload[5] = chunkSize; - - // - // Set progress - // - setProgress( ((i*100) / chunkCount)); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_MEMORY_READ, (char *)pcPayload, 6)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - // - // Receive response - // - uint32_t expectedBytes = chunkSize; - if((retCode = getResponseData(&pcData[dataOffset], chunkSize)) != SBL_SUCCESS) - { - // - // Respond with NAK - // - sendCmdResponse(false); - return retCode; - } - - if(chunkSize != expectedBytes) - { - // - // Respond with NAK - // - sendCmdResponse(false); - setState(SBL_ERROR, "readMemory8(): Received %d bytes (%d B expected) in iteration %d.\n", chunkSize, expectedBytes, i); - return SBL_ERROR; - } - - // - // Respond with ACK - // - sendCmdResponse(true); - } - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - - -//----------------------------------------------------------------------------- -/** \brief This function writes \e unitCount words of data to device SRAM. - * Max 61 32-bit words supported. Source array is 32 bit wide. - * \e ui32StartAddress must be 4 byte aligned. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of data words (32bit) to write. - * \param[in] pui32Data - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::writeMemory32(uint32_t ui32StartAddress, - uint32_t ui32UnitCount, - const uint32_t *pui32Data) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if((ui32StartAddress & 0x03)) - { - setState(SBL_ARGUMENT_ERROR, "writeMemory32(): Start address (0x%08X) must 4 byte aligned.\n", ui32StartAddress); - return SBL_ARGUMENT_ERROR; - } - if(addressInBLWorkMemory(ui32StartAddress, ui32UnitCount * 4)) - { - // Issue warning - setState(SBL_ARGUMENT_ERROR, "writeMemory32(): Writing to bootloader work memory/stack:\n(0x%08X-0x%08X, 0x%08X-0x%08X)\n", - SBL_CC2650_BL_WORK_MEMORY_START,SBL_CC2650_BL_WORK_MEMORY_END, SBL_CC2650_BL_STACK_MEMORY_START,SBL_CC2650_BL_STACK_MEMORY_END); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - uint32_t chunkCount = (ui32UnitCount / SBL_CC2650_MAX_MEMWRITE_WORDS); - if(ui32UnitCount % SBL_CC2650_MAX_MEMWRITE_WORDS) chunkCount++; - uint32_t remainingCount = ui32UnitCount; - char* pcPayload = new char[5 + (SBL_CC2650_MAX_MEMWRITE_WORDS*4)]; - - for(uint32_t i = 0; i < chunkCount; i++) - { - uint32_t chunkOffset = i * SBL_CC2650_MAX_MEMWRITE_WORDS; - uint32_t chunkStart = ui32StartAddress + (chunkOffset * 4); - uint32_t chunkSize = min(remainingCount, SBL_CC2650_MAX_MEMWRITE_WORDS); - remainingCount -= chunkSize; - - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - 1-SBL_CC2650_MAX_MEMWRITE_WORDS data (MSB first) - // - ulToCharArray(chunkStart, &pcPayload[0]); - pcPayload[4] = SBL_CC2650_ACCESS_WIDTH_32B; - for(uint32_t j = 0; j < chunkSize; j++) - { - ulToCharArray(pui32Data[j + chunkOffset], &pcPayload[5 + j*4]); - } - - // - // Set progress - // - setProgress( ((i * 100) / chunkCount) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_MEMORY_WRITE, pcPayload, 5 + chunkSize*4)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "writeMemory32(): Device NAKed command for address 0x%08X.\n", chunkStart); - return SBL_ERROR; - } - } - - // - // Set progress - // - setProgress(100); - - // - // Cleanup - // - delete [] pcPayload; - - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Write \e unitCount words of data to device SRAM. Source array is - * 8 bit wide. Max 244 bytes of data. Source array is 32 bit wide. - * Parameters \e startAddress and \e unitCount must be a a multiple of 4. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32UnitCount - * Number of bytes to write. - * \param[in] pcData - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::writeMemory8(uint32_t ui32StartAddress, - uint32_t ui32UnitCount, - const char *pcData) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if(addressInBLWorkMemory(ui32StartAddress, ui32UnitCount)) - { - // Issue warning - setState(SBL_ARGUMENT_ERROR, "writeMemory8(): Writing to bootloader work memory/stack:\n(0x%08X-0x%08X, 0x%08X-0x%08X)\n", - SBL_CC2650_BL_WORK_MEMORY_START,SBL_CC2650_BL_WORK_MEMORY_END, SBL_CC2650_BL_STACK_MEMORY_START,SBL_CC2650_BL_STACK_MEMORY_END); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - uint32_t chunkCount = (ui32UnitCount / SBL_CC2650_MAX_MEMWRITE_BYTES); - if(ui32UnitCount % SBL_CC2650_MAX_MEMWRITE_BYTES) chunkCount++; - uint32_t remainingCount = ui32UnitCount; - char* pcPayload = new char[5 + SBL_CC2650_MAX_MEMWRITE_BYTES]; - - for(uint32_t i = 0; i < chunkCount; i++) - { - uint32_t chunkOffset = i * SBL_CC2650_MAX_MEMWRITE_BYTES; - uint32_t chunkStart = ui32StartAddress + chunkOffset; - uint32_t chunkSize = min(remainingCount, SBL_CC2650_MAX_MEMWRITE_BYTES); - remainingCount -= chunkSize; - - // - // Build payload - // - 4B address (MSB first) - // - 1B access width - // - 1-SBL_CC2650_MAX_MEMWRITE_BYTES bytes data - // - ulToCharArray(chunkStart, &pcPayload[0]); - pcPayload[4] = SBL_CC2650_ACCESS_WIDTH_8B; - memcpy(&pcPayload[5], &pcData[chunkOffset], chunkSize); - - // - // Set progress - // - setProgress( ((i * 100) / chunkCount) ); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_MEMORY_WRITE, pcPayload, 5 + chunkSize)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "writeMemory8(): Device NAKed command for address 0x%08X.\n", chunkStart); - return SBL_ERROR; - } - } - - // - // Set progress - // - setProgress(100); - - // - // Cleanup - // - delete [] pcPayload; - - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Calculate CRC over \e byteCount bytes, starting at address - * \e startAddress. - * - * \param[in] ui32StartAddress - * Start address in device. - * \param[in] ui32ByteCount - * Number of bytes to calculate CRC32 over. - * \param[out] pui32Crc - * Pointer to where checksum from device is stored. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::calculateCrc32(uint32_t ui32StartAddress, - uint32_t ui32ByteCount, uint32_t *pui32Crc) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - char pcPayload[12]; - uint32_t ui32RecvCount = 0; - - // - // Check input arguments - // - if(!addressInFlash(ui32StartAddress, ui32ByteCount) && - !addressInRam(ui32StartAddress, ui32ByteCount)) - { - setState(SBL_ARGUMENT_ERROR, "Specified address range (0x%08X + %d bytes) is not in device FLASH nor RAM.\n", ui32StartAddress, ui32ByteCount); - return SBL_ARGUMENT_ERROR; - } - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Set progress - // - setProgress(0); - - // - // Build payload - // - 4B address (MSB first) - // - 4B byte count(MSB first) - // - ulToCharArray(ui32StartAddress, &pcPayload[0]); - ulToCharArray(ui32ByteCount, &pcPayload[4]); - pcPayload[8] = 0x00; - pcPayload[9] = 0x00; - pcPayload[10] = 0x00; - pcPayload[11] = 0x00; - // - // Send command - // -#if 0 - { - int i; - printf("@@send CMD_CRC32:"); - for(i=0;i<12;i++) printf(" %02x",(unsigned char)pcPayload[i]); - printf("\n"); - } -#endif - if((retCode = sendCmd(SblDeviceCC2650::CMD_CRC32, pcPayload, 12)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 5)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Device NAKed CRC32 command.\n"); - return SBL_ERROR; - } - - // - // Get data response - // - ui32RecvCount = 4; - if((retCode = getResponseData(pcPayload, ui32RecvCount)) != SBL_SUCCESS) - { - sendCmdResponse(false); - return retCode; - } -#if 0 - { - int i; - printf("@@recive CRC:"); - for(i=0;i<4;i++) printf(" %02x",(unsigned char)pcPayload[i]); - printf("\n"); - } -#endif - *pui32Crc = charArrayToUL(pcPayload); - - // - // Send ACK/NAK to command - // - bool bAck = (ui32RecvCount == 4) ? true : false; - sendCmdResponse(bAck); - - // - // Set progress - // - setProgress(100); - - return SBL_SUCCESS; -} - - - -//----------------------------------------------------------------------------- -/** \brief Write \e unitCount words of data to device FLASH. Source array is - * 8 bit wide. Parameters \e startAddress and \e unitCount must be a - * a multiple of 4. This function does not erase the flash before writing - * data, this must be done using e.g. eraseFlashRange(). - * - * \param[in] ui32StartAddress - * Start address in device. Must be a multiple of 4. - * \param[in] ui32ByteCount - * Number of bytes to program. Must be a multiple of 4. - * \param[in] pcData - * Pointer to source data. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::writeFlashRange(uint32_t ui32StartAddress, - uint32_t ui32ByteCount, const char *pcData) -{ - DEBUG_PRINT("\n"); - uint32_t devStatus = SblDeviceCC2650::CMD_RET_UNKNOWN_CMD; - uint32_t retCode = SBL_SUCCESS; - uint32_t bytesLeft, dataIdx, bytesInTransfer; - uint32_t transferNumber = 1; - bool bIsRetry = false; - bool bBlToBeDisabled = false; - std::vector pvTransfer; - uint32_t ui32TotChunks = (ui32ByteCount / SBL_CC2650_MAX_BYTES_PER_TRANSFER); - if(ui32ByteCount % SBL_CC2650_MAX_BYTES_PER_TRANSFER) ui32TotChunks++; - uint32_t ui32CurrChunk = 0; - - // - // Calculate BL configuration address (depends on flash size) - // - uint32_t ui32BlCfgAddr = getBootloaderEnableAddress(); - - // - // Calculate BL configuration buffer index - // - uint32_t ui32BlCfgDataIdx = ui32BlCfgAddr - ui32StartAddress; - - // - // Is BL configuration part of buffer? - // - if(ui32BlCfgDataIdx <= ui32ByteCount) - { - if(((pcData[ui32BlCfgDataIdx]) & 0xFF) != SBL_CC2650_BL_CONFIG_ENABLED_BM) - { - bBlToBeDisabled = true; - setState(SBL_SUCCESS, "Warning: Bootloader will be disabled.\n"); - } - } - - if(bBlToBeDisabled) - { - // - // Split into two transfers - // - pvTransfer.resize(2); - - // - // Main transfer (before lock bit) - // - pvTransfer[0].bExpectAck = true; - pvTransfer[0].startAddr = ui32StartAddress; - pvTransfer[0].byteCount = (ui32BlCfgAddr - ui32StartAddress) & (~0x03); - pvTransfer[0].startOffset = 0; - - // - // The transfer locking the backdoor - // - pvTransfer[1].bExpectAck = false; - pvTransfer[1].startAddr = ui32BlCfgAddr - (ui32BlCfgAddr % 4); - pvTransfer[1].byteCount = ui32ByteCount - pvTransfer[0].byteCount; - pvTransfer[1].startOffset = ui32BlCfgDataIdx - (ui32BlCfgDataIdx % 4); - - } - else - { - pvTransfer.resize(1); - pvTransfer[0].bExpectAck = true; - pvTransfer[0].byteCount = ui32ByteCount; - pvTransfer[0].startAddr = ui32StartAddress; - pvTransfer[0].startOffset = 0; - } - - // - // For each transfer - // - for(uint32_t i = 0; i < pvTransfer.size(); i++) - { - // - // Sanity check - // - if(pvTransfer[i].byteCount == 0) - { - continue; - } - - // - // Send download command - // - if((retCode = cmdDownload(pvTransfer[i].startAddr, - pvTransfer[i].byteCount)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Check status after download command - // - retCode = readStatus(&devStatus); - if(retCode != SBL_SUCCESS) - { - setState(retCode, "Error during download initialization. Failed to read device status after sending download command.\n"); - return retCode; - } - if(devStatus != SblDeviceCC2650::CMD_RET_SUCCESS) - { - setState(SBL_ERROR, "Error during download initialization. Device returned status %d (%s).\n", devStatus, getCmdStatusString(devStatus).c_str()); - return SBL_ERROR; - } - - // - // Send data in chunks - // - bytesLeft = pvTransfer[i].byteCount; - dataIdx = pvTransfer[i].startOffset; - while(bytesLeft) - { - // - // Set progress - // - //setProgress(addressToPage(ui32StartAddress + dataIdx)); - setProgress( ((100*(++ui32CurrChunk))/ui32TotChunks) ); - - // - // Limit transfer count - // -#if 1 - bytesInTransfer = min(SBL_CC2650_MAX_BYTES_PER_TRANSFER, bytesLeft); -#else - if(bytesLeft > SBL_CC2650_MAX_BYTES_PER_TRANSFER) - { - bytesInTransfer = SBL_CC2650_MAX_BYTES_PER_TRANSFER; - } else { - bytesInTransfer = bytesLeft; - } -#endif - - // - // Send Data command - // - if(retCode = cmdSendData(&pcData[dataIdx], bytesInTransfer) != SBL_SUCCESS) - { - setState(retCode, "Error during flash download. \n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress+dataIdx), - bytesInTransfer, - (transferNumber)); - return retCode; - } - - if(pvTransfer[i].bExpectAck) - { - // - // Check status after send data command - // - devStatus = 0; - retCode = readStatus(&devStatus); - if(retCode != SBL_SUCCESS) - { - setState(retCode, "Error during flash download. Failed to read device status.\n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d in chunk %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress + dataIdx), - (bytesInTransfer), (transferNumber), - (i)); - return retCode; - } - if(devStatus != SblDeviceCC2650::CMD_RET_SUCCESS) - { - setState(SBL_SUCCESS, "Device returned status %s\n", getCmdStatusString(devStatus).c_str()); - if(bIsRetry) - { - // - // We have failed a second time. Aborting. - setState(SBL_ERROR, "Error retrying flash download.\n- Start address 0x%08X (page %d). \n- Tried to transfer %d bytes. \n- This was transfer %d in chunk %d.\n", - (ui32StartAddress+dataIdx), - addressToPage(ui32StartAddress + dataIdx), - (bytesInTransfer), (transferNumber), - (i)); - return SBL_ERROR; - } - - // - // Retry to send data one more time. - // - bIsRetry = true; - continue; - } - } - else - { - // - // We're locking device and will lose access - // - m_bCommInitialized = false; - - } - - // - // Update index and bytesLeft - // - bytesLeft -= bytesInTransfer; - dataIdx += bytesInTransfer; - transferNumber++; - bIsRetry = false; - } - } - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Erases all customer accessible flash sectors not protected by FCFG1 - * - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::eraseFlashBank() -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bResponse = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_BANK_ERASE)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Get response - // - if((retCode = getCmdResponse(bResponse)) != SBL_SUCCESS) - { - return retCode; - } - - return (bResponse) ? SBL_SUCCESS : SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief Writes the CC26xx defined CCFG fields to the flash CCFG area with - * the values received in the data bytes of this command. - * - * \param[in] ui32Field - * CCFG Field ID which identifies the CCFG parameter to be written. - * \param[in] ui32FieldValue - * Field value to be programmed. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- - -uint32_t SblDeviceCC2650::setCCFG(uint32_t ui32Field, uint32_t ui32FieldValue){ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - if(!isConnected()) - { - return SBL_PORT_ERROR; - } - - // - // Generate payload - // - 4B Field ID - // - 4B Field value - // - char pcPayload[8]; - ulToCharArray(ui32Field, &pcPayload[0]); - ulToCharArray(ui32FieldValue, &pcPayload[4]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_SET_CCFG, pcPayload, 8)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - setState(SBL_ERROR, "Set CCFG command NAKed by device.\n"); - return SBL_ERROR; - } - - - return SBL_SUCCESS; -} - -//----------------------------------------------------------------------------- -/** \brief Send command. - * - * \param[in] ui32Cmd - * The command to send. - * \param[in] pcSendData - * Pointer to the data to send with the command. - * \param[in] ui32SendLen - * The number of bytes to send from \e pcSendData. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::sendCmd(uint32_t ui32Cmd, const char *pcSendData/* = NULL*/, - uint32_t ui32SendLen/* = 0*/) -{ - DEBUG_PRINT("\n"); - // - // Handle command ID for early versions - // - ui32Cmd = convertCmdForEarlySamples(ui32Cmd); - - - unsigned char pktLen = ui32SendLen + 3; // +3 => <1b Length>, <1B checksum>, <1B cmd> - std::vector pvPkt((pktLen)); - unsigned char pktSum = generateCheckSum(ui32Cmd, pcSendData, ui32SendLen); - - // - // Build packet - // - pvPkt.at(0) = pktLen; - pvPkt.at(1) = pktSum; - pvPkt.at(2) = (unsigned char)ui32Cmd; - if(ui32SendLen) - { - memcpy(&pvPkt[3], pcSendData, ui32SendLen); - } - - // - // Send packet - // - if(m_pCom->writeBytes(&pvPkt[0], pvPkt.size()) < 1) - { - setState(SBL_PORT_ERROR, "\nWriting to device failed (Command 0x%04x:'%s').\n", ui32Cmd,getCmdString(ui32Cmd).c_str()); - return SBL_PORT_ERROR; - } - // - // Empty and deallocate vector - // - pvPkt.clear(); - std::vector().swap(pvPkt); - - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief Initialize connection to the CC2650 device. - * - * \param[in] bSetXosc - * If true, try to enable device XOSC. - * \return - * Returns SBL_SUCCESS, ... - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::initCommunication(bool bSetXosc) -{ - DEBUG_PRINT("\n"); - bool bSuccess, bBaudSetOk; - int retCode = SBL_ERROR; - - // - // Send dummy command to see if device is already initialized at - // this baud rate. - // - if(sendCmd(0) != SBL_SUCCESS) - { - return SBL_ERROR; - } - - // - // Do we get a response (ACK/NAK)? - // - bSuccess = false; - if(getCmdResponse(bSuccess, SBL_DEFAULT_RETRY_COUNT, true) != SBL_SUCCESS) - { - // - // No response received. Try auto baud - // - if(retCode = sendAutoBaud(bBaudSetOk) != SBL_SUCCESS) - { - return retCode; - } - } - - - m_bCommInitialized = true; - return SBL_SUCCESS; -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns a string with the device command name of - * \e ui32Cmd. - * - * \param[out] ui32Cmd - * The serial bootloader command. - * \return - * Returns std::string with name of device command. - */ -//----------------------------------------------------------------------------- -std::string -SblDeviceCC2650::getCmdString(uint32_t ui32Cmd) -{ - DEBUG_PRINT("\n"); - switch(ui32Cmd) - { - case SblDeviceCC2650::CMD_PING: return "CMD_PING"; break; - case SblDeviceCC2650::CMD_CRC32: return "CMD_CRC32"; break; - case SblDeviceCC2650::CMD_DOWNLOAD: return "CMD_DOWNLOAD"; break; - case SblDeviceCC2650::CMD_GET_CHIP_ID: return "CMD_GET_CHIP_ID"; break; - case SblDeviceCC2650::CMD_GET_STATUS: return "CMD_GET_STATUS"; break; - case SblDeviceCC2650::CMD_MEMORY_READ: return "CMD_MEMORY_READ"; break; - case SblDeviceCC2650::CMD_MEMORY_WRITE: return "CMD_MEMORY_WRITE"; break; - case SblDeviceCC2650::CMD_RESET: return "CMD_RESET"; break; - default: return "Unknown command"; break; - } -} - - -//----------------------------------------------------------------------------- -/** \brief This function returns a string with the device status name of - * \e ui32Status serial bootloader status value. - * - * \param[out] ui32Status - * The serial bootloader status value. - * \return - * Returns std::string with name of device status. - */ -//----------------------------------------------------------------------------- -std::string -SblDeviceCC2650::getCmdStatusString(uint32_t ui32Status) -{ - DEBUG_PRINT("\n"); - switch(ui32Status) - { - case SblDeviceCC2650::CMD_RET_FLASH_FAIL: return "FLASH_FAIL"; break; - case SblDeviceCC2650::CMD_RET_INVALID_ADR: return "INVALID_ADR"; break; - case SblDeviceCC2650::CMD_RET_INVALID_CMD: return "INVALID_CMD"; break; - case SblDeviceCC2650::CMD_RET_SUCCESS: return "SUCCESS"; break; - case SblDeviceCC2650::CMD_RET_UNKNOWN_CMD: return "UNKNOWN_CMD"; break; - default: return "Unknown status"; break; - } -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2650 download command and handles the - * device response. - * - * \param[in] ui32Address - * The start address in CC2650 flash. - * \param[in] ui32Size - * The total number of bytes to program on the device. - * - * \return - * Returns SBL_SUCCESS if command and response was successful. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::cmdDownload(uint32_t ui32Address, uint32_t ui32Size) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - - // - // Check input arguments - // - if(!addressInFlash(ui32Address, ui32Size)) - { - setState(SBL_ARGUMENT_ERROR, "Flash download: Address range (0x%08X + %d bytes) is not in device FLASH nor RAM.\n", ui32Address, ui32Size); - return SBL_ARGUMENT_ERROR; - } - if(ui32Size & 0x03) - { - setState(SBL_ARGUMENT_ERROR, "Flash download: Byte count must be a multiple of 4\n"); - return SBL_ARGUMENT_ERROR; - } - - // - // Generate payload - // - 4B Program address - // - 4B Program size - // - char pcPayload[8]; - ulToCharArray(ui32Address, &pcPayload[0]); - ulToCharArray(ui32Size, &pcPayload[4]); - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_DOWNLOAD, pcPayload, 8)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Return command response - // - return (bSuccess) ? SBL_SUCCESS : SBL_ERROR; -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2650 SendData command and handles the - * device response. - * - * \param[in] pcData - * Pointer to the data to send. - * \param[in] ui32ByteCount - * The number of bytes to send. - * - * \return - * Returns SBL_SUCCESS if command and response was successful. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::cmdSendData(const char *pcData, uint32_t ui32ByteCount) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if(ui32ByteCount > SBL_CC2650_MAX_BYTES_PER_TRANSFER) - { - setState(SBL_ERROR, "Error: Byte count (%d) exceeds maximum transfer size %d.\n", ui32ByteCount, SBL_CC2650_MAX_BYTES_PER_TRANSFER); - return SBL_ERROR; - } - - // - // Send command - // - if((retCode = sendCmd(SblDeviceCC2650::CMD_SEND_DATA, pcData, ui32ByteCount)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if((retCode = getCmdResponse(bSuccess, 3)) != SBL_SUCCESS) - { - return retCode; - } - if(!bSuccess) - { - return SBL_ERROR; - } - - return SBL_SUCCESS; -} - -//----------------------------------------------------------------------------- -/** \brief This function returns the page within which address \e ui32Address - * is located. - * - * \param[in] ui32Address - * The address. - * - * \return - * Returns the flash page within which an address is located. - */ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::addressToPage(uint32_t ui32Address) -{ - DEBUG_PRINT("\n"); - return ((ui32Address - SBL_CC2650_FLASH_START_ADDRESS) / getPageEraseSize() ); -} - - -//----------------------------------------------------------------------------- -/** \brief This function checks if the specified \e ui32StartAddress (and range) - * is located within the device RAM area. - * - * \param[in] ui32StartAddress - * The start address of the range - * \param[in] pui32Bytecount - * (Optional) The number of bytes in the range. - * \return - * Returns true if the address/range is within the device RAM. - */ -//----------------------------------------------------------------------------- -bool -SblDeviceCC2650::addressInRam(uint32_t ui32StartAddress, - uint32_t ui32ByteCount/* = 1*/) -{ - DEBUG_PRINT("\n"); - uint32_t ui32EndAddr = ui32StartAddress + ui32ByteCount; - - if(ui32StartAddress < SBL_CC2650_RAM_START_ADDRESS) - { - return false; - } - if(ui32EndAddr > (SBL_CC2650_RAM_START_ADDRESS + getRamSize())) - { - return false; - } - return true; -} - - -//----------------------------------------------------------------------------- -/** \brief This function checks if the specified \e ui32StartAddress (and range) - * is located within the device FLASH area. - * - * \param[in] ui32StartAddress - * The start address of the range - * \param[in] pui32Bytecount - * (Optional) The number of bytes in the range. - * - * \return - * Returns true if the address/range is within the device RAM. - */ -//----------------------------------------------------------------------------- -bool -SblDeviceCC2650::addressInFlash(uint32_t ui32StartAddress, - uint32_t ui32ByteCount/* = 1*/) -{ - DEBUG_PRINT("\n"); - uint32_t ui32EndAddr = ui32StartAddress + ui32ByteCount; - - if(ui32EndAddr > (SBL_CC2650_FLASH_START_ADDRESS + getFlashSize())) - { - return false; - } - - return true; -} - -//----------------------------------------------------------------------------- -/** \brief This function returns the FLASH address of the bootloader enable -* configuration. -* -* \return -* Returns true if the address/range is within the device RAM. -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2650::getBootloaderEnableAddress() -{ - DEBUG_PRINT("\n"); - return SBL_CC2650_FLASH_START_ADDRESS + getFlashSize() - getPageEraseSize() + SBL_CC2650_BL_CONFIG_PAGE_OFFSET; -} - -//----------------------------------------------------------------------------- -/** \brief This function checks if the specified \e ui32StartAddress (and range) - * overlaps the bootloader's working memory or stack area. - * - * The bootloader does not protect against writing to these ranges, but - * doing so is almost guaranteed to crash the bootloader and requires a - * reboot. SRAM ranges used by the bootloader: - * \li Work memory @ 0x20000000-0x2000016F - * \li Stack area @ 0x20000FC0-0x20000FFF - * - * \param[in] ui32StartAddress - * The start address of the range - * \param[in] pui32Bytecount - * (Optional) The number of bytes in the range. - * - * \return - * Returns true if the address/range is within the device RAM. - */ -//----------------------------------------------------------------------------- -bool -SblDeviceCC2650::addressInBLWorkMemory(uint32_t ui32StartAddress, - uint32_t ui32ByteCount/* = 1*/) -{ - DEBUG_PRINT("\n"); - uint32_t ui32EndAddr = ui32StartAddress + ui32ByteCount; - - if(ui32StartAddress <= SBL_CC2650_BL_WORK_MEMORY_END) - { - return true; - } - if((ui32StartAddress >= SBL_CC2650_BL_STACK_MEMORY_START) && - (ui32StartAddress <= SBL_CC2650_BL_STACK_MEMORY_END)) - { - return true; - } - if((ui32EndAddr >= SBL_CC2650_BL_STACK_MEMORY_START) && - (ui32EndAddr <= SBL_CC2650_BL_STACK_MEMORY_END)) - { - return true; - } - return false; -} - - -//----------------------------------------------------------------------------- -/** \brief This function converts the command ID if the connected device - * is an early version. Affected commands are - * \li CMD_MEMORY_READ - * \li CMD_MEMORY_WRITE - * \li CMD_SET_CCFG - * \li CMD_BANK_ERASE - * - * \param[in] ui32Cmd - * The command that must be converted. - * - * \return - * Returns the correct command ID for the connected device. - */ -//----------------------------------------------------------------------------- -uint32_t SblDeviceCC2650::convertCmdForEarlySamples(uint32_t ui32Cmd) -{ - DEBUG_PRINT("\n"); - if(m_deviceRev != 1) - { - // No conversion needed, return early. - return ui32Cmd; - } - switch(ui32Cmd) - { - case SblDeviceCC2650::CMD_MEMORY_READ: - return SblDeviceCC2650::REV1_CMD_MEMORY_READ; - case SblDeviceCC2650::CMD_MEMORY_WRITE: - return SblDeviceCC2650::REV1_CMD_MEMORY_WRITE; - case SblDeviceCC2650::CMD_SET_CCFG: - return SblDeviceCC2650::REV1_CMD_SET_CCFG; - case SblDeviceCC2650::CMD_BANK_ERASE: - return SblDeviceCC2650::REV1_CMD_BANK_ERASE; - default: - // No conversion needed, return original command. - return ui32Cmd; - } -} diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.h b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.h deleted file mode 100755 index 0a0f742d3..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2650.h +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef __SBL_DEVICE_CC2650_H__ -#define __SBL_DEVICE_CC2650_H__ -/****************************************************************************** -* Filename: sbl_device_cc2650.h -* Revised: $Date: 2013-07-26 09:53:42 +0200 (fr, 26 jul 2013) $ -* Revision: $Revision: 26971 $ -* -* Description: Serial Bootloader for CC2650 header file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include - - -#define SBL_CC2650_PAGE_ERASE_SIZE 4096 -#define SBL_CC2650_FLASH_START_ADDRESS 0x00000000 -#define SBL_CC2650_RAM_START_ADDRESS 0x20000000 -#define SBL_CC2650_ACCESS_WIDTH_32B 1 -#define SBL_CC2650_ACCESS_WIDTH_8B 0 -#define SBL_CC2650_PAGE_ERASE_TIME_MS 20 -#define SBL_CC2650_MAX_BYTES_PER_TRANSFER 252 -#define SBL_CC2650_MAX_MEMWRITE_BYTES 247 -#define SBL_CC2650_MAX_MEMWRITE_WORDS 61 -#define SBL_CC2650_MAX_MEMREAD_BYTES 253 -#define SBL_CC2650_MAX_MEMREAD_WORDS 63 -#define SBL_CC2650_FLASH_SIZE_CFG 0x4003002C -#define SBL_CC2650_RAM_SIZE_CFG 0x40082250 -#define SBL_CC2650_BL_CONFIG_PAGE_OFFSET 0xFDB -#define SBL_CC2650_BL_CONFIG_ENABLED_BM 0xC5 -#define SBL_CC2650_BL_WORK_MEMORY_START 0x20000000 -#define SBL_CC2650_BL_WORK_MEMORY_END 0x2000016F -#define SBL_CC2650_BL_STACK_MEMORY_START 0x20000FC0 -#define SBL_CC2650_BL_STACK_MEMORY_END 0x20000FFF - -class SblDeviceCC2650 : public SblDevice -{ -public: - SblDeviceCC2650(); // Constructor - ~SblDeviceCC2650(); // Destructor - - enum { - CMD_PING = 0x20, - CMD_DOWNLOAD = 0x21, - CMD_GET_STATUS = 0x23, - CMD_SEND_DATA = 0x24, - CMD_RESET = 0x25, - CMD_SECTOR_ERASE = 0x26, - CMD_CRC32 = 0x27, - CMD_GET_CHIP_ID = 0x28, - CMD_MEMORY_READ = 0x2A, - CMD_MEMORY_WRITE = 0x2B, - CMD_BANK_ERASE = 0x2C, - CMD_SET_CCFG = 0x2D, - }; - - /* Early samples had different command IDs */ - enum - { - REV1_CMD_BANK_ERASE = 0x2A, - REV1_CMD_SET_CCFG = 0x2B, - REV1_CMD_MEMORY_READ = 0x2C, - REV1_CMD_MEMORY_WRITE = 0x2D, - }; - - enum { - CMD_RET_SUCCESS = 0x40, - CMD_RET_UNKNOWN_CMD = 0x41, - CMD_RET_INVALID_CMD = 0x42, - CMD_RET_INVALID_ADR = 0x43, - CMD_RET_FLASH_FAIL = 0x44, - }; - -protected: - - // Virtual functions from SblDevice - uint32_t ping(); - - uint32_t readStatus(uint32_t *pui32Status); - uint32_t readDeviceId(uint32_t *pui32DeviceId); - virtual uint32_t readFlashSize(uint32_t *pui32FlashSize); - virtual uint32_t readRamSize(uint32_t *pui32RamSize); - - uint32_t reset(); - uint32_t eraseFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount); - uint32_t writeFlashRange(uint32_t ui32StartAddress, uint32_t ui32ByteCount, const char *pcData); - - - uint32_t readMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, uint32_t *pui32Data); - uint32_t readMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, char *pcData); - uint32_t writeMemory32(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const uint32_t *pui32Data); - uint32_t writeMemory8(uint32_t ui32StartAddress, uint32_t ui32UnitCount, const char *pcData); - - uint32_t calculateCrc32(uint32_t ui32StartAddress, uint32_t ui32ByteCount, uint32_t *pui32Crc); - - uint32_t sendCmd(uint32_t ui32Cmd, const char *pcSendData = NULL, uint32_t ui32SendLen = 0); - std::string getCmdString(uint32_t ui32Cmd); - uint32_t addressToPage(uint32_t ui32Address); - bool addressInRam(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1); - bool addressInFlash(uint32_t ui32StartAddress, uint32_t ui32ByteCount = 1); - - uint32_t convertCmdForEarlySamples(uint32_t ui32Cmd); - - virtual uint32_t getBootloaderEnableAddress(); - - // CC2650 specific - uint32_t eraseFlashBank(); - uint32_t setCCFG(uint32_t ui32Field, uint32_t ui32FieldValue); - - // Device revision. Used internally by SBL to handle early samples with different command IDs. - uint32_t m_deviceRev; -private: - uint32_t initCommunication(bool bSetXosc); - uint32_t cmdDownload(uint32_t ui32Address, uint32_t ui32Size); - uint32_t cmdSendData(const char *pcData, uint32_t ui32ByteCount); - - std::string getCmdStatusString(uint32_t ui32Status); - - bool addressInBLWorkMemory(uint32_t ui32StartAddr, uint32_t ui32ByteCount = 1); - - -}; - - -#endif // __SBL_DEVICE_CC2650_H__ diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.cpp b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.cpp deleted file mode 100755 index 49fb0d564..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.cpp +++ /dev/null @@ -1,330 +0,0 @@ -/****************************************************************************** -* Filename: sbl_device_cc2652.cpp -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader device file for CC13x2/CC26x2 -* -* Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ - -#include -#include "sbl_device.h" -#include "sbl_device_cc2652.h" - -#include "serialib.h" - - -//----------------------------------------------------------------------------- -/** \brief Constructor -*/ -//----------------------------------------------------------------------------- -SblDeviceCC2652::SblDeviceCC2652() : SblDeviceCC2650() -{ - DEBUG_PRINT("\n"); - m_pageEraseSize = SBL_CC2652_PAGE_ERASE_SIZE; -} - -//----------------------------------------------------------------------------- -/** \brief Destructor -*/ -//----------------------------------------------------------------------------- -SblDeviceCC2652::~SblDeviceCC2652() -{ - DEBUG_PRINT("\n"); -} - -//----------------------------------------------------------------------------- -/** \brief This function reads device FLASH size in bytes. -* -* \param[out] pui32FlashSize -* Pointer to where FLASH size is stored. -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2652::readFlashSize(uint32_t *pui32FlashSize) -{ - DEBUG_PRINT("\n"); - uint32_t retCode = SBL_SUCCESS; - - // - // Read CC2652 DIECFG0 (contains FLASH size information) - // - uint32_t addr = SBL_CC2652_FLASH_SIZE_CFG; - uint32_t value; - if ((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState((tSblStatus)retCode, "Failed to read device FLASH size: %s", getLastError().c_str()); - return retCode; - } - - // - // Calculate flash size (The number of flash sectors are at bits [7:0]) - // - value &= 0xFF; - *pui32FlashSize = value*SBL_CC2652_PAGE_ERASE_SIZE; - - m_flashSize = *pui32FlashSize; - - return SBL_SUCCESS; -} - -//----------------------------------------------------------------------------- -/** \brief This function reads device RAM size in bytes. -* -* \param[out] pui32RamSize -* Pointer to where RAM size is stored. -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2652::readRamSize(uint32_t *pui32RamSize) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - - uint32_t addr = SBL_CC2652_RAM_SIZE_CFG; - uint32_t value; - - if ((retCode = readMemory32(addr, 1, &value)) != SBL_SUCCESS) - { - setState(retCode, "Failed to read device RAM size: %s", getLastError().c_str()); - return retCode; - } - - uint32_t ramSizeInfo = (value & CHIP_SRAM_SIZE_INFO_M) >> CHIP_SRAM_SIZE_INFO_S; - - m_ramSize = calculateRamSize(ramSizeInfo); - - if (*pui32RamSize != NULL) - { - *pui32RamSize = m_ramSize; - } - - return retCode; -} - -//----------------------------------------------------------------------------- -/** \brief Calculate RAM size. -* -* \param[in] ramSizeInfo -* Register value for RAM size configuration (TOP:PRCM:RAMHWOPT). -* The argument is optional and the default value is 3 (RAM size 80 KB) -* \returns uint32_t -* Ram size -*/ -//----------------------------------------------------------------------------- -uint32_t SblDeviceCC2652::calculateRamSize(uint32_t ramSizeInfo) -{ - DEBUG_PRINT("\n"); - uint32_t ramSize; - - switch (ramSizeInfo) - { - case 0: - ramSize = (32 * 1024); - break; - case 1: - ramSize = (48 * 1024); - break; - case 2: - ramSize = (64 * 1024); - break; - case 3: - default: - ramSize = (80 * 1024); - break; - } - - return ramSize; - -} - -//----------------------------------------------------------------------------- -/** \brief This function returns the FLASH address of the bootloader enable -* configuration. -* -* \return -* Returns true if the address/range is within the device RAM. -*/ -//----------------------------------------------------------------------------- -uint32_t SblDeviceCC2652::getBootloaderEnableAddress() -{ - DEBUG_PRINT("\n"); - return SBL_CC2652_FLASH_START_ADDRESS + getFlashSize() - getPageEraseSize() + SBL_CC2652_BL_CONFIG_PAGE_OFFSET; -} - -//----------------------------------------------------------------------------- -/** \brief This function returns a string with the device command name of -* \e ui32Cmd. -* -* \param[out] ui32Cmd -* The serial bootloader command. -* \return -* Returns std::string with name of device command. -*/ -//----------------------------------------------------------------------------- -std::string -SblDeviceCC2652::getCmdString(uint32_t ui32Cmd) -{ - DEBUG_PRINT("\n"); - std::string cmd = SblDeviceCC2650::getCmdString(ui32Cmd); - if (cmd.find("Unknown") != std::string::npos) - { - switch (ui32Cmd) - { - case SblDeviceCC2652::CMD_DOWNLOAD_CRC: cmd = "CMD_DOWNLOAD_CRC"; break; - default: cmd = "Unknown command"; break; - } - } - - return cmd; -} - - -//----------------------------------------------------------------------------- -/** \brief This function sends the CC2652 download CRC command and handles the -* device response. -* -* \param[in] ui32Address -* The start address in CC2652 flash. -* \param[in] ui32Size -* Number of bytes to be sent. -* \param[in] ui32Crc -* Total number of bytes to be programmed. -* -* \return -* Returns SBL_SUCCESS if command and response was successful. -*/ -//----------------------------------------------------------------------------- -uint32_t SblDeviceCC2652::cmdDownloadCrc(uint32_t ui32Address, uint32_t ui32Size, uint32_t ui32Crc) -{ - DEBUG_PRINT("\n"); - int retCode = SBL_SUCCESS; - bool bSuccess = false; - - // - // Check input arguments - // - if (!addressInFlash(ui32Address, ui32Size) && - !addressInRam(ui32Address, ui32Size)) - { - setState(SBL_ARGUMENT_ERROR, "Specified address range (0x%08X + %d bytes) is not in device FLASH nor RAM.\n", ui32Address, ui32Size); - return SBL_ARGUMENT_ERROR; - } - - // - // Generate payload - // - 4B Program address - // - 4B Program data - // - 4B CRC - // - char pcPayload[12]; - ulToCharArray(ui32Address, &pcPayload[0]); - ulToCharArray(ui32Size, &pcPayload[4]); - ulToCharArray(ui32Crc, &pcPayload[8]); - - // - // Send command - // - if ((retCode = sendCmd(SblDeviceCC2652::CMD_DOWNLOAD_CRC, pcPayload, 12) != SBL_SUCCESS)) - { - return retCode; - } - - // - // Receive command response (ACK/NAK) - // - if ((retCode = getCmdResponse(bSuccess)) != SBL_SUCCESS) - { - return retCode; - } - - // - // Return command response - // - return (bSuccess) ? SBL_SUCCESS : SBL_ERROR; -} - -//----------------------------------------------------------------------------- -/** \brief Send command. -* -* \param[in] ui32Cmd -* The command to send. -* \param[in] pcSendData -* Pointer to the data to send with the command. -* \param[in] ui32SendLen -* The number of bytes to send from \e pcSendData. -* \return -* Returns SBL_SUCCESS, ... -*/ -//----------------------------------------------------------------------------- -uint32_t -SblDeviceCC2652::sendCmd(uint32_t ui32Cmd, const char *pcSendData/* = NULL*/, - uint32_t ui32SendLen/* = 0*/) -{ - DEBUG_PRINT("\n"); - unsigned char pktLen = ui32SendLen + 3; // +3 => <1B Length>, <1B checksum>, <1B cmd> - std::vector pvPkt((pktLen)); - unsigned char pktSum = generateCheckSum(ui32Cmd, pcSendData, ui32SendLen); - - // - // Build packet - // - pvPkt.at(0) = pktLen; - pvPkt.at(1) = pktSum; - pvPkt.at(2) = (unsigned char)ui32Cmd; - if (ui32SendLen) - { - memcpy(&pvPkt[3], pcSendData, ui32SendLen); - } - - // - // Send packet - // - if (m_pCom->writeBytes(&pvPkt[0], pvPkt.size()) < 1) - { - setState(SBL_PORT_ERROR, "\nWriting to device failed (Command 0x%04x:'%s').\n", ui32Cmd,getCmdString(ui32Cmd).c_str()); - return SBL_PORT_ERROR; - } - // - // Empty and deallocate vector - // - pvPkt.clear(); - std::vector().swap(pvPkt); - - return SBL_SUCCESS; -} - diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.h b/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.h deleted file mode 100755 index 914b381cd..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_device_cc2652.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __SBL_DEVICE_CC2652_H__ -#define __SBL_DEVICE_CC2652_H__ -/****************************************************************************** -* Filename: sbl_device_cc2652.h -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader for CC13x2/CC26x2 header file. -* -* Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include "sbl_device_cc2650.h" - -#define SBL_CC2652_PAGE_ERASE_SIZE 8192 -#define SBL_CC2652_FLASH_SIZE_CFG 0x4003002C -#define SBL_CC2652_RAM_SIZE_CFG 0x40082250 -#define SBL_CC2652_RAM_SIZE_CFG 0x40082250 -#define SBL_CC2652_FLASH_START_ADDRESS SBL_CC2650_FLASH_START_ADDRESS -#define SBL_CC2652_BL_CONFIG_PAGE_OFFSET 0x1FDB - -#define CHIP_SRAM_SIZE_INFO 0x40082250 -#define CHIP_SRAM_SIZE_INFO_M 0x00000003 -#define CHIP_SRAM_SIZE_INFO_S 0 - -class SblDeviceCC2652 : public SblDeviceCC2650 -{ -public: - SblDeviceCC2652(); // Constructor - ~SblDeviceCC2652(); // Destructor - - enum { - CMD_DOWNLOAD_CRC = 0x2F, - }; - -protected: - uint32_t readFlashSize(uint32_t *pui32FlashSize); - uint32_t readRamSize(uint32_t *pui32RamSize); - uint32_t calculateRamSize(uint32_t ramSizeInfo); - uint32_t getBootloaderEnableAddress(); - -private: - std::string getCmdString(uint32_t ui32Cmd); - uint32_t sendCmd(uint32_t ui32Cmd, const char *pcSendData = NULL, uint32_t ui32SendLen = 0); - uint32_t cmdDownloadCrc(uint32_t ui32Address, uint32_t ui32Size, uint32_t uiCrc); - -}; - -#endif // __SBL_DEVICE_CC2652_H__ diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbl_eb_info.h b/feeds/bluetooth-cc2652/cc2652/src/sbl_eb_info.h deleted file mode 100755 index e0c670764..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbl_eb_info.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef __SBL_EB_INFO_H__ -#define __SBL_EB_INFO_H__ -/****************************************************************************** -* Filename: sbl_eb_info.h -* Revised: $Date: 2013-07-09 15:06:47 +0200 (Tue, 09 Jul 2013) $ -* Revision: $Revision: 26800 $ -* -* Description: Serial Bootloader EB info class header file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include - -class SblEbInfo -{ -public: - enum - { - DEVICE_NAME_SIZE = 15, - EB_PORT_SIZE = 16, - DESCRIPTION_SIZE = 256 - }; - - char ebPort[EB_PORT_SIZE]; // E.g. COM42 - char ebDescription[DESCRIPTION_SIZE]; - char devName[DEVICE_NAME_SIZE]; // E.g. CC2538 for CC2650 - - SblEbInfo& operator = (const SblEbInfo& other) { - strncpy(ebPort, other.ebPort, EB_PORT_SIZE); - strncpy(ebDescription, other.ebDescription, DESCRIPTION_SIZE); - strncpy(devName, other.devName, DEVICE_NAME_SIZE); - return *this; - } - -}; - -#endif // __SBL_EB_INFO_H__ \ No newline at end of file diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbllib.cpp b/feeds/bluetooth-cc2652/cc2652/src/sbllib.cpp deleted file mode 100755 index d583e772d..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbllib.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/****************************************************************************** -* Filename: sbllib.cpp -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader Library main file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ - diff --git a/feeds/bluetooth-cc2652/cc2652/src/sbllib.h b/feeds/bluetooth-cc2652/cc2652/src/sbllib.h deleted file mode 100755 index 5a92eb9c0..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/sbllib.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef __SBLLIB_H__ -#define __SBLLIB_H__ -/****************************************************************************** -* Filename: sbllib.h -* Revised: $Date$ -* Revision: $Revision$ -* -* Description: Serial Bootloader Library header file. -* -* Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com/ -* -* -* Redistribution and use in source and binary forms, with or without -* modification, are permitted provided that the following conditions -* are met: -* -* Redistributions of source code must retain the above copyright -* notice, this list of conditions and the following disclaimer. -* -* Redistributions in binary form must reproduce the above copyright -* notice, this list of conditions and the following disclaimer in the -* documentation and/or other materials provided with the distribution. -* -* Neither the name of Texas Instruments Incorporated nor the names of -* its contributors may be used to endorse or promote products derived -* from this software without specific prior written permission. -* -* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -******************************************************************************/ -#include -#include - -#include "debug.h" -#define SBL_MAX_DEVICES 20 -#define SBL_DEFAULT_RETRY_COUNT 1 -#define SBL_DEFAULT_READ_TIMEOUT 100 // in ms -#define SBL_DEFAULT_WRITE_TIMEOUT 200 // in ms - -typedef enum { - SBL_SUCCESS = 0, - SBL_ERROR, - SBL_ARGUMENT_ERROR, - SBL_TIMEOUT_ERROR, - SBL_PORT_ERROR, - SBL_ENUM_ERROR, - SBL_UNSUPPORTED_FUNCTION, -} tSblStatus; - -#include "serialib.h" -#include "sbl_device.h" -#include "sbl_device_cc2538.h" -#include "sbl_device_cc2650.h" -#include "sbl_device_cc2652.h" -#include "sbl_eb_info.h" - - - -#endif // __SBLLIB_H__ diff --git a/feeds/bluetooth-cc2652/cc2652/src/serialib.cpp b/feeds/bluetooth-cc2652/cc2652/src/serialib.cpp deleted file mode 100755 index 1a01badce..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/serialib.cpp +++ /dev/null @@ -1,1019 +0,0 @@ -/*! - \file serialib.cpp - \brief Source file of the class serialib. This class is used for communication over a serial device. - \author Philippe Lucidarme (University of Angers) - \version 2.0 - \date december the 27th of 2019 - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -This is a licence-free software, it can be used by anyone who try to build a better world. - */ -#include "debug.h" -#include "serialib.h" - -//_____________________________________ -// ::: Constructors and destructors ::: - - -/*! - \brief Constructor of the class serialib. -*/ -serialib::serialib() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - // Set default value for RTS and DTR (Windows only) - currentStateRTS=true; - currentStateDTR=true; -#endif -} - - -/*! - \brief Destructor of the class serialib. It close the connection -*/ -// Class desctructor -serialib::~serialib() -{ - DEBUG_PRINT("\n"); - closeDevice(); -} - - - -//_________________________________________ -// ::: Configuration and initialization ::: - - - -/*! - \brief Open the serial port - \param Device : Port name (COM1, COM2, ... for Windows ) or (/dev/ttyS0, /dev/ttyACM0, /dev/ttyUSB0 ... for linux) - \param Bauds : Baud rate of the serial port. - - \n Supported baud rate for Windows : - - 110 - - 300 - - 600 - - 1200 - - 2400 - - 4800 - - 9600 - - 14400 - - 19200 - - 38400 - - 56000 - - 57600 - - 115200 - - 128000 - - 256000 - - \n Supported baud rate for Linux :\n - - 110 - - 300 - - 600 - - 1200 - - 2400 - - 4800 - - 9600 - - 19200 - - 38400 - - 57600 - - 115200 - - \return 1 success - \return -1 device not found - \return -2 error while opening the device - \return -3 error while getting port parameters - \return -4 Speed (Bauds) not recognized - \return -5 error while writing port parameters - \return -6 error while writing timeout parameters - */ -char serialib::openDevice(const char *Device,const unsigned int Bauds) -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - // Open serial port - hSerial = CreateFileA(Device,GENERIC_READ | GENERIC_WRITE,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); - if(hSerial==INVALID_HANDLE_VALUE) { - if(GetLastError()==ERROR_FILE_NOT_FOUND) - return -1; // Device not found - - // Error while opening the device - return -2; - } - - // Set parameters - - // Structure for the port parameters - DCB dcbSerialParams; - dcbSerialParams.DCBlength=sizeof(dcbSerialParams); - - // Get the port parameters - if (!GetCommState(hSerial, &dcbSerialParams)) return -3; - - // Set the speed (Bauds) - switch (Bauds) - { - case 110 : dcbSerialParams.BaudRate=CBR_110; break; - case 300 : dcbSerialParams.BaudRate=CBR_300; break; - case 600 : dcbSerialParams.BaudRate=CBR_600; break; - case 1200 : dcbSerialParams.BaudRate=CBR_1200; break; - case 2400 : dcbSerialParams.BaudRate=CBR_2400; break; - case 4800 : dcbSerialParams.BaudRate=CBR_4800; break; - case 9600 : dcbSerialParams.BaudRate=CBR_9600; break; - case 14400 : dcbSerialParams.BaudRate=CBR_14400; break; - case 19200 : dcbSerialParams.BaudRate=CBR_19200; break; - case 38400 : dcbSerialParams.BaudRate=CBR_38400; break; - case 56000 : dcbSerialParams.BaudRate=CBR_56000; break; - case 57600 : dcbSerialParams.BaudRate=CBR_57600; break; - case 115200 : dcbSerialParams.BaudRate=CBR_115200; break; - case 128000 : dcbSerialParams.BaudRate=CBR_128000; break; - case 256000 : dcbSerialParams.BaudRate=CBR_256000; break; - default : return -4; - } - // 8 bit data - dcbSerialParams.ByteSize=8; - // One stop bit - dcbSerialParams.StopBits=ONESTOPBIT; - // No parity - dcbSerialParams.Parity=NOPARITY; - - // Write the parameters - if(!SetCommState(hSerial, &dcbSerialParams)) return -5; - - // Set TimeOut - - // Set the Timeout parameters - timeouts.ReadIntervalTimeout=0; - // No TimeOut - timeouts.ReadTotalTimeoutConstant=MAXDWORD; - timeouts.ReadTotalTimeoutMultiplier=0; - timeouts.WriteTotalTimeoutConstant=MAXDWORD; - timeouts.WriteTotalTimeoutMultiplier=0; - - // Write the parameters - if(!SetCommTimeouts(hSerial, &timeouts)) return -6; - - // Opening successfull - return 1; -#endif -#ifdef __linux__ - // Structure with the device's options - struct termios options; - - - // Open device - fd = open(Device, O_RDWR | O_NOCTTY | O_NDELAY); - // If the device is not open, return -1 - if (fd == -1) return -2; - // Open the device in nonblocking mode - fcntl(fd, F_SETFL, FNDELAY); - - - // Get the current options of the port - tcgetattr(fd, &options); - // Clear all the options - bzero(&options, sizeof(options)); - - // Prepare speed (Bauds) - speed_t Speed; - switch (Bauds) - { - case 110 : Speed=B110; break; - case 300 : Speed=B300; break; - case 600 : Speed=B600; break; - case 1200 : Speed=B1200; break; - case 2400 : Speed=B2400; break; - case 4800 : Speed=B4800; break; - case 9600 : Speed=B9600; break; - case 19200 : Speed=B19200; break; - case 38400 : Speed=B38400; break; - case 57600 : Speed=B57600; break; - case 115200 : Speed=B115200; break; - case 230400 : Speed=B230400; break; - default : return -4; - } - // Set the baud rate - cfsetispeed(&options, Speed); - cfsetospeed(&options, Speed); - // Configure the device : 8 bits, no parity, no control - options.c_cflag |= ( CLOCAL | CREAD | CS8); - options.c_iflag |= ( IGNPAR | IGNBRK ); - // Timer unused - options.c_cc[VTIME]=0; - // At least on character before satisfy reading - options.c_cc[VMIN]=0; - // Activate the settings - tcsetattr(fd, TCSANOW, &options); - // Success - return (1); -#endif - -} - - -/*! - \brief Close the connection with the current device -*/ -void serialib::closeDevice() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - CloseHandle(hSerial); -#endif -#ifdef __linux__ - close (fd); -#endif -} - - - - -//___________________________________________ -// ::: Read/Write operation on characters ::: - - - -/*! - \brief Write a char on the current serial port - \param Byte : char to send on the port (must be terminated by '\0') - \return 1 success - \return -1 error while writting data - */ -char serialib::writeChar(const char Byte) -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - // Number of bytes written - DWORD dwBytesWritten; - // Write the char to the serial device - // Return -1 if an error occured - if(!WriteFile(hSerial,&Byte,1,&dwBytesWritten,NULL)) return -1; - // Write operation successfull - return 1; -#endif -#ifdef __linux__ - // Write the char - if (write(fd,&Byte,1)!=1) return -1; - - // Write operation successfull - return 1; -#endif -} - - - -//________________________________________ -// ::: Read/Write operation on strings ::: - - -/*! - \brief Write a string on the current serial port - \param receivedString : string to send on the port (must be terminated by '\0') - \return 1 success - \return -1 error while writting data - */ -char serialib::writeString(const char *receivedString) -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - // Number of bytes written - DWORD dwBytesWritten; - // Write the string - if(!WriteFile(hSerial,receivedString,strlen(receivedString),&dwBytesWritten,NULL)) - // Error while writing, return -1 - return -1; - // Write operation successfull - return 1; -#endif -#ifdef __linux__ - // Lenght of the string - int Lenght=strlen(receivedString); - // Write the string - if (write(fd,receivedString,Lenght)!=Lenght) return -1; - // Write operation successfull - return 1; -#endif -} - -// _____________________________________ -// ::: Read/Write operation on bytes ::: - - - -/*! - \brief Write an array of data on the current serial port - \param Buffer : array of bytes to send on the port - \param NbBytes : number of byte to send - \return 1 success - \return -1 error while writting data - */ -int serialib::writeBytes(const void *Buffer, const unsigned int NbBytes) -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - // Number of bytes written - DWORD dwBytesWritten; - // Write data - if(!WriteFile(hSerial, Buffer, NbBytes, &dwBytesWritten, NULL)) - // Error while writing, return -1 - return -1; - // Write operation successfull - return 1; -#endif -#ifdef __linux__ - // Write data - DEBUG_PRINT("Len=%d, Data=%02x %02x %02x %02x ...\n",NbBytes,((unsigned char *)Buffer)[0],((unsigned char *)Buffer)[1],((unsigned char *)Buffer)[2],((unsigned char *)Buffer)[3]); -#if 0 - { - int i; - for(i=0;i0 success, return the number of bytes read - \return -1 error while setting the Timeout - \return -2 error while reading the byte - \return -3 MaxNbBytes is reached - */ -int serialib::readStringNoTimeOut(char *receivedString,char finalChar,unsigned int maxNbBytes) -{ - DEBUG_PRINT("\n"); - // Number of characters read - unsigned int NbBytes=0; - // Returned value from Read - char charRead; - - // While the buffer is not full - while (NbBytes0 success, return the number of bytes read - \return 0 timeout is reached - \return -1 error while setting the Timeout - \return -2 error while reading the byte - \return -3 MaxNbBytes is reached - */ -int serialib::readString(char *receivedString,char finalChar,unsigned int maxNbBytes,unsigned int timeOut_ms) -{ - DEBUG_PRINT("\n"); - // Check if timeout is requested - if (timeOut_ms==0) return readStringNoTimeOut(receivedString,finalChar,maxNbBytes); - - // Number of bytes read - unsigned int nbBytes=0; - // Character read on serial device - char charRead; - // Timer used for timeout - timeOut timer; - long int timeOutParam; - - // Initialize the timer (for timeout) - timer.initTimer(); - - // While the buffer is not full - while (nbBytes0) - { - // Wait for a byte on the serial link with the remaining time as timeout - charRead=readChar(&receivedString[nbBytes],timeOutParam); - - // If a byte has been received - if (charRead==1) - { - // Check if the character received is the final one - if (receivedString[nbBytes]==finalChar) - { - // Final character: add the end character 0 - receivedString [++nbBytes]=0; - // Return the number of bytes read - return nbBytes; - } - // This is not the final character, just increase the number of bytes read - nbBytes++; - } - // Check if an error occured during reading char - // If an error occurend, return the error number - if (charRead<0) return charRead; - } - // Check if timeout is reached - if (timer.elapsedTime_ms()>timeOut_ms) - { - // Add the end caracter - receivedString[nbBytes]=0; - // Return 0 (timeout reached) - return 0; - } - } - - // Buffer is full : return -3 - return -3; -} - - -/*! - \brief Read an array of bytes from the serial device (with timeout) - \param buffer : array of bytes read from the serial device - \param maxNbBytes : maximum allowed number of bytes read - \param timeOut_ms : delay of timeout before giving up the reading - \param sleepDuration_us : delay of CPU relaxing in microseconds (Linux only) - In the reading loop, a sleep can be performed after each reading - This allows CPU to perform other tasks - \return >=0 return the number of bytes read before timeout or - requested data is completed - \return -1 error while setting the Timeout - \return -2 error while reading the byte - */ -int serialib::readBytes (void *buffer,unsigned int maxNbBytes,unsigned int timeOut_ms, unsigned int sleepDuration_us) -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - // Avoid warning while compiling - UNUSED(sleepDuration_us); - - // Number of bytes read - DWORD dwBytesRead = 0; - - // Set the TimeOut - timeouts.ReadTotalTimeoutConstant=(DWORD)timeOut_ms; - - // Write the parameters and return -1 if an error occrured - if(!SetCommTimeouts(hSerial, &timeouts)) return -1; - - - // Read the bytes from the serial device, return -2 if an error occured - if(!ReadFile(hSerial,buffer,(DWORD)maxNbBytes,&dwBytesRead, NULL)) return -2; - - // Return the byte read - return dwBytesRead; -#endif -#ifdef __linux__ - // Timer used for timeout - timeOut timer; - // Initialise the timer - timer.initTimer(); - unsigned int NbByteRead=0; - // While Timeout is not reached - while (timer.elapsedTime_ms()0) - { - // Increase the number of read bytes - NbByteRead+=Ret; - // Success : bytes has been read - if (NbByteRead>=maxNbBytes){ - DEBUG_PRINT("Len=%d, Data=%02x %02x %02x %02x ...\n",NbByteRead,((unsigned char *)buffer)[0],((unsigned char *)buffer)[1],((unsigned char *)buffer)[2],((unsigned char *)buffer)[3]); -// if(NbByteRead < 6) printf("@@serialib::readBytes Len=%d, Data=%02x %02x %02x %02x %02x %02x ...\n",NbByteRead,((unsigned char *)buffer)[0],((unsigned char *)buffer)[1],((unsigned char *)buffer)[2],((unsigned char *)buffer)[3],((unsigned char *)buffer)[4],((unsigned char *)buffer)[5]); -#if 0 - { - int i; - for(i=0;i=maxNbBytes){ - DEBUG_PRINT("Len=%d, Data=%02x %02x %02x %02x ...\n",NbByteRead,((unsigned char *)buffer)[0],((unsigned char *)buffer)[1],((unsigned char *)buffer)[2],((unsigned char *)buffer)[3]); -// if(NbByteRead < 6) printf("@@serialib::readBytes Len=%d, Data=%02x %02x %02x %02x %02x %02x ...\n",NbByteRead,((unsigned char *)buffer)[0],((unsigned char *)buffer)[1],((unsigned char *)buffer)[2],((unsigned char *)buffer)[3],((unsigned char *)buffer)[4],((unsigned char *)buffer)[5]); -#if 0 - { - int i; - for(i=0;isetDTR(); - else - // Unset DTR - return this->clearDTR(); -} - - -/*! - \brief Set the bit DTR (pin 4) - DTR stands for Data Terminal Ready - \return If the function fails, the return value is false - If the function succeeds, the return value is true. -*/ -bool serialib::setDTR() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - // Set DTR - currentStateDTR=true; - return EscapeCommFunction(hSerial,SETDTR); -#endif -#ifdef __linux__ - // Set DTR - int status_DTR=0; - ioctl(fd, TIOCMGET, &status_DTR); - status_DTR |= TIOCM_DTR; - ioctl(fd, TIOCMSET, &status_DTR); - return true; -#endif -} - -/*! - \brief Clear the bit DTR (pin 4) - DTR stands for Data Terminal Ready - \return If the function fails, the return value is false - If the function succeeds, the return value is true. -*/ -bool serialib::clearDTR() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - // Clear DTR - currentStateDTR=true; - return EscapeCommFunction(hSerial,CLRDTR); -#endif -#ifdef __linux__ - // Clear DTR - int status_DTR=0; - ioctl(fd, TIOCMGET, &status_DTR); - status_DTR &= ~TIOCM_DTR; - ioctl(fd, TIOCMSET, &status_DTR); - return true; -#endif -} - - - -/*! - \brief Set or unset the bit RTS (pin 7) - RTS stands for Data Termina Ready - Convenience method :This method calls setDTR and clearDTR - \param status = true set DTR - status = false unset DTR - \return false if the function fails - \return true if the function succeeds -*/ -bool serialib::RTS(bool status) -{ - DEBUG_PRINT("\n"); - if (status) - // Set RTS - return this->setRTS(); - else - // Unset RTS - return this->clearRTS(); -} - - -/*! - \brief Set the bit RTS (pin 7) - RTS stands for Data Terminal Ready - \return If the function fails, the return value is false - If the function succeeds, the return value is true. -*/ -bool serialib::setRTS() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - // Set RTS - currentStateRTS=false; - return EscapeCommFunction(hSerial,SETRTS); -#endif -#ifdef __linux__ - // Set RTS - int status_RTS=0; - ioctl(fd, TIOCMGET, &status_RTS); - status_RTS |= TIOCM_RTS; - ioctl(fd, TIOCMSET, &status_RTS); - return true; -#endif -} - - - -/*! - \brief Clear the bit RTS (pin 7) - RTS stands for Data Terminal Ready - \return If the function fails, the return value is false - If the function succeeds, the return value is true. -*/ -bool serialib::clearRTS() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - // Clear RTS - currentStateRTS=false; - return EscapeCommFunction(hSerial,CLRRTS); -#endif -#ifdef __linux__ - // Clear RTS - int status_RTS=0; - ioctl(fd, TIOCMGET, &status_RTS); - status_RTS &= ~TIOCM_RTS; - ioctl(fd, TIOCMSET, &status_RTS); - return true; -#endif -} - - - - -/*! - \brief Get the CTS's status (pin 8) - CTS stands for Clear To Send - \return Return true if CTS is set otherwise false - */ -bool serialib::isCTS() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - DWORD modemStat; - GetCommModemStatus(hSerial, &modemStat); - return modemStat & MS_CTS_ON; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the CTS bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_CTS; -#endif -} - - - -/*! - \brief Get the DSR's status (pin 6) - DSR stands for Data Set Ready - \return Return true if DTR is set otherwise false - */ -bool serialib::isDSR() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - DWORD modemStat; - GetCommModemStatus(hSerial, &modemStat); - return modemStat & MS_DSR_ON; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the DSR bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_DSR; -#endif -} - - - - - - -/*! - \brief Get the DCD's status (pin 1) - CDC stands for Data Carrier Detect - \return true if DCD is set - \return false otherwise - */ -bool serialib::isDCD() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - DWORD modemStat; - GetCommModemStatus(hSerial, &modemStat); - return modemStat & MS_RLSD_ON; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the DCD bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_CAR; -#endif -} - - -/*! - \brief Get the RING's status (pin 9) - Ring Indicator - \return Return true if RING is set otherwise false - */ -bool serialib::isRI() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - DWORD modemStat; - GetCommModemStatus(hSerial, &modemStat); - return modemStat & MS_RING_ON; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the RING bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_RNG; -#endif -} - - -/*! - \brief Get the DTR's status (pin 4) - DTR stands for Data Terminal Ready - May behave abnormally on Windows - \return Return true if CTS is set otherwise false - */ -bool serialib::isDTR() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined( _WIN64) - return currentStateDTR; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the DTR bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_DTR ; -#endif -} - - - -/*! - \brief Get the RTS's status (pin 7) - RTS stands for Request To Send - May behave abnormally on Windows - \return Return true if RTS is set otherwise false - */ -bool serialib::isRTS() -{ - DEBUG_PRINT("\n"); -#if defined (_WIN32) || defined(_WIN64) - return currentStateRTS; -#endif -#ifdef __linux__ - int status=0; - //Get the current status of the CTS bit - ioctl(fd, TIOCMGET, &status); - return status & TIOCM_RTS; -#endif -} - - - - - - -// ****************************************** -// Class timeOut -// ****************************************** - - -/*! - \brief Constructor of the class timeOut. -*/ -// Constructor -timeOut::timeOut() -{ - DEBUG_PRINT("\n"); -} - - -/*! - \brief Initialise the timer. It writes the current time of the day in the structure PreviousTime. -*/ -//Initialize the timer -void timeOut::initTimer() -{ - DEBUG_PRINT("\n"); - gettimeofday(&previousTime, NULL); -} - -/*! - \brief Returns the time elapsed since initialization. It write the current time of the day in the structure CurrentTime. - Then it returns the difference between CurrentTime and PreviousTime. - \return The number of microseconds elapsed since the functions InitTimer was called. - */ -//Return the elapsed time since initialization -unsigned long int timeOut::elapsedTime_ms() -{ -// DEBUG_PRINT("\n"); - // Current time - struct timeval CurrentTime; - // Number of seconds and microseconds since last call - int sec,usec; - - // Get current time - gettimeofday(&CurrentTime, NULL); - - // Compute the number of seconds and microseconds elapsed since last call - sec=CurrentTime.tv_sec-previousTime.tv_sec; - usec=CurrentTime.tv_usec-previousTime.tv_usec; - - // If the previous usec is higher than the current one - if (usec<0) - { - // Recompute the microseonds and substract one second - usec=1000000-previousTime.tv_usec+CurrentTime.tv_usec; - sec--; - } - - // Return the elapsed time in milliseconds - return sec*1000+usec/1000; -} - - - - diff --git a/feeds/bluetooth-cc2652/cc2652/src/serialib.h b/feeds/bluetooth-cc2652/cc2652/src/serialib.h deleted file mode 100755 index 4bfb445bf..000000000 --- a/feeds/bluetooth-cc2652/cc2652/src/serialib.h +++ /dev/null @@ -1,220 +0,0 @@ -/*! -\file serialib.h -\brief Header file of the class serialib. This class is used for communication over a serial device. -\author Philippe Lucidarme (University of Angers) -\version 2.0 -\date december the 27th of 2019 -This Serial library is used to communicate through serial port. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, -DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -This is a licence-free software, it can be used by anyone who try to build a better world. -*/ - - -#ifndef SERIALIB_H -#define SERIALIB_H - - - -// Used for TimeOut operations -#include -// Include for windows -#if defined (_WIN32) || defined (_WIN64) - // Accessing to the serial port under Windows - #include -#endif - -// Include for Linux -#ifdef __linux__ - #include - #include - #include - #include - #include - #include - // File control definitions - #include - #include - #include - #include -#endif - - -/*! To avoid unused parameters */ -#define UNUSED(x) (void)(x) - - -/*! \class serialib - \brief This class is used for communication over a serial device. -*/ -class serialib -{ -public: - - //_____________________________________ - // ::: Constructors and destructors ::: - - - - // Constructor of the class - serialib (); - - // Destructor - ~serialib (); - - - - //_________________________________________ - // ::: Configuration and initialization ::: - - - // Open a device - char openDevice (const char *Device,const unsigned int Bauds); - - // Close the current device - void closeDevice(); - - - - - //___________________________________________ - // ::: Read/Write operation on characters ::: - - - // Write a char - char writeChar (char); - - // Read a char (with timeout) - char readChar (char *pByte,const unsigned int timeOut_ms=0); - - - - - //________________________________________ - // ::: Read/Write operation on strings ::: - - - // Write a string - char writeString (const char *String); - - // Read a string (with timeout) - int readString ( char *receivedString, - char finalChar, - unsigned int maxNbBytes, - const unsigned int timeOut_ms=0); - - - - // _____________________________________ - // ::: Read/Write operation on bytes ::: - - - // Write an array of bytes - int writeBytes (const void *Buffer, const unsigned int NbBytes); - - // Read an array of byte (with timeout) - int readBytes (void *buffer,unsigned int maxNbBytes,const unsigned int timeOut_ms=100, unsigned int sleepDuration_us=100); - - - - - // _________________________ - // ::: Special operation ::: - - - // Empty the received buffer - char flushReceiver(); - - // Return the number of bytes in the received buffer - int available(); - - - - - // _________________________ - // ::: Access to IO bits ::: - - - // Set CTR status (Data Terminal Ready, pin 4) - bool DTR(bool status); - bool setDTR(); - bool clearDTR(); - - // Set RTS status (Request To Send, pin 7) - bool RTS(bool status); - bool setRTS(); - bool clearRTS(); - - // Get RI status (Ring Indicator, pin 9) - bool isRI(); - - // Get DCD status (Data Carrier Detect, pin 1) - bool isDCD(); - - // Get CTS status (Clear To Send, pin 8) - bool isCTS(); - - // Get DSR status (Data Set Ready, pin 9) - bool isDSR(); - - // Get RTS status (Request To Send, pin 7) - bool isRTS(); - - // Get CTR status (Data Terminal Ready, pin 4) - bool isDTR(); - - -private: - // Read a string (no timeout) - int readStringNoTimeOut (char *String,char FinalChar,unsigned int MaxNbBytes); - - // Current DTR and RTS state (can't be read on WIndows) - bool currentStateRTS; - bool currentStateDTR; - - - - - -#if defined (_WIN32) || defined( _WIN64) - // Handle on serial device - HANDLE hSerial; - // For setting serial port timeouts - COMMTIMEOUTS timeouts; -#endif -#ifdef __linux__ - int fd; -#endif - -}; - - - -/*! \class timeOut - \brief This class can manage a timer which is used as a timeout. - */ -// Class timeOut -class timeOut -{ -public: - - // Constructor - timeOut(); - - // Init the timer - void initTimer(); - - // Return the elapsed time since initialization - unsigned long int elapsedTime_ms(); - -private: - // Used to store the previous time (for computing timeout) - struct timeval previousTime; -}; - -#endif // serialib_H

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 z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo z6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZ zKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt z00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun z0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP z3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbF zC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epy zpa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+ zfC3bt00k&O0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O z0SZun0u-PC1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC z1t>rP3Q&Lo6rcbFC_n)UP=Epypa2CZKmiI+fC3bt00k&O0SZun0u-PC1t>rP3Q&Lo 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 PM_RMyV2uC$(dqsV_eB&C diff --git a/feeds/bluetooth-cc2652/cc2652/files/firmware/simple_peripheral_bd9.bin b/feeds/bluetooth-cc2652/cc2652/files/firmware/simple_peripheral_bd9.bin deleted file mode 100755 index ebb5dcac09bf994bb206042fe53c18d2719335d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 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�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 diff --git a/feeds/bluetooth-cc2652/cc2652/files/firmware/znp_bd9.bin b/feeds/bluetooth-cc2652/cc2652/files/firmware/znp_bd9.bin deleted file mode 100755 index 01a832bbde6ce68bdf6a2dd8f6f7a882046d9812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360448 zcmb5Wdwf$x`UgDcUJ%PT0qu%TU%MQDPD-+wqABuch}!0;O=^XH3b!fy-X1GG)a^9J1M&QzJI;#C&`>S zbA9HSXP)^!&kUK(N#3tHGAqvO|NngQkUoXKNng)#@?oZ-t0(LimHwE6h?oD?BCa z5ZK#|f=gH{TrI2=j`OnxgRqx(^W#S(kz*?lv61oM)OtEE69cdn`Nt9N_P&ENWO%0 zY&^OLM!$l^49d1`_WIsM!nQ-1t2Kv-;A>BB9^Eo1F*gJQ< z*&=75#`2@Q%+m1+ms!I?dVgKUiCd+5^LTl_Y^Kt%9p4Lw2%UQrb#P*Jre~B}*UIYB zCcS;>buSG7~^GSku_tIS0-GI0^> z`EU`vJCPl&RxL80Ivp|U6>dp6T|3OlpDKh{c&fdE_brZpn^Xh{mGbRYY%&MU2{> zGJ1QwU9k{tr#ry4wkxH28QdYBRLZr} zZ7n$m7N7nc{gUJb9#;CF6P$d+K|CdNVuH1yU71B#J8nZeW~rv1UX8RP-2YnQIV0o9 z0*td@Zddd~lFMjWLL*DXp#DC59xA8LCIq=!UW}3FyUA`N)u!5&+2A8R$+hO9zgL02 zdSYm0X;^9Br~5j|(q%_yt2UgHJQcEF)kIaAg8nh6jm;80v0(;oP8?s#a`hUy3e;Cr z;pRPjw~2m^5t)PBb5xb?sq&IjJlZ_c!g6|jV!8Zuy5(70-L7)_+HjNW-LLJUKsn)X zl*`TCB!oA)^jq!JPV}3&iK?)Ou#bqF95UZC-J&Zs(aXVU^HlB1JaXU^Uy&}`$t1$W zOEh8Oio`P>A9`IY7l1DFhuf8fm-?L*UMUmsh~8N%ThhJeyUXa*bc*cgLe+)AAD7Ah zh|cZGB2c-UD)Hxxp!+_Q-;*6(MCxR+dx^|FA<;IJB44T}?}vIWN4mOnO-qoH<=`Hd z=w0cw*-=^LIMpM6VeIxCmXp@Z@L5mFDuyMGXjOk|MQv}zt031l4_jps+}=AZ7<0k~ zsSte6X1_M{rXrD9vcWPRY408)f%nP^@%E;;#wdku2)d0`vS=xz&ZH))Bek*~;p-uR z+{TpIU@4+UmFaFs2f5HP4Lq6`x5={*E~34PO_peN>Ts0g5?ax0M?6daobt~v_{!o_ zMf9=6xKm8BHpRa%@^Uwu^F>9pF0~vIZ4yRj5;-~8u1s;4(cdMrqf=B%!KG8k@j*#0 zqVp07{1(&rurhepCL*zNmc<*q&v=bgNy;c;8cLW(jt;Un_Vk-PdTMx~Ir~7nGM)4y zK95=w3y|_Mq`Zv0kWM)PZRs&)%3^hfTqv99ABXFZVg^#oAde6Jm=DLqf69lO5^fjY za~b$c0H>K~Ry-Fq%_Zj}Kh718F@EpzWJj;i@IBKk?aCE|DPY2J z>g$e;$Ogg8WWu=Ea@kVM$@!27Zr3PJ8C^ci_YgeUEGoA{)?h|G7Ry5$77*1Sm!3}! zrxSGF8S~3RG?SFm9WkH0TOnPyZ0p))p)(ZnXvA1AuYz0|MT3d_1MT(gih~GJIo%sm zf62;VGN~T3vW$K*WcC(==k7zAdcq@3YpkU{J6f+&Nnf6k=^u^W zS@dr)`nQ<89+9x#tw;@~f5p^E{N~bM4SyVA{9!{6SA09XIoE>Gu{XIew&9mYeT+-EE?l*euAqC6G)@Q~@_437dumXh;l zemoxWq4fBp&Toe}InTl*$LM%=bQxN?jI8|$uYB=C+6dC>(`i$&?C5f&T~3y#doXRt z^OHP({vppFkVl=)^9Ay(K%Nz3`cKlnIy5rMOd`EJv|QfgdfKCRZ*r;fuX4Lxs#3w? zN52^_|7NHFeOXBgev<#OAL{BrU8;0lFQcw2QP-8E3R>E&l9`G_m60FI!>vE$x*NHs zLc*5O-N>~HxmJi$XD551zb&Q7=PBvS~zXXlts;^nPE zct0pbtaf_GPN{vrQsG?ptApT~gUV$0HGu}#e#I>9SLWI{sf?aQyX^FOw5#0xnc{o| zpJ!y5OsPj1^T;B3^%1m?BvyBxc1$Pwzmj-uc&83)DbMB1XK#Gk&y?P`9}70fIi7n1T57?x%M5909amRn zr^j0I_vk#DDnq{(Pk(M1(yci6!szRcqkbuWk0a=m2aLqy6NTfV$8O57PX1UI5j_JY z&RX>`DX9z%n94&wQ)!5;Qc~D~b-e?l^g>IvM=ianOtiNvc|_==$EIN9_kW{P?O5ahaH}5>uB`ZN@@ZqiRA3bqA!7} zgl=xx4{eggjwjiOeKs9?TZ=B5Ltar9=t(PhDg1##d{X->N}YbUB1`k-3_2P8GV~w##m( z(`7dZX1lSJW~G{3{yK6Yr^Rk`J4d*h&|90?DB7v2WiPaEpEy91&5YAmrzufJqeG0E z7n>Vg4iBN95r=y}($#?DTfKHuYtuj<)7r(LmhRBj=*o^W&KVL{T=cCjIOf%jJMP!# zQEe_qwHhI$oowviV*0i(C!HF5JYqk0Kil6#Kp*m!-b_`TIG=G_gG=1BH_fMne&W}m z1^@7mr47)dzw)u!&RO%))KlZl$3B%cBg{sqjP4z>2F&eZ_vjZ%DM#;*v$pzzBRPb0 z4i$2=H;dh7$jX~y51bm19{}x2=|8~z&^^)jc^J3bF;ZoO&5U6^u|huSCx>V2Y{yWN z#ErLxM46b2=xsx!LJHWuoOKNL76qXCZ z5bI>LpqA7GSvpo?8TF^gk>W_+9?S_RhdroG;j_qO_AaYml=Kp2g)=80+6MYC-cDlH z1UR$Z(BQHg-|ky^gWa_9YSy|^dQ$PrPoyPGCTj^HrAFw&e;NGW7`+nv{h&vLgx1{% z-kApaS$p4IRxgk3FiGdUWA{B;rwJpcZG7vabzJx*&*Y%pq>hSeF3NHL37e|Sp_ja0 z2HsE{`qi?9HYCKr7Sl^jLB}*R?@f*8LwxI_3x!ah?OU&-E{t zUuvqPPOTIvrLAZw;}$6>wKJNv0x4jvTrBJ9E3wsq8r{@>MxT*6>YzfJ_NquFm9(t& zhttwbe;g8k>{b>zcMmyiY#(%L1LTrZ=xJB-ZDO~YTH`J;=lDqfv5%nBW6a;9p zvfV-TBKQchAn9(!D!|Gf)9JgHvs%OE_U|Qxg^jkvp6tesx}uYewykwzLuK^2WLJRm za*(ooRc@GrW~SHMTMsHm$VL-=J#G!Cfo6ok3ld!&n+XhuP_;jp*8DlY)MlVFhqaJ7 zabJVW(pE-iE2KjGIO8$a8%Vm24-~;C9ONHotyDc`X)oPcBNtF5#^glASA$h5Yv|KR zJzH^zt`&$xNTSawyp^p<<)}@C*$esaV`X**@;fGs&ukr9bu=+~kAeZIrGrepb?jgV-M z`B)vQOLg27;yl`sCrKE8RY+B}IFyAIso7^Yo>W%*u(#Q!_Hbq~%JEkM>)}?GQSa~^ z$DDeuqEk`XHSTMJWMV=8@^78eii=y_R|0z=aqglzBFd7DxDa2qV7^LvB~C9gSTzMMc2!0 zR7&WlDW-Kma{F#N!(uqh(TT)FQ;EW~wnlzNq_tc5w4V0XvbUFhrijnJyS!Dt`JBOi zFlx;9(O)-D@qVT#&~22yo6oH#K3ddVBaf^lyL>mF>m;j>;ak4|-yhiq=mS1Z;>{Mi zCh_~e>_caXfvOT(V{vF;X|v35w`mm;ha-b zd5cMimI-IWBtj~m2;3dW#Vkl{VOU;C*+E5cay{eaIr7^MvU@b$1nskg{yx~@T!(bkseYg| zYVfbtszXlBtfuF&tLC6Holh9)%%M`OlA|Jeb8ZClFaBSv>QjPuClfk6KN;6UN|wB>^ z(#9~J^o7Tz#;(9vsv43SwJxc#gkGJhY`8fPYvm(Kt8bj*yTV1L422_JySa>hlxPLI z^5AKdF0ExFBHeK8y`^}vO=Ke@RUR*p40K*xYb*(o^0MiZWoavC%@30&1gQ!-e?h54 z4Z|yglB))~M3r1%nIn6g0(J|J#VR)4Zp@ng-lQ)+WpvJCbawviG?A`4Z9ti$P-ZF0 z{9lQhbcqI(_}@gj#0FNPftA>xL5UkLm8eRWSdBO1=o%ntCG>Q%^&)Xro-U-FF@)Tf z(?+^YkuWO7=%-*dQeSH1_qn(RV|H!Qn$}LW43~l4qQ#zogLHg-sDz$O71Fz7CR!ik zA|>?iDGoJXF|10DYihU^_|w;?Qj!X@b^)-#4`XlFbCT#xo?*Jy(rbt`y=g?>GOi|) z4dKNy)2K!8u3%jlE}LqWHiPcYc>i*%x5+iNm6QeKXX@siU~^+qSXi1WCl$LDGx1q1 zSdT{L@H%k2#$5{RQnWpd?+pDKeCs3$@d7#H-Km&Ymi_`*wEKld@Vc!UdrY+WfbfKw zhKIHo%cf78{NblS6I~?W18~J;&KIDW&)t5CVXe;+)%kZ-f4u?nK5JBHEOfQMUY)r> z9p<`I<}6DgeL2M)03GBki<$NeS-l@Cf_`f2TH|wlPoL3TN2K0p>WZ224Kg1-jJeR| zyE)*6Zej>HT*NbuI#Z0}z6rlFBoLO84*|=jKLhouVsF-qzEb*W!nK{VYQjrp$uolT zm(hpftyE9uo#HTFJBDrYIuGZ)OwPAJSIl5K`syTsn`Do*M=R<|Vqk zV-E(elN}z0rwdkxTj&ouB2EoveP@i5IVqoN(XR0UHuJGkY$^lh)(S3oXYe!S-M-fc zHS$Y~r+F$pc`mDWoV?0JXq%sX@AesH6Z(uli0^&=@%V1>6_wl*`nl;2e6Gf4EKLPZfO!Il@+PO;nvx6nX<8LuiG3*mxxnK?{v04Z#$~=-aRWn?^CcEX8uL z^y=_FtWj)CjP#!v1q(fpS~oZ%iS6_jzs);_3W*Y0m%IU()poTspXtfhBA)G!uJW^W zT|mrozYXZho<#ki4LH$%;|m90!8oy%zSi$b#Q(?h0A4-+Y}Nh^QnE}`pVzMvJD0Pt!^ja+JrtHB?|iMk7V zw}pP1{A0ugIl<)6sKgx(A2>yG{H#|Bg35N5-Vpy@I^E_V-tVPTDRrfaX)@Iv8H5DR z45_T9Fsr2~ytlXZ41i*z<0=)biu8rbspBx3ra59gw7q3iDGXbZDsa zCq3+su^#?5&PgTo&Eab!L`i7}kdNRq#VdKRI%zY)8Njlu>vbN?V2-ciL*o~V<~+9w zICn99B-M+)Xkalh0~6%a($9NPqB?J_2$j;oWGQr=Kb+yGl!QmdxhTx$ zq%|-aI%;=-(ME(!e+siSs~@}oY$$g~7b&D`QksZOR@0*i9=}@JmC$rrAY&pxoPUFT zo~C2R#oCv!j@Y%Au&HOT2lSvXUHF{=na*T9lkJBWGo(s{MRsX+o+r11WcjFV=Ogl= zWx0E;-bXThG}XdeM}>3ut`haf_X2mzwQ8Z;EhbWcv+^MVdi^bx+v&rsCv@7;+`W(J zd~{sPXUcA9PP^IOTWhC>n~@*!vzl}FypP`j|C9B(Pi1&!W%%d;|17ya!+va*tjn|> z%iXhAQMv0g3lVxhbAaw^UMhF3cL%W2pO^=Y6< z(u0Z$`k#L!Zsk{}OR$bI*_;{f*k?ew@3&WI`Ez73;4LYww4rOM&-eSF){T zA)z<;zefwM^^=O}GP8NLrL@MvPz`u&WH+pMYmGxqdzFV^mCXL+=%($PYFf=Srqr}@ zki7g5hkZ!9QbI>3wiu^PKKW^P)Tk+_yiv~EJwq|(-dC3uvTZ|dd#!P2UG-h+Px3l@ zH@i36P{v2f4%5G|mZ;1^bS}{=!j9a)4wKehZ&Jd&OQ%(+qnr-%BiFyMB*g4}0%7Z` z-py*90nR~9>VnG4P>UJ+6A^nU4caJ#`0gIyB!5=)0cKrZI>c((V){6ow|^q+&1Pyy zIRaYmOe$#AVc%8@y$iehwZ_l;ZZ}Sw^q)^HkotMQW_FsK&}HfLwqc+E+b#5Fq}yWr z7U}-o*S#=$qO0(aePqhg&|xx``jU{`(8cqfl0$Eh6jq?G;(5QmOn#-#aFW&e&!ozz z4;i4%2qY`qiCSyooKYJhPZ(OS->Tndpu_QzvZqb@{8NUFSweYFO2`>aXp9-5UesTL z9BSmy@3XaT+HQc&jpgqIrqYIJXh=X8J`PSs`Mc{;P>&`8+(K^*Sd+M#vX1qc5X!>O?i#Xo~FSLUDM_X*iF8^8vp8`r)@yw zkJoII=)aP`xa)hG{3bEe_$792i`;7~Aw{;3a>?5jNP#|flLQpe9dvqCSh=08=2jlI z$7_;KND@`3!grhR)~4s1cBFg#d032IFNl@WR^-|=&}R$&!C?lkmna><+kEA2mMTN| zZ}_dn@0s%zF;_&Z^l7=k`l}~RgC_b94YRz&J$>-b;2X;2dbUdaCdSsT?2!?~=vjue5e~@ppN326y$PbDuZ^e2fV8pJ+&g|w;svPliG-Yh}T_dyj<#BySO&fagk*}zwZ;pRdpdKr5 zjsM6tZUP@><2vU!nJ^;+i3+4ajgO{xmP=g!{to^{J$)hxtV(1U)_cGSL{c2`JZQ&k zItY90;cd(l!qY}{BJlnh#EzW_i?2caY_hF!RKT$9pkg3g4}on;ppOl0zpG}Of&Mos zM%Y|XNAQf<^*UykKdyg@OnE*G3?v1PwqfN*+iA=YfQ1CqJRKY9<(b%_K2KnktZggs zSZE|B9XV3>66`{$as7Rgyducbet@+3kb!pSd{PmC8YG!Z>E#%Q3rR-R=i@(66_z1* zQhA8R~zhV4Nrm#X23L0nq7GjOevWn}Zr%(T5Li|7pr70?}WrI9`n zV{@EXNU;RHjIA(7lT!jUa`HP*tcGz-S~iiDCBTu4bX81i92?53m#Q;7sqwj?xt>fJ zSWlfc#C98Rldxg$4XN?pVh368s)0VtO2`>0!9FUj)eL6yWV?k(N1=ziwv1po8hDox z>0oqj_5rl9cfIaW752xiXiM9WBj9cmfQo;Rgte<5@9l@ybKn?Vhr#pSvd@&VN10WI zT*%z{*;zfEqB_K930-_UcO|D2en(o#Z6uStxfFXH=;K2zKR5O^j#9XvmjDHS5EwI| z-?gZ`WCEdIx2PugF3^^oNyZbO1w-}PyC(&?^Y?KX8{TfvZODkQaOQ@++%xA}__rG} zHtgb_KHtpw8#uF1k@O~DWCQ|~D_2RcwK4CWLZZQnA}I{D{C!JJW0o2A?jn4CF1Wd} zqxV?olf#}hLJ!kX{+Q4Qw%;Rk*Q~kMcXUe)){XlUFP^@^D0w7Wq9wEhGSp7@wyZS@ zun?5e8xvMp=(*8mp#$kYw6~BccKTq8IQ>qEerbEsCk%4j$J zJKPUz9P(~zhNqlBoxF2=PH34tzV%t1_Sk71f2^ZUbu#BP`_4SQt8Urr z=ZtV~8{3JP={`j;7KA0bZb(4?lxAW!S`2h+s<&;KoO7Avv$i_@FP1*LnYUOrbLNK4 z(ss!IPkBi@McRC{e}^&Ew{A0LndWqS$H$V(n~?|QrE@Fwh=j`g;cP)|J2co=nF4QsTr+3J~vUG%&0-nNME zLD-O({>1bsW{Y#Tndk)AAnkNZ^Ua=M{R4rlDXJ*1@?F@{{7ZSBe7(oux!uHK$a!AE z_-1|sYv$c;LhEPBN00orj?g~eq3vv@+|)eBnDGRYs(GOo7T3tN@*}3H3V+3ubsDUi z%mVTq_Vd%X@+4yyq_}8>RjQB{fm1U(?hV;76SsvkJAGa~HRNsyWp>uKGAVIITpwiK zSGR|C->AKyg`3ro^~7sRR__Oj)Pa&RvOC_A^CB!2)BiY~h;?RiY@n|ru0*-G80|XG z=~%9}WpRH&rEwl~=@qP`uDVg7XBXy$vO3MEDI@L-ZrFZRKs!PF1ZX;8s07m=x$s*H z%_n!5PKOUIn+83+Y(;iwSKT<|G+fI0?^tJW!`6q8GxrlK`jG|uT1M!{WvEaFcOrYY zHnPKXGR!njKE&{h=R(mK{@or`r%l&td&J+O5his;vf%B z)t3Ll9ax{?{fp-z?=sIWh41>SS2)j?E%ricRIS%p`}NX`y0U&|qq~f{G0SKAr|#$g z*H81Ssax&RF>Ob4T+=O9m(s6>%Bfy0N0Mw0aNM*}u;AKa5>6A6bC4Q;-fTv-MBc6^0zaKpVWIEED7$`eo7@7>cm9 zm7zr6_%z+ZOQfS-o-JP`!!u6iAIqotLuVuZ%ke>SF!FuB{W0j^I>D$40fPYrKk)Ug z_j?w3#9i+IEhNCYAknZw*)bcx8pgV-*BNe(`D2IC{}nVxH)7!>;n+oaIF=iWn(g*Jo>d`I>kHxGpgdbC?i8avMR*U}3L4WQ| z>N=VHSPUye4!s9xLJjyMOg7y=-1xA+ZgN=HSxWaR&H%wIVpy3LF#=Gyx*-vI&o6;fS!fo}O6EE7 zrD6l}qzVTbHF)|=(R7mz;bra#CJF5ne#RZTJ>tIJw#7hPYZUleMS9o!6m^#w{G*95 zie5aU+hc>p^wpHEL)V!*qK7~>ZpHXBB;~+TAv%$0UChIMEYOGt;Hk-Qkg-vRCNp&S z_NSNK(O?bQ;b$CDma2V=?r3zoT+UJ&Q1UxOX%tN*3*pzgP}T>0U8U3zGt#c1EUf;c zl0pTMvU=bh?X=K>q_oyT--!!&a|aM&W_{Ho-aXuPiv>QGBH}k8UPQcv_|3ylZ;0Gd z7`zK*{%0t%K_9#up|6IdjryPmq0fh`Xir4tTf}}1{KzlG??)ILZ3QXsvT?3ES64!t z8;R?(ZGn|qP=6f`DTk5nJgD501Uggc4!Go$S;R{CO+2!`5$LQLzKx)YnvKsCmrK57 z@u-fhKg}}w&Snu4aJn({j-%&3pykN{#B{(J2ZCyD0u;GLWl;?xY+)>$jUX83;k#NuP$x9LEfe~Gn@ zVY$x(?IQ?JL#`_lzMxGWY3-lm)}R%h#;n{4L(C2)!r$CN&m>R5zGH%~s+r!W*v0An zq?{|SUj8%a=bGqL-a{0N0gJZ6OO(c4SiSV1OC$VJM|_JM z;SZKK!qUMsw+`qQ^TICFt4F>6Rc1$4HQcfG&f9Ok>(*P>*51AO&f6O{H{N2cl5T5g z+<5C+G9cG3ylVdZWzwDQTkrTG5^)RX*Znl^>Q&1Z{WL}%pjgKXI3m$0@WI~B6NYoT zus@Hd)=2s^9oHwV!ScZOPmRg%Tb}{VKA$dx-e!v;(7IN07=aoR!;AC!%WhK*9O z=wxrOGv&w82V&q#eOOsKs&!GrM#K@vrMFpl>xpGUmtpZ)r1es~9`PGvo0m7OaJxOf z>h;~@Am({;z^#rh+5S^YOL~XiT zSFEjn-6=#3yy(7VS>7YJEV+9P(rBF}(TXd7o0|W~*y= zid1d`XKlTwm+_aB*G3u_da8 zztvYa9AEr)LwHFGem6DDkyY+vOAa+0TYRD6xZ~IoL&JylA3KjN|Fu&cwGrm`Pz>9T zt|AjsXp70N2;1V}vtGvqj)P4oan_5STCI_;MaXf%jJTWAAqzs+BgA%$*WlNT-&Odv z;CFe#xiN1~ZMtWykJ$5rBEKJceVOCJXwC|~0eb*X4N}fZyt1MX{)ov<|8?@Eu7-w< z<9GHhzfZB+kVpIQ4<$@)5TX*wcy705|$sV zpXn9de+=$Yrnz4Z=+Ewz5)BclM+W}{emOEzn&+*MI3xN&AXZ$7kJJ{ z{~aG09rYSEIzrTnx^Eql-0k2n3$-O2ZpJNE;#k909AeIM%OorI>cQpvN7 zNLuWQCHEY;+I>tR+&cF_+c9Nj{sgz)Hc$5T-P!<63~K_Dv?FVR)JQs*Z?B-=uc-C2 zWuB^d<~f!D&oMPTlhpckU$<}wr{7;L-}bdOk3Egd3X=DJ+nut$8unJbxp9sw)4A2P z*coXkUsC`Z@<+gm2V7duic9saE~^H%-2pkz;+NM?l{4JSR$LC<&i4OGkq-;Qhsj*} zJ4K@6@JMSvBpvYKmgrQJ%UaJ$9c`tM1))^dm1w8avDe~6vUWaFV3#mqkX-`MLoZE|hU>e^Xn=r1=)E~}HBZ`hU0+EWxcY#c)$kExA9 zzuuhn)F|v{tnNGA4X)WZHBr03OdlEkopG&{Z=N7u=rhq3F)MOzPJVN$+C5FqH{av_ z*C|QnD&7TBZbqpVdN_8c>se3kp+mtM7wK@h3^uOAb1&a<_+C}Vtj0GUj6YaYtfe30 ztdE(vT*Y*GGON?&%!kJ~!%9-i4=r4)rVGA*nJo8lWh*@>`RJj~n+9ppb z?(&RQfI(Ev00s5<@F9ok=FklhD{!-WvGZ;S)xz#Q2(Fi!vO1SWCP5d!HarM!EXDf$ zGk95+lKblFLR`gfz<(BMQnEUA(5=eguU$-U#rj?hKaP$=x4I=ywY(PVcYFK|$r>Tn z>FH9+QOeZ#pO?cwOh0#q&C^gYEY_1S#wkDOkFy5 zC9`F-Q*NK*yUWc(C(YWM0pItbGgh>uFqXBq2fg?_MuHqpR9KMDqAEG1H{+C;eh}mM zSzxOxAE)tl!8`m4*A?j}oXQK;$jqnVJ6QfRK}*ibM*{UVE{Bs@&!0?FlUbH3Np`eS z^?@?o_k83-@cnLln9rS6pS35uBg-OmkEL9yT;|LEjS)52S)2Yk^s*5rtmc>ek!SRkz%L$@232U_HrurXO^_s~J( z4$}mn2;YU-{`cC@2e8H<-<*@m+>V*@0Xb{Rn~HvA-lK~@VR}|CcCn+=JK7@pBEq@h zcN`tc+L_?^3mdm*bs80M!lQNX_Kz}(Mp&AwzWwx%OR;8c5zY??PS#GaJtW!^Jgw&W9)9D611Iy_)StCXg&kxl<}O(+A`4DtaIAkLEAo zdpv$+`IenZVb=>=a!XHd@h-*5u(UIp3k<76!B?*uY|mSi4@vJ;5!`q&xSrz4C1t>cLi31CW6xKJnXv9MR2Cz8d(V0 zfP1wd#j;8-jSsU=wNG7n9n$TLKU9Q^Zufysvc|y3`r3XhI zkH6`%ZZia|jm7i>7RD@nKW>b$Hcn_{Z7hW!?3=FVj1Vn-pPjh{@sGF`8lOX(Rb~s` zo$dSGnQLSf_QVXUI9vhRI4=*f+5Y+v!tj@#Nc7m>71RCk%melE>Cbs7tD_L2dHAzbR_6#pKOhfcZ_M;Gwhl5> zeqecK$L}0jyNFrq&Dr%-0Dcu}F~q|M%H{=z%GKhm1w0$z)c_yg^fSkCO{z%xEwMFC zFP1#^a^&LfZeo5Vl3N}AmDJlbGiawA;UoMMF6_f|&fZgQOVi5oyEk=7T}`K&x;CBK z)Z3ruzj3;MC5ebG6>RXcYr>8S7ZmUuEA^~0xnT`;F}9DGY3f~1*B;5T(Vr!&3xCOF}N zy#1OHwZHcPegW}r4^_`@^*+YJu;!wkFe*DVRT(3Zu7p{8Qm zgGmVKY0fY!WnSbhxsI(9Xp5zzn5q-n=oD@~Mvfpfkz0gNJg$uzxy1;5i_kc32|`hX z$~eY(|3YXCcNOB!AT)`)8lh7N8Mr}&PR8pm(V?av^>whd?EAX@8qe83Hu4E{+nl}K zgq;69$ttxQ{4(jl87=5|S1GpO9_W%OSZH*eZ3x|NJlHqY@dkDt#M@IhnD#Q{!nt%y zvWuOlO8WyE>G>fhn~FkaoDI#`)7oNyA1wF@{85U%DGxM&GYjF;#kx+FxfyiH=$tjP z);&uuu$i%E<$&$zG9Ox|+cS1Ww~_PJcnv`#Jp*ew@g70BJ+eBSvqy;NVKWvV0n%j7 z-leb4*uP7eD{+*0 z#pD~)Sy|7sEc^izyVB#xyQV$3U+`M{d!zY@0_RcJG-fBle=>JtxuqK7+( zH+xU(GOlV}_>~o9GbucaGJuEYKt8iEWb;xBIrIwT`u8z_F5J&JBsvXV`64(4K4Njs7% zuV=gT`9{YBS#sn7UFXw^!)BtJVxTT?MSVD{leI~=hwm0aRrq&x3z7G*XE5NS>nx`8 zV{FVBbw3=|b@H&{K0dS(c~2_Sy9~kJHYS~V{r`165X=XKzJ*5tnfxE;9U)fhYbC16 zT4RNx0qWJ{i@~FliJg8#ka^;u2Cz+!n+!4TSuOKhOb=nog&g0fRbrIsmuh!KMkOPCdTal z8bOR|#DVabfQ^m6GHQu#Pm?5C7EELQ(|U*2TVsS4L6@Y=@QKO7^Vk5+?8OZMPU?2+ ze*GW!RL9ii?_(U^2ZFhStq0ILO6Z-5DGuff%jQc7btNV`gb4E!D1m?dct>SDqmk$= z3|S#*ZYABpO3=C^cv30ztuga2+JWwkSJ-*^5_r$q;cYo8#dqs1wcy7WhcY@z_^LjTQ)d|;bx=+$gh3=iO2JcJX?oo;nu8QS! zO7xoH5=xURR>a; zq*Aocw6nKU!_ajul4|`qjh2Il5#p+H!ZTSquEzd-457bj#@@K8kp3*zddk{#9wYf+ zY%wh5wdkqnxgY)@Ci+#(Om80^Y|LS9)Fmn)0+?YSio_TYaYc z`V2sq3Ab3zkq6qwxVvFjozXnlC|2uSK-385gfCL&bFk8B_B!u<`ra?^6{3Z(A#&1n zo`0L(`kE`ub2}Ogmq59_Z@7Gz)g#kVMtDzq>-v$Yy zRqZqJ(5=X1LX-aLK&`Cv+|RtCCfMn>elm)H+Prn`C)4I%A3gysrbB7L^Od2&#;j_c zN8Qc2)s-*!*&4f0*2q>+%O2Kr5|wz>AE;lTYt z4!*w+_?>P16jhi}1D+~=)f9CY^x#xgT*x!%Y~yr3dbgh&#X;+WKkFxc_+#Gg*Y2tJ zy!Ev|h)x2`vAx)>>n zquAMzsy~0t8J<^eAO_EiegaFK;~XJN@v&}(XOil`U0MB-m-(~V-1jN7yY9n{0$pun zGHlP}fxZ`z<2m18ljPh+^Z(o<+D)ZY{oIAkfQ58;}s+kC+iCaQpC^T!jjS!I5V!q(o$9zQa@{$tRug9Bqs(-B>h!9~+EAlsyoW!}S@`=j zk$eW zw>5geyIdZlwm9FmnU5Ht-wBaS`pY;Mk?6KzGmXc7D&raxBBZ`#hF7S)hDp_`X(0)E ziw*0~ML+zC>URwh44UdB`?Z@y_xS%$Ode#Z3Fo|g_k1szvqR?pPb!mxGjnc<{w2Yr zu>t;FV;4VyGCKp}KHXD1TNCVsm)ejYVsD5w=foxcgp3g*IlvJ$PjT)VaO~@6U7 z?5+V9F=zI2?vZ;4*c@Z_od+=A?#HJUpZoA>#%BbNe0BNr9=aZ!lF2a1D!IBU??iPK zp{IOomFZhiP*w1;aTcL#(kNt+e-y%B`F5O|ir+VU^`=H(Xk1m*$8Dyuq0Oh*&0K5w z=lQ4kmHZz5F8r7A%ef3L8`m~HjHfpKpB#&QpF7NL;q8F|mn{%6n&}ZGy8e9^=66Je zoqP?MVa_?wa0+)ESi7-vpXHt$vafd@f(5;&gzg%iK1q-b{i|_8$4q|>M55di3G&?% z-JM)(SoI8>Z{!_56WH&#K6Hxm505#76{aq}EyR zS75gh&6A&xV66=eG{Oo8+=bP7?XVg*Lf~v8&cw5tRp~k;I%`-+dq4kNIS71Bnbh6? zU3s?=ejh^)c{CM)HH-^A7o_WdXXFpO+ejW~_14J~V)r7kw%->Q zBI--@oI`9VdyZS3LQ3HCyxg;?n@j2Qd5mEeCviCK{m3h zP^mz_p#R7`Myd=*OSxWm0EpR{2wGf}D#Hm3*iC?it!7vkA^D?lQyaUj=rrz< zk!VIrEjvMJO^TDtCaFSJwDbaecUkHyNIpjD3RQO`;xQMy;YXYi7Cr11F)6T0()XBv zxr>oisGr9t0#1#_+hK{xHR})jDgtkja?w)&|8-bvRti7 z@qS@M%O@9xf_3VsTCG26ldne~jL5S9h}8n3!!Geo>^)|sM`27#3*?B6N9LtoE+ATS z-hmkruJUu^De%TZHGiMVA>q6yp%wveb$|3X##i-^a%)CO8C!k%Rjtbh{E zMM^juHWGqfo;f?Rdk7~?R;-xsbmQIbi!_jy3Ea6n3Om$ zyjuPqQ)6e;m_8L@YtvVBzDEAo@v4V-NEt)es$_fB_!D+W^TU3rs^El#&{uw4)xwYU zklvZFGBGXqeSBX?OZT&W2f`=)wS$4EnZN_dZ^!ey>F?Lm-!G-VpY_`Y7h|1RjPlm` zYf;uO(xq%cDU(C2ytV1_ZuA>b(h`(Z>-Qmcwtq|wq1JR6WBuC^&h=*w>hR_OR+42{ zNeC6vt@?L5|H<_CU+`U$F7inP$d_Kd@tX>lCQhePr@U>vRBB-uPYdt{8GJ$VvBmaAbCmcM< zPu7c0cF)$I1|_KgcMNLaJ^3ep$}FMmhhld@Ct^rE?!buOZPXgsjW%Y?UiE>U66Pc{ zAt%~5mRQ~Ul`+JH@6n_i-v#8Xn~N}?sTSnt)3aTOPb#iKY9mr()?@y<(rEU+RHJaWzoP`-?BY#I~BQ+%cfnQ)g$>R~M7oH}MiEdBWV6`Oq zZuczcf`4Jy9sFIECEt!vNV1R*-BwvzsQFOqh*us*+h?*d3#=ZD8)VrQc7*(^S%&4v*X= zx1EL2`sw7Jhznz<18>e78e`U3CZ?Y?c)o0Cv|0Vb)8wH7+!^VD{g8T$z<2W?n?`P% z<1E)krh2GRZ&t~xpd){QyGSM48J}41N}sl1)ZLfVLATf-*G1LS4a?r*aQVx1Cy<$#W=-7!g~*gm@RR`D^j0bSqX2Ge$qP714;0Hc> zMYH6ZrK>(R_M-bv>>(sVXEfJj3dadb8m~NXk*rfP1lRy1T8by%y2E(l@nmH0?(yJB zg{RT%-90t(*i&W~yUU7mRXK~`cVTtG56xvp`2UiUOFZIqtq#0>?_2k-GS!>@-uKp) zilEa~gtZkrC}#z3?nDc4!gc{pqmS6vaMnLz2(YI@`p(b;xP#%#L2etg_`BZkBUSHV z{u9^nGin*<;+4x9i}K>w{$3iTj`keZk-3VW$-uamtPT?oqPzBfmN6-=LDC|Nf2s(i_~In@$P5 z1iwM0;8KbgxA)*Kh&96tr4%sdX_&K8%m$0^!sK0puPS9-Uv0~Pjj{y(*Wk)HsjvsT zarR7&T`|r52;Q>(%rPfLST$GB=1i9Aa5R>ieKI2oJ1L!%ZtY6H22b7RGX%G@B(@XC zA>@Bd+aU!Rc2tXV*s%R2s-5iAtjQ^wb4#b)CE>KC z6wu&32AL{)~Z|w*~p$A zQzjGbuO;^aY3i8)x$vJHxn&Yhz8M9dn<+f$_SlOD`U>bacv^s8d>Xm*%wuMrF#V;< zo0(pd2H-2AgRe1=N?(s>vbP<$#lPSez&qO&4$@M^B?B*dCwl+Wn&IXrt~gf#4M_l^ zq2@+?I)3X!@8q@&x9U>72Ju=>8-8)?9f)PO=8A~XapSkWgy*UGi`~FFlh;Ma* z{6^q3a>eTSP*o-)j3hK4!x9v zo^}!g;*Mb}o|j9Dl9py~xIF1q%pjsYg+-?4HtKI3T==KOnUY!3(-e(0`a_@Ui=T*P zD%wlom`&04g!^FY8&T%q=pU3aM7`*lJz8O7v8F6^X@Bm6u&n(6jF|<9{h_DQsnCpQ zNkysrR8g?aQrkaPWUPq8BcyG!Rx0_NvRf}Pklngf0X}w0FIsOJu8cmh{-)^GRn2{N zX6a{IPp4bkI6&T@f6~0S&h%vu>>}R&O3cd#2NIQR@>FmqoBh?g&HcwJQMcV^LToOu zw_tpRo%La5;Xzr<<!aKI;}(RRF+6)zX7Y$Z36~)Q-0BxCGgM{gpdn!aHUVs&i0+a^WkF|*niXT zZbZWh(arkgYBNgzsP9*mz~ZfYy|10U-glUfRAfUlvO>=M^RPjsyDuClhO9UDoDemk z{Ej}%=)v#HZtV~KWr*7TN8qu`N-Zmd?PhiRLKUmP)&BU4Tq7&FC;co9pDBOyzg$H< z#tI9x(}M=jd-`tXSqFBu{?J=C<7wkV==s9d zh2)Q^9`wtKK2Gt=PS{<)FaHTB8SyKJAwKcj5=(MUrWQ!6_6QB09@o3-ybJAy6rtE?4&!H@N@Qw4f zfUR;5v@|;V>Ykf@tNg(YC}XBQ3*gJIUCq?9{%Xu_bB33tECBcS6RUy%UZ!HK)B9A1 zma9|$*^(&Fc4@*0u;}!Jm8Sp7Zz*muA9_s-XzvuD z3H*njp)V@eMG1jr>n4fa9`^-)*5~8jkZ*%+sC^++VC@9Pm9nrnHOhc_)mG}qdIz@w zbL)Q^bN%Fn9BZ1(vC=97d&grFNlwE%Yb#H&Ph_-YBF2l^`Ig%y+g|%#$KE50)Aj;$ zo#x!D%ISNnq^y?bRaLGvS`M3vCThz^vi2Jflf)h!HsF_o&-JIU5E(q&;R5X^!?2oa z07*deLj2?la`5+;II$Q1GJLNDyvpiKVrs$)p8RFQbcLl_WI4QQ z-HDiN`=_@Esx!6aY{^s8Qd?;)<5kE0%)NBn(ZZ|t{TZokdy7Lw z#1Go>R;R7Sq}r35mEU`R|2A+aebxEDp*JenrHSEm#21$(Y^?_Gb!VLTo_z*BYwxTx zOW-Ybw)Vtqt!=TiR>ywZyvgx=#1C$%$oZI_e0F>{^pIg-y?;OazadTlFM=`-_NlR| zt<@i+5>_ywEI@hgV~b#eUDpEZ5wQ*%)GXjLVRiMk1(|kI5euqP(&Zs+QLG=+_90B-Y5oAsOd9(>=zG7wAhm(UE?o`H*6^}HFmy`7uUBGKJE za51@To|wBCdQ`oThd722cnm)fB}TB7#Fixy!q(rhW$WIJvYWxk==AUdT!*ql z-MT}~e1T%{ng_m2qFyC1Z)6sEV~*o0rF?cGqZPQ6gj2|9$wIpzkxQd~^1J7w9-eA= z1$yF|JDG5!6z^) zK1MkE^lr4qSk#m|TE?zjn~Jh*RDf^fS;@vYSrKxy)59Tk_*~ZWZ&Vb)9>ycquLc%W zdcNGen&72#bO+RWx{JV-KDi&PY&^Kx{J~)lZM(I<4P~_&v}66tAuqD5tky>hsPCK} zoLP0MZYua&k>n1$y_|Vno{`Sy~s?#%mfO~`9!dl}*@K$F55n#kS_YbTRhQst8 z_R?1BJ^bsSW&il=IBmp$4;z_kj}K3^#y3qh$LpsW*c~%>E3Pv_Q4;#^|JBRQR^4Y8NXh9Vo_UNhLp68GWD$rcUN8Gw4VM{ zAMC`tyuL*`oa7u8YG$Z5t@xDB;qBgvD1AlyQ@F#HcFLDF%7XC6Fmie%G7zu373?p+ zJIl>N^w=yXB5)Wia^ryCkfki`SW0U$fFr>>uoZe<=aq7N0`^j{^*R&6dIMPVpw~fC z&O;opQ9TQvo*S_pTM;4f>{-YK+Q*1>w{_z>A_Je*&7spXV2KO2)wNd$c%x=9$BeZ2 z)0M^$d8Dmj`wUSt!PnX4jw~Ee%W7kg9mnv-!an?F!!|GmTJTtYDdb07Z{VNmeqi?> z#k4$5dqTnH7#(p3Yn3e)Otiyi>G zLZB{EVMPfuJA^F*?Avb0GDqNh#?Wq9C2o%H z)^Ffxri@f<#?~z#fl;u)gxTnNd~)OE>O}2aUnsU4)(Pgl5weIuNQc$Q#ti5uRxM-g z**G{B^WQ|+4&aB;s)vi!S0ML41WS}W_^xh?lV;$AwJAe8qZ2cnvTOpddqSxEVq`Y` zL)`UXy6Q%}1b6{(=EvvsCW=}KBfChMlm;${GF)Y+{?Xqi)OkY0LGmzoqE}+%-5q}j za}C99kzI;xAA~cZ(PWs_EOCjj{hm|DZPQOFwr`&{P2LSV*UPn{ts4BTvwa7E4xrIK zA;A^5ybMXhSr@ zM6G|ohAaGQzywVBd*=vuN+E8;-)zhqUL0)aSf4~)Fq*`P?Otu!CZvv`{sc?@0)uhUs`C%zmHe?Mz1k1_3P6b z%unfe`U>J{p=-cH4&Q-KgyjWSL92|gjy@P3OTPXj$7RInOx%gt0RGdve5Na{z1zpB zI8V%OIe5XzHRO(T{sNeaMd4F<)B}l5^bMamk7*0S$ALu+HsxwnsnzA?@N?83nv*M* z>=VJcQru{teVQwrxU=qPCwKw6`kFBowWpXP{nSJ)ihrJX@+lj*WO%m~jK*}X(Ktg5 zHle=-1#m8 z2cw`7G6Y&}>fbv4R&SMEOHww3~;tde%Jg1#VydbA~+~_3i`4<{0>JCLH41c|@qbsQT*JbmHqL zeRrZZ1$TU(K(Xh06<^)N7g%%tbKE}nvxYqd2aGLy@$T`5OwAM8+ZJxYGZHW-6jj5w zCmzAullKCw!$H*UJEBkW!Q+$aNf$c;p6GXhU!PqMA4bo0u!zhSUdQ$|)u@k$I;YM|2l&0l&}h2b8GAQ@$D~sSO^)@lDWe>P=C;y-;dh zXha_@5iu%7Ps(P|4%`RLU3HktelxU`}MWA-|J*9R5A-pjToMEcIJbj;D#*fx@dP$k$MZC^~pX|eWL%D2l4D#kS zeD8zJdmHxd)35XI)8_~j8N;cx;xtxdQu%7GpIzFbjhLrZT#8@s3X4<+NohEX-v`@$ z>=}N*a+7z3z{l+u#$%lVzJWo3-m; zY3kav4?OGrJ3cSU)6xgbYFYgVe92viF1T-qJl3dg#1i)qG*4%?;FhQBYkOo|NbU?`f9>3o4GOWTi<>G%tO!U?yI^;Kh7TJwvz2bt>P45h!1ysB2SP*)uIUIw>kBt357`Dd<_Q#lYuWHZ>Bd#{ zTv6*lQmdRt^%?tFGHc#jowaK|jf(D(LIZ4Q+`QT~KgYSkMmn==a}ZZ@CVchLKn`Md zMg-p)k4mwzBpWDrza~QGuwq?*WmvdPSVXa_A@c8NK4q8g;rY-+337jOAH1n6i$piJ zHGaUT1(js|?2YZvf|T6UUB&4-T-@-&t7VXikmDmb3V^S>RDIzYqcEBY9!AVIQ-P&Jc~^5A^B5yCpVdwhvh-_A>h< ztY42K%N_hr!yo8A@$l2s2W-HuQ7`P#C-K&1me*Ku;|CoB7cU*?++Xq2?vFd2ZtHXS zpVBVFopSC;j6JY3P5L4lmGn>>{G2SWrxQH&$O>m^Z9s+qrPI>vRJZBIW{lREjgqtb zBSkQL4I;|l)0G29nB0R5ZU$DnWDLKGN$rbE=LDV{cMw6FY# zbsvp^8FQNMnqs_e>+{EG`|#5?=!=(z&6qdch=%^vxl6(4)jKQAavA0u3!(r-SO&`A zWAzX1R562@y4=5NvhBWUlcl-8-nzFgVBfV*&*^aNoZFDrf|wPH2@;vpn;!3KSgH-% zp|1lW^W>n(ot0RnvKhhnBQmdcM24X|9nr&5EIAB&7Db+{N12*9v?So;&ESR_S)ZoT zzi08!qISSyv^+5b(OgSW1Dn1${)!AO(^eGwk(?Gisv8t*D(;|lp)1;<<5d9<=rv7+ zp;mAORm3(#i?AkBtol_s{n-V`);HCK)rb>YE3y-NQA20Y*2t4MyO2s6w0cy8Cxcj z{{8t{-^ik~@C?jEUDdgG!efD39vW1lW???GD-IF*vp5_0SOg$@ZHOJQ1847mE&P*_ z`H~@}LFA~em>qlG8xgQ_TfiYgr9K%Zi}@c$vJuNNUrGlP;K@SLH-ym3wFTM<*f3^6 zUi*SoKz~hLou2>?sm()CHq`oQ39@pCZ!$#Xl4l7q_0_rBy1oMKX#Y6v@0i_ODw|v> zjhDjk6pw@V2&_WE@hZdb_y`xIYy54C!9!PRAN;!ZyHodVNKiD#a`ehK z>#x32{}B7*xvQ3dT?%=EN3So^abA_b7ll^m#q)y4El-;OyC?JZCyw>jKQY?J42UyR z^~<%~6tvFo0YV(lkY6rvhjO*Q>jj8{7^kgB&G=a(bgn<1r(GWEgRWhmJ>6$Q$g{AD zvW0Tho1)AULH}~z2x=JZpMMS0lN-H*FzF7~2V0r;V6v66hhicOi5Td;@hC%gUI{siymk*`95Ut*ah;@iOO4IHe z7Non*`ZiFl-wsEC$#i1oeSGk0WH8TaVDEX!O|cV4^f9T(Uy3PqGfSL~jPB27z&@q& z1l=>34K7i_R>5v}$OgOh)U#B#Hyo^gJVF+aYwFR4;OhZ!_WP)YpIoWiiENGO$Q4zf zl_7S}W}-M)hG#TB)dK6@&)oLCqgQiLE1d9rvS9Q%e2cIpt?D;O)@EPozX!9{-Tfx4 zVkqOMdI;Ag(t_YtMr=x8Tk3C3&(0d2ddU^ zC>z#aF?vYmga?*}q0y8@z;Dvup+$ zur*BWkbWu)o6ZI>GYAhnoTKg1H$%Vdi1GtgjlqhW)$d>VQxKwk^DL{nTc0QRA2A~y zayiRKEC^Yf&OZEN{R5E9R-uMU*8cArv_2IzsE<%?vWP%e9S@serJ(-%{Lcr;-;##e zX&#Rwz_ptZP0UFSFn})`u2Q$A&N_xMlKz@u67)vqc$Mu#@Fnk2uqNw`Kf>?M-t6ip@G(k9d--Z>@>;`- z_}$g(;v4blz{i?gjD0RX=cF~c($UzP!(4^cSZixW_US<;!fw0`zx(uB#!d1_a|_`) z9?5a-^aG;Z$ZC%8+$mE=1_W@{&s4QKvF7>(9xBb8n15i z@El(H4R@s!zw(kP>*}`u(t>YnZ~gc7%1gh$vi&F6hQH>B*{1(V*r)%Q$Fop%GEMbYI~(;oBjdLx`dWr^~-P5F9|>Eb>hkW7k3c9dwUo2 zVSIkCx3%rl+i@4vl6IVRh$r7YMUQX8wy9{Fe#B=+jX%Y)S5f0cv~psqFJ2Y4>8~*( zzB|}H{pf!@wWGZBt~DtzsfT=^3O@TF;o>U%HvI0x`eOXIFL|3j%SU@gkIur;8B~{v zMu!P~K0{o3`EGyN1GZL*GIbzIR}27U6V1{lkMP=?0}gr`kxP`*~s$Am-h zP;-b2eP?((M%?nV=OXu?f0i4MGjjP+ji@S29*T)e7`eq~$0P3ge#8baL}RsLjl}uF!BA-#(}ooC z;=QUIEE6?bc!BgqQ`xP2eBoE01aHk1fiyW3fc+I~O21MW>aq7|UnyNcM}A9vqAKGp zQ#;vmUk#W%r1^UhAK;_B&v~YOmJ;|pc>bed%{9Cvtru-=?-%5o&jWqhcj_7%y@j0hm%n52-UZu$gNUzzg}=%-XnR z=3{3_X1^YYnuoy0FT=_=&i_~hc(Fspo6$Sq&f9|ixlbLLI!_uCXL!mVB0~#CO|w4~ z(|7ZfxwcBDXUV)(aT{cvx6bXy__#-=c4bv$bTf}@KDYk6GHg_ZjpDcpWBk{yG3&Qi zm_DKwU;YTAE*{f&LWttgQ=X<3O$=;=6Lk)ec5NXsHdjz#FEe;(L==Gk2K(IbxaekuRPsNH{ldRnuBH-`bQI@OTb{9gimc71Ow@#e!4gpqDfKy!sQ z_v7LF`;~q$jIiqY6f*%^i-WMVnXTA|r=eW@ABB!)?iX`=I@6mC-V;FHq&Mf%v%y-P zrA-^oXeL|ryGmwj`U@HV;cz4|`d}-)JcM>)MgR!gXEi{mAL% zt}crlfz)Mf9}B$gD-v;w9|aeTgAwb1B|%%nRybB$I$%(3hw`;8BRAD;h}{~Y_jK}F zuiF$~Q#oaAGpyL)i(h9D{A*ucJ5GHJQPJ4r7S@%4bKdmPl(qD0PLMZVz%~c_&4X*1 z`u(*(UYmPuED8Qw=(5eQGp6qkS1kS{{kc!|5KtTj8(LsBOrgGnOk~fUJ0sV*f1B_S zm_fVryQ)a$n55@sQtW>jGUFOJ8pqcl{)(|BxA_|>s{_Z3i3f3=5y7Hv*2gt(*2lLU zxYFLgt$kqobC6HjH2*qh_hvo24WDLbt1X#p%e?_UO?a|jgyZmk{O`6qyHpoU>dqMqZBJ?uUGBWB2IO&A` zF=RHEJ(17D~lNg@0v>V#|O}{j`a>dgQILg4b@{Q znzn}iF;967>fzwmO&AIhEnE6@l^WQrn>;!5aZms%2DpxJVftJi|>Il~5g zUk_v)<381$jkGE}qiBH=AfCmG+ZC#h_HDry74YYY7jpQ;VQ@v6m^#3h^2wPSbd_^`!@1Gx#x#;)i z)7kV+{Wtnvul^0lBh6Kd0Su{kO0ws8oozQ!ECU<dQU0|A3-UF_#tBPiRhx~dK;XBw=OZN_Ue#kKSmD@g*pO+t< zNY*OCJ1hu)s=w68rhY%ZvyPj(BL33i;)e}WO^DlPh*6pwo^uwg4u~dQmI$#da86)m zursX)9HSyE5{5{Lo+XI#?e1hJ^ZqL_UwR$uUkx~guK`-Y0aWrrXin+O*zN|mo5ejn zeqF#Wcwv+IF85fl9W#3O;QdkCb+Fikz)w378D#T_wbtVa1iwshlU{$Ea5KRb9DJU@ zBY~HH&Es6VZ^e(vhKIbUzd+uEcQH0?$dYio^qwlp#0dYBb0Uzs@hGt^9e`Ck7)wi5 zayGdv#-QaPx6C09ql6!NM+Ij>`$^1-J5UOFhTyr%2iF$euc*DQtOOqhn?kei4M1dV z8n`>^h;Tqwn&O)S*-^o*V@9<_w^w-Kjmgqp1^T@R??e>ql}`byjre*nUwflJSi8JZ ztov?hN38{Hs`;8USPsir7MG{J4Gk{~Bhg6={J}S2S!i&-QFEO%(&-C>7r*VU1^h=p zx!_1;)9FfDGAWOa*+#4#mUuO=iekZFf>?K$?EvOwC%pJ$m}|h4n#nEAG?TAP<&CX~ z1Hoou9$2@7=H@2d5Ny(oZKMx3=_bV!Ux+yz7(xeH5h4T$&EA&=+C!t*dP3d@>aNb! zn2}%cHYp26b7|51d?Y{|?RiVgt<&?5k;e@D&kI>Btr%hKv&aIzS1%Re=?!wQShLK7NsgP?AJz%O zb0?zC^|Y<}t$d;ST17!zlLN+wBvTRI!+y3O=;d48-43jyBpm^R#nnTS4wcvwUdiIQ z2U3~P?-YQt^DFR?YoSyIr;0Nliv`sS?oDMPw7E%YilB#~s*;Tr-9XCzzP? zW1uaR9Y03QDePt=Jn%tGIIL28oZzUeO7)mE4n70c^ChbeS6Dyh1Y`5p|G7^>9;ViN z$Uk#$e;ROtbdQh#E|{3bGgvqgu_CTK+-)k_Inpl#X%n8nCw)#~tA34`D!oJ7 zN+s#ZB>JxQ73;j}$0Lj*jo+}8E=@Bas@F4!W$@(==VX3wSLtZWTgse3Moxqi1>o21j6(N#k% zB-?big8a0=mk}@b7;s$K)Hx0G-=34N_4k!E*nDM=m(?SFIZ@Ui+}E|XtO0qY9`|B4 zb-oCc31LJq^Z0xW?(=Orr-Tp%7a9mXKBvJOn7&bTd28l0Y-sT3_CP!EuGNF^0Im6D zV^@HDp0ndrvpZfEvk0NaIZ`F!f_~8_9(BTR4l8!t=(WZR)US{Iv@Z^MXSAdZe0^h) zxp`LgrpBYfT4bU6KJ1Q;MAt^-uNvuUB#u>|+mJXYF!e`*Nh%AGM*}!E#JiT|yO@AQuu0I$TFB-=!)#Q}4&(!;*|GY{yuF@a6 zsUajUca=-0TvXq){Z!^hk}pOrLH_neda_3KCy?gpX>UT-WV`m^h{^pyirqXLPp@}y z!**~9HlL1lZI|&}wp5G*LN`kd$;UUCOMa7>>KpO6wKt&;AB&q2Q8@;2PG+pb-r+&4 zg2Y#5Jv190XK9dwKJG?*g-OVU)jmgibC});Lkf8`2iQ56cKrZ&VJ8XFXnYLK#Ux|T z_*`G=25<49#j2mzdWR3eJ_GDS|Bsi@nnb8>k|E2~E%4?2D3GVs4hk_fK-N38#;Cfm z%1HfcfU{3H?FVLJF7Ta*Gm|GEHwj&Hu%GtM=oeyb_$@_Aqe^GnaQ1Oq`e^|OHv~)K zSYE#m^@@lkRBNbgUVmEv>se{O=I94@x$j(LO4CcaMR_su5^x4*1219K%bK?kF)9++ zp3c^|VWmYo9Fw|%@TWRM;H(~!kB$RBoYh?tcOnL*8|?Z8@Xq{q-_QLwg~HOkF(E)K zvw!OQ=9T}a&xWW6S85)1fsZ+ac*1X|B6RO2dAqlnr=2CxAteE>Eny6+dz zmeD?#`5c*x`Te;B+=SLspluAAB9PRai-cTT< z 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